@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Noto+Serif+JP:wght@400;500;600&display=swap');
:root { --paper:#eee9dd; --ink:#262727; --night:#111b27; --blue:#1e3448; --gold:#b99973; }
* { box-sizing:border-box; } body { margin:0; color:var(--paper); background:#10161d; font-family:"Noto Serif JP",serif; }
button { font:inherit; cursor:pointer; }.title-screen[hidden],.novel-screen[hidden],.ending-screen[hidden] { display:none; }.game-shell { min-height:100vh; max-width:1500px; margin:auto; position:relative; overflow:hidden; background:radial-gradient(circle at 66% 20%,#344b63 0,#192939 35%,#101923 80%); }.game-header { position:absolute; z-index:5; top:0; width:100%; padding:19px 28px; display:flex; justify-content:space-between; color:#d9d4c9; font:12px "DM Mono",monospace; letter-spacing:.09em; }.game-header a { color:inherit; text-decoration:none; }.game-header p { margin:0; }
.title-screen,.ending-screen { width:min(760px,calc(100% - 40px)); min-height:100vh; margin:auto; padding:15vh 0 80px; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; }.title-screen > p:first-child,.ending-screen > p:first-child { color:#c3a17b; font:12px "DM Mono",monospace; letter-spacing:.12em; }.title-screen h1,.ending-screen h1 { margin:12px 0; font-size:clamp(48px,9vw,102px); font-weight:500; letter-spacing:.14em; line-height:1.15; }.subtitle { max-width:34em; color:#d2d1c9; }.title-screen dl { width:min(480px,100%); margin:34px 0; padding:18px 0; border-top:1px solid rgba(238,233,221,.35); border-bottom:1px solid rgba(238,233,221,.35); }.title-screen dl div { display:grid; grid-template-columns:5em 1fr; gap:15px; }.title-screen dt { color:#bba184; font-size:13px; }.title-screen dd { margin:0; }.title-screen button,.ending-links button { padding:15px 20px; color:#211b17; border:0; background:#d8bb95; }.title-screen button span { margin-left:24px; }
.novel-screen { min-height:100vh; position:relative; }.scene-backdrop { min-height:100vh; position:relative; overflow:hidden; background:linear-gradient(90deg,rgba(4,9,14,.6),rgba(7,12,17,.08) 45%,rgba(4,9,14,.58)),url('../image/古書店.png') center/cover; }.scene-backdrop::after { content:""; position:absolute; inset:0; background:linear-gradient(transparent 65%,rgba(0,0,0,.76)); pointer-events:none; }.bookcase,.window-light { display:none; }
.standing { width:min(36vw,460px); height:83vh; position:absolute; bottom:0; z-index:1; background-repeat:no-repeat; background-position:bottom center; background-size:contain; filter:drop-shadow(0 12px 16px #000); transition:opacity .3s,filter .3s; }.standing.saku { left:10%; background-image:url('../image/saku.png'); }.standing.minato { right:9%; background-image:url('../image/minato.png'); }.standing:not(.active) { opacity:.42; filter:brightness(.48) saturate(.45); }.scene-meta { position:absolute; z-index:3; top:76px; left:28px; display:flex; gap:18px; color:#ddd6c9; font:11px "DM Mono",monospace; letter-spacing:.08em; }.scene-meta span:first-child { color:#d2ad82; }
.dialogue-box { min-height:176px; width:min(1060px,calc(100% - 64px)); position:absolute; z-index:4; left:50%; bottom:30px; transform:translateX(-50%); padding:26px 68px 26px 30px; display:block; color:#f2eee5; border:1px solid rgba(235,228,214,.6); text-align:left; background:rgba(10,17,24,.86); backdrop-filter:blur(5px); }.speaker { min-height:24px; display:block; color:#d8b28b; font-size:15px; }.line { display:block; font-size:clamp(17px,2vw,22px); line-height:1.9; }.next-mark { position:absolute; right:23px; bottom:20px; color:#c9a176; font-size:12px; animation:blink 1.3s infinite; }@keyframes blink { 50% { opacity:.2; } }
.choices { position:absolute; z-index:5; left:50%; bottom:225px; width:min(640px,calc(100% - 64px)); transform:translateX(-50%); display:grid; gap:10px; }.choices button { padding:15px 20px; color:#f3ede3; border:1px solid rgba(233,220,203,.65); background:rgba(17,27,36,.92); text-align:left; }.choices button:hover { color:#1b1713; background:#ddc3a1; }
.ending-screen { text-align:center; align-items:center; }.ending-screen h1 { color:#e2c39f; }.ending-screen > p:nth-of-type(2) { max-width:33em; }.ending-links { margin-top:35px; display:flex; justify-content:center; flex-wrap:wrap; gap:10px; }.ending-links a { padding:14px 18px; color:#eee7dc; border:1px solid rgba(238,233,221,.5); text-decoration:none; }
@media (max-width:650px) { .game-header { padding:14px; font-size:10px; }.title-screen,.ending-screen { padding-top:90px; }.scene-meta { top:55px; left:15px; }.bookcase { width:25%; }.standing { width:64vw; height:66vh; }.standing.saku { left:-8%; }.standing.minato { right:-14%; }.dialogue-box { width:calc(100% - 24px); min-height:185px; bottom:12px; padding:20px 42px 20px 18px; }.choices { width:calc(100% - 24px); bottom:215px; }.line { font-size:16px; } }
