
:root{color-scheme:dark;--ink:#f4eedb;--dim:#afc1b4;--paper:#16221c;--line:#394b3f;--accent:#a8d5b5}*{box-sizing:border-box}body{margin:0;background:#101713;color:var(--ink);font:15px/1.6 system-ui,sans-serif}a{color:inherit;text-underline-offset:4px}button,input,select{font:inherit}button,select,.file-button{background:#22212d;color:var(--ink);border:1px solid #655870;border-radius:4px;padding:.55rem .8rem}button{cursor:pointer}button:hover{background:#383047}button:disabled{opacity:.4;cursor:default}button[aria-pressed=true]{background:var(--accent);color:#1a1424}input[type=checkbox]{accent-color:var(--accent)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:3px}header{padding:22px 3vw;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:24px}header nav{display:flex;gap:24px;flex-wrap:wrap}.brand{display:flex;gap:12px;align-items:center;font:700 28px Georgia;text-decoration:none}.brand span{font:700 18px system-ui;line-height:1.1}.brand small{display:block;font-size:9px;letter-spacing:2px;margin-top:6px}.skip{position:absolute;left:10px;top:-60px}.skip:focus{top:8px}main{max-width:1800px;margin:auto;padding:0 2.5vw}.intro{padding:48px 0 30px;max-width:1100px}.eyebrow{font:11px/1.5 ui-monospace,monospace;letter-spacing:2px;color:var(--accent)}h1{font:clamp(40px,5vw,72px)/1.05 Georgia,serif;letter-spacing:-2px;margin:20px 0}h1 em{font-style:normal;color:var(--accent)}.intro>p:not(.eyebrow){color:var(--dim);font-size:17px}.editions{display:flex;gap:8px;flex-wrap:wrap}.editions a{border:1px solid var(--line);padding:8px 14px;text-decoration:none;font-size:13px}.editions a[aria-current=page]{background:var(--accent);color:#191020}.layout{display:grid;grid-template-columns:minmax(210px,260px) minmax(480px,1fr) minmax(190px,230px);gap:18px;align-items:start}.panel{background:var(--paper);border:1px solid var(--line);border-radius:5px;min-width:0;padding:20px}.panel h2{font:27px/1.1 Georgia,serif;margin:10px 0 15px}.player{padding:0;overflow:hidden}.player-meta{padding:12px 18px;display:flex;justify-content:space-between;gap:12px;font-size:11px;color:var(--dim);text-transform:uppercase;letter-spacing:1px}.game-stage{position:relative;aspect-ratio:4/3;background:#000;min-height:280px}#game{width:100%;height:100%}#game canvas{image-rendering:pixelated}#boot{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:24px;background:radial-gradient(ellipse at 50% 0%,#34533e,#101713 80%);color:#181020;border:0;font-weight:700;padding:12px 24px}#player-status,.player>.toolbar,.player>details,.player>.small{margin:14px 18px}#player-status{font-size:13px;color:var(--dim)}.toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.toolbar button,.toolbar label{font-size:12px}.toolbar label{display:flex;align-items:center;gap:6px}.toolbar input[type=range]{width:90px}.time-panel{background:#191622;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:18px}.time-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.time-heading h2{font-size:24px;margin:0}.time-heading span{font:12px ui-monospace;color:var(--accent)}.time-options{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0}.time-options label{display:flex;gap:8px;align-items:center;justify-content:space-between;font-size:12px}.time-options select{padding:5px 12px}.time-buttons{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}.time-buttons button{font-size:12px;flex:1;white-space:nowrap}.small,small{font-size:12px;line-height:1.6;color:var(--dim)}details{border-top:1px solid var(--line);padding-top:12px}summary{cursor:pointer}details p{font-size:13px}.save-panel label{display:block;font-size:13px;margin:12px 0}.save-panel input[type=file]{display:block;font-size:12px;max-width:100%;margin-top:8px}.file-button{font-size:12px}.file-button input{max-width:180px}.cheat{display:flex;align-items:flex-start;gap:10px;margin:22px 0}.cheat input{margin-top:5px;flex:none}.cheat small{display:block;margin-top:6px}.assistance>p{font-size:13px}.assistance>a{font-size:12px}.search-label{font-size:12px;color:var(--dim)}.search-label input{width:100%;margin-top:6px;background:#101713;color:var(--ink);border:1px solid var(--line);padding:9px;border-radius:3px}.route-tabs{display:flex;margin:15px 0;gap:6px}.route-tabs button{flex:1;font-size:12px}.next{border-left:2px solid var(--accent);padding:8px 12px;background:#a8d5b50c;font-size:13px}progress{width:100%;height:7px;accent-color:var(--accent)}#route-list{max-height:650px;overflow:auto;scrollbar-width:thin}#route-list details{padding:10px 0}#route-list summary{font-size:13px}#route-list ol{padding:0;list-style:none}#route-list li{padding:10px 2px;border-bottom:1px solid #394b3f60;font-size:13px}#route-list label{display:flex;gap:8px;align-items:start}#route-list input{margin-top:5px;flex:none}#route-list small{display:block;margin:5px 0 0 23px}.auto-badge{color:var(--accent)}.route-select{width:100%;margin:8px 0}.touch-controls{display:flex;gap:5px;flex-wrap:wrap;margin-top:12px}.touch-controls button{min-width:42px;touch-action:none}#controller-tools:empty{display:none}.preservation{max-width:880px;padding:50px 0;font-size:14px;color:var(--dim)}.preservation h2{font:32px Georgia;color:var(--ink)}footer{border-top:1px solid var(--line);padding:28px 3vw;font-size:12px;color:var(--dim)}#play-layout:fullscreen{overflow:auto;padding:12px;background:#101713;align-content:center}#play-layout:fullscreen .intro{display:none}@media(min-width:1600px){.layout{grid-template-columns:280px minmax(640px,1fr) 250px}}@media(max-width:1100px){.layout{grid-template-columns:230px minmax(0,1fr)}.assistance{grid-column:2}.intro{padding-top:30px}.game-stage{min-height:230px}}@media(max-width:720px){header{align-items:start}.brand{font-size:22px}header nav{gap:9px;font-size:11px}.layout{display:flex;flex-direction:column}.player{order:0;width:100%}.route{order:1;width:100%}.assistance{order:2;width:100%}.intro{padding:24px 0 18px}.intro h1{font-size:42px}.intro>p:not(.eyebrow){font-size:14px}#route-list{max-height:480px}.panel{padding:15px}.player{padding:0}.time-options{gap:6px}.time-options label{display:block}.time-options select{margin-left:7px}.time-buttons button{font-size:11px;padding:9px 6px}.player-meta{font-size:9px}.game-stage{min-height:200px}.preservation{padding:30px 0}}

.route-reference{display:block;font-size:11px;color:var(--accent);margin:9px 0}.critical-badge{color:#ebc87f!important}.route>label{display:block;font-size:12px}.route>label.small{margin:7px 0 13px}.route-select{font-size:12px;text-overflow:ellipsis}.player-meta span:last-child{text-align:right}

/* Alundra contrast and woodland controls. */
#boot{color:var(--ink);font-weight:400}button,select,.file-button{background:#223027;border-color:#465d4d}button:hover{background:#304637}.time-panel{background:#142019}

.route-diagram{white-space:pre;overflow:auto;font-size:11px;background:#101713;padding:8px;border:1px solid var(--line)}

#boot[hidden]{display:none!important}

/* Selected-card workflow; game and card operations remain visibly separate. */
.file-card-host{margin:0 18px}.file-card-host:empty{display:none}.save-panel{padding:18px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#142019}.save-panel h2{font:25px/1.2 Georgia,serif;margin:0 0 12px}.save-panel p{font-size:13px}.save-panel .toolbar{margin:14px 0}.snapshot-panel{margin:14px 18px}#start{background:var(--accent);color:#101713;border-color:var(--accent);padding:14px 28px;font-weight:700;font-size:17px}
