:root,[data-theme=dark]{color-scheme:dark;--bg: #0c0c0d;--surface: #141416;--surface-2: #1d1d20;--line: rgba(255, 255, 255, .08);--line-strong: rgba(255, 255, 255, .18);--text: #f2f1ee;--muted: #9b9ba0;--faint: #47474c;--accent: #ff6b3d;--accent-soft: rgba(255, 107, 61, .14);--on-accent: #0c0c0d;--success: #3ecf8e;--danger: #ff6b6b;--shadow: 0 30px 80px -20px rgba(0, 0, 0, .65);--grid-line: rgba(255, 255, 255, .045)}[data-theme=light]{color-scheme:light;--bg: #f5f3ee;--surface: #ffffff;--surface-2: #ece9e2;--line: rgba(20, 20, 20, .09);--line-strong: rgba(20, 20, 20, .2);--text: #141414;--muted: #5d5d62;--faint: #bdbab2;--accent: #e4521f;--accent-soft: rgba(228, 82, 31, .1);--on-accent: #ffffff;--success: #12a46a;--danger: #d63c3c;--shadow: 0 30px 80px -30px rgba(40, 30, 20, .28);--grid-line: rgba(20, 20, 20, .05)}:root{--page-progress: 0;--container: 1200px;--gutter: clamp(16px, 4vw, 40px);--radius: 20px;--ease: cubic-bezier(.2, .8, .2, 1);--font-sans: "Inter Tight", system-ui, -apple-system, sans-serif;--font-serif: "Instrument Serif", Georgia, serif;--font-mono: "JetBrains Mono", ui-monospace, monospace}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:88px}body{margin:0;min-width:320px;font-family:var(--font-sans);font-size:16px;line-height:1.6;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;overflow-x:hidden;transition:background-color .4s ease,color .4s ease}body.menu-open{overflow:hidden}::selection{background:var(--accent);color:var(--on-accent)}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit;color:inherit}button{cursor:pointer}h1,h2,h3,p{margin:0}ul,ol{margin:0;padding:0;list-style:none}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:6px}kbd{font-family:var(--font-mono);font-size:11px;padding:2px 6px;border:1px solid var(--line-strong);border-radius:6px;color:var(--muted);background:var(--surface-2)}.mono{font-family:var(--font-mono);font-size:13px;letter-spacing:.02em}.muted{color:var(--muted)}.accent{color:var(--accent)}.label{font-family:var(--font-mono);font-size:12px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);margin-bottom:18px}.app-shell{position:relative;overflow-x:clip}.progress-bar{position:fixed;inset:0 0 auto;height:2px;background:var(--accent);transform:scaleX(var(--page-progress));transform-origin:left;z-index:100}.noise{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:90;opacity:.035;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}.button{display:inline-flex;align-items:center;gap:10px;padding:14px 24px;border-radius:999px;border:1px solid transparent;font-weight:600;font-size:15px;transition:background-color .3s var(--ease),color .3s var(--ease),border-color .3s var(--ease)}.button svg{transition:transform .35s var(--ease)}.button:hover svg{transform:translate(2px,-2px)}.button-primary{background:var(--accent);color:var(--on-accent)}.button-primary:hover{background:var(--text);color:var(--bg)}.button-primary:disabled{opacity:.6;cursor:progress}.button-ghost{background:transparent;border-color:var(--line-strong)}.button-ghost:hover{background:var(--surface-2)}.icon-button{display:grid;place-items:center;width:40px;height:40px;border-radius:999px;border:1px solid var(--line);background:transparent;transition:background-color .25s ease,transform .4s var(--ease)}.icon-button:hover{background:var(--surface-2)}.icon-button:active{transform:rotate(-20deg) scale(.94)}.magnetic{display:inline-block;transition:transform .4s var(--ease)}.spotlight{position:relative;isolation:isolate}.spotlight:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;border-radius:inherit;background:radial-gradient(420px circle at var(--mx, 50%) var(--my, 50%),var(--accent-soft),transparent 45%);opacity:0;transition:opacity .4s ease;pointer-events:none}.spotlight:hover:before{opacity:1}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:clamp(22px,3vw,32px);transition:border-color .4s ease,transform .5s var(--ease),background-color .4s ease}.card:after{content:"";position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;border-radius:inherit;padding:1px;background:radial-gradient(260px circle at var(--mx, 50%) var(--my, 50%),var(--accent),transparent 60%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:0;transition:opacity .4s ease;pointer-events:none}.card:hover{transform:translateY(-3px)}.card:hover:after{opacity:1}.card h3{font-size:1.2rem;font-weight:600;letter-spacing:-.01em;margin-bottom:10px}.card p{color:var(--muted)}.card-index{display:block;font-family:var(--font-mono);font-size:12px;color:var(--accent);margin-bottom:36px}.tags{display:flex;flex-wrap:wrap;gap:8px}.tags span{font-size:13px;padding:6px 12px;border-radius:999px;border:1px solid var(--line);background:var(--surface-2);transition:border-color .25s ease,color .25s ease}.tags span:hover{border-color:var(--accent);color:var(--accent)}.site-header{position:fixed;top:12px;left:50%;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:16px;width:min(var(--container),calc(100% - 2 * var(--gutter)));padding:10px 10px 10px 14px;border:1px solid transparent;border-radius:999px;transform:translate(-50%);transition:background-color .4s ease,border-color .4s ease,box-shadow .4s ease,backdrop-filter .4s ease}.is-scrolled .site-header{background:color-mix(in srgb,var(--surface) 88%,transparent);border-color:var(--line);box-shadow:var(--shadow);backdrop-filter:blur(16px) saturate(1.4);-webkit-backdrop-filter:blur(16px) saturate(1.4)}.brand{display:flex;align-items:center;gap:12px;font-weight:600;letter-spacing:-.01em}.logo-mark{flex-shrink:0;border-radius:12px;box-shadow:0 6px 20px -6px color-mix(in srgb,var(--accent) 60%,transparent);transition:transform .6s var(--ease)}.logo-mark path{stroke-dasharray:1;animation:logo-draw 1.1s var(--ease) backwards}.logo-mark path:nth-child(2){animation-delay:.15s}.logo-mark path:nth-child(3){animation-delay:.3s}.logo-mark path:nth-child(4){animation-delay:.4s}.brand:hover .logo-mark{transform:rotate(-8deg) scale(1.06)}.brand:hover .logo-mark path{animation-name:logo-redraw}.brand-name{font-size:16px;white-space:nowrap}.brand-serif{font-family:var(--font-serif);font-style:italic;font-weight:400;font-size:1.12em;color:var(--accent)}.site-nav{display:flex;gap:4px}.site-nav a{position:relative;padding:8px 14px;border-radius:999px;font-size:14px;text-transform:capitalize;color:var(--muted);transition:color .25s ease,background-color .25s ease}.site-nav a:hover{color:var(--text)}.site-nav a.active{color:var(--text);background:var(--surface-2)}.site-nav a.active:after{content:"";position:absolute;left:50%;bottom:3px;width:4px;height:4px;border-radius:50%;background:var(--accent);transform:translate(-50%)}.nav-index{display:none}.header-actions{display:flex;align-items:center;gap:8px}.command-trigger{display:flex;align-items:center;gap:8px;height:40px;padding:0 8px 0 14px;border-radius:999px;border:1px solid var(--line);background:transparent;font-size:13px;color:var(--muted);transition:background-color .25s ease,color .25s ease}.command-trigger:hover{background:var(--surface-2);color:var(--text)}.menu-button{display:none}.hero{display:flex;flex-direction:column;min-height:100svh;padding:140px var(--gutter) 40px;max-width:calc(var(--container) + 2 * var(--gutter));margin:0 auto}.hero.spotlight:before{background:radial-gradient(600px circle at var(--mx, 50%) var(--my, 30%),var(--accent-soft),transparent 50%);opacity:1}.hero-grid{position:absolute;inset:0 calc(50% - 50vw);z-index:-2;background-image:linear-gradient(var(--grid-line) 1px,transparent 1px),linear-gradient(90deg,var(--grid-line) 1px,transparent 1px);background-size:72px 72px;mask-image:radial-gradient(ellipse 70% 60% at 50% 35%,#000 30%,transparent 100%);-webkit-mask-image:radial-gradient(ellipse 70% 60% at 50% 35%,#000 30%,transparent 100%)}.hero-glow{position:absolute;top:8%;right:-10%;z-index:-2;width:520px;height:520px;border-radius:50%;background:var(--accent);opacity:.12;filter:blur(120px);animation:drift 14s ease-in-out infinite alternate}.hero-inner{flex:1;display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,380px);align-items:center;gap:clamp(40px,6vw,88px)}.hero-content{display:flex;flex-direction:column;min-width:0}.status-pill{display:inline-flex;align-items:center;align-self:flex-start;gap:10px;padding:7px 16px 7px 12px;border:1px solid var(--line-strong);border-radius:999px;font-size:13px;color:var(--muted);background:color-mix(in srgb,var(--surface) 60%,transparent);margin-bottom:32px}.pulse-dot{position:relative;width:8px;height:8px;border-radius:50%;background:var(--success)}.pulse-dot:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;background:var(--success);animation:pulse 2s ease-out infinite}.hero-title{font-size:clamp(3.2rem,8.2vw,7.25rem);font-weight:600;line-height:.92;letter-spacing:-.05em;margin-bottom:32px}.hero-title-serif{display:block;font-family:var(--font-serif);font-style:italic;font-weight:400;letter-spacing:-.02em;color:var(--accent)}.split-word{display:inline-block;overflow:hidden;padding:0 .04em .12em;margin-bottom:-.12em;vertical-align:top}.split-letter{display:inline-block;transform:translateY(110%) rotate(6deg);animation:letter-in 1s var(--ease) forwards;animation-delay:var(--d)}.hero-fade{opacity:0;transform:translateY(16px);animation:fade-up .9s var(--ease) forwards;animation-delay:var(--d)}.hero-role{font-size:clamp(1.15rem,2.2vw,1.6rem);font-weight:500;letter-spacing:-.015em;margin-bottom:16px}.rotator{display:inline-grid;overflow:hidden;vertical-align:bottom}.rotator-word{font-family:var(--font-serif);font-style:italic;font-weight:400;font-size:1.15em;color:var(--accent);animation:rotate-in .7s var(--ease)}.hero-text{max-width:600px;color:var(--muted);font-size:17px;margin-bottom:36px}.hero-actions{display:flex;flex-wrap:wrap;gap:12px}.hero-portrait{--px: 0;--py: 0;position:relative;width:100%;height:clamp(460px,68vh,620px);margin:0}.portrait-frame,.portrait-block,.portrait-person{position:absolute;transition:transform .6s var(--ease)}.portrait-frame{top:8%;right:-16px;width:62%;height:50%;border:1px solid var(--line-strong);border-radius:24px;transform:translate(calc(var(--px) * -10px),calc(var(--py) * -10px));animation:fade-in 1s ease 1s backwards}.portrait-block{left:8%;right:0;bottom:0;height:64%;overflow:hidden;border-radius:28px;background:linear-gradient(rgba(255,255,255,.09) 1px,transparent 1px) 0 0 / 40px 40px,linear-gradient(90deg,rgba(255,255,255,.09) 1px,transparent 1px) 0 0 / 40px 40px,linear-gradient(160deg,var(--accent),color-mix(in srgb,var(--accent) 55%,#1a0800));box-shadow:var(--shadow);transform:translate(calc(var(--px) * 8px),calc(var(--py) * 8px));transform-origin:bottom;animation:block-rise 1.1s var(--ease) .25s backwards}.portrait-triangle{position:absolute;top:0;right:0;bottom:0;left:0;background:#ffffff24;clip-path:polygon(100% 0,100% 100%,22% 100%)}.portrait-person{right:13%;bottom:0;height:100%;width:auto;filter:drop-shadow(0 24px 32px rgba(0,0,0,.35));transform:translate(calc(var(--px) * 18px),calc(var(--py) * 10px));animation:person-rise 1.2s var(--ease) .45s backwards}.portrait-note{position:absolute;top:3%;left:0;z-index:1;max-width:48%;font-family:Caveat,cursive;font-size:clamp(19px,1.75vw,25px);font-weight:600;line-height:1.15;color:var(--accent);transform:rotate(-4deg);animation:badge-in .8s var(--ease) 1.3s backwards}.portrait-arrow{display:block;width:132px;margin:6px 0 0 34%;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}.portrait-arrow path{stroke-dasharray:160;stroke-dashoffset:0;animation:draw 1s var(--ease) 1.6s backwards}.portrait-arrow path+path{animation-delay:2.3s;animation-duration:.4s}.hero-meta{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin:64px 0 0;padding-top:24px;border-top:1px solid var(--line)}.hero-meta dt{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);margin-bottom:6px}.hero-meta dd{margin:0;font-size:15px;font-weight:500}.marquee{overflow:hidden;border-block:1px solid var(--line);padding:22px 0;mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent)}.marquee-track{display:flex;width:max-content;animation:marquee 50s linear infinite}.marquee:hover .marquee-track{animation-play-state:paused}.marquee ul{display:flex}.marquee li{display:flex;align-items:center;gap:32px;padding-right:32px;font-size:clamp(1.25rem,2.4vw,2rem);font-weight:500;letter-spacing:-.02em;color:var(--muted);white-space:nowrap;transition:color .25s ease}.marquee li:hover{color:var(--text)}.marquee-star{font-size:.6em;color:var(--accent)}.section{max-width:calc(var(--container) + 2 * var(--gutter));margin:0 auto;padding:clamp(88px,12vw,160px) var(--gutter) 0}.section-heading{margin-bottom:clamp(40px,6vw,72px)}.eyebrow{display:flex;align-items:center;gap:12px;font-family:var(--font-mono);font-size:12px;text-transform:uppercase;letter-spacing:.14em;color:var(--muted);margin-bottom:20px}.eyebrow:after{content:"";flex:0 0 48px;height:1px;background:var(--line-strong)}.eyebrow-index{color:var(--accent)}.section-heading h2{max-width:20ch;text-wrap:balance;font-size:clamp(2.1rem,5.2vw,4.2rem);font-weight:600;line-height:1.02;letter-spacing:-.04em}.section-copy{color:var(--muted);font-size:17px;max-width:46ch}[data-reveal]{opacity:0;transform:translateY(28px);transition:opacity .9s var(--ease),transform .9s var(--ease);transition-delay:calc(var(--i, 0) * 90ms)}[data-reveal].revealed{opacity:1;transform:none}.scroll-words{max-width:30em;font-size:clamp(1.35rem,2.6vw,2.15rem);font-weight:500;line-height:1.38;letter-spacing:-.02em;margin-bottom:clamp(56px,8vw,96px)}.scroll-words span{color:var(--faint);transition:color .35s ease}.scroll-words span.lit{color:var(--text)}.stats{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);margin-bottom:40px}.stat{padding:28px 24px 8px 0}.stat+.stat{padding-left:24px;border-left:1px solid var(--line)}.stat strong{display:block;font-size:clamp(2.6rem,5vw,4rem);font-weight:600;line-height:1;letter-spacing:-.04em;font-variant-numeric:tabular-nums;margin-bottom:10px}.stat>span{color:var(--muted);font-size:14px}.principles{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:clamp(56px,8vw,96px)}.about-split{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(32px,6vw,80px)}.highlight-list li{position:relative;padding:16px 0 16px 32px;border-bottom:1px solid var(--line);color:var(--muted)}.highlight-list li:before{content:"→";position:absolute;left:0;top:16px;color:var(--accent)}.education-list li{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:16px 0;border-bottom:1px solid var(--line)}.education-list strong{display:block;font-weight:600}.education-list li span{color:var(--muted);font-size:14px}.education-list .mono{white-space:nowrap}.roles{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.role-card{display:flex;flex-direction:column}.role-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:40px}.role-glyph{display:grid;place-items:center;min-width:52px;height:52px;padding:0 12px;border-radius:14px;background:var(--accent-soft);color:var(--accent);font-size:16px;font-weight:500;transition:background-color .4s ease,color .4s ease,transform .5s var(--ease)}.role-card:hover .role-glyph{background:var(--accent);color:var(--on-accent);transform:rotate(-6deg)}.role-card h3{font-size:clamp(1.3rem,2vw,1.6rem);letter-spacing:-.02em}.card .role-summary{color:var(--text);margin-bottom:20px}.role-points{display:grid;gap:10px;margin-bottom:28px}.role-points li{position:relative;padding-left:22px;color:var(--muted);font-size:15px}.role-points li:before{content:"";position:absolute;left:0;top:.7em;width:8px;height:1px;background:var(--accent)}.role-card .tags{margin-top:auto}.timeline{position:relative;padding-left:44px}.timeline:before,.timeline:after{content:"";position:absolute;left:7px;top:8px;width:1px;bottom:8px;background:var(--line-strong)}.timeline:after{background:var(--accent);transform:scaleY(var(--progress, 0));transform-origin:top}.timeline-item{position:relative;display:grid;grid-template-columns:220px 1fr;gap:32px}.timeline-item+.timeline-item{margin-top:32px}.timeline-marker{position:absolute;left:-44px;top:6px;width:15px;height:15px;border-radius:50%;border:2px solid var(--accent);background:var(--bg);z-index:1;transition:background-color .5s ease .4s,box-shadow .5s ease .4s}.timeline-item.revealed .timeline-marker{background:var(--accent);box-shadow:0 0 0 6px var(--accent-soft)}.timeline-meta{display:flex;flex-direction:column;gap:4px;padding-top:2px}.timeline-meta span:last-child{color:var(--muted);font-size:14px}.timeline-card h3{font-size:clamp(1.2rem,2vw,1.45rem);margin-bottom:18px}.timeline-card h3 .muted{font-family:var(--font-serif);font-style:italic;font-weight:400}.timeline-card ul{display:grid;gap:12px}.timeline-card li{position:relative;padding-left:22px;color:var(--muted)}.timeline-card li:before{content:"";position:absolute;left:0;top:.7em;width:8px;height:1px;background:var(--accent)}.project-list{border-top:1px solid var(--line)}.project{border-bottom:1px solid var(--line)}.project-head{display:grid;grid-template-columns:64px 1fr auto 44px;align-items:center;gap:16px;width:100%;padding:clamp(22px,3vw,32px) 8px;border:0;background:transparent;text-align:left}.project-index{color:var(--muted);transition:color .3s ease}.project-title{font-size:clamp(1.35rem,3.2vw,2.4rem);font-weight:500;letter-spacing:-.03em;line-height:1.1;transition:transform .5s var(--ease),color .3s ease}.project-category{color:var(--muted);font-size:14px;text-align:right}.project-toggle{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;border:1px solid var(--line-strong);transition:transform .5s var(--ease),background-color .3s ease,color .3s ease,border-color .3s ease}.project-head:hover .project-title{transform:translate(10px)}.project-head:hover .project-index,.project[data-open=true] .project-index{color:var(--accent)}.project-head:hover .project-toggle{border-color:var(--accent)}.project[data-open=true] .project-toggle{transform:rotate(45deg);background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.project-panel{display:grid;grid-template-rows:0fr;transition:grid-template-rows .6s var(--ease)}.project[data-open=true] .project-panel{grid-template-rows:1fr}.project-panel-inner{overflow:hidden;padding-left:88px;padding-right:68px}.project-panel-inner>*{opacity:0;transform:translateY(12px);transition:opacity .4s ease,transform .5s var(--ease)}.project[data-open=true] .project-panel-inner>*{opacity:1;transform:none;transition-delay:.15s}.project-description{max-width:62ch;font-size:18px;margin-bottom:28px}.project-details{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin-bottom:28px}.project-details p:not(.label){color:var(--muted)}.project-details .label{margin-bottom:8px}.project .tags{padding-bottom:36px}.bento{display:grid;grid-template-columns:repeat(6,1fr);gap:16px}.bento-card{grid-column:span 2;display:flex;flex-direction:column;gap:28px}.bento-frontend{grid-column:span 4}.bento-certifications{grid-column:span 6}.bento-head{display:flex;justify-content:space-between;align-items:baseline}.bento-head h3{margin:0}.bento-frontend .tags span{font-size:15px;padding:8px 16px}.learning{display:flex;flex-wrap:wrap;align-items:center;gap:16px 24px;margin-top:32px}.learning .label{margin:0}.learning .tags span{background:transparent;border-style:dashed}.contact .section-heading h2{max-width:18ch}.contact-grid{display:grid;grid-template-columns:1fr 1.25fr;gap:clamp(32px,6vw,80px);align-items:start}.contact-email{display:inline-flex;align-items:center;gap:14px;margin:32px 0 28px;padding:0 0 8px;border:0;background:transparent;font-size:clamp(1.15rem,2.4vw,1.75rem);font-weight:500;letter-spacing:-.02em;background-image:linear-gradient(var(--accent),var(--accent));background-size:0% 1px;background-position:0 100%;background-repeat:no-repeat;transition:background-size .5s var(--ease),color .3s ease;word-break:break-all;text-align:left}.contact-email:hover{color:var(--accent);background-size:100% 1px}.contact-email svg{flex-shrink:0}.contact-links{display:grid}.contact-links li>*{display:flex;align-items:center;gap:12px;padding:14px 0;border-top:1px solid var(--line);color:var(--muted);transition:color .25s ease,padding .4s var(--ease)}.contact-links a:hover{color:var(--text);padding-left:8px}.contact-links a svg:last-child{margin-left:auto}.contact-form{display:grid;gap:14px;padding:clamp(20px,3vw,32px);border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.honeypot{display:none}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.field{position:relative;display:block}.field input,.field textarea{width:100%;padding:24px 16px 10px;border:1px solid var(--line);border-radius:12px;background:var(--bg);outline:none;resize:vertical;transition:border-color .25s ease,box-shadow .25s ease}.field input:focus,.field textarea:focus{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}.field span{position:absolute;left:17px;top:17px;color:var(--muted);font-size:15px;pointer-events:none;transform-origin:left top;transition:transform .25s var(--ease),color .25s ease}.field input:focus+span,.field input:not(:placeholder-shown)+span,.field textarea:focus+span,.field textarea:not(:placeholder-shown)+span{transform:translateY(-10px) scale(.75);color:var(--accent)}.form-footer{display:flex;flex-wrap:wrap;align-items:center;gap:16px;margin-top:6px}.form-status{font-size:14px}.form-status.success{color:var(--success)}.form-status.error{color:var(--danger)}.site-footer{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;max-width:var(--container);margin:clamp(88px,12vw,160px) auto 0;padding:28px 0 36px;width:calc(100% - 2 * var(--gutter));border-top:1px solid var(--line);font-size:14px}.back-to-top:hover{color:var(--accent)}.command-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;padding:14vh 16px 0;background:#00000073;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);animation:fade-in .2s ease}.command-menu{width:min(580px,100%);margin:0 auto;border:1px solid var(--line-strong);border-radius:18px;background:var(--surface);box-shadow:var(--shadow);overflow:hidden;animation:pop-in .3s var(--ease)}.command-search{display:flex;align-items:center;gap:12px;padding:16px 18px;border-bottom:1px solid var(--line);color:var(--muted)}.command-search input{flex:1;border:0;outline:none;background:transparent;font-size:16px;color:var(--text)}.command-list{max-height:340px;overflow-y:auto;padding:8px}.command-list button{display:flex;align-items:center;gap:12px;width:100%;padding:10px 12px;border:0;border-radius:10px;background:transparent;text-align:left;font-size:15px}.command-list button.active{background:var(--surface-2)}.command-icon{display:grid;place-items:center;width:28px;height:28px;border-radius:8px;border:1px solid var(--line);color:var(--muted)}.command-list button.active .command-icon{color:var(--accent);border-color:var(--accent)}.command-group{margin-left:auto;font-family:var(--font-mono);font-size:11px;color:var(--muted)}.command-empty{padding:24px;text-align:center;color:var(--muted)}.command-footer{display:flex;gap:20px;padding:10px 18px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}.command-footer kbd{margin-right:4px}.toast{position:fixed;left:50%;bottom:24px;z-index:210;display:flex;align-items:center;gap:10px;padding:12px 18px;border-radius:999px;background:var(--text);color:var(--bg);font-size:14px;font-weight:500;box-shadow:var(--shadow);opacity:0;pointer-events:none;transform:translate(-50%,24px);transition:opacity .3s ease,transform .5s var(--ease)}.toast.visible{opacity:1;transform:translate(-50%)}@keyframes letter-in{to{transform:none}}@keyframes fade-up{to{opacity:1;transform:none}}@keyframes rotate-in{0%{opacity:0;transform:translateY(70%)}to{opacity:1;transform:none}}@keyframes pulse{0%{transform:scale(1);opacity:.7}to{transform:scale(3);opacity:0}}@keyframes drift{to{transform:translate(-120px,80px) scale(1.15)}}@keyframes marquee{to{transform:translate(-50%)}}@keyframes logo-draw{0%{stroke-dashoffset:1}}@keyframes logo-redraw{0%{stroke-dashoffset:1}}@keyframes block-rise{0%{opacity:0;transform:scaleY(.4)}}@keyframes person-rise{0%{opacity:0;transform:translateY(40px)}}@keyframes draw{0%{stroke-dashoffset:160}}@keyframes badge-in{0%{opacity:0;transform:translateY(12px)}}@keyframes fade-in{0%{opacity:0}}@keyframes pop-in{0%{opacity:0;transform:translateY(-8px) scale(.97)}}@media (max-width: 1024px){.command-trigger span{display:none}.hero-inner{grid-template-columns:minmax(0,1fr) 300px}.hero-meta,.stats{grid-template-columns:repeat(2,1fr)}.stat:nth-child(3){padding-left:0;border-left:0}.stat:nth-child(n+3){border-top:1px solid var(--line)}.bento-card,.bento-frontend{grid-column:span 3}.bento-certifications{grid-column:span 6}}@media (max-width: 860px){.menu-button{display:grid}.hero-inner{grid-template-columns:1fr;gap:40px}.hero-portrait{height:360px}.portrait-block{left:0;height:58%}.portrait-person{right:10%}.portrait-frame{display:none}.portrait-note{top:3%;max-width:58%;padding:12px 16px 10px;border:1px solid var(--line-strong);border-radius:18px 18px 4px;background:var(--surface);box-shadow:var(--shadow);font-size:19px;transform:rotate(-3deg)}.portrait-note:after{content:"";position:absolute;right:-7px;bottom:12px;width:12px;height:12px;background:var(--surface);border-top:1px solid var(--line-strong);border-right:1px solid var(--line-strong);transform:rotate(45deg)}.portrait-arrow{display:none}.hero-title{font-size:clamp(3rem,13vw,5.5rem)}.command-trigger,.brand-name{display:none}.site-nav{position:fixed;inset:-12px calc(-1 * var(--gutter)) auto;height:100svh;flex-direction:column;justify-content:center;gap:8px;padding:0 calc(var(--gutter) + 16px);background:var(--bg);z-index:-1;opacity:0;visibility:hidden;transition:opacity .4s ease,visibility .4s}.site-nav.open{opacity:1;visibility:visible}.site-nav a{display:flex;align-items:baseline;gap:16px;padding:10px 0;font-size:clamp(2rem,9vw,3rem);font-weight:600;letter-spacing:-.03em;color:var(--text);background:none!important;transform:translateY(24px);opacity:0;transition:transform .6s var(--ease),opacity .6s ease,color .25s ease;transition-delay:calc(var(--i) * 60ms)}.site-nav.open a{transform:none;opacity:1}.site-nav a.active{color:var(--accent)}.site-nav a.active:after{display:none}.nav-index{display:inline;font-family:var(--font-mono);font-size:13px;font-weight:400;color:var(--muted)}.menu-open .site-header{background:transparent;border-color:transparent;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}.principles,.roles,.about-split,.contact-grid,.project-details{grid-template-columns:1fr}.timeline-item{grid-template-columns:1fr;gap:12px}.project-head{grid-template-columns:36px 1fr 40px;grid-template-areas:"index title toggle" "index category toggle";row-gap:6px}.project-index{grid-area:index;align-self:start;padding-top:6px}.project-title{grid-area:title}.project-category{grid-area:category;text-align:left;font-size:13px}.project-toggle{grid-area:toggle;width:40px;height:40px}.project-panel-inner{padding-left:52px;padding-right:0}.project-description{font-size:16px}}@media (max-width: 600px){.hero{padding-top:112px}.hero-actions .magnetic,.hero-actions .button{width:100%;justify-content:center}.hero-meta{gap:18px}.stats{grid-template-columns:1fr 1fr}.stat,.stat+.stat{padding:22px 12px 8px 0}.stat:nth-child(2n){padding-left:16px}.bento{grid-template-columns:1fr}.bento-card,.bento-frontend,.bento-certifications{grid-column:auto}.form-row{grid-template-columns:1fr}.timeline{padding-left:26px}.timeline:before,.timeline:after{left:6px}.timeline-marker{left:-26px;width:13px;height:13px}.timeline-card{padding:20px}.project-panel-inner{padding-left:0}.education-list li{flex-direction:column;gap:4px}.site-footer{flex-direction:column}}@media (hover: none){.card:hover{transform:none}}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.split-letter,.hero-fade,[data-reveal]{opacity:1;transform:none}.marquee-track{animation:none}}
