:root{color-scheme:dark;--ink:#151a19;--paper:#f1e7cf;--brass:#d8af66;--muted:#a9b0a3;--red:#ee7455;--green:#8dbca3;font-family:Arial,Helvetica,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--ink);color:var(--paper)}button,select{font:inherit;font-size:14px;color:var(--paper);background:#242c29;border:1px solid #626859;border-radius:3px;min-height:44px;padding:8px 12px;cursor:pointer;touch-action:manipulation}button:hover{border-color:var(--brass);background:#343c34}button:active,.pressed{background:#a37838!important;color:#fff!important;transform:translateY(1px)}button:focus-visible,select:focus-visible,canvas:focus-visible,a:focus-visible{outline:3px solid #ffd687;outline-offset:3px}button:disabled{opacity:.45;cursor:default}.primary{background:var(--brass);color:#151a19;border-color:var(--brass);font-weight:700}.primary:hover{background:#efcc8d;color:#111}a{color:var(--brass)}[hidden]{display:none!important}.eyebrow{font:11px 'Courier New',monospace;letter-spacing:2px;color:var(--brass)}.small{font-size:12px;color:var(--muted)}.sr{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}#home{min-height:100svh;display:grid;grid-template-columns:minmax(320px,43%) 1fr;position:relative;isolation:isolate}.hero-art{grid-column:2;grid-row:1;background:linear-gradient(90deg,#151a19,transparent 25%),url('assets/wide.webp') center/cover}.home-copy{grid-column:1;grid-row:1;padding:clamp(24px,5vw,76px);align-self:center}.home-copy h1{font-family:Georgia,serif;font-size:clamp(45px,5vw,80px);line-height:.95;font-weight:400;letter-spacing:-2px;margin:24px 0}.home-copy h1 em{font-style:normal;color:var(--brass)}.home-copy h1 span{display:block;font:italic 19px Georgia,serif;letter-spacing:0;margin-top:18px}.intro{line-height:1.5;font-size:16px}.pitch{font:13px/1.6 'Courier New',monospace;color:var(--muted)}.mode-label{display:block;font-size:12px;color:var(--brass);margin:24px 0 6px}#mode,#start{width:100%;max-width:380px;display:block}#start{min-height:54px;margin-top:12px;text-align:left;font-size:17px}#start span{float:right}.home-actions{display:flex;gap:6px;margin:12px 0;flex-wrap:wrap}.home-actions button{flex:1;font-size:12px;padding:8px}.credit{font-size:11px;line-height:1.7;max-width:340px;color:var(--muted);margin:24px 0 0}#game{height:100dvh;padding:env(safe-area-inset-top) max(8px,env(safe-area-inset-right)) env(safe-area-inset-bottom) max(8px,env(safe-area-inset-left));display:grid;grid-template-rows:36px 48px minmax(0,1fr) 38px 166px;max-width:1120px;margin:auto;gap:3px}header{display:flex;align-items:center;border-bottom:1px solid #515b4d;gap:8px}header strong{font:14px Georgia,serif;white-space:nowrap}header i{color:var(--brass);font-style:normal}header #equipped{flex:1;font:10px 'Courier New',monospace;color:var(--muted);text-align:right}header button{min-height:30px;padding:4px 10px;font-size:12px}#stagebar{display:flex;align-items:center;justify-content:space-between;gap:6px}#chapter{font-size:9px;letter-spacing:1.3px}h2{font:19px Georgia,serif;margin:3px 0}#objective{font:11px/1.6 'Courier New',monospace;text-align:right;white-space:nowrap;color:var(--paper)}#field{position:relative;min-height:0;display:flex;align-items:center;justify-content:center;overflow:hidden;border:1px solid #515b4d;background:#0b100f}#board{display:block;width:100%;height:100%;object-fit:contain;touch-action:none}#feedback{align-self:center;margin:0;font-size:12px;line-height:1.35;color:var(--paper);padding:0 4px;min-height:28px}.commandbar{display:grid;grid-template-columns:repeat(4,1fr);gap:5px}.commandbar button{font-size:13px;padding:7px 4px}.steer{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:6px}.steer>button{width:58px;min-height:52px;font-size:11px;padding:5px}.steer #help{margin-right:auto}.steer #pause{margin-left:auto}#pad{display:grid;grid-template-columns:repeat(3,56px);grid-template-rows:repeat(2,56px);gap:4px;touch-action:none}#pad button{font-size:25px;padding:2px;touch-action:none}.up{grid-column:2;grid-row:1}.left{grid-column:1;grid-row:2}.down{grid-column:2;grid-row:2}.right{grid-column:3;grid-row:2}#pause-cover,#result{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:16px;background:#111914f0;z-index:3;overflow:auto}#result h3{font:30px Georgia,serif;margin:9px 0}#result p{max-width:360px;font-size:13px}#result button{min-width:160px;margin:3px}#result #read-note{border:0;background:none;text-decoration:underline;color:var(--brass)}#pause-reason{font:22px Georgia,serif}dialog{width:min(600px,calc(100vw - 20px));max-height:calc(100dvh - 24px);padding:16px 20px;background:var(--paper);color:var(--ink);border:2px solid var(--brass);border-radius:4px;overflow:auto}dialog::backdrop{background:#080e0dda;backdrop-filter:blur(4px)}dialog .eyebrow{color:#705124}.dialog-top{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #bfb49b;padding-bottom:8px}dialog button,dialog select{color:var(--ink);background:#e4d6b9;border-color:#8e8067}dialog .primary{background:#263a30;color:var(--paper)}dialog a{color:#69491c}dialog h3{font:26px Georgia,serif;margin:18px 0 12px}dialog p,dialog li{font-size:14px;line-height:1.6}dialog .actions{display:flex;gap:8px;flex-wrap:wrap}dialog .actions button{flex:1}.stage-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}.stage-grid button{min-height:54px}.stage-grid small{font-size:10px;display:block}.note{border-top:1px solid #b6aa90;padding:12px 0}.note h4{font:19px Georgia,serif;margin:5px 0}.note .tag{font:10px 'Courier New',monospace;letter-spacing:1px;color:#766445}.tool-choices{display:grid;gap:8px}.tool-choices button{text-align:left}.selected{outline:3px solid #497e64!important;outline-offset:-3px}.legend{display:grid;grid-template-columns:1fr 1fr;gap:8px;font-size:12px}.legend span{padding:8px;border:1px solid #c1b392}.setting{display:flex;gap:8px;align-items:center;justify-content:space-between;margin:12px 0}.setting button{min-width:110px}#plan[aria-pressed=true]{background:#e5d7b5;color:#151a19;border-style:dashed}@media(min-width:760px) and (min-height:620px){#game{grid-template-rows:44px 60px minmax(0,1fr) 40px 166px;max-width:950px}#board{max-height:620px}header strong{font-size:20px}h2{font-size:25px}#controls{max-width:580px;width:100%;margin:auto}}@media(max-width:620px){#home{display:block}.hero-art{position:absolute;inset:0 0 auto;height:57svh;background:linear-gradient(0deg,#151a19,transparent 60%),url('assets/portrait.webp') 50% 30%/cover;z-index:-1;opacity:.7}.home-copy{padding:26px 24px 20px}.home-copy h1{font-size:55px;margin-top:68px;text-shadow:0 2px 20px #111}.home-copy .intro{font-size:14px}.pitch{font-size:12px;margin-top:18px}.mode-label{margin-top:20px}.credit{margin-top:14px}.home-actions{max-width:380px}header #equipped{font-size:8px}.home-copy{max-width:450px}}@media(max-height:650px) and (orientation:portrait){.home-copy{padding:18px 22px}.home-copy h1{margin:40px 0 16px;font-size:45px}.home-copy h1 span{font-size:16px}.intro{margin:10px 0}.pitch{margin:10px 0}.mode-label{margin-top:12px}.home-actions{margin:7px 0}.credit{font-size:10px;margin-top:7px}#saved{margin:6px 0}#game{grid-template-rows:32px 44px minmax(0,1fr) 36px 164px}h2{font-size:17px}}@media(orientation:landscape) and (max-height:600px){#game{max-width:none;grid-template-columns:minmax(0,1fr) 224px;grid-template-rows:32px 40px minmax(0,1fr) 32px;column-gap:10px;padding-bottom:max(4px,env(safe-area-inset-bottom))}header{grid-column:1/3;grid-row:1}#stagebar{grid-column:1;grid-row:2}#field{grid-column:1;grid-row:3}#feedback{grid-column:1;grid-row:4;font-size:11px}#controls{grid-column:2;grid-row:2/5;align-self:center}.commandbar{grid-template-columns:1fr 1fr;gap:5px}.steer{gap:4px;position:relative;flex-wrap:wrap;justify-content:space-between;padding-top:0}.steer>button{width:calc(50% - 3px);min-height:44px;order:2}.steer #help,.steer #pause{margin:0}#pad{margin:0 auto;order:1;grid-template-columns:repeat(3,52px);grid-template-rows:repeat(2,52px)}#objective{font-size:10px}h2{font-size:18px}#chapter{font-size:8px}#home{display:grid;grid-template-columns:1fr 45%;min-height:100dvh}.hero-art{position:static;grid-column:2;grid-row:1;height:auto;opacity:1;background:linear-gradient(90deg,#151a19,transparent),url('assets/wide.webp') center/cover}.home-copy{padding:18px 24px;max-width:none}.home-copy h1{font-size:37px;margin:12px 0}.home-copy h1 span{font-size:14px;margin-top:10px}.intro,.pitch{display:none}.mode-label{margin-top:10px}.home-actions{margin:6px 0}.credit{font-size:9px;margin:8px 0}.eyebrow{font-size:9px}#saved{margin:4px 0;font-size:10px}#start{min-height:44px;margin-top:6px}.home-actions button{font-size:11px;min-height:36px}#result h3{font-size:23px}#result p{margin:4px}#result button{min-height:38px}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;scroll-behavior:auto!important}}
/* Measured small-phone correction: reserve the full controls height and prevent intrinsic flex overflow. */
#game{width:100%;grid-template-rows:44px 48px minmax(0,1fr) 38px 166px}#stagebar,#field,#controls{min-width:0}#board{min-width:0}.steer{gap:4px}.steer>button{width:52px;flex-shrink:0}header button{min-height:44px;min-width:48px}header{min-height:44px}
@media(max-height:650px) and (orientation:portrait){#game{grid-template-rows:44px 44px minmax(0,1fr) 36px 166px}}
@media(orientation:landscape) and (max-height:600px){#game{grid-template-rows:44px 40px minmax(0,1fr) 32px}.steer>button{width:calc(50% - 3px)}.home-actions button,#result button{min-height:44px}}
.restored-marker{display:none;font:11px/1.5 'Courier New',monospace;color:#b3d3b2}.restored .restored-marker{display:block}.shelves{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;padding:20px;background:#25392e;border:8px solid #6d5332}.shelves span{height:38px;background:#e2d1ab;color:#28362a;border-bottom:6px solid #b5945d;display:flex;align-items:center;justify-content:center;font:14px 'Courier New',monospace}
@media(orientation:portrait){#game{grid-template-rows:44px 48px minmax(0,1fr) 44px 166px}#feedback{font-size:11px;line-height:1.3}}
#result.finale{background:#101b13b8}#result.finale h3{color:#ffdf9a}#result.finale>p{background:#142319bd;padding:4px 8px;border-radius:2px}
#close{min-width:44px}
