:root {
  color-scheme: dark;
  --bg: #061014;
  --deep: #091a20;
  --panel: #102a31;
  --panel-2: #173a40;
  --line: #34666a;
  --glow: #69f1cf;
  --blue: #64c9ff;
  --gold: #ffd46e;
  --violet: #b59cff;
  --danger: #ff7a76;
  --text: #effdf9;
  --muted: #a8c5c0;
  font-family: "Microsoft YaHei UI", "PingFang SC", system-ui, sans-serif;
}

* { box-sizing: border-box; }
html { min-width: 320px; background: var(--bg); }
body {
  margin: 0;
  min-height: 100vh;
  color: var(--text);
  background:
    linear-gradient(#061015dd, #061015ee),
    repeating-linear-gradient(90deg, transparent 0 59px, #3b7b7810 60px),
    radial-gradient(circle at 50% 8%, #1d5555 0, #0a2026 36%, var(--bg) 76%);
  font-size: 16px;
  overflow-x: hidden;
}

.shell { width: min(100%, 1120px); min-height: 100vh; margin: auto; padding: 0 14px; display: flex; flex-direction: column; }
header, footer { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 13px 2px; color: var(--muted); }
.header-actions{display:flex;align-items:center;gap:9px}.sound-toggle{display:grid;place-items:center;width:40px;height:40px;min-height:40px;padding:0;border-radius:50%;border-color:#31545a;background:#0c252b;color:#fff;font-size:18px;line-height:1}.sound-toggle:hover,.sound-toggle:focus-visible{border-color:var(--glow);box-shadow:0 0 12px #5af5c944}.sound-toggle[aria-pressed="false"]{color:var(--muted);background:#0a1a1f}
header { border-bottom: 1px solid #31525966; }
.brand { display: flex; gap: 9px; align-items: center; color: var(--glow); text-decoration: none; font-weight: 900; letter-spacing: .06em; }
.brand > span { display: grid; color: var(--text); }
.brand small { font-size: 9px; color: #789994; letter-spacing: .14em; }
.local { font-size: 11px; border: 1px solid #34535a; border-radius: 999px; padding: 4px 8px; opacity: .66; }
main { flex: 1; display: grid; align-content: center; padding: 14px 0 20px; }
footer { font-size: 11px; border-top: 1px solid #24434a; opacity: .75; }
.skip-link { position: fixed; left: 8px; top: -50px; z-index: 100; background: #fff; color: #000; padding: 8px; }
.skip-link:focus { top: 8px; }
.screen { width: 100%; max-width: 940px; margin: auto; }

button, .debug-download {
  appearance: none;
  border: 1px solid #477b7e;
  border-radius: 12px;
  background: linear-gradient(180deg, #20505a, #12343b);
  color: var(--text);
  font: inherit;
  font-weight: 800;
  padding: 12px 15px;
  cursor: pointer;
  box-shadow: 0 6px 18px #0005, inset 0 1px #ffffff12;
  touch-action: manipulation;
}
button:hover, button:focus-visible, .debug-download:focus-visible { border-color: var(--glow); outline: 2px solid transparent; box-shadow: 0 0 0 2px #65f5d144, 0 8px 20px #0008; }
button:active { transform: translateY(1px); }
.primary { font-size: 18px; background: linear-gradient(135deg, #2fa98e, #236b7b); border-color: #8affdf; padding: 14px 27px; }

/* 首页与角色 */
.hero { display: grid; grid-template-columns: minmax(300px, 1.1fr) minmax(280px, .9fr); gap: 18px; align-items: center; }
.hero-copy { padding: 24px 14px; }
.hero h1 { font-size: clamp(42px, 6vw, 58px); line-height: 1.02; margin: 8px 0 18px; letter-spacing: -.04em; white-space: nowrap; text-shadow: 0 0 30px #4bd7ba77; }
.prototype-mark, .place { margin: 0 0 7px; color: var(--glow); font-size: 11px; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; }
.hero-alert { color: #fff; font-size: clamp(18px, 2.5vw, 24px); font-weight: 800; line-height: 1.5; margin: 0 0 8px; }
.hero-mission { color: var(--muted); line-height: 1.7; margin: 0 0 22px; }
.seed-note { display: block; margin: 12px 4px; color: #789994; font-family: ui-monospace, Consolas, monospace; }
.hero-scene { height: 430px; position: relative; overflow: hidden; border: 1px solid #356469; border-radius: 28px; background: radial-gradient(circle at 50% 72%, #2c716266 0 10%, transparent 40%), linear-gradient(180deg, #102d34, #071419); box-shadow: inset 0 -35px 65px #000b, 0 28px 70px #0008; }
.dungeon-arch { position: absolute; inset: 24px 11% -80px; border: 18px solid #1c3b40; border-bottom: 0; border-radius: 50% 50% 0 0; box-shadow: inset 0 0 0 3px #315b60, 0 0 35px #000; }
.hero-scene .zero-rift { left: 50%; top: 22%; }
.hero-scene .zero-core { left: 50%; top: 59%; }
.hero-scene .adventurer { left: 34%; top: 60%; scale: 1.3; }
.hero-callout { position: absolute; left: 10%; bottom: 25px; display: grid; padding: 8px 11px; background: #08171bd9; border: 1px solid #3c6e70; border-radius: 10px; }
.hero-callout strong { color: var(--gold); }
.hero-callout span, .hero-callout small { color: var(--muted); font-size: 11px; }

/* 六位班宠探险者：纯 CSS 轻量造型，不参与游戏规则 */
.adventurer { position:absolute; z-index:12; width:76px; height:88px; transform-origin:50% 100%; filter:drop-shadow(0 7px 5px #0008); }
.pet-avatar i { position:absolute; display:block; box-sizing:border-box; }
.pet-shadow { left:12px; bottom:-3px; width:52px; height:10px; border-radius:50%; background:#0008; }
.pet-core { z-index:8; display:grid!important; place-items:center; color:#062024; font:900 8px/1 ui-monospace,monospace; border-radius:50%; background:var(--pet-accent); box-shadow:0 0 12px var(--pet-accent); }
.pet-head b::before,.pet-head b::after,.octo-head b::before,.octo-head b::after,.deer-head b::before,.deer-head b::after,.penguin-head b::before,.penguin-head b::after{content:"";position:absolute;width:4px;height:5px;border-radius:50%;background:#09262b;top:12px}
.pet-head b::before,.octo-head b::before,.deer-head b::before,.penguin-head b::before{left:11px}.pet-head b::after,.octo-head b::after,.deer-head b::after,.penguin-head b::after{right:11px}

/* P01 星火小龙 */
.pet-dragon .pet-body{left:23px;top:35px;width:32px;height:43px;border:2px solid #9dffe6;border-radius:48% 48% 40% 40%;background:linear-gradient(90deg,#17626a,#34a58e)}
.pet-dragon .pet-head{z-index:5;left:18px;top:11px;width:42px;height:35px;border:2px solid #9dffe6;border-radius:53% 53% 45% 45%;background:#2a8d82}
.pet-dragon .pet-head b::after{box-shadow:7px 8px 0 -1px #75e7ce}
.dragon-horn{z-index:3;top:5px;width:12px;height:19px;background:#ffd36d;clip-path:polygon(50% 0,100% 100%,0 80%)}.horn-left{left:19px;rotate:-18deg}.horn-right{right:17px;rotate:18deg}
.dragon-wing{z-index:2;top:38px;width:25px;height:32px;background:#286f83;clip-path:polygon(100% 0,76% 100%,38% 62%,0 78%,27% 8%)}.dragon-wing.wing-left{left:4px}.dragon-wing.wing-right{right:2px;scale:-1 1}
.dragon-tail{left:43px;top:61px;width:34px;height:9px;border:5px solid #55c6ad;border-left:0;border-bottom:0;border-radius:0 16px 0 0;rotate:18deg}.dragon-tail::after{content:"";position:absolute;right:-5px;top:-8px;border:6px solid transparent;border-left:10px solid var(--pet-accent)}
.pet-dragon .pet-core{left:33px;top:44px;width:12px;height:12px}.axis-sparks{left:4px;right:0;bottom:5px;height:10px;border-top:1px solid #73e9d0;opacity:0}
.is-move .axis-sparks{animation:axisTrail .65s ease-out infinite}

/* P02 晨曦凤凰 */
.pet-phoenix .pet-body{z-index:5;left:27px;top:30px;width:25px;height:42px;border-radius:55% 55% 45% 45%;background:linear-gradient(#ffe592,#dc765f)}
.pet-phoenix .pet-head{z-index:6;left:25px;top:10px;width:29px;height:27px;border-radius:55%;background:#f6b865}.pet-phoenix .pet-head::after{content:"";position:absolute;right:-9px;top:11px;border:5px solid transparent;border-left:9px solid #fff0a8}
.phoenix-wing{z-index:3;top:28px;width:35px;height:44px;background:linear-gradient(#ffcc68,#c65b67);clip-path:polygon(100% 10%,72% 100%,48% 69%,0 83%,37% 0)}.phoenix-wing.wing-left{left:0;transform-origin:100% 35%}.phoenix-wing.wing-right{right:-1px;scale:-1 1;transform-origin:0 35%}
.phoenix-tail{top:62px;width:13px;height:28px;border-radius:70% 20%;background:linear-gradient(#f49b58,#7ce1c7);transform-origin:50% 0}.tail-left{left:25px;rotate:28deg}.tail-mid{left:34px}.tail-right{left:43px;rotate:-28deg}
.pet-phoenix .pet-core{left:34px;top:43px;width:12px;height:12px}.sign-sparks{left:4px;top:8px;color:#ffe594;font:900 12px monospace;word-spacing:42px;text-shadow:0 0 7px #ffd46e}
.pet-phoenix .phoenix-wing{animation:wingFloat 1.3s ease-in-out infinite alternate}

/* P03 水晶精灵 */
.pet-crystal{opacity:.94}.pet-crystal .pet-body{z-index:4;left:24px;top:34px;width:31px;height:42px;background:linear-gradient(135deg,#d8faffaa,#6e8fe8aa,#b495ffaa);clip-path:polygon(50% 0,100% 25%,80% 100%,20% 100%,0 25%)}
.pet-crystal .pet-head{z-index:5;left:24px;top:8px;width:31px;height:32px;background:linear-gradient(135deg,#e9ffff,#75c9df 52%,#9279da);clip-path:polygon(50% 0,100% 36%,78% 100%,22% 100%,0 36%)}
.crystal-wing{top:29px;width:27px;height:38px;border:1px solid #c5fbff;background:#7cdde944;clip-path:polygon(100% 0,72% 100%,0 58%)}.crystal-wing.wing-left{left:3px}.crystal-wing.wing-right{right:0;scale:-1 1}
.pet-crystal .pet-core{left:31px;top:45px;width:17px;height:17px;clip-path:polygon(50% 0,100% 30%,82% 100%,18% 100%,0 30%);border-radius:0}
.distance-ring{left:11px;top:20px;width:57px;height:57px;border:1px solid #bdafff;border-radius:50%;box-shadow:0 0 9px #bdafff66;animation:ringBreathe 1.8s ease-in-out infinite}

/* P04 智慧章鱼 */
.octo-head{z-index:6;left:18px;top:8px;width:43px;height:43px;border:2px solid #b5f0ff;border-radius:55% 55% 43% 43%;background:linear-gradient(145deg,#3e8da9,#7167b8)}
.tentacle{z-index:3;top:45px;width:13px;height:35px;border-radius:0 0 12px 12px;background:#498ca9;transform-origin:50% 0}.t1{left:15px;rotate:24deg}.t2{left:24px;rotate:9deg}.t3{left:33px;rotate:-4deg}.t4{left:42px;rotate:5deg}.t5{left:50px;rotate:-15deg}.t6{left:57px;rotate:-27deg}
.octo-prop{z-index:7;color:#d9fbff;font-style:normal;font:900 13px monospace;text-shadow:0 0 7px #75dcff}.prop-compass{left:3px;top:54px}.prop-crystal{right:0;top:53px;color:#74f1d0}.prop-scroll{left:32px;top:70px;color:#ffdf8d}
.pet-octopus .tentacle:nth-of-type(even){animation:tentacleWave 1.5s ease-in-out infinite alternate}.pet-octopus .tentacle:nth-of-type(odd){animation:tentacleWave 1.7s ease-in-out infinite alternate-reverse}

/* P05 森林鹿 */
.deer-body{z-index:3;left:21px;top:47px;width:41px;height:30px;border-radius:50% 45%;background:#a8754f;border:2px solid #d8bd83}.deer-neck{z-index:4;left:29px;top:31px;width:20px;height:29px;rotate:-8deg;background:#ae7d52}.deer-head{z-index:6;left:20px;top:14px;width:36px;height:32px;border-radius:48% 48% 62% 62%;background:#bd8a58;border:2px solid #e0c28c}
.deer-ear{z-index:5;top:14px;width:18px;height:11px;background:#a56f4c;clip-path:polygon(0 50%,100% 0,80% 100%);transform-origin:100% 50%}.ear-left{left:8px}.ear-right{right:12px;scale:-1 1}
.antler{z-index:3;top:-1px;width:25px;height:27px;border-top:3px solid #d8e5b2;border-inline:3px solid #d8e5b2;border-radius:45%}.antler-left{left:13px;rotate:-13deg}.antler-right{right:12px;rotate:13deg}
.pet-deer .pet-core{left:37px;top:57px;width:10px;height:10px}.deer-symbol{top:9px;color:#a8f4ba;font:900 10px monospace;text-shadow:0 0 6px #8fe0a2}.symbol-a{left:0}.symbol-na{right:-3px}
.pet-deer .deer-ear,.pet-deer .antler{animation:deerListen 1.9s ease-in-out infinite alternate}.pet-deer.is-teleport{animation:mirrorLeap .85s ease-in-out infinite alternate}

/* P06 冰原企鹅 */
.penguin-pack{z-index:2;left:13px;top:38px;width:22px;height:33px;border:2px solid #71a3ad;border-radius:8px;background:#27505b}.penguin-body{z-index:4;left:20px;top:29px;width:42px;height:50px;border-radius:52% 52% 42% 42%;background:#193d49;border:2px solid #8ee9ff}.penguin-belly{z-index:5;left:30px;top:42px;width:24px;height:32px;border-radius:50%;background:#d9f2ed}.penguin-head{z-index:6;left:23px;top:10px;width:36px;height:34px;border-radius:50%;background:#173b46;border:2px solid #8ee9ff}.penguin-head::after{content:"";position:absolute;left:14px;top:18px;border:5px solid transparent;border-top:5px solid #ffd374}
.penguin-wing{z-index:6;left:12px;top:40px;width:15px;height:31px;border-radius:70% 20%;background:#23515c;rotate:19deg}.explorer-lamp{z-index:8;right:3px;top:48px;width:13px;height:17px;border:2px solid #a4f5ff;border-radius:4px;background:#4b7f82;box-shadow:0 0 9px #8ef4ff}.lamp-beam{z-index:1;right:-24px;top:45px;width:36px;height:28px;background:linear-gradient(90deg,#a9ffff66,transparent);clip-path:polygon(0 42%,100% 0,100% 100%,0 58%);animation:lampGlow 1.2s ease-in-out infinite alternate}
.pet-penguin .penguin-body,.pet-penguin .penguin-belly,.pet-penguin .pet-head{animation:penguinSway 1.7s ease-in-out infinite alternate}

.is-idle{animation:breathe 2.2s ease-in-out infinite}.is-move{animation:scoutMove .7s ease-in-out infinite alternate}.is-teleport{animation:teleportGlow 1.1s ease-in-out infinite}.is-hurt{animation:hurtShake .35s ease-in-out 2;filter:drop-shadow(0 0 12px var(--danger))}.is-collect .pet-core,.is-collect .explorer-lamp,.is-collect .prop-crystal{animation:corePulse .55s ease-in-out infinite alternate}.is-victory{animation:victoryHop .8s ease-in-out infinite alternate}

/* HUD 与房间 */
.hud { display: grid; grid-template-columns: repeat(4, minmax(70px, 120px)); gap: 7px; justify-content: end; margin-bottom: 9px; }
.stat { background: #0c2228e8; border: 1px solid #294950; border-radius: 10px; padding: 7px; text-align: center; }
.stat b { display: block; color: var(--gold); font-size: 17px; }
.stat small { color: var(--muted); font-size: 10px; }
.stat.hp b { color: #ff9a91; letter-spacing: 2px; }
.progress { display: flex; gap: 5px; margin: 0 0 10px; }
.progress i { height: 6px; flex: 1; background: #223c42; border-radius: 5px; }
.progress i.done { background: var(--glow); box-shadow: 0 0 8px #65f5d188; }
.progress i.current { background: var(--gold); box-shadow: 0 0 10px #ffd46e99; }
.room { background: linear-gradient(160deg,#102830f5,#081b21f8); border: 1px solid #315a61; border-radius: 20px; padding: 20px; box-shadow: 0 24px 60px #0009, inset 0 1px #ffffff0c; overflow: hidden; }
.room-head { display: flex; align-items: end; justify-content: space-between; gap: 14px; }
.room h1 { margin: 0; font-size: clamp(25px, 5vw, 40px); }
.clue-state { display: flex; justify-content: end; flex-wrap: wrap; gap: 5px; }
.clue-state span { border: 1px solid #375f65; border-radius: 99px; color: #9fc2bd; padding: 4px 7px; font-size: 10px; white-space: nowrap; }
.scene { height: 245px; position: relative; overflow: hidden; margin: 16px -20px 0; background: radial-gradient(circle at 50% 74%,#225b5266,transparent 40%),linear-gradient(180deg,#0c2229,#061217); border-block: 1px solid #2b5056; }
.scene::before { content:""; position:absolute; inset:auto 0 0; height:52px; background:linear-gradient(#0c222000,#102923); clip-path:polygon(0 48%,8% 35%,17% 55%,25% 30%,38% 50%,48% 28%,60% 52%,73% 25%,84% 54%,94% 31%,100% 45%,100% 100%,0 100%); }
.world-axis { position: absolute; z-index: 2; left: 5%; right: 5%; top: 69%; height: 2px; background: linear-gradient(90deg,#53c6ff55,var(--glow),#ffd46e88); display: flex; align-items: center; justify-content: space-between; }
.world-axis span { color: var(--muted); font-weight: 900; margin-top: -20px; }
.world-axis b { width: 25px; height: 25px; display: grid; place-items: center; border: 1px solid var(--glow); border-radius: 50%; color: var(--glow); background:#0b2527; box-shadow:0 0 14px #65f5d177; }
.world-axis i { width: 1px; height: 9px; background: #72a9a5; }
.scene.level-2 .world-axis i:nth-of-type(even), .scene.level-3 .world-axis i { opacity: 0; }
.scene.level-3 .world-axis { opacity: .38; }
.scene.show-full-axis .world-axis, .scene.show-full-axis .world-axis i { opacity: 1; }
.mirror-guide { position:absolute; z-index:3; left:50%; top:18%; bottom:23%; width:1px; border-left:1px dashed #c1b4ff; filter:drop-shadow(0 0 5px #a795ff); opacity:.85; }
.zero-core { position: absolute; z-index: 8; width: 70px; height: 70px; left: 50%; top: 55%; translate: -50% -50%; border: 2px solid #54b6aa; border-radius: 50%; display: grid; place-items: center; background: radial-gradient(circle,#bfffe8 0 5%,#37bca0 6% 14%,#0b2f32 15% 45%,transparent 46%); box-shadow: 0 0 28px #54e7c455; }
.zero-core i { position: absolute; inset: 8px; border: 1px dashed #74e9d3; border-radius: 50%; animation: coreSpin 7s linear infinite; }
.zero-core b { color: #eafff8; text-shadow: 0 0 8px #fff; }
.zero-core.is-active { box-shadow: 0 0 18px var(--glow),0 0 60px #6fffd077; animation: corePulse .7s ease-in-out infinite alternate; }
.scene .adventurer { left: 17%; top: 48%; }
.mist-bank { position: absolute; z-index: 1; inset: 0; opacity: .28; background: radial-gradient(ellipse at 12% 70%,#9aa8b9 0,transparent 25%),radial-gradient(ellipse at 88% 68%,#8e84a9 0,transparent 27%); animation: mistDrift 5s ease-in-out infinite alternate; }

.mission-card { position: relative; padding-top: 17px; }
.mission-label { color: var(--gold); font-size: 10px; font-weight: 900; letter-spacing: .16em; }
.mission-card h2 { max-width: 740px; margin: 4px 0 11px; font-size: clamp(19px, 3vw, 25px); line-height: 1.45; }
.world-clue { width:fit-content; margin:0 0 10px; padding:6px 9px; border:1px solid #31565c; border-radius:8px; color:#b7d8d1; background:#0a2025; font-size:12px; }
.signal-readout { width: fit-content; min-width: 84px; margin: 8px auto 12px; padding: 9px 17px; border-radius: 11px; background: #122d34; border: 1px solid #39757a; color: #fff; text-align: center; font: 900 clamp(24px,6vw,40px)/1 ui-monospace,Consolas,monospace; text-shadow: 0 0 12px #6effdf88; }
.world-feedback { min-height: 0; margin-top: 12px; border-radius: 10px; overflow: hidden; }
.world-feedback strong, .world-feedback span { display: block; }
.world-feedback strong { padding: 10px 12px; background: #16423b; border-left: 3px solid var(--glow); }
.world-feedback span { padding: 7px 12px; color: #b7d8d1; font-size: 13px; background: #0b2529; }
.world-feedback.danger strong { background:#3b2729; border-color:var(--danger); color:#ffd8d4; }
.world-feedback:empty { display:none; }

/* 通用交互 */
.options, .zones { display: grid; grid-template-columns: repeat(auto-fit,minmax(112px,1fr)); gap: 8px; }
.zone { min-height: 72px; position: relative; display: grid; place-items: center; border: 1px dashed #559094; background: #0d292e; color: #d5eeea; overflow: hidden; }
.zone i { position:absolute; inset:7px; border:1px solid #3f6b70; border-radius:8px; opacity:.45; }
.zone.dragover { border-style: solid; border-color: var(--glow); background: #1b5149; box-shadow: inset 0 0 25px #65f5d133,0 0 16px #65f5d144; }
.action-stage { position:relative; }
.token { position:relative; z-index:20; display:flex; align-items:center; justify-content:center; gap:9px; width:min(100%,340px); margin:10px auto 12px; padding:15px; text-align:center; border:1px solid #7be2ce; border-radius:12px; background:linear-gradient(135deg,#21565a,#173c49); cursor:grab; user-select:none; touch-action:none; transition:transform .18s ease,box-shadow .18s ease; }
.token > i { width:17px; height:22px; background:var(--glow); clip-path:polygon(50% 0,100% 30%,83% 100%,17% 100%,0 30%); box-shadow:0 0 14px var(--glow); }
.token.dragging { cursor:grabbing; box-shadow:0 0 24px #65f5d188; transition:none; }
.world-options button { min-height: 62px; position:relative; overflow:hidden; }
.choice-beacon { display:inline-block; width:10px; height:10px; margin-right:7px; border:2px solid var(--glow); border-radius:50%; box-shadow:0 0 8px var(--glow); }
.axis-wrap { padding: 7px 0 0; }
.axis-labels { display:flex; justify-content:space-between; color:var(--muted); font-size:11px; }
.axis { width:100%; height:30px; accent-color:var(--glow); cursor:grab; }
.axis-readout { display:flex; justify-content:center; align-items:baseline; gap:8px; margin:2px 0 9px; color:var(--muted); }
.axis-value { color:var(--gold); font:900 27px ui-monospace,monospace; }
.center-action { text-align:center; }
.action-note { color:var(--muted); text-align:center; font-size:13px; }

/* 晶石身份与零件工坊 */
.crystal-identity { display:grid; place-items:center; margin:8px 0; color:var(--muted); }
.crystal-identity p { margin:5px 0 9px; font-size:12px; }
.memory-crystal { position:relative; width:82px; height:75px; display:grid; place-items:center; clip-path:polygon(50% 0,93% 25%,82% 86%,50% 100%,18% 86%,7% 25%); background:linear-gradient(135deg,#8cf7dd,#307c8f 52%,#594c9f); filter:drop-shadow(0 0 13px #63d7cc88); }
.memory-crystal i { position:absolute; inset:5px; clip-path:inherit; border:1px solid #e5fff9; background:#0f303688; }
.memory-crystal b { z-index:1; font:900 18px ui-monospace,monospace; }
.classify-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:7px; }
.identity-seal { min-height:50px; border-radius:50% 50% 46% 48%; background:#28363a; position:relative; }
.identity-seal i { display:inline-block; width:8px; height:8px; margin-right:5px; border-radius:50%; background:#637a7d; }
.tag[aria-pressed="true"], .stamp[aria-pressed="true"] { border-color:var(--gold); background:#5a4720; color:#fff2bf; box-shadow:0 0 14px #ffd46e44; }
.tag[aria-pressed="true"] i { background:var(--gold); box-shadow:0 0 7px var(--gold); }
.part-bench { display:flex; align-items:center; justify-content:center; gap:10px; margin:8px auto; padding:10px; max-width:390px; border:1px solid #3c686d; border-radius:12px; background:#0b2227; }
.part-bench b { color:var(--gold); font:900 24px ui-monospace,monospace; }
.part-bench span { color:var(--muted); font-size:11px; }
.part-outline { width:36px; height:36px; border:3px dashed var(--glow); border-radius:8px 14px; }
.stamp-options { margin-bottom:8px; }.repair-zones { grid-template-columns:repeat(2,1fr); }

/* 神谕与锁盘 */
.oracle-row { display:flex; gap:8px; }
.oracle-row input { min-width:0; flex:1; border:1px solid #438087; border-radius:12px; background:#071b20; color:#fff; padding:12px; font:800 20px ui-monospace,monospace; }
.interval { position:relative; height:12px; margin:10px 0 12px; border-radius:99px; background:#182c32; overflow:hidden; }
.interval i { position:absolute; inset:0; background:linear-gradient(90deg,#243238,var(--glow),#243238); box-shadow:0 0 12px #65f5d155; animation:intervalBreathe 1.2s ease-in-out infinite alternate; }
.dial-stage { display:grid; grid-template-columns:190px 1fr; align-items:center; max-width:490px; margin:auto; gap:16px; }
.dial-wrap { display:grid; place-items:center; padding:8px; }
.dial { width:174px; height:174px; border-radius:50%; border:12px solid #5b6664; background:repeating-conic-gradient(from -15deg,#283b3d 0 27deg,#87a39c 27deg 29deg,#17282b 29deg 30deg); box-shadow:0 0 0 5px #121a1c,0 0 0 8px #384747,0 14px 30px #000b,inset 0 0 25px #000; position:relative; touch-action:none; cursor:grab; }
.dial::before { content:""; position:absolute; inset:17px; border:2px dashed #b7a875; border-radius:50%; }
.dial-pointer { position:absolute; z-index:2; left:calc(50% - 3px); top:7px; width:6px; height:68px; border-radius:4px; background:var(--gold); transform-origin:50% 80px; box-shadow:0 0 10px var(--gold); }
.dial-hub { position:absolute; z-index:3; inset:calc(50% - 17px); border-radius:50%; background:radial-gradient(circle,#ffd46e 0 14%,#6c5c38 16% 50%,#222 53%); box-shadow:0 0 12px #ffd46e55; }
.dial.turning { box-shadow:0 0 0 5px #121a1c,0 0 0 8px #69817b,0 0 28px #ffd46e55,inset 0 0 25px #000; }
.dial-instruction { display:grid; gap:6px; }.dial-instruction b { color:var(--gold); font:900 42px ui-monospace,monospace; }.dial-instruction span { color:var(--muted); font-size:12px; line-height:1.6; }

/* 场景道具 */
.energy-rails { position:absolute; z-index:3; left:25%; right:12%; top:25%; height:95px; display:grid; gap:13px; }.energy-rails i { border-top:3px solid #4b7d7d; transform:skewX(-18deg); }.energy-rails .rail-0{border-color:#6ea9ff}.energy-rails .rail-1{border-color:var(--glow)}.energy-rails .rail-2{border-color:var(--gold)}
.signal-crystal,.archive-crystal,.zero-crystal { position:absolute; z-index:7; width:22px; height:29px; clip-path:polygon(50% 0,100% 28%,82% 100%,18% 100%,0 28%); background:var(--glow); filter:drop-shadow(0 0 9px var(--glow)); }.signal-crystal{left:55%;top:37%;animation:signalFly 1.5s ease-in-out infinite alternate}
.machine-beast { position:absolute; z-index:5; right:13%; top:35%; width:145px; height:80px; border:5px solid #527274; border-radius:45% 28% 22% 36%; background:#1d3336; }.machine-beast::before{content:"";position:absolute;right:9px;top:14px;width:14px;height:8px;border-radius:50%;background:var(--danger);box-shadow:0 0 8px var(--danger)}.machine-beast>b{position:absolute;left:20px;bottom:-23px;width:90px;height:25px;border-inline:12px solid #526c6d}.gear{position:absolute;width:34px;height:34px;border:6px dotted #b3a470;border-radius:50%}.gear-a{left:23px;top:18px}.gear-b{left:62px;top:29px;width:26px;height:26px}.conveyor{position:absolute;left:12%;right:10%;bottom:35px;height:16px;border:2px solid #435f61;display:flex;justify-content:space-around}.conveyor i{width:12px;height:12px;border-radius:50%;background:#526d6e}
.mirror-gate { position:absolute; z-index:5; right:18%; top:20%; width:72px; height:135px; border:7px solid #675d91; border-radius:50% 50% 8px 8px; box-shadow:inset 0 0 25px #a58eff77,0 0 18px #a58eff66}.mirror-gate i{position:absolute;inset:5px;background:linear-gradient(100deg,#82e8e855,#d5c8ff99,#153a3e55);border-radius:inherit}.lost-shadow{position:absolute;z-index:4;right:27%;top:57%;width:54px;height:18px;border-radius:50%;background:#a694dd88;filter:blur(2px)}
.mist { position:absolute; z-index:4; top:10%; bottom:10%; width:37%; background:radial-gradient(ellipse,#908ca8cc,transparent 68%); filter:blur(6px); }.mist-left{left:-8%;animation:mistThreat 2s ease-in-out infinite alternate}.mist-right{right:-8%;animation:mistThreat 2s ease-in-out infinite alternate-reverse}.safe-platform{position:absolute;z-index:5;bottom:43px;width:65px;height:16px;background:#345b5a;border-top:3px solid #70d9c1}.platform-0{left:34%}.platform-1{left:54%;bottom:55px}.platform-2{left:74%;bottom:40px}
.patrol-beast,.hunter,.guardian{position:absolute;z-index:7;right:16%;top:40%;width:78px;height:50px;border-radius:50% 45% 35% 35%;background:#39494a;border:3px solid #68797a}.patrol-beast i,.hunter i,.guardian i{position:absolute;right:7px;top:14px;width:6px;height:6px;border-radius:50%;background:var(--danger);box-shadow:0 0 8px var(--danger)}.patrol-beast b,.hunter b,.guardian b{position:absolute;left:12px;bottom:-16px;width:52px;height:18px;border-inline:8px solid #566767}.bridge{position:absolute;z-index:5;left:27%;width:48%;height:11px;background:#8a744c;transform-origin:left}.bridge-high{top:44%;transform:rotate(-9deg)}.bridge-low{top:65%;transform:rotate(6deg);filter:brightness(.7)}
.archive-vault{position:absolute;z-index:4;right:10%;top:18%;width:210px;height:125px;border:6px double #526e6f;border-radius:50% 50% 8px 8px;background:#0d2327}.archive-crystal{position:absolute;width:18px;height:25px}.crystal-0{left:18px;top:22px}.crystal-1{left:55px;top:55px;background:var(--gold)}.crystal-2{left:92px;top:18px;background:var(--violet)}.crystal-3{left:132px;top:62px}.crystal-4{left:164px;top:28px;background:var(--blue)}.crystal-5{left:105px;top:87px;background:#ff8ba0}
.domain-gate{position:absolute;z-index:5;top:25%;width:65px;height:115px;border:6px solid #557176;border-radius:50% 50% 5px 5px;display:grid;place-items:center;font:900 30px monospace;font-style:normal}.gate-neg{left:28%;color:var(--blue)}.gate-pos{right:18%;color:var(--gold)}.zero-throne{position:absolute;z-index:5;left:54%;top:40%;width:70px;height:75px;border:5px solid #4ea995;border-radius:35% 35% 8px 8px;display:grid;place-items:center;color:var(--glow);font-weight:900}.zero-crystal{left:58%;top:36%}
.guardian{right:17%;top:36%;width:95px;height:70px;background:#504c45;border-color:#a48c5d}.energy-rope{position:absolute;z-index:6;left:52%;top:54%;width:31%;height:4px;background:var(--gold);box-shadow:0 0 9px var(--gold);transform:rotate(-8deg);transform-origin:left}.light-key{position:absolute;z-index:8;left:35%;top:35%;width:7px;height:75px;background:var(--blue);box-shadow:0 0 10px var(--blue);transform:rotate(55deg)}
.surface-road{position:absolute;z-index:4;left:11%;right:9%;bottom:37px;height:72px;background:#373a36;transform:perspective(100px) rotateX(18deg);border-block:4px solid #7a765e}.tree{position:absolute;left:18%;bottom:62px;width:12px;height:52px;background:#594938}.tree::before{content:"";position:absolute;left:-19px;top:-27px;width:50px;height:45px;border-radius:50%;background:#315742}.signpost{position:absolute;left:49%;bottom:42px;width:30px;height:54px;border-top:24px solid #b5a36c;border-left:5px solid #7e6f50;color:#172326;font-style:normal;text-indent:-24px;line-height:20px}.pole{position:absolute;right:18%;bottom:55px;width:6px;height:73px;background:#657174}
.hunter{right:13%;top:42%;background:#432f3c;border-color:#825467}.hunter-gate{left:32%;right:auto;opacity:.75}.hunter-beam{position:absolute;z-index:6;right:20%;top:53%;width:42%;height:2px;background:var(--danger);box-shadow:0 0 8px var(--danger);transform:rotate(6deg)}
.oracle-chest{position:absolute;z-index:7;right:22%;top:42%;width:110px;height:65px;border:6px solid #8b7349;border-radius:45px 45px 8px 8px;background:#312c25;box-shadow:0 0 20px #ffd46e22}.oracle-chest i{position:absolute;inset:8px;border:2px solid #a98f5d}.oracle-chest b{position:absolute;left:48%;top:33%;color:var(--gold);font-size:22px}.collapse-zone{position:absolute;z-index:3;top:20%;bottom:20%;width:25%;background:repeating-linear-gradient(45deg,#1118,#1118 5px,#4e4b6b55 6px,#4e4b6b55 10px)}.collapse-zone.left{left:4%}.collapse-zone.right{right:4%}
.pulse-path{position:absolute;z-index:4;left:49%;top:57%;width:40%;height:3px;background:#41666a;transform-origin:left}.path-0{transform:rotate(-28deg)}.path-1{transform:rotate(0)}.path-2{transform:rotate(29deg)}.energy-pulse{position:absolute;z-index:7;left:49%;top:55%;width:11px;height:11px;border-radius:50%;background:var(--glow);box-shadow:0 0 12px var(--glow);animation:pulseRun 1.5s ease-in-out infinite}
.stone-door{position:absolute;z-index:5;right:17%;top:12%;width:150px;height:176px;border:13px solid #4f5b59;border-radius:50% 50% 5px 5px;background:#1d292a;box-shadow:inset 0 0 30px #000,0 8px 18px #000}.door-ring{position:absolute;left:30px;top:36px;width:65px;height:65px;border:8px double #927f52;border-radius:50%;animation:coreSpin 7s linear infinite}.door-lock{position:absolute;bottom:18px;width:23px;height:23px;border:3px solid #778584;border-radius:50%}.lock-0{left:25px}.lock-1{left:61px}.lock-2{left:97px}
.zero-rift{position:absolute;z-index:6;left:58%;top:47%;translate:-50% -50%;width:92px;height:140px;filter:drop-shadow(0 0 20px #9d80ff)}.zero-rift i,.zero-rift b{position:absolute;inset:0;background:linear-gradient(160deg,transparent 10%,#c5afff 12% 16%,#433568 18% 47%,#0a1720 49% 55%,#9373e0 57% 69%,transparent 71%);clip-path:polygon(47% 0,67% 25%,54% 42%,73% 59%,55% 100%,41% 68%,25% 52%,42% 33%)}.zero-rift b{transform:scaleX(-1);opacity:.65}.seal-row{position:absolute;z-index:9;right:8%;bottom:18px;display:flex;gap:8px}.seal{width:29px;height:29px;display:grid;place-items:center;border:2px solid #566868;border-radius:50%;font-style:normal;color:#80918e;background:#122326}.seal.lit{border-color:var(--glow);color:#fff;box-shadow:0 0 12px var(--glow);background:#237a68}.seal.current{border-color:var(--gold);color:var(--gold);animation:sealBreathe .7s ease-in-out infinite alternate}

/* 成功与失败的世界后果动画（覆盖 15 个事件） */
.scene-e01.outcome-success .signal-crystal{animation:signalResolve .7s ease-in forwards}.scene-e01.outcome-fail .signal-crystal{animation:crystalBounce .45s ease-in-out}
.scene-e02.outcome-success .gear,.scene-e13.outcome-success .gear{animation:gearTurn .55s linear infinite}.scene-e02.outcome-fail .machine-beast,.scene-e13.outcome-fail .machine-beast{animation:hurtShake .35s ease-in-out}
.scene-e03.outcome-success .lost-shadow{animation:shadowReturn .7s ease-in forwards}.scene-e03.outcome-fail .mirror-gate{animation:hurtShake .35s ease-in-out}
.scene-e04.outcome-success .mist-left{animation:mistRetreatLeft .7s forwards}.scene-e04.outcome-success .mist-right{animation:mistRetreatRight .7s forwards}.scene-e04.outcome-fail .mist{filter:blur(2px)}
.scene-e05.outcome-success .bridge-high{box-shadow:0 -5px 14px var(--glow)}.scene-e05.outcome-fail .patrol-beast{animation:beastWake .5s ease-in-out}
.scene-e06.outcome-success .archive-crystal{animation:crystalHome .7s ease-in}.scene-e06.outcome-fail .archive-vault{animation:hurtShake .3s ease-in-out}
.scene-e07.outcome-success .zero-throne{box-shadow:0 0 25px var(--glow);animation:corePulse .5s alternate infinite}.scene-e07.outcome-fail .domain-gate{animation:gateReject .45s ease-out}
.scene-e08.outcome-success .energy-rope{animation:ropeCut .65s forwards}.scene-e08.outcome-fail .light-key{animation:keyMiss .45s ease-in-out}
.scene-e09.outcome-success .surface-road{box-shadow:0 -6px 20px var(--glow)}.scene-e09.outcome-fail .signpost{animation:hurtShake .35s ease-in-out}
.scene-e10.outcome-success .hunter{animation:hunterMiss .7s forwards}.scene-e10.outcome-fail .hunter{animation:hunterLunge .45s forwards}
.scene-e11.outcome-success .oracle-chest{box-shadow:0 0 30px var(--gold);animation:chestOpen .7s forwards}.scene-e11.outcome-fail .collapse-zone{opacity:.82}
.scene-e12.outcome-success .energy-pulse{animation:pulseResolve .7s forwards}.scene-e12.outcome-fail .energy-pulse{animation:pulseFade .5s forwards}
.scene-e13.outcome-success .zero-core{animation:corePulse .45s alternate infinite}.scene-e13.outcome-fail .machine-beast{animation:crystalBounce .4s}
.scene-e14.outcome-success .door-lock{border-color:var(--gold);box-shadow:0 0 12px var(--gold)}.scene-e14.outcome-success .door-ring{animation:gearTurn .55s linear infinite}.scene-e14.outcome-fail .stone-door{animation:hurtShake .35s}
.scene-e15.outcome-success .zero-rift{animation:riftClose .75s forwards}.scene-e15.outcome-fail .zero-rift{animation:riftSurge .4s ease-in-out}

/* 奖励与结算 */
.reward-room { position:relative; }.reward-scene{height:190px;position:relative;margin:-20px -20px 14px;background:radial-gradient(circle,#3cae8a44,transparent 55%);overflow:hidden}.reward-scene .zero-core{left:50%;top:45%}.reward-scene .adventurer{left:34%;top:48%}.reward-rays{position:absolute;left:50%;top:44%;width:250px;height:250px;translate:-50% -50%;background:repeating-conic-gradient(transparent 0 18deg,#ffd46e22 20deg 23deg);animation:coreSpin 9s linear infinite}.reward-copy{text-align:center}.reward-copy h1{margin:4px}.reward-copy p{color:var(--muted);margin:8px}.reward-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.reward{min-height:145px;text-align:left}.reward strong,.reward span{display:block}.reward .icon{font-size:31px;color:var(--gold);margin-bottom:9px}.reward small{display:block;color:var(--muted);margin-top:7px;line-height:1.45}
.end{text-align:center;max-width:720px}.victory-scene{height:230px;position:relative;margin:-20px -20px 13px;background:radial-gradient(circle at 50% 65%,#55ddaa55,transparent 50%);overflow:hidden}.victory-scene .zero-core{left:56%;top:47%}.victory-scene .adventurer{left:37%;top:49%;scale:1.25}.victory-rays{position:absolute;inset:-80%;background:repeating-conic-gradient(transparent 0 19deg,#6fffd018 20deg 22deg);animation:coreSpin 12s linear infinite}.victory-scene.lost{filter:grayscale(.65);background:radial-gradient(circle at 50% 65%,#c7666655,transparent 50%)}.end .title{font-size:clamp(37px,8vw,60px);font-weight:900;color:var(--gold);margin:2px}.ending-line{color:var(--muted);font-size:17px}.summary{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin:18px auto}.summary div{display:grid;background:#0e292f;border:1px solid #31545a;border-radius:12px;padding:11px}.summary b{font-size:20px;color:var(--glow)}.summary span{font-size:10px;color:var(--muted)}.badge strong{color:var(--gold)}

/* debug 仅在 ?debug=1 出现 */
#debug{display:none;margin:12px 0 22px;border:1px solid #8a7040;background:#19170f;border-radius:12px;padding:12px}#debug.active{display:block}#debug summary{cursor:pointer;color:var(--gold);font-weight:700}#debug pre{white-space:pre-wrap;max-height:240px;overflow:auto;font-size:11px;background:#090d0e;padding:8px;border-radius:8px}#debug .debug-actions{display:flex;flex-wrap:wrap;gap:7px;margin:8px 0}#debug button,#debug .debug-download{font-size:12px;padding:8px}.debug-download{text-decoration:none}.debug-mastery{display:grid;grid-template-columns:repeat(2,1fr);gap:5px;font-size:12px;margin:9px 0}.debug-mastery span{background:#252015;padding:5px;border-radius:5px}

@keyframes breathe{to{transform:translateY(-3px)}}@keyframes scoutMove{to{transform:translateX(8px) rotate(2deg)}}@keyframes teleportGlow{50%{opacity:.28;filter:drop-shadow(0 0 22px var(--violet));transform:scaleX(-1)}}@keyframes hurtShake{25%{transform:translateX(-6px)}75%{transform:translateX(6px)}}@keyframes collectArm{to{transform:rotate(-95deg)}}@keyframes victoryHop{to{transform:translateY(-12px) rotate(3deg)}}@keyframes coreSpin{to{transform:rotate(360deg)}}@keyframes corePulse{to{scale:1.09}}@keyframes mistDrift{to{transform:translateX(3%)}}@keyframes mistThreat{to{transform:scale(1.16)}}@keyframes signalFly{to{transform:translate(30px,-8px)}}@keyframes signalResolve{to{transform:translate(90px,20px) scale(.4);opacity:.25}}@keyframes crystalBounce{50%{transform:translateX(-25px) rotate(-15deg)}}@keyframes gearTurn{to{transform:rotate(360deg)}}@keyframes shadowReturn{to{right:76%;opacity:.25;transform:scale(.55)}}@keyframes mistRetreatLeft{to{transform:translateX(-60%);opacity:0}}@keyframes mistRetreatRight{to{transform:translateX(60%);opacity:0}}@keyframes beastWake{50%{transform:translateY(-10px) rotate(-5deg)}}@keyframes crystalHome{to{transform:translateY(-18px);filter:drop-shadow(0 0 16px #fff)}}@keyframes gateReject{50%{transform:scaleX(.82)}}@keyframes ropeCut{50%{opacity:1;transform:rotate(17deg) scaleX(.5)}to{opacity:0;transform:rotate(30deg) scaleX(.1)}}@keyframes keyMiss{to{transform:translate(45px,-30px) rotate(85deg);opacity:.35}}@keyframes hunterMiss{to{right:-15%;transform:rotate(15deg);opacity:.4}}@keyframes hunterLunge{to{right:39%;transform:scale(1.12)}}@keyframes chestOpen{to{transform:translateY(-8px);filter:brightness(1.6)}}@keyframes pulseRun{50%{transform:translate(130px,-35px)}to{transform:translate(210px,15px)}}@keyframes pulseResolve{to{transform:translate(230px,-30px);box-shadow:0 0 28px var(--glow)}}@keyframes pulseFade{to{transform:translate(90px,25px);opacity:0}}@keyframes riftClose{to{transform:scaleX(.08);opacity:.25}}@keyframes riftSurge{50%{transform:scale(1.18);filter:brightness(1.8)}}@keyframes sealBreathe{to{scale:1.12;box-shadow:0 0 16px var(--gold)}}@keyframes intervalBreathe{to{filter:brightness(1.35)}}
@keyframes axisTrail{to{transform:translateX(-20px);opacity:0}}@keyframes wingFloat{to{translate:0 -3px;rotate:3deg}}@keyframes ringBreathe{to{scale:1.09;opacity:.62}}@keyframes tentacleWave{to{translate:2px 3px;rotate:5deg}}@keyframes deerListen{to{rotate:4deg;translate:0 -1px}}@keyframes mirrorLeap{50%{transform:scaleX(-1) translateY(-6px);filter:drop-shadow(0 0 16px var(--violet))}}@keyframes lampGlow{to{opacity:.35;transform:scaleX(.84)}}@keyframes penguinSway{to{translate:1px 1px;rotate:1.5deg}}

@media (max-width: 720px){
  .shell{padding:0 10px}.hero{display:flex;flex-direction:column;padding-top:5px}.hero-scene{width:100%;height:300px}.hero-scene .adventurer{left:29%;top:57%;scale:1.12}.hero-scene .zero-rift{top:25%}.hero-scene .zero-core{top:62%}.hero-callout{left:7%;bottom:17px}.hero-copy{width:100%;text-align:center;padding:4px 8px 18px}.hero h1{font-size:42px;margin:4px 0 10px}.hero-alert{font-size:17px}.hero-mission{font-size:14px;line-height:1.55}.room{padding:14px}.room-head{align-items:start}.clue-state{max-width:115px}.scene{height:210px;margin:13px -14px 0}.scene .adventurer{left:12%;top:46%;scale:.9}.zero-core{width:60px;height:60px}.room h1{font-size:25px}.mission-card h2{font-size:18px}.signal-readout{font-size:27px}.dial-stage{grid-template-columns:150px 1fr;gap:8px}.dial{width:145px;height:145px;border-width:9px}.dial-pointer{height:56px;transform-origin:50% 67px}.dial-instruction b{font-size:35px}.classify-grid{grid-template-columns:repeat(2,1fr)}.reward-grid{grid-template-columns:1fr}.reward{min-height:0}.summary{grid-template-columns:repeat(2,1fr)}.stone-door{right:7%;transform:scale(.82)}.archive-vault{right:2%;transform:scale(.8)}.oracle-chest{right:8%}.seal-row{right:3%;gap:4px}.seal{width:25px;height:25px}.hero .prototype-mark{margin-top:3px}footer span{display:none}
}

@media (max-width: 390px){
  header{padding:9px 0}.local{display:none}main{padding:8px 0 14px}.brand>span{font-size:14px}.hero-scene{height:270px}.hero h1{font-size:36px}.hud{grid-template-columns:repeat(4,1fr);gap:4px}.stat{padding:5px 2px}.stat b{font-size:15px}.stat small{font-size:9px}.scene{height:190px}.mission-card{padding-top:13px}.room-head{display:block}.clue-state{max-width:none;justify-content:start;margin-top:6px}.clue-state span:nth-child(2){display:none}.dial-stage{grid-template-columns:135px 1fr}.dial{width:130px;height:130px}.dial-pointer{height:50px;transform-origin:50% 60px}.options,.zones{grid-template-columns:repeat(auto-fit,minmax(90px,1fr))}.zone{min-height:62px}.world-axis{top:72%}.machine-beast{right:3%;transform:scale(.8)}.mirror-gate{right:8%;transform:scale(.82)}.patrol-beast,.hunter,.guardian{right:4%;transform:scale(.85)}.summary b{font-size:17px}
}

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.001ms!important}
}
/* V0.1.1: reserve hint space so hiding it never moves the live dial. */
.rotation-hint{min-height:3.2em;margin:8px 0;color:#b4ffeb;text-align:center;font-size:.9rem;line-height:1.6;pointer-events:none}
.rotation-hint[hidden]{display:block;visibility:hidden}
.room-transition{text-align:center;padding:48px 20px}
.personal-best,.new-best{text-align:center;color:#b4ffeb}
.new-best{font-weight:700}
.history-link{display:block;margin:14px auto 0;background:transparent;border:0;color:var(--muted,#b6c9ca);font-size:14px;text-decoration:underline;text-underline-offset:4px;min-height:44px;padding:8px 16px}
.player-history{max-width:760px;margin-inline:auto;text-align:left}
.history-back{background:transparent;margin-bottom:16px;min-height:44px}
.player-history h1{margin:0 0 8px;font-size:clamp(24px,5vw,32px)}
.history-subtitle,.history-note{color:#adc0c5;line-height:1.65}
.history-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:22px}
.history-cards>div,.history-highlights>div{padding:16px 12px;border:1px solid #39515c;border-radius:12px;background:#142630;min-width:0}
.history-cards span,.history-highlights span{display:block;font-size:13px;color:#b4c8ce}
.history-cards b{display:block;font-size:clamp(19px,4.8vw,27px);margin-top:9px;color:#ecf5ed;overflow-wrap:anywhere}
.history-growth{padding:16px 12px;background:#1c3835;color:#bdedd4;border-radius:10px;line-height:1.6}
.history-highlights{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.history-highlights b{display:block;font-size:20px;margin-top:8px}
.player-history h2{font-size:19px;margin:28px 0 12px}
.history-runs{list-style:none;margin:0;padding:0}
.history-runs li{border-top:1px solid #344a53;padding:15px 0}
.history-run-title{display:flex;justify-content:space-between;gap:12px;color:#d4e6df}
.history-run-details{display:flex;flex-wrap:wrap;gap:8px 16px;margin-top:8px;color:#b4c8ce;font-size:14px}
.history-empty{line-height:1.8;padding:20px 12px;border:1px dashed #425e65;border-radius:12px;color:#c1d5d5}
.history-note{font-size:12px;margin-top:20px}
.perfect-run{padding:12px;border:1px solid #56786b;border-radius:10px;color:#c2efd2}
.perfect-run strong,.perfect-run span{display:block}.perfect-run span{font-size:14px;line-height:1.6;margin-top:5px}
