*,
*::before,
*::after{box-sizing:border-box}

:root{color-scheme:dark}

html,body{
  padding:0;margin:0;
  background:
    radial-gradient(1200px 800px at 80% -10%, rgba(212,175,55,.12), transparent 50%),
    radial-gradient(1000px 600px at -10% 20%, rgba(212,175,55,.08), transparent 40%),
    #0b0e13;
  color:#e6e6e6;
  font-family:'Inter',system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,'Apple Color Emoji','Segoe UI Emoji';
  line-height:1.6;
}

img{max-width:100%;display:block}
a{color:#d4af37;text-decoration:none}
a:hover{text-decoration:underline}

.container{width:min(100% - 2rem,1100px);margin-inline:auto}

.glass{
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.08);
  box-shadow:0 10px 30px rgba(0,0,0,.35);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  border-radius:1.25rem;
}

.section{padding-block:clamp(3rem, 1rem + 2vw, 6rem)}

h1,h2,h3{line-height:1.2}
h1{font-size:clamp(2.2rem, 1rem + 2vw, 3.6rem);margin:.25rem 0 1rem}
h2{font-size:clamp(1.6rem, 1rem + 2vw, 2.4rem);margin:0 0 1rem}
h3{font-size:clamp(1.1rem, 1rem + 2vw, 1.4rem);margin:.75rem 0 .25rem}

.gradient-text{
  background:linear-gradient(90deg,#d4af37 0%,#f4e3b2 60%,#fff 100%);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
}

.site-header{position:sticky;top:0;z-index:50;padding-block:.6rem}

.nav{display:grid;grid-template-columns:1fr auto;align-items:center;gap:1rem}
.nav .brand{font-weight:800;font-size:1.25rem;letter-spacing:.5px;color:#e6e6e6}
.nav .brand span{color:#d4af37}
.nav .nav__toggle{display:none;background:none;border:0;color:#e6e6e6;font-size:1.5rem}
.nav .nav__links{list-style:none;display:flex;gap:1rem;padding:0;margin:0}
.nav .nav__links a{color:#e6e6e6;opacity:.85;padding:.4rem .7rem;border-radius:.6rem;transition:background 220ms cubic-bezier(.2,.8,.2,1),color 220ms cubic-bezier(.2,.8,.2,1)}
.nav .nav__links a:hover{background:rgba(255,255,255,.06);color:#fff;text-decoration:none}

@media (max-width:820px){
  .nav{grid-template-columns:auto auto}
  .nav .nav__toggle{display:inline-block}
  .nav .nav__links{
    position:absolute;right:1rem;top:60px;display:none;flex-direction:column;
    background:rgba(255,255,255,.04);
    border:1px solid rgba(255,255,255,.08);
    box-shadow:0 10px 30px rgba(0,0,0,.35);
    backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
    border-radius:1.25rem;
    padding:.5rem;
  }
  .nav .nav__links li{margin:.25rem 0}
  .nav .nav__links.open{display:flex}
}

.hero{position:relative;overflow:clip;padding-top:clamp(4rem, 1rem + 2vw, 8rem);padding-bottom:clamp(3rem, 1rem + 2vw, 6rem)}
.hero .hero__inner{display:grid;align-items:center;gap:2rem;grid-template-columns:1.2fr .8fr}
.hero .hero__copy .eyebrow{color:#a3a3a3;letter-spacing:.2em;text-transform:uppercase;font-size:.8rem}
.hero .hero__subtitle{font-size:clamp(1.1rem, 1rem + 2vw, 1.4rem);color:#a3a3a3;min-height:2.2rem}
.hero .hero__cta{display:flex;gap:.75rem;margin-top:1rem}
.hero .hero__card{padding:1.2rem}
.hero .hero__shape{position:absolute;inset:auto -120px -160px auto;width:520px;opacity:.6;transform:rotate(-10deg);pointer-events:none}
.hero .hero__dots{position:absolute;left:-60px;top:-40px;width:260px;opacity:.35;pointer-events:none}
.hero .hero__scroll{display:grid;place-items:center;width:36px;height:36px;margin:1rem auto 0;color:#a3a3a3}

@media (max-width:900px){
  .hero .hero__inner{grid-template-columns:1fr}
  .hero .hero__shape{width:380px;right:-60px;bottom:-100px}
}

.grid-2col{display:grid;gap:2rem;grid-template-columns:1fr 1fr}
@media (max-width:860px){.grid-2col{grid-template-columns:1fr}}

.cards{display:grid;gap:1rem;grid-template-columns:repeat(3,1fr)}
.cards--grid3{grid-template-columns:repeat(3,1fr)}
@media (max-width:900px){.cards,.cards--grid3{grid-template-columns:1fr}}

.site-footer{padding-block:1.2rem;border-top:1px solid rgba(255,255,255,.08)}
.site-footer .footer__inner{width:min(100% - 2rem,1100px);margin-inline:auto;display:flex;justify-content:space-between;align-items:center;gap:1rem}
.site-footer .social{list-style:none;display:flex;gap:1rem;margin:0;padding:0}
.site-footer .social a{color:#e6e6e6;opacity:.8}

.btn{--ring:rgba(212,175,55,.35);display:inline-flex;align-items:center;gap:.5rem;padding:.7rem 1rem;border-radius:.8rem;font-weight:600;border:1px solid rgba(255,255,255,.08);transition:transform 220ms cubic-bezier(.2,.8,.2,1),box-shadow 220ms cubic-bezier(.2,.8,.2,1),background 220ms cubic-bezier(.2,.8,.2,1),color 220ms cubic-bezier(.2,.8,.2,1);cursor:pointer;user-select:none;box-shadow:0 0 0 0 var(--ring)}
.btn:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(0,0,0,.25),0 0 0 6px var(--ring);text-decoration:none}
.btn--primary{background:linear-gradient(135deg,#d4af37,#f4e3b2);color:#1a1a1a}
.btn--ghost{background:transparent;color:#e6e6e6}
.btn--sm{padding:.45rem .7rem;font-size:.9rem}

.card{
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.08);
  box-shadow:0 10px 30px rgba(0,0,0,.35);
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  border-radius:1.25rem;
  padding:1rem 1.1rem;
  transition:transform 220ms cubic-bezier(.2,.8,.2,1), box-shadow 220ms cubic-bezier(.2,.8,.2,1), border-color 220ms cubic-bezier(.2,.8,.2,1);
  position:relative; isolation:isolate;
}
.card::after{
  content:""; position:absolute; inset:0; border-radius:inherit;
  background:radial-gradient(650px 120px at -10% -40%, rgba(212,175,55,.15), transparent 60%);
  opacity:0; transition:opacity 220ms cubic-bezier(.2,.8,.2,1);
  pointer-events:none; z-index:-1;
}
.card:hover{transform:translateY(-4px);border-color:rgba(212,175,55,.35);box-shadow:0 16px 40px rgba(0,0,0,.45)}
.card:hover::after{opacity:1}

.bullets{padding-left:1.1rem;margin:.5rem 0 0}
.bullets li{margin:.25rem 0}

.tags{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.8rem}
.tags span{padding:.35rem .6rem;border-radius:999px;font-size:.85rem;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.08);color:#a3a3a3}

.form{display:grid;gap:.8rem}
.form input,.form textarea{width:100%;padding:.75rem .9rem;border-radius:.6rem;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.12);color:#e6e6e6;outline:none}
.form input:focus,.form textarea:focus{border-color:#d4af37;box-shadow:0 0 0 3px rgba(212,175,55,.25)}
.form .form__row{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}
@media (max-width:720px){.form .form__row{grid-template-columns:1fr}}

.photo{padding:.6rem}
.photo__mask{position:absolute;inset:.6rem;border-radius:1.25rem;background:linear-gradient(135deg, rgba(212,175,55,.18), rgba(255,255,255,.06));filter:blur(16px);z-index:-1}
.photo img{border-radius:1.25rem}

.reveal{opacity:0;transform:translateY(16px);transition:opacity 600ms ease, transform 600ms ease}
.reveal.in-view{opacity:1;transform:translateY(0)}

@keyframes float{from{transform:translateY(0)} 50%{transform:translateY(-8px)} to{transform:translateY(0)}}
.hero__shape{animation:float 8s ease-in-out infinite}

@keyframes shimmer{0%{background-position:0% 50%} 100%{background-position:200% 50%}}
.hero__title{background-size:200% 100%;animation:shimmer 6s linear infinite}

.project .project__links{display:flex;gap:.5rem;margin-top:.6rem}
.contact .contact__list{list-style:none;padding:0;margin:0;display:grid;gap:.6rem}
.contact .contact__list li{display:grid;grid-template-columns:24px 1fr;gap:.6rem;align-items:center}
.contact .contact__list svg{width:20px;height:20px;fill:currentColor;opacity:.85}
