body.reading{--paper:#f0ecdf;--panel:#e1e2d4;--ink:#253c32;--muted:#52665b;--line:#a3b09e;--accent:#546e50;--soft:#e1e3d8;background:var(--paper);color:var(--ink);transition:background-color 1.2s ease,color 1.2s ease}
body.reading.ready{--paper:#d5d9ce}
body.reading.ready[data-step=audio]{--paper:#c3cdbe;--panel:#d1d9ca}
body.reading.ready[data-step=images]{--paper:#adbda9;--panel:#bfccb9}
body.reading.ready[data-step=room]{--paper:#8fa98f;--panel:#acc0a6;--ink:#173b29;--muted:#31583e;--line:#638b66}
body.reading.ready[data-step=ending]{--paper:#243a31;--panel:#2e493c;--ink:#f0f0de;--muted:#c2cdb7;--line:#536f5b;--accent:#d8b280;--soft:#355341;color-scheme:dark}
body.reading main.wrap{max-width:960px;padding-top:58px}
body.reading h1{font-size:clamp(38px,6vw,68px);line-height:1.08;max-width:840px}
body.reading h2{font-size:29px}
body.reading .lead{max-width:740px;font-size:19px;line-height:1.7}
body.reading .reading-note{padding:24px 0 24px 25px;border-left:3px solid var(--accent);margin:28px 0}
body.reading .reading-note p{font-size:20px;line-height:1.7}
body.reading .progress{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:35px}
body.reading .progress span{padding:8px 12px;border:1px solid var(--line);font:11px monospace;border-radius:3px}
body.reading .progress .done{background:var(--ink);color:var(--paper)}
body.reading .source-link{font-size:15px;display:inline-flex;align-items:center;gap:8px}
body.reading .clue-block{font:23px/1.7 Georgia,serif;border-left:2px solid var(--accent);padding-left:22px;margin:28px 0}
body.reading .window-table{max-width:600px;border-collapse:collapse;width:100%;margin:18px 0}
body.reading .window-table td,body.reading .window-table th{text-align:left;border-bottom:1px solid var(--line);padding:9px 12px;font-size:14px}
body.reading .answer-form{max-width:600px;margin-top:28px}
body.reading .answer-form label{display:block;margin-bottom:9px}
body.reading .answer-form input{font:23px monospace;letter-spacing:2px;max-width:100%;width:100%;padding:14px;border:1px solid var(--line);border-radius:4px;background:var(--paper);color:var(--ink)}
body.reading .feedback{min-height:1.8em;font-size:14px;line-height:1.7;margin-top:15px}
body.reading .hints{margin-top:25px;max-width:760px}
body.reading .hints details{border-bottom:1px solid var(--line);padding:14px 0}
body.reading .hints summary{cursor:pointer}
body.reading .hints p{font-size:14px;line-height:1.75;margin-top:12px}
body.reading .step-section{padding:25px 0;border-bottom:1px solid var(--line)}
body.reading .step-section h2{margin-bottom:12px}
body.reading .ending-text{max-width:740px;margin:auto}
body.reading .ending-text p{font-size:18px;line-height:1.9;margin:20px 0}
body.reading .ending-text h2{margin-top:38px}
body.reading .ending-text .quote{font-size:29px}
body.reading .completion{padding:24px;border:1px solid var(--line);border-radius:5px;background:var(--panel);margin:24px 0}
body.reading .address-box{border:1px solid var(--line);padding:25px;background:var(--panel);margin:25px 0}
body.reading .address-box address{font-style:normal;font-size:22px;line-height:1.8;overflow-wrap:anywhere}
body.reading .safety-note{border:1px solid var(--line);padding:20px;font:13px/1.8 Arial,sans-serif;background:var(--soft);margin:16px 0}
body.reading .share-panel{margin:28px 0;border-top:1px solid var(--line);padding-top:24px}
body.reading #share-copy{width:100%;min-height:104px;padding:13px;resize:vertical;background:var(--panel);color:var(--ink);border:1px solid var(--line);font:14px/1.6 Arial,sans-serif}
body.reading .footer{margin-top:28px}
body.reading .button.accent,body.reading .button.primary{background:var(--ink);color:var(--paper)}
body.reading[data-step=ending] .button.primary{background:#e3c59f;color:#22392b}
body.reading button:focus-visible,body.reading a:focus-visible,body.reading summary:focus-visible,body.reading input:focus-visible{outline:3px solid var(--accent);outline-offset:4px}
body.reading .notice{max-width:760px}
body.reading .back-links{margin-top:30px;display:flex;gap:15px;flex-wrap:wrap}
body.reading .status-title{font-size:15px;color:var(--muted)}
body.reading .finish-actions{margin:25px 0}
body.reading .fine{line-height:1.75}
body.reading .button:disabled{opacity:.5;cursor:default}
@media (max-width:650px){body.reading main.wrap{padding-top:28px}
body.reading .lead{font-size:17px}
body.reading .reading-note{padding-left:18px}
body.reading .reading-note p,body.reading .clue-block{font-size:19px}
body.reading .document{padding:20px}
body.reading .progress span{font-size:10px;padding:6px 8px}
body.reading .ending-text p{font-size:16px}
body.reading .address-box address{font-size:20px}
body.reading .nav{gap:12px}
body.reading .nav a{font-size:12px}
body.reading .source-link{font-size:14px}
body.reading .window-table td{padding:9px 7px}
body.reading .wrap{width:calc(100% - 32px)}}
@media (prefers-reduced-motion:reduce){body.reading{transition:none!important}
body.reading *{scroll-behavior:auto!important}}
@media  print{body.reading{background:white!important;color:black!important}
body.reading .top,body.reading .footer,body.reading .hints,body.reading .share-panel,body.reading .finish-actions{display:none}
body.reading .ending-text{max-width:none}
body.reading .address-box,body.reading .safety-note,body.reading .completion{color:black;background:white}}
/* v8: clue first, optional help second; a short ending. */
body.reading .riddle{max-width:720px;font-size:clamp(22px,3.2vw,29px);line-height:1.65;margin:34px 0}
body.reading .hints{margin-top:40px}body.reading .hints a{text-underline-offset:3px}
body.reading .ending-intro{border:0;background:transparent;padding:0;margin:0 0 28px}
body.reading .ending-text{max-width:none;margin:0}body.reading .story-paragraph{max-width:820px;font-size:18px;line-height:1.85}
body.reading .creator-credit{font-size:15px;line-height:1.65;color:var(--muted);margin:20px 0 32px}
body.reading .share-panel{margin-top:32px}body.reading .share-panel h2{margin-top:10px}
body.reading .ending-footnote{font-size:12px;max-width:750px;margin-top:35px}
@media(max-width:650px){body.reading .story-paragraph{font-size:16px}body.reading .creator-credit{font-size:14px}}
