:root{--ink:#f5f5f7;--navy:#08080a;--blue:#e31937;--blue-dark:#ff6b7e;--sky:#281015;--cream:#0d0d10;--paper:#141417;--coral:#ff334f;--mint:#ff93a2;--muted:#b8b8c2;--line:#303036;--white:#fff;--surface:#1a1a1f;--shadow:0 24px 70px rgba(0,0,0,.42)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--paper);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.6;text-rendering:optimizeLegibility}a{color:inherit}.skip-link{position:fixed;z-index:100;top:1rem;left:1rem;padding:.75rem 1rem;color:#fff;background:var(--navy);transform:translateY(-200%)}.skip-link:focus{transform:translateY(0)}:focus-visible{outline:3px solid var(--coral);outline-offset:4px}
.site-header{width:min(1180px,calc(100% - 40px));min-height:86px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.wordmark{display:inline-flex;align-items:center;gap:.8rem;font-weight:800;text-decoration:none;letter-spacing:-.02em}.wordmark>span:first-child{display:grid;width:42px;height:42px;place-items:center;color:#fff;background:var(--navy);border-radius:50%;font-size:.8rem;letter-spacing:.04em}nav{display:flex;gap:1.8rem;align-items:center}nav a{color:var(--muted);font-size:.9rem;font-weight:650;text-decoration:none}nav a:hover{color:var(--blue)}nav .nav-social{padding:.45rem .8rem;color:var(--navy);border:1px solid var(--line);border-radius:6px}
.hero{width:min(1180px,calc(100% - 40px));min-height:690px;margin:0 auto;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr);gap:clamp(3rem,8vw,8rem);align-items:center;padding:7rem 0}.eyebrow{margin:0 0 1.5rem;color:var(--blue-dark);font-size:.78rem;font-weight:800;letter-spacing:.15em;text-transform:uppercase}.status-dot{display:inline-block;width:8px;height:8px;margin-right:.65rem;background:#20a474;border-radius:50%;box-shadow:0 0 0 5px rgba(32,164,116,.12)}h1,h2,h3,p{margin-top:0}h1{max-width:780px;margin-bottom:.8rem;font-size:clamp(4rem,9vw,8rem);line-height:.9;letter-spacing:-.065em}h1 em{color:var(--blue);font-family:Georgia,serif;font-weight:400}.hero-role{margin-bottom:1.4rem;color:var(--ink);font-size:clamp(.95rem,1.7vw,1.18rem);font-weight:800;letter-spacing:.07em;text-transform:uppercase}.hero-role span{padding:0 .25em;color:var(--coral)}.intro{max-width:720px;color:var(--muted);font-size:clamp(1.05rem,1.7vw,1.2rem)}.hero-actions,.contact-actions{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;margin-top:2.2rem}.button{position:relative;isolation:isolate;display:inline-flex;min-height:50px;align-items:center;justify-content:center;gap:.65rem;padding:.8rem 1.25rem;overflow:hidden;border:1px solid var(--navy);border-radius:8px;font-size:.92rem;font-weight:800;text-decoration:none;transition:transform .2s ease,box-shadow .2s ease,background .2s ease}.button:before{content:"";position:absolute;z-index:-1;top:50%;left:50%;width:0;height:0;background:rgba(255,255,255,.22);border-radius:50%;transform:translate(-50%,-50%);transition:width .35s ease,height .35s ease}.button:hover{transform:translateY(-2px);box-shadow:0 8px 22px rgba(11,31,51,.16)}.button:hover:before{width:260px;height:260px}.button:active{transform:translateY(1px) scale(.96);box-shadow:0 3px 8px rgba(11,31,51,.18);transition-duration:.08s}.button:active:before{width:340px;height:340px}.button-primary{color:#fff;background:var(--navy)}.button-primary:hover{background:var(--blue)}.button-secondary{background:transparent}.button-secondary:before{background:var(--sky)}
.hero-aside{position:relative;padding:0 0 3.2rem 1.4rem}.portrait-card{position:relative;z-index:2;margin:0;overflow:hidden;background:#d8d4cf;border:8px solid #fff;border-radius:24px;box-shadow:var(--shadow);transform:rotate(1.5deg)}.portrait-card:before{content:"";position:absolute;z-index:1;inset:0;border:1px solid rgba(255,255,255,.6);border-radius:16px;pointer-events:none}.portrait-card img{display:block;width:100%;height:450px;object-fit:cover;object-position:center 46%}.portrait-card figcaption{position:absolute;z-index:2;right:1rem;bottom:1rem;left:1rem;display:flex;justify-content:space-between;gap:1rem;padding:.72rem .9rem;color:#fff;background:rgba(11,31,51,.82);border:1px solid rgba(255,255,255,.18);border-radius:10px;backdrop-filter:blur(8px);font-size:.72rem;font-weight:750;letter-spacing:.04em}.hero-card{position:relative;z-index:1;width:calc(100% - 2rem);margin:-2.8rem 0 0 -1.4rem;padding:4.2rem 1.6rem 1.5rem;overflow:hidden;color:#fff;background:var(--navy);border-radius:20px;box-shadow:var(--shadow);transform:rotate(-1.5deg)}.hero-card:after{content:"";position:absolute;width:150px;height:150px;right:-70px;bottom:-80px;border:30px solid var(--coral);border-radius:50%;opacity:.9}.card-label,.timeline-kicker,.project-number{color:var(--mint);font-size:.74rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase}.card-title{max-width:320px;margin-bottom:1rem;font-family:Georgia,serif;font-size:1.45rem;line-height:1.2}.quick-facts{position:relative;z-index:1;margin:1rem 0 0}.quick-facts div{display:grid;grid-template-columns:80px 1fr;padding:.55rem 0;border-top:1px solid rgba(255,255,255,.18)}.quick-facts dt{color:#a8b4c1;font-size:.8rem}.quick-facts dd{margin:0;font-size:.86rem;font-weight:650}
.section{padding:7rem max(20px,calc((100vw - 1180px)/2))}.work-section{background:var(--cream)}.section-heading{display:grid;grid-template-columns:1.2fr .8fr;gap:3rem;align-items:end;margin-bottom:3.5rem}h2{margin-bottom:0;font-size:clamp(2.4rem,5vw,4.4rem);line-height:1.02;letter-spacing:-.055em}.section-heading>p{max-width:480px;margin:0;color:var(--muted)}
.project-card{display:grid;grid-template-columns:1.08fr .92fr;min-height:520px;overflow:hidden;background:#fff;border:1px solid #e3dfd5;border-radius:20px;box-shadow:var(--shadow)}.project-visual{display:grid;place-items:center;padding:clamp(1.5rem,6vw,4.5rem);background:var(--sky);background-image:radial-gradient(circle at 15% 15%,rgba(255,255,255,.85) 0 4px,transparent 5px),radial-gradient(circle at 85% 80%,rgba(23,92,211,.18) 0 5px,transparent 6px);background-size:54px 54px,70px 70px}.terminal{width:100%;max-width:510px;overflow:hidden;color:#e7edf4;background:#101c29;border:1px solid #324152;border-radius:14px;box-shadow:0 28px 50px rgba(11,31,51,.28);transform:rotate(-1.5deg)}.terminal-bar{display:flex;align-items:center;gap:.45rem;padding:.85rem 1rem;background:#1c2a39;border-bottom:1px solid #354454}.terminal-bar span{width:10px;height:10px;border-radius:50%;background:var(--coral)}.terminal-bar span:nth-child(2){background:#f1bd53}.terminal-bar span:nth-child(3){background:var(--mint)}.terminal-bar b{margin-left:auto;color:#9aa8b8;font:500 .72rem ui-monospace,monospace}.terminal-body{padding:1.6rem;font:.82rem/1.55 ui-monospace,SFMono-Regular,Consolas,monospace}.prompt,.success{color:var(--mint)}.terminal-heading{margin:1.7rem 0 1rem;color:#8db9ff;letter-spacing:.12em}.metric{display:flex;justify-content:space-between;margin-top:1rem}.metric span{color:#9eacba}.bar{height:6px;margin-top:.4rem;overflow:hidden;background:#2b3947;border-radius:99px}.bar i{display:block;height:100%;background:linear-gradient(90deg,var(--mint),#8db9ff);border-radius:inherit}.success{margin:1.6rem 0 0}
.project-copy{display:flex;flex-direction:column;justify-content:center;padding:clamp(2rem,6vw,5rem)}.project-number{color:var(--blue)}.project-copy h3,.small-project h3{margin-bottom:1.2rem;font-size:clamp(2rem,4vw,3.3rem);line-height:1;letter-spacing:-.05em}.project-copy>p:not(.project-number),.small-project>p:not(.project-number){color:var(--muted)}.tags{display:flex;flex-wrap:wrap;gap:.55rem;padding:0;margin:1rem 0 1.5rem;list-style:none}.tags li{padding:.38rem .7rem;color:var(--blue-dark);background:var(--sky);border-radius:99px;font-size:.75rem;font-weight:750}.project-link,.text-link{display:inline-flex;align-items:center;gap:.35rem;transition:transform .16s ease,color .16s ease}.project-link{align-self:flex-start;color:var(--blue-dark);font-weight:800;text-underline-offset:5px}.repo-link{padding:.65rem .85rem .65rem .65rem;text-decoration:none;background:var(--sky);border:1px solid rgba(23,92,211,.16);border-radius:9px}.repo-mark{display:grid;width:28px;height:28px;place-items:center;color:#fff;background:var(--navy);border-radius:50%;font:800 .58rem/1 ui-monospace,monospace;letter-spacing:-.04em}.project-link:hover,.text-link:hover{transform:translateX(4px)}.project-link:active,.text-link:active{transform:translateX(2px) scale(.96)}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin-top:1.5rem}.small-project{min-height:390px;padding:clamp(2rem,5vw,4rem);display:flex;flex-direction:column;background:#fff;border:1px solid #e3dfd5;border-radius:20px}.small-project h3{max-width:540px}.small-project .project-link{margin-top:auto}.small-project.dark{color:#fff;background:var(--navy);border-color:var(--navy)}.small-project.dark>p:not(.project-number){color:#b8c3ce}.small-project.dark .project-number{color:var(--mint)}.small-project.dark .project-link{color:#fff;background:#263b51;border-color:#40576f}.small-project.dark .repo-mark{color:var(--navy);background:#fff}.small-project.dark .tags li{color:#ddebff;background:#263b51}
.experience-section{background:var(--paper)}.timeline{border-top:1px solid var(--line)}.timeline-item{display:grid;grid-template-columns:minmax(120px,.28fr) minmax(280px,1fr) minmax(240px,.58fr);gap:clamp(1.5rem,4vw,3rem);align-items:center;padding:2.3rem 0;border-bottom:1px solid var(--line)}.timeline-copy{max-width:620px}.timeline-item h3{margin-bottom:.2rem;font-size:1.45rem;letter-spacing:-.025em}.timeline-date{align-self:start;padding-top:.35rem;color:var(--muted);font:700 .86rem ui-monospace,monospace}.timeline-kicker{margin-bottom:.3rem;color:var(--blue)}.timeline-place{color:var(--muted);font-size:.9rem}.timeline-copy p:last-child{margin-bottom:0;color:var(--muted)}.timeline-item.featured{position:relative}.timeline-item.featured:before{content:"";position:absolute;left:-18px;top:2.75rem;width:7px;height:7px;background:var(--coral);border-radius:50%}.experience-photo{margin:0;overflow:hidden;background:var(--cream);border:1px solid var(--line);border-radius:14px;box-shadow:0 12px 30px rgba(11,31,51,.08);transition:transform .25s ease,box-shadow .25s ease}.experience-photo:hover{transform:translateY(-3px) rotate(.4deg);box-shadow:0 18px 38px rgba(11,31,51,.13)}.experience-photo img{display:block;width:100%;height:185px;object-fit:cover}
.principles{color:#fff;background:var(--navy)}.principles .eyebrow{color:var(--mint)}.principles>div:first-child{margin-bottom:3rem}.motto{max-width:1000px;margin:0 0 4rem;padding-left:1.6rem;border-left:4px solid var(--coral);font-family:Georgia,serif;font-size:clamp(2rem,4.5vw,4rem);line-height:1.12;letter-spacing:-.035em}.motto em{color:var(--mint);font-weight:400}.principle-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(255,255,255,.18)}.principle-grid article{padding:2.4rem;background:var(--navy)}.principle-grid span{color:var(--coral);font:700 .76rem ui-monospace,monospace}.principle-grid h3{margin:2.8rem 0 .6rem;font-size:1.35rem}.principle-grid p{margin:0;color:#b8c3ce}.contact{padding:8rem max(20px,calc((100vw - 1180px)/2));background:var(--blue);color:#fff}.contact .eyebrow{color:#cbe1ff}.contact h2{max-width:920px;font-size:clamp(3rem,7vw,6.2rem)}.contact>p:not(.eyebrow){max-width:620px;margin-top:2rem;color:#dbe9ff;font-size:1.1rem}.button-light{color:var(--navy);background:#fff;border-color:#fff}.text-link{padding:.8rem;font-weight:800;text-underline-offset:5px}footer{display:flex;justify-content:space-between;gap:2rem;padding:2rem max(20px,calc((100vw - 1180px)/2));color:#b7c1cc;background:var(--navy);font-size:.78rem}footer p{margin:0}
/* Dark crimson theme */
.wordmark>span:first-child{background:var(--blue);box-shadow:0 0 24px rgba(227,25,55,.24)}
nav a:hover{color:var(--blue-dark)}
nav .nav-social{color:var(--ink)}
.status-dot{background:#45d483;box-shadow:0 0 0 5px rgba(69,212,131,.12)}
h1 em{text-shadow:0 0 38px rgba(227,25,55,.18)}
.button{border-color:var(--blue)}
.button:hover{box-shadow:0 8px 26px rgba(227,25,55,.22)}
.button:active{box-shadow:0 3px 8px rgba(0,0,0,.38)}
.button-primary{background:var(--blue)}
.button-primary:hover{background:#ff2948}
.portrait-card{background:#202024;border-color:#242429}
.portrait-card figcaption{background:rgba(8,8,10,.86)}
.hero-card{border:1px solid #32141a}
.project-card,.small-project{background:var(--surface);border-color:var(--line)}
.project-visual{background-color:var(--sky);background-image:radial-gradient(circle at 15% 15%,rgba(255,255,255,.12) 0 4px,transparent 5px),radial-gradient(circle at 85% 80%,rgba(227,25,55,.28) 0 5px,transparent 6px)}
.terminal{color:#f0f0f3;background:#070709;border-color:#3a252b;box-shadow:0 28px 50px rgba(0,0,0,.46)}
.terminal-bar{background:#181217;border-color:#3a252b}
.terminal-bar span:nth-child(3){background:#ff8192}
.terminal-bar b,.metric span{color:#aaa5aa}
.terminal-heading{color:#ff7185}
.bar{background:#302227}
.bar i{background:linear-gradient(90deg,var(--blue),var(--mint))}
.project-number,.timeline-kicker{color:var(--blue-dark)}
.tags li{color:#ff9baa;background:var(--sky);border:1px solid rgba(227,25,55,.2)}
.repo-link{background:var(--sky);border-color:rgba(227,25,55,.26)}
.repo-mark{background:var(--blue)}
.small-project.dark{background:var(--navy);border-color:#2c171c}
.small-project.dark>p:not(.project-number){color:#bdb9be}
.small-project.dark .project-link{background:#271117;border-color:#5b2530}
.small-project.dark .repo-mark{color:#fff;background:var(--blue)}
.small-project.dark .tags li{color:#ffb2bd;background:#271117}
.experience-photo{box-shadow:0 12px 30px rgba(0,0,0,.28)}
.experience-photo:hover{box-shadow:0 18px 38px rgba(227,25,55,.16)}
.timeline{max-width:980px}
.timeline-item{position:relative;grid-template-columns:minmax(130px,.26fr) minmax(0,1fr);padding:2.25rem 1.4rem;transition:transform .22s ease,background .22s ease,border-color .22s ease}
.timeline-item:hover{background:linear-gradient(90deg,rgba(227,25,55,.1),rgba(227,25,55,0) 78%);border-bottom-color:#583039;transform:translateX(5px)}
.timeline-copy{max-width:720px}
.timeline-item h3{font-size:1.55rem}
.timeline-item.featured:before{left:-4px;box-shadow:0 0 0 6px rgba(227,25,55,.12)}
.principle-grid p{color:#c0bbc0}
.contact{background:linear-gradient(135deg,#b30d29,#730718)}
.contact .eyebrow{color:#ffd5dc}
.contact>p:not(.eyebrow){color:#ffe5e9}
.button-light{color:#111114;background:#fff;border-color:#fff}
footer{color:#b7b3b8;background:#050506}

@media(max-width:980px){.timeline-item{grid-template-columns:130px 1fr}.experience-photo{grid-column:2}.experience-photo img{height:220px}}
@media(max-width:860px){.hero{grid-template-columns:1fr;min-height:auto;padding:5rem 0}.hero-aside{max-width:520px}.section-heading,.project-card,.project-grid{grid-template-columns:1fr}.project-visual{min-height:430px}.principle-grid{grid-template-columns:1fr}}
@media(max-width:680px){.site-header{align-items:flex-start;padding:1rem 0}.wordmark-name{display:none}nav{max-width:280px;justify-content:flex-end;flex-wrap:wrap;gap:.65rem 1rem}nav a{font-size:.8rem}.nav-social{display:none}.hero{padding:4rem 0}h1{font-size:clamp(3.2rem,17vw,4.4rem)}.hero-aside{padding-left:.65rem}.portrait-card{transform:none}.portrait-card img{height:420px}.portrait-card figcaption{font-size:.65rem}.hero-card{width:calc(100% - .6rem);margin-left:-.65rem;transform:none}.section{padding-top:5rem;padding-bottom:5rem}.section-heading{gap:1.5rem}.project-visual{min-height:340px;padding:1rem}.terminal-body{padding:1.1rem;font-size:.7rem}.timeline-item{grid-template-columns:1fr;gap:.75rem}.timeline-item.featured:before{display:none}.experience-photo{grid-column:1;margin-top:.75rem}.experience-photo img{height:210px}.contact{padding-top:6rem;padding-bottom:6rem}footer{flex-direction:column}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition-duration:.01ms!important}}
