:root{--amp:0;--mic:0;--lx:0;--ly:0}.app{--mark:28px;--luna-art:clamp(88px, 20dvh - 24px, 168px);--luna-call:min(300px, 72vw, 40dvh);--mod-w:clamp(164px, 42vw, 184px);--mod-art:328 / 200;--ctl:64px;--ring:2px;--dot:6px;--kbd-pad:var(--hairline) var(--dot);--fade:var(--space-6);--tap-pad:calc((var(--tap) - var(--lh-sm)) / 2);--dur-live:80ms;--pulse:1.2s}body:not([data-state=idle]) .home-only,body[data-state=idle] .call-only{display:none!important}html,body{height:100%;overflow:hidden}.app{max-width:var(--frame-max);flex-direction:column;margin:0 auto;display:flex;position:fixed;inset:0}.top{align-items:center;gap:var(--space-3);min-height:var(--tap);padding:calc(var(--safe-top) + var(--space-2)) var(--gutter) 0;display:flex}.top .ac-btn{margin-left:auto}.brand{align-items:center;gap:var(--space-2);font-size:var(--fs-xl);line-height:var(--lh-xl);font-weight:var(--fw-semibold);letter-spacing:var(--tracking-tight);margin:0;display:flex}.brand img{width:var(--mark);height:var(--mark);display:block}.call{grid-template-columns:var(--tap) 1fr var(--tap);display:grid}.call-title{align-items:center;gap:var(--space-half);flex-direction:column;display:flex}.call-state{align-items:center;gap:var(--dot);font-size:var(--fs-sm);line-height:var(--lh-sm);font-weight:var(--fw-medium);color:var(--gold);display:inline-flex}.call-state:before{content:"";width:var(--dot);height:var(--dot);background:currentColor;border-radius:50%}body[data-muted=true] .call-state{color:var(--ink-3)}.main{overscroll-behavior:contain;gap:var(--space-5);min-height:0;padding:var(--space-3) var(--gutter) var(--space-6);flex-direction:column;flex:1;display:flex;overflow-y:auto}.main>*{flex-shrink:0}body:not([data-state=idle]) .main{justify-content:center}.first{justify-content:space-between;gap:var(--space-5);flex-direction:column;min-height:100%;display:flex}.first>*{flex-shrink:0}body:not([data-state=idle]) .first{display:contents}.hello{gap:var(--space-1);flex-direction:column;display:flex}.luna{grid-template-columns:var(--luna-art) minmax(0, 1fr);align-items:center;gap:var(--space-4);padding:var(--space-4);border-radius:var(--r-card);background:radial-gradient(120% 100% at 0% 0%, var(--sky), var(--night-900-clear) 64%), var(--night-800);box-shadow:inset 0 0 0 var(--hairline) var(--line), inset 0 var(--hairline) 0 var(--sheen);grid-template-areas:"art copy""ask ask";display:grid}body:not([data-state=idle]) .luna{justify-items:center;gap:var(--space-7);box-shadow:none;background:0 0;grid-template-columns:minmax(0,1fr);grid-template-areas:"art""copy";padding:0}.window{width:var(--luna-art);aspect-ratio:1;background:radial-gradient(circle at 50% 40%, var(--sky) 0%, var(--night-800) 72%);box-shadow:inset 0 0 0 var(--hairline) var(--night-600);transition:width var(--dur-state) var(--ease-out);border-radius:50%;grid-area:art;place-items:center;display:grid;position:relative}body:not([data-state=idle]) .window{width:var(--luna-call)}.ring{box-shadow:inset 0 0 0 var(--ring) var(--gold);opacity:0;pointer-events:none;border-radius:50%;position:absolute;inset:4%;transform:scale(.9)}body[data-state=listening] .ring,body[data-state=thinking] .ring{opacity:calc(.3 + var(--mic) * .7);transform:scale(calc(.94 + var(--mic) * .08));transition:transform var(--dur-live) linear, opacity var(--dur-live) linear}body[data-state=connecting] .ring{opacity:.35;animation:ringpulse var(--pulse) ease-in-out infinite}#luna{width:68%;height:84%;display:block;overflow:visible}.luna-copy{gap:var(--space-1);flex-direction:column;grid-area:copy;display:flex}.luna-title{font-size:var(--fs-xl);line-height:var(--lh-xl);font-weight:var(--fw-semibold);margin:0}.luna-sub{font-size:var(--fs-base);line-height:var(--lh-base);color:var(--ink-2);text-wrap:pretty;margin:0}.luna-sub:empty{display:none}body:not([data-state=idle]) .luna-copy{align-items:center;gap:var(--space-2);padding:0 var(--space-5);text-align:center}body:not([data-state=idle]) .luna-title{font-family:var(--font-display);font-weight:var(--fw-medium);font-size:var(--fs-title);line-height:var(--lh-title)}body:not([data-state=idle]) .luna-sub{text-wrap:balance;max-width:32ch}body[data-err="1"] .luna-sub{color:var(--ink)}.starters{gap:var(--space-2);margin:0 calc(-1 * var(--space-4));padding:0 0 0 var(--space-4);scrollbar-width:none;scroll-snap-type:x proximity;scroll-padding-inline:var(--space-4);-webkit-mask-image:linear-gradient(to right, var(--night-900-clear), var(--night-900) var(--space-4), var(--night-900) calc(100% - var(--space-8)), var(--night-900-clear));mask-image:linear-gradient(to right, var(--night-900-clear), var(--night-900) var(--space-4), var(--night-900) calc(100% - var(--space-8)), var(--night-900-clear));grid-area:ask;display:flex;overflow-x:auto}.starters::-webkit-scrollbar{display:none}.starters .k-chip{scroll-snap-align:start}.starters:after{content:"";width:var(--space-6);flex:none}.chart{gap:var(--space-3);flex-direction:column;display:flex}.chart-h{justify-content:space-between;align-items:baseline;gap:var(--space-3);display:flex}.chart-saved{font-size:var(--fs-sm);line-height:var(--lh-sm);color:var(--ink-3);margin:0}.chart-saved a,.chart-link{margin:calc(-1 * var(--tap-pad)) 0;padding:var(--tap-pad) 0 var(--tap-pad) var(--space-1);color:var(--gold);font-weight:var(--fw-semibold);text-decoration:none;display:inline-block}.chart-link{appearance:none;font:inherit;font-weight:var(--fw-semibold);cursor:pointer;background:0 0;border:0}.rail{gap:var(--space-3);margin-right:calc(-1 * var(--gutter));scrollbar-width:none;scroll-snap-type:x proximity;display:flex;overflow-x:auto}.rail::-webkit-scrollbar{display:none}.rail:after{content:"";width:calc(var(--gutter) - var(--space-3));flex:none}.mod{width:var(--mod-w);border-radius:var(--r-card);background:var(--night-800);color:var(--ink);scroll-snap-align:start;transition:transform var(--dur-press) var(--ease-out);flex-direction:column;flex:none;text-decoration:none;display:flex;position:relative;overflow:hidden}.mod:after{content:"";border-radius:inherit;box-shadow:inset 0 0 0 var(--hairline) var(--line), inset 0 var(--hairline) 0 var(--sheen);pointer-events:none;position:absolute;inset:0}a.mod:active{transform:scale(var(--press-scale))}.mod img{width:100%;height:auto;aspect-ratio:var(--mod-art);object-fit:cover;background:var(--night-700);display:block}.mod-text{gap:var(--space-half);padding:var(--space-3) var(--space-3) var(--space-4);flex-direction:column;display:flex}.mod-name{font-size:var(--fs-base);line-height:var(--lh-base);font-weight:var(--fw-semibold)}.mod--start .k-caption{color:var(--gold)}.about{gap:var(--space-2);margin-top:var(--space-3);padding-top:var(--space-5);border-top:var(--hairline) solid var(--line);flex-direction:column;display:flex}.about-name{align-items:center;gap:var(--space-2);font-size:var(--fs-base);line-height:var(--lh-base);font-weight:var(--fw-semibold);margin:0;display:flex}.about-name img{width:var(--icon);height:var(--icon);display:block}.about-links{column-gap:var(--space-5);flex-wrap:wrap;display:flex}.about-links a{padding:calc((var(--tap) - var(--lh-xl)) / 2) 0;color:var(--gold);font-size:var(--fs-sm);line-height:var(--lh-xl);font-weight:var(--fw-semibold);text-decoration:none;display:inline-block}@media (width<=359px){.hello .k-display{font-size:var(--fs-display-sm);line-height:var(--lh-display-sm)}}@media (height<=760px){.main,.first{gap:var(--space-4)}.main{padding-top:var(--space-2)}.luna{column-gap:var(--space-3);row-gap:var(--space-3);padding:var(--space-3)}.starters{margin:0 calc(-1 * var(--space-3));padding-left:var(--space-3);scroll-padding-inline:var(--space-3)}}.dock{gap:var(--space-3);padding:var(--space-3) var(--gutter) max(var(--space-4), calc(var(--safe-bottom) + var(--space-2)));background:var(--night-900);flex-direction:column;flex:none;display:flex;position:relative}body[data-state=idle] .dock:before{content:"";height:var(--fade);background:linear-gradient(to top, var(--night-900), var(--night-900-clear));pointer-events:none;position:absolute;bottom:100%;left:0;right:0}.dock-home{gap:var(--space-2);flex-direction:column;display:flex}.talk{width:100%;min-height:var(--cta-h-lg);font-size:var(--fs-xl)}.dock-call{justify-content:center;gap:var(--space-14);display:flex}.ctl{align-items:center;gap:var(--space-2);flex-direction:column;display:flex}.ctl-btn{width:var(--ctl);height:var(--ctl)}.ctl-btn .k-ic{width:var(--icon-lg);height:var(--icon-lg)}#mute .ic-off,#mute[aria-pressed=true] .ic-on{display:none}#mute[aria-pressed=true] .ic-off{display:block}#mute[aria-pressed=true]{background:var(--ink);color:var(--night-900)}.keys{text-align:center;font-size:var(--fs-sm);color:var(--ink-3);margin:0}kbd{font-family:inherit;font-weight:var(--fw-semibold);padding:var(--kbd-pad);border-radius:var(--r-mark);box-shadow:inset 0 0 0 var(--hairline) var(--night-600);color:var(--ink-2);font-size:.92em}@media (hover:none) and (pointer:coarse){.keys{display:none}}.readout{font-size:var(--fs-2xs);font-weight:var(--fw-semibold);letter-spacing:var(--tracking-caps);color:var(--ink-3);font-variant-numeric:tabular-nums;flex-wrap:wrap;justify-content:center;display:flex}.readout[hidden]{display:none}.readout div{padding:0 var(--space-3);border-left:var(--hairline) solid var(--night-600)}.readout div:first-child{border-left:0}.readout b{color:var(--ink-2);text-transform:uppercase}#luna{--gaze-x:3px;--gaze-y:2.5px;--tilt:3deg;--lift:-6px;--wand-lift:-8deg;--bob:-7px;--think-x:3px;--think-y:-4px;--dot-hop:-3px;--float:3.2s;--blink:4.5s;--twinkle:2.4s;--twinkle-lag:.8s;--dots:1s;--dot-lag:.15s}#luna .lu-body{animation:lubob var(--float) ease-in-out infinite}#luna .lu-shadow{transform-box:fill-box;transform-origin:50%;animation:lushadow var(--float) ease-in-out infinite}#luna .lu-eyes{transform-box:fill-box;transform-origin:50%;animation:lublink var(--blink) infinite}#luna .lu-look{transform:translate(calc(var(--lx) * var(--gaze-x)), calc(var(--ly) * var(--gaze-y)))}#luna .lu-head{transform-box:fill-box;transform-origin:50% 90%;transform:rotate(calc(var(--lx) * var(--tilt)))}#luna .lu-tw{transform-box:fill-box;transform-origin:50%;animation:lutwinkle var(--twinkle) ease-in-out infinite}#luna .lu-tw:nth-of-type(2n){animation-delay:var(--twinkle-lag)}#luna .lu-wand{transform-box:fill-box;transform-origin:20% 100%}#luna .mf{display:none}#luna[data-frame="0"] .mf[data-f="0"],#luna[data-frame="1"] .mf[data-f="1"],#luna[data-frame="2"] .mf[data-f="2"]{display:block}body[data-state=speaking] #luna .lu-body{transform:translateY(calc(var(--amp) * var(--lift)));animation:none}body[data-state=speaking] #luna .lu-wand{transform:rotate(calc(var(--amp) * var(--wand-lift)))}#luna .lu-think{opacity:0;transition:opacity var(--dur-rise) ease}body[data-state=thinking] #luna .lu-think{opacity:1}body[data-state=thinking] #luna .lu-look{transform:translate(var(--think-x), var(--think-y));transition:transform var(--dur-state) ease}body[data-state=thinking] #luna .lu-dots circle{animation:ludot var(--dots) ease-in-out infinite}#luna .lu-dots circle:nth-child(2){animation-delay:var(--dot-lag)}#luna .lu-dots circle:nth-child(3){animation-delay:calc(2 * var(--dot-lag))}body[data-state=listening] #luna .lu-blush{opacity:1}#luna .lu-blush{opacity:.75;transition:opacity var(--dur-state) ease}@keyframes lubob{0%,to{transform:translateY(0)}50%{transform:translateY(var(--bob))}}@keyframes lushadow{0%,to{opacity:.18;transform:scaleX(1)}50%{opacity:.12;transform:scaleX(.9)}}@keyframes lublink{0%,92%,to{transform:scaleY(1)}95%{transform:scaleY(.1)}}@keyframes lutwinkle{0%,to{opacity:1;transform:scale(1)}50%{opacity:.55;transform:scale(.55)}}@keyframes ludot{0%,to{transform:translateY(0)}50%{transform:translateY(var(--dot-hop))}}@keyframes ringpulse{0%,to{transform:scale(.9)}50%{transform:scale(.95)}}@media (prefers-reduced-motion:reduce){#luna .lu-body,#luna .lu-shadow,#luna .lu-eyes,#luna .lu-tw,#luna .lu-dots circle{animation:none}.ring,.window,.mod{transition:none;animation:none}a.mod:active{transform:none}}
