:root{--bg: #17120f;--text: #f3e7d8;--dim: #b39c88;--amber: #ffc46b;--amber-deep: #e08b3c;--aqua: #a1e2f2;--pink: #f6baf5;--line: rgba(243, 231, 216, .18);--mono: "Ubuntu Mono", "Cousine", ui-monospace, SFMono-Regular, Menlo, monospace;--sans: "Be Vietnam Pro", ui-sans-serif, system-ui, sans-serif;--ease: cubic-bezier(.25, .46, .45, .94);color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;height:100%;background:var(--bg);overflow:hidden;color:var(--text);font-family:var(--sans);-webkit-font-smoothing:antialiased}#sky{position:fixed;inset:0;z-index:0;background:linear-gradient(to bottom,#241a14,#17120f 62%);transition:background 1.2s var(--ease)}#app{position:fixed;inset:0;z-index:1}canvas{display:block;width:100%;height:100%;outline:none;touch-action:none;cursor:crosshair}#boot{position:fixed;inset:0;z-index:30;display:grid;place-items:center;background:radial-gradient(58% 52% at 50% 42%,rgba(255,196,107,.1),transparent 72%),var(--bg);font-family:var(--mono);transition:opacity .5s var(--ease),transform .5s var(--ease);padding:2rem}#boot.gone{opacity:0;transform:scale(.8);pointer-events:none}#bootInner{width:min(92vw,34rem)}#bootInner .mark{display:flex;align-items:center;gap:.6rem;font-size:11px;letter-spacing:.34em;text-transform:uppercase;color:var(--dim)}#bootInner .mark .dot{width:6px;height:6px;border-radius:50%;background:var(--aqua);box-shadow:0 0 10px var(--aqua)}#bootInner h1{margin:1.4rem 0 0;font-family:var(--sans);font-weight:300;line-height:1}#bootInner .for{display:block;font-size:clamp(15px,2.2vw,21px);color:var(--text);opacity:.85;letter-spacing:.01em}#bootInner .who{display:block;margin-top:.12em;font-size:clamp(44px,9vw,84px);font-weight:400;letter-spacing:-.025em;background:linear-gradient(102deg,var(--amber-deep) 0%,var(--amber) 26%,#ffe9c4 55%,var(--pink) 92%);-webkit-background-clip:text;background-clip:text;color:transparent}#bootInner .meta{margin-top:1rem;font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--amber);opacity:.85}#bootLines{margin-top:2.2rem;padding-top:1.4rem;border-top:1px solid rgba(243,231,216,.12);color:var(--dim);white-space:pre;min-height:6.2em;font-size:clamp(11px,1.35vw,13px);line-height:1.95}#bootLines .ok{color:var(--amber)}#startBtn{margin-top:1.4rem;width:100%;display:grid;grid-template-columns:auto 1fr;align-items:center;gap:0 .9rem;padding:1.05rem 1.4rem;text-align:left;font:inherit;color:var(--text);cursor:pointer;background:#ffc46b0f;border:1px solid rgba(255,196,107,.45);border-radius:2px;opacity:0;transform:translateY(6px);transition:opacity .6s var(--ease),transform .6s var(--ease),background .16s linear,border-color .16s linear}#startBtn.on{opacity:1;transform:none}#startBtn:hover{background:#ffc46b24;border-color:var(--amber)}#startBtn .tri{color:var(--amber);font-size:1.15em}#startBtn .word{font-size:1.2em;letter-spacing:.42em;text-transform:uppercase}#startBtn small{grid-column:2;color:var(--dim);letter-spacing:.16em;font-size:.78em;text-transform:uppercase}#veil{position:fixed;inset:0;z-index:22;pointer-events:none;background:var(--bg);opacity:0;transition:opacity .4s var(--ease)}#veil.on{opacity:1}#loading{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:23;display:flex;align-items:center;gap:.55rem;font-family:var(--mono);font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:var(--dim);pointer-events:none;opacity:0;transition:opacity .45s var(--ease)}#loading.on{opacity:.85}#loading span{width:9px;height:9px;border-radius:50%;border:1px solid var(--amber);border-right-color:transparent;animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}#scrim{position:fixed;left:0;right:0;bottom:0;height:48vh;z-index:19;pointer-events:none;opacity:0;transition:opacity .7s var(--ease);background:linear-gradient(to top,rgba(23,18,15,.82) 0%,rgba(23,18,15,.4) 32%,transparent 100%)}#scrim.on{opacity:1}body.idle #scrim{opacity:.62}#mark{position:fixed;top:clamp(.9rem,3vh,1.8rem);left:clamp(1rem,4vw,2.6rem);z-index:20;font-family:var(--mono);font-size:12px;letter-spacing:.2em;color:var(--dim);text-shadow:0 1px 10px rgba(0,0,0,.9);display:flex;align-items:center;gap:.6rem;pointer-events:none}#mark .dot{width:6px;height:6px;border-radius:50%;background:var(--aqua);box-shadow:0 0 10px var(--aqua)}#mark em{font-style:normal;color:var(--amber)}#caption{position:fixed;left:clamp(1rem,4vw,2.6rem);bottom:clamp(4.5rem,13vh,7rem);z-index:20;max-width:min(80vw,32rem);pointer-events:none;opacity:0;transition:opacity .7s var(--ease);text-shadow:0 1px 14px rgba(0,0,0,.95),0 1px 3px rgba(0,0,0,.8)}#caption.on{opacity:1}body.idle #caption{opacity:.72}#caption .date{font-family:var(--mono);font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:var(--pink);margin-bottom:.5rem}#caption h2{margin:0 0 .35rem;font-size:clamp(21px,3.4vw,34px);font-weight:500;letter-spacing:-.01em}#caption p{margin:0;font-family:var(--mono);font-size:clamp(12px,1.5vw,14px);color:var(--amber)}#rail{position:fixed;right:clamp(.9rem,3vw,1.8rem);top:50%;transform:translateY(-50%);z-index:20;display:flex;flex-direction:column;align-items:center;gap:.62rem;padding:.5rem 0}#rail:before{content:"";position:absolute;top:.5rem;bottom:.5rem;width:1px;background:#f3e7d829}#railFill{position:absolute;top:.5rem;width:1px;height:0;background:linear-gradient(180deg,var(--amber-deep),var(--amber));box-shadow:0 0 8px #ffc46b80;transition:height .6s var(--ease)}#rail .stop{position:relative;display:flex;align-items:center}#rail button{position:relative;z-index:1;width:7px;height:7px;padding:0;border-radius:50%;cursor:pointer;background:var(--bg);border:1px solid var(--line);transition:background .2s linear,border-color .2s linear,transform .2s var(--ease)}#rail button.seen{border-color:#ffc46b8c;background:#ffc46b59}#rail button:hover{border-color:var(--pink);transform:scale(1.5)}#rail button.on{background:var(--amber);border-color:var(--amber);transform:scale(1.25);box-shadow:0 0 12px #ffc46bbf}#rail .peek{position:absolute;right:1.5rem;top:50%;transform:translateY(-50%) translate(6px) scale(.97);width:176px;padding:4px 4px 0;border-radius:3px;background:#17120fe6;border:1px solid rgba(255,196,107,.35);backdrop-filter:blur(10px);opacity:0;pointer-events:none;transition:opacity .22s var(--ease),transform .22s var(--ease)}#rail .stop:hover .peek{opacity:1;transform:translateY(-50%) translate(0) scale(1)}#rail .peek img{display:block;width:100%;border-radius:2px}#rail .peek span{display:block;padding:5px 4px 6px;font-family:var(--mono);font-size:9.5px;line-height:1.35;letter-spacing:.06em;color:var(--amber)}#bar{position:fixed;left:0;right:0;bottom:clamp(.8rem,3vh,1.6rem);z-index:21;display:grid;justify-items:center;gap:.55rem;padding:0 1rem;pointer-events:none}#filters{display:flex;gap:.35rem;pointer-events:auto;flex-wrap:wrap;justify-content:center;max-width:min(96vw,60rem)}#filters button{font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--dim);background:#17120f99;cursor:pointer;border:1px solid var(--line);border-radius:2px;padding:.4rem .75rem;backdrop-filter:blur(8px);transition:color .15s linear,border-color .15s linear,background .15s linear}#filters button:hover{color:var(--text);border-color:var(--pink)}#filters button.on{color:var(--bg);background:var(--amber);border-color:var(--amber)}#hint{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;color:var(--dim);opacity:0;transition:opacity .5s var(--ease);pointer-events:none;text-shadow:0 1px 8px rgba(0,0,0,.9)}#hint.on{opacity:.75}#returnBtn{position:fixed;right:clamp(2.6rem,7vw,4.5rem);top:50%;z-index:21;transform:translateY(-50%) translate(8px);display:flex;align-items:center;gap:.6rem;font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--text);cursor:pointer;background:#17120fb8;backdrop-filter:blur(10px);border:1px solid rgba(255,196,107,.5);border-radius:2px;padding:.6rem 1rem;opacity:0;pointer-events:none;transition:opacity .4s var(--ease),transform .4s var(--ease),background .15s linear,border-color .15s linear}#returnBtn.on{opacity:1;transform:translateY(-50%) translate(0);pointer-events:auto}#returnBtn:hover{background:#ffc46b29;border-color:var(--amber)}#returnBtn .arc{width:13px;height:13px;border-radius:50%;border:1px solid var(--amber);border-right-color:transparent;border-bottom-color:transparent;transform:rotate(-45deg)}#progress{position:fixed;left:0;right:0;bottom:0;height:2px;z-index:21;background:#f3e7d814}#progressFill{height:100%;width:0;background:linear-gradient(90deg,var(--amber-deep),var(--amber));transition:width .2s linear}#end{position:fixed;inset:0;z-index:25;display:grid;place-items:center;background:radial-gradient(65% 60% at 50% 45%,rgba(255,196,107,.13),transparent 72%),color-mix(in srgb,var(--bg) 93%,transparent);opacity:0;pointer-events:none;transition:opacity 1.2s var(--ease);text-align:center;font-family:var(--mono);padding:2rem}#end.on{opacity:1;pointer-events:auto}body.ending #bar,body.ending #rail,body.ending #mark,body.ending #progress,body.ending #returnBtn{opacity:0;pointer-events:none}#bar,#rail,#mark,#progress{transition:opacity .8s var(--ease)}body.idle #bar,body.idle #mark{opacity:0;pointer-events:none}body.idle #rail{opacity:.35}body.idle canvas{cursor:none}.endInner{max-width:min(92vw,44rem)}#end .eyebrow{font-size:11px;letter-spacing:.42em;text-transform:uppercase;color:var(--dim);opacity:0;transform:translateY(8px)}#end h1{font-family:var(--sans);font-weight:300;margin:1.1rem 0 0;line-height:1.02;letter-spacing:-.02em}#end h1 .l1,#end h1 .l2{display:block;opacity:0;transform:translateY(14px)}#end h1 .l1{font-size:clamp(24px,4.6vw,46px);color:var(--text)}#end h1 .l2{font-size:clamp(52px,13vw,132px);font-weight:400;margin-top:.06em;background:linear-gradient(102deg,var(--amber-deep) 0%,var(--amber) 26%,#ffe9c4 55%,var(--pink) 92%);-webkit-background-clip:text;background-clip:text;color:transparent}#end .body{margin:1.9rem auto 0;max-width:34rem;font-family:var(--sans);font-size:clamp(14px,1.7vw,17px);line-height:1.75;color:var(--text);opacity:0;transform:translateY(10px)}#end .sign{margin:1.1rem 0 0;font-size:12px;letter-spacing:.24em;text-transform:uppercase;color:var(--pink);opacity:0;transform:translateY(10px)}#end .actions{margin-top:2.6rem;display:flex;gap:.6rem;justify-content:center;flex-wrap:wrap;opacity:0;transform:translateY(10px)}#end button{font:inherit;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--text);background:transparent;border:1px solid var(--line);border-radius:2px;padding:.6rem 1.4rem;cursor:pointer;transition:border-color .15s linear,color .15s linear,background .15s linear}#end button:hover{border-color:var(--amber);color:var(--amber);background:#ffc46b14}#end .credit{margin-top:2.4rem;font-size:10px;letter-spacing:.14em;color:var(--dim);opacity:0}#end.on .eyebrow{animation:endIn .7s var(--ease) .15s forwards}#end.on h1 .l1{animation:endIn .8s var(--ease) .35s forwards}#end.on h1 .l2{animation:endIn 1s var(--ease) .55s forwards}#end.on .body{animation:endIn .8s var(--ease) 1.05s forwards}#end.on .sign{animation:endIn .8s var(--ease) 1.35s forwards}#end.on .actions{animation:endIn .8s var(--ease) 1.65s forwards}#end.on .credit{animation:endIn .8s var(--ease) 2s forwards}@keyframes endIn{to{opacity:1;transform:none}}@media(max-width:720px){#hint{display:none}#rail{gap:.5rem}#filters button{padding:.35rem .55rem;font-size:10px;letter-spacing:.1em}#caption{bottom:clamp(6rem,17vh,9rem)}}@media(prefers-reduced-motion:reduce){*{transition-duration:.01ms!important}}#edit[hidden]{display:none}#edit{position:fixed;top:0;left:0;bottom:0;width:268px;z-index:40;background:#120e0cf0;backdrop-filter:blur(14px);border-right:1px solid rgba(255,196,107,.28);font-family:var(--mono);font-size:11.5px;color:var(--text);display:flex;flex-direction:column;gap:.55rem;padding:.9rem;overflow-y:auto}#edit h3{margin:0 0 .2rem;font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:var(--amber)}#edit select{width:100%;font:inherit;padding:.4rem;border-radius:2px;background:#221a15;color:var(--text);border:1px solid var(--line)}#edit button{font:inherit;text-align:left;padding:.5rem .6rem;cursor:pointer;background:#ffc46b12;color:var(--text);border:1px solid rgba(255,196,107,.4);border-radius:2px}#edit button:hover{background:#ffc46b2e;border-color:var(--amber)}#edit button.set{border-color:var(--aqua);color:var(--aqua)}#edit button.danger{border-color:#f6baf573;color:var(--pink)}#edit .row{display:flex;gap:.4rem}#edit .row button{flex:1;text-align:center}#edit .state{color:var(--dim);line-height:1.7;white-space:pre-wrap;word-break:break-word}#edit .ok{color:var(--amber)}#edit .hint{color:var(--dim);line-height:1.65;border-top:1px solid var(--line);padding-top:.6rem}#edit input[type=range]{width:100%}body.editing #bar,body.editing #rail,body.editing #caption,body.editing #scrim{display:none}body.editing #mark{left:290px}
