:root{font-family:"Helvetica Now Display","Helvetica Now Text",Helvetica,Arial,sans-serif;font-synthesis:none;color:#222;--progress:0;--blue:#006cae;--line:#ffffff28}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#f3f3f2}body.enhanced{background:rgb(calc(243 - var(--progress)*226),calc(243 - var(--progress)*226),calc(242 - var(--progress)*223))}button,input{font:inherit}button,a,summary{-webkit-tap-highlight-color:transparent;outline-offset:5px}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible{outline:3px solid #4ca7df}button{border:0;background:none;color:inherit;cursor:pointer}a{color:inherit;text-decoration:none}[hidden]{display:none!important}.skip{position:absolute;top:-80px;left:20px;z-index:10;padding:12px;background:white}.skip:focus{top:15px}.hero{height:100svh;min-height:600px;position:relative;text-align:center;padding:35px 24px}.identity img{width:190px;height:auto;display:block;margin:auto}.identity p{font-size:12px;margin:12px 0;color:#6e6e73}.object-area{position:absolute;width:min(600px,82vw);left:50%;top:210px;transform:translateX(-50%);z-index:2;transform-origin:top center}.stage{aspect-ratio:410.771/234.726;perspective:1300px;position:relative;touch-action:pan-y}.stage:before{content:"";position:absolute;inset:65% 8% -10%;background:#000;filter:blur(24px);opacity:var(--shadow-opacity,.16);border-radius:50%;transform:translate(var(--shadow-x,0px),var(--shadow-y,0px)) scaleY(.25);pointer-events:none;transition:transform .3s,opacity .3s}.card{padding:0;display:block;width:100%;height:100%;position:relative;transform-style:preserve-3d;transform:rotateX(2deg);transition:transform .65s cubic-bezier(.2,.8,.2,1);touch-action:pan-y;border-radius:2px}.face{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;border-radius:2px;overflow:hidden;background:black;box-shadow:0 18px 35px -20px #0009,0 1px 2px #0004;pointer-events:none}.face img{width:100%;height:100%;display:block;object-fit:contain}.front{transform:translateZ(1px)}.back{transform:rotateY(180deg) translateZ(1px)}.uv{position:absolute;inset:0;mask:url('assets/uv-mask.png') center/100% 100%;-webkit-mask:url('assets/uv-mask.png') center/100% 100%;background:radial-gradient(ellipse at var(--light-x,50%) var(--light-y,35%),#fff7 0%,#fff2 22%,transparent 55%);mix-blend-mode:screen;opacity:.48;pointer-events:none}.card-tools{display:flex;justify-content:center;gap:28px;margin-top:25px;color:#606065;font-size:12px}.card-tools button{min-height:44px;padding:10px}.hint{font-size:10px;text-align:center;color:#7b7b80;margin:0}.hero-actions{position:absolute;bottom:100px;left:0;right:0;display:flex;justify-content:center;gap:32px;font-size:14px}.hero-actions a,.hero-actions button{min-height:44px;padding:12px 0}.hero-actions a:first-child{color:var(--blue)}.scroll-cue{position:absolute;bottom:38px;left:50%;transform:translateX(-50%);font-size:11px;color:#777;min-height:32px;padding:10px}.scroll-cue span{margin-left:16px}.contact{background:#111113;color:#f5f5f7;min-height:100svh;padding:300px 24px 60px;position:relative}.contact-content{max-width:620px;margin:auto}.back-link{display:inline-block;font-size:12px;color:#a1a1a6;min-height:44px;padding:12px 0;margin-bottom:24px}.eyebrow{font-size:10px;color:#a1a1a6;letter-spacing:.08em;margin:0 0 12px}h1{font-size:clamp(38px,5vw,52px);line-height:1.05;letter-spacing:-.04em;font-weight:650;margin:0 0 30px}.contact-links>a{display:grid;grid-template-columns:1fr auto;gap:8px 15px;padding:22px 0;border-bottom:1px solid var(--line)}.contact-links span{grid-column:1;font-size:12px;color:#a1a1a6}.contact-links strong{grid-column:1;font-size:clamp(21px,3vw,29px);font-weight:500;letter-spacing:-.02em;overflow-wrap:anywhere}.contact-links b{grid-column:2;grid-row:1/3;align-self:center;font-weight:400;font-size:24px;color:#54b1ec}.detail-footer{display:flex;align-items:center;justify-content:space-between;padding:20px 0}.detail-footer p{font-size:11px;color:#a1a1a6;line-height:1.7}.detail-footer button{font-size:13px;min-height:44px;color:#54b1ec}summary{cursor:pointer;min-height:44px;padding:14px 0;font-size:12px;color:#a1a1a6}details{border-top:1px solid var(--line)}details p{font-size:12px;color:#a1a1a6;line-height:1.6}details img{display:block;margin:20px auto;background:white}label{display:block;font-size:11px;color:#a1a1a6}input{display:block;width:100%;border:1px solid #7775;border-radius:4px;background:#ffffff0a;color:inherit;padding:12px 8px;font-size:11px;margin:8px 0}#copy,#copy-share,#update{padding:12px 0;min-height:44px;color:#54b1ec;font-size:13px}.enhanced .contact{background:transparent}.enhanced .object-area .card-tools,.enhanced .object-area .hint{opacity:calc(1 - var(--progress)*2)}.enhanced .object-area[data-contact="true"] .card-tools,.enhanced .object-area[data-contact="true"] .hint{visibility:hidden}.enhanced .object-area[data-contact="true"] .card{cursor:default}dialog{border:0;border-radius:16px;padding:40px 30px;background:#fafafa;color:#222;width:min(380px,calc(100% - 32px));max-height:calc(100dvh - 32px);box-shadow:0 20px 80px #0003}dialog::backdrop{background:#0007}dialog h2{font-size:36px;letter-spacing:-.04em;margin:0 0 25px}dialog img{display:block;margin:auto auto 25px}.close{position:absolute;right:12px;top:8px;font-size:28px;width:44px;height:44px}dialog input{background:white}dialog label{color:#666}#share-status{font-size:12px;color:#666}@media(max-width:650px){.hero{padding-top:32px;min-height:570px}.identity img{width:170px}.object-area{width:84vw}.hero-actions{bottom:100px;gap:27px;font-size:13px}.card-tools{gap:20px;margin-top:18px;font-size:11px}.contact{padding-top:245px;padding-bottom:calc(40px + env(safe-area-inset-bottom))}.back-link{margin-bottom:18px}.contact-links>a{padding:20px 0}.scroll-cue{bottom:35px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.card{transition:none}.stage:before{transition:none}.uv{opacity:.2}}
body{overflow-anchor:none}
/* One dock owns all first-scene controls; it departs before card travel. */
.hero{padding:0}.object-area{width:min(640px,84vw)}.card-tools{display:flex;gap:30px;justify-content:center;align-items:center;margin:30px auto 0;opacity:1}.card-tools a,.card-tools button{font-size:13px;min-height:44px;padding:12px 4px}.card-tools a[href^="tel:"]{color:var(--blue)}
.uv,.uv-shade{position:absolute;inset:0;mask:url('assets/uv-mask.png') center/100% 100%;-webkit-mask:url('assets/uv-mask.png') center/100% 100%;pointer-events:none}.uv{background:linear-gradient(var(--light-angle,112deg),transparent calc(var(--light-x,50%) - 9%),#fff2 calc(var(--light-x,50%) - 5%),#fff calc(var(--light-x,50%) - 1%),#fff9 calc(var(--light-x,50%) + 1%),transparent calc(var(--light-x,50%) + 7%)),radial-gradient(ellipse at var(--light-x,50%) var(--light-y,38%),#fff3,transparent 62%);opacity:var(--specular,.5);mix-blend-mode:screen}.uv-shade{background:linear-gradient(var(--light-angle,112deg),transparent 15%,#0005 calc(var(--light-x,50%) - 14%),transparent calc(var(--light-x,50%) + 8%));mix-blend-mode:multiply;opacity:.5}
.enhanced .object-area .card-tools{opacity:1}.brand-signature{display:block;width:170px;height:auto;margin:0 0 24px;opacity:var(--brand-progress,1)}.enhanced .brand-signature{opacity:var(--brand-progress,0)}.preview-note{font-size:12px;line-height:1.5;color:#786029;background:#f2edde;padding:12px;border-radius:6px;margin:0 0 22px}#share-dialog{width:min(430px,calc(100% - 32px));padding:46px 30px 28px}#share-dialog>img{width:min(260px,100%);height:auto;image-rendering:pixelated}.share-actions{display:flex;flex-wrap:wrap;gap:4px 22px;margin:20px 0}.share-actions a,.share-actions button{font-size:13px;min-height:44px;padding:12px 0;color:#006cae}#share-link{color:#333}dialog #copy-share{color:#006cae}.contact-content{padding-bottom:12px}
@media(max-width:650px){.object-area{width:86vw}.card-tools{gap:22px;margin-top:25px}.card-tools a,.card-tools button{font-size:12px;min-height:44px}.brand-signature{width:150px;margin-bottom:22px}#share-dialog{padding:44px 24px 24px}}
@media(prefers-reduced-motion:reduce){.uv{opacity:.35}.uv-shade{opacity:.25}.enhanced .brand-signature{opacity:1}}
#close-share{position:sticky;float:right;top:0;margin:-36px -12px 0 0;z-index:4;background:#fafafa;border-radius:50%}
@media(max-width:650px){.contact{padding-bottom:calc(140px + env(safe-area-inset-bottom))}}
/* Scroll uses cached geometry and compositor transforms/opacity only. */
body.enhanced{background:#f3f3f2;isolation:isolate}#scene-backdrop{position:fixed;inset:0;background:#111113;z-index:-1;opacity:0;pointer-events:none;will-change:opacity}.enhanced .object-area{top:0;will-change:transform}.brand-signature{opacity:0}.enhanced .brand-signature{opacity:0}.stage:before{filter:blur(18px);transition:none}.card{will-change:transform}.face{border-radius:2px;box-shadow:0 14px 24px -17px #0008,0 1px 2px #0005;outline:1px solid #ffffff12}/* The accessible HTML card is retained under one solid-object canvas. */
#material{position:absolute;left:-12%;top:-21%;width:124%;height:142%;pointer-events:none;display:none;z-index:2}.solid-ready #material{display:block}.solid-ready .face{visibility:hidden}.solid-ready .card{z-index:3;background:transparent;transform:none!important}.solid-ready .stage:before{inset:auto 5% -24px;height:22px;opacity:.22;filter:blur(15px);transform:translate(var(--shadow-x,0px),0)}.card{transform:rotateX(8deg)}
.uv{opacity:.25;background:linear-gradient(112deg,transparent 20%,#fff6 47%,transparent 72%)}.uv-shade{display:none}
#intro-screen{display:none;position:fixed;inset:0;z-index:20;background:#000;pointer-events:none}.intro-boot #intro-screen{display:block}.intro-mark{position:absolute;left:50%;top:50%;width:min(92vw,88svh);height:auto;transform:translate(-50%,-50%);opacity:0}.intro-boot .skip:focus{z-index:30}
@media(prefers-reduced-motion:reduce){#intro-screen{display:none!important}.object-area,.card{will-change:auto}}
