/* ---------- shared top bar + view toggle ---------- */
body{display:flex;flex-direction:column}.shell{flex:1;min-height:0;height:auto}
.topbar{height:58px;flex:none;display:flex;align-items:center;gap:16px;padding:0 18px;border-bottom:1px solid var(--line);background:rgba(9,9,12,.75);backdrop-filter:blur(12px);position:relative;z-index:20}
.vbrand{display:none;align-items:center;gap:10px}.vbrand .mark{width:30px;height:30px}.vbrand b{font-size:16px;letter-spacing:-.02em}
.pills{display:none;gap:4px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08);border-radius:999px;padding:4px;margin-left:18px}.pills a{padding:7px 16px;border-radius:999px;color:#b9b6c8;text-decoration:none;font-weight:600;font-size:13.5px;transition:.2s}.pills a:hover{color:#fff}.pills a.on{background:#fff;color:#111}
.vsearch{margin-left:auto;display:flex;align-items:center;gap:10px;background:rgba(255,255,255,.05);border:1px solid var(--line);border-radius:999px;padding:8px 14px;color:var(--t3);font:13px var(--sans);cursor:pointer;width:300px;transition:.2s}.vsearch:hover{border-color:var(--line2);color:var(--t2)}.vsearch kbd{margin-left:auto}
.toggle{position:relative;display:flex;background:rgba(255,255,255,.06);border:1px solid var(--line2);border-radius:999px;padding:4px;flex:none}
.toggle button{position:relative;z-index:1;background:none;border:0;color:var(--t2);font:600 13px var(--sans);padding:8px 16px;border-radius:999px;cursor:pointer;transition:color .3s;width:112px}
.toggle .knob{position:absolute;top:4px;bottom:4px;left:4px;width:112px;border-radius:999px;transition:transform .45s var(--ease),background .45s;background:linear-gradient(135deg,#ffd27a,#ff9500);box-shadow:0 4px 16px rgba(255,150,0,.35)}
html[data-mode=terminal] .toggle .knob{transform:translateX(112px)}html[data-mode=terminal] .toggle button[data-mode=terminal],html[data-mode=visual] .toggle button[data-mode=visual]{color:#1a1000}
html[data-mode=visual] .toggle .knob{background:linear-gradient(135deg,#c6ff4d,#7cf29a,#5ad1ff);box-shadow:0 4px 18px rgba(150,255,120,.35)}
#view{transition:opacity .25s,transform .25s var(--ease)}body.switching #view{opacity:0;transform:scale(.985)}
/* ---------- VISUAL MODE ---------- */
html[data-mode=visual] body{background:#0e0d13;font-family:'Plus Jakarta Sans',system-ui,sans-serif}
html[data-mode=visual] .side,html[data-mode=visual] .ticker{display:none}
html[data-mode=visual] .vbrand,html[data-mode=visual] .pills{display:flex}
html[data-mode=visual] .vsearch{font-family:'Plus Jakarta Sans';border-radius:999px}
html[data-mode=visual] .glow{background:radial-gradient(800px 500px at 90% -10%,rgba(198,255,77,.10),transparent 60%),radial-gradient(800px 600px at 0% 100%,rgba(255,110,60,.10),transparent 60%),radial-gradient(600px 400px at 50% 40%,rgba(120,90,255,.07),transparent 60%)}
html[data-mode=visual] .topbar{background:rgba(14,13,19,.8)}
html[data-mode=visual] main{padding:26px 36px 60px}
.vv{font-family:'Plus Jakarta Sans',system-ui,sans-serif;max-width:1320px;margin:0 auto}
.vv h1{font-size:34px;font-weight:800;letter-spacing:-.03em;line-height:1.1}.vv .sub{color:#9c98ab;font-size:15px;margin-top:6px}
.vhead{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:20px;gap:16px;flex-wrap:wrap}
.chips{display:flex;gap:8px;flex-wrap:wrap}.pchip{display:inline-flex;align-items:center;gap:7px;border:0;cursor:pointer;font:700 13px 'Plus Jakarta Sans';padding:8px 14px;border-radius:999px;background:rgba(255,255,255,.06);color:#d9d6e4;transition:transform .2s var(--ease),background .2s,color .2s}.pchip:hover{transform:translateY(-2px);background:rgba(255,255,255,.1)}.pchip.on{color:#111}.pchip i{font-style:normal;width:18px;height:18px;border-radius:50%;display:grid;place-items:center;font-size:10px;color:#fff}
.bento{display:grid;grid-template-columns:1.25fr 1fr 1fr 1.3fr;grid-template-rows:170px 170px;gap:16px;margin-bottom:34px}
.bc{border-radius:28px;padding:22px 24px;position:relative;overflow:hidden;cursor:pointer;transition:transform .35s var(--ease),box-shadow .35s}.bc:hover{transform:translateY(-4px) rotate(-.3deg);box-shadow:0 24px 50px rgba(0,0,0,.45)}
.bc .lab{font-weight:700;font-size:13px;text-transform:uppercase;letter-spacing:.6px;opacity:.75;display:flex;justify-content:space-between;align-items:center}.bc .lab span{font-size:11px;background:rgba(0,0,0,.85);color:#fff;padding:4px 10px;border-radius:999px;letter-spacing:0;text-transform:none;opacity:1}
.bc .big{font-size:64px;font-weight:800;letter-spacing:-.045em;line-height:1;margin-top:14px}.bc .big small{font-size:22px;letter-spacing:-.02em;font-weight:700;margin-left:4px}.bc .note{font-size:13.5px;font-weight:600;opacity:.75;margin-top:6px}
.c-lime{background:#c8ff4d;color:#151a05}.c-orange{background:#ff7a3d;color:#1d0c03}.c-yellow{background:#fbe88a;color:#221d05}.c-white{background:#f4f2ee;color:#16151a}.c-char{background:#1d1c23;color:#f3f1ea;border:1px solid rgba(255,255,255,.07)}.c-violet{background:#a99bff;color:#130f2a}.c-sky{background:#8fd8ff;color:#06202e}
.bars{display:flex;align-items:flex-end;gap:7px;height:96px;margin-top:14px}.bars div{flex:1;border-radius:9px;background:rgba(0,0,0,.18);position:relative;overflow:hidden;height:100%}.bars div i{position:absolute;left:0;right:0;bottom:0;border-radius:9px;background:#1b1b1b;animation:rise .9s var(--ease) both}.bars div.hi i{background:#fff}.bars span{position:absolute;bottom:-18px;left:0;right:0;text-align:center;font-size:11px;font-weight:700;opacity:.7}
@keyframes rise{from{transform:translateY(100%)}}
.gauge{position:absolute;right:16px;bottom:-30px}
.hbars{display:flex;gap:6px;margin-top:22px;height:64px}.hbars div{border-radius:10px;background:#93b4ff;transition:flex .6s var(--ease)}.hbars div:last-child{background:#dfe8ff}
.row{margin-bottom:34px}.rowh{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.rowh h2{font-size:21px;font-weight:800;letter-spacing:-.02em;display:flex;align-items:center;gap:10px}.rowh h2 .ic{width:30px;height:30px;border-radius:10px;display:grid;place-items:center;font-size:15px}
.rowh .ctl{display:flex;gap:8px;align-items:center}.rowh a{color:#b9b6c8;font-weight:600;font-size:13.5px;text-decoration:none;margin-right:6px}.rowh a:hover{color:#fff}
.arrow{width:36px;height:36px;border-radius:50%;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.04);color:#fff;cursor:pointer;font-size:16px;transition:.2s}.arrow:hover{background:#fff;color:#111;transform:scale(1.06)}
.car{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding:4px 2px 14px;scrollbar-width:none;mask-image:linear-gradient(90deg,#000 92%,transparent)}.car::-webkit-scrollbar{display:none}
.vc{flex:0 0 268px;scroll-snap-align:start;cursor:pointer;transition:transform .3s var(--ease)}.vc:hover{transform:translateY(-4px)}
.vthumb{position:relative;aspect-ratio:16/9;border-radius:18px;overflow:hidden;background-size:cover;background-position:center;box-shadow:0 10px 26px rgba(0,0,0,.35)}
.vthumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}.vc:hover .vthumb img,.sc:hover .vthumb img{transform:scale(1.07)}
.vthumb .shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.05) 40%,rgba(0,0,0,.75))}
.vthumb .ttl{position:absolute;left:12px;right:12px;bottom:10px;color:#fff;font-weight:800;font-size:17px;line-height:1.1;letter-spacing:-.02em;text-shadow:0 2px 10px rgba(0,0,0,.5);text-transform:uppercase}
.nx{position:absolute;top:10px;left:10px;font:800 13px 'Plus Jakarta Sans';padding:4px 9px;border-radius:9px;color:#fff;box-shadow:0 4px 12px rgba(0,0,0,.35)}
.plat{position:absolute;top:10px;right:10px;width:26px;height:26px;border-radius:8px;display:grid;place-items:center;font-size:11px;font-weight:800;color:#fff;box-shadow:0 4px 12px rgba(0,0,0,.35)}
.vc .vt{font-weight:700;font-size:14.5px;margin-top:10px;line-height:1.35;color:#f2f0f7}.vc .vm{color:#8f8b9e;font-size:12.5px;margin-top:3px}
.sc{flex:0 0 190px;scroll-snap-align:start;cursor:pointer;transition:transform .3s var(--ease)}.sc:hover{transform:translateY(-4px)}.sc .vthumb{aspect-ratio:9/16;border-radius:20px}.sc .vthumb .ttl{font-size:14px;text-transform:none;font-weight:700}.sc .views{position:absolute;left:12px;bottom:46px;color:#fff;font-weight:800;font-size:20px;text-shadow:0 2px 10px rgba(0,0,0,.6)}
.two-v{display:grid;grid-template-columns:1.25fr 1fr;gap:20px}
.panel{background:#17161d;border:1px solid rgba(255,255,255,.06);border-radius:26px;padding:20px 22px}
.rs{width:100%;border-collapse:collapse;font-family:'Plus Jakarta Sans'}.rs th{font:700 12px 'Plus Jakarta Sans';color:#8f8b9e;text-transform:none;letter-spacing:0;border-bottom:1px solid rgba(255,255,255,.06);padding:10px 8px;cursor:pointer}.rs td{padding:13px 8px;border-bottom:1px solid rgba(255,255,255,.05);font-size:14.5px}.rs tr:last-child td{border:0}.rs td.g{color:#4ee08a;font-weight:800;text-align:right}.rs th.r,.rs td.r{text-align:right}
.rs .kw{font-weight:700}.rs .num{font-variant-numeric:tabular-nums;color:#d7d4e2}
.creators{display:grid;grid-template-columns:1fr 1fr;gap:12px}.cr{display:flex;align-items:center;gap:12px;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.06);border-radius:18px;padding:12px 14px;transition:.25s var(--ease);cursor:pointer}.cr:hover{background:rgba(255,255,255,.07);transform:translateY(-2px)}
.av{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;font-weight:800;color:#111;flex:none;font-size:15px}.cr b{display:block;font-size:14.5px}.cr small{color:#8f8b9e;font-size:12.5px}.cr .up2{margin-left:auto;font-weight:800;color:#4ee08a;font-size:13px;background:rgba(78,224,138,.1);padding:4px 9px;border-radius:999px}
.journey{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.js{border-radius:22px;padding:18px;cursor:pointer;position:relative;transition:transform .3s var(--ease)}.js:hover{transform:translateY(-3px)}.js .e{font-size:28px}.js b{display:block;font-size:17px;font-weight:800;margin-top:8px;letter-spacing:-.01em}.js small{font-size:12.5px;font-weight:600;opacity:.75}.js .n{position:absolute;top:16px;right:18px;font-weight:800;font-size:26px;letter-spacing:-.03em}
.js:not(:last-child):after{content:"→";position:absolute;right:-12px;top:50%;transform:translateY(-50%);color:#5d5a6b;font-size:14px;z-index:2}
.badge-s{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:999px;font-weight:800;font-size:12.5px}
/* trend page */
.collage{display:grid;grid-template-columns:2fr 1fr 1fr;grid-template-rows:150px 150px;gap:12px;margin:18px 0 24px}.collage .vthumb{aspect-ratio:auto;height:100%;border-radius:22px}.collage .vthumb:first-child{grid-row:span 2}
.why{font-size:20px;font-weight:600;line-height:1.5;color:#e9e6f2;background:linear-gradient(135deg,rgba(200,255,77,.12),rgba(90,209,255,.08));border:1px solid rgba(200,255,77,.2);border-radius:22px;padding:18px 22px;margin-bottom:22px}.why b{color:#c8ff4d}
.kv4{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:22px}.kv4 .bc{cursor:default;padding:18px 20px}.kv4 .bc .big{font-size:44px;margin-top:8px}
.vchart{position:relative}.vchart svg{width:100%;display:block;overflow:visible}
.wh{display:flex;flex-direction:column;gap:14px}.whr{display:grid;grid-template-columns:36px 110px 1fr 54px;align-items:center;gap:12px;font-weight:700}.whr .tr2{height:14px;background:rgba(255,255,255,.06);border-radius:999px;overflow:hidden}.whr .tr2 div{height:100%;border-radius:999px;animation:grow 1s var(--ease) both;transform-origin:left}.whr .pi{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;color:#fff;font-weight:800;font-size:13px}
.ideas{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.idea{border-radius:24px;padding:20px;transition:transform .3s var(--ease)}.idea:hover{transform:translateY(-3px) rotate(.3deg)}.idea .e{font-size:30px}.idea b{display:block;font-size:17px;font-weight:800;margin:10px 0 6px;letter-spacing:-.01em}.idea p{font-size:14px;font-weight:500;opacity:.8;line-height:1.5}
.back{color:#9c98ab;text-decoration:none;font-weight:600;font-size:14px}.back:hover{color:#fff}
.vstar{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.1);color:#fff;border-radius:999px;padding:9px 16px;font:700 13.5px 'Plus Jakarta Sans';cursor:pointer;transition:.2s}.vstar:hover{background:rgba(255,255,255,.12)}.vstar.on{background:#c8ff4d;color:#111;border-color:#c8ff4d}
/* brief */
.bcards{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.bcard{border-radius:28px;overflow:hidden;display:grid;grid-template-columns:150px 1fr;min-height:180px;cursor:pointer;transition:transform .35s var(--ease),box-shadow .35s}.bcard:hover{transform:translateY(-4px);box-shadow:0 24px 50px rgba(0,0,0,.4)}
.bcard .ill{position:relative;display:grid;place-items:center;font-size:58px}.bcard .ill:after{content:"";position:absolute;inset:16px;border-radius:22px;background:rgba(255,255,255,.18)}.bcard .ill span{position:relative;z-index:1;filter:drop-shadow(0 6px 10px rgba(0,0,0,.25))}
.bcard .bt{padding:22px 24px}.bcard .tag2{font-weight:800;font-size:12px;text-transform:uppercase;letter-spacing:.8px;opacity:.7}.bcard h3{font-size:21px;font-weight:800;letter-spacing:-.02em;margin:6px 0 8px;line-height:1.2}.bcard p{font-size:14.5px;line-height:1.55;font-weight:500;opacity:.82}
.grid-v{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.grid-v .vc{flex:none}
@media (max-width:1100px){.bento{grid-template-columns:1fr 1fr;grid-template-rows:auto}.two-v,.bcards{grid-template-columns:1fr}.journey{grid-template-columns:repeat(3,1fr)}.grid-v{grid-template-columns:repeat(2,1fr)}.vsearch{width:auto}.vsearch{display:none}}
@media (max-width:760px){.pills{display:none!important}.journey,.kv4,.ideas{grid-template-columns:1fr 1fr}.collage{grid-template-columns:1fr 1fr}.bcard{grid-template-columns:1fr}.bcard .ill{height:110px}.toggle button{width:92px;padding:7px 8px}.toggle .knob{width:92px}html[data-mode=terminal] .toggle .knob{transform:translateX(92px)}html[data-mode=visual] main{padding:18px}.grid-v{grid-template-columns:1fr}}
.pills a:before{display:none!important}.vsearch span{font-size:15px}
.sc .views{bottom:40px}.sc .vthumb .ttl{display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.cr b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cr>div{min-width:0}
.tlabel{font:11px var(--mono);color:var(--t3);letter-spacing:.6px;display:flex;align-items:center}html[data-mode=visual] .tlabel{display:none}
