@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&family=Instrument+Serif:ital@0;1&display=swap');

:root {
  --bg: #0b0b0c;
  --panel: #111214;
  --panel-2: #17181a;
  --text: #f3f0e9;
  --muted: #a4a29e;
  --line: rgba(255,255,255,.12);
  --accent: #cf9f41;
  --accent-2: #f2dfb3;
  --paper: #ece9e2;
  --ink: #111214;
  --radius: 28px;
  --shell: min(1240px, calc(100vw - 48px));
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--bg);
  color: var(--text);
  font-family: "DM Sans", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
a { color: inherit; text-decoration: none; }
button { font: inherit; }

.noise {
  position: fixed; inset: 0; pointer-events: none; opacity: .035; z-index: 999;
  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='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.9'/%3E%3C/svg%3E");
}
.shell { width: var(--shell); margin-inline: auto; }
.serif { font-family: "Instrument Serif", Georgia, serif; font-weight: 400; font-style: italic; }

.site-header {
  width: min(1340px, calc(100vw - 32px));
  margin: 16px auto 0;
  padding: 10px 10px 10px 18px;
  min-height: 64px;
  display: flex; align-items: center; justify-content: space-between;
  position: sticky; top: 14px; z-index: 100;
  background: rgba(16,17,18,.78);
  border: 1px solid var(--line);
  border-radius: 18px;
  backdrop-filter: blur(18px) saturate(140%);
  -webkit-backdrop-filter: blur(18px) saturate(140%);
}
.brand { display: inline-flex; align-items: center; gap: 11px; font-size: 12px; letter-spacing: .12em; font-weight: 600; }
.brand-logo { width: 38px; height: 38px; object-fit: cover; border-radius: 50%; display: block; box-shadow: 0 0 0 1px rgba(207,159,65,.35); }
.site-nav { display: flex; align-items: center; gap: 28px; font-size: 14px; color: #d2d0cb; }
.site-nav > a:not(.nav-pill):hover { color: white; }
.nav-pill { background: var(--text); color: var(--ink); padding: 13px 17px; border-radius: 12px; font-weight: 600; }
.nav-pill span { margin-left: 10px; }
.menu-toggle { display: none; }

.hero { min-height: 820px; padding: 105px 0 52px; position: relative; display: flex; flex-direction: column; justify-content: space-between; }
.eyebrow, .kicker { color: #a8a6a0; font-size: 12px; letter-spacing: .13em; text-transform: uppercase; }
.hero-title { font-size: clamp(68px, 9.5vw, 150px); line-height: .79; letter-spacing: -.055em; margin: 58px 0 48px; font-weight: 500; max-width: 1130px; position: relative; z-index: 2; }
.hero-title .serif { color: #cbc8c0; }
.hero-bottom { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: end; position: relative; z-index: 2; }
.hero-bottom > p { max-width: 580px; font-size: 19px; line-height: 1.55; color: #bbb9b4; margin: 0; }
.hero-actions { display: flex; justify-content: flex-end; align-items: center; gap: 28px; }
.button { display: inline-flex; align-items: center; gap: 24px; padding: 16px 20px; border-radius: 14px; font-size: 14px; font-weight: 600; }
.button-primary { background: var(--accent); color: #15160f; }
.button-primary:hover span { transform: translateY(3px); }
.button span, .text-link span, .card-link b, .contact-email span { transition: transform .2s ease; display: inline-block; }
.text-link { color: #d5d2cc; font-size: 14px; border-bottom: 1px solid #555; padding-bottom: 5px; }

.hero-art { position: absolute; width: 650px; height: 650px; right: -110px; top: 85px; opacity: .82; pointer-events: none; }
.orb { position: absolute; border-radius: 50%; filter: blur(1px); }
.orb-a { width: 410px; height: 410px; right: 70px; top: 65px; background: radial-gradient(circle at 35% 35%, rgba(207,159,65,.54), rgba(207,159,65,.04) 60%, transparent 72%); filter: blur(20px); }
.orb-b { width: 330px; height: 330px; right: 190px; top: 195px; background: radial-gradient(circle at 40% 35%, rgba(242,223,179,.28), rgba(242,223,179,.03) 62%, transparent 75%); filter: blur(24px); }
.grid-plane { position: absolute; width: 440px; height: 440px; right: 30px; top: 100px; transform: perspective(620px) rotateX(64deg) rotateZ(-22deg); background-image: linear-gradient(rgba(255,255,255,.10) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.10) 1px, transparent 1px); background-size: 34px 34px; mask-image: radial-gradient(circle, #000 28%, transparent 72%); }
.logo-showcase { position:absolute; right:78px; top:112px; width:360px; height:360px; border-radius:38px; overflow:hidden; border:1px solid rgba(207,159,65,.34); box-shadow:0 28px 90px rgba(0,0,0,.35); transform:rotate(2deg); background:#f5ead8; }
.logo-showcase img { width:100%; height:100%; object-fit:cover; display:block; }

.ticker { overflow: hidden; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 20px 0; color: #8e8c87; }
.ticker-track { display: flex; gap: 34px; align-items: center; width: max-content; animation: ticker 34s linear infinite; font-size: 13px; letter-spacing: .13em; }
.ticker-track i { color: var(--accent); font-style: normal; }
@keyframes ticker { to { transform: translateX(-50%); } }

.section-pad { padding-top: 140px; padding-bottom: 140px; }
.section-intro { display: grid; grid-template-columns: 1fr 2.15fr; gap: 60px; margin-bottom: 70px; align-items: start; }
.section-intro h2, .about-copy h2, .contact h2 { margin: 0; font-size: clamp(52px, 6.2vw, 90px); line-height: .92; letter-spacing: -.045em; font-weight: 500; }
.section-intro p { max-width: 560px; margin: 32px 0 0; color: var(--muted); font-size: 17px; line-height: 1.65; }

.about { background: var(--paper); color: var(--ink); }
.about-grid { display: grid; grid-template-columns: .8fr 2.2fr; gap: 80px; }
.about .kicker { color: #62625f; }
.big-c { margin-top: 110px; font-family:"Instrument Serif",serif; font-size: clamp(150px, 22vw, 330px); line-height:.58; color:#cbccc6; }
.about-copy .serif { color:#62645d; }
.about-copy .lead { font-size: 25px; line-height:1.45; max-width:750px; margin:55px 0 26px; }
.about-copy > p:not(.lead) { font-size:17px; line-height:1.7; max-width:760px; color:#5b5b58; }
.principles { display:grid; grid-template-columns:repeat(3,1fr); gap:0; border-top:1px solid rgba(0,0,0,.15); margin-top:75px; }
.principles > div { padding: 24px 30px 0 0; border-right:1px solid rgba(0,0,0,.12); min-height:220px; }
.principles > div + div { padding-left:30px; }
.principles > div:last-child { border-right:0; }
.principles span { font-size:11px; color:#777; }
.principles h4 { font-size:18px; margin:34px 0 10px; }
.principles p { color:#666; font-size:14px; line-height:1.55; }

.contact { padding-top: 130px; padding-bottom: 130px; }
.contact-panel { border: 1px solid var(--line); border-radius: 34px; padding: 70px; min-height: 560px; display:flex; flex-direction:column; justify-content:space-between; background: radial-gradient(circle at 75% 10%, rgba(207,159,65,.16), transparent 22%), radial-gradient(circle at 90% 80%, rgba(184,196,255,.12), transparent 28%), var(--panel); }
.contact h2 { margin-top: 70px; max-width: 900px; }
.contact p { color:var(--muted); max-width:520px; line-height:1.6; margin: 30px 0 40px; }
.contact-email { font-size: clamp(22px, 3vw, 42px); display:inline-flex; align-items:center; gap:20px; border-bottom:1px solid #575757; padding-bottom:10px; width:fit-content; letter-spacing:-.03em; }
.contact-email:hover span { transform: translate(5px,-5px); }

.footer { border-top:1px solid var(--line); padding: 34px 0 42px; display:grid; grid-template-columns:1.1fr 1fr 1fr; gap:30px; align-items:center; color:#8f8e89; font-size:12px; }
.footer-brand { color:var(--text); }
.footer-right { display:flex; justify-content:flex-end; gap:28px; }
.footer-right a { color:#c7c4bf; }

.reveal { opacity: 0; transform: translateY(22px); transition: opacity .8s cubic-bezier(.2,.7,.2,1), transform .8s cubic-bezier(.2,.7,.2,1); }
.reveal.is-visible { opacity:1; transform:none; }

@media (max-width: 900px) {
  :root { --shell: min(100% - 30px, 760px); --radius: 22px; }
  .site-header { width: calc(100vw - 20px); top:10px; margin-top:10px; }
  .menu-toggle { display:flex; width:42px; height:42px; border:0; background:transparent; flex-direction:column; justify-content:center; gap:6px; padding:10px; }
  .menu-toggle span { width:100%; height:1px; background:#fff; transition:.25s; }
  .menu-toggle[aria-expanded="true"] span:first-child { transform:translateY(3.5px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] span:last-child { transform:translateY(-3.5px) rotate(-45deg); }
  .site-nav { position:absolute; top:72px; left:0; right:0; padding:18px; background:#111214; border:1px solid var(--line); border-radius:18px; flex-direction:column; align-items:stretch; gap:4px; opacity:0; pointer-events:none; transform:translateY(-8px); transition:.2s; }
  .site-nav.open { opacity:1; pointer-events:auto; transform:none; }
  .site-nav > a { padding:13px 8px; }
  .nav-pill { margin-top:7px; padding:15px!important; }
  .hero { min-height: 760px; padding-top:85px; }
  .hero-title { font-size: clamp(62px, 16.5vw, 108px); margin-top:42px; }
  .hero-bottom { grid-template-columns:1fr; gap:30px; }
  .hero-actions { justify-content:flex-start; flex-wrap:wrap; }
  .hero-art { width:300px; height:300px; right:-55px; top:130px; opacity:.58; }
  .logo-showcase { width:220px; height:220px; right:28px; top:26px; border-radius:24px; }
  .hero-art .grid-plane { width:260px; height:260px; right:10px; top:15px; }
  .hero-art .orb-a { width:230px; height:230px; right:5px; top:5px; }
  .hero-art .orb-b { width:190px; height:190px; right:80px; top:90px; }
  .section-pad { padding-top:95px; padding-bottom:95px; }
  .section-intro, .about-grid { grid-template-columns:1fr; gap:36px; }
  .section-intro h2, .about-copy h2, .contact h2 { font-size: clamp(48px, 12vw, 72px); }
  .big-c { display:none; }
  .principles { grid-template-columns:1fr; }
  .principles > div, .principles > div + div { padding:24px 0; border-right:0; border-bottom:1px solid rgba(0,0,0,.12); min-height:0; }
  .principles > div:last-child { border-bottom:0; }
  .principles h4 { margin-top:16px; }
  .contact-panel { padding:38px 26px; min-height:530px; }
  .footer { grid-template-columns:1fr; align-items:start; }
  .footer-right { justify-content:flex-start; flex-wrap:wrap; }
}

@media (max-width: 560px) {
  .brand-name { font-size:10px; }
  .brand-logo { width:34px; height:34px; }
  .hero { min-height: 700px; padding-bottom:38px; }
  .hero-title { font-size: clamp(55px, 17vw, 76px); line-height:.85; }
  .hero-bottom > p { font-size:16px; }
  .hero-actions { align-items:flex-start; flex-direction:column; gap:20px; }
  .button { width:100%; justify-content:space-between; }
  .about-copy .lead { font-size:21px; }
  .contact { padding-top:80px; padding-bottom:80px; }
  .contact h2 { margin-top:50px; }
  .contact-email { font-size:21px; }
}

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

/* v2.3: Carlton Film aerial services feature */
.aerial-feature{margin-bottom:110px;min-height:480px;display:grid;grid-template-columns:1.08fr 1fr;overflow:hidden;border:1px solid rgba(207,159,65,.25);border-radius:30px;background:linear-gradient(130deg,#17191a,#0c0d0f 62%)}
.aerial-feature-copy{padding:clamp(30px,5vw,76px);display:flex;flex-direction:column;align-items:flex-start;justify-content:center;position:relative;z-index:2}
.aerial-feature h2{font-size:clamp(55px,6vw,90px);line-height:.87;letter-spacing:-.052em;font-weight:500;margin:37px 0 24px}
.aerial-feature h2 .serif{color:#dcc6a2}
.aerial-feature p{max-width:470px;color:#aaa8a2;font-size:17px;line-height:1.7;margin:0 0 34px}
.aerial-feature-art{position:relative;min-height:410px;overflow:hidden;background:radial-gradient(ellipse at center,rgba(207,159,65,.16),transparent 57%)}
.aerial-scan-grid{position:absolute;inset:-45%;background-image:linear-gradient(rgba(207,159,65,.13) 1px,transparent 1px),linear-gradient(90deg,rgba(207,159,65,.13) 1px,transparent 1px);background-size:30px 30px;transform:perspective(400px) rotateX(48deg) rotateZ(-12deg);mask-image:radial-gradient(ellipse,#000 20%,transparent 65%)}
.aerial-scan-ring{position:absolute;top:50%;left:50%;border:1px solid rgba(207,159,65,.26);border-radius:50%;transform:translate(-50%,-50%)}
.aerial-scan-ring.ring-one{width:290px;height:290px}.aerial-scan-ring.ring-two{width:420px;height:420px}
.aerial-drone-icon{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(72%,330px);filter:drop-shadow(0 0 22px rgba(207,159,65,.23))}
.aerial-visual-label{position:absolute;left:32px;color:#d0ba92;font-size:11px;letter-spacing:.16em;font-weight:600}
.aerial-visual-label.top{top:33px}.aerial-visual-label.bottom{bottom:33px}
.film-drone-link{margin-top:38px;padding:27px 30px;border:1px solid rgba(207,159,65,.32);border-radius:22px;background:linear-gradient(110deg,rgba(207,159,65,.1),rgba(255,255,255,.018));display:flex;justify-content:space-between;align-items:center;gap:28px;transition:transform .25s,border-color .25s}
.film-drone-link:hover{transform:translateY(-3px);border-color:rgba(207,159,65,.65)}
.film-drone-link span{display:flex;flex-direction:column;gap:10px}
.film-drone-link small{font-size:11px;color:#cf9f41;letter-spacing:.13em}
.film-drone-link strong{font-size:clamp(24px,3vw,38px);font-weight:500;letter-spacing:-.035em}
.film-drone-link em{font-size:14px;font-style:normal;color:var(--muted)}
.film-drone-link b{font-size:34px;font-weight:400;color:var(--accent)}
@media(max-width:900px){.aerial-feature{grid-template-columns:1fr;margin-bottom:80px}.aerial-feature-copy{padding:44px 30px}.aerial-feature-art{min-height:320px}.aerial-feature h2{margin-top:26px}}
@media(max-width:560px){.aerial-feature{border-radius:22px}.aerial-feature h2{font-size:56px}.aerial-feature-art{min-height:285px}.aerial-scan-ring.ring-two{width:340px;height:340px}.aerial-visual-label{left:22px}}

/* -------------------------------------------------------------
   v2.4 — Ventures / Premium Cards. All styles scoped to the
   refreshed section; other Carlton Company pages remain intact.
   ------------------------------------------------------------- */
.ventures-premium { padding-top: 110px; padding-bottom: 125px; }
.ventures-premium-header { text-align: center; margin: 0 auto 52px; }
.ventures-premium-eyebrow { display: flex; align-items: center; justify-content: center; gap: 26px; }
.ventures-premium-eyebrow span { width: 62px; height: 1px; background: linear-gradient(to right, transparent, #d6ac64); }
.ventures-premium-eyebrow span:last-child { transform: scaleX(-1); }
.ventures-premium-eyebrow p { color: #e4bf7f; margin: 0; font-weight: 600; font-size: 12px; letter-spacing: .31em; }
.ventures-premium-header h2 { font-family: 'Instrument Serif', Georgia, serif; font-weight: 400; font-size: clamp(34px, 4.2vw, 50px); letter-spacing: -.015em; line-height: 1.07; margin: 17px 0 7px; }
.ventures-premium-header > p { color: #aaa8a5; font-size: 15px; line-height: 1.5; margin: 0; }
.ventures-premium-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
.venture-feature {
  position: relative; display: flex; isolation: isolate; flex-direction: column;
  min-height: 384px; overflow: hidden; padding: 33px 39px 36px;
  border: 1px solid rgba(221,194,147,.31); border-radius: 25px;
  background: radial-gradient(ellipse at 95% 100%, rgba(188,143,83,.085), transparent 55%), #101214;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.025), 0 18px 65px rgba(0,0,0,.16);
  transition: border-color .3s ease, box-shadow .3s ease, transform .3s ease;
}
.venture-feature:hover, .venture-feature:focus-visible {
  border-color: rgba(231,195,128,.66);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.04), 0 24px 76px rgba(0,0,0,.29);
  transform: translateY(-4px);
}
.venture-feature:focus-visible { outline: 2px solid #f1d8aa; outline-offset: 3px; }
.venture-feature-art { position: absolute; z-index: -2; top: 0; right: 0; bottom: 0; width: 67%; overflow: hidden; pointer-events: none; -webkit-mask-image: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.35) 19%, #000 55%); mask-image: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.35) 19%, #000 55%); }
.venture-feature-art img { display:block; width: 100%; height: 100%; object-fit: cover; object-position: 52% 50%; transition: transform .55s cubic-bezier(.2,.65,.2,1); }
.venture-feature:hover .venture-feature-art img { transform: scale(1.045); }
.venture-feature::after { content:''; position:absolute; inset:0; z-index:-1; pointer-events:none; background:linear-gradient(90deg, rgba(10,12,14,.25) 0%, rgba(10,12,14,.16) 39%, transparent 78%); }
.venture-feature-number { font-size: 14px; line-height: 1; color: #e9c581; font-weight: 500; letter-spacing: .12em; }
.venture-feature-copy { margin-top: auto; max-width: 295px; position:relative; z-index: 1; }
.venture-feature-copy h3 { font-family: 'Instrument Serif', Georgia, serif; font-size: clamp(35px, 3.25vw, 44px); line-height: 1.05; letter-spacing: -.022em; font-weight: 400; margin: 0 0 20px; color:#fff9ee; }
.venture-feature-copy p { color: #c0bcb5; font-size: 14.5px; line-height: 1.67; margin: 0; }
.venture-feature-link { display: inline-flex; align-items: center; gap: 14px; color: #ebc582; margin-top: 34px; padding: 0 0 7px; border-bottom:1px solid #c99c57; font-size: 14px; line-height: 1.2; transition: color .2s ease; }
.venture-feature-link > span { display: inline-block; font-size: 18px; line-height: .8; transition: transform .25s ease; }
.venture-feature:hover .venture-feature-link > span { transform: translate(3px,-3px); }
.venture-feature--studio .venture-feature-copy { max-width: 280px; }
.venture-feature--founder { grid-column: 1 / -1; width: min(80%, 990px); justify-self: center; min-height: 338px; padding: 33px 40px 36px; margin-top: 6px; }
.venture-feature--founder .venture-feature-art { width: 66%; }
.venture-feature--founder .venture-feature-art img { object-position: 58% 50%; }
.venture-feature--founder .venture-feature-copy { max-width: 325px; }
.venture-feature--founder .venture-feature-copy h3 { margin-bottom: 8px; }
.venture-feature-role { display:block; color:#dbb978; font-weight:600; letter-spacing:.22em; font-size:10px; margin-bottom:17px; }
.venture-feature--founder .venture-feature-link { margin-top: 28px; }

@media (max-width: 1040px) {
  .venture-feature { padding: 30px 29px 32px; min-height: 394px; }
  .venture-feature-copy { max-width: 255px; }
  .venture-feature--studio .venture-feature-copy { max-width: 248px; }
  .venture-feature-copy h3 { font-size: 38px; }
  .venture-feature--founder { width: 86%; }
}
@media (max-width: 760px) {
  .ventures-premium { padding-top: 85px; padding-bottom: 95px; }
  .ventures-premium-header { margin-bottom: 34px; }
  .ventures-premium-grid { grid-template-columns: 1fr; gap: 18px; }
  .venture-feature, .venture-feature--founder { grid-column:auto; justify-self:stretch; width:100%; margin-top:0; min-height: 410px; padding: 30px 30px 33px; }
  .venture-feature .venture-feature-art { width: 70%; }
  .venture-feature-copy, .venture-feature--studio .venture-feature-copy, .venture-feature--founder .venture-feature-copy { max-width: 320px; }
  .venture-feature-copy h3 { font-size:42px; }
}
@media (max-width: 520px) {
  .ventures-premium-header h2 { font-size: 34px; }
  .ventures-premium-header > p { max-width: 305px; margin-inline:auto; font-size: 14px; }
  .ventures-premium-eyebrow { gap: 14px; }
  .ventures-premium-eyebrow span { width: 38px; }
  .ventures-premium-grid { gap: 16px; }
  .venture-feature, .venture-feature--founder { min-height: 492px; padding: 27px 26px 28px; border-radius: 22px; }
  .venture-feature .venture-feature-art { width: 100%; height: 58%; top: auto; bottom: 0; -webkit-mask-image:linear-gradient(180deg,transparent 0%, rgba(0,0,0,.65) 24%,#000 66%); mask-image:linear-gradient(180deg,transparent 0%, rgba(0,0,0,.65) 24%,#000 66%); opacity: .88; }
  .venture-feature::after { background: linear-gradient(180deg,rgba(10,12,14,.4),rgba(10,12,14,.36) 48%,rgba(10,12,14,.15) 80%,rgba(10,12,14,.26)); }
  .venture-feature-copy { margin-top: 44px; margin-bottom: auto; }
  .venture-feature-copy h3 { font-size:38px; margin-bottom: 13px; }
  .venture-feature-copy p { font-size: 14px; line-height: 1.53; max-width: 285px; }
  .venture-feature-link, .venture-feature--founder .venture-feature-link { margin-top: 20px; font-size: 13px; }
  .venture-feature--founder .venture-feature-copy h3 { margin-bottom: 8px; }
  .venture-feature-role { margin-bottom: 12px; }
}
@media (prefers-reduced-motion: reduce) { .venture-feature-art img { transition:none; } }
