:root{--bg:#fff;--bg-alt:#faf9f6;--surface:#fff;--line:#0000001a;--line-strong:#0003;--text:#111;--text-dim:#555;--text-mute:#0009;--ink:#111;--accent:#ffd300;--accent-strong:#e3be00;--accent-soft:#fff07c;--on-accent:#111;--font-display:"IBM Plex Sans Condensed", system-ui, sans-serif;--font-body:"IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, "SFMono-Regular", monospace;--maxw:1080px;--maxw-narrow:760px;--radius:3px;--nav-h:64px}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);font-family:var(--font-body);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;border-top:6px solid var(--accent);margin:0;font-size:17px;line-height:1.7}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.02em;color:var(--ink);margin:0 0 .5em;font-weight:700;line-height:1.08}h1{letter-spacing:.01em;font-size:clamp(2.4rem,6vw,4rem)}h2{font-size:clamp(1.7rem,3.4vw,2.4rem)}h3{letter-spacing:.04em;font-size:1.2rem}h4{letter-spacing:.03em;font-size:1.05rem}p{margin:0 0 1.1em}a{color:var(--ink);border-bottom:1px solid #0000;text-decoration:none;transition:color .18s,border-color .18s}a:hover{color:var(--accent-strong);border-color:var(--accent)}strong{font-weight:600}img{max-width:100%;height:auto;display:block}hr{border:0;border-top:1px solid var(--line);margin:2.5rem 0}::selection{background:var(--accent);color:var(--on-accent)}.container{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:24px}.container--narrow{max-width:var(--maxw-narrow)}.section{padding-block:clamp(56px,9vw,104px)}.section--alt{background:var(--bg-alt);border-block:1px solid var(--line)}.eyebrow{font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--text-dim);align-items:center;gap:.6em;margin:0 0 1rem;font-size:.78rem;font-weight:500;display:inline-flex}.eyebrow:before{content:"";background:var(--accent);width:22px;height:2px}.lead{color:var(--text-dim);max-width:56ch;font-size:clamp(1.05rem,1.7vw,1.25rem)}.muted{color:var(--text-dim)}.highlight{background-image:linear-gradient(#0000 62%,#ffd30073 62%);padding:0 .05em;display:inline;position:relative}.btn{font-family:var(--font-mono);letter-spacing:.02em;border:1.5px solid var(--ink);border-radius:var(--radius);color:var(--ink);cursor:pointer;text-align:center;background:0 0;justify-content:center;align-items:center;gap:.55em;padding:14px 22px;font-size:.92rem;font-weight:600;line-height:1;transition:background .18s,color .18s,border-color .18s,transform .18s;display:inline-flex}.btn:hover{border-color:var(--ink);color:var(--ink)}.btn--accent{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.btn--accent:hover{background:var(--accent-strong);border-color:var(--accent-strong);color:var(--on-accent)}.btn--ghost:hover{background:var(--ink);border-color:var(--ink);color:#fff}.btn[disabled]{opacity:.5;cursor:not-allowed}.nav{z-index:100;-webkit-backdrop-filter:saturate(140%)blur(8px);backdrop-filter:saturate(140%)blur(8px);border-bottom:1px solid var(--line);background:#ffffffe0;position:sticky;top:0}.nav-inner{height:var(--nav-h);justify-content:space-between;align-items:center;gap:20px;display:flex}.brand{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.04em;border:0;align-items:baseline;gap:.5ch;font-size:1.05rem;font-weight:700;display:inline-flex}.brand:hover{color:var(--ink)}.brand .brand-dot{color:var(--accent-strong)}.nav-links{font-family:var(--font-mono);letter-spacing:.02em;align-items:center;gap:26px;font-size:.85rem;display:flex}.nav-links a{color:var(--text-dim);border:0;padding-block:4px}.nav-links a:hover,.nav-links a[aria-current=page]{color:var(--ink)}.nav-actions{align-items:center;gap:14px;display:flex}.nav-lang{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--text-dim);border:1px solid var(--line-strong);border-radius:999px;padding:7px 11px;font-size:.72rem;transition:color .2s,border-color .2s}.nav-lang:hover,.nav-lang:focus-visible{color:var(--ink);border-color:var(--ink)}.nav-cta{font-family:var(--font-mono);letter-spacing:.02em;background:var(--accent);color:var(--on-accent);border:1.5px solid var(--accent);border-radius:var(--radius);padding:9px 16px;font-size:.82rem;font-weight:600}.nav-cta:hover{background:var(--accent-strong);border-color:var(--accent-strong);color:var(--on-accent)}.nav-burger{cursor:pointer;color:var(--ink);background:0 0;border:0;padding:8px;display:none}.mobile-menu{z-index:150;background:var(--bg);font-family:var(--font-display);text-transform:uppercase;letter-spacing:.04em;opacity:0;flex-direction:column;justify-content:center;align-items:center;gap:26px;font-size:1.4rem;transition:opacity .2s,transform .2s;display:none;position:fixed;inset:0;transform:translateY(-8px)}.mobile-menu.open{opacity:1;display:flex;transform:translateY(0)}.mobile-menu a{color:var(--ink);border:0}.nav-lang-mobile{font-family:var(--font-mono);letter-spacing:.06em;color:var(--text-dim);font-size:1rem}.grid{gap:24px;display:grid}.grid--2{grid-template-columns:repeat(2,1fr)}.grid--3{grid-template-columns:repeat(3,1fr)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:28px;transition:border-color .2s,transform .2s}.card:hover{border-color:var(--line-strong)}.card h3{margin-bottom:.5em}.card .card-num{font-family:var(--font-mono);color:var(--accent-strong);letter-spacing:.1em;font-size:.8rem}.tag-list{flex-wrap:wrap;gap:8px;display:flex}.skill-tag{font-family:var(--font-mono);letter-spacing:.01em;background:var(--bg-alt);border:1px solid var(--line-strong);color:var(--text);border-radius:999px;padding:6px 12px;font-size:.78rem;transition:background .18s,border-color .18s;display:inline-block}.skill-tag:hover{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.timeline-item{border-left:2px solid var(--line-strong);padding-bottom:32px;padding-left:26px;position:relative}.timeline-item:last-child{padding-bottom:0}.timeline-item:before{content:"";background:var(--accent);border-radius:50%;width:12px;height:12px;position:absolute;top:4px;left:-7px}.timeline-item h4{margin-bottom:.2em}.timeline-meta{font-family:var(--font-mono);color:var(--text-dim);letter-spacing:.01em;margin-bottom:.7em;font-size:.82rem}.photo-frame{border:4px solid var(--ink);border-radius:var(--radius);overflow:hidden}.photo-frame img{filter:grayscale();width:100%;transition:filter .4s}.photo-frame:hover img{filter:grayscale(35%)}.form{gap:18px;display:grid}.field{gap:6px;display:grid}.field label{font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;color:var(--text-dim);font-size:.8rem}.field input,.field textarea,.field select{font-family:var(--font-body);color:var(--text);background:var(--surface);border:1.5px solid var(--line-strong);border-radius:var(--radius);width:100%;padding:12px 14px;font-size:1rem}.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--ink);outline:none}.field textarea{resize:vertical;min-height:120px}.hp{width:1px;height:1px;overflow:hidden;position:absolute!important;left:-9999px!important}.form-note{color:var(--text-dim);font-size:.85rem}.form-error{color:#922;border-radius:var(--radius);background:#fdf2f0;border-left:3px solid #c0392b;padding:12px 14px;font-size:.92rem}.form-success{border-left:3px solid var(--accent-strong);border-radius:var(--radius);background:#fffbe6;padding:16px 18px}.footer{border-top:1px solid var(--line);background:var(--bg-alt);padding-block:48px}.footer-grid{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:24px;display:flex}.footer-brand{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.04em;font-size:1.1rem;font-weight:700}.footer-social{font-family:var(--font-mono);flex-wrap:wrap;gap:16px;font-size:.85rem;display:flex}.footer-social a{color:var(--text-dim);border:0}.footer-social a:hover{color:var(--ink)}.footer-credit{border-top:1px solid var(--line);font-family:var(--font-mono);color:var(--text-dim);letter-spacing:.02em;margin-top:28px;padding-top:18px;font-size:.78rem}.skip-link{z-index:200;background:var(--accent);color:var(--on-accent);font-family:var(--font-mono);border-radius:var(--radius);padding:10px 16px;font-weight:600;text-decoration:none;transition:top .15s;position:absolute;top:-48px;left:8px}.skip-link:focus{top:8px}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--accent-strong);outline-offset:3px;border-radius:2px}.js .reveal{opacity:0;transition:opacity .5s,transform .5s;transform:translateY(14px)}.js .reveal.in{opacity:1;transform:none}@media (width<=860px){.grid--3{grid-template-columns:repeat(2,1fr)}}@media (width<=680px){body{font-size:16px}.nav-links,.nav-actions{display:none}.nav-burger{display:inline-flex}.grid--2,.grid--3{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.js .reveal{opacity:1;transition:none;transform:none}*{transition-duration:.01ms!important}}
