:root{color-scheme:dark;--ink:#f0ece1;--muted:#b9b5ab;--gold:#c9b98f;--panel-opacity:.68;--record-height:34vh;--image-position:50%;font-family:"Yu Mincho","Hiragino Mincho ProN","Noto Serif JP",serif}
*{box-sizing:border-box}body{margin:0;background:#171918;color:var(--ink)}button,select,input{font:inherit}button{cursor:pointer;color:inherit}button:disabled{cursor:default}button:focus-visible,select:focus-visible,input:focus-visible{outline:2px solid var(--gold);outline-offset:4px}[hidden]{display:none!important}
.start-screen{position:fixed;inset:0;z-index:100;display:grid;place-items:center;overflow:hidden;background:#111 url("../assets/00.png") center/cover no-repeat;opacity:1;transition:opacity .7s ease}.start-screen.is-leaving{opacity:0;pointer-events:none}.start-screen__shade{position:absolute;inset:0;background:radial-gradient(circle at 50% 43%,rgba(12,17,20,.12),rgba(7,10,12,.55) 72%),linear-gradient(180deg,rgba(7,10,12,.18),rgba(7,10,12,.58))}.start-screen__content{position:relative;text-align:center;padding:40px 28px;text-shadow:0 3px 22px #000;animation:start-reveal 1.2s ease both}.start-screen__eyebrow{margin:0 0 18px;color:#d5c69f;font:11px Georgia,serif;letter-spacing:.42em}.start-screen h1{margin:0;font-size:clamp(42px,6vw,82px);font-weight:normal;letter-spacing:.16em}.start-screen__subtitle{margin:16px 0 46px;color:#ddd7c8;font-size:clamp(14px,1.5vw,19px);letter-spacing:.45em}.start-screen__button{min-width:220px;padding:15px 30px;border:1px solid rgba(222,210,176,.72);border-radius:2px;background:rgba(12,17,19,.42);backdrop-filter:blur(6px);color:#f1ead8;letter-spacing:.22em;transition:background .25s,border-color .25s,transform .25s}.start-screen__button:hover{background:rgba(201,185,143,.2);border-color:#eadcb7;transform:translateY(-2px)}@keyframes start-reveal{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
.game{height:100svh;min-height:650px;position:relative;isolation:isolate;overflow:hidden}.portrait{position:absolute;width:100%;height:100%;object-fit:cover;object-position:var(--image-position) center;z-index:-3}.vignette{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(7,10,12,.28),transparent 25%,transparent 52%,rgba(7,10,12,.2)),linear-gradient(90deg,rgba(7,10,12,.18),transparent 25%,transparent 75%,rgba(7,10,12,.18));z-index:-2}
.hud{position:absolute;top:28px;left:40px;right:40px;display:flex;justify-content:space-between;align-items:center}.day{font-family:Georgia,serif;letter-spacing:.14em;text-shadow:0 2px 12px #000;font-size:15px}.day strong{font-size:30px;font-weight:normal;margin-left:5px}.day span{font-size:14px;opacity:.7;margin-left:14px}.settings-toggle{border:1px solid #ffffff28;background:#161b1cb0;padding:9px 15px;font-size:12px;letter-spacing:.1em;border-radius:3px}
.dialogue-shell{position:absolute;bottom:0;left:0;right:0}.dialogue{position:relative;z-index:2;padding:23px 5vw 20px;background:linear-gradient(180deg,rgba(15,21,23,var(--panel-opacity)),rgba(12,17,19,.95));border-top:1px solid #c9b98f42;backdrop-filter:blur(8px)}.speaker{display:flex;align-items:baseline;gap:17px}.speaker h1{font-size:21px;font-weight:normal;letter-spacing:.14em;margin:0}.speaker>span{color:var(--muted);font-size:13px}.small-label{margin-left:auto;letter-spacing:.13em}.line{font-size:clamp(16px,1.3vw,21px);line-height:1.9;letter-spacing:.055em;min-height:2em;margin:15px 0 17px}.exchange-strip{display:flex;gap:25px;font-size:12px;color:var(--gold);min-height:18px;margin-bottom:12px;letter-spacing:.05em}.options{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.option{border:1px solid #dbd4b642;background:#ffffff05;padding:14px 20px;min-height:52px;display:flex;align-items:center;justify-content:space-between;letter-spacing:.15em;transition:background .2s,border-color .2s}.option:hover{background:#d0c29b16;border-color:#d4c49d90}.option.selected{background:#bbaa7c25;border-color:var(--gold)}.option span:last-child{font-family:Georgia,serif;font-size:12px;color:#b9b5ab}.actions{display:flex;justify-content:space-between;align-items:center;margin-top:14px;gap:20px}.actions>span{font-size:11px;color:var(--muted);letter-spacing:.05em}.exchange{border:0;background:transparent;color:var(--gold);padding:8px 0 8px 20px;letter-spacing:.13em;min-width:145px;text-align:right}.exchange span{margin-left:25px}.exchange:disabled{opacity:.35}
.record{position:absolute;bottom:100%;left:0;right:0;height:var(--record-height);padding:26px 5vw 20px;background:rgba(16,23,25,.94);border-top:1px solid #c9b98f55;backdrop-filter:blur(14px);transform:translateY(105%);visibility:hidden;transition:transform .38s ease,visibility .38s;z-index:0;display:flex;flex-direction:column}.dialogue-shell.record-open .record{transform:translateY(0);visibility:visible}.record-tab{position:absolute;bottom:100%;right:5vw;z-index:3;display:flex;align-items:center;gap:16px;border:1px solid #c9b98f55;border-bottom:0;background:rgba(16,23,25,.92);padding:12px 20px 10px;border-radius:8px 8px 0 0;font-size:13px;letter-spacing:.07em;transition:bottom .38s ease}.record-open .record-tab{bottom:calc(100% + var(--record-height))}.record-head{display:flex;justify-content:space-between;align-items:center}.eyebrow{font:10px Georgia,serif;letter-spacing:.25em;color:var(--gold)}.record h2{font-size:21px;letter-spacing:.13em;font-weight:normal;margin:8px 0 0}.record-status{font-size:12px;color:var(--muted)}.record-guide{font-size:12px;color:var(--muted);margin:15px 0}.memories{overflow:auto;display:grid;grid-template-columns:repeat(3,1fr);gap:10px;align-content:start;padding:3px 4px 8px 0;flex:1}.memory{background:#ffffff04;border:1px solid #ffffff20;text-align:left;padding:13px 16px;line-height:1.7}.memory strong{font-size:12px;font-weight:normal;display:block;color:var(--gold);letter-spacing:.12em;margin-bottom:5px}.memory p{font-size:13px;margin:0;color:#dedbd2}.memory.selected{border-color:var(--gold);background:#c9b98f18}.memory.invalid{border-left:3px solid #c68172}.contradictions{font-size:11px;color:#d4a08e;max-height:42px;overflow:auto;margin-top:9px}.conflict-badge{font-size:11px;color:#d4a08e}.conflict-badge:empty{display:none}
.settings{position:absolute;top:76px;right:40px;width:290px;padding:20px;background:#141c20f5;border:1px solid #c9b98f45;z-index:8;box-shadow:0 10px 50px #0005;font-family:"Yu Gothic",sans-serif;font-size:12px}.settings-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.settings-head button{background:none;border:0;font-size:22px}.settings label{display:block;margin:16px 0;color:#d5d0c5}.settings select{display:block;width:100%;margin-top:8px;padding:7px;background:#273034;border:1px solid #ffffff30;color:inherit;font-size:12px}.settings input{width:100%;display:block;margin-top:9px;accent-color:var(--gold)}.settings output{float:right;color:var(--gold)}.settings p{color:#a6a8a3;font-size:10px;line-height:1.8}.reset{width:100%;padding:10px;background:none;border:1px solid #c9b98f45;font-size:12px}
.modal-backdrop{position:absolute;inset:0;z-index:12;background:#080e13ad;backdrop-filter:blur(6px);display:grid;place-items:center}.confirm-card{background:#172024f5;border:1px solid #c9b98f66;padding:36px 42px;max-width:560px;width:90%;box-shadow:0 20px 80px #0008}.confirm-card h2{font-size:22px;font-weight:normal;letter-spacing:.08em;margin:18px 0 26px}.confirm-card p{line-height:1.9;font-size:14px;white-space:pre-line}.confirm-note{color:var(--muted);font-size:12px!important;margin:25px 0}.confirm-actions{display:flex;justify-content:flex-end;gap:12px}.confirm-actions button{padding:12px 18px;border:1px solid #c9b98f55;background:none;font-size:13px}.confirm-actions button:last-child{background:#c9b98f25;color:#e9d9b0}
@media(max-height:760px){.game{min-height:540px}.dialogue{padding-top:16px;padding-bottom:12px}.line{margin:10px 0;font-size:16px}.option{padding:10px 18px;min-height:44px}.record{padding-top:18px}.record-guide{margin:10px 0}.record h2{font-size:18px}.memory{padding:9px 12px}.memory p{font-size:12px}}
@media(max-width:850px){.hud{left:24px;right:24px;top:20px}.dialogue{padding-left:24px;padding-right:24px}.record{padding-left:24px;padding-right:24px}.memories{grid-template-columns:repeat(2,1fr)}.record-tab{right:24px}.settings{right:24px}.options{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.option{padding:12px;font-size:14px}.actions>span{max-width:60%;line-height:1.6}.exchange-strip{gap:10px;flex-wrap:wrap}.line{font-size:16px}.small-label{display:none}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important}}

/* Conversation stays on the left while the full-height record is open. */
:root{--record-width:25vw;--window-blur:8px;--window-border:.25}
.dialogue-shell{transition:right .38s ease}
.dialogue-shell.record-open{right:var(--record-width)}
.dialogue{background:rgba(12,18,21,var(--panel-opacity));border-top-color:rgba(201,185,143,var(--window-border));backdrop-filter:blur(var(--window-blur));text-shadow:0 1px 4px #000,0 0 12px #0008;min-height:210px}
.record{position:fixed;inset:0 0 0 auto;width:var(--record-width);height:100svh;padding:28px 20px 18px;transform:translateX(100%);background:rgba(12,18,21,var(--panel-opacity));border-top:0;border-left:1px solid rgba(201,185,143,var(--window-border));backdrop-filter:blur(var(--window-blur));z-index:4;text-shadow:0 1px 4px #000;transition:transform .38s ease,visibility .38s}
.dialogue-shell.record-open .record{transform:translateX(0)}
.record-head{display:block}.record-status{display:block;margin-top:12px}.memories{display:flex;flex-direction:column;min-height:0;gap:9px}.memory{flex:none;padding:12px;text-shadow:0 1px 4px #000}.record-guide{line-height:1.8}.contradictions{max-height:80px;flex-shrink:0;line-height:1.7}
.record-open .record-tab{bottom:100%;right:0}.record-tab{transition:right .38s ease;background:rgba(12,18,21,var(--panel-opacity));text-shadow:0 1px 4px #000}
.record-open .dialogue{padding-left:4vw;padding-right:3vw}.record-open .option{padding:12px;letter-spacing:.07em}
.transparent-windows .option,.transparent-windows .memory,.transparent-windows .record-tab{background:transparent;border-color:transparent}
.transparent-windows .option.selected,.transparent-windows .memory.selected{background:transparent;border-color:var(--gold)}
.hud{z-index:5}.exchange-strip:empty{display:none}.options:empty{display:none}
.game:has(.record-open) .hud{right:calc(var(--record-width) + 24px)}
@media(max-width:850px){.record{padding:22px 12px}.record h2{font-size:17px}.memory p{font-size:11px}.record-status,.record-guide{font-size:11px}.record-open .options{gap:6px}.record-open .option{font-size:12px}.record-open .option span:last-child{display:none}}
.record-tab,.record-open .record-tab{position:fixed;top:28px;right:24px;bottom:auto;z-index:6;border:1px solid #c9b98f40;border-radius:3px;padding:9px 14px;font-size:12px;gap:10px;transition:none}
#recordArrow{font-family:Georgia,serif;letter-spacing:.1em;color:var(--gold)}
.record{padding-top:90px}
.hud,.game:has(.record-open) .hud{right:calc(var(--record-width) + 24px)}
@media(max-width:850px){.record-tab,.record-open .record-tab{top:20px;right:12px;padding:8px;font-size:11px}.record{padding-top:78px}}

/* Quiet scroll controls for the transparent life record. */
.memories,.contradictions{scrollbar-width:thin;scrollbar-color:rgba(201,185,143,.38) transparent}
.memories::-webkit-scrollbar,.contradictions::-webkit-scrollbar{width:5px;height:5px}
.memories::-webkit-scrollbar-track,.contradictions::-webkit-scrollbar-track{background:transparent}
.memories::-webkit-scrollbar-thumb,.contradictions::-webkit-scrollbar-thumb{background:rgba(201,185,143,.38);border-radius:10px}
.memories::-webkit-scrollbar-thumb:hover,.contradictions::-webkit-scrollbar-thumb:hover{background:rgba(201,185,143,.65)}
.memories::-webkit-scrollbar-button,.contradictions::-webkit-scrollbar-button{display:none;width:0;height:0}
.memories::-webkit-scrollbar-corner,.contradictions::-webkit-scrollbar-corner{background:transparent}
@media(forced-colors:active){.memories,.contradictions{scrollbar-color:auto}}

/* The record ends above the dialogue; opening it never reflows dialogue. */
.dialogue-shell,.dialogue-shell.record-open{right:0;transition:none}
.record{bottom:var(--dialogue-height,250px);height:auto}
.record-open .dialogue{padding-left:5vw;padding-right:5vw}
.record-open .option{padding:14px 20px;letter-spacing:.15em}
@media(max-height:760px){.record-open .option{padding:10px 18px}}
@media(max-width:850px){.record-open .dialogue{padding-left:24px;padding-right:24px}.record-open .options{gap:8px}.record-open .option{padding:12px;font-size:14px}.record-open .option span:last-child{display:inline}}
.memory-tags{display:block;font-size:10px;color:var(--gold);margin-top:7px;letter-spacing:.08em}
.record-open .option{letter-spacing:.05em}.option span:first-child{line-height:1.6}
