:root{--bg:#05060d;--ink:#eef0ff;--ink-dim:#9aa0c8;--glass:#0e1126b8;--line:#8c96ff2e;--accent:#b07cff;color:var(--ink);-webkit-text-size-adjust:100%;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}*{box-sizing:border-box}html,body,#root{background:var(--bg);overscroll-behavior:none;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;height:100%;margin:0;overflow:hidden}button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation;background:0 0;border:0}button:disabled{opacity:.3;cursor:default}button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.boot{background:var(--bg);position:fixed;inset:0}.app{position:fixed;inset:0}.stage{touch-action:none;inset:0;position:absolute!important}.topbar{padding:calc(env(safe-area-inset-top) + 14px) calc(env(safe-area-inset-right) + 16px) 0 calc(env(safe-area-inset-left) + 16px);pointer-events:none;justify-content:space-between;align-items:flex-start;gap:12px;display:flex;position:absolute;top:0;left:0;right:0}.topbar>*{pointer-events:auto}.brand{flex-direction:column;gap:2px;display:flex}.brand strong{letter-spacing:.14em;text-transform:uppercase;font-size:20px;font-weight:600}.brand span{color:var(--ink-dim);font-size:13px}.icon{background:var(--glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(14px);border-radius:14px;width:44px;height:44px;font-size:20px}.panel{left:calc(env(safe-area-inset-left) + 16px);bottom:calc(env(safe-area-inset-bottom) + 16px);background:var(--glass);border:1px solid var(--line);border-top-color:color-mix(in srgb, var(--accent) 55%, transparent);-webkit-backdrop-filter:blur(18px);border-radius:22px;width:min(400px,100% - 32px);padding:16px;position:absolute}@media (orientation:portrait){.panel{width:auto;right:calc(env(safe-area-inset-right) + 16px)}}.panel-head{align-items:center;gap:12px;display:flex}.panel-title{flex:1;min-width:0}.panel-index{color:var(--accent);letter-spacing:.08em;font-variant-numeric:tabular-nums;font-size:12px}.panel h2{margin:2px 0 0;font-size:22px;font-weight:600;line-height:1.15}.panel-desc{color:var(--ink-dim);min-height:4.35em;margin:12px 0 14px;font-size:15px;line-height:1.45}.panel-foot{justify-content:space-between;align-items:center;gap:12px;min-height:48px;display:flex}.stars{font-variant-numeric:tabular-nums;color:var(--accent)}.note{color:var(--ink-dim);font-size:14px}.step{border:1px solid var(--line);border-radius:14px;width:44px;height:44px;font-size:18px}.primary{background:var(--accent);color:#0a0b18;border-radius:14px;min-height:48px;margin-left:auto;padding:0 28px;font-weight:600}.primary.wide{width:100%;margin-top:22px}.tower-label{white-space:nowrap;color:var(--ink-dim);opacity:.75;align-items:baseline;gap:8px;font-size:14px;transition:opacity .2s,color .2s;display:flex}.tower-label.is-selected{color:var(--ink);opacity:1;font-weight:600}.tower-label.is-locked{opacity:.4}.tower-label-index{font-variant-numeric:tabular-nums;font-weight:600}.sheet-backdrop{padding:16px;padding-bottom:calc(env(safe-area-inset-bottom) + 16px);z-index:20;background:#03040a99;justify-content:center;align-items:flex-end;display:flex;position:absolute;inset:0}@media (width>=640px){.sheet-backdrop{align-items:center}}.sheet{border:1px solid var(--line);background:#0d1024;border-radius:24px;width:min(420px,100%);padding:20px}.sheet h2{margin:0 0 6px;font-size:20px}.sheet label{color:var(--ink-dim);margin:16px 0 8px;font-size:13px;display:block}.segmented{background:#ffffff0d;border-radius:14px;gap:6px;padding:4px;display:flex}.segmented button{min-height:40px;color:var(--ink-dim);border-radius:10px;flex:1;font-size:14px}.segmented button[aria-pressed=true]{color:var(--ink);background:#ffffff24;font-weight:600}@media (orientation:portrait) and (width<=640px){.tower-label-name{display:none}}.level-list{gap:6px;margin:12px 0 0;padding:0;list-style:none;display:grid}.level-list button{border:1px solid var(--line);text-align:left;border-radius:14px;align-items:center;gap:12px;width:100%;min-height:52px;padding:0 14px;display:flex}.level-number{color:var(--accent);font-variant-numeric:tabular-nums;font-weight:600}.level-name{flex:1;font-size:16px}.star-row{letter-spacing:2px;color:#ffffff2e}.star-row .is-on{color:#ffe45c}.level{position:fixed;inset:0}.level-top{padding:calc(env(safe-area-inset-top) + 12px) calc(env(safe-area-inset-right) + 16px) 0 calc(env(safe-area-inset-left) + 16px);pointer-events:none;z-index:6;position:absolute;top:0;left:0;right:0}.level-top>*{pointer-events:auto}.level-bar{align-items:center;gap:8px;display:flex}.level-heading{flex:1;min-width:0}.level-heading h1{white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:18px;font-weight:600;overflow:hidden}.level-heading span{color:var(--ink-dim);font-variant-numeric:tabular-nums;font-size:13px}.chip{background:var(--glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(14px);border-radius:14px;min-height:44px;padding:0 14px;font-size:14px}.chip[aria-pressed=true]{border-color:var(--accent);color:var(--accent)}.level-goal{max-width:640px;margin:12px 0 0;font-size:15px;line-height:1.4}.level-hint{max-width:640px;color:var(--ink);background:color-mix(in srgb, var(--accent) 16%, #0d1024);border:1px solid color-mix(in srgb, var(--accent) 40%, transparent);border-radius:12px;margin:8px 0 0;padding:10px 12px;font-size:14px;line-height:1.4}.controls{left:calc(env(safe-area-inset-left) + 16px);right:calc(env(safe-area-inset-right) + 16px);bottom:calc(env(safe-area-inset-bottom) + 16px);background:var(--glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(18px);z-index:6;border-radius:22px;gap:10px;max-width:520px;margin:0 auto;padding:14px;display:grid;position:absolute}.controls-row{align-items:center;gap:12px;min-height:48px;display:flex}.feedback{color:var(--ink-dim);flex:1;font-size:14px;line-height:1.35}.feedback.is-bad{color:#ff9bb0}.feedback.is-good{color:#8dffc4}.ghost{border:1px solid var(--line);border-radius:14px;min-height:48px;padding:0 18px}.slider{color:var(--ink-dim);grid-template-columns:96px 1fr 44px;align-items:center;gap:10px;font-size:14px;display:grid}.slider input{width:100%;height:32px;accent-color:var(--accent)}.slider-value{text-align:right;color:var(--ink);font-variant-numeric:tabular-nums}.scores{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:14px}.scores th{color:var(--ink-dim);text-align:right;padding:2px 0;font-weight:400}.scores td{text-align:right;padding:3px 0}.scores td:first-child{text-align:left;font-family:ui-monospace,SF Mono,Menlo,monospace}.scores .is-target td{color:#8dffc4;font-weight:600}.head-grid{gap:6px;display:grid}.head-grid button{border:1px solid var(--line);min-height:40px;color:var(--ink-dim);border-radius:10px;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:13px}.head-grid button[aria-pressed=true]{background:var(--accent);color:#0a0b18;border-color:#0000;font-weight:600}.next-tokens{font-variant-numeric:tabular-nums;color:var(--ink-dim);flex-wrap:wrap;align-items:baseline;gap:4px 12px;font-size:14px;display:flex}.next-title{width:100%;font-size:12px}.next-token b{font-family:ui-monospace,SF Mono,Menlo,monospace;font-weight:500}.next-token.is-top{color:var(--ink)}.next-token.is-top b{font-weight:700}.labels{pointer-events:none;z-index:3;position:absolute;inset:0;overflow:hidden}.label{transform-origin:0 0;visibility:hidden;pointer-events:auto;will-change:transform;position:absolute;top:0;left:0}.label.is-left>*{transform:translate(50%)}.tile{width:166px;height:96px;color:var(--ink);border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:2px;font-family:ui-monospace,SF Mono,Menlo,monospace;display:flex}.tile:disabled{opacity:1;cursor:default}.tile-text{white-space:pre;text-shadow:0 0 10px #05060de6;font-size:32px;font-weight:600}.tile-note{color:#cfd4ff;font-variant-numeric:tabular-nums;font-size:22px;line-height:1}.tile-masked .tile-text{color:#4a5080}.arrow-label{white-space:nowrap;color:var(--ink);text-shadow:0 0 12px #05060d,0 0 4px #05060d;pointer-events:none;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:14px}.arrow-label.is-target{color:#8dffc4;font-weight:600}.arrow-label.is-query{color:var(--accent);font-size:17px;font-weight:700}.result{left:calc(env(safe-area-inset-left) + 16px);right:calc(env(safe-area-inset-right) + 16px);bottom:calc(env(safe-area-inset-bottom) + 16px);border:1px solid color-mix(in srgb, var(--accent) 55%, transparent);z-index:10;background:#0d1024;border-radius:22px;max-width:520px;max-height:calc(100% - 200px);margin:0 auto;padding:18px;position:absolute;overflow-y:auto}.result-head{justify-content:space-between;align-items:center;display:flex}.result h2{margin:0;font-size:22px}.result .star-row{font-size:26px}.result-stars{color:var(--ink-dim);flex-wrap:wrap;gap:4px 14px;margin:10px 0 0;padding:0;font-size:13px;list-style:none;display:flex}.result-stars li:before{content:"☆ "}.result-stars li.is-on{color:var(--ink)}.result-stars li.is-on:before{content:"★ ";color:#ffe45c}.result h3{color:var(--accent);margin:14px 0 4px;font-size:13px;font-weight:400}.result p{-webkit-user-select:text;user-select:text;margin:0;font-size:15px;line-height:1.45}.result-actions{gap:10px;margin-top:16px;display:flex}.result-actions .primary{flex:1;margin-left:0}.code-sheet{width:min(640px,100%)}.code-sheet pre{border:1px solid var(--line);-webkit-user-select:text;user-select:text;background:#070817;border-radius:12px;margin:10px 0 0;padding:12px;font:13px/1.5 ui-monospace,SF Mono,Menlo,monospace;overflow-x:auto}.row-note{color:var(--accent);white-space:nowrap;pointer-events:none;font:600 30px ui-monospace,SF Mono,Menlo,monospace}.gap{border:3px solid color-mix(in srgb, var(--accent) 55%, transparent);min-width:84px;height:62px;color:var(--ink);background:#0d1024;border-radius:31px;padding:0 8px;font:600 26px ui-monospace,SF Mono,Menlo,monospace}.gap.is-cut{color:#ffffff47;border-color:var(--line);border-radius:38px;min-width:76px;height:76px}.gap.gap-on{background:var(--accent);color:#0a0b18;border-color:#0000}.pair-grid{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.pair-grid button,.option-list button{border:1px solid var(--line);border-radius:12px;min-height:44px;font:15px ui-monospace,SF Mono,Menlo,monospace}.option-list{gap:6px;display:grid}.option-list button{text-align:left;justify-content:space-between;align-items:center;gap:10px;padding:0 12px;display:flex}.option-list small{color:var(--ink-dim);white-space:nowrap;font-family:inherit}.option-list .is-right{color:#8dffc4;opacity:1;border-color:#5cffa8}.option-list .is-wrong{border-color:#ff6f91}.point{color:#6b74b8;white-space:nowrap;text-shadow:0 0 6px #05060d,0 0 2px #05060d;border-radius:8px;padding:2px 6px;font:12px ui-monospace,SF Mono,Menlo,monospace;transform:translateY(-16px)}.point:disabled{opacity:1;cursor:default}.point-idle{color:#b9c0ee}.point-target{color:#fff;font-size:16px;font-weight:700}.point-option{color:#5ce1ff;font-size:15px;font-weight:600}.point-right{color:#8dffc4;font-size:16px;font-weight:700}.point-wrong{color:#ff9bb0;font-size:15px;font-weight:600}.option-list.is-row{grid-template-columns:repeat(2,1fr)}.equation{text-align:center;padding:2px 0;font:600 17px ui-monospace,SF Mono,Menlo,monospace}@media (width<=640px){.point-dim{font-size:10px}}.bar-label,.bar-note{white-space:nowrap;pointer-events:none;color:var(--ink);text-shadow:0 0 10px #05060d;font:600 30px ui-monospace,SF Mono,Menlo,monospace}.bar-note{color:#cfd4ff;font-variant-numeric:tabular-nums;font-size:26px;font-weight:500}.bar-cut{color:#4a5080}.bar-rest{color:var(--ink-dim)}.bar-right{color:#8dffc4}.option-list.is-four{grid-template-columns:repeat(4,1fr)}.option-list.is-four button{justify-content:center}.depth-list{grid-template-columns:repeat(5,1fr);gap:6px;display:grid}.depth-list button{border:1px solid var(--line);min-height:56px;color:var(--ink-dim);border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:4px 2px;font:13px ui-monospace,SF Mono,Menlo,monospace;display:flex}.depth-list button b{color:var(--ink)}.depth-list button[aria-pressed=true]{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 18%, transparent)}.part-grid{grid-template-columns:repeat(5,1fr);gap:6px;display:grid}.part-grid.is-four{grid-template-columns:repeat(4,1fr)}.part-grid button{border:1px solid var(--line);min-height:44px;color:var(--ink);border-radius:10px;font:13px ui-monospace,SF Mono,Menlo,monospace}.part-grid button[aria-pressed=true]{background:var(--accent);color:#0a0b18;border-color:#0000;font-weight:600}.option-list.is-three{grid-template-columns:repeat(3,1fr)}.option-list.is-three button{text-align:center;justify-content:center}.scene-note{white-space:nowrap;color:var(--ink);text-shadow:0 0 8px #05060d,0 0 3px #05060d;pointer-events:none;font:600 13px ui-monospace,SF Mono,Menlo,monospace;display:block}.scene-note.is-above{transform:translateY(-22px)}.scene-note.is-below{color:#8dffc4;transform:translateY(18px)}
