﻿@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
    
:root{--black:#070707;
    --surface:#0d0d0d;
    --charcoal:#171717;
    --gunmetal:#242424;
    --silver:#b8b1a8;
    --platinum:#ddd7ce;
    --bronze:#a46a32;
    --amber:#d28a45;
    --text:#f3f0ea;
    --muted:#a19e99;
    --line:rgba(184,177,168,.18);
    --width:1180px}

*{box-sizing:border-box}
html{scroll-behavior:smooth;
    scroll-padding-top:112px}
body{margin:0;
    background:var(--black);
    color:var(--text);
    font-family:'DM Sans',sans-serif;
    line-height:1.7}
body:before{content:'';
    position:fixed;
    inset:0;
    pointer-events:none;
    opacity:.025;
    z-index:5;
    background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23fff' filter='url(%23n)' d='M0 0h180v180H0z'/%3E%3C/svg%3E")}

a{color:inherit;
    text-decoration:none}
button,input,textarea{font:inherit}
button{cursor:pointer}
img{max-width:100%;
    display:block}
h1,h2,h3,p,figure{margin:0}
h1,h2,h3{font-family:Manrope,sans-serif;
    line-height:1.15}
p{color:var(--muted)}
a,button{transition:color .2s,background .2s,border-color .2s,transform .2s}
a:hover{color:var(--amber)}
:focus-visible{outline:2px solid var(--amber);
    outline-offset:5px}
::selection{background:var(--bronze);
    color:white}
.wrap{width:min(var(--width),calc(100% - 80px));
    margin-inline:auto}
.section{padding:112px 0;
    border-top:1px solid var(--line)}
.eyebrow{display:flex;
    align-items:center;
    gap:12px;
    font-size:10px;
    letter-spacing:.19em;
    text-transform:uppercase;
    color:var(--silver);
    font-weight:600}
.eyebrow:before{content:'';
    flex-shrink:0;
    width:24px;
    height:1px;
    background:var(--bronze)}
.section-heading{display:flex;
    justify-content:space-between;
    align-items:end;
    gap:28px;
    margin-bottom:52px}
.section-heading h2{font-size:clamp(32px,4.3vw,52px);
    letter-spacing:-.045em;
    margin-top:18px}
.section-heading>p{max-width:320px;
    font-size:14px}
.accent{color:var(--silver)}
.text-link{display:inline-flex;
    align-items:center;
    gap:20px;
    border-bottom:1px solid var(--bronze);
    padding:9px 0;
    font-size:13px}
.arrow{font-size:18px;
    line-height:1}
.skip-link{position:fixed;
    top:-80px;
    left:20px;
    background:var(--platinum);
    color:var(--black);
    padding:12px;
    z-index:100}
.skip-link:focus{top:16px}

.navbar{position:fixed;
    top:20px;
    left:50%;
    transform:translateX(-50%);
    width:min(1240px,calc(100% - 40px));
    z-index:20;
    background:rgba(13,13,13,.9);
    backdrop-filter:blur(16px);
    border:1px solid var(--line);
    border-radius:10px;
    transition:top .25s,box-shadow .25s}
.navbar.scrolled{top:10px;
    box-shadow:0 10px 35px #0008}
.nav-inner{display:flex;
    align-items:center;
    justify-content:space-between;
    min-height:74px;
    padding:8px 24px;
    gap:20px}
.brand{display:flex;
    align-items:center;
    gap:12px}
.brand img{width:66px;
    height:44px;
    object-fit:contain}
.brand span{font-size:11px;
    font-weight:600;
    letter-spacing:.14em}
.nav-links{display:flex;
    align-items:center;
    gap:26px}
.nav-link{position:relative;
    font-size:12px;
    color:var(--muted);
    padding:13px 0}
.nav-link:after{content:'';
    position:absolute;
    bottom:5px;
    left:0;
    width:0;
    height:1px;
    background:var(--amber);
    transition:width .25s}
.nav-link[aria-current],.nav-link:hover{color:var(--text)}
.nav-link[aria-current]:after,.nav-link:hover:after{width:100%}
.nav-contact{border:1px solid #725034;
    border-radius:5px;
    padding:9px 16px;
    font-size:12px}
.menu-toggle{display:none;
    background:none;
    border:1px solid var(--line);
    color:var(--text);
    padding:9px 13px;
    border-radius:4px;
    min-height:44px}
.mobile-menu{padding:8px 24px 22px;
    border-top:1px solid var(--line)}
.mobile-menu a{display:block;
    padding:10px 0;
    color:var(--platinum)}
[hidden]{display:none!important}

.hero{position:relative;
    padding:180px 0 38px;
    overflow:hidden;
    background:radial-gradient(ellipse at 78% 42%,#30251b40,transparent 52%)}
.hero-grid{display:grid;
    grid-template-columns:1.1fr 1fr;
    align-items:center;
    gap:30px;
    min-height:460px}
.hero h1{font-size:clamp(58px,6.9vw,94px);
    font-weight:500;
    letter-spacing:-.065em;
    margin:25px 0 21px;
    line-height:1.02}
.hero h1>span{display:block;
    color:var(--platinum)}
.name-dot{color:var(--amber)}
.hero-title{font-size:16px;
    color:var(--platinum);
    letter-spacing:.035em;
    margin-bottom:17px}
.hero-description{max-width:435px;
    font-size:14px}
.hero-actions{display:flex;
    gap:12px;
    flex-wrap:wrap;
    margin-top:29px}
.button{display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:28px;
    min-height:48px;
    padding:12px 21px;
    border-radius:4px;
    border:1px solid var(--line);
    font-size:12px;
    font-weight:600;
    color:var(--text);
    background:transparent}
.button.primary{background:var(--platinum);
    border-color:var(--platinum);
    color:var(--black)}
.button:hover{transform:translateY(-2px);
    border-color:var(--bronze);
    color:var(--amber)}
.button.primary:hover{background:var(--text);
    color:var(--black)}
.socials{display:flex;
    gap:24px;
    margin-top:30px;
    font-size:12px;
    color:var(--muted)}
.socials a{display:inline-flex;
    gap:8px;
    align-items:center;
    min-height:44px}
.brand-art{position:relative;
    padding:40px 0}
.brand-art:before,.brand-art:after{content:'';
    position:absolute;
    width:90%;
    height:110%;
    left:5%;
    top:-5%;
    border:1px solid #b8b1a80e;
    border-radius:50%;
    transform:rotate(-28deg);
    pointer-events:none}
.brand-art:after{width:105%;
    height:85%;
    left:-2%;
    top:10%;
    border-color:#a46a3217}
.brand-art img{width:100%;
    height:auto;
    position:relative;
    z-index:1}
.art-caption{display:flex;
    justify-content:space-between;
    gap:20px;
    margin-top:28px;
    font-size:9px;
    text-transform:uppercase;
    letter-spacing:.18em;
    color:var(--muted)}
.hero-bottom{display:flex;
    justify-content:space-between;
    gap:15px;
    border-top:1px solid var(--line);
    padding-top:24px;
    margin-top:65px;
    font-size:10px;
    letter-spacing:.13em;
    text-transform:uppercase;
    color:var(--muted)}
.hero-bottom a{display:flex;
    gap:18px}
.dot{display:inline-block;
    width:5px;
    height:5px;
    background:var(--amber);
    border-radius:50%;
    margin-right:9px;
    vertical-align:middle}
.stack-strip{border-top:1px solid var(--line);
    border-bottom:1px solid var(--line);
    padding:23px 0;
    background:var(--surface)}
.stack-strip .wrap{display:flex;
    justify-content:space-between;
    gap:20px;
    align-items:center;
    flex-wrap:wrap;
    font-size:13px;
    color:var(--silver)}
.stack-strip small{font-size:9px;
    letter-spacing:.14em;
    color:var(--muted)}

.about-grid{display:grid;
    grid-template-columns:.8fr 1.2fr;
    gap:88px;
    align-items:center}
.portrait-frame{padding:12px;
    border:1px solid var(--line);
    position:relative}
.portrait-frame:after{content:'';
    position:absolute;
    bottom:-1px;
    right:-1px;
    width:70px;
    height:70px;
    border-right:1px solid var(--bronze);
    border-bottom:1px solid var(--bronze)}
.portrait-frame img{width:100%;
    aspect-ratio:4/4.5;
    object-fit:cover;
    object-position:center 25%;
    background:var(--charcoal)}
.portrait-caption{display:flex;
    justify-content:space-between;
    gap:10px;
    padding:17px 4px 3px;
    font-size:9px;
    color:var(--silver);
    letter-spacing:.07em}
.about-copy h3{font-size:26px;
    letter-spacing:-.03em;
    margin-bottom:20px}
.about-copy p{font-size:14px;
    margin-bottom:18px}
.details{display:grid;
    grid-template-columns:1fr 1fr;
    gap:16px;
    margin:26px 0;
    padding:24px 0;
    border-block:1px solid var(--line);
    font-size:12px}
.details dt{color:var(--muted);
    font-size:10px;
    margin-bottom:4px}
.details dd{margin:0;
    overflow-wrap:anywhere}
.highlights{display:flex;
    gap:35px;
    margin-top:28px}
.highlights strong{display:block;
    font-family:Manrope,sans-serif;
    font-size:25px;
    font-weight:500}
.highlights span{font-size:10px;
    color:var(--muted)}

.skills-section{background:var(--surface)}
.skills-grid{display:grid;
    grid-template-columns:repeat(4,1fr);
    border:1px solid var(--line)}
.skill-group{padding:28px;
    border-right:1px solid var(--line)}
.skill-group:last-child{border:0}
.skill-icon{font-family:monospace;
    color:var(--amber);
    font-size:23px;
    display:block;
    margin-bottom:32px}
.skill-group h3{font-size:15px;
    margin-bottom:20px}
.chips{display:flex;
    flex-wrap:wrap;
    gap:8px}
.chips span{font-size:11px;
    padding:5px 10px;
    background:var(--charcoal);
    border:1px solid var(--line);
    border-radius:3px;
    color:var(--silver);
    transition:border-color .2s}
.chips span:hover{border-color:var(--bronze)}
.learning{display:flex;
    gap:24px;
    align-items:center;
    flex-wrap:wrap;
    padding:22px 0 0}
.learning>span{font-size:11px;
    color:var(--muted)}

.project{display:grid;
    grid-template-columns:1.25fr 1fr;
    gap:55px;
    align-items:center;
    padding:38px 0;
    border-top:1px solid var(--line)}
.project:nth-child(even){grid-template-columns:1fr 1.25fr}
.project:nth-child(even) .project-visual{order:2}
.project-visual{display:block;
    padding:18px;
    background:linear-gradient(140deg,#24211c,#111);
    border:1px solid var(--line);
    border-radius:6px;
    overflow:hidden}
.project-visual img{width:100%;
    aspect-ratio:1.88;
    object-fit:contain;
    transition:transform .6s}
.project-visual:hover{border-color:var(--bronze)}
.project-visual:hover img{transform:scale(1.025)}
.project-index{font-size:10px;
    letter-spacing:.13em;
    text-transform:uppercase;
    color:var(--amber);
    margin-bottom:15px}
.project h3{font-size:28px;
    letter-spacing:-.035em;
    margin-bottom:16px}
.project p{font-size:13px;
    margin-bottom:22px}
.project-links{display:flex;
    gap:28px;
    margin-top:20px}
.project-links a{font-size:12px;
    display:flex;
    align-items:center;
    gap:14px;
    min-height:44px}
.project-links a:first-child{color:var(--platinum)}

.journey-grid{display:grid;
    grid-template-columns:.8fr 1.2fr;
    gap:80px}
.journey-grid .section-heading{display:block}
.journey-grid .section-heading p:not(.eyebrow){margin-top:23px;
    max-width:280px;
    font-size:14px}
.timeline{border-left:1px solid #a46a3255;
    padding-left:32px}
.timeline-item{position:relative;
    padding:0 0 35px}
.timeline-item:last-child{padding-bottom:0}
.timeline-item:before{content:'';
    position:absolute;
    left:-37px;
    top:5px;
    width:9px;
    height:9px;
    background:var(--silver);
    border:2px solid var(--black);
    border-radius:50%;
    box-shadow:0 0 0 1px var(--bronze)}
.timeline-item time{font-size:10px;
    letter-spacing:.1em;
    color:var(--amber)}
.timeline-item h3{font-size:19px;
    margin:10px 0 5px}
.timeline-item .organization{color:var(--silver);
    font-size:12px;
    margin-bottom:9px}
.timeline-item p{font-size:13px}

.contact-section{background:radial-gradient(ellipse at 10% 100%,#a46a320c,transparent 65%),var(--surface)}
.contact-grid{display:grid;
    grid-template-columns:1fr 1fr;
    gap:100px}
.contact-copy h2{font-size:clamp(37px,4.6vw,58px);
    letter-spacing:-.045em;
    margin:22px 0}
.contact-copy>p:not(.eyebrow){font-size:14px;
    max-width:360px}
.contact-details{display:grid;
    gap:17px;
    margin:30px 0}
.contact-details div{display:flex;
    flex-direction:column;
    gap:3px}
.contact-details span{font-size:10px;
    color:var(--muted)}
.contact-details a,.contact-details p{font-size:14px;
    color:var(--platinum)}
.form-row{display:grid;
    grid-template-columns:1fr 1fr;
    gap:18px}
label{display:block;
    font-size:11px;
    color:var(--silver);
    margin-bottom:8px}
input,textarea{width:100%;
    min-width:0;
    background:#111;
    border:1px solid var(--line);
    border-radius:4px;
    padding:13px 14px;
    color:var(--text);
    font-size:14px;
    transition:border-color .2s}
input:focus,textarea:focus{border-color:var(--bronze);
    outline:1px solid var(--bronze);
    outline-offset:0}
textarea{resize:vertical;
    min-height:160px}
input::placeholder,textarea::placeholder{color:#85817c}
.field{margin-bottom:22px}
.form-note{font-size:10px;
    margin:13px 0}
form .button{width:100%;
    justify-content:space-between}
button:disabled{opacity:.65;
    cursor:wait;
    transform:none}
.form-message{font-size:13px;
    min-height:26px;
    color:var(--platinum);
    margin-top:12px}
.form-message[data-state=error]{color:var(--amber)}
.footer{padding:33px 0;
    border-top:1px solid var(--line)}
.footer-top{display:flex;
    align-items:center;
    justify-content:space-between;
    gap:25px}
.footer-brand{display:flex;
    align-items:center;
    gap:16px}
.footer-brand img{width:70px;
    height:auto}
.footer-brand strong{display:block;
    font-size:12px;
    font-weight:500}
.footer-brand span{font-size:10px;
    color:var(--muted)}
.footer .socials{margin:0}
.back-top{font-size:11px;
    padding:12px 0}
.footer-bottom{display:flex;
    justify-content:space-between;
    gap:20px;
    border-top:1px solid var(--line);
    margin-top:27px;
    padding-top:20px;
    font-size:10px;
    color:var(--muted)}

.reveal{transition:opacity .65s,transform .65s}
.reveal.is-pending{opacity:0;
    transform:translateY(18px)}
.hero:before{content:'';
    position:absolute;
    inset:0;
    background:radial-gradient(ellipse at 65% 35%,#b8b1a807,transparent 60%);
    animation:light-drift 14s ease-in-out infinite alternate;
    pointer-events:none}
.hero>.wrap{position:relative}
@keyframes light-drift{to{transform:translateX(8%)}
}

@media(min-width:761px){.mobile-menu{display:none}
}

@media(min-width:1500px){.hero{padding-top:205px;
    padding-bottom:45px}
.hero-grid{min-height:530px}
}

@media(max-width:1000px){.nav-links{gap:18px}
.brand span{display:none}
.about-grid{gap:40px}
.skill-group{padding:22px}
.project{gap:30px}
.contact-grid{gap:45px}
.journey-grid{gap:40px}
.hero h1{font-size:70px}
}

@media(max-width:760px){.wrap{width:calc(100% - 40px)}
.navbar{top:12px;
    width:calc(100% - 24px)}
.nav-inner{min-height:64px;
    padding:8px 16px}
.brand span{display:block}
.nav-links{display:none}
.menu-toggle{display:block}
.mobile-menu{max-height:calc(100dvh - 100px);
    overflow:auto}
.hero{padding-top:135px}
.hero-grid{grid-template-columns:1fr;
    gap:20px}
.hero h1{font-size:clamp(56px,11vw,78px)}
.hero-description{max-width:490px}
.brand-art{width:min(440px,90%);
    margin:15px auto 0;
    padding:15px 0}
.art-caption{margin-top:18px;
    font-size:8px}
.hero-bottom{margin-top:40px;
    font-size:8px}
.section{padding:75px 0}
.section-heading{align-items:start;
    flex-direction:column;
    margin-bottom:35px;
    gap:18px}
.section-heading>p{max-width:430px}
.stack-strip .wrap{justify-content:center;
    gap:18px 25px}
.stack-strip small{width:100%;
    text-align:center}
.about-grid{grid-template-columns:1fr;
    gap:35px}
.portrait-frame{max-width:380px;
    width:100%}
.portrait-frame img{aspect-ratio:4/4}
.skills-grid{grid-template-columns:1fr 1fr}
.skill-group:nth-child(2){border-right:0}
.skill-group:nth-child(-n+2){border-bottom:1px solid var(--line)}
.project,.project:nth-child(even){grid-template-columns:1fr;
    gap:25px;
    padding:30px 0 38px}
.project:nth-child(even) .project-visual{order:0}
.project h3{font-size:26px}
.journey-grid,.contact-grid{grid-template-columns:1fr;
    gap:35px}
.journey-grid .section-heading{margin-bottom:0}
.journey-grid .section-heading p{max-width:100%}
.footer-top{flex-wrap:wrap}
.footer .socials{gap:17px}
.footer-bottom{font-size:9px}
.project-visual{padding:12px}
input,textarea{font-size:16px}
html:not(.js) .nav-links{display:flex;
    flex-wrap:wrap;
    gap:10px}
html:not(.js) .nav-inner{flex-wrap:wrap}
html:not(.js) .navbar{position:relative}
html:not(.js) .hero{padding-top:50px}
}

@media(max-width:380px){.brand span{font-size:9px}
.hero-actions{flex-direction:column}
.hero-actions .button{width:100%}
.details,.form-row{grid-template-columns:1fr}
.skill-group{padding:18px 14px}
.hero-bottom{letter-spacing:.02em}
.hero-bottom>span:last-child{display:none}
.highlights{gap:20px}
.highlights strong{font-size:21px}
}

@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}
*,*:before,*:after{animation:none!important;
    transition:none!important}
.reveal.is-pending{opacity:1;
    transform:none}
}

@media print{.navbar,.hero-actions,form,.back-top{display:none}
body{background:white;
    color:black}
.section{padding:30px 0}
p{color:#444}
.reveal.is-pending{opacity:1;
    transform:none}
}
