:root{--bg:#0d1110;--surface:#131917;--surface-2:#18201d;--text:#edf2ee;--muted:#9ca9a3;--line:#2b3832;--accent:#9dcc73;--accent-2:#c9dfb6;--danger:#e58c78;--max:1180px;--sans:Inter,system-ui,-apple-system,'Segoe UI',sans-serif;--mono:'IBM Plex Mono','SFMono-Regular',Consolas,monospace}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--sans);line-height:1.5}body.light{--bg:#f5f7f4;--surface:#fff;--surface-2:#edf2ee;--text:#15201b;--muted:#5c6b63;--line:#d4ddd6;--accent:#3e765a;--accent-2:#e1efd8}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}::selection{background:var(--accent);color:#0d1110}.skip-link{position:absolute;left:-999px}.skip-link:focus{left:20px;top:20px;background:var(--accent);color:#0d1110;padding:10px;z-index:20}.container{width:min(var(--max),calc(100% - 48px));margin:auto}.eyebrow,.meta{font:11px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.site-header{position:fixed;z-index:10;top:0;left:0;right:0;transition:.25s;background:transparent}.site-header.scrolled{background:color-mix(in srgb,var(--bg) 90%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}.nav{height:70px;display:flex;align-items:center;justify-content:space-between;gap:28px}.brand{font-weight:800;letter-spacing:-.04em}.brand small{color:var(--accent);font:10px var(--mono);margin-left:8px}.nav-links{display:flex;align-items:center;gap:23px;font-size:13px;color:var(--muted)}.nav-links a:hover{color:var(--text)}.nav-actions{display:flex;align-items:center;gap:8px}.icon-button,.nav-toggle{border:1px solid var(--line);background:var(--surface);padding:8px 11px;cursor:pointer;font-size:12px}.icon-button:hover,.nav-toggle:hover{border-color:var(--accent)}.nav-toggle{display:none}.button{display:inline-flex;align-items:center;gap:14px;border:1px solid var(--line);background:transparent;padding:12px 16px;font-size:12px;cursor:pointer;transition:.2s}.button:hover{border-color:var(--accent);transform:translateY(-2px)}.button.primary{background:var(--accent);border-color:var(--accent);color:#0d1110;font-weight:700}.button.small{padding:8px 11px}.hero{padding:150px 0 105px;min-height:720px;display:grid;grid-template-columns:1.05fr .95fr;gap:80px;align-items:center}.hero h1{font-size:clamp(48px,7vw,91px);line-height:.93;letter-spacing:-.075em;margin:18px 0 26px;max-width:700px}.hero h1 em{color:var(--accent);font-style:normal}.hero-copy{max-width:560px;color:var(--muted);font-size:17px;line-height:1.75}.hero-actions{display:flex;flex-wrap:wrap;gap:10px;margin:30px 0}.status-line{display:flex;gap:18px;flex-wrap:wrap;font:11px var(--mono);color:var(--muted);padding-top:20px;border-top:1px solid var(--line)}.status-line b{color:var(--text);font-weight:500}.live-dot{display:inline-block;width:7px;height:7px;background:var(--accent);border-radius:50%;margin-right:5px}.system-visual{position:relative;padding:30px;border:1px solid var(--line);background:var(--surface);min-height:360px;overflow:hidden}.system-visual:before{content:'SYSTEM / 001';position:absolute;right:22px;top:20px;color:var(--muted);font:10px var(--mono)}.system-grid{position:absolute;inset:0;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:42px 42px;opacity:.25}.system-graph{position:relative;height:300px;display:grid;place-items:center}.system-graph svg{position:absolute;width:100%;height:100%;overflow:visible}.system-node{position:absolute;border:1px solid var(--line);background:var(--surface-2);padding:10px 14px;font:11px var(--mono);z-index:2}.system-node.active{border-color:var(--accent);color:var(--accent)}.node-client{left:2%;top:15%}.node-api{left:40%;top:43%}.node-service{right:0;top:16%}.node-db{right:4%;bottom:12%}.section{padding:105px 0}.section-header{display:flex;justify-content:space-between;gap:40px;align-items:end;margin-bottom:42px}.section-title{font-size:clamp(32px,5vw,62px);line-height:1;letter-spacing:-.06em;margin:8px 0 0}.section-intro{max-width:310px;color:var(--muted);font-size:13px}.snapshot-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.snapshot{padding:25px 20px;border-right:1px solid var(--line);transition:.2s}.snapshot:last-child{border:0}.snapshot:hover{background:var(--surface-2)}.snapshot-value{font-size:30px;font-weight:700;letter-spacing:-.06em}.snapshot-label{display:block;margin-top:8px;font-size:12px;color:var(--muted)}.snapshot-detail{display:block;max-height:0;overflow:hidden;color:var(--muted);font-size:12px;transition:max-height .3s,margin-top .3s}.snapshot:hover .snapshot-detail{max-height:70px;margin-top:12px}.about-grid{display:grid;grid-template-columns:.65fr 1.35fr;gap:90px}.about-copy{max-width:700px;font-size:25px;line-height:1.45;letter-spacing:-.035em}.about-copy p{margin:0}.about-copy .fine{font-size:14px;line-height:1.8;color:var(--muted);letter-spacing:0;margin-top:25px}.timeline{border-left:1px solid var(--line)}.experience-item{position:relative;padding:0 0 38px 35px}.experience-item:before{content:'';position:absolute;left:-5px;top:5px;width:9px;height:9px;background:var(--accent);border-radius:50%}.experience-top{display:flex;justify-content:space-between;gap:20px}.experience-top h3{font-size:21px;letter-spacing:-.04em;margin:0}.experience-company{color:var(--accent)}.experience-summary{color:var(--muted);font-size:14px;max-width:690px}.experience-details{display:none;color:var(--muted);font-size:13px;max-width:720px}.experience-item.open .experience-details{display:block}.experience-details li{margin:8px 0}.focus-tags,.tech-list{display:flex;flex-wrap:wrap;gap:7px;margin-top:14px}.tag{border:1px solid var(--line);padding:5px 8px;color:var(--muted);font:10px var(--mono)}.archive{border-top:1px solid var(--line)}.project-row{display:grid;grid-template-columns:55px 1fr 220px;gap:24px;align-items:start;padding:23px 0;border-bottom:1px solid var(--line);transition:.2s;cursor:pointer}.project-row:hover,.project-row.selected{background:var(--surface);padding-left:14px;padding-right:14px}.project-number{font:11px var(--mono);color:var(--accent)}.project-row h3{font-size:20px;letter-spacing:-.04em;margin:0 0 4px}.project-row p{font-size:13px;color:var(--muted);margin:0}.project-side{text-align:right}.status-badge{display:inline-flex;background:var(--surface-2);border:1px solid var(--line);color:var(--muted);padding:4px 8px;font:10px var(--mono);text-transform:uppercase}.project-stack{justify-content:flex-end}.project-detail{display:grid;grid-template-columns:.8fr 1.2fr;gap:60px;margin-top:45px;padding:30px;border:1px solid var(--line);background:var(--surface);min-height:380px}.detail-lead h3{font-size:36px;letter-spacing:-.06em;margin:8px 0}.detail-copy{color:var(--muted);font-size:14px}.detail-block{border-top:1px solid var(--line);padding-top:14px;margin-top:22px}.detail-block h4{font:11px var(--mono);text-transform:uppercase;color:var(--accent);margin:0 0 11px}.architecture{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;align-items:center;position:relative;margin-top:22px}.arch-node{border:1px solid var(--line);padding:17px 10px;background:var(--surface-2);font:11px var(--mono);cursor:pointer;text-align:center}.arch-node:hover,.arch-node.active{border-color:var(--accent);color:var(--accent)}.arch-arrow{text-align:center;color:var(--accent)}.arch-note{font-size:12px;color:var(--muted);margin-top:14px;min-height:36px}.workflow{display:flex;flex-wrap:wrap;gap:0;margin-top:22px}.workflow-step{display:flex;align-items:center;gap:6px}.workflow-step button{border:1px solid var(--line);background:var(--surface-2);padding:10px;font:10px var(--mono);cursor:pointer}.workflow-step button:hover,.workflow-step button.active{border-color:var(--accent);color:var(--accent)}.workflow-step:not(:last-child):after{content:'→';padding:0 7px;color:var(--accent)}.skills-layout{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.skill-group{padding:22px;border:1px solid var(--line);background:var(--surface)}.skill-group h3{font-size:16px;margin:0 0 15px}.skill-chip{display:inline-block;border:1px solid var(--line);padding:7px 9px;margin:3px 3px 3px 0;font-size:12px;color:var(--muted);cursor:pointer}.skill-chip:hover{border-color:var(--accent);color:var(--text)}.education-grid{display:grid;grid-template-columns:1fr 1fr;gap:50px}.education-item{border-top:1px solid var(--line);padding-top:18px;margin-bottom:26px}.education-item h3{margin:0;font-size:18px}.education-item p{color:var(--muted);font-size:13px}.contact-section{border-top:1px solid var(--line);background:var(--surface);padding:100px 0}.contact-grid{display:flex;justify-content:space-between;align-items:end;gap:50px}.contact-title{font-size:clamp(40px,7vw,84px);line-height:.95;letter-spacing:-.08em;margin:10px 0}.contact-title em{color:var(--accent);font-style:normal}.contact-links{display:flex;flex-wrap:wrap;gap:10px}.contact-link{border-bottom:1px solid var(--muted);padding-bottom:5px;font-size:13px}.footer{padding:25px 0;border-top:1px solid var(--line);color:var(--muted);font:11px var(--mono)}.footer-inner{display:flex;justify-content:space-between;gap:20px}.progress{position:fixed;z-index:15;left:0;top:0;height:2px;background:var(--accent);width:0}.reveal{opacity:0;transform:translateY(18px);transition:opacity .6s,transform .6s}.reveal.visible{opacity:1;transform:none}.modal-backdrop{position:fixed;z-index:30;inset:0;background:#000a;display:none;align-items:end;justify-content:center;padding:20px}.modal-backdrop.open{display:flex}.modal{width:min(620px,100%);background:var(--surface);border:1px solid var(--line);padding:22px}.modal-head{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding-bottom:14px}.modal-head h2{font-size:18px;margin:0}.close-button{border:0;background:none;font-size:22px;cursor:pointer}.assistant-messages{height:270px;overflow:auto;padding:15px 0}.message{max-width:85%;padding:10px 12px;margin:8px 0;background:var(--surface-2);font-size:13px}.message.user{margin-left:auto;background:var(--accent);color:#0d1110}.assistant-form{display:flex;border-top:1px solid var(--line);padding-top:13px}.assistant-form input{flex:1;border:1px solid var(--line);background:transparent;padding:10px;color:var(--text)}.assistant-form button{border:1px solid var(--accent);background:var(--accent);color:#0d1110;padding:0 14px}.palette{position:fixed;z-index:40;inset:0;background:#0008;display:none;align-items:flex-start;justify-content:center;padding-top:15vh}.palette.open{display:flex}.palette-box{width:min(560px,calc(100% - 30px));background:var(--surface);border:1px solid var(--line)}.palette input{width:100%;padding:16px;background:transparent;border:0;border-bottom:1px solid var(--line);color:var(--text);outline:0}.palette-list button{display:block;width:100%;text-align:left;background:none;border:0;padding:12px 16px;color:var(--muted);cursor:pointer}.palette-list button:hover,.palette-list button.active{background:var(--surface-2);color:var(--text)}.noscript{padding:20px;background:#2a1712;color:#ffd8c9}@media(max-width:800px){.container{width:min(var(--max),calc(100% - 32px))}.nav{height:62px}.nav-links,.nav-actions .download{display:none}.nav-toggle{display:block}.nav.mobile-open .nav-links{display:flex;position:absolute;top:62px;left:0;right:0;padding:18px 16px;background:var(--bg);border-bottom:1px solid var(--line);flex-direction:column;align-items:flex-start}.hero{padding:115px 0 75px;min-height:auto;grid-template-columns:1fr;gap:45px}.hero h1{font-size:clamp(48px,13vw,72px)}.system-visual{min-height:300px}.snapshot-grid{grid-template-columns:1fr 1fr}.snapshot:nth-child(2){border-right:0}.snapshot:nth-child(-n+2){border-bottom:1px solid var(--line)}.about-grid,.project-detail{grid-template-columns:1fr;gap:30px}.section{padding:76px 0}.section-header{display:block}.section-intro{margin-top:18px}.project-row{grid-template-columns:38px 1fr}.project-side{grid-column:2;text-align:left}.project-stack{justify-content:flex-start}.architecture{grid-template-columns:1fr}.arch-arrow{transform:rotate(90deg)}.skills-layout,.education-grid{grid-template-columns:1fr}.contact-grid{display:block}.contact-links{margin-top:30px}.footer-inner{display:block}.footer-inner>*{display:block;margin:6px 0}.modal-backdrop{padding:0}.modal{min-height:70vh}.cv-download{display:none}}
