:root{color-scheme:dark;--ink: #e7ebec;--ink-soft: #9fabb2;--ink-faint: #67747c;--abyss: #05080a;--deep: #0b1013;--slate: #161f25;--steel: #2a373f;--mist: #55676f;--flame: #ffc978;--flame-hot: #fff3da;--ember: 255, 190, 120;--serif: ui-serif, "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;--sans: ui-sans-serif, system-ui, "Segoe UI", Inter, sans-serif;--gutter: clamp(.9rem, 2.4vh, 2rem);--px: 0px;--py: 0px}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--abyss);color:var(--ink);font:400 clamp(15px,.55vw + 13px,18px)/1.65 var(--serif);overflow:hidden;-webkit-font-smoothing:antialiased}::selection{background:rgba(var(--ember),.22)}.shell{position:relative;height:100dvh;overflow:hidden}.scene{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden}.swell{position:absolute;top:-3%;right:-3%;bottom:-3%;left:-3%;animation:swell 15s ease-in-out infinite}@keyframes swell{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(.8%) scale(1.006)}}.frame{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;object-position:58% center;transform:translate3d(calc(var(--px) * .35),calc(var(--py) * .2),0);will-change:transform,opacity;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.frame.base{opacity:1}.frame.on,.frame.talking{opacity:0}.frame.on.show,.frame.talking.show{opacity:1}.frame.on{transition:opacity 1s ease}.frame.talking{transition:opacity 5s ease-in-out}.layer{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}.fog-far,.fog-near{--overscan: calc(var(--parallax-range, 12px) * 2);mix-blend-mode:screen;inset:calc(var(--overscan) * -1);width:calc(100% + var(--overscan) * 2);height:calc(100% + var(--overscan) * 2)}.fog-far{z-index:10;transform:translate3d(calc(var(--px) * .5),calc(var(--py) * .3),0)}.fog-near{z-index:12;transform:translate3d(calc(var(--px) * 1.1),calc(var(--py) * .6),0)}.vignette{z-index:14;background:radial-gradient(120% 90% at 50% 45%,transparent 48%,rgba(3,5,6,.68) 100%)}.grain{z-index:16;opacity:.13;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");animation:grain-drift 6s steps(3) infinite}@keyframes grain-drift{0%,to{transform:translate(0)}33%{transform:translate(-2%,1%)}66%{transform:translate(1%,-2%)}}.lantern{position:absolute;left:57.5%;top:63%;width:13%;height:32%;z-index:20;padding:0;border:0;border-radius:50%;background:none;cursor:pointer;transform:translate3d(calc(var(--px) * .35),calc(var(--py) * .2),0)}.lantern:disabled{cursor:default}.lantern:focus-visible{outline:1px solid rgba(var(--ember),.8);outline-offset:8px}.lantern-hint{position:absolute;left:var(--tx, 50%);top:var(--ty, 0);transform:translate(-50%,-180%);padding:.3rem .55rem;font:400 .62rem/1 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--ink-soft);white-space:nowrap;background:#05080adb;border:1px solid rgba(150,180,195,.13);border-radius:2px;opacity:0;transition:opacity .16s ease;pointer-events:none}.lantern:hover:not(:disabled) .lantern-hint{opacity:1}.lantern:focus-visible .lantern-hint{opacity:1;left:50%;top:0;transform:translate(-50%,-140%)}.chat{position:absolute;left:var(--gutter);bottom:var(--gutter);width:min(38rem,calc(100% - var(--gutter) * 2));max-height:calc(100% - var(--gutter) * 2);display:flex;flex-direction:column;padding:1.1rem 1.15rem 1.15rem;background:#06090be6;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);border:1px solid rgba(var(--ember),.26);border-radius:3px;box-shadow:0 0 0 1px #00000080,0 2rem 4rem #0000008c;animation:rise 1s cubic-bezier(.22,.61,.36,1);z-index:90}@keyframes rise{0%{opacity:0;transform:translateY(1.5rem)}to{opacity:1}}.log{flex:0 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding-right:.6rem;scrollbar-width:thin;scrollbar-color:rgba(var(--ember),.3) transparent}.log::-webkit-scrollbar{width:6px}.log::-webkit-scrollbar-thumb{background:rgba(var(--ember),.3);border-radius:3px}.bubble{margin:0 0 1.05rem;white-space:pre-wrap;color:var(--ink);max-width:62ch;animation:surface .5s ease both}.bubble:last-child{margin-bottom:0}@keyframes surface{0%{opacity:0;transform:translateY(.4rem)}to{opacity:1}}.bubble.from-you{color:var(--ink-soft);font:400 .92em/1.6 var(--sans);margin-left:auto;text-align:right;border-right:1px solid rgba(var(--ember),.28);padding-right:.85rem}.bubble.streaming:after{content:"";display:inline-block;width:.45em;height:1.05em;margin-left:.12em;vertical-align:-.16em;background:rgba(var(--ember),.8);animation:blink 1.1s steps(2) infinite}@keyframes blink{50%{opacity:0}}.to-bottom{position:absolute;right:1.4rem;bottom:4.6rem;z-index:2;width:2rem;height:2rem;padding:0;display:grid;place-items:center;font:400 .9rem/1 var(--sans);color:rgba(var(--ember),.9);background:#06090bf0;border:1px solid rgba(var(--ember),.35);border-radius:50%;animation:fade .25s ease}.to-bottom:hover{color:var(--flame-hot);border-color:rgba(var(--ember),.7)}.composer{display:flex;gap:.6rem;padding-top:1rem;border-top:1px solid rgba(120,150,165,.1);margin-top:.4rem}.composer input{flex:1}.composer .send{min-width:5.5rem}.thinking span:nth-child(2),.thinking span:nth-child(3){opacity:0;animation-duration:1.2s;animation-timing-function:steps(1,end);animation-iteration-count:infinite}.thinking span:nth-child(2){animation-name:dot-two}.thinking span:nth-child(3){animation-name:dot-three}@keyframes dot-two{0%{opacity:0}34%,to{opacity:1}}@keyframes dot-three{0%{opacity:0}67%,to{opacity:1}}@media (prefers-reduced-motion: reduce){.thinking span:nth-child(2),.thinking span:nth-child(3){opacity:1;animation:none}}.wick{height:2px;margin-top:.9rem;background:#96b4c31a;overflow:hidden}.wick span{display:block;height:100%;transform-origin:left;background:linear-gradient(90deg,rgba(var(--ember),.85),rgba(var(--ember),.25));animation-name:burn-down;animation-timing-function:linear;animation-fill-mode:forwards}@keyframes burn-down{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.guttering .frame.on.show{animation:gutter 1.3s ease-in-out infinite}@keyframes gutter{0%,to{opacity:1}30%{opacity:.78}55%{opacity:.95}78%{opacity:.72}}.composer .end{flex:1;padding:.85rem;letter-spacing:.18em;border-color:rgba(var(--ember),.3);color:var(--ink-soft)}.composer .end:hover{border-color:rgba(var(--ember),.6);color:var(--ink)}.curtain{z-index:100;position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;overflow-y:auto;overscroll-behavior:contain;padding:clamp(1.25rem,5vh,3rem) 1.5rem;background:radial-gradient(90% 70% at 50% 40%,#0e161bd1,#040608f0),#05080ae6;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:fade 1s ease}@keyframes fade{0%{opacity:0}to{opacity:1}}.curtain-inner{width:100%;max-width:38rem;margin:auto;flex-shrink:0;display:flex;flex-direction:column;gap:.2rem}.curtain h2{margin:0 0 1.4rem;font:400 .78rem/1.4 var(--sans);letter-spacing:.28em;text-transform:uppercase;color:var(--ink-faint)}.curtain p{margin:0 0 1.15rem;max-width:60ch}.curtain .lead{font-size:1.12em;line-height:1.6}.curtain .fineprint{margin-top:-.5rem;margin-bottom:1.4rem;font:400 .78rem/1.55 var(--sans);color:var(--ink-faint);max-width:46ch}.curtain .refrain{margin-top:-.55rem;color:var(--ink-soft);font-style:italic;letter-spacing:.02em}.curtain.intro .curtain-inner{align-items:center;text-align:center}.curtain.intro p{max-width:52ch}.curtain.intro .curtain-inner>button{align-self:center}.curtain a{color:var(--flame);text-decoration:none;border-bottom:1px solid rgba(var(--ember),.35);padding-bottom:1px;transition:border-color .2s ease,color .2s ease}.curtain a:hover{color:var(--flame-hot);border-bottom-color:rgba(var(--ember),.9)}.curtain .address{align-self:flex-start;margin:.4rem 0 1rem;font:400 1.15rem/1.4 var(--mono, ui-monospace, SFMono-Regular, Menlo, monospace);letter-spacing:.01em;word-break:break-all}.curtain .about{margin-top:1.75rem;font-size:.94rem;color:var(--ink-soft);border-top:1px solid rgba(120,150,165,.12);padding-top:1rem}.curtain .about+.about{margin-top:.5rem}.curtain .about>summary{cursor:pointer;list-style:none;font:400 .74rem/1.4 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--ink-faint);padding:.2rem 0;transition:color .2s ease}.curtain .about>summary::-webkit-details-marker{display:none}.curtain .about>summary:before{content:"+";display:inline-block;width:1.2em;color:var(--mist)}.curtain .about[open]>summary:before{content:"–"}.curtain .about>summary:hover{color:var(--ink)}.curtain .about>summary:focus-visible{outline:1px solid var(--mist);outline-offset:4px}.curtain .about[open]>summary{margin-bottom:1rem}.curtain .about p{font-size:.94rem}button:not(.lantern){font:400 .82rem/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);cursor:pointer;padding:.7rem 1.3rem;background:#ffffff08;border:1px solid rgba(150,180,195,.18);border-radius:2px;transition:color .2s ease,border-color .2s ease,background .2s ease}button:not(.lantern):hover:not(:disabled){color:var(--ink);border-color:rgba(var(--ember),.45);background:rgba(var(--ember),.06)}button:not(.lantern):disabled{opacity:.35;cursor:default}button.quiet{background:none;border-color:transparent}.curtain-inner>button{align-self:flex-start;margin-top:1.25rem}input,textarea{font:400 1rem/1.5 var(--sans);color:var(--ink);padding:.7rem .85rem;background:#ffffff09;border:1px solid rgba(150,180,195,.16);border-radius:2px;width:100%;resize:vertical;transition:border-color .2s ease,background .2s ease}input::placeholder,textarea::placeholder{color:var(--ink-faint)}input:focus,textarea:focus{outline:none;border-color:rgba(var(--ember),.5);background:#ffffff0e}.email-form,.contact form{display:flex;flex-direction:column;gap:.7rem}.email-form{flex-direction:row;margin-bottom:.5rem}.email-form input{flex:1}.offering{display:block;margin-bottom:.4rem}.offering>span{display:block;margin-bottom:.45rem;font:400 .78rem/1.5 var(--sans);color:var(--ink-faint)}.offering textarea{font-size:.92rem}.contact .row{display:flex;gap:.6rem}.contact-link{position:absolute;right:1.1rem;bottom:.9rem;z-index:110;background:none;border:0;padding:.35rem .55rem;color:var(--ink-faint);font-size:.68rem;letter-spacing:.2em;opacity:.45;transition:opacity .25s ease,color .25s ease}.contact-link:hover{opacity:1;color:var(--ink-soft)}.hint,.warn,.ending{color:var(--ink-faint);font:italic 400 .9rem/1.5 var(--serif)}.hint{position:absolute;left:0;right:0;bottom:34%;text-align:center;margin:0;z-index:85;animation:breathe 4s ease-in-out infinite}.chat .hint{position:relative;bottom:auto;animation:none;margin-bottom:1rem}.hint.notice{bottom:26%;color:var(--ink-soft);animation:fade .6s ease}.hint.counter{position:relative;bottom:auto;text-align:right;margin:0 0 -.4rem;font-size:.78rem;animation:none}.warn{color:#d99a7a;font-style:normal;font-family:var(--sans);font-size:.85rem}.ending{position:absolute;left:0;right:0;bottom:26%;z-index:95;max-width:32rem;margin-inline:auto;padding:0 1.5rem;text-align:center;font-size:1.05rem;line-height:1.55;color:var(--ink-soft);animation:fade 2s ease}@media (max-width: 640px){.lantern{right:50%;margin-right:-6.5vmin;bottom:22%;width:20vmin;height:29vmin}.chat{width:100vw;margin-left:-50vw;max-height:72%;padding:2rem 1rem 1rem}.bubble.from-you{max-width:85%}.hint{bottom:42%}}@media (prefers-reduced-motion: reduce){.swell,.grain,.hint,.lantern-hint{animation:none}.frame.on,.frame.talking{transition-duration:.15s}.bubble{animation:none}.guttering .frame.on.show{animation:none;opacity:.75}}
