:root{--bg:#f7f2e7;--surface:#fffdf6;--surface-2:#f3ecdc;--border:#ddd3bf;--text:#22312b;--text-dim:#5f7a6d;--accent:#ff7a59;--accent-strong:#e05a3a;--accent-contrast:#fff;--brand-strong:#2d4a3e;--good:#2e7d5b;--warn:#b98a1f;--bad:#b3543c;--streak:#e05a3a;--radius-card:16px;--radius-ctl:999px;--shadow-card:0 2px 0 #2d4a3e0f;--font-body:"Zen Kaku Gothic New", "Hiragino Sans", "Noto Sans JP", sans-serif;--font-display:"Zen Maru Gothic", "Hiragino Maru Gothic ProN", sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}[data-theme=ink]{--bg:#faf6ee;--surface:#fffcf5;--surface-2:#f4eede;--border:#e5dcc8;--text:#1c1a17;--text-dim:#6b655a;--accent:#d43d2a;--accent-strong:#b02f1f;--accent-contrast:#faf6ee;--brand-strong:#1c1a17;--good:#3d6b4f;--warn:#a1751d;--bad:#d43d2a;--streak:#d43d2a;--radius-card:2px;--radius-ctl:0px;--shadow-card:none;--font-body:"Zen Kaku Gothic New", "Hiragino Sans", "Noto Sans JP", sans-serif;--font-display:"Shippori Mincho", "Hiragino Mincho ProN", serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}[data-theme=kissa]{--bg:#f5e9d3;--surface:#fff8ea;--surface-2:#f0e3c8;--border:#4a2c1a;--text:#4a2c1a;--text-dim:#8a6a50;--accent:#e8630a;--accent-strong:#c95208;--accent-contrast:#fff8ea;--brand-strong:#e8630a;--good:#3e8f8a;--warn:#b98a1f;--bad:#c0442a;--streak:#e8630a;--radius-card:18px;--radius-ctl:12px;--shadow-card:5px 5px 0 #4a2c1a;--font-body:"M PLUS Rounded 1c", "Hiragino Maru Gothic ProN", sans-serif;--font-display:"M PLUS Rounded 1c", "Hiragino Maru Gothic ProN", sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}[data-theme=night]{--bg:#0b0e1a;--surface:#12172a;--surface-2:#0d1120;--border:#262d47;--text:#f2f4ff;--text-dim:#8a90a8;--accent:#ff5c7a;--accent-strong:#e64465;--accent-contrast:#0b0e1a;--brand-strong:#ff5c7a;--good:#55d6a0;--warn:#f0c453;--bad:#ff8fa3;--streak:#ff5c7a;--radius-card:12px;--radius-ctl:8px;--shadow-card:none;--font-body:"Zen Kaku Gothic New", "Hiragino Sans", "Noto Sans JP", sans-serif;--font-display:"RocknRoll One", "Hiragino Sans", sans-serif;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);line-height:1.6;font-family:var(--font-body);margin:0;transition:background .35s,color .35s}[data-theme=mountain] body{background:repeating-radial-gradient(ellipse 620px 260px at 82% -4%, transparent 0 34px, #2d4a3e0f 34px 35.5px), repeating-radial-gradient(ellipse 500px 240px at 8% 104%, transparent 0 30px, #2d4a3e0d 30px 31.5px), var(--bg);background-attachment:fixed}[data-theme=kissa] body{background:radial-gradient(#4a2c1a14 1.3px, transparent 1.3px) 0 0 / 14px 14px, var(--bg)}[data-theme=night] body{background:radial-gradient(ellipse 70% 40% at 80% -10%, #ff5c7a21, transparent 60%), radial-gradient(ellipse 60% 40% at 10% 110%, #4ae3e017, transparent 60%), var(--bg);background-attachment:fixed}button{font:inherit;cursor:pointer;border-radius:var(--radius-ctl);border:1.5px solid var(--border);background:var(--surface);color:var(--text);padding:8px 14px;transition:background .15s,border-color .15s,opacity .15s,box-shadow .15s}button:hover:not(:disabled){border-color:var(--accent)}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast);font-weight:700}button.primary:hover:not(:disabled){background:var(--accent-strong);border-color:var(--accent-strong)}[data-theme=mountain] button.primary{background:linear-gradient(180deg, var(--accent), var(--accent-strong));border:none;padding:10px 22px;box-shadow:0 4px 14px #e05a3a59}[data-theme=kissa] button{border:2.5px solid var(--border);box-shadow:2px 2px 0 var(--border);font-weight:700}[data-theme=kissa] button:active:not(:disabled){box-shadow:none;transform:translate(2px,2px)}[data-theme=kissa] button.primary{box-shadow:4px 4px 0 var(--border)}[data-theme=kissa] button.primary:active:not(:disabled){box-shadow:1px 1px 0 var(--border)}[data-theme=night] button.primary{box-shadow:0 0 18px #ff5c7a80}[data-theme=ink] button.primary{letter-spacing:.08em;background:var(--text);border-color:var(--text)}[data-theme=ink] button.primary:hover:not(:disabled){background:var(--accent);border-color:var(--accent)}textarea,input{font:inherit;color:var(--text);background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius-card);width:100%;padding:12px 16px}textarea{font-size:1.05rem;line-height:1.9}textarea:focus,input:focus{border-color:var(--accent);outline:none}[data-theme=ink] textarea{background:var(--surface) repeating-linear-gradient(180deg, transparent 0 37px, var(--border) 37px 38px) local;padding:6px 14px;line-height:38px}[data-theme=kissa] textarea{border-width:2.5px;box-shadow:inset 3px 3px #4a2c1a14}[data-theme=night] textarea{background:var(--surface-2)}[data-theme=night] textarea:focus{border-color:#4ae3e0;box-shadow:0 0 14px #4ae3e04d}.app{max-width:820px;margin:0 auto;padding:24px 20px 90px}.app-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.brand{font-family:var(--font-display);color:var(--brand-strong);letter-spacing:.02em;margin:0;font-size:1.65rem;font-weight:800}[data-theme=ink] .brand{letter-spacing:.06em;font-weight:600}[data-theme=kissa] .brand{text-shadow:2.5px 2.5px #4a2c1a;transform:rotate(-1.5deg)}[data-theme=night] .brand{text-shadow:0 0 14px #ff5c7abf,0 0 42px #ff5c7a66;animation:4.5s infinite neon-flicker}@keyframes neon-flicker{0%,92%,96%,to{opacity:1}93.5%{opacity:.55}95%{opacity:.85}}.brand-echo{color:var(--text-dim);letter-spacing:.14em;font-size:.72rem;display:none}.brand-echo span{opacity:.6}.brand-echo span+span{opacity:.38}.brand-echo span+span+span{opacity:.2}[data-theme=mountain] .brand-echo{display:block}.ridge{color:var(--brand-strong);margin:0 -20px 16px;display:none}.ridge svg{width:100%;height:40px;display:block}[data-theme=mountain] .ridge{display:block}.header-right{align-items:center;gap:10px;display:flex}.link-btn{color:var(--text-dim);box-shadow:none;background:0 0;border:none;padding:4px 6px;font-size:.85rem;text-decoration:underline}.link-btn:hover{color:var(--accent);border:none}[data-theme=kissa] .link-btn{box-shadow:none;border:none;font-weight:700}[data-theme=kissa] .link-btn:active:not(:disabled){transform:none}.tabs{border-bottom:1.5px solid var(--border);gap:4px;margin-bottom:20px;display:flex}.tabs button{color:var(--text-dim);box-shadow:none;background:0 0;border:none;border-bottom:3px solid #0000;border-radius:0;padding:10px 16px;font-weight:700}.tabs button.active{color:var(--text);border-bottom-color:var(--accent)}[data-theme=ink] .tabs button.active{border-bottom-color:#0000;position:relative}[data-theme=ink] .tabs button.active:after{content:"";background:var(--accent);border-radius:2px 6px;height:3px;position:absolute;bottom:-2px;left:12px;right:12px;transform:skew(-12deg)}[data-theme=kissa] .tabs{background:#4a2c1a;border-bottom:none;border-radius:14px;gap:6px;padding:6px;display:inline-flex}[data-theme=kissa] .tabs button{color:#f5e9d3;border-bottom:none;border-radius:9px;padding:7px 16px}[data-theme=kissa] .tabs button.active{background:var(--accent);color:var(--accent-contrast);box-shadow:inset 0 -2px #00000040}[data-theme=kissa] .tabs button:active:not(:disabled){transform:none}[data-theme=night] .tabs{border-bottom:none;gap:10px}[data-theme=night] .tabs button{border:1px solid var(--border);background:var(--surface);letter-spacing:.08em;border-radius:6px;font-size:.86rem}[data-theme=night] .tabs button.active{color:var(--accent);border-color:var(--accent);box-shadow:0 0 12px #ff5c7a66,inset 0 0 10px #ff5c7a1a}.level-toggle{gap:6px;display:flex}.level-toggle button{color:var(--text-dim);padding:6px 13px;font-size:.85rem;font-weight:700}.level-toggle button.active{background:var(--brand-strong);border-color:var(--brand-strong);color:var(--bg)}[data-theme=night] .level-toggle button.active{background:var(--surface);color:#4ae3e0;border-color:#4ae3e0;box-shadow:0 0 10px #4ae3e073,inset 0 0 8px #4ae3e01f}[data-theme=kissa] .level-toggle button.active{background:var(--good);border-color:var(--border);color:var(--accent-contrast);box-shadow:1px 1px 0 var(--border);transform:translate(1px,1px)}.card{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius-card);box-shadow:var(--shadow-card);margin-bottom:16px;padding:18px 20px}[data-theme=ink] .card{border-width:1px;border-top:3px solid var(--text)}[data-theme=kissa] .card{border-width:2.5px}.card-with-action{position:relative}.card-action{padding:4px 10px;font-size:.82rem;position:absolute;top:12px;right:14px}.card-action:hover:not(:disabled){color:var(--accent)}.card-with-action .paragraph:first-of-type{padding-right:120px}.paragraph{margin:0 0 14px;line-height:1.75}.paragraph:last-child{margin-bottom:0}.paragraph-num{color:var(--accent-strong);letter-spacing:.05em;margin-bottom:4px;font-size:.8rem;font-weight:700;display:block}.skeleton{background:linear-gradient(90deg, var(--surface-2), var(--border), var(--surface-2));background-size:200% 100%;border-radius:6px;height:14px;margin-bottom:10px;animation:1.4s infinite shimmer}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.spinner{opacity:.85;vertical-align:-2px;border:2px solid;border-top-color:#0000;border-radius:50%;width:13px;height:13px;margin-right:6px;animation:.7s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.loading-caption{color:var(--text-dim);margin-top:10px;font-size:.85rem}.error-box{background:color-mix(in srgb, var(--bad) 12%, transparent);border:1.5px solid var(--bad);color:var(--bad);border-radius:var(--radius-card);margin-bottom:16px;padding:12px 14px}.feedback{white-space:pre-wrap;font-size:.97rem}.feedback-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;display:flex}.feedback-header h3{font-size:1.05rem;font-family:var(--font-display);margin:0}.review-section{text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);margin:16px 0 8px;font-size:.85rem}.correction-card{background:var(--surface-2);border:1px solid var(--border);border-radius:calc(var(--radius-card) * .7);margin-bottom:8px;padding:10px 12px}[data-theme=mountain] .correction-card{background:var(--surface);border:none;border-left:3px solid var(--accent);border-radius:0 12px 12px 0}[data-theme=ink] .correction-card{border:none;border-bottom:1px dotted var(--border);background:0 0;border-radius:0;padding:10px 0}[data-theme=kissa] .correction-card{background:var(--surface);border:2px dashed var(--border)}[data-theme=night] .correction-card{border-left:3px solid var(--accent);border-radius:0 10px 10px 0}.correction-pair{flex-wrap:wrap;align-items:baseline;gap:8px;font-size:1rem;display:flex}.correction-wrong{color:var(--bad);text-decoration:line-through;text-decoration-thickness:1.5px}[data-theme=ink] .correction-wrong{color:var(--text-dim);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent);text-decoration-thickness:2px}.correction-arrow{color:var(--text-dim)}.correction-right{color:var(--good);font-weight:700}[data-theme=ink] .correction-right{color:var(--text);border-bottom:2px solid var(--accent)}.correction-why{color:var(--text-dim);margin-top:6px;font-size:.9rem}[data-theme=ink] .correction-why{color:var(--accent)}[data-theme=ink] .correction-why:before{content:"✎ "}.correction-meta{margin-top:6px;font-size:.78rem}.score-badge{color:var(--streak);white-space:nowrap;margin-left:10px;font-size:.82rem;font-weight:700}[data-theme=ink] .score-badge{border:2px solid var(--accent);color:var(--accent);font-family:var(--font-display);border-radius:50% 45% 50% 48%;margin-left:12px;padding:6px 10px;display:inline-block;transform:rotate(-6deg)}[data-theme=kissa] .score-badge{background:var(--good);color:var(--accent-contrast);border:2px solid var(--border);box-shadow:2px 2px 0 var(--border);border-radius:999px;padding:3px 12px;display:inline-block;transform:rotate(-2deg)}[data-theme=night] .score-badge{text-shadow:0 0 12px #ff5c7a99;letter-spacing:.04em}.model-answer{background:var(--surface-2);border:1px solid var(--border);border-radius:calc(var(--radius-card) * .7);margin-top:8px;padding:10px 12px}.data-row{text-align:center;margin-top:14px;font-size:.85rem}.usage-stats{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:14px;display:grid}.usage-stat{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius-card);box-shadow:var(--shadow-card);padding:12px 14px}.usage-stat-value{font-family:var(--font-display);color:var(--brand-strong);font-size:1.4rem;font-weight:800}.usage-stat-label{margin-top:2px;font-size:.78rem}.usage-chart{align-items:flex-end;gap:6px;height:140px;padding-top:4px;display:flex;overflow-x:auto}.usage-bar-col{flex-direction:column;justify-content:flex-end;align-items:center;min-width:26px;height:100%;display:flex}.usage-bar{background:var(--accent);border-radius:3px 3px 0 0;width:16px;min-height:3px}.usage-bar-label{writing-mode:vertical-rl;margin-top:4px;font-size:.65rem;transform:rotate(180deg)}.pattern-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;margin-bottom:8px;display:grid}.pattern-card{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius-card);box-shadow:var(--shadow-card);padding:15px 16px}.pattern-card.needs-work{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.pattern-card-head{justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:3px;display:flex}.pattern-name{font-size:.95rem;font-weight:800;font-family:var(--font-display)}.status-pill{border-radius:var(--radius-ctl,999px);white-space:nowrap;flex-shrink:0;padding:3px 9px;font-size:.68rem;font-weight:800}.status-pill.needs-work{background:color-mix(in srgb, var(--bad) 14%, transparent);color:var(--bad)}.status-pill.improving{background:color-mix(in srgb, var(--good) 14%, transparent);color:var(--good)}.pattern-tally{margin-bottom:10px;font-size:.78rem}.pattern-timeline{flex-wrap:wrap;align-items:center;gap:4px;margin-bottom:12px;display:flex}.tl-dot{border-radius:50%;flex-shrink:0;width:9px;height:9px}.tl-dot.mistake{background:var(--bad)}.tl-dot.correct{background:var(--good)}.pattern-example{border-top:1px dashed var(--border);padding-top:10px;font-size:.87rem}.example-label{letter-spacing:.05em;text-transform:uppercase;margin-bottom:5px;font-size:.68rem;font-weight:800;display:block}.accordion-toggle{text-align:left;width:100%;font:inherit;cursor:pointer;color:var(--text-dim);box-shadow:none;border:none;border-top:1.5px solid var(--border);background:0 0;align-items:center;gap:8px;margin-top:4px;padding:12px 2px;font-size:.86rem;font-weight:700;display:flex}.accordion-toggle .chev{transition:transform .15s}.accordion-toggle.open .chev{transform:rotate(90deg)}.mastered-list{flex-direction:column;gap:8px;margin-top:8px;display:flex}.mastered-chip{background:var(--surface);border:1.5px solid var(--border);border-radius:calc(var(--radius-card) * .7);flex-wrap:wrap;align-items:center;gap:10px;padding:11px 15px;font-size:.87rem;display:flex}.mastered-chip .check{color:var(--good);font-size:1.05rem}.mastered-chip .m-name{font-weight:700}.mastered-chip .m-meta{font-size:.78rem}.row-list{border:1.5px solid var(--border);border-radius:var(--radius-card);background:var(--surface);margin-top:8px;overflow:hidden}.c-row{border-bottom:1px solid var(--border)}.c-row:last-child{border-bottom:none}.c-row-head{cursor:pointer;align-items:center;gap:10px;padding:10px 14px;font-size:.92rem;display:flex}.c-row-head:hover{background:var(--surface-2)}.c-row-head .chev{color:var(--text-dim);flex-shrink:0;font-size:.7rem;transition:transform .15s}.c-row.open .chev{transform:rotate(90deg)}.c-row-head .pair{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.c-row-head .lvl{color:var(--text-dim);background:var(--surface-2);border-radius:6px;flex-shrink:0;padding:2px 6px;font-size:.7rem;font-weight:800}.c-row-body{color:var(--text-dim);padding:0 14px 12px 38px;font-size:.87rem}.row-between{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.muted{color:var(--text-dim);font-size:.9rem}.calendar-header{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.streak-badge{color:var(--streak);font-weight:800}.cal-nav{align-items:center;gap:6px;display:flex}.growth-chart-wrap{overflow-x:auto}.milestone-row{margin-bottom:14px}@keyframes pop-in{0%{opacity:0;transform:scale(.4)rotate(-10deg)}70%{transform:scale(1.15)rotate(4deg)}to{opacity:1;transform:scale(1)rotate(-4deg)}}.milestone-badge{border-radius:var(--radius-ctl,999px);background:color-mix(in srgb, var(--accent) 16%, transparent);color:var(--accent-strong);padding:5px 12px;font-size:.82rem;font-weight:700;animation:.4s ease-out pop-in;display:inline-block}.calendar-hint{border-radius:var(--radius-ctl,999px);background:var(--accent);color:var(--accent-contrast);margin-top:4px;padding:5px 12px;font-size:.8rem;font-weight:700;animation:.4s ease-out pop-in,2.2s ease-in-out .4s infinite theme-hint-bob;display:inline-block}.month-chart{align-items:flex-end;gap:3px;min-width:640px;height:170px;padding:0 50px 4px 2px;display:flex}.day-col{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;height:100%;display:flex;position:relative}button.day-col{font:inherit;cursor:pointer;color:inherit;box-shadow:none;background:0 0;border:none;padding:0;transition:transform .15s}button.day-col:hover{transform:translateY(-3px)}.day-date{color:var(--text-dim);margin-top:6px;font-size:.58rem}button.day-col .day-date{text-underline-offset:2px;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}button.day-col:hover .day-date{color:var(--accent)}.day-col.today .day-date{color:var(--streak);font-weight:800}.day-marker{margin-bottom:2px;font-size:.78rem}.cairn{flex-direction:column-reverse;align-items:center;gap:1.5px;display:flex}.stone{background:linear-gradient(160deg,#cabfa2,#a6987a);border:1px solid #8a7c5e;border-radius:50% 45% 48% 52%/55% 50% 55% 45%}.stone.today-top{background:linear-gradient(160deg, color-mix(in srgb, var(--accent) 60%, white), var(--accent-strong));border-color:var(--accent-strong)}.stone-base{background:var(--border);opacity:.6;border-radius:2px;width:16px;height:3px}.torii{margin-bottom:3px}.torii line{stroke:var(--accent-strong);stroke-width:2.5px;stroke-linecap:round}.torii line.lintel{stroke-width:3.5px}.ink-groups{flex-wrap:wrap;align-items:flex-end;gap:8px;min-width:640px;display:flex}.ink-group{flex-direction:column;align-items:center;display:flex}.ink-char{width:26px;height:32px}.ink-char line{stroke:var(--border);stroke-width:3px;stroke-linecap:round}.ink-char line.drawn{stroke:var(--text)}.ink-char line.today{stroke:var(--accent)}.ink-char line.clickable:hover{stroke:var(--accent);stroke-width:4px}.ink-gap{flex-basis:14px}.ink-range{color:var(--text-dim);text-align:center;margin-top:4px;font-size:.62rem}.ink-hanko{border:2.5px solid var(--accent);width:34px;height:34px;color:var(--accent);font-family:var(--font-display);letter-spacing:-1px;border-radius:50%;justify-content:center;align-items:center;font-size:.78rem;font-weight:700;animation:.5s ease-out pop-in;display:flex;transform:rotate(-9deg)}.k-stack{flex-direction:column-reverse;align-items:center;display:flex}.k-pancake{border:1.5px solid var(--text);background:#e8c27a;border-radius:50%;margin-top:-3px}.k-pancake.today{background:#f0d190}.k-butter{border:1px solid var(--text);background:#fff2b8;border-radius:2px;width:6px;height:4px;margin-bottom:2px}.k-plate{border:1.5px solid var(--border);opacity:.7;border-top:none;border-radius:0 0 12px 12px;width:24px;height:4px}.k-cherry{gap:1px;margin-bottom:1px;animation:.5s ease-out pop-in;display:flex}.k-cherry .fruit{background:var(--accent-strong);border:1px solid var(--text);border-radius:50%;width:8px;height:8px}.k-flag{color:var(--accent-strong);white-space:nowrap;margin-bottom:2px;font-size:.6rem;font-weight:800}.lantern-pole{flex-direction:column-reverse;align-items:center;display:flex}.lantern{background:var(--good);box-shadow:0 0 6px var(--good);border-top:2px solid var(--bg);border-bottom:2px solid var(--bg);border-radius:48%;margin-top:-2px;position:relative}.lantern:after{content:"";background:var(--text-dim);width:1px;height:3px;position:absolute;top:-3px;left:50%;transform:translate(-50%)}.lantern.today{background:var(--accent);box-shadow:0 0 10px var(--accent), 0 0 3px var(--accent);animation:2.2s infinite lantern-flicker}@keyframes lantern-flicker{0%,88%,to{opacity:1}91%{opacity:.45}94%{opacity:.85}}.lantern-pole-base{background:var(--border);opacity:.5;width:2px;height:8px}.firework{width:40px;height:40px;animation:.6s ease-out pop-in;position:absolute;top:-34px;left:50%;transform:translate(-50%)}.firework line{stroke-width:1.6px;stroke-linecap:round}.firework line.a{stroke:var(--accent)}.firework line.b{stroke:var(--good)}.setup{text-align:center;max-width:460px;margin:80px auto 0;padding:0 20px}.setup .brand{font-size:2.1rem}.setup .card{text-align:left}.setup label{margin-bottom:8px;font-weight:600;display:block}.setup a{color:var(--accent)}.theme-picker{z-index:40;flex-direction:column;align-items:flex-end;gap:10px;display:flex;position:fixed;bottom:18px;right:18px}.theme-toggle{background:var(--surface);border:1.5px solid var(--border);border-radius:50%;place-items:center;width:48px;height:48px;padding:0;font-size:1.35rem;display:grid;box-shadow:0 4px 16px #0000002e}.theme-toggle:hover:not(:disabled){border-color:var(--accent);transform:translateY(-2px)}.theme-toggle.hint{position:relative}.theme-toggle.hint:before{content:"";border:2px solid var(--accent);border-radius:50%;animation:1.8s ease-out infinite theme-hint-ring;position:absolute;inset:-4px}@keyframes theme-hint-ring{0%{opacity:.9;transform:scale(.85)}to{opacity:0;transform:scale(1.35)}}.theme-hint{background:var(--accent);color:var(--accent-contrast);white-space:nowrap;pointer-events:none;border-radius:999px;padding:8px 14px;font-size:.8rem;font-weight:700;animation:.4s ease-out theme-hint-pop,2.2s ease-in-out .4s infinite theme-hint-bob;position:absolute;bottom:10px;right:60px;box-shadow:0 4px 14px #00000038}.theme-hint:after{content:"";background:var(--accent);width:10px;height:10px;position:absolute;bottom:16px;right:-4px;transform:rotate(45deg)}@keyframes theme-hint-pop{0%{opacity:0;transform:translateY(6px)scale(.9)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes theme-hint-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}[data-theme=kissa] .theme-toggle{box-shadow:3px 3px 0 var(--border);border-width:2.5px}[data-theme=night] .theme-toggle{box-shadow:0 0 14px #4ae3e059}.theme-menu{background:var(--surface);border:1.5px solid var(--border);border-radius:14px;min-width:195px;margin:0;padding:6px;list-style:none;box-shadow:0 12px 34px #00000040}.theme-menu button{width:100%;box-shadow:none;text-align:left;background:0 0;border:none;border-radius:9px;align-items:center;gap:10px;padding:9px 12px;font-weight:600;display:flex}.theme-menu button:hover:not(:disabled){background:var(--surface-2);border:none}.theme-menu button.on{color:var(--accent-strong)}.theme-menu button.on:after{content:"✓";margin-left:auto}[data-theme=kissa] .theme-menu{box-shadow:4px 4px 0 var(--border);border-width:2.5px}[data-theme=kissa] .theme-menu button{box-shadow:none}[data-theme=kissa] .theme-menu button:active:not(:disabled){transform:none}[data-theme=night] .theme-menu{box-shadow:0 0 18px #4ae3e040}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
