/* Mishift v3 "Cover Star": Mishaal as the cover of his own issue. Ivory editorial pages + ink scenes, lime accent. */
:root {
  --ink: #0b0b0a; --ink-2: #141412; --ink-3: #1e1e1b;
  --paper: #efe9dc; --paper-2: #e4dccb;
  --lime: #c8f53c;
  --on-ink: #efe9dc; --on-ink-m: rgba(239, 233, 220, .64); --on-ink-l: rgba(239, 233, 220, .14);
  --on-paper: #0b0b0a; --on-paper-m: rgba(11, 11, 10, .64); --on-paper-l: rgba(11, 11, 10, .13);
  --serif: "Bodoni Moda", "Bodoni 72", Didot, Georgia, serif;
  --sans: "Inter Tight", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --mono: "DM Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  --g: clamp(16px, 3.9vw, 64px);
  --hdr: 80px;
  --ease: cubic-bezier(.2, .7, .1, 1);
}
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
.lenis.lenis-stopped { overflow: hidden; }
body { margin: 0; background: var(--ink); color: var(--on-ink); font: 400 16px/1.55 var(--sans); -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; overflow-x: hidden; }
body.locked { overflow: hidden; }
img, picture { display: block; max-width: 100%; }
a { color: inherit; }
h1, h2, h3, p, ol, ul, figure, blockquote { margin: 0; }
ol, ul { padding: 0; list-style: none; }
em { font-style: italic; }
button { font: inherit; cursor: pointer; }
[hidden] { display: none !important; }
.sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.skip { position: fixed; left: 16px; top: -60px; z-index: 100; background: var(--lime); color: var(--ink); padding: 10px 16px; border-radius: 8px; font-weight: 600; text-decoration: none; }
.skip:focus { top: 16px; }
:focus-visible { outline: 2px solid var(--lime); outline-offset: 3px; }

/* shared bits */
.label { display: inline-flex; align-items: center; gap: 10px; font: 500 11.5px/1.2 var(--mono); letter-spacing: .16em; text-transform: uppercase; color: var(--on-paper-m); }
.label i { flex: none; width: 8px; height: 8px; border-radius: 50%; background: var(--lime); box-shadow: 0 0 0 1px var(--ink); }
.label-d { color: var(--on-ink-m); }
.label-d i { box-shadow: 0 0 0 4px rgba(200, 245, 60, .16); }
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 52px; padding: 0 26px; border: 1px solid transparent; border-radius: 999px; font: 600 15px/1.1 var(--sans); text-decoration: none; white-space: nowrap; transition: transform .3s var(--ease), background-color .3s, color .3s, border-color .3s; }
.btn:hover { transform: translateY(-2px); }
.btn .arr { transition: transform .3s var(--ease); }
.btn:hover .arr { transform: translateX(4px); }
.btn-lime { background: var(--lime); color: var(--ink); }
.btn-lime:hover { background: #d6ff52; }
.btn-ink { background: var(--ink); color: var(--paper); }
.btn-ink:hover { background: #24241f; }
.btn-ghost { border-color: currentColor; background: transparent; color: inherit; }
em.lime, .lime { color: var(--lime); }
.plus { font-family: var(--sans); font-weight: 600; font-style: normal; font-size: .58em; vertical-align: .5em; margin-left: .04em; }
.note-clip picture, .ph picture, .ct-photo picture { max-width: none; width: max-content; }

/* ===================== HEADER ===================== */
.hdr { position: fixed; z-index: 50; top: 12px; left: var(--g); right: var(--g); height: 56px; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 0 8px 0 22px; transition: transform .5s var(--ease), opacity .3s; }
.hdr::before { content: ""; position: absolute; inset: 0; z-index: -1; border-radius: 999px; background: rgba(11, 11, 10, .8); border: 1px solid rgba(239, 233, 220, .09); -webkit-backdrop-filter: blur(14px) saturate(1.2); backdrop-filter: blur(14px) saturate(1.2); box-shadow: 0 10px 30px -18px rgba(0, 0, 0, .6); }
.hdr.hide { transform: translateY(-140%); }
.hdr-logo { position: relative; z-index: 2; display: block; }
.hdr-logo img { width: 112px; height: auto; }
.hdr-nav { display: flex; align-items: center; gap: clamp(14px, 1.9vw, 30px); }
.hdr-nav a { color: var(--on-ink-m); text-decoration: none; font: 500 13.5px/1 var(--sans); transition: color .25s; }
.hdr-nav a:hover { color: var(--on-ink); }
.hdr-nav .nav-cta { background: var(--lime); color: var(--ink); padding: 12px 18px; border-radius: 999px; font-weight: 600; }
.hdr-nav .nav-cta:hover { color: var(--ink); background: #d6ff52; }
.burger { display: none; position: relative; z-index: 2; width: 42px; height: 42px; border: 0; border-radius: 50%; background: var(--lime); }
.burger span { position: absolute; left: 12px; right: 12px; height: 2px; background: var(--ink); transition: transform .35s var(--ease), top .35s var(--ease); }
.burger span:first-child { top: 16px; } .burger span:last-child { top: 24px; }
.hdr.open .burger span:first-child { top: 20px; transform: rotate(45deg); }
.hdr.open .burger span:last-child { top: 20px; transform: rotate(-45deg); }

/* ===================== 01 COVER ===================== */
.cover { position: relative; display: flex; flex-direction: column; background: var(--ink); }
.cover-page {
  --star-h: min(74vh, 42vw);
  position: relative; order: 0; min-height: 100vh; min-height: 100svh; overflow: visible;
  display: grid; grid-template-columns: minmax(0, 34vw) minmax(0, 1fr) auto; grid-template-rows: auto auto minmax(0, 1fr) auto;
  padding: calc(var(--hdr) + 6px) var(--g) clamp(22px, 4.6vh, 48px);
  background: var(--paper); color: var(--ink); transform-origin: 50% 50%;
}
.cover-page::after { content: ""; position: absolute; inset: 0; pointer-events: none; z-index: 4; box-shadow: inset 0 0 0 1px rgba(11, 11, 10, .06); border-radius: inherit; }
.cv-top { grid-column: 1 / -1; grid-row: 1; position: relative; z-index: 3; display: flex; justify-content: space-between; gap: 16px; padding: 9px 0; border-top: 1px solid var(--ink); border-bottom: 1px solid var(--on-paper-l); font: 500 11px/1 var(--mono); letter-spacing: .16em; text-transform: uppercase; }
.cv-mast { grid-column: 1 / -1; grid-row: 2; position: relative; z-index: 0; margin: 1.4vh 0 0; overflow: hidden; text-align: center; white-space: nowrap; font-family: var(--serif); font-weight: 900; font-size: var(--mast-fs, min(17.4vw, 35vh)); line-height: .8; letter-spacing: -.03em; color: var(--ink); padding-bottom: .02em; }
.cv-mast-in { display: inline-block; }
.cv-mast .ch { display: inline-block; will-change: transform; }
.cv-star { position: absolute; z-index: 1; left: 10vw; right: 0; bottom: 0; height: var(--star-h); display: flex; justify-content: center; align-items: flex-end; pointer-events: none; transform-origin: 50% 100%; }
.cv-star img { height: 100%; width: auto; max-width: none; }
.cv-left { grid-column: 1; grid-row: 3; position: relative; z-index: 2; align-self: start; padding-top: clamp(14px, 4vh, 44px); max-width: 21em; }
.cv-kick { font: 500 11px/1 var(--mono); letter-spacing: .18em; text-transform: uppercase; color: var(--on-paper-m); }
.cv-hi { margin-top: 10px; font: italic 500 clamp(28px, min(3.3vw, 5.8vh), 58px)/1 var(--serif); }
.cv-small { margin-top: 12px; max-width: 19em; font-size: clamp(14px, 1.15vw, 17px); line-height: 1.45; color: var(--on-paper-m); }
.cv-stats { grid-column: 3; grid-row: 3 / span 2; position: relative; z-index: 2; align-self: center; display: grid; gap: clamp(12px, 3vh, 30px); text-align: right; padding-bottom: 8vh; }
.cv-stats b { display: block; font: 700 clamp(26px, min(2.7vw, 5vh), 46px)/1 var(--serif); }
.cv-stats span { display: block; margin-top: 4px; font: 500 10.5px/1.3 var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--on-paper-m); }
.cv-h { grid-column: 1; grid-row: 4; position: relative; z-index: 2; align-self: end; max-width: 8.6em; font: 600 clamp(32px, min(3.4vw, 6.2vh), 62px)/.98 var(--serif); letter-spacing: -.01em; }
.cv-h em { display: block; font-weight: 500; }
.cv-sticker { position: absolute; z-index: 3; right: calc(var(--g) + clamp(170px, 19.5vw, 360px)); bottom: clamp(24px, 6vh, 64px); width: clamp(104px, 9vw, 138px); aspect-ratio: 1; border-radius: 50%; background: var(--lime); color: var(--ink); display: grid; place-items: center; align-content: center; gap: 4px; text-align: center; text-decoration: none; font: 700 clamp(13px, 1.05vw, 16px)/1.05 var(--sans); letter-spacing: -.01em; transform: rotate(-8deg); transition: transform .4s var(--ease); box-shadow: 0 0 0 1px var(--ink); }
.cv-sticker:hover { transform: rotate(0deg) scale(1.05); }
.cv-sticker i { font-style: normal; font-size: 1.3em; }

.cover-under { position: relative; order: 1; display: flex; align-items: center; padding: 14vh var(--g); background: radial-gradient(70% 70% at 70% 50%, #1b1b18 0%, var(--ink) 70%); }
.under-in { max-width: 640px; }
.under-h { margin-top: 22px; font: 500 clamp(36px, min(4.3vw, 7.8vh), 76px)/1.02 var(--serif); letter-spacing: -.01em; }
.under-h em { color: var(--lime); }
.under-p { margin-top: 22px; max-width: 30em; font-size: clamp(16px, 1.25vw, 19px); color: var(--on-ink-m); }
.under-ctas { margin-top: 30px; display: flex; flex-wrap: wrap; gap: 12px; }

.motion .cover { display: block; height: 100vh; height: 100svh; overflow: hidden; }
.motion .cover-under { position: absolute; inset: 0; padding: var(--hdr) var(--g) 0; }
.motion .cover-page { position: absolute; inset: 0; min-height: 0; will-change: transform; }
.motion-pending .cv-mast, .motion-pending .cv-star, .motion-pending .cv-left, .motion-pending .cv-stats,
.motion-pending .cv-h, .motion-pending .cv-sticker, .motion-pending .cv-top, .motion-pending .hdr { opacity: 0; }

/* ===================== 02 NOTE ===================== */
.note { position: relative; background: var(--paper); color: var(--ink); }
.note-in { min-height: 100vh; min-height: 100svh; display: grid; grid-template-columns: minmax(0, 1.3fr) auto; align-items: center; gap: 6vw; padding: calc(var(--hdr) + 3vh) var(--g) 6vh; }
.note-h { margin-top: 2.4vh; font: italic 500 clamp(40px, min(5vw, 9vh), 92px)/.95 var(--serif); }
.note-text { margin-top: 3vh; max-width: 24em; font: 400 clamp(20px, min(2.05vw, 3.9vh), 36px)/1.34 var(--serif); }
.note-text strong { font-weight: 700; font-style: italic; }
.note-text .w { display: inline; }
.note-sign { margin-top: 3.4vh; display: flex; align-items: baseline; gap: 16px; }
.note-sign em { font: italic 600 clamp(26px, 2.4vw, 40px)/1 var(--serif); }
.note-sign span { font: 500 11px/1 var(--mono); letter-spacing: .16em; text-transform: uppercase; color: var(--on-paper-m); }
.note-sign::before { content: ""; width: 42px; height: 1px; background: var(--ink); align-self: center; }
.note-frame { --fh: min(72vh, 52vw); height: var(--fh); width: calc(var(--fh) * .74); }
.note-clip { position: relative; height: 100%; border-radius: 999px 999px 22px 22px; overflow: hidden; background: radial-gradient(55% 45% at 50% 42%, #2c2c27 0%, var(--ink) 75%); }
.note-clip::after { content: ""; position: absolute; inset: 0; border-radius: inherit; box-shadow: inset 0 0 0 1px rgba(200, 245, 60, .22); pointer-events: none; }
.note-clip picture { position: absolute; left: 50%; bottom: 0; height: 88%; translate: -50% 0; }
.note-clip img { height: 100%; width: auto; max-width: none; }
.note-frame figcaption { margin-top: 14px; text-align: center; font: 500 11px/1 var(--mono); letter-spacing: .18em; text-transform: uppercase; color: var(--on-paper-m); }

/* ===================== 03 CHAPTERS ===================== */
.chap { position: relative; background: var(--ink); color: var(--on-ink); }
.chap-in { position: relative; min-height: 100vh; min-height: 100svh; display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); grid-template-rows: auto minmax(0, 1fr); gap: 3vh 4vw; padding: calc(var(--hdr) + 3vh) var(--g) 8vh; }
.chap-head { grid-column: 1; grid-row: 1; }
.chap-index { margin-top: 3vh; display: flex; flex-wrap: wrap; gap: 8px 22px; font: 500 12px/1 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--on-ink-m); }
.chap-index li { display: flex; gap: 6px; transition: color .3s; }
.chap-index span { color: rgba(239, 233, 220, .3); }
.chap-index li.on { color: var(--lime); }
.chap-index li.on span { color: var(--lime); }
.chap-photos { grid-column: 2; grid-row: 1 / span 2; position: relative; min-height: 60vh; border-radius: 18px; overflow: hidden; background: radial-gradient(60% 50% at 50% 46%, #26261f 0%, #0f0f0d 62%, var(--ink) 100%); box-shadow: inset 0 0 0 1px rgba(239, 233, 220, .07); }
.ph { position: absolute; inset: 0; overflow: hidden; }
.ph picture { position: absolute; left: 50%; bottom: 0; height: 90%; translate: -50% 0; }
.ph img { height: 100%; width: auto; max-width: none; }
.ph-2, .ph-3 { display: none; }
.ph-wipe { position: absolute; top: 0; bottom: 0; left: 0; width: 14%; background: var(--lime); display: none; }
.beats { grid-column: 1; grid-row: 2; display: grid; gap: 6vh; align-self: end; }
.b-no { display: block; font: 500 12px/1 var(--mono); letter-spacing: .16em; color: var(--lime); }
.b-big { margin-top: 1.4vh; overflow: hidden; padding-bottom: .06em; font: 700 clamp(64px, min(9.4vw, 19vh), 190px)/.92 var(--serif); letter-spacing: -.02em; white-space: nowrap; }
.b-big > span { display: inline-block; }
.b-big em { font-weight: 500; }
.b-txt { margin-top: 2vh; max-width: 26em; font-size: clamp(16px, 1.3vw, 20px); line-height: 1.5; color: var(--on-ink-m); }
.chap-bar { display: none; }

.motion .chap-in { height: 100vh; height: 100svh; min-height: 0; }
.motion .ph-2, .motion .ph-3 { display: block; }
.motion .ph-wipe { display: block; }
.motion .beats { position: relative; display: block; height: 100%; }
.motion .beat { position: absolute; left: 0; right: 0; bottom: 0; }
.motion .chap-bar { display: block; position: absolute; left: var(--g); right: var(--g); bottom: 3.6vh; height: 2px; background: var(--on-ink-l); }
.motion .chap-bar i { position: absolute; inset: 0; background: var(--lime); transform-origin: 0 50%; transform: scaleX(0); }

/* ===================== 04 WORK WITH ME ===================== */
.work { position: relative; background: var(--paper); color: var(--ink); overflow: hidden; }
.work-track { display: flex; flex-direction: column; }
.w-intro { padding: calc(var(--hdr) + 6vh) var(--g) 6vh; display: flex; flex-direction: column; justify-content: center; }
.w-h { margin-top: 3vh; font: 500 clamp(44px, min(5.3vw, 9.6vh), 100px)/.98 var(--serif); letter-spacing: -.015em; }
.w-h em { display: block; }
.w-p { margin-top: 3vh; font-size: clamp(16px, 1.3vw, 20px); color: var(--on-paper-m); }
.w-hint { display: none; margin-top: 5vh; font: 500 11.5px/1 var(--mono); letter-spacing: .16em; text-transform: uppercase; }
.w-hint span { display: inline-block; color: var(--ink); }
.offer { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; gap: 4vw; padding: 7vh var(--g); border-top: 1px solid var(--on-paper-l); }
.o-art { position: relative; height: min(70vh, 48vw); }
.o-sil, .o-photo { position: absolute; inset: 0; }
.o-sil { -webkit-mask: url("mishaal/mishaal-front-m.webp") 50% 100% / contain no-repeat; mask: url("mishaal/mishaal-front-m.webp") 50% 100% / contain no-repeat; }
.o-sil-ink { background: var(--ink); }
.o-sil-lime { background: var(--lime); translate: 14px 0; }
.o-photo img { width: 100%; height: 100%; object-fit: contain; object-position: 50% 100%; }
.o-photo-frame { border-radius: 22px; overflow: hidden; background: radial-gradient(60% 55% at 50% 40%, #2c2c27 0%, var(--ink) 72%); }
.o-photo-frame img { height: 92%; margin-top: 8%; }
.o-disc { position: absolute; left: 50%; top: 50%; width: min(60vh, 34vw); aspect-ratio: 1; translate: -50% -50%; border-radius: 50%; overflow: hidden; background: var(--ink); box-shadow: 0 0 0 1px var(--ink), 0 0 0 12px var(--paper), 0 0 0 13px var(--on-paper-l); }
.o-disc img { width: 100%; height: 100%; object-fit: cover; }
.o-no { font: 900 clamp(64px, min(9vw, 16vh), 170px)/.8 var(--serif); color: transparent; -webkit-text-stroke: 1.2px var(--ink); }
.o-kick { margin-top: 3vh; font: 500 11.5px/1 var(--mono); letter-spacing: .16em; text-transform: uppercase; color: var(--on-paper-m); }
.o-h { margin-top: 1.4vh; font: 600 clamp(38px, min(4.2vw, 7.6vh), 80px)/1 var(--serif); letter-spacing: -.015em; }
.o-p { margin-top: 2.4vh; max-width: 25em; font-size: clamp(16px, 1.25vw, 19px); color: var(--on-paper-m); }
.o-copy .btn { margin-top: 3.6vh; }

/* ===================== 05 STUDENT WINS ===================== */
.wins { position: relative; background: var(--ink); color: var(--on-ink); }
.wins-in { min-height: 100vh; min-height: 100svh; display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; gap: 4vw; padding: calc(var(--hdr) + 3vh) var(--g) 5vh; }
.wins-h { margin-top: 3vh; font: 500 clamp(42px, min(4.9vw, 9vh), 92px)/.98 var(--serif); letter-spacing: -.015em; }
.wins-h em { display: block; color: var(--lime); }
.wins-p { margin-top: 3vh; max-width: 22em; font-size: clamp(15px, 1.2vw, 18px); color: var(--on-ink-m); }
.wins-note { margin-top: 3vh; max-width: 26em; font: 400 12px/1.5 var(--mono); color: rgba(239, 233, 220, .5); }
.phone { position: relative; }
.ph-bars { display: none; }
.stories { display: flex; gap: 16px; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 8px; max-width: 80vw; }
.story { position: relative; flex: none; width: min(300px, 76vw); aspect-ratio: 9 / 16; scroll-snap-align: start; border-radius: 26px; overflow: hidden; background: #000; box-shadow: inset 0 0 0 1px rgba(239, 233, 220, .1); }
.st-media, .st-bg { position: absolute; inset: 0; }
.st-bg { width: 100%; height: 100%; object-fit: cover; filter: blur(20px) brightness(.42); transform: scale(1.25); }
.st-shot { position: absolute; left: 0; right: 0; top: 64px; bottom: 0; width: 100%; height: calc(100% - 64px); object-fit: contain; object-position: 50% 0; }
.st-top { position: absolute; top: 22px; left: 14px; right: 14px; display: flex; align-items: center; gap: 10px; }
.st-av { flex: none; width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; background: var(--lime); color: var(--ink); font: 700 15px/1 var(--sans); box-shadow: 0 0 0 2px var(--ink), 0 0 0 3.5px var(--lime); }
.st-who b { display: block; font: 600 14px/1.2 var(--sans); color: #fff; }
.st-who small { display: block; font: 400 12px/1.2 var(--sans); color: rgba(255, 255, 255, .7); }
.st-res { position: absolute; top: 74px; right: 12px; padding: 7px 12px 8px; border-radius: 8px; background: var(--lime); color: var(--ink); font: 700 19px/1 var(--serif); transform: rotate(-4deg); box-shadow: 0 8px 18px -8px rgba(0, 0, 0, .6); }
.st-bottom { position: absolute; left: 0; right: 0; bottom: 0; padding: 70px 16px 16px; background: linear-gradient(180deg, transparent, rgba(0, 0, 0, .78) 34%, rgba(0, 0, 0, .92)); }
.st-bottom blockquote { font: 400 14.5px/1.45 var(--sans); color: #fff; }
.st-proof { margin-top: 12px; height: 38px; padding: 0 16px; border-radius: 999px; border: 1px solid rgba(255, 255, 255, .5); background: rgba(255, 255, 255, .08); color: #fff; font: 600 13px/1 var(--sans); transition: background .25s, color .25s; }
.st-proof:hover { background: #fff; color: var(--ink); }
.wins-big { display: none; }

.motion .wins-in { height: 100vh; height: 100svh; min-height: 0; }
.motion .phone { height: min(76vh, 720px); aspect-ratio: 9 / 16; border-radius: 30px; overflow: hidden; background: #000; box-shadow: 0 0 0 1px rgba(239, 233, 220, .12), 0 40px 80px -30px rgba(0, 0, 0, .8), 0 0 90px -30px rgba(200, 245, 60, .25); }
.motion .ph-bars { display: flex; position: absolute; z-index: 5; top: 10px; left: 12px; right: 12px; gap: 4px; }
.motion .ph-bars i { flex: 1; height: 2.5px; border-radius: 2px; background: rgba(255, 255, 255, .3); overflow: hidden; }
.motion .ph-bars b { display: block; height: 100%; background: #fff; transform-origin: 0 50%; transform: scaleX(0); }
.motion .stories { position: absolute; inset: 0; display: block; overflow: hidden; max-width: none; padding: 0; }
.motion .story { position: absolute; inset: 0; width: auto; aspect-ratio: auto; border-radius: 0; box-shadow: none; }
.motion .wins-big { display: block; position: relative; height: 40vh; }
.motion .wins-big li { position: absolute; left: 0; right: 0; top: 50%; translate: 0 -50%; }
.wb-n { display: block; font: 500 12px/1 var(--mono); letter-spacing: .16em; color: var(--lime); }
.wins-big b { display: block; margin-top: 2vh; font: 700 clamp(40px, min(4.6vw, 8.6vh), 88px)/.98 var(--serif); letter-spacing: -.015em; }
.wb-c { display: block; margin-top: 2vh; font-size: 15px; color: var(--on-ink-m); }
@media (min-width: 900px) { .motion .st-res { display: none; } }

/* ===================== 06 APPROACH ===================== */
.appr { position: relative; overflow: hidden; background: var(--paper); color: var(--ink); }
.appr-shadow { position: absolute; z-index: 0; left: -6vw; bottom: 0; height: 92%; aspect-ratio: 1.34; background: var(--ink); opacity: .07; -webkit-mask: url("mishaal/mishaal-side-m.webp") 0 100% / contain no-repeat; mask: url("mishaal/mishaal-side-m.webp") 0 100% / contain no-repeat; pointer-events: none; }
.appr-in { position: relative; z-index: 1; min-height: 100vh; min-height: 100svh; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; gap: 6vw; padding: calc(var(--hdr) + 3vh) var(--g) 6vh; }
.appr-h { margin-top: 3vh; font: 500 clamp(42px, min(4.9vw, 9vh), 92px)/.98 var(--serif); letter-spacing: -.015em; }
.appr-h em { display: block; }
.appr-p { margin-top: 3vh; max-width: 28em; font-size: clamp(16px, 1.3vw, 20px); color: var(--on-paper-m); }
.appr-small { margin-top: 2vh; max-width: 30em; font: 400 12.5px/1.55 var(--mono); color: var(--on-paper-m); }
.appr-copy .btn { margin-top: 3.6vh; }
.steps { position: relative; padding-left: 34px; }
.step { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 26px; align-items: start; padding: clamp(16px, 3.4vh, 34px) 0; border-top: 1px solid var(--on-paper-l); }
.step:first-child { border-top: 0; }
.s-no { font: 800 clamp(48px, min(5.4vw, 10.5vh), 104px)/.8 var(--serif); color: var(--ink); min-width: 1.3em; }
.step h3 { font: 600 clamp(19px, 1.6vw, 25px)/1.2 var(--sans); letter-spacing: -.01em; }
.step p { margin-top: 8px; max-width: 26em; font-size: clamp(15px, 1.15vw, 17px); color: var(--on-paper-m); }
.s-line { position: absolute; left: 0; top: 8px; bottom: 8px; width: 2px; background: var(--on-paper-l); }
.s-line b { position: absolute; inset: 0; background: var(--ink); transform-origin: 50% 0; }
.motion .s-line b { transform: scaleY(0); }
.motion .s-line b::after { content: ""; position: absolute; left: -4px; bottom: -5px; width: 10px; height: 10px; border-radius: 50%; background: var(--lime); box-shadow: 0 0 0 1px var(--ink); }

/* ===================== 07 CONTACT ===================== */
.contact { position: relative; overflow: hidden; background: var(--ink); color: var(--on-ink); }

.ct-in { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: 5vw; align-items: start; padding: calc(var(--hdr) + 2vh) var(--g) 12vh; }
.ct-left { position: relative; }
.ct-h { margin-top: 3vh; font: 500 clamp(44px, min(5vw, 9.4vh), 96px)/.96 var(--serif); letter-spacing: -.015em; }
.ct-h em { display: block; color: var(--lime); }
.ct-p { margin-top: 3vh; max-width: 26em; font-size: clamp(16px, 1.25vw, 19px); color: var(--on-ink-m); }
.ct-rows { margin-top: 4vh; border-top: 1px solid var(--on-ink-l); }
.ct-rows a { display: grid; grid-template-columns: 110px minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 18px 2px; border-bottom: 1px solid var(--on-ink-l); text-decoration: none; transition: padding .35s var(--ease), color .3s; }
.ct-rows a:hover { padding-left: 10px; color: var(--lime); }
.ct-k { font: 500 11px/1 var(--mono); letter-spacing: .16em; text-transform: uppercase; color: var(--on-ink-m); }
.ct-v { font: 500 clamp(18px, 1.6vw, 24px)/1.2 var(--serif); overflow-wrap: anywhere; }
.ct-wa a { color: var(--lime); }
.ct-wa .ct-v { font-size: clamp(22px, 2.1vw, 32px); font-weight: 600; }
.ct-a { font-size: 18px; }
.ct-photo { position: relative; height: min(46vh, 34vw); margin-bottom: -5vh; }
.ct-photo picture { position: absolute; left: -2vw; bottom: 0; height: 100%; }
.ct-photo img { height: 100%; width: auto; max-width: none; }

.enquiry { position: relative; background: var(--ink-2); border: 1px solid rgba(239, 233, 220, .08); border-radius: 22px; padding: clamp(22px, 3vw, 40px); }
.enq-head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 22px; }
.enq-head h3 { font: 600 clamp(24px, 2vw, 32px)/1.1 var(--serif); }
.enq-head span { font: 500 11px/1 var(--mono); letter-spacing: .16em; text-transform: uppercase; color: var(--lime); }
.row2 { display: grid; grid-template-columns: 1fr 1fr; gap: 0 18px; }
.field { position: relative; margin: 0 0 18px; padding: 0; border: 0; min-width: 0; }
.field label, .field legend { display: block; margin-bottom: 8px; font: 500 12px/1.2 var(--sans); color: var(--on-ink-m); }
.field label b, .field legend b { color: var(--lime); font-weight: 600; }
.field input, .field select, .field textarea { width: 100%; padding: 13px 14px; border: 1px solid rgba(239, 233, 220, .14); border-radius: 12px; background: rgba(239, 233, 220, .04); color: var(--on-ink); font: 400 15px/1.3 var(--sans); transition: border-color .25s, background .25s; }
.field select { appearance: none; -webkit-appearance: none; background-image: linear-gradient(45deg, transparent 50%, var(--on-ink-m) 50%), linear-gradient(135deg, var(--on-ink-m) 50%, transparent 50%); background-position: calc(100% - 20px) 50%, calc(100% - 15px) 50%; background-size: 5px 5px; background-repeat: no-repeat; }
.field select option { background: var(--ink-2); color: var(--on-ink); }
.field textarea { resize: vertical; min-height: 110px; }
.field input:focus, .field select:focus, .field textarea:focus { outline: none; border-color: var(--lime); background: rgba(239, 233, 220, .07); }
.field ::placeholder { color: rgba(239, 233, 220, .32); }
.field .err { display: none; margin-top: 6px; font-size: 12.5px; color: #ff8f7d; }
.field.bad input, .field.bad textarea { border-color: #ff8f7d; }
.field.bad .err { display: block; }
.chips { display: flex; flex-wrap: wrap; gap: 8px; }
.chips legend { width: 100%; }
.chips label { margin: 0; cursor: pointer; }
.chips input { position: absolute; opacity: 0; pointer-events: none; }
.chips span { display: inline-block; padding: 10px 15px; border: 1px solid rgba(239, 233, 220, .16); border-radius: 999px; font: 500 13.5px/1 var(--sans); color: var(--on-ink); transition: background .25s, color .25s, border-color .25s; }
.chips label:hover span { border-color: rgba(239, 233, 220, .4); }
.chips input:checked + span { background: var(--lime); border-color: var(--lime); color: var(--ink); }
.chips input:focus-visible + span { outline: 2px solid var(--lime); outline-offset: 2px; }
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.enq-foot { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-top: 6px; }
.fine { font-size: 12.5px; color: var(--on-ink-m); }
.fine a { color: var(--on-ink); }
.enq-done { display: none; text-align: left; }
.enquiry.is-done .enq-fields, .enquiry.is-done .enq-head { display: none; }
.enquiry.is-done .enq-done { display: block; }
.done-mark { display: grid; place-items: center; width: 52px; height: 52px; border-radius: 50%; background: var(--lime); color: var(--ink); font-size: 24px; font-weight: 700; }
.enq-done h3 { margin-top: 18px; font: 600 clamp(28px, 2.4vw, 38px)/1.1 var(--serif); }
.done-copy { margin-top: 10px; color: var(--on-ink-m); max-width: 32em; }
.enq-done .btn { margin-top: 22px; margin-right: 10px; }

/* ===================== FOOTER ===================== */
.foot { position: relative; overflow: hidden; background: var(--paper); color: var(--ink); }
.foot-in { padding: 9vh var(--g) 26px; }
.foot-row { display: flex; justify-content: space-between; align-items: flex-end; gap: 20px; flex-wrap: wrap; }
.foot-line { font: italic 500 clamp(22px, 2vw, 32px)/1.2 var(--serif); max-width: 14em; }
.foot-links { display: flex; flex-wrap: wrap; gap: 10px 26px; }
.foot-links a { font: 500 12px/1 var(--mono); letter-spacing: .14em; text-transform: uppercase; text-decoration: none; }
.foot-links a:hover { text-decoration: underline; text-underline-offset: 4px; }
.foot-word { margin: 5vh 0 0; overflow: hidden; text-align: center; white-space: nowrap; font: 900 clamp(80px, 25vw, 460px)/.78 var(--serif); letter-spacing: -.04em; padding-bottom: .04em; }
.foot-word span { display: inline-block; }
.foot-word i { font-style: normal; color: var(--lime); -webkit-text-stroke: 2px var(--ink); }
.foot-base { margin-top: 3vh; padding-top: 18px; border-top: 1px solid var(--on-paper-l); display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; font-size: 13px; color: var(--on-paper-m); }
.foot-logo img { width: 110px; height: auto; filter: invert(1); }

/* ===================== OVERLAYS ===================== */
.proof-overlay { position: fixed; inset: 0; z-index: 80; display: grid; place-items: center; padding: 70px 16px 24px; background: rgba(6, 6, 5, .94); }
.proof-overlay figure { display: flex; flex-direction: column; align-items: center; gap: 12px; max-height: 100%; }
.proof-overlay img { max-width: min(92vw, 640px); max-height: calc(100vh - 140px); max-height: calc(100svh - 140px); width: auto; height: auto; border-radius: 14px; }
.proof-overlay figcaption { font: 500 11.5px/1 var(--mono); letter-spacing: .14em; text-transform: uppercase; color: var(--on-ink-m); }
.proof-close { position: absolute; top: 16px; right: 16px; height: 44px; padding: 0 20px; border: 0; border-radius: 999px; background: var(--lime); color: var(--ink); font-weight: 600; }
.wa-float { position: fixed; z-index: 55; right: 18px; bottom: 18px; width: 58px; height: 58px; border-radius: 50%; display: grid; place-items: center; background: var(--lime); color: var(--ink); box-shadow: 0 0 0 1px var(--ink), 0 14px 30px -10px rgba(0, 0, 0, .55); transition: transform .45s var(--ease), opacity .3s; }
.wa-float svg { width: 28px; height: 28px; }
.wa-float:hover { transform: scale(1.06); }
.cookie { position: fixed; z-index: 60; left: 16px; bottom: 16px; max-width: min(380px, calc(100vw - 104px)); display: flex; align-items: center; gap: 14px; padding: 14px 14px 14px 18px; border-radius: 16px; background: var(--ink-2); color: var(--on-ink); border: 1px solid rgba(239, 233, 220, .12); box-shadow: 0 18px 40px -16px rgba(0, 0, 0, .7); font-size: 13px; line-height: 1.45; }
.cookie a { color: var(--lime); }
.cookie button { flex: none; height: 38px; padding: 0 18px; border: 0; border-radius: 999px; background: var(--lime); color: var(--ink); font-weight: 600; }

/* ===================== DESKTOP-ONLY MOTION LAYOUTS ===================== */
@media (min-width: 900px) {
  .motion .work { height: 100vh; height: 100svh; }
  .motion .work-track { flex-direction: row; height: 100%; width: max-content; will-change: transform; }
  .motion .w-intro { width: 44vw; flex: none; padding-right: 4vw; }
  .motion .w-hint { display: block; }
  .motion .offer { flex: none; width: 74vw; height: 100%; padding: calc(var(--hdr) + 3vh) 4vw 5vh; border-top: 0; border-left: 1px solid var(--on-paper-l); }
  .motion .offer:last-child { width: 78vw; padding-right: var(--g); }
}

@media (min-width: 900px) and (max-width: 1199px) { .cv-sticker { right: calc(var(--g) + 28vw); } }

/* ===================== MOBILE ===================== */
@media (max-width: 899px) {
  :root { --hdr: 72px; }
  .hdr { top: 10px; left: 12px; right: 12px; height: 52px; padding: 0 5px 0 18px; }
  .hdr-logo img { width: 100px; }
  .burger { display: block; }
  .hdr-nav { position: fixed; inset: 0; z-index: 1; flex-direction: column; align-items: flex-start; justify-content: center; gap: 6px; padding: 90px 28px 40px; background: var(--ink); opacity: 0; visibility: hidden; transition: opacity .35s, visibility .35s; }
  .hdr.open .hdr-nav { opacity: 1; visibility: visible; }
  .hdr-nav a { font: 500 34px/1.25 var(--serif); color: var(--on-ink); }
  .hdr-nav .nav-cta { margin-top: 18px; font: 600 17px/1 var(--sans); padding: 16px 24px; }
  .wa-float { width: 54px; height: 54px; right: 14px; bottom: 14px; }
  .wa-float.away { transform: translateY(150%); opacity: 0; pointer-events: none; }

  .cover-page { --star-h: min(93vw, 46svh); grid-template-columns: minmax(0, 1fr); grid-template-rows: auto auto auto auto auto 1fr; padding: calc(var(--hdr) + 4px) 16px 0; }
  .cv-top { font-size: 9.5px; letter-spacing: .14em; padding: 7px 0; }
  .cv-top-mid { display: none; }
  .cv-mast { margin-top: 10px; font-size: var(--mast-fs, 20vw); }
  .cv-star { left: -20vw; right: -20vw; }
  .cv-left { grid-column: 1; grid-row: 3; padding-top: 14px; max-width: none; }
  .cv-hi { margin-top: 6px; font-size: clamp(28px, 8.4vw, 36px); }
  .cv-small { margin-top: 6px; font-size: 14px; max-width: 24em; }
  .cv-h { grid-column: 1; grid-row: 4; align-self: start; margin-top: 12px; max-width: none; font-size: clamp(26px, 7.6vw, 34px); }
  .cv-h em { display: inline; }
  .cv-stats { grid-column: 1; grid-row: 5; align-self: start; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-top: 14px; padding: 12px 0 0; border-top: 1px solid var(--on-paper-l); text-align: left; }
  .cv-stats b { font-size: clamp(19px, 5.4vw, 24px); }
  .cv-stats span { font-size: 9px; letter-spacing: .08em; }
  .cv-sticker { width: 88px; right: 14px; bottom: 18px; font-size: 12px; }
  .cover-under { padding: 10vh 16px; }
  .motion .cover-under { align-items: flex-end; padding: 0 16px calc(84px + 2svh); }
  .under-h { margin-top: 12px; font-size: clamp(28px, 8vw, 36px); }
  .under-p { margin-top: 12px; font-size: 15px; }
  .under-ctas { margin-top: 18px; }
  .under-ctas .btn { min-height: 48px; padding: 0 20px; font-size: 14.5px; }

  .note-in { grid-template-columns: minmax(0, 1fr); gap: 4vh; padding: calc(var(--hdr) + 3vh) 18px 9vh; }
  .note-frame { --fh: min(42svh, 98vw); order: -1; justify-self: center; }
  .note-text { font-size: clamp(20px, 5.6vw, 26px); }

  .chap-in { grid-template-columns: minmax(0, 1fr); grid-template-rows: auto auto minmax(0, 1fr); gap: 2.4vh; padding: calc(var(--hdr) + 2vh) 18px 8vh; }
  .chap-index { display: none; }
  .chap-photos { grid-column: 1; grid-row: 2; min-height: 0; height: 40vh; height: 40svh; }
  .beats { grid-column: 1; grid-row: 3; align-self: start; }
  .b-big { font-size: clamp(54px, 16.5vw, 92px); }
  .b-txt { font-size: 15.5px; }
  .motion .beat { top: 0; bottom: auto; }

  .w-intro { padding: calc(var(--hdr) + 5vh) 18px 4vh; }
  .offer { grid-template-columns: minmax(0, 1fr); gap: 3vh; padding: 6vh 18px 8vh; }
  .o-art { height: min(46svh, 94vw); }
  .o-disc { width: min(40svh, 74vw); }
  .o-no { font-size: 64px; }

  .wins-in { grid-template-columns: minmax(0, 1fr); gap: 2vh; align-content: start; padding: calc(var(--hdr) + 2vh) 18px 4vh; }
  .wins-h { margin-top: 1.4vh; font-size: clamp(34px, 9.6vw, 44px); }
  .wins-h em { display: inline; }
  .wins-p { margin-top: 1.2vh; font-size: 14.5px; }
  .wins-note { margin-top: 1.2vh; font-size: 10.5px; }
  .motion .wins-in { display: flex; flex-direction: column; }
  .motion .wins-head { display: contents; }
  .motion .wins-head .label { order: 0; } .motion .wins-h { order: 1; } .motion .wins-p { order: 2; }
  .motion .phone { order: 3; align-self: center; height: min(60svh, 150vw); margin-top: .8vh; }
  .motion .wins-note { order: 4; text-align: center; align-self: center; }
  .motion .wins-big { display: none; }

  .appr-shadow { left: -30vw; height: 60%; }
  .appr-in { grid-template-columns: minmax(0, 1fr); gap: 5vh; padding: calc(var(--hdr) + 4vh) 18px 9vh; }
  .steps { padding-left: 26px; }
  .step { gap: 18px; }

  .ct-in { grid-template-columns: minmax(0, 1fr); gap: 5vh; padding: calc(var(--hdr) + 2vh) 16px 12vh; }
  .ct-photo { height: min(40svh, 82vw); margin-bottom: -6vh; }
  .ct-photo picture { left: 50%; translate: -50% 0; }
  .ct-rows a { grid-template-columns: 92px minmax(0, 1fr) auto; }
  .row2 { grid-template-columns: minmax(0, 1fr); }
  .enquiry { padding: 22px 18px; }
  .foot-in { padding-bottom: 90px; }
  .cookie { left: 12px; right: 80px; bottom: 14px; max-width: none; }
}

/* ===================== SHORT LAPTOPS ===================== */
@media (min-width: 900px) and (max-height: 700px) {
  :root { --hdr: 76px; }
  .cv-small, .cv-kick { display: none; }
  .cv-stats span { font-size: 9.5px; }
  .w-p, .wins-p { display: none; }
  .appr-small { display: none; }
  .o-p { font-size: 15px; }
  .step p { font-size: 14px; }
  .b-txt { font-size: 15px; }
}
@media (max-width: 899px) and (max-height: 740px) {
  .cv-small, .cv-stats { display: none; }
  .wins-p { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; animation: none !important; }
}

/* ===================== PRIVACY PAGE ===================== */
.legal-page { background: var(--paper); color: var(--ink); }
.hdr-back { position: relative; z-index: 2; padding: 12px 18px; border-radius: 999px; background: var(--lime); color: var(--ink); font: 600 13.5px/1 var(--sans); text-decoration: none; }
.legal-wrap { padding: calc(var(--hdr) + 9vh) var(--g) 10vh; }
.legal { max-width: 720px; margin: 0 auto; }
.legal h1 { margin-top: 18px; font: 500 clamp(44px, 6vw, 88px)/1 var(--serif); letter-spacing: -.015em; }
.legal .updated { margin-top: 16px; font: 500 11.5px/1 var(--mono); letter-spacing: .14em; text-transform: uppercase; color: var(--on-paper-m); }
.legal h2 { margin-top: 46px; font: 600 clamp(22px, 2vw, 28px)/1.2 var(--serif); }
.legal p, .legal li { margin-top: 14px; font-size: 17px; line-height: 1.65; color: rgba(11, 11, 10, .82); }
.legal ul { margin-top: 10px; padding-left: 22px; list-style: disc; }
.legal li { margin-top: 6px; }
.legal a { color: var(--ink); text-decoration-color: var(--lime); text-decoration-thickness: 2px; text-underline-offset: 3px; }
.legal-foot .foot-in { padding-top: 4vh; }
.legal-foot .foot-base { margin-top: 0; }
