@font-face{font-family:DotGothic;src:url('assets/DotGothic16-Regular.ttf') format('truetype');font-display:swap}
*{box-sizing:border-box}body{margin:0;background:#0b211e;color:#eee7ce;font-family:Arial,Helvetica,sans-serif}a{color:inherit;text-underline-offset:4px}button,input,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.45;cursor:default}[hidden]{display:none!important}button,a,input,select{touch-action:manipulation}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #efc86e;outline-offset:3px}.skip{position:absolute;left:12px;top:-70px;z-index:100;padding:12px;background:#f4dfab;color:#18362b}.skip:focus{top:12px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.site-header{max-width:1200px;margin:auto;padding:24px 32px;border-bottom:1px solid #385448;display:flex;justify-content:space-between;align-items:center;gap:24px}.brand{font-weight:bold;letter-spacing:2px;text-decoration:none}.site-header nav{display:flex;gap:20px;font-size:12px}body:not(.player-page) main{max-width:1150px;margin:auto;padding:0 28px}.heading{padding:30px 0 20px}h1,h2{font-family:Georgia,serif;font-weight:400;color:#f4dfaa}h1{font-size:38px}body:not(.player-page) p,body:not(.player-page) li{line-height:1.8}
.player-page{height:100dvh;overflow:hidden;display:grid;place-items:center}.player-main{width:100%;height:100%;padding:8px;max-width:1800px;margin:0}.game-shell{height:100%;width:100%;position:relative;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto auto auto;border:1px solid #7b8765;background:#102d26;box-shadow:0 10px 40px #0005;overflow:hidden;color:#f3e8c8}.game-shell:fullscreen{max-width:none;border:0;background:#102d26}.game-header{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 18px;border-bottom:1px solid #53664d;background:#122f28}.game-brand{display:flex;align-items:center;gap:11px;min-width:0}.game-brand>span{font-size:26px;color:#e4ba59}.game-brand h1{font-size:25px;line-height:1;margin:0;white-space:nowrap}.game-brand small{font-size:17px;color:#e0d5b0}.header-controls{display:flex;align-items:center;gap:7px}.game-shell button{min-height:42px;border:1px solid #84916d;background:#1e4333;color:#f2e5bd;padding:8px 13px;font:13px DotGothic,monospace}.game-shell button:hover{background:#31543b}.header-controls #ai-toggle{background:#e4c67f;color:#19382b;border-color:#f5dfaa}.header-controls button{white-space:nowrap}.game-top{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:7px 18px;font-size:11px;color:#adbea4}.game-top #location{color:#efcf7a;font-weight:bold;margin-right:auto}.game-top #preparations{font-size:10px}
.screen{position:relative;min-height:0;container-type:inline-size;overflow:hidden;background:#143629}.scene{position:absolute;inset:0;overflow:hidden}.scene>img{display:block;width:100%;height:100%;object-fit:cover;image-rendering:pixelated}.character{position:absolute;bottom:0;height:94%;width:33%;max-width:430px;container-type:size;pointer-events:none;opacity:1;filter:brightness(.84);transition:filter .18s,opacity .18s}.character-left{left:3%}.character-right{right:3%}.character.is-speaker{opacity:1;filter:brightness(1) drop-shadow(0 3px 4px #10251d55)}.sprite-frame{position:absolute;bottom:0;left:50%;transform:translateX(-50%);height:min(100cqh,calc(100cqw / var(--cell-ratio,.8)));width:min(100cqw,calc(100cqh * var(--cell-ratio,.8)));overflow:hidden;background:transparent;border:0}.sprite-frame img{position:absolute;top:0;left:0;max-width:none;width:calc(100% * var(--columns,1));height:100%;object-fit:fill;transform:translateX(calc(var(--cell,0) * -100% / var(--columns,1)));image-rendering:pixelated}
.game-shell .message{width:100%;min-height:112px;max-height:26dvh;overflow-y:auto;position:relative;display:block;text-align:left;background:#f3e9cf!important;color:#20332b!important;border:0!important;border-top:2px solid #c0a665!important;border-bottom:1px solid #c0a665!important;padding:13px 24px 22px!important;line-height:1.5}.message #speaker{display:block;color:#866124;font:bold 14px DotGothic,monospace;margin-bottom:5px}.message #dialogue{display:block;font:clamp(14px,1.35vw,20px)/1.55 DotGothic,monospace;white-space:pre-line;max-width:1250px}.message #advance{position:absolute;right:16px;bottom:5px;font:10px Arial;color:#7d6a40}.message.is-speaking #speaker::after{content:' · speaking Japanese';font:9px Arial;letter-spacing:.05em;color:#9d895d}.command-bar{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:5px;padding:8px 12px;background:#15382b}.command-bar button{min-width:0;background:#ddce9f;color:#19372a;border-color:#9eaa7f}.command-bar button:hover,.command-bar button[aria-expanded=true]{background:#efd18b}.command-bar kbd{font:10px monospace;color:#7b704a;margin-right:7px}.command-bar #replay-voice{background:#244836;color:#dfd9ba}.game-status{display:flex;gap:18px;align-items:center;justify-content:space-between;padding:5px 15px 7px;color:#aabc9d;font-size:10px;line-height:1.4;min-height:28px}.game-status #status{color:#e5cf99;text-align:right;max-width:60%}.command-popup{position:absolute;z-index:8;left:2%;bottom:3%;width:min(490px,52%);height:min(440px,90%);display:flex;flex-direction:column;background:#f2e8ca;color:#23382a;border:2px solid #c1a45d;box-shadow:4px 4px 0 #081c1b66}.popup-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:9px 15px;border-bottom:1px solid #bcb798;font:17px DotGothic,monospace}.popup-heading strong{font-weight:400}.game-shell .popup-heading button{border:0;background:transparent;color:#32422c;font-size:25px;padding:0 8px}.command-popup #menu-options{overflow:auto;flex:1;padding:7px}.game-shell .menu-option{display:block;text-align:left;width:100%;min-height:44px;border:0;background:transparent;color:#203629;font:16px/1.4 DotGothic,monospace;padding:9px 12px}.game-shell .menu-option:hover,.game-shell .menu-option:focus,.game-shell .menu-option.ai-selected{background:#2a4e35;color:#fff1c5}.menu-option.ai-selected{box-shadow:inset 3px 0 #f0c168}
.title-screen{position:absolute;inset:0;z-index:10;display:grid;align-items:center;background:linear-gradient(90deg,#102b27f5,#102b27b0 55%,#102b2720),url('assets/original-v0.4.0/backgrounds/exterior.png') center/cover;overflow:auto}.title-hero{position:absolute;right:2%;bottom:0;height:93%;width:48%;background:url('assets/original-v0.4.1/portraits/akiko.png') center bottom/contain no-repeat;pointer-events:none}.title-card{position:relative;text-align:center;width:55%;max-width:700px;padding:18px 20px;text-shadow:2px 2px #10261f}.gold-heart{font-size:42px;color:#ecc669;line-height:1}.title-kicker{font:10px DotGothic,monospace;letter-spacing:.16em;margin:8px 0}.title-card h2{font:clamp(32px,5.2vw,72px)/1 Georgia;margin:8px 0 15px}.title-card h2 span{display:block;font-size:.58em;margin-top:8px}.title-card>p{font:15px/1.55 DotGothic,monospace}.title-actions{display:grid;gap:7px;width:min(270px,100%);margin:17px auto}.title-actions button{background:#e5cc8d;color:#20392b;border-color:#f3e0b1}.title-actions button:not(:first-child){background:#214833;color:#f1e5bf;border-color:#7b936c}.title-card .language-note{font:10px Arial;color:#c5cbae;letter-spacing:.06em}.game-shell:has(#title-screen:not([hidden]))>.message{display:none}.game-shell:has(#title-screen:not([hidden])) .game-top #preparations{visibility:hidden}
/* Both dialogs occupy the same measured game frame, including in full screen. */
.game-shell dialog{position:fixed;inset:auto;left:var(--game-left,8px);top:var(--game-top,8px);width:var(--game-width,calc(100vw - 16px));height:var(--game-height,calc(100dvh - 16px));max-width:none;max-height:none;margin:0;padding:0;border:1px solid #a99a60;background:#102d26;color:#f0e7cc;box-shadow:none;overflow:hidden}.game-shell dialog::backdrop{background:transparent}.game-shell dialog[open]{display:flex;flex-direction:column}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-shrink:0;padding:14px 22px;border-bottom:1px solid #637454;background:#183d2e}.modal-head h2{font:27px Georgia;margin:0}.game-shell .modal-head button{font-size:25px;background:transparent;border:0;min-width:44px}.modal-scroll{overflow:auto;flex:1;padding:18px 24px 26px;overscroll-behavior:contain}.modal-scroll h3{font:22px Georgia;color:#e9d398;margin:0 0 12px}.modal-scroll p{font-size:14px;line-height:1.8;max-width:950px}.modal-scroll section{margin-bottom:20px}.ai-controls{display:flex;gap:16px;align-items:center;flex-wrap:wrap}.ai-controls label{display:flex;gap:9px;align-items:center;font-size:13px}.ai-controls select{background:#f0e6c9;color:#233b2b;padding:10px;border:1px solid #b6bc92;max-width:260px;min-height:43px}.game-bottom{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:14px 0 20px}.game-bottom button[aria-pressed=true]{border-color:#d1b76c}.volume-label{display:flex;align-items:center;gap:12px;font-size:12px}.volume-label input{width:130px;accent-color:#e5c067}.menu-actions{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0}.save-list{border:1px solid #5e7253;margin:20px 0}.save-list summary{cursor:pointer;padding:13px 16px;color:#efda9f;background:#1d4231;font-size:15px}.save-list .slots{padding:0 16px}.slot{display:flex;gap:8px;align-items:center;justify-content:space-between;border-bottom:1px solid #435d42;padding:11px 0}.slot:last-child{border:0}.slot>div{flex:1}.slot strong{font-size:13px}.slot small{display:block;font-size:11px;line-height:1.8;color:#acbd9f}.modal-section{border-bottom:1px solid #496243;padding:12px 0 16px}.modal-section h3{font-size:21px}.ending-heading{font:30px Georgia!important;color:#e3c16d!important}.ending-stars{color:#ebc568;font-size:25px;letter-spacing:9px}.about-links{display:flex;gap:16px;flex-wrap:wrap;font-size:12px;line-height:1.8;padding-top:15px;border-top:1px solid #405c42}
.cinema-header{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:12px 20px;border-bottom:1px solid #5f7150;color:#d8c58b;font:12px DotGothic,monospace}.cinema-header p{margin:0;font:10px Arial;color:#aebc9f}.cinema-stage{position:relative;flex:1;min-height:0;overflow:hidden;background:#183b2d}.cinema-stage>img{display:block;width:100%;height:100%;object-fit:cover;image-rendering:pixelated}.cinema-copy{flex-shrink:0;padding:15px 25px 9px;background:#102d26}.cinema-copy h2{font:24px Georgia;margin:0 0 8px}.cinema-copy #cinema-speaker{font:13px DotGothic,monospace;color:#e3c177;margin:0 0 5px}.cinema-copy #cinema-text{font:clamp(14px,1.35vw,19px)/1.6 DotGothic,monospace;margin:0;max-width:1300px}.cinema-controls{display:flex;gap:9px;padding:11px 24px 15px;flex-shrink:0;background:#102d26}.game-shell .cinema-controls button{background:#dfca91;color:#193729;border-color:#f0da9d}.game-shell .cinema-controls button:last-child{margin-left:auto;background:#234a34;color:#eee1b7;border-color:#718a60}#cinema.showing-credits .cinema-stage{position:absolute;inset:0;height:100%;opacity:.17;pointer-events:none}#cinema.showing-credits .character{display:none}#cinema.showing-credits .cinema-header,#cinema.showing-credits .cinema-copy,#cinema.showing-credits .cinema-controls{position:relative;z-index:1}#cinema.showing-credits .cinema-copy{flex:1;display:flex;flex-direction:column;justify-content:center;text-align:center;background:transparent}#cinema.showing-credits h2{font-size:36px;margin-bottom:24px}#cinema-credit-lines p{font:17px/1.8 DotGothic,monospace;margin:8px 0}
@media(max-width:700px){.player-main{padding:0}.game-shell{border:0}.game-header{padding:8px 9px;gap:6px}.game-brand{gap:5px}.game-brand>span{font-size:21px}.game-brand h1{font-size:21px}.game-brand small{display:block;font-size:11px;margin-top:4px}.header-controls{gap:4px}.header-controls button{font-size:11px;padding:6px 8px;min-height:42px}.header-controls #fullscreen-toggle{font-size:19px;padding:4px 8px}.header-controls #fullscreen-toggle span{display:none}.game-top{font-size:9px;gap:8px;padding:6px 10px;flex-wrap:wrap}.game-top #preparations{display:none}.character{width:43%;height:86%}.character-left{left:0}.character-right{right:0}.game-shell .message{min-height:130px;max-height:30dvh;padding:10px 14px 20px!important}.message #speaker{font-size:12px}.message #dialogue{font-size:14px;line-height:1.55}.message #advance{font-size:9px}.command-bar{grid-template-columns:repeat(3,minmax(0,1fr));padding:6px;gap:4px}.command-bar button{font-size:12px;padding:8px 5px;min-height:42px}.command-bar kbd{display:none}.game-status{min-height:30px;padding:4px 8px;font-size:9px;gap:8px}.game-status #status{max-width:50%}.command-popup{width:94%;left:3%;bottom:3%;height:92%;max-height:470px}.game-shell .menu-option{font-size:15px}.title-card{width:61%;padding:12px 9px}.title-card h2{font-size:35px;margin:5px 0 10px}.title-card>p{font-size:12px;line-height:1.45}.title-kicker{font-size:7px}.gold-heart{font-size:31px}.title-actions{gap:6px;margin:12px auto}.title-actions button{font-size:11px;padding:7px 8px;min-height:39px}.title-card .language-note{font-size:8px;line-height:1.6}.title-hero{width:50%;right:-5%;height:85%}.modal-head{padding:12px 14px}.modal-scroll{padding:15px 14px 22px}.ai-controls{gap:10px}.ai-controls label{width:100%;justify-content:space-between}.ai-controls select{width:75%;max-width:none;font-size:13px}.game-bottom{gap:8px}.game-bottom button{font-size:12px}.slot{flex-wrap:wrap}.slot>div{min-width:120px}.cinema-header{padding:12px;font-size:10px;gap:10px}.cinema-header p{font-size:9px}.cinema-copy{padding:12px 15px 6px}.cinema-copy h2{font-size:21px}.cinema-copy #cinema-speaker{font-size:12px}.cinema-copy #cinema-text{font-size:14px;line-height:1.6}.cinema-controls{padding:10px 13px 13px;gap:6px}.game-shell .cinema-controls button{font-size:11px;padding:9px 11px}#cinema.showing-credits h2{font-size:28px}#cinema-credit-lines p{font-size:14px}.site-header{padding:20px 16px;flex-wrap:wrap}.brand{font-size:14px}.site-header nav{font-size:11px}body:not(.player-page) main{padding:0 16px}}
@media(max-height:540px) and (min-width:701px){.game-header{padding:5px 13px}.game-top{padding:4px 13px}.game-shell .message{min-height:85px;padding:7px 18px 16px!important}.message #dialogue{font-size:14px}.command-bar{padding:5px 10px}.command-bar button,.header-controls button{min-height:36px;padding:5px 9px}.game-status{padding:3px 12px;min-height:22px}.cinema-copy{padding:8px 20px 4px}.cinema-copy h2{font-size:20px;margin-bottom:5px}.cinema-copy #cinema-text{font-size:14px}.cinema-controls{padding:7px 20px 9px}.title-card{padding:8px 16px}.title-card h2{font-size:40px;margin:4px 0}.title-card>p{font-size:12px;margin:6px}.title-kicker{font-size:8px}.gold-heart{font-size:23px}.title-actions{grid-template-columns:1fr 1fr;width:390px;max-width:100%;gap:5px;margin:9px auto}.title-actions button{font-size:11px;min-height:35px;padding:5px 8px}.title-card .language-note{font-size:9px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
