@charset "UTF-8";
:root{--paper:#eeeadf;--light:#f6f3eb;--ink:#292e28;--muted:#85867a;--green:#354e43;--red:#ac4935;--line:#cbc9bb;--mono:"Courier New",monospace;--serif:"Songti SC","STSong","SimSun",serif;--sans:"PingFang SC","Microsoft YaHei",sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--paper);font:14px/1.6 var(--sans);background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23000' opacity='.035' filter='url(%23n)' d='M0 0h180v180H0z'/%3E%3C/svg%3E")}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;color:inherit}button:disabled{cursor:default;opacity:.38}button:focus-visible,a:focus-visible{outline:3px solid var(--red);outline-offset:5px}button{border-radius:0}a{color:inherit;text-decoration:none}button:not(:disabled){touch-action:manipulation}button,canvas{user-select:none}[hidden]{display:none!important}.site-wrap{max-width:1360px;padding:0 54px;margin:auto}.masthead{min-height:104px;display:flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:2px solid var(--ink)}.brand{display:flex;align-items:center;gap:12px;font-size:13px;font-weight:600;letter-spacing:1.5px;white-space:nowrap}.brand small{display:block;font:8px/1.5 var(--mono);letter-spacing:1.9px;margin-top:3px}.brand-mark{width:35px;height:35px;background:var(--green);position:relative;box-shadow:3px 3px 0 #c0bcad}.brand-mark:before{content:"";position:absolute;left:10px;top:9px;width:16px;height:19px;background:#d6bb95;clip-path:polygon(15% 0,85% 0,85% 20%,100% 20%,100% 85%,80% 85%,80% 100%,20% 100%,20% 85%,0 85%,0 20%,15% 20%)}.brand-mark:after{content:"";position:absolute;left:10px;top:7px;width:16px;height:8px;background:#202b27}.brand-mark i{position:absolute;width:3px;height:3px;left:13px;top:19px;background:#29362d;box-shadow:8px 0 #29362d;z-index:1}.world-label{font:10px var(--mono);letter-spacing:1px;color:#6c7166;display:flex;gap:9px;align-items:center}.status-dot{width:6px;height:6px;background:#64816a}.header-separator{color:#b0b1a3;margin:0 4px}nav{display:flex;gap:25px}.text-button{border:0;padding:5px 0;background:none;font-size:12px}.text-button:hover{color:var(--red)}#gallery-count{font:10px var(--mono);margin:0 6px;color:var(--muted)}.edition-line{display:flex;justify-content:space-between;color:#787b70;font-size:11px;letter-spacing:1.4px;padding:27px 0 18px}.edition-line span:last-child{font:10px var(--mono);letter-spacing:1px}.home-layout{display:grid;grid-template-columns:.9fr 1.1fr;align-items:center;gap:42px;min-height:540px}.home-copy{position:relative;padding:15px 0 26px}.eyebrow{font:9px/1.7 var(--mono);letter-spacing:2.4px;color:#737b6d}.tiny-cross{font-size:16px;color:var(--red);margin-right:7px}h1,h2,p{margin:0}.home-copy h1{font:900 clamp(45px,5.3vw,75px)/1.25 var(--serif);letter-spacing:-3px;margin:22px 0 8px;white-space:nowrap}.title-art{position:relative;display:inline-block}.title-art svg{position:absolute;width:100%;height:18px;left:0;bottom:-5px;stroke:var(--red);stroke-width:3;fill:none;opacity:.85}.title-period{color:var(--red)}.red-stamp{display:inline-block;color:var(--red);font-size:13px;font-weight:600;letter-spacing:2px;padding:3px 9px;border:1px solid var(--red);transform:rotate(-4deg);margin:7px 0 23px 3px}.stamp-strike{text-decoration:line-through;text-decoration-thickness:2px;margin-right:2px;opacity:.8}.home-intro{font-size:15px;line-height:1.9}.home-question{font-size:12px;color:#777c70;line-height:1.8;margin-top:13px}.home-actions{display:flex;align-items:center;gap:25px;margin-top:27px}.primary-button{border:1px solid #263b31;background:var(--green);color:#f6f1df;box-shadow:4px 4px 0 #c3c3b0;font-weight:500;letter-spacing:2px;display:flex;align-items:center;justify-content:space-between;padding:14px 21px;gap:36px;min-height:51px;transition:transform .15s,box-shadow .15s}.primary-button:hover{background:#263e33;transform:translate(-1px,-1px);box-shadow:5px 5px 0 #b7bba8}.primary-button:active{transform:translate(3px,3px);box-shadow:1px 1px 0 #c3c3b0}.continue-button{background:none;border:0;font-size:12px;padding:10px 0;border-bottom:1px solid #abae9f;letter-spacing:1px}.continue-button span{margin-left:13px}.play-meta{display:flex;gap:12px;font-size:10px;color:#898c7e;margin-top:20px;align-items:center}.play-meta i{width:2px;height:2px;background:#9a9d8e}.scene-frame{border:1px solid #444b3f;background:#455345;position:relative;box-shadow:6px 6px 0 #d5d2c3}.scene-topbar{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:#e0dfcf;font:10px/1.3 var(--mono);color:#465441;border-bottom:1px solid #444b3f;gap:8px}.record-dot{display:inline-block;width:5px;height:5px;background:var(--red);margin-right:7px;vertical-align:middle}.canvas-wrap{position:relative;overflow:hidden;line-height:0}.canvas-wrap canvas{width:100%;height:auto;display:block;image-rendering:pixelated}.scene-grain{pointer-events:none;position:absolute;inset:0;background:repeating-linear-gradient(transparent 0px,transparent 3px,#17251b0b 3px,#17251b0b 4px);mix-blend-mode:multiply}.scene-coordinate{position:absolute;bottom:12px;right:13px;font:8px var(--mono);color:#f6edcf80;letter-spacing:1px}.scene-caption{background:#283b32;color:#ede9d6;border-top:1px solid #182c22;min-height:105px;padding:17px 23px 18px 87px;position:relative}.caption-speaker{position:absolute;left:15px;top:20px;color:#abb49b;font-size:10px;writing-mode:vertical-rl;letter-spacing:3px;padding-right:15px;border-right:1px solid #6b7965}.scene-caption p{font:14px/1.9 var(--serif);letter-spacing:1px}.blink-square{position:absolute;width:6px;height:7px;background:#bdc7a6;bottom:19px;right:19px;animation:blink 1.8s steps(1) infinite}.art-label{position:absolute;left:0;right:0;bottom:-33px;font-size:9px;color:#858878;letter-spacing:.4px}.art-label span{font:9px var(--mono);margin-right:14px}.home-bottom{display:flex;align-items:center;justify-content:space-between;padding:23px 0 22px;margin-top:22px;font-size:10px;color:#929283}.handwritten{font:italic 16px var(--serif);color:#5c6656;transform:rotate(-4deg)}.pixel-pencil{letter-spacing:-2px;color:#7d8166;font-size:12px;transform:rotate(-12deg)}.small-label{font:8px var(--mono);letter-spacing:2px;color:#838775}footer{border-top:1px solid var(--line);padding:20px 0 23px;display:flex;justify-content:space-between;gap:15px;margin-top:35px;color:#8b8e7d;font-size:9px}footer>div{display:flex;gap:12px;align-items:center}footer .text-button{font-size:10px;color:#77806d}.desktop-hint{margin-left:10px;font:9px var(--mono);color:#979a8b}.footer-divider{color:#c1c3b5}.game-view{padding-top:27px}.game-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}.game-heading h1{font:600 25px/1.5 var(--serif);margin-top:5px;letter-spacing:1px}.game-layout{display:grid;grid-template-columns:1.05fr 1fr;gap:35px;min-height:450px}.game-scene-note{font-size:10px;color:#858b78;padding:17px 0;letter-spacing:.5px}.dialogue-panel{padding:0 0 15px;display:flex;flex-direction:column;min-width:0}.dialogue-top{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding:2px 0 12px;color:#888d7a;font:9px var(--mono);letter-spacing:1.5px}.dialogue-top .text-button{font-size:9px;letter-spacing:0}.speaker-row{display:flex;align-items:center;gap:9px;font-size:11px;color:var(--green);margin-top:20px}.speaker-avatar{width:17px;height:20px;background:#9eac8b;position:relative;box-shadow:inset 0 4px 0 #4c6046}.speaker-avatar:before{content:"";position:absolute;left:4px;top:8px;width:2px;height:2px;background:#354330;box-shadow:7px 0 #354330}.speaker-line{height:1px;background:var(--line);width:35px;margin-left:3px}.dialogue-panel h2{font:600 25px/1.5 var(--serif);margin-top:12px;outline:none}.dialogue-text{font-size:13px;line-height:1.95;margin:13px 0 17px;min-height:100px;white-space:pre-line;color:#545b4d}.choices{display:flex;flex-direction:column;gap:8px;margin-top:auto}.choice-button{width:100%;border:1px solid #bebfac;background:#f2f0e6;text-align:left;display:flex;gap:12px;align-items:flex-start;padding:11px 13px;min-height:50px;transition:background .15s,transform .15s,border-color .15s}.choice-button:hover,.choice-button:focus-visible{background:#dce2cf;border-color:var(--green);transform:translateX(3px)}.choice-num{font:10px/23px var(--mono);width:23px;height:23px;flex-shrink:0;border:1px solid #b6bba5;text-align:center;color:#7f8974}.choice-body{flex:1}.choice-title{display:block;font-size:12px;font-weight:500;line-height:1.8}.choice-description{display:block;font-size:9px;color:#8c927f;line-height:1.7;margin-top:2px}.choice-arrow{font-size:15px;color:#818d74;align-self:center}.choice-hint{font-size:9px;color:#929784;margin:12px 0 0}.ending-view{padding-top:30px}.ending-layout{display:grid;grid-template-columns:1fr 1fr;gap:45px;align-items:start}.ending-copy .eyebrow{color:var(--red)}.ending-number{font:9px var(--mono);color:#8e957e;margin-bottom:16px}.ending-copy h1{font:600 35px/1.5 var(--serif);margin:13px 0 20px}.ending-copy p{font-size:13px;line-height:2;white-space:pre-line;color:#626b59}.ending-quote{border-top:1px solid var(--line);padding-top:18px;margin-top:22px;font:italic 17px/1.8 var(--serif);color:var(--green)}.ending-actions{display:flex;gap:18px;margin-top:25px;align-items:center}.ending-actions .primary-button{font-size:12px;padding:12px 16px}.life-recap{border-top:1px solid var(--line);margin:28px 0;padding-top:20px}.life-recap h2{font-size:13px;margin-bottom:15px}.recap-list{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.recap-item{padding:12px 15px;background:#e3e3d5;font-size:11px;line-height:1.9}.recap-item span{display:block;font:9px var(--mono);color:#8a907c;margin-bottom:5px}dialog{border:1px solid var(--ink);padding:35px;background:var(--paper);color:var(--ink);width:min(800px,calc(100% - 32px));max-height:85dvh;box-shadow:8px 8px 0 #17281e40}dialog::backdrop{background:#18281fd1;backdrop-filter:blur(3px)}.modal-close{position:absolute;right:14px;top:10px;border:0;background:none;font-size:25px;color:#7d8870}.modal-eyebrow{font:9px var(--mono);letter-spacing:2px;color:var(--red)}dialog h2{font:600 28px var(--serif);margin:12px 0}dialog .modal-intro{font-size:12px;color:#7d8870;margin-bottom:25px}.gallery-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.gallery-card{padding:17px;background:#e1e3d3;border:1px solid #c6cbb8;text-align:left;min-height:130px}.gallery-card.unlocked{cursor:pointer;background:#e6e8d8;border-color:#8e9e7f}.gallery-card.unlocked:hover{background:#d5dec5}.gallery-card span{font:9px var(--mono);letter-spacing:1px;color:#919b81}.gallery-card strong{display:block;font:600 17px var(--serif);margin:12px 0 6px}.gallery-card p{font-size:10px;line-height:1.7;color:#808d72}.gallery-card.locked{opacity:.65}.help-content p{font-size:13px;line-height:2;margin:15px 0}.help-content strong{color:var(--green)}.help-keys{background:#dee3d1;padding:14px;font:12px/2 var(--mono)}.toast{position:fixed;left:50%;bottom:28px;max-width:calc(100% - 35px);transform:translate(-50%,20px);padding:12px 22px;background:#283e30;color:#eeeada;font-size:12px;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;z-index:10;box-shadow:3px 3px 0 #a9ae95;white-space:pre-line}.toast.show{opacity:1;transform:translate(-50%,0)}.chapter-interlude{font-size:12px;color:#6d7b60;margin:15px 0;padding:12px;border:1px solid var(--line)}@keyframes blink{50%{opacity:0}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}html{scroll-behavior:auto}}body.reduce-motion *{animation:none!important;transition:none!important}
@media(min-width:1500px){.site-wrap{padding:0 55px}.home-layout{min-height:585px}.home-copy h1{font-size:81px}}
@media(max-width:1100px){.site-wrap{padding:0 32px}.world-label{display:none}.home-layout{gap:26px;grid-template-columns:1fr 1.1fr}.home-copy h1{font-size:58px}.home-copy{padding-top:15px}.home-intro{font-size:13px}.desktop-hint{display:none}.game-layout{gap:25px}.dialogue-panel h2{font-size:23px}.dialogue-text{font-size:12px}.scene-caption{padding-left:65px}.scene-caption p{font-size:12px}.home-actions{gap:20px}}
@media(max-width:760px){.site-wrap{padding:0 22px}.masthead{min-height:80px;gap:10px}.brand{font-size:11px;gap:9px;letter-spacing:.5px}.brand small{font-size:6px}.brand-mark{width:31px;height:33px}.masthead nav{gap:16px}.masthead nav .text-button{font-size:10px}.masthead nav #help-button{display:none}#gallery-count{margin:0 3px;font-size:9px}.edition-line{padding:20px 0 10px;font-size:9px;letter-spacing:.3px}.edition-line span:last-child{font-size:8px}.home-layout{grid-template-columns:1fr;gap:25px;min-height:0}.home-copy{padding:15px 0 0}.home-copy h1{font-size:clamp(54px,10vw,78px);margin-top:15px;letter-spacing:-2px;line-height:1.15}.home-copy h1 br{display:none}.home-copy h1{white-space:normal}.home-copy h1 .title-art{white-space:nowrap}.red-stamp{position:absolute;right:0;top:103px;font-size:10px;padding:2px 6px;letter-spacing:1px;transform:rotate(5deg)}.home-intro{margin-top:19px;font-size:13px}.home-question{font-size:11px;margin-top:10px}.home-question br{display:none}.home-actions{margin-top:20px}.primary-button{padding:13px 20px;min-height:49px;font-size:13px;gap:43px}.play-meta{margin-top:17px;font-size:9px}.home-art{margin-bottom:30px}.scene-topbar{font-size:9px;padding:9px 11px}.home-art .canvas-wrap{max-height:355px}.home-art canvas{width:100%;height:auto}.scene-caption{min-height:92px;padding:14px 20px 15px 62px}.caption-speaker{top:16px;left:13px;font-size:9px}.scene-caption p{font-size:13px}.art-label{font-size:8px;bottom:-29px}.home-bottom{margin-top:0;padding-top:5px;padding-bottom:20px}.home-bottom>span:nth-child(2){font-size:8px;max-width:160px;text-align:right}.pixel-pencil{display:none}.handwritten{font-size:14px}footer{margin-top:23px;padding:15px 0 20px;flex-direction:column;font-size:8px;gap:6px}footer>div{gap:12px}.game-view{padding-top:20px}.game-heading{margin-bottom:16px;gap:15px;align-items:flex-end}.game-heading h1{font-size:21px}.game-heading .text-button{font-size:9px;flex-shrink:0}.eyebrow{font-size:8px;letter-spacing:1.7px}.game-layout{grid-template-columns:1fr;gap:9px}.game-left .canvas-wrap{max-height:280px}.game-left canvas{width:100%;height:auto;margin-top:-15px}.game-scene-note{padding:12px 0 4px;font-size:9px}.dialogue-top{padding-bottom:8px;font-size:8px}.speaker-row{margin-top:14px}.dialogue-panel h2{font-size:24px;margin-top:10px}.dialogue-text{font-size:14px;min-height:90px;margin-bottom:14px;line-height:1.9}.choice-button{padding:11px 12px;min-height:54px}.choice-title{font-size:13px}.choice-description{font-size:10px}.choice-hint{font-size:9px}.dialogue-panel{padding-bottom:14px}.ending-layout{grid-template-columns:1fr;gap:25px}.ending-copy h1{font-size:30px}.ending-copy p{font-size:13px}.ending-quote{font-size:16px}.ending-art{order:2}.ending-actions{gap:20px}.ending-actions .primary-button{font-size:12px;gap:20px}.recap-list{grid-template-columns:1fr;gap:9px}.recap-item{font-size:11px}.life-recap{margin:22px 0}.gallery-grid{gap:9px}.gallery-card{padding:13px;min-height:137px}.gallery-card strong{font-size:15px;line-height:1.6}dialog{padding:28px 20px}.toast{font-size:11px;padding:11px 16px;width:max-content;max-width:calc(100% - 35px)}}
@media(max-width:380px){.site-wrap{padding:0 16px}.home-copy h1{font-size:49px}.red-stamp{top:94px}.home-bottom>span:nth-child(2){max-width:145px}.game-heading h1{font-size:19px}}
@media(max-width:760px){.masthead nav #help-button{display:block;font-size:9px}.masthead nav{gap:13px}}
@media(max-width:360px){.masthead nav{gap:9px}.masthead nav #help-button{font-size:8px}.brand{font-size:10px}.brand small{letter-spacing:1px}}

/* V2: consequences replace meters, chapters and virtue scores. */
.world-label{color:#9b4e39}.red-stamp{border:2px solid var(--red);font-weight:700}.home-bottom{border-bottom:1px solid var(--line);margin-bottom:8px}.game-heading h1{font-size:23px}.game-layout{min-height:440px}.dialogue-text{min-height:0;font-size:14px;line-height:2;margin-bottom:18px}.choices{margin-top:0}.dialogue-top{letter-spacing:1px}.plain-tag{font:8px var(--mono);color:#a1503c;white-space:nowrap}.decision-receipt{padding:11px 13px;margin:0 0 17px;border-left:3px solid var(--red);background:#e8dfd0;color:#865141;font-size:11px;line-height:1.8}.choice-button:hover{background:#e5dbcb;border-color:var(--red)}.choice-button:hover .choice-arrow{color:var(--red)}.ending-caption{padding-left:22px;min-height:75px}.recap-item strong{font-size:11px;font-weight:600}.recap-item p{font-size:10px;color:#87836f;margin-top:5px}.ending-quote{color:var(--red)}.empty-gallery{padding:25px;background:#e1dfd0;font-size:13px;color:#6b705e}.unseen-endings{margin-top:23px;border-top:1px solid var(--line);padding-top:15px}.unseen-endings summary{cursor:pointer;font-size:12px;color:#777f68;margin-bottom:15px}.gallery-scene{margin:20px 0}.preserve-lines{white-space:pre-line}.scene-topbar span:last-child{white-space:nowrap}.home-intro{font-weight:500}footer{margin-top:22px}.game-view+section[hidden]+footer{margin-top:20px}
@media(max-width:760px){.dialogue-text{font-size:14px;line-height:1.95}.game-heading h1{font-size:20px}.decision-receipt{font-size:11px}.plain-tag{font-size:7px}.game-heading{gap:10px}.game-heading .text-button{font-size:8px}.home-bottom>span:nth-child(2){max-width:140px}.handwritten{font-size:13px}.edition-line span:last-child{font-size:7px;letter-spacing:0}.scene-coordinate{font-size:6px}.ending-actions{flex-wrap:wrap}.ending-actions .primary-button{font-size:11px;gap:15px}.gallery-card strong{font-size:14px}.scene-topbar{font-size:8px}.dialogue-top{gap:8px}.dialogue-top>span:first-child{line-height:1.8}.home-bottom{margin-top:10px;padding-bottom:23px}footer>div{flex-wrap:wrap}}

@media(min-width:761px) and (max-width:1000px){.home-copy h1{font-size:50px}}
/* A paper identity card and stamped receipts, visible only after an ending. */
.result-awards{display:grid;grid-template-columns:minmax(240px,.9fr) minmax(0,1.4fr);gap:28px;margin:42px 0 56px;align-items:start}
.identity-card{position:relative;background:#314b42;color:#f2edda;padding:30px;border:2px solid var(--ink);box-shadow:6px 6px 0 #c8bfa7;overflow:hidden}
.award-eyebrow{font-size:11px;letter-spacing:1.5px;display:block;opacity:.8}
.identity-symbol{font-size:46px;line-height:1;margin:26px 0 20px;color:#d7b96c}
.identity-card h2{font-size:clamp(24px,3vw,34px);line-height:1.4;margin:0 0 14px;letter-spacing:-.5px}
.identity-card p{font-size:14px;line-height:1.9;max-width:36em;color:#e2dfce}
.identity-fineprint{display:block;margin-top:26px;border-top:1px dashed #aab29c;padding-top:16px;font-size:11px;letter-spacing:1px;opacity:.75}
.achievement-panel>h2{font-size:22px;margin:0 0 18px}
.achievement-list{display:grid;gap:10px}.achievement-card{display:flex;gap:15px;border:1px solid #b8b6a6;background:#f7f3e8;padding:17px 20px;align-items:flex-start}
.achievement-seal{display:grid;place-items:center;color:#a84435;flex:0 0 32px;height:32px;border:1px solid #a84435;font-size:22px;transform:rotate(-7deg);margin-top:2px}
.achievement-card h3{font-size:16px;line-height:1.6;margin:0 0 5px}.achievement-card p{font-size:13px;line-height:1.8;margin:0;color:#62665c}
.archive-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:22px 0 26px;border-bottom:1px solid #b8b6a6;padding-bottom:14px}
.archive-tab{cursor:pointer;background:transparent;color:inherit;border:1px solid #a9aa99;font:inherit;font-size:13px;padding:11px 16px;min-height:44px}
.archive-tab[aria-pressed=true]{background:#314b42;color:#f2edda;border-color:#314b42;box-shadow:3px 3px 0 #bbb8a5}
.archive-tab:hover{border-color:#a84435}.archive-tab:focus-visible{outline:3px solid #a84435;outline-offset:3px}
.archive-note{font-size:13px;line-height:1.8;color:#62665c;margin:18px 0}.identity-archive{text-align:left}.collection-list{grid-template-columns:1fr 1fr}
#modal .result-awards{grid-template-columns:1fr;margin:26px 0;gap:25px}#modal .identity-card{padding:24px}#modal .identity-symbol{display:none}#modal .identity-card h2{margin-top:18px;font-size:26px}
@media(max-width:760px){.result-awards{grid-template-columns:1fr;gap:28px;margin:30px 0 40px}.identity-card{padding:25px}.identity-card h2{font-size:28px}.identity-symbol{margin:20px 0}.achievement-card{padding:15px;gap:12px}.collection-list{grid-template-columns:1fr}.archive-tab{flex:1;padding:11px 9px}.archive-tabs{gap:6px}.achievement-panel .small-label{display:block;margin:8px 0}}
