/* AURORAE MEDIA — styles
   Colours and fonts are set at the top in :root. Change them there and the whole site follows. */
/* Layout: full-bleed live aurora behind everything; content sits in a centered 1200px column, left-aligned like a credit roll. */
:root{
  --night:#04060e;        /* sky */
  --night-2:#0b1022;      /* raised surfaces */
  --ink:#eef2f7;          /* main text */
  --muted:#93a0b8;        /* secondary text */
  --line:rgba(190,215,255,.14);
  --green:#5dffb4;        /* aurora green */
  --cyan:#6fd6ff;         /* aurora cyan */
  --violet:#a26bff;       /* aurora purple */
  --display:"Urbanist", "Avenir Next", "Segoe UI", system-ui, sans-serif;
  --label:"Syncopate", "Eurostile", "Arial Black", sans-serif;
  --body:"Urbanist", "Avenir Next", "Segoe UI", system-ui, sans-serif;
  color-scheme:dark;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--night);color:var(--ink);font-family:var(--body);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit}
::selection{background:var(--green);color:var(--night)}

#sky,#stars{position:fixed;inset:0;width:100%;height:100%;z-index:0;display:block;pointer-events:none}
#stars{z-index:1}
.sky-fallback{position:fixed;inset:0;z-index:0;background:
  radial-gradient(60% 40% at 30% 20%, rgba(93,255,180,.18), transparent 70%),
  radial-gradient(50% 35% at 70% 30%, rgba(111,214,255,.15), transparent 70%),
  radial-gradient(40% 30% at 55% 15%, rgba(140,80,255,.2), transparent 70%), var(--night)}
.grain{position:fixed;inset:0;z-index:1;pointer-events:none;opacity:.06;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>")}

.wrap{position:relative;z-index:2;max-width:1200px;margin:0 auto;padding-inline:clamp(16px,4vw,40px)}

/* header */
header{position:sticky;top:env(safe-area-inset-top,0px);z-index:10;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);background:rgba(4,6,14,.5);border-bottom:1px solid var(--line)}
.bar{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-block:14px}
.bar img{height:30px;width:auto;display:block}
nav{display:flex;gap:28px;align-items:center}
nav a{font-family:var(--label);font-size:10px;letter-spacing:.18em;text-transform:uppercase;text-decoration:none;color:var(--muted);transition:color .2s}
nav a:hover,nav a:focus-visible{color:var(--ink)}
.btn{display:inline-flex;align-items:center;gap:10px;font-family:var(--label);font-size:10px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;text-decoration:none;color:var(--night);background:var(--ink);padding:13px 20px;border-radius:999px;border:0;cursor:pointer;transition:transform .2s, box-shadow .3s}
.btn:hover,.btn:focus-visible{transform:translateY(-1px);box-shadow:0 0 0 1px rgba(255,255,255,.4),0 10px 40px -8px rgba(93,255,180,.55)}
.btn.ghost{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1px var(--line)}
.btn.ghost:hover{box-shadow:inset 0 0 0 1px var(--ink)}
:focus-visible{outline:2px solid var(--cyan);outline-offset:3px}
@media (max-width:760px){nav .links{display:none}.bar img{height:24px}}

/* hero */
.hero{padding-block:clamp(90px,16vh,170px) clamp(70px,10vh,120px);display:grid;gap:36px;position:relative;isolation:isolate}
.hero::before{content:"";position:absolute;z-index:-1;inset:-30% -45% -25% -45%;background:radial-gradient(closest-side at 38% 50%,rgba(6,10,28,.42),rgba(6,10,28,.22) 50%,rgba(6,10,28,0) 100%);filter:blur(40px);pointer-events:none}
.eyebrow{font-family:var(--label);font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:var(--green);display:flex;align-items:center;gap:14px}
.eyebrow::before{content:"";width:34px;height:1px;background:currentColor}
h1{font-family:var(--display);font-weight:300;text-shadow:0 2px 30px rgba(4,8,24,.7),0 0 3px rgba(4,8,24,.45);font-size:clamp(46px,8.4vw,118px);line-height:.98;letter-spacing:-.03em;margin:0;max-width:13ch;text-wrap:balance}
h1 em{font-style:normal;font-weight:600;text-shadow:none;background:linear-gradient(100deg,#8dffc9,#9fe4ff 45%,#c7a4ff);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 2px 14px rgba(2,6,20,.95))}
.hero p{max-width:52ch;color:#c3cde0;text-shadow:0 1px 16px rgba(2,6,20,.9);font-size:clamp(17px,1.6vw,20px);margin:0}
.hero .ctas{display:flex;gap:12px;flex-wrap:wrap}
.coords{display:flex;gap:28px;flex-wrap:wrap;font-family:var(--label);font-size:9.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);padding-top:18px;border-top:1px solid var(--line);margin-top:20px}
.coords b{color:var(--ink);font-weight:400}

/* sections */
section{padding-block:clamp(70px,10vw,130px)}
.sec-head{display:flex;justify-content:space-between;align-items:end;gap:24px;flex-wrap:wrap;margin-bottom:48px}
h2{font-family:var(--display);font-weight:300;font-size:clamp(32px,4.6vw,60px);line-height:1.05;letter-spacing:-.02em;margin:0;max-width:18ch;text-wrap:balance}
h2 strong{font-weight:600}
.lede{color:var(--muted);max-width:44ch;margin:0}

/* about */
.about{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(32px,6vw,90px);align-items:start}
.about p{margin:0 0 18px;color:#c9d2e2;max-width:58ch}
@media (max-width:860px){.about{grid-template-columns:1fr}}

/* services */
.services{border-top:1px solid var(--line)}
.svc{display:grid;grid-template-columns:120px 1fr 1.2fr auto;gap:24px;align-items:center;padding-block:30px;border-bottom:1px solid var(--line);position:relative;transition:padding .35s}
.svc::after{content:"";position:absolute;inset:0;z-index:-1;opacity:0;background:linear-gradient(90deg,rgba(93,255,180,.07),rgba(111,214,255,.05),rgba(179,155,255,.07));transition:opacity .35s}
.svc:hover::after{opacity:1}
.svc .k{font-family:var(--label);font-size:10px;letter-spacing:.2em;color:var(--muted)}
.svc h3{font-family:var(--display);font-weight:300;font-size:clamp(26px,3.2vw,42px);margin:0;letter-spacing:-.01em}
.svc p{margin:0;color:var(--muted);min-width:0}
.svc .tags{display:flex;gap:6px;flex-wrap:wrap;justify-content:end}
.tag{font-family:var(--label);font-size:8.5px;letter-spacing:.16em;text-transform:uppercase;padding:6px 10px;border-radius:999px;box-shadow:inset 0 0 0 1px var(--line);color:#c9d2e2;white-space:nowrap}
@media (max-width:900px){.svc{grid-template-columns:1fr;gap:10px}.svc .tags{justify-content:start}}

/* work */
.work{display:grid;grid-template-columns:repeat(12,1fr);gap:18px}
.tile{position:relative;border-radius:6px;overflow:hidden;min-height:300px;background:var(--night-2);display:flex;align-items:end;padding:22px;text-decoration:none;isolation:isolate}
.tile .art{position:absolute;inset:0;z-index:-1;transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.tile:hover .art{transform:scale(1.05)}
.tile .meta{display:flex;justify-content:space-between;align-items:end;gap:12px;width:100%}
.tile h4{margin:0;font-family:var(--display);font-weight:400;font-size:24px;line-height:1.15}
.tile small{display:block;font-family:var(--label);font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:rgba(238,242,247,.7);margin-bottom:6px}
.tile .ph{font-family:var(--label);font-size:8.5px;letter-spacing:.16em;text-transform:uppercase;color:rgba(238,242,247,.55);white-space:nowrap}
.t1{grid-column:span 7;min-height:420px}.t2{grid-column:span 5;min-height:420px}
.t3{grid-column:span 4}.t4{grid-column:span 4}.t5{grid-column:span 4}
.t1 .art{background:radial-gradient(80% 90% at 20% 110%,rgba(93,255,180,.55),transparent 60%),radial-gradient(70% 80% at 90% 0%,rgba(111,214,255,.35),transparent 60%),linear-gradient(180deg,#0b1424,#05070d)}
.t2 .art{background:radial-gradient(70% 70% at 80% 100%,rgba(179,155,255,.55),transparent 65%),radial-gradient(60% 60% at 10% 10%,rgba(111,214,255,.25),transparent 60%),linear-gradient(180deg,#120f24,#05070d)}
.t3 .art{background:conic-gradient(from 210deg at 70% 80%,rgba(93,255,180,.4),rgba(111,214,255,.2),transparent 40%),#08101a}
.t4 .art{background:repeating-linear-gradient(115deg,rgba(255,255,255,.04) 0 2px,transparent 2px 14px),radial-gradient(70% 70% at 50% 100%,rgba(111,214,255,.45),transparent 70%),#070b14}
.t5 .art{background:radial-gradient(50% 60% at 30% 90%,rgba(179,155,255,.45),transparent 70%),radial-gradient(50% 50% at 90% 30%,rgba(93,255,180,.3),transparent 70%),#0b0a18}
@media (max-width:900px){.t1,.t2,.t3,.t4,.t5{grid-column:span 12;min-height:280px}}

/* process */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;counter-reset:s}
.step{padding:26px 22px 30px;border-top:1px solid var(--line);min-width:0}
.step .n{font-family:var(--label);font-size:10px;letter-spacing:.2em;color:var(--green)}
.step h3{font-family:var(--display);font-weight:500;font-size:22px;margin:14px 0 8px}
.step p{margin:0;color:var(--muted);font-size:15.5px}
@media (max-width:900px){.steps{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.steps{grid-template-columns:1fr}}

/* cta */
.cta{text-align:left;padding-block:clamp(90px,13vw,170px)}
.cta h2{font-size:clamp(44px,8vw,110px);font-weight:200;max-width:12ch;letter-spacing:-.03em}
.cta h2 em{font-style:normal;font-weight:500;background:linear-gradient(100deg,var(--green),var(--cyan),var(--violet));-webkit-background-clip:text;background-clip:text;color:transparent}
.cta .row{display:flex;gap:14px;flex-wrap:wrap;margin-top:36px;align-items:center}
.mail{font-family:var(--display);font-size:clamp(18px,2.2vw,24px);font-weight:300;color:var(--ink);user-select:all}

/* footer */
footer{border-top:1px solid var(--line);padding-block:48px 40px;position:relative;z-index:2;background:rgba(5,7,13,.6)}
.foot{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:32px}
.foot img{height:44px;width:auto}
.foot h5{font-family:var(--label);font-size:9.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);margin:0 0 12px;font-weight:400}
.foot p,.foot a{margin:0;font-size:15px;color:#c9d2e2;text-decoration:none;line-height:1.8}
.foot a:hover{color:var(--ink)}
.legal{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:48px;font-size:13px;color:var(--muted)}
@media (max-width:860px){.foot{grid-template-columns:1fr 1fr}}
@media (max-width:480px){.foot{grid-template-columns:1fr}}

.reveal{transition:opacity .9s ease, transform .9s cubic-bezier(.2,.7,.2,1)}
.js .reveal.pending{opacity:.001;transform:translateY(24px)}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}.js .reveal.pending{opacity:1;transform:none}}
