/* ===== TOKENS ===== */
:root{
  --navy:#172B46; --olive:#78764A; --bone:#E9DDC5; --gold:#C9A66B;
  --display:'Anton','Impact','Arial Narrow',sans-serif;
  --serif:'Cormorant Garamond',Georgia,serif;
  --body:'Inter',system-ui,sans-serif;
  --pad:clamp(1.25rem,5vw,5rem);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:70px}
body{font-family:var(--body);background:var(--navy);color:var(--bone);line-height:1.7;overflow-x:hidden}
a{color:inherit;text-decoration:none}
ul{list-style:none}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
svg{display:block;width:100%;height:auto}

/* ===== SECTION THEMES ===== */
section{padding:clamp(4rem,10vw,8rem) var(--pad);position:relative}
.sec-navy{background:var(--navy);color:var(--bone)}
.sec-olive{background:var(--olive);color:var(--bone)}
.sec-bone{background:var(--bone);color:var(--navy)}
/* subtle grain */
.sec-navy::after,.sec-olive::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.06;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence baseFrequency='.8' numOctaves='2'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23n)'/%3E%3C/svg%3E")}
.big{font-family:var(--display);font-weight:400;text-transform:uppercase;line-height:.95;font-size:clamp(2.8rem,9vw,8rem);letter-spacing:.01em}
.rule{width:80px;border:0;border-top:1px solid var(--gold);margin:1.5rem 0}
.sub{font-family:var(--serif);font-style:italic;font-weight:500;font-size:2rem;color:var(--gold);margin-bottom:1.5rem}

/* ===== NAV ===== */
.nav{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;justify-content:space-between;align-items:center;padding:1rem var(--pad);background:rgba(23,43,70,.92);backdrop-filter:blur(6px);border-bottom:1px solid rgba(201,166,107,.3)}
.brand{font-family:var(--display);font-size:1.5rem;letter-spacing:.04em;text-transform:uppercase}
.brand span{color:var(--gold)}
.menu{display:flex;gap:2rem}
.menu a{font-size:.9rem;position:relative;padding:.25rem 0;transition:color .2s}
.menu a:hover,.menu a.active{color:var(--gold)}
.menu a::after{content:"";position:absolute;left:0;bottom:0;height:1px;width:0;background:var(--gold);transition:width .3s}
.menu a:hover::after,.menu a.active::after{width:100%}
.burger{display:none;background:none;border:0;width:40px;height:40px;cursor:pointer;position:relative}
.burger span{position:absolute;left:8px;right:8px;height:2px;background:var(--bone);transition:transform .3s}
.burger span:first-child{top:15px}.burger span:last-child{top:23px}
.burger[aria-expanded="true"] span:first-child{transform:translateY(4px) rotate(45deg)}
.burger[aria-expanded="true"] span:last-child{transform:translateY(-4px) rotate(-45deg)}

/* ===== HERO ===== */
.hero{min-height:100vh;display:grid;grid-template-columns:1fr 1fr;align-items:end;padding-top:7rem;overflow:hidden}
.meta{position:absolute;top:5.5rem;left:var(--pad);right:var(--pad);display:flex;justify-content:space-between;font-family:var(--serif);font-style:italic;color:var(--gold);border-bottom:1px solid rgba(201,166,107,.4);padding-bottom:.5rem;z-index:2}
.hero-title{grid-column:1/-1;grid-row:1;align-self:center;font-family:var(--display);font-weight:400;text-transform:uppercase;line-height:.85;font-size:clamp(4rem,17vw,16rem);z-index:3;position:relative;pointer-events:none}
.hero-title span{display:block}
.hero-title span:last-child{color:var(--gold);padding-left:8vw}
.hero-portrait{grid-column:2;grid-row:1;justify-self:end;width:min(100%,460px);z-index:1;margin-top:3rem}
.portrait{border:1px solid var(--gold);padding:.6rem;background:transparent;aspect-ratio:3/4}
.portrait svg{height:100%}
.hero-copy{grid-column:1;grid-row:2;max-width:420px;padding-top:2rem;z-index:3}
.btns{display:flex;gap:1rem;flex-wrap:wrap;margin-top:1.5rem}
.btn{display:inline-block;padding:.9rem 1.8rem;font:500 .9rem var(--body);border:1px solid var(--gold);cursor:pointer;transition:transform .2s,background .2s,color .2s}
.btn-gold{background:var(--gold);color:var(--navy)}
.btn-gold:hover{background:transparent;color:var(--gold);transform:translateY(-2px)}
.btn-line{background:transparent;color:var(--bone)}
.btn-line:hover{background:var(--gold);color:var(--navy);transform:translateY(-2px)}
.sec-bone .btn-gold:hover{color:var(--navy);background:transparent}

/* ===== ABOUT ===== */
.about{display:grid;grid-template-columns:1.1fr .9fr;gap:4rem;align-items:center}
.about-text p{max-width:52ch;margin-bottom:1rem}
.about-art{position:relative;justify-self:center;width:min(100%,380px)}
.circle{position:absolute;width:120%;aspect-ratio:1;border-radius:50%;background:var(--bone);opacity:.18;top:50%;left:50%;transform:translate(-45%,-50%)}
.about-art .portrait{position:relative}

/* ===== PORTFOLIO ===== */
.note{font-family:var(--serif);font-style:italic;font-size:1.2rem;margin:1rem 0 3rem}
.grid{display:grid;grid-template-columns:repeat(12,1fr);gap:3rem 2rem}
.card{display:flex;flex-direction:column;gap:1rem}
.c1{grid-column:1/8}.c2{grid-column:8/13;margin-top:6rem}.c3{grid-column:3/10}
.thumb{overflow:hidden;border:1px solid var(--navy)}
.thumb svg{transition:transform .6s}
.card:hover .thumb svg{transform:scale(1.06)}
.tag{font-family:var(--serif);font-style:italic;color:var(--olive);font-size:1.1rem}
.card h3{font-family:var(--display);font-weight:400;text-transform:uppercase;font-size:2.2rem;line-height:1;transition:color .2s}
.card:hover h3{color:var(--olive)}

/* ===== EDUCATION / CONTACT COLUMNS ===== */
.cols{display:grid;grid-template-columns:1fr 1fr;gap:4rem;margin-top:3rem}
.timeline li{border-top:1px solid var(--gold);padding:1.2rem 0 1.5rem}
.timeline time{font-family:var(--serif);font-style:italic;color:var(--gold);font-size:1.1rem}
.timeline h4{font-family:var(--display);font-weight:400;text-transform:uppercase;font-size:1.6rem;letter-spacing:.02em}

/* ===== SKILLS ===== */
.skill-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2.5rem 3rem;margin-top:3rem}
.skill-grid li{border-top:1px solid var(--gold);padding-top:1rem;transition:transform .3s}
.skill-grid li:hover{transform:translateY(-4px)}
.skill-grid h3{font-family:var(--display);font-weight:400;text-transform:uppercase;font-size:1.6rem;margin-bottom:.8rem}
.bar{height:3px;background:rgba(233,221,197,.25)}
.bar::before{content:"";display:block;height:100%;width:var(--lvl);background:var(--gold);transform-origin:left;transform:scaleX(0);transition:transform 1s .2s}
.in .bar::before,.in.bar::before{transform:scaleX(1)}

/* ===== CONTACT ===== */
.mail{font-family:var(--serif);font-style:italic;font-size:clamp(1.5rem,3vw,2.4rem);border-bottom:1px solid var(--gold)}
.social{display:flex;gap:1.5rem;margin-top:2rem}
.social a:hover{color:var(--olive);text-decoration:underline}
.form{display:grid;gap:.4rem}
.form label{font-size:.85rem;margin-top:.6rem}
.form input,.form textarea{width:100%;padding:.8rem;background:transparent;border:0;border-bottom:1px solid var(--navy);color:var(--navy);font:inherit}
.form input:focus,.form textarea:focus{outline:0;border-bottom:2px solid var(--gold)}
.err{color:#8a2d2d;min-height:1.1rem}
.form .btn{justify-self:start;margin-top:1rem}
.status{font-size:.9rem}

/* ===== FOOTER / TOP ===== */
.footer{padding:2rem var(--pad);text-align:center;border-top:1px solid rgba(201,166,107,.4);font-size:.85rem}
.top{position:fixed;right:1.2rem;bottom:1.2rem;width:44px;height:44px;border:1px solid var(--gold);background:var(--navy);color:var(--gold);cursor:pointer;opacity:0;pointer-events:none;transition:opacity .3s,background .2s;z-index:40}
.top.show{opacity:1;pointer-events:auto}
.top:hover{background:var(--gold);color:var(--navy)}

/* ===== REVEAL ===== */
.js .reveal{opacity:0;transform:translateY(24px);transition:opacity .8s,transform .8s}
.js .reveal.in{opacity:1;transform:none}

/* ===== RESPONSIVE ===== */
@media (max-width:900px){
  .burger{display:block}
  .menu{position:fixed;top:64px;left:0;right:0;flex-direction:column;gap:0;background:var(--navy);padding:1rem var(--pad) 2rem;transform:translateY(-130%);transition:transform .35s;border-bottom:1px solid var(--gold)}
  .menu.open{transform:none}
  .menu a{display:block;padding:.8rem 0;font-size:1.1rem}
  .hero{grid-template-columns:1fr;align-items:start}
  .hero-title,.hero-portrait,.hero-copy{grid-column:1}
  .hero-title{grid-row:2;margin-top:-4rem}
  .hero-portrait{grid-row:1;justify-self:center;width:min(75%,340px);margin-top:3rem}
  .hero-copy{grid-row:3}
  .about,.cols{grid-template-columns:1fr}
  .about-art{order:-1}
  .c1,.c2,.c3{grid-column:1/-1;margin-top:0}
  .skill-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:520px){.skill-grid{grid-template-columns:1fr}.meta span:nth-child(2){display:none}}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{transition:none!important;animation:none!important}
  .js .reveal{opacity:1;transform:none}
  .bar::before{transform:scaleX(1)}
}
