@charset "UTF-8";
/* Story pages are text-only; the skyline illustration belongs to the cover. */
:root{color-scheme:light;--paper:#eeebe3;--ink:#292b26;--muted:#77796e;--line:#cdcdc0;--accent:#954a3d;--pale:#f6f4ed;--green:#4e6954;font-family:"Malgun Gothic","Apple SD Gothic Neo",sans-serif;font-synthesis:none}
*{box-sizing:border-box}body{margin:0;background:#dfdfd5;color:var(--ink);min-height:100vh}body:before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.19;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.7' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23000' filter='url(%23n)' opacity='.22' d='M0 0h160v160H0z'/%3E%3C/svg%3E")}
button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation}button:disabled{cursor:not-allowed}button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:4px}button{border-radius:2px}#app{position:relative;width:min(100%,520px);min-height:100svh;margin:0 auto;background:var(--paper);padding:0 32px 40px;box-shadow:0 0 45px #3d44300d}
.cover{padding-top:53px;text-align:center;min-height:95svh;display:flex;flex-direction:column;align-items:center}.edition{font-size:10px;letter-spacing:.23em;color:var(--muted);margin:0 0 30px}.cover h1{font-family:Batang,"Noto Serif KR",serif;font-size:66px;letter-spacing:-.075em;line-height:1.12;margin:0;font-weight:900}.cover h1 span{display:block;font-size:76px;letter-spacing:.07em;padding-left:.07em;font-family:Georgia,serif}.cover .rule{width:29px;height:3px;background:var(--accent);margin:25px auto 0}.cover .illustration{width:calc(100% + 64px);height:235px;margin:18px -32px 10px}.cover .tagline{font-family:Batang,serif;font-size:15px;line-height:1.9;word-break:keep-all;margin:15px 0 30px}.cover-actions{width:100%;max-width:310px;display:flex;flex-direction:column;gap:10px}.primary{background:var(--ink);color:var(--pale);border:1px solid var(--ink);padding:17px 22px;font-weight:600;letter-spacing:.02em}.primary:hover{background:#414539}.secondary{background:none;border:1px solid #b5b8aa;padding:14px}.quiet{border:0;background:none;color:var(--muted);font-size:12px;text-decoration:underline;text-underline-offset:3px;padding:12px}.cover-foot{font-size:10px;line-height:1.9;color:#85877c;margin:30px 0 0;max-width:335px;word-break:keep-all}
.status{height:72px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:10px}.stats{display:flex;gap:19px;align-items:center}.stat{display:flex;flex-direction:column;gap:5px}.stat-label{font-size:9px;color:var(--muted);letter-spacing:.06em}.pips{display:flex;gap:4px;height:10px;align-items:center}.pip{width:8px;height:8px;background:var(--accent);border:1px solid var(--accent)}.pip.empty{background:transparent;opacity:.35}.mental .pip{border-radius:50%;background:#737e66;border-color:#737e66}.mental .pip.empty{background:transparent}.money-value{font:600 14px/10px Georgia,serif;min-width:24px}.money-value small{font:10px "Malgun Gothic",sans-serif;color:var(--muted);margin-left:4px}.icon-button{border:0;background:none;padding:10px;display:flex;align-items:center;justify-content:center}.icon-button svg{width:24px;height:24px;fill:none;stroke:var(--ink);stroke-width:1.4}.story{padding-top:28px}.location{font-size:10px;letter-spacing:.18em;color:var(--muted);margin:0 0 12px}.story h1{font-family:Batang,"Noto Serif KR",serif;font-size:28px;letter-spacing:-.055em;line-height:1.45;margin:0;font-weight:700;word-break:keep-all}.illustration{height:167px;width:100%;margin:20px 0 19px;overflow:hidden;position:relative}.illustration svg{display:block;width:100%;height:100%;color:var(--ink)}.story-copy{font-family:Batang,"Noto Serif KR",serif;font-size:16px;line-height:1.95;letter-spacing:-.015em;word-break:keep-all;overflow-wrap:break-word}.story-copy p{margin:0 0 17px}.choices{display:flex;flex-direction:column;gap:10px;margin-top:28px}.choice{text-align:left;width:100%;border:1px solid #b9bdad;background:#f5f3eb;display:flex;gap:12px;align-items:flex-start;padding:16px 16px;line-height:1.6;transition:background .12s,border-color .12s}.choice:hover:not(:disabled){background:#e4e6da;border-color:#777f69}.choice .choice-number{font:11px/23px Georgia,serif;color:#8c917f;min-width:14px}.choice .choice-main{flex:1;font-size:14px;word-break:keep-all}.choice .arrow{font-size:16px;line-height:23px;color:#7b816f}.choice:disabled{color:#969b8b;border-color:#d3d6c9;background:transparent}.requirement{display:block;font:10px/1.7 "Malgun Gothic",sans-serif;color:#999e90;margin-top:5px}.result-label{margin-top:4px;font-size:10px;letter-spacing:.18em;color:var(--muted)}.result-text{border-top:1px solid var(--line);padding-top:24px}.changes{display:flex;flex-wrap:wrap;gap:7px 12px;margin:22px 0 28px;min-height:1px}.change{font-size:11px;line-height:1.6;color:var(--green)}.change.loss{color:var(--accent)}.continue{width:100%;text-align:center;margin-top:0}.page-bottom{margin-top:26px;display:flex;justify-content:center;color:#a5a898;font:10px Georgia,serif;letter-spacing:.15em}.ending-kicker{font-size:10px;letter-spacing:.2em;color:var(--accent);margin-bottom:16px}.ending .story h1{font-size:33px}.ending .subtitle{font-size:12px;color:var(--muted);line-height:1.8;margin:12px 0 0}.ending .choices{margin-top:30px}
dialog{border:1px solid #9fa48f;padding:25px;background:var(--paper);color:var(--ink);width:min(450px,calc(100% - 30px));max-height:85svh;box-shadow:0 15px 60px #14190b40}dialog::backdrop{background:#24291b85}.dialog-head{display:flex;justify-content:space-between;align-items:center;margin:-4px 0 17px}.dialog-head h2,dialog h2{font-family:Batang,serif;font-size:21px;margin:0}.close{font-size:25px;color:var(--muted);padding:0 5px}.tabs{display:flex;gap:17px;border-bottom:1px solid var(--line);margin-bottom:20px}.tabs button{border:0;border-bottom:2px solid transparent;padding:10px 0;background:none;font-size:12px;color:var(--muted)}.tabs button[aria-selected=true]{border-color:var(--ink);color:var(--ink)}.inventory-list{list-style:none;margin:0;padding:0}.inventory-list li{display:flex;justify-content:space-between;align-items:center;font-size:13px;gap:15px;padding:14px 0;border-bottom:1px solid #d5d6cb}.inventory-list small{color:var(--muted)}.inventory-list button,.slot button{background:none;border:1px solid #b7bda7;padding:7px 10px;font-size:11px}.item-right{display:flex;align-items:center;gap:12px}.empty-copy{font:14px/1.9 Batang,serif;color:var(--muted);padding:12px 0}.bag-section{font-size:10px;color:var(--muted);letter-spacing:.1em;margin:24px 0 7px}.slot{border-bottom:1px solid var(--line);padding:14px 0;display:flex;align-items:center;justify-content:space-between;gap:10px}.slot-title{font-size:12px}.slot-note{font-size:10px;color:var(--muted);display:block;margin-top:6px}.slot-actions{display:flex;gap:6px}.record-tools{display:flex;flex-wrap:wrap;gap:10px;margin-top:23px}.record-tools button{font-size:11px;padding:10px;border:1px solid #b7bda7;background:none}.storage-note{font-size:11px;line-height:1.8;color:var(--muted);margin:20px 0 0}.danger-link{display:block;font-size:11px;border:0;background:none;color:var(--accent);padding:18px 0 0}.confirm-actions{display:flex;gap:12px;margin-top:22px}.confirm-actions button{flex:1;padding:12px;border:1px solid var(--line)}#confirm-copy{font-size:13px;line-height:1.8}#notice{position:fixed;bottom:30px;left:50%;transform:translate(-50%,20px);max-width:calc(100% - 30px);width:max-content;background:var(--ink);color:var(--pale);padding:12px 19px;font-size:12px;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;z-index:10}#notice.visible{opacity:1;transform:translate(-50%,0)}
.story h1 + .story-copy{margin-top:30px}.story h1 + .result-label{margin-top:29px}.ending .subtitle + .story-copy{margin-top:29px}.skill-level{white-space:nowrap;font-variant-numeric:tabular-nums}.reset-link{color:var(--accent)}.record-actions{margin-top:21px;padding-top:4px;border-top:1px solid var(--line)}.record-actions .quiet{padding-left:0}.record-tools button:disabled,.slot button:disabled,.tabs button:disabled{opacity:.45}.cover-actions .quiet{padding:7px 12px}#confirm-copy{white-space:pre-line}
.game-header{border-bottom:1px solid var(--line)}.game-header .status{border-bottom:0;height:70px}.stats{flex:1;gap:18px}.currency{margin-left:auto}.money-value{font:600 14px/1.1 Georgia,"Malgun Gothic",serif;font-variant-numeric:tabular-nums;white-space:nowrap}.identity-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 0 12px;min-width:0}.identity-button{font-size:10px;line-height:1.8;text-align:left;padding:0;border:0;background:none;max-width:100%;overflow-wrap:anywhere}.identity-button span{color:var(--muted)}.awakening-badge{font-size:9px;border:1px solid #8b967e;color:var(--green);padding:3px 5px;white-space:nowrap}.awakening-badge.distorted{color:var(--accent);border-color:#ad8578}.deferred-note{display:flex;width:100%;justify-content:space-between;gap:10px;text-align:left;border:0;border-top:1px dashed var(--line);background:none;font-size:10px;line-height:1.7;padding:10px 0;color:var(--accent)}.deferred-note:disabled{opacity:.55}.ending-warning{border-left:2px solid var(--accent);padding:12px 15px;background:#e8dfd6;font-size:11px;line-height:1.8;margin-top:24px;word-break:keep-all}.ending-warning strong{font-size:12px;font-weight:600}.ending-warning p{margin:5px 0 0;color:#796357}.ending-warning+.choices{margin-top:14px}.result-warning{margin:0 0 14px}.ending-badge{display:block;font-size:9px;line-height:1.6;color:var(--accent);letter-spacing:.1em;margin-bottom:3px}.ending-choice{border-color:#b89b8c}.defer-choice{background:transparent}.defer-choice .requirement{color:var(--muted)}.career-kicker{font-size:10px;line-height:1.7;letter-spacing:.08em;color:var(--muted);margin:0 0 8px}.career-title{font:700 25px/1.4 Batang,serif;margin:0 0 12px;word-break:keep-all}.career-copy,.career-hint,.finger-invitation p,.career-ending p,.awakening-panel p{font-size:12px;line-height:1.9;word-break:keep-all}.career-copy{margin:0 0 18px}.career-hint{font-size:11px;color:var(--muted);margin:13px 0 0}.finger-invitation,.career-ending,.awakening-panel{border-top:1px solid var(--line);margin-top:24px;padding-top:20px}.finger-invitation p:last-child{margin-bottom:0}.career-action{display:block;width:100%;margin-top:16px;font-size:12px;line-height:1.7;padding:13px 15px}.career-action:disabled{opacity:.45}.color-title{font-size:14px;color:var(--accent);line-height:1.8;margin:4px 0 0;overflow-wrap:anywhere}.awakening-panel h3{font:600 19px/1.6 Batang,serif;margin:0}.awakening-panel p{margin-bottom:0}.awakening-panel .career-kicker{color:var(--green);margin:0 0 8px}.awakening-panel.distorted .career-kicker{color:var(--accent)}.dialog-copy{font-size:12px;line-height:1.9;margin:17px 0;word-break:keep-all}.field-label{display:block;font-size:10px;color:var(--muted);margin:18px 0 9px}#color-name-input{width:100%;padding:13px 12px;border:1px solid #aab19c;background:var(--pale);color:var(--ink);font:14px/1.6 "Malgun Gothic",sans-serif}#color-name-input:focus{outline:2px solid var(--accent);outline-offset:2px}.field-error{color:var(--accent);font-size:11px;line-height:1.7;min-height:1em}.tabs{gap:0;justify-content:space-between}.tabs button{font-size:11px}.tabs button:focus-visible{outline-offset:0}
.career-feuds{border-top:1px solid var(--line);margin-top:24px;padding-top:20px}.feud-list span{font-size:13px;line-height:1.8;word-break:keep-all}.feud-list{list-style:none;margin:0;padding:0}.feud-list li+li{margin-top:16px}.feud-list strong,.feud-list span{display:block}.feud-list strong{font-size:14px;color:var(--accent);margin-bottom:5px}
.money-bars{gap:4px}.money-bars .pip{width:13px;height:8px;background:#8c7950;border-color:#8c7950}.money-bars .pip.empty{background:transparent;opacity:.4}.choice-lock{display:block;font-size:9px;line-height:1.6;letter-spacing:.08em;margin-bottom:4px;color:#8d7363}.requirement.met{color:var(--green)}.requirement.unmet{color:#967a69}
.ending-epilogue{border-top:1px solid var(--line);margin-top:30px;padding-top:24px;font-family:"Malgun Gothic","Noto Sans KR","Apple SD Gothic Neo",sans-serif;color:#292b26}.ending-epilogue>.ending-kicker{margin:0 0 23px;font-size:12px;line-height:1.8;letter-spacing:.04em}.epilogue-part+.epilogue-part{margin-top:30px}.epilogue-part h2{font-family:inherit;font-size:20px;font-weight:700;line-height:1.6;margin:0 0 12px;letter-spacing:0;word-break:keep-all}.epilogue-part .story-copy{font-family:inherit;font-size:17px;font-weight:400;line-height:1.9;letter-spacing:0;color:#292b26}
@media(min-width:650px){.epilogue-part .story-copy{font-size:18px}}
@media(min-width:650px){#app{min-height:100vh;border-left:1px solid #d1d3c4;border-right:1px solid #d1d3c4}.cover{min-height:850px;padding-top:62px}.cover .illustration{height:251px}}@media(max-width:380px){#app{padding-left:23px;padding-right:23px}.cover .illustration{width:calc(100% + 46px);margin-left:-23px;margin-right:-23px}.stats{gap:12px}.pips{gap:3px}.money-value{font-size:12px}.story-copy{font-size:15px}.story h1{font-size:26px}.status{gap:4px}.status .icon-button{padding:10px 0 10px 8px}}@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

/* Display preferences use the same controls on the cover and in the bag. */
.tabs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px}
.tabs button{min-width:0;min-height:44px;padding:10px 2px;line-height:1.5;white-space:normal;word-break:keep-all;overflow-wrap:anywhere}
.display-settings{padding:2px 0 8px}
#collection{width:min(580px,calc(100% - 24px))}.collection-summary{font-size:15px;line-height:1.8;color:var(--muted);border-bottom:1px solid var(--line);padding-bottom:18px;margin:8px 0 22px}.collection-summary strong{font-size:28px;color:var(--ink)}.collection-summary span{display:block;font-size:11px;margin-top:8px}.collection-group{margin:24px 0}.collection-group h3{display:flex;justify-content:space-between;align-items:baseline;gap:14px;font-size:15px;line-height:1.7;margin:0 0 13px}.collection-group h3 small{font-size:11px;font-weight:400;color:var(--muted)}.collection-grid{display:grid;grid-template-columns:1fr;gap:10px}.achievement{display:flex;gap:12px;border:1px solid var(--line);padding:15px;line-height:1.7;background:var(--pale)}.achievement.earned{border-left:3px solid var(--green)}.achievement.locked{background:transparent}.achievement-mark{font-size:15px;color:var(--green);flex:none}.achievement.locked .achievement-mark{color:var(--muted)}.achievement h4{font-size:13px;margin:0;color:var(--ink);word-break:keep-all}.achievement p{font-size:11px;margin:6px 0 8px;color:var(--muted);word-break:keep-all}.achievement-state{font-size:10px;color:var(--green)}.achievement.locked .achievement-state{color:var(--muted)}
.gender-setting{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:94px;padding:16px 0;border-bottom:1px solid var(--line)}
.gender-setting>span{min-width:0}.gender-setting strong{display:block;font-size:14px;font-weight:600;line-height:1.7}.gender-setting small{display:block;margin-top:5px;font-size:11px;line-height:1.8;color:var(--muted);word-break:keep-all}
#player-gender,#companion-gender{flex:none;min-width:83px;min-height:44px;padding:8px 10px;background:var(--pale);color:var(--ink);border:1px solid var(--line);border-radius:2px;font:inherit;font-size:13px}
#player-gender:focus-visible,#companion-gender:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.secondary-affiliation{font-size:10px;color:var(--muted);line-height:1.7}.identity-row{flex-wrap:wrap}
.cover-version{font-size:11px;font-variant-numeric:tabular-nums;letter-spacing:.08em;line-height:1.6;color:var(--muted);margin:13px 0 0}
.secondary-career{border-top:1px solid var(--line);margin-top:22px;padding-top:18px}.secondary-career h3{font-size:17px;line-height:1.7;margin:0 0 5px}.secondary-career p:last-child{font-size:13px;margin:0;line-height:1.8}
.theme-setting{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:76px;padding:16px 0;border-bottom:1px solid var(--line);cursor:pointer}
.theme-setting>span{min-width:0}
.theme-setting strong{display:block;font-size:14px;font-weight:600;line-height:1.7}
.theme-setting small{display:block;margin-top:5px;font-size:11px;line-height:1.8;color:var(--muted);word-break:keep-all}
:is(#dark-mode-toggle,#auto-combat-toggle){appearance:none;-webkit-appearance:none;flex:none;position:relative;width:48px;height:28px;margin:0;border:1px solid #939a87;border-radius:20px;background:#c8ccbe;cursor:pointer;transition:background .15s,border-color .15s}
:is(#dark-mode-toggle,#auto-combat-toggle):before{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#f6f4ed;box-shadow:0 1px 3px #20241c38;transition:transform .15s}
:is(#dark-mode-toggle,#auto-combat-toggle):checked{border-color:var(--green);background:var(--green)}
:is(#dark-mode-toggle,#auto-combat-toggle):checked:before{transform:translateX(20px)}
:is(#dark-mode-toggle,#auto-combat-toggle):focus-visible{outline:2px solid var(--accent);outline-offset:5px}
:is(#dark-mode-toggle,#auto-combat-toggle):disabled{cursor:not-allowed;opacity:.55}

/* Charcoal pages with warm, subdued text. Explicit colors below replace the
   light palette without changing the original daytime theme or the gold moon. */
html[data-theme="dark"]{color-scheme:dark;--paper:#191c1a;--ink:#e4e1d6;--muted:#adb2a5;--line:#484f45;--accent:#e29d8e;--pale:#2a302a;--green:#a5c3a4;scrollbar-color:#677160 #191c1a}
html[data-theme="dark"] body{background:#151916}
html[data-theme="dark"] body:before{opacity:.07}
html[data-theme="dark"] #app{border-color:var(--line);box-shadow:0 0 45px #0003}
html[data-theme="dark"] .primary{background:#c8cdbb;color:#20251f;border-color:#c8cdbb}
html[data-theme="dark"] .primary:hover:not(:disabled){background:#d8ddcc;border-color:#d8ddcc}
html[data-theme="dark"] .secondary{border-color:#737c69}
html[data-theme="dark"] .secondary:hover:not(:disabled){background:#30362e}
html[data-theme="dark"] .cover-foot{color:var(--muted)}
html[data-theme="dark"] .cover-art svg{color:#111712}
html[data-theme="dark"] .cover-art svg [stroke="#eeebe3"]{stroke:#76836c}
html[data-theme="dark"] .cover-art svg g[fill="#eeebe3"]{fill:#76836c}
html[data-theme="dark"] .cover-art svg>path[fill="#eeebe3"]{fill:var(--paper)}
html[data-theme="dark"] .mental .pip{background:#a4bb8e;border-color:#a4bb8e}
html[data-theme="dark"] .money-bars .pip{background:#d5bb76;border-color:#d5bb76}
html[data-theme="dark"] .pip.empty{background:transparent;opacity:.6}
html[data-theme="dark"] .choice{background:#2b312a;border-color:#636d5a}
html[data-theme="dark"] .choice:hover:not(:disabled){background:#373f34;border-color:#a0ad8f}
html[data-theme="dark"] .choice .choice-number,
html[data-theme="dark"] .choice .arrow{color:#b8c1ab}
html[data-theme="dark"] .choice:disabled{background:#242824;border-color:#4c5348;color:#a5ad9d}
html[data-theme="dark"] .choice:disabled .choice-number,
html[data-theme="dark"] .choice:disabled .arrow{color:#9da694}
html[data-theme="dark"] .requirement{color:#b2baaa}
html[data-theme="dark"] .requirement.met{color:var(--green)}
html[data-theme="dark"] .choice-lock,
html[data-theme="dark"] .requirement.unmet{color:#d1aa94}
html[data-theme="dark"] .page-bottom{color:var(--muted)}
html[data-theme="dark"] dialog{border-color:#68725e;box-shadow:0 15px 60px #0009;scrollbar-color:#677160 var(--paper)}
html[data-theme="dark"] dialog::backdrop{background:#070b08b8}
html[data-theme="dark"] .inventory-list li{border-color:var(--line)}
html[data-theme="dark"] .inventory-list button,
html[data-theme="dark"] .slot button,
html[data-theme="dark"] .record-tools button{border-color:#737c69}
html[data-theme="dark"] .inventory-list button:hover:not(:disabled),
html[data-theme="dark"] .slot button:hover:not(:disabled),
html[data-theme="dark"] .record-tools button:hover:not(:disabled){background:#30362e}
html[data-theme="dark"] .record-tools button:disabled,
html[data-theme="dark"] .slot button:disabled,
html[data-theme="dark"] .career-action:disabled{opacity:.65}
html[data-theme="dark"] .tabs button:disabled{opacity:1;color:#9ba491}
html[data-theme="dark"] .deferred-note:disabled{opacity:.8}
html[data-theme="dark"] .confirm-actions button:not(.primary){background:var(--pale);border-color:#737c69}
html[data-theme="dark"] .confirm-actions button:not(.primary):hover:not(:disabled){background:#373f34}
html[data-theme="dark"] #notice{background:#c8cdbb;color:#20251f;box-shadow:0 4px 20px #0006}
html[data-theme="dark"] .awakening-badge{border-color:#829573}
html[data-theme="dark"] .awakening-badge.distorted{border-color:#b88879}
html[data-theme="dark"] .ending-warning{background:#352d28}
html[data-theme="dark"] .ending-warning p{color:#d8baaa}
html[data-theme="dark"] .ending-choice{border-color:#b78e77}
html[data-theme="dark"] .defer-choice{background:transparent}
html[data-theme="dark"] #color-name-input{border-color:#77826a;background:#1c211b;color:var(--ink)}
html[data-theme="dark"] #color-name-input::placeholder{color:var(--muted);opacity:1}
html[data-theme="dark"] .ending-epilogue,
html[data-theme="dark"] .epilogue-part .story-copy{color:var(--ink)}
html[data-theme="dark"] :is(#dark-mode-toggle,#auto-combat-toggle){background:#394035;border-color:#87927b}
html[data-theme="dark"] :is(#dark-mode-toggle,#auto-combat-toggle):before{background:#e4e1d6;box-shadow:0 1px 3px #0005}
html[data-theme="dark"] :is(#dark-mode-toggle,#auto-combat-toggle):checked{background:#a5c3a4;border-color:#a5c3a4}
html[data-theme="dark"] :is(#dark-mode-toggle,#auto-combat-toggle):checked:before{background:#20291f}
html[data-theme="dark"] ::selection{background:#526149;color:#f2f0e6}
html[data-theme="dark"] ::-webkit-scrollbar{width:10px;height:10px}
html[data-theme="dark"] ::-webkit-scrollbar-track{background:var(--paper)}
html[data-theme="dark"] ::-webkit-scrollbar-thumb{background:#677160;border:2px solid var(--paper);border-radius:8px}
html[data-theme="dark"] ::-webkit-scrollbar-thumb:hover{background:#87927a}
@media(max-width:380px){.tabs{gap:2px}.tabs button{font-size:10px}.theme-setting{gap:12px}}
@media(forced-colors:active){:is(#dark-mode-toggle,#auto-combat-toggle){appearance:auto;-webkit-appearance:auto;width:28px;height:28px}:is(#dark-mode-toggle,#auto-combat-toggle):before{display:none}}

/* Reading preferences are independent of the adventure and share one scale. */
:root{--reading-font:Batang,"Noto Serif KR",serif;--reading-size:16px;--reading-weight:400;--reading-line-height:1.95;--reading-letter-spacing:-.015em}
.story-copy,.choice .choice-main,.epilogue-part .story-copy,.reading-preview{font-family:var(--reading-font);font-size:var(--reading-size);font-weight:var(--reading-weight);font-synthesis:weight;line-height:var(--reading-line-height);letter-spacing:var(--reading-letter-spacing);overflow-wrap:anywhere}
.choice .choice-main{min-width:0}
.choice .requirement{font-family:var(--reading-font);font-size:max(11px,calc(var(--reading-size)*.75));font-weight:var(--reading-weight);line-height:var(--reading-line-height);letter-spacing:var(--reading-letter-spacing)}
.ending-epilogue,.story h1{font-family:var(--reading-font)}
.achievement>div{min-width:0}.achievement .achievement-quote{font-family:var(--reading-font);font-size:max(13px,calc(var(--reading-size)*.875));font-weight:var(--reading-weight);font-synthesis:weight;line-height:var(--reading-line-height);letter-spacing:var(--reading-letter-spacing);color:var(--ink);margin:12px 0;overflow-wrap:anywhere}
.reading-settings{padding:24px 0 2px}
.reading-settings h3{font-size:15px;margin:0 0 18px;line-height:1.7}
.reading-font-setting,.reading-bold-setting{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:52px;font-size:13px}
.reading-font-setting select{min-width:125px;max-width:65%;min-height:44px;padding:8px 10px;border:1px solid var(--line);border-radius:2px;background:var(--pale);color:var(--ink);font:inherit}
.reading-range{display:block;margin:18px 0;font-size:13px}
.reading-range>span{display:flex;align-items:baseline;justify-content:space-between;gap:16px;line-height:1.8}
.reading-range output{color:var(--muted);font-size:12px;font-variant-numeric:tabular-nums}
.reading-range input{display:block;width:100%;min-height:36px;margin:7px 0 0;accent-color:var(--green);cursor:pointer}
.reading-bold-setting input{width:21px;height:21px;accent-color:var(--green);cursor:pointer}
.reading-settings select:focus-visible,.reading-settings input:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
.reading-preview-wrap{border:1px solid var(--line);background:var(--pale);padding:16px;margin:22px 0 15px}
.reading-preview-label{font-size:10px;color:var(--muted);margin:0 0 10px}
.reading-preview{margin:0;color:var(--ink);word-break:keep-all}
#reset-reading-prefs{width:100%;min-height:44px;font-size:12px}
@media(max-width:380px){.reading-preview-wrap{padding:12px}.reading-font-setting,.reading-bold-setting{gap:10px}}

/* Moon entry and isolated event recollection use the current reading theme. */
#cover-moon{cursor:pointer;outline:none;touch-action:manipulation}
#cover-moon:focus-visible .moon-hit{stroke:var(--accent);stroke-width:2}
#cover-moon:hover{filter:brightness(1.1)}
#moon-code-input,.recollection-search input,.recollection-search select,.recollection-fields select,.recollection-variant select{width:100%;min-height:44px;padding:10px;border:1px solid var(--line);border-radius:2px;background:var(--pale);color:var(--ink);font:inherit;font-size:14px}
#moon-code-input:focus-visible,#recollection input:focus-visible,#recollection select:focus-visible,#recollection summary:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
#recollection{width:min(600px,calc(100% - 24px));overflow-y:auto;overscroll-behavior:contain}
.recollection-note{font-size:11px;line-height:1.8;color:var(--muted);margin:0 0 20px}
.recollection-profile{border:1px solid var(--line);padding:13px;margin:0 0 20px}
.recollection-profile summary{cursor:pointer;font-size:13px;padding:3px 0;line-height:1.8}
.recollection-help{font-size:11px;line-height:1.9;color:var(--muted);overflow-wrap:anywhere}
.recollection-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.recollection-fields label,.recollection-search label,.recollection-variant{font-size:11px;color:var(--muted);line-height:1.8}
.recollection-fields select{display:block;margin-top:4px;font-size:12px}
.recollection-search{display:grid;grid-template-columns:minmax(0,1fr) minmax(110px,.65fr);gap:6px 10px}
.recollection-search label:first-child{grid-column:1;grid-row:1}
.recollection-search input{grid-column:1;grid-row:2;min-width:0}
.recollection-search label[for="recollection-category"]{grid-column:2;grid-row:1}
.recollection-search select{grid-column:2;grid-row:2;font-size:12px}
.recollection-list{display:flex;flex-direction:column;gap:8px}
.recollection-event{display:block;width:100%;text-align:left;background:var(--pale);border:1px solid var(--line);padding:14px;overflow-wrap:anywhere}
.recollection-event span{display:block;font-size:14px;line-height:1.7}
.recollection-event small{display:block;color:var(--muted);font-size:10px;line-height:1.8;margin-top:4px}
.recollection-event:hover{border-color:var(--green)}
#recollection-more{width:100%;margin-top:14px;font-size:12px}
.recollection-toolbar{display:flex;gap:10px}
.recollection-toolbar button{flex:1;font-size:12px;padding:12px}
.recollection-variant{display:flex;align-items:center;gap:12px;margin:0 0 22px}
.recollection-variant select{max-width:160px;font-size:12px}
.recollection-scene h3{font-family:var(--reading-font);font-size:26px;line-height:1.5;margin:0 0 25px;overflow-wrap:anywhere}
.recollection-scene h4{font-family:var(--reading-font);font-size:20px;line-height:1.6;overflow-wrap:anywhere}
.recollection-scene .result-label{margin-top:-12px;margin-bottom:22px}
.recollection-scene .story-copy{margin-top:0}
@media(max-width:380px){#recollection{padding:20px 15px}.recollection-fields{grid-template-columns:1fr}.recollection-search{grid-template-columns:minmax(0,1fr) 110px}.recollection-toolbar{gap:7px}}

/* Combat stays within the existing bag and the page's recorded outcome. */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.combat-summary{padding:0 0 18px;border-bottom:1px solid var(--line);font-size:12px;line-height:1.8}
.combat-summary h3{margin:0 0 8px;font-size:14px;font-weight:600}
.combat-details{border-bottom:1px solid var(--line)}
.combat-details summary{min-height:44px;padding:11px 0;cursor:pointer;overflow-wrap:anywhere}
.combat-details summary:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.combat-details[open] summary{color:var(--green)}
.combat-coin-powers{color:var(--muted);font-size:11px}
.combat-breakdown{width:100%;border-collapse:collapse;margin:1px 0 14px;font-size:11px;line-height:1.8}
.combat-breakdown th,.combat-breakdown td{padding:6px 8px;border-bottom:1px solid var(--line);vertical-align:top}
.combat-breakdown th{text-align:left;font-weight:400;overflow-wrap:anywhere}
.combat-breakdown thead{color:var(--muted)}
.combat-breakdown td,.combat-breakdown thead th:last-child{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.combat-breakdown tfoot th,.combat-breakdown tfoot td{font-weight:600;border-bottom:0}
.coin-guarantee{display:block;font-size:10px;color:var(--green)}
.combat-facts{margin:12px 0 0}
.combat-facts>div{display:flex;align-items:baseline;justify-content:space-between;gap:14px;padding:3px 0}
.combat-facts dt{flex:none;color:var(--muted)}
.combat-facts dd{margin:0;text-align:right;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.combat-note{font-size:11px;color:var(--muted);line-height:1.8;margin:8px 0 12px}
.weapon-power{display:block;font-size:10px;line-height:1.8;margin-top:4px;overflow-wrap:anywhere}
.item-right{flex:none}
.experience-skill>.skill-level{flex:none;font-size:11px}
/* The clash board reveals the saved coins in pairs; the story stays on its page. */
.combat-board{--combat-gold:#e8c650;--combat-ink:#f3eedb;margin:24px 0;padding:16px 14px 12px;background:#11130f;border:1px solid #6b612d;border-radius:3px;color:var(--combat-ink);font-family:"Malgun Gothic","Apple SD Gothic Neo",sans-serif;font-size:12px;line-height:1.6;overflow:hidden;color-scheme:dark}
.combat-board [hidden]{display:none!important}
.combat-board-heading{display:flex;align-items:baseline;justify-content:space-between;gap:10px;border-bottom:1px solid #514b2a;padding:0 0 11px;margin:0 0 15px}
.combat-board .combat-kicker{margin:0;color:var(--combat-gold);font-size:11px;letter-spacing:.16em;font-weight:700}
.combat-board .combat-progress{margin:0;color:#c6c1ad;font-size:10px}
.combat-arena{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);position:relative;column-gap:27px;min-height:160px}
.combat-arena:before{content:"";position:absolute;top:0;bottom:0;left:50%;border-left:2px dashed var(--combat-gold);opacity:.75;pointer-events:none}
.combat-board .combat-fighter{min-width:0;text-align:center;padding:0;margin:0;border:0}
.combat-board .combat-fighter h3{margin:0 0 5px;min-height:23px;color:#f4eed7;font:700 13px/1.7 "Malgun Gothic","Apple SD Gothic Neo",sans-serif;overflow-wrap:anywhere}
.combat-board .combat-base{margin:0;color:#bdb9a7;font-size:10px}
.combat-board .combat-total{display:flex;flex-direction:column;align-items:center;margin:10px 0 17px;color:#c6c1ad;font-size:10px}
.combat-board .combat-total strong{font:700 28px/1.2 Georgia,"Malgun Gothic",serif;color:var(--combat-gold);font-variant-numeric:tabular-nums;margin-top:3px}
.combat-board .combat-rolls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:14px 7px;list-style:none;margin:0;padding:0}
.combat-board .combat-coin-token{display:flex;flex-direction:column;align-items:center;min-width:0;gap:4px;padding:0;margin:0;background:none;border:0;color:var(--combat-ink);white-space:normal;font-size:10px;line-height:1.5;font-variant-numeric:tabular-nums}
.combat-disc{display:flex;flex-direction:column;align-items:center;justify-content:center;width:54px;height:54px;flex:none;border:2px solid var(--combat-gold);border-radius:50%;background:#24251a;color:var(--combat-gold);box-shadow:inset 0 0 0 3px #11130f;transform-style:preserve-3d}
.combat-face{font-size:10px;line-height:1.3}
.combat-coin-value{font-size:17px;line-height:1.2}
.combat-board .pending .combat-face{font-size:19px;font-weight:700}
.combat-board .pending .combat-coin-value{font-size:11px;font-weight:400}
.combat-board .heads .combat-disc{background:var(--combat-gold);color:#18190f;box-shadow:inset 0 0 0 3px #d7b43e;border-color:#f5d975}
.combat-board .tails .combat-disc{background:#252920;color:#e2dcc5;border-color:#9f986f;box-shadow:inset 0 0 0 3px #11130f}
.combat-coin-source{display:block;width:100%;overflow-wrap:anywhere;word-break:keep-all;color:#ede7ce;font-size:10px}
.combat-coin-state{display:block;color:#bdb9a7;font-size:9px;line-height:1.5}
.combat-board .heads .combat-coin-state{color:#efd877}
.combat-no-coins{color:#bdb9a7;font-size:11px;margin:26px 0}
.combat-board-footer{display:grid;grid-template-columns:1fr auto;align-items:start;gap:10px 15px;min-height:49px;margin:16px 0 0;padding-top:10px;border-top:1px solid #514b2a}
.combat-board .combat-skip{justify-self:start;display:inline-flex;align-items:center;justify-content:center;gap:7px;min-width:64px;min-height:44px;padding:7px 11px;border:1px solid #b79e48;border-radius:3px;background:transparent;color:#f4d66b;font:12px/1.5 "Malgun Gothic","Apple SD Gothic Neo",sans-serif}
.combat-board .combat-skip:hover{background:#343019}
.combat-board .combat-skip:focus-visible{outline:2px solid #ffeaa0;outline-offset:3px}
.combat-toss-controls{grid-column:2;display:flex;flex-direction:column;align-items:stretch;gap:3px}
.combat-auto-toss-setting{display:flex;align-items:center;justify-content:center;gap:7px;min-height:36px;padding:7px 2px;color:#ede7ce;font-size:11px;line-height:1.5;cursor:pointer}
.combat-auto-toss{width:17px;height:17px;margin:0;accent-color:var(--combat-gold);cursor:pointer}
.combat-auto-toss:focus-visible{outline:2px solid #ffeaa0;outline-offset:3px}
.combat-board.is-complete .combat-toss-controls{grid-row:2}
.combat-board .combat-toss{min-width:108px;min-height:44px;padding:9px 18px;border:1px solid #f5d975;border-radius:3px;background:var(--combat-gold);color:#18190f;font:700 13px/1.5 "Malgun Gothic","Apple SD Gothic Neo",sans-serif}
.combat-board .combat-toss:hover:not(:disabled){background:#f5d975}
.combat-board .combat-toss:focus-visible{outline:2px solid #ffeaa0;outline-offset:3px}
.combat-board .combat-toss:disabled{cursor:default;background:#343019;border-color:#6b612d;color:#c6c1ad}
.combat-board .combat-verdict{grid-column:1 / -1;grid-row:1;width:100%;margin:0;text-align:center;color:#f4d66b;font-size:18px;line-height:1.6;font-weight:700}
.combat-board.loss .combat-verdict{color:#efa99b}
.combat-board.draw .combat-verdict{color:#e4dfca}
.flipping .combat-disc{animation:combat-coin-flip .44s ease-in-out}
@keyframes combat-coin-flip{0%{transform:rotateY(0);filter:brightness(1)}49%{transform:rotateY(90deg);filter:brightness(1.5)}50%{transform:rotateY(-90deg)}100%{transform:rotateY(0);filter:brightness(1)}}
@media(max-width:520px){.combat-board{padding:13px 10px 10px}.combat-arena{column-gap:21px}.combat-board .combat-rolls{grid-template-columns:repeat(2,minmax(0,1fr));gap:13px 6px}.combat-disc{width:50px;height:50px}.combat-board .combat-fighter h3{font-size:12px}}
@media(max-width:380px){.combat-facts>div{gap:10px}.combat-breakdown th,.combat-breakdown td{padding-left:4px;padding-right:4px}.item-right{gap:6px}.inventory-list li{gap:9px}.experience-skill{flex-wrap:wrap}.combat-board{margin-left:-7px;margin-right:-7px}.combat-arena{column-gap:17px}.combat-disc{width:46px;height:46px}.combat-board .combat-total strong{font-size:25px}}
@media(prefers-reduced-motion:reduce){.flipping .combat-disc{animation:none}}

/* Each combat choice previews its odds as a broad category, never a numeric chance. */
.combat-choice-preview{display:flex;flex-wrap:wrap;align-items:center;gap:6px 9px;margin-top:9px;font:11px/1.7 "Malgun Gothic","Apple SD Gothic Neo",sans-serif;color:var(--ink)}
.combat-choice-badge{display:inline-block;padding:1px 6px;border:1px solid currentColor;border-radius:2px;color:var(--accent);font-size:10px;line-height:1.6;font-weight:700}
.combat-choice-odds{font-weight:600;word-break:keep-all}
.combat-choice-preview.favored .combat-choice-odds{color:var(--green)}
.combat-choice-preview.balanced .combat-choice-odds{color:var(--ink)}
.combat-choice-preview.unfavored .combat-choice-odds{color:var(--accent)}
.choice:disabled .combat-choice-preview{opacity:.65}

/* Names share the surrounding reading settings; only explicit person overrides differ. */
button.person-name{display:inline;appearance:none;background:none;border:0;border-radius:0;padding:0;margin:0;box-shadow:none;font:inherit;line-height:inherit;letter-spacing:inherit;text-align:inherit;text-transform:none;color:inherit;cursor:pointer;vertical-align:baseline;white-space:normal;word-break:inherit;text-decoration:none}
.person-name.person-name-bold{font-weight:700}.person-name.person-name-underline{text-decoration:underline;text-underline-offset:.18em;text-decoration-thickness:1px}
button.person-name:hover{background:none;text-decoration:underline;text-underline-offset:.18em}button.person-name:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}
.person-details{width:min(440px,calc(100vw - 32px));max-height:calc(100dvh - 40px);overflow:auto;padding:24px;background:var(--paper);color:var(--ink)}
.person-details .dialog-head{align-items:flex-start}.person-details .dialog-head h2{font-family:var(--reading-font,Batang,serif);font-size:23px;line-height:1.6;overflow-wrap:anywhere;margin:0;flex:1}.person-details .person-details-close{flex:0 0 auto;min-width:40px;min-height:40px}
.person-details-age{font-size:12px;color:var(--muted);margin:10px 0 18px}.person-details-description{white-space:pre-wrap;overflow-wrap:anywhere;font-family:var(--reading-font,Batang,serif);font-size:var(--reading-size,16px);font-weight:var(--reading-weight,400);line-height:var(--reading-line-height,1.95);letter-spacing:var(--reading-letter-spacing,-.015em)}
