:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#17211b;background:#f8f5ef;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html{scroll-behavior:smooth}body{min-width:320px;min-height:100vh;margin:0}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}#root{min-height:100vh}.portfolio-shell{min-height:100vh;overflow:hidden;background:radial-gradient(circle at 8% 12%,rgba(65,145,108,.24),transparent 26rem),linear-gradient(135deg,#fbf8f2,#edf4ef 45%,#f7efe6)}.nav-bar{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;width:min(1120px,calc(100% - 32px));min-height:72px;margin:0 auto;padding:14px 0;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.brand,.nav-links,.hero-actions{display:flex;align-items:center}.brand{gap:10px;font-weight:800}.brand-mark{display:grid;width:38px;height:38px;place-items:center;border-radius:8px;color:#f9f5ec;background:#20372b;box-shadow:0 12px 28px #20372b38}.nav-links{gap:8px}.nav-links a{border-radius:999px;padding:9px 14px;color:#435147;font-size:.95rem;transition:background .16s ease,color .16s ease}.nav-links a:hover{color:#17211b;background:#ffffffb8}.hero-section{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.86fr);gap:56px;align-items:center;width:min(1120px,calc(100% - 32px));min-height:calc(100vh - 72px);margin:0 auto;padding:32px 0 84px}.hero-copy{max-width:680px}.eyebrow{margin:0 0 14px;color:#ba4f2f;font-size:.78rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}h1,h2,h3,p{margin-top:0}h1{max-width:11ch;margin-bottom:24px;color:#162017;font-size:clamp(3.4rem,7vw,6.9rem);line-height:.92}h2{margin-bottom:18px;color:#1b2a20;font-size:clamp(2rem,4vw,3.8rem);line-height:1}h3{color:#19261d;font-size:1.12rem;line-height:1.22}.hero-text,.split-section p,.timeline p,.project-card span{color:#536056;font-size:1.03rem;line-height:1.75}.hero-text{max-width:590px;margin-bottom:32px;font-size:1.18rem}.hero-actions{flex-wrap:wrap;gap:12px}.button{display:inline-flex;align-items:center;justify-content:center;min-height:46px;border:1px solid rgba(27,42,32,.16);border-radius:8px;padding:0 18px;font-weight:800;transition:transform .16s ease,box-shadow .16s ease,background .16s ease}.button:hover{transform:translateY(-2px)}.button.primary{color:#fffaf2;background:#20372b;box-shadow:0 16px 34px #20372b38}.button.secondary{color:#20372b;background:#ffffffb8}.hero-visual{position:relative;display:grid;gap:18px;border:1px solid rgba(32,55,43,.16);border-radius:8px;padding:18px;background:linear-gradient(145deg,#ffffffeb,#fffbf3b3),repeating-linear-gradient(90deg,rgba(32,55,43,.06) 0 1px,transparent 1px 34px);box-shadow:0 24px 70px #36483c2e}.status-strip,.code-card,.system-map div,.metrics-band,.project-card,.timeline article,.contact-section{border:1px solid rgba(32,55,43,.13);border-radius:8px;background:#ffffffb8}.status-strip{display:flex;align-items:center;gap:8px;min-height:42px;padding:0 14px}.status-strip span{width:10px;height:10px;border-radius:999px;background:#dc6b3f}.status-strip span:nth-child(2){background:#e9b949}.status-strip span:nth-child(3){background:#56a36c}.status-strip strong{margin-left:8px;color:#536056;font-size:.9rem}.code-card{padding:24px;color:#f7f0e5;background:#17211b;box-shadow:inset 0 1px #ffffff17}.code-card p{margin:0 0 11px;overflow-wrap:anywhere;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:clamp(.78rem,1.6vw,.98rem)}.code-card p:last-child{margin-bottom:0}.code-card span{color:#e9b949}.indent{padding-left:24px}.system-map{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.system-map div{min-height:74px;padding:16px;color:#24362a;font-weight:800;background:#ffffffd6}.metrics-band,.section-grid,.split-section,.timeline-section,.contact-section{width:min(1120px,calc(100% - 32px));margin:0 auto}.metrics-band{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;padding:18px;transform:translateY(-40px)}.metrics-band div{padding:10px}.metrics-band strong{display:block;color:#20372b;font-size:clamp(2rem,4vw,3.4rem);line-height:1}.metrics-band span{color:#617066;font-weight:700}.section-grid,.split-section,.timeline-section{padding:82px 0}.section-heading{max-width:680px;margin-bottom:34px}.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.project-card{min-height:250px;padding:24px;background:#ffffffbd;transition:transform .16s ease,box-shadow .16s ease}.project-card:hover{transform:translateY(-4px);box-shadow:0 20px 42px #36483c24}.project-card p{margin-bottom:42px;color:#ba4f2f;font-size:.82rem;font-weight:800}.split-section{display:grid;grid-template-columns:minmax(0,.95fr) minmax(300px,1fr);gap:48px;align-items:start}.skill-cloud{display:flex;flex-wrap:wrap;gap:12px}.skill-cloud span{border:1px solid rgba(32,55,43,.14);border-radius:8px;padding:12px 15px;color:#20372b;background:#ffffffc7;font-weight:800}.timeline{display:grid;gap:14px}.timeline article{padding:22px 24px}.timeline h3{margin-bottom:8px}.timeline p{margin-bottom:0}.contact-section{display:flex;align-items:center;justify-content:space-between;gap:32px;margin-bottom:32px;padding:34px;background:#20372b}.contact-section h2{max-width:760px;margin-bottom:0;color:#fff8ed}.contact-section .eyebrow{color:#e9b949}.contact-section .button.primary{flex:0 0 auto;color:#20372b;background:#fff8ed}@media(max-width:860px){.hero-section,.split-section{grid-template-columns:1fr}.hero-section{gap:32px;padding-top:22px}.metrics-band,.project-grid{grid-template-columns:1fr}.metrics-band{transform:none}.contact-section{align-items:flex-start;flex-direction:column}}@media(max-width:620px){.nav-bar{align-items:flex-start;flex-direction:column;gap:14px}.nav-links{width:100%;justify-content:space-between}.nav-links a{padding-inline:10px}.hero-section{min-height:auto;padding-bottom:54px}h1{max-width:9ch}.hero-visual,.contact-section{padding:16px}.system-map{grid-template-columns:1fr}.section-grid,.split-section,.timeline-section{padding:56px 0}}
