/* ════════════════════════════════════════════════════════════
   UNIVERS CAREERS — Global styles
   Light public layer · Dark portal · Editorial motion
   ════════════════════════════════════════════════════════════ */

:root{
  /* Dark system */
  --bg:#09090c; --s:#111118; --s2:#16161f; --s3:#1c1c28;
  --b:rgba(255,255,255,0.07); --b2:rgba(255,255,255,0.13); --b3:rgba(255,255,255,0.22);
  --w:#f0ede8; --m:rgba(240,237,232,0.52); --f:rgba(240,237,232,0.22); --f2:rgba(240,237,232,0.12);

  /* Light system */
  --light:#f0ede8; --light2:#f5f2ed; --light3:#ebe7e0; --light4:#e3dfd6;
  --ink:#09090c; --ink-m:rgba(9,9,12,0.58); --ink-f:rgba(9,9,12,0.32); --ink-f2:rgba(9,9,12,0.14);
  --lb:rgba(9,9,12,0.1); --lb2:rgba(9,9,12,0.18);

  /* Brand */
  --gold:#c9a96e; --gold-dim:rgba(201,169,110,0.14); --gold-lo:rgba(201,169,110,0.4);
  --purple:#8b7fe8; --coral:#e87560; --teal:#4db8a0;
  --amber:#e8b45a; --green:#6db87a; --slate:#5a8ab8; --lavender:#9b7fe8;

  /* Type */
  --font-d:'Cormorant Garamond', 'Times New Roman', serif;
  --font-b:'Instrument Sans', system-ui, sans-serif;
  --font-m:'JetBrains Mono', 'DM Mono', ui-monospace, monospace;

  /* Motion */
  --ease:cubic-bezier(0.16,1,0.3,1);
  --ease-in:cubic-bezier(0.55,0,0.65,1);
  --ease-out:cubic-bezier(0.22,1,0.36,1);
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth}
body{
  background:var(--light);
  color:var(--ink);
  font-family:var(--font-b);
  font-weight:300;
  font-size:14px;
  line-height:1.55;
  overflow-x:hidden;
}
body.dark-mode{background:var(--bg);color:var(--w)}

button,input,textarea,select{font:inherit;color:inherit;background:none;border:none;outline:none}
button{cursor:pointer}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}

::selection{background:var(--gold);color:var(--bg)}

/* Mono utility */
.mono{font-family:var(--font-m);letter-spacing:.1em;text-transform:uppercase}

/* Scrollbar — institutional thin */
::-webkit-scrollbar{width:8px;height:8px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:rgba(9,9,12,0.12);border-radius:4px}
::-webkit-scrollbar-thumb:hover{background:rgba(9,9,12,0.22)}
body.dark-mode ::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.08)}
body.dark-mode ::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,0.18)}

/* Custom cursor */
.cursor-dot,.cursor-ring{position:fixed;top:0;left:0;pointer-events:none;z-index:9999;mix-blend-mode:difference}
.cursor-dot{width:4px;height:4px;background:#fff;border-radius:50%;transform:translate(-50%,-50%);transition:width .2s var(--ease),height .2s var(--ease),background .2s var(--ease)}
.cursor-ring{width:32px;height:32px;border:1px solid rgba(255,255,255,0.5);border-radius:50%;transform:translate(-50%,-50%);transition:width .35s var(--ease),height .35s var(--ease),border-color .25s var(--ease),opacity .25s var(--ease)}
.cursor-dot.hover{width:14px;height:14px;background:var(--gold)}
.cursor-ring.hover{width:48px;height:48px;border-color:var(--gold)}
.cursor-ring.text{width:64px;height:64px;border-color:rgba(255,255,255,0.8)}
@media (max-width:900px),(pointer:coarse){.cursor-dot,.cursor-ring{display:none}}

/* Page transitions */
.route-stage{position:relative;min-height:100vh}

/* === SHARED PRIMITIVES === */

.eyebrow{
  font-family:var(--font-m);
  font-size:10px;
  letter-spacing:.24em;
  text-transform:uppercase;
  color:var(--gold);
  display:inline-flex;align-items:center;gap:8px;
}
.eyebrow::before{content:'';width:4px;height:4px;border-radius:50%;background:var(--gold)}

.display{
  font-family:var(--font-d);
  font-weight:300;
  letter-spacing:-0.01em;
  line-height:0.92;
}
.display em{font-style:italic;color:var(--gold);font-weight:300}

.serif{font-family:var(--font-d);font-weight:300;letter-spacing:0;line-height:1.1}
.serif em{font-style:italic;color:var(--gold);font-weight:300}

/* Buttons */
.btn{
  font-family:var(--font-m);
  font-size:10px;
  letter-spacing:.18em;
  text-transform:uppercase;
  padding:14px 24px;
  border:0.5px solid currentColor;
  border-radius:2px;
  display:inline-flex;align-items:center;gap:10px;
  transition:background .25s var(--ease),color .25s var(--ease),transform .25s var(--ease);
  position:relative;overflow:hidden;
}
.btn:hover{transform:translateY(-1px)}
.btn .arr{transition:transform .3s var(--ease)}
.btn:hover .arr{transform:translateX(4px)}

.btn-primary{background:var(--ink);color:var(--light);border-color:var(--ink)}
.btn-primary:hover{background:var(--gold);border-color:var(--gold);color:var(--ink)}

.btn-ghost{color:var(--ink-m);border-color:transparent;padding-left:0}
.btn-ghost:hover{color:var(--ink)}

.btn-gold{color:var(--gold);border-color:var(--gold)}
.btn-gold:hover{background:var(--gold);color:var(--bg)}

.btn-light{color:var(--w);border-color:var(--w)}
.btn-light:hover{background:var(--w);color:var(--bg)}

/* Section pad */
.pad{padding:120px 80px}
.pad-y{padding-top:120px;padding-bottom:120px}
.pad-x{padding-left:80px;padding-right:80px}
@media (max-width:1100px){.pad{padding:80px 32px}.pad-x{padding-left:32px;padding-right:32px}}
@media (max-width:700px){.pad{padding:60px 20px}.pad-x{padding-left:20px;padding-right:20px}}

.maxw{max-width:1400px;margin:0 auto}
.maxw-tight{max-width:1100px;margin:0 auto}

/* Divider */
.rule{height:0.5px;background:var(--lb);width:100%}
.rule-gold{height:0.5px;background:var(--gold);width:40px}

/* Marquee */
.marquee{display:flex;overflow:hidden;width:100%;mask-image:linear-gradient(90deg,transparent 0,#000 8%,#000 92%,transparent 100%)}
.marquee-inner{display:flex;flex-shrink:0;animation:marq 40s linear infinite;gap:64px;padding-right:64px;align-items:center}
@keyframes marq{from{transform:translateX(0)}to{transform:translateX(-100%)}}

/* Reveal */
.reveal{opacity:0;transform:translateY(20px);transition:opacity 1s var(--ease),transform 1s var(--ease)}
.reveal.in{opacity:1;transform:none}

.split-line{display:inline-block;overflow:hidden;vertical-align:bottom}
.split-line span{display:inline-block;transform:translateY(110%);transition:transform 1.1s var(--ease)}
.split-line.in span{transform:translateY(0)}

/* Magnetic hover */
.magnetic{display:inline-flex;transition:transform .4s var(--ease)}

/* Focus rings */
:focus-visible{outline:1.5px solid var(--gold);outline-offset:2px;border-radius:2px}

/* Noise overlay */
.noise{position:absolute;inset:0;pointer-events:none;opacity:.04;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' seed='5'/><feColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 0.3 0'/></filter><rect width='200' height='200' filter='url(%23n)'/></svg>");mix-blend-mode:overlay}

/* Print mode etc */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:0.01ms !important;transition-duration:0.01ms !important}
}
