:root{color-scheme:dark;--bg:#0e2029;--ink:#f2f0e6;--muted:#a3b7bc;--line:#304750;--mint:#b9dfc6;--gold:#edc887;--panel:#142c36;--cyan:#a8dfe5;font:15px/1.65 system-ui,-apple-system,'Segoe UI',sans-serif}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:radial-gradient(ellipse at 70% 5%,#274b4a66,transparent 55%),var(--bg);min-height:100vh}button,input,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button{cursor:pointer;color:inherit;min-height:44px}button:disabled{cursor:default;opacity:.4}a{color:inherit;text-underline-offset:4px}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid var(--gold);outline-offset:3px}h1,h2,h3,p{margin:0}h1,h2{font-family:Georgia,'Times New Roman',serif;font-weight:400}button{border:1px solid var(--line);background:#1a343e;border-radius:10px;padding:9px 14px}button:hover:not(:disabled){background:#284751}button.primary{background:var(--mint);color:#14352d;border:0;font-weight:750;box-shadow:0 3px 0 #759988}button.primary:hover{background:#d3ecd8}.ghost{background:transparent}.small{font-size:12px}.muted{color:var(--muted)}[hidden]{display:none!important}.skip{opacity:0;pointer-events:none;position:fixed;top:-80px;left:12px;z-index:100;background:var(--mint);color:#122e30;padding:12px}.skip:focus{top:12px;opacity:1;pointer-events:auto}.wrap{max-width:1190px;margin:auto;padding:0 30px}.header{display:flex;justify-content:space-between;align-items:center;gap:18px;height:84px;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-size:12px;line-height:1.25}.brand strong{font-size:15px;display:block}.brand svg{width:35px;height:35px}.header-links{display:flex;align-items:center;gap:12px}.header-links>a{font-size:12px;color:var(--muted)}.header-links button{font-size:12px}.hero{display:flex;justify-content:space-between;align-items:end;gap:22px;padding:34px 0 29px}.eyebrow{font-size:10px;letter-spacing:2.1px;text-transform:uppercase;color:var(--mint);font-weight:750;display:block;margin-bottom:9px}h1{font-size:clamp(34px,4.4vw,53px);letter-spacing:-1.9px;line-height:1.05}h1 em{font-style:normal;color:var(--mint)}.hero-desc{margin-top:13px;color:var(--muted);max-width:535px;font-size:13px;line-height:1.7}.progress-summary{text-align:right;min-width:175px}.progress-summary strong{font-size:29px;color:var(--gold);font-weight:500}.progress-summary p{font-size:11px;color:var(--muted)}.progress-track{display:flex;gap:4px;justify-content:end;margin:10px 0}.progress-track i{display:block;width:6px;height:9px;background:#36515b;border-radius:3px}.progress-track i.done{background:var(--mint)}.game-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:24px;align-items:start}.game-shell{border:1px solid #38525b;background:linear-gradient(135deg,#203e4540,#152d35);border-radius:22px;padding:20px;box-shadow:0 18px 55px #0002}.board-head{display:flex;justify-content:space-between;gap:15px;align-items:center;margin:0 2px 13px}.level-tag{display:flex;align-items:center;gap:12px;font-size:12px}.level-number{font-family:Georgia,serif;border:1px solid #64837d;border-radius:50%;color:var(--mint);width:35px;height:35px;display:grid;place-items:center;font-size:19px}.level-tag strong{font-size:13px;display:block}.level-tag small{display:block;color:var(--muted);font-size:10px}.level-stars{letter-spacing:2px;color:#74908d;font-size:17px}.level-stars .earned{color:var(--gold)}.board-area{position:relative;padding:18px 0 0 20px;max-width:560px;margin:0 auto}.coords-top{position:absolute;left:20px;right:0;top:0;display:grid;grid-template-columns:repeat(6,1fr);text-align:center;color:#96adae;font-size:9px;letter-spacing:1px}.coords-left{position:absolute;left:0;top:18px;bottom:0;width:17px;display:grid;grid-template-rows:repeat(6,1fr);align-items:center;font-size:9px;color:#96adae}.board{position:relative;isolation:isolate;width:100%;aspect-ratio:1;background:radial-gradient(circle at 50% 40%,#213f47,#102630 76%);border:1px solid #42616b;border-radius:13px;overflow:hidden}.board:before{content:'';position:absolute;pointer-events:none;inset:4%;border:1px solid #6d929518;border-radius:50%}.grid{position:absolute;inset:0;display:grid;grid-template-columns:repeat(6,1fr);grid-template-rows:repeat(6,1fr)}.tile{border:0;border-right:1px solid #5d85832b;border-bottom:1px solid #5d85832b;position:relative;min-width:0;padding:0;background:none!important;border-radius:0;display:grid;place-items:center;min-height:0}.tile:nth-child(6n){border-right:0}.tile:nth-last-child(-n+6){border-bottom:0}.tile.mirror{cursor:pointer;z-index:4}.tile.mirror:focus-visible{outline-offset:-5px;border-radius:8px}.tile.mirror:hover{background:#bfded710!important}.mirror-socket{position:absolute;width:68%;height:68%;border:1px solid #718f9154;border-radius:50%;background:radial-gradient(#45666d33,#1b384240);pointer-events:none}.mirror-socket:before,.mirror-socket:after{content:'';position:absolute;border:1px solid #8fa6a65c;width:5px;height:5px;border-radius:50%;background:#36545e;left:calc(50% - 2.5px);top:-3px}.mirror-socket:after{top:auto;bottom:-3px}.mirror-glass{position:absolute;width:75%;height:7%;min-height:4px;border-radius:3px;background:linear-gradient(0deg,#547c89,#c2eaeb 45%,#f3fff4 63%,#8cb7c0);border:1px solid #b2dadc;box-shadow:0 0 9px #88cace38;transform:rotate(-45deg);transition:transform .18s ease;pointer-events:none}.mirror[data-o='1'] .mirror-glass{transform:rotate(45deg)}.mirror.is-fixed .mirror-glass{background:#8d9999;border-color:#b4bdb6}.mirror.is-fixed{cursor:default;z-index:2}.fixed-lock{position:absolute;right:9%;bottom:9%;width:16%;height:16%;color:#c4cbb7}.tile.hinted{background:#edc88720!important;outline:2px solid var(--gold);outline-offset:-3px}.tile.hinted:after{content:'?';position:absolute;right:8%;top:6%;font-weight:700;color:var(--gold);font-size:12px}.tile-svg{width:69%;height:69%;z-index:2;overflow:visible;pointer-events:none}.source .tile-svg{width:83%;height:83%}.tile.goal{color:var(--gold)}.tile.goal.second{color:var(--cyan)}.goal.lit .tile-svg{filter:drop-shadow(0 0 8px currentColor)}.tile.gem{color:#91a8a3}.tile.gem.lit{color:#f8df96}.tile.gem .tile-svg{width:46%;height:46%}.tile.wall:after{content:'';position:absolute;inset:14%;border:1px solid #667b7970;border-top:3px solid #89958b90;border-radius:6px;background:repeating-linear-gradient(45deg,transparent 0 12px,#23373c90 12px 14px),linear-gradient(130deg,#536662,#263e45);box-shadow:3px 4px 0 #071e2990;z-index:4}.ray-layer{position:absolute;inset:0;width:100%;height:100%;z-index:3;pointer-events:none;overflow:hidden}.beam-glow{stroke-width:11;opacity:.2;filter:blur(3px)}.beam-core{stroke-width:2.3;filter:drop-shadow(0 0 3px currentColor)}.beam-dot{fill:#fff7d9;stroke:none;filter:drop-shadow(0 0 3px #ffdc91)}.beam-dash{stroke-width:1.4;stroke-dasharray:4 21;opacity:.85;animation:flow 2s linear infinite}.ray-layer path{fill:none;stroke-linecap:round;stroke-linejoin:round}.beam-end{fill:currentColor;stroke:#fff4cf;stroke-width:.5}.board.pulse{animation:boardPulse .7s ease}.legend{display:flex;justify-content:center;flex-wrap:wrap;gap:9px 18px;font-size:10px;color:#b8c9c8;margin:14px 0}.legend span{display:flex;align-items:center;gap:5px}.legend svg{width:16px;height:16px}.board-status{font-size:12px;color:#bfceca;min-height:24px;text-align:center;margin:10px 0}.controls{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:16px}.controls button{font-size:12px;display:flex;align-items:center;gap:6px;justify-content:center;padding:10px 13px}.icon{width:18px;height:18px;display:inline-block;flex-shrink:0}.mode-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:14px 0 0;font-size:10px;color:var(--muted)}.mode-row button{display:flex;align-items:center;gap:7px;padding:0 8px;font-size:11px;border:0;background:transparent}.switch{display:inline-block;width:28px;height:15px;border:1px solid #88a9a5;border-radius:20px;background:#324954;position:relative}.switch:after{content:'';position:absolute;left:2px;top:2px;width:9px;height:9px;border-radius:50%;background:#a3b6b1;transition:transform .15s}button[aria-pressed=true] .switch{background:#32634e}button[aria-pressed=true] .switch:after{transform:translateX(13px);background:var(--mint)}.sidebar{display:grid;gap:15px}.quest-card{padding:24px 23px;border:1px solid #3a565e;border-radius:19px;background:linear-gradient(150deg,#26464c88,#152e36)}.chapter-label{font-size:9px;letter-spacing:1.5px;color:var(--mint);font-weight:750;text-transform:uppercase}.chapter-label i{display:inline-block;width:5px;height:5px;background:var(--mint);border-radius:50%;vertical-align:middle;margin-right:6px}.quest-card h2{font-size:29px;line-height:1.15;letter-spacing:-.8px;margin:10px 0 14px}.quest-card .story{font-size:12px;color:#b4c7c9;line-height:1.8}.objective{display:flex;align-items:start;gap:10px;padding-top:19px;margin-top:20px;border-top:1px solid #4e6c6955;font-size:12px;color:#cce3d0}.objective .icon{color:var(--gold);width:22px;height:22px;margin-top:3px}.objective strong{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.7px;color:var(--gold);margin-bottom:4px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;text-align:center;border:1px solid var(--line);border-radius:16px;background:#18303a;padding:16px 6px}.stats strong{font-size:24px;font-weight:500;display:block;color:var(--ink);font-variant-numeric:tabular-nums}.stats span{font-size:10px;color:var(--muted);line-height:1.4;display:block}.coach{border:1px solid #43564b;background:#213b3440;border-radius:17px;padding:19px;font-size:12px;color:#bfd1c4}.coach-title{display:flex;align-items:center;gap:10px;margin-bottom:11px;color:var(--mint);font-weight:650}.coach-title svg{width:34px;height:34px}.coach p{line-height:1.75}.coach button{width:100%;margin-top:13px;font-size:12px;background:#223e3c;border-color:#4b6a5a;color:#d6e8d4}.hint-box{border-left:3px solid var(--gold);background:#a77c2918;border-radius:0 9px 9px 0;padding:12px 14px;margin-top:13px}.hint-box p{font-size:12px;line-height:1.7;color:#eddcba}.hint-box button{padding:7px 10px;font-size:11px;margin-top:10px}.success{margin-top:16px;background:linear-gradient(115deg,#224d3e,#284549);border:1px solid #83af8b;border-radius:15px;padding:18px 20px}.success-top{display:flex;gap:15px;align-items:center;justify-content:space-between}.success h3{font:400 24px/1.25 Georgia,serif;color:#e5f4d7}.success p{font-size:12px;color:#c5dec8;margin:5px 0 12px}.success .rating{font-size:24px;color:#efd38d;white-space:nowrap}.success-actions{display:flex;gap:9px;flex-wrap:wrap}.success-actions button{font-size:12px;flex:1}.below{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:25px 0 10px;padding:19px 0;border-top:1px solid var(--line)}.below p{font-size:12px;color:var(--muted)}.below strong{color:var(--ink);display:block;font-weight:550}.below button{font-size:12px}.storage{font-size:10px;color:#879fa5;margin:13px 0}.storage.warning{color:#ebbf83}.footer{text-align:center;font-size:10px;letter-spacing:.5px;color:#789095;padding:20px 0 26px}.boot-error{padding:20px;background:#452e24;color:#f9dcc6;border:1px solid #b08758;border-radius:12px}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}dialog{color:var(--ink);background:#152d37;border:1px solid #527378;border-radius:21px;padding:25px;width:min(760px,calc(100% - 26px));max-height:89dvh;box-shadow:0 30px 100px #0008;overflow:auto}dialog::backdrop{background:#05131cc9;backdrop-filter:blur(4px)}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px}.modal-head h2{font-size:29px;line-height:1.2}.modal-head button{border-radius:50%;width:42px;min-height:42px;padding:4px;font-size:24px;background:#294751}.modal-body{font-size:13px;color:#bccfd1}.modal-body p{margin-bottom:13px}.chapter{border-top:1px solid var(--line);padding:20px 0 4px}.chapter h3{font-size:14px;color:var(--mint);margin:0 0 3px;font-weight:650}.chapter p{font-size:11px;margin-bottom:13px}.level-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:9px}.level-choice{padding:10px 3px;display:flex;align-items:center;flex-direction:column;gap:4px}.level-choice b{font-size:20px;font-weight:550}.level-choice small{font-size:11px;letter-spacing:1px;color:#c9b589}.level-choice[aria-current=true]{border:2px solid var(--gold);background:#364a48}.tutorial-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin:18px 0}.tutorial-grid>div{border:1px solid #48605f;padding:16px;border-radius:13px;background:#1b343a}.tutorial-grid svg{display:block;width:100%;max-height:145px;margin:0 auto 12px}.tutorial-grid strong{color:var(--mint);font-size:13px}.stars-note{padding:16px;border-radius:12px;background:#223e40;margin:18px 0;font-size:12px}.stars-note b{color:var(--gold)}.modal-actions{display:flex;justify-content:end;gap:10px;flex-wrap:wrap;margin-top:18px}.finish{text-align:center;padding:12px}.finish>svg{width:90px;height:90px;color:var(--gold)}.finish h3{font:34px/1.2 Georgia,serif;color:var(--mint);margin:16px 0}.finish .count{font-size:35px;color:var(--gold);display:block;margin:16px 0}.status-flash{color:var(--gold)}@keyframes flow{to{stroke-dashoffset:-50}}@keyframes boardPulse{50%{box-shadow:0 0 26px #cfeebc60}}@media(max-width:1050px){.game-layout{grid-template-columns:minmax(0,1fr) 275px;gap:17px}.wrap{padding:0 23px}.game-shell{padding:15px}.quest-card{padding:20px}.hero h1{font-size:43px}.quest-card h2{font-size:27px}.progress-track{gap:3px}.progress-track i{width:5px}.controls button{padding:10px;font-size:11px}}@media(max-width:800px){.game-layout{grid-template-columns:1fr}.sidebar{grid-template-columns:1fr 1fr;align-items:start}.quest-card{grid-row:span 2}.hero{padding:26px 0}.hero h1{font-size:43px}.progress-summary{min-width:155px}.game-shell{max-width:650px;width:100%;margin:auto}.header{height:72px}.sidebar{max-width:650px;width:100%;margin:auto}}@media(max-width:540px){.wrap{padding:0 14px}.header{height:66px;gap:8px}.brand{font-size:9px;gap:7px}.brand strong{font-size:12px}.brand svg{width:29px;height:29px}.header-links{gap:7px}.header-links>a{font-size:10px}.header-links button{font-size:10px;padding:7px 10px}.hero{padding:22px 0 20px;align-items:start;gap:8px}.hero h1{font-size:34px;letter-spacing:-1.3px}.hero .eyebrow{font-size:8px;letter-spacing:1.5px}.hero-desc{font-size:12px}.progress-summary{min-width:63px;padding-top:23px}.progress-summary strong{font-size:22px}.progress-summary p{font-size:9px;max-width:78px;margin-left:auto}.progress-track{display:none}.game-shell{padding:12px 9px;border-radius:17px}.board-head{margin:0 3px 7px}.level-tag{gap:8px}.level-number{width:29px;height:29px;font-size:16px}.level-tag strong{font-size:11px}.level-tag small{font-size:9px}.level-stars{font-size:15px}.board-area{padding:16px 0 0 15px}.coords-top{left:15px;font-size:8px}.coords-left{top:16px;width:13px;font-size:8px}.board{border-radius:9px}.mirror-glass{min-height:3px}.board-status{font-size:11px;min-height:22px;margin:11px 0}.controls{gap:6px;padding-top:12px}.controls button{padding:9px 11px;font-size:11px;flex:1}.controls .icon{width:15px;height:15px}.legend{gap:5px 13px;font-size:9px;margin:11px 0}.mode-row{margin-top:8px}.mode-row>span{font-size:9px}.mode-row button{font-size:10px}.sidebar{gap:12px;grid-template-columns:1fr}.quest-card{grid-row:auto;padding:20px}.quest-card h2{font-size:26px;margin:9px 0 12px}.quest-card .story{font-size:12px}.objective{margin-top:14px;padding-top:14px}.stats{grid-row:1;padding:12px}.stats strong{font-size:22px}.coach{padding:17px}.success{padding:16px 14px}.success h3{font-size:23px}.success .rating{font-size:19px;letter-spacing:0}.success p{font-size:11px}.success-actions button{font-size:11px}.below{margin-top:22px;padding:16px 0;gap:12px}.below p{font-size:11px}.below button{font-size:11px;white-space:nowrap}.footer{font-size:9px}.storage{font-size:9px}.level-grid{gap:6px}.level-choice{padding:8px 1px;min-height:64px}.level-choice b{font-size:17px}.level-choice small{font-size:8px}.modal-head h2{font-size:25px}dialog{padding:20px}.tutorial-grid{gap:10px}.tutorial-grid>div{padding:11px}.tutorial-grid strong{font-size:12px}.tutorial-grid p{font-size:11px}.modal-body{font-size:12px}}@media(max-width:350px){.wrap{padding:0 10px}.header-links>a{display:none}.hero h1{font-size:30px}.hero .eyebrow{letter-spacing:1px}.progress-summary{min-width:54px}.game-shell{padding:10px 6px}.controls button{padding:10px 7px;font-size:10px}.controls .icon{width:14px}.mode-row button{padding-left:3px}.legend{gap:7px}.board-status{font-size:10px}.success .rating{font-size:17px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}


/* Linked controls keep the original six-by-six touch targets. */
.link-badge{position:absolute;top:4%;left:5%;z-index:5;display:grid;place-items:center;width:1.35em;height:1.35em;border-radius:50%;background:#302c49;color:#f4e5ff;border:1px solid #b79cdd;font:bold clamp(10px,1.3vw,13px)/1 system-ui;pointer-events:none}
.mirror[data-link] .mirror-socket{border-color:#c0a5e2;background:#a887d31c}
.mirror[data-link=B] .link-badge{background:#173e48;border-color:#8fd8e4;color:#d9faff}
.mirror[data-link=C] .link-badge{background:#453521;border-color:#e4ba7a;color:#fff0d2}
.mirror[data-link=D] .link-badge{background:#3e293d;border-color:#e6a1c9;color:#ffe2f3}
.progress-track{flex-wrap:wrap;max-width:240px;margin-left:auto}
