:root{color-scheme:dark;--bg:#111f27;--panel:#1c3038;--ink:#e6e7d8;--muted:#b8c8c5;--accent:#e6c68d;--edge:#486568;--paper:#1a2d34}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:'Yu Gothic','Meiryo',sans-serif;line-height:1.8}button,select{font:inherit;font-size:14px;touch-action:manipulation}button,a,select{ -webkit-tap-highlight-color:transparent}button{border:1px solid var(--edge);border-radius:5px;background:#253f47;color:var(--ink);padding:.55em .9em;cursor:pointer;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}button:hover{background:#36535a}button:disabled{opacity:.45;cursor:default}.primary{color:#172a32;background:var(--accent);border-color:var(--accent);font-weight:700}.primary:hover{background:#f2d7a2}a{color:#d6bf8e;text-underline-offset:4px}button:focus-visible,a:focus-visible,select:focus-visible,canvas:focus-visible{outline:3px solid #f2d7a2;outline-offset:3px}header{display:flex;gap:20px;align-items:center;justify-content:space-between;max-width:1320px;margin:auto;padding:15px 25px;border-bottom:1px solid #36505a}header a{font-size:14px;text-decoration:none}header span{font-size:11px;letter-spacing:.16em;color:var(--muted)}main{max-width:1320px;margin:auto;padding:18px 25px 25px}.status{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:10px}.status span{display:inline-block;margin-right:20px;color:var(--accent);font-size:13px}.status p{font-size:14px;margin:0}.layout{display:grid;grid-template-columns:minmax(0,1fr) 230px;gap:25px}.play-area{min-width:0}canvas{display:block;width:100%;height:auto;background:#0d1b22;image-rendering:pixelated;touch-action:none;border:1px solid #4d6d6e}#notice{min-height:28px;font-size:13px;margin:6px 0;color:var(--accent)}.action-row{display:flex;gap:9px;flex-wrap:wrap}.action-row button{flex:1;white-space:nowrap}.destination{border-top:1px solid #36505a;margin-top:14px;padding-top:10px}.destination label{font-size:12px;color:var(--muted)}.destination>div{display:flex;gap:8px}.destination select{width:0;flex:1;background:#19323a;color:var(--ink);border:1px solid var(--edge);border-radius:4px;padding:6px}.walk-row{display:flex;gap:16px;align-items:center;margin-top:12px}.walk-row p{font-size:11px;line-height:1.9;color:var(--muted);margin:0}.dpad{display:grid;grid-template-columns:repeat(3,45px);grid-template-rows:repeat(2,37px);gap:3px}.dpad button{padding:0;touch-action:none}.dpad [data-dir=up]{grid-column:2}.dpad [data-dir=left]{grid-row:2;grid-column:1}.dpad [data-dir=down]{grid-row:2;grid-column:2}.dpad [data-dir=right]{grid-row:2;grid-column:3}aside{border-left:1px solid #36505a;padding-left:20px;font-size:13px}aside h2{font-size:20px;line-height:1.6;margin:6px 0 15px}aside ol{padding-left:22px;color:var(--muted)}aside li{margin:15px 0}aside button{margin-right:5px;margin-bottom:10px;font-size:12px}.eyebrow{font-size:10px;letter-spacing:.18em;color:var(--accent);margin:0}.small{font-size:12px;color:var(--muted);line-height:1.9}footer{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:22px;padding-top:14px;border-top:1px solid #36505a;font-size:11px;color:var(--muted)}.text-button{border:none;background:none;font-size:11px;padding:0}.overlay{position:fixed;inset:0;background:#08141cdd;display:flex;align-items:center;justify-content:center;padding:22px;z-index:20;overflow:auto;backdrop-filter:blur(3px)}[hidden]{display:none!important}.title-card,.paper{width:100%;max-width:650px;background:linear-gradient(145deg,#233f46,#152832);border:1px solid #6a8180;border-top:3px solid var(--accent);padding:32px 40px;box-shadow:0 25px 90px #0008;max-height:calc(100dvh - 44px);overflow:auto}.title-card{text-align:center}.title-card h1{font-size:clamp(29px,4.8vw,43px);line-height:1.5;font-weight:700;letter-spacing:.08em;margin:15px 0 18px}.title-sub{font-size:14px;color:var(--muted)}.tagline{font-size:20px;line-height:1.8;color:var(--accent);margin:10px 0 20px}.title-actions{display:flex;gap:10px;justify-content:center;margin:24px 0}.paper h2{font-size:22px;letter-spacing:.06em;line-height:1.7;margin:12px 0 18px}#dialog-body{font-size:16px;line-height:2.15;white-space:pre-line}#dialog-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}#dialog-actions button{flex:1;min-width:100px}#page-count{margin:14px 0 0;font-size:11px}.setting{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:18px 0;font-size:14px}.setting input[type=range]{width:48%}.setting input[type=checkbox]{width:22px;height:22px;accent-color:#e6c68d}#voice-state{min-height:24px;margin:10px 0 0}#voice-state:empty{display:none}.journal-text{font-size:14px}
@media(max-width:1050px){.layout{grid-template-columns:minmax(0,1fr)}aside{border-left:0;border-top:1px solid #36505a;padding:14px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:4px 20px}aside h2{font-size:17px}aside ol{display:none}aside .small{grid-column:1/-1}aside button{width:max-content}#context{margin:0}.walk-row p{font-size:12px}}
@media(max-width:600px){body{line-height:1.7}header{padding:10px 12px;gap:8px}header span{display:none}header a{font-size:11px}header button{font-size:11px;padding:7px}main{padding:12px}.status{display:block}.status p{font-size:12px;margin-top:4px}.status span{font-size:11px}.layout{gap:14px}.action-row{gap:5px}.action-row button{font-size:12px;padding:9px 4px}.walk-row{align-items:flex-start;gap:9px}.walk-row p{font-size:10px}.dpad{grid-template-columns:repeat(3,43px);grid-template-rows:repeat(2,40px)}.destination button,.destination select{font-size:12px}aside{font-size:12px}aside h2{margin:2px 0 8px}footer{gap:8px;flex-wrap:wrap;font-size:10px}.overlay{padding:12px}.title-card,.paper{max-height:calc(100dvh - 24px);padding:22px 21px}.title-card h1{font-size:28px;letter-spacing:.02em}.tagline{font-size:17px}.title-card>p:not(.eyebrow):not(.tagline){font-size:12px}.title-actions{margin:18px 0}.paper h2{font-size:19px}#dialog-body{font-size:14px;line-height:2.05}#dialog-actions button{font-size:13px}.small{font-size:11px}.setting{font-size:12px}}
@media(prefers-reduced-motion:reduce){.overlay{backdrop-filter:none}}
