/* ============================================================
   Z3D — Fine Art Capture  |  Stylesheet
   Paste into: Appearance > Customize > Additional CSS
   ============================================================ */

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --blue:#4499FF;--bg:#161616;--border:#2a2a2a;--border-m:#3a3a3a;
  --border-h:#444;--text:#fff;--muted:#888;--dim:#555;--input-bg:#2e2e2e;
}
html{scroll-snap-type:y mandatory;overflow-y:scroll;height:100%;background:var(--bg);color:var(--text);font-family:'DM Sans',sans-serif;scrollbar-width:none}
html.calc-open{scroll-snap-type:none}
html.modal-open{overflow:hidden}
html::-webkit-scrollbar{display:none}
body{height:100%}
a{text-decoration:none;color:inherit;transition:color .15s}

.section{scroll-snap-align:start;scroll-snap-stop:always;min-height:100vh;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden}

/* S1 */
#s1{background:var(--bg);justify-content:flex-start;padding-top:clamp(160px,22vh,220px);padding-bottom:130px}

#logo{position:absolute;left:50%;top:50px;width:clamp(72px,12vmin,108px);height:clamp(72px,12vmin,108px);z-index:10;pointer-events:none;opacity:0;transform:translate(-50%,calc(42vh - 50px - 50%)) scale(1.3)}
body.ready #logo{animation:logo-fade .8s ease-out .1s forwards,logo-move .95s cubic-bezier(.76,0,.24,1) .6s forwards}
@keyframes logo-fade{to{opacity:1}}
@keyframes logo-move{to{transform:translate(-50%,0) scale(1)}}
#glow-canvas{position:absolute;opacity:0;pointer-events:none}
#glow-canvas.active{animation:glow-in 1.5s ease forwards,glow-breathe 7s ease-in-out 1.5s infinite}
@keyframes glow-in{from{opacity:0}to{opacity:.8}}
@keyframes glow-breathe{0%{opacity:.8}30%{opacity:1}55%{opacity:.65}75%{opacity:.9}100%{opacity:.8}}
#logo-svg{position:absolute;inset:0;width:100%;height:100%}

#hero-content{display:flex;flex-direction:column;align-items:center;text-align:center;max-width:780px;width:100%;padding:0 24px;margin-top:70px;opacity:0;pointer-events:none;transform:translateY(14px);transition:opacity .8s ease,transform .8s ease}
#hero-content.visible{opacity:1;pointer-events:auto;transform:none}
.hero-hl{font-family:'Cormorant Garamond',serif;font-size:clamp(28px,5vw,44px);font-weight:400;line-height:1.2;letter-spacing:-.01em;margin-bottom:18px}
.hero-hl em{font-style:italic;color:var(--blue)}
.hero-desc{font-size:14px;color:var(--muted);line-height:1.8;max-width:400px}
.hero-learn{color:var(--blue);cursor:pointer;font-weight:500;white-space:nowrap}
.hero-learn:hover{text-decoration:underline}
.hero-details{width:100%;max-height:0;overflow:hidden;transition:max-height .4s ease,margin .4s ease}
.hero-details.open{max-height:400px;margin-top:20px}
.hero-dr{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:13px 0;border-bottom:1px solid var(--border);font-size:13px}
.hero-dr:first-child{border-top:1px solid var(--border)}
.hero-dr span:first-child{color:var(--muted);white-space:nowrap}
.hero-dr span:last-child{color:var(--text);text-align:right}

#qbw{position:relative;width:100%;max-width:780px;height:52px;margin-top:32px;opacity:0;transform:scale(.88) translateY(8px);pointer-events:none;transition:opacity .5s ease,transform .5s cubic-bezier(.34,1.56,.64,1)}
#qbw.visible{opacity:1;transform:none;pointer-events:auto;transition:opacity .3s ease .25s,transform .4s cubic-bezier(.34,1.56,.64,1) .25s}
#qbw.hidden{opacity:0;pointer-events:none;height:0;margin-top:0;overflow:hidden}
#quote-btn{position:absolute;left:50%;top:0;transform:translateX(-50%);height:52px;padding:0 44px;border-radius:3px;white-space:nowrap;font-family:'DM Mono',monospace;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--text);background:var(--blue);border:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:transform .1s ease,background .1s ease;user-select:none;-webkit-tap-highlight-color:transparent}
#quote-btn:hover{background:#5da9ff}
#quote-btn:active{transform:translateX(-50%) scale(.96)}

#calc-inline{display:none;width:100%;max-width:780px;padding:0 24px;margin-top:24px}
#calc-inline.open{display:block}

#calc-inner table{width:100%;font-size:13px;border-collapse:collapse;background:transparent;display:none;font-feature-settings:'tnum' 1}
#calc-inner table.has-items{display:table}
#calc-inner td{border:none;border-bottom:1px solid var(--border);text-align:left;padding:14px 0;vertical-align:middle;color:var(--text)}
#calc-inner tbody tr:first-child td{border-top:1px solid var(--border)}
#items-tbl td:nth-child(1){text-align:left}
#items-tbl td:nth-child(2){width:1%;white-space:nowrap;text-align:right;padding-right:13px}
#items-tbl td:nth-child(3){width:1%;white-space:nowrap;text-align:right}
#calc-inner tfoot td{border-bottom:1px solid var(--border)}
#calc-inner tfoot tr:last-child td{border-bottom:none;font-weight:600}
#calc-inner tfoot tr:first-child td{border-top:1px solid var(--border)}
#gst-out,#tot-out{text-align:right}
.qty-w{display:flex;align-items:center;justify-content:flex-end;gap:6px;white-space:nowrap}
.qty-b{width:26px;height:26px;display:flex;align-items:center;justify-content:center;background:var(--border-m);color:var(--blue);border:none;border-radius:6px;font-size:15px;font-weight:700;cursor:pointer;flex-shrink:0;font-family:'DM Sans',sans-serif;transition:background .15s,color .15s}
.qty-b:active{transform:scale(.93)}
.qty-d{width:28px;text-align:center;background:transparent;border:none;color:var(--text);font-weight:600;font-size:13px;pointer-events:none;font-family:'DM Sans',sans-serif}
.p-disc{color:var(--blue);font-weight:700;white-space:nowrap;text-align:right;line-height:1.15}
.p-orig{text-decoration:line-through;text-decoration-thickness:1px;color:var(--dim);white-space:nowrap;text-align:right;line-height:1.15}
#upsell-row td{border:none;border-bottom:1px solid var(--border);padding:11px 0;color:var(--blue);font-size:13px;font-weight:600}
.typing{border-right:.1em solid currentColor;animation:caret .75s step-end infinite}
@keyframes caret{from,to{border-color:transparent}50%{border-color:currentColor}}
.c-notif{background:#e05a20;color:#fff;padding:10px 14px;border-radius:4px;margin-bottom:13px;font-size:13px;font-weight:600;text-align:center;animation:slidein .3s ease-out}
@keyframes slidein{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
@keyframes flashbg{0%{background:#555}100%{background:var(--input-bg)}}
.flash-el{animation:flashbg .45s}

/* Fixed panel */
#calc-panel{position:fixed;bottom:0;left:0;right:0;z-index:200;background:var(--bg);border-top:1px solid var(--border-m);transform:translateY(110%);transition:transform .4s cubic-bezier(.32,.72,0,1);will-change:transform}
#calc-panel.open{transform:translateY(0)}
#calc-panel-inner{max-width:780px;margin:0 auto;padding:16px 24px;padding-bottom:max(20px,env(safe-area-inset-bottom))}

.c-btn{display:inline-flex;align-items:center;justify-content:center;padding:0 16px;font-family:'DM Sans',sans-serif;font-weight:500;color:#fff;border:none;border-radius:5px;cursor:pointer;user-select:none;-webkit-tap-highlight-color:transparent;transition:transform .1s ease,background .1s ease;line-height:1}
.c-btn:focus{outline:none}
.c-btn--p{background:var(--blue)}
.c-btn--p:hover{background:#5da9ff}
.c-btn--p:active{transform:scale(.96)}
.c-btn--s{background:var(--dim)}
.c-btn--s:hover{background:#666}
.c-btn--s:active{transform:scale(.96)}
.c-btn:disabled{background:#3a3a3a;color:var(--dim);cursor:not-allowed;opacity:.65;transform:none}
.c-sm{height:36px;font-size:13px}
.c-btn-row{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:10px}
.c-size-btn{width:100%;height:46px;font-family:'DM Sans',sans-serif;font-size:15px;font-weight:500;letter-spacing:.01em}
.c-custom{display:flex;gap:8px;width:100%;margin-bottom:10px}
.c-custom input{flex:1.4 1 0;min-width:0;font-family:'DM Sans',sans-serif;color:#fff !important;-webkit-text-fill-color:#fff !important;background:var(--input-bg);border:1px solid var(--border-h);border-radius:3px;font-size:13px;height:38px;text-align:center;padding:0 4px;-moz-appearance:textfield;transition:border-color .2s}
.c-custom input::-webkit-outer-spin-button,.c-custom input::-webkit-inner-spin-button{-webkit-appearance:none}
.c-custom input::placeholder{color:var(--dim)}
.c-custom input:focus{outline:none;border-color:var(--blue)}
.c-unit{flex:0 0 auto;display:flex;align-items:center;justify-content:center;height:38px;padding:0 10px;background:var(--border);border:1px solid var(--border-h);border-radius:3px;font-size:11px;color:var(--dim);letter-spacing:.06em;font-family:'DM Mono',monospace}
.c-add{flex:2 1 0;min-width:0;height:38px}
.c-actions{display:flex;justify-content:space-between;align-items:center;gap:10px}
.c-actions-left{display:flex;align-items:center;gap:14px}
.c-clear{background:none;border:none;padding:0;cursor:pointer;font-family:'DM Mono',monospace;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--dim);transition:color .15s}
.c-clear:hover{color:#e05a20}
.badge-w{position:relative}
.badge{position:absolute;top:-9px;right:-9px;min-width:19px;height:19px;padding:0 5px;background:var(--blue);color:#fff;border-radius:10px;font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center;border:2px solid var(--bg);pointer-events:none;z-index:10}
.badge.hidden{display:none}

.chev{position:fixed;bottom:44px;left:50%;transform:translateX(-50%);background:none;border:none;cursor:pointer;padding:8px;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .6s ease;-webkit-tap-highlight-color:transparent;z-index:150;pointer-events:none}
.chev.visible{opacity:1;pointer-events:auto}
.chev:hover .cp{stroke:var(--blue)}
.cp{stroke:var(--dim);transition:stroke .2s}
.chev svg{animation:cpulse 2.2s ease-in-out infinite}
@keyframes cpulse{0%,100%{opacity:.22;transform:none}50%{opacity:.9;transform:translateY(5px)}}

/* S2 */
#s2{background:var(--bg);border-top:1px solid var(--border)}
.h-wrap{display:flex;flex-direction:column;align-items:center;text-align:center;padding:0 24px}
.h-label{font-family:'DM Mono',monospace;font-size:10px;color:var(--dim);letter-spacing:.22em;text-transform:uppercase;margin-bottom:20px}
.h-days{font-family:'Cormorant Garamond',serif;font-size:clamp(30px,6vw,56px);font-weight:400;line-height:1.15;margin-bottom:16px}
.h-day{cursor:pointer;transition:color .15s}
.h-day:hover{color:var(--blue)}
.h-sep{color:#272727}
.h-time{font-family:'DM Mono',monospace;font-size:13px;color:var(--dim);letter-spacing:.07em;margin-bottom:44px;white-space:nowrap}

/* Hide WordPress site header, navigation, and admin bar on this page */
.site-header,.site-nav,.main-navigation,.nav-menu,.wp-block-navigation,
#masthead,#site-navigation,#main-nav,.header-main,.navbar,
#wpadminbar,.wp-admin-bar{display:none !important}
.h-rule{width:1px;height:44px;background:var(--border);margin:0 auto 32px}
.h-addr{font-size:13px;color:var(--dim);margin-bottom:18px}
.h-links{display:flex;gap:24px;flex-wrap:wrap;justify-content:center}
.h-links a{font-family:'DM Mono',monospace;font-size:10px;color:var(--dim);letter-spacing:.12em;text-transform:uppercase}
.h-links a:hover{color:var(--blue)}

/* S3 */
#s3{background:var(--bg);border-top:1px solid var(--border);height:auto;min-height:100vh;justify-content:space-between;align-items:center;padding-top:80px;padding-bottom:0}
.ps-wrap{width:100%;max-width:1000px;margin:auto 0;padding:0 20px;text-align:center}
.ps-block{margin-bottom:60px}
.ps-block:last-child{margin-bottom:0}
.ps-h{font-family:'Cormorant Garamond',serif;font-weight:400;font-size:2.1rem;letter-spacing:-.02em;margin-bottom:10px}
.ps-s{font-size:14px;color:var(--muted);opacity:.6;margin-bottom:60px}
.ps-sub-h{font-family:'DM Mono',monospace;font-size:11px;color:var(--dim);letter-spacing:.15em;text-transform:uppercase;margin-bottom:24px}
.car-c{overflow:hidden;position:relative;width:100%;mask-image:linear-gradient(to right,transparent,black 10%,black 90%,transparent);-webkit-mask-image:linear-gradient(to right,transparent,black 10%,black 90%,transparent);cursor:grab;user-select:none;-webkit-user-select:none}
.car-c:active{cursor:grabbing}
.car-t{display:flex;gap:15px;width:max-content;will-change:transform}
.ps-card{padding:20px 30px;border:1px solid rgba(128,128,128,.2);border-radius:2px;color:var(--text);background:transparent;transition:border-color .25s,color .25s;display:flex;align-items:center;justify-content:center;text-decoration:none;white-space:nowrap;flex-shrink:0;font-family:'DM Sans',sans-serif;font-size:14px}
.ps-card:hover{border-color:rgba(68,153,255,.5);color:var(--blue)}
.car-c.dragging .ps-card{pointer-events:none;cursor:grabbing}
.shows-g{display:grid;grid-template-columns:repeat(2,1fr);gap:15px}
.footer{width:100%;padding:36px 24px;margin-top:60px;border-top:1px solid var(--border);display:flex;flex-direction:column;justify-content:center;align-items:center;gap:12px;font-family:'DM Mono',monospace;font-size:10px;color:var(--dim);letter-spacing:.12em;text-transform:uppercase}
.footer-links{display:flex;align-items:center;gap:16px;flex-wrap:wrap;justify-content:center}
.footer-legal{color:#444;font-size:9px;letter-spacing:.08em;text-align:center;max-width:90%;line-height:1.5}
.footer a,.tos-btn{transition:color .15s;background:none;border:none;font:inherit;color:inherit;cursor:pointer;padding:0}
.footer a:hover,.tos-btn:hover{color:var(--blue)}

@media(hover:hover){.qty-b:hover{background:var(--border-h);color:var(--text)}}
@media(max-width:600px){
  .ps-h{font-size:6.5vw}
  .shows-g{grid-template-columns:1fr}
  .ps-card{padding:17px 22px}
  .h-days{display:flex;flex-direction:column;align-items:center;gap:4px}
  .h-days .h-sep{display:none}
  .footer-links{flex-direction:column;gap:6px}
  .footer-links .h-sep{display:none}
  .footer-legal{max-width:260px}
  /* Reduce side padding and row gap so detail rows and table fit on narrow screens */
  #hero-content{padding:0 12px}
  .hero-dr{gap:8px;font-size:12px}
  #calc-inline{padding:0 12px}
}
@media(max-width:480px){#calc-inner td{padding:11px 0;font-size:12px}.qty-b{width:30px;height:30px}#items-tbl td:nth-child(1){font-size:11px}}

#aria-live{position:absolute;left:-9999px;height:1px;width:1px;overflow:hidden}

/* Modal */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.75);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:1000;display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;pointer-events:none;transition:opacity .3s ease}
.modal-overlay.open{opacity:1;pointer-events:auto}
.modal-content{background:var(--bg);border:1px solid var(--border-m);border-radius:4px;width:100%;max-width:600px;max-height:85vh;overflow-y:auto;padding:44px 36px;position:relative;transform:translateY(15px) scale(.98);transition:transform .35s cubic-bezier(.34,1.56,.64,1);box-shadow:0 20px 40px rgba(0,0,0,.5)}
.modal-overlay.open .modal-content{transform:none}
.modal-content::-webkit-scrollbar{width:6px}
.modal-content::-webkit-scrollbar-track{background:transparent}
.modal-content::-webkit-scrollbar-thumb{background:var(--border-h);border-radius:3px}
.modal-close{position:absolute;top:16px;right:16px;background:transparent;border:none;color:var(--dim);cursor:pointer;padding:8px;transition:color .2s;display:flex;align-items:center;justify-content:center;border-radius:50%}
.modal-close:hover{color:var(--text);background:var(--input-bg)}
.modal-body{color:var(--muted);font-size:13px;line-height:1.8}
.modal-body h2{font-family:'Cormorant Garamond',serif;font-size:28px;color:var(--text);margin:0 0 20px;font-weight:400;letter-spacing:-.01em}
.modal-body h2.mt{margin-top:40px}
.modal-body p{margin-bottom:16px}
.modal-body p:last-child{margin-bottom:0}
.modal-body strong{color:var(--text);font-weight:500;margin-right:4px}