@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/prof-sema/assets/inter-latin-400-normal-C38fXH4l.woff2) format("woff2"),url(/prof-sema/assets/inter-latin-400-normal-CyCys3Eg.woff) format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/prof-sema/assets/inter-latin-500-normal-Cerq10X2.woff2) format("woff2"),url(/prof-sema/assets/inter-latin-500-normal-BL9OpVg8.woff) format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/prof-sema/assets/inter-latin-600-normal-LgqL8muc.woff2) format("woff2"),url(/prof-sema/assets/inter-latin-600-normal-CiBQ2DWP.woff) format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/prof-sema/assets/inter-latin-700-normal-Yt3aPRUw.woff2) format("woff2"),url(/prof-sema/assets/inter-latin-700-normal-BLAVimhd.woff) format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:800;src:url(/prof-sema/assets/inter-latin-800-normal-BYj_oED-.woff2) format("woff2"),url(/prof-sema/assets/inter-latin-800-normal-D1mf63XC.woff) format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/prof-sema/assets/jetbrains-mono-latin-400-normal-V6pRDFza.woff2) format("woff2"),url(/prof-sema/assets/jetbrains-mono-latin-400-normal-6-qcROiO.woff) format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/prof-sema/assets/jetbrains-mono-latin-500-normal-BWZEU5yA.woff2) format("woff2"),url(/prof-sema/assets/jetbrains-mono-latin-500-normal-CJOVTJB7.woff) format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/prof-sema/assets/jetbrains-mono-latin-700-normal-BYuf6tUa.woff2) format("woff2"),url(/prof-sema/assets/jetbrains-mono-latin-700-normal-D3wTyLJW.woff) format("woff")}:root{--slate-950: #0a0e1a;--slate-900: #0f1626;--slate-850: #141d31;--slate-800: #1b2740;--slate-750: #22304e;--slate-700: #2c3c5e;--slate-600: #3b4d72;--slate-500: #5a6c8f;--slate-400: #8294b5;--slate-300: #aab8d4;--slate-200: #cdd6e8;--slate-100: #e6ecf6;--white: #ffffff;--teal-700: #0f766e;--teal-600: #0d9488;--teal-500: #14b8a6;--teal-400: #2dd4bf;--teal-300: #5eead4;--teal-soft: rgba(45, 212, 191, .14);--teal-glow: rgba(45, 212, 191, .45);--indigo-600: #4f46e5;--indigo-500: #6366f1;--indigo-400: #818cf8;--indigo-300: #a5b4fc;--violet-500: #8b5cf6;--violet-400: #a78bfa;--green-500: #22c55e;--green-400: #4ade80;--green-300: #86efac;--red-600: #e11d48;--red-500: #f43f5e;--red-400: #fb7185;--amber-500: #f59e0b;--amber-400: #fbbf24;--amber-300: #fcd34d;--sky-400: #38bdf8;--bg: var(--slate-950);--bg-grad-1: #0b1020;--bg-grad-2: #0a0e1a;--surface: var(--slate-900);--surface-2: var(--slate-850);--surface-3: var(--slate-800);--surface-inset: var(--slate-950);--surface-raised: var(--slate-800);--border: rgba(255, 255, 255, .07);--border-strong: rgba(255, 255, 255, .13);--border-faint: rgba(255, 255, 255, .04);--text: var(--slate-100);--text-strong: var(--white);--text-muted: var(--slate-400);--text-subtle: var(--slate-500);--accent: var(--teal-400);--accent-strong: var(--teal-500);--accent-soft: var(--teal-soft);--accent-glow: var(--teal-glow);--ok: #22c55e;--ok-soft: rgba(34, 197, 94, .13);--bad: var(--red-500);--bad-strong: var(--red-600);--bad-soft: rgba(244, 63, 94, .13);--warn: var(--amber-400);--warn-soft: rgba(251, 191, 36, .13);--state-ready: var(--slate-400);--state-running: var(--green-400);--state-blocked: var(--red-400);--state-terminated: var(--slate-500);--font-sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--font-pixel: var(--font-sans);--text-2xs: .6875rem;--text-xs: .75rem;--text-sm: .8125rem;--text-base: .9375rem;--text-md: 1.0625rem;--text-lg: 1.25rem;--text-xl: 1.5rem;--text-2xl: 1.875rem;--text-3xl: 2.25rem;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--space-16: 64px;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 22px;--radius-pill: 999px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 16px -4px rgba(0, 0, 0, .45), 0 1px 3px rgba(0, 0, 0, .3);--shadow-lg: 0 14px 40px -12px rgba(0, 0, 0, .6), 0 4px 12px rgba(0, 0, 0, .35);--shadow-glow: 0 0 0 1px var(--accent-soft), 0 8px 28px -8px var(--accent-glow);color-scheme:dark}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;font-family:var(--font-sans);font-size:var(--text-base);background:radial-gradient(1200px 700px at 75% -10%,rgba(45,212,191,.07),transparent 60%),radial-gradient(900px 600px at 10% 110%,rgba(20,184,166,.05),transparent 55%),linear-gradient(180deg,var(--bg-grad-1) 0%,var(--bg-grad-2) 100%);background-attachment:fixed;color:var(--text);line-height:1.55;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}::selection{background:var(--accent-soft);color:var(--text-strong)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-sm)}.tnum{font-variant-numeric:tabular-nums}.level-select,.play-level{max-width:1180px;margin:0 auto;padding:var(--space-8) var(--space-5) var(--space-12)}@media (max-width: 600px){.level-select,.play-level{padding:var(--space-5) var(--space-4) var(--space-10)}}.app-header{margin-bottom:var(--space-6)}.header-top{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-3)}.app-header h1{margin:0 0 var(--space-2);font-size:clamp(1.6rem,4vw,var(--text-3xl));font-weight:800;letter-spacing:-.02em;color:var(--text-strong)}.app-header-play{display:flex;flex-direction:column;gap:var(--space-1);margin-bottom:var(--space-6)}.app-header-play .header-top{gap:var(--space-3);margin-bottom:var(--space-2)}.app-header-play h1{font-size:clamp(1.5rem,3.5vw,var(--text-2xl));margin:0}.app-eyebrow{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--text-xs);font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}.lang-select{display:inline-flex;align-items:center;gap:var(--space-2);margin-left:auto;color:var(--text-muted);font-size:var(--text-xs);font-weight:700;letter-spacing:.05em;text-transform:uppercase}.lang-select select{min-height:34px;max-width:min(54vw,190px);color:var(--text);background:var(--surface-3);border:1px solid var(--border);border-radius:var(--radius-sm);padding:var(--space-1) var(--space-3);font:inherit;font-size:var(--text-sm);letter-spacing:0;text-transform:none}.lang-select select:hover{border-color:var(--border-strong)}.subtitle{color:var(--text-muted);margin:0;font-size:var(--text-md);max-width:60ch}.app-footer{margin-top:var(--space-12);color:var(--text-subtle);font-size:var(--text-xs);text-align:center}.level-hero{display:flex;flex-direction:column;gap:var(--space-3);margin-bottom:var(--space-8)}.level-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--space-5);margin-top:var(--space-4)}.level-card{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-2);background:linear-gradient(160deg,var(--surface-2),var(--surface));border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-6);text-align:left;color:var(--text);cursor:pointer;overflow:hidden;transition:border-color .2s ease,transform .18s cubic-bezier(.34,1.56,.64,1),box-shadow .2s ease;font:inherit;box-shadow:var(--shadow-md)}.level-card:before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:linear-gradient(90deg,var(--teal-400),var(--teal-600));opacity:.7;transition:opacity .2s ease}.level-card:hover,.level-card:focus-visible{border-color:var(--border-strong);transform:translateY(-4px);box-shadow:var(--shadow-lg)}.level-card:hover:before,.level-card:focus-visible:before{opacity:1}.level-card-badge{display:inline-flex;align-items:center;gap:var(--space-1);font-size:var(--text-2xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);background:var(--accent-soft);padding:var(--space-1) var(--space-2);border-radius:var(--radius-pill)}.level-card h2{margin:var(--space-1) 0 0;font-size:var(--text-xl);font-weight:700;letter-spacing:-.01em;color:var(--text-strong)}.level-card p{margin:0;color:var(--text-muted);font-size:var(--text-base)}.level-card-meta{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-1)}.level-tag{font-size:var(--text-2xs);font-weight:600;color:var(--text-muted);background:var(--surface-3);border:1px solid var(--border);border-radius:var(--radius-pill);padding:2px var(--space-2)}.level-card-cta{margin-top:var(--space-3);font-weight:700;font-size:var(--text-base);color:var(--accent);display:inline-flex;align-items:center;gap:var(--space-1);transition:gap .2s ease}.level-card:hover .level-card-cta{gap:var(--space-2)}.play-layout{display:grid;grid-template-columns:1fr;gap:var(--space-5);align-items:start}@media (min-width: 980px){.play-layout{grid-template-columns:minmax(0,1fr) 320px}}.stage-panel{display:flex;flex-direction:column;gap:var(--space-5);background:linear-gradient(180deg,var(--surface-2),var(--surface));border:1px solid var(--border);border-radius:var(--radius-xl);padding:var(--space-6);min-width:0;box-shadow:var(--shadow-md)}@media (max-width: 600px){.stage-panel{padding:var(--space-4);gap:var(--space-4)}}.btn{--btn-bg: var(--surface-3);--btn-border: var(--border-strong);background:var(--btn-bg);color:var(--text);border:1px solid var(--btn-border);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-4);font-size:var(--text-base);font-weight:600;font-family:inherit;cursor:pointer;display:inline-flex;align-items:center;gap:var(--space-2);min-height:40px;transition:background .15s ease,border-color .15s ease,transform .1s ease;touch-action:manipulation}.btn:hover:not(:disabled){background:var(--surface-raised);border-color:var(--border-strong)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.42;cursor:not-allowed}.btn-primary{--btn-bg: linear-gradient(180deg, var(--teal-400), var(--teal-500));--btn-border: transparent;color:#06302b;font-weight:700;box-shadow:0 6px 18px -8px var(--accent-glow)}.btn-primary:hover:not(:disabled){--btn-bg: linear-gradient(180deg, var(--teal-300), var(--teal-400));filter:brightness(1.04)}.btn-link{background:transparent;border:none;color:var(--text-muted);padding:var(--space-1) var(--space-2);font-size:var(--text-base);font-weight:600;min-height:0}.btn-link:hover{color:var(--text-strong);background:transparent}.btn-back{background:var(--surface-3);border:1px solid var(--border);color:var(--text-muted);padding:var(--space-1) var(--space-3);border-radius:var(--radius-pill);font-size:var(--text-sm);font-weight:600;min-height:34px}.btn-back:hover{color:var(--text-strong);border-color:var(--border-strong);background:var(--surface-raised)}.challenge-banner{position:relative;display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-4) var(--space-5);background:linear-gradient(135deg,#2dd4bf1f,#14b8a60f),var(--surface-2);border:1px solid rgba(45,212,191,.22);border-radius:var(--radius-lg);overflow:hidden}.challenge-banner:after{content:"";position:absolute;top:-40%;right:-10%;width:240px;height:240px;background:radial-gradient(circle,var(--accent-glow),transparent 70%);opacity:.25;pointer-events:none}.challenge-head{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-3)}.challenge-badge{flex-shrink:0;display:inline-flex;align-items:center;gap:var(--space-1);font-size:var(--text-2xs);font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#06302b;background:linear-gradient(180deg,var(--teal-400),var(--teal-500));border-radius:var(--radius-pill);padding:var(--space-1) var(--space-3);box-shadow:0 4px 12px -4px var(--accent-glow)}.challenge-title-text{flex:1 1 220px;min-width:0;font-size:var(--text-md);font-weight:700;color:var(--text-strong)}.challenge-banner p{margin:0;font-size:var(--text-base);color:var(--text);position:relative;z-index:1}.challenge-intro{color:var(--text-muted);font-size:var(--text-sm);border-top:1px solid var(--border);margin-top:var(--space-1);padding-top:var(--space-3)}.challenge-intro strong{color:var(--text)}.result-banner{display:flex;flex-direction:column;gap:var(--space-1);border-radius:var(--radius-md);padding:var(--space-4) var(--space-5);font-size:var(--text-base);border:1px solid var(--border)}.result-banner-head{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-md);font-weight:700;color:var(--text-strong)}.result-banner-head svg{width:22px;height:22px}.result-ok{border-color:color-mix(in srgb,var(--ok) 45%,transparent);background:var(--ok-soft)}.result-ok .result-banner-head svg{color:var(--ok)}.result-bad{border-color:color-mix(in srgb,var(--bad) 50%,transparent);background:var(--bad-soft)}.result-bad .result-banner-head svg{color:var(--bad)}.result-banner .tnum{font-family:var(--font-mono);font-weight:700}.challenge-result{margin:var(--space-1) 0 0;font-size:var(--text-sm);color:var(--text-muted)}.step-controls{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3);padding-top:var(--space-4);border-top:1px solid var(--border)}.step-history{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--text-muted)}.step-history-label{font-weight:600;color:var(--text-subtle);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.05em}.step-history-track{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-1)}.step-history-empty{font-style:italic;color:var(--text-subtle)}.step-history-chip{--chip-color: var(--accent);display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:26px;padding:0 var(--space-2);border-radius:var(--radius-sm);background:color-mix(in srgb,var(--chip-color) 20%,var(--surface-3));border:1px solid color-mix(in srgb,var(--chip-color) 50%,transparent);color:var(--chip-color);font-weight:800;font-size:var(--text-xs);font-family:var(--font-mono)}.concept-card{display:flex;flex-direction:column;gap:var(--space-3);background:linear-gradient(180deg,var(--surface-2),var(--surface));border:1px solid var(--border);border-radius:var(--radius-xl);padding:var(--space-5);box-shadow:var(--shadow-md)}@media (min-width: 980px){.concept-card{position:sticky;top:var(--space-4)}}.concept-card-eyebrow{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--text-2xs);font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}.concept-card-eyebrow svg{width:14px;height:14px}.concept-card h2{margin:0;font-size:var(--text-lg);font-weight:700;letter-spacing:-.01em;color:var(--text-strong)}.concept-card p{color:var(--text-muted);font-size:var(--text-base);margin:0;line-height:1.6}.concept-card .concept-lede{color:var(--text)}.concept-divider{height:1px;background:var(--border);margin:var(--space-1) 0}.concept-keypoints{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.concept-keypoints li{display:flex;align-items:flex-start;gap:var(--space-2);font-size:var(--text-sm);color:var(--text-muted);line-height:1.5}.concept-keypoints li svg{width:16px;height:16px;flex-shrink:0;margin-top:2px;color:var(--accent)}.concept-keypoints strong{color:var(--text);font-weight:600}.ostep-ref{margin-top:var(--space-1)}.ostep-ref a{display:inline-flex;align-items:center;gap:var(--space-2);color:var(--accent);text-decoration:none;font-weight:600;font-size:var(--text-sm);padding:var(--space-2) var(--space-3);background:var(--accent-soft);border:1px solid color-mix(in srgb,var(--accent) 30%,transparent);border-radius:var(--radius-sm);transition:border-color .15s ease,background .15s ease}.ostep-ref a:hover{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 20%,transparent)}.ostep-ref a svg{width:15px;height:15px}@media (max-width: 600px){.step-controls{flex-direction:column;align-items:stretch}.step-controls .btn{width:100%;justify-content:center}}.live-state{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-4)}@media (min-width: 760px){.live-state{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);align-items:start}}.thread-row{display:flex;flex-direction:column;gap:var(--space-3);min-width:0}.thread-box{--tc: var(--accent);position:relative;display:flex;flex-direction:column;gap:var(--space-3);width:100%;text-align:left;font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-left:3px solid color-mix(in srgb,var(--tc) 70%,transparent);border-radius:var(--radius-lg);padding:var(--space-4);cursor:pointer;transition:border-color .2s ease,box-shadow .22s ease,transform .16s ease,opacity .2s ease;touch-action:manipulation}.thread-box:hover:not(:disabled){border-color:color-mix(in srgb,var(--tc) 45%,var(--border-strong));transform:translateY(-2px)}.thread-box:disabled{cursor:default}.thread-box.is-active{border-color:color-mix(in srgb,var(--tc) 65%,transparent);box-shadow:0 0 0 1px color-mix(in srgb,var(--tc) 45%,transparent),0 12px 30px -14px color-mix(in srgb,var(--tc) 75%,transparent)}.thread-box.role-done{opacity:.6}.thread-box.role-blocked{border-left-color:var(--state-blocked)}.thread-box.role-holds-lock{border-left-color:var(--ok)}.tb-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.tb-avatar{display:grid;place-items:center;min-width:38px;height:38px;padding:0 var(--space-2);border-radius:var(--radius-sm);background:color-mix(in srgb,var(--tc) 22%,var(--surface-3));border:1px solid color-mix(in srgb,var(--tc) 55%,transparent);font-weight:800;font-size:var(--text-sm);color:var(--white);font-family:var(--font-mono)}.tb-state{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--text-xs);font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted)}.tb-icon{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px}.tb-icon svg{width:18px;height:18px}.role-holds-lock .tb-icon,.role-holds-lock .tb-word{color:var(--ok)}.role-blocked .tb-icon,.role-blocked .tb-word{color:var(--state-blocked)}.role-done .tb-icon{color:var(--text-subtle)}.role-active .tb-word{color:var(--tc)}.tb-pulse-wrap{position:relative;display:inline-flex;width:16px;height:16px;align-items:center;justify-content:center}.tb-dot{width:9px;height:9px;border-radius:50%;background:var(--tc);z-index:1}.tb-pulse{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;background:color-mix(in srgb,var(--tc) 55%,transparent)}.tb-ring{width:13px;height:13px;border-radius:50%;border:2px solid var(--slate-500)}.tb-slot-row{display:flex;align-items:center;gap:var(--space-2)}.tb-slot-label{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-subtle);text-transform:uppercase;letter-spacing:.06em}.tb-slot{display:inline-grid;place-items:center;min-width:46px;height:36px;padding:0 var(--space-2);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:var(--text-md);font-weight:800;font-variant-numeric:tabular-nums;background:var(--surface-inset);border:1px dashed var(--border-strong)}.tb-slot.is-filled{color:var(--tc);border-style:solid;border-color:color-mix(in srgb,var(--tc) 55%,transparent);background:color-mix(in srgb,var(--tc) 12%,var(--surface-inset))}.tb-slot.is-empty{color:var(--text-subtle);font-weight:500}.shared-state{display:flex;flex-direction:column;gap:var(--space-3);min-width:0}.ss-counter{position:relative;display:flex;flex-direction:column;align-items:center;gap:var(--space-1);background:radial-gradient(120px 120px at 50% 0%,var(--accent-soft),transparent 70%),linear-gradient(180deg,var(--surface-2),var(--surface));border:1px solid var(--border-strong);border-radius:var(--radius-lg);padding:var(--space-4);text-align:center;transition:border-color .25s ease}.ss-counter.is-clobbered{border-color:var(--bad)}.ss-counter.is-correct{border-color:color-mix(in srgb,var(--ok) 55%,transparent)}.ss-label{font-size:var(--text-2xs);font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);font-family:var(--font-mono)}.ss-counter-value-wrap{position:relative;display:flex;align-items:center;justify-content:center;height:64px}.ss-counter-value{font-family:var(--font-mono);font-size:clamp(2.6rem,9vw,3.6rem);font-weight:800;line-height:1;color:var(--text-strong);letter-spacing:-.03em}.ss-lost{position:absolute;top:-2px;right:-6px;display:inline-flex;align-items:center;gap:3px;padding:2px var(--space-2);background:var(--bad-strong);color:var(--white);font-size:var(--text-2xs);font-weight:800;border-radius:var(--radius-pill);text-transform:uppercase;opacity:0}.ss-expected{font-size:var(--text-xs);color:var(--text-muted)}.ss-expected .exp{font-family:var(--font-mono);font-weight:700;color:var(--text)}.ss-mutex{display:flex;flex-direction:column;gap:var(--space-2);background:linear-gradient(180deg,var(--surface-2),var(--surface));border:1px solid var(--border-strong);border-radius:var(--radius-lg);padding:var(--space-4)}.ss-mutex-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.ss-lock{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);font-weight:700}.ss-lock-icon{display:inline-flex;width:24px;height:24px}.ss-lock-icon svg{width:22px;height:22px}.ss-lock.free{color:var(--ok)}.ss-lock.held{color:var(--bad)}.ss-mutex-row{display:flex;align-items:center;gap:var(--space-3);font-size:var(--text-xs)}.ss-row-label{min-width:46px;text-transform:uppercase;letter-spacing:.06em;font-size:var(--text-2xs);color:var(--text-subtle);font-family:var(--font-mono)}.ss-none{font-style:italic;color:var(--text-subtle)}.ss-queue{display:inline-flex;flex-wrap:wrap;gap:var(--space-1)}.ss-pill{--tp: var(--accent);display:inline-flex;align-items:center;font-family:var(--font-mono);font-size:var(--text-2xs);font-weight:800;color:var(--white);background:var(--tp);border-radius:var(--radius-pill);padding:3px var(--space-2)}.ss-pill.is-next{box-shadow:0 0 0 2px color-mix(in srgb,var(--tp) 45%,transparent)}.ss-sem{transition:border-color .25s ease}.ss-sem.is-overflowed{border-color:var(--bad)}.ss-sem-count{display:inline-flex;align-items:baseline;gap:var(--space-1);font-weight:800}.ss-sem-count-value{font-family:var(--font-mono);font-size:1.5rem;line-height:1;color:var(--text-strong)}.ss-sem-count-cap{font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted)}.ss-sem-count.free{color:var(--ok)}.ss-sem-count.taken,.ss-sem-count.over{color:var(--bad)}.ss-sem-permits{display:inline-flex;align-items:center;gap:var(--space-1)}.ss-permit{width:12px;height:12px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 2px color-mix(in srgb,var(--ok) 30%,transparent)}.ss-sem.is-overflowed .ss-permit{background:var(--bad);box-shadow:0 0 0 2px color-mix(in srgb,var(--bad) 30%,transparent)}.ss-buf-count{font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--text-muted)}.ss-buf-slots{display:flex;gap:var(--space-1)}.buf-slot{width:22px;height:22px;border-radius:6px;border:1px solid var(--border-strong);background:transparent}.buf-slot.is-full{background:var(--accent)}.buf-slot.is-empty{background:transparent}.buf-slot.is-over{background:var(--bad);border-color:var(--bad)}.ss-rw{transition:border-color .25s ease}.ss-rw-count{display:inline-flex;align-items:baseline;gap:var(--space-1);font-weight:800}.ss-rw-count-value{font-family:var(--font-mono);font-size:1.5rem;line-height:1;color:var(--text-strong)}.ss-rw-count-cap{font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted)}.ss-rw-mode,.ss-rw-resource,.ss-rw-writer{display:inline-flex;align-items:center;min-height:22px;border-radius:var(--radius-pill);padding:3px var(--space-2);font-size:var(--text-xs);font-weight:750}.ss-rw-mode.shared{color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,transparent)}.ss-rw-mode.exclusive{color:var(--bad);background:color-mix(in srgb,var(--bad) 12%,transparent)}.ss-rw-mode.idle,.ss-rw-resource.free,.ss-rw-writer{color:var(--text-muted);background:color-mix(in srgb,var(--panel-2) 70%,transparent)}.ss-rw-resource.held,.ss-rw-writer.waiting{color:var(--warn);background:color-mix(in srgb,var(--warn) 14%,transparent)}.dp-table{gap:var(--space-3)}.dp-cycle-state{display:inline-flex;align-items:center;min-height:22px;border-radius:var(--radius-pill);padding:3px var(--space-2);font-size:var(--text-xs);font-weight:800}.dp-cycle-state.ok{color:var(--ok);background:color-mix(in srgb,var(--ok) 12%,transparent)}.dp-cycle-state.bad{color:var(--bad);background:color-mix(in srgb,var(--bad) 13%,transparent)}.dp-board{position:relative;width:min(100%,390px);aspect-ratio:1;margin:0 auto}.dp-center{position:absolute;left:50%;top:50%;width:34%;height:34%;transform:translate(-50%,-50%);border-radius:50%;display:grid;place-items:center;align-content:center;gap:2px;border:1px solid var(--border);background:radial-gradient(circle at 50% 45%,color-mix(in srgb,var(--surface-3) 85%,transparent),transparent 72%),var(--surface-2);color:var(--text-muted)}.dp-center span{font-family:var(--font-mono);font-size:1.35rem;font-weight:850;color:var(--text-strong)}.dp-center small{font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:.08em}.dp-phil,.dp-fork{position:absolute;transform:translate(-50%,-50%);display:grid;place-items:center;text-align:center}.dp-phil{width:62px;min-height:48px;border-radius:8px;border:1px solid color-mix(in srgb,var(--tp) 48%,var(--border));background:color-mix(in srgb,var(--tp) 14%,var(--surface-2));color:var(--text-strong);padding:var(--space-1)}.dp-phil.is-waiting{border-style:dashed}.dp-phil.is-cycle{border-color:var(--bad);background:color-mix(in srgb,var(--bad) 15%,var(--surface-2))}.dp-phil-label{font-family:var(--font-mono);font-size:var(--text-sm);font-weight:850}.dp-phil-meta{font-size:var(--text-2xs);color:var(--text-muted)}.dp-fork{width:46px;min-height:36px;border-radius:7px;border:1px solid var(--border);background:var(--surface-3);color:var(--text-muted);padding:3px}.dp-fork.is-held{color:var(--ok);border-color:color-mix(in srgb,var(--ok) 45%,var(--border));background:color-mix(in srgb,var(--ok) 10%,var(--surface-3))}.dp-fork.is-waited{color:var(--bad);border-color:color-mix(in srgb,var(--bad) 55%,var(--border));background:color-mix(in srgb,var(--bad) 12%,var(--surface-3))}.dp-fork-label,.dp-fork-owner{display:block;line-height:1.1}.dp-fork-label{font-family:var(--font-mono);font-size:var(--text-xs);font-weight:850}.dp-fork-owner{margin-top:2px;max-width:100%;overflow:hidden;text-overflow:ellipsis;font-size:.58rem;text-transform:uppercase;letter-spacing:.04em}.dp-side-badges{position:absolute;left:50%;bottom:-18px;transform:translate(-50%);display:flex;gap:3px;pointer-events:none}.dp-side{display:inline-flex;align-items:center;min-height:16px;padding:1px 4px;border-radius:var(--radius-sm);border:1px solid color-mix(in srgb,var(--accent) 38%,var(--border));background:color-mix(in srgb,var(--surface-3) 88%,transparent);color:var(--text);font-family:var(--font-mono);font-size:.55rem;font-weight:850;line-height:1;white-space:nowrap}.dp-side-left{color:var(--sky-400)}.dp-side-right{color:var(--amber-300)}@media (max-width: 520px){.dp-board{width:min(100%,310px)}.dp-phil{width:50px;min-height:42px}.dp-fork{width:38px;min-height:32px}.dp-side-badges{bottom:-16px}.dp-side{font-size:.5rem;padding-inline:3px}}.scheduler-widget{--scheduler-color: var(--accent);display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border:1px solid var(--border);border-radius:var(--radius-md);background:linear-gradient(180deg,var(--surface-3),var(--surface-2))}.scheduler-icon{display:grid;place-items:center;width:30px;height:30px;border-radius:var(--radius-sm);color:var(--scheduler-color);background:color-mix(in srgb,var(--scheduler-color) 14%,transparent)}.scheduler-copy{display:flex;flex-direction:column;gap:2px;min-width:0}.scheduler-label{color:var(--text-strong);font-size:var(--text-sm);font-weight:800;text-transform:uppercase;letter-spacing:.06em}.scheduler-cue{color:var(--text-muted);font-size:var(--text-sm);line-height:1.35}.scheduler-race .scheduler-cue,.scheduler-deadlock .scheduler-cue{color:var(--warn)}.scheduler-thread{display:inline-flex;align-items:center;justify-content:center;min-width:42px;min-height:30px;padding:0 var(--space-2);border-radius:var(--radius-sm);color:var(--white);background:color-mix(in srgb,var(--scheduler-color) 70%,var(--surface-3));font-family:var(--font-mono);font-size:var(--text-sm);font-weight:850}.op-palette{--active-color: var(--accent);display:flex;flex-direction:column;gap:var(--space-3);padding-top:var(--space-2)}.op-prompt{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2);font-size:var(--text-md);font-weight:700;color:var(--text-strong)}.op-prompt-dot{width:9px;height:9px;border-radius:50%;background:var(--active-color);box-shadow:0 0 0 4px color-mix(in srgb,var(--active-color) 22%,transparent);animation:prompt-pulse 1.8s ease-in-out infinite}.op-prompt-hint{font-size:var(--text-xs);font-weight:500;color:var(--text-subtle);letter-spacing:.01em}.op-library{display:flex;flex-direction:column;gap:var(--space-3)}.op-cat-tabs{display:flex;flex-wrap:wrap;gap:var(--space-2)}.op-cat-tab{display:inline-flex;align-items:center;gap:var(--space-2);min-height:44px;padding:var(--space-2) var(--space-4);background:var(--surface-2);border:1.5px solid var(--border);border-radius:var(--radius-md);color:var(--text-muted);cursor:pointer;font:inherit;font-size:var(--text-sm);font-weight:700;text-transform:uppercase;letter-spacing:.06em;transition:border-color .15s ease,background .15s ease,color .15s ease;touch-action:manipulation}.op-cat-tab:hover{border-color:var(--border-strong);color:var(--text-strong);background:var(--surface-3)}.op-cat-tab:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.op-cat-tab.is-open{border-color:var(--active-color);color:var(--text-strong);background:color-mix(in srgb,var(--active-color) 10%,var(--surface-2));box-shadow:0 0 0 1px color-mix(in srgb,var(--active-color) 25%,transparent)}.op-category-panel,.op-category{border:1px solid var(--border);border-radius:var(--radius-md);background:color-mix(in srgb,var(--surface-2) 86%,transparent);overflow:visible}.op-category-summary{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) var(--space-4);color:var(--text-strong);cursor:pointer;font-size:var(--text-sm);font-weight:800;text-transform:uppercase;letter-spacing:.06em}.op-category-count{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:22px;border-radius:var(--radius-pill);color:var(--text-muted);background:var(--surface-3);font-family:var(--font-mono);font-size:var(--text-2xs)}.op-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:var(--space-3);padding:0 var(--space-4) var(--space-4)}.op-btn{--active-color: var(--accent);display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);min-height:56px;padding:var(--space-3) var(--space-4);background:linear-gradient(180deg,var(--surface-3),var(--surface-2));border:1.5px solid var(--border-strong);border-radius:var(--radius-md);color:var(--text);cursor:pointer;font:inherit;text-align:left;transition:transform .14s cubic-bezier(.34,1.56,.64,1),border-color .16s ease,box-shadow .18s ease,background .16s ease;touch-action:manipulation}.op-btn:hover:not(:disabled),.op-btn:focus-visible:not(:disabled){transform:translateY(-3px);border-color:var(--active-color);box-shadow:0 12px 26px -14px color-mix(in srgb,var(--active-color) 80%,transparent)}.op-btn:active:not(:disabled){transform:translateY(-1px) scale(.99)}.op-btn:disabled{opacity:.5;cursor:not-allowed}.op-btn.is-unavailable{opacity:.58;border-style:dashed;filter:saturate(.7)}.op-btn.is-unavailable:hover:not(:disabled),.op-btn.is-unavailable:focus-visible:not(:disabled){transform:none;border-color:var(--border-strong);box-shadow:none}.op-main{display:inline-flex;align-items:center;gap:var(--space-2);min-width:0}.op-code{font-family:var(--font-mono);font-size:var(--text-base);font-weight:600;color:var(--text);overflow-wrap:anywhere}.op-side{flex-shrink:0;border-radius:var(--radius-sm);border:1px solid var(--border);padding:1px 5px;font-family:var(--font-mono);font-size:var(--text-2xs);font-weight:900}.op-side-left{color:var(--sky-400)}.op-side-right{color:var(--amber-300)}.op-info{position:relative;flex-shrink:0;display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;border:1px solid var(--border-strong);color:var(--text-muted);background:var(--surface);font-family:var(--font-mono);font-size:var(--text-xs);font-weight:900}.op-info:hover,.op-info:focus-visible{color:var(--text-strong);border-color:var(--accent)}.op-tooltip{position:absolute;right:0;bottom:calc(100% + 8px);z-index:20;width:min(280px,68vw);padding:var(--space-3);border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--surface-3);color:var(--text);box-shadow:var(--shadow-lg);font-family:var(--font-sans);font-size:var(--text-sm);font-weight:500;line-height:1.4;text-transform:none;letter-spacing:0;opacity:0;transform:translateY(4px);pointer-events:none;transition:opacity .15s ease,transform .15s ease}.op-info:hover .op-tooltip,.op-info:focus-visible .op-tooltip{opacity:1;transform:translateY(0)}.op-empty{margin:0;padding:var(--space-3);color:var(--text-muted);background:var(--surface-3);border:1px dashed var(--border-strong);border-radius:var(--radius-md)}.op-flat-library{display:flex;flex-direction:column;gap:var(--space-4)}.op-group{display:flex;flex-direction:column;gap:var(--space-2)}.op-group-label{font-size:var(--text-2xs);font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--text-subtle);padding-left:var(--space-1)}@media (max-width: 420px){.op-flat-library .op-grid{grid-template-columns:1fr}}.verdict-bar{display:flex;align-items:flex-start;gap:var(--space-4);flex-wrap:wrap;padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface-3);visibility:hidden;opacity:0}.verdict-bar-ok{border-color:color-mix(in srgb,var(--ok) 40%,transparent);background:var(--ok-soft)}.verdict-bar-warn{border-color:color-mix(in srgb,var(--warn) 50%,transparent);background:var(--warn-soft)}.verdict-bar-bad{border-color:color-mix(in srgb,var(--bad) 50%,transparent);background:var(--bad-soft)}.verdict-bar-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.verdict-bar-headline{margin:0;font-size:var(--text-base);font-weight:800;color:var(--text-strong)}.verdict-bar-why{margin:var(--space-1) 0 0;font-size:var(--text-sm);color:var(--text-muted);line-height:1.5}.verdict-bar-actions{display:flex;align-items:center;gap:var(--space-2);flex-shrink:0;flex-wrap:wrap}.verdict-bar-next{border-color:var(--accent);color:var(--accent)}.verdict-bar-next:hover{background:var(--accent-soft);border-color:var(--accent-strong)}@media (max-width: 600px){.verdict-bar{flex-direction:column;gap:var(--space-3)}.verdict-bar-actions{width:100%}.verdict-bar-next{flex:1;justify-content:center}}.play-level-title{font-family:var(--font-pixel)!important;font-size:clamp(1.4rem,3.5vw,var(--text-2xl))!important;letter-spacing:-.01em!important;font-weight:800!important;color:var(--text-strong)!important}.verdict{display:flex;align-items:flex-start;gap:var(--space-3);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);border:1px solid var(--border);background:var(--surface-3)}.verdict-icon{flex-shrink:0;width:24px;height:24px;margin-top:1px}.verdict-icon svg{width:24px;height:24px}.verdict-body{display:flex;flex-direction:column;gap:3px;flex:1;min-width:0}.verdict-headline{margin:0;font-weight:800;font-size:var(--text-base);color:var(--text-strong)}.verdict-detail{margin:0;font-size:var(--text-sm);color:var(--text);line-height:1.5}.verdict-why{margin:var(--space-1) 0 0;font-size:var(--text-sm);color:var(--text-muted);line-height:1.5;display:flex;flex-direction:column;gap:2px}.verdict-why-tag{font-size:var(--text-2xs);font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--warn)}.verdict-undo{flex-shrink:0;display:inline-flex;align-items:center;gap:var(--space-1);background:var(--surface-inset);border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--text);font:inherit;font-size:var(--text-sm);font-weight:700;padding:var(--space-1) var(--space-3);min-height:34px;cursor:pointer;transition:border-color .15s ease,background .15s ease}.verdict-undo:hover{border-color:var(--border-strong);background:var(--surface-raised)}.verdict-ok{border-color:color-mix(in srgb,var(--ok) 40%,transparent);background:var(--ok-soft)}.verdict-ok .verdict-icon{color:var(--ok)}.verdict-warn{border-color:color-mix(in srgb,var(--warn) 50%,transparent);background:var(--warn-soft)}.verdict-warn .verdict-icon{color:var(--warn)}.verdict-bad{border-color:color-mix(in srgb,var(--bad) 50%,transparent);background:var(--bad-soft)}.verdict-bad .verdict-icon{color:var(--bad)}.hint{display:flex;align-items:flex-start;gap:var(--space-3);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);border:1px solid color-mix(in srgb,var(--warn) 45%,transparent);background:var(--warn-soft)}.hint-icon{flex-shrink:0;color:var(--warn);margin-top:2px}.hint p{margin:0;font-size:var(--text-sm);color:var(--text);line-height:1.5}.hint strong{color:var(--text-strong)}.failure{display:flex;align-items:center;gap:var(--space-4);flex-wrap:wrap;border-radius:var(--radius-lg);padding:var(--space-4) var(--space-5);border:1px solid color-mix(in srgb,var(--bad) 55%,transparent);background:linear-gradient(180deg,rgba(244,63,94,.12),var(--surface));box-shadow:0 12px 34px -16px var(--bad)}.fail-icon{flex-shrink:0;width:34px;height:34px;color:var(--bad)}.fail-icon svg{width:34px;height:34px}.fail-body{flex:1;min-width:200px}.fail-title{margin:0 0 2px;font-weight:800;font-size:var(--text-md);color:var(--text-strong)}.fail-message{margin:0;font-size:var(--text-sm);color:var(--text-muted);line-height:1.5}.fail-actions{display:flex;gap:var(--space-2);flex-wrap:wrap}.step-buttons{display:flex;gap:var(--space-2)}.move-chip{--chip-color: var(--accent);display:inline-flex;align-items:center;gap:var(--space-1);height:26px;padding:0 var(--space-2);border-radius:var(--radius-sm);background:color-mix(in srgb,var(--chip-color) 14%,var(--surface-3));border:1px solid color-mix(in srgb,var(--chip-color) 40%,transparent);font-size:var(--text-2xs)}.move-chip code{font-family:var(--font-mono);color:var(--text-muted)}.move-chip-thread{font-family:var(--font-mono);font-weight:800;color:var(--chip-color)}.move-chip.is-trap{border-color:color-mix(in srgb,var(--bad) 45%,transparent);background:var(--bad-soft)}.move-chip.is-trap code{color:color-mix(in srgb,var(--bad) 30%,var(--text))}@media (max-width: 600px){.step-buttons{width:100%}.step-buttons .btn{flex:1;justify-content:center}}@media (max-width: 640px){.live-state{grid-template-columns:minmax(0,1fr);gap:var(--space-3)}.thread-row{flex-direction:column;gap:var(--space-2)}.thread-box{width:100%;flex-direction:row;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);min-height:50px}.tb-head{flex:1 1 auto;justify-content:flex-start;gap:var(--space-2)}.tb-avatar{min-width:32px;height:32px;font-size:var(--text-sm)}.tb-slot-row{flex-shrink:0}.shared-state{display:grid;grid-template-columns:repeat(auto-fit,minmax(138px,1fr));gap:var(--space-2);align-items:start}.shared-state .ss-mutex-head{flex-wrap:wrap;gap:var(--space-1)}.shared-state .ss-sem-count,.shared-state .ss-lock{flex-shrink:0}.ss-counter{padding:var(--space-3) var(--space-4)}.ss-counter-value-wrap{height:56px}.ss-counter-value{font-size:clamp(2.2rem,12vw,3rem)}.ss-mutex,.ss-sem,.ss-buf,.ss-rw{padding:var(--space-2) var(--space-3)}.dp-table{padding:var(--space-2) var(--space-3);min-width:200px;max-width:240px}.dp-board{width:min(100%,200px)}.challenge-intro{display:none}.scheduler-widget{padding:var(--space-2) var(--space-3);gap:var(--space-2)}.scheduler-icon{width:24px;height:24px}.scheduler-label{font-size:var(--text-2xs)}.scheduler-cue{font-size:var(--text-xs)}.scheduler-thread{min-width:34px;min-height:24px;font-size:var(--text-xs)}}.level-path-page{display:flex;flex-direction:column;align-items:center;min-height:100dvh;padding:var(--space-6) var(--space-4) var(--space-12)}.level-path-header{width:100%;max-width:500px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-3);margin-bottom:var(--space-8)}.level-path-eyebrow{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--text-xs);font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}.level-path-title{font-family:var(--font-pixel);font-size:var(--text-xl);font-weight:700;color:var(--text-strong);margin:0;line-height:1.2}.level-path-canvas{position:relative;width:100%;max-width:500px;aspect-ratio:500 / 720}.level-path-svg{display:block;width:100%;height:auto;overflow:visible}.lp-node-btn{position:absolute;display:flex;align-items:center;gap:10px;background:none;border:none;padding:0;cursor:pointer;font:inherit;color:inherit;touch-action:manipulation}.lp-node-btn:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:var(--radius-sm)}.lp-node-btn.lp-reversed{flex-direction:row-reverse}.lp-node-btn.lp-branch{flex-direction:column;gap:5px;text-align:center}.lp-circle{flex:none;width:46px;height:46px;border-radius:50%;border:2.5px solid var(--accent);background:var(--surface-2);display:flex;align-items:center;justify-content:center;font-family:var(--font-pixel);font-size:20px;font-weight:700;color:var(--accent);transition:transform .16s cubic-bezier(.34,1.6,.5,1);position:relative;z-index:1}.lp-node-btn:hover .lp-circle,.lp-node-btn:focus-visible .lp-circle{transform:scale(1.13)}.lp-node-btn.lp-start .lp-circle{background:var(--accent);color:#06302b}.lp-label{min-width:0}.lp-label-title{display:block;font-family:var(--font-pixel);font-size:13px;font-weight:600;line-height:1.2;color:var(--text-strong);white-space:nowrap}.lp-label-sub{display:block;font-size:var(--text-2xs);color:var(--text-muted);margin-top:2px;white-space:nowrap}.lp-node-btn.lp-reversed .lp-label{text-align:right}.lp-node-btn.lp-branch .lp-label{text-align:center}.lp-branch-tag{position:absolute;font-family:var(--font-pixel);font-size:10px;font-weight:500;color:#8ff0e3;background:#2dd4bf29;border:1px solid var(--accent);border-radius:var(--radius-pill);padding:2px 10px;white-space:nowrap;pointer-events:none;transform:translate(-50%,-50%)}.lp-merge-label{position:absolute;font-size:var(--text-2xs);color:var(--text-subtle);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-pill);padding:1px 9px;white-space:nowrap;pointer-events:none;transform:translate(-50%,-50%)}.lp-expand-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--teal-600);z-index:100;pointer-events:none;transform:scale(0)}@media (max-width: 560px){.level-path-page{padding:var(--space-4) var(--space-3) var(--space-10)}.lp-label-title{font-size:11.5px}.lp-circle{width:44px;height:44px;font-size:18px}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}.decision-prompt .prompt-dot,.op-prompt-dot{animation:none}}.play-console{display:flex;flex-direction:column;gap:var(--space-4);align-items:stretch}.console-pane{display:flex;flex-direction:column;gap:var(--space-4);min-width:0;background:linear-gradient(180deg,var(--surface-2),var(--surface));border:1px solid var(--border);border-radius:var(--radius-xl);padding:var(--space-5);box-shadow:var(--shadow-md)}.console-pane-head{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}.console-pane-tag{display:inline-flex;align-items:center;gap:var(--space-2);flex-shrink:0;font-family:var(--font-pixel);font-size:1.05rem;font-weight:700;letter-spacing:.01em;color:var(--accent)}.console-pane-tag:before{content:"";width:9px;height:9px;border-radius:3px;background:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.goal-chip{display:inline-flex;align-items:center;gap:var(--space-2);margin-left:auto;max-width:100%;padding:var(--space-1) var(--space-3);border-radius:var(--radius-pill);background:var(--accent-soft);border:1px solid color-mix(in srgb,var(--accent) 26%,transparent);color:var(--text);font-size:var(--text-sm);font-weight:600;line-height:1.35}.goal-chip svg{flex-shrink:0;color:var(--accent)}.console-pane-body{display:flex;flex-direction:column;gap:var(--space-4);flex:1 1 auto;min-height:0}.console-state .live-state{display:flex;flex-direction:column;gap:var(--space-4)}.console-ops .step-controls{margin-top:auto}@media (min-width: 880px){.play-console{flex-direction:row;align-items:stretch}.console-state{flex:1 1 42%}.console-ops{flex:1 1 58%}}@media (max-width: 600px){.console-pane{padding:var(--space-4);gap:var(--space-3)}}.app-header-play .concept-toggle{margin-left:auto;display:inline-flex;align-items:center;gap:var(--space-2);min-height:34px;padding:var(--space-1) var(--space-3);background:var(--surface-3);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-muted);font:inherit;font-size:var(--text-sm);font-weight:600;cursor:pointer;transition:border-color .15s ease,color .15s ease,background .15s ease}.app-header-play .concept-toggle:hover{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 40%,var(--border))}.app-header-play .concept-toggle svg{color:var(--accent)}.app-header-play .lang-select{margin-left:0}.concept-sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;display:flex;align-items:flex-end;justify-content:center;background:#0508109e;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:sheet-fade .2s ease}.concept-sheet{position:relative;width:100%;max-width:560px;max-height:88dvh;overflow-y:auto;padding:var(--space-6) var(--space-5) var(--space-5);background:linear-gradient(180deg,var(--surface-2),var(--surface));border:1px solid var(--border-strong);border-radius:var(--radius-xl) var(--radius-xl) 0 0;box-shadow:var(--shadow-lg);animation:sheet-rise .26s cubic-bezier(.34,1.4,.5,1)}.concept-sheet-close{position:absolute;top:var(--space-3);right:var(--space-3);z-index:1;display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--surface-3);border:1px solid var(--border);color:var(--text-muted);cursor:pointer;transition:color .15s ease,border-color .15s ease}.concept-sheet-close:hover{color:var(--text-strong);border-color:var(--border-strong)}.concept-sheet .concept-card{border:none;background:none;box-shadow:none;padding:0}@media (min-width: 880px){.concept-sheet-backdrop{align-items:center}.concept-sheet{border-radius:var(--radius-xl)}}@keyframes sheet-rise{0%{transform:translateY(26px);opacity:0}to{transform:none;opacity:1}}@keyframes sheet-fade{0%{opacity:0}to{opacity:1}}.op-flat-library .op-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:var(--space-2);padding:0}@media (max-width: 420px){.op-flat-library .op-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.op-flat-library .op-btn{min-height:46px;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm)}.op-flat-library .op-code{font-size:var(--text-sm)}.op-flat-library .op-info{width:20px;height:20px}.op-palette .op-prompt{font-size:var(--text-base)}.tb-state,.tb-slot-label{font-size:var(--text-sm)}.ss-label,.ss-row-label{font-size:var(--text-xs)}.ss-mutex-row{font-size:var(--text-sm)}.concept-sheet .concept-card h2{font-size:var(--text-xl)}.concept-sheet .concept-lede{font-size:var(--text-md);line-height:1.6}.concept-sheet .concept-keypoints li{font-size:var(--text-base);line-height:1.55}.concept-sheet .ostep-ref a{font-size:var(--text-base)}.lp-label-sub{font-size:var(--text-xs)}@media (max-width: 879px){.play-console-page{height:100dvh;max-height:100dvh;overflow:hidden;display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-3) var(--space-4) calc(var(--space-3) + env(safe-area-inset-bottom,0px))}.play-console-page .app-header-play{flex:0 0 auto;gap:var(--space-1);margin-bottom:0}.play-console-page .app-header-play .header-top{gap:var(--space-2);margin-bottom:0}.play-console-page .app-header-play .subtitle{display:none}.play-console-page .app-header-play .lang-select>span{display:none}.play-console-page .app-header-play .lang-select select{max-width:128px}.play-console-page .play-level-title{font-size:1.15rem!important}.play-console-page .console-state>.console-pane-head>.console-pane-tag{display:none}.play-console-page .goal-chip{margin-left:0;font-size:var(--text-xs);padding:var(--space-1) var(--space-2);line-height:1.25}.play-console-page .ss-counter{padding:var(--space-2) var(--space-3);gap:0}.play-console-page .ss-counter-value-wrap{height:44px}.play-console-page .play-console{flex:1 1 auto;min-height:0;gap:var(--space-3)}.play-console-page .console-state{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch}.play-console-page .console-ops{flex:0 0 auto;min-height:0;max-height:50dvh;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch}.play-console-page .console-pane{padding:var(--space-3) var(--space-4);gap:var(--space-2)}.play-console-page .console-ops>.console-pane-head{display:none}.play-console-page .scheduler-widget{padding:var(--space-2) var(--space-3)}.play-console-page .scheduler-label{display:none}.play-console-page .console-pane-body{flex:0 0 auto}.play-console-page .console-ops .step-controls{margin-top:var(--space-2);flex-direction:column;align-items:stretch;gap:var(--space-2);padding-top:var(--space-3)}.play-console-page .console-ops .step-buttons{display:flex;gap:var(--space-2)}.play-console-page .console-ops .step-buttons .btn{flex:1;width:auto;justify-content:center;min-height:40px}.op-cat-menu{display:flex;flex-direction:column;gap:var(--space-3)}.op-cats{display:flex;flex-wrap:wrap;gap:var(--space-2)}.op-cat{flex:1 1 0;min-width:110px;display:inline-flex;align-items:center;justify-content:space-between;gap:var(--space-2);min-height:48px;padding:var(--space-2) var(--space-4);background:var(--surface-2);border:1.5px solid var(--border-strong);border-radius:var(--radius-md);color:var(--text);font:inherit;font-size:var(--text-base);font-weight:700;letter-spacing:.02em;cursor:pointer;transition:border-color .15s ease,background .15s ease,color .15s ease;touch-action:manipulation}.op-cat .op-cat-chev{color:var(--text-muted);transition:transform .2s ease,color .15s ease}.op-cat:hover{border-color:var(--border-strong);color:var(--text-strong)}.op-cat.is-open{border-color:var(--active-color, var(--accent));background:color-mix(in srgb,var(--accent) 12%,var(--surface-2));color:var(--text-strong);box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 28%,transparent)}.op-cat.is-open .op-cat-chev{transform:rotate(180deg);color:var(--accent)}.op-cat-reveal{display:grid;grid-template-rows:0fr;transition:grid-template-rows .26s cubic-bezier(.4,0,.2,1)}.op-cat-reveal[data-open=true]{grid-template-rows:1fr}.op-cat-ops{min-height:0;overflow:hidden;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-2);padding-top:2px}.op-m-btn{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);min-height:52px;padding:0 var(--space-4);background:linear-gradient(180deg,var(--surface-3),var(--surface-2));border:1.5px solid var(--border-strong);border-radius:var(--radius-md);color:var(--text);font:inherit;text-align:left;cursor:pointer;touch-action:manipulation;transition:border-color .14s ease,background .14s ease,transform .1s ease}.op-m-btn:active:not(:disabled){transform:scale(.98);border-color:var(--active-color, var(--accent));background:color-mix(in srgb,var(--accent) 10%,var(--surface-2))}.op-m-btn:disabled{cursor:not-allowed}.op-m-btn.is-unavailable{opacity:.55;border-style:dashed}.op-m-code{font-family:var(--font-mono);font-size:var(--text-base);font-weight:600;color:var(--text);overflow-wrap:anywhere}}.level-path-header-right{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap;justify-content:flex-end}.acct{position:relative;display:inline-flex;align-items:center;gap:var(--space-2)}.acct-loading{width:8px;height:8px;border-radius:50%;background:var(--border-strong)}.acct-btn{display:inline-flex;align-items:center;gap:var(--space-1);min-height:34px;padding:var(--space-1) var(--space-3);background:var(--surface-3);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font:inherit;font-size:var(--text-sm);font-weight:600;cursor:pointer;transition:border-color .15s ease,color .15s ease,background .15s ease}.acct-btn:hover{border-color:var(--border-strong)}.acct-signin{border-color:color-mix(in srgb,var(--accent) 40%,var(--border));color:var(--accent)}.acct-signin:hover{background:var(--accent-soft)}.acct-chip{display:inline-flex;align-items:center;gap:var(--space-2);max-width:180px;padding:var(--space-1) var(--space-3);border-radius:var(--radius-pill);background:var(--surface-3);border:1px solid var(--border);font-size:var(--text-sm)}.acct-dot{width:8px;height:8px;border-radius:50%;background:var(--ok);flex-shrink:0}.acct-who{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.acct-menu{position:absolute;top:calc(100% + 6px);right:0;z-index:30;display:flex;flex-direction:column;min-width:180px;padding:var(--space-1);background:var(--surface-3);border:1px solid var(--border-strong);border-radius:var(--radius-md);box-shadow:var(--shadow-lg)}.acct-menu-item{text-align:left;padding:var(--space-2) var(--space-3);background:none;border:none;border-radius:var(--radius-sm);color:var(--text);font:inherit;font-size:var(--text-sm);cursor:pointer}.acct-menu-item:hover{background:var(--surface-raised);color:var(--text-strong)}.acct-me{display:inline-flex;align-items:center;gap:var(--space-2);max-width:200px;padding:3px var(--space-2) 3px 3px;background:var(--surface-3);border:1px solid var(--border);border-radius:var(--radius-pill);color:var(--text);font:inherit;font-size:var(--text-sm);cursor:pointer;transition:border-color .15s ease}.acct-me:hover{border-color:var(--border-strong)}.acct-avatar{display:grid;place-items:center;width:26px;height:26px;flex-shrink:0;border-radius:50%;background:linear-gradient(180deg,var(--teal-400),var(--teal-600));color:#06302b;font-weight:800;font-size:var(--text-sm)}.acct-me-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.login-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:grid;place-items:center;padding:var(--space-4);background:#050810a8;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:sheet-fade .18s ease}.login-card{position:relative;width:100%;max-width:380px;max-height:calc(100dvh - var(--space-8));overflow-y:auto;overscroll-behavior:contain;padding:var(--space-8) var(--space-6) var(--space-6);text-align:center;background:linear-gradient(180deg,var(--surface-2),var(--surface));border:1px solid var(--border-strong);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);animation:sheet-rise .24s cubic-bezier(.34,1.4,.5,1)}.login-close{position:absolute;top:var(--space-3);right:var(--space-3);display:inline-grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--surface-3);border:1px solid var(--border);color:var(--text-muted);cursor:pointer}.login-close:hover{color:var(--text-strong);border-color:var(--border-strong)}.login-badge{display:inline-grid;place-items:center;width:48px;height:48px;margin-bottom:var(--space-3);border-radius:var(--radius-md);background:var(--accent-soft);color:var(--accent)}.login-title{margin:0 0 var(--space-2);font-size:var(--text-xl);font-weight:800;color:var(--text-strong)}.login-blurb{margin:0 auto var(--space-5);max-width:30ch;color:var(--text-muted);font-size:var(--text-base);line-height:1.5}.login-actions{display:flex;flex-direction:column;gap:var(--space-2)}.login-notice,.login-config-error p{margin:0 0 var(--space-3);color:var(--text-muted);font-size:var(--text-sm);line-height:1.45}.login-notice-alert,.login-config-error p{color:var(--danger, #f08b8b)}.login-config-error{display:grid;justify-items:center;margin-top:var(--space-3)}.login-config-error .btn-secondary{min-height:44px}.login-provider{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:46px;border-radius:var(--radius-md);font:inherit;font-size:var(--text-base);font-weight:600;cursor:pointer;transition:filter .15s ease,border-color .15s ease}.login-provider:disabled,.login-close:disabled,.login-privacy:disabled{cursor:wait;opacity:.58}.login-google{background:#fff;color:#1f1f1f;border:1px solid #dadce0}.login-google:hover{filter:brightness(.97)}.login-apple{background:#000;color:#fff;border:1px solid #000}.login-apple:hover{filter:brightness(1.25)}.account-page{max-width:720px;margin:0 auto;padding:var(--space-8) var(--space-5) var(--space-12)}.account-session-recovery{display:grid;justify-items:center;gap:var(--space-4);max-width:440px;margin:18dvh auto 0;padding:var(--space-6);text-align:center;background:var(--surface-2);border:1px solid color-mix(in srgb,var(--bad) 45%,var(--border));border-radius:var(--radius-xl)}.account-session-recovery p{margin:0;color:var(--text);line-height:1.55}.account-session-recovery .btn{min-height:44px}.account-body{display:flex;flex-direction:column;gap:var(--space-4)}.account-card{background:linear-gradient(180deg,var(--surface-2),var(--surface));border:1px solid var(--border);border-radius:var(--radius-xl);padding:var(--space-5);box-shadow:var(--shadow-md)}.account-sync{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);min-height:48px;padding:var(--space-3) var(--space-4);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface-2)}.account-sync p{display:flex;align-items:center;gap:var(--space-2);margin:0;color:var(--text-muted);font-size:var(--text-sm)}.account-sync-synced p{color:var(--ok)}.account-sync-error p{color:var(--bad)}.account-sync-syncing svg{animation:account-spin 1s linear infinite}@keyframes account-spin{to{transform:rotate(360deg)}}.account-retry{min-width:44px;min-height:44px}.account-notice{margin:0;padding:var(--space-3) var(--space-4);color:var(--bad);background:var(--bad-soft);border:1px solid color-mix(in srgb,var(--bad) 45%,var(--border));border-radius:var(--radius-md);font-size:var(--text-sm);line-height:1.5}.account-profile{display:flex;align-items:center;gap:var(--space-4)}.account-avatar-lg{display:grid;place-items:center;width:60px;height:60px;flex-shrink:0;border-radius:50%;background:linear-gradient(180deg,var(--teal-400),var(--teal-600));color:#06302b;font-weight:800;font-size:var(--text-2xl)}.account-identity h1{margin:0;font-size:var(--text-lg);color:var(--text-strong)}.account-email{margin:2px 0 0;color:var(--text);font-size:var(--text-base)}.account-meta{margin:var(--space-1) 0 0;color:var(--text-muted);font-size:var(--text-sm);text-transform:capitalize}.account-card-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:var(--space-3)}.account-card-head h2{margin:0;font-size:var(--text-md);color:var(--text-strong)}.account-count{color:var(--text-muted);font-size:var(--text-sm)}.account-progress{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-1)}.account-progress li{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) 0;border-top:1px solid var(--border);font-size:var(--text-base)}.account-progress li:first-child{border-top:none}.account-progress li svg{color:var(--ok);flex-shrink:0}.account-progress-title{flex:1;min-width:0}.account-progress-date{color:var(--text-subtle);font-size:var(--text-sm)}.account-progress-detail{display:grid;justify-items:end;gap:2px;color:var(--text-muted);font-size:var(--text-sm)}.account-empty{color:var(--text-muted);font-style:italic;margin:0}.account-actions{display:flex;gap:var(--space-3);flex-wrap:wrap}.account-actions .btn{min-height:44px}.account-danger{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-4);border:1px solid color-mix(in srgb,var(--bad) 45%,var(--border));border-radius:var(--radius-lg);background:color-mix(in srgb,var(--bad-soft) 65%,var(--surface))}.account-danger h2{margin:0 0 var(--space-1);color:var(--bad);font-size:var(--text-md)}.account-danger p{margin:0;color:var(--text-muted);font-size:var(--text-sm);line-height:1.45}.account-delete{min-height:44px;flex-shrink:0;color:var(--bad);border-color:color-mix(in srgb,var(--bad) 40%,var(--border))}.account-delete:hover:not(:disabled){background:var(--bad-soft);border-color:var(--bad)}.account-signin-prompt{max-width:420px;margin:var(--space-12) auto;text-align:center}.account-signin-prompt h1{font-size:var(--text-2xl);color:var(--text-strong);margin:0 0 var(--space-2)}.account-signin-prompt p{color:var(--text-muted);margin:0 0 var(--space-5);line-height:1.5}@media (max-width: 560px){.account-page{padding-inline:var(--space-3)}.account-profile,.account-danger{align-items:flex-start}.account-danger{flex-direction:column}.account-danger .account-delete,.account-actions .btn{width:100%;justify-content:center}.account-actions{display:grid}.account-progress li{align-items:flex-start}}.lp-circle{position:relative}.lp-done{position:absolute;right:-6px;bottom:-6px;display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--ok);color:#052e12;font-size:13px;font-weight:900;border:2px solid var(--bg)}.lp-node-btn.is-done .lp-circle{border-color:color-mix(in srgb,var(--ok) 55%,var(--accent))}.lp-node-btn.is-next .lp-circle{animation:lp-next-pulse 2s ease-in-out infinite}@keyframes lp-next-pulse{0%,to{box-shadow:0 0 0 0 var(--accent-glow)}50%{box-shadow:0 0 0 9px #2dd4bf00}}.intro-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:110;display:grid;place-items:center;padding:var(--space-4);background:#050810b8;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:sheet-fade .2s ease}.intro-card{width:100%;max-width:430px;padding:var(--space-7, 28px) var(--space-6) var(--space-6);background:linear-gradient(180deg,var(--surface-2),var(--surface));border:1px solid var(--border-strong);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);text-align:center;animation:sheet-rise .26s cubic-bezier(.34,1.4,.5,1)}.intro-title{margin:0 0 var(--space-4);font-size:var(--text-xl);font-weight:800;color:var(--text-strong)}.intro-points{margin:0 0 var(--space-5);padding:0 0 0 1.4em;text-align:left;display:flex;flex-direction:column;gap:var(--space-2);color:var(--text);font-size:var(--text-base);line-height:1.55}.intro-points li::marker{color:var(--accent);font-weight:800}.intro-actions{display:flex;gap:var(--space-2);justify-content:center;flex-wrap:wrap}.coach-layer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:120}.coach-spot{position:fixed;border-radius:var(--radius-lg);box-shadow:0 0 0 9999px #050810b8;border:2px solid var(--accent);pointer-events:none;transition:top .25s ease,left .25s ease,width .25s ease,height .25s ease}.coach-card{position:fixed;left:50%;transform:translate(-50%);width:min(420px,calc(100vw - 32px));padding:var(--space-4) var(--space-5);background:var(--surface-2);border:1px solid var(--border-strong);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg)}.coach-step-count{margin:0 0 var(--space-1);font-size:var(--text-2xs);font-weight:800;letter-spacing:.08em;color:var(--accent)}.coach-title{margin:0 0 var(--space-1);font-size:var(--text-md);font-weight:800;color:var(--text-strong)}.coach-body{margin:0 0 var(--space-3);font-size:var(--text-base);line-height:1.55;color:var(--text)}.coach-actions{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.coach-skip{background:none;border:none;padding:var(--space-1);color:var(--text-subtle);font:inherit;font-size:var(--text-sm);cursor:pointer}.coach-skip:hover{color:var(--text)}.done-card .done-check{animation:done-pop .5s cubic-bezier(.34,1.56,.64,1)}@keyframes done-pop{0%{transform:scale(.3)}70%{transform:scale(1.18)}to{transform:scale(1)}}.done-takeaway{margin:var(--space-2) 0 0;padding:var(--space-2) var(--space-3);border-left:3px solid color-mix(in srgb,var(--ok) 60%,transparent);background:color-mix(in srgb,var(--ok) 6%,transparent);border-radius:0 var(--radius-sm) var(--radius-sm) 0;color:var(--text);font-size:var(--text-sm);line-height:1.55}.done-all{margin:var(--space-2) 0 0;font-weight:700;color:var(--text-strong)}.done-save-error{margin:var(--space-2) 0 0;padding:var(--space-2) var(--space-3);border:1px solid color-mix(in srgb,var(--bad) 45%,transparent);border-radius:var(--radius-sm);background:color-mix(in srgb,var(--bad) 8%,transparent);color:var(--text);font-size:var(--text-sm);line-height:1.45}.done-actions{display:flex;gap:var(--space-2);margin-top:var(--space-3);flex-wrap:wrap}.done-actions .btn-primary{flex:1;justify-content:center;min-width:150px}.done-save{margin-top:var(--space-3);padding:var(--space-2) 0 0;width:100%;background:none;border:none;border-top:1px dashed var(--border-strong);color:var(--accent);font:inherit;font-size:var(--text-sm);font-weight:600;cursor:pointer;text-align:center}.done-save:hover{color:var(--teal-300)}@media (prefers-reduced-motion: reduce){.lp-node-btn.is-next .lp-circle,.done-card .done-check{animation:none}}.privacy-page{max-width:680px;margin:0 auto;padding:var(--space-8) var(--space-5) var(--space-12)}.privacy-page h1{margin:0;font-size:var(--text-2xl);color:var(--text-strong)}.privacy-body{display:flex;flex-direction:column;gap:var(--space-5);margin-top:var(--space-6)}.privacy-body h2{margin:0 0 var(--space-2);font-size:var(--text-md);color:var(--text-strong)}.privacy-body p{margin:0 0 var(--space-2);color:var(--text);font-size:var(--text-base);line-height:1.65}.btn-link-quiet{background:none;border:none;padding:0;color:var(--text-subtle);font:inherit;font-size:var(--text-xs);text-decoration:underline;text-underline-offset:3px;cursor:pointer}.btn-link-quiet:hover{color:var(--accent)}.login-privacy{display:inline-flex;align-items:center;justify-content:center;min-height:44px;margin-top:var(--space-4);background:none;border:none;padding:0 var(--space-2);color:var(--text-subtle);font:inherit;font-size:var(--text-xs);text-decoration:underline;text-underline-offset:3px;cursor:pointer}.login-privacy:hover{color:var(--accent)}.account-privacy{margin:0;text-align:center}.play-v2{max-width:1080px;margin:0 auto;min-height:100dvh;display:flex;flex-direction:column}.v2-top{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-5);border-bottom:1px solid var(--border)}.v2-back{background:none;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-muted);width:32px;height:32px;font-size:15px;cursor:pointer}.v2-back:hover{color:var(--text);border-color:var(--border-strong)}.v2-lvl{display:flex;align-items:center;gap:var(--space-2);min-width:0}.v2-lvl b{font-size:var(--text-md);font-weight:800;letter-spacing:-.01em;white-space:nowrap}.v2-lvl-n{font-size:var(--text-xs);color:var(--text-subtle);white-space:nowrap}.v2-dots{display:inline-flex;gap:4px;margin-left:4px}.v2-dot{width:6px;height:6px;border-radius:3px;background:var(--border-strong)}.v2-dot.is-done{background:var(--accent);opacity:.55}.v2-dot.is-cur{width:16px;background:var(--accent);opacity:1}.v2-spacer{flex:1}.v2-chipbtn{border:1px solid var(--border-strong);background:none;color:var(--text-muted);border-radius:var(--radius-sm);padding:6px 12px;font:600 var(--text-sm) var(--font-sans);cursor:pointer;white-space:nowrap}.v2-chipbtn:hover{color:var(--accent);border-color:var(--accent)}.v2-top .lang-select span{display:none}.v2-top .lang-select select{min-height:32px;max-width:110px}.v2-goal{margin:0;padding:var(--space-2) var(--space-5) 0;font-size:var(--text-sm);color:var(--text-muted);line-height:1.5}.v2-goal b{color:var(--accent);font-weight:700}.v2-scroll{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-3) var(--space-5)}.v2-strip .shared-state{display:flex;flex-direction:row;flex-wrap:wrap;gap:0;background:linear-gradient(180deg,var(--surface-2),var(--surface));border:1px solid var(--card-edge, var(--border));border-radius:var(--radius-lg);overflow:hidden}.v2-strip .shared-state>*{flex:1 1 180px;min-width:0;background:none!important;border:none!important;border-radius:0!important;box-shadow:none!important;border-left:1px solid var(--border)!important;padding:var(--space-3) var(--space-4)}.v2-strip .shared-state>*:first-child{border-left:none!important}.v2-strip .ss-counter{align-items:flex-start;text-align:left;flex:0 1 150px}.v2-strip .ss-counter-value-wrap{height:40px;justify-content:flex-start}.v2-strip .ss-counter-value{font-size:28px}.v2-strip .dp-table{flex:1 1 100%;border-left:none!important;border-top:1px solid var(--border)!important}.v2-threads{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:var(--space-3);align-items:start}.tc-col{--tc: var(--accent);background:linear-gradient(180deg,var(--surface-2),var(--surface));border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;transition:box-shadow .18s ease,border-color .18s ease}.tc-col.is-active{border-color:color-mix(in srgb,var(--tc) 60%,transparent);box-shadow:0 0 0 1.5px var(--tc),0 14px 44px -20px var(--tc)}.tc-col.is-done{opacity:.62}.tc-head{display:flex;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-3);background:none;border:none;border-bottom:1px solid var(--border);color:var(--text);font:inherit;text-align:left;cursor:pointer;touch-action:manipulation}.tc-head:disabled{cursor:default}.tc-id{display:grid;place-items:center;min-width:30px;height:30px;padding:0 6px;border-radius:9px;font:700 13px var(--font-mono);color:#fff;background:color-mix(in srgb,var(--tc) 78%,#000)}.tc-status{min-width:0;line-height:1.15}.tc-status b{font-size:var(--text-xs);font-weight:700;letter-spacing:.02em;text-transform:uppercase}.tc-col.is-active .tc-status b{color:var(--tc)}.tc-col.is-blocked .tc-status b{color:var(--bad)}.tc-status small{display:block;font-size:var(--text-2xs);color:var(--text-subtle);font-family:var(--font-mono)}.tc-reg{margin-left:auto;font:600 var(--text-xs) var(--font-mono);color:var(--text-subtle);white-space:nowrap}.tc-reg b{color:var(--text);background:var(--surface-inset);border:1px solid var(--border-strong);border-radius:6px;padding:1px 7px;margin-left:3px}.tc-code{padding:6px 0;font:13px/1 var(--font-mono)}.tc-ln{display:flex;align-items:center;gap:9px;padding:6px 12px;position:relative}.tc-no{width:14px;text-align:right;color:var(--text-subtle);font-size:10.5px;flex-shrink:0}.tc-op{color:var(--text-muted);overflow-wrap:anywhere}.tc-mark{margin-left:auto;font-size:10.5px;white-space:nowrap}.tc-ln.is-past .tc-op{opacity:.55}.tc-ln.is-past .tc-mark{color:var(--ok)}.tc-ln.is-past.is-trap .tc-op{opacity:.8;color:var(--bad);text-decoration:line-through;text-decoration-thickness:1px}.tc-ln.is-past.is-trap .tc-mark{color:var(--bad)}.tc-ln.is-wait{background:linear-gradient(90deg,color-mix(in srgb,var(--bad) 12%,transparent),transparent 72%)}.tc-ln.is-wait:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--bad)}.tc-ln.is-wait .tc-op{color:var(--text-strong);font-weight:600}.tc-ln.is-wait .tc-mark{color:var(--bad);font-weight:700}.tc-ln.is-empty .tc-op{color:var(--text-subtle);font-style:italic}.v2-foot{display:flex;flex-direction:column;gap:var(--space-2);padding:0 var(--space-5) var(--space-3)}.dock{--active-color: var(--accent);background:linear-gradient(180deg,var(--surface-2),var(--surface));border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-3) var(--space-4)}.dock-verdict{display:flex;gap:var(--space-2);align-items:flex-start;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);margin-bottom:var(--space-3);border:1px solid var(--border)}.dock-verdict.is-ok{background:color-mix(in srgb,var(--ok) 8%,transparent);border-color:color-mix(in srgb,var(--ok) 30%,transparent)}.dock-verdict.is-warn{background:var(--warn-soft);border-color:color-mix(in srgb,var(--warn) 40%,transparent)}.dock-verdict.is-bad{background:var(--bad-soft);border-color:color-mix(in srgb,var(--bad) 40%,transparent)}.dv-ico{font-weight:800;flex-shrink:0;margin-top:1px}.dock-verdict.is-ok .dv-ico{color:var(--ok)}.dock-verdict.is-warn .dv-ico{color:var(--warn)}.dock-verdict.is-bad .dv-ico{color:var(--bad)}.dv-txt{min-width:0;flex:1}.dv-txt b{font-size:var(--text-sm);color:var(--text-strong)}.dv-txt p{margin:1px 0 0;font-size:var(--text-xs);color:var(--text-muted);line-height:1.45}.dv-undo{flex-shrink:0;display:inline-flex;align-items:center;gap:5px;background:var(--surface-inset);border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--text);padding:5px 10px;font:600 var(--text-xs) var(--font-sans);cursor:pointer}.dv-undo:hover{border-color:var(--bad);color:var(--bad)}.dock-hint{display:flex;gap:var(--space-2);align-items:flex-start;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);margin-bottom:var(--space-3);background:var(--warn-soft);border:1px solid color-mix(in srgb,var(--warn) 40%,transparent);color:var(--warn)}.dock-hint p{margin:0;font-size:var(--text-xs);color:var(--text);line-height:1.45}.dock-empty{margin:0;color:var(--text-muted);font-style:italic}.dock-ask{display:flex;align-items:center;gap:var(--space-2);font:600 var(--text-base) var(--font-sans);color:var(--text-strong);margin-bottom:var(--space-2);flex-wrap:wrap}.dock-ask-dot{width:8px;height:8px;border-radius:4px;background:var(--active-color);box-shadow:0 0 0 4px color-mix(in srgb,var(--active-color) 20%,transparent)}.dock-ask small{color:var(--text-subtle);font-weight:500;font-size:var(--text-xs)}.dock-cands{display:flex;flex-wrap:wrap;gap:var(--space-2)}.cand{display:inline-flex;align-items:center;gap:7px;font:600 13px var(--font-mono);color:var(--text);background:var(--surface-inset);border:1px solid var(--border-strong);border-radius:10px;padding:9px 13px;cursor:pointer;transition:border-color .12s ease,transform .12s ease;touch-action:manipulation}.cand:hover{border-color:var(--active-color);transform:translateY(-1px)}.cand:active{transform:none}.cand.is-unavailable{opacity:.45;border-style:dashed}.cand.is-unavailable:hover{transform:none;border-color:var(--border-strong)}.cand-side{font-size:10px;font-weight:900}.cand-side.is-left{color:var(--sky-400)}.cand-side.is-right{color:var(--amber-300)}.tl{display:flex;align-items:center;gap:var(--space-2);min-height:30px}.tl-k{font-size:var(--text-2xs);color:var(--text-subtle);text-transform:uppercase;letter-spacing:.06em;flex-shrink:0}.tl-track{display:flex;gap:5px;overflow-x:auto;scrollbar-width:none;flex:1}.tl-track::-webkit-scrollbar{display:none}.tl-empty{color:var(--text-subtle);font-size:var(--text-xs);font-style:italic}.tl-seg{flex-shrink:0;height:22px;display:inline-flex;align-items:center;padding:0 8px;border-radius:6px;font:600 10.5px var(--font-mono);color:#fff;background:color-mix(in srgb,var(--tc) 45%,transparent);border:1px solid color-mix(in srgb,var(--tc) 55%,transparent);white-space:nowrap}.tl-seg.is-trap{border-color:var(--bad);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--bad) 55%,transparent)}.tl-actions{display:flex;gap:var(--space-2);flex-shrink:0}.tl-btn{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--border-strong);background:none;color:var(--text-muted);border-radius:var(--radius-sm);padding:5px 10px;font:600 var(--text-xs) var(--font-sans);cursor:pointer}.tl-btn:hover:not(:disabled){color:var(--text);border-color:var(--text-subtle)}.tl-btn:disabled{opacity:.4;cursor:not-allowed}.v2-foot .result-banner{border-radius:var(--radius-lg)}@media (max-width: 879px){.play-v2{height:100dvh;max-height:100dvh;overflow:hidden}.v2-top{gap:var(--space-2);padding:var(--space-2) var(--space-4);flex-wrap:nowrap;overflow:hidden}.v2-back,.v2-chipbtn,.v2-top .acct-btn,.v2-top .acct-me{flex-shrink:0;white-space:nowrap}.v2-lvl{flex:0 1 auto;overflow:hidden}.v2-lvl b{flex-shrink:0}.v2-dots{flex:1 1 auto;min-width:0;overflow:hidden}.v2-dot{flex:0 0 auto}.v2-spacer{flex:1 1 0;min-width:0}.v2-lvl-n,.v2-top .lang-select{display:none}.v2-goal{padding:var(--space-2) var(--space-4) 0;font-size:var(--text-xs)}.v2-scroll{flex:1 1 auto;min-height:0;overflow-y:auto;padding:var(--space-2) var(--space-4)}.v2-threads{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-2)}.tc-code{font-size:12px}.tc-ln{padding:5px 9px;gap:6px}.tc-mark{font-size:9.5px}.tc-reg{display:none}.v2-threads[data-count="5"],.v2-threads[data-count="4"]{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:4px}.v2-threads[data-count="5"] .tc-col,.v2-threads[data-count="4"] .tc-col{flex:0 0 46vw;scroll-snap-align:start}.v2-foot{flex:0 0 auto;max-height:52dvh;overflow-y:auto;padding:0 var(--space-4) var(--space-2)}.dock{padding:var(--space-2) var(--space-3)}.cand{padding:10px 12px}}.tc-reg-one+.tc-reg-one{margin-left:8px}.level-path-page{padding-top:calc(var(--space-6) + env(safe-area-inset-top,0px))}.account-page,.privacy-page{padding-top:calc(var(--space-8) + env(safe-area-inset-top,0px))}.play-v2 .v2-top{padding-top:calc(var(--space-3) + env(safe-area-inset-top,0px))}@media (max-width: 879px){.play-v2 .v2-top{padding-top:calc(var(--space-2) + env(safe-area-inset-top,0px))}.v2-foot{padding-bottom:calc(var(--space-2) + env(safe-area-inset-bottom,0px))}}.stage{position:relative;max-width:1060px;margin:0 auto;padding-top:4px}.stage .is-grab{cursor:grab;touch-action:none}.stage .is-grab:active{cursor:grabbing}.stage,.stage *{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.stage-memrow{display:flex;justify-content:center;margin-bottom:18px}.stage-memslot{display:flex;align-items:center;gap:12px;border:1px solid var(--border-strong);background:var(--surface);border-radius:14px;padding:12px 20px}.stage-lbl{font-size:var(--text-2xs);letter-spacing:.14em;text-transform:uppercase;color:var(--text-subtle)}.stage-memvar{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--text-muted)}.stage-target{font-size:var(--text-xs);color:var(--text-subtle)}.stage-token{font-family:var(--font-mono);font-weight:700;font-size:1.1rem;min-width:38px;height:38px;padding:0 10px;display:inline-flex;align-items:center;justify-content:center;background:var(--surface-3);border:1px solid var(--border-strong);border-radius:10px;color:var(--text-strong)}.stage-token-mem{font-size:1.25rem}.stage-empty{font-family:var(--font-mono);font-size:1.05rem;color:var(--text-subtle)}.stage-benches{display:flex;gap:22px;justify-content:center;flex-wrap:wrap}.stage-bench{flex:1 1 340px;max-width:470px;border:1.5px solid var(--border);border-radius:14px;background:var(--surface);padding:12px 14px 14px;transition:border-color .25s,opacity .25s,box-shadow .25s}.stage-bench.is-active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent-soft)}.stage-bench.is-done{opacity:.55}.stage-bench-head{display:flex;align-items:center;gap:9px;margin-bottom:10px}.stage-tchip{width:30px;height:30px;border-radius:9px;background:var(--thread-color, var(--accent));color:#fff;font-family:var(--font-mono);font-weight:700;font-size:var(--text-sm);display:inline-flex;align-items:center;justify-content:center}.stage-bstatus{font-size:var(--text-xs);color:var(--text-muted);letter-spacing:.05em}.stage-bench.is-active .stage-bstatus{color:var(--accent)}.stage-cpu-slot{margin-left:auto;width:72px;height:26px}.stage-parts{display:flex;gap:12px;align-items:stretch}.stage-part{flex:1;border:1px solid var(--border);border-radius:10px;background:var(--surface-inset);padding:8px 10px 10px;min-height:84px;display:flex;flex-direction:column;align-items:flex-start;gap:6px;transition:outline-color .15s}.stage-plbl{font-size:var(--text-2xs);letter-spacing:.1em;color:var(--text-subtle)}.stage-part-body{display:flex;align-items:center;min-height:40px}button.stage-mach{cursor:pointer;align-items:center;text-align:center;color:inherit;font:inherit}.stage-mach-face{font-family:var(--font-mono);font-weight:700;font-size:1.05rem;color:var(--accent);border:1.5px solid var(--accent-soft);border-radius:10px;padding:5px 0;width:100%;transition:background .15s,border-color .15s}.stage-mach:hover .stage-mach-face{background:var(--accent-glow);border-color:var(--accent)}.stage-mach:active .stage-mach-face{transform:scale(.96)}.stage-msub{font-size:var(--text-2xs);color:var(--text-subtle)}.stage .is-drop-ok{outline:2px dashed var(--accent-soft);outline-offset:3px;border-radius:10px}.stage .is-drop-hot{outline:2.5px solid var(--accent);outline-offset:3px}.stage-cpu{position:absolute;left:0;top:0;z-index:12;pointer-events:none;display:inline-flex;align-items:center;gap:6px;background:var(--accent-glow);border:1.5px solid var(--accent);color:var(--accent);font-size:var(--text-xs);font-weight:650;border-radius:999px;padding:3px 12px;will-change:transform;transition:transform .38s cubic-bezier(.2,.8,.2,1),opacity .2s}.stage-cpu-dot{width:7px;height:7px;border-radius:50%;background:var(--accent);animation:stage-pulse 1.6s infinite}@keyframes stage-pulse{0%,to{opacity:1}50%{opacity:.35}}.stage-fly{position:fixed;z-index:90;pointer-events:none;font-family:var(--font-mono);font-weight:700;font-size:1rem;min-width:34px;height:34px;padding:0 9px;display:inline-flex;align-items:center;justify-content:center;background:var(--surface-3);border:1px solid var(--accent);border-radius:9px;color:var(--text-strong);will-change:transform}.stage-fly.is-lost{border-color:#f43f5e;color:#f43f5e;background:#f43f5e1f}.stage-ghost{position:fixed;z-index:95;pointer-events:none;opacity:.92;font-family:var(--font-mono);font-weight:700;font-size:1rem;min-width:34px;height:34px;padding:0 9px;display:inline-flex;align-items:center;justify-content:center;background:var(--surface-3);border:1px solid var(--accent);border-radius:9px;color:var(--text-strong)}.stage-toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%);z-index:96;background:var(--surface-2);border:1px solid var(--border-strong);border-radius:9px;padding:8px 14px;font-size:var(--text-sm);color:var(--text)}.mode-switch{display:inline-flex;border:1px solid var(--border-strong);border-radius:999px;overflow:hidden}.mode-switch button{background:none;border:none;color:var(--text-muted);font-size:var(--text-xs);padding:5px 12px;cursor:pointer}.mode-switch button.is-on{background:var(--accent-glow);color:var(--accent);font-weight:650}@media (max-width: 879px){.stage-benches{gap:10px}.stage-bench{flex:1 1 100%;max-width:none;padding:8px 10px 10px}.stage-memrow{margin-bottom:12px}.stage-memslot{width:100%;justify-content:center;padding:10px 12px}.stage-part{min-height:70px}}.stage-csroom{position:relative;max-width:640px;margin:0 auto;padding:14px 14px 4px;border:2px dashed rgba(94,130,190,.45);border-radius:16px}.stage-csroom.is-race-open{border-color:#f43f5e8c}.stage-cs-tag{position:absolute;top:-9px;left:18px;background:var(--bg);padding:0 8px;font-size:var(--text-2xs);letter-spacing:.16em;color:var(--text-subtle)}.stage-cs-occ{position:absolute;top:-10px;right:14px;display:flex;gap:6px}.stage-occ{background:var(--bg);border:1px solid var(--thread-color, var(--accent));color:var(--thread-color, var(--accent));border-radius:999px;font-size:var(--text-2xs);padding:1px 8px}.stage-csroom .stage-memrow{margin-bottom:10px}.stage-csroom .stage-memslot{border:none;background:none;padding:4px 8px}.stage-doorrow{display:flex;gap:26px;justify-content:center;align-items:stretch;margin:-2px auto 16px;max-width:640px}.stage-rack,.stage-waitbench{flex:1 1 0;border:1px solid var(--border);border-radius:12px;background:var(--surface);padding:8px 12px 10px;display:flex;flex-direction:column;gap:6px}.stage-rack-body{display:flex;gap:8px;align-items:center;min-height:34px}.stage-ticket{display:inline-flex;align-items:center;justify-content:center;width:44px;height:29px;border-radius:6px;position:relative;background:#f5c14f24;border:1.5px solid #f5c14f;color:#f5c14f;font-family:var(--font-mono);font-size:var(--text-xs)}.stage-ticket:before{content:"";position:absolute;left:7px;top:4px;bottom:4px;border-left:1.5px dashed rgba(245,193,79,.55)}.stage-ticket.is-ghostly,.stage-ghost.is-ghostly{opacity:.32;border-style:dashed;background:none}.stage-tickmult{font-size:var(--text-2xs);color:#f5c14f;margin-inline-start:4px}.stage-waiters{display:flex;gap:8px;align-items:center;min-height:34px;flex-wrap:wrap}.stage-empty-note{font-size:var(--text-xs);color:var(--text-subtle)}.stage-waiter{display:inline-flex;align-items:center;gap:5px;border-radius:8px;padding:4px 9px;font-size:var(--text-xs);border:1px solid var(--thread-color, var(--accent));color:var(--thread-color, var(--accent));background:var(--surface-inset)}.stage-hourglass{display:inline-block;animation:stage-sway 1.4s ease-in-out infinite}@keyframes stage-sway{0%,to{transform:rotate(-12deg)}50%{transform:rotate(12deg)}}.stage-fly.is-ticket,.stage-ghost.is-ticket{background:#f5c14f24;border:1.5px solid #f5c14f;color:#f5c14f;font-size:var(--text-xs);min-width:44px;height:29px}.stage-fly.is-chip{background:var(--surface-2);border:1px solid var(--border-strong);color:var(--text);font-size:var(--text-xs)}.stage-part-ticket{flex:0 0 92px}@media (max-width: 879px){.stage-csroom{max-width:none;padding:10px 10px 2px}.stage-doorrow{gap:10px;max-width:none;margin-bottom:10px}.stage-rack,.stage-waitbench{padding:6px 8px 8px}.stage-part-ticket{flex:0 0 76px}}
