:root {
  --ink: #3d2d35;
  --cream: #fffaf1;
  --peach: #ffcfb9;
  --coral: #ff8996;
  --pink: #f7a8c2;
  --mint: #8bcdb7;
  --purple: #a68acd;
  --line: #eecfb5;
  font-family: "Apple SD Gothic Neo", "Pretendard", system-ui, sans-serif;
}

* { box-sizing: border-box; }
button { font: inherit; cursor: pointer; }
body {
  min-height: 100dvh;
  margin: 0;
  color: var(--ink);
  background: radial-gradient(circle at 50% 0%, #fff0d6 0 22%, #f5d8e3 70%, #dbcee9 100%);
}

body.prologue-open { overflow: hidden; }
.prologue {
  position: fixed;
  z-index: 100;
  inset: 0;
  display: grid;
  place-items: center;
  background: #171015;
}
.prologue.hidden { display: none; }
.prologue-scene {
  position: relative;
  width: min(100%, 460px);
  height: 100dvh;
  overflow: hidden;
  background: #080608;
}
.intro-video { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; background:#080608; }
.intro-play-screen { position:absolute; z-index:7; inset:0; display:grid; place-items:center; padding:24px; background:linear-gradient(rgba(10,6,8,.22), rgba(10,6,8,.7)); }
.intro-play-screen.hidden { display:none; }
.intro-play-button { min-width:220px; min-height:58px; padding:14px 20px; border:2px solid rgba(255,255,255,.9); border-radius:999px; background:rgba(32,20,24,.76); color:#fff; font-size:15px; font-weight:900; box-shadow:0 8px 24px rgba(0,0,0,.35); }
.intro-play-button span { margin-right:8px; color:#ff9aaa; }
.prologue-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; animation: sceneReveal 1.8s ease both; }
.prologue-shade { position: absolute; inset: 0; background: linear-gradient(rgba(20,9,8,.15), transparent 35%, rgba(20,8,10,.66)); animation: shadeReveal 1.8s ease both; }
.prologue-caption {
  position: absolute;
  top: max(30px, env(safe-area-inset-top));
  left: 0;
  right: 0;
  margin: 0;
  color: #fff6df;
  text-align: center;
  font-size: 13px;
  font-weight: 800;
  text-shadow: 0 2px 7px #3d1e16;
  animation: fade 1s .9s ease both;
}
.skip-prologue {
  position: absolute;
  z-index: 5;
  top: max(22px, env(safe-area-inset-top));
  right: 18px;
  padding: 8px 12px;
  border: 1px solid rgba(255,255,255,.55);
  border-radius: 999px;
  background: rgba(35,19,20,.52);
  color: #fff;
  font-size: 11px;
  font-weight: 800;
}
.prologue-character {
  position: absolute;
  z-index: 2;
  bottom: clamp(177px, 24dvh, 218px);
  width: min(48%, 210px);
  height: auto;
  aspect-ratio: 1;
  object-fit: contain;
  object-position: center bottom;
  filter: drop-shadow(0 8px 8px rgba(26,10,8,.42));
  transition: opacity .45s, transform .45s, filter .45s;
}
.prologue-wife { left: -1%; transform: translateX(-2%) scale(.94); }
.prologue-husband { right: -2%; transform: translateX(2%) scale(1.02); }
.prologue.focus-wife .prologue-husband,
.prologue.focus-husband .prologue-wife { opacity: .62; filter: brightness(.65) drop-shadow(0 8px 8px rgba(26,10,8,.42)); }
.prologue.focus-wife .prologue-wife { transform: translateX(0) scale(1); }
.prologue.focus-husband .prologue-husband { transform: translateX(0) scale(1.08); }
.prologue-dialogue {
  position: absolute;
  z-index: 4;
  left: 18px;
  right: 18px;
  bottom: max(16px, env(safe-area-inset-bottom));
  min-height: 128px;
  padding: 16px 18px 48px;
  border: 3px solid #fff8e9;
  border-radius: 20px;
  background: rgba(255,249,235,.96);
  box-shadow: 0 7px 0 rgba(86,42,33,.55);
}
.prologue-dialogue strong { color: #d66b68; font-size: 12px; }
.prologue-dialogue p { min-height:52px; margin:7px 0 0; overflow-wrap:anywhere; word-break:keep-all; color:#3d2d35; font-size:clamp(15px, 4.5vw, 18px); font-weight:900; line-height:1.55; letter-spacing:-.45px; }
.prologue-dialogue.line-change { animation: dialoguePop .32s ease; }
.next-prologue { position:absolute; right:13px; bottom:13px; padding:8px 10px; border:0; border-radius:11px; background:#f3d5c3; color:#7a4b43; font-size:11px; font-weight:900; }
.chicken-table { position:absolute; z-index:3; left:9%; right:9%; bottom:clamp(157px, 22dvh, 205px); height:67px; display:flex; align-items:center; justify-content:space-around; border:5px solid #7b4935; border-radius:50%; background:#c47c50; box-shadow:0 12px 0 #6a3e2e, 0 16px 13px rgba(30,12,8,.35); font-size:29px; }
.chicken-table .chicken { font-size:42px; transform:rotate(-11deg); filter:drop-shadow(0 3px 1px rgba(60,25,15,.25)); }
.chicken-table .napkin { padding:2px 8px; background:#fff9e9; color:#d8c8b7; font-size:24px; transform:rotate(8deg); }
.prologue-title {
  position: absolute;
  z-index: 6;
  inset: 0;
  display: grid;
  place-content: center;
  padding: 28px;
  background: #f6f0e3;
  color: #44382f;
  text-align: center;
  animation: fade .75s ease both;
}
.prologue-title.hidden { display: none; }
.paper-grain { position:absolute; inset:-20%; opacity:.38; background:repeating-radial-gradient(circle at 30% 20%, #bcae95 0 1px, transparent 1px 6px); animation:paperSpread 1.15s ease both; }
.prologue-title > *:not(.paper-grain) { position:relative; z-index:1; }
.prologue-ending-line { margin:0 0 12px; color:#65564c; font-size:17px; font-weight:800; line-height:1.5; animation:fade .6s ease both; }
.prologue-game-title {
  display:block;
  width:min(92vw, 390px);
  height:auto;
  margin:-34px auto -22px;
  filter:drop-shadow(0 8px 8px rgba(78,48,25,.18));
  animation:titlePop .65s ease both;
}
.prologue-start {
  min-width: 190px;
  min-height: 54px;
  margin: auto;
  border: 2px solid #fff;
  border-radius: 18px;
  background: linear-gradient(135deg, #ff8495, #f4a76f);
  color: #fff;
  font-weight: 900;
  box-shadow: 0 5px 0 #a94954;
}
.main-game-title { margin:0; line-height:0; }
.main-game-title img {
  display:block;
  width:164px;
  height:58px;
  margin:-9px 0 -8px -17px;
  object-fit:contain;
  filter:drop-shadow(0 3px 3px rgba(108,73,42,.14));
}
@keyframes dialoguePop { from { opacity: .2; transform: translateY(7px); } to { opacity: 1; transform: translateY(0); } }
@keyframes sceneReveal { from { opacity:0; transform:scale(1.04); } to { opacity:1; transform:scale(1); } }
@keyframes shadeReveal { from { background:#130d0c; } to { background:linear-gradient(rgba(20,9,8,.15), transparent 35%, rgba(20,8,10,.66)); } }
@keyframes paperSpread { from { opacity:0; transform:scale(.2); border-radius:50%; } to { opacity:.38; transform:scale(1); border-radius:0; } }
@keyframes titlePop { from { opacity:0; transform:scale(.88); } to { opacity:1; transform:scale(1); } }

.game-shell {
  width: min(100%, 460px);
  min-height: 100dvh;
  margin: auto;
  padding: max(18px, env(safe-area-inset-top)) 18px max(22px, env(safe-area-inset-bottom));
  display: flex;
  flex-direction: column;
  gap: 13px;
}

.topbar, .day-row, .action-area { display: flex; align-items: center; justify-content: space-between; }
.topbar h1 { margin: 1px 0 0; font-size: clamp(27px, 8vw, 34px); letter-spacing: -2px; }
.topbar h1 span { color: var(--coral); }
.eyebrow, .modal-kicker { margin: 0; color: #93796c; font-size: 11px; font-weight: 800; letter-spacing: .7px; }
.icon-button, .close-button { border: 0; background: #fff9f0; color: var(--coral); border-radius: 50%; width: 39px; height: 39px; font-size: 26px; box-shadow: 0 3px 0 #debca8; }
#settingsButton { font-size:19px; }

.status-card { background: rgba(255, 253, 247, .87); border: 2px solid #fff; border-radius: 19px; padding: 12px 14px; box-shadow: 0 5px 0 rgba(186, 117, 94, .12); }
.day-row { margin-bottom: 9px; font-size: 13px; }
.money-row { display:grid; grid-template-columns:1fr 1fr; gap:6px; margin:0 0 10px; }
.money-row span { padding:7px 8px; border-radius:10px; background:#fff5e9; color:#84656b; font-size:10px; font-weight:800; }
.money-row b { display:block; margin-top:2px; color:#b05e67; font-size:12px; }
.day-row strong { color: var(--purple); letter-spacing: .6px; }
#refundLabel { color: #c15967; font-weight: 800; }
.refund-settings{display:flex;justify-content:space-between;margin:14px 0 8px;padding:12px;border-radius:14px;background:#fff0e5;color:#805563}
.system-toast{position:fixed;z-index:80;left:50%;top:15%;transform:translate(-50%,-18px);max-width:90%;padding:12px 18px;border-radius:999px;background:rgba(64,42,55,.92);color:#fff;font-weight:900;opacity:0;pointer-events:none;transition:.25s}
.system-toast.show{opacity:1;transform:translate(-50%,0)}
.rebuild-screen{position:fixed;z-index:70;inset:0;overflow:auto;padding:22px;background:linear-gradient(150deg,#291a2b,#76505c);display:grid;place-items:center}
.rebuild-panel{position:relative;width:min(100%,850px);padding:25px;border:3px solid #fff;border-radius:26px;background:#fff8ec;box-shadow:0 20px 60px #0006}
.keyword-list{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}
.keyword-list button{padding:9px 12px;border:1px solid #d9bca8;border-radius:12px;background:#fff;color:#655}
.keyword-list button.selected{background:#dff1d3;border-color:#6ba55d;font-weight:900}
.husband-card{display:grid;grid-template-columns:minmax(140px,42%) 1fr;gap:18px;margin-top:20px;padding:18px;border-radius:20px;background:#fff;box-shadow:0 8px 25px #5d374522}
.husband-card img{width:100%;max-height:330px;object-fit:contain;background:#f4e5d6;border-radius:16px}
.husband-card button{margin:5px;padding:10px;border:0;border-radius:12px;background:#f08098;color:#fff;font-weight:900}
.capsule-drop{animation:capsuleDrop .7s ease}
.rebuild-map-hotspot{position:absolute;right:2%;bottom:2%;z-index:8;padding:9px 12px;border:2px solid #fff;border-radius:15px;background:#d85283;color:#fff;font-weight:900;box-shadow:0 4px 12px #5f294477}
@keyframes capsuleDrop{0%{transform:translateY(-70px) scale(.7);opacity:0}70%{transform:translateY(8px) scale(1.04)}100%{transform:none;opacity:1}}
@media(max-width:560px){.husband-card{grid-template-columns:1fr}.husband-card img{max-height:260px}}
.stat-list { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 12px; }
.stat { display: grid; grid-template-columns: 47px 1fr 26px; gap: 4px; align-items: center; font-size: 11px; font-weight: 800; }
.stat-bar { height: 9px; background: #f1e5db; border-radius: 20px; overflow: hidden; }
.stat-fill { height: 100%; border-radius: 20px; transition: width .45s ease; }

.living-room { position: relative; min-height: 360px; flex: 1; overflow: hidden; border: 4px solid #fffdf7; border-radius: 27px; background: linear-gradient(#fce7ed 0 63%, #b48677 63% 66%, #e8c8b5 66%); box-shadow: inset 0 -11px 0 #d5a18e, 0 7px 0 rgba(132, 76, 71, .15); }
.living-room::before { content:""; position:absolute; inset:0 0 37%; opacity:.24; background:radial-gradient(circle, #fff 1px, transparent 1.5px) 0 0 / 18px 18px; }
.sun { position:absolute; z-index:1; top:31px; left:124px; color:#ffd17b; font-size:21px; transform:rotate(15deg); }
.window { position: absolute; top: 25px; left: 27px; width: 105px; height: 94px; overflow: hidden; border: 7px solid #fff9ef; border-radius: 18px 18px 6px 6px; background: linear-gradient(#b6def1 0 60%, #c5e4bc 60%); box-shadow: 0 3px 0 #d7a78d; }
.window::after, .window::before { content: ""; position: absolute; background: #fff6e2; z-index: 2; }
.window::before { width: 6px; height: 100%; left: 46px; }.window::after { width: 100%; height: 6px; top: 39px; }
.window b { position: absolute; right: 10px; top: 6px; font-size: 21px; color: #fff; }.window i { position: absolute; bottom: 5px; width: 45px; height: 22px; border-radius: 50% 50% 0 0; background: #83bd7e; }
.window i:first-child { left: -8px; }.window i:nth-child(2) { right: -8px; }
.wall-frame { position: absolute; top: 31px; right: 30px; padding: 9px 12px; transform: rotate(3deg); border: 6px solid #c49a90; border-radius:5px; background: #fff9df; color: #a27a7a; text-align: center; font-size: 11px; font-weight: 900; line-height: 1.35; }
.shelf { position: absolute; top: 143px; left: 19px; border-bottom: 7px solid #956550; width: 136px; display: flex; align-items: end; justify-content: space-around; font-size: 25px; }
.plant { position: absolute; left: 29px; bottom: 76px; font-size: 47px; z-index: 3; filter: drop-shadow(2px 4px 0 rgba(67, 112, 68, .23)); }
.couch { position: absolute; right: -25px; bottom: 64px; width: 210px; height: 106px; border-radius: 55px 0 0 13px; background: #efa6b7; border: 6px solid #d88b9f; box-shadow: inset 0 15px #f7c2cf, 0 8px 0 #aa7a75; }
.couch::before, .couch::after { content: ""; position: absolute; top: 36px; width: 6px; height: 65px; background: #d88b9f; }.couch::before { left: 42px; }.couch::after { right: 43px; }
.rug { position: absolute; bottom: 11px; left: 20%; width: 66%; height: 43px; border-radius: 50%; background: repeating-radial-gradient(ellipse at center, #f8d2b3 0 9px, #f0bb99 10px 18px); }
.sock { position: absolute; z-index: 5; font-size: 28px; transform: rotate(-24deg); bottom: 38px; }.sock-left { left: 45%; }.sock-right { left: 57%; transform: rotate(19deg); }

.husband { position:absolute; z-index:6; left:50%; bottom:35px; width:178px; transform:translateX(-50%); text-align:center; filter:drop-shadow(3px 7px 0 rgba(83,52,47,.14)); }
.husband img { display:block; width:100%; height:auto; object-fit:contain; image-rendering:auto; }
.character-name { display:inline-block; margin-top:-5px; padding:5px 12px; border:2px solid #fff; border-radius:999px; background:#7dbfe1; color:#fff; font-size:11px; font-weight:900; box-shadow:0 3px 0 #5596b7; }
.wife-avatar { position:absolute; z-index:7; right:35px; bottom:34px; width:112px; height:250px; overflow:visible; border:0; border-radius:0; background:transparent; box-shadow:none; filter:drop-shadow(3px 7px 0 rgba(83,52,47,.12)); }
.wife-avatar img { display:block; width:100%; height:100%; object-fit:contain; object-position:center bottom; }
.character-layers { isolation:isolate; }
.character-layers > .character-body-layer { position:relative; z-index:1; }
.character-layers > .character-expression-layer,
.character-layers > .character-accessory-layer,
.character-layers > .character-effect-layer { position:absolute; inset:0; width:100%; height:100%; pointer-events:none; }
.character-layers > .character-expression-layer { z-index:2; object-fit:contain; object-position:center bottom; transition:opacity .2s ease; }
.wife-avatar > .character-expression-layer { object-fit:contain; object-position:center bottom; }
.character-layers > .character-accessory-layer { z-index:4; transform:translateZ(0); }
.character-accessory-layer .worn-clothes-layer { position:absolute; left:50%; z-index:5!important; width:auto!important; height:auto!important; object-fit:contain; transform:translateX(-50%) translateZ(0); }
.character-accessory-layer .worn-top { top:39%; width:48%!important; }
.character-accessory-layer .worn-outer { top:38%; width:54%!important; }
.character-accessory-layer .worn-bottom { top:58%; width:43%!important; }
.character-accessory-layer .worn-shoes { bottom:0; width:47%!important; }
.character-accessory-layer .worn-set,.character-accessory-layer .worn-uniform { top:38%; width:55%!important; max-height:59%; }
.character-layers > .character-effect-layer { z-index:5; }
.character-expression-layer.missing-expression { display:none; }
.character-expression-layer.outfit-expression-disabled { display:none; }
.character-expression-layer.expression-fade { animation:expressionFade .2s ease; }
.character-layers.expression-motion[data-motion="happy"] { animation:expressionHappy .38s ease; }
.character-layers.expression-motion[data-motion="angry"] { animation:expressionAngry .3s ease; }
.character-layers.expression-motion[data-motion="surprised"] { animation:expressionSurprised .28s ease; }
.character-layers.expression-motion[data-motion="sad"] { animation:expressionSad .5s ease; }
.character-layers.expression-motion[data-motion="tired"] { animation:expressionTired .7s ease; }
.dialogue-portrait { float:left; display:grid; place-items:center; width:58px; margin:0 10px 5px 0; }
.dialogue-portrait img { width:54px; height:54px; border:3px solid #fff; border-radius:50%; background:#fff3ea; object-fit:cover; box-shadow:0 3px 0 #d99aa0; }
.dialogue-portrait span { margin-top:3px; color:#9c5962; font-size:10px; font-weight:900; }
.dialogue-portrait.hidden { display:none; }
@keyframes expressionFade { from { opacity:0; } to { opacity:1; } }
@keyframes expressionHappy { 50% { transform:translateX(-50%) translateY(-5px); } }
.wife-avatar.character-layers.expression-motion[data-motion="happy"] { animation-name:expressionHappyWife; }
@keyframes expressionHappyWife { 50% { transform:translateY(-4px); } }
@keyframes expressionAngry { 25% { margin-left:-3px; } 75% { margin-left:3px; } }
@keyframes expressionSurprised { 50% { scale:1.035; } }
@keyframes expressionSad { 50% { translate:0 3px; } }
@keyframes expressionTired { 50% { translate:0 1px; opacity:.96; } }
.speech-bubble { position:absolute; z-index:10; left:14px; right:auto; top:14px; bottom:auto; width:min(159px,43%); box-sizing:border-box; padding:10px; border:2px solid #5e4650; border-radius:15px 15px 15px 3px; background:#fffdf8; font-size:12px; font-weight:800; line-height:1.4; box-shadow:2px 3px 0 rgba(92,62,65,.18); }
.speech-bubble::after { content:""; position:absolute; left:20px; right:auto; bottom:-9px; width:15px; height:15px; background:#fffdf8; border-right:2px solid #5e4650; border-bottom:2px solid #5e4650; transform:rotate(45deg); }

.travel-scene { position:absolute; z-index:20; inset:0; overflow:hidden; background:linear-gradient(#bfe8ff 0 61%, #d9c49f 61% 67%, #a8cf82 67%); animation:travelReveal .28s ease both; }
.travel-scene.hidden { display:none; }
.travel-sky { position:absolute; inset:0 0 39%; background:linear-gradient(#bde7ff, #f8f1cf); }
.travel-cloud { position:absolute; color:rgba(255,255,255,.86); font-size:52px; filter:drop-shadow(0 3px 0 rgba(115,165,190,.12)); }
.cloud-one { top:22px; left:20px; animation:cloudDrift 7s linear infinite; }
.cloud-two { top:68px; right:18px; font-size:38px; animation:cloudDrift 9s -3s linear infinite reverse; }
.travel-backdrop { position:absolute; inset:0; }
.travel-scene.date-park .travel-backdrop::before { content:"🌳　　　　　🌷　🌳"; position:absolute; left:-16px; right:-16px; bottom:76px; font-size:57px; white-space:nowrap; }
.travel-scene.date-cafe .travel-backdrop::before { content:"COUPLE CAFE　☕"; position:absolute; left:28px; right:28px; bottom:94px; padding:28px 12px 42px; border:6px solid #fff5e4; border-radius:20px 20px 0 0; background:#d98d76; color:#fff9e9; text-align:center; font-size:18px; font-weight:900; box-shadow:0 8px 0 #8d6259; }
.travel-scene.date-walk .travel-backdrop::before { content:"🌲　　♡　　🌲"; position:absolute; left:0; right:0; bottom:88px; text-align:center; font-size:55px; }
.travel-scene.date-laveniche .travel-backdrop::before { content:"✨　🌉　✨"; position:absolute; inset:42px 0 auto; padding:48px 0 30px; background:linear-gradient(#504978,#283b66 60%,#4a7992); color:#ffe8a5; text-align:center; font-size:58px; }
.travel-scene.date-jangneung .travel-backdrop::before { content:"🌳　🏛️　🌳"; position:absolute; left:0; right:0; bottom:76px; text-align:center; font-size:58px; }
.travel-scene.date-heosan .travel-backdrop::before { content:"🌲　⛰️　🌲"; position:absolute; left:0; right:0; bottom:78px; text-align:center; font-size:56px; }
.travel-scene.date-modamsan .travel-backdrop::before { content:"🌄　☁️　🌄"; position:absolute; left:0; right:0; bottom:78px; text-align:center; font-size:56px; }
.travel-scene.date-ecopark .travel-backdrop::before { content:"🌾　🦆　🌾"; position:absolute; left:0; right:0; bottom:76px; text-align:center; font-size:58px; }
.date-place-choice b { font-size:15px; }
.travel-scene.snack-shop .travel-backdrop::before { content:"24　편 의 점"; position:absolute; left:24px; right:24px; bottom:82px; padding:25px 8px 53px; border:6px solid #f7fbff; border-radius:14px 14px 0 0; background:linear-gradient(#5bbcae 0 22%, #fff 22% 100%); color:#fff; text-align:center; font-size:19px; font-weight:900; text-shadow:0 2px #397f77; box-shadow:0 8px 0 #55727b; }
.travel-scene.snack-shop .travel-backdrop::after { content:"🍪　🍫　🍦"; position:absolute; left:0; right:0; bottom:103px; text-align:center; font-size:26px; }
.travel-scene.mart-shop .travel-backdrop::before { content:"우리 동네 마트"; position:absolute; left:20px; right:20px; bottom:78px; padding:24px 8px 56px; border:6px solid #fff8df; border-radius:16px 16px 0 0; background:linear-gradient(#ef776f 0 25%, #fffaf0 25% 100%); color:#fff; text-align:center; font-size:20px; font-weight:900; text-shadow:0 2px #a44848; box-shadow:0 8px 0 #6d7775; }
.travel-scene.mart-shop .travel-backdrop::after { content:"🥛　🧀　🥬"; position:absolute; left:0; right:0; bottom:101px; text-align:center; font-size:28px; }
.travel-character { position:absolute; z-index:3; bottom:25px; width:112px; filter:drop-shadow(3px 7px 0 rgba(70,45,40,.16)); }
.travel-character img { display:block; width:100%; height:190px; object-fit:contain; object-position:center bottom; }
.travel-wife { left:-120px; animation:walkAcrossWife 2.05s ease-in-out both; }
.travel-husband { left:-180px; width:128px; animation:walkAcrossHusband 2.05s .12s ease-in-out both; }
.travel-scene.couple-travel .travel-wife,
.travel-scene.couple-travel .travel-husband { display:block !important; visibility:visible !important; opacity:1 !important; }
.travel-scene.snack-shop .travel-wife { display:none; }
.travel-scene.snack-shop .travel-husband { animation:walkToShop 2.05s ease-in-out both; }
.travel-scene.mart-shop .travel-wife { display:none; }
.travel-scene.mart-shop .travel-husband { animation:walkToShop 2.05s ease-in-out both; }
.travel-message { position:absolute; z-index:5; left:50%; top:16px; width:max-content; max-width:88%; margin:0; padding:9px 15px; transform:translateX(-50%); border:2px solid #fff; border-radius:999px; background:rgba(255,250,241,.94); color:#6d5360; font-size:12px; font-weight:900; box-shadow:0 3px 0 rgba(112,76,75,.18); }
@keyframes travelReveal { from { opacity:0; } to { opacity:1; } }
@keyframes cloudDrift { from { transform:translateX(-12px); } to { transform:translateX(22px); } }
@keyframes walkAcrossWife { 0% { left:-120px; transform:translateY(0) rotate(-1deg); } 25% { transform:translateY(-6px) rotate(2deg); } 50% { transform:translateY(0) rotate(-1deg); } 75% { transform:translateY(-6px) rotate(2deg); } 100% { left:43%; transform:translateY(0) rotate(0); } }
@keyframes walkAcrossHusband { 0% { left:-180px; transform:translateY(0) rotate(-1deg); } 25% { transform:translateY(-7px) rotate(2deg); } 50% { transform:translateY(0) rotate(-1deg); } 75% { transform:translateY(-7px) rotate(2deg); } 100% { left:61%; transform:translateY(0) rotate(0); } }
@keyframes walkToShop { 0% { left:-150px; transform:translateY(0) rotate(-1deg); } 25% { transform:translateY(-7px) rotate(2deg); } 50% { transform:translateY(0) rotate(-1deg); } 75% { transform:translateY(-7px) rotate(2deg); } 100% { left:54%; transform:translateY(0) rotate(0); } }

.action-area { display:block; padding: 2px 3px; }.action-area p { width: 100%; margin: 0 0 8px; text-align:center; color:#705865; font-size: 12px; font-weight:700; }.action-grid { display:grid; grid-template-columns:1fr 1fr; gap:9px; }.primary-button { flex: 1; min-height: 48px; border: 0; border-radius: 16px; background: linear-gradient(135deg, var(--coral), #ff9e9d); color: #fff; font-weight: 900; box-shadow: 0 4px 0 #c9525e; transition: transform .15s, box-shadow .15s; }.primary-button:active { transform: translateY(3px); box-shadow: 0 1px 0 #c9525e; }.primary-button:disabled { cursor:not-allowed; filter: grayscale(.75); opacity:.7; }.action-button { min-height:56px; border:2px solid rgba(255,255,255,.9); border-radius:18px; color:#5d4b59; font-weight:900; box-shadow:0 4px 0 rgba(120,87,107,.19); transition:transform .15s, box-shadow .15s, filter .15s; }.action-button span { margin-right:4px; font-size:17px; }.action-button:active { transform:translateY(3px); box-shadow:0 1px 0 rgba(120,87,107,.19); }.action-button:disabled { filter:grayscale(.75); opacity:.6; cursor:not-allowed; }.event-button { background:#ffc9cf; }.education-button { background:#cfe4ff; }.date-button { background:#d9efcf; }.refund-button { padding:0 13px; border:2px dashed #c88b91; background:#fff4f0; color:#aa646e; font-size:14px; }.market-button { grid-column:1 / -1; background:#d8f1ed; }.allowance-button { grid-column:1 / -1; background:#fff0b9; }

.modal, .ending-screen, .final-screen { position: fixed; z-index: 30; inset: 0; display: grid; place-items: end center; padding: 20px; background: rgba(55, 35, 45, .45); }.modal.hidden, .ending-screen.hidden, .final-screen.hidden, .hidden { display:none; }.modal-card, .ending-card { width: min(100%, 430px); border: 3px solid #fff; border-radius: 26px; background: #fffaf0; padding: 26px 20px 21px; box-shadow: 0 -7px 25px rgba(54, 29, 36, .22); }.modal-card { position:relative; animation: pop .23s ease-out; }.close-button { position:absolute; top: 12px; right:12px; width:32px; height:32px; font-size:23px; }.modal-kicker { color:var(--coral); }.modal-card h2, .ending-card h2 { margin: 7px 37px 8px 0; font-size: 24px; letter-spacing:-1.4px; }.modal-text { min-height: 45px; margin: 0 0 16px; color:#69545a; font-size:14px; line-height:1.55; }.choice-list { display:grid; gap:9px; }.choice { width:100%; padding: 13px 13px; border:2px solid #efcfb9; border-radius:15px; background:#fff; color:var(--ink); text-align:left; font-weight:800; line-height:1.38; }.choice:hover { border-color: var(--coral); background:#fff4eb; }.choice span { display:block; margin-top:3px; color:#97787b; font-size:11px; font-weight:700; }.modal-card > .primary-button { width:100%; margin-top:13px; }
.ending-screen { place-items:center; background:linear-gradient(160deg, #725474, #2f435f); }.ending-card { text-align:center; padding:31px 21px 24px; }.ending-card > span { color:var(--coral); font-weight:900; font-size:11px; letter-spacing:1.5px; }.ending-card h2 { margin:9px 0; font-size:27px; }.ending-card p { color:#6f5760; line-height:1.55; font-size:14px; }.ending-stats { display:grid; grid-template-columns:1fr 1fr; gap:7px; margin:16px 0; }.ending-stats div { padding:8px; border-radius:10px; background:#f8eadb; color:#7b5b5d; font-size:12px; font-weight:900; }.ending-card .primary-button { width:100%; }
.final-screen { place-items:center; background:#17151b; color:#fff; text-align:center; transition:background 1s; }.final-screen p { margin:0; padding:20px; font-size: clamp(25px, 7vw, 35px); font-weight:900; line-height:1.45; letter-spacing:-1.8px; animation:fade .8s ease both; }.final-screen.second { background:#0f0e12; }.final-screen.second p { color:#ffd5d1; }
@keyframes pop { from { transform:translateY(35px); opacity:0; } to { transform:translateY(0); opacity:1; } } @keyframes fade { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:translateY(0); } }
.settings-card { display:grid; gap:11px; }
.music-settings { display:grid; gap:12px; padding:14px; border:2px solid #ead0bd; border-radius:16px; background:#fffaf4; color:#604d55; font-weight:900; }
.music-setting-row, .volume-setting { display:flex; align-items:center; justify-content:space-between; gap:14px; }
.music-toggle { min-width:70px; padding:8px 12px; border:0; border-radius:999px; background:#ff8c9b; color:#fff; font-weight:900; }
.music-toggle[aria-pressed="false"] { background:#a79ca0; }
.volume-setting input { flex:1; min-width:0; accent-color:#ff8c9b; }
.settings-action { width:100%; min-height:52px; border:2px solid #ead0bd; border-radius:16px; background:#fff; color:#604d55; font-weight:900; }
.settings-action.danger { background:#fff1ee; color:#b05e67; }
@media (max-height: 700px) { .living-room { min-height:280px; } .game-shell { gap:8px; } .status-card { padding:9px 12px; } }
@media (prefers-reduced-motion: reduce) {
  .travel-character, .travel-cloud { animation-duration:.01ms !important; }
}
@media (max-height: 700px) {
  .prologue-character { bottom: 145px; width: min(43%, 180px); height: auto; }
  .chicken-table { bottom: 141px; height: 55px; font-size: 23px; }
  .chicken-table .chicken { font-size: 34px; }
  .prologue-dialogue { bottom: max(9px, env(safe-area-inset-bottom)); min-height: 118px; padding: 13px 15px 43px; }
  .prologue-caption { top: max(18px, env(safe-area-inset-top)); }
}
@media (max-width: 350px) {
  .prologue-dialogue { left: 10px; right: 10px; }
  .prologue-character { width: 46%; }
  .prologue-title { padding: 20px; }
  .prologue-ending-line { font-size: 15px; }
  .prologue-game-title { width:94vw; margin-top:-34px; }
}

body.town-open { overflow:hidden; }
.town-screen { position:fixed; z-index:25; inset:0; overflow:auto; background:#223c2b; color:#fff; transition:opacity .16s ease; }
.town-screen.town-fading { opacity:.08; }
.town-header { position:sticky; z-index:4; top:0; display:flex; padding:max(10px,env(safe-area-inset-top)) 12px 10px; background:rgba(25,48,35,.96); box-shadow:0 3px 15px rgba(0,0,0,.25); }
.town-back { justify-self:start; padding:8px 12px; border:1px solid rgba(255,255,255,.55); border-radius:999px; background:#fff9e9; color:#664a3e; font-size:12px; font-weight:900; }
.town-map-view { width:min(100%,460px); margin:auto; padding-bottom:max(18px,env(safe-area-inset-bottom)); }
.town-map-stage { position:relative; width:100%; line-height:0; }
.town-map-stage > img { display:block; width:100%; height:auto; }
.town-status.map-state-panel {
  position:absolute;
  z-index:3;
  left:3%;
  top:1.4%;
  width:94%;
  height:auto;
  box-sizing:border-box;
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:1%;
  padding:1.2%;
  overflow:hidden;
  border:clamp(1px,.18vw,3px) solid rgba(255,247,222,.95);
  border-radius:7%;
  background:rgba(55,40,28,.88);
  box-shadow:0 .45vw 1.1vw rgba(34,24,12,.35);
  color:#fff9e9;
  line-height:1.08;
  text-align:left;
  backdrop-filter:blur(3px);
}
.town-status.map-state-panel > span {
  min-width:0;
  display:flex;
  flex-direction:column;
  justify-content:center;
  min-height:42px;
  padding:4% 7%;
  overflow:hidden;
  border-radius:8%;
  background:rgba(255,250,232,.13);
  white-space:nowrap;
}
.town-status.map-state-panel small {
  display:block;
  overflow:hidden;
  color:#f6dfae;
  font-size:clamp(5px,.72vw,11px);
  font-weight:800;
  line-height:1.05;
  text-overflow:ellipsis;
}
.town-status.map-state-panel b {
  display:block;
  margin-top:3%;
  overflow:hidden;
  color:#fff;
  font-size:clamp(6px,.94vw,14px);
  line-height:1.05;
  text-overflow:ellipsis;
}
.map-hotspot { position:absolute; z-index:2; border:0; background:transparent; border-radius:12%; }
.map-hotspot span { position:absolute; left:50%; bottom:-5px; width:max-content; max-width:120%; padding:4px 7px; transform:translateX(-50%); border:2px solid rgba(255,255,255,.95); border-radius:999px; background:rgba(82,59,43,.86); color:#fffaf0; font-size:clamp(8px,2.5vw,12px); font-weight:900; line-height:1; white-space:nowrap; box-shadow:0 2px 4px rgba(48,31,20,.25); }
.map-hotspot:focus-visible { outline:4px solid #fff; background:rgba(255,230,80,.18); }
.map-hotspot.home { left:35%; top:30%; width:34%; height:27%; }
.map-hotspot.mart { left:5%; top:9%; width:39%; height:22%; }
.map-hotspot.pc { left:58%; top:9%; width:37%; height:22%; }
.map-hotspot.work { left:3%; top:36%; width:30%; height:19%; }
.map-hotspot.clothes { left:68%; top:49%; width:29%; height:21%; }
.map-hotspot.gym { left:4%; top:65%; width:39%; height:21%; }
.map-hotspot.cooking { left:53%; top:72%; width:43%; height:22%; }
.debug-hotspots .map-hotspot { border:3px dashed #ff2f6d; background:rgba(255,241,38,.24); }
.debug-toggle { display:block; width:max-content; max-width:95%; margin:10px auto 0; padding:8px 12px; border-radius:999px; background:rgba(0,0,0,.5); color:#fff; font-size:11px; }
.location-view { width:min(100%,460px); min-height:calc(100dvh - 58px); margin:auto; padding:14px 12px 40px; background:linear-gradient(#fff6df,#f4d8c1); color:var(--ink); }
.location-heading { margin-bottom:15px; padding:17px; border:3px solid #fff; border-radius:20px; background:#fffaf1; box-shadow:0 5px 0 rgba(83,48,40,.13); }
.location-heading p { margin:0; color:#bd6d66; font-size:11px; font-weight:900; letter-spacing:1px; }
.location-heading h2 { margin:4px 0 6px; font-size:28px; }
.location-heading span { color:#765f63; font-size:13px; line-height:1.5; }
.location-interior { position:relative; height:min(42dvh,360px); margin:0 0 14px; overflow:hidden; border:3px solid #fff; border-radius:22px; background:#ead9c7; box-shadow:0 6px 0 rgba(83,48,40,.15); }
.location-interior img { display:block; width:100%; height:100%; object-fit:cover; object-position:center 46%; }
.location-interior figcaption { position:absolute; left:10px; bottom:10px; padding:7px 11px; border:2px solid rgba(255,255,255,.92); border-radius:999px; background:rgba(71,50,42,.78); color:#fff; font-size:11px; font-weight:900; }
.location-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.town-action { min-height:78px; padding:12px; border:3px solid #fff; border-radius:17px; background:#fffaf4; color:#4d3b43; text-align:left; box-shadow:0 4px 0 #cfaa91; }
.town-action b,.town-action span { display:block; }.town-action span { margin-top:5px; color:#8a7072; font-size:11px; line-height:1.4; }
.action-preview,.town-result,.outfit-preview,.wallet-choice { grid-column:1/-1; }
.action-preview,.town-result { padding:20px; border:3px solid #fff; border-radius:22px; background:#fffaf4; box-shadow:0 6px 0 #caa58e; }
.action-preview h3,.town-result h3 { margin:0 0 8px; font-size:23px; }.action-preview p,.town-result p { color:#6f5a61; line-height:1.55; }
.preview-buttons { display:grid; grid-template-columns:1fr 1fr; gap:9px; margin-top:15px; }.preview-buttons button,.confirm-action { min-height:48px; border:0; border-radius:14px; font-weight:900; }
.preview-buttons button { background:#eadfd7; color:#6d5c5b; }.preview-buttons .confirm-action,.confirm-action { background:#ef7e84; color:#fff; box-shadow:0 4px 0 #a64e56; }
.town-result > .confirm-action { width:100%; margin-top:15px; }
.location-action-scene { position:relative; grid-column:1/-1; height:min(56dvh,430px); overflow:hidden; border:3px solid #fff; border-radius:22px; background:#e8d7c7; box-shadow:0 6px 0 #caa58e; }
.location-action-scene img { width:100%; height:100%; object-fit:cover; transition:opacity .16s ease,transform .35s ease; animation:sceneBreath 1.5s ease-in-out infinite alternate; }
.location-action-scene img.changing { opacity:.72; transform:scale(1.025); }
.action-scene-overlay { position:absolute; left:12px; right:12px; bottom:20px; padding:11px 14px; border:2px solid rgba(255,255,255,.9); border-radius:15px; background:rgba(61,46,42,.76); color:#fff; backdrop-filter:blur(3px); }
.action-scene-overlay b,.action-scene-overlay span { display:block; }.action-scene-overlay span { margin-top:4px; font-size:11px; }
.action-scene-progress { position:absolute; left:16px; right:16px; bottom:10px; height:5px; overflow:hidden; border-radius:999px; background:rgba(255,255,255,.35); }
.action-scene-progress i { display:block; width:100%; height:100%; transform-origin:left; border-radius:inherit; background:#ffe070; animation:actionProgress 2.55s linear both; }
.location-action-scene.gym .action-scene-progress i { animation-duration:1.7s; }
@keyframes actionProgress { from { transform:scaleX(0); } to { transform:scaleX(1); } }
@keyframes sceneBreath { from { transform:scale(1); } to { transform:scale(1.012); } }
.change-chips { display:flex; flex-wrap:wrap; gap:6px; }.change-chips span { padding:7px 9px; border-radius:999px; background:#d9f1df; color:#39704b; font-size:11px; font-weight:900; animation:changePop .45s ease both; }.change-chips .down { background:#ffe0de; color:#a44747; }
.notice { padding:10px; border-radius:12px; background:#fff0bd; font-weight:800; }
.wallet-choice { display:flex; gap:8px; padding:10px; border-radius:13px; background:rgba(255,255,255,.7); font-size:12px; font-weight:900; }.wallet-choice label { flex:1; }
.outfit-preview { position:relative; height:240px; overflow:hidden; border:3px solid #fff; border-radius:20px; background:#f5ddcf; text-align:center; }.outfit-preview img { height:100%; width:auto; }.outfit-preview i { position:absolute; left:50%; top:47%; width:108px; min-height:54px; padding:8px; transform:translate(-50%,-50%); border:2px dashed rgba(255,255,255,.8); border-radius:14px; color:#fff; font-size:11px; font-style:normal; font-weight:900; line-height:1.3; }
.town-toast { position:fixed; z-index:8; left:50%; bottom:max(24px,env(safe-area-inset-bottom)); width:min(90%,430px); padding:13px 16px; transform:translate(-50%,30px); opacity:0; pointer-events:none; border:2px solid #fff; border-radius:14px; background:#4d3640; color:#fff; font-size:12px; font-weight:800; transition:.25s; }.town-toast.show { transform:translate(-50%,0); opacity:1; }
@keyframes changePop { from { transform:translateY(8px) scale(.9); opacity:0; } }
@media (max-width:520px) { .town-map-view { min-height:calc(100dvh - 58px); display:grid; align-content:start; }.location-actions { grid-template-columns:1fr; }.action-preview,.town-result,.outfit-preview,.wallet-choice { grid-column:1; } }

.mini-game{grid-column:1/-1;padding:16px;border:3px solid #fff;border-radius:22px;background:#fffaf1;box-shadow:0 6px 0 #caa58e;overflow:hidden}.mini-game-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.mini-game-head small{color:#b27478;font-weight:900}.mini-game-head h3{margin:3px 0;font-size:23px}.mini-game-head button{padding:7px 10px;border:0;border-radius:10px;background:#eadbd0;color:#72575e;font-size:11px;font-weight:900}.mini-rule{margin:10px 0 14px;color:#765f63;font-size:12px;line-height:1.5}.mini-message{min-height:22px;margin:10px 0 0;color:#bd5d68;font-size:12px;font-weight:900;text-align:center}.mini-main-button{width:100%;min-height:48px;margin-top:12px;border:0;border-radius:14px;background:linear-gradient(135deg,#ff8899,#f2ae69);color:#fff;font-weight:900;box-shadow:0 4px 0 #bd6570}.rhythm-score,.mart-budget,.parking-hud{display:flex;justify-content:space-between;margin-bottom:9px;font-size:12px}.rhythm-track{position:relative;height:48px;margin:12px 9px;border:4px solid #e0c5b3;border-radius:999px;background:#f5e4db}.rhythm-zone{position:absolute;left:40%;width:20%;height:100%;background:#9ed7a6}.rhythm-marker{position:absolute;top:50%;left:0;transform:translate(-50%,-50%);color:#ed5e77;font-size:28px;filter:drop-shadow(0 2px 0 #fff)}.product-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.product-grid button{min-height:82px;padding:7px;border:2px solid #ead2bf;border-radius:13px;background:#fff;color:#655}.product-grid button.selected{border-color:#e77988;background:#ffe2e7;transform:translateY(-2px)}.product-grid i,.product-grid b,.product-grid span{display:block}.product-grid i{font-size:25px;font-style:normal}.product-grid span{margin-top:3px;font-size:10px}.parking-lot{position:relative;height:240px;overflow:hidden;border:6px solid #555;border-radius:15px;background:repeating-linear-gradient(90deg,#777 0 49px,#858585 50px 52px)}.parking-target{position:absolute;left:69%;top:10%;width:27%;height:38%;border:5px solid #ffd85e;border-radius:5px;color:#ffd85e;text-align:center}.parking-target span{font-size:36px;font-weight:900;line-height:2}.parking-bus{position:absolute;left:8%;top:78%;width:58px;height:38px;transform:translate(-5%,-5%);font-size:42px;line-height:1;transition:left .18s,top .18s;filter:drop-shadow(0 3px 2px #2228)}.parking-controls{display:grid;grid-template-columns:repeat(3,54px);justify-content:center;gap:6px;margin-top:12px}.parking-controls button{height:43px;border:0;border-radius:11px;background:#566672;color:#fff;font-weight:900;box-shadow:0 3px 0 #34404a}.parking-controls button:nth-child(1){grid-column:2}.parking-controls button:nth-child(2){grid-column:1}.parking-controls button:nth-child(3){grid-column:2}.parking-controls button:nth-child(4){grid-column:3;grid-row:2}

/* 옷가게: 한글과 가격은 이미지가 아닌 HTML로 표시 */
.clothes-shop { grid-column:1/-1; min-width:0; }
.clothes-toolbar { display:flex; flex-wrap:wrap; align-items:center; gap:8px; padding:10px; border-radius:15px; background:#fffaf4; }
.clothes-toolbar button,.clothes-toolbar select,.clothes-tabs button,.clothes-pages button,.preview-controls button,.clothes-card>button { min-height:38px; border:0; border-radius:11px; padding:8px 11px; background:#f3dfd2; color:#59434a; font-weight:900; }
.clothes-toolbar b { margin-left:auto; color:#b95761; }.clothes-toolbar select { max-width:145px; }
.clothes-tabs { display:flex; gap:6px; overflow-x:auto; padding:10px 0; scrollbar-width:thin; }
.clothes-tabs button { flex:0 0 auto; }.clothes-tabs button.active,.clothes-pages button.active { background:#ef7e84; color:#fff; }
.clothes-layout { display:grid; grid-template-columns:minmax(190px,32%) 1fr; gap:12px; align-items:start; }
.clothes-preview { position:sticky; top:8px; padding:12px; border:3px solid #fff; border-radius:20px; background:#fff7ed; text-align:center; box-shadow:0 5px 0 #d3ad96; transition:opacity .3s; }
.clothes-preview.changing { animation:clothesFade .3s ease; }.clothes-preview.sparkle::after { content:"✦ ✧ ✦"; position:absolute; inset:22% 0 auto; color:#ffd341; font-size:28px; animation:sparkle .65s ease both; }
.preview-character { position:relative; height:260px; overflow:hidden; border-radius:15px; background:linear-gradient(#dff4f0,#f4ddcd); }
.preview-character > img:first-child { position:relative; z-index:1; width:100%; height:100%; object-fit:contain; }.preview-character .preview-layer { position:absolute; z-index:5; left:50%; width:auto; height:auto; transform:translateX(-50%) translateZ(0); object-fit:contain; pointer-events:none; }
.preview-character .preview-top { top:39%; width:48%; }.preview-character .preview-outer { top:38%; width:54%; }.preview-character .preview-bottom { top:58%; width:43%; }.preview-character .preview-shoes { bottom:0; width:47%; }.preview-character .preview-set,.preview-character .preview-uniform { top:38%; width:55%; max-height:59%; }.preview-character .preview-none { display:none; }
.clothes-preview h3 { margin:9px 0 4px; }.clothes-preview p,.clothes-preview small { display:block; margin:4px 0; color:#785e65; font-size:11px; line-height:1.45; }
.preview-controls { display:grid; grid-template-columns:1fr 1fr; gap:6px; margin-top:10px; }.preview-controls .buy { grid-column:1/-1; background:#ef7e84; color:#fff; }
.clothes-products { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:9px; min-width:0; }
.clothes-card { min-width:0; padding:9px; border:2px solid #fff; border-radius:16px; background:#fffaf4; box-shadow:0 3px 0 #d5b49f; }
.clothes-card.wearing { outline:3px solid #ef7e84; }.clothes-card.locked { opacity:.65; }
.clothes-image { width:100%; height:105px; padding:4px!important; overflow:hidden; background:#f1e0d4!important; }.clothes-image img { width:100%; height:100%; object-fit:contain; }
.clothes-card h4 { min-height:34px; margin:7px 0 3px; font-size:13px; line-height:1.3; overflow-wrap:anywhere; }.clothes-card>b { color:#c25b63; font-size:12px; }
.clothes-card p { min-height:34px; margin:5px 0; color:#78636a; font-size:10px; line-height:1.35; }.clothes-card small { display:block; min-height:28px; color:#9b6d48; font-size:9px; line-height:1.35; }
.clothes-card>button:not(.clothes-image) { width:100%; margin-top:7px; background:#ef7e84; color:#fff; }.wear-label,.lock-label { display:block; margin-top:7px; padding:9px 4px; border-radius:10px; background:#ffe1e4; color:#a64d58; text-align:center; font-size:10px; font-weight:900; }
.clothes-pages { display:flex; justify-content:center; gap:6px; margin-top:14px; }.empty-clothes { grid-column:1/-1; padding:30px; text-align:center; }
@keyframes clothesFade { from { opacity:.35; } to { opacity:1; } } @keyframes sparkle { from { transform:scale(.4); opacity:0; } 55% { opacity:1; } to { transform:scale(1.4); opacity:0; } }
@media (max-width:620px) {
  .clothes-layout { grid-template-columns:1fr; }.clothes-preview { position:relative; top:auto; }.preview-character { height:220px; }
  .clothes-products { grid-template-columns:repeat(2,minmax(0,1fr)); }.clothes-toolbar b { margin-left:0; }.clothes-toolbar select { width:100%; max-width:none; }
}
.voice-preview-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}
.voice-preview{border:1px solid #ead9c7;border-radius:10px;background:#fffaf3;color:#5b4739;padding:9px 7px;font:inherit;font-size:12px;cursor:pointer}
.cooking-lesson-choice{grid-column:1/-1;padding:16px;border:3px solid #fff;border-radius:20px;background:#fff7e9;box-shadow:0 5px 0 #d9b38f}.cooking-lesson-choice h3{margin:0 0 6px;color:#7e5244}.cooking-lesson-choice>p{margin:5px 0 12px;color:#765f58}.cooking-lesson-choice .lesson-question{padding:10px;border-radius:12px;background:#ffe2a9;color:#7b4a2d;font-weight:900}.cooking-lesson-choice .town-action{width:100%;margin:7px 0;text-align:left}.cooking-lesson-choice .lesson-cancel{width:100%;min-height:42px;margin-top:10px;border:0;border-radius:12px;background:#eadbd0;color:#654d52;font-weight:900}
.voice-preview:active{transform:translateY(1px)}
.cooking-minigame{position:fixed;inset:0;z-index:1000;background:rgba(35,24,29,.72);display:grid;place-items:center;padding:10px;font-family:inherit}
.pc-minigame{position:fixed;inset:0;z-index:1100;display:grid;place-items:center;padding:10px;background:rgba(16,19,35,.88)}.pc-game-card{width:min(100%,390px);max-height:calc(100dvh - 20px);overflow:auto;padding:15px;border:3px solid #9fe9ff;border-radius:24px;background:#202942;color:#fff;box-shadow:0 0 35px #60dfff55}.pc-game-card header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.pc-game-card header div{display:grid;gap:4px}.pc-game-card header button{width:44px;height:44px;border:0;border-radius:50%;font-size:25px}.pc-board{display:grid;grid-template-columns:repeat(10,1fr);width:min(100%,300px);aspect-ratio:10/16;margin:auto;padding:5px;border:3px solid #80dff4;border-radius:10px;background:#10172a;gap:2px}.pc-board i{display:block;border-radius:2px;background:#1d2943;box-shadow:inset 0 0 0 1px #ffffff0c}.pc-controls{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-top:12px}.pc-controls button{min-height:48px;border:0;border-radius:12px;background:#74d7ec;color:#15243a;font-size:20px;font-weight:900;touch-action:manipulation}.pc-controls [data-pc-hard]{grid-column:1/-1;font-size:15px;background:#ffd567}.pc-game-card>p{margin:10px 0 0;color:#c5d8e8;font-size:11px;line-height:1.5}
.cooking-minigame.hidden{display:none}
.cooking-game-card{width:min(100%,460px);height:min(820px,calc(100dvh - 20px));overflow:auto;background:#fff8ed;border-radius:26px;padding:16px;box-shadow:0 18px 60px #20151f66}
.cooking-game-card header{display:flex;justify-content:space-between;align-items:center}.cooking-game-card header h2{margin:2px 0}.cooking-game-card header button{width:44px;height:44px;border:0;border-radius:50%;font-size:26px}
.cooking-hud{position:sticky;top:0;z-index:2;display:flex;justify-content:space-between;gap:6px;padding:10px;background:#6f4e3c;color:#fff;border-radius:14px;font-size:13px}
.cooking-character{height:180px;position:relative;text-align:center;overflow:hidden}.cooking-character img{height:210px;max-width:80%;object-fit:contain}.cooking-character span{position:absolute;right:18%;top:18px;font-size:38px}
#cookPlayArea{background:#fff;border:2px solid #f0d8ba;border-radius:20px;padding:16px;min-height:250px;text-align:center}
.cook-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:14px 0}.cook-choice,.cook-big,.cook-pot,#cookPlayArea>button,.result-buttons button{min-height:52px;border:2px solid #e3b985;background:#fff5df;border-radius:14px;font-size:16px;font-weight:700;touch-action:manipulation}
.cook-choice.selected{background:#ffe08a;border-color:#d88730}.cook-pot{display:flex;width:100%;min-height:100px;align-items:center;justify-content:center;flex-direction:column;font-size:42px}.cook-pot span{font-size:13px}
.cook-big{width:100%;height:150px;font-size:42px}.cook-big b{display:block;font-size:18px}
.cook-gauge{height:40px;background:#ef9a82;border-radius:20px;position:relative;margin:45px 0}.cook-gauge i{position:absolute;height:100%;background:#7bc77b}.cook-gauge b{position:absolute;top:-8px;width:6px;height:56px;background:#38251d;border-radius:5px}
.cook-swipe{height:150px;border:3px dashed #db9d60;border-radius:18px;display:flex;align-items:center;justify-content:center;flex-direction:column;touch-action:none}.cook-swipe b{font-size:64px}.fire-zone{margin:10px;color:#348a43}.cook-result strong{display:block;font-size:28px;color:#b05c39}.score-list{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:15px 0}.score-list span{background:#f7ead7;padding:9px 3px;border-radius:10px;font-size:12px}.score-list b{display:block;font-size:18px}.wife-review{padding:14px;background:#ffe7ed;border-radius:14px}.result-buttons{display:grid;grid-template-columns:1fr 1fr;gap:10px}
@media (max-height:680px){.cooking-character{height:115px}.cooking-character img{height:145px}#cookPlayArea{min-height:210px}}
.save-start-screen{position:fixed;inset:0;z-index:5000;display:grid;place-items:center;padding:18px;background:linear-gradient(160deg,rgba(255,242,219,.97),rgba(246,204,205,.97))}.save-start-screen.hidden{display:none}.save-start-card{width:min(100%,430px);max-height:calc(100dvh - 36px);overflow:auto;padding:26px;border:3px solid #fff;border-radius:28px;background:#fffaf3;color:#574148;text-align:center;box-shadow:0 18px 55px #8a586044}.save-start-kicker{margin:0 0 8px;color:#c76b74;font-size:11px;font-weight:1000;letter-spacing:.14em}.save-start-card h2{margin:6px 0 8px;font-size:25px}.save-start-card>div>p{margin:0 0 18px;color:#846d72;font-size:13px}.save-start-buttons{display:grid;gap:9px}.save-start-buttons button,.save-manager-back,.save-slot-actions button{min-height:48px;border:0;border-radius:14px;background:#f1dfd3;color:#604a50;font-weight:900}.save-start-buttons .primary-button{background:linear-gradient(135deg,#ef7e84,#f0ad70);color:#fff;box-shadow:0 4px 0 #b85f67}.save-slot-list{display:grid;gap:10px;text-align:left}.save-slot-card{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;padding:13px;border:2px solid #ead6ca;border-radius:16px;background:#fff}.save-slot-card.active{border-color:#ef7e84;box-shadow:0 0 0 2px #ffe2e5}.save-slot-card b,.save-slot-card span{display:block}.save-slot-card span{margin-top:4px;color:#8b7477;font-size:11px}.save-slot-actions{display:flex;gap:5px}.save-slot-actions button{min-height:38px;padding:7px 9px;font-size:11px}.save-slot-actions .danger{background:#ffe1e1;color:#a54c54}.save-manager-back{width:100%;margin-top:13px}
