:root {
 color-scheme:dark;
 --canvas:#0a101c; --surface:#141e2d; --surface-2:#1c293a; --border:#304055; --border-strong:#62738a;
 --ink:#f5f7fa; --muted:#b2bdca; --accent:#c0ee79; --accent-hover:#d2f69b; --accent-ink:#101a0b;
 --accent-text:#c0ee79; --accent-strong:#d2f69b; --accent-soft:#243c2c; --accent-border:#577c49;
 --success:#227c51; --success-ink:#ffffff; --success-soft:#173e30; --success-strong:#b9ebca;
 --warning:#9b571e; --warning-ink:#ffffff; --warning-soft:#402c1d; --warning-strong:#ffd5a0;
 --danger:#a83b45; --danger-ink:#ffffff; --danger-soft:#4a252c; --danger-strong:#ffc0c8;
 --chart-1:#c0ee79; --chart-2:#6eced3; --chart-3:#e4ac79; --chart-4:#a9a0f0; --chart-5:#e2d77e; --chart-6:#ea91b5;
 --font-display:"Space Grotesk",sans-serif; --font-body:"DM Sans",sans-serif; --font-sans:"DM Sans",sans-serif; --font-mono:"JetBrains Mono",monospace;
 --display-weight:700; --display-tracking:-0.055em; --eyebrow-tracking:.14em;
 --radius-btn:999px; --radius-card:20px; --radius-input:12px; --border-w:1px; --border-strong-w:1px;
 --shadow-card:0 18px 60px rgba(0,0,0,.18); --shadow-raised:0 25px 70px rgba(0,0,0,.25); --shadow-btn:none;
 --card-pad:24px; --caps:uppercase; --caps-tracking:.14em; --btn-weight:650; --measure:68ch;
 --x-hero-glow:#264b47;
}
html[data-theme="light"] {
 color-scheme:light;
 --canvas:#f6f8f5; --surface:#ffffff; --surface-2:#eaf0e7; --border:#d5dfd5; --border-strong:#9dad9f;
 --ink:#14231e; --muted:#52675c; --accent:#234b38; --accent-hover:#356149; --accent-ink:#ffffff;
 --accent-text:#25543c; --accent-strong:#1f4d35; --accent-soft:#dbefdd; --accent-border:#aacdb1;
 --success:#217e50; --success-ink:#ffffff; --success-soft:#dcefe4; --success-strong:#165c3b;
 --warning:#99520e; --warning-ink:#ffffff; --warning-soft:#f7ebd9; --warning-strong:#804409;
 --danger:#af343f; --danger-ink:#ffffff; --danger-soft:#fbe4e5; --danger-strong:#902631;
 --chart-1:#285b41; --chart-2:#257e8f; --chart-3:#996539; --chart-4:#6359a0; --chart-5:#8e7d2f; --chart-6:#9d4971;
 --font-display:"Space Grotesk",sans-serif; --font-body:"DM Sans",sans-serif; --font-sans:"DM Sans",sans-serif; --font-mono:"JetBrains Mono",monospace;
 --display-weight:700; --display-tracking:-0.055em; --eyebrow-tracking:.14em;
 --radius-btn:999px; --radius-card:20px; --radius-input:12px; --border-w:1px; --border-strong-w:1px;
 --shadow-card:0 18px 60px rgba(0,0,0,.08); --shadow-raised:0 25px 70px rgba(0,0,0,.12); --shadow-btn:none;
 --card-pad:24px; --caps:uppercase; --caps-tracking:.14em; --btn-weight:650; --measure:68ch;
 --x-hero-glow:#d8eadb;
}
html{scroll-behavior:smooth}body{font-family:var(--font-body);background:var(--canvas);color:var(--ink)}.portfolio{overflow:hidden}.p-wrap{width:min(1180px,calc(100% - 48px));margin:auto}.p-nav{display:flex;align-items:center;justify-content:space-between;gap:25px;padding:24px 0;border-bottom:1px solid var(--border)}.p-brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink);font-weight:800;font-family:var(--font-display);font-size:20px;letter-spacing:-.05em}.p-monogram{width:39px;height:39px;border:1px solid var(--accent-border);border-radius:13px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent-strong);font-weight:700}.p-navlinks{display:flex;align-items:center;gap:29px}.p-navlinks a{font-size:13px;font-weight:600;color:var(--muted);text-decoration:none}.p-navlinks a:hover{color:var(--ink)}.p-header-actions{display:flex;align-items:center;gap:14px}.p-button{display:inline-flex;align-items:center;justify-content:center;gap:12px;border:1px solid var(--accent);background:var(--accent);color:var(--accent-ink);border-radius:999px;padding:14px 23px;font-weight:750;font-size:13px;text-decoration:none;transition:transform .2s,background .2s}.p-button:hover{transform:translateY(-2px);background:var(--accent-hover)}.p-button.secondary{border-color:var(--border-strong);background:transparent;color:var(--ink)}.p-button.secondary:hover{background:var(--surface-2)}.p-theme{background:var(--surface);border:1px solid var(--border);width:37px;height:37px;display:inline-grid;place-items:center;border-radius:50%;color:var(--ink)}.p-hero{position:relative;padding:114px 0 102px}.p-hero:after{content:"";position:absolute;top:7%;right:-22%;width:650px;height:650px;border-radius:50%;background:radial-gradient(circle,var(--x-hero-glow),transparent 68%);opacity:.7;pointer-events:none}.p-hero-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:66px;align-items:center;position:relative;z-index:1}.p-eyebrow{display:flex;align-items:center;gap:10px;font-family:var(--font-mono);letter-spacing:.15em;text-transform:uppercase;font-size:11px;font-weight:650;color:var(--accent-text)}.p-dot{height:8px;width:8px;border-radius:50%;background:var(--accent)}.p-hero h1{font-family:var(--font-display);font-size:clamp(58px,7.2vw,104px);line-height:.99;letter-spacing:-.085em;font-weight:700;margin:25px 0 29px}.p-hero h1 em{font-weight:500;font-style:normal;color:var(--accent-text)}.p-lead{font-size:18px;line-height:1.78;max-width:580px;color:var(--muted)}.p-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:35px}.p-micro{margin-top:50px;display:flex;align-items:center;gap:15px;font-family:var(--font-mono);font-size:11px;color:var(--muted)}.p-rule{height:1px;width:36px;background:var(--border-strong)}.p-visual{background:linear-gradient(145deg,var(--surface),var(--surface-2));border:1px solid var(--border);border-radius:28px;padding:24px;box-shadow:var(--shadow-raised);transform:rotate(2deg)}.p-window{display:flex;align-items:center;gap:6px;padding-bottom:20px;border-bottom:1px solid var(--border)}.p-window span{width:9px;height:9px;border-radius:50%;background:var(--border-strong)}.p-code{font-family:var(--font-mono);font-size:12px;line-height:2.1;padding:24px 0;color:var(--muted)}.p-code b{color:var(--accent-text);font-weight:500}.p-code strong{color:var(--ink);font-weight:500}.p-visual-foot{border-top:1px solid var(--border);padding-top:18px;display:flex;justify-content:space-between;align-items:center;font-size:12px;color:var(--muted)}.p-on{color:var(--accent-text)}.p-strip{border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:25px 0}.p-strip-inner{display:flex;justify-content:space-between;gap:30px;flex-wrap:wrap;align-items:center}.p-strip b{font-size:12px;letter-spacing:.08em;font-weight:600;color:var(--muted)}.p-section{padding:105px 0}.p-section.alt{background:var(--surface)}.p-section-head{display:flex;justify-content:space-between;align-items:end;gap:36px;margin-bottom:45px}.p-kicker{font-size:11px;letter-spacing:.15em;text-transform:uppercase;font-family:var(--font-mono);color:var(--accent-text);font-weight:650;margin-bottom:17px}.p-title{font-family:var(--font-display);font-size:clamp(36px,4.3vw,60px);line-height:1.08;letter-spacing:-.065em;font-weight:700;max-width:770px}.p-side{max-width:320px;font-size:15px;line-height:1.8;color:var(--muted)}.p-about{display:grid;grid-template-columns:1.15fr .85fr;gap:55px}.p-about p{font-size:17px;line-height:1.95;color:var(--muted);margin-bottom:22px}.p-facts{display:grid;gap:13px}.p-fact{padding:20px 23px;border:1px solid var(--border);border-radius:16px;background:var(--surface-2)}.p-fact small{display:block;text-transform:uppercase;letter-spacing:.14em;font-size:10px;color:var(--muted);margin-bottom:8px}.p-fact strong{font-size:15px;font-weight:650}.p-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.p-card{border:1px solid var(--border);background:var(--surface);border-radius:21px;padding:30px;min-height:260px;display:flex;flex-direction:column;transition:transform .2s,border-color .2s}.p-card:hover{transform:translateY(-4px);border-color:var(--accent-border)}.p-card-number{font:12px var(--font-mono);color:var(--accent-text);margin-bottom:49px}.p-card h3{font:700 22px var(--font-display);letter-spacing:-.04em;margin-bottom:12px}.p-card p{color:var(--muted);font-size:14px;line-height:1.8}.p-tags{display:flex;gap:9px;flex-wrap:wrap;margin-top:27px}.p-tag{padding:8px 12px;border:1px solid var(--border);border-radius:30px;color:var(--muted);font-size:11px;font-family:var(--font-mono)}.p-works{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.p-work{padding:30px;background:var(--surface-2);border:1px solid var(--border);border-radius:24px;min-height:290px;display:flex;flex-direction:column;justify-content:space-between}.p-work .p-topline{display:flex;justify-content:space-between;gap:20px;font-family:var(--font-mono);font-size:11px;color:var(--accent-text)}.p-work h3{font:700 28px var(--font-display);letter-spacing:-.05em;margin-bottom:8px}.p-work p{font-size:14px;line-height:1.8;color:var(--muted);max-width:420px}.p-timeline{display:grid;grid-template-columns:1fr 1fr;gap:14px}.p-role{padding:28px 30px;border-left:2px solid var(--accent-border);background:var(--surface);border-radius:0 15px 15px 0}.p-role small{font-family:var(--font-mono);font-size:11px;color:var(--accent-text)}.p-role h3{font:700 22px var(--font-display);margin:14px 0 8px}.p-role p{font-size:14px;color:var(--muted);line-height:1.8}.p-contact{border-radius:28px;padding:65px;background:var(--accent-soft);border:1px solid var(--accent-border);display:flex;justify-content:space-between;align-items:center;gap:40px}.p-contact h2{font:700 clamp(39px,5vw,67px)/1.06 var(--font-display);letter-spacing:-.07em;max-width:660px;margin-bottom:18px}.p-contact p{color:var(--muted);font-size:15px;line-height:1.75}.p-footer{display:flex;justify-content:space-between;gap:25px;align-items:center;padding:35px 0;font-size:12px;color:var(--muted);border-top:1px solid var(--border)}.p-footer a{color:var(--muted)}.p-mobile{display:none}@media(max-width:850px){.p-navlinks{display:none}.p-hero{padding:75px 0}.p-hero-grid,.p-about{grid-template-columns:1fr}.p-visual{max-width:540px;transform:none}.p-section-head{display:block}.p-side{margin-top:20px}.p-grid{grid-template-columns:repeat(2,1fr)}.p-contact{padding:42px;display:block}.p-contact .p-button{margin-top:26px}}@media(max-width:600px){.p-wrap{width:min(100% - 36px,1180px)}.p-hero{padding:70px 0 60px}.p-hero h1{font-size:clamp(51px,12vw,74px)}.p-lead{font-size:16px}.p-section{padding:75px 0}.p-grid,.p-works,.p-timeline{grid-template-columns:1fr}.p-card{min-height:220px}.p-card-number{margin-bottom:28px}.p-contact{padding:32px 25px}.p-nav .p-button{display:none}.p-footer{flex-direction:column;text-align:center}.p-strip-inner{gap:15px}.p-strip b{font-size:10px}}