﻿:root{--stage-scale: 1;--bg-ink: #04111f;--bg-deep: #071c32;--surface: rgba(7, 23, 40, .84);--surface-strong: rgba(7, 21, 37, .92);--line-soft: rgba(140, 217, 255, .2);--line-strong: rgba(140, 217, 255, .56);--text-main: #f4fbff;--text-soft: rgba(232, 247, 255, .72);--glow: 0 0 24px rgba(122, 214, 255, .42);--ease-standard: cubic-bezier(.2, .88, .26, 1)}*{box-sizing:border-box}html,body{margin:0;min-height:100%;overflow:hidden;background:radial-gradient(circle at top,rgba(25,92,140,.36),transparent 36%),linear-gradient(180deg,#061220,#020813);color:var(--text-main);font-family:Microsoft YaHei UI,Noto Sans SC,Segoe UI,sans-serif;-webkit-user-select:none;user-select:none;cursor:none}body{line-height:1.5}img{display:block;max-width:none}#app{width:100vw;height:100vh}.demo-shell{position:relative;width:100%;height:100%;overflow:hidden}.demo-stage{position:absolute;left:50%;top:50%;width:2560px;height:1440px;overflow:hidden;transform:translate(-50%,-50%) scale(var(--stage-scale));transform-origin:center center;background:#030913;box-shadow:0 40px 120px #0000007a,inset 0 0 0 1px #9cdaff14}.portal-view,.scene,.scene-backdrop,.scene-backdrop__image,.scene-backdrop__veil,.scene-backdrop__grid,.frame-scene,.layered-scene,.panel-scene,.game-scene,.game-scene__base,.game-scene__preview,.game-scene__found-overlay,.game-scene__overlay,.feedback-overlay{position:absolute;inset:0}.portal-view{background:#030913;overflow:hidden}.portal-view__hero-image,.portal-view__hero-veil{position:absolute;inset:0}.portal-view__hero-image{width:100%;height:100%;object-fit:cover;transform:scale(1.05);filter:blur(4px) saturate(.9) brightness(.3)}.portal-view__hero-veil{background:radial-gradient(circle at 28% 18%,rgba(130,216,255,.22),transparent 26%),linear-gradient(180deg,#040c181f,#040c18b8 48%,#040c18eb)}.portal-copy{position:absolute;left:120px;top:84px;z-index:3;width:1020px}.portal-kicker{display:inline-flex;align-items:center;gap:12px;padding:10px 18px;border-radius:999px;background:#122a429e;border:1px solid rgba(140,217,255,.24);color:#8ddcff;font-size:22px;letter-spacing:.18em;text-transform:uppercase}.portal-title{margin:28px 0 12px;font-size:88px;font-weight:800;line-height:1.02;letter-spacing:.04em}.portal-subtitle{margin:0;width:900px;color:var(--text-soft);font-size:28px;line-height:1.6}.portal-active-chip{display:inline-flex;align-items:center;gap:18px;margin-top:30px;min-height:74px;padding:0 26px;border-radius:999px;background:#061320b8;border:1px solid rgba(140,217,255,.2);box-shadow:0 18px 42px #0000003d}.portal-active-chip__label{color:#def1ffb8;font-size:22px;letter-spacing:.12em}.portal-active-chip__value{color:#fff;font-size:32px;letter-spacing:.04em}.portal-grid{position:absolute;left:120px;right:120px;top:420px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;z-index:3}.portal-theme{position:relative;height:292px;border-radius:32px;overflow:hidden;border:1px solid rgba(140,217,255,.14);background:#081829b8;box-shadow:0 30px 72px #00000052,inset 0 0 0 1px #ffffff0a;transition:transform 90ms var(--ease-standard),box-shadow 90ms var(--ease-standard),border-color 90ms var(--ease-standard),opacity 90ms var(--ease-standard)}.portal-theme.is-active{transform:translateY(-10px) scale(1.02);border-color:#a0e7ff9e;box-shadow:0 34px 82px #0006,0 0 42px #82d8ff2e,inset 0 0 0 1px #ffffff14}.portal-theme:not(.is-active){opacity:.78}.portal-theme__image-wrap,.portal-theme__scrim,.portal-theme__body{position:absolute;inset:0}.portal-theme__image-wrap{overflow:hidden}.portal-theme__image,.portal-theme__overlay,.portal-theme__button{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.portal-theme__overlay,.portal-theme__button{pointer-events:none}.portal-theme__button{transition:opacity 70ms linear}.portal-theme__button--active{opacity:0}.portal-theme.is-active .portal-theme__button--active{opacity:1}.portal-theme.is-active .portal-theme__button--idle{opacity:0}.portal-theme__scrim{background:linear-gradient(180deg,transparent 0%,transparent 34%,rgba(4,12,24,.28) 58%,rgba(4,12,24,.92) 100%)}.portal-theme__body{inset:auto 26px 24px;display:flex;flex-direction:column;justify-content:flex-end;gap:12px}.portal-theme__index{color:var(--text-soft);font-size:20px;letter-spacing:.14em}.portal-theme__title{margin:0;font-size:36px;line-height:1.25}.portal-footer{position:absolute;left:0;right:0;bottom:56px;display:grid;justify-items:center;gap:24px;z-index:3}.scene{overflow:hidden;--theme-accent: #8ddcff}.scene-backdrop__image,.game-scene__base,.game-scene__preview,.game-scene__found-overlay,.frame-scene__image,.layered-scene__image,.page-button__image,.panel-card__image,.puzzle-slot__piece,.game-choice__image,.floating-token__image{width:100%;height:100%;object-fit:fill;backface-visibility:hidden;transform:translateZ(0)}.scene-backdrop__veil{background:radial-gradient(circle at top,rgba(24,73,110,.24),transparent 36%),linear-gradient(180deg,#020a1238,#020911c7)}.scene-backdrop.is-plain .scene-backdrop__veil,.scene-backdrop.is-plain .scene-backdrop__grid{display:none}.scene-backdrop__grid{background-image:linear-gradient(rgba(140,217,255,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(140,217,255,.07) 1px,transparent 1px);background-size:120px 120px;opacity:.22}.scene-header{position:absolute;left:72px;right:72px;top:56px;z-index:4;display:flex;justify-content:space-between;gap:20px}.scene-header__group{display:flex;gap:14px;align-items:center}.scene-chip{display:inline-flex;align-items:center;min-height:48px;padding:0 18px;border-radius:999px;background:#081829cc;border:1px solid rgba(140,217,255,.18);color:var(--text-main);font-size:21px;letter-spacing:.08em}.scene-chip--muted{color:var(--text-soft)}.scene-chip--idle{color:var(--theme-accent)}.frame-scene__surface{position:absolute;overflow:hidden;border-radius:28px;border:1px solid rgba(140,217,255,.16);box-shadow:0 26px 70px #0000006b,inset 0 0 0 1px #ffffff0d}.layered-scene{pointer-events:none}.layered-scene__layer{position:absolute}.page-layer{transition:opacity 70ms linear}.page-layer--idle.is-hidden,.page-layer--active{opacity:0}.page-layer--active.is-active{opacity:1}.page-button{position:absolute;transition:transform 90ms var(--ease-standard),filter 90ms var(--ease-standard),opacity 90ms var(--ease-standard)}.page-button.is-active{transform:scale(1.03);filter:drop-shadow(0 0 12px rgba(146,226,255,.42)) drop-shadow(0 0 28px rgba(146,226,255,.3))}.page-button.is-fallback-active{filter:drop-shadow(0 0 14px rgba(146,226,255,.5)) drop-shadow(0 0 32px rgba(146,226,255,.35)) brightness(1.06)}.page-button__pulse{position:absolute;inset:-14px;border-radius:28px;background:radial-gradient(circle,rgba(130,217,255,.16),transparent 72%);opacity:0}.page-button.is-active .page-button__pulse{opacity:1;animation:pulse 1.4s ease-in-out infinite}.panel-scene{display:grid;place-items:center;padding:190px 260px 220px}.panel-card{position:relative;width:1760px;min-height:960px;padding:34px 38px 38px;border-radius:34px;background:linear-gradient(180deg,#0a1c30eb,#050f1ae6),#050f1ae6;border:1px solid rgba(140,217,255,.18);box-shadow:0 42px 90px #0000007a,inset 0 0 0 1px #ffffff0d}.panel-card__accent{position:absolute;left:42px;right:42px;top:0;height:6px;border-radius:0 0 999px 999px;background:linear-gradient(90deg,transparent,var(--theme-accent),transparent)}.panel-card__heading{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:24px}.panel-card__eyebrow{color:var(--theme-accent);font-size:22px;letter-spacing:.18em}.panel-card__title{margin:0;font-size:48px;line-height:1.1}.panel-card__body{overflow:hidden;border-radius:24px;border:1px solid rgba(140,217,255,.12)}.focus-ring,.game-choice,.marker-spot,.puzzle-slot,.floating-token{position:absolute}.focus-ring,.game-choice,.puzzle-slot{border-radius:28px}.focus-ring:before,.game-choice:before,.puzzle-slot:before{content:"";position:absolute;inset:0;border-radius:inherit;border:2px solid rgba(255,255,255,.14)}.focus-ring.is-active,.game-choice.is-active,.puzzle-slot.is-current{transform:scale(1.035)}.focus-ring.is-active:before,.game-choice.is-active:before,.puzzle-slot.is-current:before{border-color:var(--theme-accent);box-shadow:0 0 0 2px #82d9ff24,0 0 36px #82d9ff66,inset 0 0 30px #82d9ff1a}.focus-ring__pulse{position:absolute;inset:-10px;border-radius:36px;background:radial-gradient(circle,rgba(130,217,255,.18),transparent 68%);opacity:0}.focus-ring.is-active .focus-ring__pulse{opacity:1;animation:pulse 1.4s ease-in-out infinite}.game-scene__overlay{pointer-events:none}.game-scene__preview-stack{position:absolute;inset:0;pointer-events:none}.game-scene__preview,.game-scene__found-overlay{opacity:0;transition:opacity 70ms linear;pointer-events:none}.game-scene__preview.is-active,.game-scene__found-overlay.is-active{opacity:1}.game-status{position:absolute;left:72px;top:152px;z-index:3;display:inline-flex;align-items:center;min-height:54px;padding:0 22px;border-radius:999px;background:#071627bd;border:1px solid rgba(140,217,255,.16);color:var(--text-main);font-size:24px;letter-spacing:.08em}.game-choice{display:grid;place-items:center;transition:transform 90ms var(--ease-standard),opacity 90ms var(--ease-standard),box-shadow 90ms var(--ease-standard)}.game-choice.is-done{opacity:.56}.game-choice.is-done:before{border-color:#61ffba7a;box-shadow:0 0 30px #61ffba38}.game-choice.is-error{animation:shake .32s linear}.game-choice.is-error:before{border-color:#ff6e6ee6;box-shadow:0 0 28px #ff6e6e57,inset 0 0 30px #ff6e6e1f}.game-choice__badge{position:absolute;left:16px;top:14px;min-width:42px;min-height:42px;padding:0 12px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:#07121fd6;border:1px solid rgba(255,255,255,.12);color:var(--text-main);font-size:22px;font-weight:700}.game-choice--piece{padding:16px;background:#040d1733}.game-choice--piece.is-done .game-choice__image{opacity:.24}.game-choice__image{object-fit:contain}.puzzle-slot{overflow:hidden;background:#020a1214}.puzzle-slot.is-filled:before{border-color:#61ffba94}.puzzle-slot__piece.is-hidden{opacity:0}.marker-spot{border-radius:999px;border:2px solid rgba(160,220,255,.2);opacity:.22}.marker-spot.is-found{border-color:#6fffbfeb;background:radial-gradient(circle,rgba(111,255,191,.34),transparent 62%);box-shadow:0 0 30px #6fffbf52,inset 0 0 24px #6fffbf33;opacity:1}.floating-token{width:164px;height:164px;left:0;top:0;transform:translate(var(--from-x),var(--from-y));transition:transform .62s var(--ease-standard);pointer-events:none;z-index:5}.floating-token.is-running{transform:translate(var(--to-x),var(--to-y)) scale(.96)}.floating-token__image{object-fit:contain;filter:drop-shadow(0 18px 40px rgba(0,0,0,.36))}.feedback-overlay{display:grid;place-items:center;background:#02080e73;z-index:8}.feedback-card{width:720px;padding:42px 50px 46px;border-radius:34px;background:linear-gradient(180deg,#07182af5,#040c18f5);border:1px solid rgba(111,255,191,.34);box-shadow:0 42px 90px #0000006b,0 0 42px #6fffbf38;text-align:center}.feedback-card__icon{display:inline-flex;align-items:center;justify-content:center;min-width:102px;height:102px;margin-bottom:20px;padding:0 28px;border-radius:999px;background:#6fffbf29;color:#9effcf;font-size:30px;font-weight:800;letter-spacing:.12em}.feedback-card__title{margin:0 0 14px;font-size:46px}.feedback-card__body{margin:0;color:var(--text-soft);font-size:28px;line-height:1.7}.feedback-toast{position:absolute;left:50%;top:180px;z-index:8;display:inline-flex;align-items:center;gap:16px;min-height:82px;padding:0 34px;border-radius:999px;transform:translate(-50%);background:#691818e6;border:1px solid rgba(255,132,132,.34);box-shadow:0 24px 60px #00000047;color:#fff3f3;font-size:26px}.feedback-toast__icon{width:40px;height:40px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:#ffffff1f;font-weight:800}.hint-bar{position:absolute;left:50%;bottom:46px;z-index:7;transform:translate(-50%);display:inline-flex;align-items:center;justify-content:center;min-height:70px;padding:0 34px;border-radius:999px;background:#05101cdb;border:1px solid rgba(140,217,255,.2);box-shadow:0 16px 50px #00000052,inset 0 0 0 1px #ffffff0a}.hint-bar__label{color:var(--text-main);font-size:24px;letter-spacing:.12em;white-space:nowrap}@keyframes pulse{0%,to{transform:scale(.94);opacity:.42}50%{transform:scale(1.06);opacity:.92}}@keyframes drift{0%{transform:translateZ(0)}to{transform:translate3d(-120px,90px,0)}}@keyframes driftReverse{0%{transform:translateZ(0)}to{transform:translate3d(80px,-110px,0)}}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-8px)}40%{transform:translate(7px)}60%{transform:translate(-6px)}80%{transform:translate(4px)}}
.game-scene__complete-overlay{position:absolute;inset:0;opacity:0;transition:opacity 70ms linear;pointer-events:none}.game-scene__complete-overlay.is-active{opacity:1}.game-choice--preview{border-radius:999px;background:transparent;overflow:visible;isolation:isolate;transform:none!important;box-shadow:none!important}.game-choice--preview:before,.game-choice--preview.is-active:before,.game-choice--preview.is-done:before{display:none}.game-choice--preview.is-active,.game-choice--preview.is-done{transform:none!important}.game-choice--preview.is-done{opacity:1}.game-choice__glow{position:absolute;left:50%;top:50%;width:260px;height:220px;transform:translate(-50%,-50%);opacity:0;pointer-events:none}.game-choice__glow.is-active{opacity:1}.feedback-overlay--image{background:#00000080}.feedback-image{max-width:min(1280px,78vw);height:auto;filter:drop-shadow(0 24px 54px rgba(0,0,0,.32))} .game-choice--preview{border-radius:999px;background:transparent;overflow:visible;isolation:isolate;transform-origin:center center;z-index:2}.game-choice--preview:before,.game-choice--preview.is-active:before,.game-choice--preview.is-done:before{display:none}.game-choice--preview.is-active{transform:none!important}.game-choice--preview.is-done{opacity:1}.game-choice--preview.is-error{animation:none}.game-choice__button{width:100%;height:100%;object-fit:fill;pointer-events:none;filter:drop-shadow(0 8px 18px rgba(0,0,0,.18));transform-origin:center center;transition:transform 140ms cubic-bezier(.2,.88,.26,1)}.game-choice--preview.is-active .game-choice__button{transform:scale(1.12)}.game-choice--preview.is-error .game-choice__button{animation:shake .32s linear}.game-nav-arrow{position:absolute;transition:transform 140ms cubic-bezier(.2,.88,.26,1);transform-origin:center center;z-index:2;pointer-events:none}.game-nav-arrow.is-pulse{transform:scale(1.12)}
