:root{color-scheme:light;--paper:#eeeae0;--panel:#f8f5ed;--ink:#283329;--muted:#757a6c;--line:#d5d5c5;--green:#294d3d;--orange:#c5653a}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);font-family:Segoe UI,Arial,sans-serif;font-size:14px}
button,input,select{font:inherit}button{cursor:pointer;border:1px solid var(--line);border-radius:5px;background:transparent;color:var(--ink);padding:9px 12px;transition:background .15s;touch-action:manipulation}
button:hover{background:#dedfcc}button:focus-visible,select:focus-visible,a:focus-visible,canvas:focus-visible{outline:3px solid #b37543;outline-offset:3px}
button:active{transform:translateY(1px)}[hidden]{display:none!important}
.header{display:flex;gap:16px;align-items:center;justify-content:space-between;max-width:1500px;margin:auto;padding:23px 42px;border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:12px;color:inherit;text-decoration:none;letter-spacing:3px;font-size:21px;font-weight:650;min-width:0}
.brand>span:last-child{min-width:0}.brand small{display:block;font-size:11px;letter-spacing:.4px;font-weight:400;margin-top:3px;color:var(--muted);line-height:1.5}
.brand-mark{font-size:37px;color:var(--green);line-height:1;flex-shrink:0}.header-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}.header-actions button:last-child{width:38px;border-radius:50%;padding:8px}
main{max-width:1500px;padding:0 42px 22px;margin:auto}.introduction{display:flex;align-items:end;justify-content:space-between;gap:30px;padding:33px 0 27px}.introduction>div{min-width:0}
.eyebrow{font-size:10px;font-weight:650;letter-spacing:1.6px;margin:0 0 11px;color:var(--muted);line-height:1.6}
h1{font-family:Georgia,serif;font-weight:400;font-size:clamp(26px,2.55vw,38px);line-height:1.2;margin:0;letter-spacing:-1px}.intro-note{line-height:1.7;font-size:12px;color:var(--muted);margin:0;max-width:240px}
.workspace{display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:22px;align-items:start}
.experience{min-width:0;border:1px solid #9faaa0;border-radius:7px;overflow:hidden;background:var(--panel);box-shadow:0 8px 28px #33422b0b}
.toolbar{display:flex;align-items:center;gap:9px;padding:9px 13px;font-size:12px;border-bottom:1px solid var(--line);min-height:47px}.toolbar>span:nth-child(2){min-width:0}
.live-dot{width:6px;height:6px;border-radius:50%;background:#6f8653;flex-shrink:0}.toolbar-actions{display:flex;align-items:center;gap:5px;margin-left:auto;flex-shrink:0}
.toolbar button{padding:5px 8px;font-size:11px;border-color:transparent}.toolbar button[aria-pressed=true]{background:#e1e7da;color:var(--green)}
kbd{font:10px Segoe UI,sans-serif;margin-left:4px;border:1px solid #cccfc1;border-radius:3px;padding:0 3px;color:#6f7568}
.stage{position:relative;aspect-ratio:3/2;overflow:hidden;background:#bdbdbd}.stage>canvas{width:100%;height:100%;display:block;touch-action:manipulation;cursor:default}
.loading{position:absolute;inset:0;display:grid;place-content:center;background:var(--paper);padding:20px;text-align:center}
.view-footer{display:flex;gap:15px;align-items:center;justify-content:space-between;min-height:42px;padding:10px 13px;font-size:10px;line-height:1.4;color:var(--muted)}
#notice{text-align:center;flex:1;min-width:0}#position,#steps{white-space:nowrap}
.sidebar{min-width:0;padding:20px;border:1px solid var(--line);border-radius:7px;background:var(--panel)}.panel-heading{margin-bottom:16px}.panel-heading .eyebrow{margin-bottom:0}
.sidebar label{display:block;font-size:11px;margin:16px 0 7px;color:#687262}.sidebar select{width:100%;max-width:100%;min-width:0;background:#fdfbf6;border:1px solid var(--line);border-radius:4px;min-height:40px;padding:8px;font-size:13px;color:var(--ink)}
.primary{background:var(--green);color:#fff;border-color:var(--green)}.primary:hover{background:#1e3d30}.wide{width:100%;display:flex;gap:10px;justify-content:space-between;align-items:center;margin-top:13px;font-size:12px;min-height:43px;padding:11px}
.divider{height:1px;background:var(--line);margin:22px 0}.navigation>.eyebrow{font-size:9px}.direction-pad{display:grid;grid-template-columns:48px 74px 48px;grid-template-rows:52px 44px 52px;gap:5px;justify-content:center;margin:15px 0}
.direction-pad button{font-size:25px;background:#ecefe4;border-color:#d9dfce;padding:3px;min-width:44px;min-height:44px}.direction-pad button:hover{background:#dfe7d3}.direction-pad small{display:block;font-size:10px;line-height:1.2}
.forward{grid-column:2;grid-row:1}.turn-left{grid-column:1;grid-row:2}.turn-right{grid-column:3;grid-row:2}.back{grid-column:2;grid-row:3}.pad-center{grid-column:2;grid-row:2;display:grid;place-items:center;font-size:21px;color:#97a98a}
.small{font-size:11px;line-height:1.6;color:var(--muted);margin:0}.page-footer{display:flex;gap:20px;justify-content:space-between;font-size:10px;line-height:1.6;color:#838879;padding:20px 0 0}
.map-panel{position:absolute;left:20px;bottom:20px;width:225px;max-width:42%;background:#faf7edee;border:1px solid #8a9584;padding:10px;border-radius:4px;box-shadow:0 5px 20px #0002}
.map-title{display:flex;justify-content:space-between;align-items:center;font-size:9px;letter-spacing:1.5px;font-weight:700}.map-title button{padding:0 5px;border:0;font-size:22px;min-width:30px;min-height:30px}.map-panel canvas{width:100%;height:auto;display:block}
.map-panel p{font-size:9px;display:flex;gap:8px;align-items:center;margin:3px 0}.map-panel i{width:6px;height:6px;display:inline-block;border-radius:50%;flex-shrink:0}.position-dot{background:var(--green)}.exit-dot{background:var(--orange);margin-left:10px}
.win-panel{position:absolute;inset:12% 16%;border:1px solid #838e73;background:#fbf8f0f5;box-shadow:0 20px 90px #22332244;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:25px;text-align:center;border-radius:5px;overflow:auto}
.win-panel h2{font-family:Georgia,serif;font-size:clamp(25px,4vw,55px);font-weight:400;line-height:1.15;margin:0}.win-panel p:not(.eyebrow){line-height:1.6;margin:14px 0 20px}.win-panel button{margin-bottom:8px;min-height:40px}.win-panel button:last-child{border:0;font-size:11px}
dialog{background:var(--panel);color:var(--ink);border:1px solid #b7beac;border-radius:8px;padding:27px;max-width:calc(100vw - 28px);max-height:88vh;max-height:88dvh;box-shadow:0 20px 90px #1114;overflow:auto}dialog::backdrop{background:#19271ed0;backdrop-filter:blur(4px)}
.dialog-header{display:flex;justify-content:space-between;align-items:center;gap:20px}.dialog-header>div{min-width:0}.dialog-header h2{font-family:Georgia,serif;font-weight:400;font-size:28px;margin:0}.dialog-header button{font-size:26px;padding:0 8px;border:0;min-width:42px;min-height:42px;flex-shrink:0}
.dialog-intro{font-size:12px;line-height:1.6;color:var(--muted);margin:15px 0 22px}.gallery-dialog{width:980px}.gallery-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px}
.gallery-grid button{display:flex;min-width:0;flex-direction:column;text-align:left;padding:8px;background:#eeeadf;border:1px solid #d6d5c8;gap:8px}.gallery-grid img{width:100%;aspect-ratio:4/3;object-fit:contain;background:#e1ded4}.gallery-grid span{font-size:11px;line-height:1.4;overflow-wrap:anywhere}
.picture-dialog{width:min(850px,90vw);padding:35px 20px 20px;text-align:center}.picture-dialog img{display:block;max-width:100%;max-height:65vh;max-height:65dvh;margin:auto;width:min(650px,100%);object-fit:contain;image-rendering:pixelated}.picture-dialog p{font-size:13px;margin-bottom:0}.picture-close{position:absolute;right:3px;top:2px;border:0;font-size:26px;padding:0 7px;min-width:40px;min-height:34px}
.help-dialog{width:620px;font-size:14px;line-height:1.8}.help-dialog ul{padding-left:22px}.help-dialog li{margin:8px 0}
.stage:fullscreen{width:100vw;height:100vh;height:100dvh;aspect-ratio:auto;display:grid;place-items:center;background:#1f2520}.stage:fullscreen>canvas{width:min(100vw,150vh);height:min(100vh,66.667vw);width:min(100vw,150dvh);height:min(100dvh,66.667vw)}
@media(max-width:1100px){.header{padding:20px 24px}main{padding:0 24px 20px}.workspace{grid-template-columns:minmax(0,1fr) 220px;gap:16px}.sidebar{padding:16px}.introduction{padding:27px 0 22px}.intro-note{display:none}.toolbar{font-size:11px;padding:7px 9px}.toolbar-actions{gap:1px}.toolbar button{font-size:10px;padding:5px 7px}.view-footer{gap:8px;font-size:9px}.direction-pad{grid-template-columns:44px 70px 44px;gap:4px}}
@media(max-width:900px){.workspace{grid-template-columns:1fr}.sidebar{display:grid;grid-template-columns:minmax(0,1fr) minmax(140px,1fr);column-gap:18px;row-gap:8px}.panel-heading{grid-column:1/-1;margin:0}.sidebar label{grid-column:1/-1;margin:4px 0 0}.sidebar select{grid-column:1;min-height:44px}.wide{grid-column:2;margin:0;min-height:44px}.sidebar>.divider{display:none}.navigation{grid-column:1/-1;border-top:1px solid var(--line);padding-top:17px;margin-top:8px;display:grid;grid-template-columns:1fr 180px;align-items:center;gap:0 15px}.navigation>.eyebrow{grid-column:1;margin-bottom:7px}.navigation>.small{grid-column:1;grid-row:2;align-self:start}.direction-pad{grid-column:2;grid-row:1/3;margin:0;grid-template-rows:49px 44px 49px}.page-footer{font-size:10px}.map-title button{min-width:38px;min-height:38px}.toolbar{font-size:12px}.toolbar button{font-size:12px;min-height:40px;padding:6px 9px}.toolbar-actions{gap:3px}}
@media(max-width:600px){.header{padding:15px 14px;gap:10px}.brand{font-size:17px;letter-spacing:2px;gap:8px}.brand small{font-size:9px;letter-spacing:0}.brand-mark{font-size:29px}.header-actions{gap:5px}.header-actions button{font-size:11px;padding:8px;min-height:40px}.header-actions button:last-child{width:36px}main{padding:0 12px 18px}.introduction{padding:21px 0 18px}.introduction .eyebrow{font-size:8px;letter-spacing:1px;margin-bottom:9px}h1{font-size:27px;line-height:1.17}.workspace{gap:12px}.toolbar{font-size:10px;padding:5px 7px;gap:5px}.toolbar-actions{gap:0}.toolbar button{font-size:10px;min-height:38px;padding:5px 6px}kbd{font-size:9px;margin-left:2px}.live-dot{width:5px;height:5px}.view-footer{flex-wrap:wrap;font-size:9px;gap:3px 8px;padding:7px 9px;min-height:47px}#position{order:0}#steps{order:1;margin-left:auto}#notice{order:2;flex-basis:100%;text-align:left}.sidebar{padding:15px;column-gap:12px;grid-template-columns:minmax(0,1fr) minmax(135px,1fr)}.sidebar label{font-size:12px}.wide{font-size:11px;padding:9px}.sidebar select{font-size:13px}.navigation{grid-template-columns:minmax(0,1fr) 168px;gap:0 9px}.direction-pad{grid-template-columns:44px 68px 44px;gap:4px}.navigation>.eyebrow{font-size:8px;letter-spacing:1px}.navigation>.small{font-size:10px}.direction-pad small{font-size:9px}.page-footer{flex-direction:column;gap:5px;font-size:9px;padding-top:15px}.map-panel{left:9px;bottom:9px;padding:5px 7px;width:165px;max-width:46%}.map-panel p{font-size:8px;gap:5px}.map-title{font-size:8px;letter-spacing:1px}.map-title button{min-height:32px;min-width:32px}.win-panel{inset:6% 10%;padding:12px}.win-panel .eyebrow{font-size:8px;letter-spacing:1px;margin-bottom:7px}.win-panel h2{font-size:28px}.win-panel p:not(.eyebrow){font-size:11px;margin:8px 0 9px}.win-panel button{font-size:11px;padding:6px 9px;min-height:32px;margin-bottom:3px}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.dialog-header h2{font-size:23px}dialog{padding:18px;max-width:calc(100vw - 18px);max-height:92dvh}.dialog-header{gap:9px}.picture-dialog{padding:37px 12px 15px}.help-dialog{font-size:13px;line-height:1.7}}
@media(max-width:360px){.header{padding:12px 10px;gap:7px}.brand{font-size:15px;letter-spacing:1.4px;gap:6px}.brand small{font-size:8px}.brand-mark{font-size:25px}.header-actions button{font-size:10px;padding:6px}.header-actions button:last-child{width:30px}.header-actions{gap:2px}h1{font-size:25px}.toolbar>span:nth-child(2){max-width:70px;line-height:1.2}.toolbar button{font-size:9px;padding:4px 5px}.toolbar-actions{gap:0}.sidebar{padding:12px}.navigation{grid-template-columns:1fr}.navigation>.eyebrow{grid-column:1;grid-row:1;text-align:center}.navigation>.small{grid-column:1;grid-row:3;text-align:center;margin-top:10px}.direction-pad{grid-column:1;grid-row:2}.map-title{letter-spacing:.4px}.map-panel p{gap:3px}.map-panel .exit-dot{margin-left:3px}}
@media(pointer:coarse){button,select{min-height:44px}.toolbar button{min-height:42px}.direction-pad button{min-height:44px}.direction-pad{gap:6px}}
@media(prefers-reduced-motion:reduce){button{transition:none}}

/* Plan command under New labyrinth, including the compact layout. */
.sidebar-map{justify-content:center;margin-top:8px}.sidebar-map[aria-pressed=true]{background:#e1e7da;border-color:#9aaa8d}
@media(max-width:900px){.sidebar-map{grid-column:2;margin-top:0}}

/* Recovered Goya ending. Small screens use the page flow so the full quote stays legible. */
.win-panel{inset:5% 8%;padding:20px}.win-panel h2{font-size:clamp(23px,3.3vw,42px);max-width:540px;line-height:1.25}.win-panel h2::before{content:"« "}.win-panel h2::after{content:" »"}.win-panel .ending-signature{font-size:12px;letter-spacing:4px;margin:12px 0 7px}.win-panel #winText{font-size:11px;margin:5px 0 14px}.win-panel .eyebrow{margin-bottom:15px}
@media(max-width:600px){.stage:has(.win-panel:not([hidden])){aspect-ratio:auto;min-height:355px}.stage:has(.win-panel:not([hidden]))>#view{position:absolute;inset:0;object-fit:cover}.win-panel{inset:10px;padding:22px 17px;justify-content:center}.win-panel h2{font-size:27px}.win-panel .ending-signature{margin:14px 0 8px}.win-panel #winText{margin:6px 0 14px}.win-panel .eyebrow{margin-bottom:16px}.win-panel button{min-height:40px}}
