:root{color-scheme:dark;--bg:#1e1d1b;--surface:#292723;--ink:#e7e1d5;--dim:#c2baad;--faint:#a69e91;--line:#5b554b;--red:#c8786b;--green:#aab79b;--mono:ui-monospace,SFMono-Regular,Consolas,monospace;--serif:'Songti SC','Noto Serif CJK SC','SimSun',serif}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:18px/1.95 var(--serif)}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit;font:inherit}button:disabled{cursor:not-allowed;opacity:.45}button:focus-visible,a:focus-visible{outline:2px solid var(--red);outline-offset:5px}a{color:inherit}.window{width:min(900px,calc(100% - 64px));margin:auto;min-height:100svh;display:flex;flex-direction:column}header{display:flex;align-items:center;gap:22px;padding:24px 0 16px;border-bottom:1px solid var(--line);font:14px/1.5 var(--mono)}.brand{text-decoration:none;font-weight:600;letter-spacing:.08em}.brand span{color:var(--faint);font-weight:400}.edition{color:var(--dim);flex:1}.quiet{border:0;background:none;font:14px/1.5 var(--mono);padding:9px 0;color:var(--dim)}.quiet:hover{color:var(--ink)}main{flex:1;display:flex;flex-direction:column;width:min(580px,100%);margin:0 auto;padding:48px 0 50px;outline:0}footer{border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:16px;padding:15px 0 22px;color:var(--faint);font:12px/1.5 var(--mono)}.title-page{padding-top:5vh}.eyebrow{font:13px/1.7 var(--mono);color:var(--dim);letter-spacing:.13em;margin:0 0 20px}.number{font:clamp(90px,18vw,144px)/1 var(--mono);font-weight:300;letter-spacing:-.09em;margin:0 0 25px -7px;color:var(--ink)}h1{font-size:26px;line-height:1.6;font-weight:400;margin:0 0 20px;letter-spacing:.1em}.intro{color:var(--dim);font-size:16px;line-height:1.9;margin-bottom:30px}.choices{display:grid;gap:9px;margin-top:26px}.choice{border:1px solid var(--line);background:transparent;text-align:left;padding:12px 16px;font-size:17px;line-height:1.55;display:flex;gap:12px;align-items:baseline;min-height:51px}.choice:hover{background:#201c19;border-color:var(--red)}.choice.primary{border-color:#746c5b;background:#1e1d19}.key{font:12px var(--mono);color:var(--faint);min-width:16px}.choice:hover .key{color:var(--red)}.time{display:flex;justify-content:space-between;gap:15px;margin-bottom:34px}.year{font:42px/1.15 var(--mono);font-weight:300;letter-spacing:-.05em}.age{font:14px var(--mono);color:var(--dim);margin-left:12px}.identity{font:14px/1.6 var(--mono);color:var(--dim);margin-top:9px}.money{font:16px/1.6 var(--mono);color:var(--green);text-align:right;padding-top:4px}.body{min-height:225px}.body p{margin:0 0 19px;white-space:pre-line}.body p:last-child{margin-bottom:0}.body blockquote{border-left:2px solid var(--red);padding-left:17px;margin:22px 0;color:#ebe5d7}.artifact{font:13px/1.5 var(--mono);color:var(--faint);margin-top:30px;border-top:1px dotted var(--line);padding-top:10px;width:fit-content}.echo{color:var(--green)}.scene-actions{display:flex;justify-content:space-between;gap:14px;margin-top:18px}.read-note{font:12px/1.7 var(--mono);color:var(--faint);margin-bottom:10px}.ending-label{color:var(--red);font:13px/1.7 var(--mono);margin-bottom:20px}.ending h1{font-size:30px;margin-bottom:30px}.collection-progress{border-top:1px solid var(--line);padding-top:21px;margin-top:35px;font:14px/1.8 var(--mono);color:var(--dim)}.collection-progress strong{font-weight:400;color:var(--green)}.wish-list{border-top:1px dotted var(--line);margin-top:30px;padding-top:15px;display:grid;gap:8px;font-size:14px;color:var(--dim)}.wish-list span{font-family:var(--mono);color:var(--faint);margin-right:16px}.note{font-size:13px;line-height:1.8;color:var(--faint);margin-top:22px}.body.compact{min-height:0;color:var(--dim);font-size:16px}.body.compact p:not(:first-child){display:none}dialog{color:var(--ink);background:#191917;border:1px solid #5c574b;padding:26px;width:min(600px,calc(100% - 32px));max-height:85svh;overflow:auto}dialog::backdrop{background:#000b}.dialog-head{display:flex;align-items:center;justify-content:space-between;gap:15px;border-bottom:1px solid var(--line);padding-bottom:15px;margin-bottom:23px}h2{font-size:20px;font-weight:400;margin:0}.menu-list{display:grid;gap:10px}.slot{padding:17px 0;border-bottom:1px solid var(--line)}.slot-title{font-size:17px}.slot-meta{font:13px/1.7 var(--mono);color:var(--dim);margin:6px 0 10px}.slot-buttons{display:flex;gap:12px}.small-btn{background:none;border:1px solid var(--line);font-size:14px;padding:8px 13px}.small-btn:hover{border-color:var(--red)}.endings{display:grid;gap:0}.ending-row{border-bottom:1px solid var(--line);padding:13px 0;display:flex;gap:18px;align-items:center;width:100%;text-align:left;background:none;border-left:0;border-right:0;border-top:0;font-size:16px}.ending-row .index{font:13px var(--mono);color:var(--faint)}.ending-row.locked{color:var(--faint)}.ending-row .date{margin-left:auto;font:12px var(--mono);color:var(--faint)}#toast{position:fixed;bottom:30px;left:50%;transform:translateX(-50%);background:#292820;border:1px solid #625b4b;padding:9px 18px;font-size:14px;opacity:0;pointer-events:none;transition:opacity .15s;z-index:9;max-width:90vw}#toast.show{opacity:1}input[type=checkbox]{accent-color:var(--red)}.setting{display:flex;align-items:center;gap:12px;font-size:16px;padding:12px 0}.muted{color:var(--dim)}
@media(max-width:600px){.window{width:calc(100% - 36px)}header{padding-top:17px;gap:15px}.edition{font-size:12px}main{padding-top:32px}.title-page{padding-top:3vh}.time{margin-bottom:28px}.year{font-size:36px}.body{min-height:210px}body{font-size:17px}.choice{padding:13px}.key{display:none}h1{font-size:24px}.ending h1{font-size:27px}dialog{padding:20px}.date{display:none!important}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
.pixel-frame{margin:25px 0 0;padding:7px;background:#191917;border:1px solid #676357;box-shadow:inset 1px 1px #858171,inset -1px -1px #070706;max-width:100%;align-self:flex-start}.pixel-scene{background-size:400% 400%;background-repeat:no-repeat;image-rendering:pixelated;aspect-ratio:1;width:100%}.event-painting{width:122px}.event-painting figcaption{font:12px/1.6 var(--mono);padding-top:5px;color:var(--dim)}.ending-painting{width:min(290px,100%);margin:0 0 25px}.body{min-height:155px}.debt{color:var(--red);font-size:14px;margin-top:4px}.scene-actions{flex-wrap:wrap}.ledger-row{font:14px/1.8 var(--mono);border-bottom:1px dotted var(--line);padding-bottom:12px;white-space:pre-line}.source-link{display:block;margin:13px 0;font-size:15px}.note,.slot-meta,.read-note,.eyebrow,.ending-label{font-size:14px}.collection-progress{white-space:pre-line}.choices:empty{display:none}
@media(max-width:600px){.body{min-height:140px}.ending-painting{width:230px}.event-painting{width:108px}.money{max-width:45%;overflow-wrap:anywhere}.edition{font-size:14px}.slot-buttons{flex-wrap:wrap}.window{width:calc(100% - 32px)}}
.money-help{font:14px/1 var(--mono);margin-left:8px;padding:5px 7px;border:1px solid var(--line);background:none;color:var(--dim)}
.body.compact blockquote{display:none}
.body blockquote{white-space:pre-line}
/* A worn-screen charcoal base keeps the game dark without the flat pure-black field. */
.choice{background:var(--surface)}
.choice.primary{background:#302e29;border-color:#81796a}
.choice:hover{background:#362a27}
.small-btn,.money-help{background:var(--surface)}
dialog{background:#292723;border-color:#756e60}
#toast{background:#302e29;border-color:#756e60}
.pixel-frame{background:#292723;border-color:#777063;box-shadow:inset 1px 1px #918a7b,inset -1px -1px #151411}
/* The ending remains the real game page, but its complete result fits a 3:4 capture. */
main.ending{padding-top:22px;padding-bottom:20px}
.ending .time{margin-bottom:18px}
.ending .ending-painting{width:min(250px,100%);margin-bottom:16px}
.ending .ending-label{margin-bottom:8px}
.ending h1{margin-bottom:13px}
.ending .body{min-height:0;font-size:17px;line-height:1.75}
.ending .body p{margin-bottom:9px}
.ending .body blockquote{margin:15px 0 6px;padding-left:15px}
.ending .wish-list{margin-top:12px;padding-top:9px}
.ending .collection-progress{margin-top:18px;padding-top:12px}
.ending .choices{margin-top:13px;gap:6px}
.ending .choice{min-height:43px;padding:7px 13px;font-size:16px}
.ending .scene-actions{margin-top:10px}

/* Warm paper edition: let the story stay sharp without making the screen oppressive. */
:root{color-scheme:light;--bg:#f4efe5;--surface:#fffaf1;--ink:#29251f;--dim:#554e45;--faint:#71685d;--line:#c9beaf;--red:#9d493c;--green:#506b4e}
body{background:var(--bg)}
.choice{background:var(--surface)}
.choice.primary{background:#e9dfcf;border-color:#aa9781}
.choice:hover{background:#eadbca;border-color:var(--red)}
.body blockquote{color:#342a24}
.small-btn,.money-help{background:var(--surface)}
dialog{background:#fffaf1;border-color:#ad9e8b}
dialog::backdrop{background:#2720168c}
#toast{background:#fffaf1;border-color:#ad9e8b;color:var(--ink)}
.pixel-frame{background:#e6ddcf;border-color:#a69683;box-shadow:inset 1px 1px #fffaf1,inset -1px -1px #b4a999}
.ending .ending-painting{width:min(270px,72vw);margin:2px auto 20px}
.ending .ending-label{text-align:center;font-size:15px;font-weight:700;letter-spacing:.16em;margin-bottom:7px}
.ending h1{text-align:center;font-size:clamp(35px,8.5vw,45px);line-height:1.35;font-weight:600;letter-spacing:.04em;margin:0 0 22px}
.ending .body{font-size:18px;line-height:1.8}
.ending .body p{margin-bottom:13px}
.ending .body blockquote{margin:18px 0 9px;padding-left:18px}
@media(max-width:600px){.ending .ending-painting{width:min(250px,68vw)}.ending h1{font-size:clamp(33px,8vw,40px)}}

/* Screenshot-only cover. The playable ending continues to show every paragraph. */
body.share-cover{font-size:20px}
.share-cover .window{width:calc(100% - 42px);min-height:100svh}
.share-cover header{padding:12px 0 9px;font-size:12px}
.share-cover #menu-button,.share-cover .ending .money,.share-cover .ending .identity{display:none}
.share-cover main.ending{width:100%;padding:12px 0 0;align-items:stretch}
.share-cover .ending .time{margin:0 0 4px}
.share-cover .ending .year{font-size:27px}
.share-cover .ending .age{font-size:13px}
.share-cover .ending .ending-painting{width:240px;margin:7px auto 14px;padding:7px}
.share-cover .ending .ending-label{font-size:15px;letter-spacing:.18em;margin-bottom:7px}
.share-cover .ending h1{font-size:49px;line-height:1.22;min-height:61px;margin:0 0 8px}
.share-cover .ending .body{font-size:25px;line-height:1.55;min-height:0}
.share-cover .ending .body p{display:none}
.share-cover .ending .body p:first-child{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;text-align:center;font-size:21px;line-height:1.45;margin:0 0 9px}
.share-cover .ending .body blockquote{border:0;border-top:1px solid var(--line);padding:11px 10px 0;margin:0;text-align:center;font-size:21px;line-height:1.5;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}
.share-cover .ending .wish-list,.share-cover .ending .collection-progress,.share-cover .ending .choices,.share-cover .ending .scene-actions{display:none}

/* Optional story details stay outside the numbered life decisions. */
.body{min-height:0}
.diary-button{align-self:flex-start;margin:20px 0 3px;padding:8px 14px;border:1px solid #a69683;background:#f1e7d7;color:#5b453b;font:14px/1.6 var(--mono)}
.diary-button:hover,.diary-button:focus-visible{background:#e4d3c1;border-color:#996f62}
.diary-text{margin:0;border-left:3px solid #b78176;padding:5px 0 5px 17px;white-space:pre-line;font:19px/1.9 var(--serif);color:#342a24}
.event-painting .pixel-scene{display:block;padding:0;border:0;appearance:none;cursor:zoom-in;background-color:transparent}
.event-painting .pixel-scene:hover{outline:2px solid #b78176;outline-offset:3px}
.object-detail-art{width:min(310px,100%);margin:2px auto 18px;border:1px solid #a69683}
.object-detail-text{margin:0;color:#55483b;font-size:16px;line-height:1.8}
.ledger-heading{font:16px/1.5 var(--mono);margin:26px 0 7px;color:#6c5146}
.ledger-summary{font:14px/1.8 var(--mono);padding:12px;border:1px solid var(--line);white-space:pre-line}
.money .debt{display:block;margin:4px 0 0 auto;padding:0;border:0;background:none;text-align:right;text-decoration:underline;text-underline-offset:3px;font:13px/1.6 var(--mono);color:#a4544c}
.share-cover footer{font-size:11px;margin-top:auto;padding:8px 0 11px}

/* Opening cover: one ordinary summer scene, not an interface full of effects. */
main.title-page{width:min(680px,100%);padding:30px 0 38px}
.title-sheet{padding:26px 30px 30px;background:#fbf8ef;border:1px solid #d3c6b2;box-shadow:0 18px 40px #5b4a2d12;position:relative}
.title-sheet::before,.title-sheet::after{content:"";position:absolute;width:11px;height:11px;border-color:#b09c7c;border-style:solid;pointer-events:none}
.title-sheet::before{top:9px;left:9px;border-width:1px 0 0 1px}
.title-sheet::after{right:9px;bottom:9px;border-width:0 1px 1px 0}
.title-topline{display:flex;justify-content:space-between;gap:12px;padding-bottom:12px;border-bottom:1px solid #d9d0c1;color:#6c685d;font:12px/1.5 var(--mono);letter-spacing:.05em}
.title-heading{text-align:center;padding:22px 0 15px}
.title-prelude{margin:0 0 7px;color:#896a5c;font-size:16px;letter-spacing:.2em}
.title-name{display:flex;flex-direction:column;align-items:center;gap:0;margin:0;color:#332d27;line-height:1.25;letter-spacing:.045em}
.title-name span{font-size:clamp(29px,5.5vw,38px);font-weight:500}
.title-name strong{font-size:clamp(43px,8vw,58px);font-weight:600;color:#814436;letter-spacing:.03em}
.title-art{margin:8px auto 0;width:100%;padding:6px;border:1px solid #c2b49c;background:#f0e9d9}
.title-art-scene{width:100%;aspect-ratio:3/1.55;background:url('assets/title-courtyard-v1.png') center 52%/cover no-repeat}
.title-art figcaption{padding:4px 5px 0;text-align:right;color:#726a5e;font:12px/1.4 var(--mono);letter-spacing:.08em}
.title-intro{text-align:center;white-space:pre-line;margin:16px 0 0;color:#544f45;font-size:16px;line-height:1.7}
.title-choices{width:min(460px,100%);margin:20px auto 0;gap:8px}
.title-choices .choice{justify-content:center;text-align:center;min-height:46px;padding:8px 12px;font-size:16px}
.title-choices .choice.primary{background:#8c5145;border-color:#8c5145;color:#fffaf3}
.title-choices .choice.primary:hover{background:#744034;border-color:#744034}
.title-choices .choice:not(.primary){background:#f8f4ea}
.title-choices .choice:not(.primary):hover{background:#efe6d5}
@media(max-width:600px){
  header .brand{font-size:13px;white-space:nowrap}
  header .edition{font-size:11px;line-height:1.35}
  main.title-page{padding-top:13px;padding-bottom:22px}
  .title-sheet{padding:18px 16px 20px}
  .title-topline{font-size:10px}
  .title-heading{padding:17px 0 12px}
  .title-prelude{font-size:14px}
  .title-name span{font-size:30px}
  .title-name strong{font-size:44px}
  .title-art-scene{aspect-ratio:3/1.85}
  .title-intro{margin-top:12px;font-size:15px}
  .title-choices{margin-top:16px;gap:7px}
  .title-choices .choice{min-height:43px;font-size:15px}
}
