/* Gesture exploration shares the illustrated campus and open composition of the exhibit. */
#gesture-toggle{position:absolute;right:318px;top:26px;width:50px;height:50px;border:1px solid #dceaff;border-radius:50%;display:grid;place-items:center;z-index:101;color:#fff;background:transparent}
#gesture-toggle svg{width:28px;height:28px;transform:translateY(-2px)}
#gesture-toggle:hover,#gesture-toggle:focus-visible{background:#fff;color:#245080;border-color:#fff}
#gesture-toggle[data-active=true]{background:#ffe0a5;color:#234c78;border-color:#ffe0a5}
.gesture-toggle-label{position:absolute;top:62px;white-space:nowrap;font-size:26px;opacity:0;background:#315b91;padding:10px 16px;border-radius:8px;pointer-events:none}
#gesture-toggle:hover .gesture-toggle-label,#gesture-toggle:focus-visible .gesture-toggle-label{opacity:1}
#stage.is-travelling>#gesture-toggle{visibility:hidden}
#gesture-panel{position:absolute;inset:0;background:#315b91;z-index:151;overflow:hidden;color:#fff}
#gesture-panel::before{content:'';position:absolute;inset:0;background:url('../finish-audit-20261026/web/campus.webp') center/cover;mask-image:linear-gradient(90deg,transparent 24%,#000 100%);opacity:.45;pointer-events:none}
#gesture-close{position:absolute;right:66px;top:36px;z-index:2;width:56px;height:56px;font-size:38px;background:transparent;border:1px solid #dbe9fc;border-radius:50%}
#gesture-close:hover{background:#fff;color:#315b91}
.gesture-copy{position:absolute;left:100px;top:132px;width:660px}
#gesture-mode{font-size:28px;color:#ffe0a5;line-height:1.5;margin:0 0 32px}
#gesture-title{font-size:76px;line-height:1.23;letter-spacing:0;margin:0;font-weight:700}
#gesture-description{font-size:32px;line-height:1.65;margin:28px 0 0;max-width:620px;color:#fff}
#gesture-actions{display:flex;gap:36px;align-items:center;margin-top:42px;flex-wrap:wrap}
#gesture-actions button{font-size:28px;min-height:66px;white-space:nowrap}
#gesture-actions .g-primary{padding:0 30px;background:#fff5df;color:#234b79;border-radius:34px;font-weight:600}
#gesture-actions button:not(.g-primary){color:#fff;padding:0 0 3px;border-bottom:1px solid #b5cee9}
#gesture-privacy{font-size:28px;line-height:1.7;color:#e7f0ff;margin:40px 0 0;max-width:620px}
#gesture-guide{position:absolute;left:900px;right:100px;top:180px;display:flex;flex-direction:column;gap:48px}
#gesture-guide>div{display:grid;grid-template-columns:100px 1fr;column-gap:30px;align-items:center}
#gesture-guide span{font-family:'Apple Color Emoji','Segoe UI Emoji',sans-serif;grid-row:span 2;font-size:76px;line-height:1.4}
#gesture-guide h2{font-size:36px;margin:0 0 9px;font-weight:600}
#gesture-guide p{font-size:28px;color:#f3f6ff;line-height:1.6;margin:0}
#gesture-panel-status{position:absolute;left:100px;bottom:53px;right:100px;font-size:28px;color:#ffe0a5;line-height:1.5}
#gesture-preview{position:absolute;left:800px;top:510px;width:260px;height:162px;border-radius:10px;overflow:hidden;background:#315b91}
#gesture-preview video{width:100%;height:100%;object-fit:cover;transform:scaleX(-1)}
#gesture-panel[data-phase=settings] #gesture-guide{top:130px;gap:30px}
#gesture-panel[data-phase=settings] #gesture-guide span{font-size:66px}
#gesture-panel[data-phase=loading] #gesture-panel-status::before,.g-space-load-mark{content:'';display:inline-block;width:28px;height:28px;margin-right:16px;vertical-align:-5px;border:3px solid #97b4dc;border-top-color:#ffe0a5;border-radius:50%;animation:g-loading 1.1s linear infinite}
#gesture-panel button:focus-visible,.g-setting-selected,#gesture-explorer button:focus-visible{outline:3px solid #ffe0a5;outline-offset:7px}
#gesture-explorer{position:absolute;inset:0;z-index:140;isolation:isolate;overflow:hidden;background:#315b91;color:#fff;font-family:inherit}
#gesture-explorer::before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#2f578ba3,transparent 90%),url('../finish-audit-20261026/web/campus.webp') center/cover;z-index:-2}
.g-atmosphere{position:absolute;inset:0;background:linear-gradient(0deg,#315b91 0%,transparent 29%);pointer-events:none;z-index:-1}
.g-top{position:absolute;top:28px;left:68px;right:68px;display:flex;align-items:center;justify-content:space-between;z-index:3}
.g-brand{font-size:32px;font-weight:700;letter-spacing:.2px}.g-brand span{font-size:28px;font-weight:400;color:#e8f1ff;margin-left:28px}
.g-top>div{display:flex;gap:34px}.g-top button{font-size:28px;padding:10px 0;background:transparent;border-bottom:1px solid transparent}
.g-top button:hover{border-color:#ffe0a5;color:#ffe0a5}
#g-content{position:absolute;left:0;right:0;top:103px;bottom:150px}
.g-scene-title{font-size:38px;line-height:1.35;font-weight:600;text-align:center;margin:10px 0 0}
.g-carousel{position:absolute;inset:80px 0 0;perspective:1800px}
.g-view-roles .g-carousel{top:42px}
.g-card{position:absolute;top:0;width:580px;height:570px;left:50%;margin-left:-290px;background:transparent;border:0;border-radius:0;overflow:visible;transform-origin:center;pointer-events:none}
.g-card.current{z-index:2}
.g-card.previous{transform:translateX(-570px) scale(.82);z-index:1}
.g-card.next{transform:translateX(570px) scale(.82);z-index:1}
.g-card-art{position:absolute;inset:0 0 142px;overflow:hidden;border-radius:18px;background:#557caa}
.g-card.current .g-card-art{outline:3px solid #ffe0a5;outline-offset:7px}
.g-card.previous .g-card-art,.g-card.next .g-card-art{filter:saturate(.82)}
.g-card-caption{position:absolute;top:455px;left:-35px;right:-35px;text-align:center}
.g-card-caption h2{font-size:38px;line-height:1.35;font-weight:650;margin:0}
.g-card.current .g-card-caption h2{color:#ffe0a5}
.g-card-caption p{font-size:30px;line-height:1.5;color:#fff;margin:14px 0 0}
.g-role-card .g-card-art{background:#557caa}
.g-role-plate{position:absolute!important;width:1110px!important;height:625px!important;max-width:none!important;object-fit:fill;left:-530px!important;top:-37px!important}
.g-role-scenery{position:absolute;inset:0;background:url('../finish-audit-20261026/web/campus.webp') 60% center/cover}
.g-person-cutout{position:absolute;height:450px;width:auto;max-width:none;left:50%;bottom:-20px;transform:translateX(-50%);object-fit:contain}
.g-place-art,.g-future-card-art{width:100%;height:100%;object-fit:cover;object-position:center}
#g-footer{position:absolute;left:80px;right:80px;bottom:38px;z-index:5;display:flex;flex-direction:column;align-items:center;gap:20px}
#g-instructions{display:flex;align-items:center;justify-content:center;gap:70px;padding:16px 0}
#g-instructions>span{display:flex;align-items:center;gap:17px;font-size:30px;line-height:1.5;white-space:nowrap}
#g-instructions b{font-family:'Apple Color Emoji','Segoe UI Emoji',sans-serif;font-size:39px;font-weight:400}
#g-instructions>span{position:relative;padding-bottom:8px}
#g-instructions>span::after{content:'';position:absolute;bottom:0;left:0;right:0;height:3px;background:#ffe0a5;transform:scaleX(0);transform-origin:left}
#g-instructions[data-active-action=confirm]>[data-action=confirm],#g-instructions[data-active-action=back]>[data-action=back],#g-instructions[data-active-action=swipe]>[data-action=swipe]{color:#ffe0a5}
#g-instructions[data-active-action=confirm]>[data-action=confirm]::after,#g-instructions[data-active-action=back]>[data-action=back]::after{transform:scaleX(var(--pose-progress,0))}
#gesture-explorer[data-swipe-preview=left] .g-card.next .g-card-caption h2,#gesture-explorer[data-swipe-preview=right] .g-card.previous .g-card-caption h2{color:#ffe0a5}
#g-zones>span.preview{color:#ffe0a5;border-color:#a6c3e7}
.g-future-loading{font-size:28px;line-height:1.5;color:#ffe0a5;margin:28px 0 0;animation:g-loading-label 180ms step-end}
.g-future-scene[data-future-ready=false]{background-color:#315b91;background-blend-mode:soft-light}
@keyframes g-loading-label{from{visibility:hidden}to{visibility:visible}}
#g-feedback{position:absolute;bottom:130px;left:100px;right:100px;text-align:center;font-size:28px;line-height:1.5;color:#ffe0a5;z-index:6;min-height:42px;pointer-events:none}
#g-back-progress{position:absolute;bottom:95px;min-width:260px;text-align:center;padding:12px 22px 20px;background:#315b91;font-size:28px;overflow:hidden;--progress:0}
#g-back-progress i{position:absolute;bottom:0;left:0;height:5px;width:calc(100% * var(--progress));background:#ffe0a5}
.g-welcome-copy{position:absolute;top:115px;left:130px;z-index:2}.g-welcome-copy h1{font-size:76px;line-height:1.28;font-weight:650;margin:0}.g-welcome-copy p{font-size:34px;line-height:1.6;margin-top:33px;color:#ffe0a5}
.g-ok-demo{font-size:90px;display:inline-block;margin:28px 0 0 110px;animation:g-ok 2.5s ease-in-out infinite}
.g-welcome-person{position:absolute;right:80px;bottom:-62px;top:12px;width:700px;overflow:hidden;mask-image:linear-gradient(#000 86%,transparent)}
.g-welcome-person img{height:100%;width:100%;object-fit:contain;animation:g-arrive 750ms cubic-bezier(.2,.75,.2,1)}
#gesture-explorer[data-level=detail]::before{background:linear-gradient(90deg,transparent,#315b91 46%),url('../finish-audit-20261026/web/campus.webp') center/cover}
.g-detail-art{position:absolute;left:70px;top:28px;width:650px;height:620px;border-radius:18px;overflow:hidden}
.g-detail-copy{position:absolute;left:785px;right:75px;top:25px;bottom:0}.g-context{font-size:28px;color:#ffe0a5;margin:0 0 15px}.g-detail-copy h1{font-size:48px;line-height:1.3;margin:0 0 24px;font-weight:650}
.g-value{font-size:36px;line-height:1.5;margin:0 0 28px;font-weight:500}.g-steps{display:flex;flex-direction:column;gap:23px;margin-bottom:32px}.g-steps p{font-size:30px;line-height:1.55;display:flex;align-items:center;gap:20px;margin:0}.g-steps span{font-size:34px}
.g-body{font-size:30px;line-height:1.65;margin:0 0 25px}.g-outcome{font-size:30px;line-height:1.6;color:#ffe0a5;margin:0 0 26px}
.g-pages{position:absolute;bottom:12px;left:0;display:flex;gap:12px;align-items:center;color:#e6efff;font-size:28px}.g-pages i{width:12px;height:12px;border-radius:50%;background:#91afd6}.g-pages i.selected{width:32px;border-radius:8px;background:#ffe0a5}.g-pages span{margin-left:12px}
#gesture-explorer[data-level=space]::before{background:linear-gradient(90deg,#315b91 10%,#315b9100 75%),url('../finish-audit-20261026/web/campus.webp') center/cover}
#g-space-canvas{position:absolute;inset:-80px -170px 47px 300px;isolation:isolate;overflow:hidden;touch-action:none}
#g-space-canvas>canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.g-space-copy{position:absolute;left:80px;top:30px;width:360px;pointer-events:none}.g-space-copy h1{font-size:48px;line-height:1.3;margin:0 0 62px}.g-space-copy h2{font-size:38px;line-height:1.4;margin:0 0 20px;color:#ffe0a5}.g-space-copy p{font-size:30px;line-height:1.7;color:#fff}
#g-zones{position:absolute;left:80px;right:80px;bottom:-5px;display:flex;gap:40px;justify-content:center;font-size:28px;color:#e6efff;pointer-events:none}
#g-zones>span{padding:12px 0;border-bottom:3px solid transparent}#g-zones .selected{color:#ffe0a5;border-color:#ffe0a5}
#gesture-explorer[data-space-focused=true] #g-zones{display:none}
.g-space-status{position:absolute;inset:0;background:#315b91;z-index:3;display:grid;place-items:center}
.g-space-preview{position:absolute;width:90%;height:90%;object-fit:contain;opacity:.3;right:0;bottom:0}
.g-space-status-content{position:relative;display:flex;flex-direction:column;align-items:center;gap:26px;padding:30px}
.g-space-load-mark{width:45px;height:45px;display:block;margin:0}.g-space-status-title{font-size:36px}.g-space-retry{font-size:28px;background:#fff5df;color:#244a6c;border-radius:34px;padding:16px 30px}
.g-future-scene{position:absolute;inset:-103px 0 -150px;background-size:cover;background-position:center;z-index:-1}.g-future-scene::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#315b91,transparent 85%)}.g-future-scene>img{position:absolute;right:0;top:50px;width:850px;height:880px;object-fit:contain;z-index:1}
.g-future-copy{position:absolute;left:100px;top:135px;width:670px}.g-future-copy h1{font-size:34px;line-height:1.4;font-weight:500;margin:0 0 26px;color:#ffe0a5}.g-future-role{font-size:64px;line-height:1.2;margin:0 0 32px;font-weight:650}.g-future-copy .g-value{font-size:34px;line-height:1.7}.g-future-tags{display:flex;gap:28px;font-size:30px;color:#ffe0a5}
.g-tunnel{position:absolute;inset:-103px 0 -150px;width:100%;height:941px;object-fit:cover}.g-tunnel-glow{position:absolute;inset:-103px 0 -150px;background:linear-gradient(transparent,#315b9170);pointer-events:none}.g-transition-title{position:absolute;left:0;right:0;top:42%;text-align:center;font-size:48px;text-shadow:0 3px 30px #315b91}
#g-rehearsal{position:absolute;left:80px;right:80px;bottom:44px;display:flex;gap:38px;align-items:center;justify-content:center;z-index:7}
#g-rehearsal button{font-size:28px;background:transparent;border:0;border-bottom:2px solid #b8cbe5;padding:13px 16px;color:#fff;min-width:120px}
#g-rehearsal [data-demo-action=confirm]{background:#fff5df;color:#234b79;border:0;border-radius:32px;padding:15px 34px;font-weight:600}
#g-rehearsal button:hover:not(:disabled){color:#ffe0a5;border-color:#ffe0a5}
#g-rehearsal button[data-demo-action=confirm]:hover:not(:disabled){color:#234b79;background:#ffe0a5}
#g-rehearsal button:disabled{color:#95b1d4;border-color:transparent;opacity:1}
#gesture-panel [hidden],#gesture-explorer [hidden]{display:none!important}
@keyframes g-loading{to{transform:rotate(360deg)}}
@keyframes g-ok{0%,100%{transform:scale(.95) rotate(-6deg);opacity:.7}45%,70%{transform:scale(1.08) rotate(0);opacity:1}}
@keyframes g-arrive{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:none}}
#gesture-explorer[data-first-swipe=true] #g-instructions>span:first-child b{animation:g-wave 2.6s ease-in-out infinite}
@keyframes g-wave{0%,100%{transform:translateX(0) rotate(0)}25%{transform:translateX(-15px) rotate(-12deg)}65%{transform:translateX(15px) rotate(12deg)}}
#stage[data-gestures=camera] .g-brand span::before{content:'';display:inline-block;width:11px;height:11px;border-radius:50%;background:#ffe0a5;margin-right:13px;vertical-align:3px}
@media(prefers-reduced-motion:reduce){.g-ok-demo,.g-welcome-person img,.g-space-load-mark,#gesture-panel[data-phase=loading] #gesture-panel-status::before,#gesture-explorer[data-first-swipe=true] #g-instructions>span:first-child b{animation:none}}

#stage:has(#help:not([hidden])) > #gesture-toggle{visibility:hidden}
/* Keep the same renderer size during approach; reserve the header and copy area. */
#g-space-canvas{clip-path:inset(85px 0 0 140px);mask-image:linear-gradient(90deg,transparent 140px,#000 230px);-webkit-mask-image:linear-gradient(90deg,transparent 140px,#000 230px)}
