:root{--bg:#1b1814;--bg-deep:#12100d;--paper:#2a241c;--ink:#d9cdb4;--ink-dim:#9a8e78;--gaslight:#d8a84e;--wound:#b4523f;--narrator:#c9c2ae;--rule:#4a4033;--serif:"EB Garamond", Georgia, serif;--typewriter:"Courier Prime", "Courier New", monospace;--choice-h:calc(1.1rem * 1.6 + 1rem + 2px)}*{box-sizing:border-box}html,body{height:100%;margin:0}body{background:radial-gradient(ellipse at 50% 0%, #2a231a 0%, var(--bg) 55%, var(--bg-deep) 100%) fixed;height:100dvh;color:var(--ink);font:400 1.25rem/1.6 var(--serif);-webkit-font-smoothing:antialiased;flex-direction:column;display:flex;overflow:hidden}#app{flex-direction:column;flex:1;width:100%;max-width:40rem;min-height:0;margin:0 auto;padding:0 1rem;display:flex}#log{scrollbar-width:thin;scrollbar-color:var(--rule) transparent;flex:1;min-height:0;padding-bottom:1.5rem;overflow-y:auto;-webkit-mask-image:linear-gradient(#0000 0,#000 2rem);mask-image:linear-gradient(#0000 0,#000 2rem)}.title{cursor:pointer;font:500 .8rem/1 var(--serif);letter-spacing:.4em;text-transform:uppercase;color:var(--ink-dim);text-align:center;background:0 0;border:0;flex:none;margin-bottom:1rem;margin-left:auto;margin-right:auto;padding-top:1.25rem;transition:color .2s;display:block}#log p{margin:0 0 1em;animation:.4s ease-out fade-in}.speech[data-speaker]:before{content:attr(data-speaker) " — ";font-variant:small-caps;letter-spacing:.05em;color:var(--ink-dim)}.speech.me{color:#e8dcc0}.narrator{font:400 1rem/1.65 var(--typewriter);color:var(--narrator);border-left:2px solid var(--rule);padding-left:1rem}.narrator[data-tone=relishing]{color:#d9c08c;border-left-color:var(--gaslight)}.narrator[data-tone=pleading]{color:#cfc8b8;border-left-color:var(--ink-dim)}.inner{color:var(--ink-dim);letter-spacing:.01em;padding-left:2.5rem;font-size:1.05rem;font-style:italic;animation:.35s steps(3,end) cut-in}@keyframes cut-in{0%{opacity:0;transform:translate(-6px)}50%{opacity:1;transform:translate(3px)}to{transform:none}}.narrator.aside{color:var(--ink-dim);border-left-style:dashed;font-style:italic}.unrevealed{visibility:hidden}#log .visually-hidden{-webkit-user-select:none;user-select:none}.player{color:var(--gaslight);font-style:italic;position:relative}.player:before{content:"› "}.player.intercepted{color:var(--ink-dim)}.player.intercepted:after{content:" — he does otherwise";font:italic .85rem var(--typewriter);color:var(--wound);margin-left:.25em}.player.intercepted .echo{background:linear-gradient(var(--wound), var(--wound)) no-repeat 0 55% / 0% 2px;animation:.6s ease-in forwards strike-through}.player.intercepted.grave .echo{background-image:linear-gradient(var(--ink-dim), var(--ink-dim));animation-duration:2.4s;animation-timing-function:linear}.player.intercepted.grave:after{color:var(--ink-dim)}.player.intercepted.settled .echo{background-size:100% 2px;animation:none}@keyframes strike-through{to{background-size:100% 2px}}.struck{text-decoration:line-through;-webkit-text-decoration-color:var(--wound);text-decoration-color:var(--wound);color:var(--ink-dim);text-decoration-thickness:2px;transition:color .6s}#choices{min-height:calc(3 * var(--choice-h) + 2 * .5rem + 2.25rem + 1px);border-top:1px solid var(--rule);flex-direction:column;flex:none;gap:.5rem;padding:1rem 0 1.25rem;display:flex}.choice{font:inherit;color:var(--ink);text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:2px;padding:.5rem .75rem;font-size:1.1rem;transition:background .15s,border-color .15s,transform .35s cubic-bezier(.2,.9,.3,1.2)}.choice:hover,.choice:focus-visible{background:var(--paper);border-color:var(--rule);outline:none}.choice:focus-visible{box-shadow:0 0 0 2px var(--gaslight)}.price{font:.8rem var(--typewriter);color:var(--bg);background:var(--gaslight);vertical-align:.15em;white-space:nowrap;border-radius:1em;padding:.1em .5em}.denied{color:var(--ink-dim);cursor:not-allowed}.denied:hover{background:0 0;border-color:#0000}.deny-flee{align-self:flex-start;transition:transform .25s ease-out}.player.refused .echo{text-decoration:line-through;-webkit-text-decoration-color:var(--ink-dim);text-decoration-color:var(--ink-dim)}.player.refused:after{content:" — the page refuses";font:italic .85rem var(--typewriter);color:var(--ink-dim);margin-left:.25em}.deny-gray{opacity:.45}.deny-flicker{animation:3.2s step-end infinite flicker}.deny-flicker:hover{animation:.25s step-end infinite flicker-fast}@keyframes flicker{0%,to{opacity:.75}41%{opacity:.2}44%{opacity:.7}47%{opacity:.1}52%{opacity:.6}}@keyframes flicker-fast{0%{opacity:.5}50%{opacity:.05}}@keyframes fade-in{0%{opacity:0;transform:translateY(4px)}}.fx-shudder{animation:.45s linear shudder}@keyframes shudder{10%,50%,90%{transform:translate(-3px)}30%,70%{transform:translate(3px)}}.shop{font-family:var(--serif);color:var(--ink);background:var(--paper);border:1px solid var(--gaslight);outline:1px solid var(--rule);outline-offset:4px;text-align:center;max-width:min(26rem,100vw - 2rem);padding:1.5rem 1.75rem}.shop::backdrop{background:#0a0806b3}.shop-house{letter-spacing:.3em;text-transform:uppercase;color:var(--gaslight);margin:0;font-size:.75rem}.shop-item{margin:.75rem 0 .25rem;font-size:1.5rem;font-weight:500}.shop-price{font-family:var(--typewriter);margin:0}.shop-balance{font:.9rem var(--typewriter);color:var(--ink-dim);margin:.25rem 0 1.25rem}.shop-actions{justify-content:center;align-items:center;gap:.75rem;min-height:2.5rem;display:flex}.shop-actions button{font:inherit;cursor:pointer;border:1px solid var(--rule);color:var(--ink);background:0 0;border-radius:2px;padding:.4rem 1.1rem}.shop-actions .shop-buy{background:var(--gaslight);color:var(--bg);border-color:var(--gaslight)}.shop-processing{font:italic .95rem var(--typewriter);margin:0}.loan-items{border-collapse:collapse;width:100%;font:.85rem var(--typewriter);text-align:left;margin:.5rem 0 .75rem}.loan-items td{border-bottom:1px dotted var(--rule);vertical-align:top;padding:.3rem 0}.loan-items td:last-child{text-align:right;white-space:nowrap;padding-left:1rem}.loan-total{margin:0 0 1.25rem;font-size:.95rem}.loan-total span{color:var(--wound)}.shop-disclaimer{color:var(--ink-dim);margin:1.25rem 0 0;font-size:.8rem;font-style:italic}#debug{border-left:1px solid var(--rule);color:#bdb39c;z-index:10;background:#0e0c0af2;width:min(22rem,100vw);max-height:100vh;padding:.75rem 1rem 1.5rem;font:.75rem/1.4 ui-monospace,monospace;position:fixed;top:0;right:0;overflow-y:auto}#debug h3{letter-spacing:.15em;text-transform:uppercase;color:var(--gaslight);margin:1rem 0 .4rem;font-size:.7rem}#debug label{grid-template-columns:9.5rem 1fr 2rem;align-items:center;gap:.4rem;display:grid}#debug .dbg-config label{grid-template-columns:1fr 4rem}#debug input[type=number]{width:100%;color:inherit;border:1px solid var(--rule);font:inherit;background:#221d17}#debug output{text-align:right}#debug ol,#debug ul{margin:0;padding-left:1.2rem}#debug li{margin-bottom:.4rem}#debug li.hit b{color:var(--wound)}.dbg-warnings li{color:#e08a6a}#debug button{font:inherit;color:inherit;border:1px solid var(--rule);cursor:pointer;background:0 0;margin-top:1rem;padding:.3rem .6rem}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}#tokens[hidden]{display:none}@media (prefers-reduced-motion:reduce){.dlc-banner,.splash,.credits,.credits.credits-refuse,.player.dissolving .echo{animation:none}.credits{transform:translateY(20vh)}.deny-flicker,.deny-flicker:hover{opacity:.4;animation:none}.fx-shudder{outline:2px solid var(--wound);animation:none}.inner{animation:none}.player.intercepted .echo{background-size:100% 2px;animation:none}}.title:hover,.title:focus-visible{color:var(--gaslight);outline:none}#tokens{text-align:center;font:.75rem var(--typewriter);color:var(--ink-dim);cursor:default;flex:none;margin:-.5rem 0 .75rem}#tokens span{color:var(--gaslight)}.menu-upsell .price{margin-left:.25rem}.menu-pass-rule{text-align:center;margin-bottom:1rem}.menu-pass-tier{text-align:center;margin:0 0 .4rem}.menu-pass-rewards{color:var(--ink-dim);margin:1rem 0 .75rem;padding-left:2.5rem;font-size:.95rem}.menu-pass-rewards .earned{color:var(--ink)}.menu-pass-rewards .claimed{text-decoration:line-through}.dlc-banner{z-index:15;max-width:calc(100vw - 2rem);color:var(--bg-deep);font:500 .95rem var(--serif);cursor:pointer;background:linear-gradient(90deg,#f3d38a,#d8a84e);align-items:center;gap:.75rem;padding:.6rem 1rem;animation:.5s ease-out dlc-in;display:flex;position:fixed;top:1rem;left:50%;transform:translate(-50%);box-shadow:0 .5rem 1.5rem #00000080}.dlc-badge{font:.7rem var(--typewriter);background:var(--wound);color:var(--ink);padding:.1rem .4rem}.dlc-buy{font:inherit;background:var(--bg-deep);color:var(--gaslight);cursor:pointer;border:0;padding:.25rem .75rem}@keyframes dlc-in{0%{transform:translate(-50%,-150%)}}body.front-door #app,body.front-door #tokens,body.front-door #menu-button{visibility:hidden}.splash{z-index:13;text-align:center;background:linear-gradient(#0a0907b3,#0a090700 55%);flex-direction:column;justify-content:flex-start;align-items:center;padding:18vh 1rem 1rem;transition:opacity .45s ease-in;display:flex;position:fixed;inset:0}.splash.splash-leaving{opacity:0}.splash-name{font:500 clamp(2.4rem, 8vw, 4.6rem) / 1 var(--serif);letter-spacing:.4em;text-transform:uppercase;color:var(--ink);text-shadow:0 0 24px var(--bg-deep);margin:0}.splash-after{color:var(--ink-dim);margin:1rem 0 0;font-style:italic}.splash-epilogue{font-family:var(--typewriter);color:var(--narrator);font-style:normal}.splash-enter{font:inherit;letter-spacing:.12em;color:var(--gaslight);border:1px solid var(--rule);cursor:pointer;background:#0a09078c;margin-top:auto;margin-bottom:14vh;padding:.7rem 1.6rem;font-size:1.2rem;transition:border-color .2s,color .2s}.splash-enter:hover,.splash-enter:focus-visible{border-color:var(--gaslight);color:var(--ink);outline:none}.title-screen{z-index:12;text-align:center;background:radial-gradient(at 50% 45%,#12100d8c,#0a0907eb 70%);flex-direction:column;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.title-name{font:500 clamp(2rem, 6vw, 3.4rem) / 1 var(--serif);letter-spacing:.35em;text-transform:uppercase;color:var(--ink);text-shadow:0 0 18px var(--bg-deep);margin:0}.title-after{color:var(--ink-dim);margin:.75rem 0 2.5rem;font-style:italic}.title-items{flex-direction:column;gap:.25rem;min-width:min(20rem,100%);display:flex}.title-item{flex-direction:column;align-items:center;display:flex}.title-note{font:.8rem var(--typewriter);color:var(--ink-dim);margin-top:.15rem}.title-disclosure{color:var(--ink-dim);margin:0;padding:0 1rem;font-size:.85rem;font-style:italic;position:absolute;bottom:1.25rem;left:0;right:0}.credits{z-index:15;pointer-events:none;text-align:center;height:100vh;color:var(--ink);text-shadow:0 0 8px var(--bg-deep);flex-direction:column;justify-content:flex-start;align-items:center;padding-top:40vh;animation:2.6s linear forwards credits-roll;display:flex;position:fixed;inset:auto 0 0}.credits p{margin:0 0 .75rem}.credits-title{letter-spacing:.4em;text-transform:uppercase;font-size:1.6rem}.credits-small{color:var(--ink-dim);font-size:.85rem}.credits.credits-refuse{animation:1.8s ease-in forwards credits-sink}@keyframes credits-roll{0%{transform:translateY(100vh)}to{transform:translateY(20vh)}}@keyframes credits-sink{0%{transform:translateY(20vh)}15%{transform:translateY(18vh)}to{opacity:.3;transform:translateY(110vh)}}.player.dissolving .echo{animation:1.6s steps(8,end) forwards dissolve}.player.dissolved{visibility:hidden}@keyframes dissolve{0%{opacity:1;filter:none;letter-spacing:0}60%{opacity:.5;filter:blur(.5px);letter-spacing:.2em}to{opacity:0;filter:blur(2px);letter-spacing:.6em}}.dbg-jump{flex-wrap:wrap;gap:.25rem;display:flex}.dbg-jump button{margin-top:0!important}.menu{font-family:var(--serif);color:var(--ink);background:var(--paper);border:1px solid var(--rule);outline:1px solid var(--bg-deep);outline-offset:4px;width:min(24rem,100vw - 2rem);padding:1.5rem 1.75rem 1.25rem}.menu::backdrop{background:#0a080699}.menu-house{letter-spacing:.4em;text-transform:uppercase;color:var(--ink-dim);text-align:center;margin:0 0 1rem;font-size:.75rem}.menu-heading{text-align:center;margin:0 0 1rem;font-size:1.4rem;font-weight:500}.menu-aside{margin:0 0 1.25rem}.menu-items{flex-direction:column;gap:.25rem;margin-top:.5rem;display:flex}.menu-item{font:inherit;color:var(--ink);text-align:center;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:2px;padding:.45rem .75rem;font-size:1.15rem}.menu-item:hover,.menu-item:focus-visible{background:var(--bg);border-color:var(--rule);outline:none}.menu-item:focus-visible{box-shadow:0 0 0 2px var(--gaslight)}.menu-stats{margin:0 0 1rem}.menu-stats dt{margin-top:.75rem;font-size:1rem}.menu-stats dd{grid-template-columns:1fr 2.5rem;align-items:center;column-gap:.75rem;margin:.2rem 0 0;display:grid}.menu-bar{background:linear-gradient(var(--wound), var(--wound)) no-repeat 0 0 / var(--fill) 100%, var(--bg-deep);border:1px solid var(--rule);height:6px;display:block}.menu-value{font:.9rem var(--typewriter);text-align:right}.menu-value-lie{color:var(--wound)}.menu-save-was{color:var(--ink-dim);font-size:.9rem;display:block}.menu-value-odd{text-align:left;color:var(--wound);grid-column:1/-1}.menu-note{color:var(--ink-dim);grid-column:1/-1;font-size:.85rem;font-style:italic;display:block}.menu-save{border:1px solid var(--rule);background:var(--bg);padding:.75rem}.menu-save-name{font-size:1.15rem;display:block}.menu-saves-rule{text-align:center;margin:.75rem 0 1rem}#stage{aspect-ratio:160/60;width:calc(100% - 2rem);max-width:38rem;image-rendering:pixelated;background:var(--bg-deep);flex:none;margin:0 auto 1rem;display:block}#stage[hidden]{display:none}@media (width>=760px){.title{z-index:2;text-align:left;color:var(--ink);text-shadow:0 1px 0 var(--bg-deep), 0 0 8px var(--bg-deep);margin:0;padding:0;position:fixed;top:1.25rem;left:1.5rem}#tokens{z-index:2;text-shadow:0 0 6px var(--bg-deep);margin:0;position:fixed;top:2.5rem;left:1.5rem}#stage{z-index:0;aspect-ratio:auto;width:100vw;max-width:none;height:100vh;box-shadow:none;margin:0;position:fixed;inset:0}#app{z-index:1;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#12100dad;border-left:1px solid #4a403399;width:min(32rem,40vw);max-width:none;margin:0;padding:0;position:fixed;top:0;bottom:0;right:0}#log{padding:3rem 1.75rem 1.5rem}#choices{min-height:calc(3 * var(--choice-h) + 2 * .5rem + 2.5rem + 1px);background:#0a090759;padding:1rem 1.75rem 1.5rem}#debug{border-left:none;border-right:1px solid var(--rule);left:0;right:auto}}
