:root{color-scheme:light;--app-bg: #eef0f2;--surface: #ffffff;--surface-subtle: #f7f8f9;--surface-muted: #e9ecef;--ink: #15181c;--muted: #454c55;--subtle: #555d66;--line: #dfe3e7;--line-strong: #c4cad1;--brand: #c8232c;--brand-dark: #9e1a22;--brand-soft: #fbeced;--accent: #0f766e;--accent-soft: #e7f5f3;--warning: #a35d08;--warning-soft: #fcf3e6;--danger: #c8232c;--danger-soft: #fbeced;--success: #17794f;--success-soft: #e8f5ee;--shadow: 0 1px 2px rgba(21, 24, 28, .04);--shadow-soft: 0 1px 2px rgba(21, 24, 28, .04);--focus-ring: 0 0 0 3px rgba(200, 35, 44, .18);--font-sans: "Pretendard Variable", Pretendard, -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", "Noto Sans KR", sans-serif;--font-mono: "IBM Plex Mono", "SFMono-Regular", Menlo, Consolas, monospace}:root[data-theme=dark]{color-scheme:dark;--app-bg: #111316;--surface: #181b1f;--surface-subtle: #1d2126;--surface-muted: #262b31;--ink: #eceef0;--muted: #c2c8cf;--subtle: #a6aeb7;--line: #2b3036;--line-strong: #3d444c;--brand: #f0545b;--brand-dark: #ff7a80;--brand-soft: rgba(240, 84, 91, .13);--accent: #45c7bd;--accent-soft: rgba(69, 199, 189, .12);--warning: #e9ac5c;--warning-soft: rgba(233, 172, 92, .13);--danger: #f0545b;--danger-soft: rgba(240, 84, 91, .13);--success: #5fcf99;--success-soft: rgba(95, 207, 153, .12);--shadow: none;--shadow-soft: none}*{box-sizing:border-box}html,body,#root,#root *{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}input,textarea,select,[contenteditable=true],.inline-typing-input{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}img,svg{-webkit-user-drag:none;user-drag:none}html,body,#root{min-height:100%}body{margin:0;min-width:320px;height:100vh;height:100dvh;overflow:hidden;background:var(--app-bg);color:var(--ink);font-family:var(--font-sans);font-feature-settings:"tnum" 0;-webkit-font-smoothing:antialiased;word-break:keep-all}#root{height:100%;min-height:0;overflow:hidden}button,input,textarea{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,textarea:focus-visible{outline:none;box-shadow:var(--focus-ring)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.html-fallback{display:grid;min-height:100vh;place-content:center;gap:10px;padding:24px;color:var(--muted);text-align:center}.html-fallback strong{color:var(--ink);font-size:1.25rem}.app{display:grid;grid-template-rows:auto minmax(0,1fr);gap:14px;height:100%;min-height:0;overflow:hidden;padding:16px}.topbar,.product-layout{width:min(100%,1480px);margin:0 auto}.topbar{display:grid;grid-template-columns:minmax(210px,1fr) auto minmax(120px,1fr);align-items:center;gap:16px}.brand-lockup,.topbar-actions,.status-pill,.pane-title,.pane-title>div,.editor-actions,.notice,.metric,.insight-strip{display:flex;align-items:center}.brand-lockup{gap:12px;min-width:0}.brand-mark{display:grid;width:42px;height:42px;flex:0 0 auto;place-items:center;overflow:hidden;border:1px solid var(--line);border-radius:8px;background:var(--surface);box-shadow:var(--shadow-soft)}.brand-mark img{display:block;width:100%;height:100%;object-fit:cover}.brand-lockup p,.brand-lockup span,.section-kicker,.pane-title h2,.practice-toolbar h1,.metric small,.metric strong{margin:0}.brand-lockup p{color:var(--ink);font-size:1rem;font-weight:700}.brand-lockup span{display:block;margin-top:2px;color:var(--muted);font-size:.78rem;font-weight:700}.mode-tabs{display:inline-flex;align-items:center;justify-self:center;gap:2px;padding:3px;border:1px solid var(--line);border-radius:8px;background:var(--surface);box-shadow:var(--shadow-soft);max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}.mode-tabs-all{display:grid;grid-template-columns:repeat(5,minmax(88px,1fr))}.mode-tabs-mobile{display:inline-grid;grid-template-columns:repeat(2,auto);width:auto}.mode-tabs button,.mini-segmented button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:34px;border:0;border-radius:6px;background:transparent;color:var(--muted);font-size:.82rem;font-weight:600;white-space:nowrap}.mode-tabs button{min-height:46px;padding:0 13px;text-align:left}.mode-tabs button.active,.mini-segmented button.active{background:var(--ink);color:var(--surface)}.mode-tabs button:disabled{cursor:not-allowed;opacity:.42}.mode-tabs button>span{display:grid;gap:1px}.mode-tabs button strong,.mode-tabs button small{margin:0;line-height:1.1}.mode-tabs button strong{font-size:.82rem;font-weight:700}.mode-tabs button small{color:var(--subtle);font-size:.66rem;font-weight:600}.mode-tabs button.active small{color:color-mix(in srgb,var(--surface) 72%,transparent)}.topbar-actions{gap:8px;justify-content:flex-end}.status-pill{gap:8px;min-width:0;max-width:220px;min-height:38px;padding:0 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink)}.status-pill svg{flex:0 0 auto;color:var(--brand)}.status-pill span{display:grid;min-width:0}.status-pill small,.status-pill strong{overflow:hidden;margin:0;text-overflow:ellipsis;white-space:nowrap}.status-pill small{color:var(--muted);font-size:.65rem;font-weight:600}.status-pill strong{color:var(--ink);font-size:.78rem;font-weight:700}.theme-toggle,.primary-action,.secondary-action,.mini-action,.icon-action{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);font-weight:600;transition:transform .14s ease,border-color .14s ease,background .14s ease,color .14s ease,box-shadow .14s ease}.theme-toggle:hover,.secondary-action:hover,.mini-action:hover,.icon-action:hover,.study-set-row:hover,.template-row:hover,.word-chip-row button:hover{border-color:var(--line-strong);box-shadow:var(--shadow-soft);transform:translateY(-1px)}.theme-toggle{gap:8px;min-height:38px;padding:0 13px}.theme-toggle svg,.pane-title svg,.metric svg{color:var(--brand)}.product-layout{display:grid;grid-template-columns:minmax(286px,322px) minmax(0,1fr) minmax(230px,280px);gap:14px;height:100%;min-height:0;overflow:hidden}.template-pane,.practice-pane,.review-pane,.game-pane,.desktop-only-pane{min-width:0;border:1px solid var(--line);border-radius:8px;background:var(--surface);box-shadow:var(--shadow)}.template-pane,.review-pane{display:flex;flex-direction:column;gap:14px;padding:16px;overflow:hidden}.practice-pane{display:grid;grid-template-rows:auto 8px auto minmax(0,1fr) auto;min-height:0;overflow:hidden}.game-pane{display:flex;flex-direction:column;min-height:0;overflow:hidden}.desktop-only-pane{display:grid;min-height:420px}.pane-title{justify-content:space-between;gap:12px}.pane-title>div{gap:9px;min-width:0}.pane-title h2{color:var(--ink);font-size:.9rem;font-weight:700}.mini-action{width:34px;height:34px;flex:0 0 auto}.icon-action{width:40px;height:40px;flex:0 0 auto}.template-list,.study-set-list,.review-list,.mobile-template-list{min-height:0;overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.template-list,.study-set-list{display:grid;align-content:start;gap:8px;padding-right:2px}.template-list{flex:0 0 190px}.template-pane .study-set-list{flex:1 1 auto}.template-row,.study-set-row{width:100%;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);text-align:left}.template-row,.study-set-row{transition:transform .14s ease,border-color .14s ease,background .14s ease,box-shadow .14s ease}.template-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:11px 12px}.template-row span,.study-set-main{display:grid;gap:5px}.template-row strong,.study-set-main strong{overflow-wrap:anywhere;color:var(--ink);font-size:.88rem;font-weight:700}.template-row small,.study-set-main span,.study-set-main small,.template-reader small{color:var(--muted);font-size:.75rem;font-weight:500;line-height:1.35}.template-row.selected,.study-set-row.selected{border-color:var(--brand);background:var(--brand-soft)}.study-set-row{display:grid;grid-template-columns:minmax(0,1fr) 26px;align-items:center;gap:8px;padding:10px}.study-set-main{min-width:0;padding:0;border:0;background:transparent;color:inherit;text-align:left}.challenge-check{position:relative;display:grid;width:24px;height:24px;place-items:center;border:1px solid var(--line);border-radius:8px;background:var(--surface-subtle);cursor:pointer;transition:border-color .14s ease,background .14s ease,box-shadow .14s ease}.challenge-check input{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:100%;margin:0;cursor:pointer}.challenge-check.checked{border-color:var(--brand);background:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}.challenge-check.checked:after{content:"";position:absolute;top:50%;left:50%;width:10px;height:6px;border-bottom:2px solid #ffffff;border-left:2px solid #ffffff;transform:translate(-50%,-58%) rotate(-45deg)}.challenge-pool-summary{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface-subtle)}.challenge-pool-summary span,.challenge-pool-summary strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.challenge-pool-summary span{color:var(--muted);font-size:.72rem;font-weight:700}.challenge-pool-summary strong{color:var(--ink);font-size:.8rem;font-weight:700}.editor-stack{display:grid;gap:12px;min-height:0}.editor-stack label{display:grid;gap:7px}.editor-stack label>span{color:var(--muted);font-size:.77rem;font-weight:700}.editor-stack input,.editor-stack textarea,.rain-input-bar input,.phrase-stage textarea,.inline-typing-input{width:100%;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);-webkit-text-fill-color:var(--ink);caret-color:var(--brand);outline:none}.editor-stack input{height:40px;padding:0 12px}.template-textarea-label textarea{min-height:124px;resize:vertical;padding:11px 12px;line-height:1.5}.segmented-control,.mini-segmented{display:grid;gap:3px;padding:3px;border:1px solid var(--line);border-radius:8px;background:var(--surface-muted)}.segmented-control{grid-template-columns:repeat(2,minmax(0,1fr))}.segmented-control button{min-height:34px;border:0;border-radius:6px;background:transparent;color:var(--muted);font-weight:600}.segmented-control button.active{background:var(--surface);color:var(--ink);box-shadow:0 1px 4px #11182714}.editor-actions{gap:8px}.primary-action,.secondary-action{gap:8px;min-height:40px;padding:0 14px;flex:1}.primary-action svg,.secondary-action svg,.icon-action svg,.mini-action svg,.theme-toggle svg{width:17px;height:17px;flex:0 0 auto;padding:0;border:0;border-radius:0;background:transparent}.empty-state-action{flex:0 0 auto;min-width:132px;margin-top:8px}.primary-action{border-color:var(--brand);background:var(--brand);color:#fff}.primary-action:hover{border-color:var(--brand-dark);background:var(--brand-dark);transform:translateY(-1px)}.secondary-action{background:var(--surface)}.practice-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 18px;border-bottom:1px solid var(--line)}.section-kicker{color:var(--brand);font-size:.72rem;font-weight:700;letter-spacing:0}.practice-toolbar h1{margin-top:3px;overflow-wrap:anywhere;color:var(--ink);font-size:1.22rem;font-weight:700;line-height:1.25}.speed-arena{background:radial-gradient(circle at 18% 0%,rgba(255,91,102,.12),transparent 30%),radial-gradient(circle at 100% 20%,rgba(69,199,189,.1),transparent 28%),var(--surface)}.arena-header{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:18px;padding:18px 20px 14px;border-bottom:1px solid var(--line)}.arena-title{min-width:0}.arena-title h1{margin:4px 0 0;overflow-wrap:anywhere;color:var(--ink);font-size:1.28rem;font-weight:700;line-height:1.18}.arena-title>span{display:block;margin-top:7px;overflow:hidden;color:var(--muted);font-size:.78rem;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.arena-meta{display:flex;align-items:center;gap:8px}.arena-stat{display:grid;grid-template-columns:auto auto;align-items:center;min-width:86px;gap:2px 7px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:color-mix(in srgb,var(--surface) 88%,transparent)}.arena-stat svg{grid-row:span 2;color:var(--brand)}.arena-stat span{color:var(--muted);font-size:.66rem;font-weight:700;line-height:1}.arena-stat strong{color:var(--ink);font-size:1rem;font-weight:700;line-height:1}.arena-play{width:46px;height:46px}.insight-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:10px 16px;border-bottom:1px solid var(--line);background:var(--surface-subtle)}.metric{gap:9px;min-width:0}.metric svg{flex:0 0 auto}.metric span{display:grid;min-width:0}.metric small{overflow:hidden;color:var(--muted);font-size:.7rem;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.metric strong{overflow:hidden;color:var(--ink);font-size:1rem;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.karaoke-stage,.rain-stage,.phrase-stage{min-height:0;background:linear-gradient(var(--surface-subtle),var(--surface)),var(--surface)}.karaoke-stage{overflow:auto;padding:20px}.typing-dock,.rain-input-bar{border-top:1px solid var(--line);background:var(--surface)}.typing-dock{padding:12px 16px}.notice{justify-content:space-between;gap:12px;min-height:38px;padding:9px 11px;border:1px solid var(--line);border-radius:8px;background:var(--surface-subtle);color:var(--muted);font-size:.8rem;font-weight:600}.notice.warning{border-color:#b4530959;background:var(--warning-soft);color:var(--warning)}.line-stack{display:grid;gap:14px;max-width:920px;margin:0 auto}.practice-pair{display:grid;gap:8px;padding:14px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.completed-pair,.upcoming-pair{opacity:.62}.active-pair{border-color:var(--brand);background:var(--surface);box-shadow:0 0 0 4px var(--brand-soft)}.prompt-line,.typed-line,.typing-mirror{margin:0;font-size:1rem;line-height:1.65}.prompt-line{color:var(--ink);font-weight:600}.current-prompt{color:var(--brand-dark)}.typed-line,.typing-mirror,.inline-typing-input{color:var(--muted);font-family:var(--font-mono);font-size:1rem;font-weight:500;font-variant-ligatures:none;letter-spacing:0;line-height:1.65;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;-moz-tab-size:2;tab-size:2}.inline-input-wrap{position:relative;min-height:88px;border:1px solid var(--line);border-radius:8px;background:var(--surface-subtle)}.inline-typing-input{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;box-sizing:border-box;width:100%;height:100%;min-height:88px;margin:0;resize:none;padding:12px;border:0!important;border-radius:8px;background:transparent!important;color:transparent!important;-webkit-text-fill-color:transparent!important;caret-color:var(--brand)}.inline-typing-input.is-composing{color:var(--ink)!important;-webkit-text-fill-color:var(--ink)!important}.inline-typing-input.is-composing+.typing-mirror{opacity:0}.typing-mirror{position:relative;z-index:1;box-sizing:border-box;min-height:88px;margin:0;padding:12px;pointer-events:none}.pending-char{color:var(--muted)}.correct-char{color:var(--success)}.wrong-char{border-radius:3px;background:var(--danger-soft);color:var(--danger)}.empty-state,.complete-state{display:grid;min-height:100%;place-content:center;justify-items:center;gap:10px;padding:32px;color:var(--muted);text-align:center}.empty-state svg,.complete-state svg{color:var(--brand)}.empty-state strong,.complete-state strong{color:var(--ink);font-size:1.05rem;font-weight:700}.empty-state span,.complete-state span{max-width:360px;font-size:.88rem;font-weight:500;line-height:1.5}.launch-state{position:relative;z-index:3;width:min(460px,calc(100% - 48px));min-height:auto;margin:auto;padding:28px;border:1px solid var(--line);border-radius:8px;background:linear-gradient(180deg,color-mix(in srgb,var(--surface) 92%,transparent),var(--surface-subtle));box-shadow:var(--shadow)}.launch-state>svg{width:46px;height:46px;padding:10px;border:1px solid var(--line);border-radius:8px;background:var(--brand-soft)}.score-panel{display:grid;gap:4px;padding:16px;border:1px solid var(--line);border-radius:8px;background:var(--brand-soft)}.score-panel strong{color:var(--brand-dark);font-size:2rem;font-weight:700;line-height:1}.score-panel span{color:var(--muted);font-size:.78rem;font-weight:600}.review-list{display:grid;align-content:start;gap:8px;padding-right:2px}.review-list p{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;margin:0;padding:10px 0;border-bottom:1px solid var(--line);color:var(--ink);font-size:.82rem;font-weight:500;line-height:1.45}.review-list p>span{display:grid;width:24px;height:24px;place-items:center;border-radius:999px;background:var(--surface-muted);color:var(--muted);font-size:.72rem;font-weight:700}.review-empty{display:block!important;color:var(--muted)!important}.vocab-review-list p{grid-template-columns:auto minmax(0,1fr)}.vocab-review-list strong,.vocab-review-list small{grid-column:2}.vocab-review-list strong{display:grid;gap:4px;color:var(--ink);font-size:.88rem}.vocab-review-list strong em{color:var(--brand);font-size:.74rem;font-style:normal;font-weight:700;line-height:1.35}.vocab-review-list small{color:var(--muted);font-size:.75rem;line-height:1.45}.rain-controls{display:grid;grid-template-columns:minmax(140px,.55fr) minmax(240px,1.15fr) minmax(180px,.8fr);align-items:start;align-content:start;gap:10px;padding:12px 16px;border-bottom:1px solid var(--line);background:var(--surface)}.arena-controls{background:color-mix(in srgb,var(--surface-subtle) 78%,var(--surface))}.rain-controls .mini-segmented{align-self:start;grid-auto-rows:36px}.rain-controls .mini-segmented button{height:36px;min-height:0}.mini-segmented{grid-template-columns:repeat(3,minmax(0,1fr))}.game-mode-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.input-mode-tabs,.speed-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}.challenge-brief{display:flex;min-height:42px;align-items:center;justify-content:space-between;gap:10px;padding:0 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface-subtle)}.challenge-brief span,.challenge-brief strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.challenge-brief span{color:var(--muted);font-size:.72rem;font-weight:700}.challenge-brief strong{color:var(--ink);font-size:.78rem;font-weight:700}.challenge-hud{display:grid;grid-template-columns:minmax(190px,.55fr) minmax(0,1.45fr);gap:8px;padding:6px 16px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--surface-subtle) 88%,var(--brand-soft))}.rank-card,.mission-card{border:0;border-radius:8px;background:var(--surface)}.rank-card{display:grid;grid-template-columns:auto minmax(70px,1fr) auto;align-items:center;gap:8px;padding:7px 10px}.rank-card>div:first-child{display:flex;align-items:center;justify-content:flex-start;gap:6px}.rank-card span,.rank-card small,.mission-card span{color:var(--muted);font-size:.72rem;font-weight:600}.rank-card strong{color:var(--brand);font-size:.98rem;font-weight:700;line-height:1}.rank-progress{height:7px;overflow:hidden;border-radius:999px;background:var(--surface-muted)}.rank-progress span{display:block;height:100%;border-radius:inherit;background:var(--brand);transform-origin:left;transition:transform .18s ease}.mission-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.mission-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:6px;padding:7px 9px}.mission-card svg{color:var(--subtle)}.mission-card strong{color:var(--ink);font-size:.76rem;font-weight:700}.mission-card.complete{background:var(--success-soft)}.mission-card.complete svg,.mission-card.complete strong{color:var(--success)}.phrase-mode-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}.rain-stage{position:relative;flex:1 1 320px;overflow:hidden;background:linear-gradient(90deg,transparent 0 24%,rgba(139,148,161,.08) 24% 24.4%,transparent 24.4% 49.8%,rgba(139,148,161,.08) 49.8% 50.2%,transparent 50.2% 75.6%,rgba(139,148,161,.08) 75.6% 76%,transparent 76%),radial-gradient(circle at 50% 0%,rgba(255,91,102,.08),transparent 38%),linear-gradient(var(--surface-subtle),var(--surface))}.rain-stage.stage-hit{animation:stage-hit .18s ease-out}.rain-stage.stage-hit-burst,.rain-stage.stage-hit-shock{animation:stage-hit-strong .22s ease-out}.game-over-state{position:relative;z-index:5}.best-result{color:var(--muted);font-size:.76rem;font-weight:700}.rain-stage:before{content:"";position:absolute;top:16px;right:16px;bottom:16px;left:16px;border:1px solid color-mix(in srgb,var(--line) 70%,transparent);border-radius:8px;pointer-events:none}.rain-stage:after{content:"";position:absolute;right:16px;bottom:16px;left:16px;height:44px;border-top:1px solid rgba(255,91,102,.32);background:linear-gradient(180deg,rgba(255,91,102,.08),transparent);pointer-events:none}.falling-word{position:absolute;z-index:2;display:grid;gap:3px;min-width:118px;max-width:220px;padding:9px 12px;border:1px solid var(--line-strong);border-radius:8px;background:linear-gradient(180deg,color-mix(in srgb,var(--surface) 94%,#ffffff),var(--surface));color:var(--ink);text-align:left;box-shadow:0 16px 30px #0000002e,inset 0 1px #ffffff14;transform:translate(-50%)}.falling-word:hover{border-color:var(--brand);box-shadow:0 18px 34px #00000038,0 0 0 3px var(--brand-soft)}.falling-word.recovery-word{border-color:var(--success);box-shadow:0 16px 30px #0000002e,0 0 0 3px var(--success-soft)}.falling-word>small{justify-self:start;padding:2px 6px;border-radius:999px;background:var(--success-soft);color:var(--success);font-size:.62rem;font-weight:700;line-height:1.2}.falling-word strong{overflow-wrap:anywhere;font-size:.88rem;font-weight:700}.falling-word.long-prompt{min-width:190px;max-width:340px}.falling-word.long-prompt strong{font-size:.78rem;line-height:1.22}.falling-word span{color:var(--muted);font-size:.74rem;font-weight:600}.impact-effect{position:absolute;z-index:4;width:1px;height:1px;--impact-color: var(--brand);--impact-soft: var(--brand-soft);--impact-glow: rgba(255, 91, 102, .46);--slash-angle: -14deg;--slash-angle-alt: 18deg;--slash-width: 112px;pointer-events:none;transform:translate(-50%)}.impact-pop{--impact-color: #ff5b66;--impact-soft: rgba(255, 91, 102, .14);--impact-glow: rgba(255, 91, 102, .48);--slash-angle: -12deg;--slash-angle-alt: 20deg}.impact-crack{--impact-color: #f59e0b;--impact-soft: rgba(245, 158, 11, .14);--impact-glow: rgba(245, 158, 11, .5);--slash-angle: 16deg;--slash-angle-alt: -24deg}.impact-slice{--impact-color: #38bdf8;--impact-soft: rgba(56, 189, 248, .14);--impact-glow: rgba(56, 189, 248, .46);--slash-angle: -32deg;--slash-angle-alt: 28deg}.impact-bounce{--impact-color: #65d6a1;--impact-soft: rgba(101, 214, 161, .14);--impact-glow: rgba(101, 214, 161, .48);--slash-angle: 8deg;--slash-angle-alt: -18deg}.impact-burst{--impact-color: #a78bfa;--impact-soft: rgba(167, 139, 250, .16);--impact-glow: rgba(167, 139, 250, .54);--slash-angle: -24deg;--slash-angle-alt: 24deg;--slash-width: 136px}.impact-shock{--impact-color: #fb7185;--impact-soft: rgba(251, 113, 133, .18);--impact-glow: rgba(251, 113, 133, .62);--slash-angle: -38deg;--slash-angle-alt: 34deg;--slash-width: 156px}.impact-card{position:absolute;display:grid;min-width:112px;gap:2px;padding:8px 11px;border:1px solid var(--impact-color);border-radius:8px;background:var(--impact-soft);box-shadow:0 10px 28px var(--impact-glow);animation:impact-card .52s ease-out forwards;transform:translate(-50%)}.impact-card strong{color:var(--ink);font-size:.84rem;font-weight:700}.impact-card span{color:var(--impact-color);font-size:.76rem;font-weight:700}.impact-ring{position:absolute;width:78px;height:78px;border:2px solid var(--impact-color);border-radius:999px;opacity:0;animation:impact-ring .52s ease-out forwards;transform:translate(-50%,-50%) scale(.35)}.impact-flash{position:absolute;width:var(--slash-width);height:3px;border-radius:999px;background:linear-gradient(90deg,transparent,#ffffff 8%,var(--impact-color) 36%,#ffffff 58%,transparent);box-shadow:0 0 18px var(--impact-glow),0 0 34px var(--impact-glow);opacity:0;animation:impact-flash .42s ease-out forwards;transform:translate(-50%,-50%) rotate(var(--slash-angle)) scaleX(.35)}.impact-flash:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:inherit;opacity:0;transform:rotate(var(--slash-angle-alt))}.impact-burst .impact-flash:after,.impact-shock .impact-flash:after{animation:impact-cross-flash .42s ease-out forwards}.impact-shard{position:absolute;width:9px;height:3px;border-radius:999px;background:var(--impact-color);box-shadow:0 0 12px var(--impact-glow);opacity:0;animation:impact-shard .52s ease-out forwards;transform:translate(-50%,-50%)}.impact-burst .impact-ring,.impact-shock .impact-ring{width:96px;height:96px}.impact-shock .impact-flash{height:4px}.impact-crack .impact-shard,.impact-shock .impact-shard{animation-duration:.62s}.impact-bounce .impact-shard{animation-timing-function:cubic-bezier(.16,1,.3,1)}.shard-1{--tx: -34px;--ty: -22px;--rot: -36deg}.shard-2{--tx: 34px;--ty: -18px;--rot: 28deg}.shard-3{--tx: -28px;--ty: 20px;--rot: 22deg}.shard-4{--tx: 30px;--ty: 24px;--rot: -24deg}.shard-5{--tx: -8px;--ty: -38px;--rot: 78deg}.shard-6{--tx: 10px;--ty: 38px;--rot: 78deg}.shard-7{--tx: 44px;--ty: 4px;--rot: -6deg}.shard-8{--tx: -44px;--ty: 4px;--rot: 6deg}.shard-9{--tx: 22px;--ty: -34px;--rot: -52deg}.shard-10{--tx: -22px;--ty: 34px;--rot: -52deg}.rain-input-bar{display:grid;grid-template-columns:minmax(0,1fr) 112px;gap:10px;padding:12px 16px}.rain-input-bar input{height:40px;padding:0 12px}.phrase-stage{display:grid;grid-template-rows:auto minmax(150px,1fr) auto;gap:14px;overflow:auto;padding:18px}.phrase-prompt{display:grid;gap:8px;padding:16px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.phrase-prompt small{color:var(--brand);font-size:.76rem;font-weight:700}.phrase-prompt strong{color:var(--ink);font-size:1rem;line-height:1.55}.phrase-stage textarea{min-height:150px;resize:vertical;padding:13px;line-height:1.6}.word-chip-row{display:flex;flex-wrap:wrap;gap:7px;margin-top:8px}.word-chip-row button{min-height:32px;padding:0 10px;border:1px solid var(--line);border-radius:999px;background:var(--surface-subtle);color:var(--ink);font-size:.8rem;font-weight:600}.mobile-study-layout{grid-template-columns:1fr;min-height:0;height:100%;overflow:hidden}.mobile-study-pane{display:grid;min-height:0;height:100%;overflow:hidden;border:1px solid var(--line);border-radius:12px;background:var(--surface);box-shadow:var(--shadow-soft)}.mobile-wordbook{grid-template-rows:auto minmax(0,1fr)}.mobile-wordbook-toolbar{display:grid;gap:10px;padding:14px;border-bottom:1px solid var(--line);background:var(--surface-subtle)}.mobile-toolbar-compact{gap:8px;padding:10px 12px}.mobile-set-select{display:grid;gap:6px}.mobile-set-select span,.mobile-wordbook-summary span,.mobile-template-reader header span{color:var(--muted);font-size:.76rem;font-weight:700;line-height:1.45}.mobile-set-select select{width:100%;min-height:42px;padding:0 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);font:inherit;font-size:.86rem;font-weight:600}.mobile-wordbook-summary{display:grid;gap:4px}.mobile-wordbook-summary strong{color:var(--ink);font-size:.94rem}.mobile-wordbook-list,.mobile-template-lines{min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y;padding:12px}.mobile-wordbook-summary small{color:var(--muted);font-size:.72rem;font-weight:700;line-height:1.45}.mobile-wordbook-list{display:grid;gap:8px;align-content:start}.mobile-word-card{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface-subtle);color:inherit;text-align:left}.mobile-word-index{display:grid;place-items:start center;width:28px;color:var(--subtle);font-size:.72rem;font-weight:700}.mobile-word-body{display:grid;gap:4px;min-width:0}.mobile-word-body strong{color:var(--ink);font-size:.96rem;line-height:1.35;word-break:break-word}.mobile-word-body em{color:var(--brand);font-size:.82rem;font-style:normal;font-weight:700;line-height:1.4}.mobile-word-body small{color:var(--muted);font-size:.74rem;line-height:1.45}.mobile-memorize-sheet{grid-template-rows:auto minmax(0,1fr)}.mobile-memorize-toolbar{display:grid;gap:10px;padding:12px;border-bottom:1px solid var(--line);background:var(--surface)}.mobile-memorize-toolbar-top{display:flex;align-items:center;gap:8px}.mobile-memorize-toolbar-top .mobile-set-select-input{flex:1;min-width:0}.memorize-progress-pill{display:inline-flex;align-items:baseline;justify-content:center;gap:1px;flex:0 0 auto;min-width:48px;padding:8px 10px;border-radius:10px;background:var(--brand-soft);color:var(--brand);font-size:.9rem;font-weight:700;line-height:1}.memorize-progress-pill small{color:var(--muted);font-size:.72rem;font-weight:600}.memorize-cover-presets{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:3px;padding:2px;border-radius:9px;background:var(--surface-muted)}.memorize-cover-presets button{min-height:28px;padding:0 8px;border:0;border-radius:7px;background:transparent;color:var(--muted);font-size:.74rem;font-weight:600;white-space:nowrap}.memorize-cover-presets button.active{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px #0000001f}.memorize-sheet-wrap{position:relative;display:grid;grid-template-rows:minmax(0,1fr);min-height:0;width:100%;overflow:hidden;background:linear-gradient(var(--line) 0 0) calc(100% / 3) 0 / 1px 100% no-repeat,linear-gradient(var(--line) 0 0) calc(200% / 3) 0 / 1px 100% no-repeat,var(--surface)}.memorize-sheet-header,.memorize-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.memorize-sheet-header{display:none}.memorize-sheet-header span,.memorize-cell{min-width:0;padding:12px 10px}.memorize-sheet-scroll{position:relative;z-index:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.memorize-row{position:relative;align-items:stretch;min-height:52px;border-bottom:1px solid color-mix(in srgb,var(--line) 75%,transparent)}.memorize-term{display:flex;align-items:center;color:var(--ink);font-size:.9rem;font-weight:600;line-height:1.35;word-break:break-word}.memorize-blank{display:flex;align-items:center;justify-content:center;min-height:52px;padding:8px 10px;background:transparent}.memorize-blank.is-interactive{position:relative;z-index:4}.memorize-blank.is-covered{pointer-events:none}.memorize-blank-input{width:100%;min-height:36px;padding:6px 8px;border:0;border-bottom:1.5px solid var(--line-strong);border-radius:0;background:transparent;color:var(--ink);-webkit-text-fill-color:var(--ink);caret-color:var(--brand);font:inherit;font-size:.86rem;font-weight:600;line-height:1.35;text-align:center}.memorize-blank-input::placeholder{color:var(--subtle);-webkit-text-fill-color:var(--subtle);font-weight:700}.memorize-blank-input:focus-visible{outline:none;border-bottom-color:var(--brand);background:transparent}.memorize-blank-input.is-correct{color:var(--success);-webkit-text-fill-color:var(--success);border-bottom-color:var(--success)}.memorize-blank-input.is-wrong{color:var(--danger);-webkit-text-fill-color:var(--danger);border-bottom-color:var(--danger)}.memorize-blank-input:read-only{color:transparent;-webkit-text-fill-color:transparent;caret-color:transparent}.memorize-meaning{display:flex;align-items:center;color:var(--brand);font-size:.86rem;font-weight:600;line-height:1.4;word-break:keep-all}.memorize-cover{position:absolute;top:0;bottom:0;z-index:3;width:calc(100% / 3);border:0;background:color-mix(in srgb,var(--surface) 94%,var(--brand));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--brand) 55%,transparent),0 0 0 1px color-mix(in srgb,var(--brand) 18%,transparent);touch-action:none;cursor:grab}.memorize-cover:after{content:"";position:absolute;top:50%;left:50%;width:3px;height:28px;border-radius:999px;background:color-mix(in srgb,var(--brand) 55%,transparent);transform:translate(-50%,-50%);box-shadow:8px 0 color-mix(in srgb,var(--brand) 35%,transparent);opacity:.9;pointer-events:none}.memorize-cover:active{cursor:grabbing}.mobile-template-book{grid-template-rows:auto minmax(0,1fr)}.mobile-template-picker{display:flex;gap:8px;overflow-x:auto;padding:12px;border-bottom:1px solid var(--line);background:var(--surface-subtle)}.mobile-template-chip{display:grid;gap:4px;min-width:168px;max-width:220px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);text-align:left}.mobile-template-chip.active{border-color:var(--brand);background:color-mix(in srgb,var(--brand) 8%,var(--surface))}.mobile-template-chip strong{font-size:.84rem;line-height:1.35}.mobile-template-chip small{color:var(--muted);font-size:.72rem;font-weight:700}.mobile-template-reader{display:grid;grid-template-rows:auto minmax(0,1fr);min-height:0;overflow:hidden}.mobile-template-reader header{display:grid;gap:4px;padding:14px;border-bottom:1px solid var(--line)}.mobile-template-reader header strong{color:var(--ink);font-size:.98rem}.mobile-template-reader header small{color:var(--brand);font-size:.72rem;font-weight:700}.mobile-template-lines p{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;margin:0 0 12px;color:var(--ink);font-size:.88rem;line-height:1.55}.mobile-template-lines p span{color:var(--subtle);font-weight:700}.mobile-empty-state{margin:24px 12px}.mobile-resource-pane,.mobile-resource-grid,.mobile-template-viewer{display:grid;min-height:0}.mobile-resource-pane{gap:14px;height:100%}.mobile-resource-head{display:grid;gap:10px}.mobile-resource-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.mobile-resource-grid{grid-template-rows:auto minmax(0,1fr);gap:12px}.mobile-template-viewer{grid-template-rows:minmax(140px,.8fr) minmax(0,1fr);gap:12px}.template-reader{display:grid;grid-template-rows:auto minmax(0,1fr);min-height:0;overflow:hidden;border:1px solid var(--line);border-radius:8px;background:var(--surface-subtle)}.template-reader header{display:grid;gap:4px;padding:12px;border-bottom:1px solid var(--line)}.template-reader header strong{color:var(--ink);font-size:.92rem}.template-reader>div{overflow:auto;padding:12px}.template-reader p{display:grid;grid-template-columns:auto minmax(0,1fr);gap:9px;margin:0 0 10px;color:var(--ink);font-size:.82rem;line-height:1.5}.template-reader p span{color:var(--subtle);font-weight:700}@keyframes impact-card{0%{opacity:1;transform:translate(-50%) scale(.98)}55%{opacity:1;transform:translate(-50%,-12px) scale(1)}to{opacity:0;transform:translate(-50%,-28px) scale(.96)}}@keyframes impact-ring{0%{opacity:.85;transform:translate(-50%,-50%) scale(.35)}to{opacity:0;transform:translate(-50%,-50%) scale(1.28)}}@keyframes impact-flash{0%{opacity:0;transform:translate(-50%,-50%) rotate(var(--slash-angle)) scaleX(.18)}18%{opacity:1}48%{opacity:.88;transform:translate(-50%,-50%) rotate(var(--slash-angle)) scaleX(1.04)}to{opacity:0;transform:translate(-50%,-50%) rotate(var(--slash-angle)) scaleX(1.18)}}@keyframes impact-cross-flash{0%{opacity:0;transform:rotate(var(--slash-angle-alt)) scaleX(.1)}24%{opacity:0}42%{opacity:.95;transform:rotate(var(--slash-angle-alt)) scaleX(.72)}to{opacity:0;transform:rotate(var(--slash-angle-alt)) scaleX(1.08)}}@keyframes impact-shard{0%{opacity:.95;transform:translate(-50%,-50%) rotate(var(--rot)) scaleX(.7)}to{opacity:0;transform:translate(calc(-50% + var(--tx)),calc(-50% + var(--ty))) rotate(var(--rot)) scaleX(1)}}@keyframes stage-hit{0%{transform:translate(0)}35%{transform:translate(-2px)}70%{transform:translate(2px)}to{transform:translate(0)}}@keyframes stage-hit-strong{0%{transform:translate(0)}18%{transform:translate(-4px,1px)}42%{transform:translate(4px,-2px)}68%{transform:translate(-2px,1px)}to{transform:translate(0)}}@media(max-width:1100px){body{height:100dvh;overflow:hidden}#root{height:100dvh;min-height:0;overflow:hidden}.app{height:100dvh;min-height:0;overflow:hidden;grid-template-rows:auto minmax(0,1fr);gap:0;padding:max(0px,env(safe-area-inset-top)) 0 max(0px,env(safe-area-inset-bottom)) 0;background:var(--surface)}.topbar,.product-layout{width:100%}.topbar,.topbar-mobile{display:block;padding:6px 10px;border-bottom:1px solid var(--line);background:var(--surface)}.topbar-mobile-row{display:flex;align-items:center;gap:8px}.mobile-brand-text{flex:0 0 auto;margin:0;color:var(--ink);font-size:.95rem;font-weight:700;letter-spacing:-.02em;line-height:1}.topbar-mobile .mode-tabs{flex:0 0 auto;margin-left:auto;width:auto;max-width:none;padding:2px;border:0;border-radius:9px;background:var(--surface-muted);box-shadow:none;overflow:visible}.mode-tabs-mobile button{min-height:30px;min-width:54px;justify-content:center;padding:0 10px;border-radius:7px}.mode-tabs-mobile button strong{font-size:.74rem;font-weight:600}.mode-tabs-mobile button.active{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px #0000001f}.theme-toggle-compact{width:30px;height:30px;flex:0 0 auto;padding:0;justify-content:center;border:0;border-radius:9px;background:var(--surface-muted);box-shadow:none}.mobile-study-layout,.product-layout{min-height:0;height:100%;overflow:hidden;border:0;border-radius:0;box-shadow:none}.mobile-study-pane{min-height:0;height:100%;border:0;border-radius:0;box-shadow:none;overflow:hidden}.mobile-memorize-toolbar{gap:6px;padding:8px 10px;border-bottom:1px solid var(--line)}.mobile-set-select-input{width:100%;min-height:36px;padding:0 12px;border:0;border-radius:10px;background:var(--surface-muted);color:var(--ink);font:inherit;font-size:.84rem;font-weight:600}.memorize-cover-presets button{min-height:28px;font-size:.74rem}.memorize-row{min-height:54px}.memorize-term{font-size:.94rem}.memorize-meaning{font-size:.88rem}.memorize-blank{min-height:54px}.mobile-template-picker{padding:8px 10px;gap:6px}.mobile-template-chip{min-width:140px;padding:8px 10px;border-radius:10px}.mobile-template-reader header{padding:10px 12px}.mobile-template-lines{padding:10px 12px}.mobile-template-lines p{font-size:.92rem;line-height:1.55}.game-pane,.practice-pane,.desktop-only-pane{display:none!important}.product-layout{grid-template-columns:1fr;min-height:0;height:100%;overflow:hidden}.mobile-study-pane{min-height:0;height:100%}.mobile-wordbook-list,.mobile-template-lines,.memorize-sheet-scroll,.template-pane .study-set-list{min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;touch-action:pan-y}.review-pane,.status-pill{display:none}}@media(max-width:860px){.status-pill,.theme-toggle span{display:none}.practice-toolbar,.arena-header,.insight-strip,.rain-controls,.challenge-hud,.rain-input-bar{padding-left:12px;padding-right:12px}.practice-toolbar h1{font-size:1.05rem}.arena-header{grid-template-columns:1fr;gap:12px}.arena-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;width:100%}.arena-stat{min-width:0}.insight-strip{gap:8px}.metric{gap:6px}.metric small{font-size:.66rem}.metric strong{font-size:.88rem}.rain-controls{grid-template-columns:1fr}.challenge-brief{min-height:38px}.challenge-hud,.mission-grid{grid-template-columns:1fr}.mission-card{grid-template-columns:auto minmax(0,1fr) auto}.mission-card svg{grid-row:auto}.rain-input-bar{grid-template-columns:1fr}.mobile-resource-grid,.mobile-template-viewer{grid-template-rows:auto auto}}@media(max-width:520px){.brand-mark{width:38px;height:38px}.brand-lockup p{font-size:.94rem}.brand-lockup span{font-size:.72rem}.mode-tabs button svg{display:none}.template-pane,.review-pane{padding:12px}.template-list{flex-basis:auto;max-height:240px}.arena-meta{grid-template-columns:repeat(3,minmax(0,1fr))}.arena-play{grid-column:1 / -1;width:100%}.arena-stat{padding:8px}.arena-stat span{font-size:.62rem}.launch-state{width:calc(100% - 28px);padding:22px}.falling-word{min-width:104px;max-width:176px;padding:8px 10px}.falling-word.long-prompt{min-width:156px;max-width:236px}.falling-word strong{font-size:.8rem}}.brand-mark{display:block;width:30px;height:30px;flex:0 0 auto;border:0;border-radius:0;background:none;box-shadow:none}.brand-lockup p{font-size:1.02rem;font-weight:700;letter-spacing:-.02em}.brand-lockup span{margin-top:1px;color:var(--subtle);font-size:.74rem;font-weight:500}.theme-toggle-compact{width:36px;min-height:36px;padding:0;border-color:transparent;background:transparent;color:var(--muted)}.theme-toggle-compact:hover{background:var(--surface-muted)}.theme-toggle svg{color:currentColor}.primary-action,.secondary-action,.icon-action,.mini-action{border-radius:8px;box-shadow:none;transition:background-color .16s ease,border-color .16s ease,color .16s ease,transform .12s ease}.primary-action:hover,.secondary-action:hover,.icon-action:hover,.mini-action:hover,.template-row:hover,.study-set-row:hover,.word-chip-row button:hover{box-shadow:none;transform:none}.primary-action:active,.secondary-action:active,.icon-action:active{transform:scale(.98)}.secondary-action:hover,.icon-action:hover,.mini-action:hover{border-color:var(--line-strong);background:var(--surface-subtle)}.icon-action,.mini-action{border-color:transparent;background:transparent;color:var(--muted)}.pane-title svg,.metric svg{color:var(--subtle)}.pane-title h2{color:var(--ink);font-size:.86rem;font-weight:600}.section-kicker{color:var(--subtle);font-size:.74rem;font-weight:500}.practice-toolbar h1{font-size:1.3rem;font-weight:700;letter-spacing:-.02em}.template-row,.study-set-row{border-color:transparent;background:transparent;transition:background-color .14s ease}.template-row:hover,.study-set-row:hover{border-color:transparent;background:color-mix(in srgb,var(--surface) 60%,transparent)}.template-row.selected,.study-set-row.selected{border-color:var(--line);background:var(--surface)}.template-row strong,.study-set-main strong{font-size:.88rem;font-weight:600}.template-row svg{color:var(--subtle)}.template-row .level-dots{display:flex}.level-dots{gap:3px;margin-top:2px}.level-dots i{width:16px;height:4px;border-radius:2px;background:var(--line-strong);opacity:.6}.level-dots i.tried{background:var(--brand);opacity:.35}.level-dots i.cleared{background:var(--brand);opacity:1}.challenge-pool-summary{border:0;background:var(--surface-muted)}.review-list p{border-color:var(--line)}.editor-stack input,.editor-stack textarea,.mobile-set-select-input{border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink)}.editor-stack label>span{color:var(--muted);font-size:.76rem;font-weight:500}.segmented-control,.mini-segmented{border:0;background:var(--surface-muted)}.segmented-control button.active{box-shadow:0 1px 2px #15181c14}.mini-segmented button.active{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px #15181c14}.text-action{align-self:flex-start;padding:4px 0;border:0;background:none;color:var(--subtle);font-size:.76rem;font-weight:500}.text-action:hover{color:var(--danger)}.template-row.static-row{cursor:default}.template-row:disabled{cursor:not-allowed;opacity:.45}.practice-pane.has-level-tabs{grid-template-rows:auto auto auto minmax(0,1fr) auto}.practice-pane .practice-toolbar{border-bottom:0;padding:18px 22px 6px}.level-ladder{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:0;padding:8px 22px 16px;list-style:none}.level-ladder li{display:flex;align-items:center;gap:10px;min-width:0}.level-ladder li:not(:last-child):after{content:"";flex:1 1 auto;min-width:12px;height:2px;margin-right:10px;border-radius:1px;background:var(--line)}.level-ladder li.cleared:not(:last-child):after{background:var(--brand)}.level-ladder button{display:flex;flex:0 0 auto;white-space:nowrap;align-items:center;gap:8px;padding:0;border:0;background:none;color:var(--muted);font-size:.84rem;font-weight:500}.level-ladder-step{position:relative;z-index:1;display:grid;width:28px;height:28px;flex:0 0 auto;place-items:center;border:2px solid var(--line);border-radius:50%;background:var(--surface);color:var(--subtle);font-size:.78rem;font-weight:700;font-variant-numeric:tabular-nums;transition:border-color .16s ease,background-color .16s ease,color .16s ease}.level-ladder li.cleared .level-ladder-step{border-color:var(--brand);background:var(--brand);color:#fff}.level-ladder li.active .level-ladder-step{border-color:var(--ink);color:var(--ink)}.level-ladder li.active.cleared .level-ladder-step{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft);color:#fff}.level-ladder li.active button{color:var(--ink);font-weight:700}.level-ladder button:hover .level-ladder-step{border-color:var(--line-strong)}.typing-gauges{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.typing-gauge{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:baseline;gap:4px 12px;padding:12px 22px 14px}.typing-gauge+.typing-gauge{border-left:1px solid var(--line)}.typing-gauge-label{color:var(--muted);font-size:.78rem;font-weight:500}.typing-gauge strong{justify-self:end;color:var(--ink);font-size:1.35rem;font-variant-numeric:tabular-nums;font-weight:700;letter-spacing:-.02em}.typing-gauge strong small{margin-left:3px;color:var(--subtle);font-size:.74rem;font-weight:500;letter-spacing:0}.typing-gauge-bar{grid-column:1 / -1;height:4px;overflow:hidden;border-radius:2px;background:var(--surface-muted)}.typing-gauge-bar i{display:block;height:100%;background:var(--ink);transform-origin:left;transition:transform .24s cubic-bezier(.2,.8,.2,1)}.typing-gauge.warn .typing-gauge-bar i{background:var(--warning)}.typing-gauge:first-child .typing-gauge-bar i{background:var(--brand)}.karaoke-stage{display:grid;align-content:center;padding:28px 22px;background:var(--surface-subtle)}.line-stack{gap:10px;width:100%;max-width:880px}.practice-pair{gap:6px;padding:10px 18px;border:0;border-radius:10px;background:transparent}.completed-pair,.upcoming-pair{opacity:.45}.completed-pair .typed-line,.upcoming-pair .typed-line{display:none}.active-pair{padding:18px;border:1px solid var(--line);background:var(--surface);box-shadow:0 1px 2px #15181c0a,0 8px 24px -12px #15181c1f}.prompt-line,.typed-line,.typing-mirror,.inline-typing-input{font-family:var(--font-mono);font-size:1.08rem;font-variant-ligatures:none;line-height:1.7}.prompt-line{color:var(--ink);font-weight:500}.current-prompt{color:var(--ink)}.prompt-line.is-revealed{color:var(--warning)}.inline-input-wrap{border:0;border-top:1px dashed var(--line-strong);border-radius:0;background:transparent}.typing-mirror,.inline-typing-input{padding:12px 0 0}.inline-input-wrap,.typing-mirror,.inline-typing-input{min-height:64px}.pending-char{color:var(--line-strong)}.correct-char{color:var(--ink)}.wrong-char{border-radius:2px;background:var(--danger-soft);color:var(--danger);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px}.typing-dock{padding:10px 22px}.notice{min-height:34px;border:0;background:transparent;padding:0;color:var(--muted);font-size:.8rem;font-weight:500}.notice span:last-child{color:var(--subtle);font-family:var(--font-mono);font-size:.74rem}.notice.warning{border:0;background:transparent;color:var(--warning)}.empty-state,.complete-state{gap:8px}.empty-state svg,.complete-state svg{color:var(--subtle)}.complete-state svg{color:var(--brand)}.empty-state strong,.complete-state strong{font-size:1.15rem;font-weight:700;letter-spacing:-.01em}.complete-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:14px}.complete-actions button{flex:0 0 auto;padding:0 16px}.level-board{display:grid;gap:2px}.level-board-row{display:flex;align-items:center;gap:12px;padding:10px 8px;border-radius:8px}.level-board-row.current{background:var(--surface)}.level-board-row>span:last-child{display:grid;gap:2px}.level-board-row strong{font-size:.86rem;font-weight:600}.level-board-row small,.level-board-note{color:var(--muted);font-size:.76rem;font-weight:400;line-height:1.5}.level-board-row small{font-variant-numeric:tabular-nums}.level-board-note{margin:4px 8px 0;text-wrap:pretty}.level-board-badge{display:grid;width:24px;height:24px;flex:0 0 auto;place-items:center;border:1.5px solid var(--line-strong);border-radius:50%;color:var(--subtle);font-size:.74rem;font-weight:700}.level-board-row.cleared .level-board-badge{border-color:var(--brand);background:var(--brand);color:#fff}.memorize-sheet-wrap{background:linear-gradient(var(--line) 0 0) calc(100% / 3) 0 / 1px 100% no-repeat,linear-gradient(var(--line) 0 0) calc(200% / 3) 0 / 1px 100% no-repeat,var(--surface)}.memorize-term{font-family:var(--font-mono);font-size:.92rem;font-weight:500}.memorize-meaning{color:var(--muted);font-weight:500}.memorize-blank-input{font-family:var(--font-mono);font-weight:500}.memorize-cover{border-left:1px solid var(--line-strong);border-right:1px solid var(--line-strong);background:repeating-linear-gradient(-45deg,transparent 0 9px,color-mix(in srgb,var(--ink) 5%,transparent) 9px 10px),var(--surface-muted);box-shadow:0 0 0 1px var(--line),0 6px 18px -8px #15181c40}.memorize-cover:after{width:4px;height:36px;background:var(--line-strong);box-shadow:8px 0 0 var(--line-strong)}.memorize-progress-pill{background:var(--surface-muted);color:var(--ink);font-variant-numeric:tabular-nums}.memorize-cover-presets button.active{box-shadow:0 1px 2px #15181c1a}.mock-pane{grid-template-rows:auto auto minmax(0,1fr) auto}.mock-timer{display:inline-flex;align-items:center;gap:6px;color:var(--ink);font-family:var(--font-mono);font-size:1.25rem;font-variant-numeric:tabular-nums;font-weight:600}.mock-timer svg{color:var(--subtle)}.mock-timer.is-urgent,.mock-timer.is-urgent svg{color:var(--danger)}.mock-prompt{max-height:32vh;overflow:auto;padding:4px 22px 16px;color:var(--ink);font-size:.92rem;line-height:1.6;text-wrap:pretty}.mock-prompt p{max-width:72ch;margin:0 0 8px}.mock-prompt ul{max-width:72ch;margin:0 0 8px;padding-left:20px}.mock-prompt li::marker{color:var(--subtle)}.mock-editor{display:flex;min-height:0;padding:0 22px 12px}.mock-editor textarea{flex:1;min-height:0;padding:16px 18px;border:1px solid var(--line-strong);border-radius:4px;background:var(--surface);color:var(--ink);font-family:Arial,var(--font-sans);font-size:1rem;line-height:1.7;resize:none}.mock-editor textarea:read-only{background:var(--surface-subtle)}.mock-editor textarea:focus{border-color:var(--ink);box-shadow:none;outline:none}.mock-dock{display:flex;align-items:center;justify-content:space-between;gap:12px}.mock-dock .editor-actions{display:flex}.mock-dock .primary-action,.mock-dock .secondary-action{flex:0 0 auto;padding:0 20px}.mock-word-count{display:grid;gap:4px;min-width:220px;color:var(--ink);font-size:.92rem;font-variant-numeric:tabular-nums;font-weight:700}.mock-word-count small{margin-left:6px;color:var(--subtle);font-size:.74rem;font-weight:500}.mock-word-meter{position:relative;height:4px;border-radius:2px;background:var(--surface-muted)}.mock-word-meter:before{content:"";position:absolute;inset:0 auto 0 60%;width:20%;background:color-mix(in srgb,var(--success) 25%,transparent)}.mock-word-meter i{position:absolute;inset:0 auto 0 0;border-radius:2px;background:var(--subtle)}.mock-word-count.is-ok .mock-word-meter i{background:var(--success)}.mock-word-count.is-over .mock-word-meter i{background:var(--danger)}.mock-prompt-list,.mock-answer-list{flex:1 1 0;min-height:0;overflow:auto}.mock-checklist{display:grid;gap:2px}.mock-checklist label{display:flex;align-items:flex-start;gap:10px;padding:9px 8px;border-radius:8px;color:var(--ink);font-size:.84rem;font-weight:500;line-height:1.45;cursor:pointer}.mock-checklist label:hover{background:var(--surface)}.mock-checklist input{width:16px;height:16px;margin-top:2px;accent-color:var(--ink)}.mock-checklist input:checked+span{color:var(--subtle);text-decoration:line-through}.records-pane{grid-template-rows:auto auto minmax(0,1fr)}.records-pane .practice-toolbar{border-bottom:0}.records-pane .insight-strip{grid-template-columns:repeat(4,minmax(0,1fr));gap:0;padding:0;border-top:1px solid var(--line);background:transparent}.records-pane .metric{gap:0;padding:14px 22px}.records-pane .metric+.metric{border-left:1px solid var(--line)}.records-pane .metric svg{display:none}.records-pane .metric span{display:grid;gap:4px}.records-pane .metric small{color:var(--muted);font-size:.78rem;font-weight:500}.records-pane .metric strong{font-size:1.5rem;font-variant-numeric:tabular-nums;font-weight:700;letter-spacing:-.02em}.records-body{display:flex;flex-direction:column;gap:16px;min-height:0;overflow:auto;padding:20px 22px;background:var(--surface-subtle)}.records-chart{display:grid;grid-template-columns:repeat(14,minmax(0,1fr));align-items:end;gap:6px;height:150px;flex:0 0 auto;padding:16px 16px 10px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}.records-bar{display:grid;grid-template-rows:minmax(0,1fr) auto;height:100%;gap:6px;text-align:center}.records-bar span{align-self:end;min-height:2px;border-radius:3px 3px 0 0;background:var(--brand)}.records-bar.is-empty span{background:var(--line)}.records-bar small{color:var(--subtle);font-size:.7rem;font-variant-numeric:tabular-nums;font-weight:500}.records-list{display:grid;overflow:hidden;border:1px solid var(--line);border-radius:10px;background:var(--surface)}.records-list p{display:grid;grid-template-columns:76px minmax(0,1fr) auto;align-items:center;gap:2px 12px;margin:0;padding:11px 14px;font-size:.86rem}.records-list p+p{border-top:1px solid var(--line)}.records-list strong{overflow:hidden;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.records-list small{grid-column:2;color:var(--muted);font-size:.78rem;font-variant-numeric:tabular-nums;font-weight:400}.records-list time{grid-column:3;grid-row:1 / span 2;color:var(--subtle);font-size:.76rem;font-variant-numeric:tabular-nums}.records-list .review-empty{display:block;color:var(--muted)}.records-kind{grid-row:1 / span 2;color:var(--muted);font-size:.74rem;font-weight:600}@media(min-width:1101px){.app{gap:0;padding:0}.app.has-subnav{grid-template-rows:auto auto minmax(0,1fr)}.topbar{width:100%;grid-template-columns:minmax(220px,1fr) auto minmax(220px,1fr);padding:0 24px;border-bottom:1px solid var(--line);background:var(--surface)}.mode-tabs,.mode-tabs-all{display:flex;gap:4px;padding:0;border:0;border-radius:0;background:none;box-shadow:none;overflow:visible}.mode-tabs button{position:relative;gap:8px;min-height:58px;padding:0 14px;border-radius:0;background:none;color:var(--muted)}.mode-tabs button strong{font-size:.9rem;font-weight:500}.mode-tabs button:hover{color:var(--ink)}.mode-tabs button.active{background:none;color:var(--ink)}.mode-tabs button.active strong{font-weight:700}.mode-tabs button.active:after{content:"";position:absolute;right:14px;bottom:-1px;left:14px;height:2px;background:var(--brand)}.mode-tabs button svg{color:currentColor}.sub-tabs{display:flex;gap:2px;width:100%;max-width:1480px;margin:0 auto;padding:14px 24px 0}.sub-tabs button{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:0 12px;border:0;border-radius:8px;background:none;color:var(--muted);font-size:.84rem;font-weight:500;transition:background-color .14s ease,color .14s ease}.sub-tabs button:hover{color:var(--ink)}.sub-tabs button.active{background:var(--surface);color:var(--ink);font-weight:600;box-shadow:0 0 0 1px var(--line)}.product-layout{width:100%;max-width:1480px;padding:14px 24px 24px;grid-template-columns:minmax(250px,290px) minmax(0,1fr) minmax(220px,260px);gap:20px}.template-pane,.review-pane{padding:4px 0;border:0;border-radius:0;background:transparent;box-shadow:none}.practice-pane,.game-pane{border-color:var(--line);border-radius:12px;box-shadow:0 1px 2px #15181c0a}.template-pane .template-list{flex:0 1 auto;max-height:44%;gap:2px;overflow:auto}.mobile-study-layout .mobile-study-pane{width:100%;max-width:920px;margin:0 auto;border-radius:12px;box-shadow:0 1px 2px #15181c0a}}.speed-arena{background:var(--surface)}.arena-header{padding:18px 22px 14px}.arena-title>span{font-weight:400}.arena-meta{gap:0}.arena-stat{min-width:72px;padding:2px 14px;border:0;border-radius:0;background:none}.arena-stat+.arena-stat{border-left:1px solid var(--line)}.arena-stat svg{display:none}.arena-stat span{font-weight:500}.arena-stat strong{font-size:1.3rem;font-variant-numeric:tabular-nums}.arena-play{margin-left:8px;border:1px solid var(--line)}.rain-controls .mini-segmented,.arena-controls .mini-segmented{background:var(--surface-muted)}.karaoke-stage,.rain-stage,.phrase-stage{background:var(--surface-subtle)}.rain-stage{background:linear-gradient(90deg,transparent 0 24.9%,var(--line) 24.9% 25%,transparent 25% 49.9%,var(--line) 49.9% 50%,transparent 50% 74.9%,var(--line) 74.9% 75%,transparent 75%),var(--surface-subtle)}.rain-stage:before{display:none}.rain-stage:after{border-top:1px dashed color-mix(in srgb,var(--brand) 55%,transparent);background:linear-gradient(0deg,var(--brand-soft),transparent)}.word-chip-row button{border-color:var(--line);font-family:var(--font-mono);font-weight:500}.vocab-review-list strong{font-family:var(--font-mono);font-weight:500}.vocab-review-list strong em{color:var(--muted);font-family:var(--font-sans);font-style:normal;font-weight:500}.study-set-row.selected .challenge-check.checked,.challenge-check.checked{border-color:var(--ink);background:var(--ink)}@media(min-width:1101px){.product-layout.mobile-study-layout{grid-template-columns:minmax(0,1fr)}}.mobile-set-select-input{min-height:38px;padding:0 34px 0 12px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%238a929b' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") right 12px center / 12px no-repeat,var(--surface);color:var(--ink);font:inherit;font-size:.9rem;font-weight:600}.mobile-brand-text{display:inline-flex;align-items:center;gap:8px}.mobile-brand-text .brand-mark{width:24px;height:24px}.mobile-template-chip{border-color:var(--line);background:var(--surface)}.mobile-template-chip.active{border-color:var(--ink);background:var(--surface);box-shadow:inset 0 0 0 1px var(--ink)}.mobile-template-reader header small{color:var(--subtle)}.mobile-template-lines p{font-family:var(--font-mono);font-size:.92rem}@media(min-width:1101px){.template-pane .mock-prompt-list{flex:0 1 auto;max-height:58%}.template-pane .mock-answer-list{flex:1 1 0;max-height:none}}:root{--radius-control: 8px;--radius-surface: 14px;--appbar-h: 60px;--ease-out: cubic-bezier(.2, .8, .2, 1);--surface-raised: var(--surface);--shadow-raised: 0 1px 2px rgba(21, 24, 28, .05), 0 4px 10px -6px rgba(21, 24, 28, .12)}:root[data-theme=dark]{--shadow-raised: 0 1px 2px rgba(0, 0, 0, .3)}html,body,#root{height:auto;min-height:100%;overflow:visible}body{height:auto;min-height:100dvh;overflow-x:hidden;overflow-y:auto;background:var(--app-bg)}#root,#root *{-webkit-user-select:auto;user-select:auto}.wb-app{display:flex;flex-direction:column;min-height:100dvh}.wb-main{flex:1;outline:none}.wb-skip{position:absolute;top:8px;left:8px;z-index:50;padding:8px 12px;border-radius:var(--radius-control);background:var(--ink);color:var(--surface);font-size:.85rem;transform:translateY(-160%)}.wb-skip:focus{transform:none}.wb-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}a{color:inherit;text-decoration:none}:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.wb-appbar{position:sticky;top:0;z-index:20;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;height:var(--appbar-h);padding:0 max(20px,env(safe-area-inset-left));border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--app-bg) 86%,transparent);backdrop-filter:saturate(160%) blur(12px);-webkit-backdrop-filter:saturate(160%) blur(12px)}.wb-appbar>.wb-icon-button{justify-self:end}.wb-brand{display:inline-flex;align-items:center;gap:10px;justify-self:start;color:var(--ink);font-size:1rem;font-weight:700;letter-spacing:-.02em}.wb-brand-mark{width:28px;height:28px}.wb-nav{display:flex;gap:2px;padding:4px;border-radius:999px;background:var(--surface-muted)}.wb-nav a{display:inline-flex;align-items:center;gap:7px;height:34px;padding:0 16px;border-radius:999px;color:var(--muted);font-size:.9rem;font-weight:500;transition:background-color .16s ease,color .16s ease}.wb-nav a:hover{color:var(--ink)}.wb-nav a[aria-current=page]{background:var(--surface);color:var(--ink);font-weight:600;box-shadow:0 1px 2px #15181c14}.wb-tabbar{position:sticky;bottom:0;z-index:20;display:grid;grid-template-columns:repeat(4,1fr);padding:6px 8px max(8px,env(safe-area-inset-bottom));border-top:1px solid var(--line);background:color-mix(in srgb,var(--surface) 92%,transparent);backdrop-filter:saturate(160%) blur(12px);-webkit-backdrop-filter:saturate(160%) blur(12px)}.wb-tabbar a{display:grid;justify-items:center;gap:3px;padding:6px 0;color:var(--subtle);font-size:.7rem;font-weight:500}.wb-tabbar a[aria-current=page]{color:var(--ink);font-weight:700}.wb-tabbar a[aria-current=page] svg{color:var(--brand)}.wb-button,.wb-icon-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--line-strong);border-radius:var(--radius-control);background:var(--surface);color:var(--ink);font:inherit;font-size:.9rem;font-weight:600;white-space:nowrap;cursor:pointer;transition:background-color .16s ease,border-color .16s ease,color .16s ease,transform .12s ease}.wb-button{height:40px;padding:0 16px}.wb-button:hover{border-color:var(--ink)}.wb-button:active,.wb-icon-button:active{transform:scale(.97)}.wb-button.is-primary{border-color:var(--brand);background:var(--brand);color:#fff}.wb-button.is-primary:hover{border-color:var(--brand-dark);background:var(--brand-dark)}:root[data-theme=dark] .wb-button.is-primary:hover{border-color:#d9434a;background:#d9434a}.wb-button.is-quiet{border-color:transparent;background:transparent;color:var(--muted)}.wb-button.is-quiet:hover{color:var(--ink);background:var(--surface-muted)}.wb-button.is-danger-quiet{border-color:transparent;background:transparent;color:var(--danger)}.wb-button.is-small{height:32px;padding:0 12px;font-size:.84rem}.wb-button.is-large{height:48px;padding:0 28px;font-size:1rem}.wb-icon-button{width:36px;height:36px;flex:0 0 auto;border-color:transparent;background:transparent;color:var(--muted)}.wb-icon-button:hover{background:var(--surface-muted);color:var(--ink)}.wb-text-link{color:var(--muted);font-size:.85rem;font-weight:500}.wb-text-link:hover{color:var(--ink);text-decoration:underline;text-underline-offset:3px}.wb-spacer{flex:1}.wb-segment{display:inline-flex;gap:2px;padding:3px;border:0;border-radius:999px;background:var(--surface-muted)}.wb-segment button{height:32px;padding:0 14px;border:0;border-radius:999px;background:transparent;color:var(--muted);font:inherit;font-size:.86rem;font-weight:500;cursor:pointer;transition:background-color .16s ease,color .16s ease}.wb-segment button:hover{color:var(--ink)}.wb-segment button.is-active{background:var(--surface);color:var(--ink);font-weight:600;box-shadow:0 1px 2px #15181c1a}.wb-page{width:100%;max-width:1120px;margin:0 auto;padding:40px 24px 72px}.wb-narrow{max-width:820px}.wb-page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:28px}.wb-page-head h1,.wb-home-head h1{margin:0;color:var(--ink);font-size:1.85rem;font-weight:700;letter-spacing:-.03em;line-height:1.2}.wb-page-head p,.wb-home-head p{max-width:60ch;margin:8px 0 0;color:var(--muted);font-size:.95rem;line-height:1.55}.wb-back-link{display:inline-flex;align-items:center;gap:4px;margin-bottom:10px;color:var(--muted);font-size:.86rem}.wb-back-link:hover{color:var(--ink)}.wb-empty-page{display:grid;justify-items:center;gap:14px;padding:120px 24px;color:var(--muted)}.wb-block{margin-top:32px}.wb-block-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:10px}.wb-block-head h2{margin:0;color:var(--ink);font-size:1.02rem;font-weight:700;letter-spacing:-.01em}.wb-block-meta{color:var(--subtle);font-size:.82rem}.wb-home-head{margin-bottom:24px}.wb-continue{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);overflow:hidden;border:1px solid var(--line);border-radius:var(--radius-surface);background:var(--surface);box-shadow:var(--shadow-raised);transition:border-color .2s ease,transform .2s var(--ease-out)}.wb-continue:hover{border-color:var(--line-strong);transform:translateY(-1px)}.wb-continue.is-compact{grid-template-columns:1fr;margin-bottom:8px}.wb-continue-copy{display:grid;align-content:start;gap:10px;padding:30px 32px}.wb-continue-label{color:var(--brand);font-size:.84rem;font-weight:600}.wb-continue-copy>strong{color:var(--ink);font-size:1.55rem;font-weight:700;letter-spacing:-.02em;line-height:1.25}.wb-continue-level{display:grid;gap:2px;color:var(--ink);font-size:.98rem;font-weight:600}.wb-continue-level small{color:var(--muted);font-size:.86rem;font-weight:400}.wb-continue-cta{display:inline-flex;align-items:center;justify-self:start;gap:8px;height:44px;margin-top:10px;padding:0 20px;border-radius:var(--radius-control);background:var(--brand);color:#fff;font-size:.95rem;font-weight:600}.wb-continue-cta svg{transition:transform .2s var(--ease-out)}.wb-continue:hover .wb-continue-cta svg{transform:translate(3px)}.wb-continue-preview{position:relative;display:grid;align-content:center;gap:10px;padding:30px 32px;border-left:1px solid var(--line);background:var(--surface-subtle);color:var(--ink);font-family:var(--font-mono);font-size:.92rem;line-height:1.6}.wb-continue-preview:after{content:"";position:absolute;inset:auto 0 0;height:48px;background:linear-gradient(transparent,var(--surface-subtle))}.wb-continue-preview p{margin:0}.wb-home-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(280px,1fr);gap:40px;margin-top:8px}.wb-home-side .wb-block:first-child{margin-top:32px}.wb-pips{display:inline-flex;gap:4px}.wb-pips i{width:18px;height:6px;border-radius:3px;background:var(--surface-muted);box-shadow:inset 0 0 0 1px var(--line)}.wb-pips i.is-current{box-shadow:inset 0 0 0 1.5px var(--ink);background:transparent}.wb-pips i.is-cleared{background:var(--brand);box-shadow:none}.wb-blank{color:transparent;background-image:linear-gradient(var(--line-strong),var(--line-strong));background-position:0 88%;background-repeat:no-repeat;background-size:100% 2px}.wb-blank+.wb-blank{background-size:100% 2px}.wb-template-rows{margin:0;padding:0;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius-surface);background:var(--surface);list-style:none}.wb-template-rows li+li{border-top:1px solid var(--line)}.wb-template-rows li>a,.wb-template-row-split{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:16px;padding:14px 18px;transition:background-color .14s ease}.wb-template-rows li>a:hover,.wb-template-row-split:hover{background:var(--surface-subtle)}.wb-template-main{display:grid;min-width:0;gap:3px}.wb-template-main strong{overflow:hidden;color:var(--ink);font-size:.95rem;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.wb-template-main small{overflow:hidden;color:var(--muted);font-size:.82rem;text-overflow:ellipsis;white-space:nowrap}.wb-template-next{min-width:48px;color:var(--ink);font-size:.84rem;font-weight:600;text-align:right}.wb-template-next.is-done{color:var(--brand)}.wb-add-row{display:inline-flex;align-items:center;gap:6px;margin-top:12px;color:var(--muted);font-size:.88rem;font-weight:500}.wb-add-row:hover{color:var(--ink)}.wb-side-action{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border:1px solid var(--line);border-radius:var(--radius-surface);background:var(--surface);color:var(--muted);transition:border-color .16s ease}.wb-side-action+.wb-side-action{margin-top:8px}.wb-side-action:hover{border-color:var(--line-strong);color:var(--ink)}.wb-side-action span{display:grid;gap:2px;min-width:0}.wb-side-action strong{color:var(--ink);font-size:.94rem;font-weight:600}.wb-side-action small{color:var(--muted);font-size:.82rem}.wb-side-action.is-alert{border-color:color-mix(in srgb,var(--brand) 35%,var(--line));background:var(--brand-soft)}.wb-side-action.is-alert strong{color:var(--brand-dark)}:root[data-theme=dark] .wb-side-action.is-alert strong{color:var(--brand)}.wb-side-meta{display:block;margin-top:8px;color:var(--muted);font-size:.82rem}.wb-side-meta:hover{color:var(--ink)}.wb-chart{display:grid;grid-template-columns:repeat(14,1fr);align-items:end;gap:5px;height:84px}.wb-chart-bar{display:flex;align-items:flex-end;height:100%}.wb-chart-bar i{display:block;width:100%;height:100%;border-radius:3px;background:var(--ink);opacity:.85;transform-origin:bottom}.wb-chart-bar.is-empty i{background:var(--line-strong);opacity:1}.wb-chart-bar.is-today i{background:var(--brand);opacity:1}.wb-chart-axis{display:flex;justify-content:space-between;margin-top:6px;color:var(--subtle);font-size:.75rem;font-variant-numeric:tabular-nums}.wb-focus{display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;height:100dvh;background:var(--surface)}.wb-focus-bar,.wb-exam-bar{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:16px;min-height:64px;padding:10px 20px;background:var(--surface)}.wb-focus-title{display:grid;min-width:0;gap:1px}.wb-focus-title strong{overflow:hidden;color:var(--ink);font-size:.98rem;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.wb-focus-title span{color:var(--subtle);font-size:.78rem}.wb-level-switch{display:inline-flex;gap:2px;margin:0 auto;padding:3px;border-radius:999px;background:var(--surface-muted)}.wb-level-switch a{display:inline-flex;align-items:center;gap:7px;height:32px;padding:0 14px 0 6px;border-radius:999px;color:var(--muted);font-size:.86rem;font-weight:500;white-space:nowrap;transition:background-color .16s ease,color .16s ease}.wb-level-switch a:hover{color:var(--ink)}.wb-level-switch a.is-active{background:var(--surface);color:var(--ink);font-weight:600;box-shadow:0 1px 2px #15181c1a}.wb-level-index{display:grid;width:20px;height:20px;place-items:center;border-radius:50%;background:var(--surface);color:var(--muted);font-size:.72rem;font-weight:700;box-shadow:inset 0 0 0 1px var(--line-strong)}.wb-level-switch a.is-active .wb-level-index{background:var(--ink);color:var(--surface);box-shadow:none}.wb-level-switch a.is-cleared .wb-level-index{background:var(--brand);color:#fff;box-shadow:none}.wb-focus-stats{display:flex;gap:22px;margin:0}.wb-focus-stats div{display:grid;gap:1px;min-width:44px}.wb-focus-stats dt{color:var(--subtle);font-size:.72rem}.wb-focus-stats dd{margin:0;color:var(--ink);font-size:1.12rem;font-variant-numeric:tabular-nums;font-weight:700;letter-spacing:-.01em}.wb-focus-stats dd small{color:var(--subtle);font-size:.74rem;font-weight:500}.wb-focus-stats dd.is-low{color:var(--warning)}.wb-progress{height:3px;background:var(--line)}.wb-progress span{display:block;height:100%;background:var(--brand);transform-origin:left;transition:transform .3s var(--ease-out)}.wb-progress.is-inline{flex:1;height:4px;border-radius:2px;overflow:hidden}.wb-sheet{overflow-y:auto;padding:18vh 24px 30vh;cursor:text}.wb-sheet-inner{display:grid;gap:18px;max-width:820px;margin:0 auto}.wb-line,.wb-typing-mirror{margin:0;font-family:var(--font-mono);font-size:1.32rem;font-variant-ligatures:none;line-height:1.75;white-space:pre-wrap;overflow-wrap:anywhere}.wb-line.is-done{color:var(--subtle);transition:color .3s ease}.wb-line.is-weak{text-decoration:underline wavy color-mix(in srgb,var(--warning) 60%,transparent);text-decoration-thickness:1px;text-underline-offset:6px}.wb-line.is-next{color:color-mix(in srgb,var(--ink) 34%,transparent)}.wb-line.is-next .wb-blank{background-image:linear-gradient(var(--line),var(--line))}.wb-line-active{position:relative;margin:6px -20px;padding:14px 20px;border-radius:var(--radius-surface);background:var(--surface-subtle);box-shadow:inset 0 0 0 1px var(--line)}.wb-typing{position:relative}.wb-typing-input{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;width:100%;height:100%;margin:0;padding:0;overflow:hidden;border:0;background:transparent;color:transparent;-webkit-text-fill-color:transparent;caret-color:transparent;font-family:var(--font-mono);font-size:1.32rem;line-height:1.75;resize:none;outline:none}.wb-typing.is-composing .wb-typing-input{color:var(--ink);-webkit-text-fill-color:var(--ink);caret-color:var(--brand);background:var(--surface-subtle)}.wb-typing.is-composing .wb-typing-mirror{visibility:hidden}.wb-typing-mirror .is-pending{color:color-mix(in srgb,var(--ink) 38%,transparent)}.wb-typing-mirror .is-correct{color:var(--ink)}.wb-typing-mirror .is-wrong{border-radius:3px;background:var(--danger-soft);color:var(--danger)}.wb-typing.is-revealed .is-pending{color:var(--warning)}.wb-typing-mirror .has-caret{position:relative}.wb-typing-mirror .has-caret:before{content:"";position:absolute;top:.22em;bottom:.22em;left:-1px;width:2px;border-radius:1px;background:var(--brand);animation:wb-caret 1.05s steps(1) infinite}.wb-typing-input:not(:focus)+.wb-typing-mirror .has-caret:before{opacity:.25;animation:none}@keyframes wb-caret{50%{opacity:0}}.wb-focus-hint{display:flex;align-items:center;justify-content:center;gap:8px;padding:14px 20px max(18px,env(safe-area-inset-bottom));color:var(--subtle);font-size:.82rem}.wb-focus-hint>span:first-child{margin-right:10px}.wb-focus-hint .is-warning{color:var(--warning);font-weight:600}kbd{padding:2px 7px;border:1px solid var(--line-strong);border-bottom-width:2px;border-radius:5px;background:var(--surface);color:var(--muted);font-family:var(--font-mono);font-size:.74rem}.wb-result-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:grid;place-items:center;padding:24px;background:color-mix(in srgb,var(--app-bg) 70%,transparent);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);animation:wb-fade .2s ease both}.wb-result{width:min(520px,100%);padding:32px;border:1px solid var(--line);border-radius:18px;background:var(--surface);box-shadow:0 2px 6px #15181c14;animation:wb-rise .32s var(--ease-out) both}.wb-result-badge{display:inline-block;margin:0;padding:4px 10px;border-radius:999px;background:var(--surface-muted);color:var(--muted);font-size:.78rem;font-weight:600}.wb-result-badge.is-cleared{background:var(--brand-soft);color:var(--brand)}.wb-result h2,.wb-card-summary h2{margin:14px 0 6px;color:var(--ink);font-size:1.7rem;font-weight:700;letter-spacing:-.03em}.wb-result-note,.wb-card-note{margin:0;color:var(--muted);font-size:.94rem;line-height:1.55;text-wrap:pretty}.wb-result-stats{display:grid;grid-template-columns:repeat(4,1fr);margin:24px 0;padding:16px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.wb-result-stats div{display:grid;gap:2px}.wb-result-stats dt{color:var(--subtle);font-size:.76rem}.wb-result-stats dd{margin:0;color:var(--ink);font-size:1.5rem;font-variant-numeric:tabular-nums;font-weight:700;letter-spacing:-.02em}.wb-result-stats dd small{margin-left:2px;color:var(--subtle);font-size:.78rem;font-weight:500}.wb-result-stats dd small.is-up{color:var(--success);font-weight:600}.wb-result-actions{display:flex;flex-wrap:wrap;gap:8px}@keyframes wb-fade{0%{opacity:0}}@keyframes wb-rise{0%{opacity:0;transform:translateY(12px) scale(.98)}}.wb-words{display:flex;flex-direction:column;max-width:1120px;min-height:calc(100dvh - var(--appbar-h));padding-top:24px;padding-bottom:24px}.wb-words-bar{display:flex;flex-wrap:wrap;align-items:center;gap:12px 16px;margin-bottom:20px}.wb-set-picker select{height:40px;min-width:240px;padding:0 38px 0 14px;border:1px solid var(--line-strong);border-radius:var(--radius-control);-webkit-appearance:none;-moz-appearance:none;appearance:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236b737c' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") right 13px center / 12px no-repeat,var(--surface);color:var(--ink);font:inherit;font-size:.92rem;font-weight:600}.wb-words-desc{flex-basis:100%;margin:0;color:var(--muted);font-size:.88rem}.wb-words-body{display:flex;flex:1;flex-direction:column;min-height:0}.wb-words.is-speed .wb-words-body{height:calc(100dvh - var(--appbar-h) - 150px);min-height:520px}.wb-form{display:grid;gap:22px}.wb-field{display:grid;gap:8px;margin:0;padding:0;border:0}.wb-field>span,.wb-field legend{padding:0;color:var(--ink);font-size:.88rem;font-weight:600}.wb-field legend{margin-bottom:8px}.wb-field input,.wb-field textarea{width:100%;padding:12px 14px;border:1px solid var(--line-strong);border-radius:var(--radius-control);background:var(--surface);color:var(--ink);font:inherit;font-size:.98rem}.wb-field input:focus,.wb-field textarea:focus{border-color:var(--ink);outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--ink) 10%,transparent)}.wb-field textarea[aria-invalid=true]{border-color:var(--danger)}.wb-template-textarea{min-height:360px;font-family:var(--font-mono)!important;font-size:.95rem!important;line-height:1.75;resize:vertical}.wb-field small{color:var(--muted);font-size:.82rem}.wb-field small.is-error{color:var(--danger);font-weight:600}.wb-form-actions{display:flex;align-items:center;gap:8px}.wb-exam{display:grid;grid-template-rows:auto minmax(0,1fr);height:100dvh;background:var(--app-bg)}.wb-exam-bar{border-bottom:1px solid var(--line)}.wb-exam-timer{display:inline-flex;align-items:center;gap:6px;min-width:82px;color:var(--ink);font-family:var(--font-mono);font-size:1.15rem;font-variant-numeric:tabular-nums;font-weight:600}.wb-exam-timer svg{color:var(--subtle)}.wb-exam-timer.is-urgent,.wb-exam-timer.is-urgent svg{color:var(--danger)}.wb-word-count{display:inline-flex;align-items:baseline;gap:4px;padding:6px 12px;border-radius:999px;background:var(--surface-muted);font-variant-numeric:tabular-nums}.wb-word-count strong{color:var(--ink);font-size:1rem}.wb-word-count small{color:var(--muted);font-size:.78rem}.wb-word-count.is-ok{background:var(--success-soft)}.wb-word-count.is-ok strong{color:var(--success)}.wb-word-count.is-over{background:var(--danger-soft)}.wb-word-count.is-over strong{color:var(--danger)}.wb-exam-split{display:grid;grid-template-columns:minmax(320px,.8fr) minmax(0,1.2fr);gap:20px;min-height:0;padding:20px}.wb-exam-prompt{overflow:auto;padding:26px 28px;border:1px solid var(--line);border-radius:var(--radius-surface);background:var(--surface);color:var(--ink);font-size:.98rem;line-height:1.65}.wb-exam-prompt p{margin:0 0 14px}.wb-exam-prompt ul{margin:0 0 14px;padding-left:20px}.wb-exam-prompt li+li{margin-top:6px}.wb-exam-prompt li::marker{color:var(--subtle)}.wb-exam-answer{display:flex;min-height:0}.wb-exam-paper{flex:1;min-height:0;overflow:auto;padding:26px 30px;border:1px solid var(--line-strong);border-radius:var(--radius-surface);background:var(--surface);color:var(--ink);font-family:Arial,var(--font-sans);font-size:1.05rem;line-height:1.75;white-space:pre-wrap;resize:none}.wb-exam-paper:focus{border-color:var(--ink);outline:none}.wb-exam-paper.is-readonly{border-color:var(--line)}.wb-exam-start{display:grid;flex:1;align-content:center;justify-items:center;gap:12px;padding:40px;border:1px dashed var(--line-strong);border-radius:var(--radius-surface);text-align:center}.wb-exam-start strong{color:var(--ink);font-size:1.4rem;letter-spacing:-.02em}.wb-exam-start p{max-width:44ch;margin:0 0 8px;color:var(--muted);line-height:1.6}.wb-selfcheck{margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}.wb-selfcheck h3{margin:0 0 8px;font-size:.92rem}.wb-selfcheck label{display:flex;align-items:flex-start;gap:10px;padding:6px 0;font-size:.9rem;cursor:pointer}.wb-selfcheck input{width:16px;height:16px;margin-top:4px;accent-color:var(--ink)}.wb-selfcheck input:checked+span{color:var(--subtle);text-decoration:line-through}@media(max-width:1100px){.wb-level-switch a{padding:0 6px;font-size:0;gap:0}.wb-level-switch a .wb-level-index{font-size:.72rem}.wb-focus-stats{gap:14px}}@media(max-width:860px){.wb-page{padding:24px 16px 40px}.wb-page-head{flex-direction:column;align-items:stretch}.wb-page-head h1,.wb-home-head h1{font-size:1.5rem}.wb-appbar{grid-template-columns:1fr auto;padding:0 12px 0 16px}.wb-continue{grid-template-columns:1fr}.wb-continue-copy{padding:22px 20px}.wb-continue-preview{display:none}.wb-home-grid{grid-template-columns:1fr;gap:0}.wb-template-rows li>a,.wb-template-row-split{gap:10px;padding:13px 14px}.wb-focus-bar{flex-wrap:wrap;gap:8px 12px;padding:8px 12px}.wb-focus-title{flex:1}.wb-level-switch{order:3;margin:0}.wb-focus-stats{order:4;margin-left:auto}.wb-focus-stats div:last-child{display:none}.wb-sheet{padding:10vh 16px 40vh}.wb-line,.wb-typing-mirror,.wb-typing-input{font-size:1.02rem}.wb-line-active{margin:4px -10px;padding:10px}.wb-focus-hint kbd,.wb-focus-hint kbd+span{display:none}.wb-result{padding:24px 20px}.wb-result-stats{grid-template-columns:repeat(2,1fr);gap:14px}.wb-words{padding-top:16px}.wb-set-picker,.wb-set-picker select{width:100%}.wb-words.is-speed .wb-words-body{height:calc(100dvh - var(--appbar-h) - 140px - 76px);min-height:400px}.wb-card{padding:32px 20px 22px}.wb-card-prompt{font-size:1.55rem}.wb-exam{height:auto;min-height:100dvh}.wb-exam-bar{flex-wrap:wrap}.wb-exam-split{grid-template-columns:1fr;padding:12px}.wb-exam-paper{min-height:60vh}}@media(prefers-reduced-motion:reduce){.wb-card,.wb-result,.wb-result-backdrop{animation:none}.wb-typing-mirror .has-caret:before{animation:none}.wb-continue:hover{transform:none}}.wb-appbar-actions{display:flex;align-items:center;justify-self:end;gap:6px}.wb-partner-link{display:inline-flex;align-items:center;gap:4px;height:34px;padding:0 12px;border:1px solid var(--line-strong);border-radius:999px;color:var(--ink);font-size:.84rem;font-weight:600;white-space:nowrap;transition:border-color .16s ease,background-color .16s ease}.wb-partner-link svg{color:var(--brand);transition:transform .16s var(--ease-out)}.wb-partner-link:hover{border-color:var(--ink)}.wb-partner-link:hover svg{transform:translate(1px,-1px)}@media(max-width:860px){.wb-partner-link{height:32px;padding:0 10px;font-size:.78rem}}.wb-typing-input:focus,.wb-typing-input:focus-visible{outline:none}.wb-speed{display:grid;gap:4px;width:168px;flex:0 0 auto}.wb-speed-row{display:flex;align-items:baseline;justify-content:space-between}.wb-speed-row span{color:var(--subtle);font-size:.72rem}.wb-speed-row strong{color:var(--ink);font-size:1.12rem;font-variant-numeric:tabular-nums;font-weight:700;transition:color .2s ease}.wb-speed-row strong.is-over{color:var(--success)}.wb-speed-meter{position:relative;height:6px;border-radius:3px;background:var(--surface-muted)}.wb-speed-meter i{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:3px;background:var(--ink);transform-origin:left;transition:transform .26s var(--ease-out)}.wb-speed-meter b{position:absolute;top:-3px;bottom:-3px;width:2px;margin-left:-1px;border-radius:1px}.wb-speed-meter b.is-target{background:var(--success)}.wb-speed-meter b.is-best{background:var(--brand)}.wb-speed-legend{display:flex;justify-content:space-between;color:var(--subtle);font-size:.68rem;font-variant-numeric:tabular-nums}.wb-speed-legend span:first-child:before,.wb-speed-legend span:last-child:before{content:"";display:inline-block;width:6px;height:6px;margin-right:4px;border-radius:1px;background:var(--success)}.wb-speed-legend span+span:before{background:var(--brand)}.wb-progress{position:relative}.wb-ghost{position:absolute;top:-3px;width:8px;height:8px;margin-left:-4px;border:2px solid var(--brand);border-radius:50%;background:var(--surface);transition:left .4s var(--ease-out)}.wb-line-badges{position:absolute;top:-13px;right:16px;display:flex;gap:6px;pointer-events:none}.wb-line-badges>span{padding:3px 9px;border-radius:999px;font-size:.74rem;font-weight:700;white-space:nowrap;animation:wb-pop .38s var(--ease-out) both}.wb-combo{background:var(--ink);color:var(--surface)}.wb-pace{border:1px solid var(--line);background:var(--surface);color:var(--muted)}.wb-pace.is-ahead{border-color:color-mix(in srgb,var(--success) 40%,var(--line));color:var(--success)}.wb-pace.is-behind{color:var(--warning)}@keyframes wb-pop{0%{opacity:0;transform:translateY(6px) scale(.9)}}.wb-hint-quiet{color:var(--subtle)}.wb-criteria{display:flex;flex-wrap:wrap;gap:6px;margin:16px 0 0;padding:0;list-style:none}.wb-criteria li{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border-radius:999px;background:var(--warning-soft);color:var(--warning);font-size:.82rem;font-weight:600}.wb-criteria li.is-ok{background:var(--success-soft);color:var(--success)}.wb-result.is-cleared{border-color:color-mix(in srgb,var(--brand) 30%,var(--line))}.wb-settings{position:relative}.wb-settings-trigger{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 12px;border:0;border-radius:999px;background:transparent;color:var(--muted);font:inherit;font-size:.84rem;font-weight:500;cursor:pointer}.wb-settings-trigger:hover,.wb-settings-trigger[aria-expanded=true]{background:var(--surface-muted);color:var(--ink)}.wb-settings-panel{position:absolute;top:calc(100% + 8px);right:0;z-index:30;display:grid;gap:16px;width:340px;padding:18px;border:1px solid var(--line);border-radius:var(--radius-surface);background:var(--surface);box-shadow:0 2px 6px #15181c14;animation:wb-rise .2s var(--ease-out) both}.wb-settings-panel fieldset{display:grid;gap:8px;margin:0;padding:0;border:0}.wb-settings-panel legend{margin-bottom:8px;padding:0;color:var(--ink);font-size:.86rem;font-weight:700}.wb-difficulty{display:grid;gap:6px}.wb-difficulty button{display:grid;gap:2px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius-control);background:var(--surface);color:var(--ink);font:inherit;text-align:left;cursor:pointer;transition:border-color .14s ease}.wb-difficulty button:hover{border-color:var(--line-strong)}.wb-difficulty button.is-active{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}.wb-difficulty strong{font-size:.9rem}.wb-difficulty small,.wb-settings-note,.wb-switch small{color:var(--muted);font-size:.78rem;line-height:1.45}.wb-settings-note{margin:0}.wb-switch{display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer}.wb-switch span{display:grid;gap:1px}.wb-switch strong{color:var(--ink);font-size:.88rem}.wb-switch input{position:relative;width:38px;height:22px;flex:0 0 auto;margin:0;border-radius:999px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--line-strong);cursor:pointer;transition:background-color .16s ease}.wb-switch input:after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #0003;transition:transform .18s var(--ease-out)}.wb-switch input:checked{background:var(--ink)}.wb-switch input:checked:after{transform:translate(16px)}.wb-home-head{display:flex;align-items:center;justify-content:space-between;gap:24px}.wb-goal{display:flex;align-items:center;gap:12px}.wb-goal svg{width:52px;height:52px;transform:rotate(-90deg)}.wb-goal circle{fill:none;stroke:var(--surface-muted);stroke-width:5}.wb-goal .wb-goal-fill{stroke:var(--brand);stroke-dasharray:119.4;stroke-linecap:round;transition:stroke-dashoffset .6s var(--ease-out)}.wb-goal span{display:grid;gap:1px}.wb-goal strong{color:var(--ink);font-size:1.2rem;font-variant-numeric:tabular-nums}.wb-goal strong small{color:var(--subtle);font-size:.8rem;font-weight:500}.wb-goal>span>small{color:var(--muted);font-size:.78rem}.wb-goal.is-done>span>small{color:var(--brand);font-weight:600}@media(max-width:1100px){.wb-speed{width:120px}.wb-speed-legend{display:none}}@media(max-width:860px){.wb-speed{order:4;width:110px}.wb-focus-stats{order:5;margin-left:0}.wb-settings-panel{position:fixed;top:auto;right:12px;bottom:12px;left:12px;width:auto}.wb-home-head{align-items:flex-start}.wb-goal svg{width:44px;height:44px}.wb-goal>span>small{display:none}.wb-line-badges{right:8px}}@media(prefers-reduced-motion:reduce){.wb-line-badges>span,.wb-settings-panel{animation:none}}.wb-typing-input:focus-visible{box-shadow:none}@media(max-width:860px){.wb-focus-bar{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;gap:8px;padding:8px 10px 10px}.wb-focus-title span{display:none}.wb-focus-bar .wb-level-switch{grid-column:1 / -1;grid-row:2;justify-content:space-between}.wb-focus-bar .wb-level-switch a{flex:1;justify-content:center;padding:0 6px}.wb-focus-bar .wb-speed{grid-column:1 / 3;grid-row:3;width:auto}.wb-focus-bar .wb-focus-stats{grid-column:3 / -1;grid-row:3;justify-self:end}.wb-focus-bar .wb-focus-stats div:last-child{display:grid}.wb-hint-quiet{display:none}}.wb-speed-legend{font-size:.72rem}.wb-sound-toggle.is-off{color:var(--subtle)}@media(max-width:860px){.wb-focus-bar{grid-template-columns:auto minmax(0,1fr) auto auto auto}}.wb-rain{--rain-bg: #121418;--rain-ink: #eef0f2;--rain-dim: #9aa3ad;--rain-line: rgba(255, 255, 255, .08);position:relative;display:grid;grid-template-rows:auto minmax(0,1fr) auto;flex:1;min-height:0;overflow:hidden;border-radius:18px;background:var(--rain-bg);color:var(--rain-ink);box-shadow:0 1px 2px #15181c33}.wb-rain.is-hit-burst,.wb-rain.is-hit-shock{animation:wb-rain-shake .22s ease}@keyframes wb-rain-shake{25%{transform:translate(-3px)}75%{transform:translate(3px)}}.wb-rain-hud{position:relative;z-index:3;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;padding:16px 20px;border-bottom:1px solid var(--rain-line)}.wb-rain-score span,.wb-rain-stat span,.wb-rain-focus span{display:block;color:var(--rain-dim);font-size:.74rem}.wb-rain-score strong{font-size:1.9rem;font-variant-numeric:tabular-nums;font-weight:700;letter-spacing:-.03em;line-height:1.1}.wb-rain-combo{min-width:96px;color:var(--rain-ink);font-size:1.05rem;font-weight:700;text-align:center;animation:wb-pop .32s var(--ease-out) both}.wb-rain-combo.is-hot{color:#ff7a80}.wb-rain-combo:empty{animation:none}.wb-rain-hud-right{display:flex;align-items:center;justify-content:flex-end;gap:20px}.wb-rain-stat strong{font-size:1.25rem;font-variant-numeric:tabular-nums}.wb-rain-focus i{display:block;width:120px;height:8px;margin-top:4px;overflow:hidden;border-radius:4px;background:#ffffff1a}.wb-rain-focus b{display:block;height:100%;background:#5fcf99;transform-origin:left;transition:transform .26s var(--ease-out),background-color .2s ease}.wb-rain-focus.is-low b{background:#f0545b}.wb-rain-pause{display:grid;width:36px;height:36px;place-items:center;border:1px solid var(--rain-line);border-radius:10px;background:#ffffff0a;color:var(--rain-ink);cursor:pointer}.wb-rain-pause:hover:not(:disabled){background:#ffffff1a}.wb-rain-pause:disabled{opacity:.35;cursor:default}.wb-rain-field{position:relative;min-height:0;overflow:hidden;background:linear-gradient(90deg,transparent calc(25% - .5px),var(--rain-line) calc(25% - .5px),var(--rain-line) calc(25% + .5px),transparent calc(25% + .5px)),linear-gradient(90deg,transparent calc(50% - .5px),var(--rain-line) calc(50% - .5px),var(--rain-line) calc(50% + .5px),transparent calc(50% + .5px)),linear-gradient(90deg,transparent calc(75% - .5px),var(--rain-line) calc(75% - .5px),var(--rain-line) calc(75% + .5px),transparent calc(75% + .5px)),radial-gradient(90% 70% at 50% 0%,#1d2127,var(--rain-bg))}.wb-rain-sky{position:absolute;top:0;right:0;bottom:84px;left:0}.wb-rain-floor{position:absolute;right:0;bottom:0;left:0;height:70px;border-bottom:2px solid rgba(240,84,91,.7);background:linear-gradient(transparent,#f0545b29);pointer-events:none}.wb-drop{--fall: 0;position:absolute;z-index:2;display:grid;gap:2px;min-width:112px;max-width:230px;padding:9px 13px 10px;border-radius:10px;background:color-mix(in srgb,#ffe3e4 calc(var(--fall) * var(--fall) * 100%),#f7f8f9);color:#15181c;box-shadow:0 0 0 calc(var(--fall) * 2px) rgba(240,84,91,calc(var(--fall) * .9)),0 10px 24px #00000073;transform:translate(-50%);transition:top .23s linear}.wb-drop strong{font-family:var(--font-mono);font-size:.98rem;font-weight:600;line-height:1.3}.wb-drop span{color:#5d6670;font-size:.78rem}.wb-drop.is-retry{background:#fff4dd}.wb-drop-tag{justify-self:start;padding:1px 6px;border-radius:4px;background:#a35d08;color:#fff;font-size:.66rem;font-weight:700}.wb-burst{position:absolute;z-index:4;pointer-events:none;transform:translate(-50%)}.wb-burst strong{display:block;color:#ffd166;font-size:1.1rem;font-variant-numeric:tabular-nums;font-weight:800;text-shadow:0 2px 12px rgba(0,0,0,.6);animation:wb-burst-up .7s var(--ease-out) both}.wb-burst i{position:absolute;top:50%;left:50%;width:6px;height:6px;border-radius:2px;background:#ffd166;animation:wb-shard .52s var(--ease-out) both}@keyframes wb-burst-up{0%{opacity:1;transform:translateY(0) scale(.8)}30%{transform:translateY(-8px) scale(1.15)}to{opacity:0;transform:translateY(-34px) scale(1)}}@keyframes wb-shard{0%{opacity:1;transform:rotate(var(--angle)) translate(0)}to{opacity:0;transform:rotate(var(--angle)) translate(42px)}}.wb-rain-input{position:absolute;right:0;bottom:0;left:0;z-index:3;display:flex;align-items:center;justify-content:center;height:84px;padding:0 20px;background:linear-gradient(transparent,#00000059)}.wb-rain-input input{width:min(560px,100%);height:52px;padding:0 18px;border:1px solid rgba(255,255,255,.18);border-radius:12px;background:#ffffff0f;color:var(--rain-ink);-webkit-text-fill-color:var(--rain-ink);caret-color:#f0545b;font-family:var(--font-mono);font-size:1.2rem;text-align:center;outline:none;transition:border-color .16s ease,background-color .16s ease}.wb-rain-input input::placeholder{color:var(--rain-dim);-webkit-text-fill-color:var(--rain-dim);font-family:var(--font-sans);font-size:.92rem}.wb-rain-input input:focus{border-color:#ffffff73;background:#ffffff17}.wb-rain-input input:disabled{opacity:.4}.wb-rain-speed{position:absolute;right:22px;color:var(--rain-dim);font-size:.78rem}.wb-rain-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:5;display:grid;place-items:center;padding:20px;background:#0a0c0f99;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);animation:wb-fade .2s ease both}.wb-rain-menu{display:grid;gap:12px;width:min(480px,100%);padding:28px;border:1px solid rgba(255,255,255,.1);border-radius:18px;background:#1a1d22;animation:wb-rise .26s var(--ease-out) both}.wb-rain-menu.is-small{width:min(360px,100%);text-align:center;justify-items:center}.wb-rain-kicker{margin:0;color:#ff7a80;font-size:.82rem;font-weight:600}.wb-rain-menu h2{margin:0;color:var(--rain-ink);font-size:1.5rem;font-weight:700;letter-spacing:-.02em}.wb-rain-sub,.wb-rain-note{margin:0;color:var(--rain-dim);font-size:.86rem;line-height:1.5}.wb-rain-note{margin-top:-4px;font-size:.8rem}.wb-rain-row{display:grid;grid-template-columns:44px minmax(0,1fr);align-items:center;gap:10px;margin-top:4px}.wb-rain-row>span{color:var(--rain-dim);font-size:.8rem}.wb-rain-row>div{display:flex;flex-wrap:wrap;gap:6px}.wb-rain-chip{height:32px;padding:0 12px;border:1px solid rgba(255,255,255,.12);border-radius:999px;background:transparent;color:var(--rain-dim);font:inherit;font-size:.84rem;cursor:pointer;transition:background-color .14s ease,color .14s ease,border-color .14s ease}.wb-rain-chip:hover{color:var(--rain-ink);border-color:#ffffff4d}.wb-rain-chip.is-active{border-color:var(--rain-ink);background:var(--rain-ink);color:#15181c;font-weight:600}.wb-rain-start{margin-top:10px;width:100%}.wb-rain-start kbd,.wb-rain-menu .wb-button kbd{margin-left:6px;border-color:#ffffff73;background:transparent;color:#fff}.wb-rain-menu .wb-button:not(.is-primary){border-color:#fff3;background:transparent;color:var(--rain-ink)}.wb-rain-rank{font-size:3rem!important;line-height:1}.wb-rain-rank small{margin-left:6px;color:var(--rain-dim);font-size:1rem;font-weight:500}.wb-result-stats.is-dark{margin:8px 0 0;border-color:#ffffff1a}.wb-result-stats.is-dark dt{color:var(--rain-dim)}.wb-result-stats.is-dark dd{color:var(--rain-ink)}.wb-rain-missions{display:flex;gap:8px;margin:0;padding:10px 20px 14px;border-top:1px solid var(--rain-line);list-style:none}.wb-rain-missions li{display:flex;gap:8px;padding:5px 10px;border-radius:999px;background:#ffffff0d;color:var(--rain-dim);font-size:.78rem}.wb-rain-missions li b{color:var(--rain-ink);font-variant-numeric:tabular-nums}.wb-rain-missions li.is-done{background:#5fcf9926;color:#5fcf99}@media(max-width:860px){.wb-rain{border-radius:14px}.wb-rain-hud{gap:8px;padding:12px 14px}.wb-rain-score strong{font-size:1.4rem}.wb-rain-combo{min-width:0;font-size:.9rem}.wb-rain-focus i{width:70px}.wb-rain-hud-right{gap:12px}.wb-drop{width:calc(25% - 8px);min-width:0;max-width:none;padding:6px 7px;border-radius:8px}.wb-drop strong{font-size:.78rem;overflow-wrap:anywhere}.wb-drop span{font-size:.68rem}.wb-rain-input input{font-size:16px}.wb-rain-speed{display:none}.wb-rain-menu{padding:22px 18px}.wb-rain-missions{flex-wrap:wrap}}@media(prefers-reduced-motion:reduce){.wb-rain,.wb-rain-combo,.wb-burst strong,.wb-burst i,.wb-rain-menu,.wb-rain-overlay{animation:none}.wb-drop{transition:none}}.wb-page{padding-top:28px}.wb-words{padding-top:14px;padding-bottom:16px}.wb-words-bar{flex-wrap:nowrap;margin-bottom:12px}.wb-words-desc{flex-basis:auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wb-words.is-speed .wb-words-body{height:calc(100dvh - var(--appbar-h) - 82px)}@media(max-width:860px){.wb-page{padding-top:18px}.wb-words{padding-top:10px}.wb-words-desc{display:none}.wb-words.is-speed .wb-words-body{height:calc(100dvh - var(--appbar-h) - 82px - 80px)}}.wb-words.is-speed{min-height:0}.wb-words.is-speed .wb-words-body{flex:none}.wb-rain-input input:focus-visible{outline:none}.wb-pill-button{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 12px;border:1px solid var(--line-strong);border-radius:999px;background:var(--surface);color:var(--ink);font:inherit;font-size:.84rem;font-weight:600;white-space:nowrap;cursor:pointer;transition:border-color .14s ease,background-color .14s ease,color .14s ease}.wb-pill-button:hover,.wb-pill-button[aria-expanded=true]{border-color:var(--ink)}.wb-pill-button.is-icon{width:34px;padding:0;justify-content:center}.wb-sound-toggle.is-on svg{color:var(--brand)}.wb-sound-toggle.is-off{color:var(--subtle);border-style:dashed}.wb-block-meta,.wb-text-link,.wb-template-main small,.wb-side-action small,.wb-focus-title span,.wb-focus-stats dt,.wb-speed-row span,.wb-result-stats dt,.wb-chart-axis,.wb-field small{font-size:.84rem}.wb-page-head p,.wb-home-head p,.wb-words-desc,.wb-focus-hint{font-size:.92rem}.wb-line.is-next{color:color-mix(in srgb,var(--ink) 52%,transparent)}.wb-typing-mirror .is-pending{color:color-mix(in srgb,var(--ink) 50%,transparent)}.wb-rain{--rain-ink: #f5f6f8;--rain-dim: #c9cfd6}.wb-rain-score span,.wb-rain-stat span,.wb-rain-focus span{font-size:.84rem}.wb-rain-menu{gap:14px;width:min(520px,100%);padding:32px;background:#22262c;border-color:#ffffff29}.wb-rain-kicker{color:#ff9da1;font-size:.92rem}.wb-rain-menu h2{font-size:1.7rem}.wb-rain-sub{color:#dfe3e8;font-size:1rem}.wb-rain-note{color:#c9cfd6;font-size:.9rem}.wb-rain-row{grid-template-columns:52px minmax(0,1fr)}.wb-rain-row>span{color:#dfe3e8;font-size:.92rem;font-weight:600}.wb-rain-chip{height:38px;padding:0 16px;border-color:#ffffff47;color:#e6e9ed;font-size:.94rem;font-weight:500}.wb-rain-chip.is-active{border-color:#fff;background:#fff;color:#15181c;font-weight:700}.wb-rain-overlay{background:#0a0c0fb8}.wb-rain-input input::placeholder{color:#c9cfd6;-webkit-text-fill-color:#c9cfd6;font-size:1rem}.wb-drop span{color:#3d444c;font-size:.82rem}.wb-sheet{position:relative;padding:26vh 24px 70vh}@media(max-width:860px){.wb-sheet{padding:18vh 16px 70vh}}.wb-sheet{overflow:hidden}.wb-sheet-inner{transition:transform .32s var(--ease-out);will-change:transform}@media(prefers-reduced-motion:reduce){.wb-sheet-inner{transition:none}}.wb-app.is-focus{height:100dvh;min-height:0;overflow:hidden}.wb-sheet{padding-bottom:0}@media(max-width:860px){.wb-sheet{padding-bottom:0}}.wb-partner-banner{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:8px;padding:16px 20px;border:1px solid var(--line);border-radius:var(--radius-surface);background:var(--surface);transition:border-color .16s ease}.wb-partner-banner:hover{border-color:var(--ink)}.wb-partner-banner>span:first-child{display:grid;gap:2px}.wb-partner-banner strong{color:var(--ink);font-size:.95rem}.wb-partner-banner small{color:var(--muted);font-size:.86rem}.wb-partner-banner-cta{display:inline-flex;flex:0 0 auto;align-items:center;gap:4px;color:var(--brand);font-size:.9rem;font-weight:700}@media(max-width:860px){.wb-partner-banner{flex-direction:column;align-items:flex-start}}.wb-words-bar{position:relative;z-index:6}.wb-set-picker{position:relative;width:min(560px,100%)}.wb-set-trigger{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:10px 14px;border:1px solid var(--line-strong);border-radius:var(--radius-control);background:var(--surface);color:var(--ink);font:inherit;text-align:left;cursor:pointer;transition:border-color .14s ease}.wb-set-trigger:hover,.wb-set-trigger[aria-expanded=true]{border-color:var(--ink)}.wb-set-trigger svg{flex:0 0 auto;color:var(--muted);transition:transform .16s ease}.wb-set-trigger[aria-expanded=true] svg{transform:rotate(180deg)}.wb-set-trigger-text{display:grid;gap:2px;min-width:0}.wb-set-trigger-text strong{font-size:.98rem;font-weight:700}.wb-set-trigger-text strong small,.wb-set-option-head small{margin-left:6px;color:var(--muted);font-size:.82rem;font-weight:500}.wb-set-trigger-text>span{overflow:hidden;color:var(--muted);font-size:.86rem;text-overflow:ellipsis;white-space:nowrap}.wb-set-panel{position:absolute;top:calc(100% + 6px);left:0;width:min(640px,calc(100vw - 32px));max-height:min(68vh,620px);overflow-y:auto;padding:8px;border:1px solid var(--line);border-radius:var(--radius-surface);background:var(--surface);box-shadow:0 12px 32px -12px #15181c4d;animation:wb-rise .18s var(--ease-out) both}.wb-set-group+.wb-set-group{margin-top:6px;padding-top:6px;border-top:1px solid var(--line)}.wb-set-group-label{margin:6px 10px 4px;color:var(--muted);font-size:.8rem;font-weight:600}.wb-set-option{display:grid;gap:2px;width:100%;padding:9px 10px;border:0;border-radius:var(--radius-control);background:transparent;color:var(--ink);font:inherit;text-align:left;cursor:pointer}.wb-set-option:hover,.wb-set-option:focus-visible{background:var(--surface-muted);outline:none}.wb-set-option.is-selected{background:var(--brand-soft)}.wb-set-option-head{display:flex;align-items:baseline;gap:0}.wb-set-option-head strong{font-size:.94rem;font-weight:600}.wb-set-option-head svg{margin-left:auto;align-self:center;color:var(--brand)}.wb-set-option-desc{color:var(--muted);font-size:.86rem;line-height:1.45}.wb-set-option.is-wrong-note strong{color:var(--brand)}@media(max-width:860px){.wb-set-picker,.wb-set-panel{width:100%}}.wb-intro{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);align-items:center;gap:48px;padding:28px 0 12px}.wb-intro h1{margin:0;color:var(--ink);font-size:2.6rem;font-weight:800;letter-spacing:-.04em;line-height:1.18}.wb-intro-copy>p{max-width:46ch;margin:18px 0 0;color:var(--muted);font-size:1.08rem;line-height:1.65;text-wrap:pretty}.wb-intro-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}.wb-intro-meta{margin-top:14px!important;color:var(--subtle)!important;font-size:.88rem!important}.wb-compare{width:100%;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius-surface);border-collapse:separate;border-spacing:0;background:var(--surface);box-shadow:var(--shadow-raised);font-size:.95rem}.wb-compare th{padding:14px 18px;border-bottom:1px solid var(--line);color:var(--muted);font-size:.86rem;font-weight:600;text-align:left}.wb-compare th+th{color:var(--brand)}.wb-compare td{padding:14px 18px;vertical-align:top;line-height:1.45}.wb-compare tr+tr td{border-top:1px solid var(--line)}.wb-compare td:first-child{width:46%;color:var(--subtle);text-decoration:line-through;text-decoration-color:color-mix(in srgb,var(--subtle) 50%,transparent)}.wb-compare td+td{background:color-mix(in srgb,var(--brand-soft) 55%,var(--surface));color:var(--ink);font-weight:600}.wb-updates{display:grid;gap:2px;margin:0;padding:0;list-style:none}.wb-updates li{display:grid;grid-template-columns:44px minmax(0,1fr);gap:10px;padding:8px 0;font-size:.9rem;line-height:1.45}.wb-updates li+li{border-top:1px solid var(--line)}.wb-updates time{color:var(--brand);font-variant-numeric:tabular-nums;font-weight:600}.wb-updates span{color:var(--ink)}@media(max-width:860px){.wb-intro{grid-template-columns:1fr;gap:28px;padding-top:8px}.wb-intro h1{font-size:1.85rem}.wb-intro-actions .wb-button{flex:1 1 auto}}.wb-appbar-start{display:flex;align-items:center;gap:10px;justify-self:start;min-width:0}.wb-exam-switch{position:relative}.wb-exam-switch-trigger{display:inline-flex;align-items:center;gap:4px;height:30px;padding:0 10px;border:0;border-radius:999px;background:var(--ink);color:var(--surface);font:inherit;font-size:.8rem;font-weight:700;white-space:nowrap;cursor:pointer}.wb-exam-switch-trigger:hover{opacity:.88}.wb-exam-switch-panel{position:absolute;top:calc(100% + 8px);left:0;z-index:30;display:grid;gap:2px;width:300px;padding:6px;border:1px solid var(--line);border-radius:var(--radius-surface);background:var(--surface);box-shadow:0 12px 32px -12px #15181c4d;animation:wb-rise .18s var(--ease-out) both}.wb-exam-switch-panel button{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 10px;border:0;border-radius:var(--radius-control);background:transparent;color:var(--ink);font:inherit;text-align:left;cursor:pointer}.wb-exam-switch-panel button:hover{background:var(--surface-muted)}.wb-exam-switch-panel button.is-selected{background:var(--brand-soft)}.wb-exam-switch-panel button>span{display:grid;gap:1px}.wb-exam-switch-panel strong{font-size:.92rem}.wb-exam-switch-panel small{color:var(--muted);font-size:.8rem}.wb-exam-switch-panel svg{color:var(--brand)}.wb-exam-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}.wb-exam-card{display:grid;align-content:start;gap:6px;padding:18px;border:1px solid var(--line);border-radius:var(--radius-surface);background:var(--surface);color:var(--ink);font:inherit;text-align:left;cursor:pointer;transition:border-color .16s ease,transform .16s var(--ease-out)}.wb-exam-card:hover{border-color:var(--ink);transform:translateY(-2px)}.wb-exam-card>strong{font-size:1.1rem;letter-spacing:-.01em}.wb-exam-card>small{color:var(--muted);font-size:.86rem}.wb-exam-card-tasks{display:grid;gap:4px;margin-top:6px;padding-top:10px;border-top:1px solid var(--line)}.wb-exam-card-tasks>span{display:flex;justify-content:space-between;gap:8px;font-size:.84rem}.wb-exam-card-tasks em{color:var(--muted);font-style:normal;font-variant-numeric:tabular-nums;white-space:nowrap}.wb-exam-card-cta{display:inline-flex;align-items:center;gap:4px;margin-top:8px;color:var(--brand);font-size:.88rem;font-weight:700}.wb-prompt-table{width:100%;margin:4px 0 16px;border-collapse:collapse;font-size:.9rem;font-variant-numeric:tabular-nums}.wb-prompt-table th,.wb-prompt-table td{padding:7px 10px;border:1px solid var(--line);text-align:left}.wb-prompt-table thead th{background:var(--surface-muted);font-weight:600}.wb-prompt-table tbody th{font-weight:600}@media(max-width:860px){.wb-appbar{grid-template-columns:auto 1fr auto}.wb-brand span{display:none}.wb-exam-switch-panel{position:fixed;top:64px;right:12px;left:12px;width:auto}}.wb-exam-grid{grid-template-columns:repeat(3,minmax(0,1fr))}@media(max-width:1000px){.wb-exam-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.wb-exam-grid{grid-template-columns:1fr}}.wb-intro-kicker{margin:0 0 10px!important;color:var(--brand)!important;font-size:.95rem!important;font-weight:700}.wb-packs-empty{margin:0 0 14px;padding:16px 18px;border:1px dashed var(--line-strong);border-radius:var(--radius-surface);color:var(--muted);font-size:.92rem;line-height:1.5}.wb-pack-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;margin:0 0 16px;padding:0;list-style:none}.wb-pack{display:grid;gap:12px;padding:18px;border:1px solid var(--line);border-radius:var(--radius-surface);background:var(--surface)}.wb-pack-head{display:grid;gap:2px}.wb-pack-head small{color:var(--muted)}.wb-pack-preview{position:relative;overflow:hidden;max-height:96px;padding:10px 12px;border-radius:var(--radius-control);background:var(--surface-subtle);font-family:var(--font-mono);font-size:.82rem;line-height:1.6}.wb-pack-preview p{margin:0}.wb-pack-fade{position:absolute;inset:auto 0 0;display:flex;align-items:flex-end;justify-content:center;gap:6px;height:64px;padding-bottom:8px;background:linear-gradient(transparent,var(--surface-subtle) 70%);color:var(--muted);font-family:var(--font-sans);font-size:.8rem;font-weight:600}.wb-pack-owned{color:var(--success);font-size:.88rem;font-weight:600}.wb-license-row{display:flex;gap:8px}.wb-license-row input{flex:1;font-family:var(--font-mono)!important}.wb-field small.is-success{color:var(--success);font-weight:600}.wb-checkout{width:min(560px,100%);max-height:calc(100dvh - 48px);overflow-y:auto;padding:24px;border:1px solid var(--line);border-radius:18px;background:#fff;color:#15181c;animation:wb-rise .26s var(--ease-out) both}.wb-checkout-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.wb-checkout-head h2{margin:0;font-size:1.3rem;letter-spacing:-.02em}.wb-checkout-head p{margin:4px 0 0;color:#454c55;font-size:.9rem}.wb-checkout .wb-icon-button{color:#454c55}.wb-checkout-loading{padding:40px 0;color:#454c55;text-align:center}.wb-checkout-error{margin:12px 0;color:#c8232c;font-weight:600}.wb-checkout-pay{width:calc(100% - 48px);margin:14px 24px 0}.wb-checkout-pay:disabled{opacity:.4;cursor:not-allowed}.wb-checkout-email{display:grid;gap:6px;margin:12px 24px 0}.wb-checkout-email span{font-size:.88rem;font-weight:600}.wb-checkout-email input{width:100%;padding:12px 14px;border:1px solid #c9ced5;border-radius:var(--radius-control);background:#fff;color:#15181c;font:inherit}.wb-checkout-email input:focus{border-color:#15181c;outline:none;box-shadow:0 0 0 3px #15181c1a}.wb-checkout-email small,.wb-checkout-consent{color:#454c55;font-size:.82rem;line-height:1.5;word-break:keep-all}.wb-checkout-consent{display:flex;align-items:flex-start;gap:10px;margin:14px 24px 0;padding:12px;border-radius:var(--radius-control);background:#f3f4f6;cursor:pointer}.wb-checkout-consent input{flex:none;width:18px;height:18px;margin:2px 0 0;accent-color:#15181c}.wb-checkout-consent a{color:#15181c;font-weight:600;text-decoration:underline}.wb-restore{display:flex;align-items:center;gap:8px;margin:18px 0;padding:10px 12px;border-radius:var(--radius-control);background:var(--surface-muted)}.wb-restore code,.wb-pack-owned code{overflow-wrap:anywhere;font-family:var(--font-mono);font-size:.86rem}.wb-restore code{flex:1}.wb-pack-owned{display:grid;gap:4px}.wb-pack-owned small{color:var(--muted);font-weight:400}.wb-ad{display:grid;gap:4px;margin-top:32px;min-height:0}.wb-ad-label{color:var(--subtle);font-size:.72rem}.wb-ad ins.adsbygoogle[data-ad-status=unfilled],.wb-ad:has(ins.adsbygoogle[data-ad-status=unfilled]){display:none!important}.wb-ad-gutter{position:fixed;top:120px;right:24px;width:160px;margin:0}@media(max-width:1499px){.wb-ad-gutter{display:none}}.wb-bundle{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:8px;padding:16px 20px;border:1px solid color-mix(in srgb,var(--brand) 35%,var(--line));border-radius:var(--radius-surface);background:var(--brand-soft)}.wb-bundle>span{display:grid;gap:3px}.wb-bundle strong{color:var(--ink);font-size:.98rem}.wb-bundle small{color:var(--muted);font-size:.86rem}.wb-bundle .wb-button{flex:0 0 auto}.wb-template-rows li.is-locked .wb-template-main strong{display:inline-flex;align-items:center;gap:6px;color:var(--muted)}.wb-button.is-buy{border-color:var(--brand);color:var(--brand);font-variant-numeric:tabular-nums}.wb-button.is-buy:hover{background:var(--brand);color:#fff}.wb-purchases{display:grid;gap:6px;margin:0 0 16px;padding:0;list-style:none}.wb-purchases li{display:grid;gap:2px;padding:10px 14px;border:1px solid var(--line);border-radius:var(--radius-control);background:var(--surface)}.wb-purchases small{color:var(--muted)}.wb-purchases code{font-family:var(--font-mono);font-size:.82rem;overflow-wrap:anywhere}@media(max-width:860px){.wb-bundle{flex-direction:column;align-items:stretch}}.wb-template-links{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 16px}.wb-add-row.is-premium{color:var(--brand);font-weight:600}.wb-footer{width:100%;max-width:1120px;margin:0 auto;padding:28px 24px 40px;border-top:1px solid var(--line);color:var(--subtle);font-size:.78rem;line-height:1.6;word-break:keep-all}.wb-footer-links{display:flex;flex-wrap:wrap;gap:4px 18px;margin-bottom:12px}.wb-footer-links a{color:var(--muted);text-decoration:none}.wb-footer-links a:hover{color:var(--ink);text-decoration:underline}.wb-footer-business{display:flex;flex-wrap:wrap;gap:2px 16px;margin:0}.wb-footer-business div{display:flex;gap:6px}.wb-footer-business dt{color:var(--muted)}.wb-footer-business dd{margin:0}.wb-footer-note{margin:10px 0 0}.wb-legal{max-width:720px;word-break:keep-all}.wb-legal-back{color:var(--muted);font-size:.88rem;text-decoration:none}.wb-legal-back:hover{color:var(--ink)}.wb-legal h1{margin:16px 0 4px;font-size:clamp(1.7rem,3vw,2.1rem);letter-spacing:-.02em}.wb-legal-date{margin:0 0 28px;color:var(--subtle);font-size:.85rem}.wb-legal section+section{margin-top:26px}.wb-legal h2{margin:0 0 8px;font-size:1.05rem}.wb-legal p,.wb-legal li{color:var(--muted);font-size:.95rem;line-height:1.75}.wb-legal p{margin:0 0 8px}.wb-legal ul{margin:0;padding-left:1.2em}@media(max-width:720px){.wb-footer{padding:22px 16px 28px}}
