/* ═══ ANATOMY — real cup with zoom callouts ═══ */
.expstage{height:auto;min-height:min(78vh,680px);align-items:center}
.expstage::before{width:52%;left:24%}
.anat{position:relative;width:100%;max-width:560px;aspect-ratio:1/1.26;margin:0 auto;z-index:2}
/* the hero cup — same double-wall CSS cup as the rest of the site, big */
.anat .cup{position:absolute;left:33%;top:8%;width:38%;height:auto;aspect-ratio:1/1.32;--cw:210px}
.anat .cup .body{background-image:url(GPC-logo.png),var(--cupg);background-repeat:no-repeat;background-position:50% 44%,var(--cuppos);background-size:50% auto,100% 100%,100% 100%,100% 100%,100% 100%,100% 100%;background-blend-mode:multiply,var(--cupblend)}
.anat .cup .body::before,.anat .cup .body::after{display:none}
.anat .cup .band{display:none}
/* double-wall: outer printed sleeve stops short of the base, white inner cup below */
.anat .cup .body{clip-path:polygon(13.5% 0,86.5% 0,76.25% 82%,23.75% 82%)}
.anat .cup .inner{position:absolute;inset:5% 0 0;clip-path:polygon(25.5% 80%,74.5% 80%,72% 100%,28% 100%);background:linear-gradient(100deg,#8e857a 0%,#efe9df 22%,#fff 46%,#e6dfd3 68%,#a99f90 88%,#5c5854 100%);z-index:0}
.anat .cup .step{position:absolute;left:23.75%;right:23.75%;top:calc(5% + 95% * .82 - 1.1%);height:2.2%;border-radius:50%;background:linear-gradient(180deg,#fff,#cfc7b8);box-shadow:0 1px 2px rgba(0,0,0,.35);z-index:1}
/* zoom lens: circular magnified swatch of one part */
.zm{position:absolute;width:19%;aspect-ratio:1;border-radius:50%;border:1px solid var(--borderL);background:#1e1c1a;overflow:hidden;box-shadow:0 0 0 4px #0e0d0c,0 18px 40px -20px rgba(0,0,0,.9);transition:border-color .3s,transform .4s cubic-bezier(.2,.8,.2,1),box-shadow .3s;transform:scale(.94);opacity:.85}
.zm.on{border-color:var(--acc,var(--tan));transform:scale(1.06);opacity:1;box-shadow:0 0 0 4px #0e0d0c,0 0 0 5px var(--acc,var(--tan)),0 18px 40px -20px rgba(0,0,0,.9)}
.zm i{position:absolute;inset:0;display:block}
/* leader: hairline from hotspot to lens, with a dot at the hotspot */
.ld{position:absolute;height:1px;background:linear-gradient(90deg,var(--acc,var(--tan)),rgba(200,184,154,.25));transform-origin:0 50%;opacity:.55;transition:opacity .3s}
.ld::before{content:"";position:absolute;left:-4px;top:-4px;width:9px;height:9px;border-radius:50%;background:#0e0d0c;border:1.5px solid var(--acc,var(--tan));box-shadow:0 0 10px var(--acc,var(--tan))}
.ld.on{opacity:1}
.ld.on::before{animation:ldping 1.6s ease-out infinite}
@keyframes ldping{0%{box-shadow:0 0 0 0 var(--acc,var(--tan))}100%{box-shadow:0 0 0 12px transparent}}
/* lens tags */
.zt{position:absolute;max-width:27%;white-space:normal;font-family:var(--mono);font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink3);line-height:1.5;transition:color .3s}
.zt b{display:block;color:var(--ink);font-weight:500;font-size:10.5px}
.zt.on b{color:var(--acc,var(--tan))}
/* ── the six lens fills — magnified cutaway drawings ── */
/* 01 rolled rim: cross-section of the curl */
.zm.rim i{background:radial-gradient(circle at 50% 62%,#f3eee6 0 26%,#d8d0c2 27% 30%,transparent 31%),radial-gradient(circle at 50% 62%,transparent 0 17%,#1a1816 18% 20%,transparent 21%),linear-gradient(180deg,transparent 60%,#e6dfd3 61% 100%),linear-gradient(90deg,#1a1816,#2a2826)}
.zm.rim i::after{content:"";position:absolute;left:47%;top:66%;width:6%;height:34%;background:#f3eee6;box-shadow:inset -3px 0 0 #b9b0a2}
/* 02 print layer: halftone dots on orange */
.zm.print i{background:radial-gradient(circle,#fff 0 22%,transparent 23%) 0 0/14px 14px,radial-gradient(circle,rgba(0,0,0,.35) 0 18%,transparent 19%) 7px 7px/14px 14px,linear-gradient(135deg,#F15A24,#c9491c)}
.zm.print i::after{content:"GPC";position:absolute;inset:0;display:grid;place-items:center;font:900 26px Montserrat,sans-serif;color:#fff;letter-spacing:.02em;text-shadow:0 2px 6px rgba(0,0,0,.35)}
/* 03 paperboard: fibre grain, edge-on layers */
.zm.board i{background:repeating-linear-gradient(90deg,rgba(0,0,0,.06) 0 1px,transparent 1px 3px),repeating-linear-gradient(0deg,#f3eee6 0 8px,#e6dfd3 8px 9px,#efe9df 9px 18px,#d8d0c2 18px 19px)}
.zm.board i::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 40% 40%,rgba(255,255,255,.35),transparent 55%),radial-gradient(1px 1px at 20% 30%,#b9b0a2 50%,transparent 51%),radial-gradient(1px 1px at 70% 60%,#b9b0a2 50%,transparent 51%),radial-gradient(1px 1px at 45% 80%,#b9b0a2 50%,transparent 51%)}
/* 04 barrier: thin green film over board, water bead */
.zm.barrier i{background:linear-gradient(180deg,#e6dfd3 0 58%,#1AA37A 58% 66%,#0f6e52 66% 70%,#f3eee6 70% 100%)}
.zm.barrier i::before{content:"";position:absolute;left:30%;top:36%;width:40%;height:24%;border-radius:50% 50% 50% 50%/60% 60% 40% 40%;background:radial-gradient(circle at 35% 30%,rgba(255,255,255,.95),rgba(200,230,255,.35) 40%,rgba(120,180,220,.25) 70%);box-shadow:0 2px 4px rgba(0,0,0,.25)}
.zm.barrier i::after{content:"";position:absolute;left:0;right:0;top:58%;height:8%;background:repeating-linear-gradient(90deg,transparent 0 6px,rgba(255,255,255,.25) 6px 7px)}
/* 05 side seam: two wall plies overlapping, seal marks */
.zm.seam i{background:linear-gradient(90deg,#e6dfd3 0 46%,#b9b0a2 46% 47%,#f3eee6 47% 100%)}
.zm.seam i::before{content:"";position:absolute;left:38%;top:0;bottom:0;width:20%;background:linear-gradient(90deg,#efe9df,#d8d0c2);box-shadow:-3px 0 6px rgba(0,0,0,.18)}
.zm.seam i::after{content:"";position:absolute;left:44%;top:10%;bottom:10%;width:8%;background:repeating-linear-gradient(0deg,transparent 0 6px,#F9B233 6px 8px);opacity:.9}
/* 06 bottom disc: folded skirt inside the wall */
.zm.disc i{background:linear-gradient(180deg,#e6dfd3 0 40%,#f3eee6 40% 100%)}
.zm.disc i::before{content:"";position:absolute;left:0;right:0;top:40%;height:9%;background:#d8d0c2;box-shadow:inset 0 2px 0 rgba(255,255,255,.6),0 2px 0 #b9b0a2}
.zm.disc i::after{content:"";position:absolute;left:14%;right:14%;top:52%;height:20%;border:2px solid #b9b0a2;border-top:0;border-radius:0 0 10px 10px;background:#efe9df}
@media(max-width:940px){.expstage{min-height:0}.anat{max-width:420px}.zt{font-size:8.5px}.zt b{font-size:9.5px}}
