:root{color-scheme:dark;--bg:#0c1518;--panel:#101d20;--text:#e6e5db;--muted:#a3b0ae;--gold:#cbb878;--line:#344444;--field:#101d20;--hover:#1d3033;--serif:Georgia,'Times New Roman',serif;--sans:'Segoe UI',Arial,sans-serif}
*{box-sizing:border-box}html{min-height:100%;scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--sans);transition:background .7s,color .7s}body[data-theme="dawn"]{color-scheme:light;--bg:#e9e6dc;--panel:#f5f2e8;--text:#273331;--muted:#586764;--gold:#796024;--line:#b8c2b6;--field:#f6f3ea;--hover:#deded0}body[data-theme="hell"]{--bg:#170e0d;--panel:#261714;--text:#eaded3;--muted:#c1a293;--gold:#e0aa76;--line:#5c3730;--field:#251814;--hover:#422721}button,input{font:inherit}button,a{touch-action:manipulation}button{color:inherit;cursor:pointer;background:none;border:1px solid transparent;border-radius:3px;padding:9px 13px;transition:background .15s,border-color .15s}button:hover{background:var(--hover)}button:disabled{opacity:.45;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--gold);outline-offset:4px}a{color:var(--gold);text-underline-offset:4px}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;left:10px;top:-90px;z-index:100;background:var(--panel);padding:14px}.skip-link:focus{top:10px}.grain{pointer-events:none;position:fixed;inset:0;z-index:-1;background-image:radial-gradient(ellipse at 65% 0,rgba(53,86,81,.18),transparent 60%)}
.masthead{height:86px;max-width:1440px;margin:auto;padding:0 5%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:20px}.wordmark{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--text);font-family:var(--serif);font-size:20px;letter-spacing:.03em}.wordmark svg{color:var(--gold);flex:none}.masthead nav{display:flex;gap:3px;font-size:13px}.masthead nav button{padding:9px 11px}.quiet{color:var(--muted)}.eyebrow{text-transform:uppercase;letter-spacing:.16em;font-size:11px;font-weight:600;color:var(--gold);line-height:1.6;margin:0 0 17px}.primary{background:var(--gold);color:var(--bg);font-weight:600;border:1px solid var(--gold);padding:14px 21px;display:inline-flex;gap:35px;align-items:center;justify-content:space-between}.primary:hover{background:var(--text);color:var(--bg);border-color:var(--text)}.secondary{border:1px solid var(--line);padding:14px 20px}.text-button{color:var(--gold);padding:5px 0;border-radius:0;text-decoration:underline;text-underline-offset:5px;font-size:13px}.text-button:hover{background:transparent;color:var(--text)}
.title-screen{position:relative;max-width:1440px;min-height:calc(100vh - 86px);margin:auto;overflow:hidden;padding:80px 8% 100px}.title-copy{position:relative;z-index:2;max-width:660px}.title-copy h1{font-family:var(--serif);font-weight:400;font-size:clamp(58px,6.8vw,102px);letter-spacing:-.055em;line-height:1.02;margin:28px 0 28px}.title-copy h1 em{font-weight:400;color:var(--gold)}.tagline{font-family:var(--serif);font-size:19px;line-height:1.8;color:#b7c4bd;margin:0 0 34px}.title-actions{display:flex;flex-wrap:wrap;gap:12px}.title-note{font-size:12px;color:var(--muted);line-height:1.9;margin:25px 0 14px}.title-bottom{position:absolute;bottom:28px;left:8%;right:8%;display:flex;justify-content:space-between;gap:30px;color:#81918b;letter-spacing:.14em;font-size:9px;line-height:1.7}.title-art{position:absolute;inset:0;overflow:hidden;pointer-events:none}.title-art:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,var(--bg) 5%,transparent 100%)}.tower{position:absolute;right:11%;height:410px;width:154px;bottom:17%;filter:drop-shadow(0 0 40px rgba(166,182,124,.05))}.island-silhouette{position:absolute;right:-11%;bottom:13%;width:60%;height:115px;background:#0a1114;border-radius:80% 60% 0 0;transform:rotate(-3deg)}.sea-line{position:absolute;right:-5%;left:20%;bottom:9%;height:15%;background:repeating-linear-gradient(0deg,transparent 0 18px,#25433c22 19px 20px,transparent 21px 30px);transform:skewY(-3deg)}.distant-beam{position:absolute;right:13%;bottom:calc(17% + 330px);width:75%;height:200px;transform:rotate(-12deg);transform-origin:100% 60%;background:linear-gradient(270deg,#dbd5a229,transparent);clip-path:polygon(100% 55%,0 0,0 100%);filter:blur(1px)}
.game-layout{max-width:1280px;margin:0 auto;padding:53px 5% 72px;display:grid;grid-template-columns:210px minmax(0,1fr);gap:65px}.bearings{padding:8px 0;align-self:start;position:sticky;top:32px}.bearings h2{font-family:var(--serif);font-weight:400;font-size:26px;line-height:1.25;margin:0 0 16px}.objective{font-size:13px;line-height:1.8;color:var(--muted);margin:0}.aside-rule{height:1px;background:var(--line);margin:27px 0}.inventory-list{padding:0;list-style:none;margin:0;font-size:13px;line-height:1.7}.inventory-list li{padding:4px 0;color:var(--text)}.inventory-list li:before{content:'·';color:var(--gold);margin-right:9px}.inventory-list .empty{font-style:italic;color:var(--muted)}.choice-progress{padding:0;list-style:none;font-size:12px;color:var(--muted);line-height:1.7;margin:0 0 22px}.choice-progress li{display:flex;align-items:center;gap:9px;padding:4px 0}.choice-dot{width:7px;height:7px;border:1px solid var(--muted);border-radius:50%;flex:none}.choice-progress .done .choice-dot{background:var(--gold);border-color:var(--gold)}.save-note{font-size:10px;color:var(--muted);line-height:1.7;margin:25px 0 0}.reader-column{min-width:0}.reading{outline:none}.scene-meta{font-size:10px;color:var(--muted);display:flex;justify-content:space-between;gap:10px;text-transform:uppercase;letter-spacing:.16em;padding:10px 0 24px;border-bottom:1px solid var(--line);margin-bottom:29px}.passage-text{font-family:var(--serif);font-size:19px;line-height:1.86;letter-spacing:.003em;min-height:200px}.passage-text p{margin:0 0 23px;white-space:pre-line}.passage-text p:last-child{margin-bottom:0}.passage-text .passage-title{font-family:var(--serif);font-weight:400;font-size:33px;line-height:1.3;margin:0 0 27px;color:var(--gold)}.advance-area{display:flex;align-items:center;justify-content:space-between;margin-top:32px;border-top:1px solid var(--line);padding-top:25px}.small-note{font-size:11px;color:var(--muted)}.interaction{margin-top:32px;padding-top:25px;border-top:1px solid var(--line)}.interaction .eyebrow{margin-bottom:14px}.action-buttons{display:flex;flex-wrap:wrap;gap:9px;margin-bottom:22px}.action-buttons button{border:1px solid var(--line);padding:10px 14px;font-size:12px;background:var(--panel)}.action-buttons button:hover{border-color:var(--gold);background:var(--hover)}.choice-buttons{display:grid;gap:11px;margin-bottom:21px}.choice-buttons button{text-align:left;padding:17px 19px;border:1px solid var(--line);background:var(--panel);font-size:14px;line-height:1.65;display:flex;align-items:start;gap:14px}.choice-buttons button:hover{border-color:var(--gold);background:var(--hover)}.choice-number{color:var(--gold);font-family:var(--serif);font-size:19px;line-height:1.25;min-width:16px}.command-form{display:flex;align-items:center;gap:10px;padding:5px 7px 5px 17px;background:var(--field);border:1px solid var(--line);border-radius:3px}.prompt-mark{font-family:monospace;color:var(--gold);font-size:20px}.command-form input{border:0;background:transparent;color:var(--text);min-width:0;width:100%;padding:12px 0;font-family:var(--sans);font-size:14px}.command-form input:focus-visible{outline:none}.command-form:focus-within{border-color:var(--gold);outline:1px solid var(--gold);outline-offset:2px}.command-form input::placeholder{color:var(--muted);opacity:.8}.command-form button{flex:none;font-size:12px;color:var(--gold)}.command-hint{font-size:10px;line-height:1.7;color:var(--muted);margin:12px 0 0}.ending-art{margin:0 0 27px}.ending-art img{width:100%;height:auto;display:block;border:1px solid var(--line);border-radius:2px}.scripture-links{font-family:var(--sans);border-top:1px solid var(--line);margin-top:25px;padding-top:18px;font-size:12px;line-height:1.8}.scripture-links a{display:inline-block;margin:3px 15px 3px 0}.ending-controls{display:flex;gap:10px;flex-wrap:wrap;margin-top:32px;padding-top:25px;border-top:1px solid var(--line)}.ending-controls button{border:1px solid var(--line);font-size:12px}
.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%,20px);max-width:90vw;background:var(--text);color:var(--bg);padding:12px 20px;border-radius:4px;font-size:13px;z-index:100;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s}.toast.visible{opacity:1;transform:translate(-50%,0)}dialog{background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:7px;width:min(760px,calc(100vw - 28px));max-height:85vh;padding:0;box-shadow:0 24px 90px #0008}dialog::backdrop{background:#03090ac7;backdrop-filter:blur(4px)}.dialog-header{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:22px 26px;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--panel);z-index:2}.dialog-header h2{font-family:var(--serif);font-weight:400;font-size:25px;margin:0}.dialog-header button{font-size:12px;color:var(--muted)}.dialog-content{padding:25px 28px;max-height:68vh;overflow:auto;line-height:1.8;font-size:14px}.dialog-content p{margin-top:0}.dialog-content h3{font-family:var(--serif);font-weight:400;font-size:21px;color:var(--gold)}.dialog-content button{border:1px solid var(--line);margin:7px 7px 7px 0}.dialog-content .primary{border-color:var(--gold)}.dialog-content details{border-bottom:1px solid var(--line);padding:12px 0}.dialog-content summary{cursor:pointer;color:var(--gold)}.dialog-content details p{font-family:var(--serif);white-space:pre-line;margin-top:15px;font-size:16px}.dialog-content code{color:var(--gold);font-size:12px;background:var(--bg);padding:2px 5px;border-radius:2px}.map-svg{width:100%;height:auto;display:block}.map-svg line{stroke:var(--line);stroke-width:2}.map-svg rect{fill:var(--bg);stroke:var(--line)}.map-svg .visited rect{stroke:var(--gold)}.map-svg .current rect{fill:var(--gold);stroke:var(--gold)}.map-svg text{fill:var(--muted);font-family:var(--sans);font-size:12px}.map-svg .visited text{fill:var(--text)}.map-svg .current text{fill:var(--bg);font-weight:600}.import-label{display:block;margin-top:16px}.import-label input{display:block;margin-top:10px;max-width:100%;font-size:12px}.no-script{padding:30px;line-height:1.7}.command-echo{font-family:var(--sans);font-size:12px;color:var(--muted);border-left:2px solid var(--gold);padding-left:12px;margin-bottom:20px}
@media(min-width:1450px){.title-screen{padding-top:100px}.game-layout{gap:86px}}
@media(max-width:900px){.game-layout{gap:34px;grid-template-columns:175px minmax(0,1fr)}.masthead{padding:0 4%}.masthead nav{gap:0}.masthead nav button{padding:9px 8px}.title-screen{padding-top:65px}.tower{right:3%;opacity:.7}.title-art:after{background:linear-gradient(90deg,var(--bg) 0%,transparent 150%)}.title-bottom{font-size:8px}.passage-text{font-size:18px}.command-form input{font-size:13px}.command-hint{font-size:11px}}
@media(max-width:660px){.masthead{height:auto;min-height:72px;padding:18px 5%;align-items:start;flex-wrap:wrap;gap:12px}.wordmark{font-size:18px}.wordmark svg{height:26px}.masthead nav{width:100%;justify-content:space-between;border-top:1px solid var(--line);padding-top:8px}.masthead nav button{padding:7px 8px;font-size:12px}.title-screen{padding:53px 7% 115px;min-height:calc(100svh - 72px)}.title-copy h1{font-size:65px}.tagline{font-size:17px}.title-note{max-width:280px}.title-bottom{flex-direction:column;gap:10px;left:7%;right:7%;bottom:27px}.tower{height:300px;width:113px;bottom:11%;right:-1%;opacity:.55}.distant-beam{bottom:calc(11% + 240px);right:3%;width:110%}.island-silhouette{bottom:7%;width:80%;height:80px}.title-actions{align-items:stretch;flex-direction:column;max-width:300px}.game-layout{display:block;padding:27px 6% 45px}.bearings{position:static;padding:0 0 20px;border-bottom:1px solid var(--line);display:grid;grid-template-columns:1fr auto;column-gap:15px}.bearings>.eyebrow:first-child{grid-column:1/-1;margin-bottom:9px}.bearings h2{font-size:23px;margin-bottom:8px;grid-column:1/-1}.objective{grid-column:1/-1;font-size:12px}.bearings>.aside-rule,.bearings>.eyebrow:not(:first-child),.choice-progress,.bearings>.save-note{display:none}.inventory-list{font-size:11px;grid-column:1/-1;display:flex;flex-wrap:wrap;gap:0 10px;margin-top:12px}.inventory-list li{padding:1px 0}.bearings>.text-button{margin-top:12px;text-align:left}.scene-meta{padding-top:22px;margin-bottom:22px;font-size:9px}.passage-text{font-size:18px;line-height:1.8;min-height:150px}.passage-text p{margin-bottom:20px}.advance-area .small-note{display:none}.advance-area .primary{width:100%}.action-buttons{gap:8px}.action-buttons button{padding:10px 12px;min-height:43px}.command-form input{font-size:14px}.command-form button{font-size:0;padding:8px}.command-form button span{font-size:20px}.dialog-header{padding:18px}.dialog-content{padding:20px}.ending-controls button{min-height:44px}.title-copy .eyebrow{font-size:10px}}
.choice-buttons{list-style:none;padding:0}.choice-option{display:flex;align-items:flex-start;gap:14px;padding:14px 0;border-bottom:1px solid var(--line);font-size:14px;line-height:1.7}.choice-option:last-child{border-bottom:0}
.map-svg{min-width:600px}.map-svg line{stroke:var(--muted)}
.game-layout{max-width:1600px;grid-template-columns:190px minmax(0,1fr) 230px;gap:38px}.command-reference{min-width:0;align-self:start;position:sticky;top:28px;padding-left:24px;border-left:1px solid var(--line);font-size:12px;line-height:1.6}.command-reference h2{font-family:var(--serif);font-size:26px;font-weight:400;margin:0 0 12px}.command-reference h3,.command-reference summary{font-size:12px;color:var(--gold);font-weight:600}.command-reference h3{margin:24px 0 12px}.reference-note{color:var(--muted);font-size:11px;line-height:1.7}.reference-list{list-style:none;padding:0;margin:0 0 22px}.reference-list li{padding:9px 0;border-bottom:1px solid var(--line)}.reference-list code{display:block;color:var(--gold);font-size:11px;overflow-wrap:anywhere}.reference-list span{display:block;color:var(--muted);margin-top:3px;font-size:11px}.command-reference details{padding:13px 0;border-top:1px solid var(--line)}.command-reference summary{cursor:pointer;min-height:28px}.reference-basics{margin:10px 0 0}.reference-basics dt{font-family:monospace;color:var(--text);font-size:11px;margin-top:12px}.reference-basics dd{color:var(--muted);font-size:11px;margin:3px 0 0}
@media(max-width:1100px) and (min-width:661px){.game-layout{grid-template-columns:160px minmax(0,1fr);gap:30px}.command-reference{grid-column:2;position:static;border-left:0;border-top:1px solid var(--line);padding:24px 0 0}}
@media(max-width:660px){.command-reference{position:static;border-left:0;border-top:1px solid var(--line);padding:24px 0 0;margin-top:28px}.reference-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px}}
.command-response{white-space:pre-line;margin-top:22px;padding:18px;border:1px solid var(--gold);background:var(--panel);font-size:14px;line-height:1.75}.return-passage{margin-top:18px}.exploration-guide{margin-top:25px;padding-top:20px;border-top:1px solid var(--line)}.exploration-guide .eyebrow{margin:18px 0 8px}.exploration-guide ul{margin:0;padding-left:20px;color:var(--muted);font-size:13px;line-height:1.8}.exploration-guide .command-hint{margin-top:0}
.masthead nav{flex-wrap:wrap}.masthead nav .save-progress{border-color:var(--gold);color:var(--gold)}
.command-reference{max-height:calc(100svh - 56px);overflow-y:auto;overscroll-behavior:contain;padding-right:8px}
@media(max-width:1100px){.command-reference{max-height:none;overflow:visible;padding-right:0}}
.progress-tools{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:28px;padding-top:22px;border-top:1px solid var(--line)}.progress-tools button{min-height:44px;font-size:13px}.progress-tools p{width:100%;margin:0;font-size:11px;line-height:1.7;color:var(--muted)}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
/* Keep gameplay inside the viewport; longer content uses page controls. */
html,body{height:100%;overflow:hidden}body{height:100svh;display:flex;flex-direction:column}.masthead{flex:none;width:100%;height:58px;min-height:58px;padding:8px 4%;gap:12px}.masthead nav button{padding:6px 8px;font-size:12px}main{flex:1;min-height:0;position:relative}.title-screen{height:100%;min-height:0;padding:clamp(24px,5vh,65px) 8% 55px}.title-copy h1{font-size:clamp(42px,6vw,88px);margin:18px 0}.title-note{margin-top:16px}.game-layout{height:100%;max-width:1700px;padding:18px 3%;gap:28px;grid-template-columns:175px minmax(0,1fr) 225px;overflow:hidden}.bearings{position:static;min-height:0;padding:0}.bearings h2{font-size:23px;margin-bottom:10px}.aside-rule{margin:17px 0}.bearings .eyebrow{margin-bottom:10px}.choice-progress{margin-bottom:12px}.save-note{margin-top:16px}.reader-column{height:100%;min-height:0;display:flex;flex-direction:column;gap:10px}.reading{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.scene-meta{flex:none;padding:3px 0 9px;margin-bottom:12px}.passage-text{flex:1;min-height:0;overflow:hidden;font-size:17px;line-height:1.6}.passage-text p{margin-bottom:12px}.passage-text .passage-title{font-size:25px;margin-bottom:12px}.ending-art{flex:none;margin-bottom:8px;height:clamp(70px,20vh,170px)}.ending-art img{height:100%;width:100%;object-fit:contain;border:0}.scripture-links{flex:none;margin-top:8px;padding-top:7px;font-size:10px}.scripture-links p{margin:0}.scripture-links a{margin:0 10px 0 0}.advance-area{flex:none;min-height:38px;margin:0;padding:0;border:0;justify-content:flex-start;gap:10px}.advance-area button{padding:8px 13px;min-height:36px;font-size:12px}.advance-area .small-note{margin-left:auto;font-size:10px}.interaction{flex:none;margin:0;padding:8px 0 0}.interaction .eyebrow{margin:0 0 5px}.choice-buttons{gap:3px;margin:0 0 6px}.choice-option{padding:3px 0;font-size:12px;line-height:1.4;gap:8px}.choice-number{font-size:15px}.command-form{padding:2px 5px 2px 12px}.command-form input{padding:8px 0;font-size:13px}.command-hint{margin:5px 0 0;font-size:10px;line-height:1.5}.exploration-guide{flex:none;margin:0;padding:6px 0 0}.exploration-guide #examine-guide{display:none}.exploration-guide .eyebrow{margin:0 0 2px;font-size:9px}.exploration-guide ul{display:flex;flex-wrap:wrap;gap:2px 16px;list-style:none;padding:0;font-size:11px;line-height:1.4}.progress-tools{display:none}.command-response{flex:none;margin:0;padding:8px 10px;font-size:12px;line-height:1.4}.return-passage{flex:none;align-self:flex-start;margin:0;padding:5px 10px;font-size:11px}.ending-controls{flex:none;margin:0;padding:5px 0 0;gap:5px}.ending-controls button{padding:5px 8px;min-height:30px;font-size:11px}.command-reference{height:100%;min-height:0;max-height:none;overflow:hidden;position:static;display:flex;flex-direction:column;padding:0 0 0 18px}.command-reference h2{font-size:24px;margin-bottom:10px}.command-tabs{display:flex;gap:3px;flex:none}.command-tabs button{font-size:11px;padding:5px 8px;border:1px solid var(--line)}.command-tabs button[aria-pressed=true]{color:var(--gold);border-color:var(--gold)}.reference-list{flex:1;min-height:0;overflow:hidden;margin:8px 0}.reference-list li{height:54px;padding:7px 0}.reference-list code{font-size:10px;line-height:1.3}.reference-list span{font-size:10px;line-height:1.3;margin-top:3px}.command-pagination{flex:none;display:flex;align-items:center;justify-content:space-between;font-size:11px;color:var(--muted)}.command-pagination button{padding:6px 10px;border:1px solid var(--line)}.command-reference .reference-note{flex:none;margin:7px 0 0;font-size:10px;line-height:1.4}#commands-toggle{display:none}
@media(max-height:700px){.game-layout{padding-block:12px}.bearings .aside-rule{margin:10px 0}.bearings .save-note{display:none}.scene-meta{margin-bottom:8px}.passage-text{font-size:16px;line-height:1.5}.passage-text p{margin-bottom:10px}.reader-column{gap:7px}.command-reference .reference-note{display:none}}
@media(max-width:1100px){.game-layout{grid-template-columns:minmax(0,1fr) 190px;gap:20px}.bearings{display:none}.command-reference{grid-column:auto;border-top:0;border-left:1px solid var(--line);padding:0 0 0 15px}}
@media(max-width:660px){.masthead{min-height:50px;height:auto;padding:7px 4%;gap:5px}.wordmark{font-size:15px}.wordmark svg{height:22px;width:17px}.masthead nav{padding-top:3px;gap:0;justify-content:flex-start}.masthead nav button{font-size:10px;padding:4px 6px;min-height:28px}#commands-toggle{display:block}.title-screen{padding:24px 7% 55px}.title-copy h1{font-size:48px}.tagline{font-size:15px;line-height:1.6;margin-bottom:20px}.title-actions{gap:8px}.title-actions button{padding:10px 15px}.title-note{font-size:11px}.title-bottom{bottom:12px;font-size:7px;gap:4px}.game-layout{display:block;padding:12px 5%}.reader-column{height:100%;gap:7px}.scene-meta{padding-top:0;margin-bottom:8px}.passage-text{font-size:16px;line-height:1.5}.advance-area .primary{width:auto}.advance-area .secondary{min-height:36px}.advance-area .small-note{display:none}.interaction .eyebrow{font-size:9px}.command-form input{font-size:16px;padding:6px 0}.command-form button span{font-size:17px}.command-hint{font-size:9px}.choice-option{font-size:11px}.exploration-guide ul{font-size:10px;gap:2px 9px}.command-reference{display:none}.show-commands .command-reference{display:flex;position:absolute;inset:10px 5%;height:auto;width:auto;z-index:10;background:var(--bg);border:1px solid var(--line);padding:16px}.command-reference .reference-list{display:block}.ending-controls button{font-size:10px;min-height:28px}.ending-art{height:95px}.scripture-links{font-size:9px}}
#command-response{display:none!important}#return-passage-button[hidden]{display:block!important;visibility:hidden}#return-passage-button{height:30px;min-height:30px}.command-tabs{gap:2px}.command-tabs button{padding:5px 6px;font-size:10px}.reference-list.command-replies li{height:115px;border:0;padding:8px 0}.command-replies code{display:none}.command-replies span{font-size:12px;line-height:1.5;white-space:pre-line;color:var(--text)}
@media(max-width:660px){.show-commands .command-reference{height:calc(100% - 20px)}}
#reference-back{flex:none;margin-top:5px;font-size:11px;padding:5px 8px}
@media(max-width:660px){.show-commands .command-reference{margin:0;top:10px;bottom:10px}}
/* Give the command reference more room; only the narrative scrolls. */
.game-layout{max-width:1600px;grid-template-columns:175px minmax(0,1fr) var(--commands-width,clamp(330px,29vw,440px))}.passage-text{overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scrollbar-width:thin;padding-right:12px}.command-reference h2{font-size:26px}.command-tabs button{font-size:12px;padding:6px 10px}.reference-list code,.reference-list span{font-size:12px;line-height:1.4}.command-reference .reference-note{font-size:11px}
@media(max-width:1100px){.game-layout{grid-template-columns:minmax(0,1fr) var(--commands-width,280px)}}
@media(max-width:660px){.game-layout{display:block}.passage-text{padding-right:8px}}
.passage-text{scroll-behavior:auto}.passage-text:focus-visible{outline:1px solid var(--gold);outline-offset:2px}

/* Keep the published release at the far right of the header in every view. */
.game-brand{display:flex;align-items:center;min-width:0;margin-right:auto}.release-number{flex:none;font-family:var(--sans);font-size:10px;letter-spacing:.08em;color:var(--gold);white-space:nowrap}
@media(max-width:660px){.masthead{display:grid;grid-template-columns:minmax(0,1fr) auto}.game-brand{grid-column:1;grid-row:1;margin-right:0}.release-number{grid-column:2;grid-row:1;justify-self:end;align-self:center;font-size:9px}.masthead nav{grid-column:1/-1;grid-row:2}}
.pane-resizer{position:absolute;inset:0 auto 0 0;width:12px;z-index:2;cursor:col-resize;touch-action:none;user-select:none;outline-offset:-2px}.pane-resizer::after{content:'';position:absolute;inset:0 auto 0 0;width:2px;background:var(--line)}.pane-resizer::before{content:'';position:absolute;top:calc(50% - 18px);left:3px;width:4px;height:36px;border-inline:1px solid var(--gold);opacity:.7}.pane-resizer:hover::after,.pane-resizer:focus-visible::after,.resizing-panes .pane-resizer::after{background:var(--gold)}.pane-resizer:focus-visible{outline:1px solid var(--gold)}.resizing-panes,.resizing-panes *{cursor:col-resize!important;user-select:none!important}
@media(min-width:661px){.command-reference{position:relative;top:auto}}
@media(max-width:660px){.pane-resizer{display:none}}
.mode-picker{border:0;padding:0;margin:0 0 18px;min-width:0;max-width:620px}.mode-picker legend{padding:0;margin-bottom:8px;color:var(--gold);font-size:11px;letter-spacing:.12em;text-transform:uppercase}.mode-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.mode-option{display:flex;align-items:flex-start;gap:8px;padding:10px;border:1px solid var(--line);border-radius:4px;cursor:pointer;background:var(--bg)}.mode-option:has(input:checked){border-color:var(--gold);background:var(--hover)}.mode-option:focus-within{outline:2px solid var(--gold);outline-offset:2px}.mode-option input{margin:3px 0 0;accent-color:var(--gold);flex:none}.mode-option strong{display:block;font-size:13px;font-weight:600}.mode-option small{display:block;color:var(--muted);font-size:11px;line-height:1.45;margin-top:4px}.mode-status{flex:none;margin:-5px 0 10px;font-size:10px;line-height:1.4;color:var(--muted)}.hint-keyword{background:transparent;color:#e1c869;font-weight:600;text-decoration:underline dotted;text-underline-offset:4px}body[data-theme="dawn"] .hint-keyword{color:var(--text);background:#f4db6980}
@media(max-width:660px){.mode-picker{margin-bottom:12px}.mode-options{gap:5px}.mode-option{padding:7px 5px;gap:5px}.mode-option strong{font-size:12px}.mode-option small{font-size:10px}.mode-picker legend{font-size:10px}}
@media(max-height:800px){.title-copy h1{font-size:clamp(38px,5vw,68px);margin:12px 0}.title-screen .tagline{margin-bottom:16px}.mode-option{padding-block:7px}.title-screen .title-note{margin-top:10px}}
.narration-controls{display:flex;align-items:center;gap:8px;flex:none;margin:0 0 9px;font-size:11px}.narration-controls button{padding:5px 9px;border:1px solid var(--line);color:var(--gold)}.narration-controls span{color:var(--muted)}.reply-audio-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.reply-dialog .dialog-header{flex-wrap:wrap}.reply-audio-actions button{flex:0 0 auto;white-space:nowrap;padding:6px 8px!important;font-size:11px!important}
.reply-dialog{position:fixed;inset:auto;margin:0;max-height:70svh;border-color:var(--gold)}.reply-dialog[open]{display:flex;flex-direction:column}.reply-dialog::backdrop{background:#03090a30;backdrop-filter:none}.reply-dialog .dialog-header{flex:none;position:static;padding:16px 20px}.reply-dialog .dialog-header button{color:var(--gold);border:1px solid var(--line)}.reply-content{min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:18px 22px;font-family:var(--serif);font-size:17px;line-height:1.65}.reply-content p{margin:0 0 16px;white-space:pre-line;overflow-wrap:anywhere}.reply-content p:last-child{margin-bottom:0}.reply-content .reply-command{font-family:var(--sans);font-size:11px;letter-spacing:.08em;color:var(--gold);text-transform:uppercase}

/* Reader preference applies to both the story and replies. */
.text-size-control{display:flex;align-items:center;gap:8px;flex:none;margin:0 0 9px;font-size:11px;color:var(--muted)}.text-size-control select{font:inherit;color:var(--text);background:var(--field);border:1px solid var(--line);border-radius:3px;padding:5px 8px}.text-size-control select:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.passage-text{font-size:var(--reading-font-size,17px)}.reply-content{font-size:var(--reading-font-size,17px)}
@media(max-height:700px),(max-width:660px){.passage-text{font-size:var(--reading-font-size,16px)}}

.reading-settings{display:flex;flex-wrap:wrap;align-items:center;gap:6px 18px;flex:none;margin-bottom:9px}.reading-settings .text-size-control{margin:0}
html[data-reading-background="paper"] .passage-text,html[data-reading-background="paper"] .reply-content{background:#f3ecdc;color:#111;padding:14px 16px;border-radius:3px}
html[data-reading-background="paper"] .passage-text .hint-keyword,html[data-reading-background="paper"] .reply-content .hint-keyword{color:#111;background:#f4db69}
html[data-reading-background="paper"] .reply-content .reply-command{color:#51451c}

.voice-control{min-width:0;flex:0 1 auto}.voice-control select{max-width:260px;min-width:0}.preview-voice{font-size:11px;padding:5px 8px;border:1px solid var(--line);color:var(--gold)}.voice-note{flex:none;margin:0 0 8px;font-size:10px;line-height:1.4;color:var(--muted)}.reply-voice-controls{flex:none;padding:8px 20px;border-bottom:1px solid var(--line)}.reply-voice-controls .text-size-control{margin:0}
@media(max-width:660px){.voice-control select{max-width:220px}.reading-settings{gap:6px 12px}.voice-note{font-size:9px}}

/* Keep every part of the adventure accessible on tablets and phones. */
.bearings{max-height:100%;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}
.bearings>div{min-width:0}.bearings .save-note{display:block}.mobile-story-link{display:none}
.story-word{cursor:pointer}.reference-list{--command-row-height:96px}.reference-list li{height:var(--command-row-height)}.reference-list .command-token{font:inherit;color:inherit;max-width:100%;min-height:36px;padding:4px 6px;margin-left:-6px;text-align:left;white-space:normal}.command-token:focus-visible{outline-offset:2px}
.ending-controls .primary{min-height:44px}
@media(pointer:coarse){.reference-list{--command-row-height:108px}.reference-list .command-token{min-height:44px}}
@media(min-width:661px) and (max-width:1100px){
  .game-layout{grid-template-rows:auto minmax(0,1fr);gap:16px 20px}
  .bearings{display:grid;grid-column:1/-1;grid-template-columns:1.2fr 1fr 1fr;gap:8px 20px;max-height:30svh;border-bottom:1px solid var(--line);padding:0 0 12px}
  .bearings .aside-rule{display:none}.bearings .eyebrow{margin:0 0 6px}.bearings h2{font-size:21px;margin-bottom:6px}.bearings .choice-progress{display:block;margin:0}.bearings .inventory-list{margin:0}
  .bearing-tools{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:12px}.bearings .save-note{display:block;margin:0}.bearings .text-button{font-size:12px}
  .reader-column,.command-reference{grid-row:2;min-width:0}
}
@media(max-width:660px), (max-width:1100px) and (max-height:600px){
  html{height:auto;overflow:auto;scroll-padding-top:112px}
  body{height:auto;min-height:100svh;overflow:visible;display:block}
  .masthead{height:auto;display:grid;grid-template-columns:minmax(0,1fr) auto;position:sticky;top:0;z-index:5;background:var(--bg)}.game-brand{grid-column:1;grid-row:1;margin-right:0}.release-number{grid-column:2;grid-row:1;justify-self:end}.masthead nav{grid-column:1/-1;grid-row:2;width:100%;justify-content:flex-start}.masthead nav button{min-height:36px}#commands-toggle{display:block}
  main{min-height:0}.title-screen{height:auto;min-height:calc(100svh - 100px);overflow:visible}.title-bottom{position:relative;inset:auto;margin-top:28px}
  .game-layout{height:auto;overflow:visible;padding:16px 5%;display:flex;flex-direction:column;gap:22px}
  .bearings{display:grid;align-self:stretch;width:100%;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;max-height:none;overflow:visible;border-bottom:1px solid var(--line);padding:0 0 16px}
  .bearing-location,.bearing-tools{grid-column:1/-1}.bearings .aside-rule{display:none}.bearings .eyebrow{display:block;margin:0 0 6px;font-size:10px}.bearings h2{margin:0 0 6px;font-size:23px}.bearings .objective{font-size:12px}
  .bearings .inventory-list{display:block;margin:0;font-size:12px}.bearings .choice-progress{display:block;margin:0;font-size:12px}.bearings .choice-progress li{padding:3px 0}.bearings .save-note{display:block;margin:6px 0 0}.bearings .text-button{margin:0;min-height:36px}
  .reader-column{height:auto;min-height:0}.reading{flex:none;overflow:visible}.passage-text{flex:none;min-height:160px;max-height:55svh;overflow-y:auto}.reading-settings{min-width:0}.voice-control select{max-width:min(220px,65vw)}
  .command-reference,.show-commands .command-reference{display:flex;position:relative;inset:auto;grid-column:auto;height:auto;max-height:none;width:100%;min-height:0;z-index:auto;overflow:visible;margin:0;padding:18px 0 0;border:0;border-top:1px solid var(--line);background:var(--bg);scroll-margin-top:112px}
  .pane-resizer{display:none}.command-reference .reference-list{flex:none;overflow:visible;display:block}.reference-list li{height:auto;min-height:54px}.command-tabs{flex-wrap:wrap}.command-tabs button{min-height:40px}.command-reference .reference-note{display:block}
  .mobile-story-link{display:block;align-self:flex-start;margin-top:14px;padding:10px 0;font-size:13px}.reply-voice-controls select{max-width:100%}
}

/* Story atmosphere lives behind the interface, never on top of the words.
   Palettes follow the setting; motion is limited to a single story event. */
html[data-atmosphere] body {
  isolation: isolate;
}

html[data-atmosphere] .grain {
  display: none;
}

#ambient-effects {
  position: fixed;
  inset: 0;
  z-index: -1;
  overflow: hidden;
  pointer-events: none;
  user-select: none;
  --ambient-light: 96, 145, 143;
  --ambient-texture-opacity: .20;
}

#ambient-effects > i {
  position: absolute;
  inset: 0;
  display: block;
  pointer-events: none;
}

.ambient-glow {
  background:
    radial-gradient(ellipse at 74% 9%, rgba(var(--ambient-light), .11), transparent 63%),
    radial-gradient(ellipse at 8% 100%, rgba(var(--ambient-light), .025), transparent 54%);
}

.ambient-texture {
  opacity: var(--ambient-texture-opacity);
  background:
    repeating-linear-gradient(0deg, transparent 0 3px, rgba(1, 8, 6, .19) 3px 4px),
    radial-gradient(rgba(193, 209, 187, .09) .6px, transparent .9px);
  background-size: auto, 5px 7px;
}

.ambient-cue {
  opacity: 0;
}

html:not([data-atmosphere="off"]) body[data-ambience="coast"]:not([data-theme="dawn"]):not([data-theme="hell"]) {
  --bg: #0b191d;
  --panel: #102024;
  --field: #102024;
  --hover: #1c3338;
  --line: #34484b;
  --text: #e8e9e2;
  --muted: #a6b6b4;
}

html:not([data-atmosphere="off"]) body[data-ambience="tower"]:not([data-theme="dawn"]):not([data-theme="hell"]) {
  --bg: #101c1a;
  --panel: #162421;
  --field: #14231f;
  --hover: #243731;
  --line: #3b4a43;
  --text: #e7e8df;
  --muted: #adb7ab;
}

html:not([data-atmosphere="off"]) body[data-ambience="below"]:not([data-theme="dawn"]):not([data-theme="hell"]) {
  --bg: #141b13;
  --panel: #1b2419;
  --field: #192217;
  --hover: #2b3826;
  --line: #414b37;
  --text: #e1e4d7;
  --muted: #afb7a1;
}

html:not([data-atmosphere="off"]) body[data-ambience="depth"]:not([data-theme="dawn"]):not([data-theme="hell"]) {
  --bg: #10160e;
  --panel: #182015;
  --field: #161e13;
  --hover: #273121;
  --line: #3b4631;
  --text: #dfe3d4;
  --muted: #afb7a0;
}

html:not([data-atmosphere="off"]) body[data-ambience="warm"]:not([data-theme="dawn"]):not([data-theme="hell"]) {
  --bg: #1c2118;
  --panel: #242b1e;
  --field: #22291b;
  --hover: #36402b;
  --line: #4d553e;
  --text: #eeeade;
  --muted: #bebdaa;
}

body[data-ambience="tower"] #ambient-effects {
  --ambient-light: 133, 157, 122;
  --ambient-texture-opacity: .25;
}

body[data-ambience="below"] #ambient-effects {
  --ambient-light: 146, 156, 88;
  --ambient-texture-opacity: .43;
}

body[data-ambience="depth"] #ambient-effects {
  --ambient-light: 127, 143, 75;
  --ambient-texture-opacity: .55;
}

body[data-ambience="warm"] #ambient-effects {
  --ambient-light: 208, 177, 103;
  --ambient-texture-opacity: 0;
}

/* Replies and quoted or emphasized words remain clear even at the lowest depth.
   Hint keywords retain the player's selected mode and its existing colors. */
html:not([data-atmosphere="off"]):not([data-reading-background="paper"]) body:is([data-ambience="below"], [data-ambience="depth"]):not([data-theme="dawn"]):not([data-theme="hell"]) :is(.reply-content, .passage-text blockquote, .passage-text strong) {
  color: #e8e9e2;
}

/* The original ending palettes win. Their glow is steady, with no machinery grain. */
body[data-theme="dawn"] #ambient-effects {
  --ambient-light: 228, 201, 129;
}

body[data-theme="hell"] #ambient-effects {
  --ambient-light: 144, 58, 34;
}

body:is([data-theme="dawn"], [data-theme="hell"]) #ambient-effects :is(.ambient-texture, .ambient-cue) {
  display: none;
}

/* Only Subtle permits these slow, single-cycle cues. No flashing text. */
html[data-atmosphere="subtle"] #ambient-effects[data-cue="beam"] .ambient-cue {
  inset: -25%;
  background: linear-gradient(104deg, transparent 28%, rgba(204, 228, 211, .16) 46%, rgba(222, 237, 220, .21) 51%, transparent 72%);
  animation: ambient-beam-pass 6.4s ease-in-out 1 both;
}

html[data-atmosphere="subtle"] #ambient-effects[data-cue="descent"] .ambient-cue {
  background: radial-gradient(ellipse at 50% 90%, rgba(117, 139, 69, .15), transparent 70%);
  animation: ambient-descent-breath 5.8s ease-in-out 1 both;
}

html[data-atmosphere="subtle"] #ambient-effects[data-cue="answer"] .ambient-cue {
  background: repeating-linear-gradient(0deg, transparent 0 8px, rgba(143, 158, 104, .045) 8px 9px);
  animation: ambient-answer-shift 2.4s ease-in-out 1 both;
}

/* A passing reflection, behind the words; the written encounter works in every mode. */
html[data-atmosphere="subtle"] #ambient-effects[data-cue="apparition"] .ambient-cue {
  background: radial-gradient(ellipse 32px 105px at 78% 48%, rgba(169,191,165,.15), transparent 82%);
  animation: ambient-uncertain-shape 6.4s ease-in-out 1 both;
}
@keyframes ambient-uncertain-shape {
  0%,26%,100% {opacity:0;}
  48% {opacity:.6;}
  74% {opacity:0;}
}
.quiet-echo {font-style:italic;}

@keyframes ambient-beam-pass {
  0% { opacity: 0; transform: translateX(-38%); }
  44% { opacity: .64; }
  100% { opacity: 0; transform: translateX(38%); }
}

/* A turning lighthouse: one slow sweep, then darkness until it comes around.
   This separate layer keeps its rhythm while text is read, scrolled, or resized. */
.ambient-rotation { opacity: 0; }
html[data-atmosphere="subtle"] #ambient-effects[data-rotating="true"] .ambient-rotation {
  inset: -25%;
  background: linear-gradient(104deg, transparent 28%, rgba(204,228,211,.13) 46%, rgba(222,237,220,.18) 51%, transparent 72%);
  animation: ambient-lighthouse-rotation 18s linear infinite;
}
body:is([data-ambience="below"],[data-ambience="depth"]) .ambient-rotation { filter: brightness(.45); }
@keyframes ambient-lighthouse-rotation {
  0% { opacity:0; transform:translateX(-65%); }
  16% { opacity:.65; }
  39% { opacity:0; transform:translateX(65%); }
  40%,100% { opacity:0; transform:translateX(65%); }
}

@keyframes ambient-descent-breath {
  0%, 100% { opacity: 0; transform: scaleY(.88); }
  48% { opacity: .70; transform: scaleY(1); }
}

@keyframes ambient-answer-shift {
  0% { opacity: 0; transform: translateY(-2px); }
  42% { opacity: .7; }
  100% { opacity: 0; transform: translateY(2px); }
}

/* Still retains setting and texture; Off restores the familiar plain background. */
html:is([data-atmosphere="still"], [data-atmosphere="off"]) body {
  transition: none;
}

html[data-atmosphere="still"] #ambient-effects,
html[data-atmosphere="still"] #ambient-effects * {
  animation: none !important;
  transition: none !important;
}

html[data-atmosphere="off"] #ambient-effects {
  display: none;
}

/* Paper's opaque cream background and black text remain untouched above the effects. */
html[data-reading-background="paper"] :is(.passage-text, .reply-content) {
  background: #f3ecdc;
  color: #111;
}

@media (prefers-reduced-motion: reduce) {
  html[data-atmosphere] body,
  #ambient-effects,
  #ambient-effects * {
    animation: none !important;
    transition: none !important;
  }
}

@media (forced-colors: active) {
  #ambient-effects,
  .grain {
    display: none !important;
  }
}
