Nabid Nur
feat: deep-dive upgrade — BPE merge lab, byte anatomy, special tokens, tokenizer comparison, semantic embeddings (one-hot x E, cosine calculator, dim-by-dim table), 3D embedding space with live analogy, 3D PE landscape, 3D multi-head tower, interactive QKV inspector (25+ visualizations)
8bf176a
Raw History Blame Contribute Delete
19.8 kB
/* ============ Attention, Fully Explained — design system ============ */
:root{
--bg0:#050b16; --bg1:#0a1628; --panel:#0c1a33; --panel2:#101f3d;
--line:rgba(122,180,255,.16); --line2:rgba(122,180,255,.32);
--txt:#e3edff; --mut:#93a7cc; --dim:#6b7fa8;
--cy:#3fe0ff; --vi:#8f7bff; --go:#ffcf6e; --pk:#ff6ec7; --gr:#5ef2b8;
--grad:linear-gradient(100deg,#3fe0ff 0%,#8f7bff 55%,#ff6ec7 100%);
--shadow:0 18px 50px rgba(2,8,23,.55);
--r:16px;
--f-bn:'Hind Siliguri','Noto Sans Bengali',sans-serif;
--f-disp:'Space Grotesk','Hind Siliguri',sans-serif;
--f-mono:'JetBrains Mono',ui-monospace,monospace;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--bg0);color:var(--txt);font-family:var(--f-bn);font-size:16.5px;line-height:1.85;overflow-x:hidden;
background-image:radial-gradient(1200px 700px at 80% -10%,rgba(63,224,255,.07),transparent 60%),radial-gradient(900px 600px at -10% 40%,rgba(143,123,255,.08),transparent 60%)}
body.lang-bn{line-height:2.02}
::selection{background:rgba(63,224,255,.35)}
a{color:var(--cy);text-decoration:none}
a:hover{text-decoration:underline}
img,canvas,svg{max-width:100%}
.wrap{max-width:1180px;margin:0 auto;padding:0 22px}
.mono{font-family:var(--f-mono)}
.sup{font-size:.62em;vertical-align:super}
/* ---------- top nav ---------- */
#nav{position:fixed;top:0;left:0;right:0;z-index:60;backdrop-filter:blur(14px);
background:rgba(5,11,22,.72);border-bottom:1px solid var(--line)}
#nav .bar{display:flex;align-items:center;gap:14px;height:58px}
.logo{font-family:var(--f-disp);font-weight:700;font-size:17px;letter-spacing:.4px;white-space:nowrap;color:var(--txt)}
.logo b{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.navlinks{display:flex;gap:2px;overflow-x:auto;scrollbar-width:none;flex:1}
.navlinks::-webkit-scrollbar{display:none}
.nl{color:var(--mut);font-size:13.5px;padding:6px 10px;border-radius:9px;white-space:nowrap;border:1px solid transparent}
.nl:hover{color:var(--txt);text-decoration:none;background:rgba(63,224,255,.08)}
.nl.on{color:#04121f;background:var(--cy);font-weight:600}
.langbtn{cursor:pointer;border:1px solid var(--line2);background:linear-gradient(135deg,rgba(63,224,255,.16),rgba(143,123,255,.16));
color:var(--txt);font-family:var(--f-disp);font-weight:600;font-size:13.5px;padding:7px 14px;border-radius:11px;white-space:nowrap;transition:.2s}
.langbtn:hover{border-color:var(--cy);box-shadow:0 0 18px rgba(63,224,255,.25)}
#progress{position:fixed;top:58px;left:0;height:2.5px;width:0;background:var(--grad);z-index:61}
/* ---------- sections ---------- */
.sec{padding:88px 0 30px;position:relative}
.sec::before{content:attr(data-kicker);display:block;font-family:var(--f-disp);font-size:12.5px;letter-spacing:1.5px;
text-transform:uppercase;color:var(--cy);margin-bottom:10px}
.sec h2{font-family:var(--f-disp);font-size:clamp(26px,4vw,40px);line-height:1.25;margin-bottom:6px}
body.lang-bn .sec h2{font-family:var(--f-bn);font-weight:700}
.sec h2::after{content:"";display:block;width:72px;height:3px;background:var(--grad);border-radius:3px;margin-top:14px}
.lead{color:var(--mut);max-width:860px;margin-top:14px;font-size:16.5px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
@media(max-width:940px){.grid2,.grid3{grid-template-columns:1fr}}
.card{background:linear-gradient(180deg,var(--panel),rgba(10,20,40,.65));border:1px solid var(--line);
border-radius:var(--r);padding:20px 22px;box-shadow:var(--shadow)}
.card h3{font-size:18px;margin-bottom:8px}
.card h3 .en{color:var(--cy)}
.story{border-left:3px solid var(--cy);background:linear-gradient(90deg,rgba(63,224,255,.08),rgba(63,224,255,.015));
border-radius:0 14px 14px 0;padding:16px 20px;margin:18px 0}
.story .tag{font-family:var(--f-disp);font-size:11.5px;letter-spacing:1.5px;text-transform:uppercase;color:var(--cy);display:block;margin-bottom:4px}
details.deep{border:1px dashed var(--line2);border-radius:14px;padding:0 18px;margin:16px 0;background:rgba(10,22,45,.5)}
details.deep summary{cursor:pointer;padding:13px 0;font-weight:600;color:var(--vi);list-style:none}
details.deep summary::before{content:"▸ ";color:var(--vi)}
details.deep[open] summary::before{content:"▾ "}
details.deep .inner{padding:2px 0 16px;color:var(--mut)}
.viz-frame{background:rgba(4,10,22,.6);border:1px solid var(--line);border-radius:14px;padding:14px;position:relative;overflow:hidden}
.viz-frame .cap{font-size:13px;color:var(--dim);margin-top:8px;text-align:center}
canvas.viz{display:block;width:100%;border-radius:8px}
.note{font-size:13.5px;color:var(--dim)}
.hl-cy{color:var(--cy);font-weight:600}.hl-vi{color:var(--vi);font-weight:600}.hl-go{color:var(--go);font-weight:600}.hl-pk{color:var(--pk);font-weight:600}.hl-gr{color:var(--gr);font-weight:600}
/* ---------- controls ---------- */
.controls{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:14px 0}
.btn{cursor:pointer;border:1px solid var(--line2);background:rgba(63,224,255,.07);color:var(--txt);
font-family:inherit;font-size:14.5px;padding:8px 16px;border-radius:11px;transition:.18s}
.btn:hover{border-color:var(--cy);background:rgba(63,224,255,.14)}
.btn.primary{background:var(--grad);color:#04121f;border:none;font-weight:700}
.btn.primary:hover{filter:brightness(1.12);box-shadow:0 6px 24px rgba(63,224,255,.3)}
.btn.sm{font-size:12.5px;padding:5px 11px;border-radius:9px}
.btn.on{background:rgba(143,123,255,.25);border-color:var(--vi)}
select,input[type=text]{background:var(--panel2);border:1px solid var(--line2);color:var(--txt);
font-family:inherit;font-size:15px;padding:9px 12px;border-radius:11px;outline:none}
input[type=text]{flex:1;min-width:200px}
input[type=text]:focus{border-color:var(--cy)}
input[type=range]{-webkit-appearance:none;appearance:none;height:5px;border-radius:5px;background:linear-gradient(90deg,var(--cy),var(--vi));outline:none;cursor:pointer}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:17px;height:17px;border-radius:50%;background:#fff;border:3px solid var(--cy);box-shadow:0 0 10px rgba(63,224,255,.6)}
label.rng{display:flex;align-items:center;gap:9px;font-size:14px;color:var(--mut)}
label.rng .val{font-family:var(--f-mono);color:var(--cy);min-width:52px}
/* ---------- token chips ---------- */
.chips{display:flex;flex-wrap:wrap;gap:7px;margin:10px 0}
.tok{display:inline-flex;flex-direction:column;align-items:center;cursor:pointer;border-radius:9px;padding:5px 10px 3px;
background:rgba(63,224,255,.1);border:1px solid rgba(63,224,255,.3);transition:.15s}
.tok .t{font-size:15.5px}
.tok .id{font-family:var(--f-mono);font-size:10px;color:var(--dim)}
.tok:hover,.tok.q{background:rgba(143,123,255,.28);border-color:var(--vi);transform:translateY(-2px)}
.tok.k{background:rgba(94,242,184,.16);border-color:rgba(94,242,184,.45)}
.tok.sub{background:rgba(255,207,110,.12);border-color:rgba(255,207,110,.4)}
/* ---------- timeline ---------- */
.tl{position:relative;margin:26px 0;padding-left:30px}
.tl::before{content:"";position:absolute;left:9px;top:6px;bottom:6px;width:2px;background:linear-gradient(180deg,var(--cy),var(--vi),var(--pk));opacity:.5}
.tl-item{position:relative;margin-bottom:18px}
.tl-item::before{content:"";position:absolute;left:-27px;top:12px;width:12px;height:12px;border-radius:50%;
background:var(--bg1);border:3px solid var(--cy);box-shadow:0 0 12px rgba(63,224,255,.5)}
.tl-item .yr{font-family:var(--f-disp);font-weight:700;color:var(--go);font-size:15px}
.tl-item h4{display:inline;font-size:16.5px;margin-left:8px}
.tl-item p{color:var(--mut);font-size:14.8px;margin-top:4px;max-width:860px}
/* ---------- tables ---------- */
table.tb{width:100%;border-collapse:collapse;font-size:14.5px}
table.tb th{color:var(--cy);text-align:left;font-weight:600;border-bottom:1px solid var(--line2);padding:9px 10px}
table.tb td{border-bottom:1px solid var(--line);padding:8px 10px;vertical-align:top;color:var(--mut)}
table.tb td:first-child{color:var(--txt);font-weight:600;white-space:nowrap}
/* ---------- math ---------- */
.mathbox{background:rgba(4,10,22,.65);border:1px solid var(--line);border-radius:14px;padding:16px 20px;margin:12px 0;overflow-x:auto}
.katex{font-size:1.06em}
.mstep{margin:10px 0}
.mstep .st{color:var(--cy);font-weight:600;font-size:14.5px;display:block;margin-bottom:3px}
/* ---------- video grid ---------- */
.video-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:20px}
.vcard{background:var(--panel);border:1px solid var(--line);border-radius:14px;overflow:hidden;transition:.2s}
.vcard:hover{border-color:var(--line2);transform:translateY(-3px)}
.vcard .fr{position:relative;padding-top:56.25%;background:#000}
.vcard iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.vcard .vbody{padding:13px 15px}
.vcard .vt{font-weight:600;font-size:15px;margin-bottom:3px}
.vcard .vc{font-size:12.5px;color:var(--go);font-family:var(--f-disp);letter-spacing:.5px}
.vcard .vw{font-size:13.5px;color:var(--mut);margin-top:5px}
/* ---------- credit cards ---------- */
.credit-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(255px,1fr));gap:16px}
.ccard{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:16px 18px;transition:.2s;display:block;color:var(--txt)}
.ccard:hover{border-color:var(--cy);transform:translateY(-3px);text-decoration:none}
.ccard .cn{font-weight:700;font-size:15.5px;color:var(--cy)}
.ccard .cd{font-size:13.5px;color:var(--mut);margin-top:5px}
.ccard .cu{font-size:12px;color:var(--dim);font-family:var(--f-mono);margin-top:8px;word-break:break-all}
/* ---------- hero ---------- */
#hero{min-height:100svh;display:flex;align-items:center;position:relative;overflow:hidden;padding:110px 0 60px}
#heroCanvas{position:absolute;inset:0;opacity:.8}
.hero-in{position:relative;z-index:2}
.kick{font-family:var(--f-disp);letter-spacing:1.5px;font-size:13px;text-transform:uppercase;color:var(--cy)}
#hero h1{font-family:var(--f-disp);font-size:clamp(38px,6.4vw,74px);line-height:1.08;margin:16px 0 6px;font-weight:700}
#hero h1 .g{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
body.lang-bn #hero h1{font-family:var(--f-bn)}
#hero .h2l{font-size:clamp(20px,3vw,30px);color:var(--mut);font-weight:500;margin-bottom:18px}
#hero p.sub{max-width:780px;color:var(--mut);font-size:17px}
.stat-row{display:flex;flex-wrap:wrap;gap:10px;margin:26px 0}
.stat{border:1px solid var(--line2);border-radius:12px;padding:9px 16px;background:rgba(10,22,45,.6);font-size:14px}
.stat b{font-family:var(--f-disp);color:var(--cy);font-size:17px;margin-right:6px}
.cta-row{display:flex;gap:13px;flex-wrap:wrap}
.scroll-hint{position:absolute;bottom:22px;left:50%;transform:translateX(-50%);color:var(--dim);font-size:12.5px;letter-spacing:2px;z-index:2;animation:bob 2.2s ease-in-out infinite}
@keyframes bob{0%,100%{transform:translate(-50%,0)}50%{transform:translate(-50%,8px)}}
/* ---------- pipeline steps ---------- */
.steps{display:flex;flex-wrap:wrap;gap:7px;margin:14px 0}
.stepchip{cursor:pointer;font-size:13px;padding:6px 13px;border-radius:999px;border:1px solid var(--line);color:var(--mut);background:rgba(10,22,45,.55);transition:.15s}
.stepchip.done{border-color:rgba(94,242,184,.4);color:var(--gr)}
.stepchip.on{background:var(--grad);color:#04121f;font-weight:700;border-color:transparent}
.pipe-desc{min-height:96px}
/* ---------- 3d ---------- */
.three-wrap{position:relative;height:460px;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:radial-gradient(700px 380px at 50% 20%,rgba(63,224,255,.06),transparent 65%),#040a18}
.three-wrap canvas{display:block}
.three-hint{position:absolute;top:10px;left:12px;font-size:12px;color:var(--dim);background:rgba(5,11,22,.55);padding:4px 10px;border-radius:8px;pointer-events:none}
.three-hint.right{left:auto;right:12px}
#archInfo{position:absolute;right:12px;bottom:12px;width:min(330px,60%);background:rgba(6,13,28,.92);border:1px solid var(--line2);
border-radius:12px;padding:13px 16px;font-size:13.5px;color:var(--mut);backdrop-filter:blur(6px)}
#archInfo b{color:var(--cy)}
#surfTip{position:fixed;z-index:80;display:none;background:rgba(6,13,28,.94);border:1px solid var(--line2);border-radius:9px;
padding:7px 11px;font-size:13px;pointer-events:none;color:var(--txt)}
.legend{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;justify-content:center}
.lg-item{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:var(--mut);background:rgba(10,22,45,.5);border:1px solid var(--line);border-radius:8px;padding:3px 9px}
.lg-dot{width:10px;height:10px;border-radius:3px}
/* ---------- heatmap colorbar ---------- */
.colorbar{height:10px;border-radius:6px;margin-top:8px;background:linear-gradient(90deg,#0b1e3d,#1450a3,#22b8f0,#7ef0ff,#fff8b0);border:1px solid var(--line)}
.colorbar-row{display:flex;justify-content:space-between;font-size:11px;color:var(--dim);font-family:var(--f-mono);margin-top:3px}
/* ---------- glossary filter ---------- */
#glosSearch{width:100%;max-width:420px;margin-bottom:14px}
/* ---------- footer ---------- */
footer{border-top:1px solid var(--line);margin-top:70px;padding:36px 0 44px;color:var(--dim);font-size:14px}
footer .fgrid{display:flex;flex-wrap:wrap;gap:20px;justify-content:space-between;align-items:center}
/* ---------- reveal ---------- */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s ease}
.reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.reveal{transition:none;opacity:1;transform:none}.scroll-hint{animation:none}}
/* ---------- QKV cards ---------- */
.qkv{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:18px 0}
@media(max-width:940px){.qkv{grid-template-columns:1fr}}
.qkv .qc{border-radius:14px;padding:18px;border:1px solid var(--line);position:relative;overflow:hidden}
.qkv .qc::before{content:"";position:absolute;top:0;left:0;right:0;height:3px}
.qkv .q::before{background:var(--cy)}.qkv .k::before{background:var(--gr)}.qkv .v::before{background:var(--go)}
.qkv .big{font-family:var(--f-disp);font-size:30px;font-weight:700}
.qkv .q .big{color:var(--cy)}.qkv .k .big{color:var(--gr)}.qkv .v .big{color:var(--go)}
.qkv .role{color:var(--mut);font-size:14px;margin-top:6px}
@media(max-width:600px){#nav .bar{height:52px}.logo span.lg-txt{display:none}}
/* ============ deep-dive additions (v2) ============ */
.subh{font-family:var(--f-disp);font-size:11.5px;letter-spacing:1.2px;text-transform:uppercase;
color:var(--dim);margin:12px 0 7px}
.chiprow{display:flex;flex-wrap:wrap;gap:5px;max-height:150px;overflow:auto;padding:2px}
.wchip{font-family:var(--f-mono);font-size:11.5px;color:var(--mut);background:rgba(63,224,255,.06);
border:1px solid var(--line);border-radius:8px;padding:3px 8px;white-space:nowrap}
.wchip b{color:#7ef0ff;font-weight:600}
.wchip i{color:var(--dim);font-style:normal;opacity:.5;margin:0 1px}
.pairrow{display:flex;align-items:center;gap:9px;margin:5px 0;font-size:13px}
.pairrow .pp{color:var(--txt);min-width:74px;text-align:right}
.pairrow .pbar{flex:1;height:9px;background:rgba(63,224,255,.07);border-radius:6px;overflow:hidden}
.pairrow .pbar span{display:block;height:100%;border-radius:6px;
background:linear-gradient(90deg,#1450a3,#22b8f0)}
.pairrow.nx .pbar span{background:linear-gradient(90deg,#c9942a,#ffcf6e)}
.pairrow.nx .pp{color:var(--go)}
.pairrow .pc{color:var(--dim);min-width:34px}
.pairrow .ptag{color:var(--go);font-weight:700}
.vchip{display:inline-block;font-size:12px;margin:2px;padding:2.5px 8px;border-radius:8px;
background:rgba(63,224,255,.07);border:1px solid var(--line);color:var(--mut)}
.vchip.fresh{background:rgba(255,207,110,.16);border-color:var(--go);color:var(--go);
box-shadow:0 0 12px rgba(255,207,110,.25)}
/* byte anatomy */
.byteRow{display:flex;flex-wrap:wrap;gap:4px;align-items:center;margin:8px 0}
.bcell{cursor:pointer;display:inline-flex;flex-direction:column;align-items:center;gap:1px;
min-width:34px;padding:5px 6px 3px;border-radius:9px;border:1px solid rgba(63,224,255,.28);
background:rgba(63,224,255,.07);color:var(--txt);font-family:inherit;transition:.15s}
.bcell .bc{font-size:16px;line-height:1.2}
.bcell .bn{font-size:9.5px;color:var(--dim)}
.bcell.multi{background:rgba(255,207,110,.1);border-color:rgba(255,207,110,.42)}
.bcell.multi .bn{color:var(--go)}
.bcell:hover{transform:translateY(-2px);border-color:var(--cy)}
.bcell.sel{background:rgba(143,123,255,.3);border-color:var(--vi);box-shadow:0 0 14px rgba(143,123,255,.35)}
.bspace{width:10px}
.bytehex{color:var(--go);letter-spacing:1px;font-size:14px}
.bc-big{font-size:22px;color:var(--cy)}
/* special tokens */
.spec-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(215px,1fr));gap:12px;margin-top:12px}
.stok{border:1px solid var(--line);border-radius:12px;padding:13px 15px;background:rgba(10,22,45,.45)}
.stok .st{color:var(--go);font-size:14px;margin-bottom:5px}
.stok p{font-size:13px;color:var(--mut);line-height:1.65;margin:0}
/* tokenizer comparison */
.cmprow{display:flex;align-items:center;gap:11px;margin:9px 0}
.cmprow .ck{min-width:172px;font-size:13.5px;color:var(--mut)}
.cmprow .cbar{flex:1;height:16px;background:rgba(63,224,255,.06);border-radius:8px;overflow:hidden}
.cmprow .cbar span{display:block;height:100%;border-radius:8px;opacity:.85;transition:width .3s}
.cmprow .cn{min-width:34px;text-align:right;color:var(--txt);font-size:14px}
/* vector table */
.vt td{font-size:12.5px;padding:5px 8px}
.vbar{position:relative;display:block;height:10px;border-radius:6px;background:rgba(63,224,255,.07);overflow:hidden}
.vbar span{position:absolute;top:0;bottom:0;border-radius:6px}
.vbar i{position:absolute;top:-2px;bottom:-2px;width:1.5px;background:rgba(147,167,204,.6)}
/* one-hot × E */
.ohstrip{display:flex;gap:5px;flex-wrap:wrap}
.ohone{min-width:44px;text-align:center;padding:5px 4px;border-radius:8px;font-size:12.5px;
background:rgba(63,224,255,.06);border:1px solid var(--line);color:var(--dim)}
.ohone.hot{background:rgba(255,207,110,.2);border-color:var(--go);color:var(--go);font-weight:700;
box-shadow:0 0 12px rgba(255,207,110,.3)}
.ohone.r{background:rgba(94,242,184,.09);border-color:rgba(94,242,184,.4);color:var(--gr)}
.ohgrid{display:flex;flex-direction:column;gap:3px;margin:6px 0}
.ohrow{display:flex;gap:5px;padding:2px;border-radius:8px;transition:.25s}
.ohrow.hit{background:rgba(255,207,110,.13);outline:1px solid rgba(255,207,110,.5)}
.ohrow.hit .ohc{color:var(--go)}
.ohc{flex:1;min-width:44px;text-align:center;font-size:11px;color:var(--dim);
background:rgba(63,224,255,.045);border-radius:6px;padding:3.5px 2px}
.ohlab{flex:0 0 44px;font-size:11.5px;color:var(--mut);display:inline-flex;align-items:center}
.ohlab.hitl{color:var(--go);font-weight:700}
.cosrow .cv.mono{font-size:10.5px;line-height:1.55}
.ohgrid.anim .ohrow.hit{animation:ohpulse 1s ease}
.ohstrip.flash .ohone.hot{animation:ohpulse 1s ease}
@keyframes ohpulse{0%{box-shadow:0 0 0 rgba(255,207,110,0)}40%{box-shadow:0 0 22px rgba(255,207,110,.75)}100%{box-shadow:0 0 0 rgba(255,207,110,0)}}
/* cosine calculator */
.cosrow{display:flex;justify-content:space-between;gap:12px;align-items:baseline;
border-bottom:1px dashed var(--line);padding:6px 0;font-size:13px}
.cosrow .cl{color:var(--mut);white-space:nowrap}
.cosrow .cv{text-align:right;color:var(--txt);word-break:break-all}
.cosrow.big .cv{font-size:14.5px}
.cosverdict{margin-top:10px;border:1px solid;border-radius:11px;padding:9px 13px;
font-size:13.5px;background:rgba(10,22,45,.5)}
@media(max-width:940px){.cmprow .ck{min-width:118px}.cosrow{flex-direction:column;gap:2px}}