/* =========================================================
   RESLAN TALYA — Portfolio Communication & Digital
   Éditorial · Blanc & Gris · thème clair
   ========================================================= */

:root{
  /* palette — white & gray */
  --paper:     #f4f4f3;
  --paper-2:   #ffffff;
  --ink:       #1b1b1e;
  --ink-2:     #2b2b30;
  --graphite:  #3f3f46;
  --gray:      #62626a;   /* secondary text */
  --gray-2:    #97979f;   /* muted */
  --line:      rgba(27,27,30,.14);
  --line-soft: rgba(27,27,30,.07);
  --accent:    #3f3f46;   /* graphite accent (where a color would be) */
  --silver:    #d9d9dd;

  /* type */
  --sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --serif: "Fraunces", Georgia, "Times New Roman", serif;

  --step--1: clamp(.78rem, .74rem + .2vw, .9rem);
  --step-0:  clamp(1rem, .95rem + .3vw, 1.18rem);
  --step-1:  clamp(1.2rem, 1.05rem + .7vw, 1.6rem);
  --step-2:  clamp(1.6rem, 1.2rem + 1.8vw, 2.7rem);
  --step-3:  clamp(2.2rem, 1.4rem + 3.6vw, 4.4rem);
  --step-hero: clamp(3.4rem, .2rem + 15vw, 15rem);

  --pad: clamp(1.15rem, 4vw, 5rem);
  --gap: clamp(3.5rem, 9vw, 9rem);
  --maxw: 1600px;

  --ease: cubic-bezier(.19,1,.22,1);
  --bg: var(--paper);
  --fg: var(--ink);
}

*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } }

body{
  font-family:var(--sans); font-size:var(--step-0); line-height:1.6;
  color:var(--fg); background:var(--bg);
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
  overflow-x:clip; font-feature-settings:"ss01","cv11","liga";
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
mark{ background:none; color:var(--ink); box-shadow:inset 0 -.5em 0 var(--silver); }
::selection{ background:var(--ink); color:var(--paper); }

.serif{ font-family:var(--serif); font-style:italic; font-weight:500; }
.label{ font-family:var(--sans); font-size:.72rem; text-transform:uppercase; letter-spacing:.22em; color:var(--gray); font-weight:600; }
.muted{ color:var(--gray); }
sup{ font-size:.55em; }

/* grain */
.grain{
  position:fixed; inset:-50%; z-index:1; pointer-events:none; opacity:.045; mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* cursor */
.cursor{ position:fixed; top:0; left:0; z-index:9000; pointer-events:none; mix-blend-mode:difference; display:none; }
.cursor__dot{ position:fixed; width:7px; height:7px; border-radius:50%; background:#fff; transform:translate(-50%,-50%); }
.cursor__ring{ position:fixed; width:40px; height:40px; border-radius:50%; border:1px solid rgba(255,255,255,.7); transform:translate(-50%,-50%); transition:width .3s var(--ease), height .3s var(--ease), background .3s var(--ease), border-color .3s var(--ease); }
.cursor__label{ position:fixed; transform:translate(-50%,-50%); font-family:var(--sans); font-size:11px; font-weight:600; letter-spacing:.03em; color:#fff; opacity:0; white-space:nowrap; transition:opacity .25s var(--ease); }
.cursor.is-hover, .cursor.is-label{ mix-blend-mode:normal; }
.cursor.is-hover .cursor__ring{ width:72px; height:72px; background:var(--ink); border-color:transparent; }
.cursor.is-label .cursor__ring{ width:86px; height:86px; background:var(--ink); border-color:transparent; }
.cursor.is-label .cursor__label{ opacity:1; }
.cursor.is-label .cursor__dot{ opacity:0; }
@media (hover:hover) and (pointer:fine){ .cursor{ display:block; } body.cursor-on *{ cursor:none !important; } }

/* progress */
.progress{ position:fixed; top:0; left:0; right:0; height:3px; z-index:8000; }
.progress__bar{ display:block; height:100%; width:0; background:var(--ink); }

/* preloader */
.loader{ position:fixed; inset:0; z-index:9999; background:var(--paper); display:grid; place-content:center; text-align:center; transition:transform 1s var(--ease); }
.loader.is-done{ transform:translateY(-101%); }
.loader__label{ display:block; font-size:12px; color:var(--gray); margin-bottom:1rem; letter-spacing:.28em; text-transform:uppercase; font-weight:600; }
.loader__count{ font-family:var(--serif); font-style:normal; font-size:clamp(3rem,14vw,7rem); font-weight:600; line-height:1; letter-spacing:-.02em; }
.loader__count i{ font-style:normal; color:var(--gray); font-size:.4em; vertical-align:super; }
.loader__name{ margin-top:1.2rem; font-size:clamp(1.4rem,4vw,2rem); font-style:italic; color:var(--graphite); }
.loader__bar{ position:absolute; left:0; right:0; bottom:0; height:3px; background:var(--line-soft); }
.loader__bar span{ display:block; height:100%; width:0; background:var(--ink); }

/* nav */
.nav{ position:fixed; top:0; left:0; right:0; z-index:400; display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:clamp(.9rem,2.2vw,1.6rem) var(--pad); transition:transform .5s var(--ease), background .4s var(--ease), padding .4s var(--ease); }
.nav.is-hidden{ transform:translateY(-110%); }
.nav.is-solid{ background:color-mix(in srgb, var(--paper) 80%, transparent); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); border-bottom:1px solid var(--line-soft); padding-top:.7rem; padding-bottom:.7rem; }
.nav__logo{ display:flex; align-items:center; gap:.6rem; font-weight:600; font-size:1rem; letter-spacing:-.01em; }
.nav__logo-mark{ display:grid; place-content:center; width:34px; height:34px; background:var(--ink); color:var(--paper); border-radius:9px; font-size:1rem; font-style:italic; line-height:1; }
.nav__logo-text em{ font-style:italic; font-family:var(--serif); color:var(--graphite); }
.nav__links{ display:flex; gap:clamp(1rem,2.2vw,2.4rem); }
.nav__links a{ position:relative; font-size:.9rem; font-weight:500; display:inline-flex; align-items:baseline; gap:.4ch; padding:.2rem 0; }
.nav__links a span{ font-size:.62rem; color:var(--gray-2); font-weight:600; }
.nav__links a::after{ content:""; position:absolute; left:0; bottom:-2px; height:1px; width:0; background:var(--ink); transition:width .4s var(--ease); }
.nav__links a:hover::after{ width:100%; }
.nav__side{ display:flex; align-items:center; gap:1rem; }
.status{ display:inline-flex; align-items:center; gap:.5ch; font-size:.74rem; font-weight:600; padding:.4rem .7rem; border:1px solid var(--line); border-radius:100px; white-space:nowrap; }
.status__dot{ width:7px; height:7px; border-radius:50%; background:var(--ink); animation:pulse 2.4s infinite; }
@keyframes pulse{ 0%{ box-shadow:0 0 0 0 rgba(27,27,30,.4);} 70%{ box-shadow:0 0 0 7px rgba(27,27,30,0);} 100%{ box-shadow:0 0 0 0 rgba(27,27,30,0);} }
.nav__cv{ font-size:.78rem; font-weight:600; padding:.45rem .85rem; border:1px solid var(--ink); border-radius:100px; transition:.3s var(--ease); }
.nav__cv:hover{ background:var(--ink); color:var(--paper); }
.burger{ display:none; width:44px; height:44px; border:1px solid var(--line); border-radius:50%; background:transparent; position:relative; }
.burger span{ position:absolute; left:50%; top:50%; width:16px; height:1.5px; background:var(--ink); transform:translate(-50%,-50%); transition:.35s var(--ease); }
.burger span:first-child{ margin-top:-4px; } .burger span:last-child{ margin-top:4px; }
.burger.is-open span:first-child{ margin-top:0; transform:translate(-50%,-50%) rotate(45deg); }
.burger.is-open span:last-child{ margin-top:0; transform:translate(-50%,-50%) rotate(-45deg); }

/* mobile menu */
.menu{ position:fixed; inset:0; z-index:390; background:var(--ink); color:var(--paper); display:flex; flex-direction:column; justify-content:center; padding:var(--pad); clip-path:inset(0 0 100% 0); transition:clip-path .7s var(--ease); pointer-events:none; }
.menu.is-open{ clip-path:inset(0 0 0 0); pointer-events:auto; }
.menu__nav{ display:flex; flex-direction:column; gap:.3rem; }
.menu__nav a{ display:flex; align-items:center; gap:1rem; font-family:var(--serif); font-style:italic; font-size:clamp(2.2rem,12vw,4.4rem); font-weight:500; line-height:1.1; padding:.4rem 0; border-bottom:1px solid rgba(255,255,255,.12); transform:translateY(40px); opacity:0; }
.menu.is-open .menu__nav a{ transform:translateY(0); opacity:1; transition:transform .7s var(--ease), opacity .7s var(--ease), color .3s; }
.menu.is-open .menu__nav a:nth-child(1){ transition-delay:.12s; } .menu.is-open .menu__nav a:nth-child(2){ transition-delay:.18s; }
.menu.is-open .menu__nav a:nth-child(3){ transition-delay:.24s; } .menu.is-open .menu__nav a:nth-child(4){ transition-delay:.30s; }
.menu.is-open .menu__nav a:nth-child(5){ transition-delay:.36s; } .menu.is-open .menu__nav a:nth-child(6){ transition-delay:.42s; }
.menu__nav a i{ font-family:var(--sans); font-style:normal; font-size:.9rem; color:var(--gray-2); }
.menu__nav a b{ margin-left:auto; color:var(--gray-2); font-weight:400; }
.menu__nav a:hover{ color:var(--silver); }
.menu__foot{ display:flex; justify-content:space-between; flex-wrap:wrap; gap:1rem; margin-top:3rem; color:var(--gray-2); font-size:.8rem; }
.menu__foot a:hover{ color:var(--paper); }

/* shared */
main{ position:relative; z-index:2; }
section{ padding-inline:var(--pad); }
[id]{ scroll-margin-top:clamp(74px, 11vw, 100px); }
.section-head{ max-width:var(--maxw); margin:0 auto; padding-top:var(--gap); }
.kicker{ display:inline-flex; align-items:center; gap:.6ch; font-size:.74rem; text-transform:uppercase; letter-spacing:.22em; color:var(--gray); font-weight:600; }
.kicker i{ color:var(--ink); font-style:normal; }
.kicker--light{ color:var(--gray-2); }
.kicker--light i{ color:var(--silver); }
.section-title{ font-family:var(--serif); font-style:normal; font-size:var(--step-3); font-weight:400; letter-spacing:-.02em; line-height:1; margin-top:1.1rem; max-width:18ch; }
.section-title em{ font-style:italic; }
.section-desc{ margin-top:1.2rem; max-width:44ch; color:var(--gray); font-size:var(--step-0); }
.section-head--split{ display:grid; gap:.4rem; }
@media (min-width:900px){
  .section-head--split{ grid-template-columns:1fr 1fr; align-items:end; }
  .section-head--split .kicker{ grid-column:1; }
  .section-head--split .section-title{ grid-column:1; grid-row:2; }
  .section-head--split .section-desc{ grid-column:2; grid-row:2; justify-self:end; text-align:right; margin-top:0; }
}

/* buttons */
.btn{ display:inline-flex; align-items:center; gap:.6rem; padding:.95rem 1.5rem; border-radius:100px; font-weight:600; font-size:.92rem; border:1px solid var(--ink); transition:background .35s var(--ease), color .35s var(--ease), border-color .35s var(--ease), transform .35s var(--ease); white-space:nowrap; }
.btn span{ display:inline-block; transition:transform .35s var(--ease); }
.btn--primary{ background:var(--ink); color:var(--paper); }
.btn--primary:hover{ background:var(--graphite); border-color:var(--graphite); }
.btn--primary:hover span{ transform:translateY(3px); }
.btn--ghost{ background:transparent; color:var(--ink); }
.btn--ghost:hover{ background:var(--ink); color:var(--paper); }
.btn--ghost:hover span{ transform:translate(3px,-3px); }

/* HERO */
.hero{ min-height:100svh; display:flex; flex-direction:column; justify-content:space-between; padding-top:clamp(6rem,14vh,9rem); padding-bottom:clamp(1.4rem,3vh,2.4rem); position:relative; }
.hero::before{ content:""; position:absolute; inset:0; z-index:-1; background:radial-gradient(70% 55% at 70% 30%, rgba(255,255,255,.9), transparent 70%); pointer-events:none; }
.hero__top{ display:flex; justify-content:space-between; gap:1rem; max-width:var(--maxw); width:100%; margin:0 auto; }
.hero__top-right{ text-align:right; }
.hero__title{ max-width:var(--maxw); width:100%; margin:auto auto; align-self:center; font-family:var(--serif); font-style:normal; font-size:var(--step-hero); font-weight:400; line-height:.86; letter-spacing:-.02em; padding-block:clamp(1rem,4vh,3rem); }
.hero__title .line{ display:block; overflow:hidden; }
.hero__title .line__in{ display:block; transform:translateY(105%); transition:transform 1s var(--ease); }
.is-ready .hero__title .line__in{ transform:translateY(0); }
.hero__title .line:nth-child(2) .line__in{ transition-delay:.1s; }
.hero__title .line--alt{ padding-left:clamp(1.5rem,14vw,14rem); }
.hero__title .line--alt .line__in{ font-style:italic; color:var(--graphite); }
.hero__meta{ display:grid; gap:1.6rem; max-width:var(--maxw); width:100%; margin:0 auto; }
@media (min-width:820px){ .hero__meta{ grid-template-columns:1.4fr auto; align-items:end; } }
.hero__lead{ font-size:var(--step-1); line-height:1.4; max-width:32ch; font-weight:400; color:var(--ink-2); }
.hero__lead strong{ font-weight:700; color:var(--ink); }
.hero__lead em{ font-family:var(--serif); font-style:italic; }
.hero__actions{ display:flex; flex-wrap:wrap; gap:.8rem; }
.hero__index{ display:flex; justify-content:space-between; flex-wrap:wrap; gap:.6rem 1.2rem; max-width:var(--maxw); width:100%; margin:1.4rem auto 0; font-size:.7rem; border-top:1px solid var(--line); padding-top:1rem; }

/* marquee */
.marquee{ overflow:hidden; border-block:1px solid var(--ink); margin-top:var(--gap); background:var(--ink); color:var(--paper); }
.marquee__track{ display:flex; width:max-content; animation:marq 34s linear infinite; }
.marquee__track span{ display:inline-flex; align-items:center; gap:1.2rem; padding:1rem 0; padding-right:1.6rem; white-space:nowrap; font-family:var(--serif); font-style:italic; font-size:clamp(1.4rem,4vw,2.6rem); font-weight:500; }
.marquee__track i{ color:var(--gray-2); font-style:normal; }
.marquee:hover .marquee__track{ animation-play-state:paused; }
@keyframes marq{ to{ transform:translateX(-50%); } }

/* facts */
.facts{ max-width:var(--maxw); margin:var(--gap) auto 0; display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--line); border:1px solid var(--line); }
@media (min-width:820px){ .facts{ grid-template-columns:repeat(4,1fr); } }
.fact{ background:var(--paper); padding:clamp(1.4rem,3.5vw,2.6rem); display:flex; flex-direction:column; gap:.5rem; }
.fact__k{ font-family:var(--serif); font-style:normal; font-size:clamp(2.4rem,6vw,4rem); font-weight:400; letter-spacing:-.02em; line-height:1; }
.fact__l{ font-size:.7rem; }

/* about */
.about{ max-width:var(--maxw); margin:0 auto; }
.about__grid{ display:grid; gap:clamp(2rem,5vw,4rem); margin-top:clamp(2.4rem,6vw,4.4rem); }
@media (min-width:900px){ .about__grid{ grid-template-columns:1fr 1.15fr; align-items:start; } }
.about__lead{ position:sticky; top:14vh; }
.lead-quote{ font-size:var(--step-2); line-height:1.2; letter-spacing:-.01em; color:var(--graphite); }
.about__body p{ font-size:var(--step-0); color:var(--ink-2); margin-bottom:1.15rem; max-width:60ch; }
.about__body strong{ font-weight:700; color:var(--ink); }
.about__facts{ list-style:none; margin-top:2rem; border-top:1px solid var(--line); }
.about__facts li{ display:flex; align-items:baseline; gap:1rem; padding:1rem 0; border-bottom:1px solid var(--line); font-size:.98rem; }
.about__facts i{ color:var(--gray-2); font-size:.72rem; font-style:normal; font-weight:600; min-width:1.6em; }

/* expertise */
.expertise{ max-width:var(--maxw); margin:0 auto; }
.expertise__grid{ display:grid; gap:1px; background:var(--line); border:1px solid var(--line); margin-top:clamp(2.4rem,6vw,4rem); grid-template-columns:1fr; }
@media (min-width:680px){ .expertise__grid{ grid-template-columns:repeat(2,1fr); } }
.skillcard{ background:var(--paper); padding:clamp(1.5rem,3vw,2.4rem); display:flex; flex-direction:column; gap:.7rem; transition:background .4s var(--ease); min-height:230px; }
.skillcard__no{ font-size:.72rem; color:var(--gray-2); font-weight:600; letter-spacing:.1em; }
.skillcard h3{ font-family:var(--serif); font-style:normal; font-size:var(--step-1); font-weight:400; letter-spacing:-.01em; }
.skillcard p{ color:var(--gray); font-size:.96rem; }
.skillcard .tags{ list-style:none; display:flex; flex-wrap:wrap; gap:.4rem; margin-top:auto; padding-top:1rem; }
.skillcard .tags li{ font-size:.72rem; font-weight:500; padding:.36rem .7rem; border:1px solid var(--line); border-radius:100px; transition:.3s var(--ease); }
.skillcard:hover{ background:var(--paper-2); }
.skillcard:hover .tags li{ border-color:var(--graphite); }
.skillcard--accent{ background:var(--ink); color:var(--paper); }
.skillcard--accent p{ color:var(--gray-2); }
.skillcard--accent .skillcard__no{ color:var(--silver); }
.skillcard--accent .tags li{ border-color:rgba(255,255,255,.24); }
.skillcard--accent:hover{ background:var(--graphite); }

/* projects (academic) */
.projects{ max-width:var(--maxw); margin:0 auto; }
.projects__list{ margin-top:clamp(2.4rem,6vw,4rem); border-top:1px solid var(--ink); }
.project{ padding:clamp(1.6rem,4vw,3rem) 0; border-bottom:1px solid var(--line); display:grid; gap:1.2rem; transition:padding-left .5s var(--ease); }
@media (min-width:860px){ .project{ grid-template-columns:1fr 1fr; gap:2rem; align-items:start; } }
@media (hover:hover){ .project:hover{ padding-left:clamp(.6rem,2vw,1.6rem); } }
.project__head{ display:flex; gap:1.2rem; align-items:baseline; }
.project__no{ font-family:var(--serif); font-style:italic; font-size:clamp(1.4rem,3vw,2.2rem); color:var(--gray-2); line-height:1; }
.project__title{ font-family:var(--serif); font-style:normal; font-size:clamp(1.5rem,3.4vw,2.4rem); font-weight:400; letter-spacing:-.01em; line-height:1.05; }
.project__meta{ display:block; margin-top:.6rem; }
.project__points{ list-style:none; display:flex; flex-direction:column; gap:.7rem; }
.project__points li{ position:relative; padding-left:1.4rem; color:var(--ink-2); font-size:.98rem; max-width:52ch; }
.project__points li::before{ content:""; position:absolute; left:0; top:.6em; width:7px; height:7px; border:1px solid var(--ink); border-radius:50%; }

/* parcours */
.path{ max-width:var(--maxw); margin:0 auto; }
.path__grid{ display:grid; gap:clamp(2rem,5vw,4rem); margin-top:clamp(2.4rem,6vw,4rem); }
@media (min-width:900px){ .path__grid{ grid-template-columns:1.3fr .7fr; align-items:start; } }
.timeline{ list-style:none; }
.tl{ display:grid; gap:.4rem 2rem; padding:clamp(1.4rem,3vw,2.2rem) 0; border-top:1px solid var(--line); }
@media (min-width:620px){ .tl{ grid-template-columns:12rem 1fr; align-items:baseline; } }
.tl__year{ font-size:.78rem; color:var(--gray); font-weight:600; letter-spacing:.08em; text-transform:uppercase; }
.tl__body h3{ font-family:var(--serif); font-style:normal; font-size:var(--step-1); font-weight:400; letter-spacing:-.01em; }
.tl__body p{ color:var(--gray); margin-top:.3rem; }
.side{ display:flex; flex-direction:column; gap:2rem; padding-top:clamp(1.4rem,3vw,2.2rem); }
.side__block h4{ margin-bottom:1rem; }
.side__list{ list-style:none; }
.side__list li{ display:flex; justify-content:space-between; gap:1rem; padding:.6rem 0; border-bottom:1px solid var(--line); font-size:.95rem; }
.side__list li span{ color:var(--gray); }
.chips{ list-style:none; display:flex; flex-wrap:wrap; gap:.5rem; }
.chips li{ font-size:.8rem; font-weight:500; padding:.45rem .8rem; border:1px solid var(--line); border-radius:100px; }

/* objective */
.objective{ max-width:var(--maxw); margin:var(--gap) auto 0; padding-top:var(--gap); border-top:1px solid var(--line); }
.objective__text{ font-family:var(--serif); font-style:italic; font-weight:400; font-size:var(--step-2); line-height:1.3; letter-spacing:-.01em; max-width:24ch; margin-top:1.4rem; color:var(--ink); }
.objective mark{ background:none; color:var(--ink); box-shadow:inset 0 -.45em 0 var(--silver); }

/* contact */
.contact{ background:var(--ink); color:var(--paper); margin-top:var(--gap); padding-block:clamp(4rem,12vw,9rem); overflow:clip; }
.contact__inner{ max-width:var(--maxw); margin:0 auto; }
.contact__big{ display:block; font-family:var(--serif); font-style:normal; font-size:clamp(2.8rem,12vw,13rem); font-weight:400; line-height:.9; letter-spacing:-.02em; margin:1.6rem 0 clamp(2rem,6vw,4rem); }
.contact__big .line{ display:block; overflow:hidden; }
.contact__big .line__in{ display:block; }
.contact__big .line--last, .contact__big .serif{ color:var(--silver); }
.contact__big .serif{ font-style:italic; }
@media (hover:hover){ .contact__big:hover .serif{ color:var(--paper); } }
.contact__row{ display:grid; gap:1.4rem; border-top:1px solid rgba(255,255,255,.15); padding-top:2rem; }
@media (min-width:820px){ .contact__row{ grid-template-columns:1fr 1fr; align-items:center; } }
.contact__lines{ display:flex; flex-direction:column; gap:.6rem; }
.contact__mail{ font-size:clamp(1.2rem,3vw,2rem); font-weight:600; letter-spacing:-.02em; transition:.3s var(--ease); }
.contact__mail:hover{ color:var(--silver); }
.contact__tel{ font-size:1.1rem; color:var(--gray-2); transition:.3s var(--ease); }
.contact__tel:hover{ color:var(--paper); }
.contact__note{ color:var(--gray-2); max-width:40ch; }
@media (min-width:820px){ .contact__note{ text-align:right; justify-self:end; } }
.contact__links{ display:flex; flex-wrap:wrap; gap:.8rem; margin-top:2.4rem; }
.pill{ font-size:.82rem; font-weight:600; padding:.7rem 1.2rem; border:1px solid rgba(255,255,255,.24); border-radius:100px; transition:.3s var(--ease); }
.pill:hover{ background:var(--paper); border-color:var(--paper); color:var(--ink); }
.pill--ghost{ border-style:dashed; }

/* footer */
.footer{ display:grid; gap:1.2rem; padding:clamp(2rem,4vw,3rem) var(--pad); max-width:var(--maxw); margin:0 auto; }
@media (min-width:760px){ .footer{ grid-template-columns:repeat(3,1fr); align-items:center; } }
.footer__col{ display:flex; flex-direction:column; gap:.3rem; font-size:.8rem; }
.footer__col--mid{ align-items:flex-start; } .footer__col--end{ align-items:flex-start; }
@media (min-width:760px){ .footer__col--mid{ align-items:center; } .footer__col--end{ align-items:flex-end; } }
.footer__top:hover{ color:var(--graphite); }

/* reveal */
[data-reveal]{ opacity:0; transform:translateY(34px); transition:opacity .9s var(--ease), transform .9s var(--ease); }
[data-reveal].is-in{ opacity:1; transform:none; }

/* responsive nav */
@media (max-width:920px){ .nav__links{ display:none; } .status{ display:none; } .burger{ display:block; } }
@media (min-width:921px){ .menu{ display:none; } }

/* small phones */
@media (max-width:600px){
  .hero__title .line--alt{ padding-left:1.2rem; }
  .hero__top-right{ display:none; }
  .project__head{ gap:.9rem; }
}

/* reduce motion */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; }
  .hero__title .line__in{ transform:none; }
  [data-reveal]{ opacity:1; transform:none; }
  .marquee__track{ animation:none; }
  .loader{ display:none; }
}