html,body{height:100%}.app{background:radial-gradient(50rem 26rem at 50% -10%, #e1242c14, transparent 70%), var(--paper);grid-template-rows:auto minmax(0,1fr) auto;height:100dvh;display:grid}.app__top{padding:.7rem var(--gutter);border-bottom:1px solid var(--hair);background:color-mix(in srgb, var(--paper) 88%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);justify-content:space-between;align-items:center;gap:1rem;display:flex}.app__brand{font-family:var(--font-display);letter-spacing:-.03em;align-items:center;gap:.5rem;font-size:1.15rem;font-weight:700;display:inline-flex}.app__mark{width:1.9rem;height:1.9rem}.app__tools{align-items:center;gap:.6rem;font-size:.85rem;font-weight:700;display:flex}.app__model{align-items:center;gap:.45rem;display:inline-flex}.app__model-label{color:var(--ink-soft)}.app__model select,.app__ghost{border:1px solid var(--hair);background:var(--surface);height:2.2rem;color:var(--ink);font:inherit;cursor:pointer;border-radius:.45rem;padding:0 .75rem}.app__talk{background:var(--ink);color:var(--paper);border-radius:.45rem;padding:0 .85rem;line-height:2.2rem}@media (width<=520px){.app__talk{display:none}.app__tools{gap:.35rem}.app__model select{max-width:7.5rem;padding:0 .5rem}.app__model-label{display:none}.app__ghost{white-space:nowrap;padding:0 .55rem}.app__state{display:none!important}}.app__log{overscroll-behavior:contain;padding:1.5rem var(--gutter) 1rem;overflow-y:auto}.hello{text-align:center;justify-items:center;max-width:40rem;margin:clamp(1rem,8vh,5rem) auto 0;display:grid}.hello__mark{filter:drop-shadow(0 18px 22px #8c101840);width:6.5rem;height:6.5rem}.hello__mark--logo{filter:none}.hello__title{font-family:var(--font-display);letter-spacing:-.035em;margin-top:1.25rem;font-size:clamp(2rem,5vw,2.8rem);font-weight:600;line-height:1.05}.hello__lead{max-width:30rem;color:var(--ink-soft);margin-top:.8rem}.hello__chips{grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem;width:100%;margin-top:2rem;display:grid}.hello__chips button{border:1px solid var(--hair);background:var(--surface);color:var(--ink);font:inherit;text-align:left;cursor:pointer;border-radius:.7rem;padding:.85rem 1rem;font-size:.9rem;line-height:1.4;transition:border-color .2s,transform .2s}.hello__chips button:hover:not(:disabled){border-color:var(--ink);transform:translateY(-1px)}.hello__chips button:disabled{opacity:.5;cursor:default}@media (width<=560px){.hello__chips{grid-template-columns:1fr}}.msgs{gap:1.25rem;max-width:46rem;margin:0 auto;padding:0;list-style:none;display:grid}.msg{align-items:flex-start;gap:.75rem;display:flex}.msg--user{justify-content:flex-end}.msg__avatar{flex:none;width:2rem;height:2rem;margin-top:.15rem}.msg__avatar--letter{background:var(--ink);color:var(--paper);font:700 .85rem var(--font-display);border-radius:50%;place-items:center;display:grid}.connect{border:1px solid var(--hair);background:var(--surface);width:min(28rem,100vw - 2rem);color:var(--ink);border-radius:1rem;padding:0}.connect::backdrop{background:#14141373}.connect form{gap:.85rem;padding:1.4rem;display:grid}.connect h2{font:700 1.25rem var(--font-display);margin:0}.connect__lead{color:var(--ink-soft);margin:0;font-size:.88rem}.connect__lead a{color:var(--ruby-deep)}.connect label{gap:.3rem;font-size:.82rem;font-weight:700;display:grid}.connect input{border:1px solid var(--hair);background:var(--paper);color:var(--ink);font:400 .95rem var(--font-body);border-radius:.5rem;padding:.6rem .7rem}.connect__actions{justify-content:flex-end;gap:.5rem;display:flex}.connect__actions .app__talk{cursor:pointer;border:0}.connect__list ul{gap:.4rem;margin:.4rem 0 0;padding:0;list-style:none;display:grid}.connect__list li{justify-content:space-between;align-items:center;font-size:.9rem;display:flex}.msg__body{gap:.6rem;min-width:0;max-width:min(100%,40rem);display:grid}.msg--user .msg__body{justify-items:end;max-width:85%}.msg__text{background:var(--ink);color:var(--paper);white-space:pre-wrap;overflow-wrap:anywhere;border-radius:1rem 1rem .25rem;padding:.65rem .95rem}.msg__img{border:1px solid var(--hair);border-radius:.7rem;max-width:14rem}.msg__made{aspect-ratio:1;object-fit:cover;border:1px solid var(--hair);background:var(--surface);border-radius:.9rem;width:min(100%,26rem)}.msg__drawing{aspect-ratio:1;width:min(100%,26rem);color:var(--ink-soft);background:linear-gradient(110deg,#ece9e2 30%,#f7f5f0 50%,#ece9e2 70%) 0 0/200% 100%;border-radius:.9rem;place-items:center;font-size:.9rem;animation:1.4s linear infinite shimmer;display:grid}@keyframes shimmer{to{background-position:-200% 0}}.msg__tool{border:1px solid var(--hair);width:max-content;color:var(--ink-soft);border-radius:999px;align-items:center;gap:.5rem;padding:.25rem .7rem;font-size:.78rem;display:inline-flex}.typing{gap:.3rem;padding:.6rem 0;display:inline-flex}.typing i{background:var(--ink-faint);border-radius:50%;width:.4rem;height:.4rem;animation:1s ease-in-out infinite dot}.typing i:nth-child(2){animation-delay:.15s}.typing i:nth-child(3){animation-delay:.3s}@keyframes dot{50%{opacity:.3;transform:translateY(-3px)}}.md{overflow-wrap:anywhere;font-size:.98rem;line-height:1.7}.md>*+*{margin-top:.7em}.md p,.md ul,.md ol,.md pre,.md h1,.md h2,.md h3{margin-bottom:0}.md h1,.md h2,.md h3{font-family:var(--font-display);letter-spacing:-.02em;font-size:1.1rem}.md ul,.md ol{padding-left:1.3rem}.md a{color:var(--ruby);text-decoration:underline}.md code{background:#ebe8e1;border-radius:.3em;padding:.1em .35em;font:.88em/1.5 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.md pre{color:#f3f2ee;background:#141413;border-radius:.7rem;padding:1rem 1.1rem;position:relative;overflow-x:auto}.md pre code{color:inherit;background:0 0;padding:0}.md-copy{color:#f3f2ee;font:700 .72rem var(--font-body);cursor:pointer;background:#141413;border:1px solid #fff3;border-radius:.35rem;padding:.2rem .55rem;position:absolute;top:.5rem;right:.5rem}.md table{border-collapse:collapse;font-size:.9rem}.md th,.md td{border:1px solid var(--hair);padding:.35rem .6rem}.app__foot{width:min(48rem,100%);padding:.5rem var(--gutter) .9rem;margin:0 auto}.app__error{border-left:2px solid var(--ruby);background:var(--surface);margin-bottom:.6rem;padding:.6rem .9rem;font-size:.88rem}.app__error a{color:var(--ruby);font-weight:700}.pending{width:max-content;margin-bottom:.5rem;position:relative}.pending img{object-fit:cover;border:1px solid var(--hair);border-radius:.6rem;width:4.5rem;height:4.5rem}.pending button{background:var(--ink);width:1.4rem;height:1.4rem;color:var(--paper);cursor:pointer;border:0;border-radius:50%;position:absolute;top:-.4rem;right:-.4rem}.composer{border:1px solid var(--hair);background:var(--surface);border-radius:1.1rem;align-items:flex-end;gap:.35rem;padding:.4rem;display:flex;box-shadow:0 20px 40px -28px #14141359}.composer:focus-within{border-color:var(--ink-faint)}.composer textarea{resize:none;min-height:2.5rem;max-height:200px;color:var(--ink);font:inherit;background:0 0;border:0;outline:0;flex:1;padding:.55rem .4rem;line-height:1.5}.composer__icon,.composer__send{width:2.5rem;height:2.5rem;color:var(--ink-soft);cursor:pointer;background:0 0;border:0;border-radius:.8rem;flex:none;place-items:center;display:grid}.composer__icon:hover:not(:disabled){background:var(--paper);color:var(--ink)}.composer__icon.is-recording{background:var(--ruby);color:#fff;animation:1s ease-in-out infinite think}.composer__send{background:var(--ruby);color:#fff}.composer__send:disabled{color:var(--ink-faint);cursor:default;background:#e9e6df}.composer svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:1.2rem;height:1.2rem}.composer button:disabled{cursor:default}.composer__icon:disabled{opacity:.4}.app__note{color:var(--ink-faint);text-align:center;margin-top:.55rem;font-size:.74rem}.app__note strong{color:var(--ink-soft)}.app__captcha{height:0;overflow:hidden}@media (prefers-reduced-motion:reduce){.rubry__eyes,.typing i,.msg__drawing,.composer__icon.is-recording{animation:none}}.app{grid-template-columns:minmax(0,1fr) 19rem}.app__top{grid-column:1/-1}.app__body{display:contents}.app__log{grid-column:1;min-height:0}.app__foot{grid-column:1}.stage{border-left:1px solid var(--hair);background:color-mix(in srgb, var(--surface) 55%, transparent);flex-direction:column;grid-area:2/2/4;gap:1.25rem;min-height:0;padding:1.5rem 1.25rem;display:flex;overflow-y:auto}.stage__face{place-items:center;padding:.5rem 0 0;display:grid;position:relative}.stage__halo{filter:blur(8px);background:radial-gradient(closest-side,#e1242c38,#0000);border-radius:50%;transition:transform .4s,opacity .4s;position:absolute;inset:12% 18% 6%}.stage__face.is-thinking .stage__halo,.stage__face.is-tool .stage__halo{animation:1.6s ease-in-out infinite halo}.stage__face.is-typing .stage__halo{transform:scale(1.08)}@keyframes halo{50%{opacity:.6;transform:scale(1.15)}}.stage__mark{filter:drop-shadow(0 18px 22px #8c101840);width:9rem;height:9rem;position:relative}.stage__status{font-family:var(--font-display);text-align:center;color:var(--ink-soft);margin-top:-.4rem;font-weight:700}.stage__status.is-thinking,.stage__status.is-tool,.stage__status.is-typing{color:var(--ruby)}.stage__block{gap:.7rem;display:grid}.sessions{gap:.35rem;margin:0;padding:0;list-style:none;display:grid}.session{border:1px solid var(--hair);background:var(--surface);border-radius:.6rem;align-items:stretch;transition:border-color .2s;display:flex}.session:hover{border-color:var(--ink-faint)}.session.is-on{border-color:var(--ruby);box-shadow:0 0 0 1px var(--ruby)}.session__open{min-width:0;color:var(--ink);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;flex:1;gap:.1rem;padding:.5rem .7rem;display:grid}.session__title{text-overflow:ellipsis;white-space:nowrap;font-size:.82rem;overflow:hidden}.session__time{color:var(--ink-faint);font-size:.7rem}.session__delete{color:var(--ink-faint);cursor:pointer;background:0 0;border:0;padding:0 .7rem;font-size:1.1rem}.session__delete:hover:not(:disabled){color:var(--ruby)}.meters{gap:.55rem;margin:0;padding:0;font-size:.8rem;list-style:none;display:grid}.meters li{grid-template-columns:1fr auto;gap:.25rem;display:grid}.meter{background:var(--hair);border-radius:999px;grid-column:1/-1;height:.25rem;overflow:hidden}.meter span{background:var(--ruby);height:100%;transition:inline-size .5s;display:block}.stage__note{color:var(--ink-faint);font-size:.78rem}.app__state{font:700 .75rem var(--font-body);color:var(--ink-faint);margin-left:.4rem;display:none}.app__state.is-thinking,.app__state.is-tool,.app__state.is-typing{color:var(--ruby)}@media (width<=960px){.app{grid-template-columns:1fr}.stage{display:none}.app__state{display:inline}}.msg__who{font:700 .72rem var(--font-body);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint)}.step{border:1px solid var(--hair);background:var(--surface);border-radius:.7rem;font-size:.85rem}.step summary{cursor:pointer;color:var(--ink-soft);align-items:center;gap:.55rem;padding:.5rem .75rem;list-style:none;display:flex}.step summary::-webkit-details-marker{display:none}.step__icon{border-radius:50%;flex:none;place-items:center;width:1.2rem;height:1.2rem;font-size:.72rem;font-weight:700;display:inline-grid}.step--think .step__icon{gap:2px;width:auto;display:inline-flex}.step--think .step__icon i{background:var(--ruby);opacity:.35;border-radius:1px;width:4px;height:4px}.step--think.is-live .step__icon i{animation:1.2s ease-in-out infinite pix}.step--think.is-live .step__icon i:nth-child(2){animation-delay:.16s}.step--think.is-live .step__icon i:nth-child(3){animation-delay:.32s}@keyframes pix{35%{opacity:1}}.step--think{width:min(100%,34rem)}.step__thought{color:var(--ink-faint);white-space:pre-wrap;max-height:14rem;padding:0 .85rem .75rem;font-size:.82rem;line-height:1.6;overflow-y:auto}.tool-wrap{gap:.6rem;display:grid}.step--tool{width:max-content;max-width:100%}.step--tool.is-running{border-color:color-mix(in srgb, var(--ruby) 45%, var(--hair))}.step--tool.is-done .step__icon{color:#1f8a57;background:#e7f5ee}.step--tool.is-error .step__icon{color:var(--ruby-deep);background:#fde7e8}.step__label em{color:var(--ink-faint);font-style:normal}.step__time{color:var(--ink-faint);margin-left:auto;padding-left:.6rem;font-size:.72rem}.spin{border:2px solid color-mix(in srgb, var(--ruby) 25%, transparent);border-top-color:var(--ruby);border-radius:50%;width:.85rem;height:.85rem;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.step__details{padding:0 .75rem .75rem}.step__h{letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:.35rem;font-size:.7rem;font-weight:700}.step__details pre{color:#f3f2ee;background:#141413;border-radius:.5rem;max-height:14rem;padding:.7rem;font:.75rem/1.5 ui-monospace,Menlo,Consolas,monospace;overflow:auto}.rubry__eyes,.rubry__all,.rubry__dots rect,.rubry__frame,.rubry__gem{transform-box:fill-box;transform-origin:50%}.rubry--idle .rubry__eyes{animation:5s infinite blink}.rubry--bob .rubry__all{animation:3.2s ease-in-out infinite bob}@keyframes blink{0%,92%,to{transform:scaleY(1)}95%{transform:scaleY(.15)}}@keyframes bob{50%{transform:translateY(-4px)}}.rubry__frame--2,.rubry__frame--3,.rubry__dots{opacity:0}.rubry--thinking .rubry__eyes{animation:2.4s ease-in-out infinite glance}.rubry--thinking .rubry__mouth{opacity:0}.rubry--thinking .rubry__dots{opacity:1}.rubry--thinking .rubry__dots rect{opacity:.25;animation:1.2s ease-in-out infinite pix-face}.rubry--thinking .rubry__dots rect:nth-child(2){animation-delay:.16s}.rubry--thinking .rubry__dots rect:nth-child(3){animation-delay:.32s}@keyframes glance{0%,to{transform:translate(0)}30%,60%{transform:translate(2px,-3px)}}@keyframes pix-face{0%,70%,to{opacity:.25}35%{opacity:1}}.rubry--tool .rubry__eyes{animation:1.1s ease-in-out infinite scan-eyes}.rubry--tool .rubry__scan{opacity:.35;animation:1.1s linear infinite scan}.rubry--tool .rubry__gem--a{animation:.8s step-end infinite gem}.rubry--tool .rubry__gem--b{animation:.8s step-end .4s infinite gem}@keyframes scan-eyes{0%,to{transform:translate(-4px)}50%{transform:translate(4px)}}@keyframes scan{0%{transform:translateY(-6px)}to{transform:translateY(42px)}}@keyframes gem{0%,49%{filter:brightness(1.45)drop-shadow(0 0 3px #ff6b73)}50%,to{filter:none}}.rubry--typing .rubry__frame{animation:.48s step-end infinite talk}.rubry--typing .rubry__frame--2{animation-delay:.16s}.rubry--typing .rubry__frame--3{animation-delay:.32s}@keyframes talk{0%,33.33%{opacity:1}33.34%,to{opacity:0}}@media (prefers-reduced-motion:reduce){.rubry__eyes,.rubry__all,.rubry__dots rect,.rubry__frame,.rubry__gem,.rubry__scan,.stage__halo,.spin,.step--think.is-live .step__icon i{animation:none!important}.rubry--thinking .rubry__dots rect,.rubry--typing .rubry__frame--1{opacity:1}}
