:root{--bg: #0e0e0e;--bg-elev: #151515;--bg-card: #181818;--border: #262626;--border-strong: #353535;--fg: #e8e8e6;--fg-dim: #a8a8a4;--fg-faint: #6a6a66;--accent: #7cff6b;--accent-dim: #4ea13f;--accent-bg: rgba(124, 255, 107, .08);--accent-on: #0e0e0e;--warn: #ffc857;--danger: #ff6b6b;--font-mono: "JetBrains Mono", "SF Mono", ui-monospace, Menlo, monospace;--font-sans: "Inter", "Helvetica Neue", Helvetica, Arial, sans-serif;--font-display: "Inter", "Helvetica Neue", Helvetica, sans-serif;--r-sm: 4px;--r-md: 6px;--r-lg: 10px;--container: 1200px}[data-theme=light]{--bg: #f6f5f1;--bg-elev: #ffffff;--bg-card: #ffffff;--border: #e6e3dc;--border-strong: #c8c4ba;--fg: #14130f;--fg-dim: #55534c;--fg-faint: #8b887f;--accent: #2a7f1e;--accent-dim: #1f5c16;--accent-bg: rgba(42, 127, 30, .08);--accent-on: #ffffff}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--fg);font-family:var(--font-sans);font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow:hidden;height:100%;overscroll-behavior:none}.page-scroller{position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden}.page-scroller-track{height:100%;will-change:transform}.page-scroller-page{height:100vh;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scrollbar-width:none}.page-scroller-page::-webkit-scrollbar{display:none}body{min-height:100vh;background-image:radial-gradient(1200px 600px at 85% -10%,var(--accent-bg),transparent 60%),radial-gradient(800px 500px at 5% 110%,var(--accent-bg),transparent 60%)}a{color:var(--fg);text-decoration:none}a:hover{color:var(--accent)}::selection{background:var(--accent);color:var(--bg)}.mono{font-family:var(--font-mono);font-feature-settings:"ss01","cv01"}.dim{color:var(--fg-dim)}.faint{color:var(--fg-faint)}.accent{color:var(--accent)}.container{max-width:var(--container);margin:0 auto;padding:0 32px}.section-label{font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);display:inline-flex;align-items:center;gap:10px}.section-label:before{content:"";width:6px;height:6px;background:var(--accent);display:inline-block;box-shadow:0 0 0 2px var(--accent-bg)}.section-title{font-family:var(--font-display);font-size:clamp(32px,4vw,54px);font-weight:600;letter-spacing:-.02em;line-height:1.05;margin:18px 0 6px}.section-sub{font-size:16px;color:var(--fg-dim);max-width:60ch;margin:0}.section{padding:110px 0;position:relative}.topbar{position:fixed;top:0;left:0;right:0;z-index:40;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);background:color-mix(in oklab,var(--bg) 78%,transparent);border-bottom:1px solid var(--border)}.topbar-inner{max-width:var(--container);margin:0 auto;padding:12px 32px;display:flex;align-items:center;justify-content:space-between;font-family:var(--font-mono);font-size:12px}.topbar-left{display:flex;align-items:center;gap:10px;color:var(--fg-dim)}.topbar-left .dot{width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 10px var(--accent);animation:pulse 2.4s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}.topbar-nav{display:flex;gap:24px;color:var(--fg-dim)}.topbar-nav a{color:inherit;transition:color .15s ease}.topbar-nav a:hover,.topbar-nav a.active{color:var(--accent)}.topbar-right{display:flex;gap:8px;align-items:center}.btn{font-family:var(--font-mono);font-size:12px;padding:8px 14px;border:1px solid var(--border-strong);background:var(--bg-elev);color:var(--fg);border-radius:var(--r-sm);cursor:pointer;display:inline-flex;align-items:center;gap:8px;transition:all .15s ease}.btn:hover{border-color:var(--accent);color:var(--accent)}.btn.ghost{background:transparent}.btn.primary{background:var(--accent);color:#0e0e0e;border-color:var(--accent);font-weight:600}.btn.primary:hover{background:transparent;color:var(--accent)}.btn.icon-only{padding:8px;width:34px;height:34px;justify-content:center}.hero{min-height:100vh;display:flex;flex-direction:column;justify-content:center;position:relative;padding-top:100px;padding-bottom:80px}.hero-grid{display:grid;grid-template-columns:1fr 280px;gap:48px;align-items:end}@media (max-width: 900px){.hero-grid{grid-template-columns:1fr}}.hero-meta{font-family:var(--font-mono);font-size:12px;color:var(--fg-dim);display:flex;flex-direction:column;gap:6px;margin-bottom:28px}.hero-meta .k{color:var(--fg-faint)}.hero-meta .v{color:var(--fg)}.hero-name{font-family:var(--font-display);font-size:clamp(64px,12vw,180px);font-weight:600;letter-spacing:-.04em;line-height:.9;margin:0}.hero-name .first,.hero-name .last{display:block;overflow:hidden}.hero-name .inner{display:inline-block;transform:translateY(110%);animation:riseIn 1.1s cubic-bezier(.2,.8,.2,1) forwards}.hero-name .last .inner{animation-delay:.15s}@keyframes riseIn{to{transform:translateY(0)}}.hero-role{margin-top:24px;display:flex;align-items:baseline;gap:16px;flex-wrap:wrap;font-family:var(--font-mono);font-size:14px;color:var(--fg-dim)}.hero-role .tag{border:1px solid var(--border-strong);padding:4px 10px;border-radius:999px;color:var(--fg)}.hero-role .tag.live{border-color:var(--accent);color:var(--accent);display:inline-flex;align-items:center;gap:8px}.hero-role .tag.live .dot{width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 8px var(--accent);animation:pulse 2.4s ease-in-out infinite}.hero-tagline{margin-top:24px;font-size:clamp(18px,2vw,24px);color:var(--fg-dim);max-width:52ch;line-height:1.4;opacity:0;animation:fadeUp .9s ease .7s forwards}@keyframes fadeUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.hero-actions{margin-top:36px;display:flex;gap:10px;flex-wrap:wrap;opacity:0;animation:fadeUp .9s ease .9s forwards}.hero-side{display:flex;flex-direction:column;gap:16px;opacity:0;animation:fadeUp .9s ease 1.1s forwards}.hero-stat{border:1px solid var(--border);background:var(--bg-elev);padding:16px;border-radius:var(--r-md);font-family:var(--font-mono)}.hero-stat .num{font-size:32px;font-weight:600;color:var(--accent);letter-spacing:-.02em;line-height:1}.hero-stat .lbl{margin-top:6px;font-size:11px;color:var(--fg-faint);text-transform:uppercase;letter-spacing:.08em}.hero-scrollhint{position:absolute;bottom:32px;left:32px;font-family:var(--font-mono);font-size:11px;color:var(--fg-faint);display:flex;align-items:center;gap:10px;letter-spacing:.08em;text-transform:uppercase;opacity:0;animation:fadeUp 1s ease 1.4s forwards}.hero-scrollhint .line{width:56px;height:1px;background:var(--fg-faint);position:relative;overflow:hidden}.hero-scrollhint .line:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--accent);transform:translate(-100%);animation:sweep 2.5s ease-in-out infinite}@keyframes sweep{0%{transform:translate(-100%)}50%{transform:translate(100%)}to{transform:translate(100%)}}.timeline-wrap{position:relative;margin-top:40px}.timeline-header{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:18px;flex-wrap:wrap}.timeline-counter{font-family:var(--font-mono);display:flex;align-items:baseline;gap:6px;color:var(--fg-faint)}.timeline-counter .tl-idx{font-size:40px;font-weight:600;color:var(--accent);letter-spacing:-.02em;line-height:1;font-variant-numeric:tabular-nums}.timeline-counter .tl-sep{font-size:24px;color:var(--fg-faint);line-height:1}.timeline-counter .tl-total{font-size:22px;color:var(--fg-dim);font-variant-numeric:tabular-nums;line-height:1}.timeline-counter .tl-label{font-size:11px;text-transform:uppercase;letter-spacing:.15em;color:var(--fg-faint);margin-left:14px;padding-bottom:2px}@media (max-width: 640px){.timeline-counter .tl-label{display:none}}.timeline-nav{display:flex;align-items:center;gap:8px}.tl-nav-btn{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:12px;padding:8px 14px;background:var(--bg-elev);border:1px solid var(--border-strong);border-radius:var(--r-sm);color:var(--fg-dim);cursor:pointer;transition:all .15s ease;letter-spacing:.05em}.tl-nav-btn:hover:not(:disabled){background:var(--accent);color:var(--accent-on);border-color:var(--accent);transform:translateY(-1px)}.tl-nav-btn:disabled{opacity:.35;cursor:not-allowed}.tl-nav-btn svg{flex-shrink:0}.tl-hint{font-family:var(--font-mono);font-size:10px;color:var(--fg-faint);letter-spacing:.1em;margin-left:4px;padding:4px 8px;border:1px dashed var(--border);border-radius:3px}@media (max-width: 640px){.tl-hint{display:none}}.timeline-scrub{position:relative;border:1px solid var(--border);background:linear-gradient(180deg,var(--bg-elev),var(--bg));border-radius:var(--r-md);padding:36px 24px 22px}.timeline-years{position:relative;height:16px;margin-bottom:10px}.tl-year{position:absolute;transform:translate(-50%);font-family:var(--font-mono);font-size:11px;color:var(--fg-dim);letter-spacing:.08em;font-variant-numeric:tabular-nums}.timeline-gridlines{position:absolute;left:24px;right:24px;top:46px;pointer-events:none}.tl-gridline{position:absolute;top:0;bottom:0;width:1px;background:var(--border);opacity:.55}.timeline-track{position:relative;margin-top:2px}@keyframes tlBarIn{0%{opacity:0;transform:translateY(4px) scaleX(.96)}to{opacity:1;transform:translateY(0) scaleX(1)}}.timeline-bar{position:absolute;background:var(--bg-card);border:1px solid var(--border-strong);border-radius:6px;cursor:pointer;transition:background .18s ease,border-color .18s ease,color .18s ease,transform .18s ease,box-shadow .18s ease;overflow:hidden;display:flex;align-items:center;justify-content:space-between;padding:0 12px;font-family:var(--font-mono);font-size:12px;color:var(--fg-dim);white-space:nowrap;transform-origin:left center;animation:tlBarIn .4s cubic-bezier(.2,.7,.2,1) both;text-align:left;min-width:24px}.timeline-bar .tl-bar-company{font-weight:600;letter-spacing:.02em;overflow:hidden;text-overflow:ellipsis}.timeline-bar .tl-bar-dur{font-size:10px;color:var(--fg-faint);letter-spacing:.08em;margin-left:10px;flex-shrink:0}.timeline-bar:hover{background:var(--bg-hover, rgba(255,255,255,.04));border-color:var(--accent);color:var(--fg);transform:translateY(-2px);box-shadow:0 6px 20px #00000040;z-index:2}.timeline-bar:hover .tl-bar-dur{color:var(--fg-dim)}.timeline-bar.active{background:var(--accent);color:var(--accent-on);border-color:var(--accent);z-index:3;box-shadow:0 0 0 3px var(--accent-bg),0 8px 24px #0000004d;transform:translateY(-2px)}.timeline-bar.active .tl-bar-dur{color:var(--accent-on);opacity:.75}.timeline-bar.current:before{content:"";position:absolute;right:4px;top:4px;bottom:4px;width:3px;border-radius:2px;background:var(--accent);opacity:.5;animation:pulse 1.8s ease-in-out infinite}.timeline-bar.current.active:before{background:var(--accent-on);opacity:.4}@keyframes pulse{0%,to{opacity:.25}50%{opacity:.9}}.timeline-playhead{position:absolute;top:18px;width:0;pointer-events:none;z-index:4;transition:left .35s cubic-bezier(.2,.7,.2,1)}.tl-playhead-dot{position:absolute;top:-6px;left:50%;transform:translate(-50%);width:10px;height:10px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px var(--bg-elev),0 0 12px var(--accent)}.tl-playhead-dot:after{content:"";position:absolute;top:10px;left:50%;transform:translate(-50%);width:1px;height:100%;background:linear-gradient(180deg,var(--accent),transparent);opacity:.4}.timeline-now-marker{position:absolute;top:46px;width:1px;background:repeating-linear-gradient(180deg,var(--accent) 0 3px,transparent 3px 6px);opacity:.7;pointer-events:none}.tl-now-label{position:absolute;top:-22px;left:50%;transform:translate(-50%);font-family:var(--font-mono);font-size:9px;font-weight:600;color:var(--accent);letter-spacing:.18em;padding:2px 5px;border:1px solid var(--accent);border-radius:2px;background:var(--bg-elev);white-space:nowrap}@keyframes tlDetailIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.timeline-detail{margin-top:32px;display:grid;grid-template-columns:160px 1fr;gap:36px;border-top:1px solid var(--border);padding-top:32px;animation:tlDetailIn .35s ease both}@media (max-width: 700px){.timeline-detail{grid-template-columns:1fr;gap:14px}}.timeline-detail .side{font-family:var(--font-mono);font-size:12px;color:var(--fg-faint);display:flex;flex-direction:column;gap:6px}.timeline-detail .side .date{color:var(--accent);font-size:13px;font-weight:500;letter-spacing:.02em}.timeline-detail .side .duration{font-size:11px;padding:3px 8px;border:1px solid var(--border-strong);border-radius:3px;width:fit-content;color:var(--fg-dim);letter-spacing:.06em}.timeline-detail .side .location{color:var(--fg-faint);margin-top:2px}.timeline-detail .main .role-line{font-family:var(--font-mono);font-size:12px;color:var(--fg-dim);margin-bottom:10px;letter-spacing:.04em}.timeline-detail .main h3{font-family:var(--font-display);font-size:28px;font-weight:600;letter-spacing:-.01em;margin:0 0 8px}.timeline-detail .main .summary{color:var(--fg-dim);max-width:70ch;margin:0 0 14px}.timeline-detail .main ul{list-style:none;padding:0;margin:0 0 16px;font-size:14px;color:var(--fg)}.timeline-detail .main ul li{position:relative;padding-left:18px;margin-bottom:6px}.timeline-detail .main ul li:before{content:"→";position:absolute;left:0;color:var(--accent);font-family:var(--font-mono)}.timeline-detail .stack{display:flex;flex-wrap:wrap;gap:6px}.chip{font-family:var(--font-mono);font-size:11px;padding:3px 8px;border:1px solid var(--border-strong);border-radius:999px;color:var(--fg-dim);background:var(--bg);white-space:nowrap}.chip.solid{background:var(--accent);color:#0e0e0e;border-color:var(--accent)}.skills-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:48px;margin-top:48px}@media (max-width: 900px){.skills-grid{grid-template-columns:1fr}}.skill-list{display:flex;flex-direction:column;gap:14px}.skill-row{display:grid;grid-template-columns:160px 1fr 60px;gap:16px;align-items:center;font-family:var(--font-mono);font-size:13px}.skill-row .name{color:var(--fg)}.skill-row .years{text-align:right;color:var(--fg-faint);font-size:11px}.skill-row .track{position:relative;height:6px;background:var(--bg-elev);border:1px solid var(--border);border-radius:999px;overflow:hidden}.skill-row .fill{position:absolute;top:0;bottom:0;left:0;background:var(--accent);box-shadow:0 0 10px var(--accent-bg);width:0;transition:width 1.2s cubic-bezier(.2,.8,.2,1)}.skills-constellation{position:relative;aspect-ratio:1;border:1px solid var(--border);background:var(--bg-elev);border-radius:var(--r-md);overflow:hidden}.skills-constellation svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.const-node{font-family:var(--font-mono);font-size:11px;fill:var(--fg-dim);cursor:pointer}.const-node.core{fill:var(--fg)}.const-node.active{fill:var(--accent)}.const-line{stroke:var(--border-strong);stroke-width:1}.const-line.active{stroke:var(--accent)}.const-dot{fill:var(--fg-faint);transition:all .2s ease}.const-dot.core{fill:var(--accent)}.tools-row{margin-top:28px;display:flex;flex-wrap:wrap;gap:6px}.project-filters{display:flex;gap:8px;flex-wrap:wrap;margin-top:28px;padding:14px;border:1px solid var(--border);background:var(--bg-elev);border-radius:var(--r-md)}.filter-chip{font-family:var(--font-mono);font-size:11px;padding:6px 12px;border:1px solid var(--border-strong);background:var(--bg);color:var(--fg-dim);border-radius:var(--r-sm);cursor:pointer;transition:all .15s ease;display:inline-flex;align-items:center;gap:6px}.filter-chip:hover{color:var(--fg)}.filter-chip.active{background:var(--accent);color:#0e0e0e;border-color:var(--accent)}.filter-chip .count{font-size:10px;opacity:.7}.filter-label{font-family:var(--font-mono);font-size:11px;color:var(--fg-faint);letter-spacing:.1em;text-transform:uppercase;align-self:center;margin-right:4px}.projects-stack{margin-top:48px;display:flex;flex-direction:column}.project-block{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;padding:72px 0;border-top:1px solid var(--border);position:relative;opacity:0;transform:translateY(30px);transition:opacity .8s ease,transform .8s ease}.project-block.visible{opacity:1;transform:translateY(0)}.project-block.reverse{direction:rtl}.project-block.reverse>*{direction:ltr}@media (max-width: 900px){.project-block{grid-template-columns:1fr;gap:28px;padding:48px 0}.project-block.reverse{direction:ltr}}.project-block.hidden{display:none}.project-visual{aspect-ratio:4/3;background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--r-md);position:relative;overflow:hidden}.project-visual .label{position:absolute;top:12px;left:12px;font-family:var(--font-mono);font-size:10px;color:var(--fg-faint);letter-spacing:.1em;text-transform:uppercase;z-index:2;background:color-mix(in oklab,var(--bg-elev) 78%,transparent);padding:3px 6px;border-radius:3px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.project-photo{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:contain;object-position:center;padding:18px;background:radial-gradient(60% 60% at 50% 40%,color-mix(in oklab,var(--accent) 18%,transparent),transparent 70%),linear-gradient(180deg,var(--bg-card),var(--bg-elev));transition:transform .6s cubic-bezier(.2,.8,.2,1)}.project-block:hover .project-photo{transform:scale(1.03)}.project-info .idx{font-family:var(--font-mono);font-size:11px;color:var(--fg-faint);letter-spacing:.1em}.project-info h3{font-family:var(--font-display);font-size:clamp(32px,4vw,48px);font-weight:600;letter-spacing:-.02em;margin:8px 0 6px;line-height:1}.project-info .tagline{font-family:var(--font-mono);font-size:13px;color:var(--accent);margin-bottom:20px}.project-info .desc{color:var(--fg);margin-bottom:16px;line-height:1.6}.project-info .why{border-left:2px solid var(--accent);padding:4px 0 4px 14px;font-style:italic;color:var(--fg-dim);margin:16px 0 22px;font-size:14px}.project-info .meta{font-family:var(--font-mono);font-size:12px;color:var(--fg-dim);display:grid;grid-template-columns:80px 1fr;gap:4px 14px;margin-bottom:20px}.project-info .meta .k{color:var(--fg-faint)}.project-stack-row{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:18px}.project-links{display:flex;gap:14px;flex-wrap:wrap;font-family:var(--font-mono);font-size:12px}.project-links a{color:var(--fg);border-bottom:1px solid var(--border-strong);padding-bottom:2px;transition:all .15s ease}.project-links a:hover{color:var(--accent);border-color:var(--accent)}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:48px;margin-top:48px}@media (max-width: 900px){.two-col{grid-template-columns:1fr;gap:32px}}.card-stack{display:flex;flex-direction:column;gap:14px}.card{border:1px solid var(--border);background:var(--bg-elev);border-radius:var(--r-md);padding:22px;transition:all .2s ease}.card:hover{border-color:var(--border-strong)}.card .date{font-family:var(--font-mono);font-size:11px;color:var(--accent);letter-spacing:.08em;margin-bottom:10px}.card h4{font-size:18px;font-weight:600;margin:0 0 4px;letter-spacing:-.01em}.card .where{font-family:var(--font-mono);font-size:12px;color:var(--fg-dim);margin-bottom:8px}.card .note{color:var(--fg-dim);font-size:14px;margin:0}.col-title{font-family:var(--font-mono);font-size:11px;color:var(--fg-faint);letter-spacing:.12em;text-transform:uppercase;margin:0 0 18px;padding-bottom:10px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:10px}.col-title:before{content:"▸";color:var(--accent)}.ref-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;margin-top:40px}@media (max-width: 640px){.ref-grid{grid-template-columns:1fr}}.ref-card{border:1px solid var(--border);background:var(--bg-elev);padding:20px;border-radius:var(--r-md);transition:all .2s ease;display:flex;align-items:center;gap:18px}.ref-card:hover{border-color:var(--accent)}.ref-photo{width:88px;height:88px;border-radius:50%;object-fit:cover;flex-shrink:0;border:1px solid var(--border);background:var(--bg)}.ref-body{flex:1;min-width:0}.ref-card .name{font-size:16px;font-weight:600;margin-bottom:4px}.ref-card .title{font-family:var(--font-mono);font-size:11px;color:var(--fg-dim);margin-bottom:14px;line-height:1.4}.ref-card .contact{font-family:var(--font-mono);font-size:12px;display:flex;flex-direction:column;gap:6px}.ref-card .contact a{color:var(--fg-dim);transition:color .15s ease;display:inline-flex;align-items:center;gap:6px}.ref-card .contact a:hover{color:var(--accent)}.contact-section{border-top:1px solid var(--border);padding:120px 0;position:relative;min-height:100%;display:flex;align-items:center}.contact-section>.container{width:100%}.contact-inner{display:grid;grid-template-columns:1fr 360px;gap:64px;align-items:start}@media (max-width: 900px){.contact-inner{grid-template-columns:1fr}}.contact-huge{font-family:var(--font-display);font-size:clamp(48px,8vw,120px);font-weight:600;line-height:.95;letter-spacing:-.04em;margin:0 0 24px}.contact-huge .accent-dot{color:var(--accent)}.copyable{display:flex;flex-direction:column;gap:10px;font-family:var(--font-mono);font-size:13px}.copy-row{display:flex;align-items:center;gap:0;border:1px solid var(--border);background:var(--bg-elev);border-radius:var(--r-md);padding:4px 4px 4px 14px;transition:all .15s ease}.copy-row:hover{border-color:var(--accent)}.copy-row .k{font-size:11px;color:var(--fg-faint);letter-spacing:.1em;text-transform:uppercase;min-width:56px}.copy-row .v{flex:1;color:var(--fg);margin:0 10px;overflow:hidden;text-overflow:ellipsis}.copy-btn{font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;padding:8px 12px;border:none;background:transparent;color:var(--fg-faint);cursor:pointer;border-radius:var(--r-sm);transition:all .15s ease}.copy-btn:hover{background:var(--bg-card);color:var(--accent)}.copy-btn.copied{color:var(--accent)}.footer{padding:32px;border-top:1px solid var(--border);font-family:var(--font-mono);font-size:11px;color:var(--fg-faint);display:flex;justify-content:space-between;letter-spacing:.05em}.tweaks-panel{position:fixed;bottom:24px;right:24px;width:300px;background:var(--bg-elev);border:1px solid var(--border-strong);border-radius:var(--r-md);padding:16px;z-index:60;font-family:var(--font-mono);font-size:12px;box-shadow:0 20px 60px #0006;display:none}.tweaks-panel.open{display:block}.tweaks-panel h5{margin:0 0 14px;font-size:11px;color:var(--accent);letter-spacing:.15em;text-transform:uppercase;display:flex;justify-content:space-between;align-items:center}.tweaks-panel h5 button{background:none;border:none;color:var(--fg-faint);cursor:pointer;font-family:var(--font-mono);font-size:16px}.tweak-row{margin-bottom:14px}.tweak-row label{display:block;color:var(--fg-faint);font-size:10px;margin-bottom:6px;letter-spacing:.1em;text-transform:uppercase}.tweak-row .opts{display:flex;gap:4px;flex-wrap:wrap}.tweak-opt{flex:1;min-width:60px;padding:6px;background:var(--bg);border:1px solid var(--border);color:var(--fg-dim);font-family:var(--font-mono);font-size:11px;cursor:pointer;border-radius:var(--r-sm);transition:all .15s ease}.tweak-opt:hover{color:var(--fg)}.tweak-opt.active{background:var(--accent);color:#0e0e0e;border-color:var(--accent)}.tweak-swatch{width:28px;height:28px;border-radius:50%;border:2px solid var(--border);cursor:pointer;transition:all .15s ease;padding:0}.tweak-swatch.active{border-color:var(--fg);transform:scale(1.1)}.reveal{opacity:0;transform:translateY(24px);transition:opacity .8s ease,transform .8s ease}.reveal.visible{opacity:1;transform:translateY(0)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:5px}::-webkit-scrollbar-thumb:hover{background:var(--fg-faint)}
