:root{--navy:#16233f;--navy-2:#1f3157;--ink:#20242c;--slate:#5b6472;--slate-light:#8a93a3;--brass:#9c7a3c;--brass-light:#b99859;--paper:#fbfaf8;--panel:#fff;--bg:#f4f4f2;--line:#e1e3e8;--max:1120px;--font-serif:"Source Serif 4",Georgia,serif;--font-sans:"Inter",system-ui,-apple-system,sans-serif;--font-mono:"IBM Plex Mono","SFMono-Regular",monospace}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;line-height:1.6}h1,h2,h3{font-family:var(--font-serif);color:var(--navy);margin:0;font-weight:600}a{color:inherit;text-decoration:none}.mono{font-family:var(--font-mono)}.wrap{max-width:var(--max);margin:0 auto;padding:0 32px}::selection{background:var(--brass);color:#fff}:focus-visible{outline:2px solid var(--brass);outline-offset:3px}.nav{position:fixed;top:0;left:0;right:0;z-index:100;background:hsla(40,27%,98%,.92);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}.navInner{max-width:var(--max);margin:0 auto;padding:0 32px;justify-content:space-between;height:68px}.brand,.navInner{display:flex;align-items:center}.brand{gap:10px;font-family:var(--font-serif);font-weight:600;color:var(--navy);font-size:1.05rem}.brandMark{width:34px;height:34px;border-radius:4px;background:var(--navy);color:var(--paper);justify-content:center;font-family:var(--font-mono);font-size:.8rem;font-weight:500;letter-spacing:.5px}.brandMark,.navLinks{display:flex;align-items:center}.navLinks{gap:36px}.navLinks a{font-size:.88rem;color:var(--slate);font-weight:500;letter-spacing:.02em;transition:color .15s}.navLinks a:hover{color:var(--navy)}.navIcon{display:flex;align-items:center;color:var(--slate);transition:color .15s}.navIcon:hover{color:var(--brass)}.navCta{border:1px solid var(--navy);color:var(--navy)!important;padding:8px 18px;border-radius:2px;font-size:.85rem!important;transition:background .15s,color .15s}.navCta:hover{background:var(--navy);color:var(--paper)!important}.burger{display:none;background:none;border:none;cursor:pointer;padding:8px}.burger span{display:block;width:22px;height:2px;background:var(--navy);margin:5px 0}.mobileMenu{display:none;position:fixed;top:68px;left:0;right:0;background:var(--paper);flex-direction:column;padding:20px 32px;border-bottom:1px solid var(--line);gap:18px;z-index:99}.mobileMenu.open{display:flex}.mobileMenu a{font-size:.95rem;color:var(--navy);font-weight:500}.mobileSocial{display:flex;gap:20px;padding-top:8px;border-top:1px solid var(--line);color:var(--navy)}.hero{padding:168px 0 64px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,rgba(22,35,63,.02),transparent 60%),var(--paper);position:relative;overflow:hidden}.hero:before{content:"";position:absolute;top:0;right:0;bottom:0;width:38%;background-image:repeating-linear-gradient(45deg,var(--line) 0,var(--line) 1px,transparent 1px,transparent 22px);opacity:.5;-webkit-mask-image:linear-gradient(90deg,transparent,#000 40%);mask-image:linear-gradient(90deg,transparent,#000 40%)}.heroInner{display:grid;grid-template-columns:1fr auto;grid-gap:56px;gap:56px;align-items:center;position:relative}.eyebrow{font-family:var(--font-mono);font-size:.78rem;color:var(--brass);letter-spacing:.12em;text-transform:uppercase;margin-bottom:18px;display:flex;align-items:center;gap:10px}.eyebrow:before{content:"";width:8px;height:8px;background:var(--brass);border-radius:50%;display:inline-block}.hero h1{font-size:clamp(2.1rem,4.5vw,3.4rem);line-height:1.08;letter-spacing:-.01em}.heroRole{margin-top:14px;font-size:1.2rem;color:var(--slate);font-weight:500;font-family:var(--font-sans)}.heroRole strong{color:var(--navy);font-weight:600}.heroLede{max-width:56ch;margin-top:22px;color:var(--slate);font-size:1rem}.heroCta{display:flex;gap:14px;margin-top:34px;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;gap:8px;padding:12px 24px;border-radius:2px;font-size:.92rem;font-weight:600;transition:all .15s;border:1px solid transparent;cursor:pointer}.btnPrimary{background:var(--navy);color:var(--paper)}.btnPrimary:hover{background:var(--navy-2)}.btnOutline{border-color:#c9cdd6;color:var(--navy);background:transparent}.btnOutline:hover{border-color:var(--navy);background:var(--panel)}.badgeCircle{width:168px;height:168px;border-radius:50%;background:var(--navy);display:flex;align-items:center;justify-content:center;font-family:var(--font-serif);color:var(--paper);font-size:2.6rem;font-weight:600;border:6px solid var(--panel);box-shadow:0 0 0 1px var(--line),0 20px 40px -12px rgba(22,35,63,.35);position:relative;flex-shrink:0}.badgeCircle:after{content:"";position:absolute;inset:-6px;border-radius:50%;border:1px dashed #c9cdd6}.statusLine{margin-top:44px;padding-top:20px;border-top:1px solid var(--line);font-family:var(--font-mono);font-size:.78rem;color:var(--slate-light);display:flex;flex-wrap:wrap;gap:22px;letter-spacing:.01em}.statusLine b{color:var(--slate);font-weight:500}.statusDot{color:var(--brass)}.section{padding:88px 0;border-bottom:1px solid var(--line)}.sectionHead{margin-bottom:48px;max-width:640px}.sectionNum{font-family:var(--font-mono);font-size:.78rem;color:var(--brass);letter-spacing:.1em;text-transform:uppercase;margin-bottom:10px;display:block}.sectionHead h2{font-size:clamp(1.6rem,3vw,2.1rem)}.sectionHead p{color:var(--slate);margin-top:12px;font-size:.98rem;max-width:60ch}.skillsGrid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:1px;gap:1px;background:var(--line);border:1px solid var(--line)}.skillCard{background:var(--panel);padding:32px 28px}.skillIcon{width:42px;height:42px;border-radius:4px;background:var(--navy);color:var(--paper);display:flex;align-items:center;justify-content:center;margin-bottom:20px}.skillCard h3{font-size:1.08rem;margin-bottom:10px}.skillCard p{color:var(--slate);font-size:.92rem;margin:0 0 18px}.chipRow{display:flex;flex-wrap:wrap;gap:6px}.chip{font-family:var(--font-mono);font-size:.72rem;color:var(--navy);background:var(--bg);border:1px solid var(--line);padding:4px 9px;border-radius:2px}.expTabs{display:flex;gap:8px;margin-bottom:36px}.expTab{font-family:var(--font-mono);font-size:.78rem;padding:9px 16px;border:1px solid var(--line);background:var(--panel);color:var(--slate);cursor:pointer;border-radius:2px;transition:all .15s}.expTab.active{background:var(--navy);color:var(--paper);border-color:var(--navy)}.timelineItem{display:grid;grid-template-columns:150px 1fr;grid-gap:32px;gap:32px;padding:28px 0;border-top:1px solid var(--line)}.timelineItem:last-child{padding-bottom:0}.timelineDate{font-family:var(--font-mono);font-size:.82rem;color:var(--brass);padding-top:3px}.timelineBody h3{font-size:1.12rem}.timelineBody h4{font-family:var(--font-sans);font-weight:600;font-size:.9rem;color:var(--slate);margin:4px 0 14px}.tagLine{display:flex;flex-wrap:wrap;gap:8px}.tag{font-size:.78rem;color:var(--navy);background:var(--bg);border:1px solid var(--line);padding:5px 11px;border-radius:2px}.projGrid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:1px;gap:1px;background:var(--line);border:1px solid var(--line)}.projCard{background:var(--panel);padding:30px 28px;transition:background .15s}.projCard:hover{background:#fcfbf9}.projTop{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:14px;gap:12px}.projCard h3{font-size:1.08rem}.projLink{font-family:var(--font-mono);font-size:.72rem;color:var(--brass);border:1px solid var(--brass);padding:4px 9px;border-radius:2px;white-space:nowrap;transition:all .15s;display:inline-flex;align-items:center;gap:4px}.projCard:hover .projLink{background:var(--brass);color:#fff}.projCard p{color:var(--slate);font-size:.92rem;margin:0}.contactGrid{display:grid;grid-template-columns:1fr 1.2fr;grid-gap:64px;gap:64px}.contactInfo h2{font-size:1.9rem;margin-bottom:16px}.contactInfo p{color:var(--slate);margin-bottom:28px;max-width:42ch}.infoRow{display:flex;align-items:center;gap:14px;padding:14px 0;border-top:1px solid var(--line);font-size:.92rem}.infoRow:last-child{border-bottom:1px solid var(--line)}.infoIcon{display:flex;align-items:center;justify-content:center;width:30px;height:30px;flex-shrink:0;border-radius:50%;background:var(--bg);color:var(--brass)}.infoLabel{font-family:var(--font-mono);font-size:.72rem;color:var(--slate-light);width:80px;flex-shrink:0;text-transform:uppercase;letter-spacing:.06em}.infoRow a{color:var(--navy);font-weight:500}.infoRow a:hover{color:var(--brass)}.contactForm{display:flex;flex-direction:column;gap:18px}.formRow{display:grid;grid-template-columns:1fr 1fr;grid-gap:18px;gap:18px}.field label{display:block;font-family:var(--font-mono);font-size:.72rem;color:var(--slate);margin-bottom:7px;text-transform:uppercase;letter-spacing:.06em}.field input,.field textarea{width:100%;border:1px solid var(--line);background:var(--panel);padding:12px 14px;font-family:var(--font-sans);font-size:.95rem;color:var(--ink);border-radius:2px;transition:border-color .15s}.field input:focus,.field textarea:focus{border-color:var(--navy);outline:none}.field textarea{resize:vertical;min-height:120px}.formNote{font-size:.8rem;color:var(--slate-light);margin-top:-4px}.footer{padding:36px 0}.footerInner{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px}.footer p{font-size:.85rem;color:var(--slate-light);margin:0}.footerLinks{display:flex;gap:20px;align-items:center}.footerLinks a{font-size:.85rem;color:var(--slate)}.footerLinks a:hover{color:var(--navy)}.iconLink{display:inline-flex;align-items:center;gap:6px}.backTop{font-family:var(--font-mono);font-size:.75rem;color:var(--brass);border:1px solid var(--brass);padding:6px 12px;border-radius:2px}@media (max-width:860px){.navLinks{display:none}.burger{display:block}.heroInner{grid-template-columns:1fr;text-align:left}.badgeCircle,.hero:before{display:none}.contactGrid,.projGrid,.skillsGrid{grid-template-columns:1fr}.contactGrid{gap:44px}.timelineItem{gap:8px}.formRow,.timelineItem{grid-template-columns:1fr}.section{padding:64px 0}.hero{padding:140px 0 48px}}[data-reveal]{opacity:0;transform:translateY(14px);transition:opacity .6s ease,transform .6s ease}[data-reveal].in{opacity:1;transform:translateY(0)}@media (prefers-reduced-motion:reduce){[data-reveal]{opacity:1;transform:none;transition:none}html{scroll-behavior:auto}}