:root{--bg:#f9f8f6;--fg:#171613;--fg-muted:#716c62;--accent:#c0392b;--accent-soft:#c0392b14;--success:#4a7c59;--ls-tight:.02em;--ls-base:.04em;--ls-wide:.08em;--font-serif:"Noto Serif SC", "Source Han Serif SC", "Songti SC", "STSong", "SimSun", "Noto Serif", Georgia, "Times New Roman", serif;--font-sans:var(--font-serif)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#131210;--fg:#ebe8e2;--fg-muted:#8f8a80;--accent:#e05a47;--accent-soft:#e05a471a;--success:#5e9a6e}}:root[data-theme=dark]{--bg:#131210;--fg:#ebe8e2;--fg-muted:#8f8a80;--accent:#e05a47;--accent-soft:#e05a471a;--success:#5e9a6e}:root[data-theme=light]{--bg:#f9f8f6;--fg:#171613;--fg-muted:#716c62;--accent:#c0392b;--accent-soft:#c0392b14;--success:#4a7c59}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{background:var(--bg);color:var(--fg);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overscroll-behavior:none;-webkit-overflow-scrolling:touch;min-height:100dvh;margin:0;font-size:15px;line-height:1.6;transition:background .5s}button,input{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:none;padding:0}:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.app-shell{justify-content:center;align-items:stretch;min-height:100dvh;padding:0;transition:background .5s,color .5s;display:flex;position:relative}.page-frame{width:100%;max-width:560px;padding:clamp(24px, 5vh, 40px) max(clamp(20px, 5vw, 40px), env(safe-area-inset-right)) calc(max(clamp(20px, 4vh, 32px), env(safe-area-inset-bottom)) + 76px) max(clamp(20px, 5vw, 40px), env(safe-area-inset-left));z-index:2;flex-direction:column;justify-content:space-between;display:flex;position:relative}.composer-block{flex-direction:column;gap:10px;margin-top:auto;display:flex}.composer{border:1px solid color-mix(in srgb, var(--fg) 18%, transparent);background:color-mix(in srgb, var(--bg) 98%, transparent);border-radius:18px;flex-direction:column;gap:10px;padding:10px;transition:border-color .2s;display:flex;box-shadow:0 4px 24px #0000000f}.composer:focus-within{border-color:color-mix(in srgb, var(--fg) 45%, transparent)}.composer-settings{border:1px solid color-mix(in srgb, var(--fg) 18%, transparent);color:var(--fg);letter-spacing:var(--ls-base);-webkit-user-select:none;user-select:none;border-radius:999px;justify-content:center;align-self:center;align-items:center;padding:6px 18px;font-size:13px;font-weight:600;transition:border-color .16s,background-color .16s;display:flex}@media (hover:hover){.composer-settings:hover{border-color:color-mix(in srgb, var(--fg) 40%, transparent);background:color-mix(in srgb, var(--fg) 4%, transparent)}}.composer-settings-label{white-space:nowrap;display:inline-block}.composer-settings-arrow{color:var(--fg-muted);margin:0 6px;font-size:10px;line-height:1;transition:transform .2s;display:inline-block}.composer-settings-arrow.open{transform:rotate(180deg)}.composer-options{opacity:0;gap:8px;max-height:0;transition:max-height .2s,opacity .2s;display:grid;overflow:hidden}.composer-options.open{opacity:1;max-height:120px}.composer-segment{border:0;min-inline-size:0;margin:0;padding:0}.composer-options .mode-options,.composer-options .length-options{border:1px solid color-mix(in srgb, var(--fg) 14%, transparent);border-radius:999px;grid-template-columns:repeat(3,minmax(0,1fr));display:grid;overflow:hidden}.composer-options .mode-option,.composer-options .length-option{min-height:30px;letter-spacing:var(--ls-base);padding:0 14px;font-size:12px}.composer-options .mode-option+.mode-option,.composer-options .length-option+.length-option{border-left:1px solid color-mix(in srgb, var(--fg) 14%, transparent)}.composer-options .mode-option span{letter-spacing:var(--ls-base);font-size:12px;font-weight:600}.composer-options .mode-option:hover,.composer-options .mode-option.active,.composer-options .length-option:hover,.composer-options .length-option.active{color:var(--fg);background:color-mix(in srgb, var(--fg) 6%, transparent)}.composer-input-row{align-items:flex-end;gap:10px;display:flex}.composer-input-row .topic-input{border-bottom:none;flex:1;min-width:0}.primary-button{border:2px solid var(--fg);background:var(--bg);width:100%;height:52px;color:var(--fg);font-family:var(--font-sans);letter-spacing:var(--ls-wide);-webkit-user-select:none;user-select:none;border-radius:0;flex-shrink:0;justify-content:center;align-items:center;gap:10px;padding:0 24px;font-size:16px;font-weight:700;transition:border-color .2s,background-color .2s,box-shadow .2s,transform .12s;display:flex}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .primary-button{color:#f9f8f6;background:#171613;border-color:#ebe8e24d}}:root[data-theme=dark] .primary-button{color:#f9f8f6;background:#171613;border-color:#ebe8e24d}.primary-button:focus-visible{outline-offset:2px}@media (hover:hover){.primary-button:hover:not([aria-disabled=true]){background:color-mix(in srgb, var(--fg) 6%, var(--bg));border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}}.primary-button:active:not([aria-disabled=true]){background:var(--accent);border-color:var(--accent);transform:translateY(1px)}.primary-button[aria-disabled=true]{cursor:wait;opacity:.7}.composer-footer{justify-content:space-between;align-items:center;gap:12px;display:flex}.history-section{gap:10px;display:grid}.history-section-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.history-section-actions{align-items:center;gap:12px;display:flex}.history-section-actions>button{color:var(--accent);font-size:12px;font-weight:600}.history-count-label{color:var(--fg-muted);letter-spacing:var(--ls-base);font-variant-numeric:tabular-nums;font-size:11px;font-weight:400}.history-empty{color:var(--fg-muted);font-family:var(--font-serif);text-align:center;margin:18px 0 8px;font-size:17px}.history-list{gap:8px;display:grid}.history-item{border:1px solid color-mix(in srgb, var(--fg) 12%, transparent);grid-template-columns:minmax(0,1fr) auto;align-items:stretch;transition:border-color .16s,background-color .16s;display:grid}.history-item:hover{border-color:color-mix(in srgb, var(--fg) 28%, transparent);background:color-mix(in srgb, var(--fg) 4%, transparent)}.history-item-main{text-align:left;min-width:0;padding:12px 12px 11px}.history-item-meta{color:var(--fg-muted);letter-spacing:var(--ls-base);justify-content:space-between;gap:10px;font-size:10px;line-height:1.4;display:flex}.history-item-result,.history-item-topic{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.history-item-result{color:var(--fg);font-family:var(--font-serif);margin-top:6px;font-size:16px;line-height:1.45}.history-item-topic{color:var(--fg-muted);margin-top:3px;font-size:11px;line-height:1.4}.history-item-delete{width:38px;color:var(--fg-muted);font-size:20px;font-weight:300}.history-item-delete:hover{color:var(--accent)}.history-item-delete:focus-visible{outline-offset:-4px}.leaderboard-content{padding-top:16px}.leaderboard-empty{color:var(--fg-muted);font-family:var(--font-serif);text-align:center;margin:18px 0 8px;font-size:17px}.leaderboard-list{gap:4px;margin:0;padding:0;list-style:none;display:grid}.leaderboard-row{grid-template-columns:28px 34px minmax(0,1fr) auto;align-items:center;gap:10px;min-height:46px;display:grid}.leaderboard-rank{color:var(--fg-muted);font-variant-numeric:tabular-nums;text-align:center;font-size:13px;font-weight:700}.leaderboard-rank.top-1,.leaderboard-rank.top-2,.leaderboard-rank.top-3{color:var(--accent)}.leaderboard-avatar{object-fit:cover;background:color-mix(in srgb, var(--fg) 10%, transparent);border-radius:50%;width:30px;height:30px}.leaderboard-name{text-overflow:ellipsis;white-space:nowrap;color:var(--fg);font-size:14px;overflow:hidden}.leaderboard-score{color:var(--fg-muted);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:12px}.leaderboard-mine{border-top:1px solid color-mix(in srgb, var(--fg) 12%, transparent);color:var(--fg-muted);text-align:center;margin:14px 0 2px;padding-top:12px;font-size:12px}.period-switch{border:1px solid color-mix(in srgb, var(--fg) 18%, transparent);grid-template-columns:repeat(4,1fr);display:grid}.period-option{min-height:44px;color:var(--fg-muted);letter-spacing:var(--ls-base);font-size:13px;font-weight:600;transition:color .16s,background-color .16s}.period-option+.period-option{border-left:1px solid color-mix(in srgb, var(--fg) 14%, transparent)}.period-option:hover,.period-option.active{color:var(--fg);background:color-mix(in srgb, var(--fg) 6%, transparent)}.period-option:focus-visible{outline-offset:-3px}.tab-page{gap:18px;width:100%;display:grid}.tab-page-title{font-family:var(--font-serif);letter-spacing:var(--ls-wide);text-align:center;margin:0;font-size:20px;font-weight:700}.tab-bar{width:100%;max-width:560px;padding-bottom:env(safe-area-inset-bottom);background:color-mix(in srgb, var(--bg) 94%, transparent);-webkit-backdrop-filter:blur(18px);border-top:1px solid color-mix(in srgb, var(--fg) 14%, transparent);z-index:40;grid-template-columns:repeat(3,1fr);align-items:stretch;display:grid;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.tab-item{height:56px;color:var(--fg-muted);letter-spacing:var(--ls-base);flex-direction:column;justify-content:center;align-items:center;gap:3px;font-size:11px;transition:color .2s;display:flex;position:relative}.tab-item.active{color:var(--fg)}.tab-item.active .tab-icon{stroke:var(--accent)}.tab-icon{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;width:22px;height:22px}.profile-card{border:1px solid color-mix(in srgb, var(--fg) 12%, transparent);align-items:center;gap:14px;padding:16px;display:flex}.profile-avatar{object-fit:cover;background:color-mix(in srgb, var(--fg) 10%, transparent);border-radius:50%;flex-shrink:0;width:52px;height:52px}.profile-meta{align-content:center;gap:3px;min-width:0;display:grid}.profile-name{color:var(--fg);text-overflow:ellipsis;white-space:nowrap;font-size:17px;font-weight:700;overflow:hidden}.profile-count{color:var(--fg);font-family:var(--font-serif);font-variant-numeric:tabular-nums;font-size:15px}.profile-note{color:var(--fg-muted);letter-spacing:var(--ls-base);font-size:12px}.profile-login-button{border:1px solid var(--accent);color:var(--accent);letter-spacing:var(--ls-wide);flex-shrink:0;margin-left:auto;padding:8px 18px;font-size:13px;font-weight:600;transition:background .16s,color .16s}@media (hover:hover){.profile-login-button:hover{background:var(--accent);color:var(--bg)}}.profile-login-button:focus-visible{outline-offset:2px}.achievement-section{gap:12px;display:grid}.achievement-section-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.achievement-value{color:var(--accent);font-variant-numeric:tabular-nums;letter-spacing:var(--ls-base);font-size:13px;font-weight:700}.achievement-current{border:1px solid color-mix(in srgb, var(--fg) 16%, transparent);background:linear-gradient(135deg, var(--accent-soft), transparent 58%), var(--bg);grid-template-columns:96px minmax(0,1fr);align-items:center;gap:16px;padding:14px;display:grid}.achievement-badge{aspect-ratio:1;object-fit:contain;flex-shrink:0;width:64px;transition:filter .22s,opacity .22s,transform .22s;display:block;box-shadow:0 3px 12px #17161329}.achievement-badge-large{width:96px}.achievement-badge.locked,.achievement-card.locked .achievement-badge{filter:grayscale()contrast(.8);opacity:.34;box-shadow:none}.achievement-current-copy{min-width:0;display:grid}.achievement-current-kicker{color:var(--accent);letter-spacing:var(--ls-wide);font-size:10px;font-weight:700}.achievement-current-copy>strong{font-family:var(--font-serif);margin-top:1px;font-size:19px;line-height:1.35}.achievement-current-copy>p,.achievement-card-copy>p{color:var(--fg-muted);margin:3px 0 0;font-size:11px;line-height:1.55}.achievement-progress{background:color-mix(in srgb, var(--fg) 12%, transparent);height:4px;margin-top:10px;overflow:hidden}.achievement-progress>span{background:var(--accent);transform-origin:0;width:100%;height:100%;transition:transform .36s cubic-bezier(.16,1,.3,1);display:block}.achievement-next-copy{color:var(--fg-muted);font-variant-numeric:tabular-nums;margin-top:5px;font-size:10px}.achievement-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}.achievement-card{border:1px solid color-mix(in srgb, var(--fg) 12%, transparent);grid-template-columns:56px minmax(0,1fr);align-items:center;gap:9px;min-height:84px;padding:10px;display:grid}.achievement-card .achievement-badge{width:56px}.achievement-card.locked{border-style:dashed}.achievement-card-copy{min-width:0;display:grid}.achievement-card-copy>strong{color:var(--fg);text-overflow:ellipsis;white-space:nowrap;font-size:13px;line-height:1.4;overflow:hidden}.achievement-card-copy>span{color:var(--accent);font-variant-numeric:tabular-nums;font-size:10px;font-weight:700}.achievement-card.locked .achievement-card-copy>span{color:var(--fg-muted)}.achievement-toast{left:50%;bottom:calc(76px + max(12px, env(safe-area-inset-bottom)));z-index:55;border:1px solid color-mix(in srgb, var(--fg) 22%, transparent);background:var(--bg);pointer-events:none;align-items:center;gap:11px;width:min(100% - 32px,360px);padding:10px 14px 10px 10px;animation:.28s cubic-bezier(.16,1,.3,1) achievement-toast-in;display:flex;position:fixed;transform:translate(-50%);box-shadow:0 14px 34px #17161333}.achievement-toast-badge{width:52px}.achievement-toast>span:last-child{display:grid}.achievement-toast small{color:var(--accent);letter-spacing:var(--ls-wide);font-size:10px;font-weight:700}.achievement-toast strong{font-family:var(--font-serif);font-size:17px}@keyframes achievement-toast-in{0%{opacity:0;transform:translate(-50%,12px)}to{opacity:1;transform:translate(-50%)}}@media (width<=360px){.achievement-current{grid-template-columns:76px minmax(0,1fr);gap:12px}.achievement-badge-large{width:76px}.achievement-grid{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){.achievement-toast{animation:none}.achievement-progress>span{transition:none}}.setting-block{border:0;min-inline-size:0;margin:0;padding:0}.setting-block>.micro-label{margin-bottom:10px}.theme-options{border:1px solid color-mix(in srgb, var(--fg) 18%, transparent);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.theme-option{min-height:42px;color:var(--fg-muted);letter-spacing:var(--ls-base);font-size:12px;font-weight:600;transition:color .16s,background-color .16s}.theme-option+.theme-option{border-left:1px solid color-mix(in srgb, var(--fg) 14%, transparent)}.theme-option:hover,.theme-option.active{color:var(--fg);background:color-mix(in srgb, var(--fg) 6%, transparent)}.theme-option:focus-visible{outline-offset:-3px}.main-content{flex-direction:column;flex:1;justify-content:flex-start;gap:clamp(24px,4vh,40px);min-height:0;padding-bottom:4vh;display:flex}.micro-label{color:var(--fg-muted);letter-spacing:var(--ls-wide);font-size:12px;font-weight:600}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.char-count{color:var(--fg-muted);font-variant-numeric:tabular-nums;letter-spacing:var(--ls-base);font-size:12px;transition:color .2s}.char-count.over-limit{color:var(--accent);font-weight:700}.topic-input{border:none;border-bottom:2px solid color-mix(in srgb, var(--fg) 30%, transparent);width:100%;min-height:calc(1.3em + 16px);max-height:calc(5.2em + 16px);color:var(--fg);font-family:var(--font-serif);letter-spacing:var(--ls-tight);caret-color:var(--accent);resize:none;background:0 0;border-radius:0;padding:8px 0;font-size:clamp(20px,3.5vw,30px);font-weight:500;line-height:1.3;transition:border-color .2s,color .2s;display:block;overflow:hidden auto}.topic-input::placeholder{color:var(--fg-muted);font-family:var(--font-sans);font-size:inherit;line-height:inherit;letter-spacing:inherit;font-weight:400}.topic-input:focus{border-bottom-color:var(--fg);outline:none}.length-block{border:0;flex-shrink:0;min-inline-size:0;margin:0;padding:0}.length-block>.micro-label{margin-bottom:10px}.length-options{border:1px solid color-mix(in srgb, var(--fg) 18%, transparent);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.length-option{min-height:44px;color:var(--fg-muted);font-family:var(--font-sans);letter-spacing:var(--ls-base);justify-content:center;align-items:center;font-size:13px;transition:color .16s,background-color .16s;display:flex}.length-option+.length-option{border-left:1px solid color-mix(in srgb, var(--fg) 14%, transparent)}.length-option:hover,.length-option.active{color:var(--fg);background:color-mix(in srgb, var(--fg) 6%, transparent)}.length-option:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.length-block:disabled .length-option{cursor:default;opacity:.5}.result-section{flex-direction:column;flex:0 auto;justify-content:center;min-height:clamp(140px,20vh,220px);max-height:48vh;padding:clamp(12px,2vh,20px) 0;display:flex;overflow:hidden auto}.empty-message{color:var(--fg-muted);opacity:.75;font-family:var(--font-serif);letter-spacing:var(--ls-base);text-align:center;margin:0;font-size:clamp(18px,2.5vw,24px);line-height:1.25}.thinking-indicator{color:var(--fg-muted);letter-spacing:var(--ls-base);flex-shrink:0;justify-content:center;align-items:center;gap:12px;font-size:13px;display:flex}.thinking-dot{background:var(--accent);border-radius:50%;width:8px;height:8px;animation:.5s ease-in-out infinite alternate think-pulse;display:inline-block}.thinking-text{animation:.24s fade-step}.error-message{color:var(--fg-muted);text-align:center;letter-spacing:var(--ls-tight);flex-shrink:0;margin:0;font-size:15px}.result-text{max-width:100%;font-family:var(--font-serif);letter-spacing:var(--ls-base);word-break:break-word;overflow-wrap:break-word;text-align:center;margin:0;font-size:clamp(22px,3.2vw,32px);font-weight:600;line-height:1.5}.result-text.stale{opacity:.35;transition:opacity .2s;animation:none}.result-text.animate-in{animation:.24s cubic-bezier(.16,1,.3,1) both rise-in}.result-actions{flex-shrink:0;justify-content:center;gap:28px;margin-top:clamp(18px,3vh,32px);display:flex}.result-actions button{color:var(--fg-muted);letter-spacing:var(--ls-base);padding:4px 0;font-size:13px;font-weight:600;transition:color .18s;position:relative}.result-actions button:before{content:"";position:absolute;inset:-10px -8px}.result-actions button:after{content:"";background:var(--fg);opacity:0;transform-origin:0;height:1.5px;transition:opacity .18s,transform .22s;position:absolute;bottom:0;left:0;right:0;transform:scaleX(0)}@media (hover:hover){.result-actions button:hover:after{opacity:1;transform:scaleX(1)}}.result-actions button.copied{color:var(--success)}.result-actions button.copied:after{background:var(--success);opacity:1;transform:scaleX(1)}.result-actions button.copy-failed{color:var(--accent)}.result-actions button.copy-failed:after{background:var(--accent);opacity:1;transform:scaleX(1)}.result-actions button:disabled{cursor:wait;opacity:.4}.home-topbar{justify-content:space-between;align-items:center;gap:10px;display:flex}.home-topbar-actions{align-items:center;gap:8px;display:flex}.help-button{border:1px solid color-mix(in srgb, var(--fg) 18%, transparent);color:var(--fg-muted);letter-spacing:var(--ls-base);border-radius:999px;align-items:center;gap:6px;padding:6px 12px;font-size:12px;font-weight:600;transition:color .16s,border-color .16s,background-color .16s;display:inline-flex}@media (hover:hover){.help-button:hover{color:var(--fg);border-color:color-mix(in srgb, var(--fg) 40%, transparent);background:color-mix(in srgb, var(--fg) 4%, transparent)}}.help-button-icon{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;width:15px;height:15px}.provider-entry{color:var(--fg)}.provider-status-dot{background:var(--accent);border-radius:50%;flex:none;width:7px;height:7px}.provider-entry.configured .provider-status-dot{background:var(--success)}.help-overlay{z-index:60;background:#0006;justify-content:center;align-items:center;padding:24px;animation:.16s help-fade-in;display:flex;position:fixed;inset:0}.help-dialog{background:var(--bg);border:1px solid color-mix(in srgb, var(--fg) 18%, transparent);flex-direction:column;width:100%;max-width:420px;max-height:min(80vh,640px);animation:.2s cubic-bezier(.16,1,.3,1) help-rise-in;display:flex;box-shadow:0 24px 64px #0000003d}.provider-dialog{max-width:460px}.release-notice-dialog{max-width:420px}.release-notice-body{gap:16px;padding:22px 20px 20px;display:grid}.release-notice-lead,.release-notice-note{margin:0}.release-notice-lead{font-family:var(--font-serif);letter-spacing:var(--ls-tight);font-size:20px;font-weight:700;line-height:1.5}.release-notice-body ul{color:var(--fg);gap:8px;margin:0;padding-left:20px;font-size:13px;line-height:1.65;display:grid}.release-notice-note{color:var(--fg-muted);font-size:12px}.provider-form{gap:16px;padding:18px 20px 20px;display:grid;overflow-y:auto}.provider-fieldset{border:0;min-inline-size:0;margin:0;padding:0}.provider-fieldset>legend,.provider-field>span:first-child{color:var(--fg-muted);letter-spacing:var(--ls-wide);margin-bottom:7px;font-size:12px;font-weight:600;display:block}.provider-options{border:1px solid color-mix(in srgb, var(--fg) 18%, transparent);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.provider-option{min-height:44px;color:var(--fg-muted);border-right:1px solid color-mix(in srgb, var(--fg) 12%, transparent);border-bottom:0;padding:6px 8px;font-size:12px;font-weight:600;line-height:1.3}.provider-option:last-child{border-right:0}.provider-option:hover,.provider-option.active{color:var(--fg);background:color-mix(in srgb, var(--fg) 6%, transparent)}.provider-option:focus-visible{outline-offset:-3px}.provider-field{display:block}.provider-field>input,.provider-input-wrap{width:100%}.provider-field input[type=text],.provider-field input[type=password]{border:1px solid color-mix(in srgb, var(--fg) 22%, transparent);min-height:44px;color:var(--fg);background:0 0;border-radius:0;padding:10px 12px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:13px}.provider-field input:focus{border-color:var(--fg);box-shadow:inset 0 0 0 1px var(--fg);outline:none}.provider-input-wrap{display:block;position:relative}.provider-input-wrap input{width:100%;padding-right:60px!important}.provider-key-toggle{min-width:56px;height:44px;color:var(--fg-muted);font-size:12px;position:absolute;top:0;right:0}.provider-key-toggle:hover{color:var(--fg)}.provider-key-toggle:focus-visible{outline-offset:-4px}.provider-persistence{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.provider-persistence label{border:1px solid color-mix(in srgb, var(--fg) 16%, transparent);min-height:44px;color:var(--fg);align-items:center;gap:8px;padding:8px 10px;font-size:12px;display:flex}.provider-persistence input{accent-color:var(--accent)}.provider-privacy-note,.provider-form-error{margin:0;font-size:12px;line-height:1.65}.provider-privacy-note{color:var(--fg-muted)}.provider-form-error{color:var(--accent);font-weight:600}.provider-form-actions{grid-template-columns:1fr 1fr;gap:10px;display:grid}.provider-form-actions button{border:1px solid color-mix(in srgb, var(--fg) 22%, transparent);min-height:44px;letter-spacing:var(--ls-base);font-size:13px;font-weight:700}.provider-form-actions .provider-save{border-color:var(--fg);background:var(--fg);color:var(--bg)}@media (width<=400px){.home-topbar{align-items:flex-start}.home-topbar-actions{gap:5px}.help-button{padding-inline:9px}.help-button-icon{display:none}.provider-persistence{grid-template-columns:1fr}}.help-header{border-bottom:1px solid color-mix(in srgb, var(--fg) 12%, transparent);flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:16px 20px 12px;display:flex}.help-title{font-family:var(--font-serif);letter-spacing:var(--ls-wide);margin:0;font-size:18px;font-weight:700}.help-close{width:32px;height:32px;color:var(--fg-muted);border-radius:50%;justify-content:center;align-items:center;font-size:22px;font-weight:300;line-height:1;transition:color .16s,background-color .16s;display:flex}@media (hover:hover){.help-close:hover{color:var(--fg);background:color-mix(in srgb, var(--fg) 6%, transparent)}}.help-body{gap:18px;padding:16px 20px 20px;display:grid;overflow-y:auto}.help-section h3{letter-spacing:var(--ls-wide);color:var(--accent);margin:0 0 8px;font-size:13px;font-weight:700}.help-section p,.help-section li,.help-section dd{color:var(--fg);margin:0;font-size:14px;line-height:1.7}.help-section ol{gap:6px;margin:0;padding-left:20px;display:grid}.help-section dl{gap:8px;margin:0;display:grid}.help-section dt{font-size:14px;font-weight:600}.help-section dd{color:var(--fg-muted);margin-left:0;font-size:13px}.changelog-entry{gap:8px;display:grid}.changelog-entry+.changelog-entry{border-top:1px solid color-mix(in srgb, var(--fg) 12%, transparent);padding-top:16px}.changelog-version{letter-spacing:var(--ls-wide);color:var(--accent);align-items:baseline;gap:10px;margin:0;font-size:14px;font-weight:700;display:flex}.changelog-version time{color:var(--fg-muted);letter-spacing:var(--ls-base);font-variant-numeric:tabular-nums;font-size:11px;font-weight:400}.changelog-list{gap:6px;margin:0;padding-left:20px;display:grid}.changelog-list li{color:var(--fg);font-size:13px;line-height:1.7}@keyframes think-pulse{0%{opacity:.2;transform:scale(.6)}to{opacity:1;transform:scale(1.3)}}@keyframes fade-step{0%{opacity:0;transform:translateY(3px)}}@keyframes rise-in{0%{opacity:0;filter:blur(2px);transform:translateY(16px)}to{opacity:1;filter:blur();transform:translateY(0)}}@keyframes help-fade-in{0%{opacity:0}to{opacity:1}}@keyframes help-rise-in{0%{opacity:0;transform:translateY(12px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (width>=600px){.page-frame{padding:clamp(32px, 6vh, 48px) clamp(32px, 6vw, 48px) calc(max(clamp(28px, 5vh, 40px), env(safe-area-inset-bottom)) + 76px);max-width:520px}.tab-bar{max-width:520px}.result-actions{gap:36px}}@media (height<=600px){.page-frame{padding-top:12px;padding-bottom:8px}.topic-input{padding:10px 0;font-size:20px}.main-options{gap:14px}.primary-button{height:44px;font-size:14px}.result-text{font-size:18px}}
