/*
 [Cursor 편집 - 화면 디자인] 이 주석 아래는 업로드한 원본 CSS 그대로입니다.
 - 전체 색상: :root 의 --bg, --panel, --text, --accent 등을 검색해 수정
 - 시간 진행 바: .yearProgress, .yearProgressFill 관련 선택자 검색
 - 사건 선택지: .eventCard, .eventChoices 관련 선택자 검색
 - 클래스명/아이디명은 JavaScript와 연결되어 있으므로 변경 시 주의
*/
:root{color-scheme:dark;--bg:#0c1319;--panel:#18232b;--panel2:#1c2a34;--line:#344550;--text:#f2efe5;--muted:#a3b2b8;--accent:#e8bd7e;--accent2:#91c8b7;--danger:#eaa6a2}*{box-sizing:border-box}html{min-width:320px}body{margin:0;color:var(--text);background:radial-gradient(ellipse 85% 30% at 20% 0,#253640 0,transparent 76%),var(--bg);font-family:system-ui,-apple-system,'Malgun Gothic','Apple SD Gothic Neo',sans-serif;font-size:14px;line-height:1.7}button,input{font:inherit}button{cursor:pointer;touch-action:manipulation}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.hidden{display:none!important}.shell{max-width:1210px;margin:auto;padding:0 22px}.siteHeader{height:80px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);margin-bottom:28px}.mark{display:flex;gap:12px;align-items:center}.mark .ornament{color:var(--accent);font-size:30px}.mark strong{font-size:21px;display:block;letter-spacing:-.06em}.mark small{color:var(--muted);display:block;font-size:9px;letter-spacing:.12em;line-height:1.2}.headerNote{font-size:11px;color:var(--muted)}.paper{background:linear-gradient(150deg,#1a2832,#172129);border:1px solid var(--line);border-radius:13px;box-shadow:0 14px 35px #0002;padding:23px}.eyebrow{color:var(--accent);font-size:11px;font-weight:750;letter-spacing:.07em}.startGrid{display:grid;grid-template-columns:1.1fr .9fr;gap:19px;align-items:stretch}.intro{min-height:595px;padding:54px 44px}.intro h1{font-family:Georgia,'Malgun Gothic',serif;font-size:clamp(34px,4vw,51px);line-height:1.35;letter-spacing:-.06em;margin:35px 0 18px}.intro em{color:var(--accent);font-style:normal}.intro p{max-width:500px;color:#c7d3d5;line-height:2.1}.introDetails{margin-top:55px;border-top:1px solid var(--line);padding-top:22px;display:grid;gap:18px}.introDetails b,.introDetails span{display:block}.introDetails b{font-size:13px}.introDetails span{font-size:11px;color:var(--muted);margin-top:3px}.creator{padding:41px 36px}.creator h2{font-family:Georgia,'Malgun Gothic',serif;font-size:31px;margin:6px 0 22px}.creator label:not(:has(input[type=radio])){font-weight:700;font-size:12px;display:flex;align-items:center;justify-content:space-between;gap:10px;margin:17px 0 7px}.creator label small{font-size:10px;color:var(--muted);font-weight:400;text-align:right}.creator input:not([type=radio]){width:100%;min-width:0;color:var(--text);border-radius:8px;border:1px solid #445561;background:#111c24;padding:12px 13px;min-height:48px}.creator input::placeholder{color:#788e9a}fieldset{border:0;padding:0;margin:16px 0 0}legend{font-weight:700;font-size:12px;margin-bottom:8px}.genderGroup{display:grid;grid-template-columns:1fr 1fr;gap:10px}.genderGroup label{position:relative}.genderGroup input{position:absolute;opacity:0}.genderGroup span{display:block;padding:12px;border:1px solid #445561;background:#111c24;border-radius:8px;text-align:center}.genderGroup input:checked+span{border-color:var(--accent);color:#ffe2b9;background:#493c2e}.genderGroup input:focus-visible+span{outline:2px solid var(--accent)}.seedRow{display:flex;gap:8px}.primary,.secondary{padding:11px 15px;border-radius:8px;border:1px solid var(--line);font-weight:700;color:var(--text);background:#293945}.primary{background:var(--accent);color:#152128;border-color:var(--accent)}.primary:hover{background:#ffd699}.secondary:hover{border-color:var(--accent)}.begin{width:100%;margin-top:29px;padding:14px 18px;display:flex;justify-content:space-between}.wide{width:100%;margin-top:9px}.help{font-size:11px;line-height:1.7;color:var(--muted);margin-top:18px}.gameHeader{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:18px}.gameHeader h2{font-size:27px;margin:4px 0 0;letter-spacing:-.045em}.identity{font-size:12px;color:var(--muted)}.headerActions{display:flex;gap:8px;flex-wrap:wrap}.headerActions button{font-size:12px}.gameColumns{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(260px,.78fr);gap:16px;align-items:start}.storyCol,.sideCol{display:flex;flex-direction:column;gap:16px;min-width:0}.clockRow{display:flex;justify-content:space-between;align-items:center}.bigAge{font-size:42px;font-weight:800;line-height:1.25}.seasonBlock{text-align:right}.seasonName{font-size:29px;color:var(--accent);font-family:Georgia,'Malgun Gothic',serif;font-weight:700}.timeState{font-size:11px;color:var(--accent2)}.seasons{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-top:20px}.seasons div{text-align:center;border:1px solid #3b4a55;border-radius:7px;padding:8px 3px;color:#879da8;font-size:11px}.seasons div.current{background:#594733;border-color:var(--accent);color:#ffe4bd;font-weight:800}.yearProgress{height:9px;width:100%;overflow:hidden;border:1px solid #53636d;border-radius:20px;margin-top:10px;background:#111c24}.yearProgress>div{height:100%;width:0;background:var(--accent);border-radius:20px}.speedBar{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:5px;margin-top:17px}.speedBtn{padding:10px 0;background:#121f27;color:#cbd9da;border:1px solid #354754;border-radius:7px;font-weight:750;font-size:12px}.speedBtn.active{background:var(--accent);border-color:var(--accent);color:#19232a}.story{padding:0;overflow:hidden}.storyTitle{display:flex;justify-content:space-between;align-items:center;gap:12px;border-bottom:1px solid var(--line);padding:16px 21px}.storyTitle #storyHint{color:var(--muted);font-size:10px;text-align:right}.storyFeed{height:min(65vh,700px);min-height:490px;overflow-y:auto;padding:22px 23px 28px;scroll-behavior:smooth;overscroll-behavior:contain}.storyFeed::-webkit-scrollbar{width:9px}.storyFeed::-webkit-scrollbar-thumb{background:#52636a;border-radius:8px}.storyEntry{position:relative;padding:0 0 25px 20px;margin-left:5px;border-left:1px solid #45525b}.storyEntry:before{content:'';position:absolute;left:-4px;top:6px;width:7px;height:7px;border-radius:50%;background:#8b9999}.storyEntry .entryTag{font-size:11px;color:var(--accent);font-weight:700}.storyEntry h4{font-family:Georgia,'Malgun Gothic',serif;font-size:19px;margin:5px 0 8px;letter-spacing:-.035em}.storyEntry p{font-size:13px;line-height:2.05;color:#d7dddc;white-space:pre-wrap;margin:0;word-break:keep-all}.storyEntry.important:before{background:var(--accent)}.storyEntry.result:before{background:var(--accent2)}.eventCard{margin:7px 0 27px 20px;padding:18px 18px 19px;background:#28343d;border:1px solid #74806e;border-radius:10px;box-shadow:0 10px 20px #0002}.eventCard.critical{border-color:var(--accent)}.eventCard .eventKicker{font-size:11px;font-weight:750;color:var(--accent)}.eventCard h3{font-family:Georgia,'Malgun Gothic',serif;letter-spacing:-.04em;font-size:23px;line-height:1.45;margin:9px 0}.eventCard p{font-size:13px;color:#e3e7e0;line-height:1.9;word-break:keep-all;margin:7px 0 15px}.eventChoices{display:grid;gap:9px}.eventChoices button{font-size:13px;text-align:left;line-height:1.55;padding:11px 13px;min-height:43px;border-radius:7px;border:1px solid #60727e;color:#f0f1ec;background:#17262e}.eventChoices button:hover{border-color:var(--accent);background:#3c3b31}.timeBar{height:4px;background:#435058;border-radius:10px;margin-top:17px;overflow:hidden}.timeBar div{height:100%;background:var(--accent);width:100%}.timeText{font-size:10px;color:#bfc9c5;margin-top:5px}.profile h3{font-size:25px;margin:8px 0}.profile dl{margin:7px 0 0}.profile dl>div{display:flex;align-items:center;justify-content:space-between;gap:7px;border-bottom:1px solid #334550;padding:9px 0}.profile dl>div:last-child{border-bottom:0}dt{font-size:12px;color:var(--muted)}dd{font-size:12px;margin:0;text-align:right;font-weight:650;overflow-wrap:anywhere}.stats{display:grid;gap:11px;margin-top:18px}.statRow .statTitle{display:flex;justify-content:space-between;font-size:12px}.statRow .statTitle label{color:#acbfbe}.statLine{height:5px;background:#30414b;border-radius:6px;margin-top:6px;overflow:hidden}.statLine>div{height:100%;background:#91c8b7}.money{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #35454e;margin-top:18px;padding-top:15px;font-size:12px;color:var(--muted)}.money b{font-size:17px;color:var(--accent)}.sideNotice{font-size:11px;color:var(--muted);padding:8px 4px;line-height:1.85}.finale{max-width:820px;margin:30px auto 60px;text-align:center;padding:56px 35px}.finale h1{font-size:37px;font-family:Georgia,'Malgun Gothic',serif;margin:15px 0}.finale p{max-width:570px;color:#cbd4d4;line-height:2.1;margin:25px auto}.endStats{display:flex;flex-wrap:wrap;justify-content:center;gap:10px}.endStats span{border:1px solid #4b5d64;padding:11px 18px;border-radius:8px;font-size:12px}.endActions{display:flex;justify-content:center;gap:10px;margin-top:29px}.errorBox{border:1px solid var(--danger);color:#ffb4b4;background:#452929;padding:13px;border-radius:8px;margin-top:16px}.shell footer{font-size:11px;color:#7f959d;text-align:center;margin:28px 0 35px}@media(max-width:900px){.gameColumns{grid-template-columns:1fr}.sideCol{display:grid;grid-template-columns:1fr 1fr}.sideNotice{grid-column:span 2}.startGrid{grid-template-columns:1fr}.intro{min-height:0}.introDetails{grid-template-columns:repeat(3,1fr)}.creator{padding:30px}.storyFeed{height:58vh;min-height:440px}}@media(max-width:570px){.shell{padding:0 12px}.siteHeader{height:66px;margin-bottom:16px}.headerNote{display:none}.startGrid{display:flex;flex-direction:column;gap:13px}.creator{order:0;padding:24px 20px}.intro{order:1;padding:25px 21px;min-height:0}.intro h1{font-size:27px;margin:11px 0}.intro p{font-size:12px}.introDetails{display:none}.gameHeader{align-items:flex-start;flex-direction:column}.gameHeader h2{font-size:22px}.headerActions{width:100%}.headerActions button{flex:1;padding:9px 8px}.paper{padding:17px}.clock .bigAge{font-size:35px}.seasonName{font-size:23px}.speedBar{gap:3px}.speedBtn{font-size:11px;padding:9px 0}.story{padding:0}.storyTitle{padding:12px 15px}.storyTitle #storyHint{max-width:58%;font-size:9px}.storyFeed{padding:17px 13px;height:65vh;min-height:450px}.storyEntry{padding-left:13px}.storyEntry p{font-size:12px;line-height:1.95}.storyEntry h4{font-size:17px}.eventCard{padding:13px;margin:4px 0 23px 12px}.eventCard h3{font-size:20px}.eventCard p{font-size:12px}.eventChoices button{font-size:12px}.sideCol{display:flex}.profile h3{font-size:21px}.finale{padding:38px 20px}.finale h1{font-size:28px}.endActions{flex-direction:column}}

/* [시드 접기·펼치기 전용] 다른 화면과 게임 디자인에는 적용되지 않습니다. */
.seedDisclosure { margin-top: 17px; }
.seedDisclosure > summary { cursor: pointer; font-weight: 700; font-size: 12px; padding: 8px 0; display: flex; justify-content: space-between; align-items: center; gap: 10px; list-style: none; }
.seedDisclosure > summary::-webkit-details-marker { display: none; }
.seedDisclosure > summary::before { content: '▸'; color: var(--accent); margin-right: 3px; }
.seedDisclosure[open] > summary::before { content: '▾'; }
.seedDisclosure > summary small { font-size: 10px; font-weight: 400; color: var(--muted); }
.seedDisclosure > summary:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }


/* [Cursor - 지난 삶 6개] 오른쪽 기존 설명 영역 하단의 기록 목록 및 기록 보기 창만 꾸밉니다. */
.pastLives { margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--line); color: var(--text); }
.pastLives h3 { font-size: 15px; margin: 0 0 12px; color: var(--text); }
.pastLivesList { display: grid; gap: 10px; }
.pastLifeEmpty { color: var(--muted); font-size: 12px; margin: 0; }
.pastLifeItem { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: start; gap: 9px; border: 1px solid var(--line); background: #1a2831; border-radius: 9px; padding: 12px 10px; }
.pastLifeInfo { display: grid; gap: 3px; min-width: 0; font-size: 12px; line-height: 1.5; overflow-wrap: anywhere; }
.pastLifeAge { color: var(--accent); font-size: 16px; font-weight: 850; line-height: 1.4; }
.pastLifeJob, .pastLifeCause { color: #b9cbcc; }
.pastLifeTools { display: grid; gap: 7px; justify-items: end; min-width: 85px; }
.pastLifeDate { font-size: 10px; text-align: right; line-height: 1.5; color: var(--muted); white-space: nowrap; }
.pastLifeOpen { font-size: 11px; padding: 7px 11px; }
.lifeRecordOverlay { position: fixed; inset: 0; z-index: 50; background: rgba(0,0,0,.78); display: grid; place-items: center; padding: 18px; }
.lifeRecordDialog { width: min(100%,800px); max-height: min(88vh,880px); display: flex; flex-direction: column; background: var(--surface,#1c2a33); border: 1px solid #5e6e76; border-radius: 12px; padding: 20px; box-shadow: 0 20px 70px #0009; min-height: 0; }
.lifeRecordTop { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 12px; margin-bottom: 15px; }
.lifeRecordTop h2 { font-size: 20px; margin: 0; }
.lifeRecordActions { display: flex; gap: 8px; }
.lifeRecordActions button { font-size: 12px; }
.lifeRecordText { white-space: pre-wrap; overflow-y: auto; overflow-wrap: anywhere; min-height: 80px; padding: 16px; margin: 0; border: 1px solid var(--line); border-radius: 7px; background: #111c24; color: #d8e1de; line-height: 1.9; font-family: inherit; font-size: 12px; }
@media(max-width:570px){.lifeRecordOverlay{padding:9px}.lifeRecordDialog{padding:14px;max-height:92vh}.lifeRecordTop h2{font-size:17px}.lifeRecordText{font-size:12px;padding:10px}.pastLifeItem{grid-template-columns:minmax(0,1fr) auto}}


/* [Cursor - 지난 삶 위치만 변경] 시작 화면 왼쪽 칸에 나이 | 이름 | 직업 | 사망사유 | 현실 날짜 | 기록 버튼을 가로 한 줄로 표시합니다.
   이 스타일은 지난 삶 목록에만 적용됩니다. 이벤트·시간·시드·저장·기록 창은 건드리지 않습니다. */
.intro .pastLives { margin-top: 24px; }
.intro .pastLivesList { min-width: 0; display: grid; gap: 8px; }
.intro .pastLifeItem { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; align-items: center; padding: 9px 10px; }
.intro .pastLifeInfo { display: grid; grid-template-columns: 42px minmax(48px,.75fr) minmax(60px,1fr) minmax(68px,1.3fr); align-items: center; gap: 5px; min-width: 0; font-size: 11px; line-height: 1.45; }
.intro .pastLifeAge { font-size: 15px; font-weight: 850; white-space: nowrap; }
.intro .pastLifeTools { display: flex; align-items: center; gap: 6px; min-width: 0; }
.intro .pastLifeDate { font-size: 10px; white-space: nowrap; }
.intro .pastLifeOpen { padding: 5px 7px; white-space: nowrap; }
@media (max-width: 570px) {
  /* 모바일에서도 열의 순서를 유지하되, 가로 폭이 부족하면 목록 안에서만 좌우 스크롤합니다. */
  .intro .pastLivesList { overflow-x: auto; }
  .intro .pastLifeItem { min-width: 510px; }
}


/* [Cursor - 중요 사건 선택 창 전용] 기존 일반 사건·시작 화면·지난 삶 기록 스타일은 변경하지 않습니다. */
.importantEventOverlay { position: fixed; inset: 0; z-index: 45; background: rgba(0,0,0,.78); display: grid; place-items: center; padding: 18px; }
.importantEventDialog { width: min(100%,700px); max-height: 90vh; overflow-y: auto; background: var(--panel2); border: 1px solid var(--accent); border-radius: 12px; padding: 24px; box-shadow: 0 20px 65px #000b; }
.importantEventDialog .eventCard { margin: 0; padding: 0; border: none; border-radius: 0; background: transparent; box-shadow: none; }
@media (max-width: 570px) { .importantEventOverlay { padding: 10px; } .importantEventDialog { padding: 18px; max-height: 92vh; } }
/* [게임 화면 크기만 조정]
   이 아래 CSS는 #gameScreen이 보일 때에만 적용됩니다.
   시작 화면/엔딩/사건/저장 데이터 및 게임 실행 로직은 수정하지 않습니다.
   브라우저 전체 스크롤을 없애고, 길어지는 이야기만 가운데 칸 안에 보관합니다.
   이야기의 새 문단/사건은 기존 엔진이 자동으로 맨 아래로 표시합니다.
*/
body:has(#gameScreen:not(.hidden)) {
  height: 100dvh;
  overflow: hidden;
}
body:has(#gameScreen:not(.hidden)) .shell {
  width: 100%;
  max-width: none;
  height: 100dvh;
  padding: 0 clamp(8px,1.5vw,20px);
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
body:has(#gameScreen:not(.hidden)) .siteHeader {
  height: clamp(38px,6vh,54px);
  min-height: 0;
  margin-bottom: 7px;
  flex: 0 0 auto;
}
body:has(#gameScreen:not(.hidden)) main {
  flex: 1 1 0;
  min-height: 0;
  display: flex;
  flex-direction: column;
}
body:has(#gameScreen:not(.hidden)) .shell footer { display: none; }
#gameScreen:not(.hidden) {
  display: flex;
  flex-direction: column;
  flex: 1 1 0;
  min-height: 0;
  overflow: hidden;
}
#gameScreen .gameHeader {
  flex: 0 0 auto;
  align-items: center;
  margin-bottom: 8px;
  gap: 10px;
}
#gameScreen .gameHeader h2 { margin: 1px 0 0; font-size: clamp(17px,2vw,23px); line-height:1.25; }
#gameScreen .identity { font-size: 11px; line-height: 1.35; }
#gameScreen .gameHeader .eyebrow {font-size:10px;line-height:1.3;}
#gameScreen .headerActions { flex-wrap: nowrap; }
#gameScreen .headerActions button { padding:7px 11px; white-space:nowrap; }
#gameScreen .gameColumns {
  display: grid;
  grid-template-columns: minmax(0,1.8fr) minmax(235px,.68fr);
  gap: 9px;
  flex: 1 1 0;
  min-height: 0;
  height: 100%;
  align-items: stretch;
  overflow: hidden;
}
#gameScreen .storyCol, #gameScreen .sideCol {
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-height: 0;
  min-width: 0;
  overflow: hidden;
}
#gameScreen .paper { box-shadow:none; }
#gameScreen .clock { padding: 9px 14px 10px; flex:0 0 auto; }
#gameScreen .bigAge { font-size: 29px; line-height:1.12; }
#gameScreen .seasonName {font-size:22px;line-height:1.2;}
#gameScreen .clockRow .eyebrow {font-size:10px;}
#gameScreen .seasons { margin-top: 7px; gap: 5px; }
#gameScreen .seasons div { padding: 4px 2px; line-height: 1.3; }
#gameScreen .yearProgress { margin-top:6px; height:7px; }
#gameScreen .speedBar { margin-top: 7px; }
#gameScreen .speedBtn { padding:5px 0; min-height:28px; }
#gameScreen .story {
  flex: 1 1 0;
  min-height: 0;
  height:auto;
  display:flex;
  flex-direction:column;
  overflow:hidden;
  padding:0;
}
#gameScreen .storyTitle { flex:0 0 auto; padding:9px 14px; min-height:33px; }
#gameScreen .storyFeed {
  flex: 1 1 0;
  min-height: 0;
  height: auto;
  max-height:none;
  overflow-y:auto;
  overflow-x:hidden;
  padding:14px 16px 18px;
  overscroll-behavior:contain;
}
#gameScreen .storyEntry {padding-bottom:16px;}
#gameScreen .storyEntry h4 {margin:3px 0 4px;font-size:17px;}
#gameScreen .storyEntry p {line-height:1.75;}
#gameScreen .eventCard { margin:5px 0 12px 15px;padding:12px; }
#gameScreen .eventCard h3 {font-size:19px;margin:5px 0;}
#gameScreen .eventCard p {line-height:1.55;margin:6px 0 9px;}
#gameScreen .eventChoices {gap:5px;}
#gameScreen .eventChoices button {min-height:35px;padding:7px 10px;}
#gameScreen .sideCol .paper { flex:0 0 auto; padding:11px 13px; }
#gameScreen .profile h3 { font-size:18px;line-height:1.25;margin:4px 0; }
#gameScreen .profile dl { margin:3px 0 0; }
#gameScreen .profile dl>div { padding:5px 0; }
#gameScreen .profile dt, #gameScreen .profile dd {font-size:11px;line-height:1.3;}
#gameScreen .stats { margin-top:8px;gap:6px; }
#gameScreen .statRow .statTitle {font-size:11px;line-height:1.25;}
#gameScreen .statLine {margin-top:3px;height:4px;}
#gameScreen .money {margin-top:9px;padding-top:7px;}
#gameScreen .money b {font-size:14px;}
#gameScreen .sideNotice { font-size:10px;line-height:1.5; padding:2px 3px; }

/* 가로 폭이 좁은 화면: 시간과 이야기를 위쪽, 두 정보칸을 아래쪽에 동시에 표시 */
@media (max-width:780px) {
  body:has(#gameScreen:not(.hidden)) .shell {padding:0 7px;}
  body:has(#gameScreen:not(.hidden)) .siteHeader {height:39px;margin-bottom:5px;}
  body:has(#gameScreen:not(.hidden)) .mark .ornament {font-size:21px;}
  body:has(#gameScreen:not(.hidden)) .mark strong {font-size:16px;}
  body:has(#gameScreen:not(.hidden)) .mark small {font-size:8px;}
  #gameScreen .gameHeader { flex-direction:row; align-items:center; margin-bottom:5px; gap:5px; }
  #gameScreen .gameHeader>div:first-child {flex:1;min-width:0;}
  #gameScreen .gameHeader h2 {font-size:17px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;}
  #gameScreen .gameHeader .eyebrow, #gameScreen .identity {font-size:9px;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  #gameScreen .headerActions {width:auto;flex:0 0 auto;gap:4px;}
  #gameScreen .headerActions button {flex:none;font-size:10px;padding:6px 7px;}
  #gameScreen .gameColumns {grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto;gap:6px;}
  #gameScreen .storyCol {gap:6px;}
  #gameScreen .clock {padding:7px 11px 8px;}
  #gameScreen .bigAge {font-size:24px;}
  #gameScreen .seasonName {font-size:18px;}
  #gameScreen .timeState {font-size:10px;}
  #gameScreen .seasons {margin-top:5px;}
  #gameScreen .seasons div {padding:2px;}
  #gameScreen .speedBar {margin-top:5px;gap:4px;}
  #gameScreen .speedBtn {min-height:26px;padding:3px 0;font-size:11px;}
  #gameScreen .storyTitle {padding:6px 10px;min-height:28px;}
  #gameScreen .storyFeed {padding:10px 12px 14px;}
  #gameScreen .sideCol {display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:5px;align-content:start;}
  #gameScreen .sideCol .paper {padding:7px 9px;}
  #gameScreen .sideCol .eyebrow {font-size:9px;}
  #gameScreen .profile h3 {font-size:13px;margin:2px 0;}
  #gameScreen .profile dl>div {padding:2px 0;gap:2px;}
  #gameScreen .profile dt, #gameScreen .profile dd {font-size:9px;line-height:1.2;}
  #gameScreen .stats {margin-top:2px;gap:2px;}
  #gameScreen .statRow .statTitle {font-size:9px;line-height:1.1;}
  #gameScreen .statLine {height:3px;margin-top:2px;}
  #gameScreen .money {margin-top:4px;padding-top:3px;font-size:10px;}
  #gameScreen .money b {font-size:11px;}
  #gameScreen .sideNotice {grid-column:1/-1;font-size:9px;line-height:1.3;padding:1px 4px;}
  #gameScreen .storyEntry h4 {font-size:15px;}
  #gameScreen .storyEntry p {font-size:12px;line-height:1.6;}
  #gameScreen .storyEntry {padding-bottom:12px;}
}
/* 작은 모바일의 짧은 화면에서도 게임 전체의 바깥 스크롤을 만들지 않습니다. */
@media (max-width:780px) and (max-height:700px) {
  #gameScreen .clock {padding:5px 10px 6px;}
  #gameScreen .bigAge {font-size:21px;}
  #gameScreen .seasonName {font-size:17px;}
  #gameScreen .seasons {margin-top:3px;}
  #gameScreen .seasons div {font-size:10px;padding:1px;}
  #gameScreen .speedBar {margin-top:3px;}
  #gameScreen .speedBtn {min-height:23px;padding:2px 0;}
  #gameScreen .sideCol .paper {padding:5px 7px;}
  #gameScreen .profile dl>div {padding:1px 0;}
  #gameScreen .sideNotice {font-size:8px;}
}
/* 짧은 휴대폰 화면: 발생 중인 시간제한 사건의 선택지가 작은 이야기 칸에
   잘리지 않도록 사건 카드만 일시적으로 화면 안에 표시합니다.
   사건의 종류·제한시간·선택 처리 방식에는 영향을 주지 않습니다. */
@media (max-height:700px) and (max-width:780px) {
  #gameScreen .storyFeed > .eventCard {
    position: fixed;
    z-index: 40;
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%);
    width: min(96vw,520px);
    max-height: calc(100dvh - 20px);
    overflow-y: auto;
    margin: 0;
    box-shadow: 0 16px 50px #000c;
  }
}

/* [가독성 보정 전용 - 2026-10-17]
   이 블록은 게임 진행 화면(#gameScreen)의 서체 크기, 명암 대비, 줄 간격,
   사건 선택지 구분만 개선합니다. 게임 로직/이벤트/시작 화면/종료 화면은 그대로입니다.
   이전의 '한 화면 맞춤' 규칙을 유지하며, 이야기 영역 안쪽 스크롤도 유지합니다.
*/
#gameScreen .gameHeader h2 { font-size: clamp(19px,2.1vw,25px); line-height:1.3; }
#gameScreen .identity { font-size:12px; line-height:1.45; color:#bed0d3; }
#gameScreen .gameHeader .eyebrow, #gameScreen .clockRow .eyebrow { font-size:11px; }
#gameScreen .bigAge { font-size:32px; }
#gameScreen .seasonName { font-size:25px; }
#gameScreen .timeState { font-size:12px; }
#gameScreen .seasons div { font-size:12px; color:#bbccd1; }
#gameScreen .speedBtn { min-height:32px; font-size:12.5px; }
#gameScreen .storyTitle .eyebrow { font-size:12px; }
#gameScreen .storyTitle #storyHint { font-size:11px; color:#bccbd0; }
#gameScreen .storyFeed { padding:17px 22px 20px; }
#gameScreen .storyEntry { padding-bottom:21px; border-left-color:#586b76; }
#gameScreen .storyEntry .entryTag { font-size:12px; }
#gameScreen .storyEntry h4 { font-size:19px; line-height:1.42; margin:5px 0 7px; }
#gameScreen .storyEntry p { font-size:14.5px; line-height:1.82; color:#e1e9ea; letter-spacing:-.012em; }
#gameScreen .eventCard { background:#2a3943; border-color:#a69a78; padding:15px; }
#gameScreen .eventCard .eventKicker { font-size:12px; }
#gameScreen .eventCard h3 { font-size:21px; line-height:1.4; margin:8px 0; }
#gameScreen .eventCard p { font-size:14px; line-height:1.72; margin:7px 0 13px; color:#e8ece9; }
#gameScreen .eventChoices { gap:9px; }
#gameScreen .eventChoices button { font-size:14px; min-height:42px; padding:10px 12px; line-height:1.55; border-color:#728891; }
#gameScreen .timeText { font-size:11px; }
#gameScreen .sideCol .paper { padding:12px 14px; }
#gameScreen .sideCol .eyebrow { font-size:11px; }
#gameScreen .profile h3 { font-size:19px; line-height:1.35; }
#gameScreen .profile dl>div { padding:6px 0; }
#gameScreen .profile dt, #gameScreen .profile dd { font-size:12px; line-height:1.45; }
#gameScreen .profile dt { color:#bdcbd0; }
#gameScreen .stats { gap:8px; }
#gameScreen .statRow .statTitle { font-size:12px; line-height:1.45; }
#gameScreen .statRow .statTitle label { color:#c3d1d0; }
#gameScreen .statLine { height:5px; margin-top:4px; }
#gameScreen .money { font-size:12px; }
#gameScreen .money b { font-size:16px; }
#gameScreen .sideNotice { font-size:11px; line-height:1.6; color:#bbcbd0; }

/* 휴대폰: 좁은 두 상태칸의 내용이 겹치지 않도록 글씨는 적정 크기로 유지 */
@media (max-width:780px) {
  #gameScreen .gameHeader h2 { font-size:18px; }
  #gameScreen .gameHeader .eyebrow, #gameScreen .identity { font-size:10px; }
  #gameScreen .bigAge { font-size:25px; }
  #gameScreen .seasonName { font-size:20px; }
  #gameScreen .timeState { font-size:10.5px; }
  #gameScreen .seasons div { font-size:11px; }
  #gameScreen .speedBtn { min-height:29px; font-size:11.5px; }
  #gameScreen .storyTitle .eyebrow { font-size:11px; white-space:nowrap; }
  #gameScreen .storyTitle #storyHint { font-size:10px; line-height:1.3; }
  #gameScreen .storyFeed { padding:12px 14px 16px; }
  #gameScreen .storyEntry { padding-bottom:16px; }
  #gameScreen .storyEntry .entryTag { font-size:11px; }
  #gameScreen .storyEntry h4 { font-size:17px; line-height:1.4; }
  #gameScreen .storyEntry p { font-size:13.5px; line-height:1.72; }
  #gameScreen .eventCard { padding:12px; }
  #gameScreen .eventCard h3 { font-size:19px; }
  #gameScreen .eventCard p { font-size:13.5px; line-height:1.65; }
  #gameScreen .eventChoices button { font-size:13px; min-height:40px; padding:9px 10px; }
  #gameScreen .sideCol .paper { padding:8px 9px; }
  #gameScreen .sideCol .eyebrow { font-size:10px; }
  #gameScreen .profile h3 { font-size:14px; }
  #gameScreen .profile dl>div { padding:3px 0; }
  #gameScreen .profile dt, #gameScreen .profile dd { font-size:10.5px; line-height:1.35; }
  #gameScreen .stats { gap:4px; margin-top:4px; }
  #gameScreen .statRow .statTitle { font-size:10.5px; line-height:1.25; }
  #gameScreen .statLine { height:4px; margin-top:3px; }
  #gameScreen .money { font-size:10.5px; margin-top:6px; padding-top:5px; }
  #gameScreen .money b { font-size:12px; }
  #gameScreen .sideNotice { font-size:10px; line-height:1.4; }
}
/* 화면 높이가 특히 짧을 때의 기존 압축 배치를 보존합니다. */
@media (max-width:780px) and (max-height:700px) {
  #gameScreen .bigAge { font-size:22px; }
  #gameScreen .seasonName { font-size:18px; }
  #gameScreen .speedBtn { min-height:25px; }
  #gameScreen .sideCol .paper { padding:6px 8px; }
  #gameScreen .profile dl>div { padding:2px 0; }
}

/* [가독성 보정 - 중요 사건 창]
   기존에 있던 중요 사건 창의 글자/선택지만 읽기 쉽게 조정합니다.
   사건 조건, 동작, 배경 오버레이, 배치 방식은 변경하지 않습니다. */
body:has(#gameScreen:not(.hidden)) .importantEventDialog .eventKicker {
  font-size: 12px;
}
body:has(#gameScreen:not(.hidden)) .importantEventDialog .eventCard h3 {
  font-size: 22px;
  line-height: 1.42;
}
body:has(#gameScreen:not(.hidden)) .importantEventDialog .eventCard p {
  color: #e8ece9;
  font-size: 14.5px;
  line-height: 1.76;
}
body:has(#gameScreen:not(.hidden)) .importantEventDialog .eventChoices button {
  min-height: 44px;
  padding: 10px 13px;
  font-size: 14px;
  line-height: 1.55;
  border-color: #778c97;
}

/* 일반 휴대폰: 넓이가 확보되면 상태 수치와 본문을 조금 더 크게 표시합니다.
   아주 좁은 320px 화면은 기존의 압축 규칙을 유지합니다. */
@media (min-width: 360px) and (max-width: 780px) {
  #gameScreen .storyEntry p { font-size: 14px; }
  #gameScreen .profile dt, #gameScreen .profile dd { font-size: 11px; }
  #gameScreen .statRow .statTitle { font-size: 11px; }
  #gameScreen .money { font-size: 11px; }
  #gameScreen .money b { font-size: 13px; }
}
@media (max-width: 359px) {
  body:has(#gameScreen:not(.hidden)) .importantEventDialog .eventCard h3 { font-size: 20px; }
  body:has(#gameScreen:not(.hidden)) .importantEventDialog .eventCard p { font-size: 13.5px; }
  body:has(#gameScreen:not(.hidden)) .importantEventDialog .eventChoices button { font-size: 13px; }
}

/* [게임 화면 위치 변경] 왼쪽은 당신의 삶·직업·현재 상태, 오른쪽은 시간·살아가는 이야기.
   시작·엔딩 화면과 기존 화면 높이/스크롤 규칙은 유지합니다. */
#gameScreen .gameColumns { grid-template-columns: minmax(165px,.30fr) minmax(0,2fr); }
#gameScreen .sideCol { order: 0; }
#gameScreen .storyCol { order: 1; }
/* 직업 표시: 이야기에 등장하는 진로 선택 뒤 기존 g.work를 그대로 보여줍니다. */
#gameScreen .jobPanel .jobValue { margin-top:7px; font-size:14px; font-weight:700; line-height:1.5; overflow-wrap:anywhere; }
@media (max-width:780px) {
  /* 좁은 화면도 정보 칸 → 시간·이야기 순서로 배치합니다. */
  #gameScreen .gameColumns { grid-template-columns:minmax(0,1fr); grid-template-rows:auto minmax(0,1fr); }
  #gameScreen .sideCol { grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr); }
  #gameScreen .sideNotice { grid-column:1 / -1; }
  #gameScreen .jobPanel .jobValue { font-size:11px; line-height:1.3; margin-top:3px; }
}
@media (max-width:359px) {
  /* 320px 모바일: 현재 상태 다섯 지표를 한 줄로 압축해 이야기 공간을 확보합니다. */
  #gameScreen .sideCol { grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
  #gameScreen .sideCol .profile:last-of-type { grid-column:1 / -1; }
  #gameScreen .sideCol .stats { grid-template-columns:repeat(5,minmax(0,1fr)); gap:5px; }
  #gameScreen .sideCol .statTitle { flex-direction:column; gap:2px; align-items:start; }
  #gameScreen .sideCol .statLine { height:3px; }
}

/* 게임 진행 화면에서만 상단 게임 타이틀을 숨깁니다. 인물 이름과 게임 내 버튼은 유지합니다. */
body:has(#gameScreen:not(.hidden)) .siteHeader { display: none; }

/* [게임 화면 상단 정리] 기존 상단 제목줄은 화면에서 제거하고,
   재시작/처음으로 버튼만 '지금의 삶' 칸 오른쪽에 배치합니다. */
#gameScreen .clockToolbar {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  margin-bottom:4px;
}
#gameScreen .clockToolbar .headerActions {
  display:flex;
  align-items:center;
  flex-wrap:nowrap;
  gap:6px;
  width:auto;
}
#gameScreen .clockToolbar .headerActions button {
  font-size:11px;
  line-height:1.2;
  padding:5px 9px;
  min-height:30px;
  white-space:nowrap;
}
@media (max-width:780px) {
  #gameScreen .clockToolbar .headerActions button {
    font-size:10px;
    padding:4px 8px;
    min-height:27px;
  }
}

/* [Cursor - 능력 이름 입력창] 기존 중요 이벤트 선택 창을 재사용합니다. */
#gameScreen ~ #importantEventOverlay .abilityNamingForm, .importantEventDialog .abilityNamingForm { display:grid; gap:12px; }
.importantEventDialog .abilityNamingForm label { font-weight:700; font-size:16px; }
.importantEventDialog .abilityNamingForm input { width:100%; box-sizing:border-box; padding:12px; font-size:16px; }
.importantEventDialog .abilityNamingForm button { justify-self:start; }

/* [Cursor - 상태 변화 표시] 이야기 문장 아래에 실제 증감만 표시합니다. 다른 화면 스타일은 변경하지 않습니다. */
#gameScreen .storyStatChanges{display:flex;flex-wrap:wrap;gap:5px 8px;margin-top:9px}
#gameScreen .storyStatChange{display:inline-block;border:1px solid #52626b;border-radius:6px;background:#1b2b32;padding:2px 8px;font-size:12px;font-weight:750;line-height:1.6}
#gameScreen .storyStatChange.gain{color:#9ce5be;border-color:#426b60}
#gameScreen .storyStatChange.loss{color:#f0aea8;border-color:#80514e}

/* [Cursor - 네임드 인연] 직업 / 현재 상태 사이의 접기·펼치기 영역만 꾸밉니다. */
#gameScreen .namedBondPanel summary {cursor:pointer;list-style:revert;user-select:none;}
#gameScreen .namedBondPanel summary:focus-visible {outline:2px solid var(--accent);outline-offset:3px;border-radius:3px;}
#gameScreen .namedBondsList {display:grid;gap:7px;margin-top:10px;}
#gameScreen .namedBondRow {display:flex;align-items:center;justify-content:space-between;gap:9px;border-top:1px solid var(--line);padding-top:7px;font-size:12px;}
#gameScreen .namedBondRow strong {font-weight:700;}
#gameScreen .namedBondRow span {color:var(--accent2);font-weight:650;white-space:nowrap;}
#gameScreen .namedBondEmpty {margin:0;color:var(--muted);font-size:11px;}
@media(max-width:570px){#gameScreen .namedBondsList {gap:4px;margin-top:5px;}#gameScreen .namedBondRow {padding-top:4px;font-size:11px;}}
/* 아주 좁은 휴대폰에서는 네임드 두 명을 한 줄에 배치해 이야기 영역을 확보합니다. */
@media(max-width:359px){
 #gameScreen .namedBondsList{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;}
 #gameScreen .namedBondRow{display:block;line-height:1.3;font-size:10px;border-top:0;padding-top:0;}
 #gameScreen .namedBondRow span{display:block;font-size:10px;}
 #gameScreen .namedBondEmpty{grid-column:1/-1;}
}

/* [Cursor - 네임드 인연 표시 전용]
   이미지 오른쪽에 이름·감정·호감도를 세로로 묶습니다. 인연 칸 자체의 위치와 크기는 유지합니다. */
#gameScreen .namedBondRow{flex-direction:column;align-items:stretch;justify-content:flex-start;gap:0;padding-bottom:4px;min-width:0;}
#gameScreen .namedBondPerson{display:flex;align-items:center;gap:6px;min-width:0;width:100%;}
#gameScreen .namedBondPortrait{display:block;width:38px;height:38px;flex:0 0 38px;object-fit:contain;image-rendering:pixelated;background:#f7f7f7;border-radius:6px;}
#gameScreen .namedBondInfo{display:flex;flex-direction:column;align-items:flex-start;gap:3px;flex:1 1 0;min-width:0;line-height:1.25;}
#gameScreen .namedBondHeading{display:flex;align-items:baseline;flex-wrap:wrap;gap:1px 5px;min-width:0;}
#gameScreen .namedBondInfo strong{font-weight:800;}
#gameScreen .namedBondRow .namedBondTitle{color:var(--accent2);font-size:10px;font-weight:600;white-space:normal;}
#gameScreen .namedBondAffectionInfo{display:flex;align-items:baseline;flex-wrap:wrap;gap:2px 7px;min-width:0;padding-left:0;}
#gameScreen .namedBondRow .namedBondFeeling{color:var(--muted);font-weight:500;font-size:10px;white-space:normal;}
#gameScreen .namedBondRow .namedBondAffectionValue{color:var(--accent2);font-weight:650;font-size:11px;white-space:normal;}
@media(max-width:359px){
 #gameScreen .namedBondRow{display:flex;flex-direction:column;padding-top:4px;}
 #gameScreen .namedBondPerson{gap:3px;}
 #gameScreen .namedBondPortrait{width:24px;height:24px;flex-basis:24px;}
 #gameScreen .namedBondInfo{gap:2px;}
 #gameScreen .namedBondRow .namedBondTitle{font-size:9px;}
 #gameScreen .namedBondAffectionInfo{gap:1px 4px;}
 #gameScreen .namedBondRow .namedBondFeeling{font-size:9px;}
 #gameScreen .namedBondRow .namedBondAffectionValue{font-size:9px;}
}

/* [Cursor - 시작 화면 제목 공백] 게임명 대괄호 사이의 공백 표시만 유지합니다. */
.siteHeader .mark strong, .siteHeader .mark small { white-space: pre; }

/* [선택지별 성공률 표시] 기존 버튼 배치는 유지하고 성공률만 아래 줄에 표시합니다. */
.eventChoices button .choiceLabel {display:block;}
.eventChoices button .choiceRate {display:block;margin-top:2px;font-size:11px;line-height:1.35;color:#adc7cd;font-weight:500;}
