:root{--ink:#0b1022;--glass:#0a0e1ed6;--glass-2:#10162ce6;--parchment:#efe4cc;--parchment-dim:#c9bda3;--gold:#d9b76c;--gold-dim:#9c824c;--vermilion:#d2502f;--moon:#b9cbef;--k:.5;--t:1}*{box-sizing:border-box}html,body{background:#04060d;height:100%;margin:0;overflow:hidden}body{color:var(--parchment);-webkit-font-smoothing:antialiased;font-family:Caslon,Georgia,serif}#stage{position:fixed;inset:0}#game{position:absolute;inset:0}#game canvas{display:block}#ui{pointer-events:none;font-size:calc(30px * var(--k) * var(--t));position:absolute;top:0;left:0;overflow:hidden}#ui .interactive,#ui button,#ui [data-click]{pointer-events:auto}button{font:inherit;color:inherit;cursor:pointer}.panel{background:linear-gradient(180deg, var(--glass-2), var(--glass));border:calc(2px * var(--k)) solid #d9b76c8c;box-shadow:0 0 0 calc(6px * var(--k)) #0a0e1e99, 0 0 0 calc(8px * var(--k)) #d9b76c40, 0 calc(20px * var(--k)) calc(60px * var(--k)) #0000008c;border-radius:calc(10px * var(--k));-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.tip{white-space:nowrap;color:#24180e;opacity:0;background:#efe4ccf0;border-radius:.3em;padding:.25em .7em .3em;font-size:.8em;transition:opacity .12s;position:absolute;transform:translate(-50%,-150%);box-shadow:0 .2em .8em #00000073}.tip.on{opacity:1}.tip .verb{color:#7a3b1c;letter-spacing:.04em;margin-right:.45em;font-family:Playfair SC;font-size:.85em}.hud{transition:opacity .4s;position:absolute;inset:0}.hud.hidden{opacity:0}.corner{gap:.5em;display:none;position:absolute;top:3%;right:2.2%}.corner.on{display:flex}.corner button{pointer-events:auto;background:var(--glass);border:calc(2px * var(--k)) solid #d9b76c8c;letter-spacing:.06em;color:var(--parchment);border-radius:2em;padding:.3em 1em;font-family:Playfair SC;font-size:.8em;box-shadow:0 .3em 1em #0006}.corner button[data-act=help]{width:2.2em;color:var(--gold);padding:.3em 0;font-weight:700}.corner button:hover{border-color:var(--gold);color:#fff}.hud .night{grid-template-columns:auto 1fr;align-items:center;gap:.2em .8em;width:20%;padding:.7em 1em .8em;display:grid;position:absolute;top:9.5%;right:2.2%}.hud .candle{grid-row:span 3;width:1.3em;height:3.8em;position:relative}.hud .candle .wax{background:linear-gradient(90deg,#d9ccb0,#fff4dc 45%,#cbbd9f);border-radius:.15em .15em .1em .1em;width:.8em;transition:height .8s linear;position:absolute;bottom:0;left:.25em}.hud .candle .flame{filter:blur(.3px);transform-origin:50% 100%;background:radial-gradient(circle at 50% 70%,#fff6c8,#ffc35a 45%,#ff781e33 75%,#0000 76%);border-radius:50% 50% 45% 45%/60% 60% 40% 40%;width:.6em;height:.95em;animation:1.4s ease-in-out infinite flick;position:absolute;left:.35em}@keyframes flick{0%,to{transform:scale(1)rotate(-2deg)}50%{transform:scale(.92,1.08)rotate(2deg)}}.hud .night .label{color:var(--gold);letter-spacing:.08em;font-family:Playfair SC;font-size:.72em}.hud .night .where{color:var(--parchment);font-size:.82em}.hud .night .dread{color:var(--parchment-dim);align-items:center;gap:.4em;font-size:.7em;display:flex}.hud .night .dread .bar{background:#ffffff1a;border-radius:1em;flex:1;height:.35em;overflow:hidden}.hud .night .dread .bar i{background:linear-gradient(90deg,#e9c16e,#e0662f 60%,#b01f1f);width:0;height:100%;transition:width .4s;display:block}.hud .paint{width:17%;padding:.6em 1em .8em;position:absolute;top:3%;left:2.2%}.hud .paint .label{color:var(--gold);letter-spacing:.08em;justify-content:space-between;font-family:Playfair SC;font-size:.72em;display:flex}.hud .paint .stroke{background:#ffffff12;border-radius:1em;height:.8em;margin-top:.35em;position:relative;overflow:hidden}.hud .paint .stroke i{background:linear-gradient(90deg,#6b4a34,#9b6a47 30%,#c9b9a0 55%,#d2502f 85%,#e8a27c);border-radius:.2em 1em 1em .2em;width:100%;transition:width .5s;position:absolute;inset:0 auto 0 0;-webkit-mask:radial-gradient(at 100%,#0000 .3em,#000 .4em),linear-gradient(#000,#000)}.hud .paint .mode{color:var(--parchment-dim);margin-top:.4em;font-size:.72em;font-style:italic}.hud .buttons{gap:.6em;display:flex;position:absolute;bottom:3.4%;right:2.2%}.hud .buttons button{pointer-events:auto;background:var(--glass);border:calc(2px * var(--k)) solid #d9b76c80;letter-spacing:.06em;color:var(--parchment);border-radius:2em;padding:.35em 1em;font-family:Playfair SC;font-size:.78em}.hud .buttons button:hover{border-color:var(--gold);color:#fff}.hud .buttons kbd{color:var(--gold-dim);margin-left:.4em;font-family:Caslon;font-size:.85em}.book{text-align:center;color:#f5ecd6;text-shadow:0 .08em .4em #000000e6;opacity:0;background:radial-gradient(#080a16b8,#080a1659 70%,#0000 100%);width:50%;padding:.5em 1.4em .65em;font-family:Fell;font-size:1.02em;font-style:italic;line-height:1.35;transition:opacity .6s;position:absolute;top:3.4%;left:50%;transform:translate(-50%)}.book.on{opacity:1}.book .para{letter-spacing:.12em;color:var(--gold-dim);margin-bottom:.2em;font-family:Playfair SC;font-size:.62em;font-style:normal;display:block}.book.far{text-align:left;width:34%;font-size:.78em;top:auto;bottom:2.6%;left:2.4%;transform:none}.dialogue{opacity:0;grid-template-columns:22% 1fr;gap:0 2.2%;min-height:28%;padding:1.1em 1.6em 1.2em 1.4em;transition:opacity .25s,transform .25s;display:grid;position:absolute;bottom:3%;left:8%;right:8%;transform:translateY(12%)}.dialogue.on{opacity:1;pointer-events:auto;transform:none}.dialogue .portrait{aspect-ratio:1;border:calc(4px * var(--k)) solid var(--gold);box-shadow:0 0 0 calc(6px * var(--k)) #0a0e1ee6, 0 0 0 calc(8px * var(--k)) #d9b76c59, 0 1em 2em #0009;background:radial-gradient(circle at 50% 35%,#3b4a6e,#141a33 70%);border-radius:50% 50% 46% 46%;align-self:end;margin-top:-30%;overflow:hidden}.dialogue .portrait img{object-fit:cover;object-position:50% 20%;width:100%;height:100%;display:block}.dialogue .portrait.none{display:none}.dialogue.noportrait{grid-template-columns:1fr;padding-left:2.4em}.dialogue .who{letter-spacing:.06em;color:var(--gold);min-height:1.2em;margin-bottom:.25em;font-family:Playfair SC;font-size:.95em;font-weight:700}.dialogue .text{min-height:3em;font-size:1.05em;line-height:1.45}.dialogue .text.k-narration{color:#e3d7bd;font-style:italic}.dialogue .text.k-book{color:#f5ecd6;font-family:Fell;font-style:italic}.dialogue .choices{gap:.2em;margin:.6em 0 0;padding:0;list-style:none;display:grid}.dialogue .choices li{cursor:pointer;color:var(--parchment);border-radius:.3em;align-items:baseline;gap:.6em;padding:.25em .6em;display:flex}.dialogue .choices li:hover,.dialogue .choices li.sel{color:#fff;background:#d9b76c24}.dialogue .choices li .n{color:var(--gold);min-width:1.2em;font-family:Playfair SC}.dialogue .choices li.used{color:var(--parchment-dim)}.dialogue .choices li.used .n{color:var(--gold-dim)}.seal{letter-spacing:.05em;color:#fff3e8;white-space:nowrap;background:radial-gradient(circle at 35% 35%,#e0613e,#a4321b 70%);border-radius:1em;padding:.08em .55em .14em;font-family:Playfair SC;font-size:.72em;box-shadow:inset 0 0 0 1px #ffdcbe59}.seal.eye{background:radial-gradient(circle at 35% 35%,#5d86c9,#2d4d86 70%)}.seal.hand{background:radial-gradient(circle at 35% 35%,#c98a3d,#8a5520 70%)}.seal.heart{background:radial-gradient(circle at 35% 35%,#d76a7a,#93304a 70%)}.seal.conscience{background:radial-gradient(circle at 35% 35%,#9a86c9,#574490 70%)}.dialogue .more{color:var(--gold);font-size:.8em;animation:1.2s ease-in-out infinite bob;position:absolute;bottom:.8em;right:1.4em}@keyframes bob{50%{transform:translateY(.2em)}}.remark{text-align:center;opacity:0;max-width:62%;padding:.55em 1.2em .65em;font-style:italic;transition:opacity .25s;position:absolute;bottom:7%;left:50%;transform:translate(-50%)}.remark.on{opacity:1;pointer-events:auto}.dice{opacity:0;background:radial-gradient(circle,#04060e8c,#04060ed9);place-items:center;transition:opacity .2s;display:grid;position:absolute;inset:0}.dice.on{opacity:1;pointer-events:auto}.dice .box{text-align:center;min-width:28%;padding:1.2em 2.2em 1.4em}.dice .skill{color:var(--gold);letter-spacing:.1em;font-family:Playfair SC;font-size:.9em}.dice svg{filter:drop-shadow(0 .4em 1em #0009);width:6.5em;height:6.5em;margin:.5em auto;display:block}.dice .num{font-family:Playfair SC;font-weight:700}.dice .sum{color:var(--parchment-dim);font-size:.85em}.dice .verdict{letter-spacing:.12em;margin-top:.3em;font-family:Playfair SC;font-size:1.3em;font-weight:700}.dice .verdict.ok{color:#f0d890}.dice .verdict.no{color:#e0664a}.hint{opacity:0;width:24%;padding:.7em 1em .8em;font-size:.78em;line-height:1.4;transition:opacity .35s,transform .35s;position:absolute;top:17%;left:2.2%;transform:translate(-4%)}.hint.on{opacity:1;pointer-events:auto;transform:none}.hint b{color:var(--gold);letter-spacing:.05em;margin-bottom:.2em;font-family:Playfair SC;font-weight:700;display:block}.hint kbd,.card kbd{border:1px solid var(--gold-dim);border-radius:.2em;padding:0 .3em;font-family:Caslon;font-size:.9em}.hint .ok{float:right;color:var(--gold-dim);font-size:.9em}.toast{opacity:0;text-align:center;padding:.45em 1.2em .55em;font-size:.85em;transition:opacity .4s;position:absolute;top:14%;left:50%;transform:translate(-50%)}.toast.on{opacity:1}.toast b{color:var(--gold);font-family:Playfair SC}.screen{pointer-events:auto;display:none;position:absolute;inset:0}.screen.on{display:block}.fade{opacity:0;pointer-events:none;background:#04060d;transition:opacity .9s;position:absolute;inset:0}.fade.on{opacity:1;pointer-events:auto}.title{background:50%/cover no-repeat}.title:before{content:"";background:linear-gradient(#080a1600 78%,#080a16b8),linear-gradient(90deg,#080a16d1,#080a164d 55%,#080a160d);position:absolute;inset:0}.title .inner{width:42%;position:absolute;top:16%;left:7%}.title h1{color:#f6ecd2;letter-spacing:.02em;text-shadow:0 .06em .4em #0009;margin:0;font-family:Playfair SC;font-size:3.6em;font-weight:700;line-height:1.02}.title .sub{color:#f0e4c8;text-shadow:0 0 .5em #000c;margin:.8em 0 .2em;font-family:Fell;font-size:1.15em;font-style:italic}.title .epigraph{color:#e6d9bb;text-shadow:0 0 .5em #000c;border-left:2px solid var(--gold-dim);margin:1.4em 0 2em;padding-left:1em;font-family:Fell;font-size:.95em;font-style:italic}.title .epigraph cite{color:var(--gold);letter-spacing:.08em;margin-top:.4em;font-family:Playfair SC;font-size:.7em;font-style:normal;display:block}.menu{justify-items:start;gap:.5em;display:grid}.menu button{letter-spacing:.08em;color:#efe4cc;text-shadow:0 0 .6em #000000b3;background:0 0;border:none;padding:.15em 0;font-family:Playfair SC;font-size:1.25em}.menu button:hover,.menu button:focus-visible{color:var(--gold);outline:none}.menu button:hover:before,.menu button:focus-visible:before{content:"❧ ";color:var(--vermilion)}.menu button[disabled]{opacity:.35;cursor:default}.title .disclosure{color:#efe4ccd1;text-shadow:0 0 .4em #000000e6;width:50%;font-size:.62em;line-height:1.4;position:absolute;bottom:4%;left:7%}.card{width:64%;max-height:86%;padding:1.6em 2.2em 1.8em;position:absolute;top:50%;left:50%;overflow:auto;transform:translate(-50%,-50%)}.card h2{color:var(--gold);letter-spacing:.04em;margin:0 0 .5em;font-family:Playfair SC;font-size:1.5em;font-weight:700}.card p{margin:.4em 0;line-height:1.5}.card .actions{justify-content:flex-end;gap:1em;margin-top:1.2em;display:flex}.card .actions button,.btn{border:calc(2px * var(--k)) solid var(--gold-dim);letter-spacing:.06em;background:#d9b76c1f;border-radius:.35em;padding:.35em 1.1em;font-family:Playfair SC}.card .actions button:hover,.btn:hover{border-color:var(--gold);background:#d9b76c38}.card .actions button.primary{color:#fff4e8;background:linear-gradient(#c8452c,#9a3019);border-color:#e8a27c}.card label{border-bottom:1px solid #d9b76c26;justify-content:space-between;align-items:center;gap:1em;padding:.35em 0;display:flex}.card input[type=range]{width:45%;accent-color:var(--gold)}.intro{background:#05070f;place-items:center;display:none}.intro.on{display:grid}.intro .words{color:#efe4cc;text-align:center;width:56%;font-family:Fell;font-size:1.35em;line-height:1.5}.intro .words p{opacity:0;margin:.8em 0;transition:opacity 1.6s}.intro .words p.on{opacity:1}.intro .words cite{color:var(--gold-dim);letter-spacing:.1em;margin-top:.4em;font-family:Playfair SC;font-size:.55em;font-style:normal;display:block}.intro .skip{color:var(--parchment-dim);font-size:.7em;position:absolute;bottom:4%;right:3%}.creation{background:radial-gradient(at 50% 40%,#1c2544,#070a16 75%)}.creation .inner{text-align:center;width:80%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.creation h2{color:var(--gold);margin:0;font-family:Playfair SC;font-size:1.9em}.creation .q{color:#e9dcc0;margin:.5em 0 1.4em;font-family:Fell;font-size:1.1em;font-style:italic}.creation .skills{grid-template-columns:repeat(4,1fr);gap:1.2em;display:grid}.creation .sk{text-align:left;flex-direction:column;gap:.4em;padding:1em 1em 1.1em;display:flex}.creation .sk h3{letter-spacing:.05em;margin:0;font-family:Playfair SC;font-size:1.15em}.creation .sk .what{color:var(--parchment-dim);min-height:5.5em;font-size:.78em;line-height:1.4}.creation .sk .quote{color:#d9cbb0;border-left:2px solid var(--gold-dim);min-height:4em;padding-left:.6em;font-family:Fell;font-size:.72em;font-style:italic}.creation .pips{align-items:center;gap:.3em;margin-top:auto;display:flex}.creation .pips i{border:2px solid var(--gold-dim);border-radius:50%;width:1.1em;height:1.1em;display:inline-block}.creation .pips i.on{background:radial-gradient(circle at 35% 35%,#e8a27c,#c8452c 70%);border-color:#e8a27c}.creation .pips button{border:1px solid var(--gold-dim);background:#d9b76c1f;border-radius:50%;width:1.5em;height:1.5em;padding:0;line-height:1}.creation .left{color:var(--gold);letter-spacing:.06em;margin:1.2em 0 .4em;font-family:Playfair SC}.creation .presets{justify-content:center;gap:.6em;margin:.4em 0 .5em;font-size:.8em;display:flex}.creation .presets .suggest{color:#fff;border-color:#ffd98a;animation:1.6s ease-in-out infinite goal-pulse}.creation .how{color:var(--gold);margin:0 0 1.1em;font-size:.78em}.creation .menu button[data-a=go]:not([disabled]){color:#fff;border-radius:2em;padding:.15em .9em;animation:1.6s ease-in-out infinite goal-pulse}.map{background:#04060ee6}.map .frame{aspect-ratio:16/9;width:78%;box-shadow:0 0 0 calc(4px * var(--k)) var(--gold-dim), 0 1em 3em #000000b3;background:50%/cover no-repeat;border-radius:.4em;position:absolute;top:47%;left:50%;overflow:hidden;transform:translate(-50%,-50%)}.map .room{border:calc(3px * var(--k)) solid transparent;border-radius:.3em;position:absolute}.map .room:hover{background:#d9b76c14;border-color:#d9b76ccc}.map .room.here{border-color:var(--vermilion)}.map .room .name{white-space:nowrap;color:var(--parchment);text-shadow:0 0 .4em #000;font-family:Playfair SC;font-size:.6em;position:absolute;bottom:-1.5em;left:50%;transform:translate(-50%)}.map .lamp{background:radial-gradient(circle,#fff3c0,#ffb040 35%,#ff8c2840 60%,#0000 70%);border-radius:50%;width:2.2em;height:2.2em;margin:-1.1em 0 0 -1.1em;transition:left .8s,top .8s;animation:1.2s infinite flick;position:absolute}.map .me{background:radial-gradient(circle,#ffd8c8,#d2502f 60%);border-radius:50%;width:1.2em;height:1.2em;margin:-.6em 0 0 -.6em;position:absolute;box-shadow:0 0 .8em #d2502f}.map .legend{color:var(--parchment-dim);justify-content:space-between;font-size:.72em;display:flex;position:absolute;bottom:3.5%;left:11%;right:11%}.journal .card{grid-template-rows:auto auto 1fr auto;width:72%;height:80%;display:grid}.tabs{border-bottom:1px solid #d9b76c4d;gap:.4em;margin-bottom:.8em;display:flex}.tabs button{letter-spacing:.05em;color:var(--parchment-dim);background:0 0;border:none;border-bottom:3px solid #0000;padding:.3em .8em;font-family:Playfair SC}.tabs button.on{color:var(--gold);border-bottom-color:var(--gold)}.journal .body{padding-right:.6em;overflow:auto}.journal .mem{border-bottom:1px solid #d9b76c1f;padding:.6em 0}.journal .mem b{color:var(--gold);font-family:Playfair SC}.journal .mem q{margin:.3em 0;font-family:Fell;font-style:italic;display:block}.journal .mem small{color:var(--parchment-dim)}.journal .mem.locked{opacity:.4}.journal .line{padding:.25em 0}.journal .line b{color:var(--gold);margin-right:.4em;font-family:Playfair SC;font-weight:400}.journal .chap{padding:.2em 0;font-family:Fell;font-style:italic}.journal .chap span{color:var(--gold-dim);margin-right:.6em;font-family:Playfair SC;font-size:.7em;font-style:normal}.ending{background:50%/cover no-repeat}.ending:before{content:"";background:linear-gradient(90deg,#060812e6,#060812b8 45%,#0608121a 75%),linear-gradient(#0000 50%,#060812b3);position:absolute;inset:0}.ending .inner{position:absolute;bottom:8%;left:8%;right:8%}.ending h2{color:#f6ecd2;margin:0;font-family:Playfair SC;font-size:2.4em}.ending .kind{color:var(--gold);letter-spacing:.14em;font-family:Playfair SC;font-size:.95em}.ending p{text-shadow:0 .05em .3em #000000b3;max-width:52%;font-size:1.05em;line-height:1.55}.ending .quote{font-family:Fell;font-style:italic}.ending .note{color:#3a2814;background:#efe2c2;border-radius:.1em;max-width:50%;padding:.6em 1em;font-family:Hand;font-size:2em;line-height:1.1;display:inline-block;transform:rotate(-1.5deg);box-shadow:0 .4em 1.2em #00000080}.loading{background:#05070f;place-items:center}.loading.on{display:grid}.loading .bar{background:#ffffff1a;border-radius:1em;width:30%;height:.25em;margin-top:1em;overflow:hidden}.loading .bar i{background:var(--gold);width:0;height:100%;transition:width .2s;display:block}.loading .t{color:var(--gold);letter-spacing:.2em;text-align:center;font-family:Playfair SC}.nowline{pointer-events:none;align-items:baseline;gap:.8em;max-width:46%;padding:.5em 1.2em .6em;font-size:.86em;line-height:1.35;display:none;position:absolute;top:3%;left:50%;transform:translate(-50%)}.nowline.on{display:flex}.nowline.fresh{animation:.9s ease-out goal-in}.nowline .now{color:var(--vermilion);letter-spacing:.12em;flex:none;font-family:Playfair SC;font-size:.82em;font-weight:700}.nowline .what{color:var(--parchment)}.nowline small{color:var(--gold);margin-top:.15em;font-size:.86em;display:block}@keyframes goal-in{0%{opacity:0;transform:translate(-50%,-.6em);box-shadow:0 0 #ffd68ccc}60%{opacity:1}to{transform:translate(-50%)}}.hud .buttons button.goal{color:#fff;border-color:#ffd98a;animation:1.6s ease-in-out infinite goal-pulse}@keyframes goal-pulse{0%,to{box-shadow:0 0 #ffd98a8c}50%{box-shadow:0 0 0 .45em #ffd98a00}}.dialogue .choices li.suggest{color:#fff;box-shadow:inset calc(4px * var(--k)) 0 0 #ffd98a;background:#d9b76c29}.dialogue .choices li.suggest:after{content:"suggested";letter-spacing:.1em;color:var(--gold);white-space:nowrap;margin-left:auto;padding-left:1em;font-family:Playfair SC;font-size:.66em}.map .room.goal{background:#ffd98a24;border-color:#ffd98a;animation:1.6s ease-in-out infinite goal-pulse}.map .room.goal .name{color:#fff}.waiting-veil{pointer-events:none;background:radial-gradient(at 50% 60%,#080a1600 30%,#080a168c);display:none;position:absolute;inset:0}.waiting-veil.on{display:block}.waiting-veil .label{letter-spacing:.14em;color:#f6ecd2;text-shadow:0 0 .6em #000000e6;font-family:Playfair SC;font-size:1.6em;animation:2.4s ease-in-out infinite breathe;position:absolute;top:40%;left:50%;transform:translate(-50%)}.waiting-veil .para{color:var(--gold);font-family:Fell;font-size:1em;font-style:italic;position:absolute;top:47%;left:50%;transform:translate(-50%)}.waiting-veil small{color:var(--parchment-dim);white-space:nowrap;font-size:.7em;position:absolute;top:52%;left:50%;transform:translate(-50%)}@keyframes breathe{50%{opacity:.55}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
