:root{color-scheme:dark;--bg:#0b1118;--panel:#121b24;--panel-soft:#101821;--line:#25313d;--text:#edf2f4;--muted:#92a2b3;--mint:#81edd0;--orange:#ffaf78;--cell:44px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,"Segoe UI","Microsoft YaHei",sans-serif;font-size:16px}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:disabled{opacity:.4;cursor:not-allowed}button,a{touch-action:manipulation}button:focus-visible,a:focus-visible{outline:2px solid var(--mint);outline-offset:5px}button{color:inherit}button:hover:not(:disabled){filter:brightness(1.15)}[hidden]{display:none!important}.ambient{position:fixed;inset:0;z-index:-1;background:radial-gradient(ellipse at 46% 45%,#17323544,transparent 48%),radial-gradient(ellipse at 90% 0%,#34302c44,transparent 40%);pointer-events:none}.site-shell{max-width:1328px;margin:auto;padding:0 48px}.header{height:98px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:11px;color:var(--text);text-decoration:none;font-size:27px;font-weight:800;letter-spacing:-1px}.brand-light{font-weight:400}.brand-dot{color:var(--mint)}.header-center{font-size:13px;color:var(--muted);display:flex;align-items:center;gap:12px;letter-spacing:1px}.status-dot{display:inline-block;width:6px;height:6px;background:var(--mint);border-radius:50%;box-shadow:0 0 10px #81edd044;flex-shrink:0}.slash{margin:0 9px;color:#4c5e70}.text-button{border:0;background:none;font-size:14px;padding:8px 0;color:var(--muted)}.text-button span{margin-left:8px;color:var(--mint)}.page-heading{display:flex;align-items:center;justify-content:space-between;padding:38px 0 30px}.eyebrow{font-size:12px;letter-spacing:3px;color:var(--mint);font-weight:600}h1{font-size:44px;letter-spacing:3px;margin:10px 0 8px;font-weight:750;line-height:1.25}h1>span:first-child{font-weight:350}.title-star{display:inline-block;margin-left:18px;color:var(--orange);font-weight:400;font-size:37px;vertical-align:3px}.page-heading p{color:var(--muted);font-size:14px;margin:0;letter-spacing:1px}.chapter-count{display:flex;flex-direction:column;gap:10px;text-align:right;color:var(--muted);font-size:12px}.chapter-count strong{font-size:30px;color:var(--text);font-weight:450}.chapter-count strong span{font-size:14px;color:var(--muted)}.game-layout{display:grid;grid-template-columns:minmax(190px,1fr) minmax(360px,486px) minmax(200px,1fr);gap:26px;align-items:start}.mission-card,.personal-card,.how-card,.session-card{border:1px solid var(--line);border-radius:16px;background:linear-gradient(135deg,#17222b99,#101821);padding:23px}.card-label{font-size:13px;color:var(--muted);display:flex;justify-content:space-between;gap:8px}.card-label>span{font-size:12px;color:#677b8d}.orbit-art{height:202px;position:relative;margin:0 -14px;overflow:hidden}.orbit{position:absolute;border:1px solid #45655655;border-radius:50%;left:50%;top:48%;transform:translate(-50%,-50%) rotate(-30deg)}.orbit-a{width:210px;height:94px}.orbit-b{width:180px;height:150px;transform:translate(-50%,-50%) rotate(34deg);border-color:#34506455}.planet{position:absolute;width:103px;height:103px;border-radius:50%;left:50%;top:46%;transform:translate(-50%,-50%);background:radial-gradient(circle at 27% 21%,#b6ffdc,#3eb9a2 35%,#16404b 69%,#112330 85%);box-shadow:0 0 40px #81edd01a,inset -16px -11px 18px #0b162a99}.orbit-art i{position:absolute;width:9px;height:9px;border-radius:50%;background:var(--orange);top:65px;right:20%;box-shadow:0 0 13px #ffaf7866}.orbit-art b{position:absolute;left:14px;bottom:18px;font-size:44px;font-weight:300;color:#b4d5d225;letter-spacing:-2px}.orbit-art>span{position:absolute;right:17px;bottom:23px;color:#7f9b9f;font-size:10px;letter-spacing:3px}.mission-card .eyebrow{font-size:10px;letter-spacing:2px}.mission-card h2{font-size:24px;font-weight:550;margin:8px 0}.mission-card p{font-size:13px;line-height:1.8;color:var(--muted);margin:0 0 22px}.outline-button{border:1px solid #3b5d58;color:var(--mint);background:#81edd008;padding:12px 15px;font-size:14px;border-radius:9px;display:flex;justify-content:space-between;width:100%}.personal-card{margin-top:18px;padding:22px}.personal-stats{display:flex;flex-direction:column;gap:20px;margin:22px 0}.personal-stats>div{display:flex;flex-direction:column;gap:5px}.personal-stats strong{font-weight:500;font-size:27px;font-variant-numeric:tabular-nums}.personal-stats strong span{font-size:13px;color:#687e8e}.personal-stats>div>span{font-size:12px;color:var(--muted)}.save-note{border-top:1px solid var(--line);padding-top:17px;color:#789387;font-size:11px;display:flex;align-items:center;gap:8px}.play-panel{background:linear-gradient(160deg,#1b2833,#131e28 60%);border:1px solid #34434e;border-radius:20px;padding:24px;box-shadow:0 20px 65px #0004;position:relative}.game-top{display:flex;align-items:center;justify-content:space-between}.level-pill{font-size:12px;letter-spacing:1px;color:var(--mint);padding:6px 10px;border:1px solid #36564f;border-radius:6px;background:#81edd00b}.level-pill strong{margin-left:7px;font-size:16px;letter-spacing:2px}.game-tools{display:flex;gap:6px}.icon-button{width:32px;height:32px;border-radius:7px;border:1px solid #34434e;background:#17212b;color:#a8b8c5;font-size:22px;display:inline-flex;align-items:center;justify-content:center;position:relative}.sound-off{font-size:12px;position:absolute;right:3px;bottom:2px;color:var(--orange)}.score-row{display:flex;justify-content:space-between;align-items:center;margin:23px 0 20px;gap:15px}.small-label{font-size:12px;color:var(--muted);display:block}.score-row strong{font-size:40px;line-height:1.25;letter-spacing:-1px;font-weight:500;font-variant-numeric:tabular-nums}.goal-stat{width:52%;text-align:right}.goal-stat .small-label span{color:var(--text);margin-left:9px;font-size:14px}.progress-track{height:5px;background:#2d3b47;border-radius:3px;margin:10px 0 7px;overflow:hidden}.progress-track>div{height:100%;width:0;background:var(--mint);border-radius:3px;transition:width .3s}#remaining{font-size:11px;color:#7f939f}.board-wrap{position:relative;aspect-ratio:1}.board{display:grid;grid-template-columns:repeat(8,1fr);gap:5px;background:#0a131c;padding:9px;border:1px solid #2a3b46;border-radius:11px;width:100%;height:100%;touch-action:none}.cell{position:relative;border:1px solid #24313e;background:#1b2834;border-radius:5px;min-width:0;padding:0;aspect-ratio:1;transition:background .1s,box-shadow .1s}.cell::after,.mini-cell::after{content:'';position:absolute;inset:3px;border-top:1px solid #ffffff25;border-radius:2px;pointer-events:none}.cell:not([data-color])::after{display:none}.cell[data-color="1"],.mini-cell[data-color="1"]{background:#70dbbb;border-color:#91efcf;box-shadow:inset 0 -3px #2e826c55}.cell[data-color="2"],.mini-cell[data-color="2"]{background:#91a4f4;border-color:#bac5ff;box-shadow:inset 0 -3px #4958a155}.cell[data-color="3"],.mini-cell[data-color="3"]{background:#f1aa76;border-color:#ffc596;box-shadow:inset 0 -3px #ad683455}.cell[data-color="4"],.mini-cell[data-color="4"]{background:#60bbdf;border-color:#9bddf3;box-shadow:inset 0 -3px #267e9e55}.cell[data-color="5"],.mini-cell[data-color="5"]{background:#d38ba8;border-color:#f2b8d1;box-shadow:inset 0 -3px #934c6c55}.cell.preview{background:#81edd044;box-shadow:inset 0 0 0 2px var(--mint);border-color:var(--mint)}.cell.invalid{background:#ff8b8133;box-shadow:inset 0 0 0 1px #ff8b81}.cell.clearing{animation:clear .24s ease-out}.cell.pop{animation:pop .2s ease-out}.tray-label{display:flex;justify-content:space-between;color:#a7b5c1;font-size:12px;margin:19px 0 12px}.tray-label>span:last-child{color:#6d8595;font-size:11px}.tray{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.piece-slot{height:93px;border:1px solid #34434f;background:#15212b;border-radius:10px;display:flex;align-items:center;justify-content:center;touch-action:none;position:relative;padding:8px}.piece-slot.selected{border-color:var(--mint);background:#81edd00b;box-shadow:0 0 18px #81edd00a}.piece-slot.selected::before{content:'';width:4px;height:4px;background:var(--mint);border-radius:50%;position:absolute;bottom:5px}.piece-slot.empty{border-style:dashed;opacity:.35;font-size:20px}.piece-shape{display:grid;gap:3px;pointer-events:none}.mini-cell{width:17px;height:17px;border-radius:3px;border:1px solid transparent;position:relative}.board-footer{display:flex;justify-content:space-between;align-items:center;margin-top:12px}.board-footer>span{font-size:11px;color:#7f95a5}kbd{border:1px solid #3b4d5c;border-radius:3px;font-family:inherit;padding:0 3px;margin-right:4px}.board-footer .text-button{font-size:12px;color:var(--mint)}#rescue-count{border:1px solid #44685e;border-radius:4px;padding:1px 4px;margin-left:4px}.feedback{font-size:12px;margin:8px 0 0;color:#829aa6;min-height:18px;text-align:center}.board-message{pointer-events:none;position:absolute;top:43%;left:0;right:0;text-align:center;color:white;font-weight:800;font-size:34px;text-shadow:0 3px 15px #000;opacity:0}.board-message.show{animation:scorefloat .8s ease-out}.how-card{padding:23px 20px}.tutorial-art{display:grid;grid-template-columns:repeat(3,17px);gap:4px;transform:rotate(-9deg);width:max-content;margin:28px auto 26px}.tutorial-art i{width:17px;height:17px;background:var(--orange);border:1px solid #ffc99e;border-radius:3px;box-shadow:0 4px 9px #0002}.tutorial-art .dim{background:transparent;border:1px dashed #8c705e}.how-card ol{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:20px}.how-card li{display:flex;gap:12px}.how-card li>span{font-size:11px;line-height:23px;color:var(--orange);font-variant-numeric:tabular-nums}.how-card h3{font-size:14px;font-weight:500;margin:0 0 4px}.how-card li p{font-size:12px;color:var(--muted);line-height:1.7;margin:0}.tip{display:flex;gap:10px;margin-top:25px;border-top:1px solid var(--line);padding-top:17px}.tip>span{color:var(--orange);font-size:20px}.tip p{margin:0;color:#9eaaa9;font-size:12px;line-height:1.9}.session-card{margin-top:18px;padding:20px}.session-card>div{display:flex;justify-content:space-between;margin-top:16px;font-size:12px;color:var(--muted)}.session-card strong{font-size:16px;color:#d3e6e3;font-weight:450}.quiet-note{display:flex;align-items:center;gap:14px;margin:24px 12px;color:#6a8390}.quiet-note>span{font-size:31px;color:#748e85}.quiet-note p{font-size:12px;line-height:1.9;margin:0}footer{margin-top:38px;padding:23px 0 26px;border-top:1px solid var(--line);color:#708290;font-size:11px;display:flex;justify-content:space-between;gap:15px;letter-spacing:.4px}.footer-divider{margin:0 10px;color:#465c6b}.version{margin-left:10px;border:1px solid var(--line);border-radius:4px;padding:2px 5px;font-size:10px}.pause-cover{position:absolute;inset:0;background:#0b141bee;backdrop-filter:blur(7px);border-radius:11px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px;text-align:center}.pause-cover>span{font-size:42px;color:var(--mint)}.pause-cover h2{font-size:20px;font-weight:500;margin:20px 0 25px}.primary-button{background:var(--mint);color:#102b25;border:0;border-radius:9px;font-weight:650;font-size:15px;padding:13px 22px}.secondary-button{border:1px solid #41515e;border-radius:9px;background:#202e38;color:var(--text);font-size:15px;padding:12px 22px}.drag-ghost{position:fixed;pointer-events:none;z-index:99;opacity:.85;filter:drop-shadow(0 10px 12px #0005)}.drag-ghost .mini-cell{width:var(--cell);height:var(--cell)}dialog{color:var(--text);background:#15212b;border:1px solid #40515d;border-radius:20px;width:min(600px,calc(100vw - 28px));max-height:85dvh;padding:25px;box-shadow:0 30px 100px #0009}dialog::backdrop{background:#050a10bb;backdrop-filter:blur(6px)}.dialog-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}#dialog-body h2{font-size:27px;margin:12px 0}#dialog-body p{color:#9db0bf;font-size:14px;line-height:1.9}#dialog-body .result-score{font-size:60px;color:var(--mint);font-weight:450;margin:16px 0 6px}#dialog-body .stars{font-size:32px;letter-spacing:10px;color:var(--orange);margin-top:20px}.dialog-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:25px}.chapter-tabs{display:flex;overflow:auto;gap:6px;margin:18px 0;padding-bottom:8px}.chapter-tab{white-space:nowrap;padding:8px 10px;border:1px solid #3a4b59;border-radius:7px;background:#1c2c38;font-size:12px}.chapter-tab.active{border-color:var(--mint);color:var(--mint)}.level-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}.level-choice{height:57px;background:#1c2b37;border:1px solid #354754;border-radius:8px;font-size:15px}.level-choice.current{border-color:var(--mint);color:var(--mint)}.level-choice.done{background:#81edd015}.level-choice small{display:block;font-size:9px;letter-spacing:1px;color:var(--orange);margin-top:4px}.level-choice:disabled{font-size:12px}.dialog-note{font-size:12px!important}.shortcut{display:flex;gap:7px;flex-wrap:wrap;color:#a3b6c3;font-size:13px}.about-link{color:var(--mint)}@keyframes clear{50%{background:#fff;box-shadow:0 0 25px var(--mint);transform:scale(.88)}100%{opacity:0}}@keyframes pop{50%{transform:scale(.88)}}@keyframes scorefloat{10%,60%{opacity:1}100%{opacity:0;transform:translateY(-45px)}}@media(min-width:1500px){.site-shell{padding-top:12px}.page-heading{padding-top:42px;padding-bottom:35px}}@media(max-width:1100px){.site-shell{padding:0 28px}.game-layout{grid-template-columns:minmax(170px,1fr) minmax(330px,450px);gap:20px}.right-panel{display:none}.left-panel{max-width:310px}.header{height:80px}}@media(max-width:680px){.site-shell{padding:0 16px}.header{height:68px}.brand{font-size:24px}.brand img{width:27px;height:27px}.header-center{display:none}.page-heading{padding:24px 0 21px}.eyebrow{font-size:10px;letter-spacing:2px}h1{font-size:32px;margin:8px 0}.title-star{font-size:27px;margin-left:10px}.page-heading p{font-size:12px}.chapter-count{font-size:10px}.chapter-count strong{font-size:24px}.chapter-count strong span{font-size:11px}.chapter-count>span{display:none}.game-layout{display:flex;flex-direction:column;gap:18px}.play-panel{order:0;width:100%;max-width:486px;margin:auto;padding:18px;border-radius:17px}.left-panel{order:1;width:100%;max-width:486px;margin:auto;display:grid;grid-template-columns:1fr 1fr;gap:12px}.mission-card,.personal-card{padding:16px;margin:0;border-radius:12px}.orbit-art{display:none}.mission-card .card-label{margin-bottom:20px}.mission-card .eyebrow{font-size:9px}.mission-card h2{font-size:20px}.mission-card p{display:none}.outline-button{margin-top:18px;font-size:12px;padding:10px}.personal-stats{margin:18px 0;gap:12px}.personal-stats strong{font-size:22px}.personal-stats>div>span{font-size:10px}.save-note{font-size:9px;line-height:1.6;padding-top:12px}.card-label{font-size:11px}.card-label>span{font-size:10px}.board{gap:4px;padding:7px}.cell{border-radius:4px}.score-row{margin:17px 0}.score-row strong{font-size:35px}.piece-slot{height:85px}.mini-cell{width:16px;height:16px}.board-footer>span{font-size:10px}.feedback{font-size:11px}footer{margin-top:25px;flex-direction:column;align-items:center;font-size:10px;gap:12px}.level-grid{grid-template-columns:repeat(5,1fr)}dialog{padding:20px}.title-star{vertical-align:2px}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
