@import "https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,600;0,9..144,900;1,9..144,500&family=IBM+Plex+Sans:wght@400;500;600&family=IBM+Plex+Mono:wght@400;500&display=swap";:root{--bg:#faf7f1;--bg-alt:#f1eae0;--surface:#fffdfa;--border:#e2d9c8;--text:#211c15;--text-muted:#6c6153;--accent:#ad4322;--accent-contrast:#fff8f0;--accent-soft:#ad43221c;--radius:4px;--max-width:920px;--font-display:"Fraunces", "Iowan Old Style", "Palatino Linotype", Georgia, serif;--font-sans:"IBM Plex Sans", -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, "SFMono-Regular", "Cascadia Code", Consolas, monospace}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#15110b;--bg-alt:#1c1710;--surface:#211a12;--border:#362c1e;--text:#f4ece0;--text-muted:#ab9d87;--accent:#e2884f;--accent-contrast:#1c1006;--accent-soft:#e2884f24}}:root[data-theme=dark]{--bg:#15110b;--bg-alt:#1c1710;--surface:#211a12;--border:#362c1e;--text:#f4ece0;--text-muted:#ab9d87;--accent:#e2884f;--accent-contrast:#1c1006;--accent-soft:#e2884f24}*{box-sizing:border-box}html{scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{background-color:var(--bg);color:var(--text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;background-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='200'%20height='200'%3E%3Cfilter%20id='n'%3E%3CfeTurbulence%20type='fractalNoise'%20baseFrequency='0.8'%20numOctaves='2'%20stitchTiles='stitch'%20result='noise'/%3E%3CfeColorMatrix%20in='noise'%20type='matrix'%20values='0%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200.035%200'/%3E%3C/filter%3E%3Crect%20width='100%25'%20height='100%25'%20filter='url(%23n)'/%3E%3C/svg%3E");background-repeat:repeat;background-attachment:fixed;margin:0;font-size:16px;line-height:1.6}h1,h2,h3{font-family:var(--font-display);letter-spacing:-.01em;margin:0;font-weight:600;line-height:1.15}p{margin:0}a{color:inherit;text-decoration:none}ul{margin:0;padding:0;list-style:none}img{max-width:100%;display:block}button{font-family:inherit}::selection{background:var(--accent);color:var(--accent-contrast)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}.skip-link{z-index:100;background:var(--accent);color:var(--accent-contrast);border-radius:var(--radius);padding:10px 18px;font-size:14px;font-weight:600;transition:top .15s;position:absolute;top:-48px;left:12px}.skip-link:focus-visible{outline-color:var(--text);top:12px}.container{max-width:var(--max-width);margin:0 auto;padding:0 24px}.nav-links a,.project-links a,.project-links button,a.timeline-company,.footer-links a,.legal-page a,.legal-back,.text-link{background-image:linear-gradient(currentColor,currentColor);background-position:0 100%;background-repeat:no-repeat;background-size:0% 1px;padding-bottom:2px;transition:background-size .2s,color .15s;position:relative}.nav-links a:hover,.nav-links a:focus-visible,.project-links a:hover,.project-links a:focus-visible,.project-links button:hover,.project-links button:focus-visible,a.timeline-company:hover,a.timeline-company:focus-visible,.footer-links a:hover,.footer-links a:focus-visible,.legal-page a:hover,.legal-page a:focus-visible,.legal-back:hover,.legal-back:focus-visible,.text-link:hover,.text-link:focus-visible{background-size:100% 1px}.section{padding:96px 0}.section.container{grid-template-columns:1fr;row-gap:10px;display:grid}.section.container>:not(.section-label){grid-column:1}@media (width>=900px){.section.container{grid-template-columns:96px 1fr;align-items:start;gap:0 32px}.section-label{grid-area:1/1/-1}.section.container>:not(.section-label){grid-column:2}}.section-label{font-family:var(--font-display);color:var(--text-muted);margin-bottom:14px;font-size:14px;font-style:italic;font-weight:500;display:block}@media (width>=900px){.section-label{padding-top:6px;font-size:13px}}.section-title{text-wrap:balance;margin-bottom:36px;font-size:clamp(26px,3.4vw,34px)}#about.section{padding-top:72px}#skills.section{background:var(--bg-alt);padding:64px 0 76px}#projects.section{border-top:1px solid var(--border);padding:108px 0 100px}#experience.section{padding:96px 0 88px;position:relative}#experience.section:before{content:"";background:var(--accent);opacity:.55;height:2px;position:absolute;top:0;left:24px;right:24px}#contact.section{background:var(--bg-alt);padding:120px 0 108px}.nav{z-index:10;background:var(--bg);border-bottom:2px solid var(--border);position:sticky;top:0}.nav-inner{max-width:var(--max-width);justify-content:space-between;align-items:center;margin:0 auto;padding:18px 24px;display:flex}.nav-brand{font-family:var(--font-display);letter-spacing:-.01em;color:var(--text);font-size:19px;font-style:italic;font-weight:600}.nav-links{gap:28px;display:flex}.nav-links a{color:var(--text-muted);font-size:14px}.nav-links a:hover,.nav-links a:focus-visible{color:var(--text)}.nav-controls{align-items:center;gap:10px;margin-left:24px;display:flex}.theme-toggle{border:1px solid var(--border);border-radius:var(--radius);width:32px;height:32px;color:var(--text-muted);cursor:pointer;background:0 0;justify-content:center;align-items:center;transition:color .15s,border-color .15s,background .15s;display:flex}.theme-toggle:hover{color:var(--text);background:var(--accent-soft);border-color:var(--accent)}.lang-toggle{border:1px solid var(--border);border-radius:var(--radius);display:flex;overflow:hidden}.lang-btn{color:var(--text-muted);font-family:var(--font-mono);cursor:pointer;background:0 0;border:none;padding:6px 10px;font-size:12px;font-weight:500;transition:background .15s,color .15s}.lang-btn:hover{color:var(--text)}.lang-btn.active{background:var(--accent);color:var(--accent-contrast)}.hero{padding:116px 0 100px}.hero-status{font-family:var(--font-mono);letter-spacing:.02em;color:var(--accent);background:var(--accent-soft);border:1px solid color-mix(in srgb, var(--accent) 35%, transparent);border-radius:999px;align-items:center;gap:8px;margin-bottom:26px;padding:6px 14px 6px 10px;font-size:12.5px;display:inline-flex}.hero-status-dot{background:var(--accent);border-radius:50%;flex-shrink:0;width:7px;height:7px}.hero-eyebrow{font-family:var(--font-display);color:var(--text-muted);margin-bottom:22px;font-size:15px;font-style:italic;display:block}.hero-eyebrow-sep{color:var(--accent);margin:0 2px;font-style:normal}.hero-title{text-wrap:balance;margin-bottom:22px;font-size:clamp(40px,8vw,72px)}.hero-title-first,.hero-title-last{display:block}.hero-title-first{font-weight:600}.hero-title-last{color:var(--accent);margin-top:-.08em;font-style:italic;font-weight:900}.hero-subtitle{color:var(--text-muted);max-width:520px;margin:0 0 40px auto;font-size:clamp(17px,2.2vw,19px)}@media (width>=640px){.hero-subtitle{margin-left:14%}}.hero-actions{flex-wrap:wrap;align-items:center;gap:28px;display:flex}.btn{border-radius:var(--radius);border:2px solid var(--text);background:var(--surface);color:var(--text);appearance:none;cursor:pointer;box-shadow:4px 4px 0 0 var(--text);align-items:center;gap:8px;padding:12px 22px;font-family:inherit;font-size:15px;font-weight:600;transition:transform .15s,box-shadow .15s,background .15s;display:inline-flex}.btn:hover,.btn:focus-visible{box-shadow:2px 2px 0 0 var(--text);transform:translate(2px,2px)}.btn:active{box-shadow:0 0 0 0 var(--text);transform:translate(4px,4px)}.btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:4px 4px 0 0 var(--text);transform:none}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast)}.btn-secondary{background:var(--surface)}.text-link{color:var(--text);font-size:15px;font-weight:600}.about-text p{color:var(--text-muted);max-width:62ch;margin-bottom:16px}.about-text p:last-child{margin-bottom:0}.skills-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:32px;display:grid}.skill-group h3{font-family:var(--font-mono);color:var(--text-muted);letter-spacing:.05em;margin-bottom:14px;font-size:13px;font-weight:500}.skill-tags{flex-wrap:wrap;gap:8px;display:flex}.skill-tag{font-family:var(--font-mono);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:6px 12px;font-size:13px;transition:background .15s,border-color .15s}.skill-tag:nth-child(3n+1){transform:rotate(-.6deg)}.skill-tag:nth-child(3n+2){transform:rotate(.5deg)}.skill-tag:hover,.skill-tag:focus-visible{background:var(--accent-soft);border-color:var(--accent)}.projects-list{flex-direction:column;gap:28px;display:flex}.project{position:relative}.project--feature,.project--demo{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);grid-template-columns:56px 1fr;gap:20px;padding:30px 28px 28px;transition:background .2s;display:grid}.project--feature{border-top:4px solid var(--accent)}.project--demo{border-top:4px dashed var(--accent)}.project--feature:hover,.project--feature:focus-within,.project--demo:hover,.project--demo:focus-within{background:var(--accent-soft)}.project--compact{border-top:1px solid var(--border);flex-direction:column;gap:10px;padding:22px 0 4px;display:flex}.project--compact .project-index{display:none}.project-index{font-family:var(--font-display);color:var(--border);font-size:34px;font-style:italic;font-weight:500;line-height:1}.project-body{min-width:0}.project-title{margin-bottom:10px;font-size:19px}.project-description{color:var(--text-muted);max-width:62ch;margin-bottom:18px;font-size:14.5px}.project-tech{flex-wrap:wrap;gap:6px;margin-bottom:16px;display:flex}.project-tech span{font-family:var(--font-mono);color:var(--text-muted);font-size:12px}.project-tech span:not(:last-child):after{content:"·";margin-left:6px}.project-links{flex-wrap:wrap;gap:20px;display:flex}.project-links a,.project-links button{color:var(--accent);cursor:pointer;background-color:#0000;border:none;padding:0 0 2px;font-size:14px;font-weight:600}@media (width<=560px){.project--feature,.project--demo{grid-template-columns:1fr}.project-index{display:none}}.perceptron-demo{border-top:1px solid var(--border);margin-top:24px;padding-top:20px}.perceptron-canvas{aspect-ratio:1;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-alt);width:100%;max-width:420px;height:auto;display:block}.perceptron-controls{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.perceptron-controls .btn{box-shadow:3px 3px 0 0 var(--text);padding:8px 14px;font-size:13px}.perceptron-controls .btn:hover,.perceptron-controls .btn:focus-visible{box-shadow:1px 1px 0 0 var(--text)}.perceptron-controls .btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:3px 3px 0 0 var(--text)}.perceptron-sliders{flex-wrap:wrap;gap:24px;margin-top:16px;display:flex}.perceptron-slider{min-width:160px;color:var(--text-muted);flex-direction:column;gap:6px;font-size:13px;display:flex}.perceptron-slider input[type=range]{accent-color:var(--accent)}.perceptron-status{color:var(--text);margin-top:14px;font-size:14px}.perceptron-caption{color:var(--text-muted);margin-top:6px;font-size:13px}.timeline{flex-direction:column;gap:36px;display:flex}.timeline-item{grid-template-columns:140px 1fr;gap:24px;display:grid}.timeline-period{font-family:var(--font-display);color:var(--text-muted);padding-top:3px;font-size:14px;font-style:italic}.timeline-role{margin-bottom:4px;font-size:17px}.timeline-company{color:var(--accent);margin-bottom:12px;font-size:14px;font-weight:500;display:inline-block}.timeline-item ul{flex-direction:column;gap:8px;display:flex}.timeline-item li{color:var(--text-muted);padding-left:18px;font-size:14.5px;position:relative}.timeline-item li:before{content:"";background:var(--accent);border-radius:50%;width:5px;height:5px;position:absolute;top:9px;left:0}.education-item{border-top:1px solid var(--border);margin-top:40px;padding-top:24px}.contact-title{text-wrap:balance;max-width:520px;margin-bottom:18px;font-size:clamp(28px,4.4vw,40px);font-style:italic}.contact-text{color:var(--text-muted);max-width:480px;margin-bottom:32px}.contact-actions{flex-wrap:wrap;gap:14px;display:flex}.footer{border-top:1px solid var(--border);color:var(--text-muted);justify-content:space-between;align-items:center;padding:32px 0;font-size:13px;display:flex}.footer-links{gap:18px;display:flex}.footer-links a:hover{color:var(--text)}.legal-page{max-width:720px;padding:64px 24px 96px}.legal-header{justify-content:space-between;align-items:center;margin-bottom:32px;display:flex}.legal-back{color:var(--accent);font-size:14px;display:inline-block}.legal-page h1{margin-bottom:8px;font-size:clamp(30px,4.4vw,40px);font-style:italic}.legal-updated{font-family:var(--font-mono);color:var(--text-muted);margin-bottom:40px;font-size:13px;display:block}.legal-page h2{margin-top:40px;margin-bottom:12px;font-size:20px}.legal-page p,.legal-page li{color:var(--text-muted);margin-bottom:12px;font-size:15px}.legal-page address{color:var(--text);margin-bottom:20px;font-style:normal;line-height:1.7}.legal-page ul{margin-bottom:16px;padding-left:20px;list-style:outside}.legal-page a{color:var(--accent)}@media (width<=640px){.nav-inner{flex-direction:column;align-items:flex-start;gap:10px;padding:16px 24px}.nav-links{flex-wrap:wrap;gap:6px 14px}.hero{padding:56px 0 40px}.hero-subtitle{margin-left:0}.section,#about.section,#skills.section,#projects.section,#experience.section,#contact.section{padding:56px 0}#experience.section:before{left:0;right:0}.section-title{margin-bottom:28px}.timeline-item{grid-template-columns:1fr;gap:6px}.footer{text-align:center;flex-direction:column;gap:12px}}
