@font-face{font-family:ChewDotMatrix;font-style:normal;font-weight:400;font-display:swap;src:url(../assets/fonts/chewkeanho-dotmatrix-regular.woff2) format("woff2")}@font-face{font-family:ChewDotMatrix;font-style:normal;font-weight:700;font-display:swap;src:url(../assets/fonts/chewkeanho-dotmatrix-bold.woff2) format("woff2")}@font-face{font-family:Cormorant Garamond;font-style:normal;font-weight:300;font-display:swap;src:url(../assets/fonts/cormorant-garamond-300.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Cormorant Garamond;font-style:italic;font-weight:300;font-display:swap;src:url(../assets/fonts/cormorant-garamond-italic-300.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg: #050507;--fg: #e8e6df;--dim: #6b6962;--paper: #d8d2c2;--paper-ink: #2a2620;--asset-scale: .088;--receipt-font: "ChewDotMatrix", "VT323", "Courier New", ui-monospace, monospace}*{box-sizing:border-box}html,body{margin:0;padding:0;background:#000;color:var(--fg);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;height:100%;overflow:hidden}.scroller{position:fixed;inset:0;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch}.starfield{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}canvas.starlayer{position:absolute;top:0;left:0;width:var(--layer-w);height:100%;pointer-events:none;will-change:transform,translate,opacity;opacity:0;animation:starSway var(--sway-dur, 30s) ease-in-out var(--sway-delay, 0s) infinite,starFadeIn .9s ease-out forwards}@keyframes starFadeIn{to{opacity:1}}@keyframes starSway{0%,to{translate:0 0}33%{translate:var(--sway-x1, 4px) var(--sway-y1, -2px)}66%{translate:var(--sway-x2, -3px) var(--sway-y2, 3px)}}.shape.void.pulsing{animation:voidGentleDrift 21s ease-in-out infinite,voidPulse 4.8s ease-out 1}@keyframes voidPulse{0%{scale:1}50%{scale:1.055}to{scale:1}}.scroller::-webkit-scrollbar{display:none}.scroller{scrollbar-width:none}.stage{position:relative;width:300vw;height:100%;overflow-x:clip;overflow-y:visible;background:#000 url(../assets/starfield-bg.webp) center / 100% 100% no-repeat}.anchor{position:absolute;top:50%;width:1px;height:1px;pointer-events:none}.anchor.salon{left:17%}.anchor.void{left:50%;top:50%}.anchor.pets{left:83%}.shape{position:absolute;top:50%;pointer-events:none;user-select:none;height:auto;image-rendering:-webkit-optimize-contrast}.shape.salon,.shape.pets{transform:translate(-50%,-50%)}.shape.void{translate:-51.75% -51.75%;transform-origin:51.75% 51.75%;animation:voidGentleDrift 21s ease-in-out infinite}@keyframes voidGentleDrift{0%,to{transform:translate(0)}33%{transform:translate(.5vmin,-.4vmin)}66%{transform:translate(-.4vmin,.4vmin)}}.shape.salon{left:17%;width:calc(929 * var(--asset-scale) * 1vmin)}.shape.void{left:50%;top:50%;width:150vmin}.shape.pets{left:83%;width:calc(1047 * var(--asset-scale) * 1vmin)}.shape.salon{animation:gentleDrift 17s ease-in-out infinite}.shape.pets{animation:gentleDrift 23s ease-in-out infinite reverse}@keyframes gentleDrift{0%,to{transform:translate(-50%,-50%) translate(0)}33%{transform:translate(-50%,-50%) translate(.4vmin,-.3vmin)}66%{transform:translate(-50%,-50%) translate(-.3vmin,.3vmin)}}.ui{position:fixed;inset:0;pointer-events:none}.ui>*{pointer-events:auto}.tagline{position:absolute;top:8%;left:50%;transform:translate(-50%);font-family:Cormorant Garamond,Iowan Old Style,Georgia,serif;font-style:italic;font-weight:300;font-size:1.9rem;letter-spacing:.08em;color:#cfcdc4;text-align:center;text-shadow:0 0 2px rgba(0,0,0,1),0 0 4px rgba(0,0,0,1),0 0 8px rgba(0,0,0,1),0 0 14px rgba(0,0,0,.9),0 0 24px rgba(0,0,0,.7)}.input-row{position:absolute;bottom:6%;left:0;right:0;margin-left:auto;margin-right:auto;width:min(80vw,28rem);display:flex;flex-direction:column;align-items:center;gap:.6rem;text-shadow:0 0 8px rgba(0,0,0,.7)}.input-mode{position:relative;width:100%}.input-row.text-mode #modeMic,.input-row.mic-mode #modeText{display:none!important}.input-row input{width:100%;background:linear-gradient(to bottom,#14141c1a,#08080c2e);backdrop-filter:blur(8px) saturate(150%);-webkit-backdrop-filter:blur(8px) saturate(150%);border:1px solid rgba(180,180,200,.14);border-bottom:1px solid rgba(180,180,200,.32);border-radius:6px;color:var(--fg);font-size:1.1rem;padding:.7rem 2.7rem;text-align:center;outline:none;font-family:inherit;box-shadow:inset 0 1px #ffffff14,0 4px 18px #00000059;transition:border-color .2s ease,box-shadow .2s ease}.input-row input:focus{border-color:#c8c8dc38;border-bottom-color:#e8e6dfb3;box-shadow:inset 0 1px #ffffff1a,0 6px 24px #00000073,0 0 0 1px #b4b4dc14}.input-row input::placeholder{color:var(--dim);font-style:italic}.input-row .hint{font-size:.7rem;color:#a09d94;letter-spacing:.14em;text-transform:uppercase;text-shadow:0 0 2px rgba(0,0,0,1),0 0 4px rgba(0,0,0,1),0 0 8px rgba(0,0,0,1),0 0 14px rgba(0,0,0,.9),0 0 24px rgba(0,0,0,.7)}.mode-toggle{position:absolute;right:.45rem;top:50%;transform:translateY(-50%);width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;padding:0;background:#14141c80;color:var(--fg);border:1px solid rgba(180,180,200,.18);border-radius:50%;cursor:pointer;transition:background .18s ease,border-color .18s ease,color .18s ease}.mode-toggle:hover{background:#282838b3;border-color:#c8c8dc52}.mode-toggle svg{width:1.05rem;height:1.05rem;fill:currentColor;display:block}#modeMic,#modeMic *{touch-action:none;user-select:none;-webkit-user-select:none;-moz-user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}#modeMic .mic-dot,#modeMic .mic-status{pointer-events:none}#modeMic .mode-toggle{pointer-events:auto}#modeMic{cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.7rem;padding:.7rem 3rem .7rem 1rem;background:linear-gradient(to bottom,#14141c1a,#08080c2e);backdrop-filter:blur(8px) saturate(150%);-webkit-backdrop-filter:blur(8px) saturate(150%);border:1px solid rgba(180,180,200,.14);border-bottom:1px solid rgba(180,180,200,.32);border-radius:6px;height:2.85rem;box-shadow:inset 0 1px #ffffff14,0 4px 18px #00000059}.mic-status{color:var(--dim);font-size:.78rem;letter-spacing:.16em;text-transform:uppercase}#modeMic.recording .mic-status{color:var(--fg)}.mic-dot{width:.65rem;height:.65rem;border-radius:50%;background:#e8e6df52;box-shadow:0 0 #e8e6df00;transition:background .14s ease,transform .14s ease,box-shadow .14s ease}#modeMic.recording .mic-dot{background:#ff3b3b;transform:scale(1.25);animation:micPulse 1s ease-in-out infinite}@keyframes micPulse{0%,to{box-shadow:0 0 #ff3b3bb3,0 0 8px #ff3b3b99}50%{box-shadow:0 0 0 8px #ff3b3b00,0 0 14px #ff3b3b73}}.mic-trail{position:fixed;inset:0;pointer-events:none}.glyph-fall{position:fixed;pointer-events:none;color:var(--fg);font-size:1.1rem;will-change:transform,opacity;text-shadow:0 0 8px rgba(0,0,0,.6)}.receipts{position:absolute;bottom:1.5%;right:12%;width:min(23rem,40vw);height:60vh;cursor:pointer;pointer-events:none}.receipt{pointer-events:auto}.receipt{position:absolute;bottom:0;right:0;width:100%;--paper-light: #f3eedd;--paper-stripe: #e8efe0;--line-h: 1.4rem;--sprocket-w: 1.5rem;color:var(--paper-ink);font-family:var(--receipt-font);font-size:1rem;line-height:var(--line-h);letter-spacing:.01em;padding:var(--line-h) calc(var(--sprocket-w) + .4rem) var(--line-h);background:repeating-linear-gradient(to bottom,var(--paper-light) 0,var(--paper-light) var(--line-h),var(--paper-stripe) var(--line-h),var(--paper-stripe) calc(var(--line-h) * 2));box-shadow:0 .5rem 1.5rem #0000008c,0 .2rem .5rem #0006;transform-origin:bottom right;will-change:transform,opacity;-webkit-mask-image:linear-gradient(to bottom,#000 92%,transparent 100%);mask-image:linear-gradient(to bottom,#000 92%,transparent 100%);transition:transform .6s cubic-bezier(.4,.6,.3,1),opacity .6s,-webkit-mask-image .4s ease-out,mask-image .4s ease-out;transform:rotate(var(--tilt, 0deg))}.receipt.print-done{-webkit-mask-image:none;mask-image:none}.receipt-download{position:absolute;z-index:5;bottom:.5rem;right:calc(var(--sprocket-w) + .5rem);width:1.6rem;height:1.6rem;display:flex;align-items:center;justify-content:center;background:#282620c7;color:#f3eedd;border:1px solid rgba(0,0,0,.25);border-radius:50%;cursor:pointer;pointer-events:none;font-family:ui-sans-serif,system-ui,-apple-system,sans-serif;opacity:0;transition:opacity .18s ease,background .18s ease;padding:0}.receipt.print-done .receipt-download{pointer-events:auto}.receipt-download svg{width:.9rem;height:.9rem;fill:currentColor;display:block}.receipt.print-done:hover .receipt-download{opacity:1}.receipt-download:hover{background:#14120ef2}.receipt:before,.receipt:after{content:"";position:absolute;top:0;bottom:0;width:var(--sprocket-w);pointer-events:none;z-index:2;background-image:radial-gradient(circle at 50% 50%,#0a0907 .2rem,rgba(0,0,0,.22) .24rem,transparent .28rem);background-size:100% 1.4rem;background-repeat:repeat-y;background-position:0 .6rem}.receipt:before{left:0;border-right:1px dashed rgba(0,0,0,.32)}.receipt:after{right:0;border-left:1px dashed rgba(0,0,0,.32)}.receipt h4{margin:0;text-align:center;letter-spacing:.15em;font-weight:400;font-size:1.15rem;line-height:var(--line-h)}.receipt .row{display:flex;justify-content:space-between;line-height:var(--line-h)}.receipt .small{font-size:.85rem;color:#5a544a;line-height:var(--line-h)}.receipt .verdict{text-align:center;margin:0;padding:0;letter-spacing:.08em;font-size:1rem;line-height:var(--line-h);font-weight:700}.receipt .rule{text-align:center;letter-spacing:.18em;color:#888;margin:0;line-height:var(--line-h);font-size:.9rem;user-select:none;white-space:nowrap;overflow:hidden}.receipt .ch{visibility:hidden;display:inline-block;vertical-align:baseline;text-rendering:geometricPrecision}.receipt .ch.printed{visibility:visible}.receipt h4,.receipt .row,.receipt .rule,.receipt .verdict,.receipt .small{max-height:0;overflow:hidden;transition:max-height .13s ease-out}.receipt h4.line-fed,.receipt .row.line-fed,.receipt .rule.line-fed,.receipt .verdict.line-fed,.receipt .small.line-fed{max-height:var(--line-h)}.receipt.stack-1{transform:translate(-.4rem,-.6rem) rotate(var(--tilt, 0deg)) scale(.96);filter:brightness(.78) saturate(.92)}.receipt.stack-2{transform:translate(-.8rem,-1.1rem) rotate(var(--tilt, 0deg)) scale(.92);filter:brightness(.62) saturate(.85)}.receipt.stack-3{transform:translate(-1.2rem,-1.5rem) rotate(var(--tilt, 0deg)) scale(.88);filter:brightness(.48) saturate(.78)}.receipt.crumpling{transform:translate(-2rem,-2rem) rotate(var(--tilt, 0deg)) scale(.7);filter:brightness(.35) saturate(.7) contrast(1.1);-webkit-mask-image:radial-gradient(ellipse at 30% 40%,#000 50%,transparent 80%),radial-gradient(ellipse at 70% 60%,#000 40%,transparent 75%);mask-image:radial-gradient(ellipse at 30% 40%,#000 50%,transparent 80%),radial-gradient(ellipse at 70% 60%,#000 40%,transparent 75%)}.receipt.collapsing{transition:transform 1.2s cubic-bezier(.5,0,.7,.4),opacity 1.2s;opacity:0}.corner{position:absolute;z-index:7;color:#a09d94;font-size:.78rem;letter-spacing:.12em;text-transform:lowercase;background:#050507ad;backdrop-filter:blur(4px);border:1px solid rgba(140,138,128,.38);border-radius:3px;padding:.4rem .7rem;cursor:pointer;font-family:inherit;text-shadow:0 0 4px rgba(0,0,0,.85),0 0 10px rgba(0,0,0,.6);box-shadow:0 1px 8px #00000073}.corner:hover{color:var(--fg);border-color:#dcdad2b3;background:#0f0f12d9}.corner.tl{top:1.2rem;left:1.2rem}.corner.tr{top:1.2rem;right:9.2rem}.corner.fs{top:1.2rem;right:1.2rem}.modal{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;background:transparent;pointer-events:auto}.modal[hidden]{display:none}.modal-card{position:relative;background:#0c0c0eeb;border:1px solid rgba(120,118,108,.4);border-radius:4px;padding:2.4rem 3rem 2rem;max-width:28rem;text-align:center;color:var(--fg);font-family:Cormorant Garamond,Iowan Old Style,Georgia,serif}.modal-card .lead{font-style:italic;font-weight:300;font-size:1.4rem;letter-spacing:.06em;margin:0 0 1.6rem;color:#d8d6cc}.modal-card .credits{margin:0;color:var(--dim);font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;font-family:inherit}.modal-card .credits{display:flex;flex-direction:column;align-items:center;gap:.25rem}.modal-card .credits span,.modal-card .credits a{display:inline-block;margin:0}.modal-card .credits a{color:inherit;text-decoration:none;border-bottom:1px solid rgba(232,230,223,.25)}.modal-card .credits a:hover{border-bottom-color:#e8e6dfb3}.modal-close{position:absolute;top:.4rem;right:.6rem;background:transparent;border:none;color:var(--dim);font-size:1.4rem;line-height:1;cursor:pointer;font-family:inherit}.modal-close:hover{color:var(--fg)}.hum-meter{position:absolute;top:1.2rem;left:5.8rem;z-index:7;display:flex;flex-direction:column;align-items:flex-start;gap:.3rem;color:var(--dim);font-size:.7rem;letter-spacing:.1em;background:#05050799;backdrop-filter:blur(4px);padding:.5rem .7rem;border-radius:3px;border:1px solid rgba(60,58,52,.5)}.hum-meter .label{display:flex;gap:.5rem;align-items:center;text-transform:lowercase}.hum-meter .bar{width:6rem;height:3px;background:#1a1a1f;border-radius:2px;overflow:hidden}.hum-meter .bar>span{display:block;height:100%;width:0%;background:linear-gradient(90deg,#2a2a3e,#6c5fb0);transition:width 80ms linear}.entity-label{position:absolute;bottom:1.3rem;color:#a09d94;font-size:.78rem;letter-spacing:.18em;text-transform:lowercase;text-shadow:0 0 2px rgba(0,0,0,1),0 0 4px rgba(0,0,0,1),0 0 8px rgba(0,0,0,1),0 0 14px rgba(0,0,0,.9),0 0 24px rgba(0,0,0,.7);pointer-events:auto;cursor:pointer;white-space:nowrap;transition:left .35s cubic-bezier(.4,.6,.3,1),opacity .25s,color .2s}.entity-label:hover{color:var(--fg)}.entity-label[hidden]{display:none}.entity-label .arrow{display:none;margin:0 .4em;color:var(--dim)}.entity-label.stuck-left .arrow.l,.entity-label.stuck-right .arrow.r{display:inline}@media (max-width: 600px){.receipts{bottom:auto;top:3.5rem;right:.6rem;height:calc(100vh - 9rem)}.receipt{font-size:.78rem;--line-h: 1.05rem;--sprocket-w: .9rem;letter-spacing:0}.receipt h4{font-size:.92rem;letter-spacing:.1em}.receipt .verdict{font-size:.78rem;letter-spacing:.05em}.receipt .rule{font-size:.7rem}.receipt .small{font-size:.66rem}.receipt-download{width:1.4rem;height:1.4rem}.receipt-download svg{width:.8rem;height:.8rem}}
