#game{position:relative;width:100vw;height:100vh;overflow:hidden}
#splash{position:absolute;inset:0;display:grid;place-items:center;background:var(--p1);transition:opacity .8s ease}
.splash-logo{font-size:3rem;letter-spacing:.2rem;font-weight:900;color:#ff4fa4}
.splash-sub{margin-top:.4rem;color:#b25586}
#title{position:absolute;inset:0;display:grid;place-items:center;background:linear-gradient(180deg,rgba(255,240,247,.65),rgba(255,240,247,.95));}
.title-card{padding:2.2rem 2.6rem;background:var(--panel);border:1px solid #ffd0e6;border-radius:22px;box-shadow:var(--shadow);text-align:center;width:min(92vw,720px)}
.brand{font-size:3rem;margin:0;color:#ff4fa4;text-shadow:0 1px 0 #fff}
.tagline{margin:.2rem 0 1rem;color:#a36a87}
.menu{display:grid;gap:.6rem}
.btn{appearance:none;border:1px solid #ffb8dc;background:linear-gradient(180deg,#ffe0f0,#ffd0e6);color:#7c3c5b;padding:.85rem 1rem;border-radius:12px;font-weight:700;cursor:pointer;box-shadow:0 6px 12px rgba(255,105,180,.12);transition:transform .06s ease, filter .2s}
.btn:hover{transform:translateY(-1px);filter:saturate(1.05)}
.btn.primary{background:linear-gradient(180deg,#ffd2ea,#ffc2e0);border-color:#ff9dd0}
.btn.accent{background:linear-gradient(180deg,#ffdff8,#ffd0f6);border-color:#ff9df1}
.btn.ghost{background:linear-gradient(180deg,#fff,#fff);border-color:#f3c1d7}
#bg{position:absolute;inset:0;background:radial-gradient(120% 100% at 50% 0%, #ffeaf5 0%, #fff1f6 70%);background-size:cover;background-position:center;transition:background 400ms ease, background-image 400ms ease}
#sprites{position:absolute;inset:0;pointer-events:none}
.sprite{position:absolute;bottom:110px;width:min(40vw,480px);filter:drop-shadow(0 25px 40px rgba(255,105,180,.25));opacity:.0;transform:translateY(20px) scale(.98);transition:opacity .28s ease, transform .28s ease, filter .28s ease}
.sprite.show{opacity:1;transform:translateY(0) scale(1)}
.sprite.dim{filter:brightness(.75) saturate(.9) drop-shadow(0 25px 40px rgba(0,0,0,.1))}
.left{left:6%}.right{right:6%}.center{left:50%;transform:translate(-50%,0)}
#hud{position:absolute;inset:0;pointer-events:none}
.hud-top{position:absolute;top:12px;right:12px;display:flex;gap:8px}
.hud-top .btn{pointer-events:auto;padding:.55rem .8rem}
#dialogue{position:absolute;left:50%;bottom:18px;transform:translateX(-50%);width:min(92vw,940px);background:var(--panel);border:1px solid #ffd0e6;border-radius:20px;box-shadow:var(--shadow);padding:14px 16px;display:grid;gap:8px}
#name{font-weight:800;color:#ff4fa4;font-size:1rem}
#text{font-size:1.06rem;line-height:1.55;min-height:3.6lh}
#choices{position:absolute;left:50%;bottom:30%;transform:translateX(-50%);display:grid;gap:10px;width:min(92vw,680px)}
.modal{padding:16px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.log-list{max-height:40vh;overflow:auto;border:1px solid #ffd0e6;border-radius:12px;padding:8px;background:#fff}