/* Imperial controls: recognizable transport glyphs, framed like an imperial seal. */
.imperial-control{--control-size:72px;width:var(--control-size);height:var(--control-size);min-width:var(--control-size);min-height:var(--control-size);position:relative;display:inline-grid;place-items:center;padding:0;color:#ffe1a6;background:radial-gradient(circle,#48381d 0,#18131b 65%);border:1px solid #e3be77a0;border-radius:23%;box-shadow:inset 0 0 0 5px #0d0b14,inset 0 0 0 6px #bb995853,0 0 30px #d6ac4620;isolation:isolate;transition:transform .4s var(--ease),box-shadow .4s}
.imperial-control:before,.imperial-control:after{content:'';position:absolute;inset:8px;border:1px solid #ead29380;border-radius:13%;pointer-events:none;transform:rotate(45deg);z-index:-1}.imperial-control:after{inset:-6px;border-color:#e9d19a25;border-radius:26%;transform:none}
.imperial-control svg{width:34px;height:34px;filter:drop-shadow(0 0 8px #f5d89070)}
.imperial-control:hover{color:#fff1d3;transform:translateY(-2px);box-shadow:inset 0 0 0 5px #0d0b14,inset 0 0 0 6px #ffe7b080,0 0 42px #d6ac4640}
.control-orbit{position:absolute;inset:-13px;border:1px solid transparent;border-top-color:#91ece8a0;border-bottom-color:#91ece860;border-radius:50%;animation:orbit 16s linear infinite;pointer-events:none}
.hero-play{--control-size:78px;margin:12px 13px 12px 8px}.hero-actions{align-items:center}.hero-actions .outline-button{border:0;background:none;backdrop-filter:none;padding-inline:20px}.hero-actions .outline-button:hover{color:var(--cyan)}
.control-small{--control-size:43px;border-radius:10px}.control-small:before{inset:7px;border-radius:3px;opacity:.45}.control-small:after{display:none}.control-small svg{width:23px;height:23px}.control-small .control-orbit{display:none}
.stage-pause{--control-size:76px;position:absolute;left:calc(50% - 38px);top:calc(50% - 38px);opacity:0;transform:scale(.94);transition:opacity .35s,transform .35s;pointer-events:none}
.show-controls.playing .film-toggle:hover .stage-pause,.film-toggle:focus-visible .stage-pause{opacity:1;transform:scale(1)}
.resume-play{--control-size:62px;flex:none;margin:0 14px 0 7px}.collection-heading{align-items:center}
.cinema.collecting .film-toggle{pointer-events:none}
/* A frozen frame stays behind the emitted objects. No navigation or video restart. */
.projection-card{animation:none!important}.collecting:not(.departing) .projection-card{animation:objectResolve 1.15s calc(var(--i)*130ms + 100ms) var(--ease) both!important}
.product-visual:before{content:'';position:absolute;width:76%;left:12%;bottom:8%;height:2px;background:#d2fff7;box-shadow:0 0 9px #8dfff6,0 0 28px #70ecdca0;z-index:3;opacity:0;pointer-events:none}
.collecting:not(.departing) .product-visual:before{animation:objectScan 1.15s calc(var(--i)*130ms + 100ms) var(--ease) both}
.collecting:not(.departing) .product-picture{animation:objectLift 1.35s calc(var(--i)*130ms + 100ms) var(--ease) both}
.product-visual .beam{opacity:.25;background:linear-gradient(0deg,#75e9f23b,transparent 85%);clip-path:polygon(35% 100%,65% 100%,100% 0,0 0);filter:blur(3px)}
.collecting:not(.departing) .holo-plinth{animation:emitterIgnite 1s calc(var(--i)*130ms) ease-out both}
.product-main:hover .product-picture{filter:drop-shadow(0 0 14px #93eee93b);transform:translateY(-12px) scale(1.035)}
.cinema.departing .projection-card{opacity:0;transform:translateY(30px);transition:opacity .25s,transform .3s}
@keyframes objectResolve{0%{opacity:0;filter:blur(3px)}25%{opacity:1}100%{opacity:1;filter:none}}
@keyframes objectLift{0%{clip-path:inset(100% 0 0);transform:translateY(35px) scale(.95);opacity:0;filter:brightness(1.4) saturate(.5)}15%{opacity:1}70%{clip-path:inset(0);filter:brightness(1.15) saturate(.85)}100%{clip-path:inset(0);transform:translateY(-8px);opacity:1;filter:none}}
@keyframes objectScan{0%{bottom:8%;opacity:0;transform:scaleX(.4)}18%{opacity:.85;transform:scaleX(1)}80%{opacity:.5}100%{bottom:100%;opacity:0;transform:scaleX(.6)}}
@keyframes emitterIgnite{0%{opacity:.1;scale:.8}60%{opacity:1;box-shadow:0 0 32px #9affec80,inset 0 0 18px #9affec40}100%{opacity:1;scale:1}}
/* Character presence is full-body; the field moves, the character is never rotated edge-on. */
.character-dialog{width:min(1450px,96vw);padding:24px 36px;background:#0d0b14;overflow-x:hidden}
.character-layout{grid-template-columns:1.45fr 1fr;gap:40px;padding-top:15px;min-height:610px}
.character-hologram{height:min(69svh,700px);min-height:535px;overflow:hidden;background:none;--field:#91e6eb;--px:0px;--py:0px}
.character-aura{position:absolute;inset:5% -10%;background:radial-gradient(ellipse at 50% 62%,#25969e25,transparent 65%);pointer-events:none;transform:translate(var(--px),var(--py));transition:transform .4s ease-out}
.character-hologram .orbit-ring{inset:9% 3% 14%;border-color:#a9babc1c;transform:rotateZ(-22deg) rotateY(30deg);z-index:0}.character-hologram .r2{inset:14% 5% 20%;transform:rotateZ(29deg) rotateY(-35deg);border-style:dashed;border-color:#dfba792d}
.character-coordinate{position:absolute;inset:5% 9% 15%;border:1px solid #8ee4e012;clip-path:polygon(0 0,26% 0,26% 1%,1% 1%,1% 20%,0 20%,0 100%,100% 100%,100% 80%,99% 80%,99% 99%,74% 99%,74% 100%,0 100%);pointer-events:none}
.character-watermark{position:absolute;inset:12% 0 auto;text-align:center;font-size:clamp(85px,11vw,180px);font-weight:900;color:transparent;-webkit-text-stroke:1px #d3b87913;line-height:1;z-index:0;pointer-events:none}
.character-print{position:absolute;inset:2% 2% 12%;width:96%;height:86%;margin:0;overflow:visible;mask:none;filter:none;z-index:2;transform:translate(calc(var(--px)*-.3),calc(var(--py)*-.3));transition:transform .4s ease-out}
.character-sprite{width:100%;height:100%;position:relative}.character-sprite svg{width:100%;height:100%;display:block;stroke:none;filter:drop-shadow(0 0 8px #6ae5e92e)}
.character-sprite .character-layer{position:absolute;inset:0;opacity:0;transition:opacity .2s;mask-image:linear-gradient(0deg,transparent,#000 5% 97%,transparent),linear-gradient(90deg,transparent,#000 10% 90%,transparent);mask-composite:intersect}
.character-sprite .character-layer.active{opacity:1}
.character-hologram .print-wire{opacity:.13;inset:3% 16% 3%;mask-image:radial-gradient(ellipse,#000,transparent 70%);z-index:3;pointer-events:none}
.print-fragments{position:absolute;inset:0;opacity:0;background:repeating-linear-gradient(0deg,transparent 0 31px,#84f9f5aa 31px 32px,transparent 32px 79px);mix-blend-mode:screen;pointer-events:none}
.character-hologram .holo-plinth{bottom:12%;height:34px;left:16%;width:68%;z-index:1}.character-hologram .holo-plinth:after{content:'';position:absolute;inset:10px -13px;border:1px solid #e1bb7455;border-radius:50%}
.character-hologram>.micro{top:0;right:20px;z-index:4;letter-spacing:2px}.character-hologram .glass-button{bottom:7px;border:0;background:none;color:#aab9c4;font-size:10px}
.character-hologram.assembling .character-print{animation:printBody 2.1s var(--ease) both}.character-hologram.assembling .printing-laser{animation:printLaser 2.1s var(--ease) both;z-index:5;left:13%;right:13%}.character-hologram.assembling .print-fragments{animation:signalFragments 1.6s ease-out both}
.character-hologram.switching .character-print{animation:signalSwitch .65s steps(1,end) both}.character-hologram.switching .print-fragments{animation:signalFragments .65s steps(1,end) both}
.character-copy{position:relative;z-index:3}.character-copy>h2{font-size:clamp(60px,6vw,95px);line-height:1.06;margin:12px 0;color:#f1d8ac}.character-copy>p{font-size:21px;max-width:350px;font-weight:400;margin:16px 0 24px}.character-copy>.eyebrow{font-size:9px;letter-spacing:.5px}
.identity-states{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin:22px 0 28px}.identity-states button{padding:8px 12px;font-size:11px;border:1px solid #d9b87935;color:#ad9cae;transition:color .2s,border-color .2s}.identity-states button[aria-pressed=true]{color:var(--cyan);border-color:#8ee4e075;background:#73dedb0b}.identity-states .cycle-state{border:0;padding-inline:5px;font-size:17px;min-width:40px;min-height:40px}.identity-status{font-size:11px;letter-spacing:.8px;color:var(--cyan);min-height:20px;margin:10px 0 0}.character-products .mini-art{height:165px;aspect-ratio:auto;border:0;background:radial-gradient(ellipse at 50% 80%,#9b792319,transparent 65%)}.character-products .mini-art img{object-fit:contain}
.character-products .mini-product:hover{transform:translateY(-4px);transition:transform .3s}.subheading span{color:#9f8da2}.character-tabs{padding-top:4px;top:-24px}
@keyframes signalSwitch{0%,100%{transform:none;filter:none}12%{transform:translateX(7px);filter:drop-shadow(-5px 0 #71e8ec99)}24%{transform:translateX(-5px);clip-path:inset(0 0 48%)}36%{transform:none;clip-path:inset(19% 0 0)}48%{transform:translateX(3px);clip-path:inset(0)}66%{transform:none;filter:drop-shadow(4px 0 #c08eff60)}}
@keyframes signalFragments{0%,100%{opacity:0}18%{opacity:.38}30%{opacity:.08}52%{opacity:.24}70%{opacity:0}}
/* Light touch on the landing selection; large photographic frames no longer crop the faces. */
.talent-open>.portrait{background:none!important;aspect-ratio:1;filter:none;mask:none;overflow:hidden}.talent-open>.portrait .character-layer{height:100%;width:100%}.talent-open>.portrait svg{width:100%;height:100%;stroke:none}.talent-open{background:radial-gradient(ellipse at 50% 65%,#27464f28,transparent 68%)}
.talent-caption{z-index:3;text-shadow:0 2px 15px #000}.talent-open:hover>.portrait{filter:none;transform:translateY(-3px)}
@media(max-width:1000px){.character-layout{grid-template-columns:1.2fr 1fr;gap:20px}.character-hologram{height:580px;min-height:480px}.character-copy>h2{font-size:62px}.character-copy>p{font-size:18px}.character-products .mini-art{height:130px}.identity-states{gap:4px}.identity-states button{font-size:10px;padding:8px}}
@media(max-width:650px){.hero-actions{display:flex;gap:15px}.hero-play{--control-size:62px;margin:10px}.hero-actions .outline-button{font-size:12px}.hero-copy{bottom:84px}.hero-sentence{margin-bottom:10px}.demo-caption{font-size:9px;margin-top:10px}.resume-play{--control-size:48px;position:absolute;left:3px;top:5px;margin:0}.resume-play svg{width:25px;height:25px}.resume-play .control-orbit{inset:-7px}.collection-heading{padding-left:65px;position:relative}.collection-footer{max-width:100%;min-height:20px;margin-top:13px}.collection-heading h2{font-size:24px}.control-small{--control-size:37px}.transport .control-small svg{width:20px}.control-small:before{opacity:.35}.stage-pause{--control-size:62px;left:calc(50% - 31px);top:calc(50% - 31px)}.character-dialog{width:calc(100vw - 12px);padding:18px;max-height:97svh}.character-layout{grid-template-columns:1fr;min-height:0;gap:0;padding-top:0}.character-hologram{height:405px;min-height:0}.character-print{inset:0 0 12%;width:100%;height:88%}.character-hologram>.micro{font-size:7px;right:7px}.character-hologram .holo-plinth{height:22px}.character-watermark{font-size:100px;top:18%}.character-copy>h2{font-size:49px;margin:8px 0}.character-copy>p{font-size:17px;margin:12px 0}.character-copy>.eyebrow{font-size:8px}.character-tabs{margin-left:28px;top:-18px}.character-tabs button{padding:8px 13px}.identity-states{margin:13px 0 20px}.identity-states button{font-size:11px}.character-products .mini-art{height:130px}.character-print .print-wire{opacity:.08}.character-products{margin-top:10px}.talent-open>.portrait{aspect-ratio:.9}.talent-caption{bottom:22px}.talent-open>.portrait svg{height:100%}.talent-card>p{font-size:13px}.collection-overlay{max-height:66svh}.product-info h3{min-height:30px}}
@media(max-height:580px) and (min-width:651px){.character-hologram{height:490px}.character-layout{min-height:0}.product-visual{height:26vh}.resume-play{--control-size:45px}.collection-overlay{inset:16% 6% 66px}.collection-heading h2{font-size:24px}}
@media(prefers-reduced-motion:reduce){.collecting:not(.departing) .projection-card,.collecting:not(.departing) .product-picture{animation:none!important}.character-hologram.switching .character-print{animation:none!important}}
.reduce-motion .collecting:not(.departing) .projection-card,.reduce-motion .collecting:not(.departing) .product-picture{animation:none!important;opacity:1;clip-path:none}.reduce-motion .character-hologram.switching .character-print{animation:none!important}
/* The source plates carry a dark matte; blend the projected light into the field. */
.character-print{mix-blend-mode:lighten;isolation:auto}.character-sprite svg{filter:none}.character-layer{mask-image:linear-gradient(0deg,transparent 0,#000 5% 96%,transparent 100%)}
.talent-open>.portrait{mix-blend-mode:lighten}.talent-open>.portrait svg{filter:none}.character-copy>p.identity-status{font-size:11px;font-weight:400;letter-spacing:.5px;margin:10px 0;color:#9bdbde}
.focus-art.isolated{position:absolute;inset:5% 4% 9%;width:auto;height:auto;min-width:0;min-height:0}
.focus-art.isolated>.isolated-object{position:absolute;inset:0;width:100%;height:100%;max-height:100%}
.character-hologram .identity-states{position:absolute;bottom:4px;left:0;right:0;justify-content:center;margin:0;z-index:6}
.character-hologram #reprint{top:0;bottom:auto;left:0;z-index:5;padding:5px 8px}
.character-layer:not(.active){visibility:hidden}
@media(max-width:650px){.character-hologram #reprint{display:none}}
/* Central play on the title image and on the paused film, with readable halo. */
#start.hero-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);margin:0;z-index:5;background:radial-gradient(circle,#182432ee,#0b1018eb 60%,#d5be8428);box-shadow:0 0 0 9px #a2eee808,0 0 42px #86e8e24a,0 10px 35px #0009}
#start.hero-play:hover{transform:translate(-50%,-50%) scale(1.06)}#start.hero-play>svg{filter:drop-shadow(0 0 7px #a5eeed)}
#resume.resume-play{position:fixed;left:50%;top:calc(50% - 8.5vh);transform:translate(-50%,-50%);margin:0;z-index:12;background:radial-gradient(circle,#152432ef,#0a101de8);box-shadow:0 0 32px #8ef0e557,0 0 65px #80ebea22,0 8px 25px #0009;--control-size:60px}
#resume.resume-play:hover{transform:translate(-50%,-50%) scale(1.06)}
@media(max-width:700px){#start.hero-play{top:28%;--control-size:63px}#resume.resume-play{top:25%;--control-size:53px}.hero-actions{min-height:20px}}
@media(prefers-reduced-motion:reduce){#start.hero-play,#resume.resume-play{transition:none}}

.cinema:not(.collecting)>#resume{display:none}.cinema.collecting>#resume{display:grid}
