/* ==========================================================
   CEREBROX ARCH — architectural visualisation
   Palette: Balearic sun (west) → Cypriot sea (east)
   ========================================================== */
:root {
  --ink: #0B0C10;
  --ink-2: #14161D;
  --ink-3: #1E212B;
  --paper: #F3ECE1;       /* marès limestone */
  --paper-2: #E8DDCB;
  --sun: #FF5E1A;         /* Mallorca orange */
  --gold: #FFB547;
  --rose: #FF2E7E;
  --violet: #7B5CFF;
  --sea: #00D4FF;         /* Cyprus aegean */
  --text: #F3ECE1;
  --muted: rgba(243, 236, 225, .6);
  --line: rgba(243, 236, 225, .14);
  --grad-sun: linear-gradient(100deg, var(--gold) 0%, var(--sun) 35%, var(--rose) 70%, var(--violet) 100%);
  --grad-med: linear-gradient(100deg, var(--gold), var(--rose) 50%, var(--sea));

  --f-display: "Syne", system-ui, sans-serif;
  --f-serif: "Instrument Serif", Georgia, serif;
  --f-body: "Manrope", system-ui, sans-serif;
  --f-mono: "JetBrains Mono", ui-monospace, monospace;

  --pad: clamp(16px, 4vw, 64px);
  --ease: cubic-bezier(.2, .8, .2, 1);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--ink);
  color: var(--text);
  font-family: var(--f-body);
  font-size: 17px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
::selection { background: var(--rose); color: #fff; }

.mono { font-family: var(--f-mono); font-size: 12px; letter-spacing: .12em; text-transform: uppercase; }
.serif, em { font-family: var(--f-serif); font-style: italic; font-weight: 400; }
.muted { color: var(--muted); }
.eyebrow { display: inline-flex; align-items: center; gap: 10px; color: var(--muted); margin: 0 0 24px; }
.eyebrow .dot { width: 8px; height: 8px; border-radius: 50%; background: var(--sun); box-shadow: 0 0 12px var(--sun); animation: blink 2s infinite; }
@keyframes blink { 50% { opacity: .3; } }

.h2 {
  font-family: var(--f-display);
  font-weight: 800;
  font-size: clamp(40px, 7vw, 112px);
  line-height: .95;
  letter-spacing: -.035em;
  margin: 0;
}
.h2 em, .hero__title em, .contact__title em, .about__quote em {
  letter-spacing: -.01em;
  background: var(--grad-sun);
  -webkit-background-clip: text; background-clip: text;
  color: transparent;
  padding-right: .08em;
}
.section-head { padding: 0 var(--pad); margin-bottom: clamp(40px, 6vw, 88px); max-width: 1400px; }

/* ---------- grain + cursor + progress ---------- */
.grain {
  position: fixed; inset: -50%; z-index: 100; pointer-events: none; opacity: .07;
  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='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  animation: grain 1s steps(6) infinite;
}
@keyframes grain { 0%{transform:translate(0,0)} 20%{transform:translate(-5%,3%)} 40%{transform:translate(4%,-6%)} 60%{transform:translate(-3%,5%)} 80%{transform:translate(6%,2%)} 100%{transform:translate(0,0)} }

.cursor {
  position: fixed; left: 0; top: 0; z-index: 200; pointer-events: none;
  width: 14px; height: 14px; margin: -7px 0 0 -7px; border-radius: 50%;
  background: var(--paper); mix-blend-mode: difference;
  display: grid; place-items: center;
  transition: width .35s var(--ease), height .35s var(--ease), margin .35s var(--ease), background .3s;
}
.cursor__label { font: 600 11px/1 var(--f-mono); letter-spacing: .1em; text-transform: uppercase; color: var(--ink); opacity: 0; transition: opacity .2s; white-space: nowrap; }
.cursor.is-big { width: 86px; height: 86px; margin: -43px 0 0 -43px; mix-blend-mode: normal; background: var(--gold); }
.cursor.is-big .cursor__label { opacity: 1; }
.cursor.is-link { width: 44px; height: 44px; margin: -22px 0 0 -22px; }
@media (hover: none), (pointer: coarse) { .cursor { display: none; } }

.progress { position: fixed; top: 0; left: 0; height: 3px; width: 100%; z-index: 150; background: var(--grad-med); transform-origin: 0 50%; transform: scaleX(0); }

/* ---------- nav ---------- */
.nav {
  position: fixed; top: 0; left: 0; right: 0; z-index: 90;
  display: flex; align-items: center; justify-content: space-between; gap: 24px;
  padding: 18px var(--pad);
  transition: background .4s, backdrop-filter .4s, padding .4s;
}
.nav.is-scrolled { background: rgba(11, 12, 16, .6); backdrop-filter: blur(16px) saturate(1.4); -webkit-backdrop-filter: blur(16px) saturate(1.4); padding-top: 12px; padding-bottom: 12px; }
.logo { display: flex; align-items: center; gap: 10px; font: 800 18px var(--f-display); letter-spacing: .14em; }
.logo__arch { margin-left: .45em; font-weight: 500; letter-spacing: .3em; background: var(--grad-sun); -webkit-background-clip: text; background-clip: text; color: transparent; }
.logo__mark { width: 30px; height: 30px; color: var(--paper); }
.nav__links { display: flex; gap: 36px; font-weight: 500; font-size: 15px; }
.nav__links a { position: relative; }
.nav__links a::after { content: ""; position: absolute; left: 0; bottom: -4px; width: 100%; height: 1.5px; background: var(--grad-sun); transform: scaleX(0); transform-origin: right; transition: transform .4s var(--ease); }
.nav__links a:hover::after { transform: scaleX(1); transform-origin: left; }
@media (max-width: 820px) { .nav__links { display: none; } .nav .btn { padding: 10px 16px; font-size: 13px; } .logo { font-size: 15px; } .logo__mark { width: 24px; height: 24px; } }
.nav .btn { white-space: nowrap; }
@media (max-width: 480px) { .logo { font-size: 13px; letter-spacing: .08em; gap: 8px; } .logo__arch { letter-spacing: .12em; } .nav .btn { padding: 9px 13px; font-size: 12px; } }
@media (max-width: 400px) { .nav .btn { display: none; } }

/* ---------- buttons ---------- */
.btn {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 14px 26px; border-radius: 999px;
  font: 600 15px var(--f-body); letter-spacing: .01em; cursor: pointer; border: 0;
  transition: transform .3s var(--ease), box-shadow .3s, background .3s;
  will-change: transform;
}
.btn--sun { background: var(--grad-sun); background-size: 200% 100%; color: #fff; box-shadow: 0 10px 40px -10px rgba(255, 46, 126, .6); animation: shimmer 6s linear infinite; }
.btn--sun:hover { box-shadow: 0 16px 60px -10px rgba(255, 94, 26, .8); }
@keyframes shimmer { 0%,100% { background-position: 0 0; } 50% { background-position: 100% 0; } }
.btn--ghost { color: var(--text); box-shadow: inset 0 0 0 1.5px var(--line); }
.btn--ghost:hover { box-shadow: inset 0 0 0 1.5px var(--paper); }
.btn--big { padding: 20px 36px; font-size: 18px; }

/* ---------- hero ---------- */
.hero {
  position: relative; min-height: 100svh; overflow: hidden;
  display: flex; align-items: center;
  padding: 120px var(--pad) 100px;
  background:
    radial-gradient(120% 80% at 80% 110%, rgba(255, 94, 26, .22), transparent 60%),
    radial-gradient(80% 60% at 10% 0%, rgba(123, 92, 255, .18), transparent 60%),
    var(--ink);
}
.hero__canvas { position: absolute; inset: 0; width: 100%; height: 100%; }
.hero::after { content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none; background: linear-gradient(90deg, rgba(11,12,16,.85) 0%, rgba(11,12,16,.55) 35%, transparent 62%); }
@media (max-width: 820px) { .hero::after { background: linear-gradient(180deg, rgba(11,12,16,.9) 0%, rgba(11,12,16,.6) 55%, transparent 80%); } }
.hero__content { position: relative; z-index: 2; max-width: 820px; }
.hero__title {
  font-family: var(--f-display); font-weight: 800;
  font-size: clamp(60px, 10.5vw, 190px); line-height: .86; letter-spacing: -.05em;
  margin: 0 0 32px;
}
.hero__title em { font-size: 1.08em; }
.line { display: block; overflow: hidden; padding-bottom: .06em; }
.line > span { display: inline-block; transform: translateY(110%); transition: transform 1.2s var(--ease); }
.is-loaded .line > span { transform: none; }
.is-loaded .line:nth-child(2) > span { transition-delay: .12s; }
.hero__sub { max-width: 480px; font-size: clamp(17px, 1.4vw, 20px); color: var(--muted); margin: 0 0 40px; opacity: 0; transform: translateY(20px); transition: 1s var(--ease) .5s; }
.hero__ctas { display: flex; flex-wrap: wrap; gap: 14px; opacity: 0; transform: translateY(20px); transition: 1s var(--ease) .65s; }
.is-loaded .hero__sub, .is-loaded .hero__ctas { opacity: 1; transform: none; }
.hero__coords { white-space: nowrap; position: absolute; z-index: 2; left: var(--pad); right: var(--pad); bottom: 32px; display: flex; align-items: center; gap: 16px; color: var(--muted); font-size: 11px; }
.hero__coords-line { flex: 1; height: 1px; background: var(--grad-med); opacity: .7; }
.hero__scroll { position: absolute; z-index: 2; right: var(--pad); top: 50%; writing-mode: vertical-rl; color: var(--muted); font-size: 11px; }
.hero__scroll span { display: inline-block; animation: bob 1.8s ease-in-out infinite; }
@keyframes bob { 50% { transform: translateY(8px); } }
@media (max-width: 820px) {
  .hero { align-items: flex-start; padding-top: 110px; }
  .hero__scroll { display: none; }
  .hero__coords span:not(.hero__coords-line) { font-size: 9px; letter-spacing: .06em; }
  .hero__coords { gap: 8px; }
}

/* ---------- marquee ---------- */
.marquee { overflow: hidden; padding: 28px 0; border-block: 1px solid var(--line); background: var(--ink-2); }
.marquee__track { display: flex; align-items: center; gap: 40px; width: max-content; font: 800 clamp(36px, 6vw, 84px)/1 var(--f-display); letter-spacing: -.03em; text-transform: uppercase; animation: marquee 36s linear infinite; }
.marquee__track .serif { text-transform: none; font-size: 1.1em; color: transparent; -webkit-text-stroke: 1.2px var(--paper); }
.marquee__track i { font-style: normal; font-size: .5em; color: var(--sun); }
@keyframes marquee { to { transform: translateX(-50%); } }

/* ---------- image slots (placeholder until Midjourney art lands) ---------- */
.slot { position: relative; overflow: hidden; background: var(--ink-3); }
.slot img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.86) contrast(1.04) brightness(.98) sepia(.04); } /* tames the AI sheen */
.compare__before img { filter: none; }
.slot.is-missing img { display: none; }
.slot.is-missing::before { content: ""; position: absolute; inset: 0; background: var(--tone); }
.slot.is-missing::after {
  content: "MJ ✦ " attr(data-slot);
  position: absolute; left: 16px; bottom: 14px;
  font: 500 11px var(--f-mono); letter-spacing: .12em; text-transform: uppercase;
  color: rgba(255, 255, 255, .8); background: rgba(0, 0, 0, .35); padding: 6px 10px; border-radius: 4px;
}
[data-tone="sunset"] { --tone: radial-gradient(60% 50% at 70% 65%, #FFD27A 0%, transparent 60%), linear-gradient(180deg, #2B1B4A 0%, #B8336A 45%, #FF7A3D 72%, #3A1D2E 73%, #150E1C 100%); }
[data-tone="aegean"] { --tone: radial-gradient(40% 30% at 30% 30%, #fff 0%, transparent 70%), linear-gradient(180deg, #7FDBFF 0%, #E9F7FA 55%, #0A8FB0 56%, #04384F 100%); }
[data-tone="sand"]   { --tone: radial-gradient(50% 60% at 60% 40%, #FFF3DC 0%, transparent 70%), linear-gradient(135deg, #E6CFA8, #B98A5A 60%, #5A3B26); }
[data-tone="dusk"]   { --tone: radial-gradient(60% 30% at 50% 80%, #00D4FF 0%, transparent 70%), linear-gradient(180deg, #0E1433 0%, #3B2A78 45%, #FF5E9A 70%, #0A0F24 71%, #06233A 100%); }
[data-tone="neon"]   { --tone: radial-gradient(40% 50% at 50% 30%, #7CFFB2 0%, transparent 70%), linear-gradient(180deg, #051A1A, #0F4C3A 50%, #00D4FF 100%); }
[data-tone="desert"] { --tone: radial-gradient(35% 30% at 50% 45%, #FFE3A3 0%, transparent 70%), linear-gradient(180deg, #FF9E4A 0%, #E0562B 45%, #C27A45 60%, #6B3A1F 100%); }
[data-tone="blueprint"] {
  --tone:
    linear-gradient(rgba(255,255,255,.08) 1px, transparent 1px) 0 0/40px 40px,
    linear-gradient(90deg, rgba(255,255,255,.08) 1px, transparent 1px) 0 0/40px 40px,
    linear-gradient(180deg, #DADCE0, #BFC3C9);
}

/* ---------- reveal / compare ---------- */
.reveal-sec { padding: clamp(100px, 14vw, 200px) 0; }
.compare {
  --pos: 50%;
  position: relative; margin: 0 var(--pad); aspect-ratio: 16 / 9; border-radius: 20px; overflow: hidden;
  box-shadow: 0 60px 120px -40px rgba(255, 46, 126, .35);
}
.compare__layer { position: absolute; inset: 0; }
.compare__before { clip-path: inset(0 calc(100% - var(--pos)) 0 0); }
.compare__handle { position: absolute; top: 0; bottom: 0; left: var(--pos); width: 2px; background: #fff; transform: translateX(-1px); z-index: 3; pointer-events: none; }
.compare__handle span { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 56px; height: 56px; border-radius: 50%; display: grid; place-items: center; background: #fff; color: var(--ink); font-size: 20px; box-shadow: 0 8px 30px rgba(0,0,0,.35); }
.compare__tag { position: absolute; top: 18px; z-index: 3; padding: 7px 12px; border-radius: 99px; background: rgba(0,0,0,.45); backdrop-filter: blur(6px); font-size: 11px; pointer-events: none; }
.compare__tag--l { left: 18px; } .compare__tag--r { right: 18px; }
.compare__range { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; z-index: 4; cursor: ew-resize; margin: 0; }
@media (max-width: 700px) { .compare { aspect-ratio: 4 / 5; border-radius: 14px; } }

/* ---------- work (sticky horizontal scroll) ---------- */
.work { position: relative; background: var(--ink); }
.work__sticky { position: sticky; top: 0; height: 100vh; display: flex; align-items: center; gap: 6vw; overflow: hidden; padding-left: var(--pad); }
.work__intro { flex: 0 0 min(420px, 34vw); position: relative; z-index: 2; align-self: stretch; display: flex; flex-direction: column; justify-content: center; margin-left: calc(-1 * var(--pad)); padding: 0 2vw 0 var(--pad); background: var(--ink); box-shadow: 4vw 0 4vw var(--ink); }
.work__intro .h2 { font-size: clamp(40px, 5vw, 84px); margin-bottom: 24px; }
.work__counter { margin-top: 40px; color: var(--muted); }
.work__count { color: var(--gold); font-size: 28px; font-family: var(--f-display); }
.work__track { display: flex; gap: 32px; will-change: transform; padding-right: var(--pad); }
.card { flex: 0 0 clamp(300px, 30vw, 460px); }
.card__img { aspect-ratio: 4 / 5; border-radius: 18px; transition: transform .6s var(--ease); }
.card__img img { transition: transform 1.2s var(--ease); }
.card:hover .card__img img { transform: scale(1.07); }
.card__meta { padding: 18px 4px 0; }
.card__meta h3 { font: 700 28px/1.1 var(--f-display); letter-spacing: -.02em; margin: 8px 0 4px; }
.card__meta p { margin: 0; color: var(--muted); font-size: 15px; }
.card__meta .mono { color: var(--gold); }
@media (max-width: 900px) {
  .work { height: auto !important; padding: 100px 0; }
  .work__sticky { position: static; height: auto; flex-direction: column; align-items: stretch; padding: 0; gap: 40px; }
  .work__intro { padding: 0 var(--pad); flex: none; margin-left: 0; box-shadow: none; }
  .work__counter { display: none; }
  .work__track { transform: none !important; overflow-x: auto; scroll-snap-type: x mandatory; padding: 0 var(--pad) 12px; scrollbar-width: none; }
  .work__track::-webkit-scrollbar { display: none; }
  .card { flex-basis: 78vw; scroll-snap-align: center; }
}

/* ---------- services (light, limestone) ---------- */
.services {
  --text: var(--ink); --muted: rgba(11, 12, 16, .62); --line: rgba(11, 12, 16, .14);
  background: var(--paper); color: var(--ink);
  padding: clamp(100px, 12vw, 180px) 0;
  border-radius: 40px 40px 0 0; position: relative; z-index: 2;
}
.price-hero { display: flex; align-items: flex-end; gap: clamp(20px, 4vw, 60px); flex-wrap: wrap; padding: 0 var(--pad); margin-bottom: 80px; }
.price-hero__num { font: 800 clamp(68px, 22vw, 380px)/.8 var(--f-display); letter-spacing: -.07em; background: var(--grad-sun); -webkit-background-clip: text; background-clip: text; color: transparent; display: flex; }
.price-hero__num .cur { font-size: .4em; margin-top: .15em; margin-right: .05em; }
.price-hero__txt { max-width: 380px; padding-bottom: 2vw; }
.price-hero__txt .big { font: 400 clamp(36px, 4vw, 60px)/1 var(--f-serif); font-style: italic; margin: 0 0 12px; }
.svc-grid { list-style: none; margin: 0 var(--pad); padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 1px; background: var(--line); border-block: 1px solid var(--line); }
.svc {
  position: relative; background: var(--paper); padding: 36px 32px 32px; min-height: 280px;
  display: flex; flex-direction: column; overflow: hidden; transition: color .4s;
}
.svc::before { content: ""; position: absolute; inset: 0; background: var(--ink); transform: translateY(101%); transition: transform .55s var(--ease); z-index: 0; }
.svc > * { position: relative; z-index: 1; }
.svc:hover { color: var(--paper); }
.svc:hover::before { transform: none; }
.svc__n { color: var(--sun); }
.svc h3 { font: 700 30px/1.05 var(--f-display); letter-spacing: -.02em; margin: 16px 0 12px; }
.svc p { margin: 0 0 24px; opacity: .72; font-size: 15px; }
.svc__price { margin-top: auto; font: 800 26px var(--f-display); }
.svc__price small { font: 400 14px var(--f-body); opacity: .6; }
.svc--alt .svc__price { font-family: var(--f-serif); font-style: italic; font-weight: 400; }

.calc { margin: 80px var(--pad) 40px; padding: clamp(28px, 4vw, 56px); border-radius: 28px; background: var(--ink); color: var(--paper); max-width: 900px; box-shadow: 0 40px 100px -40px rgba(255, 94, 26, .5); }
.calc__row { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; }
.calc__row .mono { color: rgba(243,236,225,.6); }
.calc__n { font: 800 64px/1 var(--f-display); color: var(--gold); }
.calc__range { -webkit-appearance: none; appearance: none; width: 100%; height: 6px; border-radius: 6px; margin: 28px 0; background: linear-gradient(90deg, var(--gold), var(--rose) var(--fill, 10%), rgba(243,236,225,.15) var(--fill, 10%)); cursor: pointer; }
.calc__range::-webkit-slider-thumb { -webkit-appearance: none; width: 28px; height: 28px; border-radius: 50%; background: #fff; box-shadow: 0 0 0 6px rgba(255,46,126,.35); }
.calc__range::-moz-range-thumb { width: 28px; height: 28px; border: 0; border-radius: 50%; background: #fff; box-shadow: 0 0 0 6px rgba(255,46,126,.35); }
.calc__total { border-top: 1px solid rgba(243,236,225,.15); padding-top: 24px; margin-bottom: 28px; }
.calc__sum { font: 800 clamp(36px, 6vw, 80px)/1 var(--f-display); letter-spacing: -.03em; background: var(--grad-sun); -webkit-background-clip: text; background-clip: text; color: transparent; }
.included { list-style: none; padding: 0 var(--pad); margin: 0; display: flex; flex-wrap: wrap; gap: 12px 32px; color: var(--muted); font-size: 11px; }

/* ---------- process ---------- */
.process { padding: clamp(100px, 12vw, 180px) 0; background: var(--ink); }
.steps { list-style: none; margin: 0; padding: 0 var(--pad); display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; counter-reset: s; }
.step { position: relative; padding-top: 28px; border-top: 1px solid var(--line); }
.step::before { content: ""; position: absolute; top: -1px; left: 0; height: 2px; width: 100%; background: var(--grad-sun); transform: scaleX(0); transform-origin: left; transition: transform 1.2s var(--ease); }
.step.in::before { transform: scaleX(1); }
.step:nth-child(2)::before { transition-delay: .15s; } .step:nth-child(3)::before { transition-delay: .3s; } .step:nth-child(4)::before { transition-delay: .45s; }
.step__n { font: 800 clamp(56px, 7vw, 110px)/1 var(--f-display); color: transparent; -webkit-text-stroke: 1.2px rgba(243,236,225,.35); }
.step h3 { font: 700 28px var(--f-display); margin: 12px 0 8px; }
.step p { color: var(--muted); margin: 0; font-size: 15px; }
@media (max-width: 900px) { .steps { grid-template-columns: 1fr 1fr; row-gap: 48px; } }

/* ---------- med ---------- */
.med { padding: clamp(100px, 12vw, 180px) 0; background: radial-gradient(70% 50% at 50% 30%, rgba(0,212,255,.08), transparent 70%), var(--ink-2); overflow: hidden; }
.med__lede { max-width: 620px; margin-top: 28px; font-size: 19px; }
.med__map { padding: 0 var(--pad); margin: 0 auto 80px; max-width: 1400px; }
.med__svg { width: 100%; height: auto; overflow: visible; }
.med__grid line { stroke: rgba(243,236,225,.08); stroke-width: 1; }
.med__arc { stroke-dasharray: 1400; stroke-dashoffset: 1400; transition: stroke-dashoffset 2.4s var(--ease); }
.med__map.in .med__arc { stroke-dashoffset: 0; }
.med__pulse { transform-box: fill-box; transform-origin: center; animation: pulse 2.8s ease-out infinite; }
.med__pulse--e { animation-delay: 1.4s; }
@keyframes pulse { 0% { transform: scale(.3); opacity: 1; } 100% { transform: scale(1.6); opacity: 0; } }
.med__lbl { font: 500 13px var(--f-mono); letter-spacing: .2em; fill: var(--paper); }
.med__lbl--sm { font-size: 11px; opacity: .7; }
.med__km { font: italic 40px var(--f-serif); fill: var(--paper); }
.med__traveller { filter: drop-shadow(0 0 8px #fff); }
.med__cards { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; padding: 0 var(--pad); max-width: 1400px; margin: 0 auto; }
.edge { position: relative; border-radius: 22px; overflow: hidden; aspect-ratio: 3 / 4; }
.edge__img { position: absolute; inset: 0; }
.edge__img img { transform: scale(1.12); }
.edge__txt { position: absolute; inset: auto 0 0 0; padding: 120px 32px 32px; background: linear-gradient(transparent, rgba(0,0,0,.6) 35%, rgba(0,0,0,.88)); }
.edge__txt h3 { font: 800 clamp(34px, 5vw, 80px)/.95 var(--f-display); letter-spacing: -.04em; margin: 6px 0 10px; }
.edge__txt p { margin: 0; max-width: 360px; }
.edge--w .edge__txt .mono:first-child { color: var(--gold); }
.edge--e .edge__txt .mono:first-child { color: var(--sea); }
.clock { margin-top: 18px !important; font-size: 22px !important; letter-spacing: .06em; }
.edge--e { margin-top: 120px; }
.regions { display: flex; align-items: center; justify-content: center; gap: clamp(20px, 5vw, 80px); margin-top: 120px; padding: 0 var(--pad); flex-wrap: wrap; }
.region { display: flex; flex-direction: column; align-items: center; gap: 8px; color: var(--muted); }
.region__big { font: 800 clamp(56px, 14vw, 220px)/.85 var(--f-display); letter-spacing: -.05em; color: transparent; -webkit-text-stroke: 1.5px var(--paper); transition: color .5s, -webkit-text-stroke-color .5s; }
.region:hover .region__big { color: var(--gold); -webkit-text-stroke-color: var(--gold); }
.region:hover .region__big--alt { color: var(--sea); -webkit-text-stroke-color: var(--sea); }
.region__x { font-size: 40px; color: var(--rose); animation: spin 8s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
@media (max-width: 760px) { .med__cards { grid-template-columns: 1fr; } .edge--e { margin-top: 0; } }

/* ---------- about ---------- */
.about { padding: clamp(120px, 14vw, 220px) var(--pad); background: var(--ink); max-width: 1500px; }
.about__quote { font: 700 clamp(32px, 5vw, 76px)/1.05 var(--f-display); letter-spacing: -.03em; margin: 0 0 32px; }
.about__todo { font-size: 15px; }

/* ---------- contact ---------- */
.contact { position: relative; padding: clamp(120px, 14vw, 200px) var(--pad); overflow: hidden; }
.contact__bg { position: absolute; inset: 0; }
.contact__bg::after { display: none; }
.contact__bg img, .contact__bg::before { filter: saturate(1.2); }
.contact::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, var(--ink) 0%, rgba(11,12,16,.55) 40%, rgba(11,12,16,.85) 100%); }
.contact__inner { position: relative; z-index: 2; max-width: 1100px; margin: 0 auto; }
.contact__title { font: 800 clamp(56px, 11vw, 180px)/.9 var(--f-display); letter-spacing: -.05em; margin: 0 0 64px; }
.form { display: grid; gap: 22px; padding: clamp(24px, 4vw, 48px); border-radius: 28px; background: rgba(20, 22, 29, .6); backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); box-shadow: inset 0 0 0 1px var(--line); }
.form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.form label { display: grid; gap: 8px; }
.form label .mono { color: var(--muted); font-size: 11px; }
.form input, .form select, .form textarea {
  width: 100%; font: 500 17px var(--f-body); color: var(--text);
  background: rgba(243,236,225,.05); border: 1px solid var(--line); border-radius: 12px; padding: 14px 16px;
  transition: border-color .3s, background .3s;
}
.form input:focus, .form select:focus, .form textarea:focus { outline: none; border-color: var(--gold); background: rgba(243,236,225,.09); }
.form select option { background: var(--ink-2); }
.form__foot { display: flex; align-items: center; gap: 24px; flex-wrap: wrap; }
.form__status { margin: 0; font-size: 15px; color: var(--muted); }
.form__status.is-ok { color: var(--gold); }
.form__status.is-err { color: var(--rose); }
.form__status a { text-decoration: underline; }
.form__legal { margin: 0; font-size: 13px; color: var(--muted); }
.form__legal a, .footer__row a { text-decoration: underline; text-underline-offset: 3px; }
.form__hp { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }
@media (max-width: 640px) { .form__row { grid-template-columns: 1fr; } }

/* ---------- footer ---------- */
.footer { padding: 60px var(--pad) 32px; background: var(--ink); border-top: 1px solid var(--line); overflow: hidden; }
.footer__big em { display: inline-block; font-size: .8em; letter-spacing: -.02em; padding-left: .04em; }
.footer__big { font: 800 9.4vw/.85 var(--f-display); letter-spacing: -.06em; background: var(--grad-med); -webkit-background-clip: text; background-clip: text; color: transparent; margin: 0 0 32px -.04em; }
.footer__row { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 16px; color: var(--muted); font-size: 11px; }

/* ---------- scroll reveal ---------- */
.split .w { display: inline-block; overflow: hidden; vertical-align: top; padding-bottom: .08em; }
.split .w > * { display: inline-block; transform: translateY(105%); transition: transform 1s var(--ease); transition-delay: calc(var(--i) * 40ms); }
.split.in .w > span { transform: none; }
.fade { opacity: 0; transform: translateY(40px); transition: opacity 1s var(--ease), transform 1s var(--ease); }
.fade.in { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .line > span, .split .w > *, .fade { transform: none !important; opacity: 1 !important; }
  .hero__sub, .hero__ctas { opacity: 1; transform: none; }
  .med__arc { stroke-dashoffset: 0; }
}
