:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--ink:#14213d;--ink-soft:#44506a;--paper:#f4f6f8;--paper-2:#fff;--line:#d5dbe6;--accent:#0c7c8c;--accent-deep:#095e6b;--hit:#c45c26;--good:#1f7a4c;--gold:#b45309;--safe-top:env(safe-area-inset-top,0px);--safe-right:env(safe-area-inset-right,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-family:Sora,Segoe UI,sans-serif}*{box-sizing:border-box}html,body{width:100%;height:100dvh;max-height:100dvh;color:var(--ink);background:var(--paper);touch-action:manipulation;-webkit-user-select:none;user-select:none;margin:0;overflow:hidden}button,input{font:inherit}#app{width:100%;height:100dvh;max-height:100dvh;overflow:hidden}.hidden{display:none!important}.start-screen{-webkit-overflow-scrolling:touch;width:100%;height:100%;padding:max(.75rem, var(--safe-top)) max(.85rem, var(--safe-right)) max(.75rem, var(--safe-bottom)) max(.85rem, var(--safe-left));background:radial-gradient(900px 420px at 50% -10%, #d9f2f4 0%, transparent 55%), linear-gradient(180deg, #fff 0%, var(--paper) 40%);overflow:auto}.start-inner{flex-direction:column;gap:.75rem;max-width:520px;min-height:calc(100% - .5rem);margin:0 auto;display:flex}.start-kicker{letter-spacing:.08em;text-transform:uppercase;color:var(--accent-deep);margin:0;font-size:.72rem;font-weight:700}.start-brand{letter-spacing:-.03em;margin:0;font-family:Fraunces,Georgia,serif;font-size:clamp(1.8rem,7vw,2.4rem);font-weight:650;line-height:1.05}.start-brand em{color:var(--accent);font-style:italic}.start-sub{color:var(--ink-soft);margin:0;font-size:.9rem;line-height:1.35}.item-showcase{margin-top:.15rem}.item-showcase-title{margin:0 0 .4rem;font-size:.85rem;font-weight:750}.item-cards{grid-template-columns:1fr;gap:.4rem;display:grid}.item-card{border:1px solid var(--line);background:#fff;border-radius:.75rem;grid-template-rows:auto auto;grid-template-columns:auto 1fr;gap:.1rem .55rem;padding:.55rem .65rem;display:grid}.item-card-emoji{grid-row:1/3;align-self:center;font-size:1.45rem;line-height:1}.item-card strong{font-size:.82rem}.item-card p{color:var(--ink-soft);grid-column:2;margin:0;font-size:.7rem;line-height:1.3}.play-modes{grid-template-columns:1fr 1fr;gap:.45rem;display:grid}.play-mode{text-align:left;border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:.85rem;flex-direction:column;gap:.2rem;padding:.7rem .75rem;display:flex}.play-mode.active{border-color:var(--accent);box-shadow:0 0 0 2px #0c7c8c26}.play-mode.locked{opacity:.55;cursor:not-allowed;background:#f3f5f8}.pm-title{color:var(--ink);font-size:.95rem;font-weight:750}.pm-desc{color:var(--ink-soft);font-size:.7rem;line-height:1.3}.soon{color:var(--ink-soft);vertical-align:middle;background:#e8edf3;border-radius:999px;margin-left:.25rem;padding:.05rem .35rem;font-size:.62rem;font-weight:700;display:inline-block}.duel-panel{flex-direction:column;gap:.45rem;display:flex}.duel-panel.hidden{display:none}.duel-name{color:var(--ink-soft);flex-direction:column;gap:.25rem;font-size:.72rem;font-weight:700;display:flex}.duel-name input,.duel-room-row input{border:1px solid var(--line);min-height:2.5rem;font:inherit;color:var(--ink);background:#fff;border-radius:.7rem;padding:.45rem .7rem;font-size:.9rem}.duel-find{margin-top:0}.duel-room-row{grid-template-columns:1fr auto auto;gap:.35rem;display:grid}.duel-join{border:1px solid var(--line);color:#fff;cursor:pointer;background:#14213d;border-radius:.7rem;min-height:2.5rem;padding:0 .7rem;font-size:.8rem;font-weight:700}.duel-join.ghost{color:var(--ink);background:#fff}.duel-practice{border:1px dashed var(--line);min-height:2.4rem;color:var(--ink-soft);cursor:pointer;background:0 0;border-radius:.7rem;font-size:.82rem;font-weight:650}.duel-status{min-height:1.1rem;color:var(--accent-deep);margin:0;font-size:.72rem;line-height:1.3}.start-cta.hidden{display:none}.level-pick-head{justify-content:space-between;align-items:baseline;gap:.5rem;margin-top:.25rem;display:flex}.level-pick-head h2{margin:0;font-size:.85rem;font-weight:750}.level-pick-head span{color:var(--ink-soft);text-align:right;font-size:.72rem}.level-grid{-webkit-overflow-scrolling:touch;border-radius:.75rem;grid-template-columns:repeat(2,1fr);gap:.4rem;max-height:min(42vh,360px);padding:.15rem;display:grid;overflow:auto}.lvl-card{text-align:left;border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:.7rem;grid-template-rows:auto auto;grid-template-columns:auto 1fr;gap:.1rem .45rem;padding:.5rem .55rem;display:grid}.lvl-card.selected{border-color:var(--accent-deep);background:#eef9fb}.lvl-num{color:#fff;background:#14213d;border-radius:.45rem;grid-row:1/3;align-self:center;place-items:center;width:1.7rem;height:1.7rem;font-size:.7rem;font-weight:750;display:grid}.lvl-title{color:var(--ink);white-space:nowrap;text-overflow:ellipsis;font-size:.72rem;font-weight:700;overflow:hidden}.lvl-concept{color:var(--ink-soft);white-space:nowrap;text-overflow:ellipsis;font-size:.62rem;overflow:hidden}.start-cta{background:linear-gradient(180deg, #1294a6 0%, var(--accent-deep) 100%);color:#fff;cursor:pointer;border:0;border-radius:.9rem;min-height:3rem;margin-top:auto;font-size:1rem;font-weight:750;box-shadow:0 8px 20px #0c7c8c47}.start-cta:active{transform:scale(.99)}.start-foot{text-align:center;color:#9aa3b5;margin:0;font-size:.65rem}.shell{width:100%;height:100%;max-height:100%;padding:max(.2rem, var(--safe-top)) max(.3rem, var(--safe-right)) max(.2rem, var(--safe-bottom)) max(.3rem, var(--safe-left));grid-template-rows:auto minmax(0,1fr) auto;gap:0;display:grid;overflow:hidden}.chrome{flex-direction:column;flex:none;gap:.25rem;min-width:0;padding:.1rem .05rem .25rem;display:flex}.chrome-row{align-items:center;gap:.3rem;min-width:0;display:flex}.exit-btn{border:1px solid var(--line);color:#fff;cursor:pointer;white-space:nowrap;z-index:6;background:#14213d;border-radius:999px;flex:none;min-height:1.85rem;padding:0 .5rem;font-size:.68rem;font-weight:700}.exit-btn:active{transform:scale(.97)}.chrome-meta{-webkit-overflow-scrolling:touch;scrollbar-width:none;flex:auto;align-items:center;gap:.22rem;min-width:0;display:flex;overflow-x:auto}.chrome-meta::-webkit-scrollbar{display:none}.chip{border:1px solid var(--line);background:var(--paper-2);color:var(--ink-soft);white-space:nowrap;border-radius:999px;align-items:center;padding:.15rem .45rem;font-size:.68rem;font-weight:650;display:inline-flex}.chip strong{color:var(--ink)}.chip.hot{color:var(--hit);background:#fff4ee;border-color:#f0c2ad}.chip.gold{color:var(--gold)}.icon-btn{border:1px solid var(--line);background:var(--paper-2);width:2rem;height:2rem;color:var(--ink);cursor:pointer;border-radius:999px;flex:none;padding:0;font-size:.85rem}.icon-btn:active{transform:scale(.96)}.tool-strip{-webkit-overflow-scrolling:touch;scrollbar-width:none;gap:.2rem;width:100%;padding-bottom:.05rem;display:flex;overflow-x:auto}.tool-strip::-webkit-scrollbar{display:none}.tool-strip .tool{border:1px solid var(--line);background:var(--paper-2);min-width:0;min-height:1.75rem;color:var(--ink);cursor:pointer;border-radius:.5rem;flex:1 1 0;padding:0 .3rem;font-size:.62rem;font-weight:650}.tool-strip .tool:active{background:#eef8f9}.tool-strip .tool.accent{color:#fff;background:#14213d;border-color:#14213d}.tool-strip .tool:disabled{opacity:.45}.explain-sheet{z-index:5;-webkit-overflow-scrolling:touch;pointer-events:auto;background:#fffffff7;border:1px solid #9fd0d7;border-radius:.85rem;grid-template-columns:minmax(72px,28%) 1fr;align-items:end;gap:.35rem .5rem;max-height:48%;padding:.35rem .55rem .45rem;display:grid;position:absolute;bottom:.35rem;left:.35rem;right:.35rem;overflow:auto;box-shadow:0 10px 24px #14213d24}.explain-sheet[hidden]{display:none!important}.explain-sheet .descartes{pointer-events:none;-webkit-user-select:none;user-select:none;filter:drop-shadow(0 6px 10px #14213d2e);place-self:end center;width:100%;max-width:120px;height:auto}.explain-copy{min-width:0;padding:.25rem 0 .1rem}.explain-head{justify-content:space-between;align-items:baseline;gap:.5rem;margin-bottom:.3rem;display:flex}.explain-head strong{font-size:.78rem}.explain-ans{color:var(--accent-deep);white-space:nowrap;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.72rem;font-weight:700}.explain-tags{flex-wrap:wrap;gap:.25rem;margin-bottom:.35rem;display:flex}.explain-tags .tag{color:var(--accent-deep);background:#e6f6f8;border-radius:999px;padding:.12rem .4rem;font-size:.62rem;font-weight:700}.explain-sheet p{color:var(--ink-soft);margin:0;font-size:.72rem;line-height:1.35}.explain-actions{margin-top:.45rem}.explain-actions[hidden]{display:none!important}.explain-next{background:var(--good);color:#fff;cursor:pointer;border:0;border-radius:.65rem;width:100%;min-height:2.2rem;font-size:.85rem;font-weight:750}.explain-next:active{transform:scale(.99)}.board-stage{width:100%;min-width:0;height:100%;min-height:0;position:relative}.board-frame{background:var(--paper-2);border:1px solid #cfd6e2;border-radius:.75rem;position:absolute;inset:0;overflow:hidden}.board-frame.pulse-hit{animation:.42s pulse-hit}.board-frame.pulse-bonk{animation:.42s pulse-bonk}@keyframes pulse-hit{0%,to{box-shadow:none}40%{box-shadow:0 0 0 4px #1f7a4c33}}@keyframes pulse-bonk{0%,to{transform:translate(0)}20%{transform:translate(-2px)}40%{transform:translate(2px)}}#jxgbox,#jxgbox.jxgbox{overflow:hidden;background:#fff!important;border:none!important;border-radius:0!important;width:100%!important;max-width:none!important;height:100%!important;max-height:none!important;margin:0!important;position:absolute!important;inset:0!important}#jxgbox svg{width:100%!important;height:100%!important}.msg{z-index:2;color:var(--ink-soft);pointer-events:none;background:#ffffffe0;border:1px solid #d5dbe6e6;border-radius:.55rem;max-height:2.6em;margin:0;padding:.3rem .5rem;font-size:.7rem;line-height:1.25;position:absolute;top:.4rem;left:.45rem;right:.45rem;overflow:hidden}.history-rail{z-index:2;scrollbar-width:none;pointer-events:none;gap:.3rem;display:flex;position:absolute;bottom:.4rem;left:.4rem;right:.4rem;overflow-x:auto}.history-rail:not(:empty){pointer-events:auto}.history-rail::-webkit-scrollbar{display:none}.history-empty{display:none}.hist{border:1px solid var(--line);text-align:left;cursor:pointer;background:#ffffffeb;border-radius:999px;flex:none;align-items:center;gap:.35rem;min-height:1.7rem;padding:.2rem .5rem;display:flex}.hist .expr{white-space:nowrap;text-overflow:ellipsis;max-width:7rem;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.65rem;overflow:hidden}.hist .meta{text-transform:uppercase;font-size:.58rem;font-weight:700}.hist.win{border-color:#9dceb3}.hist.win .meta{color:var(--good)}.hist.miss{border-color:#9fd0d7}.hist.miss .meta{color:var(--accent)}.hist.hit_obstacle{border-color:#f0c2ad}.hist.hit_obstacle .meta{color:var(--hit)}.coord-hud{z-index:7;color:#fff;pointer-events:none;letter-spacing:.02em;background:#14213de0;border-radius:999px;padding:.22rem .55rem;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.72rem;font-weight:600;position:absolute;top:.4rem;left:50%;transform:translate(-50%);box-shadow:0 4px 12px #14213d33}.coord-hud[hidden]{display:none!important}.item-hud{z-index:7;position:absolute;bottom:.45rem;left:.4rem}.item-hud[hidden]{display:none!important}.item-slot{cursor:pointer;text-align:left;background:#fffffff5;border:1px solid #c4b5fd;border-radius:.75rem;grid-template-rows:auto auto;grid-template-columns:auto 1fr;align-items:center;column-gap:.4rem;min-width:7.2rem;padding:.4rem .55rem;display:grid;box-shadow:0 4px 14px #14213d1f}.item-slot.empty{opacity:.72;border-color:var(--line);cursor:default}.item-slot:not(.empty):not(:disabled):active{transform:scale(.98)}.item-slot-emoji{grid-row:1/3;font-size:1.35rem;line-height:1}.item-slot-name{color:var(--ink);font-size:.72rem;font-weight:750}.item-slot-hint{color:var(--accent-deep);font-size:.62rem;font-weight:650}.item-slot.empty .item-slot-hint{color:var(--ink-soft)}.chip.duel{color:#5b21b6;background:#efe8ff;border-color:#ddd6fe}.zoom-stack{z-index:6;flex-direction:column;gap:.22rem;display:flex;position:absolute;top:2.35rem;right:.4rem}.zoom-btn{border:1px solid var(--line);width:2.05rem;height:2.05rem;color:var(--ink);cursor:pointer;background:#fffffff0;border-radius:.55rem;padding:0;font-size:1.05rem;font-weight:700;line-height:1;box-shadow:0 2px 8px #14213d1a}.zoom-btn.zoom-reset{font-size:.68rem}.zoom-btn:active{background:#eef8f9;transform:scale(.96)}.dock{flex-direction:column;flex:none;gap:.22rem;min-height:0;max-height:48%;padding-top:.22rem;display:flex}.panel-host{min-height:0;position:relative;overflow:hidden}.panel{min-height:0;display:none}.panel.active{display:block}.panel.disabled{opacity:.55;pointer-events:none}.tools-split{grid-template-columns:1fr 1fr;align-items:stretch;gap:.35rem;min-height:0;max-height:min(34vh,260px);display:grid}.tools-draft,.tools-calc{flex-direction:column;min-width:0;min-height:0;display:flex;overflow:hidden}.tools-draft,.tools-calc .calc{height:100%}.tools-calc .calc-grid button{min-height:1.7rem;font-size:.75rem}.tools-calc .calc-display{min-height:1.7rem;padding:.25rem .45rem;font-size:.95rem}.mode-switch{border:1px solid var(--line);background:#e4e9f0;border-radius:.75rem;flex:none;grid-template-columns:1fr 1fr;gap:.25rem;padding:.18rem;display:grid}.mode-btn{min-height:1.85rem;color:var(--ink-soft);cursor:pointer;background:0 0;border:0;border-radius:.55rem;font-size:.72rem;font-weight:700}.mode-btn.active{color:var(--ink);background:#fff;box-shadow:0 1px 3px #14213d1a}.draft-toolbar{align-items:center;gap:.35rem;margin-bottom:.25rem;display:flex}.draft-label{color:var(--ink-soft);margin-right:auto;font-size:.7rem;font-weight:700}.draft-btn{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:.5rem;min-height:1.7rem;padding:0 .55rem;font-size:.68rem;font-weight:650}.draft-btn.danger{color:var(--hit);background:#fff4ee;border-color:#f0c2ad}.draft-canvas{touch-action:none;cursor:crosshair;border:1px solid #e0d6c8;border-radius:.65rem;width:100%;display:block;box-shadow:inset 0 1px #fffc}.calc{flex-direction:column;gap:.3rem;display:flex}.calc-display{color:#f8fafc;text-align:right;letter-spacing:.02em;text-overflow:ellipsis;white-space:nowrap;background:#0f172a;border-radius:.55rem;min-height:2.2rem;padding:.35rem .6rem;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:1.15rem;font-weight:600;overflow:hidden}.calc-grid{grid-template-columns:repeat(4,1fr);gap:.2rem;display:grid}.calc-grid button{min-height:2rem;color:var(--ink);cursor:pointer;background:#fff;border:1px solid #cfd6e2;border-radius:.45rem;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.85rem;font-weight:650}.calc-grid button:active{background:#f3fafb}.calc-grid button.op{color:var(--accent-deep);background:#e6f6f8}.calc-grid button.accent{background:linear-gradient(180deg, #1294a6 0%, var(--accent-deep) 100%);color:#fff;border-color:#0a6d7a}.calc-grid button.muted{color:var(--ink-soft);background:#f4f6fa}.calc-grid button.wide{grid-column:span 2}.calc-grid button.use,.calc-grid button.wide2{color:#fff;background:#14213d;border-color:#14213d;grid-column:1/-1;min-height:2.15rem}.composer{background:var(--paper-2);border:1px solid var(--line);border-radius:.7rem;grid-template-columns:auto 1fr;align-items:center;gap:.35rem;padding:.25rem .5rem;display:grid}.composer label{color:var(--accent-deep);font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.9rem;font-weight:650}.composer input{width:100%;min-height:2rem;color:var(--ink);caret-color:var(--accent);background:0 0;border:0;outline:none;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:16px}.composer input::placeholder{color:#9aa3b5}.math-keyboard{border:1px solid var(--line);background:#e8edf3;border-radius:.75rem;flex-direction:column;gap:.18rem;padding:.25rem;display:flex}.math-keyboard.disabled{opacity:.55;pointer-events:none}.mk-row{grid-template-columns:repeat(5,1fr);gap:.18rem;display:grid}.mk-row:last-child{grid-template-columns:1fr 1fr 2fr}.mk-key{min-height:1.9rem;color:var(--ink);cursor:pointer;background:#fff;border:1px solid #cfd6e2;border-radius:.45rem;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.72rem;font-weight:650}.mk-key:active{background:#f3fafb}.mk-key.accent{background:linear-gradient(180deg, #1294a6 0%, var(--accent-deep) 100%);color:#fff;border-color:#0a6d7a}.mk-key.danger{color:var(--hit);background:#fff4ee;border-color:#f0c2ad}.mk-key.muted{color:var(--ink-soft);background:#f4f6fa}.mk-key.wide{font-size:.85rem}.win-sheet{z-index:3;opacity:0;pointer-events:none;background:#fffffff5;border:1px solid #9dceb3;border-radius:.75rem;justify-content:space-between;align-items:center;gap:.5rem;padding:.55rem .65rem;transition:transform .2s,opacity .2s;display:flex;position:absolute;bottom:2.2rem;left:.5rem;right:.5rem;transform:translateY(120%)}.win-sheet.show{opacity:1;pointer-events:auto;transform:translateY(0)}.win-sheet p{margin:0;font-size:.75rem;font-weight:650}.win-sheet button{background:var(--good);color:#fff;cursor:pointer;border:0;border-radius:.6rem;min-height:2.1rem;padding:0 .75rem;font-weight:700}@media (height>=780px){.mk-key{min-height:2.15rem}}@media (height<=700px){.dock{max-height:46%}.tools-split{max-height:min(30vh,220px)}.mk-key{min-height:1.7rem;font-size:.72rem}.composer input{min-height:1.75rem}.explain-sheet{max-height:40%}.explain-sheet .descartes{max-width:72px}}@media (width<=360px){.tools-split{grid-template-columns:1fr;max-height:min(38vh,280px);overflow:auto}.chip{padding:.12rem .35rem;font-size:.62rem}}.jxgbox{-ms-touch-action:none;background-color:#fff;border:1px solid #356aa0;border-radius:10px;margin:0;position:relative;overflow:hidden}.jxgbox svg text{cursor:default;-webkit-user-select:none;user-select:none}.JXGtext{background-color:#0000;margin:0;padding:0;font-family:Courier,monospace}.JXGinfobox{border:0 #000}.jxgbox :focus{outline-width:.5px;outline-style:dotted}.JXG_navigation{z-index:100;cursor:pointer;background-color:#0000;padding:2px;font-size:14px;position:absolute;bottom:5px;right:5px}.JXG_navigation_button{color:#666}.JXG_navigation_button:hover{background:#b8b8b880;border-radius:2px}.JXG_navigation_button svg{padding:0;position:relative;top:.2em}.JXG_wrap_private:fullscreen{background-color:#ccc;width:100%;height:100%;padding:0}.JXG_wrap_private:fullscreen{background-color:#ccc;width:100%;height:100%;padding:0}.smart-label-solid{color:#fff;text-align:center;vertical-align:middle;border-radius:150px;margin:0;padding:1px 7px}.smart-label-outline{color:#000;text-align:center;vertical-align:middle;background-color:#fff;border:2px solid #000;border-radius:15px;margin:0;padding:1px 7px}.smart-label-pure{color:#000;text-align:center;vertical-align:middle;background-color:#0000;border:none;border-radius:15px;margin:0;padding:20px 7px 1px}.smart-label-line,.smart-label-point{background-color:#0072b2;border-color:#0072b2}.smart-label-point{margin-top:12px}.smart-label-angle{background-color:#e69f00;border-color:#e69f00;padding:1px 7px}.smart-label-polygon,.smart-label-circle{color:#000;background-color:#f0e442;border-color:#f0e442;padding:1px 7px}
