:root,:root[data-theme=modern]{--font-main:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-display:var(--font-main);--bg:#f8fafc;--bg-grid:#94a3b814;--text:#0f172a;--muted:#64748b;--surface:#fff;--surface-strong:#fff;--surface-soft:#f8fafc;--surface-tint:#f0fdf4;--surface-danger:#fff1f2;--border:#e2e8f0;--border-strong:#cbd5e1;--accent:#22c55e;--accent-ink:#052e16;--accent-soft:#dcfce7;--accent-border:#bbf7d0;--accent-text:#166534;--secondary-bg:#ecfdf5;--secondary-text:#047857;--info-bg:#eef2ff;--info-text:#3730a3;--warning-bg:#fffbeb;--warning-border:#fde68a;--warning-text:#92400e;--danger:#fb7185;--danger-soft:#fecdd3;--shadow:0 20px 60px #0f172a14;--shadow-strong:0 20px 60px #0f172a2e;--nav-bg:#ffffffeb;--topbar-bg:#f8fafce6;--radius-xl:28px;--radius-lg:22px;--radius-md:18px;--radius-sm:12px;--button-radius:999px;--card-padding:clamp(20px, 5vw, 36px);font-family:var(--font-main);color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased}:root[data-theme=pixel_meadow]{--font-main:"Trebuchet MS", "Verdana", "Segoe UI", sans-serif;--font-display:ui-monospace, "Courier New", monospace;--bg:#cfe9a4;--bg-grid:#ffffff2e;--text:#18311b;--muted:#4b5d3e;--surface:#fef6dc;--surface-strong:#fff9ea;--surface-soft:#eef5c8;--surface-tint:#e0f6be;--surface-danger:#ffe4d9;--border:#6c4b23;--border-strong:#8a6031;--accent:#74c344;--accent-ink:#173c10;--accent-soft:#d9f2b0;--accent-border:#4d8b31;--accent-text:#1f4914;--secondary-bg:#f3ddb0;--secondary-text:#5e3b16;--info-bg:#dcebf9;--info-text:#204864;--warning-bg:#fff1b8;--warning-border:#ba8b30;--warning-text:#6d4f0b;--danger:#d95b59;--danger-soft:#f6bbb3;--shadow:0 8px 0 #6c4b2373, 0 16px 28px #263b1f2e;--shadow-strong:0 8px 0 #6c4b2373, 0 20px 34px #263b1f40;--nav-bg:#fef9eaf5;--topbar-bg:#e8f4c4e6;--radius-xl:12px;--radius-lg:10px;--radius-md:8px;--radius-sm:6px;--button-radius:10px}:root[data-theme=mono_battle]{--font-main:ui-monospace, "Cascadia Mono", "SFMono-Regular", Menlo, Consolas, monospace;--font-display:var(--font-main);--bg:#050505;--bg-grid:#ffffff0f;--text:#fafafa;--muted:#cbd5e1;--surface:#101010;--surface-strong:#0c0c0c;--surface-soft:#181818;--surface-tint:#111;--surface-danger:#190c0d;--border:#f8fafc;--border-strong:#f8fafc;--accent:#f8fafc;--accent-ink:#050505;--accent-soft:#181818;--accent-border:#f8fafc;--accent-text:#f8fafc;--secondary-bg:#101010;--secondary-text:#f8fafc;--info-bg:#101010;--info-text:#fde047;--warning-bg:#1a1607;--warning-border:#facc15;--warning-text:#fde68a;--danger:#fb7185;--danger-soft:#3f111a;--shadow:none;--shadow-strong:none;--nav-bg:#080808f5;--topbar-bg:#080808eb;--radius-xl:4px;--radius-lg:4px;--radius-md:2px;--radius-sm:2px;--button-radius:2px}*{box-sizing:border-box}html{min-height:100%}body{min-height:100vh;color:var(--text);background:linear-gradient(180deg, #ffffff2e, transparent 22%), radial-gradient(circle at top, #ffffff59, transparent 30%), var(--bg);margin:0;transition:background .25s,color .25s}body:before{content:"";pointer-events:none;background:linear-gradient(var(--bg-grid) 1px, transparent 1px), linear-gradient(90deg, var(--bg-grid) 1px, transparent 1px);opacity:.45;background-size:24px 24px;position:fixed;inset:0}:root[data-theme=pixel_meadow] body{background:linear-gradient(#ffffff2e,#0000 25%),linear-gradient(#d9efb4 0%,#cfe9a4 42%,#c4df92 100%)}:root[data-theme=mono_battle] body{background:radial-gradient(circle at top,#ffffff0f,#0000 20%),linear-gradient(#101010 0%,#050505 100%)}:root[data-theme=mono_battle] body:before{opacity:.45;background:repeating-linear-gradient(#ffffff0b 0 2px,#0000 2px 6px)}a{color:inherit;text-decoration:none}button,textarea,input,select{font:inherit;color:inherit}button{transition:transform .16s,box-shadow .16s,background .16s,border-color .16s,opacity .16s}button:hover:not(:disabled){transform:translateY(-1px)}button:active:not(:disabled){transform:translateY(0)}.appShell{min-height:100vh;font-family:var(--font-main);padding-bottom:84px;position:relative}.topBar{z-index:5;background:var(--topbar-bg);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:16px;padding:16px clamp(16px,5vw,48px);display:flex;position:sticky;top:0}.topBar h1{font-size:clamp(20px,4vw,30px);font-family:var(--font-display);margin:0}.eyebrow{color:var(--secondary-text);letter-spacing:.08em;text-transform:uppercase;margin:0 0 4px;font-size:12px;font-weight:800}.pageFrame{width:min(960px,100% - 28px);margin:20px auto}.stack{gap:18px;display:grid}.heroCard,.quizCard,.feedbackCard,.panel,.emptyCard,.statCard,.badgeCard,.listCard,.cardItem,.themeOption,.completionPanel{background:var(--surface);border:1px solid var(--border);color:var(--text)}.heroCard,.quizCard,.feedbackCard,.panel,.emptyCard{border-radius:var(--radius-xl);padding:var(--card-padding);box-shadow:var(--shadow);animation:.24s both cardRise}.heroCard h2{font-size:clamp(28px,8vw,56px);line-height:1.04;font-family:var(--font-display);margin:0 0 12px}.heroCard p{color:var(--muted);font-size:17px}.buttonRow{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.primaryButton,.secondaryButton,.iconButton,.tab,.answerButton{cursor:pointer;border-radius:var(--button-radius);min-height:44px;padding:12px 18px;font-weight:800}.primaryButton{border:1px solid color-mix(in srgb, var(--accent) 70%, var(--border));background:var(--accent);color:var(--accent-ink);box-shadow:0 10px 22px color-mix(in srgb, var(--accent) 28%, transparent)}.secondaryButton,.iconButton{background:var(--secondary-bg);color:var(--secondary-text);border:1px solid var(--accent-border)}.gridCards{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;display:grid}.statCard,.badgeCard,.listCard,.cardItem{border-radius:var(--radius-lg);padding:18px}.statCard span{color:var(--muted);font-size:13px;display:block}.statCard strong{font-size:28px;font-family:var(--font-display);margin-top:8px;display:block}.sectionHeader{justify-content:space-between;align-items:center;gap:16px;display:flex}.sectionHeader h2{font-size:28px;font-family:var(--font-display);margin:0}.statusPill{background:var(--accent-soft);color:var(--accent-text);border:1px solid var(--accent-border);white-space:nowrap;border-radius:999px;align-items:center;padding:8px 12px;font-size:12px;font-weight:800;display:inline-flex}.listCards{gap:12px;display:grid}.listCard{gap:4px;display:grid}.listCard span,.cardItem p,.cardItem small,.listCard p,.importPanel p{color:var(--muted)}.cardItem{justify-content:space-between;align-items:center;gap:12px;display:flex}.cardItem h3{font-size:30px;font-family:var(--font-display);margin:0}.modeTabs{gap:8px;padding-bottom:2px;display:flex;overflow-x:auto}.tab{background:var(--surface-strong);border:1px solid var(--border);white-space:nowrap}.tab.active{background:var(--text);color:var(--surface);border-color:var(--text)}.quizCard{text-align:center;transition:all .2s;position:relative;overflow:hidden}.quizCard.correct{border-color:var(--accent);background:var(--surface-tint)}.quizCard.wrong{border-color:var(--danger);background:var(--surface-danger)}.quizCard h3{font-size:clamp(42px,14vw,96px);line-height:1;font-family:var(--font-display);margin:10px 0}.kanaText{color:var(--secondary-text);font-size:24px;font-weight:900}.answerGrid{gap:12px;display:grid}.answerButton{border-radius:var(--radius-lg);background:var(--surface-strong);border:2px solid var(--border);text-align:left;width:100%;min-height:62px;color:var(--text)}.answerButton.selected,.answerButton.correctAnswer{border-color:var(--accent);background:var(--surface-tint)}.answerButton.wrongAnswer{border-color:var(--danger);background:var(--surface-danger)}.answerButton:disabled{cursor:default;opacity:.94}.jsonTextarea{resize:vertical;border-radius:var(--radius-md);border:1px solid var(--border-strong);background:var(--surface-strong);width:100%;min-height:280px;padding:16px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.metricRow{border-top:1px solid var(--border);justify-content:space-between;gap:12px;padding:12px 0;display:flex}.badgeCard{gap:8px;display:grid}.badgeCard.earned{background:color-mix(in srgb, #fefce8 84%, var(--surface));border-color:#facc15}.badgeIcon{font-size:26px}.formPanel{gap:16px;display:grid}.formPanel h3{font-family:var(--font-display);margin:0}.formPanel label{gap:8px;font-weight:800;display:grid}.formPanel input,.formPanel select{border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--surface-strong);min-height:44px;padding:8px 12px}.bottomNav{border:1px solid var(--border);border-radius:calc(var(--radius-xl) - 4px);background:var(--nav-bg);width:min(760px,100% - 20px);box-shadow:var(--shadow-strong);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);grid-template-columns:repeat(7,1fr);gap:4px;padding:8px;display:grid;position:fixed;bottom:12px;left:50%;transform:translate(-50%)}.navItem{text-align:center;border-radius:calc(var(--radius-lg) - 6px);color:var(--muted);padding:10px 4px;font-size:12px;font-weight:900}.navItem.active{background:var(--accent-soft);color:var(--accent-text);border:1px solid var(--accent-border)}.importPanel{gap:14px;display:grid}.importPanel h3{font-size:22px;font-family:var(--font-display);margin:0}.fileDropZone{border:2px dashed var(--accent-border);border-radius:var(--radius-lg);background:var(--surface-tint);min-height:170px;color:var(--secondary-text);cursor:pointer;text-align:center;place-items:center;gap:8px;padding:24px;transition:all .18s;display:grid}.fileDropZone.dragging,.fileDropZone:hover{border-color:var(--accent);background:var(--accent-soft);transform:translateY(-1px)}.fileDropZone input{display:none}.fileDropTitle{font-size:22px;font-weight:900;font-family:var(--font-display)}.fileDropHint{color:var(--secondary-text);font-weight:800}.selectedFileName{font-weight:800;color:var(--text)!important}.pastePanel summary{cursor:pointer;color:var(--secondary-text);font-weight:900}.pastePanel .jsonTextarea{margin-top:14px}.pastePanel .buttonRow{margin-top:12px}.pronunciationText{background:var(--info-bg);color:var(--info-text);border-radius:999px;justify-content:center;align-items:center;margin:6px auto 0;padding:6px 12px;font-weight:900;display:inline-flex}.mutedText{color:var(--muted);margin:0;line-height:1.7}.noticeCard{border:1px solid var(--warning-border);border-radius:var(--radius-md);background:var(--warning-bg);color:var(--warning-text);padding:14px 16px;font-weight:800;line-height:1.6}.testVoiceBox{border-top:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:10px;padding-top:16px;display:flex}.testVoiceBox span{color:var(--muted);font-weight:900}.checkboxLabel{align-items:center;font-weight:900;gap:10px!important;display:flex!important}.checkboxLabel input[type=checkbox]{width:20px;height:20px;min-height:20px;accent-color:var(--accent)}.textButton{color:var(--secondary-text);cursor:pointer;background:0 0;border:0;justify-self:flex-start;padding:4px 0;font-weight:900}.helpText{color:var(--muted);margin:-8px 0 0;font-size:13px;line-height:1.6}.compactNotice{padding:10px 12px;font-size:13px}.progressTrack{background:var(--border);border-radius:999px;width:100%;height:12px;overflow:hidden;box-shadow:inset 0 1px 3px #00000014}.progressFill{border-radius:inherit;background:linear-gradient(90deg, var(--accent) 0%, color-mix(in srgb, var(--accent) 72%, white) 100%);height:100%;transition:width .25s}.miniExplanation{border-radius:var(--radius-md);background:var(--surface-soft);border:1px solid var(--border);gap:4px;margin:12px 0;padding:14px;display:grid}.miniExplanation p{color:var(--muted);margin:0}.resultHero{text-align:center}.resultHero h2{font-size:clamp(54px,16vw,104px)}.resultHero.excellent{border-color:var(--accent);background:var(--surface-tint)}.resultHero.good{background:color-mix(in srgb, #f0f9ff 85%, var(--surface));border-color:#38bdf8}.resultHero.review{border-color:var(--danger);background:var(--surface-danger)}.resultMessage{margin-top:14px;font-size:17px;display:block}.resultSubMessage{color:var(--secondary-text);margin:10px 0 0;font-weight:700}.compactList{gap:8px}.resultAttemptHeader{justify-content:space-between;align-items:center;gap:12px;display:flex}.resultAttemptHeader strong{font-size:20px;font-family:var(--font-display)}.resultAttemptHeader span{color:var(--muted);font-weight:800}.attemptCorrect{border-color:var(--accent-border)}.attemptWrong{border-color:var(--danger-soft);background:color-mix(in srgb, var(--surface-danger) 88%, var(--surface))}.stickyActionRow{z-index:3;border:1px solid var(--border);border-radius:calc(var(--radius-xl) - 4px);background:var(--nav-bg);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:var(--shadow);padding:12px;position:sticky;bottom:92px}.secondaryButton:disabled,.primaryButton:disabled{opacity:.45;cursor:not-allowed}.completionMessage{color:var(--secondary-text)}.completionPanel{border:1px solid var(--accent-border);border-radius:var(--radius-lg);background:var(--surface-tint);color:var(--secondary-text);gap:6px;padding:18px 20px;display:grid}.completionPanel strong{font-size:20px;font-family:var(--font-display)}.completionPanel p{color:var(--secondary-text);margin:0;font-weight:700}.themeChoiceGrid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;display:grid}.themeOption{text-align:left;border-radius:var(--radius-lg);box-shadow:var(--shadow);gap:12px;padding:16px;display:grid}.themeOption strong{font-size:18px;font-family:var(--font-display)}.themeOption p{color:var(--muted);margin:0;line-height:1.6}.themeOption.active{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 28%, transparent), var(--shadow)}.themeOptionState{background:var(--accent-soft);color:var(--accent-text);border:1px solid var(--accent-border);border-radius:999px;justify-self:flex-start;align-items:center;padding:6px 10px;font-size:12px;font-weight:900;display:inline-flex}.themePreview{border-radius:calc(var(--radius-lg) - 4px);border:1px solid var(--border);height:116px;position:relative;overflow:hidden}.themePreviewBadge,.themePreviewWindow,.themePreviewButton{display:block;position:absolute}.themePreviewBadge{border-radius:999px;width:56px;height:16px;top:12px;left:12px}.themePreviewWindow{height:48px;top:36px;left:12px;right:12px}.themePreviewButton{width:84px;height:20px;bottom:12px;left:12px}.previewModern{background:linear-gradient(#f8fafc 0%,#e2f7eb 100%)}.previewModern .themePreviewBadge{background:#dcfce7;border:1px solid #bbf7d0}.previewModern .themePreviewWindow{background:#ffffffe6;border:1px solid #cbd5e1;border-radius:18px}.previewModern .themePreviewButton{background:#22c55e;border-radius:999px;box-shadow:0 6px 12px #22c55e40}.previewPixelMeadow{background:linear-gradient(#d9efb4 0%,#c8e59b 100%),repeating-linear-gradient(0deg,#fff3 0 16px,#0000 16px 32px),repeating-linear-gradient(90deg,#ffffff24 0 16px,#0000 16px 32px)}.previewPixelMeadow .themePreviewBadge{background:#8fdc62;border:3px solid #6c4b23;border-radius:6px}.previewPixelMeadow .themePreviewWindow{background:#fff7de;border:4px solid #6c4b23;box-shadow:0 6px #6c4b2373}.previewPixelMeadow .themePreviewButton{background:#f3ddb0;border:4px solid #6c4b23;box-shadow:0 5px #6c4b2373}.previewMonoBattle{background:linear-gradient(#111 0%,#030303 100%)}.previewMonoBattle .themePreviewBadge{background:#0d0d0d;border:2px solid #fff;border-radius:1px}.previewMonoBattle .themePreviewWindow{background:#0d0d0d;border:3px solid #fff}.previewMonoBattle .themePreviewButton{background:#fff;border:2px solid #fff}:root[data-theme=pixel_meadow] .heroCard,:root[data-theme=pixel_meadow] .quizCard,:root[data-theme=pixel_meadow] .feedbackCard,:root[data-theme=pixel_meadow] .panel,:root[data-theme=pixel_meadow] .emptyCard,:root[data-theme=pixel_meadow] .statCard,:root[data-theme=pixel_meadow] .badgeCard,:root[data-theme=pixel_meadow] .listCard,:root[data-theme=pixel_meadow] .cardItem,:root[data-theme=pixel_meadow] .bottomNav,:root[data-theme=pixel_meadow] .stickyActionRow,:root[data-theme=pixel_meadow] .themeOption,:root[data-theme=pixel_meadow] .completionPanel{box-shadow:var(--shadow);border-width:3px}:root[data-theme=pixel_meadow] .primaryButton,:root[data-theme=pixel_meadow] .secondaryButton,:root[data-theme=pixel_meadow] .iconButton,:root[data-theme=pixel_meadow] .tab,:root[data-theme=pixel_meadow] .answerButton{border-width:3px;box-shadow:0 5px #6c4b2373}:root[data-theme=pixel_meadow] .secondaryButton,:root[data-theme=pixel_meadow] .iconButton,:root[data-theme=pixel_meadow] .tab{background:linear-gradient(#f8e7bd 0%,#f3ddb0 100%)}:root[data-theme=pixel_meadow] .answerButton{background:linear-gradient(#fffbee 0%,#fff3d2 100%)}:root[data-theme=pixel_meadow] .progressTrack{border:3px solid var(--border);background:#eff7d5;height:14px;box-shadow:inset 0 0 0 2px #ffffff61}:root[data-theme=pixel_meadow] .progressFill{background:linear-gradient(90deg,#74c344 0%,#a0db64 100%)}:root[data-theme=mono_battle] .topBar,:root[data-theme=mono_battle] .bottomNav,:root[data-theme=mono_battle] .stickyActionRow,:root[data-theme=mono_battle] .heroCard,:root[data-theme=mono_battle] .quizCard,:root[data-theme=mono_battle] .feedbackCard,:root[data-theme=mono_battle] .panel,:root[data-theme=mono_battle] .emptyCard,:root[data-theme=mono_battle] .statCard,:root[data-theme=mono_battle] .badgeCard,:root[data-theme=mono_battle] .listCard,:root[data-theme=mono_battle] .cardItem,:root[data-theme=mono_battle] .themeOption,:root[data-theme=mono_battle] .completionPanel{box-shadow:none;border-width:2px}:root[data-theme=mono_battle] .heroCard,:root[data-theme=mono_battle] .quizCard,:root[data-theme=mono_battle] .feedbackCard,:root[data-theme=mono_battle] .panel,:root[data-theme=mono_battle] .emptyCard,:root[data-theme=mono_battle] .statCard,:root[data-theme=mono_battle] .badgeCard,:root[data-theme=mono_battle] .listCard,:root[data-theme=mono_battle] .cardItem,:root[data-theme=mono_battle] .themeOption,:root[data-theme=mono_battle] .completionPanel{background-image:linear-gradient(#ffffff0a,#0000 40%)}:root[data-theme=mono_battle] .primaryButton{color:#050505;background:#fff}:root[data-theme=mono_battle] .secondaryButton,:root[data-theme=mono_battle] .iconButton,:root[data-theme=mono_battle] .tab,:root[data-theme=mono_battle] .answerButton{color:#fff;box-shadow:none;background:#0f0f0f;border:2px solid #fff}:root[data-theme=mono_battle] .tab.active,:root[data-theme=mono_battle] .navItem.active,:root[data-theme=mono_battle] .themeOptionState{color:#050505;background:#fff;border-color:#fff}:root[data-theme=mono_battle] .answerButton.selected,:root[data-theme=mono_battle] .answerButton.correctAnswer,:root[data-theme=mono_battle] .quizCard.correct,:root[data-theme=mono_battle] .resultHero.excellent,:root[data-theme=mono_battle] .completionPanel{background:#101010;border-color:#fde047}:root[data-theme=mono_battle] .answerButton.wrongAnswer,:root[data-theme=mono_battle] .quizCard.wrong,:root[data-theme=mono_battle] .resultHero.review,:root[data-theme=mono_battle] .attemptWrong{border-color:#fb7185}:root[data-theme=mono_battle] .progressTrack{height:14px;box-shadow:none;background:#0d0d0d;border:2px solid #fff}:root[data-theme=mono_battle] .progressFill{background:linear-gradient(90deg,#fff 0%,#fde047 100%)}:root[data-theme=mono_battle] .pronunciationText,:root[data-theme=mono_battle] .noticeCard,:root[data-theme=mono_battle] .miniExplanation{border-width:2px}@keyframes cardRise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (width<=640px){.topBar{align-items:flex-start}.bottomNav{grid-template-columns:repeat(4,1fr)}.navItem{font-size:11px}.cardItem,.resultAttemptHeader{flex-direction:column;align-items:flex-start}.stickyActionRow{bottom:118px}.themeChoiceGrid{grid-template-columns:1fr}}:root[data-theme=pixel_meadow]{--font-main:"DotGothic16", "PixelMplus10", "JF-Dot-K12", "美咲ゴシック", "MS Gothic", "Osaka-Mono", monospace;--font-display:"DotGothic16", "PixelMplus10", "JF-Dot-K12", "美咲ゴシック", "MS Gothic", monospace;--bg:#bfe27d;--surface:#fff4cf;--surface-strong:#fff8dc;--surface-soft:#f6e3b0;--surface-tint:#d8f09a;--border:#5b3518;--border-strong:#3f2410;--radius-xl:0px;--radius-lg:0px;--radius-md:0px;--radius-sm:0px;--button-radius:0px}:root[data-theme=pixel_meadow] body{image-rendering:pixelated;background-color:#bfe27d;background-image:linear-gradient(90deg,#ffffff2e 1px,#0000 1px),linear-gradient(#ffffff2e 1px,#0000 1px),linear-gradient(90deg,#5c8f3738 8px,#0000 8px),linear-gradient(#5c8f3726 8px,#0000 8px);background-size:16px 16px,16px 16px,32px 32px,32px 32px}:root[data-theme=pixel_meadow] body:before{opacity:.5;background-color:#0000;background-image:linear-gradient(45deg,#0000 0 45%,#5b7d3429 45% 55%,#0000 55% 100%),linear-gradient(-45deg,#0000 0 45%,#ffffff1f 45% 55%,#0000 55% 100%);background-position:0 0,0 0;background-repeat:repeat,repeat;background-size:32px 32px;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box}:root[data-theme=pixel_meadow] .topBar{border-bottom:3px solid var(--border);background:#dff1a8}:root[data-theme=pixel_meadow] .heroCard,:root[data-theme=pixel_meadow] .quizCard,:root[data-theme=pixel_meadow] .feedbackCard,:root[data-theme=pixel_meadow] .panel,:root[data-theme=pixel_meadow] .emptyCard,:root[data-theme=pixel_meadow] .statCard,:root[data-theme=pixel_meadow] .badgeCard,:root[data-theme=pixel_meadow] .listCard,:root[data-theme=pixel_meadow] .cardItem,:root[data-theme=pixel_meadow] .bottomNav,:root[data-theme=pixel_meadow] .stickyActionRow,:root[data-theme=pixel_meadow] .themeOption,:root[data-theme=pixel_meadow] .completionPanel{border:4px solid var(--border);outline-offset:-8px;outline:2px solid #ffffff9e;box-shadow:8px 8px #5b35186b}:root[data-theme=pixel_meadow] .heroCard,:root[data-theme=pixel_meadow] .quizCard,:root[data-theme=pixel_meadow] .feedbackCard,:root[data-theme=pixel_meadow] .panel,:root[data-theme=pixel_meadow] .emptyCard{background-image:linear-gradient(90deg,#5b351809 1px,#0000 1px),linear-gradient(#5b351809 1px,#0000 1px);background-size:8px 8px}:root[data-theme=pixel_meadow] .primaryButton,:root[data-theme=pixel_meadow] .secondaryButton,:root[data-theme=pixel_meadow] .iconButton,:root[data-theme=pixel_meadow] .tab,:root[data-theme=pixel_meadow] .answerButton{border:4px solid var(--border);outline-offset:-6px;text-shadow:1px 1px #ffffff52;outline:1px solid #ffffffa6;box-shadow:5px 5px #5b35186b}:root[data-theme=pixel_meadow] .primaryButton:active,:root[data-theme=pixel_meadow] .secondaryButton:active,:root[data-theme=pixel_meadow] .answerButton:active{transform:translate(3px,3px);box-shadow:2px 2px #5b35186b}:root[data-theme=pixel_meadow] .primaryButton{background:#8fd153}:root[data-theme=pixel_meadow] .secondaryButton,:root[data-theme=pixel_meadow] .iconButton,:root[data-theme=pixel_meadow] .tab,:root[data-theme=pixel_meadow] .answerButton{background:#fff4cf}:root[data-theme=pixel_meadow] .tab.active,:root[data-theme=pixel_meadow] .navItem.active{color:#18311b;background:#8fd153}:root[data-theme=pixel_meadow] .quizCard h3,:root[data-theme=pixel_meadow] .sectionHeader h2,:root[data-theme=pixel_meadow] .topBar h1,:root[data-theme=pixel_meadow] .heroCard h2{letter-spacing:.02em}:root[data-theme=pixel_meadow] .previewPixelMeadow{background-color:#bfe27d;background-image:linear-gradient(90deg,#ffffff2e 1px,#0000 1px),linear-gradient(#ffffff2e 1px,#0000 1px),linear-gradient(90deg,#5c8f3738 8px,#0000 8px),linear-gradient(#5c8f3726 8px,#0000 8px);background-size:16px 16px,16px 16px,32px 32px,32px 32px}:root[data-theme=pixel_meadow] .previewPixelMeadow .themePreviewWindow,:root[data-theme=pixel_meadow] .previewPixelMeadow .themePreviewButton{border-radius:0}:root[data-theme=mono_battle]{--font-main:"DotGothic16", "PixelMplus10", "JF-Dot-K12", "美咲ゴシック", "MS Gothic", "MS PGothic", ui-monospace, monospace;--font-display:"DotGothic16", "PixelMplus10", "JF-Dot-K12", "美咲ゴシック", "MS Gothic", ui-monospace, monospace;--danger:red}:root[data-theme=mono_battle] body,:root[data-theme=mono_battle] button,:root[data-theme=mono_battle] input,:root[data-theme=mono_battle] select,:root[data-theme=mono_battle] textarea{-webkit-font-smoothing:none;text-rendering:geometricprecision}:root[data-theme=mono_battle] .answerButton{padding-right:64px;position:relative}:root[data-theme=mono_battle] .answerButton:after{content:"";width:26px;height:26px;image-rendering:pixelated;opacity:0;background:url(/assets/red-soul.png) 50%/contain no-repeat;transition:opacity 80ms linear,transform 80ms linear;position:absolute;top:50%;right:22px;transform:translateY(-50%)scale(.82)}:root[data-theme=mono_battle] .answerButton:hover:not(:disabled):after,:root[data-theme=mono_battle] .answerButton:focus-visible:after,:root[data-theme=mono_battle] .answerButton.selected:after,:root[data-theme=mono_battle] .answerButton.correctAnswer:after{opacity:1;transform:translateY(-50%)scale(1)}:root[data-theme=mono_battle] .answerButton:hover:not(:disabled),:root[data-theme=mono_battle] .answerButton:focus-visible{color:#fff;border-color:red}:root[data-theme=mono_battle] .answerButton.correctAnswer:after{filter:none}:root[data-theme=mono_battle] .answerButton.wrongAnswer:after{opacity:1;transform:translateY(-50%)scale(1)}:root[data-theme=mono_battle] .previewMonoBattle .themePreviewButton:after{content:"";width:24px;height:24px;image-rendering:pixelated;background:url(/assets/red-soul.png) 50%/contain no-repeat;position:absolute;top:-2px;right:-34px}:root{--jp-pixel-font:"ab-megadot9", "DotGothic16", "PixelMplus10", "JF-Dot-K12", "美咲ゴシック", "MS Gothic", "MS PGothic", ui-monospace, monospace}:root[data-theme=pixel_meadow],:root[data-theme=mono_battle]{--font-main:var(--jp-pixel-font);--font-display:var(--jp-pixel-font)}:root[data-theme=mono_battle] .quizCard,:root[data-theme=mono_battle] .answerButton,:root[data-theme=mono_battle] .feedbackCard,:root[data-theme=mono_battle] .resultHero,:root[data-theme=pixel_meadow] .quizCard,:root[data-theme=pixel_meadow] .answerButton,:root[data-theme=pixel_meadow] .feedbackCard{letter-spacing:.03em}:root[data-theme=mono_battle] .quizCard h3,:root[data-theme=mono_battle] .answerButton,:root[data-theme=mono_battle] .feedbackCard,:root[data-theme=mono_battle] .sectionHeader h2,:root[data-theme=mono_battle] .topBar h1,:root[data-theme=mono_battle] .navItem{text-shadow:2px 0 #000,0 2px #000}.battleHud{display:none}:root[data-theme=mono_battle] .topBar h1,:root[data-theme=mono_battle] .sectionHeader h2,:root[data-theme=mono_battle] .heroCard h2,:root[data-theme=mono_battle] .quizCard h3,:root[data-theme=mono_battle] .resultHero h2{letter-spacing:.035em;line-height:1.14}:root[data-theme=mono_battle] .eyebrow{letter-spacing:.12em}:root[data-theme=mono_battle] .navItem{min-height:46px;color:var(--battle-orange);text-shadow:none;border:2px solid #0000;border-radius:0;place-items:center;font-size:14px;line-height:1.2;display:inline-grid}:root[data-theme=mono_battle] .navItem:hover,:root[data-theme=mono_battle] .navItem:focus-visible{border-color:var(--battle-orange);color:var(--battle-orange)}:root[data-theme=mono_battle] .tab{border-color:var(--battle-orange);min-height:48px;color:var(--battle-orange);text-shadow:none;background:#070707;padding-inline:20px;font-size:15px}:root[data-theme=mono_battle] .tab.active,:root[data-theme=mono_battle] .tab:hover,:root[data-theme=mono_battle] .tab:focus-visible{background:var(--battle-orange);color:#050505;border-color:var(--battle-orange)}:root[data-theme=mono_battle] .answerButton{letter-spacing:.08em;min-height:70px;padding:18px 74px 18px 22px;font-size:16px;line-height:1.6}:root[data-theme=mono_battle] .battleHud{color:#fff;background:#070707;border:2px solid #fff;justify-content:center;align-items:center;gap:14px;padding:8px 12px;font-size:15px;font-weight:900;display:flex}:root[data-theme=mono_battle] .battleHudName,:root[data-theme=mono_battle] .battleHudLevel{min-width:max-content}:root[data-theme=mono_battle] .battleHudLabel{color:var(--battle-orange)}:root[data-theme=mono_battle] .battleHpTrack{background:#5b1010;border:2px solid #fff;align-items:stretch;width:min(260px,34vw);height:22px;display:inline-flex;overflow:hidden}:root[data-theme=mono_battle] .battleHud strong{color:#fff;min-width:86px}:root[data-theme=mono_battle] .battleHud.damaged .battleHpTrack{border-color:var(--battle-red)}:root[data-theme=mono_battle] .secondaryButton,:root[data-theme=mono_battle] .primaryButton{letter-spacing:.07em;font-size:15px}:root[data-theme=mono_battle] .feedbackCard{font-size:16px}:root[data-theme=mono_battle] .stickyActionRow .secondaryButton,:root[data-theme=mono_battle] .stickyActionRow .primaryButton{border-color:var(--battle-orange);color:var(--battle-orange);background:#070707}:root[data-theme=mono_battle] .stickyActionRow .primaryButton{background:var(--battle-orange);color:#050505}:root[data-theme=mono_battle] .statusPill{color:#fff;background:#070707;border-color:#fff}:root[data-theme=pixel_meadow] body{background-color:#bade7b;background-image:linear-gradient(90deg,#ffffff38 2px,#0000 2px),linear-gradient(#ffffff38 2px,#0000 2px),linear-gradient(90deg,#537e3142 12px,#0000 12px),linear-gradient(#537e312e 12px,#0000 12px);background-size:24px 24px,24px 24px,48px 48px,48px 48px}:root[data-theme=pixel_meadow] body:before{background:0 0}:root[data-theme=pixel_meadow] .heroCard,:root[data-theme=pixel_meadow] .quizCard,:root[data-theme=pixel_meadow] .feedbackCard,:root[data-theme=pixel_meadow] .panel,:root[data-theme=pixel_meadow] .emptyCard,:root[data-theme=pixel_meadow] .statCard,:root[data-theme=pixel_meadow] .listCard,:root[data-theme=pixel_meadow] .cardItem,:root[data-theme=pixel_meadow] .bottomNav,:root[data-theme=pixel_meadow] .stickyActionRow{border-radius:0}:root[data-theme=pixel_meadow] .quizCard,:root[data-theme=pixel_meadow] .answerButton,:root[data-theme=pixel_meadow] .secondaryButton,:root[data-theme=pixel_meadow] .primaryButton,:root[data-theme=pixel_meadow] .tab{image-rendering:pixelated}@keyframes hpDamageFlash{0%,to{filter:none;transform:translate(0)}25%{filter:brightness(2);transform:translate(-4px)}50%{filter:none;transform:translate(4px)}75%{filter:brightness(2);transform:translate(-2px)}}@keyframes battleShake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}50%{transform:translate(4px)}75%{transform:translate(-2px)}}@media (width<=640px){:root[data-theme=mono_battle] .bottomNav{grid-template-columns:repeat(4,1fr);gap:6px}:root[data-theme=mono_battle] .navItem{min-height:42px;font-size:12px}:root[data-theme=mono_battle] .battleHud{justify-content:flex-start;gap:8px;font-size:12px;overflow-x:auto}:root[data-theme=mono_battle] .battleHpTrack{width:120px;min-width:120px}}:root[data-theme=mono_battle] .battleHud{color:#fff;letter-spacing:.08em;background:0 0;border:0;justify-content:flex-end;justify-self:end;align-items:center;gap:8px;width:max-content;margin-left:auto;padding:0;font-size:17px;font-weight:900;line-height:1;display:flex}:root[data-theme=mono_battle] .battleHudLabel{color:#fff;letter-spacing:.08em;font-size:14px;transform:translateY(1px)}:root[data-theme=mono_battle] .navItem{letter-spacing:.045em;min-height:52px;padding:10px 8px;font-size:16px;line-height:1.18}:root[data-theme=mono_battle] .bottomNav{gap:12px;width:min(980px,100% - 24px)}:root[data-theme=mono_battle] .navItem.active{color:var(--battle-orange);border-color:var(--battle-orange);background:#070707;box-shadow:inset 0 0 0 2px #ff7f2747}:root[data-theme=mono_battle] .navItem:hover,:root[data-theme=mono_battle] .navItem:focus-visible{color:var(--battle-orange);background:#070707}:root[data-theme=mono_battle] .tab{letter-spacing:.05em}:root[data-theme=mono_battle] .answerButton{letter-spacing:.055em;word-spacing:.18em}:root[data-theme=mono_battle] .quizCard h3,:root[data-theme=mono_battle] .sectionHeader h2,:root[data-theme=mono_battle] .topBar h1{letter-spacing:.055em}@media (width<=640px){:root[data-theme=mono_battle] .navItem{min-height:46px;font-size:13px}:root[data-theme=mono_battle] .battleHud{gap:6px;font-size:14px}:root[data-theme=mono_battle] .battleHpTrack{width:46px;min-width:46px;height:18px}:root[data-theme=mono_battle] .battleHud strong{min-width:72px}}:root[data-theme=mono_battle]{--battle-orange:#ff7f27;--battle-yellow:#fff200;--battle-red:red}:root[data-theme=mono_battle] .quizCard h3,:root[data-theme=mono_battle] .sectionHeader h2,:root[data-theme=mono_battle] .topBar h1,:root[data-theme=mono_battle] .heroCard h2,:root[data-theme=mono_battle] .resultHero h2{letter-spacing:.075em;line-height:1.24}:root[data-theme=mono_battle] .bottomNav{gap:12px;width:min(980px,100% - 24px);padding:10px 14px}:root[data-theme=mono_battle] .navItem{border:2px solid var(--battle-orange);min-height:52px;color:var(--battle-orange);letter-spacing:.08em;text-shadow:none;background:#070707;border-radius:0;place-items:center;padding:10px 8px;font-size:18px;line-height:1.2;display:inline-grid}:root[data-theme=mono_battle] .navItem.active,:root[data-theme=mono_battle] .navItem:hover,:root[data-theme=mono_battle] .navItem:focus-visible{color:var(--battle-yellow);border-color:var(--battle-yellow);box-shadow:none;background:#070707}:root[data-theme=mono_battle] .modeTabs{gap:12px;padding-bottom:4px}:root[data-theme=mono_battle] .tab{border:2px solid var(--battle-orange);min-height:48px;color:var(--battle-orange);letter-spacing:.075em;text-shadow:none;background:#070707;padding-inline:20px;font-size:17px}:root[data-theme=mono_battle] .tab.active,:root[data-theme=mono_battle] .tab:hover,:root[data-theme=mono_battle] .tab:focus-visible{color:var(--battle-yellow);border-color:var(--battle-yellow);box-shadow:none;background:#070707}:root[data-theme=mono_battle] .battleHud{color:#fff;letter-spacing:.09em;background:0 0;border:0;justify-content:center;align-items:center;gap:10px;width:max-content;margin:0 auto;padding:2px 4px;font-size:18px;font-weight:900;line-height:1;display:flex}:root[data-theme=mono_battle] .battleHudName,:root[data-theme=mono_battle] .battleHudLevel,:root[data-theme=mono_battle] .battleHudLabel{color:#fff;min-width:max-content;transform:translateY(1px)}:root[data-theme=mono_battle] .battleHudLevel{margin-right:22px}:root[data-theme=mono_battle] .battleHudLabel{margin-left:8px}:root[data-theme=mono_battle] .battleHpTrack{background:var(--battle-red);width:54px;min-width:54px;height:23px;image-rendering:pixelated;border:0;display:inline-block;overflow:hidden}:root[data-theme=mono_battle] .battleHpFill{background:var(--battle-yellow);height:100%;transition:width .12s steps(5,end);display:block}:root[data-theme=mono_battle] .battleHud strong{color:#fff;text-align:left;letter-spacing:.09em;min-width:96px}:root[data-theme=mono_battle] .battleHud.damaged{animation:.36s steps(2,end) hpDamageFlash}:root[data-theme=mono_battle] .battleHud.damaged .battleHpTrack{outline-offset:2px;outline:2px solid #fff}:root[data-theme=mono_battle] .answerButton{letter-spacing:.09em;word-spacing:.22em;min-height:72px;padding:18px 78px 18px 24px;font-size:18px;line-height:1.7}:root[data-theme=mono_battle] .answerButton:hover:not(:disabled),:root[data-theme=mono_battle] .answerButton:focus-visible,:root[data-theme=mono_battle] .answerButton.selected{border-color:var(--battle-yellow);color:#fff}:root[data-theme=mono_battle] .answerButton.correctAnswer{border-color:var(--battle-yellow)}:root[data-theme=mono_battle] .answerButton.wrongAnswer{border-color:var(--battle-red);animation:.24s steps(2,end) battleShake}:root[data-theme=mono_battle] .stickyActionRow .secondaryButton,:root[data-theme=mono_battle] .stickyActionRow .primaryButton{border:2px solid var(--battle-orange);color:var(--battle-orange);background:#070707}:root[data-theme=mono_battle] .stickyActionRow .secondaryButton:hover,:root[data-theme=mono_battle] .stickyActionRow .secondaryButton:focus-visible,:root[data-theme=mono_battle] .stickyActionRow .primaryButton:hover,:root[data-theme=mono_battle] .stickyActionRow .primaryButton:focus-visible{border-color:var(--battle-yellow);color:var(--battle-yellow)}:root[data-theme=mono_battle] .stickyActionRow .primaryButton{color:var(--battle-orange)}@media (width<=640px){:root[data-theme=mono_battle] .navItem{min-height:46px;font-size:14px}:root[data-theme=mono_battle] .battleHud{justify-content:flex-start;gap:6px;width:100%;font-size:13px;overflow-x:auto}:root[data-theme=mono_battle] .battleHudLevel{margin-right:10px}:root[data-theme=mono_battle] .battleHpTrack{width:46px;min-width:46px;height:18px}:root[data-theme=mono_battle] .battleHud strong{min-width:74px}}.studyStartPanel{gap:18px;display:grid}.studyStartPanel h3{font-family:var(--font-display);margin:0}.startModeTabs{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));display:grid;overflow:visible}.questionCountGrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.questionCountButton{border-radius:var(--radius-lg);border:2px solid var(--border);background:var(--surface-strong);min-height:96px;color:var(--text);cursor:pointer;place-items:center;display:grid}.questionCountButton strong{font-size:clamp(30px,7vw,48px);line-height:1;font-family:var(--font-display)}.questionCountButton span{color:var(--muted);font-weight:900}.questionCountButton.active{border-color:var(--accent);background:var(--surface-tint)}.startStudyButton{justify-self:start;min-width:180px}.quizActionRow{flex-wrap:wrap;justify-content:center;gap:12px;margin-top:12px;display:inline-flex}.compactFeedbackCard{padding-block:18px}:root[data-theme=mono_battle]{--font-main:"ab-megadot9", "DotGothic16", "PixelMplus10", "JF-Dot-K12", "美咲ゴシック", "MS Gothic", "MS PGothic", ui-monospace, monospace;--font-display:"ab-megadot9", "DotGothic16", "PixelMplus10", "JF-Dot-K12", "美咲ゴシック", "MS Gothic", "MS PGothic", ui-monospace, monospace}:root[data-theme=mono_battle] .progressTrack{display:none}:root[data-theme=mono_battle] .appShell,:root[data-theme=mono_battle] .topBar,:root[data-theme=mono_battle] .pageFrame,:root[data-theme=mono_battle] .bottomNav,:root[data-theme=mono_battle] button,:root[data-theme=mono_battle] input,:root[data-theme=mono_battle] select,:root[data-theme=mono_battle] textarea{letter-spacing:.115em;line-height:1.62}:root[data-theme=mono_battle] .quizCard h3{letter-spacing:.08em;font-size:clamp(36px,8vw,72px);line-height:1.18}:root[data-theme=mono_battle] .quizCard{padding-block:clamp(24px,4vw,48px)}:root[data-theme=mono_battle] .quizActionRow .secondaryButton,:root[data-theme=mono_battle] .quizActionRow .primaryButton{min-width:180px}:root[data-theme=mono_battle] .modeTabs.startModeTabs{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px;display:grid}:root[data-theme=mono_battle] .tab,:root[data-theme=mono_battle] .navItem,:root[data-theme=mono_battle] .questionCountButton,:root[data-theme=mono_battle] .quizActionRow .secondaryButton,:root[data-theme=mono_battle] .quizActionRow .primaryButton,:root[data-theme=mono_battle] .stickyActionRow .secondaryButton,:root[data-theme=mono_battle] .stickyActionRow .primaryButton{border:2px solid var(--battle-orange);color:var(--battle-orange);text-shadow:none;background:#070707}:root[data-theme=mono_battle] .tab.active,:root[data-theme=mono_battle] .tab:hover,:root[data-theme=mono_battle] .tab:focus-visible,:root[data-theme=mono_battle] .navItem.active,:root[data-theme=mono_battle] .navItem:hover,:root[data-theme=mono_battle] .navItem:focus-visible,:root[data-theme=mono_battle] .questionCountButton.active,:root[data-theme=mono_battle] .questionCountButton:hover,:root[data-theme=mono_battle] .questionCountButton:focus-visible,:root[data-theme=mono_battle] .quizActionRow .secondaryButton:hover,:root[data-theme=mono_battle] .quizActionRow .secondaryButton:focus-visible,:root[data-theme=mono_battle] .quizActionRow .primaryButton:hover,:root[data-theme=mono_battle] .quizActionRow .primaryButton:focus-visible{border-color:var(--battle-yellow);color:var(--battle-yellow);background:#070707}:root[data-theme=mono_battle] .questionCountButton strong,:root[data-theme=mono_battle] .questionCountButton span{color:inherit}:root[data-theme=mono_battle] .battleHudName:after{content:""}:root[data-theme=mono_battle] .battleHudName{text-align:right;min-width:150px}:root[data-theme=mono_battle] .startBattleHud{justify-content:flex-start;margin:4px 0 0}:root[data-theme=mono_battle] .answerButton.correctAnswer:not(.selected):after{opacity:0!important;transform:translateY(-50%)scale(.82)!important}:root[data-theme=mono_battle] .answerButton.selected:after,:root[data-theme=mono_battle] .answerButton:hover:not(:disabled):after,:root[data-theme=mono_battle] .answerButton:focus-visible:after{opacity:1!important;transform:translateY(-50%)scale(1)!important}:root[data-theme=mono_battle] .answerButton.correctAnswer:not(.selected){color:#fff}:root[data-theme=mono_battle] .feedbackCard p{margin-block:4px}@media (width<=640px){.questionCountGrid{grid-template-columns:1fr}:root[data-theme=mono_battle] .battleHudName{text-align:left;min-width:auto}:root[data-theme=mono_battle] .quizCard h3{font-size:clamp(34px,12vw,56px)}}.panelHeaderInline{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;display:flex}.panelHeaderInline h3{font-family:var(--font-display);margin:0 0 6px}.panelHeaderInline p{color:var(--muted);margin:0;line-height:1.6}.chartPanel{overflow:hidden}.dailyAccuracyChartWrap{gap:14px;display:grid}.chartSummaryRow{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.chartSummaryRow div{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-soft);gap:4px;padding:12px 14px;display:grid}.chartSummaryRow span{color:var(--muted);font-size:12px;font-weight:900}.chartSummaryRow strong{font-size:22px;font-family:var(--font-display)}.dailyAccuracyChart{width:100%;height:auto;min-height:230px;color:var(--accent);overflow:visible}.chartGridLine{stroke:var(--border);stroke-width:1.5px;stroke-dasharray:4 6}.chartYAxisLabel,.chartXAxisLabel{fill:var(--muted);text-anchor:end;font-size:13px;font-weight:800}.chartXAxisLabel{text-anchor:middle}.chartLine{fill:none;stroke:currentColor;stroke-width:5px;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 4px 8px color-mix(in srgb, var(--accent) 22%, transparent))}.chartPoint{fill:var(--surface);stroke:currentColor;stroke-width:4px}.chartLegendRow{color:var(--muted);flex-wrap:wrap;gap:14px;font-size:13px;font-weight:900;display:flex}.chartLegendRow span{align-items:center;gap:8px;display:inline-flex}.legendLine,.legendDot{background:var(--accent);border-radius:999px;width:28px;height:4px;display:inline-block}.legendDot{border-radius:50%;width:10px;height:10px}.emptyChartBox{border:1px dashed var(--border-strong);border-radius:var(--radius-lg);background:var(--surface-soft);gap:6px;padding:22px;display:grid}.emptyChartBox p{color:var(--muted);margin:0}:root[data-theme=mono_battle] .chartLine{stroke-width:4px;filter:none}:root[data-theme=mono_battle] .chartGridLine{stroke-dasharray:none;opacity:.32}:root[data-theme=mono_battle] .chartPoint{fill:#050505;stroke:#f7901e}:root[data-theme=mono_battle] .chartPointHalo{fill:#f7901e2e}:root[data-theme=mono_battle] .dailyAccuracyChart,:root[data-theme=mono_battle] .legendLine,:root[data-theme=mono_battle] .legendDot{color:#f7901e;background:#f7901e}:root[data-theme=pixel_meadow] .chartSummaryRow div,:root[data-theme=pixel_meadow] .emptyChartBox{border-width:3px;box-shadow:0 4px #6c4b2352}:root[data-theme=pixel_meadow] .chartLine{stroke-width:6px}@media (width<=640px){.panelHeaderInline{flex-direction:column}.chartSummaryRow{grid-template-columns:1fr}.dailyAccuracyChart{min-height:190px}}.chartPanel{color:#fff!important;background:#050505!important;border-color:#fff!important}.chartPanel .panelHeaderInline h3,.chartPanel .panelHeaderInline p,.chartPanel .chartSummaryRow span,.chartPanel .chartSummaryRow strong,.chartPanel .chartLegendRow,.chartPanel .emptyChartBox,.chartPanel .emptyChartBox p{color:#fff!important}.chartPanel .statusPill{color:#fff!important;background:#050505!important;border-color:#fff!important}.chartSummaryRow div,.emptyChartBox{color:#fff!important;box-shadow:none!important;background:#050505!important;border-color:#fff!important}.dailyAccuracyChart{color:#fff!important;background:#050505!important}.chartGridLine{stroke:#333!important;opacity:1!important}.chartYAxisLabel,.chartXAxisLabel{fill:#fff!important}.chartArea{fill:#ffffff1a!important}.chartLine{stroke:#fff!important;filter:none!important}.chartPointHalo{fill:#ffffff29!important}.chartPoint{fill:#050505!important;stroke:#fff!important}.chartPointEmpty{fill:#777!important;opacity:1!important}.legendLine,.legendDot{background:#fff!important}.legendDot.empty{background:#777!important}:root[data-theme=mono_battle] .chartPanel,:root[data-theme=mono_battle] .chartSummaryRow div,:root[data-theme=mono_battle] .emptyChartBox{border-width:2px}.expPanel,.playerLevelPanel{border:1px solid var(--border);border-radius:var(--radius-xl);background:var(--surface);color:var(--text);box-shadow:var(--shadow);gap:14px;padding:clamp(18px,4vw,28px);display:grid}.expPanelHeader,.playerLevelPanel{align-items:center}.expPanelHeader{justify-content:space-between;gap:16px;display:flex}.expPanelHeader h3,.playerLevelPanel h3{font-family:var(--font-display);margin:0;font-size:clamp(24px,5vw,38px)}.expPanelHeader strong{font-family:var(--font-display);white-space:nowrap;font-size:clamp(20px,4vw,32px)}.expBreakdown{flex-wrap:wrap;gap:8px;display:flex}.expBreakdown span,.expNextText,.playerLevelMeter p{color:var(--muted);margin:0;font-weight:900}.expBreakdown span{border:1px solid var(--accent-border);background:var(--accent-soft);color:var(--accent-text);border-radius:999px;padding:7px 10px;font-size:13px;display:inline-flex}.expTrack{border:1px solid var(--border);background:var(--surface-soft);border-radius:999px;width:100%;height:16px;overflow:hidden}.expFill{border-radius:inherit;background:linear-gradient(90deg,#facc15 0%,#f7901e 100%);height:100%;transition:width .35s}.earnedBadgeNoticeList{gap:10px;display:grid}.earnedBadgeNotice{border-radius:var(--radius-lg);background:color-mix(in srgb, #facc15 15%, var(--surface));border:1px solid #facc15;gap:4px;padding:14px 16px;display:grid}.earnedBadgeNotice span{color:#f7901e;font-weight:900}.earnedBadgeNotice strong{font-family:var(--font-display);font-size:20px}.earnedBadgeNotice small{color:var(--muted);font-weight:900}.playerLevelPanel{grid-template-columns:minmax(180px,.45fr) 1fr}.playerLevelMeter{gap:8px;display:grid}:root[data-theme=mono_battle] .expPanel,:root[data-theme=mono_battle] .playerLevelPanel{background:#050505;border-color:#fff}:root[data-theme=mono_battle] .expTrack{background:#111;border:2px solid #fff;border-radius:0;height:18px}:root[data-theme=mono_battle] .expFill{background:#f7901e;border-radius:0}:root[data-theme=mono_battle] .expBreakdown span{color:#f7901e;background:#050505;border-color:#f7901e;border-radius:0}:root[data-theme=mono_battle] .earnedBadgeNotice{background:#050505;border:2px solid #facc15;border-radius:0}:root[data-theme=pixel_meadow] .expPanel,:root[data-theme=pixel_meadow] .playerLevelPanel{box-shadow:var(--shadow);border-width:3px}:root[data-theme=pixel_meadow] .expTrack{border:3px solid var(--border);border-radius:6px;height:18px}:root[data-theme=pixel_meadow] .expFill{border-radius:0}@media (width<=640px){.expPanelHeader,.playerLevelPanel{grid-template-columns:1fr;align-items:flex-start}.expPanelHeader{flex-direction:column}}.badgeSummaryPanel{border:1px solid var(--border);border-radius:var(--radius-xl);background:var(--surface);color:var(--text);box-shadow:var(--shadow);grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;padding:16px;display:grid}.badgeSummaryPanel div{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface-soft);gap:6px;padding:12px 14px;display:grid}.badgeSummaryPanel span{color:var(--muted);font-size:13px;font-weight:900}.badgeSummaryPanel strong{font-family:var(--font-display);font-size:28px}.badgeSection{border:1px solid var(--border);border-radius:var(--radius-xl);background:var(--surface);color:var(--text);box-shadow:var(--shadow);gap:16px;padding:clamp(18px,4vw,28px);display:grid}.badgeSectionHeader{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.badgeSectionHeader h3{font-family:var(--font-display);margin:0 0 8px;font-size:clamp(22px,4vw,30px)}.badgeSectionHeader p{color:var(--muted);margin:0;font-weight:800;line-height:1.7}.badgeSectionHeader>span{border:1px solid var(--border);min-width:64px;color:var(--muted);white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;padding:7px 10px;font-weight:900;display:inline-flex}.badgeEmptyMini{border:1px dashed var(--border);border-radius:var(--radius-lg);color:var(--muted);background:var(--surface-soft);padding:16px;font-weight:900}.badgeGridV2{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;display:grid}.badgeCardV2{border:2px solid var(--border);border-radius:var(--radius-lg);background:var(--surface-strong);min-height:240px;color:var(--text);gap:12px;padding:20px;display:grid}.badgeCardV2 h3{font-family:var(--font-display);margin:0;font-size:clamp(20px,3vw,26px);line-height:1.35}.badgeCardV2 p,.badgeCardV2 small{color:var(--muted);margin:0;font-weight:900;line-height:1.65}.badgeCardV2.earned{background:color-mix(in srgb, #facc15 10%, var(--surface));border-color:#facc15}.badgeCardTopline{justify-content:space-between;align-items:center;gap:10px;display:flex}.badgeIconV2{font-family:var(--font-display);color:#facc15;font-size:22px;line-height:1}.badgeState{border:1px solid var(--border);color:var(--muted);white-space:nowrap;border-radius:999px;padding:5px 8px;font-size:12px;font-weight:900;display:inline-flex}.badgeState.earned{color:#b45309;background:color-mix(in srgb, #facc15 18%, var(--surface));border-color:#facc15}.badgeTargetRow{border:1px solid var(--accent-border);background:var(--accent-soft);width:fit-content;max-width:100%;color:var(--accent-text);border-radius:999px;padding:7px 10px;font-size:12px;font-weight:900;line-height:1.3;display:inline-flex}.badgeMetaRow{flex-wrap:wrap;gap:7px;margin-top:4px;display:flex}.badgeMetaRow span{border:1px solid var(--border);color:var(--muted);background:var(--surface-soft);border-radius:999px;padding:6px 8px;font-size:12px;font-weight:900;line-height:1.2;display:inline-flex}.playerLevelPanel{column-gap:24px;grid-template-columns:max-content minmax(240px,1fr)!important}.playerLevelPanel h3{white-space:nowrap;word-break:keep-all}.playerLevelPanel>div:first-child{min-width:max-content}:root[data-theme=mono_battle] .badgeSummaryPanel,:root[data-theme=mono_battle] .badgeSection,:root[data-theme=mono_battle] .badgeSummaryPanel div,:root[data-theme=mono_battle] .badgeCardV2,:root[data-theme=mono_battle] .badgeEmptyMini{color:#fff;box-shadow:none;background:#050505;border:2px solid #fff;border-radius:0}:root[data-theme=mono_battle] .badgeSectionHeader>span,:root[data-theme=mono_battle] .badgeState,:root[data-theme=mono_battle] .badgeMetaRow span,:root[data-theme=mono_battle] .badgeTargetRow{color:#fff;background:#050505;border:2px solid #fff;border-radius:0}:root[data-theme=mono_battle] .badgeCardV2.locked{border-color:#fff}:root[data-theme=mono_battle] .badgeCardV2.earned{background:#050505;border-color:#fff200}:root[data-theme=mono_battle] .badgeCardV2.earned h3,:root[data-theme=mono_battle] .badgeCardV2.earned .badgeIconV2,:root[data-theme=mono_battle] .badgeState.earned{color:#fff200;border-color:#fff200}:root[data-theme=mono_battle] .badgeCardV2.locked .badgeState.locked{color:#ff7f27;border-color:#ff7f27}:root[data-theme=mono_battle] .badgeTargetRow{color:#fff200;border-color:#fff200}:root[data-theme=mono_battle] .badgeCardV2 p,:root[data-theme=mono_battle] .badgeCardV2 small,:root[data-theme=mono_battle] .badgeSectionHeader p,:root[data-theme=mono_battle] .badgeSummaryPanel span{color:#fff}:root[data-theme=mono_battle] .badgeMetaRow span{color:#ff7f27;border-color:#ff7f27}:root[data-theme=mono_battle] .playerLevelPanel{grid-template-columns:max-content minmax(260px,1fr)!important}:root[data-theme=pixel_meadow] .badgeSummaryPanel,:root[data-theme=pixel_meadow] .badgeSection,:root[data-theme=pixel_meadow] .badgeSummaryPanel div,:root[data-theme=pixel_meadow] .badgeCardV2,:root[data-theme=pixel_meadow] .badgeEmptyMini{box-shadow:var(--shadow);border-width:3px}@media (width<=760px){.badgeSectionHeader{flex-direction:column}.playerLevelPanel,:root[data-theme=mono_battle] .playerLevelPanel{grid-template-columns:1fr!important}.playerLevelPanel h3{white-space:normal}}.rewardCinematic{border:2px solid var(--border);border-radius:var(--radius-xl);background:var(--surface);color:var(--text);box-shadow:var(--shadow);gap:14px;padding:clamp(18px,4vw,28px);animation:.36s both rewardPanelIn;display:grid;position:relative;overflow:hidden}.rewardCinematic:before{content:"";opacity:0;pointer-events:none;background:radial-gradient(circle,#facc1542 0 8%,#0000 30%);position:absolute;inset:-40%;transform:scale(.9)}.rewardCinematic.levelUp:before,.rewardCinematic.badgeEarned:before{animation:1.25s both rewardGlowSweep}.levelUpSplash{z-index:1;font-family:var(--font-display);color:#facc15;letter-spacing:.08em;text-shadow:0 0 14px #facc158c;justify-self:start;font-size:clamp(34px,8vw,78px);line-height:1;animation:.78s cubic-bezier(.18,1.4,.3,1) both levelUpPop;position:relative}.rewardLog{z-index:1;font-family:var(--font-display);gap:8px;font-size:clamp(17px,2.6vw,24px);line-height:1.7;display:grid;position:relative}.rewardLog p{opacity:0;margin:0;animation:.28s both rewardLineIn;transform:translateY(8px)}.rewardLog p:first-child{animation-delay:.1s}.rewardLog p:nth-child(2){animation-delay:.32s}.rewardLog p:nth-child(3){animation-delay:.54s}.rewardLog p:nth-child(4){animation-delay:.76s}.rewardLog p:nth-child(5){animation-delay:.98s}.rewardLog p:nth-child(6){animation-delay:1.2s}.earnedBadgeNotice{animation:.44s both badgeNoticePop}.expFill{transition:width .85s cubic-bezier(.18,1,.3,1)}:root[data-theme=mono_battle] .rewardCinematic{color:#fff;box-shadow:none;background:#050505;border:2px solid #fff;border-radius:0}:root[data-theme=mono_battle] .rewardCinematic.levelUp,:root[data-theme=mono_battle] .rewardCinematic.badgeEarned{border-color:#fff200;animation:.28s both rewardPanelIn,1.2s steps(2,end) .12s 2 battleRewardPulse}:root[data-theme=mono_battle] .levelUpSplash{color:#fff200;text-shadow:3px 3px red}:root[data-theme=mono_battle] .rewardLog p{color:#fff}:root[data-theme=mono_battle] .rewardLog p:first-letter{color:#fff200}:root[data-theme=pixel_meadow] .rewardCinematic{box-shadow:var(--shadow);border-width:3px}:root[data-theme=pixel_meadow] .levelUpSplash{color:#7c4a11;text-shadow:2px 2px #fff1b8}@keyframes rewardPanelIn{0%{opacity:0;transform:translateY(12px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes rewardLineIn{to{opacity:1;transform:translateY(0)}}@keyframes levelUpPop{0%{opacity:0;transform:translateY(14px)scale(.78)}62%{opacity:1;transform:translateY(-2px)scale(1.08)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes rewardGlowSweep{0%{opacity:0;transform:scale(.7)rotate(0)}42%{opacity:.9}to{opacity:0;transform:scale(1.35)rotate(16deg)}}@keyframes battleRewardPulse{0%,to{border-color:#fff200}50%{border-color:#fff}}@keyframes badgeNoticePop{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.cardFilterPanel{grid-template-columns:minmax(220px,1.5fr) minmax(160px,1fr) minmax(140px,.7fr);align-items:end;gap:12px;display:grid}.cardFilterPanel label,.formGrid label{gap:8px;font-weight:900;display:grid}.cardFilterPanel input,.cardFilterPanel select,.cardEditForm input,.cardEditForm select,.cardEditForm textarea{border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--surface-strong);min-height:44px;color:var(--text);padding:10px 12px}.editableCardItem{align-items:stretch}.cardItemMain{gap:4px;min-width:0;display:grid}.cardItemActions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.dangerButton{cursor:pointer;border-radius:var(--button-radius);border:1px solid var(--danger);background:var(--surface-danger);min-height:44px;color:var(--danger);padding:12px 18px;font-weight:900}.compactDanger{padding-inline:14px}.cardEditLayout .sectionHeader{align-items:flex-start}.cardEditPreview{gap:10px;display:grid}.cardEditPreview h3{font-family:var(--font-display);margin:0;font-size:clamp(36px,10vw,72px);line-height:1.05}.cardEditPreview p{color:var(--muted);margin:0;font-weight:800}.cardEditForm{gap:18px}.formGrid{gap:14px;display:grid}.formGrid.twoColumns{grid-template-columns:repeat(2,minmax(0,1fr))}.compactTextarea{resize:vertical;min-height:86px;line-height:1.6}.requiredMark{color:var(--danger);font-size:12px;font-weight:900}.modeCheckPanel{border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface-soft);gap:10px;padding:14px;display:grid}.modeCheckGrid{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px;display:grid}.modeCheck{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-strong);padding:10px 12px}.successNotice{border-color:var(--accent-border);background:var(--surface-tint);color:var(--secondary-text)}.cardEditActions{justify-content:flex-start}:root[data-theme=mono_battle] .dangerButton{color:#ff4f6d;background:#0f0f0f;border:2px solid #ff4f6d}:root[data-theme=mono_battle] .cardFilterPanel input,:root[data-theme=mono_battle] .cardFilterPanel select,:root[data-theme=mono_battle] .cardEditForm input,:root[data-theme=mono_battle] .cardEditForm select,:root[data-theme=mono_battle] .cardEditForm textarea,:root[data-theme=mono_battle] .modeCheckPanel,:root[data-theme=mono_battle] .modeCheck{border-width:2px}:root[data-theme=pixel_meadow] .dangerButton{border-width:3px;box-shadow:0 5px #6c4b2373}@media (width<=720px){.cardFilterPanel,.formGrid.twoColumns{grid-template-columns:1fr}.cardItemActions{justify-content:flex-start;width:100%}}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}.primaryButton,.secondaryButton,.iconButton,.tab,.answerButton,.questionCountButton,.dangerButton{touch-action:manipulation}.formPanel input[type=range]{width:100%;accent-color:var(--accent)}.mobileOnlyHint{display:none}@media (width<=760px){.appShell{padding-bottom:calc(124px + env(safe-area-inset-bottom))}.topBar{gap:10px;padding:12px 14px}.topBar h1{font-size:18px;line-height:1.1}.topBar .statusPill{padding:6px 9px;font-size:10px}.pageFrame{width:min(100% - 18px,960px);margin:12px auto}.stack{gap:12px}.heroCard,.quizCard,.feedbackCard,.panel,.emptyCard{padding:18px}.sectionHeader{flex-direction:column;align-items:flex-start;gap:8px}.sectionHeader h2{font-size:22px}.heroCard h2{font-size:clamp(28px,10vw,44px)}.gridCards{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.statCard,.badgeCard,.listCard,.cardItem{padding:14px}.statCard strong{font-size:24px}.bottomNav{bottom:calc(8px + env(safe-area-inset-bottom));grid-template-columns:repeat(4,1fr);gap:6px;width:min(100% - 12px,760px);padding:8px}.navItem{place-items:center;min-height:40px;padding:8px 4px;font-size:12px;line-height:1.1;display:grid}.studyLayout{gap:10px}.studyStartPanel{gap:14px}.startModeTabs,.modeTabs{grid-template-columns:repeat(2,minmax(0,1fr));display:grid;overflow:visible}.tab{white-space:normal;min-height:48px;line-height:1.25}.questionCountGrid{grid-template-columns:repeat(3,minmax(0,1fr))}.questionCountButton{min-height:70px}.quizCard{padding-block:16px}.quizCard h3,:root[data-theme=mono_battle] .quizCard h3,:root[data-theme=pixel_meadow] .quizCard h3{overflow-wrap:anywhere;font-size:clamp(34px,13vw,62px);line-height:1.05}.quizCard p{margin-block:8px}.quizActionRow{grid-template-columns:1fr;gap:8px;display:grid}.quizActionRow .primaryButton,.quizActionRow .secondaryButton{width:100%}.answerGrid{gap:9px}.answerButton{min-height:56px;padding:12px 14px;font-size:16px;line-height:1.35}.compactFeedbackCard{padding:14px}.miniExplanation{padding:12px}.battleHud,.startBattleHud{grid-template-columns:auto auto auto minmax(76px,1fr) auto;align-items:center;gap:6px;width:100%;font-size:14px;display:grid;overflow:hidden}.battleHudName,.battleHudLevel,.battleHudLabel,.battleHud strong{white-space:nowrap}.battleHpTrack{min-width:76px}.stickyActionRow{bottom:calc(112px + env(safe-area-inset-bottom));grid-template-columns:1fr;display:grid}.stickyActionRow .primaryButton,.stickyActionRow .secondaryButton{text-align:center;justify-content:center;width:100%}.rewardCinematic,.expPanel,.playerLevelPanel{padding:16px}.expPanelHeader,.playerLevelPanel{grid-template-columns:1fr;gap:10px}.expPanelHeader strong,.playerLevelPanel h3{white-space:nowrap}.cardFilterPanel,.formGrid.twoColumns,.themeChoiceGrid{grid-template-columns:1fr}.cardItem,.editableCardItem{flex-direction:column;align-items:stretch}.cardItemActions{grid-template-columns:repeat(2,minmax(0,1fr));width:100%;display:grid}.cardItemActions .secondaryButton,.cardItemActions .dangerButton{text-align:center;width:100%}.cardEditPreview h3{font-size:clamp(34px,12vw,56px)}.formPanel input,.formPanel select,.formPanel textarea,.cardEditForm input,.cardEditForm select,.cardEditForm textarea{font-size:16px}.mobileOnlyHint{display:block}}@media (width<=420px){.gridCards,.questionCountGrid{grid-template-columns:1fr}.battleHud,.startBattleHud{grid-template-columns:auto auto;row-gap:8px}.battleHudLabel{grid-column:1}.battleHpTrack{grid-column:2;width:100%}.battleHud strong{grid-column:1/-1}.cardItemActions{grid-template-columns:1fr}.bottomNav{grid-template-columns:repeat(4,1fr)}.navItem{font-size:11px}}.bottomNav.bottomNavFour{grid-template-columns:repeat(4,1fr);gap:6px;width:min(520px,100% - 20px);padding:8px}.bottomNav.bottomNavFour .navItem{white-space:nowrap;place-items:center;min-height:46px;padding:10px 6px;font-size:13px;line-height:1;display:grid}.moreMenuGrid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;display:grid}.moreMenuCard{border:2px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);min-height:120px;box-shadow:var(--shadow);gap:8px;padding:20px;display:grid}.moreMenuCard strong{font-size:22px;font-family:var(--font-display)}.moreMenuCard p{color:var(--muted);margin:0;line-height:1.7}:root[data-theme=soul_battle] .moreMenuCard,:root[data-theme=mono_battle] .moreMenuCard{box-shadow:none;border-color:#fff}:root[data-theme=soul_battle] .moreMenuCard:hover,:root[data-theme=mono_battle] .moreMenuCard:hover{border-color:#f9a602}@media (width<=640px){.bottomNav.bottomNavFour{border-radius:18px;width:min(430px,100% - 12px);bottom:8px}.bottomNav.bottomNavFour .navItem{min-height:42px;padding:8px 4px;font-size:12px}.moreMenuGrid{grid-template-columns:1fr}}.syncStatusGrid{grid-template-columns:minmax(72px,auto) 1fr;align-items:center;gap:8px 14px;display:grid}.syncStatusGrid span{color:var(--muted);font-weight:800}.syncStatusGrid strong{color:var(--text);word-break:break-word;font-weight:900}.syncNotice .helpText{margin-top:10px}.errorNotice{border-color:var(--danger);background:var(--surface-danger);color:var(--text)}:root[data-theme=mono_battle] .syncStatusGrid span,:root[data-theme=mono_battle] .syncStatusGrid strong{color:#fff}
