:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color-scheme:light;--bg:#f3f0e8;--surface:#fbf9f3;--surface2:#ebe6db;--text:#171714;--muted:#6d6a62;--line:#d4cec1;--accent:#171714;--accentText:#fff;--good:#1b7d4f;--bad:#bc3f35;--warn:#9a6417;--focus:#3d68ff;--shadow:0 18px 54px rgba(31,28,20,.13);--radius:18px;background:var(--bg);color:var(--text)}
:root[data-theme=midnight]{color-scheme:dark;--bg:#0d0f12;--surface:#15181d;--surface2:#20242a;--text:#f2f2ef;--muted:#9ca2aa;--line:#2e333b;--accent:#f2f2ef;--accentText:#0d0f12;--good:#5ad196;--bad:#ff766e;--warn:#f2bb64;--focus:#8da5ff;--shadow:0 20px 58px rgba(0,0,0,.42)}
:root[data-theme=ember]{color-scheme:dark;--bg:#211513;--surface:#2b1c18;--surface2:#3b2721;--text:#fff1e9;--muted:#c9aaa0;--line:#57372d;--accent:#ff7248;--accentText:#1b0d08;--good:#6bd09d;--bad:#ff7c68;--warn:#f5bd61;--focus:#ffab91;--shadow:0 20px 58px rgba(20,7,3,.45)}
:root[data-theme=ocean]{--bg:#e8f1f3;--surface:#f5fbfc;--surface2:#d8e7ea;--text:#10252a;--muted:#61787c;--line:#bfd3d7;--accent:#0f5e6c;--accentText:#fff;--good:#13794d;--bad:#ba4339;--warn:#956218;--focus:#20768a}
:root[data-theme=mono]{--bg:#eee;--surface:#fff;--surface2:#dedede;--text:#050505;--muted:#666;--line:#bdbdbd;--accent:#050505;--accentText:#fff;--good:#16713f;--bad:#b11e1e;--warn:#745000;--focus:#000;--radius:5px}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text)}body{min-height:100svh;overflow-x:hidden}button,input{font:inherit;color:inherit}button{cursor:pointer}button:disabled{opacity:.48;cursor:not-allowed}button:focus-visible,input:focus-visible{outline:3px solid color-mix(in srgb,var(--focus) 55%,transparent);outline-offset:2px}.hidden{display:none!important}
#app{min-height:100svh}.app-shell{min-height:100svh;display:grid;grid-template-rows:auto 1fr auto;background:var(--bg);transition:background .25s,color .25s}.topbar{height:68px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 max(20px,env(safe-area-inset-left));border-bottom:1px solid color-mix(in srgb,var(--line) 70%,transparent);position:relative;z-index:4}.wordmark{justify-self:start;border:0;background:transparent;font-weight:950;letter-spacing:.08em;font-size:14px;padding:10px 4px;display:flex;gap:8px;align-items:center}.brand-mark{font-size:13px;transform:rotate(45deg)}.score{display:flex;align-items:baseline;gap:8px;min-width:82px;justify-content:center}.score span{font-size:10px;letter-spacing:.16em;color:var(--muted);font-weight:850}.score strong{font-size:23px;line-height:1;font-variant-numeric:tabular-nums}.score-bump{animation:scoreBump .28s ease}.top-actions{justify-self:end;display:flex;align-items:center;gap:6px}.icon-btn{border:1px solid transparent;background:transparent;width:40px;height:40px;display:grid;place-items:center;border-radius:11px;font-size:19px}.icon-btn:hover{background:var(--surface2);border-color:var(--line)}.icon-btn.labeled{width:auto;grid-auto-flow:column;gap:7px;padding:0 11px}.icon-btn.labeled b{font-size:12px}.icon-btn.labeled span{font-size:18px}
.game-main{display:grid;place-items:center;padding:42px 20px 100px;min-height:0}.question-zone{width:min(760px,100%);display:flex;flex-direction:column;align-items:center;text-align:center}.target-emoji{font-size:78px;line-height:1;margin-bottom:21px;filter:drop-shadow(0 8px 11px rgba(0,0,0,.08));user-select:none}.target-emoji.animate{animation:targetIn .35s cubic-bezier(.2,.9,.2,1)}.question-kicker{text-transform:uppercase;font-size:14px;letter-spacing:.22em;font-weight:900;color:var(--muted);margin-bottom:3px}.target-title{margin:0;max-width:100%;font-size:clamp(44px,8vw,88px);letter-spacing:-.055em;line-height:.98;overflow-wrap:anywhere;text-wrap:balance}.target-title.animate{animation:titleIn .32s cubic-bezier(.2,.8,.2,1)}
.answer-form{width:min(620px,100%);margin-top:36px}.input-shell{height:64px;border:2px solid var(--text);background:var(--surface);display:grid;grid-template-columns:1fr 68px;align-items:center;border-radius:var(--radius);box-shadow:0 5px 0 color-mix(in srgb,var(--text) 11%,transparent);transition:transform .16s,box-shadow .16s,border-color .16s}.input-shell:focus-within{transform:translateY(-1px);box-shadow:0 7px 0 color-mix(in srgb,var(--text) 12%,transparent)}.input-shell.busy{border-color:var(--muted)}.input-shell input{width:100%;height:100%;border:0;outline:0;background:transparent;padding:0 18px;font-size:20px;font-weight:650;min-width:0}.input-shell input::placeholder{color:color-mix(in srgb,var(--muted) 82%,transparent);font-weight:500}.input-shell button{height:46px;margin-right:8px;border:0;border-radius:12px;background:var(--accent);color:var(--accentText);font-weight:950;font-size:13px;letter-spacing:.08em;display:grid;place-items:center;transition:transform .12s}.input-shell button:not(:disabled):active{transform:scale(.96)}
.suggestions{width:min(620px,100%);display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px;min-height:45px}.suggestion{min-width:0;border:1px solid var(--line);background:color-mix(in srgb,var(--surface) 78%,transparent);border-radius:12px;padding:11px 10px;font-size:13px;font-weight:750;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:transform .14s,background .14s,border-color .14s}.suggestion:hover{transform:translateY(-2px);background:var(--surface);border-color:color-mix(in srgb,var(--text) 28%,var(--line))}.suggestion span{margin-right:5px}.hint-loading{grid-column:1/-1;color:var(--muted);font-size:12px;display:flex;align-items:center;justify-content:center;gap:8px;height:42px}.mini-pulse{width:7px;height:7px;border-radius:50%;background:currentColor;animation:pulse 1s ease-in-out infinite}
.ruling{width:min(650px,100%);margin-top:21px;display:flex;align-items:center;justify-content:center;gap:9px;line-height:1.45;font-size:15px;font-weight:600;color:var(--muted);animation:rulingIn .25s ease}.ruling.good{color:var(--good)}.ruling.bad{color:var(--bad)}.ruling.blocked{color:var(--warn)}.ruling.info{color:var(--muted)}.ruling-icon{flex:0 0 auto}.text-btn{border:0;background:transparent;text-decoration:underline;text-underline-offset:3px;font-weight:800;padding:4px 6px;color:currentColor}
.game-over{width:min(650px,100%);margin-top:28px;border-top:1px solid var(--line);padding-top:24px;animation:upIn .3s ease}.game-over-title{display:flex;justify-content:center;align-items:baseline;gap:12px}.game-over-title span{font-size:11px;letter-spacing:.18em;color:var(--muted);font-weight:900}.game-over-title strong{font-size:32px}.loss-match{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:7px;margin:13px 0 17px;font-size:14px}.loss-match span{font-weight:850}.loss-match b{color:var(--muted);font-weight:500}.summary-stats{display:flex;justify-content:center;gap:22px;color:var(--muted);font-size:12px}.summary-stats b{color:var(--text);margin-right:3px}.game-over-actions{margin-top:20px;display:flex;justify-content:center;gap:8px;flex-wrap:wrap}.primary-btn,.secondary-btn{height:42px;padding:0 16px;border-radius:11px;font-weight:800;font-size:13px}.primary-btn{background:var(--accent);color:var(--accentText);border:1px solid var(--accent)}.secondary-btn{background:var(--surface);border:1px solid var(--line)}
.chain-area{height:78px;border-top:1px solid var(--line);display:grid;grid-template-columns:auto 1fr;align-items:center;gap:14px;padding:0 max(20px,env(safe-area-inset-left));background:color-mix(in srgb,var(--surface) 64%,var(--bg));position:sticky;bottom:0;z-index:3;padding-bottom:env(safe-area-inset-bottom)}.chain-label{border:0;background:transparent;font-size:10px;letter-spacing:.15em;color:var(--muted);font-weight:900;white-space:nowrap}.chain-label span{background:var(--surface2);color:var(--text);padding:3px 6px;border-radius:6px;margin-left:3px}.chain-scroll{display:flex;align-items:center;gap:8px;overflow:hidden;min-width:0;mask-image:linear-gradient(to right,transparent 0,#000 20px,#000 100%)}.chain-piece{display:flex;align-items:center;gap:5px;white-space:nowrap;font-size:13px;font-weight:700;color:var(--muted)}.chain-piece:last-child{color:var(--text);font-weight:900}.chain-arrow{color:var(--line);font-size:16px}.chain-emoji{font-size:16px}.chain-more{border:1px solid var(--line);background:var(--surface);border-radius:8px;font-size:11px;padding:5px 7px;color:var(--muted);font-weight:800}
.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.43);display:grid;place-items:center;padding:18px;z-index:20;animation:fadeIn .15s ease}.modal{width:min(520px,100%);max-height:min(760px,calc(100svh - 36px));background:var(--surface);border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow);overflow:hidden;display:grid;grid-template-rows:auto 1fr;animation:modalIn .22s cubic-bezier(.2,.8,.2,1)}.modal.wide{width:min(820px,100%)}.modal-head{height:62px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 14px 0 21px}.modal-head h2{margin:0;font-size:16px;letter-spacing:-.01em}.modal-body{overflow:auto;padding:20px;overscroll-behavior:contain}.modal-close{border:0;background:transparent;width:40px;height:40px;border-radius:10px;font-size:27px;font-weight:300}.modal-close:hover{background:var(--surface2)}
.settings-stack{display:grid;gap:14px}.setting-row,.setting-block{border:1px solid var(--line);background:var(--surface);border-radius:14px;padding:15px;text-align:left}.setting-row{width:100%;display:flex;align-items:center;justify-content:space-between;gap:18px}.setting-row strong{font-size:14px;display:block}.setting-row small{display:block;color:var(--muted);font-size:11px;margin-top:4px;line-height:1.35;font-weight:500}.switch{width:42px;height:24px;border-radius:30px;background:var(--surface2);border:1px solid var(--line);padding:2px;flex:none;transition:background .16s}.switch i{display:block;width:18px;height:18px;border-radius:50%;background:var(--muted);transition:transform .16s,background .16s}.switch.on{background:var(--accent)}.switch.on i{transform:translateX(17px);background:var(--accentText)}.setting-label{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-weight:900;margin-bottom:10px}.theme-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:7px}.theme-choice{height:45px;border:1px solid var(--line);background:var(--surface2);border-radius:9px;font-size:11px;font-weight:800;position:relative;overflow:hidden}.theme-choice.selected{outline:2px solid var(--text);outline-offset:1px}.theme-choice:before{content:"";position:absolute;left:0;right:0;top:0;height:7px}.theme-choice[data-theme-choice=paper]:before{background:#171714}.theme-choice[data-theme-choice=midnight]:before{background:#707a88}.theme-choice[data-theme-choice=ember]:before{background:#ff7248}.theme-choice[data-theme-choice=ocean]:before{background:#0f5e6c}.theme-choice[data-theme-choice=mono]:before{background:#050505}.segmented{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);border-radius:10px;overflow:hidden}.segmented button{border:0;border-right:1px solid var(--line);background:var(--surface2);height:38px;text-transform:capitalize;font-size:12px;font-weight:800}.segmented button:last-child{border-right:0}.segmented button.active{background:var(--accent);color:var(--accentText)}.setting-help{font-size:11px;line-height:1.45;color:var(--muted);margin:10px 2px 0}.provider-line{display:flex;gap:8px;align-items:center;color:var(--muted);font-size:11px;padding:2px 3px}.dot{width:8px;height:8px;border-radius:50%;background:var(--muted)}.dot.online{background:var(--good)}.dot.offline{background:var(--bad)}
.history-wrap{display:grid;gap:22px}.history-best{height:84px;background:var(--surface2);border-radius:15px;display:flex;align-items:center;justify-content:center;gap:13px}.history-best span{font-size:10px;font-weight:900;letter-spacing:.18em;color:var(--muted)}.history-best strong{font-size:36px}.history-section h3{font-size:11px;text-transform:uppercase;letter-spacing:.13em;color:var(--muted);margin:0 0 8px}.empty-copy{color:var(--muted);font-size:13px;margin:15px 2px}.history-row{display:flex;border-top:1px solid var(--line);min-height:62px;align-items:center}.history-main{border:0;background:transparent;flex:1;display:grid;grid-template-columns:43px 1fr;align-items:center;text-align:left;padding:9px 5px;min-width:0}.history-main:hover{background:color-mix(in srgb,var(--surface2) 50%,transparent)}.history-score{width:33px;height:33px;border:1px solid var(--line);border-radius:9px;display:grid;place-items:center;font-weight:900}.history-main strong{font-size:13px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.history-main small{font-size:10px;color:var(--muted);display:block;margin-top:3px}.row-action{border:0;background:transparent;width:36px;height:36px;font-size:20px;border-radius:8px}.row-action:hover{background:var(--surface2)}
.inspect-summary{display:flex;gap:18px;color:var(--muted);font-size:12px;margin-bottom:14px}.inspect-summary b{color:var(--text)}.inspect-list{border-top:1px solid var(--line)}.inspect-row{min-height:68px;border-bottom:1px solid var(--line);display:grid;grid-template-columns:30px 32px minmax(0,1fr) auto auto;gap:9px;align-items:center;padding:8px 2px}.inspect-index{font-size:10px;color:var(--muted);font-variant-numeric:tabular-nums}.inspect-emoji{font-size:21px}.inspect-concept{min-width:0}.inspect-concept strong{display:block;font-size:14px;overflow-wrap:anywhere}.inspect-concept small{display:block;color:var(--muted);font-size:10.5px;margin-top:3px;line-height:1.35}.small-btn{border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:7px 9px;font-size:10px;font-weight:800;white-space:nowrap}.small-btn:hover{background:var(--surface2)}.inspect-rejected{margin-top:16px;border:1px solid color-mix(in srgb,var(--bad) 35%,var(--line));background:color-mix(in srgb,var(--bad) 6%,var(--surface));border-radius:12px;padding:13px}.inspect-rejected span{font-weight:850}.inspect-rejected p{font-size:12px;color:var(--muted);line-height:1.45;margin:7px 0 10px}
.details-loading{min-height:240px;display:flex;align-items:center;justify-content:center;gap:11px;color:var(--muted);font-size:13px}.detail-article{max-width:700px;margin:0 auto}.detail-article h3{font-size:25px;letter-spacing:-.03em;margin:2px 0 18px}.detail-article p{font-family:ui-serif,Georgia,serif;font-size:16px;line-height:1.72;margin:0 0 16px;color:color-mix(in srgb,var(--text) 92%,var(--muted));white-space:pre-wrap}.detail-article.fight p{font-size:16.5px;line-height:1.75}.error-card{padding:18px;border:1px solid color-mix(in srgb,var(--bad) 35%,var(--line));border-radius:12px;color:var(--bad);font-size:13px}.spinner{width:17px;height:17px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .75s linear infinite}.toast{position:fixed;left:50%;bottom:98px;transform:translateX(-50%);z-index:40;background:var(--text);color:var(--bg);padding:11px 15px;border-radius:10px;font-weight:800;font-size:12px;box-shadow:var(--shadow);animation:toastIn .22s ease}
.shared-page{min-height:100svh;background:var(--bg)}.shared-main{padding:48px 18px 80px;display:grid;place-items:start center}.shared-card{width:min(700px,100%);text-align:center}.shared-card h1{font-size:34px;letter-spacing:-.04em;margin:6px 0 24px}.shared-score{display:flex;align-items:baseline;justify-content:center;gap:10px}.shared-score span{font-size:10px;letter-spacing:.16em;color:var(--muted);font-weight:900}.shared-score strong{font-size:42px}.shared-chain{border-top:1px solid var(--line);margin-bottom:20px}.shared-node{display:grid;grid-template-columns:34px minmax(0,1fr);grid-template-rows:auto auto;column-gap:8px;text-align:left;padding:13px 5px;border-bottom:1px solid var(--line)}.shared-node>span{grid-row:1/3;font-size:23px}.shared-node strong{font-size:14px}.shared-node small{font-size:11px;color:var(--muted);line-height:1.4;margin-top:3px}.shared-ending{border:1px solid color-mix(in srgb,var(--bad) 35%,var(--line));padding:14px;border-radius:12px;display:grid;gap:5px;text-align:left;margin:18px 0}.shared-ending b{font-size:13px}.shared-ending span{font-size:11px;color:var(--muted)}
@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%,100%{opacity:.3;transform:scale(.8)}50%{opacity:1;transform:scale(1.15)}}@keyframes targetIn{0%{transform:scale(.75) rotate(-6deg);opacity:0}100%{transform:none;opacity:1}}@keyframes titleIn{0%{transform:translateY(17px);opacity:0;filter:blur(4px)}100%{transform:none;opacity:1;filter:none}}@keyframes scoreBump{50%{transform:scale(1.28)}}@keyframes rulingIn{0%{transform:translateY(8px);opacity:0}100%{transform:none;opacity:1}}@keyframes upIn{0%{transform:translateY(16px);opacity:0}100%{transform:none;opacity:1}}@keyframes fadeIn{from{opacity:0}}@keyframes modalIn{from{transform:translateY(15px) scale(.98);opacity:0}}@keyframes toastIn{from{transform:translate(-50%,10px);opacity:0}}
@media(max-width:720px){.topbar{height:60px;padding:0 12px}.icon-btn.labeled b{display:none}.icon-btn.labeled{width:40px;padding:0}.game-main{padding:30px 14px 94px}.target-emoji{font-size:64px;margin-bottom:16px}.target-title{font-size:clamp(43px,13vw,70px)}.answer-form{margin-top:29px}.input-shell{height:58px;grid-template-columns:1fr 60px}.input-shell input{font-size:17px;padding-left:15px}.input-shell button{height:42px}.suggestions{grid-template-columns:1fr;gap:6px}.suggestion{padding:9px 10px}.ruling{font-size:13px;align-items:flex-start;flex-wrap:wrap}.chain-area{height:67px;padding-left:12px;padding-right:12px;gap:8px}.chain-label{font-size:9px}.chain-scroll{mask-image:none}.chain-piece{font-size:12px}.modal-backdrop{padding:0;align-items:end}.modal{width:100%;max-height:88svh;border-radius:20px 20px 0 0;border-bottom:0}.modal.wide{width:100%}.theme-grid{grid-template-columns:repeat(3,1fr)}.inspect-row{grid-template-columns:26px 28px minmax(0,1fr) auto}.inspect-row .detail-row-btn{display:none}.summary-stats{gap:11px;flex-wrap:wrap}.game-over-actions{display:grid;grid-template-columns:1fr 1fr}.game-over-actions .primary-btn{grid-column:1/-1}.toast{bottom:83px;white-space:nowrap}}
@media(max-width:420px){.wordmark{font-size:12px}.brand-mark{display:none}.score span{display:none}.top-actions{gap:1px}.icon-btn{width:36px}.question-kicker{font-size:11px}.target-emoji{font-size:56px}.input-shell{border-width:1.5px}.loss-match{font-size:12px}.inspect-row{grid-template-columns:24px 26px minmax(0,1fr) auto}.inspect-row .small-btn{padding:6px;font-size:9px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.001ms!important}}
