:root{--ink:#1b1b28;--paper:#fbf7ec;--paper2:#f1ead8;--line:#d8ceb6;--rust:#f74c00;--rust2:#ff7a33;--blue:#3563c9;--green:#16a34a;--red:#dc2626;--muted:#7a735f;--code-bg:#1e1f2b;--code-fg:#e6e1cf;--ui-font:"Pixelify Sans", ui-monospace, monospace;--code-font:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace}*{box-sizing:border-box}html,body{height:100%;font-family:var(--ui-font);color:var(--ink);-webkit-font-smoothing:antialiased;touch-action:manipulation;font-variant-ligatures:none;font-feature-settings:"liga" 0, "clig" 0;background:#0b0d14;margin:0;overflow:hidden}button,input,select,textarea{font-variant-ligatures:none;font-feature-settings:"liga" 0, "clig" 0}#game{image-rendering:pixelated;image-rendering:crisp-edges;position:fixed;inset:0}#ui{pointer-events:none;z-index:2;position:fixed;inset:0}#ui>*{pointer-events:auto}#ui>.toasts,#ui>.banner{pointer-events:none}button{cursor:pointer;font-family:inherit}.muted{color:var(--muted)}.small{font-size:13px}.spacer{flex:1}.btn{border:3px solid var(--ink);background:var(--paper);color:var(--ink);box-shadow:0 3px 0 var(--ink);white-space:nowrap;border-radius:8px;align-items:center;gap:6px;padding:8px 16px;font-size:16px;text-decoration:none;transition:transform 60ms,box-shadow 60ms;display:inline-flex}.btn:hover{background:#fff}.btn:active{box-shadow:0 0 0 var(--ink);transform:translateY(3px)}.btn:disabled{opacity:.45;cursor:default}.btn.primary{background:var(--rust);color:#fff}.btn.primary:hover{background:var(--rust2)}.btn.ghost{box-shadow:none;border-color:var(--line);background:0 0}.btn.ghost:hover{border-color:var(--ink)}.btn.danger{border-color:var(--red);color:var(--red);box-shadow:none;background:#fee2e2}.btn.big{padding:12px 24px;font-size:20px}.chip{letter-spacing:1px;background:var(--rust);color:#fff;border-radius:4px;padding:3px 8px;font-size:12px;font-weight:600;display:inline-block}.chip.small{background:var(--ink);padding:2px 5px;font-size:10px}pre.code{background:var(--code-bg);color:var(--code-fg);font:14px/1.5 var(--code-font);white-space:pre;border:3px solid var(--ink);border-radius:8px;margin:10px 0;padding:12px 14px;overflow-x:auto}code.ic{font-family:var(--code-font);color:#b23600;background:#f74c001f;border-radius:4px;padding:1px 5px;font-size:.88em}.tk-kw{color:#ff8f6b;font-weight:600}.tk-ty{color:#7fd1e8}.tk-st{color:#b5e07a}.tk-nu{color:#f5c26b}.tk-cm{color:#7d8499;font-style:italic}.tk-ma{color:#d99bff}.tk-fn{color:#82aaff}.tk-lt{color:#ffcb6b;font-style:italic}.tk-at{color:#9aa2b1}.tk-op{color:#ff9b9b}.dialog{background:var(--paper);border:4px solid var(--ink);cursor:pointer;z-index:20;border-radius:14px;width:min(880px,100% - 24px);min-height:118px;padding:22px 26px;font-size:21px;line-height:1.45;animation:.14s ease-out pop;position:absolute;bottom:20px;left:50%;transform:translate(-50%);box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 6px #5b8fd6,0 8px #00000059}.dialog-name{background:var(--ink);color:#fff;letter-spacing:.5px;border-radius:8px;padding:3px 12px;font-size:16px;font-weight:600;position:absolute;top:-18px;left:22px}.dialog-row{align-items:flex-start;gap:16px;display:flex}.dialog-portrait{width:72px;height:72px;image-rendering:pixelated;background:var(--paper2);border:3px solid var(--ink);border-radius:10px;flex:none}.dialog-text{flex:1}.dialog-text .ch{visibility:hidden}.dialog-text .ch.on{visibility:visible}.dialog-arrow{color:var(--rust);opacity:0;font-size:16px;position:absolute;bottom:10px;right:20px}.dialog-arrow.on{opacity:1;animation:.6s steps(2,end) infinite bob}.choice{background:var(--paper);border:4px solid var(--ink);min-width:220px;max-width:min(560px,100% - 24px);max-height:calc(100% - 200px);box-shadow:inset 0 0 0 3px #fff, inset 0 0 0 6px var(--rust), 0 6px 0 #00000059;z-index:21;border-radius:12px;padding:12px;animation:.12s ease-out pop;position:absolute;bottom:160px;right:max(12px,50% - 440px);overflow-y:auto}.choice-item{text-align:left;width:100%;color:var(--ink);background:0 0;border:none;border-radius:6px;padding:7px 12px 7px 30px;font-size:19px;display:block;position:relative}.choice-item.sel{background:#f74c001a}.choice-item.sel:before{content:"";border:6px solid #0000;border-left:9px solid var(--rust);margin-top:-6px;position:absolute;top:50%;left:10px}.backdrop{z-index:30;background:#0a0c168c;justify-content:center;align-items:center;padding:16px;animation:.15s fadein;display:flex;position:absolute;inset:0}.panel{background:var(--paper);border:4px solid var(--ink);border-radius:16px;flex-direction:column;width:min(760px,100%);max-height:calc(100% - 16px);animation:.16s ease-out pop;display:flex;overflow:hidden;box-shadow:inset 0 0 0 3px #fff,0 10px #0006}.panel.wide{width:min(1180px,100%)}.panel-head{background:var(--ink);color:#fff;align-items:center;gap:12px;padding:14px 18px;display:flex}.panel-title{flex:1;font-size:22px;font-weight:600}.panel-title code.ic{color:#ffb088;background:#ffffff1f}.panel-x{color:#fff;background:0 0;border:none;padding:0 4px;font-size:28px;line-height:1}.panel-body{flex:1;min-height:0;padding:18px 22px;font-size:18px;line-height:1.5;overflow-y:auto}.panel-foot{border-top:3px solid var(--line);background:var(--paper2);flex-wrap:wrap;align-items:center;gap:10px;padding:12px 18px;display:flex}.lesson-page{min-height:240px}.lesson-speaker{color:var(--muted);margin-bottom:6px;font-size:15px}.lesson-text{font-size:20px}.note{background:#fff4d6;border:3px solid #f0c75e;border-radius:10px;margin-top:12px;padding:10px 14px;font-size:17px}.note b{letter-spacing:1px;background:#f0c75e;border-radius:4px;margin-right:6px;padding:1px 6px;font-size:13px}.dots{gap:6px;display:flex}.dot{background:var(--line);border:2px solid var(--ink);border-radius:50%;width:10px;height:10px}.dot.on{background:var(--rust)}.prompt{margin-bottom:8px;font-size:19px}.feedback{border:3px solid;border-radius:10px;margin-top:14px;padding:12px 16px;font-size:17px;display:none}.feedback.show{animation:.15s pop;display:block}.feedback.ok{border-color:var(--green);background:#e6f7ea}.feedback.bad{border-color:var(--red);background:#fdecec;animation:.35s shake}.fb-head{margin-bottom:2px;font-size:19px;font-weight:700}.fb-explain{margin-top:6px}.actions{flex-wrap:wrap;gap:8px;display:flex}.options{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px;margin-top:12px;display:grid}.option{text-align:left;border:3px solid var(--ink);box-shadow:0 3px 0 var(--ink);color:var(--ink);background:#fff;border-radius:10px;align-items:flex-start;gap:10px;padding:12px 14px;font-size:17px;display:flex}.option:hover:not(:disabled){background:#fff6ef;transform:translateY(-1px)}.option:disabled{cursor:default}.option.right{border-color:var(--green);box-shadow:0 3px 0 var(--green);background:#dcfce7}.option.wrong{border-color:var(--red);box-shadow:0 3px 0 var(--red);opacity:.8;background:#fee2e2;animation:.3s shake}.option pre{font:14px/1.4 var(--code-font);white-space:pre-wrap;margin:0}.okey{background:var(--ink);color:#fff;border-radius:6px;flex:none;justify-content:center;align-items:center;width:24px;height:24px;font-size:14px;display:inline-flex}.terminal{border:3px solid var(--ink);background:#0f1117;border-radius:10px;margin-top:10px;overflow:hidden}.term-head{color:#8b93a7;font:13px var(--code-font);border-bottom:1px solid #262a36;padding:8px 12px}.term-input{color:#d7f5c1;width:100%;font:15px/1.5 var(--code-font);resize:vertical;background:0 0;border:none;outline:none;padding:10px 12px}.col-label{letter-spacing:1px;text-transform:uppercase;color:var(--muted);margin:8px 0 6px;font-size:13px;font-weight:600}.order-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.order-col{background:var(--code-bg);border:3px solid var(--ink);border-radius:10px;flex-direction:column;gap:5px;min-height:160px;padding:8px;display:flex}.order-col.prog{background:#151722;border-style:dashed}.line{color:var(--code-fg);cursor:grab;font:14px/1.4 var(--code-font);white-space:pre;background:#2a2c3b;border:2px solid #0000;border-radius:6px;align-items:center;gap:8px;padding:6px 10px;display:flex;overflow-x:auto}.line:hover{border-color:var(--rust)}.line code{font:inherit}.line.dragging{opacity:.4}.line.over{border-top:2px solid var(--rust)}.line.good{border-color:#22c55e}.line.badline{background:#3b2020;border-color:#ef4444}.ln{color:#6b7280;text-align:right;flex:none;width:18px;font-size:12px}.empty{color:#8b93a7;text-align:center;padding:16px;font-size:15px}pre.code.fill{line-height:2}.blank{font:14px var(--code-font);color:var(--ink);border:2px solid var(--rust);background:#fff7e0;border-radius:5px;outline:none;margin:0 2px;padding:1px 5px}.blank:focus{box-shadow:0 0 0 3px #f74c0059}.blank.good{background:#dcfce7;border-color:#22c55e}.blank.badline{background:#fee2e2;border-color:#ef4444}.tray{background:var(--paper2);border:3px dashed var(--line);border-radius:10px;flex-wrap:wrap;gap:8px;min-height:56px;padding:10px;display:flex}.tray .empty{color:var(--muted);padding:6px}.buckets{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-top:12px;display:grid}.bucket{border:3px solid var(--ink);cursor:pointer;background:#fff;border-radius:12px;min-height:130px;padding:8px}.bucket.over{border-color:var(--rust);background:#fff1e8}.bucket-label{text-align:center;border-bottom:2px solid var(--line);margin-bottom:8px;padding:4px 0 8px;font-size:17px;font-weight:700}.bucket-items{flex-wrap:wrap;gap:6px;display:flex}.chipitem{background:var(--code-bg);color:var(--code-fg);border:2px solid var(--ink);cursor:grab;font:14px var(--code-font);border-radius:8px;max-width:100%;padding:6px 10px;overflow-x:auto}.chipitem.prose{color:var(--ink);font:15px var(--ui-font);background:#fff}.chipitem pre{font:inherit;margin:0}.chipitem code{font:inherit}.chipitem.sel{outline:3px solid var(--rust);transform:translateY(-2px)}.code-layout{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:14px;margin-top:8px;display:grid}.editor{border:3px solid var(--ink);background:#282c34;border-radius:10px;min-height:300px;overflow:hidden}.editor .cm-editor{height:100%;max-height:52vh;font-size:14px}.editor .cm-scroller{font-family:var(--code-font)}.editor-loading{color:#abb2bf;font-family:var(--code-font);padding:16px}.code-side{flex-direction:column;min-width:0;display:flex}.console{color:#d1d5db;border:3px solid var(--ink);min-height:160px;max-height:40vh;font:12.5px/1.45 var(--code-font);white-space:pre-wrap;word-break:break-word;background:#0f1117;border-radius:10px;flex:1;margin:0;padding:10px 12px;overflow:auto}.console .muted{color:#6b7280}.console .err{color:#fca5a5}.console .okline{color:#86efac;font-weight:700}.spin:after{content:"";animation:1s steps(4,end) infinite dots}.hints{flex-direction:column;gap:6px;margin-top:10px;display:flex}.hint{background:#eef4ff;border:2px solid #9db8ef;border-radius:8px;padding:8px 10px;font-size:15px}.hint b{color:var(--blue);margin-right:4px}details.tests{margin-top:10px;font-size:15px}details.tests summary{cursor:pointer;color:var(--muted)}.cup{border:2px solid var(--ink);vertical-align:middle;background:#f5f0e6;border-radius:0 0 4px 4px;width:12px;height:13px;margin-right:5px;display:inline-block;position:relative}.cup:after{content:"";border:2px solid var(--ink);border-left:none;border-radius:0 4px 4px 0;width:4px;height:5px;position:absolute;top:2px;right:-6px}.cup.full{background:linear-gradient(#f5f0e6 0 25%,#7c4a1e 25%)}.cup.empty{opacity:.35;background:0 0}.hud{pointer-events:none;position:absolute;inset:0}.hud>*{pointer-events:auto}.hud-stats{border:3px solid var(--ink);background:#fbf7ecf0;border-radius:12px;width:230px;padding:8px 12px 10px;font-size:15px;position:absolute;top:12px;right:12px;box-shadow:0 4px #0000004d}.hud-row{justify-content:space-between;align-items:center;display:flex}.hud-name{font-size:17px;font-weight:700}.hud-lv{background:var(--ink);color:#fff;border-radius:5px;padding:0 6px;font-size:13px}.hud-title{color:var(--muted);font-size:13px}.xpbar{border:2px solid var(--ink);background:#e0d8c4;border-radius:4px;height:7px;margin:4px 0 6px;overflow:hidden}.xpbar div{background:linear-gradient(90deg,#3b82f6,#22d3ee);height:100%;transition:width .4s}.hud-badges{white-space:nowrap;color:var(--muted);font-size:13px}.hud-obj{color:#fff;border:3px solid var(--ink);background:#1b1b28d9;border-radius:10px;max-width:min(460px,100% - 270px);padding:8px 12px;font-size:15px;line-height:1.35;position:absolute;top:12px;left:12px}.hud-obj code.ic{color:#ffb088;background:#ffffff1f}.obj-label{color:var(--ink);letter-spacing:1px;background:#fbbf24;border-radius:4px;margin-right:6px;padding:0 5px;font-size:11px;font-weight:700}.hud-menu{background:var(--paper);border:3px solid var(--ink);border-radius:10px;flex-direction:column;justify-content:center;gap:4px;width:44px;height:40px;padding:0 9px;display:flex;position:absolute;top:128px;right:12px;box-shadow:0 3px #0000004d}.hud-menu span{background:var(--ink);border-radius:2px;height:3px}.banner{background:var(--paper);border:4px solid var(--ink);border-radius:10px;padding:10px 22px;font-size:22px;font-weight:600;transition:opacity .5s,transform .5s;animation:.3s ease-out slidein;position:absolute;top:76px;left:12px;box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 6px #5b8fd6}.banner.out{opacity:0;transform:translateY(-20px)}.toasts{z-index:40;flex-direction:column;align-items:flex-end;gap:8px;display:flex;position:absolute;top:180px;right:12px}.toast{background:var(--paper);border:3px solid var(--ink);border-radius:10px;max-width:320px;padding:8px 14px;font-size:16px;transition:opacity .5s,transform .5s;animation:.25s ease-out slidein;box-shadow:0 4px #0000004d}.toast.xp{background:#e8f1ff;border-color:#3563c9;font-weight:600}.toast.badge{background:#fff4d6;border-color:#d69e00}.toast.warn{background:#fee2e2}.toast.out{opacity:0;transform:translate(30px)}.touch{pointer-events:none;z-index:15;height:0;position:absolute;inset:auto 0 0}.dpad{pointer-events:auto;width:150px;height:150px;position:absolute;bottom:150px;left:18px}.dp{color:#fff;touch-action:none;background:#1b1b28b3;border:3px solid #ffffff80;border-radius:10px;width:50px;height:50px;font-size:18px;position:absolute}.dp.up{top:0;left:50px}.dp.down{top:100px;left:50px}.dp.left{top:50px;left:0}.dp.right{top:50px;left:100px}.ab{pointer-events:auto;align-items:flex-end;gap:14px;display:flex;position:absolute;bottom:170px;right:18px}.abtn{color:#fff;touch-action:none;background:#f74c00d9;border:3px solid #fff9;border-radius:50%;width:62px;height:62px;font-size:22px;font-weight:700}.abtn.b{background:#1b1b28bf;margin-bottom:30px}.badge-icon{background:radial-gradient(circle at 35% 30%, #fff8 0 12%, transparent 13%), radial-gradient(circle, color-mix(in srgb, var(--bc) 80%, #fff) 0 45%, var(--bc) 46% 70%, color-mix(in srgb, var(--bc) 60%, #000) 71%);border:3px solid var(--ink);box-shadow:0 3px 0 var(--ink);color:#fff;font-family:var(--code-font);text-shadow:0 2px #00000073;border-radius:50%;flex:none;justify-content:center;align-items:center;font-weight:700;display:inline-flex}.badge-icon.locked{color:#8f8878;text-shadow:none;background:#d6cfbd}.ceremony{z-index:60;background:#0a0c16bf;justify-content:center;align-items:center;transition:opacity .5s;animation:.3s fadein;display:flex;position:absolute;inset:0;overflow:hidden}.ceremony.out{opacity:0}.rays{background:repeating-conic-gradient(#ffd7782e 0 10deg, transparent 10deg 20deg);width:1600px;height:1600px;animation:12s linear infinite spin;position:absolute}.cer-inner{text-align:center;color:#fff;animation:.6s cubic-bezier(.2,1.6,.4,1) bounce-in;position:relative}.cer-inner .badge-icon{margin:0 auto 18px}.cer-title{font-size:22px}.cer-name{color:#fde68a;text-shadow:0 4px 0 var(--ink);font-size:40px;font-weight:700}.battle{z-index:50;background:linear-gradient(#bfe3ff 0%,#e8f5ff 45%,#b8e0a0 45%,#9fd18a 100%);flex-direction:column;display:flex;position:absolute;inset:0}.battle.wild{background:linear-gradient(#a7d6a0 0%,#d6efc9 45%,#6fbf5f 45%,#4e9c46 100%)}.battle.in{animation:.7s steps(8,end) battle-in}.battle.out{opacity:0;transition:opacity .4s}.battle.shake{animation:.4s shake}.arena{flex:1;min-height:220px;position:relative}.plat{background:#3c6e3259;border:4px solid #2850284d;border-radius:50%;position:absolute}.plat.p1{width:300px;height:70px;top:46%;right:8%}.plat.p2{width:340px;height:80px;bottom:4%;left:5%}.spr{image-rendering:pixelated;position:absolute}.spr canvas{image-rendering:pixelated;display:block}.opp-spr{animation:.6s ease-out slide-l;top:calc(46% - 110px);right:calc(8% + 80px)}.wild .opp-spr{top:calc(46% - 120px)}.you-spr{animation:.6s ease-out slide-r;bottom:calc(4% + 30px);left:calc(5% + 90px)}.spr.hit{animation:.6s steps(6,end) blink}.spr.lunge{animation:.4s lunge}.spr.fainted{opacity:0;transition:transform .8s,opacity .8s;transform:translateY(60px)}.hpbox{background:var(--paper);border:4px solid var(--ink);border-radius:12px;min-width:260px;padding:8px 14px 10px;position:absolute;box-shadow:0 5px #0000004d}.hpbox.opp{animation:.5s ease-out slide-r;top:8%;left:6%}.hpbox.you{animation:.5s ease-out slide-l;bottom:10%;right:6%}.hp-name{font-size:22px;font-weight:700}.hp-title{color:var(--muted);font-size:14px}.hpbar{background:var(--ink);border-radius:6px;align-items:center;gap:6px;margin-top:6px;padding:3px 4px;display:flex}.hplabel{color:#fbbf24;font-size:12px;font-weight:700}.hpfill{background:#22c55e;border-radius:4px;height:8px;transition:width .6s}.hpfill.yellow{background:#eab308}.hpfill.red{background:#ef4444}.cups{white-space:nowrap;margin-top:4px}.battle-bottom{background:var(--ink);gap:12px;min-height:190px;max-height:58vh;padding:12px;display:flex}.battle-text{background:var(--paper);border:4px solid #5b8fd6;border-radius:12px;flex:1;padding:14px 18px;font-size:19px;line-height:1.45;position:relative;overflow-y:auto;box-shadow:inset 0 0 0 3px #fff}.battle-text.msg{cursor:pointer}.battle-text pre.code{margin:8px 0 0;font-size:13px}.explain{color:#3f3b30;margin-top:6px;font-size:16px}.moves{grid-template-columns:1fr 1fr;align-content:start;gap:8px;width:min(520px,46%);display:none}.moves.show{display:grid}.move{text-align:left;background:var(--paper);color:var(--ink);border:4px solid #fff;border-radius:10px;align-items:flex-start;gap:8px;min-height:62px;padding:10px 12px;font-size:16px;display:flex}.move.sel,.move:hover{border-color:var(--rust);background:#fff4ec}.move.run{background:#e2e8f0;grid-column:span 2;justify-content:center;min-height:36px}.menu .panel-body{gap:16px;padding:0;display:flex}.menu-nav{flex-direction:column;gap:4px;min-width:150px;padding:16px 0 16px 16px;display:flex}.menu-tab{text-align:left;color:var(--ink);background:0 0;border:3px solid #0000;border-radius:8px;padding:8px 12px;font-size:18px}.menu-tab.on{background:var(--ink);color:#fff}.menu-tab:hover:not(.on){border-color:var(--line)}.menu-content{flex:1;min-width:0;padding:16px 20px 20px 4px;overflow-y:auto}.quest-now{background:#fff4d6;border:3px solid #f0c75e;border-radius:10px;margin-bottom:14px;padding:8px 14px 12px}.quest-text{font-size:19px}.quest-list{flex-direction:column;gap:8px;display:flex}.quest-row{border:3px solid var(--line);background:#fff;border-radius:10px;align-items:center;gap:12px;padding:8px 12px;display:flex}.quest-row.open{border-color:var(--rust)}.quest-row.locked{opacity:.55}.qr-main{flex:1;min-width:0}.qr-name{font-weight:700}.qr-topic{color:var(--muted);font-size:14px}.qr-state{color:var(--muted);white-space:nowrap;font-size:14px}.progress{background:#ece5d3;border-radius:3px;height:6px;margin-top:4px;overflow:hidden}.progress div{background:var(--rust);height:100%}.journal-sec{margin-top:10px}.journal-items{flex-wrap:wrap;gap:6px;display:flex}.jitem{border:2px solid var(--line);text-align:left;max-width:100%;color:var(--ink);background:#fff;border-radius:8px;padding:6px 10px;font-size:15px}.jitem:hover{border-color:var(--ink)}.jitem.lesson .chip{background:var(--rust)}.badge-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:14px;display:grid}.badge-cell{text-align:center;border:3px solid var(--line);background:#fff;border-radius:12px;padding:14px 8px}.badge-cell .badge-icon{margin:0 auto 8px}.bc-name{font-weight:700}.minimap-wrap{border:3px solid var(--ink);border-radius:10px;max-height:60vh;margin-bottom:8px;overflow:auto}.minimap{image-rendering:auto;width:100%;min-width:700px;display:block}.resume{border:3px solid var(--line);background:#fff;border-radius:12px;max-width:560px;padding:18px 22px}.resume-head{border-bottom:3px solid var(--ink);margin-bottom:8px;padding-bottom:8px}.resume-name{font-size:28px;font-weight:700}.resume table{border-collapse:collapse;width:100%}.resume td{border-bottom:1px dashed var(--line);padding:5px 0}.resume td:last-child{text-align:right;font-weight:600}.settings{flex-direction:column;gap:8px;max-width:560px;display:flex}.toggle{border:3px solid var(--line);color:var(--ink);background:#fff;border-radius:10px;justify-content:space-between;padding:10px 14px;font-size:17px;display:flex}.toggle .tv{color:var(--muted);font-weight:700}.toggle.on .tv{color:var(--green)}.setting-row{border:3px solid var(--line);background:#fff;border-radius:10px;align-items:center;gap:8px;padding:8px 14px;font-size:17px;display:flex}.setting-row.wrap{flex-wrap:wrap}.setting-row>span{flex:1}.seg{border:2px solid var(--line);background:var(--paper);color:var(--ink);border-radius:6px;padding:4px 10px;font-size:15px}.seg.on{background:var(--ink);color:#fff;border-color:var(--ink)}.keys{max-width:560px;margin-top:14px}.title{z-index:100;background:linear-gradient(#ff9a5a 0%,#ffc680 30%,#9cc9f0 70%,#6aa7dd 100%);justify-content:center;align-items:center;padding:16px;transition:opacity .5s;display:flex;position:absolute;inset:0;overflow:hidden}.title.out{opacity:0}.title-sky{position:absolute;inset:0}.fog{background:radial-gradient(#ffffffb3,#0000 60%);height:32%;animation:30s linear infinite alternate drift;position:absolute;bottom:12%;left:-50%;right:-50%}.title-city{height:48vh;image-rendering:pixelated;position:absolute;bottom:0;left:50%;transform:translate(-50%)}.title-ferris{image-rendering:pixelated;z-index:2;animation:1.2s steps(2,end) infinite hop;position:absolute;bottom:6vh;left:calc(50% - 420px)}.title-card{z-index:3;border:5px solid var(--ink);text-align:center;background:#fbf7ecf7;border-radius:18px;width:min(600px,100%);max-height:calc(100% - 16px);padding:26px 30px;animation:.3s ease-out pop;position:relative;overflow-y:auto;box-shadow:inset 0 0 0 4px #fff,0 12px #00000059}.logo{letter-spacing:3px;font-size:68px;font-weight:700;line-height:.95}.logo .l1{color:var(--ink)}.logo .l2{color:var(--rust);text-shadow:4px 4px 0 var(--ink);margin-left:16px}.tag{color:var(--muted);margin:8px 0 18px;font-size:19px}.worlds{text-align:left;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin-bottom:18px;display:grid}.world-card{border:3px solid var(--line);border-left:8px solid var(--wc);color:var(--ink);text-align:left;background:#fff;border-radius:10px;flex-direction:column;gap:2px;padding:10px 12px;display:flex}.world-card.sel{border-color:var(--ink);border-left-color:var(--wc);box-shadow:0 4px 0 var(--ink)}.world-card.locked{opacity:.55;filter:grayscale(.4)}.wc-lang{letter-spacing:1px;color:var(--wc);text-transform:uppercase;filter:brightness(.8);font-size:12px;font-weight:700}.wc-name{font-size:20px;font-weight:700}.wc-tag{color:var(--muted);flex:1;font-size:13px;line-height:1.3}.wc-save{margin-top:4px;font-size:12px;font-weight:600}.wc-save.new{color:var(--rust)}.title-actions{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.title-foot{color:var(--muted);margin-top:16px;font-size:13px}.newgame{text-align:left}.ng-title{text-align:center;margin-bottom:8px;font-size:30px;font-weight:700}.name-input{width:100%;font:24px var(--ui-font);border:3px solid var(--ink);background:#fff;border-radius:10px;outline:none;padding:10px 14px}.name-input:focus{box-shadow:0 0 0 4px #f74c004d}.looks{flex-wrap:wrap;gap:10px;display:flex}.look{background:var(--paper2);border:3px solid var(--line);border-radius:12px;padding:4px}.look canvas{image-rendering:pixelated;display:block}.look.sel{border-color:var(--rust);box-shadow:0 3px 0 var(--rust);background:#fff1e8}.ng-actions{justify-content:space-between;margin-top:20px;display:flex}.credits-body{text-align:center;font-size:19px}.cr-big{color:var(--rust);font-size:36px;font-weight:700}.cr-next{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin:18px 0;display:grid}.cr-card{border:3px solid var(--ink);background:#fff;border-radius:12px;flex-direction:column;gap:4px;padding:12px;display:flex}.cr-card span{color:var(--muted);font-size:15px}.cr-card em{color:var(--rust);font-style:normal;font-weight:700}@keyframes pop{0%{opacity:0;transform:scale(.96)}}.dialog{animation-name:pop-dialog}@keyframes pop-dialog{0%{opacity:0;transform:translate(-50%)translateY(8px)}}@keyframes fadein{0%{opacity:0}}@keyframes bob{50%{transform:translateY(3px)}}@keyframes shake{20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}@keyframes slidein{0%{opacity:0;transform:translate(-30px)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes bounce-in{0%{opacity:0;transform:scale(.2)}}@keyframes battle-in{0%{clip-path:inset(0 50%)}to{clip-path:inset(0)}}@keyframes slide-l{0%{transform:translate(120vw)}}@keyframes slide-r{0%{transform:translate(-120vw)}}@keyframes blink{0%,33%,66%{opacity:.1}16%,50%,83%,to{opacity:1}}@keyframes lunge{50%{transform:translate(30px,-20px)}}@keyframes dots{0%{content:""}25%{content:"."}50%{content:".."}75%{content:"..."}}@keyframes drift{to{transform:translate(20%)}}@keyframes hop{50%{transform:translateY(-10px)}}@media (max-width:760px){.dialog{padding:18px 16px;font-size:17px;bottom:12px}.dialog-portrait{width:52px;height:52px}.choice{bottom:140px}.hud-stats{width:170px;font-size:13px}.hud-obj{max-width:calc(100% - 200px);font-size:13px}.order-grid,.code-layout{grid-template-columns:1fr}.battle-bottom{flex-direction:column;max-height:64vh}.moves{width:100%}.plat.p1,.plat.p2{width:180px}.hpbox{min-width:170px;padding:6px 10px}.hp-name{font-size:17px}.menu .panel-body{flex-direction:column}.menu-nav{flex-flow:wrap;padding:10px}.menu-content{padding:0 12px 16px}.logo{font-size:46px}.title-ferris{display:none}.panel-body{padding:14px;font-size:16px}}.cert-wrap{flex-wrap:wrap;justify-content:center;align-items:center;gap:16px;display:flex}.cert-img{border-radius:8px;width:min(100%,720px);height:auto;box-shadow:0 6px #00000040}.cert-badge{width:180px;height:180px}.cert-note{text-align:center;margin-top:12px}.cert-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.resume-actions{align-items:center;gap:10px;margin-top:14px;display:flex}
