[hidden]{display:none!important}
body{background:#fff0f8}.container{width:calc(100% - 24px)!important;max-width:none!important;height:calc(100dvh - 24px)!important;min-height:0!important;margin:12px!important;box-sizing:border-box}.message{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace!important;font-size:14px!important;line-height:1.85!important;border-radius:0!important;max-width:100%!important}.assistant-message{border-left:2px solid #bb5bce!important}.user-message{border-left:2px solid #ff61b5!important}#chatbox{min-height:180px}.scanner{position:fixed!important;inset:0!important;width:100vw;height:100dvh!important;min-height:0!important;margin:0!important;border:0!important;border-radius:0!important;z-index:100!important}.scanner.minimized{position:relative!important;inset:auto!important;width:100%;height:370px!important;z-index:2!important}.ascii-art{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;margin:0;white-space:pre;font:clamp(7px,1vw,12px)/1.2 ui-monospace,monospace;color:#fa78c4;text-shadow:0 0 12px #fc4cae;opacity:.8;pointer-events:none;overflow:hidden}.scanner .scan-core{align-self:end;margin-bottom:11vh}.scanner .scan-rings{opacity:.16;width:min(70vw,600px);height:min(70vw,600px)}.scanner .effects-toggle{top:22px;right:22px}.scanner .minimize-toggle{right:135px}.scanner.minimized .scan-core{margin-bottom:15px}.scanner.minimized .scan-title{font-size:22px}.scanner.minimized .ascii-art{font-size:7px}.scanner .scan-code{top:30px}.scanner .scan-code.right{top:auto;bottom:30px}.scanner .scan-title{font-size:clamp(24px,4vw,50px)}@media(max-width:600px){.container{width:calc(100% - 12px)!important;margin:6px!important;height:calc(100dvh - 12px)!important;padding:12px!important}.message{font-size:12px!important}.scanner .scan-core{margin-bottom:14vh}.scanner .scan-code{top:75px}.scanner .effects-toggle{right:12px;top:12px}.scanner .minimize-toggle{right:123px}}
.followups{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:12px 0 4px;flex-shrink:0}.followups button{background:linear-gradient(135deg,#fff1f9,#ffe1f2);border:1px solid #ff89c6;color:#8d3269;font:inherit;font-size:12px;line-height:1.5;text-align:left;padding:12px;border-radius:4px;cursor:pointer;white-space:normal;overflow-wrap:anywhere}.followups button:hover{background:#ffc9e7;border-color:#f84ba5}.followups button:focus-visible,.effects-toggle:focus-visible{outline:2px solid #982286;outline-offset:3px}
@media(max-width:600px){.followups{grid-template-columns:1fr;max-height:190px;overflow:auto}.followups button{padding:9px 12px;font-size:11px}.container{min-height:0!important}#chatbox{min-height:260px}}
.scanner{position:relative;isolation:isolate;min-height:340px;height:min(53vh,510px);overflow:hidden;border:1px solid #ff61b6;border-radius:5px;background:radial-gradient(ellipse at center,#69214955,transparent 63%),#210b20;color:#ffb5dc;margin:12px 0;box-shadow:inset 0 0 65px #fe40ac25,0 0 28px #ff69b425;display:grid;place-items:center}
.scan-grid{position:absolute;inset:-60%;background-image:linear-gradient(#ff55b822 1px,transparent 1px),linear-gradient(90deg,#ff55b822 1px,transparent 1px);background-size:42px 42px;transform:perspective(400px) rotateX(55deg);animation:grid-drift 7s linear infinite}
.scan-rings{position:absolute;width:270px;height:270px;border:1px solid #ff6fbd88;border-radius:50%;box-shadow:0 0 35px #f359ad33,inset 0 0 30px #ff55af22;animation:orbit 12s linear infinite}
.scan-rings:before,.scan-rings:after{content:"";position:absolute;border-radius:50%;inset:20px;border:2px dashed #ff89ce99;transform:rotate(30deg)}
.scan-rings:after{inset:-29px;border:1px solid #ff6cc34d;border-left:5px solid #ffc8e8;border-right:5px solid #fc68b6;animation:orbit 6s linear infinite reverse}
.scan-beam{position:absolute;inset:0;background:linear-gradient(transparent 40%,#fa56b914 48%,#ffc7e999 50%,#fe43ab22 52%,transparent 60%);transform:translateY(-80%);animation:beam-sweep 3.8s ease-in-out infinite;mix-blend-mode:screen}
.scan-core{position:relative;z-index:2;text-align:center;padding:24px;background:radial-gradient(ellipse,#210b20b8,transparent 75%);max-width:90%}
.scan-kicker{font-size:10px;letter-spacing:.35em;color:#ffa8d5}
.scan-title{font-size:clamp(24px,5vw,49px);font-weight:bold;letter-spacing:.1em;line-height:1.5;color:#ffe5f5;text-shadow:3px 0 #ff1595,-3px 0 #bc91ff;animation:type-glitch 4.9s steps(1,end) infinite;margin:9px 0}
.scan-caption{font-size:11px;letter-spacing:.08em;color:#efb5d4}
.scan-code{position:absolute;font-size:10px;letter-spacing:.18em;opacity:.65;white-space:pre;line-height:1.9;top:19px;left:20px;animation:code-shift 5.2s steps(2,end) infinite}
.scan-code.right{left:auto;right:20px;top:auto;bottom:20px;text-align:right;animation-direction:reverse}
.scan-corners{position:absolute;inset:12px;border:1px solid #ef88c033;clip-path:polygon(0 0,20% 0,20% 2%,2% 2%,2% 20%,0 20%,0 0,100% 0,100% 20%,98% 20%,98% 2%,80% 2%,80% 0,100% 0,100% 100%,80% 100%,80% 98%,98% 98%,98% 80%,100% 80%,100% 100%,0 100%,0 80%,2% 80%,2% 98%,20% 98%,20% 100%,0 100%)}
.effects-toggle{position:absolute;z-index:3;right:12px;top:12px;background:#210b20cc;color:#f5beda;border:1px solid #ff8bc25c;font:inherit;font-size:10px;padding:8px;cursor:pointer}
.effects-paused *{animation:none!important}
@keyframes orbit{to{transform:rotate(360deg)}}
@keyframes grid-drift{to{background-position:0 168px}}
@keyframes beam-sweep{50%{transform:translateY(70%)}}
@keyframes type-glitch{0%,89%,94%,100%{transform:translate(0);clip-path:inset(0)}90%{transform:translate(-5px,1px);clip-path:inset(15% 0 25%)}92%{transform:translate(4px,-1px);clip-path:inset(40% 0 0)}}
@keyframes code-shift{50%{transform:translateY(8px);opacity:.35}}
@media(max-width:600px){.scanner{height:390px;min-height:300px}.scan-rings{width:210px;height:210px}.scan-code{font-size:8px;left:12px}.scan-caption{max-width:210px}.scan-kicker{letter-spacing:.2em}}
@media(prefers-reduced-motion:reduce){.scanner *{animation:none!important}.effects-toggle{display:none}.scan-beam{transform:none;opacity:.3}}
.ascii-art{opacity:1;text-shadow:none}.ascii-art canvas{display:block;flex:none}
.scanner{background:radial-gradient(ellipse at 50% 42%,#431833 0%,#210d22 45%,#100916 100%)}
.scanner .scan-rings,.scanner .scan-code{display:none}
.scanner .scan-grid{opacity:.22;animation:none}
.scanner .scan-title{animation:none;text-shadow:0 0 24px #ff76b942;font-weight:400;letter-spacing:.2em}
.scanner .scan-core{background:none}
/* A restrained scan plane over the mathematical surface, without ASCII noise. */
.scanner .scan-beam{display:block;inset:8% 0 25%;background:linear-gradient(transparent 47%,#ff85ce08 49%,#ffd7ed80 50%,#ff85ce08 51%,transparent 53%);transform:translateY(-75%);animation:geometry-scan 5.5s ease-in-out infinite;opacity:.65}
@keyframes geometry-scan{0%,100%{transform:translateY(-70%);opacity:.15}50%{transform:translateY(70%);opacity:.65}}
.scanner.effects-paused .scan-beam{opacity:0}
@media(prefers-reduced-motion:reduce){.scanner .scan-beam{display:none}}
/* Mathematical reading surface: fine luminous geometry, not text glyphs. */
.ascii-art{opacity:1;text-shadow:none}
.ascii-art canvas{display:block;flex:none}
.scanner{background:radial-gradient(ellipse at 50% 42%,#431833 0%,#210d22 45%,#100916 100%)}
.scanner .scan-rings,.scanner .scan-code{display:none}
.scanner .scan-grid{opacity:.22;animation:none}
.scanner .scan-title{animation:none;text-shadow:0 0 24px #ff76b942;font-weight:400;letter-spacing:.2em}
.scanner .scan-core{background:none}
