:root {
  --ink: #0b090d;
  --ink-2: #131016;
  --ink-3: #1a141d;
  --ivory: #efe7d8;
  --ivory-2: #e6dccb;
  --paper-ink: #201922;
  --purple: #3b123f;
  --purple-deep: #220b27;
  --gold: #aa7b42;
  --gold-soft: #c49a67;
  --white: #faf8f2;
  --muted: #c8c0ba;
  --line: rgba(255,255,255,.13);
  --wrap: 1240px;
  --serif: "Bodoni 72", Didot, "Iowan Old Style", "Times New Roman", serif;
  --sans: Inter, "Helvetica Neue", Arial, sans-serif;
  --hand: "Segoe Script", "Bradley Hand", "Brush Script MT", cursive;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--ink); }
body {
  margin: 0;
  color: var(--white);
  background: var(--ink);
  font-family: var(--sans);
  font-size: 16px;
  line-height: 1.6;
  overflow-x: hidden;
  text-rendering: optimizeLegibility;
}
body.menu-open { overflow: hidden; }
img { display: block; max-width: 100%; }
a { color: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
::selection { background: var(--gold); color: var(--ink); }

.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-link {
  position: fixed; left: 1rem; top: .5rem; z-index: 9999;
  background: var(--ivory); color: var(--ink); padding: .65rem 1rem;
  transform: translateY(-160%); transition: transform .2s ease;
}
.skip-link:focus { transform: translateY(0); }

.wrap { width: min(var(--wrap), calc(100% - 48px)); margin-inline: auto; position: relative; }
.paper-texture {
  background-color: var(--ivory);
  background-image:
    radial-gradient(circle at 20% 30%, rgba(86,60,38,.055) 0 1px, transparent 1.3px),
    radial-gradient(circle at 75% 65%, rgba(86,60,38,.04) 0 1px, transparent 1.2px),
    linear-gradient(105deg, rgba(255,255,255,.24), transparent 38%, rgba(80,50,32,.03));
  background-size: 8px 8px, 11px 11px, 100% 100%;
}

.site-header {
  position: fixed; z-index: 80; inset: 0 0 auto 0;
  min-height: 84px;
  display: flex; align-items: center; justify-content: space-between;
  padding: 12px clamp(18px, 3vw, 54px);
  transition: background .35s ease, backdrop-filter .35s ease, border-color .35s ease;
  border-bottom: 1px solid transparent;
}
.site-header.is-scrolled {
  background: rgba(10,8,11,.80);
  backdrop-filter: blur(18px);
  border-bottom-color: rgba(255,255,255,.08);
}
.brand-card {
  width: clamp(190px, 16vw, 270px);
  min-width: 190px;
  background: var(--ivory);
  padding: 7px 18px 5px;
  position: relative;
  box-shadow: 0 10px 30px rgba(0,0,0,.24);
  transform: rotate(-.25deg);
  text-decoration: none;
  overflow: hidden;
}
.brand-card::after {
  content:""; position:absolute; inset:0; pointer-events:none; opacity:.22;
  background-image: radial-gradient(circle at 20% 20%, #5d4430 0 1px, transparent 1.2px);
  background-size: 7px 7px; mix-blend-mode:multiply;
}
.brand-card img { width: 100%; height: 52px; object-fit: contain; position: relative; z-index:1; }
.site-nav { display:flex; align-items:center; gap: clamp(18px, 2vw, 32px); font-size: .78rem; text-transform: uppercase; letter-spacing: .16em; }
.site-nav a { text-decoration:none; color:rgba(255,255,255,.84); position:relative; white-space:nowrap; }
.site-nav a:not(.nav-cta)::after { content:""; position:absolute; left:0; right:100%; bottom:-8px; height:1px; background:var(--gold-soft); transition:right .25s ease; }
.site-nav a:not(.nav-cta):hover::after, .site-nav a:not(.nav-cta):focus-visible::after { right:0; }
.nav-cta { border:1px solid rgba(196,154,103,.72); padding:12px 17px; background:rgba(59,18,63,.32); transition: background .25s ease, color .25s ease; }
.nav-cta:hover, .nav-cta:focus-visible { background:var(--ivory); color:var(--purple-deep); }
.menu-toggle { display:none; }

.hero {
  min-height: 930px;
  height: min(1000px, 100svh);
  position: relative;
  display:flex; align-items:center;
  overflow:hidden;
  isolation:isolate;
  background:#09090d;
}
.hero-media { position:absolute; inset:-7% -3%; z-index:-4; --scale:1.08; transform:translate3d(0,var(--py,0px),0) scale(var(--scale)); will-change:transform; }
.hero-media img { width:100%; height:100%; object-fit:cover; object-position:center; }
.hero-vignette {
  position:absolute; inset:0; z-index:-3;
  background:
    linear-gradient(90deg, rgba(8,7,11,.06) 0%, rgba(8,7,11,.10) 31%, rgba(8,7,11,.64) 52%, rgba(8,7,11,.92) 100%),
    linear-gradient(180deg, rgba(8,7,11,.56), transparent 25%, transparent 72%, rgba(8,7,11,.88));
}
.hero-grain, .services-bg::after, .music-edge::after, .contact-section::after {
  content:""; position:absolute; inset:0; pointer-events:none; z-index:-1; opacity:.15;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.55'/%3E%3C/svg%3E");
  mix-blend-mode:soft-light;
}
.hero-grain { z-index:-2; }
.hero-content { width:min(690px,46vw); margin-left:51%; margin-top:4rem; padding-right:clamp(30px,6vw,90px); }
.eyebrow, .kicker { margin:0 0 20px; font-size:.72rem; text-transform:uppercase; letter-spacing:.28em; font-weight:700; color:var(--gold-soft); }
.eyebrow span { display:inline-block; padding:0 .45em; opacity:.55; }
.hero h1, h2, .service-paper h3, .experience-body h3, .contact-paper h2 {
  font-family:var(--serif); font-weight:400; letter-spacing:-.025em;
}
.hero h1 { font-size:clamp(3.6rem,5.2vw,6.7rem); line-height:.88; margin:0 0 26px; max-width:800px; }
.hero h1 em, h2 em, .contact-paper h2 em { font-style:italic; color:var(--ivory); font-weight:400; }
.hero-lede { font-family:var(--serif); font-size:clamp(1.35rem,1.7vw,2rem); line-height:1.25; max-width:620px; margin:0 0 18px; color:var(--ivory); }
.hero-copy { max-width:590px; color:rgba(255,255,255,.72); margin:0 0 30px; }
.hero-actions { display:flex; flex-wrap:wrap; gap:12px; }
.button { min-height:48px; display:inline-flex; align-items:center; justify-content:center; padding:13px 20px; text-decoration:none; text-transform:uppercase; letter-spacing:.12em; font-size:.72rem; font-weight:700; transition:transform .2s ease, background .2s ease, color .2s ease, border-color .2s ease; }
.button:hover { transform:translateY(-2px); }
.button-primary { background:var(--purple); border:1px solid var(--gold); color:#fff; }
.button-primary:hover { background:var(--ivory); color:var(--purple-deep); }
.button-quiet { border:1px solid rgba(255,255,255,.35); color:#fff; }
.button-quiet:hover { border-color:var(--ivory); background:rgba(255,255,255,.07); }
.hero-note { position:absolute; left:clamp(30px,4vw,70px); bottom:50px; z-index:2; background:var(--ivory); color:var(--paper-ink); padding:12px 20px 14px; font-family:var(--serif); transform:translate3d(0,var(--py,0px),0) rotate(-2deg); box-shadow:0 20px 50px rgba(0,0,0,.34); }
.hero-note::before { content:""; position:absolute; width:70px; height:23px; background:rgba(211,193,167,.78); top:-11px; left:50%; transform:translateX(-50%) rotate(2deg); }
.hero-note span { display:block; font-size:.78rem; text-transform:uppercase; letter-spacing:.16em; font-family:var(--sans); color:#6c5d51; }
.hero-note strong { font-size:1.35rem; font-weight:400; }
.scroll-cue { position:absolute; right:clamp(25px,3vw,52px); bottom:42px; writing-mode:vertical-rl; display:flex; align-items:center; gap:10px; font-size:.62rem; text-transform:uppercase; letter-spacing:.28em; color:rgba(255,255,255,.55); }
.scroll-cue span { width:1px; height:54px; background:linear-gradient(var(--gold), transparent); }

.torn-top { position:relative; z-index:3; }
.torn-top::before {
  content:""; position:absolute; z-index:2; left:-1%; width:102%; height:64px; top:-48px; background:inherit;
  clip-path:polygon(0 54%,2% 45%,4% 56%,6% 39%,8% 52%,10% 43%,12% 58%,15% 40%,18% 50%,20% 38%,23% 55%,26% 44%,29% 57%,32% 42%,35% 52%,38% 39%,41% 55%,44% 46%,47% 57%,50% 42%,53% 51%,56% 40%,59% 55%,62% 43%,65% 56%,68% 41%,71% 53%,74% 39%,77% 55%,80% 44%,83% 56%,86% 41%,89% 53%,92% 40%,95% 55%,98% 43%,100% 51%,100% 100%,0 100%);
}
.intro-paper { color:var(--paper-ink); padding:88px 0 105px; z-index:5; }
.intro-grid { display:grid; grid-template-columns:1.15fr 1fr .55fr; gap:clamp(28px,4vw,70px); align-items:center; }
.kicker.dark { color:#725430; }
.intro-copy h2, .story-copy h2, .reviews-heading h2 { margin:0; font-size:clamp(3rem,4.2vw,5.5rem); line-height:.94; color:var(--paper-ink); }
.intro-copy h2 em, .story-copy h2 em, .reviews-heading h2 em { color:var(--purple); }
.intro-text { color:#554b45; max-width:560px; }
.intro-text p:first-child { font-family:var(--serif); font-size:1.35rem; line-height:1.38; color:#33292f; }
.print-stamp { border-left:1px solid rgba(47,31,43,.17); padding-left:28px; display:flex; align-items:center; gap:16px; color:#5d4a50; font-family:var(--serif); }
.print-stamp img { width:76px; height:76px; object-fit:contain; filter:grayscale(1) sepia(.2); mix-blend-mode:multiply; opacity:.84; }
.print-stamp span { font-size:1rem; line-height:1.35; }
.print-stamp strong { color:var(--purple); font-size:1.1rem; font-weight:600; }


.showreel-section {
  position:relative;
  z-index:2;
  overflow:hidden;
  isolation:isolate;
  padding:145px 0 165px;
  background:
    radial-gradient(circle at 78% 30%, rgba(82,25,87,.28), transparent 32%),
    radial-gradient(circle at 15% 70%, rgba(170,123,66,.08), transparent 28%),
    #0d0a0f;
}
.showreel-section::before {
  content:"";
  position:absolute;
  inset:0;
  z-index:-3;
  opacity:.13;
  pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.86' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.5'/%3E%3C/svg%3E");
  mix-blend-mode:soft-light;
}
.showreel-layout {
  display:grid;
  grid-template-columns:minmax(0,.92fr) minmax(340px,.72fr);
  align-items:center;
  gap:clamp(55px,8vw,130px);
}
.showreel-copy { position:relative; z-index:4; max-width:650px; }
.showreel-copy h2 { margin:0 0 28px; font-size:clamp(3.2rem,5vw,6.3rem); line-height:.91; color:var(--ivory); }
.showreel-copy h2 em { color:var(--ivory); }
.showreel-lede { margin:0 0 16px; font-family:var(--serif); font-size:clamp(1.3rem,1.7vw,1.7rem); line-height:1.35; color:#f0e8dc; }
.showreel-copy > p:last-of-type { max-width:560px; margin:0; color:rgba(255,255,255,.67); }
.showreel-meta { display:flex; flex-wrap:wrap; gap:9px; margin-top:34px; }
.showreel-meta span { border:1px solid rgba(196,154,103,.35); padding:8px 11px; font-size:.61rem; line-height:1; text-transform:uppercase; letter-spacing:.16em; color:rgba(255,255,255,.68); background:rgba(255,255,255,.025); }
.showreel-stage { position:relative; z-index:4; width:min(410px,100%); justify-self:center; padding:28px 18px 38px; }
.showreel-back-card { position:absolute; inset:8% -13% -5% 13%; z-index:-1; transform:translate3d(0,var(--py,0px),0) rotate(5.5deg); box-shadow:0 34px 80px rgba(0,0,0,.35); opacity:.84; }
.showreel-frame { margin:0; padding:13px 13px 52px; position:relative; color:var(--paper-ink); transform:translate3d(0,var(--py,0px),0) rotate(-1.7deg); box-shadow:0 44px 105px rgba(0,0,0,.52); }
.showreel-video-shell { position:relative; aspect-ratio:540/968; overflow:hidden; background:#100c12; }
.showreel-video { display:block; width:100%; height:100%; object-fit:cover; background:#100c12; }
.showreel-play { position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); min-width:154px; min-height:54px; border:1px solid rgba(239,231,216,.72); background:rgba(20,10,24,.78); backdrop-filter:blur(10px); color:#fff; display:flex; align-items:center; justify-content:center; gap:10px; padding:12px 18px; font:700 .66rem/1 var(--sans); text-transform:uppercase; letter-spacing:.15em; cursor:pointer; transition:background .2s ease, color .2s ease, transform .2s ease, opacity .2s ease; }
.showreel-play:hover, .showreel-play:focus-visible { background:var(--ivory); color:var(--purple-deep); transform:translate(-50%,-50%) scale(1.02); }
.showreel-play.is-hidden { opacity:0; pointer-events:none; }
.showreel-play-icon { width:22px; height:22px; display:grid; place-items:center; border:1px solid currentColor; border-radius:50%; font-size:.55rem; padding-left:1px; }
.showreel-frame figcaption { position:absolute; left:16px; right:16px; bottom:16px; display:flex; align-items:center; justify-content:center; gap:8px; font-family:var(--serif); font-size:.92rem; color:#4c3b45; letter-spacing:.02em; }
.showreel-frame figcaption span { color:var(--gold); }
.showreel-tape { position:absolute; z-index:8; width:112px; height:31px; top:-15px; left:50%; transform:translateX(-50%) rotate(2deg); background:rgba(209,190,160,.78); box-shadow:inset 0 1px rgba(255,255,255,.35); pointer-events:none; }
.showreel-handnote { position:absolute; right:-105px; bottom:7%; z-index:8; color:var(--ivory); font-family:var(--hand); font-size:1.15rem; line-height:1.15; transform:translate3d(0,var(--py,0px),0) rotate(8deg); opacity:.9; }
.showreel-handnote strong { display:block; font-size:1.55em; font-weight:500; color:var(--gold-soft); }
.showreel-ghost { position:absolute; z-index:-2; left:-.03em; top:50%; transform:translate3d(0,calc(-50% + var(--py,0px)),0); font-family:var(--serif); font-size:clamp(9rem,24vw,25rem); line-height:.7; letter-spacing:-.07em; color:rgba(255,255,255,.018); white-space:nowrap; user-select:none; }
.showreel-linework { position:absolute; z-index:-1; width:min(850px,62vw); aspect-ratio:1; right:-18%; top:-25%; border:1px solid rgba(196,154,103,.09); border-radius:50%; transform:translate3d(0,var(--py,0px),0); }
.showreel-linework::before, .showreel-linework::after { content:""; position:absolute; border:1px solid rgba(196,154,103,.065); border-radius:50%; }
.showreel-linework::before { inset:13%; }
.showreel-linework::after { inset:29%; }
.showreel-scrap { position:absolute; z-index:1; pointer-events:none; }
.showreel-scrap-one { left:2.5%; bottom:5%; width:195px; padding:17px 18px 18px; color:var(--paper-ink); transform:translate3d(0,var(--py,0px),0) rotate(-6deg); box-shadow:0 20px 45px rgba(0,0,0,.32); }
.showreel-scrap-one span { display:block; font-size:.57rem; letter-spacing:.28em; color:#7a5a31; font-weight:800; }
.showreel-scrap-one strong { display:block; margin-top:5px; font-family:var(--serif); font-size:1.05rem; line-height:1.05; font-weight:500; }
.showreel-scrap-two { right:2%; top:15%; padding:8px 12px; border-top:1px solid rgba(196,154,103,.4); border-bottom:1px solid rgba(196,154,103,.4); color:rgba(255,255,255,.34); font-size:.56rem; letter-spacing:.28em; transform:translate3d(0,var(--py,0px),0) rotate(3deg); }

.services-depth { position:relative; z-index:1; padding:120px 0 245px; background:var(--ink-2); overflow:clip; }
.services-bg { position:absolute; inset:-10% 0; z-index:-3; background:radial-gradient(circle at 82% 16%, rgba(87,25,92,.28), transparent 34%), radial-gradient(circle at 15% 75%, rgba(169,119,61,.08), transparent 30%), #111014; transform:translate3d(0,var(--py,0px),0); }
.services-heading { margin-bottom:60px; }
.services-heading h2, .experience-heading h2, .music-copy h2, .magic-circle-copy h2 { margin:0; font-size:clamp(3rem,4.6vw,5.8rem); line-height:.94; color:var(--ivory); }
.service-cards { display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(18px,2.5vw,34px); align-items:start; }
.service-card { background:#18141b; box-shadow:0 35px 80px rgba(0,0,0,.34); transform:translate3d(0,var(--py,0px),0) rotate(var(--r,0deg)); will-change:transform; position:relative; }
.service-card:nth-child(2) { margin-top:45px; }
.service-card:nth-child(3) { margin-top:12px; }
.service-image { aspect-ratio:4/4.25; overflow:hidden; background:#171219; }
.service-image img { width:100%; height:100%; object-fit:cover; transition:transform .8s cubic-bezier(.2,.7,.2,1); }
.service-card:hover .service-image img { transform:scale(1.035); }
.service-paper { color:var(--paper-ink); padding:34px 32px 38px; position:relative; min-height:300px; }
.service-paper::before { content:""; position:absolute; left:0; right:0; top:-24px; height:28px; background:inherit; clip-path:polygon(0 58%,6% 39%,12% 57%,18% 43%,25% 60%,31% 40%,38% 55%,45% 36%,52% 58%,59% 44%,66% 60%,73% 42%,81% 57%,88% 39%,94% 54%,100% 42%,100% 100%,0 100%); }
.service-no { position:absolute; right:26px; top:16px; font-family:var(--serif); font-size:3.8rem; color:rgba(59,18,63,.12); line-height:1; }
.service-label { margin:0 0 8px; text-transform:uppercase; letter-spacing:.22em; color:#79592e; font-size:.68rem; font-weight:700; }
.service-paper h3 { margin:0 0 12px; font-size:clamp(1.7rem,2.1vw,2.4rem); line-height:1.02; color:var(--purple-deep); max-width:90%; }
.service-paper p:last-child { margin:0; color:#5d514d; }
.depth-caption { margin-top:58px; color:rgba(255,255,255,.36); text-transform:uppercase; letter-spacing:.2em; font-size:.62rem; text-align:center; }

.story-paper { color:var(--paper-ink); padding:145px 0 135px; z-index:6; }
.deep-overlap { margin-top:-115px; }
.story-layout { display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(50px,7vw,105px); align-items:center; }
.story-collage { min-height:680px; position:relative; }
.news-scrap { position:absolute; left:-15px; top:12%; width:310px; min-height:270px; padding:28px 26px; color:#2d2827; background:#d7ccba; transform:translate3d(0,var(--py,0px),0) rotate(-7deg); box-shadow:0 18px 35px rgba(36,20,26,.14); column-count:2; column-gap:20px; font-family:var(--serif); font-size:.77rem; line-height:1.25; text-align:justify; }
.news-scrap strong { column-span:all; display:block; font-family:var(--sans); font-size:1.2rem; letter-spacing:.08em; border-top:4px solid #372d32; border-bottom:1px solid #372d32; padding:6px 0; margin-bottom:10px; }
.photo-print { position:absolute; margin:0; padding:10px 10px 38px; background:#f7f1e7; box-shadow:0 24px 55px rgba(43,29,35,.22); transform:translate3d(0,var(--py,0px),0) rotate(var(--r,0deg)); will-change:transform; }
.photo-print img { width:100%; height:100%; object-fit:cover; filter:saturate(.9) contrast(1.02); }
.photo-print.large { width:54%; height:470px; left:27%; top:4%; z-index:2; }
.photo-print.small.top { width:42%; height:280px; right:-2%; top:3%; z-index:3; }
.photo-print.small.bottom { width:44%; height:300px; left:11%; bottom:0; z-index:4; }
.tape { position:absolute; width:92px; height:28px; background:rgba(208,188,155,.72); z-index:7; box-shadow:0 1px rgba(255,255,255,.4) inset; }
.tape-one { left:46%; top:2%; transform:rotate(6deg); }
.tape-two { left:26%; bottom:14%; transform:rotate(-8deg); }
.hand-note { position:absolute; right:2%; bottom:4%; z-index:8; font-family:var(--hand); font-size:1.25rem; color:var(--purple); transform:translate3d(0,var(--py,0px),0) rotate(-6deg); line-height:1.2; }
.hand-note strong { font-size:1.55em; font-weight:500; }
.story-copy .lead { font-family:var(--serif); font-size:1.5rem; line-height:1.35; color:#34292f; }
.story-copy p:not(.kicker):not(.lead):not(.story-signoff) { color:#5a4e4a; }
.story-rule { width:74px; height:1px; background:var(--gold); margin:30px 0 20px; }
.story-signoff { font-family:var(--serif); color:var(--purple); font-size:1.25rem; }

.experience-section { background:var(--ink); padding:125px 0 150px; position:relative; z-index:3; }
.experience-heading { margin-bottom:55px; }
.experience-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.experience-tile { min-width:0; background:#151117; border:1px solid rgba(255,255,255,.08); overflow:hidden; }
.experience-image { aspect-ratio:4/3.5; overflow:hidden; transform:translate3d(0,var(--py,0px),0) scale(1.08); }
.experience-image img { width:100%; height:100%; object-fit:cover; }
.experience-body { color:var(--paper-ink); padding:32px 30px 36px; min-height:270px; }
.experience-body span { display:block; text-transform:uppercase; letter-spacing:.23em; font-size:.66rem; color:#76562f; margin-bottom:10px; font-weight:700; }
.experience-body h3 { color:var(--purple-deep); margin:0 0 12px; font-size:2rem; line-height:1.02; }
.experience-body p { color:#5b504b; margin:0; }

.music-edge { min-height:760px; position:relative; display:flex; align-items:center; overflow:hidden; isolation:isolate; background:#0c0a0e; }
.music-edge::after { z-index:-1; }
.music-photo { position:absolute; inset:-10%; z-index:-4; transform:translate3d(0,var(--py,0px),0) scale(1.1); }
.music-photo img { width:100%; height:100%; object-fit:cover; object-position:center; filter:saturate(.78) contrast(1.06) brightness(.64); }
.music-overlay { position:absolute; inset:0; z-index:-3; background:linear-gradient(90deg, rgba(8,6,10,.91) 0 44%, rgba(8,6,10,.40) 69%, rgba(8,6,10,.64)); }
.music-copy { width:min(var(--wrap),calc(100% - 48px)); }
.music-copy > * { max-width:650px; }
.music-copy p:last-child { color:rgba(255,255,255,.75); font-size:1.05rem; }
.record-label { position:absolute; right:clamp(35px,7vw,120px); bottom:70px; width:260px; height:260px; border-radius:50%; color:var(--purple-deep); display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; transform:translate3d(0,var(--py,0px),0) rotate(7deg); box-shadow:0 22px 55px rgba(0,0,0,.36); }
.record-label::before, .record-label::after { content:""; position:absolute; border-radius:50%; border:1px solid rgba(59,18,63,.18); }
.record-label::before { inset:18px; }
.record-label::after { inset:34px; }
.record-label span { font-size:.7rem; letter-spacing:.32em; color:#7c5a30; font-weight:700; z-index:1; }
.record-label strong { font-family:var(--serif); font-size:2rem; font-weight:500; line-height:1; margin:8px 0; z-index:1; }
.record-label small { font-size:.55rem; letter-spacing:.18em; z-index:1; }

.magic-circle-banner { min-height:560px; position:relative; overflow:hidden; display:flex; align-items:center; isolation:isolate; background:#160d1c; }
.magic-circle-photo { position:absolute; inset:-10% 0; z-index:-4; transform:translate3d(0,var(--py,0px),0) scale(1.05); }
.magic-circle-photo img { width:100%; height:100%; object-fit:cover; object-position:center; }
.magic-circle-shade { position:absolute; inset:0; z-index:-3; background:linear-gradient(90deg,rgba(22,11,28,.95) 0%,rgba(22,11,28,.83) 36%,rgba(22,11,28,.18) 70%); }
.magic-circle-copy { display:flex; align-items:center; gap:30px; }
.magic-circle-copy > img { width:120px; height:120px; object-fit:contain; filter:grayscale(1) brightness(8); opacity:.9; }
.magic-circle-copy > div { max-width:720px; }
.magic-circle-copy h2 { font-size:clamp(2.7rem,4vw,5rem); }
.magic-circle-copy p:last-child { max-width:580px; color:rgba(255,255,255,.72); }

.reviews { color:var(--paper-ink); padding:120px 0 130px; z-index:5; }
.reviews-heading { display:grid; grid-template-columns:1fr auto; align-items:end; column-gap:40px; margin-bottom:55px; }
.reviews-heading .kicker { grid-column:1/-1; }
.text-link { align-self:end; color:var(--purple); text-decoration:none; font-size:.8rem; font-weight:700; text-transform:uppercase; letter-spacing:.12em; padding-bottom:7px; border-bottom:1px solid rgba(59,18,63,.22); }
.text-link span { color:var(--gold); }
.reviews-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
.review-card { margin:0; min-height:280px; background:#251e27; color:#f7f0e7; padding:32px 28px; position:relative; transform:rotate(var(--r,0deg)); box-shadow:0 18px 30px rgba(41,26,35,.11); }
.review-card::after { content:"★★★★★"; display:block; color:var(--gold-soft); letter-spacing:.14em; font-size:.72rem; margin-top:20px; }
.quote-mark { font-family:var(--serif); font-size:5rem; color:var(--gold); line-height:.65; }
.review-card p { font-family:var(--serif); font-size:1.25rem; line-height:1.35; margin:14px 0 22px; }
.review-card footer { font-size:.72rem; text-transform:uppercase; letter-spacing:.14em; color:#cabfc7; }

.contact-section { min-height:760px; position:relative; display:grid; place-items:center; background:radial-gradient(circle at 20% 10%, #28112d, transparent 33%), #0d0a0f; padding:120px 24px; overflow:hidden; isolation:isolate; }
.contact-section::after { z-index:-1; }
.contact-paper { width:min(880px,100%); color:var(--paper-ink); padding:clamp(48px,7vw,86px); position:relative; z-index:5; box-shadow:0 45px 110px rgba(0,0,0,.42); text-align:center; transform:rotate(-.4deg); }
.contact-paper::before { content:""; position:absolute; width:150px; height:34px; top:-16px; left:50%; transform:translateX(-50%) rotate(1deg); background:rgba(211,193,167,.75); }
.contact-logo { width:min(520px,78%); height:auto; margin:0 auto 42px; }
.contact-paper h2 { color:var(--paper-ink); font-size:clamp(3rem,5vw,5.4rem); line-height:.92; margin:0 0 24px; }
.contact-paper h2 em { color:var(--purple); }
.contact-paper > p:not(.kicker) { max-width:650px; margin:0 auto 30px; color:#5a4d48; }
.contact-actions { display:flex; justify-content:center; flex-wrap:wrap; gap:12px; margin-bottom:30px; }
.button-dark { background:var(--purple-deep); color:#fff; border:1px solid var(--purple-deep); }
.button-dark:hover { background:#120715; }
.button-outline-dark { border:1px solid rgba(40,24,36,.34); color:var(--paper-ink); }
.button-outline-dark:hover { border-color:var(--purple); color:var(--purple); }
.contact-meta { display:flex; justify-content:center; flex-wrap:wrap; gap:9px 13px; font-size:.72rem; text-transform:uppercase; letter-spacing:.1em; color:#6d5f5b; }
.contact-meta a { text-decoration:none; }
.contact-meta a:hover { color:var(--purple); }
.contact-collage { position:absolute; inset:0; z-index:1; pointer-events:none; }
.contact-photo { position:absolute; margin:0; background:#f5ede0; padding:10px 10px 36px; box-shadow:0 30px 70px rgba(0,0,0,.4); transform:translate3d(0,var(--py,0px),0) rotate(var(--r,0deg)); }
.contact-photo img { width:100%; height:100%; object-fit:cover; filter:saturate(.8) brightness(.75); }
.contact-photo.one { width:min(310px,24vw); height:390px; left:3%; top:16%; }
.contact-photo.two { width:min(290px,23vw); height:390px; right:3%; bottom:10%; }

.site-footer { background:#070609; border-top:1px solid rgba(255,255,255,.07); padding:30px 0; color:rgba(255,255,255,.5); }
.footer-inner { display:flex; align-items:center; justify-content:space-between; gap:20px; font-size:.68rem; text-transform:uppercase; letter-spacing:.12em; }
.footer-mark { width:48px; height:48px; background:var(--ivory); padding:5px; display:grid; place-items:center; }
.footer-mark img { width:100%; height:100%; object-fit:contain; }

.parallax { will-change:transform; }
.reveal { opacity:0; transform:translateY(26px); transition:opacity .8s ease, transform .8s cubic-bezier(.2,.7,.2,1); }
.reveal.in-view { opacity:1; transform:translateY(0); }

@media (max-width: 1050px) {
  .site-nav { gap:16px; }
  .site-nav a:not(.nav-cta) { display:none; }
  .hero-content { margin-left:46%; width:51%; padding-right:30px; }
  .intro-grid { grid-template-columns:1fr 1fr; }
  .print-stamp { grid-column:1/-1; border-left:0; border-top:1px solid rgba(47,31,43,.15); padding:24px 0 0; }
  .showreel-layout { grid-template-columns:minmax(0,1fr) minmax(320px,.72fr); gap:55px; }
  .showreel-handnote { right:-45px; }
  .showreel-scrap-one { display:none; }
  .story-layout { grid-template-columns:1fr; }
  .story-collage { width:min(760px,100%); margin:auto; }
  .reviews-grid { grid-template-columns:repeat(2,1fr); }
  .contact-photo.one { left:-8%; }
  .contact-photo.two { right:-8%; }
}

@media (max-width: 780px) {
  .wrap { width:min(100% - 32px, var(--wrap)); }
  .site-header { min-height:74px; padding:10px 14px; }
  .brand-card { width:195px; min-width:0; padding:5px 12px 4px; }
  .brand-card img { height:44px; }
  .menu-toggle { display:flex; width:48px; height:48px; border:0; background:transparent; padding:12px; flex-direction:column; justify-content:center; gap:5px; cursor:pointer; }
  .menu-toggle span:not(.sr-only) { display:block; height:1px; width:100%; background:#fff; transition:transform .25s ease, opacity .25s ease; }
  .menu-toggle[aria-expanded="true"] span:nth-child(1) { transform:translateY(6px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] span:nth-child(2) { opacity:0; }
  .menu-toggle[aria-expanded="true"] span:nth-child(3) { transform:translateY(-6px) rotate(-45deg); }
  .site-nav { position:absolute; inset:74px 0 auto 0; background:rgba(10,8,11,.97); backdrop-filter:blur(18px); padding:28px 20px 32px; display:none; flex-direction:column; align-items:stretch; gap:0; border-top:1px solid rgba(255,255,255,.08); }
  .site-nav.is-open { display:flex; }
  .site-nav a:not(.nav-cta) { display:block; padding:13px 4px; border-bottom:1px solid rgba(255,255,255,.08); }
  .site-nav .nav-cta { text-align:center; margin-top:18px; }

  .hero { min-height:800px; height:auto; padding:120px 0 100px; align-items:flex-end; }
  .hero-media { inset:0; transform:none !important; }
  .hero-media img { object-position:37% center; }
  .hero-vignette { background:linear-gradient(180deg, rgba(8,7,11,.08) 0, rgba(8,7,11,.14) 36%, rgba(8,7,11,.88) 64%, #08070b 100%); }
  .hero-content { width:auto; margin:0; padding:0 20px; max-width:700px; }
  .hero h1 { font-size:clamp(3.25rem,15vw,5.2rem); max-width:620px; }
  .hero-copy { font-size:.95rem; }
  .hero-note { display:none; }
  .scroll-cue { display:none; }

  .intro-paper { padding:80px 0 90px; }
  .intro-grid { grid-template-columns:1fr; }
  .print-stamp { grid-column:auto; }

  .showreel-section { padding:105px 0 125px; }
  .showreel-layout { grid-template-columns:1fr; gap:58px; }
  .showreel-copy { max-width:none; }
  .showreel-stage { width:min(360px,88vw); padding:18px 10px 22px; }
  .showreel-frame { transform:rotate(-1deg) !important; padding:10px 10px 46px; }
  .showreel-back-card { inset:8% -7% -4% 9%; transform:rotate(4deg) !important; }
  .showreel-handnote { right:-2px; bottom:-28px; transform:rotate(5deg) !important; font-size:.95rem; }
  .showreel-scrap-two { display:none; }
  .showreel-ghost { top:63%; font-size:31vw; }
  .showreel-linework { width:105vw; right:-55%; top:34%; }
  .services-depth { padding:95px 0 180px; }
  .service-cards { grid-template-columns:1fr; gap:28px; }
  .service-card:nth-child(n) { margin-top:0; transform:rotate(var(--r,0deg)) !important; }
  .service-image { aspect-ratio:4/3; }
  .service-paper { min-height:0; }
  .depth-caption { display:none; }
  .deep-overlap { margin-top:-70px; }

  .story-paper { padding:110px 0 105px; }
  .story-collage { min-height:560px; }
  .news-scrap { width:250px; left:-6%; top:13%; }
  .photo-print.large { width:58%; height:390px; left:25%; }
  .photo-print.small.top { width:43%; height:230px; right:-2%; }
  .photo-print.small.bottom { width:47%; height:250px; left:6%; }
  .hand-note { right:0; bottom:2%; font-size:1rem; }

  .experience-section { padding:100px 0 120px; }
  .experience-grid { grid-template-columns:1fr; gap:24px; }
  .experience-image { aspect-ratio:16/10; transform:none !important; }
  .experience-body { min-height:0; }

  .music-edge { min-height:720px; align-items:flex-end; padding-bottom:80px; }
  .music-photo { inset:0; transform:none !important; }
  .music-photo img { object-position:42% center; }
  .music-overlay { background:linear-gradient(180deg,rgba(8,6,10,.18),rgba(8,6,10,.58) 45%,rgba(8,6,10,.95)); }
  .record-label { width:180px; height:180px; right:18px; top:90px; bottom:auto; }
  .record-label strong { font-size:1.35rem; }

  .magic-circle-banner { min-height:600px; align-items:flex-end; padding-bottom:70px; }
  .magic-circle-photo { inset:0; transform:none !important; }
  .magic-circle-photo img { object-position:65% center; }
  .magic-circle-shade { background:linear-gradient(180deg,rgba(22,11,28,.2),rgba(22,11,28,.94) 70%); }
  .magic-circle-copy { align-items:flex-start; }
  .magic-circle-copy > img { width:84px; height:84px; }

  .reviews { padding:105px 0 110px; }
  .reviews-heading { grid-template-columns:1fr; gap:20px; }
  .reviews-grid { grid-template-columns:1fr; }
  .review-card { min-height:0; }

  .contact-section { padding:100px 16px; }
  .contact-collage { opacity:.5; }
  .contact-photo.one { width:190px; height:250px; left:-80px; top:4%; }
  .contact-photo.two { width:190px; height:250px; right:-80px; bottom:2%; }
  .contact-paper { padding:48px 22px; }
  .contact-logo { width:88%; }
  .contact-meta { flex-direction:column; }
  .contact-meta span { display:none; }
  .footer-inner { flex-direction:column; text-align:center; }
}

@media (max-width: 480px) {
  .hero-actions .button, .contact-actions .button { width:100%; }
  .story-collage { min-height:470px; }
  .news-scrap { width:210px; font-size:.66rem; }
  .photo-print.large { width:62%; height:315px; left:30%; }
  .photo-print.small.top { width:47%; height:190px; }
  .photo-print.small.bottom { width:49%; height:200px; bottom:4%; }
  .tape { width:70px; height:22px; }
  .hand-note { display:none; }
  .music-edge { min-height:660px; }
  .record-label { width:150px; height:150px; top:84px; }
  .record-label strong { font-size:1.05rem; }
  .record-label small { max-width:95px; }
  .magic-circle-copy { display:block; }
  .magic-circle-copy > img { margin-bottom:20px; }
}

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