:root{color-scheme:light;--ink:#173f3c;--paper:#f4ecd9;--red:#b64030;--gold:#d6a450}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.55 Georgia,serif;background-image:radial-gradient(#b9976622 1px,transparent 1px);background-size:5px 5px}button,a{-webkit-tap-highlight-color:transparent}button{font:700 13px/1.35 system-ui;cursor:pointer;min-height:44px;border:1px solid #173f3c55;border-radius:7px;background:#fff9ec;color:var(--ink);padding:10px 16px;touch-action:manipulation}button:hover{background:#e6dbc0}button:focus-visible,a:focus-visible{outline:3px solid #dc702e;outline-offset:3px}button:disabled{opacity:.55;cursor:default}button[aria-pressed=true]{background:var(--ink);color:var(--paper)}a{color:inherit}header{height:70px;border-bottom:1px solid #193c3b33;padding:0 4vw;display:flex;align-items:center;justify-content:space-between;gap:15px;background:var(--paper)}header a{text-decoration:none;font:800 13px system-ui;letter-spacing:2px}header nav{display:flex;gap:6px}.brand{font:700 11px system-ui;letter-spacing:2px}header button{min-width:43px;padding:8px}main{max-width:1440px;margin:auto;padding:35px 4vw 55px}[hidden]{display:none!important}.eyebrow{font:800 10px/1.5 system-ui;letter-spacing:2px;color:var(--red);text-transform:uppercase}h1,h2,h3,p{margin-top:0}h1{font-weight:600;line-height:1.06}#welcome{display:grid;grid-template-columns:1fr 1fr;gap:7vw;align-items:center;max-width:1120px;margin:auto}.cover img{width:100%;display:block;box-shadow:5px 12px 35px #1c302930;transform:rotate(-1.5deg)}.cover{max-width:475px}#welcome h1{font-size:clamp(38px,4.5vw,70px);letter-spacing:-2px}em{color:var(--red)}#tagline{font-size:19px;max-width:460px}.primary{background:var(--red);border-color:var(--red);color:white}.primary:hover{background:#943326}.start-actions{display:flex;gap:10px;flex-wrap:wrap;margin:28px 0}.features{display:flex;gap:10px;flex-wrap:wrap;font:700 10px system-ui;letter-spacing:1px}.features span{padding:7px 10px;border:1px solid #173f3c44}.muted{font:12px/1.6 system-ui;color:#54635a}#intro-note{margin:25px 0}.chapterbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;gap:20px}.chapterbar h1{font-size:clamp(25px,3vw,40px);margin:0}.chapterbar p{margin:0 0 7px}.layout{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:26px}#scene{position:relative;aspect-ratio:16/9;background:#c8b68e center/cover;border:5px solid #fff8e9;box-shadow:0 8px 25px #183f3b22;border-radius:5px;overflow:hidden}.scene-top{position:absolute;top:0;left:0;right:0;padding:14px;display:flex;justify-content:space-between;color:white;background:linear-gradient(#111b20ae,transparent);font:700 10px system-ui;letter-spacing:1px;z-index:3}#people{position:absolute;bottom:12%;right:5%;display:flex;align-items:flex-end;gap:8px;max-width:64%;height:67%}.person{position:relative;padding:0;min-height:0;background:#f7e7c9;border:3px solid #f8e9d1;box-shadow:0 4px 20px #0004;border-radius:50% 50% 8px 8px;overflow:hidden;max-width:48%;height:100%;width:170px}.person img{width:100%;height:100%;object-fit:cover;display:block}.person span{position:absolute;bottom:0;left:0;right:0;background:#183e38df;color:#fff0d3;padding:7px 3px;font:700 10px system-ui}#wall-poster{position:absolute;left:6%;top:15%;width:22%;padding:0;border:4px solid #624728;min-height:0;border-radius:0;box-shadow:3px 4px 8px #0007;transform:rotate(-3deg)}#wall-poster img{width:100%;display:block}#speech{position:absolute;bottom:0;left:0;right:0;background:#143b35eb;color:#fff1d3;font:14px/1.45 Georgia;padding:13px 18px;z-index:4}#travel{display:flex;gap:6px;flex-wrap:wrap;margin:15px 0}#travel button{font-size:11px;padding:8px 10px}#heroes{display:flex;gap:10px;border-block:1px solid #19443a33;padding:13px 0}#heroes button{display:flex;align-items:center;gap:8px;flex:1;text-align:left;padding:7px 12px}#heroes img{width:44px;height:48px;object-fit:cover;border-radius:4px}#heroes small{font-weight:400;display:block;font-size:10px}.places-actions{display:flex;gap:8px;flex-wrap:wrap;padding:14px 0}.places-actions button{font-size:12px}aside{border:1px solid #23453b44;padding:22px;background:#fcf6e7;align-self:start;border-radius:6px}aside h2{font-size:27px;line-height:1.18}#mission-detail{font:13px/1.6 system-ui}#tasks{margin:18px 0}#tasks p{font:12px/1.5 system-ui;margin:10px 0;padding-left:25px;position:relative}#tasks p:before{content:'○';position:absolute;left:0;font-size:18px;top:-4px}#tasks p.done:before{content:'✓';color:#277b44}#tasks p.done{color:#52765b}.pocket{border-top:1px solid #173e352e;margin-top:23px;padding-top:18px}#inventory{display:flex;gap:5px;flex-wrap:wrap}#inventory span{font:11px system-ui;background:#e3dfc6;padding:7px 9px;border-radius:3px}.aside-actions{display:flex;gap:7px;margin:20px 0 12px}.aside-actions button{font-size:11px;flex:1}#saved{font-size:10px;margin:12px 0 0}dialog{border:1px solid #a89974;border-radius:10px;padding:25px;width:min(680px,94vw);max-height:90dvh;overflow:auto;background:#fcf6e8;color:var(--ink);box-shadow:0 15px 80px #0006}dialog::backdrop{background:#0a282ad9}.dialog-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.dialog-top button{padding:4px;font-size:25px;border:0;background:none}dialog h2{font-size:31px;line-height:1.15}.dialog-copy{font-size:17px}.choices{display:grid;gap:9px;margin:15px 0}.choices button{text-align:left}#dialog-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:20px}.poster-large{max-height:50dvh;max-width:100%;display:block;margin:15px auto;border:8px solid #6f4c2f}.feedback{font:700 13px/1.5 system-ui;min-height:24px;color:var(--red)}.clue{padding:15px;background:#e4e5ca;border-left:3px solid #306450}.sign-card{font:700 15px system-ui;padding:16px;background:#fff;border:1px dashed #b2a580;margin:10px 0}.drivecanvas{width:100%;aspect-ratio:1.8;display:block;border-radius:7px;background:#d8cba6}.drive-status{font:700 11px system-ui;letter-spacing:1px;color:var(--red);margin:14px 0}.drive-controls{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.drive-controls button{padding:13px 5px;font-size:12px;min-height:52px}.route-choices{display:grid;gap:10px}.route-choices button{font-size:14px;text-align:left}#toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:var(--ink);color:var(--paper);padding:12px 22px;border-radius:7px;font:13px system-ui;z-index:15;pointer-events:none;opacity:0;transition:opacity .2s}#toast.show{opacity:1}footer{text-align:center;font:11px/1.6 system-ui;max-width:900px;margin:0 auto 30px;padding:0 20px;color:#697065}.ending{padding:20px;background:#e9e6cb}.ending h3{font-size:26px}.review-item{padding:10px 0;border-bottom:1px solid #173f3c22;font:13px system-ui}.stars{color:var(--red);font-size:24px;letter-spacing:5px}@media(max-width:950px){.layout{grid-template-columns:1fr 245px;gap:15px}aside{padding:16px}#speech{font-size:12px;padding:10px}.person{width:130px}}@media(max-width:720px){.brand{display:none}header{height:62px;padding-inline:4vw}main{padding-top:24px}#welcome{grid-template-columns:1fr;gap:30px}.cover{max-width:320px;margin:auto}.welcome-copy{text-align:center}#welcome h1{font-size:40px;letter-spacing:-1px}.start-actions,.features{justify-content:center}#tagline{margin-inline:auto}.layout{grid-template-columns:1fr}.chapterbar{gap:10px}.chapterbar h1{font-size:27px}.chapterbar button{font-size:11px}#scene{aspect-ratio:4/3}#people{height:55%;bottom:19%}#speech{font-size:12px;min-height:56px}#wall-poster{top:20%;width:23%}.scene-top{font-size:9px}#heroes small{font-size:9px}aside{padding:20px}#tasks{display:grid;grid-template-columns:1fr 1fr;gap:0 10px}.drive-controls button{font-size:11px}dialog{padding:20px}.person span{font-size:9px}#dialog-body{font-size:15px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto;transition:none!important}}
#people{width:58%;justify-content:flex-end}.person{flex:0 1 170px;height:85%;border-radius:10px}.person img{object-position:50% 20%}@media(max-width:720px){#people{width:60%;right:4%}.person{height:100%;flex-basis:130px}}
:root{--ink:#172f61;--paper:#f2e7d6;--red:#bd493d;--gold:#e6b359}body{background-image:radial-gradient(#9c698422 1px,transparent 1px)}header nav{display:flex;gap:7px}header nav button{min-width:44px;padding:8px}#scene{background-position:center;background-size:100% 100%;isolation:isolate}.person{max-width:46%;height:82%;background:#d9e9ee;border-color:#f9ecd0}.person span{background:#172f61eb}#photo-frame{position:absolute;left:5%;top:14%;width:20%;min-height:0;padding:0;border:7px ridge #caa052;border-radius:2px;background:#c6a666;box-shadow:2px 5px 8px #0006;transform:rotate(-2deg);z-index:2}#photo-frame img{width:100%;display:block}#heroes{margin-top:15px}.scene-top{background:linear-gradient(#102346cb,transparent)}#speech{background:#15294ce8}.volume-control{display:flex;align-items:center;gap:10px;font:11px system-ui;margin-top:20px}.volume-control input{width:100%;min-width:0;accent-color:#bc493c}.volume-control span{flex-shrink:0}#music-title{font-size:10px;margin:10px 0}.choices{display:grid;gap:10px}.choices button{text-align:left}.paper-pieces{display:grid;gap:10px;margin:20px 0}.paper-pieces button{padding:18px}.game-stage{height:300px;position:relative;overflow:hidden;background:url('assets/dojo.jpg') center/cover;border:3px solid #d4ac5f;border-radius:8px;margin:18px 0;isolation:isolate}.game-stage .fighter{position:absolute;bottom:3%;height:90%;width:34%;object-fit:contain;transition:transform .3s;filter:drop-shadow(3px 5px 3px #0005)}.fighter.hero{left:10%;z-index:2}.fighter.rival{right:8%;transform:scaleX(-1)}.fighter.hero.success{transform:translateX(25px) rotate(-4deg)}.fighter.hero.jump{transform:translateY(-65px)}.fighter.hero.duck{transform:translateY(45px) scaleY(.65)}.fighter.hero.left{transform:translateX(-55px)}.fighter.hero.right{transform:translateX(55px)}.fighter.rival.attack{transform:scaleX(-1) translateX(30px) rotate(5deg)}.cue{position:absolute;top:12px;left:0;right:0;text-align:center;z-index:3;pointer-events:none}.cue span{display:inline-block;background:#fff3d9eb;border:2px solid #b33e32;padding:7px 18px;color:#713020;border-radius:7px;font:800 24px system-ui}.controls{display:flex;justify-content:center;gap:10px;flex-wrap:wrap}.controls button{min-width:115px;min-height:50px}.round-status{font:800 11px system-ui;letter-spacing:1px;color:#a44337;margin:15px 0}.balance-track{height:45px;position:relative;background:#b74b3b;border-radius:10px;margin:28px 0;border:2px solid #705a37;overflow:hidden}.balance-safe{position:absolute;left:35%;width:30%;height:100%;background:#94ba73}.balance-needle{position:absolute;top:0;width:6px;height:100%;background:#fff5d8;box-shadow:0 0 0 2px #243957;transform:translateX(-50%)}.balance-progress{height:9px;background:#d7cfb9;border-radius:5px;margin:12px 0;overflow:hidden}.balance-progress span{height:100%;display:block;background:#4e844c;width:0}.balance-score{font:700 16px system-ui;text-align:center}.assist-note{font:12px/1.6 system-ui;color:#59684b}.rhythm-buttons{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:20px 0}.rhythm-buttons button{height:100px;font-size:17px;border:3px solid #c6a75d;box-shadow:0 5px #9b7849}.rhythm-buttons button:nth-child(1){background:#e4ce7d}.rhythm-buttons button:nth-child(2){background:#a9d2cf}.rhythm-buttons button:nth-child(3){background:#dbafa3}.rhythm-buttons .lit{outline:5px solid #bd493d;transform:translateY(3px);filter:brightness(1.25)}.rhythm-view{min-height:50px;display:grid;place-items:center;background:#e6e1ca;border-radius:7px;font:700 21px Georgia;text-align:center;padding:10px}.lanterns{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:30px 0}.lantern{height:145px;border-radius:35px;border:3px solid #80633d;box-shadow:inset 0 0 0 8px #ffffff33;font-size:17px;position:relative;white-space:pre-line}.lantern:after{content:'';width:8px;height:25px;background:#6d5032;position:absolute;bottom:-26px;left:calc(50% - 4px)}.evidence-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:20px 0}.evidence-grid button{min-height:110px;padding:18px;text-align:left}.evidence-grid button[aria-pressed=true]{background:#1d4b62;color:white}.score-stars{font-size:25px;color:#ba493c;letter-spacing:4px}.poster-large{max-height:53dvh;max-width:100%;display:block;margin:20px auto;border:9px ridge #caa052}.timer-row{display:flex;align-items:center;gap:10px;font:12px system-ui;margin:15px 0}.game-obstacle{position:absolute;left:55%;top:36%;padding:15px;font-size:38px;background:#f9ead2e8;border:2px solid #c79352;border-radius:12px;min-width:100px;text-align:center}.ending-heroes{display:flex;justify-content:center;height:210px;margin:20px 0}.ending-heroes img{height:100%;max-width:48%;object-fit:contain}.progress-label{font:12px system-ui;text-align:center}#dialog-body:after{content:'';display:block;clear:both}@media(max-width:720px){.game-stage{height:240px}.controls button{min-width:90px;padding:12px 9px}.rhythm-buttons button{height:80px;font-size:13px}.lanterns{gap:12px}.lantern{height:120px;font-size:13px}.evidence-grid{gap:8px}.evidence-grid button{padding:12px;font-size:12px}#photo-frame{border-width:5px;width:23%;top:16%}#scene{aspect-ratio:4/3}.person{height:100%}}@media(prefers-reduced-motion:reduce){.fighter{transition:none!important}.rhythm-buttons .lit{transform:none}}


dialog{max-height:90dvh;overflow:auto}dialog h2{line-height:1.15}
