/*! tailwindcss v4.1.13 | MIT License | https://tailwindcss.com */@layer properties{@supports ((-webkit-hyphens:none) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}.visible{visibility:visible}.sr-only{clip-path:inset(50%);border-width:0}.absolute{position:absolute}.relative{position:relative}.static{position:static}.container{width:100%}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.table{display:table}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.resize{resize:both}.border{border-style:var(--tw-border-style);border-width:1px}.ordinal{--tw-ordinal:ordinal;font-variant-numeric:var(--tw-ordinal,)var(--tw-slashed-zero,)var(--tw-numeric-figure,)var(--tw-numeric-spacing,)var(--tw-numeric-fraction,)}.underline{text-decoration-line:underline}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,ease);transition-duration:var(--tw-duration,0s)}:root{color-scheme:light;--bg:#faf9f5;--panel:#f0efe8;--text:#141413;--muted:#6b6963;--accent:#d97757;--accent-blue:#6a9bcc;--accent-green:#788c5d;--border:#e8e6dc;--border-hover:#b0aea5;--card-bg:#fff;--card-border:#e8e6dc;--header-h:68px;--mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;--bg-rgb:250,249,245;--shadow-strength:.06;--preview-blend:multiply;--viz-surface:#fff;--viz-grid:#ece9e2;--viz-axis:#c9c5ba;--viz-ink:#141413;--viz-ink-muted:#6b6963;--viz-seq-zero:#fff;--viz-seq-max:#7a3f2a;--viz-series-1:#d97757;--viz-series-2:#2f7cbf;--viz-rank-1:#852b05;--viz-rank-2:#a24626;--viz-rank-3:#c06141;--viz-rank-4:#df7c5c;--viz-rank-5:#fe9977;--viz-good:#4f7a2e;--viz-warn:#b8791b}@media (prefers-color-scheme:dark){:root:where(:not([data-theme=light])){color-scheme:dark;--bg:#161512;--panel:#201f1b;--text:#f2f0e9;--muted:#a3a096;--accent:#e08a68;--accent-blue:#7fb0dd;--accent-green:#96ab74;--border:#302e28;--border-hover:#4d4a41;--card-bg:#201f1b;--card-border:#302e28;--viz-surface:#201f1b;--viz-grid:#2f2d27;--viz-axis:#4a473f;--viz-ink:#f2f0e9;--viz-ink-muted:#a3a096;--viz-seq-zero:#201f1b;--viz-seq-max:#ffb391;--viz-series-1:#d37252;--viz-series-2:#398ad6;--viz-rank-1:#ffc0ab;--viz-rank-2:#fd9776;--viz-rank-3:#df7c5c;--viz-rank-4:#c26243;--viz-rank-5:#a64929;--viz-good:#8fbf63;--viz-warn:#e0a53c;--bg-rgb:22,21,18;--shadow-strength:.5;--preview-blend:screen}}:root[data-theme=dark]{color-scheme:dark;--bg:#161512;--panel:#201f1b;--text:#f2f0e9;--muted:#a3a096;--accent:#e08a68;--accent-blue:#7fb0dd;--accent-green:#96ab74;--border:#302e28;--border-hover:#4d4a41;--card-bg:#201f1b;--card-border:#302e28;--viz-surface:#201f1b;--viz-grid:#2f2d27;--viz-axis:#4a473f;--viz-ink:#f2f0e9;--viz-ink-muted:#a3a096;--viz-seq-zero:#201f1b;--viz-seq-max:#ffb391;--viz-series-1:#d37252;--viz-series-2:#398ad6;--viz-rank-1:#ffc0ab;--viz-rank-2:#fd9776;--viz-rank-3:#df7c5c;--viz-rank-4:#c26243;--viz-rank-5:#a64929;--viz-good:#8fbf63;--viz-warn:#e0a53c;--bg-rgb:22,21,18;--shadow-strength:.5;--preview-blend:screen}*{box-sizing:border-box}body,html{background:var(--bg);color:var(--text);scroll-behavior:smooth;margin:0;padding:0;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,Helvetica Neue,Arial,Apple Color Emoji,Segoe UI Emoji}#ripple-overlay{z-index:0;pointer-events:none;--rx:60%;--ry:20%;background:radial-gradient(800px 800px at var(--rx)var(--ry),#d977570f,#d9775700 70%);position:fixed;inset:0}a{color:inherit;text-decoration:none}.container{width:min(1200px,92vw);margin:0 auto}header.site-header{z-index:100;background:linear-gradient(180deg,rgba(var(--bg-rgb),.92),rgba(var(--bg-rgb),.8) 60%,rgba(var(--bg-rgb),0));backdrop-filter:blur(10px);border-bottom:1px solid var(--border);transition:background .2s,border-color .2s,box-shadow .2s;position:fixed;top:0;left:0;right:0}header.site-header.scrolled{background:rgba(var(--bg-rgb),.95);backdrop-filter:blur(12px);border-bottom-color:var(--border-hover);box-shadow:0 4px 16px rgba(0,0,0,var(--shadow-strength))}.nav-bar{justify-content:space-between;padding:12px 0}.nav-bar,.nav-left{align-items:center;display:flex}.nav-left{flex-wrap:wrap;gap:18px}.nav-right{align-items:center;gap:14px;display:flex}.nav-links .nav-link{color:var(--muted);letter-spacing:.06em;align-items:center;gap:8px;font-size:13px;line-height:1;display:inline-flex}.nav-links .nav-link:hover{color:var(--accent)}.icon-link{color:var(--muted);display:inline-flex}.icon-link:hover{color:var(--accent)}.icon-link{position:relative}.icon-link:after{content:attr(aria-label);background:var(--text);color:var(--bg);border:1px solid var(--border);white-space:nowrap;opacity:0;visibility:hidden;pointer-events:none;z-index:60;border-radius:8px;padding:6px 8px;font-size:12px;line-height:1;transition:opacity .18s,transform .18s,visibility .18s;position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%)translateY(6px);box-shadow:0 4px 12px #0000001a}.icon-link:hover:after{opacity:1;visibility:visible;transform:translate(-50%)translateY(0)}.social-link{color:var(--muted);opacity:.9}.social-link:hover{color:var(--accent);opacity:1}.btn{border:1px solid var(--border);color:var(--text);background:var(--card-bg);border-radius:999px;padding:8px 14px}.btn-primary,.btn:hover{border-color:var(--accent);color:var(--accent)}.btn-primary{box-shadow:inset 0 0 0 2px #d977571a}main{z-index:1;padding-top:var(--header-h);position:relative;overflow-x:hidden}.section{scroll-margin-top:var(--header-h);padding-block:clamp(2.5rem,5vh,4rem)}.section+.section{border-top:1px solid var(--border);margin-block-start:0}section.section:nth-of-type(odd){background:linear-gradient(#f0efe84d,#f0efe81a)}section.section:nth-of-type(2n){background:0 0}.reveal{opacity:0;transition:all .6s;transform:translateY(18px)}.reveal.show{opacity:1;transform:translateY(0)}.hero,.hero-stack{text-align:center;place-items:center;display:grid}.hero-stack{gap:12px}.hero-grid{grid-template-columns:1.2fr 1fr;align-items:center;gap:36px;display:grid}.content-grid{grid-template-columns:2fr 1fr;gap:36px;display:grid}@media (max-width:900px){.hero-grid{text-align:center;grid-template-columns:1fr}.hero-left{place-items:center;display:grid}.content-grid{grid-template-columns:1fr}}@media (max-width:600px){:root{--header-h:56px}.nav-left{gap:12px}.nav-right{gap:10px}.nav-links .nav-link{font-size:12px}}.hero-cta{flex-wrap:wrap;gap:12px;margin-top:18px;display:flex}.hero-right{place-items:center;display:grid;position:relative}.avatar-circle{aspect-ratio:1;border:2px solid var(--accent);border-radius:50%;width:min(420px,72vw)}@supports (color:color-mix(in lab,red,red)){.avatar-circle{border:2px solid color-mix(in oklab,var(--accent)50%,transparent)}}.avatar-circle{position:relative;overflow:hidden;box-shadow:inset 0 0 0 6px #d977570f,0 10px 30px #00000014,0 0 15px 5px #d9775714}.hero-right:after,.hero-right:before{content:"";pointer-events:none;z-index:0;border:2px solid #d977571f;border-radius:50%;width:clamp(300px,36vw,560px);height:clamp(300px,36vw,560px);animation:ripple-pulse 4s ease-out infinite;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)scale(.6)}.hero-right:after{opacity:.9;animation-delay:2s}@keyframes ripple-pulse{0%{opacity:.3;transform:translate(-50%,-50%)scale(.6)}70%{opacity:.06}to{opacity:0;transform:translate(-50%,-50%)scale(1.6)}}.hero-title{color:var(--muted);letter-spacing:.02em;font-size:clamp(22px,4vw,28px)}.hero-name{background:linear-gradient(90deg,var(--accent),var(--accent-blue));color:#0000;-webkit-background-clip:text;background-clip:text;margin-top:10px;font-size:clamp(36px,7vw,58px);font-weight:700}.hero-nav{flex-wrap:wrap;gap:20px;display:flex;position:absolute;bottom:24px;left:50%;transform:translate(-50%)}.hero-nav a{color:var(--muted)}.hero-nav a:hover,.section-title{color:var(--text)}.section-title{align-items:center;gap:10px;margin-bottom:18px;font-size:clamp(26px,4vw,32px);display:flex}.section-ico{color:var(--accent);flex-shrink:0}.about-name{background:0 0;-webkit-background-clip:initial;background-clip:initial;color:var(--text);font-size:clamp(28px,5.5vw,44px);font-weight:800;line-height:1.08}.about-titles{color:var(--muted);margin-top:8px;font-size:clamp(16px,2.7vw,18px)}.about-summary{color:var(--muted);width:100%;max-width:none;margin-top:18px;font-family:Lora,Georgia,serif;font-size:clamp(16px,2.2vw,18px);line-height:1.75}.about-card{grid-column:1/2}.about-card,.skills-card{align-self:start}.skills-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}@media (min-width:600px){.skills-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (min-width:1000px){.skills-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.skill-ico{aspect-ratio:1;border:1px solid var(--border);background:var(--bg);color:var(--text);letter-spacing:.02em;border-radius:12px;place-items:center;font-weight:600;display:grid;position:relative}.skill-ico .lbl{opacity:.9;font-size:14px}.skill-ico:hover{border-color:var(--accent)}.skill-ico:after{content:attr(aria-label);background:var(--text);color:var(--bg);border:1px solid var(--border);white-space:nowrap;opacity:0;visibility:hidden;pointer-events:none;z-index:5;border-radius:8px;padding:6px 8px;font-size:12px;line-height:1;transition:opacity .18s,transform .18s,visibility .18s;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)translateY(6px);box-shadow:0 4px 12px #0000001a}.skill-ico:hover:after{opacity:1;visibility:visible;transform:translate(-50%)translateY(0)}.skill-ico.pytorch{box-shadow:inset 0 0 0 2px #ef44441f}.skill-ico.sklearn{box-shadow:inset 0 0 0 2px #f59e0b1f}.skill-ico.scipy{box-shadow:inset 0 0 0 2px #3b82f61f}.skill-ico.pandas{box-shadow:inset 0 0 0 2px #6366f11f}.skill-ico.numpy{box-shadow:inset 0 0 0 2px #3b82f61f}.skill-ico.fea{box-shadow:inset 0 0 0 2px #14b8a61f}.skill-ico.python{box-shadow:inset 0 0 0 2px #eab3081f}.skill-ico.open3d{box-shadow:inset 0 0 0 2px #0284c71f}.skill-ico.trimesh{box-shadow:inset 0 0 0 2px #a855f71f}.grid-two{grid-template-columns:1fr;gap:28px;display:grid}@media (min-width:900px){.grid-two{grid-template-columns:1fr 1fr}}.card{border:1px solid var(--card-border);border-radius:16px;padding:18px;box-shadow:0 1px 3px #0000000a}.card,.pop-card{background:var(--card-bg)}.pop-card{transition:border-color .2s,box-shadow .25s,transform .2s,background .25s;position:relative;overflow:hidden}.pop-card:after{content:"";opacity:0;pointer-events:none;background:radial-gradient(600px 200px at 20% 0,#d977570f,#d9775700);transition:opacity .25s;position:absolute;inset:-20% -30% -30% -20%}.pop-card:hover{background:var(--card-bg);border-color:#d9775759;box-shadow:0 8px 24px #0000000f,inset 0 0 0 2px #d9775714}.pop-card:hover:after{opacity:1}.box-title{color:var(--text);align-items:center;gap:10px;margin-bottom:12px;font-size:clamp(18px,3.2vw,22px);font-weight:700;display:inline-flex}.box-title .ico{color:var(--accent);opacity:.95}.list{gap:10px;display:grid}.muted{color:var(--muted)}.contact-card{padding:24px}.contact-card-header{justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:20px;display:flex}.contact-kicker{color:var(--accent);letter-spacing:.12em;text-transform:uppercase;margin-bottom:10px;font-size:12px;font-weight:700}.contact-intro{max-width:62ch;margin:0;font-size:15px;line-height:1.75}.contact-availability{color:var(--accent);letter-spacing:.03em;background:#d9775714;border:1px solid #d977573d;border-radius:999px;flex-shrink:0;padding:8px 12px;font-size:12px;font-weight:600}.contact-methods{gap:12px;display:grid}.contact-method{border:1px solid var(--border);background:linear-gradient(180deg,var(--card-bg),var(--panel));border-radius:14px;align-items:center;gap:14px;padding:16px 18px;transition:border-color .2s,transform .2s,box-shadow .2s;display:flex}.contact-method:hover{border-color:#d9775759;transform:translateY(-1px);box-shadow:0 8px 20px #0000000d}.contact-icon{width:44px;height:44px;color:var(--accent);background:#d977571a;border-radius:12px;flex-shrink:0;place-items:center;display:grid}.contact-copy{flex-direction:column;gap:4px;min-width:0;display:flex}.contact-label{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:12px;font-weight:700}.contact-value{color:var(--text);overflow-wrap:anywhere;font-size:16px}@media (max-width:700px){.contact-card{padding:20px}.contact-card-header{flex-direction:column;margin-bottom:16px}.contact-method{align-items:flex-start}}footer{text-align:center;color:var(--muted);padding:24px 0 40px}.featured-projects{position:relative}.fp-list{gap:18px;display:grid}.fp-item{border:1px solid var(--card-border);background:var(--card-bg);border-radius:16px;grid-template-columns:1fr min(42%,520px);gap:22px;padding:18px;transition:border-color .2s,background .2s,transform .2s,box-shadow .2s;display:grid;position:relative;overflow:hidden;box-shadow:0 1px 3px #0000000a}.fp-item:hover{border-color:#d9775733;box-shadow:0 0 40px #d977570f,0 0 80px #d9775708}.fp-content{z-index:2;position:relative}.fp-accent{background:linear-gradient(90deg,var(--accent),var(--accent-blue),transparent 78%);opacity:.9;height:2px;position:absolute;inset:0 0 auto}.fp-meta{align-items:center;gap:10px;margin-bottom:6px;display:flex}.fp-category{letter-spacing:.08em;margin-bottom:8px;font-size:12px}.badge,.fp-category{color:var(--accent);text-transform:uppercase}.badge{letter-spacing:.06em;background:#d977571a;border:1px solid #d977574d;border-radius:999px;padding:4px 8px;font-size:11px}.fp-title{margin:4px 0 8px;font-size:clamp(20px,3.6vw,26px);font-weight:700}.fp-tagline{color:var(--text);margin-bottom:10px;font-size:15px}.fp-bullets,.fp-desc{line-height:1.7}.fp-bullets{margin:0;padding:0 0 0 18px;font-size:14px}.fp-bullets li{margin-bottom:6px}.fp-bullets li:last-child{margin-bottom:0}.fp-tags{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.chip{color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:999px;padding:6px 10px;font-size:12px}.chip-tech{color:var(--muted);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.chip:hover{border-color:var(--accent)}.fp-link{color:var(--accent);margin-top:16px;font-size:14px;display:inline-flex}.fp-link:hover{color:var(--text)}.fp-preview{border:1px solid var(--border);background:conic-gradient(from 0deg,#d977570f,#6a9bcc0f,#788c5d0f),radial-gradient(220px 160px at 60% 40%,#d977571a,#d9775700 60%),radial-gradient(260px 200px at 40% 60%,#6a9bcc1a,#6a9bcc00 60%),var(--panel);border-radius:12px;position:relative;overflow:hidden}.fp-item:hover .fp-preview{box-shadow:0 6px 16px #0000000f,inset 0 0 0 2px #d977571a}.fp-preview:after{content:"";mix-blend-mode:var(--preview-blend);opacity:0;background:radial-gradient(1200px 160px at 10% 10%,#d977570f,#d9775700);transition:opacity .25s;position:absolute;inset:0}.fp-item:hover .fp-preview:after{opacity:1}@media (max-width:900px){.fp-item{grid-template-columns:1fr}}.nav-links .nav-link{border-radius:8px;padding:6px 8px;position:relative}.nav-links .nav-link:after{content:"";opacity:0;pointer-events:none;background:radial-gradient(120px 120px at 50% 100%,#d977571a,#d9775700);border-radius:8px;transition:opacity .25s;position:absolute;inset:0}.nav-links .nav-link:hover:after{opacity:1}.we-role{margin-bottom:36px}.we-role:last-child{margin-bottom:0}.we-role-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;padding-bottom:12px;display:flex}.we-company{color:var(--text);font-size:clamp(18px,3vw,22px);font-weight:700}.we-title{margin-top:2px;font-size:14px}.we-meta{text-align:right;white-space:nowrap;flex-direction:column;gap:2px;font-size:13px;display:flex}.we-project.fp-item{grid-template-columns:1fr}.we-video{border-radius:12px;min-height:200px;overflow:hidden}.we-video-pair{grid-template-columns:1fr 1fr;align-self:stretch;gap:12px;display:grid}.we-video-cell{flex-direction:column;gap:6px;display:flex}.we-video-label{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);text-align:center;font-size:11px;font-weight:600}@media (max-width:600px){.we-role-header{flex-direction:column}.we-meta{text-align:left}.we-video-pair{grid-template-columns:1fr}}.edu-grid{gap:16px;display:grid}@media (min-width:600px){.edu-grid{grid-template-columns:1fr 1fr}}.edu-card{border:1px solid var(--card-border);background:var(--card-bg);border-radius:16px;padding:20px;transition:border-color .2s;box-shadow:0 1px 3px #0000000a}.edu-card:hover{border-color:#d9775759}.edu-school{color:var(--text);font-size:18px;font-weight:700}.edu-degree{color:var(--muted);margin-top:4px;font-size:14px}.edu-meta{color:var(--muted);justify-content:space-between;margin-top:8px;font-size:13px;display:flex}.theme-toggle{cursor:pointer;color:var(--muted);background:0 0;border:none;padding:0;line-height:0}.theme-toggle:hover{color:var(--accent)}.theme-toggle-slot{width:20px;height:20px;display:inline-block}.lab{width:min(1180px,92vw);margin:0 auto;padding-bottom:96px}.lab-hero{padding:clamp(28px,6vh,56px) 0 8px}.lab-back{color:var(--muted);align-items:center;gap:6px;margin-bottom:20px;font-size:13px;display:inline-flex}.lab-back:hover{color:var(--accent)}.lab-title{letter-spacing:-.02em;margin:0;font-size:clamp(30px,5.5vw,46px);font-weight:700}.lab-title .acc{color:var(--accent)}.lab-sub{color:var(--muted);max-width:62ch;margin:12px 0 0;font-size:clamp(15px,2.2vw,17px);line-height:1.6}.lab-act{scroll-margin-top:calc(var(--header-h) + 16px);margin-top:clamp(48px,8vh,88px)}.lab-eyebrow{letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:10px;font-size:11px;font-weight:700}.lab-h2{letter-spacing:-.01em;margin:0 0 10px;font-size:clamp(22px,3.4vw,30px);font-weight:700}.lab-lede{color:var(--muted);max-width:68ch;margin:0 0 22px;font-size:15px;line-height:1.65}.lab-note{color:var(--muted);margin-top:14px;font-size:13px;line-height:1.6}.lab-body code,.lab-lede code,.lab-note code{font-family:var(--mono);background:var(--accent);font-size:.92em}@supports (color:color-mix(in lab,red,red)){.lab-body code,.lab-lede code,.lab-note code{background:color-mix(in srgb,var(--accent)12%,transparent)}}.lab-body code,.lab-lede code,.lab-note code{color:var(--accent);border-radius:4px;padding:1px 5px}.lab-body{color:var(--text);max-width:68ch;font-size:15px;line-height:1.7}.lab-body p{margin:0 0 14px}.lab-panel{background:var(--card-bg);border:1px solid var(--card-border);border-radius:16px;padding:clamp(14px,2.4vw,22px)}.stat-row{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-top:26px;display:grid}.stat{background:var(--card-bg);border:1px solid var(--card-border);border-radius:12px;padding:14px 16px}.stat-value{letter-spacing:-.02em;font-size:clamp(19px,2.6vw,24px);font-weight:700}.stat-value .unit{color:var(--muted);margin-left:3px;font-size:.62em;font-weight:600}.stat-label{color:var(--muted);margin-top:4px;font-size:11.5px;line-height:1.4}.pill-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.pill{cursor:pointer;color:var(--muted);border:1px solid var(--border);background:0 0;border-radius:999px;padding:7px 12px;font:600 12px/1 inherit;transition:all .15s}.pill:hover{border-color:var(--border-hover);color:var(--text)}.pill.on,.pill[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:#fff}.ctl-label{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:7px;font-size:10.5px;font-weight:700;display:block}.ctl-group{margin-bottom:14px}.ctl-bar{flex-wrap:wrap;align-items:flex-start;gap:22px;display:flex}.sq-btn{cursor:pointer;width:30px;height:30px;font:600 12px/1 var(--mono);color:var(--muted);border:1px solid var(--border);background:0 0;border-radius:7px;transition:all .12s}.sq-btn:hover{border-color:var(--border-hover);color:var(--text)}.sq-btn[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:#fff}:where(.pill,.sq-btn,.theme-toggle,.hcard,.tok,.gen-tok):focus-visible{outline:2px solid var(--accent);outline-offset:2px}.tok-strip{flex-wrap:wrap;gap:3px;display:flex}.tok{font-family:var(--mono);cursor:pointer;border:1px solid var(--border);background:var(--bg);color:var(--text);white-space:pre;border-radius:5px;padding:4px 6px;font-size:11px;transition:all .12s}.tok:hover{border-color:var(--border-hover)}.tok.special{color:var(--accent);background:var(--accent)}@supports (color:color-mix(in lab,red,red)){.tok.special{background:color-mix(in srgb,var(--accent)10%,transparent)}}.tok.special{border-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.tok.special{border-color:color-mix(in srgb,var(--accent)26%,transparent)}}.tok.sel{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:700}.attn-wrap{position:relative}.attn-canvas{border-radius:8px;width:100%;height:auto;display:block}.attn-overlay{width:100%;height:100%;position:absolute;inset:0}.hgrid{grid-template-columns:repeat(auto-fill,minmax(74px,1fr));gap:8px;display:grid}.hcard{border:1px solid var(--border);background:var(--viz-surface);cursor:pointer;text-align:left;border-radius:10px;flex-direction:column;gap:5px;padding:6px;transition:all .12s;display:flex}.hcard:hover{border-color:var(--border-hover);transform:translateY(-1px)}.hcard[aria-pressed=true]{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent)}@supports (color:color-mix(in lab,red,red)){.hcard[aria-pressed=true]{box-shadow:0 0 0 2px color-mix(in srgb,var(--accent)26%,transparent)}}.hcard.dim{opacity:.32}.hcard canvas{width:100%;height:auto;image-rendering:pixelated;border-radius:4px;display:block}.hcard-id{font:600 10px/1 var(--mono);color:var(--muted)}.hcard-tag{color:var(--accent);font-size:9.5px;font-weight:600;line-height:1.25}.legend{color:var(--muted);align-items:center;gap:10px;font-size:11.5px;display:flex}.legend-bar{border:1px solid var(--border);border-radius:3px;width:132px;height:10px}.tip{pointer-events:none;z-index:20;background:var(--card-bg);border:1px solid var(--border-hover);box-shadow:0 6px 20px rgba(0,0,0,calc(var(--shadow-strength)*2));white-space:nowrap;font-size:12px;line-height:1.5;font-family:var(--mono);border-radius:8px;padding:8px 10px;position:absolute}.tip b{color:var(--accent);font-weight:700}.bar-row{align-items:center;gap:9px;margin-bottom:6px;display:flex}.bar-rank{text-align:right;width:20px;font:400 11px/1 var(--mono);color:var(--muted)}.bar-track{background:var(--bg);border:1px solid var(--border);border-radius:6px;flex:1;height:26px;position:relative;overflow:hidden}.bar-fill{border-radius:5px 0 0 5px;height:100%;transition:width .28s}.bar-tok{color:var(--viz-ink);font-size:12px;inset:0 auto 0 9px}.bar-pct,.bar-tok{font-family:var(--mono);align-items:center;display:flex;position:absolute}.bar-pct{color:var(--muted);font-size:11px;inset:0 9px 0 auto}.gen-out{font-family:var(--mono);min-height:260px;max-height:420px;padding:4px 2px;font-size:13px;line-height:1.95;overflow-y:auto}.gen-tok{cursor:pointer;white-space:pre-wrap;border-radius:3px;padding:1px 0}.gen-tok.prompt{color:var(--muted)}.gen-tok:hover{outline:1px solid var(--accent)}.gen-caret{vertical-align:-2px;background:var(--accent);width:7px;height:15px;animation:blink 1s steps(2) infinite;display:inline-block}@keyframes blink{50%{opacity:0}}.gen-bar{flex-wrap:wrap;align-items:center;gap:12px;margin-top:14px;display:flex}.gen-scrub{accent-color:var(--accent);flex:220px}.chart-svg{width:100%;height:auto;display:block;overflow:visible}.chart-legend{flex-wrap:wrap;gap:18px;margin-bottom:12px;font-size:12.5px;display:flex}.chart-key{color:var(--muted);align-items:center;gap:7px;display:inline-flex}.chart-swatch{border-radius:3px;flex-shrink:0;width:11px;height:11px}.tbl-toggle{color:var(--muted);cursor:pointer;text-underline-offset:3px;background:0 0;border:none;padding:6px 0;font-size:12px;text-decoration:underline}.tbl-toggle:hover{color:var(--accent)}.tbl-scroll{max-height:320px;margin-top:10px;overflow-x:auto}.tbl{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:12px}.tbl td,.tbl th{text-align:right;border-bottom:1px solid var(--border);white-space:nowrap;padding:5px 10px}.tbl th{color:var(--muted);text-align:right;font-weight:600}.tbl td:first-child,.tbl th:first-child{text-align:left;font-family:var(--mono)}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.lab-split{grid-template-columns:1fr;gap:18px;display:grid}@media (min-width:900px){.lab-split{grid-template-columns:minmax(0,1.55fr) minmax(0,1fr)}.lab-split.even{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}@media (prefers-reduced-motion:reduce){.gen-caret{animation:none}.bar-fill,.hcard,.pill,.sq-btn,.tok{transition:none}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}