/* YSBot homepage (/) ??dark glass redesign. Scoped to src/view/main.phtml only. */
:root{--bg:#05060a;--card:rgba(255,255,255,.045);--line:rgba(255,255,255,.09);--t:#eef1f7;--m:#8a93a6;--a:#7c5cff;--b:#18e0c8;--up:#ff4d6a;--dn:#3d8bff}
*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--t);font-family:"Pretendard Variable",Pretendard,system-ui,sans-serif;overflow-x:hidden;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}.w{max-width:1200px;margin:0 auto;padding-left:24px;padding-right:24px}
.bgfx{position:fixed;inset:0;z-index:-1;background:radial-gradient(800px 500px at 15% -5%,rgba(124,92,255,.35),transparent 60%),radial-gradient(700px 500px at 90% 10%,rgba(24,224,200,.18),transparent 60%),var(--bg)}
.bgfx:after{content:"";position:absolute;inset:0;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:64px 64px;mask:radial-gradient(ellipse at 50% 0,#000 20%,transparent 70%);-webkit-mask:radial-gradient(ellipse at 50% 0,#000 20%,transparent 70%);opacity:.5}
nav{position:sticky;top:0;z-index:50;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);background:rgba(5,6,10,.6);border-bottom:1px solid var(--line)}
nav .w{display:flex;align-items:center;height:64px;gap:28px}.logo{font-weight:800;font-size:20px;letter-spacing:-.02em;display:flex;gap:8px;align-items:center}
.logo{flex-shrink:0}.logo img{height:28px;width:auto;display:block;border-radius:7px}
nav ul{display:flex;gap:22px;list-style:none;color:var(--m);font-size:14px;flex:1}nav ul a:hover{color:#fff}
.navr{display:flex;align-items:center;gap:12px;margin-left:auto}.navr .lg{font-size:13px;color:var(--m);white-space:nowrap}.navr .lg:hover{color:#fff}.navr .lg.pri{color:var(--t);padding:6px 12px;border:1px solid var(--line);border-radius:99px;background:var(--card)}.navr .lg.pri:hover{border-color:rgba(124,92,255,.5)}
.tog{display:flex;border:1px solid var(--line);border-radius:99px;padding:3px;font-size:12px}.tog button{background:none;border:0;color:var(--m);padding:5px 11px;border-radius:99px;cursor:pointer;font:inherit}.tog .on{background:#fff;color:#000;font-weight:700}
.btn{display:inline-flex;align-items:center;gap:8px;padding:12px 20px;border-radius:12px;font-weight:700;font-size:15px;transition:.25s;color:#fff;border:0;font-family:inherit;cursor:pointer}.btn.p{background:linear-gradient(135deg,var(--a),#5b8cff);box-shadow:0 10px 40px -10px rgba(124,92,255,.8)}.btn.p:hover{transform:translateY(-2px)}.btn.g{border:1px solid var(--line);background:var(--card)}
.sm{padding:8px 14px;font-size:13px}
.ticker{border-bottom:1px solid var(--line);overflow:hidden;white-space:nowrap;font-size:13px;background:rgba(255,255,255,.02)}.ticker>div{display:inline-block;padding:10px 0;animation:tk 40s linear infinite}.ticker span{margin:0 22px;color:var(--m)}.ticker b{color:#fff;font-weight:600}.ticker i{font-style:normal}
@keyframes tk{to{transform:translateX(-50%)}}
.up{color:var(--up)!important}.dn{color:var(--dn)!important}
.badge{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700;padding:3px 9px;border-radius:99px;background:rgba(255,184,0,.12);color:#ffc14d;border:1px solid rgba(255,184,0,.35);vertical-align:middle;letter-spacing:0}
.badge.real{background:rgba(24,224,200,.1);color:var(--b);border-color:rgba(24,224,200,.35)}
.live{display:inline-flex;gap:8px;align-items:center;font-size:13px;color:var(--b);padding:6px 12px;border:1px solid rgba(24,224,200,.3);border-radius:99px;background:rgba(24,224,200,.06)}.live:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--b);box-shadow:0 0 0 0 var(--b);animation:pl 1.8s infinite}
.live.off{color:#ffc14d;border-color:rgba(255,184,0,.35);background:rgba(255,184,0,.06)}.live.off:before{background:#ffc14d;animation:none}
@keyframes pl{70%{box-shadow:0 0 0 9px transparent}}
.hero{padding:80px 24px 40px;text-align:center}.hero h1{font-size:clamp(40px,7vw,84px);line-height:1.05;letter-spacing:-.045em;font-weight:800;margin:22px 0 18px}
.grad{background:linear-gradient(100deg,#fff 10%,#b9a8ff 45%,var(--b) 90%);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero p.s{color:var(--m);font-size:clamp(16px,2vw,19px);max-width:640px;margin:0 auto 32px;line-height:1.6}
.cta{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.glass{background:linear-gradient(180deg,rgba(255,255,255,.065),rgba(255,255,255,.02));border:1px solid var(--line);border-radius:22px;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);position:relative;overflow:hidden}
.glass:before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;background:linear-gradient(140deg,rgba(255,255,255,.25),transparent 40%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:56px}.kpi{padding:22px;text-align:left}.kpi small{color:var(--m);font-size:13px}.kpi .v{font-size:clamp(24px,2.8vw,34px);font-weight:800;letter-spacing:-.03em;margin:8px 0 4px;font-variant-numeric:tabular-nums}.kpi em{font-style:normal;font-size:12px;color:var(--m)}
.meta{display:flex;justify-content:space-between;align-items:center;margin-top:14px;color:var(--m);font-size:12px;flex-wrap:wrap;gap:8px}
.notice{margin-top:14px;padding:14px 18px;border-radius:14px;border:1px dashed rgba(255,184,0,.35);background:rgba(255,184,0,.05);color:#d9c79a;font-size:13px;line-height:1.6;text-align:left}
section{padding:70px 0}.h2{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:26px;flex-wrap:wrap}.h2 h2{font-size:clamp(28px,3.6vw,42px);letter-spacing:-.035em;font-weight:800}.h2 p{color:var(--m);margin-top:8px}.eyebrow{color:var(--b);font-size:13px;font-weight:700;letter-spacing:.12em}
.chartc{padding:26px}.chartc .top{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:16px}.rng button{background:none;border:0;color:var(--m);padding:6px 12px;border-radius:8px;cursor:pointer;font:inherit;font-size:13px}.rng .on{background:rgba(255,255,255,.1);color:#fff}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.grid2{display:grid;grid-template-columns:1.2fr 1fr;gap:14px}
.ex{padding:22px}.ex .hd{display:flex;justify-content:space-between;align-items:center}.ex .nm{display:flex;gap:10px;align-items:center;font-weight:700}.ex .ic{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;font-size:13px;font-weight:800}.ex .sub{font-size:12px;color:var(--m);font-weight:500}
.ex .r{font-size:28px;font-weight:800;margin:16px 0 4px;letter-spacing:-.03em}.bar{height:6px;border-radius:9px;background:rgba(255,255,255,.07);margin-top:14px;overflow:hidden}.bar i{display:block;height:100%;border-radius:9px;background:linear-gradient(90deg,var(--a),var(--b));width:0;transition:width 1.6s cubic-bezier(.2,.8,.2,1)}
.ex .st{display:flex;justify-content:space-between;color:var(--m);font-size:12px;margin-top:10px}
.empty{padding:36px;text-align:center;color:var(--m);line-height:1.7}.empty b{color:#fff;display:block;font-size:18px;margin-bottom:6px}
table{width:100%;border-collapse:collapse;font-size:14px;font-variant-numeric:tabular-nums}td,th{padding:13px 10px;text-align:left;border-bottom:1px solid var(--line)}th{color:var(--m);font-weight:500;font-size:12px}tr.new{animation:fl 1.2s}@keyframes fl{from{background:rgba(124,92,255,.25)}}
.tag{font-size:11px;padding:3px 8px;border-radius:6px;font-weight:700}.buy{background:rgba(255,77,106,.14);color:var(--up)}.sell{background:rgba(61,139,255,.14);color:var(--dn)}
.ai{padding:26px}.ai h3{display:flex;gap:10px;align-items:center;font-size:18px;margin-bottom:14px;flex-wrap:wrap}.ai li{list-style:none;padding:11px 0;border-bottom:1px dashed var(--line);color:#cfd5e3;line-height:1.6;font-size:14.5px}.ai li b{color:#fff}.disc{font-size:11.5px;color:var(--m);margin-top:14px;line-height:1.6}
.step{padding:26px}.step .n{font-size:13px;color:var(--b);font-weight:800}.step h3{font-size:20px;margin:10px 0 8px}.step p{color:var(--m);line-height:1.65;font-size:14.5px}
.app{margin-top:14px;padding:0;display:grid;grid-template-columns:1fr 1.3fr}.app .tx{padding:36px}.app .tx h3{font-size:28px;letter-spacing:-.03em;margin:10px 0}.app .tx p{color:var(--m);line-height:1.7}
.mock{background:#0b0d14;border-left:1px solid var(--line);padding:18px}.mock .bar2{display:flex;gap:6px;margin-bottom:12px}.mock .bar2 i{width:10px;height:10px;border-radius:50%;background:#333}.mock .row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}.mock .c{background:rgba(255,255,255,.04);border:1px solid var(--line);border-radius:10px;padding:10px;font-size:11px;color:var(--m)}.mock .c b{display:block;color:#fff;font-size:15px;margin-top:4px}
.bt{padding:44px;text-align:center;background:radial-gradient(circle at 50% 0,rgba(124,92,255,.35),transparent 60%),var(--card)}.bt h2{font-size:clamp(28px,4vw,46px);letter-spacing:-.04em;margin:14px 0}.bt p{color:var(--m)}
.soon{display:inline-block;padding:6px 14px;border-radius:99px;background:rgba(124,92,255,.18);color:#c9bcff;font-weight:700;font-size:13px;letter-spacing:0;vertical-align:middle}
.comm{padding:40px;display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;background:linear-gradient(120deg,rgba(3,199,90,.16),transparent 60%),var(--card)}.comm h2{font-size:30px;letter-spacing:-.03em;margin:8px 0}.comm p{color:var(--m)}
.final{text-align:center;padding:100px 24px}.final h2{font-size:clamp(34px,6vw,68px);letter-spacing:-.045em;line-height:1.1;margin-bottom:26px}
footer{border-top:1px solid var(--line);padding:40px 0;color:var(--m);font-size:12.5px;line-height:1.8}footer .risk{background:rgba(255,255,255,.03);border:1px solid var(--line);border-radius:14px;padding:18px;margin-bottom:24px;color:#a8b0c2}footer a:hover{color:#fff;text-decoration:underline}
.rv{opacity:0;transform:translateY(28px);transition:1s cubic-bezier(.2,.8,.2,1)}.rv.in{opacity:1;transform:none}
.no-js .rv{opacity:1;transform:none}
.flow{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:14px}.fs{padding:20px}.fs b{color:var(--b);font-size:12px}.fs h4{font-size:17px;margin:6px 0 4px}.fs p{color:var(--m);font-size:13.5px}
.ladder{padding:28px 22px 22px;display:grid;grid-template-columns:repeat(10,1fr);gap:8px;align-items:end}.rung{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center}.rung .col{width:100%;border-radius:10px 10px 4px 4px;background:linear-gradient(180deg,rgba(124,92,255,.85),rgba(124,92,255,.15));position:relative;transition:height 1.4s cubic-bezier(.2,.8,.2,1)}.rung .r{font-weight:800;font-size:15px;font-variant-numeric:tabular-nums}.rung small{color:var(--m);font-size:11px}.rung .l{font-size:12px;color:#c9bcff;font-weight:700}
.rung.free .col{background:linear-gradient(180deg,var(--b),rgba(24,224,200,.15));box-shadow:0 0 40px -6px var(--b)}.rung.free .r{color:var(--b)}.rung.free .l{color:var(--b)}.crown{font-size:10px;font-weight:800;background:var(--b);color:#00110e;padding:3px 7px;border-radius:99px}
.calc{margin-top:14px;padding:24px;display:grid;grid-template-columns:1.3fr 1fr .8fr 1fr;gap:16px;align-items:end}.calc h3{font-size:20px}.calc label{display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--m)}.calc input,.calc select{width:100%;min-width:0;background:rgba(255,255,255,.06);border:1px solid var(--line);color:#fff;border-radius:10px;padding:12px;font:inherit;font-size:16px}.calc select option{background:#111}.res{background:rgba(124,92,255,.12);border:1px solid rgba(124,92,255,.4);border-radius:14px;padding:12px 16px}.res small{color:#c9bcff;font-size:12px}.res div{font-size:26px;font-weight:800}.res em{font-style:normal;font-size:12px;color:var(--m)}
.calc .dep{grid-column:2 / span 2;font-size:12px;color:var(--m)}.calc .dep input{font-size:14px;padding:9px 12px}
.fnote{color:var(--m);font-size:12px;margin-top:10px;line-height:1.7}
.aib{display:grid;grid-template-columns:1fr 1.2fr;padding:0}.aib .in{padding:28px;border-right:1px solid var(--line)}.aib small{color:var(--m);font-size:12px}.q{font-size:20px;line-height:1.55;font-weight:600;margin:10px 0 20px;padding:18px;border-radius:14px;background:rgba(255,255,255,.05);border:1px solid var(--line)}.cur{color:var(--b);animation:bl 1s steps(1) infinite}@keyframes bl{50%{opacity:0}}
.fn{display:flex;flex-wrap:wrap;gap:6px}.fn i{font-style:normal;font-family:ui-monospace,monospace;font-size:12px;padding:4px 9px;border-radius:7px;background:rgba(124,92,255,.14);color:#c9bcff}
.out{padding:28px;background:#07080d;min-width:0}.oh{display:flex;justify-content:space-between;font-size:12px;color:var(--m);margin-bottom:12px;gap:8px;flex-wrap:wrap}pre{font-family:ui-monospace,Menlo,monospace;font-size:14px;line-height:2;white-space:pre;word-break:normal;overflow-wrap:normal;overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch;scrollbar-width:thin;color:#e8e3ff;min-height:96px}pre .k{color:var(--b)}pre .n{color:#ffb86b}
.btn.dis{background:rgba(255,255,255,.04);border:1px dashed var(--line);color:var(--m);cursor:not-allowed}
.gd{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.gi{padding:24px;transition:.25s;display:block}.gi:hover{transform:translateY(-4px);border-color:rgba(124,92,255,.5)}.gi span{font-size:22px;width:44px;height:44px;display:grid;place-items:center;border-radius:12px;background:rgba(24,224,200,.1);color:var(--b)}.gi h4{font-size:18px;margin:14px 0 6px}.gi p{color:var(--m);font-size:13.5px}.gi b{display:block;margin-top:14px;font-size:13px;color:#c9bcff}
@media(max-width:900px){.flow{grid-template-columns:1fr}.calc{grid-template-columns:1fr}.calc .dep{grid-column:auto}.ladder{grid-template-columns:1fr;gap:6px}.rung{flex-direction:row;justify-content:space-between}.rung .col{display:none}.rung{padding:10px 4px;border-bottom:1px solid var(--line)}}
@media(max-width:900px){.aib{grid-template-columns:1fr}.aib .in{border-right:0;border-bottom:1px solid var(--line)}.gd{grid-template-columns:1fr 1fr}.q{font-size:17px}}
@media(max-width:900px){nav ul{display:none}.kpis{grid-template-columns:1fr 1fr}.grid3,.grid2,.app{grid-template-columns:1fr}.mock{border-left:0;border-top:1px solid var(--line)}.hide-m{display:none}.kpi{padding:16px}section{padding:50px 0}.bt,.comm{padding:28px}nav .w{gap:14px}}
@media(max-width:900px){.navr{gap:8px}.tog button{padding:5px 8px}.navr .lg.pri{padding:5px 10px}}
/* vertical rhythm, specific enough that no .w / shorthand rule can zero it (.final keeps its own 100px) */
section.w:not(.final){padding-top:70px;padding-bottom:70px}#ai{padding-top:70px}
@media(max-width:900px){section.w:not(.final){padding-top:56px;padding-bottom:56px}#ai{padding-top:56px}}
@media(prefers-reduced-motion:reduce){.ticker>div,.live:before,.cur{animation:none}.rv{transition:none}}

/* Sticky nav (64px) overlap: in-page anchors must clear the fixed header */
#perf,#trades,#how,#ai,#price,#guide,#dl{scroll-margin-top:80px}
@media(max-width:900px){#perf,#trades,#how,#ai,#price,#guide,#dl{scroll-margin-top:72px}}

/* ===== theme toggle (icon-only, upper-right of nav) — moon in dark, sun in light ===== */
.thm{width:36px;height:36px;flex-shrink:0;display:inline-grid;place-items:center;padding:0;border-radius:99px;border:1px solid var(--line);background:var(--card);color:var(--t);cursor:pointer;transition:border-color .2s}
.thm:hover{border-color:rgba(124,92,255,.5)}.thm:focus-visible{outline:2px solid var(--b);outline-offset:2px}.thm svg{display:block}.thm .i-sun{display:none}
html[data-theme="light"] .thm .i-sun{display:block}html[data-theme="light"] .thm .i-moon{display:none}
@media(max-width:900px){.thm{width:32px;height:32px}}
/* logged-in nav (KRW/USD + 내 수익률 + 로그아웃 + toggle) overflows 360px: keep the logo icon, drop the wordmark */
@media(max-width:400px){nav .w:has(.navr .lg:not(.pri)) .logo{font-size:0;gap:0}}
/* <=360px (320 devices): tighter header width budget so the theme toggle is never clipped — wordmark always collapses (icon stays) */
@media(max-width:360px){.w{padding-left:12px;padding-right:12px}nav .w{gap:8px}.navr{gap:6px}nav .logo{font-size:0;gap:0}.tog button{padding:5px 7px}.navr .lg.pri{padding:5px 9px}.thm{flex-shrink:0}}

/* ===== light companion (html[data-theme=light]). Dark = :root tokens above, unchanged. =====
   Pale blue-white page, white cards, faint lavender borders/shadows, dark text; YSBot purple/teal accents
   darkened only where used as text so they stay readable on white. P&L keeps red-up / blue-down. */
html[data-theme="light"]{--bg:#f4f6fb;--card:rgba(255,255,255,.86);--line:rgba(88,72,190,.14);--t:#141826;--m:#596175;--b:#0a8072;--up:#d3203d;--dn:#1b64d6;color-scheme:light}
html[data-theme="light"] .bgfx{background:radial-gradient(800px 500px at 15% -5%,rgba(124,92,255,.16),transparent 60%),radial-gradient(700px 500px at 90% 10%,rgba(24,224,200,.12),transparent 60%),var(--bg)}
html[data-theme="light"] .bgfx:after{opacity:.35}
html[data-theme="light"] nav{background:rgba(244,246,251,.8)}
html[data-theme="light"] nav ul a:hover,html[data-theme="light"] .navr .lg:hover,html[data-theme="light"] footer a:hover{color:var(--t)}
html[data-theme="light"] .navr .lg.pri,html[data-theme="light"] .thm{background:#fff}
html[data-theme="light"] .tog .on{background:#141826;color:#fff}
html[data-theme="light"] .btn.g{color:var(--t);background:#fff}
html[data-theme="light"] .ticker{background:rgba(255,255,255,.6)}html[data-theme="light"] .ticker b{color:var(--t)}
html[data-theme="light"] .badge{background:rgba(255,170,0,.1);color:#8f5400;border-color:rgba(214,140,0,.4)}
html[data-theme="light"] .badge.real{background:rgba(10,128,114,.07);color:var(--b);border-color:rgba(10,128,114,.32)}
html[data-theme="light"] .live{border-color:rgba(10,128,114,.3);background:rgba(10,128,114,.06)}
html[data-theme="light"] .live.off{color:#8f5400;border-color:rgba(214,140,0,.4);background:rgba(255,170,0,.07)}html[data-theme="light"] .live.off:before{background:#d08a00}
html[data-theme="light"] .grad{background:linear-gradient(100deg,#141826 10%,#6243e6 45%,#0a9483 90%);-webkit-background-clip:text;background-clip:text;color:transparent}
html[data-theme="light"] .glass{background:linear-gradient(180deg,rgba(255,255,255,.96),rgba(255,255,255,.8));box-shadow:0 1px 2px rgba(30,24,80,.04),0 14px 34px -20px rgba(60,45,160,.25)}
html[data-theme="light"] .glass:before{background:linear-gradient(140deg,rgba(124,92,255,.2),transparent 40%)}
html[data-theme="light"] .notice{color:#6e5212;background:rgba(255,184,0,.08);border-color:rgba(214,140,0,.4)}
html[data-theme="light"] .rng .on{background:rgba(124,92,255,.12);color:var(--t)}
html[data-theme="light"] .bar{background:rgba(20,24,38,.07)}
html[data-theme="light"] .empty b,html[data-theme="light"] .ai li b,html[data-theme="light"] .mock .c b{color:var(--t)}
html[data-theme="light"] .ai li{color:#394055}
html[data-theme="light"] .mock{background:#eef1fa}html[data-theme="light"] .mock .bar2 i{background:#c9cede}html[data-theme="light"] .mock .c{background:#fff}
html[data-theme="light"] .bt{background:radial-gradient(circle at 50% 0,rgba(124,92,255,.16),transparent 60%),var(--card)}
html[data-theme="light"] .soon,html[data-theme="light"] .fn i{background:rgba(124,92,255,.1);color:#5235d0}
html[data-theme="light"] .rung .l,html[data-theme="light"] .res small,html[data-theme="light"] .gi b{color:#5235d0}
html[data-theme="light"] .crown{color:#fff}
html[data-theme="light"] .calc input,html[data-theme="light"] .calc select{background:#fff;color:var(--t)}html[data-theme="light"] .calc select option{background:#fff;color:var(--t)}
html[data-theme="light"] .res{background:rgba(124,92,255,.07)}
html[data-theme="light"] .q{background:rgba(124,92,255,.05)}
html[data-theme="light"] .out{background:#f7f6ff}html[data-theme="light"] pre{color:#2b2166}html[data-theme="light"] pre .n{color:#a14f00}
html[data-theme="light"] .oh span[style]{color:#8f5400!important}
html[data-theme="light"] .gi span{background:rgba(10,128,114,.09)}
html[data-theme="light"] footer .risk{background:#fff;color:#454c60}
html[data-theme="light"] pre{scrollbar-color:rgba(88,72,190,.3) transparent}
/* mobile QA (360px): KPI amounts are never clipped/ellipsized. Grid children may shrink, the value scales down and,
   if still too long, wraps (full digits stay visible); .kpi drops the .glass overflow clip (its :before is inset:0). */
.kpis>*{min-width:0}.glass.kpi{overflow:visible}.kpi .v{white-space:nowrap;overflow-wrap:normal;word-break:normal;line-height:1.15}
@media(max-width:480px){.kpi{padding:14px}.kpi .v{font-size:clamp(16px,4.4vw,24px);letter-spacing:-.02em}}
@media(max-width:400px){.kpis{grid-template-columns:1fr}}
/* AI DSL: pre keeps tokens whole (white-space:pre, word-break:normal); it scrolls horizontally inside .out, never the page. */
.aib>*{min-width:0}