:root{--bg:#050816;--ink:#f5f7ff;--ink-soft:#b9c1e8;--ink-faint:#7f89b8;--glass:#12183ac7;--glass-strong:#0e1330f0;--line:#a0afff2e;--gold:#ffd166;--ok:#4ade80;--bad:#ff6b8b;--info:#7cc8ff;--radius:22px;--c:#ffd166;--font:"PingFang SC", "HarmonyOS Sans SC", "Microsoft YaHei", "Noto Sans SC", system-ui, sans-serif;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;margin:0;overflow:hidden}button{font:inherit;color:inherit}.app{position:fixed;inset:0}.stage,.stage canvas,.label-layer{position:absolute;inset:0}.stage canvas{touch-action:none;display:block}.label-layer{pointer-events:none}.planet-label{pointer-events:auto;border:1.5px solid color-mix(in srgb, var(--c) 55%, transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);cursor:pointer;white-space:nowrap;box-shadow:0 0 18px color-mix(in srgb, var(--c) 30%, transparent);background:#0a0e28b8;border-radius:999px;grid-template-columns:auto auto auto;align-items:center;gap:2px 8px;padding:8px 14px 9px;font-size:15px;transition:transform .2s,box-shadow .2s;display:grid}.planet-label:hover,.planet-label:focus-visible{box-shadow:0 0 26px color-mix(in srgb, var(--c) 60%, transparent);outline:none;transform:scale(1.08)}.pl-icon{font-size:20px}.pl-name{letter-spacing:.04em;font-weight:800}.pl-count{color:var(--ink-soft);font-variant-numeric:tabular-nums;font-size:13px}.pl-bar{background:#ffffff1f;border-radius:9px;grid-column:1/-1;height:5px;overflow:hidden}.pl-bar i{background:var(--c);border-radius:inherit;width:0;height:100%;transition:width .6s;display:block}.planet-label.done{border-color:var(--gold)}.planet-label.done .pl-name:after{content:" 👑"}.planet-label.done .pl-bar i{background:linear-gradient(90deg, var(--c), var(--gold))}.hud{padding:max(14px, env(safe-area-inset-top)) max(18px, env(safe-area-inset-right)) 14px max(18px, env(safe-area-inset-left));pointer-events:none;z-index:5;justify-content:space-between;align-items:center;display:flex;position:absolute;left:0;right:0}.hud>*{pointer-events:auto}.hud-top{top:0}.brand{align-items:center;gap:12px;min-width:0;margin-right:10px;display:flex}.brand>div{min-width:0}.brand-logo{filter:drop-shadow(0 0 10px #ffb45ab3);font-size:34px;animation:3s ease-in-out infinite hover}.brand h1{white-space:nowrap;letter-spacing:.08em;background:linear-gradient(90deg,#ffe08a,#ff9fd2 50%,#8fd8ff);color:#0000;-webkit-background-clip:text;background-clip:text;margin:0;font-size:24px;font-weight:900}.brand p{color:var(--ink-soft);white-space:nowrap;text-overflow:ellipsis;margin:2px 0 0;font-size:13px;overflow:hidden}.hud-actions{flex:none;align-items:center;gap:10px;display:flex}.star-counter{background:var(--glass);border:1px solid #ffd16673;border-radius:999px;align-items:center;gap:6px;padding:7px 16px;font-size:20px;display:flex;box-shadow:0 0 20px #ffd16640}.star-counter b{color:var(--gold);font-variant-numeric:tabular-nums;text-align:center;min-width:1.4em}.star-counter.bump{animation:.35s ease-out bump}.level-btn{--lv:var(--gold);border:1px solid color-mix(in srgb, var(--lv) 55%, transparent);background:var(--glass);cursor:pointer;height:44px;box-shadow:0 0 16px color-mix(in srgb, var(--lv) 25%, transparent);border-radius:999px;align-items:center;gap:6px;padding:0 14px;font-size:15px;font-weight:800;transition:transform .15s,background .15s;display:flex}.level-btn[data-level=easy]{--lv:#80ed99}.level-btn[data-level=hard]{--lv:#ff7a45}.level-btn:hover{background:#3c488ccc}.level-btn:active{transform:scale(.94)}.lv-icon{font-size:18px}.icon-btn{border:1px solid var(--line);background:var(--glass);cursor:pointer;border-radius:50%;flex:none;place-items:center;width:44px;height:44px;font-size:20px;transition:transform .15s,background .15s;display:grid}.icon-btn:hover{background:#3c488ccc}.icon-btn:active{transform:scale(.92)}.hud-bottom{padding-bottom:max(16px, env(safe-area-inset-bottom));justify-content:flex-start;transition:opacity .3s;bottom:0}.fuel{background:var(--glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:18px;width:min(440px,100%);padding:12px 16px}.fuel-label{color:var(--ink-soft);justify-content:space-between;margin-bottom:8px;font-size:14px;display:flex}.fuel-label b{color:var(--gold);font-variant-numeric:tabular-nums}.fuel-bar{background:#ffffff1a;border-radius:99px;height:14px;overflow:hidden}.fuel-bar i{border-radius:inherit;background:linear-gradient(90deg,#ff6b35,#ffd166,#fff3b0) 0 0/200% 100%;width:0;height:100%;transition:width .8s cubic-bezier(.3,1.4,.5,1);animation:2s linear infinite flow;display:block;box-shadow:0 0 14px #ffb450cc}.hint{color:var(--ink);margin:8px 0 0;font-size:14px}.panel{z-index:10;overscroll-behavior:contain;border-radius:var(--radius);background:var(--glass-strong);border:1px solid color-mix(in srgb, var(--c) 40%, transparent);width:min(440px,42vw);box-shadow:0 20px 60px #00000080, 0 0 40px color-mix(in srgb, var(--c) 18%, transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);visibility:hidden;padding:18px 18px 22px;transition:transform .45s cubic-bezier(.2,.9,.3,1.1),visibility 0s linear .45s;position:absolute;top:84px;bottom:18px;right:18px;overflow-y:auto;transform:translate(calc(100% + 40px))}.panel.open{visibility:visible;transition:transform .45s cubic-bezier(.2,.9,.3,1.1),visibility;transform:none}@media (width<=760px),(orientation:portrait) and (width<=1100px){.panel{border-radius:var(--radius) var(--radius) 0 0;width:auto;height:min(64vh,640px);padding-bottom:max(22px, env(safe-area-inset-bottom));inset:auto 0 0;transform:translateY(calc(100% + 40px))}.app.panel-open .hud-bottom{opacity:0;pointer-events:none}.panel{padding-top:14px}.reader-text{max-height:160px}.reader.mode-evidence .reader-text{max-height:260px}.ican{margin-bottom:10px;padding:8px 10px}.panel-head,.dots{margin-bottom:10px}.question{padding:14px 14px 12px}.q-text{font-size:28px}.q-tools{margin-top:8px}.answer-input,.answer .btn{height:52px;min-height:52px}.key{height:46px}.choice{min-height:50px}}.panel-head{align-items:center;gap:12px;margin-bottom:14px;display:flex}.ph-icon{background:color-mix(in srgb, var(--c) 25%, transparent);border:1px solid color-mix(in srgb, var(--c) 50%, transparent);border-radius:16px;flex:none;place-items:center;width:52px;height:52px;font-size:28px;display:grid}.ph-text{flex:1;min-width:0}.ph-text h2{margin:0;font-size:22px;font-weight:900;line-height:1.25}.ph-text p{color:var(--ink-soft);margin:3px 0 0;font-size:14px}.meter,.tc-bar{background:#ffffff1a;border-radius:99px;height:8px;margin-bottom:16px;overflow:hidden}.meter i,.tc-bar i{background:linear-gradient(90deg, var(--c), var(--gold));border-radius:inherit;height:100%;transition:width .5s;display:block}.task-list{gap:12px;margin:0;padding:0;list-style:none;display:grid}.task-card{border:1px solid var(--line);background:#ffffff0d;border-radius:18px;align-items:center;gap:12px;padding:14px;animation:.4s both rise;display:flex}.task-card:nth-child(2){animation-delay:50ms}.task-card:nth-child(3){animation-delay:.1s}.task-card:nth-child(4){animation-delay:.15s}.task-card:nth-child(5){animation-delay:.2s}.task-card.done{background:#ffd16614;border-color:#ffd16666}.tc-moon{flex:none;font-size:28px}.tc-body{flex:1;min-width:0}.tc-body h3{margin:0;font-size:17px;line-height:1.35}.tc-body p{color:var(--ink-soft);margin:4px 0 0;font-size:13px}.tc-bar{height:6px;margin:8px 0 0}.btn{border:1px solid var(--line);cursor:pointer;background:#ffffff14;border-radius:14px;flex:none;min-height:46px;padding:0 20px;font-size:16px;font-weight:800;transition:transform .12s,filter .15s,background .15s}.btn:hover:not(:disabled){filter:brightness(1.12)}.btn:active:not(:disabled){transform:scale(.95)}.btn:disabled{opacity:.45;cursor:default}.btn.primary{color:#1b1440;background:linear-gradient(#ffe08a,#ffb84d);border:none;box-shadow:0 6px #c77d16,0 10px 20px #ffaa3c4d}.btn.primary:active:not(:disabled){transform:translateY(4px);box-shadow:0 2px #c77d16}.btn.ghost{background:0 0}.btn.check{background:color-mix(in srgb, var(--c) 22%, transparent);border-color:color-mix(in srgb, var(--c) 60%, transparent)}.btn.check.on,.btn.on{color:#bdf7d1;background:#4ade8026;border-color:#4ade8099}.btn.danger{color:#ffb3c4;background:0 0;border-color:#ff6b8b80}.btn.small{min-height:36px;padding:0 14px;font-size:14px}.btn.wide{width:100%;margin-top:18px}.pill{border:1px solid var(--line);cursor:pointer;background:#ffffff12;border-radius:999px;padding:7px 14px;font-size:14px}.dots{flex-wrap:wrap;gap:6px;margin:0 0 16px;padding:0;list-style:none;display:flex}.dots li{background:#ffffff24;border-radius:50%;width:14px;height:14px}.dots li.ok{background:var(--ok)}.dots li.fixed{background:var(--gold)}.dots li.revealed{background:var(--ink-faint)}.dots li.current{box-shadow:inset 0 0 0 3px var(--c);background:0 0;transform:scale(1.2)}.question{background:linear-gradient(160deg, color-mix(in srgb, var(--c) 22%, transparent), #ffffff0a);border:1px solid color-mix(in srgb, var(--c) 40%, transparent);text-align:center;border-radius:20px;padding:22px 18px 16px;animation:.35s both pop}.question.shake{animation:.45s shake}.q-text{letter-spacing:.02em;word-break:break-word;font-size:clamp(24px,4.2vw,34px);font-weight:900;line-height:1.4}.q-tools{justify-content:center;gap:8px;margin-top:14px;display:flex}.q-tools:empty{display:none}.answer{gap:10px;margin-top:12px;display:flex}.answer-input{border:2px solid var(--line);min-width:0;height:60px;color:var(--ink);font:inherit;text-align:center;background:#0000004d;border-radius:16px;outline:none;flex:1;padding:0 16px;font-size:26px;font-weight:800;transition:border-color .2s,box-shadow .2s}.answer-input:focus{border-color:var(--c);box-shadow:0 0 0 4px color-mix(in srgb, var(--c) 25%, transparent)}.answer-input.right{border-color:var(--ok);color:#bdf7d1}.answer .btn{min-height:60px;font-size:18px}.keypad{grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px;display:grid}.key{border:1px solid var(--line);cursor:pointer;background:#ffffff14;border-radius:14px;height:54px;font-size:24px;font-weight:800;transition:transform 80ms,background .15s}.key.fn{color:var(--ink-soft);font-size:18px}.key:active:not(:disabled){background:color-mix(in srgb, var(--c) 30%, transparent);transform:scale(.93)}.choices{gap:10px;margin-top:16px;display:grid}.choice{border:2px solid var(--line);cursor:pointer;background:#ffffff0f;border-radius:16px;min-height:58px;padding:10px 16px;font-size:20px;font-weight:800;transition:transform .12s,border-color .15s,background .15s}.choice:hover:not(:disabled){border-color:var(--c)}.choice:active:not(:disabled){transform:scale(.97)}.choice.wrong{opacity:.6;background:#ff6b8b1f;border-color:#ff6b8b99;text-decoration:line-through}.choice.right{border-color:var(--ok);opacity:1;background:#4ade802e}.feedback{text-align:center;min-height:28px;color:var(--ink-soft);margin-top:12px;font-size:17px;font-weight:700;line-height:1.6}.feedback.ok{color:var(--ok);font-size:24px;animation:.4s both pop}.feedback.bad{color:#ffb3c4}.feedback.info{color:var(--info)}.feedback.reveal{color:var(--ink)}.feedback .btn{margin:10px auto 0;display:block}.summary{text-align:center;padding:10px 0 6px}.summary-badge{font-size:64px;animation:.6s both pop,3s ease-in-out .6s infinite hover}.summary h3{margin:6px 0;font-size:24px}.summary p{color:var(--ink-soft);margin:0}.summary b{color:var(--gold)}.review{gap:8px;margin:16px 0 0;padding:0;list-style:none;display:grid}.review li{background:#ffffff0d;border-radius:14px;gap:10px;padding:10px 12px;display:flex}.review b,.review em,.review small{display:block}.review em{color:var(--ok);font-size:14px;font-style:normal}.review small{color:#ffb3c4;font-size:13px}.modal{z-index:30;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);opacity:0;background:#03051299;place-items:center;padding:16px;transition:opacity .25s;display:grid;position:fixed;inset:0}.modal.show{opacity:1}.modal[hidden]{display:none}.modal-card{background:var(--glass-strong);border:1px solid var(--line);border-radius:26px;width:min(560px,100%);max-height:calc(100dvh - 32px);padding:22px;animation:.35s both pop;overflow-y:auto;box-shadow:0 30px 80px #0009}.modal-card header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.modal-card h2{margin:0;font-size:24px}.modal-card header p{color:var(--ink-soft);margin:4px 0 0;font-size:14px}.modal-card h3{margin:22px 0 10px;font-size:17px}.modal-card h3 small{color:var(--ink-faint);font-size:13px;font-weight:400}.modal-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;margin-top:22px;display:flex}.stats{grid-template-columns:repeat(3,1fr);gap:10px;margin-top:18px;display:grid}.stats div{text-align:center;background:#ffffff0f;border-radius:16px;padding:12px 8px}.stats b{color:var(--gold);font-variant-numeric:tabular-nums;font-size:24px;display:block}.stats span{color:var(--ink-soft);font-size:13px}.subject-table{border-collapse:collapse;width:100%;margin-top:16px;font-size:15px}.subject-table th,.subject-table td{text-align:left;border-bottom:1px solid var(--line);padding:9px 8px}.subject-table th{color:var(--ink-faint);font-size:13px;font-weight:600}.subject-table td:not(:first-child),.subject-table th:not(:first-child){text-align:right;font-variant-numeric:tabular-nums}.report-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.report-list li{background:#ffffff0d;border-radius:14px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 12px;padding:12px 14px;display:flex}.report-list li>div:first-child{flex:200px;min-width:0}.report-list b,.report-list small{display:block}.report-list small{color:var(--ink-faint);margin-top:3px;font-size:13px}.report-list li.empty{color:var(--ink-soft);justify-content:center}.mistake-answers{flex-wrap:wrap;gap:6px;font-size:13px;display:flex}.mistake-answers span{background:#ffffff12;border-radius:99px;padding:3px 9px}.mistake-answers .wrong{color:#ffb3c4}.mistake-answers .right{color:#bdf7d1}.mistake-answers .tag{color:var(--ink-faint)}.celebrate{text-align:center;border-color:#ffd16680}.celebrate-emoji{font-size:80px;animation:.6s both pop,3s ease-in-out .6s infinite hover}.celebrate p b{color:var(--gold);font-size:1.3em}.celebrate .modal-actions{justify-content:center}.voyage{border:1px solid var(--line);background:#ffffff0d;border-radius:16px;max-width:24em;margin:18px auto 0;padding:14px 16px 12px}.voyage.ready{border-color:#ffd16699;box-shadow:0 0 18px #ffb45040}.voyage-cells{justify-content:center;gap:6px;display:flex}.voyage-cells i{background:#ffffff1f;border-radius:99px;flex:0 38px;height:12px}.voyage-cells i.on{background:linear-gradient(90deg,#ff6b35,#ffd166);box-shadow:0 0 10px #ffb450b3}.celebrate .voyage p{margin:10px 0 0;font-size:15px;line-height:1.5}.levels header p{max-width:34em;line-height:1.5}.level-grid{grid-template-columns:repeat(3,1fr);gap:12px;margin-top:18px;display:grid}.level-card{--lv:var(--gold);border:2px solid var(--line);text-align:center;cursor:pointer;background:#ffffff0d;border-radius:20px;align-content:start;justify-items:center;gap:6px;padding:18px 12px 16px;transition:transform .15s,border-color .15s,background .15s;display:grid}.level-card[data-level=easy]{--lv:#80ed99}.level-card[data-level=hard]{--lv:#ff7a45}.level-card:hover:not(:disabled){border-color:var(--lv);transform:translateY(-3px)}.level-card.current{border-color:var(--lv);background:color-mix(in srgb, var(--lv) 14%, transparent);box-shadow:0 0 24px color-mix(in srgb, var(--lv) 30%, transparent)}.level-card:disabled{opacity:.45;cursor:default}.lc-icon{font-size:40px}.lc-name{font-size:20px;font-weight:900}.lc-name em{background:var(--lv);color:#1b1440;vertical-align:3px;border-radius:99px;margin-left:6px;padding:2px 8px;font-size:12px;font-style:normal}.lc-desc{color:var(--ink-soft);font-size:14px;line-height:1.45}.lc-detail{color:var(--lv);font-variant-numeric:tabular-nums;margin-top:4px;font-size:13px}@media (width<=520px){.level-grid{grid-template-columns:1fr}.level-card{text-align:left;grid-template-columns:auto 1fr;justify-items:start;column-gap:14px;padding:14px 16px}.lc-icon{grid-row:span 3;align-self:center;font-size:34px}.lc-detail{margin-top:0}}.s-RF{--sc:#ffb84d}.s-RL{--sc:#ff7eb6}.s-RI{--sc:#4cc9f0}.s-L{--sc:#b388ff}.s-W{--sc:#80ed99}.s-SL{--sc:#ffd166}.std-chip{border:1px solid color-mix(in srgb, var(--sc,var(--gold)) 60%, transparent);background:color-mix(in srgb, var(--sc,var(--gold)) 16%, transparent);color:color-mix(in srgb, var(--sc,var(--gold)) 70%, white);letter-spacing:.02em;white-space:nowrap;font-variant-numeric:tabular-nums;border-radius:99px;align-items:center;gap:4px;padding:2px 8px;font-size:12px;font-weight:800;display:inline-flex}.ican{border-left:4px solid var(--sc);background:color-mix(in srgb, var(--sc) 10%, #ffffff08);border-radius:14px;align-items:center;gap:10px;margin:0 0 14px;padding:10px 12px;display:flex}.ican-label{font-size:22px}.ican-text{flex:1;min-width:0}.ican-text b,.ican-text small{display:block}.ican-text b{font-size:15px;line-height:1.35}.ican-text small{color:var(--ink-soft);margin-top:2px;font-size:12px}.tc-stds{flex-wrap:wrap;gap:4px;margin-bottom:6px;display:flex}.tc-body p.tc-ican{color:var(--ink);opacity:.85}.reader{color:#2a2340;background:#fbf7ee;border-radius:18px;margin-bottom:14px;overflow:hidden;box-shadow:inset 0 0 0 1px #0000000f,0 8px 24px #00000040}.reader.informational{background:#eef7fb}.reader-head{flex-wrap:wrap;align-items:center;gap:6px 10px;padding:12px 14px 0;display:flex}.reader-head h3{flex:100%;order:3;margin:2px 0 0;font-family:Georgia,Times New Roman,serif;font-size:19px}.genre-chip{color:#6b5a8c;font-size:12px;font-weight:800}.reader-tools{gap:6px;margin-left:auto;display:flex}.reader .pill{color:#2a2340;background:#2a23400f;border-color:#2a234026;padding:5px 11px;font-size:13px}.reader-text{max-height:210px;padding:10px 14px 12px;font-family:Georgia,Times New Roman,serif;font-size:19px;line-height:1.75;overflow-y:auto}.reader-credit{color:#7a7090;padding:0 14px 10px;font-size:11.5px}.reader-credit summary{cursor:pointer;list-style-position:outside}.reader-credit p{margin:6px 0 0;line-height:1.5}.reader-credit a{color:#5b3fd6}.reader.collapsed .reader-credit,.reader.collapsed .reader-text,.reader.collapsed .reader-tip{display:none}.reader.collapsed .reader-head{padding-bottom:12px}.reader.mode-evidence .reader-text{max-height:320px}.reader.mode-fluency .reader-text{max-height:none;font-size:22px;line-height:1.9}.sent{border-radius:6px;transition:background .2s,box-shadow .2s}.sent.speaking{background:#ffe9a8;box-shadow:0 0 0 3px #ffe9a8}.mode-evidence .sent{cursor:pointer;background:#4cc9f01f;box-shadow:0 0 0 2px #4cc9f01f}.mode-evidence .sent:hover{background:#4cc9f04d}.sent.found,.mode-evidence .sent.found{background:#b9f5cf;box-shadow:0 0 0 3px #4ade80}.sent.reveal,.mode-evidence .sent.reveal{background:#ffe9a8;box-shadow:0 0 0 3px #ffb84d}.sent.miss{animation:.6s miss}.w{cursor:pointer;border-radius:4px}.mode-read .w:hover,.mode-fluency .w:hover{background:#2a234014}.w.vocab{color:#7b2fff;text-underline-offset:4px;font-weight:700;-webkit-text-decoration:underline wavy #7b2fff73;text-decoration:underline wavy #7b2fff73}.reader-tip{color:#0f6e8c;margin:0;padding:8px 14px 12px;font-size:14px;font-weight:700}.reader-tip.subtle{color:#7a7090;font-size:12px;font-weight:400}.reader-tip small{font-weight:400;display:block}.question.long .q-text{font-size:clamp(20px,3vw,26px)}.pill.static{cursor:default;opacity:.75}.dots li.partial{background:var(--info)}.answer-done{text-align:center;background:#4ade801f;border:1px solid #4ade8066;border-radius:14px;margin:12px 0;padding:12px 16px;font-size:18px}.feedback small{font-size:14px;font-weight:400;display:block}.intro-steps{gap:14px;margin:0;padding:0;list-style:none;display:grid}.intro-steps>li{gap:12px;display:flex}.intro-steps>li>span{background:var(--c);color:#1b1440;border-radius:50%;flex:none;place-items:center;width:30px;height:30px;font-weight:900;display:grid}.intro-steps b,.intro-steps small{display:block}.intro-steps b{font-size:17px}.intro-steps small{color:var(--ink-soft);margin-top:2px;font-size:13px}.vocab-grid{grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:8px;margin-top:10px;display:grid}.vocab-card{border:1px solid var(--line);cursor:pointer;background:#ffffff0f;border-radius:16px;justify-items:center;gap:2px;padding:12px 8px 10px;transition:transform .12s,border-color .15s;display:grid;position:relative}.vocab-card:hover{border-color:var(--c)}.vocab-card:active{transform:scale(.96)}.vc-emoji{font-size:30px}.vocab-card b{font-family:Georgia,serif;font-size:18px}.vocab-card small{color:var(--ink-soft);font-size:13px}.vc-say{opacity:.6;font-size:12px;position:absolute;top:6px;right:8px}.tiles{margin-top:12px}.tile-slots{border:2px dashed color-mix(in srgb, var(--c) 50%, transparent);background:#0003;border-radius:16px;flex-wrap:wrap;justify-content:center;gap:8px;min-height:64px;padding:10px;display:flex}.tile-slots.right{border-style:solid;border-color:var(--ok)}.tile-placeholder{color:var(--ink-faint);text-align:center;align-self:center;font-size:14px}.tile-placeholder small{display:block}.tile-bank{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:12px;display:flex}.tile{color:#2a2340;cursor:pointer;background:linear-gradient(#fff6d8,#ffe08a);border:none;border-radius:14px;min-width:52px;height:56px;padding:0 14px;font-family:Georgia,serif;font-size:26px;font-weight:700;transition:transform .1s,box-shadow .1s;box-shadow:0 5px #c99a2e}.tile:active:not(:disabled){transform:translateY(4px);box-shadow:0 1px #c99a2e}.tile.picked{background:linear-gradient(#e3f8ff,#a8e6ff);box-shadow:0 5px #4a9fc4}.tile.ghost{visibility:visible;opacity:.15;box-shadow:none;cursor:default;place-items:center;display:inline-grid}.tile:disabled{cursor:default}.tiles.order .tile.ghost{display:none}.tiles.words .tile{min-width:0;height:50px;padding:0 14px;font-size:21px}.tiles.order .tile-slots,.tiles.order .tile-bank{flex-direction:column;align-items:stretch}.tiles.order .tile{text-align:left;height:auto;min-height:48px;padding:10px 14px;font-size:17px;line-height:1.35}.tiles.order .tile em{color:#fff;width:24px;height:24px;font-size:13px;font-style:normal;font-family:var(--font);background:#4a9fc4;border-radius:50%;place-items:center;margin-right:8px;display:inline-grid}.tile-actions{justify-content:space-between;gap:10px;margin-top:14px;display:flex}.tile-actions .btn.primary{flex:1}.write-prompt{background:linear-gradient(160deg, color-mix(in srgb, var(--c) 20%, transparent), #ffffff0a);border:1px solid color-mix(in srgb, var(--c) 40%, transparent);border-radius:18px;padding:14px 16px}.wp-label{color:var(--ink-soft);font-size:12px;font-weight:800}.wp-text{margin:6px 0 10px;font-size:22px;font-weight:800;line-height:1.35}.frame{background:#ffffff0d;border-radius:14px;flex-wrap:wrap;align-items:center;gap:6px 10px;margin-top:12px;padding:10px 14px;display:flex}.frame span{color:var(--ink-soft);flex:100%;font-size:12px}.frame b{flex:1;font-family:Georgia,serif;font-size:18px}.write-input{border:2px solid var(--line);color:#2a2340;resize:vertical;background:#fbf7ee repeating-linear-gradient(#0000 0 31px,#4cc9f059 31px 32px) 0 14px;border-radius:16px;outline:none;width:100%;margin-top:12px;padding:14px 16px;font-family:Georgia,Times New Roman,serif;font-size:20px;line-height:1.6;display:block}.write-input:focus{border-color:var(--c)}.checklist-title{margin:16px 0 8px;font-size:15px}.checklist{gap:6px;margin:0;padding:0;list-style:none;display:grid}.checklist li{background:#ffffff0a;border-radius:12px;align-items:center;gap:10px;padding:8px 12px;transition:background .2s;display:flex}.checklist li.ok{background:#4ade801a}.checklist b,.checklist small{display:block}.checklist b{font-size:14px}.checklist small{color:var(--ink-soft);font-size:12px}.checklist.shake{animation:.45s shake}.fluency-steps{grid-template-columns:repeat(3,1fr);gap:6px;margin:0 0 12px;padding:0;list-style:none;display:grid}.fluency-steps li{border:1px solid var(--line);text-align:center;opacity:.6;background:#ffffff0a;border-radius:14px;justify-items:center;gap:2px;padding:8px 4px;display:grid}.fluency-steps li.current{opacity:1;border-color:var(--c);background:color-mix(in srgb, var(--c) 14%, transparent)}.fluency-steps span{color:var(--ink-faint);font-size:11px}.fluency-steps b{font-size:13px}.fluency-steps small{color:var(--ink-soft);font-size:11px}.fluency-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.timer b,.timer small{display:block}.timer b{font-variant-numeric:tabular-nums;color:var(--gold);font-size:32px}.timer small{color:var(--ink-soft);font-size:12px}.fluency-actions{flex-wrap:wrap;gap:8px;display:flex}.fluency-runs{background:#ffffff0d;border-radius:14px;margin-top:8px;padding:12px 14px}.fluency-runs b{color:var(--gold)}.fluency-runs ul{flex-wrap:wrap;gap:6px;margin:8px 0 0;padding:0;list-style:none;display:flex}.fluency-runs li{background:#ffffff12;border-radius:99px;padding:4px 10px;font-size:13px}.fluency-runs small{color:var(--ink-soft)}.fluency-note{color:var(--ink-soft);margin:8px 0 0;font-size:13px;line-height:1.6}.evidence-stat{color:var(--ink-soft);margin:0 0 10px;font-size:14px}.evidence-stat b{color:var(--gold)}.standards{gap:12px;display:grid}.strand{border-left:4px solid var(--sc);background:#ffffff0a;border-radius:16px;padding:12px 14px}.strand h4{margin:0 0 8px;font-size:15px}.strand h4 small{color:var(--ink-faint);font-weight:400}.strand ul{gap:8px;margin:0;padding:0;list-style:none;display:grid}.std-row{grid-template-columns:auto 1fr auto;align-items:center;gap:10px;display:grid}.std-text b,.std-text small{display:block}.std-text b{font-size:13px;font-weight:600}.std-text small{color:var(--ink-faint);font-size:12px}.std-result{text-align:right;justify-items:end;gap:2px;display:grid}.std-result small{color:var(--ink-faint);font-variant-numeric:tabular-nums;font-size:12px}.mastery{white-space:nowrap;border-radius:99px;padding:2px 9px;font-size:12px;font-weight:800}.mastery.m4{color:#bdf7d1;background:#4ade8038}.mastery.m3{color:#bfeeff;background:#4cc9f038}.mastery.m2{color:#ffe1b3;background:#ffb84d38}.mastery.m1{color:#ffc2cf;background:#ff6b8b38}.mastery.done{color:#bdf7d1;background:#4ade8026}.mastery.todo{color:var(--ink-faint);background:#ffffff14}.writing-sample{color:#2a2340;background:#fbf7ee;border-radius:10px;margin:8px 0 0;padding:10px 12px;font-family:Georgia,serif;font-size:15px;line-height:1.5}.report-list .std-chip,.review .std-chip{margin-bottom:4px}.review small.ev{color:var(--info)}@media (width<=520px){.std-row{grid-template-columns:1fr auto}.std-row .std-chip{grid-column:1/-1;justify-self:start}.reader-text{font-size:17px}.tile{min-width:46px;height:50px;font-size:22px}}@keyframes miss{0%,to{background:0 0}30%{background:#ffc2cf;box-shadow:0 0 0 3px #ff6b8b}}.toast{z-index:40;background:var(--glass-strong);opacity:0;pointer-events:none;border:1px solid #ffd16680;border-radius:999px;max-width:calc(100% - 32px);padding:12px 22px;font-size:17px;font-weight:700;transition:transform .35s cubic-bezier(.2,.9,.3,1.3),opacity .25s;position:fixed;top:86px;left:50%;transform:translate(-50%,-20px);box-shadow:0 10px 30px #0006}.toast.show{opacity:1;transform:translate(-50%)}.flying-star{z-index:50;pointer-events:none;filter:drop-shadow(0 0 8px #ffd166e6);font-size:28px;position:fixed}.loading{z-index:60;background:radial-gradient(circle at 50% 40%, #1a1f4d, var(--bg) 70%);color:var(--ink-soft);place-content:center;justify-items:center;gap:8px;font-size:18px;transition:opacity .8s,visibility 0s linear .8s;display:grid;position:fixed;inset:0}.loading.hidden{opacity:0;visibility:hidden}.loading-rocket{font-size:64px;animation:1.2s ease-in-out infinite hover}.loading pre{white-space:pre-wrap;color:#ffb3c4;max-width:min(90vw,640px);font-size:14px}@media (width<=520px){.level-btn{height:40px;padding:0 11px}.lv-name{display:none}.brand h1{font-size:20px}.brand-logo{font-size:28px}.brand p{font-size:12px}.star-counter{padding:6px 12px;font-size:17px}.icon-btn{width:40px;height:40px;font-size:18px}.hud-actions{gap:6px}.planet-label{padding:6px 10px 7px;font-size:13px}.pl-icon{font-size:16px}}@media (width<=420px){.hud{padding-left:max(12px, env(safe-area-inset-left));padding-right:max(12px, env(safe-area-inset-right))}.brand{gap:8px;margin-right:6px}.brand h1{letter-spacing:.04em;font-size:18px}.brand-logo{font-size:24px}.hud-actions{gap:5px}.icon-btn,.level-btn{width:38px;height:38px}.level-btn{justify-content:center;padding:0}.star-counter{padding:5px 10px;font-size:16px}}@keyframes hover{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes bump{40%{transform:scale(1.25)}}@keyframes flow{to{background-position:-200% 0}}@keyframes rise{0%{opacity:0;transform:translateY(12px)}}@keyframes pop{0%{opacity:0;transform:scale(.85)}}@keyframes shake{20%,60%{transform:translate(-10px)}40%,80%{transform:translate(10px)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media print{body{color:#000;background:#fff;overflow:visible}.app>:not(.modal){display:none!important}.modal{-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;padding:0;position:static}.modal-card{box-shadow:none;color:#000;background:#fff;border:none;max-height:none}.modal-actions,.modal-card header .icon-btn{display:none}.stats div,.report-list li,.mistake-answers span{background:#f3f3f3}.stats b,.stats span,.modal-card header p,.report-list small,.subject-table th{color:#333}.strand,.std-chip,.mastery{color:#222!important;background:#f3f3f3!important}.std-text small,.strand h4 small{color:#555}}body.cinematic .hud,body.cinematic .panel,body.cinematic .label-layer,body.cinematic .toast{opacity:0;pointer-events:none;transition:opacity .5s}.opening{z-index:40;pointer-events:none;transition:opacity .5s;position:fixed;inset:0}.opening.leaving{opacity:0}.opening>*{pointer-events:auto}.opening [hidden]{display:none!important}.op-top{top:max(16px, env(safe-area-inset-top));pointer-events:none;justify-content:center;display:flex;position:absolute;left:16px;right:16px}.op-dots{gap:6px;margin-top:12px;display:flex}.op-dots i{background:#ffffff2e;border-radius:99px;width:24px;height:6px;transition:background .3s}.op-dots i.done{background:var(--gold)}.op-dots i.now{background:#fff}.op-skip{pointer-events:auto;border:1px solid var(--line);background:var(--glass);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);cursor:pointer;border-radius:14px;padding:8px 14px;font-size:14px;font-weight:700;position:absolute;top:0;right:0}.op-card{text-align:center;background:var(--glass-strong);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid #ffd16673;border-radius:26px;justify-items:center;gap:10px;width:min(88vw,420px);padding:28px 24px 24px;animation:.5s cubic-bezier(.2,.9,.3,1.2) op-in;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 24px 60px #00000080,0 0 60px #ffd16626}.op-card small{letter-spacing:.2em;color:#b9b2ff;font-size:13px}.op-card b{font-size:28px;line-height:1.3}.op-card p{color:var(--ink-soft);margin:0;line-height:1.6}.op-title b{font-size:clamp(24px,4vw,32px)}@keyframes op-in{0%{opacity:0;transform:translate(-50%,-46%)scale(.94)}}.op-go{color:#1b1440;cursor:pointer;background:linear-gradient(#ffe08a,#ffb84d);border:none;border-radius:16px;margin-top:6px;padding:12px 28px;font-size:18px;font-weight:800;box-shadow:0 4px #c77d16,0 0 30px #ffd16659}.op-go:active{transform:translateY(2px);box-shadow:0 2px #c77d16}.op-sub{left:50%;bottom:max(28px, env(safe-area-inset-bottom));text-align:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);opacity:0;pointer-events:none;background:#070a1fbd;border-radius:20px;width:min(92vw,760px);padding:12px 20px 14px;transition:opacity .35s;position:absolute;transform:translate(-50%)}.op-sub.show{opacity:1;pointer-events:auto}.op-sub .en{color:#fff;font:700 clamp(24px,3.8vw,34px)/1.45 Georgia,Times New Roman,serif}.op-sub .en:empty{display:none}.op-sub .zh{color:var(--ink-soft);margin-top:2px;font-size:14px}.op-sub .w{cursor:pointer;border-radius:6px;padding:0 2px;transition:background .15s,color .15s}.op-sub .w.school{text-underline-offset:7px;-webkit-text-decoration:underline #7cc8ffcc;text-decoration:underline #7cc8ffcc;text-decoration-thickness:3px}.op-sub .w.on{background:var(--gold);color:#1b1440;text-decoration:none}.op-sub .alien{color:#e0d0ff;font-family:var(--font);letter-spacing:4px;background:#b388ff38;border-radius:12px;margin-right:12px;padding:0 12px;display:inline-block}.op-ask{text-align:center;background:var(--glass-strong);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid #ffd1668c;border-radius:24px;gap:12px;width:min(92vw,520px);padding:16px 18px 18px;display:grid;position:absolute;top:max(64px,12vh);left:50%;transform:translate(-50%);box-shadow:0 20px 50px #00000080}.op-ask .tag{color:#b9b2ff;font-size:12.5px;font-weight:700}.op-ask .q{justify-content:center;align-items:center;gap:10px;font:700 clamp(22px,3.4vw,28px)/1.35 Georgia,Times New Roman,serif;display:flex}.op-ask .hear{border:1px solid var(--line);cursor:pointer;background:#ffffff14;border-radius:12px;padding:6px 10px;font-size:18px}.op-ask .opts{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.op-ask .opts button{color:#fff;cursor:pointer;background:#ffffff14;border:1px solid #ffffff38;border-radius:18px;min-width:108px;padding:14px 20px;font:700 26px/1 Georgia,Times New Roman,serif;transition:transform .12s,background .2s}.op-ask .opts button:active{transform:scale(.96)}.op-ask .opts button.school{text-underline-offset:7px;-webkit-text-decoration:underline #7cc8ffcc;text-decoration:underline #7cc8ffcc;text-decoration-thickness:3px}.op-ask .opts button.ok{background:var(--ok);color:#06301a;border-color:#0000}.op-ask .opts button.no{opacity:.4;text-decoration:line-through}.op-ask .hintbox{color:#2a2340;background:#fbf7ee;border-radius:14px;padding:10px 12px;font:20px/1.5 Georgia,Times New Roman,serif}.op-ask .hintbox:empty{display:none}.station-label.empty{opacity:.45}.station-label.empty .pl-count{color:var(--ink-faint)}.hud-bottom{align-items:flex-end;gap:12px}.explore-bar{flex-wrap:wrap;justify-content:flex-end;gap:10px;margin-left:auto;transition:opacity .3s;display:flex}.explore-bar[hidden],.explore-btn[hidden],.discovery[hidden]{display:none}.app.panel-open .explore-bar{opacity:0;pointer-events:none}.explore-btn{border:1px solid var(--line);background:var(--glass);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);white-space:nowrap;cursor:pointer;border-radius:999px;min-height:52px;padding:0 18px;font-size:17px;font-weight:800;transition:transform .15s,background .15s}.explore-btn:hover{background:#3c488ccc}.explore-btn:active{transform:scale(.95)}.explore-btn.go{color:#0f2a1a;background:linear-gradient(#a6f5c6,#4ade80);border:none;box-shadow:0 5px #23864a,0 10px 24px #4ade804d}.explore-btn.go:active{transform:translateY(3px);box-shadow:0 2px #23864a}.explore-btn b{color:var(--gold);font-variant-numeric:tabular-nums;margin-left:2px}.find-bubble{pointer-events:auto;cursor:pointer;background:0 0;border:none;place-items:center;width:46px;height:46px;padding:0;display:grid}.find-bubble span{background:#0a0e28b8;border:2px solid #fffc;border-radius:50%;place-items:center;width:100%;height:100%;font-size:22px;transition:border-color .3s,box-shadow .3s;display:grid;box-shadow:0 0 14px #ffd1664d}.find-bubble.near span{border-color:var(--gold);animation:1.1s ease-in-out infinite beckon;box-shadow:0 0 22px #ffd166d9}@keyframes beckon{0%,to{transform:translateY(0)scale(1)}50%{transform:translateY(-6px)scale(1.12)}}.discovery{z-index:20;right:max(18px, env(safe-area-inset-right));bottom:calc(max(16px, env(safe-area-inset-bottom)) + 76px);background:var(--glass-strong);opacity:0;border:1px solid #ffd16673;border-radius:24px;width:min(400px,100% - 32px);max-height:calc(100dvh - 180px);padding:18px;transition:opacity .25s,transform .35s cubic-bezier(.2,.9,.3,1.2);position:fixed;overflow-y:auto;transform:translate(30px);box-shadow:0 24px 60px #0000008c}.discovery.show{opacity:1;transform:none}.dc-close{width:36px;height:36px;font-size:15px;position:absolute;top:12px;right:12px}.dc-top{align-items:center;gap:14px;padding-right:40px;display:flex}.dc-pic{filter:drop-shadow(0 4px 10px #0006);font-size:54px;line-height:1}.dc-name{font:700 30px/1.2 Georgia,Times New Roman,serif}.dc-zh{color:var(--ink-soft);margin-top:2px;font-size:14px}.dc-zib{color:#2a2340;background:#fbf7ee;border-radius:16px;align-items:flex-start;gap:10px;margin-top:14px;padding:12px 14px;font:600 21px/1.45 Georgia,Times New Roman,serif;display:flex}.dc-zib small{font:500 13px / 1.5 var(--font);color:#6b6383;margin-top:4px;display:block}.dc-who{font-size:24px;line-height:1.2}.dc-zib .w{color:inherit;font:inherit;cursor:pointer;background:0 0;border:none;border-radius:6px;padding:0 1px}.dc-zib .w:hover{background:#ffe9a8}.glyph{font:inherit;font-family:"Apple Symbols", "Segoe UI Symbol", "Noto Sans Symbols 2", var(--font);letter-spacing:3px;color:#b388ff;cursor:pointer;background:0 0;border:none;padding:0}.dc-zib .glyph{color:#7b4fe0}.dc-why{color:var(--ink-soft);margin:10px 0 0;font-size:13.5px}.dc-acts{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.dc-tell{background:#80ed991f;border-radius:12px;margin:10px 0 0;padding:10px 12px;font-size:14px;line-height:1.6}.dc-tell[hidden]{display:none}.dc-tell i{font:italic 600 18px Georgia,Times New Roman,serif}.journal h3{margin:18px 0 8px}.jr-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px;display:grid}.jr-cell{border:1px solid var(--line);color:var(--ink-faint);text-align:center;background:#ffffff0d;border-radius:16px;justify-items:center;gap:2px;padding:12px 8px;font-size:13px;display:grid}.jr-cell b{filter:grayscale()brightness(0);opacity:.35;font-size:34px;line-height:1.2}.jr-cell span{color:var(--ink-soft);font:700 17px/1.3 Georgia,Times New Roman,serif}.jr-cell.got{cursor:pointer;color:var(--ink-soft);background:#ffd1661f;border-color:#ffd16673}.jr-cell.got b{filter:none;opacity:1}.jr-cell.got span{color:var(--ink)}.jr-cell .glyph{letter-spacing:2px;cursor:inherit;font-size:15px}.jr-note{color:var(--ink-faint);margin:16px 0 0;font-size:13px}@media (width<=760px),(orientation:portrait) and (width<=1100px){.hud-bottom{flex-direction:column-reverse;align-items:stretch}.explore-bar{margin-left:0}.explore-btn{min-height:48px;padding:0 16px;font-size:16px}.discovery{border-radius:var(--radius) var(--radius) 0 0;width:auto;max-height:70dvh;padding-bottom:max(18px, env(safe-area-inset-bottom));bottom:0;left:0;right:0;transform:translateY(30px)}.discovery.show{transform:none}.app.card-open .hud-bottom{opacity:0;pointer-events:none}}.door-label.ready{animation:2.4s ease-in-out infinite door-ready}@keyframes door-ready{50%{box-shadow:0 0 30px color-mix(in srgb, var(--c) 75%, transparent)}}.door-card{--c:#b388ff;border-color:color-mix(in srgb, var(--c) 40%, transparent);width:min(620px,100%)}.door-card header{margin-bottom:14px}.door-card header p{line-height:1.5}.locks{gap:8px;margin:0 0 16px;padding:0;list-style:none;display:grid}.lock{border:1px solid var(--line);background:#ffffff0d;border-radius:16px;align-items:center;gap:12px;padding:12px 14px;display:flex}.lock.open{border-color:color-mix(in srgb, var(--ok) 55%, transparent);background:#4ade8014}.lock-icon{font-size:28px}.lock>div{flex:1;min-width:0}.lock b,.lock small{display:block}.lock small{color:var(--ink-soft);margin-top:4px;font-size:13px;line-height:1.5}.lock-state{color:var(--ink-faint);flex:none;font-size:13px;font-weight:700}.lock.open .lock-state{color:var(--ok)}.door-lessons{color:var(--ink-soft);grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:6px;margin:0 0 14px;padding:0;font-size:15px;list-style:none;display:grid}.door-lessons li.read{color:var(--ink)}.door-unlocked{background:#ffd16614;border:1px solid #ffd16666;border-radius:16px;align-items:center;gap:14px;padding:14px;display:flex}.door-unlocked>span{font-size:44px}.door-unlocked small{color:var(--ink-soft);margin-top:4px;line-height:1.5;display:block}.flight-log{gap:8px;margin:0;padding:0;list-style:none;display:grid}.flight-log li{background:#ffffff0d;border-radius:14px;padding:10px 14px}.flight-log b,.flight-log span,.flight-log small{display:block}.flight-log span{margin-top:3px;font-size:14px}.flight-log small{color:var(--ink-faint);margin-top:3px;font-size:13px;line-height:1.5}.flight-log li.ok b{color:var(--ok)}.decode-word{text-align:center;font-family:"Andika", "Comic Sans MS", "Trebuchet MS", var(--font);letter-spacing:.02em;margin:18px 0 6px;font-size:clamp(40px,9vw,60px);font-weight:700}.decode-tip{text-align:center;color:var(--ink-soft);margin:0 0 14px;font-size:15px}.decode-tip small{color:var(--ink-faint);display:block}.decode-pics{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.decode-pic{aspect-ratio:1;border:2px solid var(--line);cursor:pointer;background:#ffffff0f;border-radius:20px;font-size:clamp(44px,12vw,64px);transition:transform .12s,border-color .15s,background .15s}.decode-pic:hover:not(:disabled){border-color:var(--c)}.decode-pic:active:not(:disabled){transform:scale(.95)}.decode-pic.right{border-color:var(--ok);background:#4ade802e}.decode-pic.wrong{opacity:.6;background:#ff6b8b1f;border-color:#ff6b8b99}.lock-result{text-align:center;border:1px solid var(--line);background:#ffffff0d;border-radius:20px;margin:8px 0 18px;padding:20px 16px}.lock-result.open{border-color:color-mix(in srgb, var(--ok) 55%, transparent);background:#4ade8014}.lr-icon{font-size:64px;animation:.5s both pop}.lock-result h3{margin:8px 0 4px;font-size:22px}.lock-result p{color:var(--ink-soft);margin:0}.lr-data{text-align:left;background:#7cc8ff14;border:1px solid #7cc8ff4d;border-radius:14px;margin:14px 0;padding:12px 14px}.lr-data b,.lr-data small{display:block}.lr-data small{color:var(--ink-soft);margin-top:4px;font-size:14px;line-height:1.5}.door-note{color:var(--ink-soft);font-size:14px;line-height:1.6}.door-unlock .unlock-note{max-width:28em;color:var(--ink-soft);margin-inline:auto;line-height:1.6}.next-layer{border:1px dashed var(--line);max-width:24em;color:var(--ink-soft);background:#ffffff0d;border-radius:14px;margin:16px auto 0;padding:10px 14px}.next-layer.final{color:var(--gold);border-color:#ffd16680}.certificate{text-align:center;background:radial-gradient(circle at 50% 0,#ffd16629,#0000 70%),#ffffff0a;border:2px solid #ffd1668c;border-radius:18px;max-width:30em;margin:16px auto 0;padding:18px 16px 14px}.certificate p{color:var(--ink-soft);margin:4px 0}.cert-head{color:var(--gold);letter-spacing:.08em;font-size:20px;font-weight:800}.certificate .cert-name{color:var(--ink);margin-top:8px;font-size:24px;font-weight:800}.cert-stats{grid-template-columns:repeat(4,1fr);gap:8px;margin:14px 0 10px;padding:0;list-style:none;display:grid}.cert-stats li{background:#ffffff0f;border-radius:12px;padding:8px 4px}.cert-stats b{color:var(--gold);font-size:22px;display:block}.cert-stats span{color:var(--ink-soft);font-size:12px}.cert-units{flex-wrap:wrap;justify-content:center;gap:6px;margin:0 0 10px;padding:0;list-style:none;display:flex}.cert-units li{background:#ffffff0f;border-radius:999px;padding:4px 10px;font-size:13px}.cert-units small,.cert-date{color:var(--ink-faint)}@media print{.door-unlock>:not(.certificate){display:none}.certificate{background:#fff;border-color:#c9a227}.certificate p,.cert-units small,.cert-date,.cert-stats span{color:#444}.cert-head,.cert-stats b{color:#9a7400}.certificate .cert-name{color:#000}.cert-stats li,.cert-units li{color:#000;background:#f6f1e0}}.modal-card.still{animation:none}.wardrobe .wr-here{margin:14px 0 4px}.wr-here>b{font-size:15px;display:block}.wr-here>small,.wr-note{color:var(--ink-soft);margin-top:6px;font-size:14px;line-height:1.5;display:block}.wr-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-top:16px;display:grid}.wr-item{border:2px solid var(--line);color:var(--ink);font:inherit;text-align:center;cursor:pointer;background:#ffffff0d;border-radius:18px;flex-direction:column;align-items:center;gap:2px;padding:14px 10px 12px;transition:transform .12s,border-color .15s,background .15s;display:flex}button.wr-item:hover{border-color:var(--gold)}button.wr-item:active{transform:scale(.96)}.wr-item b{font-size:46px;line-height:1.15}.wr-item span{font:700 20px/1.3 Georgia,Times New Roman,serif}.wr-item small{color:var(--ink-soft);font-size:13px}.wr-item em{background:#ffffff14;border-radius:999px;margin-top:6px;padding:3px 12px;font-size:13px;font-style:normal;font-weight:700}.wr-item.on{border-color:var(--ok);background:#4ade801f}.wr-item.on em{background:#4ade8040}.wr-item.locked{cursor:default;opacity:.75}.wr-item.locked b{filter:grayscale()brightness(.6)}.wr-item.locked span{font-size:16px}.zib-says{z-index:25;color:#2a2340;opacity:0;background:#fbf7ee;border-radius:18px;align-items:flex-start;gap:10px;width:min(440px,100% - 32px);padding:12px 14px;transition:transform .3s cubic-bezier(.2,.9,.3,1.3),opacity .25s;display:flex;position:fixed;top:142px;left:50%;transform:translate(-50%,-12px);box-shadow:0 12px 30px #0006}.zib-says.show{opacity:1;transform:translate(-50%)}.zib-says[hidden]{display:none}.zs-who{font-size:26px;line-height:1.2}.zs-body{flex:1;min-width:0}.zs-line{font:600 20px/1.4 Georgia,Times New Roman,serif}.zs-line .w{color:inherit;font:inherit;cursor:pointer;background:0 0;border:none;border-radius:6px;padding:0 1px}.zs-line .w:hover{background:#ffe9a8}.zs-line .glyph{color:#7b4fe0}.zs-body small{color:#6b6383;margin-top:4px;font-size:13px;display:block}.zs-open{color:#fff;font:700 14px / 1.4 var(--font);cursor:pointer;background:#2a2340;border:none;border-radius:999px;margin-top:8px;padding:6px 14px}.zs-close{color:#8a83a3;cursor:pointer;background:0 0;border:none;font-size:16px}
