:root{color-scheme:dark;font-family:'Hiragino Kaku Gothic ProN','Yu Gothic',sans-serif;background:#0b1019;color:#e4e6e9}*{box-sizing:border-box}body{margin:0}main{max-width:1080px;margin:auto;padding:26px 28px}header{position:relative;border-bottom:1px solid #394453;padding-bottom:18px}.eyebrow{font-size:10px;letter-spacing:.3em;color:#c5a773}h1{font-family:serif;font-size:30px;letter-spacing:.14em;margin:10px 0}#sceneTitle{color:#aebac7;font-size:13px}nav{display:flex;gap:8px;position:absolute;right:0;top:12px}button{font:inherit;background:#172130;color:#e4e6e9;border:1px solid #516072;border-radius:3px;padding:11px 16px;cursor:pointer;min-height:44px}button:hover{background:#283951}button:focus-visible{outline:3px solid #ead5a9;outline-offset:3px}#stage{position:relative;aspect-ratio:2/1;overflow:hidden;background:#17232e;margin-top:18px;border:1px solid #394453}#backdrop{position:absolute;inset:0;background:linear-gradient(0deg,#121a24ee,#15243766),repeating-linear-gradient(90deg,transparent 0 20%,#9bafbb35 20% 20.5%),linear-gradient(135deg,#52616b,#17232e 55%,#534236)}#backdrop:after{content:attr(data-label);position:absolute;left:6%;top:9%;font-family:serif;font-size:clamp(18px,3vw,32px);letter-spacing:.2em;color:#c7c4bb}#portrait{position:absolute;right:10%;bottom:0;width:20%;height:75%;background:linear-gradient(110deg,#8292a3,#293746 65%);clip-path:polygon(37% 0,64% 0,73% 8%,72% 25%,65% 30%,78% 36%,95% 100%,3% 100%,23% 36%,35% 30%,28% 22%,29% 8%);opacity:.8}#targets{position:absolute;inset:0}.target{position:absolute;width:29%;min-height:55px;border:2px dashed #ed8787;background:#14202ce8;font-size:13px;padding:8px}.target.done{border-style:solid;border-color:#809b91;color:#b6cebf}#combat{position:absolute;inset:0;width:100%;height:100%;display:none;touch-action:manipulation;cursor:crosshair}#hud{position:absolute;top:0;left:3%;font-size:14px;pointer-events:none}.panel{background:#101925;border:1px solid #394453;border-top:0;padding:22px 26px;min-height:230px}#progress{font-size:12px;color:#bca271;letter-spacing:.06em}#text{font-size:17px;line-height:1.95;white-space:pre-wrap;min-height:70px;margin:10px 0 22px}#choices{display:grid;gap:10px}#choices button{text-align:left}#next{display:block;margin-left:auto;min-width:120px}#notice{color:#c9b383;font-size:13px}footer{font-size:11px;color:#8391a1;margin:18px 0}@media(max-width:600px){main{padding:14px 12px}nav{position:static;flex-wrap:wrap}h1{font-size:25px}#stage{aspect-ratio:1.25}#portrait{width:28%;right:6%}.target{width:43%;font-size:12px}.panel{padding:16px}#text{font-size:16px;min-height:100px}button{padding:10px 12px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto}}
[hidden]{display:none!important}
.site-nav{position:static;display:flex;gap:16px;margin:0 0 16px;font-size:12px}.site-nav a{color:#c5d7e5;text-decoration:none}.site-nav a:hover{text-decoration:underline}
/* Original generated character cutout, retained in assets/ with prompt and provenance. */
#portrait{width:38%;height:96%;right:2%;background:url('./assets/air-rich.png') center bottom/contain no-repeat;clip-path:none;opacity:1}
@media(max-width:600px){#portrait{width:48%;right:1%;height:94%}}
#backdrop.office{background:linear-gradient(0deg,#0b11172b,#0b111710),url('./assets/office-night.png') center/cover no-repeat}
#backdrop.office:after{background:#101721b3;padding:7px 12px;font-size:14px;letter-spacing:.12em}

#backdrop.pawnshop{background:linear-gradient(0deg,#0b11172b,#0b111710),url('./assets/pawnshop.png') center/cover no-repeat}

#backdrop.canal-room{background:linear-gradient(0deg,#0b11172b,#0b111710),url('./assets/canal-room.png') center/cover no-repeat}

#backdrop.manor-room{background:linear-gradient(0deg,#0b11172b,#0b111710),url('./assets/manor-room.png') center/cover no-repeat}

#backdrop:after{background:#101721b3;padding:7px 12px;font-size:14px;letter-spacing:.12em}

#backdrop.hospital{background:linear-gradient(0deg,#0b11172b,#0b111710),url('./assets/hospital.png') center/cover no-repeat}

#backdrop.inspection{background:linear-gradient(0deg,#0b11172b,#0b111710),url('./assets/inspection.png') center/cover no-repeat}

#backdrop.parking{background:linear-gradient(0deg,#0b11172b,#0b111710),url('./assets/parking.png') center/cover no-repeat}

#backdrop.scan-pending:before{content:"検査待機";position:absolute;left:0;top:0;width:25%;height:64%;background:#101a23;color:#b1ccd2;display:grid;place-items:center;font-size:14px}
#portrait.escape{background-image:url('./assets/air-escape.png');right:29%;width:35%}
#portrait.jump{animation:escape-jump .85s ease-out both}
#portrait.dash{animation:escape-dash .45s ease-in both}
#effects{position:absolute;inset:0;pointer-events:none}
#stage[data-effect="blast"] #effects{background:radial-gradient(ellipse at 14% 50%,#f8d9a2ba,#5a535a88 27%,transparent 68%);animation:blast .8s ease-out both}
#stage[data-effect="smoke"] #effects{background:radial-gradient(ellipse at 45% 75%,#c0c8d8d9,transparent 75%)}
@keyframes escape-jump{from{transform:translate(-110%,-75%) scale(.7)}to{transform:translate(0,0) scale(1)}}
@keyframes escape-dash{from{transform:translateX(0);opacity:1}to{transform:translateX(300%);opacity:0}}
@keyframes blast{from{opacity:1}to{opacity:.3}}
@media(prefers-reduced-motion:reduce){#portrait.jump,#portrait.dash,#stage[data-effect="blast"] #effects{animation:none}#portrait.dash{opacity:0}}
