:root{--bg:#edf3fb;--surface:#fff;--surface-2:#f4f7fc;--ink:#2d2a3e;--muted:#625f78;--line:#d5ddea;--line-strong:#b7c1d3;--hat:#ffc933;--hat-ink:#4a3700;--hat-soft:#fff4cf;--on-hat:#fff8de;--focus:#3a6bd6;--good:#1f7f53;--good-bg:#e2f4e9;--warn:#9a5f00;--warn-bg:#fdf0d8;--bad:#b8394a;--bad-bg:#fbe4e7;--info-bg:#e7edf8;--shadow:0 10px 40px #1d1a3459;--scrim:#16142873;--f-display:"Huninn", "Noto Sans TC", "PingFang TC", "Microsoft JhengHei", sans-serif;--f-body:"Noto Sans TC", "PingFang TC", "Microsoft JhengHei", system-ui, sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#151826;--surface:#1f2336;--surface-2:#272c43;--ink:#eceef8;--muted:#a6a9c2;--line:#343a55;--line-strong:#4b5274;--hat-soft:#3a3116;--focus:#93b2ff;--good:#72d3a3;--good-bg:#173326;--warn:#f2b85e;--warn-bg:#3a2c13;--bad:#f58a95;--bad-bg:#3c1d25;--info-bg:#232a44;--shadow:0 10px 40px #0000008c;--scrim:#04050c99;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#151826;--surface:#1f2336;--surface-2:#272c43;--ink:#eceef8;--muted:#a6a9c2;--line:#343a55;--line-strong:#4b5274;--hat-soft:#3a3116;--focus:#93b2ff;--good:#72d3a3;--good-bg:#173326;--warn:#f2b85e;--warn-bg:#3a2c13;--bad:#f58a95;--bad-bg:#3c1d25;--info-bg:#232a44;--shadow:0 10px 40px #0000008c;--scrim:#04050c99;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);font:15px/1.65 var(--f-body);-webkit-text-size-adjust:100%;margin:0}h1,h2,h3{text-wrap:balance}button{font:inherit;color:inherit}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.app{flex-direction:column;gap:18px;max-width:1160px;margin:0 auto;padding-block:16px 28px;padding-inline:16px;display:flex}.masthead{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 24px;display:flex}.brand{align-items:center;gap:8px;display:flex}.brand h1{font-family:var(--f-display);letter-spacing:.02em;margin:0;font-size:30px;font-weight:400;line-height:1.1}.brand p{color:var(--muted);margin:0;font-size:13px}.chapters{scrollbar-width:none;min-width:0;max-width:100%;overflow-x:auto}.chapters ol{gap:6px;margin:0;padding:2px;list-style:none;display:flex}.chapters li{display:flex}.chapters button{border:1px solid var(--line);background:var(--surface);color:var(--muted);white-space:nowrap;cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:4px 10px 4px 4px;font-size:13px;display:flex}.chapters button:disabled{cursor:default}.chapters li.open button{color:var(--ink);border-color:var(--line-strong)}.chapters li.open button:hover{border-color:var(--ink)}.chapters .num{background:var(--surface-2);font-variant-numeric:tabular-nums;border-radius:50%;place-items:center;width:22px;height:22px;font-size:12px;font-weight:700;display:grid}.chapters li.now button{background:var(--hat);border-color:var(--hat);color:var(--hat-ink);font-weight:700}.chapters li.now .num{background:var(--on-hat)}.chapters .tag{opacity:.75;font-size:11px}.stage-grid{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);align-items:start;gap:24px;display:grid}.left{top:calc(env(safe-area-inset-top,0px) + 12px);flex-direction:column;gap:12px;display:flex;position:sticky}.eyebrow{color:var(--muted);letter-spacing:.12em;margin:0;font-size:12px;font-weight:700}.stage-head h2{font-family:var(--f-display);margin:0;font-size:32px;font-weight:400;line-height:1.2}.stage-head p:last-child{max-width:60ch;color:var(--muted);margin:4px 0 0}.stage-canvas{aspect-ratio:4/3;border:3px solid var(--ink);background:#fff4e4;border-radius:22px;width:100%;max-width:100%;overflow:hidden}.stage-canvas canvas{width:100%;height:100%;display:block}.legend{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.legend button{border:1px solid var(--line);background:var(--surface);text-align:left;cursor:pointer;border-radius:999px;align-items:center;gap:4px;padding:2px 12px 2px 2px;font-size:13px;line-height:1.25;display:inline-flex}.legend button:hover{border-color:var(--line-strong)}.legend small{color:var(--muted);font-size:11px;display:block}.panel{flex-direction:column;gap:22px;min-width:0;display:flex}.panel h2{font-family:var(--f-display);align-items:center;gap:6px;margin:0 0 10px;font-size:21px;font-weight:400;display:flex}.panel h2 .h-note{font-family:var(--f-body);color:var(--muted);font-variant-numeric:tabular-nums;margin-left:auto;font-size:13px}.info{border:1.5px solid var(--line-strong);width:22px;height:22px;color:var(--muted);font-size:12px;font-weight:700;font-family:var(--f-body);cursor:pointer;background:0 0;border-radius:50%;flex:none;place-items:center;padding:0;display:inline-grid}.info:hover{border-color:var(--ink);color:var(--ink)}.mix{border:1px solid var(--line);background:var(--surface);border-radius:18px;padding:16px}.mix-head{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.mix-head .fill{color:var(--muted);font-variant-numeric:tabular-nums;margin:0;font-size:13px}.bar{border:2px solid var(--ink);background:var(--surface-2);border-radius:999px;height:24px;display:flex;overflow:hidden}.bar span{flex-basis:0;min-width:0;transition:flex-grow .35s}.bar span+span{border-left:2px solid var(--surface)}.bar .empty{background:0 0}.mix-legend{flex-wrap:wrap;gap:4px 14px;margin:10px 0 0;padding:0;font-size:13px;list-style:none;display:flex}.mix-legend li{align-items:center;gap:5px;display:flex}.mix-legend i{border:1.5px solid var(--ink);border-radius:3px;width:11px;height:11px}.mix-legend b{font-variant-numeric:tabular-nums}.totals{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:14px 0 0;display:grid}.totals div{min-width:0}.totals dt{color:var(--muted);align-items:center;gap:5px;font-size:12px;display:flex}.totals .info{width:18px;height:18px;font-size:11px}.totals dd{font-family:var(--f-display);font-variant-numeric:tabular-nums;margin:0;font-size:21px;line-height:1.3}.totals small{font-family:var(--f-body);color:var(--muted);font-size:12px;display:block}.cards{grid-template-columns:repeat(auto-fill,minmax(min(100%,290px),1fr));gap:10px;margin:0;padding:0;list-style:none;display:grid}.card{border:1px solid var(--line);background:var(--surface);border-radius:18px;grid-template-columns:56px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 12px 10px 8px;display:grid}.card-main{min-width:0}.card-head{flex-wrap:wrap;align-items:baseline;gap:2px 8px;display:flex}.card-head .role{color:var(--muted);font-size:12px}.labels{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:14px}.labels th,.labels td{border-bottom:1px solid var(--line);text-align:right;padding:8px 6px}.labels thead th{color:var(--muted);font-size:12px;font-weight:500}.labels th[scope=row],.labels thead th:first-child{text-align:left}.labels th[scope=row]{font-weight:700}.labels th i{border:1.5px solid var(--ink);vertical-align:1px;border-radius:2px;width:11px;height:9px;margin-right:6px;display:inline-block}.labels th small{color:var(--muted);margin-left:19px;font-size:11px;font-weight:400;display:block}.card h3{margin:0;font-size:16px;font-weight:700}.card .example{color:var(--muted);margin:0;font-size:13px;line-height:1.4}.card .meta{color:var(--muted);flex-wrap:wrap;gap:2px 8px;margin:4px 0 0;font-size:12px;display:flex}.grade{border-radius:6px;padding:0 6px;font-weight:700}.grade.hi{background:var(--good-bg);color:var(--good)}.grade.mid{background:var(--info-bg);color:var(--ink)}.grade.lo{background:var(--warn-bg);color:var(--warn)}.stepper{align-items:center;gap:4px;display:flex}.step{border:2px solid var(--ink);background:var(--surface);cursor:pointer;border-radius:50%;place-items:center;width:36px;height:36px;padding:0;font-size:18px;font-weight:700;line-height:1;display:grid}.step.plus{background:var(--hat);color:var(--hat-ink)}.step:disabled{opacity:.35;cursor:not-allowed}.count{text-align:center;min-width:2.2ch;font-family:var(--f-display);font-variant-numeric:tabular-nums;font-size:20px}.notes{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.notes li{background:var(--info-bg);border-radius:14px;align-items:flex-start;gap:10px;padding:10px 12px;display:flex}.notes p{min-width:0;margin:0;line-height:1.55}.tone{background:var(--surface);border-radius:999px;flex:none;margin-top:1px;padding:1px 8px;font-size:11px;font-weight:700}.notes .note-good{background:var(--good-bg)}.notes .note-good .tone{color:var(--good)}.notes .note-warn{background:var(--warn-bg)}.notes .note-warn .tone{color:var(--warn)}.notes .note-bad{background:var(--bad-bg)}.notes .note-bad .tone{color:var(--bad)}.link{color:var(--focus);text-underline-offset:3px;cursor:pointer;background:0 0;border:none;margin-left:6px;padding:0;font-size:13px;text-decoration:underline}.actions{flex-wrap:wrap;gap:8px;display:flex}.btn{border:2px solid var(--ink);background:var(--surface);cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:9px 18px;font-weight:700;display:inline-flex}.btn.primary{background:var(--hat);color:var(--hat-ink)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn small{font-size:11px;font-weight:400}.btn.next{border-style:dashed}.foot{color:var(--muted);text-align:center;font-size:12px}.foot p{margin:0}.choices{flex-direction:column;gap:14px;display:flex}.choice{border:none;min-width:0;margin:0;padding:0}.choice legend{align-items:center;gap:6px;margin-bottom:6px;padding:0;font-weight:700;display:flex}.pills{flex-wrap:wrap;gap:6px;display:flex}.pills label{border:1.5px solid var(--line-strong);background:var(--surface);cursor:pointer;border-radius:999px;padding:6px 12px;font-size:14px;position:relative}.pills label:hover{border-color:var(--ink)}.pills label.on{border-color:var(--ink);background:var(--hat);color:var(--hat-ink);font-weight:700}.pills input{opacity:0;pointer-events:none;position:absolute}.pills label:has(input:focus-visible){outline:3px solid var(--focus);outline-offset:2px}.choice:disabled .pills label{opacity:.55;cursor:not-allowed}.choice .hint{color:var(--muted);margin:6px 0 0;font-size:13px;line-height:1.5}.check{align-items:center;gap:8px;font-weight:700;display:flex}.check label{cursor:pointer;align-items:center;gap:8px;display:flex}.check input{width:18px;height:18px;accent-color:var(--hat)}.muted{color:var(--muted);margin:0;font-size:14px}.result-box,.estimate{border:1px solid var(--line);background:var(--surface);border-radius:18px;padding:14px 16px}.result-box .big{font-family:var(--f-display);margin:0 0 10px;font-size:22px}.result-box .big small{font-family:var(--f-body);color:var(--muted);font-size:13px}.tally,.estimate{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 14px;margin:0;display:grid}.tally dt,.estimate dt{color:var(--muted);font-size:12px}.tally dd,.estimate dd{font-family:var(--f-display);font-variant-numeric:tabular-nums;margin:0;font-size:20px;line-height:1.3}.tally dd small,.estimate dd small{font-family:var(--f-body);color:var(--muted);margin-left:4px;font-size:12px}.tally dd.bad{color:var(--bad)}.report{border:2px solid var(--ink);background:var(--surface);border-radius:20px;flex-direction:column;gap:10px;padding:18px 16px;display:flex}.report-head h2{margin:0}.report-head p:last-child{color:var(--muted);margin:2px 0 0;font-size:14px}.report h3{font-family:var(--f-display);margin:8px 0 0;font-size:18px;font-weight:400}.scores{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.score-line{grid-template-columns:6.5em minmax(0,1fr) 2.2em;align-items:center;gap:8px;display:grid}.score-name{align-items:center;gap:4px;font-size:14px;font-weight:700;display:flex}.score-name .info{width:18px;height:18px;font-size:11px}.meter{border:1.5px solid var(--ink);background:var(--surface-2);border-radius:999px;height:12px;position:relative;overflow:hidden}.meter span{transition:width .4s;position:absolute;inset:0 auto 0 0}.meter .was{border-right:2px dashed var(--ink);background:0 0}.meter .now{background:var(--hat)}.score.ok .meter .now{background:var(--good)}.score.warn .meter .now{background:var(--warn)}.score.bad .meter .now{background:var(--bad)}.score-value{text-align:right;font-family:var(--f-display);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:18px;font-weight:400}.score-value small{font-family:var(--f-body);margin-top:-4px;font-size:11px;display:block}.score-value .plus{color:var(--good)}.score-value .minus,.score.trait .score-value .plus,.score.ok .score-value .plus,.score.warn .score-value .plus,.score.bad .score-value .plus{color:var(--bad)}.score.ok .score-value .minus,.score.warn .score-value .minus,.score.bad .score-value .minus{color:var(--good)}.score-locked{color:var(--muted);grid-column:2/4;font-size:13px}.causes{flex-wrap:wrap;gap:4px;margin:4px 0 0;padding:0;list-style:none;display:flex}.causes li{border-radius:999px;padding:1px 8px;font-size:12px}.causes .up{background:var(--good-bg);color:var(--good)}.causes .down{background:var(--bad-bg);color:var(--bad)}.samples{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.samples li{background:var(--surface-2);border-radius:14px;padding:10px 12px}.samples .prompt{margin:0;font-weight:700}.samples .completion{border-left:3px solid var(--hat);background:var(--surface);font:14px/1.6 var(--f-body);white-space:pre-wrap;overflow-wrap:anywhere;border-radius:0;margin:4px 0 0;padding:6px 10px}.samples .bad .completion{border-left-color:var(--bad)}.samples .sample-note{color:var(--muted);margin:6px 0 0;font-size:13px}.sheet{background:var(--surface);width:calc(100% - 32px);max-width:580px;max-height:min(86dvh,780px);color:var(--ink);box-shadow:var(--shadow);border:none;border-radius:24px;padding:0;overflow:auto}.sheet::backdrop{background:var(--scrim)}.sheet article{padding:22px 22px 20px}.sheet-head{align-items:center;gap:12px;display:flex}.sheet h2{font-family:var(--f-display);margin:0;font-size:27px;font-weight:400;line-height:1.25}.sheet h2:focus{outline:none}.sheet .en{color:var(--muted);letter-spacing:.02em;margin:0;font-size:14px}.sheet .lead{margin:14px 0 8px;font-size:17px;font-weight:500}.sheet p{max-width:65ch}.fact{background:var(--surface-2);border-radius:14px;margin-top:12px;padding:12px 14px}.fact.in-game{background:var(--hat-soft)}.fact h3,.refs h3{color:var(--muted);letter-spacing:.08em;margin:0 0 2px;font-size:12px}.fact p{margin:0}.refs{color:var(--muted);margin-top:14px;font-size:12px}.refs ul{margin:0;padding-left:18px}.sheet-close{justify-content:center;width:100%;margin-top:18px}@media (prefers-reduced-motion:no-preference){.sheet[open]{animation:.22s ease-out sheet-in}.step:active,.btn:active{transform:scale(.94)}}@keyframes sheet-in{0%{opacity:0;transform:translateY(24px)}}@media (width<=860px){.stage-grid{grid-template-columns:minmax(0,1fr);gap:14px}.left{display:contents}.stage-view{top:env(safe-area-inset-top,0px);z-index:5;background:var(--bg);margin-inline:-16px;padding:6px 16px 8px;position:sticky}.stage-head h2{font-size:26px}}@media (width<=600px){.brand h1{font-size:26px}.sheet{width:100%;max-width:none;padding-bottom:env(safe-area-inset-bottom,0px);border-radius:24px 24px 0 0;margin:auto 0 0}.card{grid-template-columns:48px minmax(0,1fr) auto}.card .mochi-icon{width:48px!important;height:48px!important}}.labels+.muted{margin-top:10px}.exam-list{flex-direction:column;gap:6px;margin:0;padding-left:20px;display:flex}.final-head{align-items:center;gap:16px;display:flex}.final-head h2{font-family:var(--f-display);margin:0;font-size:24px;font-weight:400}.final-head p:last-child{color:var(--muted);margin:4px 0 0;font-size:14px}.stamp{width:84px;height:84px;box-shadow:inset 0 0 0 3px var(--surface), inset 0 0 0 5px currentColor;font-family:var(--f-display);border:4px solid;border-radius:50%;flex:none;place-items:center;font-size:44px;line-height:1;display:grid;transform:rotate(-12deg)}@media (prefers-reduced-motion:no-preference){.stamp{animation:.35s ease-out stamp-in}}@keyframes stamp-in{0%{opacity:0;transform:rotate(-12deg)scale(1.8)}}.leak-badge{background:var(--bad-bg);color:var(--bad);border-radius:999px;margin-left:6px;padding:1px 6px;font-size:11px;font-weight:700}.exam-tests td:last-child{color:var(--muted)}.callout{border-radius:12px;margin:8px 0 0;padding:10px 12px;font-size:14px}.callout.warn{background:var(--warn-bg)}.dots-row p{margin:0 0 4px;font-size:14px}.dots{flex-wrap:wrap;gap:4px;margin-bottom:10px;display:flex}.dots i{border:1.5px solid var(--ink);border-radius:50%;width:12px;height:12px}.dots i.ok{background:var(--good)}.dots i.no{background:var(--bad)}.trivia{margin:0;font-size:14px}.trivia .bad{color:var(--bad)}.verdict{grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:12px;display:grid}.decisions{border:1px solid var(--line);background:var(--surface);border-radius:16px;min-width:0;padding:12px 14px}.decisions h3{font-family:var(--f-display);margin:0 0 8px;font-size:17px;font-weight:400}.decisions.good h3{color:var(--good)}.decisions.bad h3{color:var(--bad)}.decisions ul{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.decisions li{flex-wrap:wrap;align-items:center;gap:4px 8px;font-size:14px;line-height:1.45;display:flex}.decisions li span{flex:140px;min-width:0}.stage-chip{border:1px solid var(--line-strong);background:var(--surface-2);color:var(--muted);cursor:pointer;border-radius:999px;flex:none;padding:1px 8px;font-size:11px}.stage-chip:hover{border-color:var(--ink);color:var(--ink)}.table-scroll{max-width:100%;overflow-x:auto}.history th,.history td{white-space:nowrap}.history td.left{white-space:normal;text-align:left;min-width:8em;font-size:13px}.history tr.current{background:var(--hat-soft)}.mini-stamp{width:26px;height:26px;font-family:var(--f-display);border:2px solid;border-radius:50%;place-items:center;font-size:15px;font-weight:400;display:inline-grid}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.btn.small{border-width:1.5px;padding:5px 12px;font-size:13px}.toolbar{flex-wrap:wrap;align-items:center;gap:8px 12px;display:flex}.dex-btn.on{background:var(--hat);color:var(--hat-ink)}.challenge-bar{border:1.5px dashed var(--line-strong);background:var(--surface);border-radius:16px;flex-wrap:wrap;flex:320px;align-items:center;gap:6px 10px;min-width:0;padding:8px 12px;font-size:14px;display:flex}.challenge-bar.free{border-style:solid;border-color:var(--line);color:var(--muted);flex:0 auto}.challenge-title{align-items:center;gap:6px;display:flex}.stars{color:var(--warn);letter-spacing:1px}.goal-chips{flex-wrap:wrap;flex:200px;gap:4px;min-width:0;margin:0;padding:0;list-style:none;display:flex}.goal-chips li{background:var(--surface-2);color:var(--muted);border-radius:999px;padding:1px 8px;font-size:12px}.goal-chips li.ok{background:var(--good-bg);color:var(--good)}.goal-chips li.no{background:var(--bad-bg);color:var(--bad)}.sheet.wide{max-width:760px}.challenge-list{grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:10px;margin:0;padding:0;list-style:none;display:grid}.list-title{font-family:var(--f-display);margin:18px 0 8px;font-size:17px;font-weight:400}.challenge-card{border:1px solid var(--line);background:var(--surface-2);border-radius:16px;flex-direction:column;gap:6px;padding:12px 14px;display:flex}.challenge-card.active{border:2px solid var(--hat)}.challenge-card p{margin:0;font-size:14px}.challenge-card .btn{align-self:flex-start;margin-top:auto}.challenge-top{align-items:center;gap:6px;display:flex}.challenge-top h3{margin:0;font-size:16px}.done-badge{background:var(--good-bg);color:var(--good);border-radius:999px;margin-left:auto;padding:1px 8px;font-size:12px;font-weight:700}.goal-list{margin:0;padding-left:18px;font-size:13px}.challenge-card .hint{color:var(--muted);flex-wrap:wrap;align-items:center;gap:4px 6px;font-size:12px;display:flex}.challenge-result{border:2px solid var(--line);border-radius:18px;padding:14px 16px}.challenge-result.passed{border-color:var(--good);background:var(--good-bg)}.challenge-result.failed{border-color:var(--warn);background:var(--warn-bg)}.challenge-result h2{font-family:var(--f-display);margin:0 0 6px;font-size:20px;font-weight:400}.challenge-result ul{margin:0;padding:0;font-size:14px;list-style:none}.challenge-result .ok{color:var(--good)}.challenge-result .no{color:var(--bad)}.challenge-result p{flex-wrap:wrap;align-items:center;gap:4px 8px;margin:8px 0 0;font-size:13px;display:flex}.dex{flex-direction:column;gap:20px;display:flex}.dex-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;display:flex}.dex-head h2{font-family:var(--f-display);margin:0;font-size:32px;font-weight:400}.dex-head p:last-child{max-width:60ch;color:var(--muted);margin:4px 0 0}.dex-section h3{font-family:var(--f-display);align-items:center;gap:8px;margin:0 0 10px;font-size:21px;font-weight:400;display:flex}.dex-section .num{background:var(--hat);width:26px;height:26px;color:var(--hat-ink);font-family:var(--f-body);border-radius:50%;place-items:center;font-size:13px;font-weight:700;display:grid}.dex-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));gap:10px;margin:0;padding:0;list-style:none;display:grid}.dex-card{border:1px solid var(--line);background:var(--surface);text-align:left;cursor:pointer;border-radius:16px;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:10px;width:100%;height:100%;padding:10px 12px 10px 8px;display:grid}.dex-card:hover{border-color:var(--line-strong)}.dex-text{flex-direction:column;min-width:0;line-height:1.4;display:flex}.dex-text small{color:var(--muted);font-size:12px}.dex-text span{color:var(--muted);margin-top:2px;font-size:13px}.dex-mark{background:var(--hat);color:var(--hat-ink);border-radius:999px;align-self:start;padding:0 7px;font-size:11px;font-weight:700}.dex-mark.on{background:var(--good-bg);color:var(--good)}.chat article{flex-direction:column;gap:10px;display:flex}.chat .muted.small{font-size:13px}.persona-tags{flex-wrap:wrap;gap:4px;margin:0;padding:0;list-style:none;display:flex}.persona-tags li{border-radius:999px;padding:1px 9px;font-size:13px}.persona-tags .good{background:var(--good-bg);color:var(--good)}.persona-tags .bad{background:var(--bad-bg);color:var(--bad)}.ai-settings{border:1px solid var(--line);background:var(--surface-2);border-radius:16px;padding:10px 14px}.ai-settings summary{cursor:pointer;font-weight:700}.ai-settings[open] summary{margin-bottom:8px}.ai-settings .hint{color:var(--muted);margin:8px 0 0;font-size:13px;line-height:1.5}.ai-fields{flex-direction:column;gap:8px;margin-top:8px;display:flex}.ai-fields label{flex-direction:column;gap:2px;font-size:14px;font-weight:700;display:flex}.ai-fields label.inline{flex-direction:row;align-items:center;gap:8px;font-weight:400}.ai-fields input:not([type=checkbox]),.chat-form textarea{border:1.5px solid var(--line-strong);background:var(--surface);width:100%;min-width:0;color:var(--ink);font:inherit;border-radius:12px;padding:8px 12px;font-weight:400}.ai-fields input[type=checkbox]{width:18px;height:18px;accent-color:var(--hat)}.model-row{flex-wrap:wrap;align-items:flex-end;gap:8px;display:flex}.model-row label{flex:220px}.model-row .btn{margin-bottom:4px}.quick{scrollbar-width:thin;gap:6px;padding-bottom:4px;display:flex;overflow-x:auto}.quick-btn{border:1.5px solid var(--line-strong);background:var(--surface);text-align:left;cursor:pointer;border-radius:14px;flex-direction:column;flex:none;align-items:flex-start;max-width:190px;padding:6px 12px;font-size:13px;line-height:1.4;display:flex}.quick-btn:hover:not(:disabled){border-color:var(--ink)}.quick-btn:disabled{opacity:.45;cursor:not-allowed}.quick-btn small{color:var(--muted);font-size:11px}.chat-log{background:var(--surface-2);border-radius:16px;flex-direction:column;gap:8px;min-height:140px;max-height:42dvh;margin:0;padding:10px;list-style:none;display:flex;overflow-y:auto}.chat-log li{align-items:flex-end;gap:6px;display:flex}.chat-log li.empty{align-self:center;margin:auto 0;font-size:14px}.chat-log p{white-space:pre-wrap;overflow-wrap:anywhere;border-radius:16px;max-width:min(85%,52ch);margin:0;padding:8px 12px}.chat-log .user{justify-content:flex-end}.chat-log .user p{background:var(--hat);color:var(--hat-ink);border-bottom-right-radius:4px}.chat-log .assistant p{background:var(--surface);border:1px solid var(--line);border-bottom-left-radius:4px}.chat-log .mochi-icon{flex:none}.chat-error{background:var(--bad-bg);color:var(--bad);border-radius:12px;margin:0;padding:8px 12px;font-size:14px}.chat-form{flex-direction:column;gap:8px;display:flex}.chat-form textarea{resize:vertical;font-size:16px;line-height:1.5}.chat-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.chat-actions .link{margin-left:auto}.chat .sheet-close{margin-top:4px}
