:root{--panel:#194e42;--panel-soft:#2e6855;--panel-edge:#93ba8e;--panel-text:#f0f5df;--panel-muted:#c3d9bb}
/* The domain's green carries every UI surface, in daylight and at night. */
.intro,.speech,.catch-card,.chapter-pill,.toast,dialog,.loading,.unavailable,.save-warning{background:var(--panel);color:var(--panel-text);border-color:var(--panel-edge)}
.intro{padding:24px;border:1px solid var(--panel-edge);border-radius:28px;box-shadow:0 10px 35px #103b3440}
.intro h1,.intro h1 em,.intro>p,.speech p,.catch-card h2,dialog h2{color:var(--panel-text);text-shadow:none}
.intro-kicker,.intro>small,.speaker,.eyebrow,.catch-card p,.chapter-pill small,.bag-intro,.bag-entry p,.save-note{color:var(--panel-muted)}
.intro-kicker span,.live-dot{background:#a8d18c}
.glass-icon,body.night .glass-icon,.dialog-close,.soft-button,.bag-entry button,.collection>div{background:var(--panel-soft);color:var(--panel-text);border-color:var(--panel-edge)}
.collection,.bag-entry{border-color:#6b9777}
.collection .unseen{opacity:.65}
.toast{box-shadow:0 4px 18px #103b3440}
.speech{left:0;top:0;right:auto;bottom:auto;width:min(270px,calc(100% - 24px));padding:9px 11px;border:1.5px solid var(--panel-edge);border-radius:19px 21px 18px 20px;box-shadow:0 3px 0 #123d3450,0 7px 16px #103b3420;backdrop-filter:none;will-change:transform;display:grid;grid-template-columns:minmax(0,1fr) 36px;column-gap:5px;row-gap:3px}
.speech[data-speaker="hero"]{border-radius:21px 18px 20px 19px}
.speech[data-placement="waiting"]{visibility:hidden;pointer-events:none}
.speech .speaker{grid-column:1/-1;font-size:8px;letter-spacing:1.3px}
.speaker:before{background:#b9d395}
.speech p{grid-column:1;grid-row:2;font:18px/1.28 'Trebuchet MS',Arial,sans-serif;margin:0;align-self:center}
.speech-next{grid-column:2;grid-row:2;align-self:end;width:44px;height:44px;min-height:44px;display:grid;place-items:center;padding:0;margin:0 -4px -4px;border:0;border-radius:6px;background:transparent;color:#d4e9b4;appearance:none;-webkit-appearance:none;-webkit-tap-highlight-color:transparent;outline:none;box-shadow:none}
.speech-next svg{width:20px;height:20px}
.speech-next:hover,.speech-next:active{background:transparent;color:#f0f5df}
.speech-next:focus:not(:focus-visible){outline:none;box-shadow:none}
.speech-next:focus-visible{outline:2px solid #93ba8e;outline-offset:-3px;background:transparent}
.speech:before,.speech:after{content:'';position:absolute;left:var(--tail-x,50%);top:auto;right:auto;width:0;height:0;background:none;transform:translateX(-50%);border:8px solid transparent;border-bottom:0;border-top:14px solid var(--panel-edge);bottom:-14px}
.speech:after{border-width:6px;border-top:11px solid var(--panel);bottom:-10px}
.speech.speech-letter{left:50%;top:24%;width:min(365px,calc(100% - 32px));transform:translateX(-50%);padding:18px;border-radius:22px;display:block}
.speech-letter:before,.speech-letter:after{display:none}
.speech-letter p{font:19px/1.45 Georgia;margin-top:8px}
.speech-letter .speech-next{margin:2px -4px -4px auto}
@media(max-width:350px){.speech{width:260px}.intro{padding:20px}}
@media(min-width:850px){.intro{max-width:425px}.intro h1{font-size:86px}.intro-kicker{font-size:9px}}
@media(prefers-reduced-motion:reduce){.speech{will-change:auto}}

.camp-tray.rest.next-chapter .camp-back{display:block}

.bag-wallet{padding:12px;border-radius:12px;background:var(--panel-soft);color:var(--panel-text);font-size:14px}
.bag-entry{display:block}.bag-actions{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}.bag-actions button{min-height:44px;font-size:13px}.bag-actions button:first-child{background:#b8d58e;color:#193f32;border-color:#b8d58e}
