/* Black, warm white, and tungsten. Loaded after the earlier colour treatments. */
:root {
  color-scheme:dark;
  --bg:#050505; --surface:#111110; --surface-soft:#191816; --text:#f0eee9;
  --muted:#b4b0a8; --primary:#e8c28c; --primary-2:#efd5ae; --primary-3:#e8c28c;
  --accent:#e8c28c; --border:#302d27; --border-strong:#494236;
  --highlight-soft:#181714; --shadow:none; --shadow-strong:0 20px 60px #0005;
  --electric-pink:#cdbda6; --tangerine:#e8c28c; --aqua:#e8c28c; --violet:#b6afa4;
}
body.black-theme { background:#050505; color:var(--text); }
body.black-theme ::selection { background:#e8c28c; color:#111; }
body.black-theme :is(h1,h2,h3,h4) { color:#f0eee9; }
body.black-theme :is(.section-intro,.proof-text,.proof-list,.marketing-list,.hero-text) { color:#b4b0a8; }
body.black-theme :is(.site-header,.site-nav),body.black-theme.home-page .site-header {
  background:#080808f5; border-color:#282623; box-shadow:none;
}
body.black-theme .site-logo-image { filter:brightness(0) invert(1); }
body.black-theme .site-nav a { color:#b4b0a8; }
body.black-theme .site-nav a:is(.active,:hover) { color:#f0eee9; }
body.black-theme .site-nav a::after { background:#e8c28c; }
body.black-theme :is(.motion-toggle,.menu-toggle,.replay-intro) { color:#c2bcb2; background:transparent; border-color:#3b3731; }
body.black-theme .replay-intro:hover { color:#fff; }
body.black-theme .scroll-progress { background:#e8c28c; }
body.black-theme .skip-link { background:#e8c28c; color:#111; }
body.black-theme :is(a,button):focus-visible { outline-color:#e8c28c; }
body.black-theme .btn { box-shadow:none; }
body.black-theme :is(.btn-nav,.btn-primary,.btn-light) { background:#eee8dd; color:#14120e; border-color:#eee8dd; }
body.black-theme :is(.btn-nav,.btn-primary,.btn-light):hover { background:#e8c28c; color:#111; border-color:#e8c28c; box-shadow:0 6px 24px #e8c28c20; }
body.black-theme :is(.btn-secondary,.btn-outline-primary,.btn-outline-light,.btn-proof-secondary,.contact-link-btn) { color:#e7e1d6; background:transparent; border:1px solid #565046; }
body.black-theme :is(.btn-secondary,.btn-outline-primary,.btn-proof-secondary,.contact-link-btn):hover { color:#fff; border-color:#bca582; background:#ffffff09; }
body.black-theme .studio-hero { background:#050505; padding-top:45px; }
body.black-theme .studio-hero::before { display:none; }
body.black-theme .studio-hero::after { background-size:90px 90px; opacity:.35; }
body.black-theme .studio-title { color:#f4f1eb; }
body.black-theme .studio-title em,body.black-theme .page-colour-title {
  background:none; -webkit-text-fill-color:#e8c28c; color:#e8c28c; animation:none;
}
body.black-theme .studio-title em::after { background:#8c734f; height:2px; }
body.black-theme .studio-eyebrow { color:#c0a783; }
body.black-theme .studio-eyebrow::before { background:#edc68e; box-shadow:0 0 18px #edc68e44; }
body.black-theme :is(.studio-intro,.studio-footnote,.hero-bottom) { color:#b4b0a8; }
body.black-theme .hero-bottom { border-color:#302d27; margin-top:30px; }
body.black-theme .hero-bottom b { color:#d6d0c5; }
body.black-theme .hero-bottom a { color:#d9bd94; }
body.black-theme .studio-footnote span+span::before { color:#8c734f; }
body.black-theme .colour-strip { background:#0b0b0a; color:#bcb5a9; border-block:1px solid #302d27; }
body.black-theme .moving-strip .spark { color:#8c734f; }
body.black-theme :is(.section,.section:not(.alt-bg):not(.cta-band)) { background:#080808; }
body.black-theme .alt-bg,body.black-theme:not(.home-page) .alt-bg { background:#0c0c0b; }
body.black-theme :is(.section-label,.proof-kicker) { color:#bfa47d; }
body.black-theme :is(.service-visual-card,.task-card,.step-card,.demo-card,.marketing-service-card,.audience-card,.trust-card,.contact-card,.contact-panel,.feature-card,.soft-card,.note-card,.stacked-item,.proof-card,.premium-gradient) {
  color:#eee8dd; background:#111110; border:1px solid #302d27; box-shadow:none;
}
body.black-theme .proof-anchor { background:#151310; border-color:#493d2e; }
body.black-theme :is(.service-visual-card,.task-card,.step-card,.demo-card,.marketing-service-card,.audience-card,.stacked-item):hover {
  background:#181613; border-color:#806744; box-shadow:0 16px 45px #0006;
}
body.black-theme :is(.proof-copy h3,.demo-card h3,.section h2) { color:#f0eee9; }
body.black-theme .proof-list li { color:#b4b0a8; }
body.black-theme .proof-image-card { border-color:#34312a; background:#161512; box-shadow:0 20px 40px #0005; }
body.black-theme .proof-image-caption { color:#e5d9c6; background:#0a0908e8; border-color:#4e4232; }
body.black-theme :is(.service-image-wrap,.demo-card-media) { background:#171614; }
body.black-theme .service-card-image { filter:grayscale(1) brightness(.65); }
body.black-theme :is(.demo-tag,.demo-type,.contact-chip,.badge-chip) { color:#cbb99f; background:#1d1a16; border-color:#4a4032; }
body.black-theme .step-card .step-number { color:#e8c28c; background:#2d251b; box-shadow:none; }
body.black-theme .placeholder-note { background:#191714; border-color:#51432f; }
body.black-theme :is(.contact-card,.contact-panel,.contact-detail) a { color:#e8c28c; }
body.black-theme .about-copy-list .stacked-item { border-left-color:#8c734f; }
body.black-theme .cta-band { background:#14120f; border-block:1px solid #3a3023; animation:none; }
body.black-theme .cta-band::after { color:#d4b17c0b; }
body.black-theme .cta-band :is(h2,p) { color:#eee8dd; }
body.black-theme .site-footer { background:#050505; border-top:1px solid #282623; }
body.black-theme .footer-social-link { background:#ffffff03; border-color:#302d27; }
body.black-theme .page-hero { background:#050505; }
body.black-theme .page-hero::before { opacity:.3; }
body.black-theme .page-hero .page-hero-copy { max-width:min(75%,900px); }
body.black-theme .page-hero :is(.section-label,.badge-chip) { color:#d7bd99; border-color:#4e4232; }
body.black-theme .page-hero .page-hero-text { color:#b4b0a8; }
body.black-theme .transition-curtain i { background:#121212; }
body.black-theme .transition-curtain i:nth-child(2),body.black-theme .transition-curtain i:nth-child(4) { background:#25221e; }
body.black-theme .transition-curtain i:nth-child(3) { background:#383127; }
body.black-theme .pointer-trail i { background:#e8c28c; }

/* Photographic bulb placement. */
.bulb-stage { position:relative; display:flex; justify-content:center; align-items:flex-start; min-height:580px; isolation:isolate; }
.bulb-stage::before { content:""; position:absolute; top:-180px; height:200px; width:3px; background:#38352e; z-index:-1; }
.page-bulb { position:absolute; right:4%; top:-90px; width:300px; height:460px; pointer-events:none; z-index:-1; }
@media(max-width:1100px) and (min-width:761px) {
  body.black-theme .studio-grid { grid-template-columns:1.2fr .8fr; gap:20px; }
  .bulb-stage { min-height:500px; }
  body.black-theme .page-hero .page-hero-copy { max-width:75%; }
  .page-bulb { right:-35px; opacity:.65; }
}
@media(max-width:760px) {
  body.black-theme .studio-hero { padding-top:40px; }
  .bulb-stage { min-height:440px; margin-top:-15px; }
  .bulb-stage::before { display:none; }
  body.black-theme .hero-bottom { margin-top:25px; }
  body.black-theme .page-hero .page-hero-copy { max-width:100%; }
  .page-bulb { top:-115px; right:-30px; width:190px; height:290px; opacity:.4; }
}

/* Original photograph with a gentle tungsten exposure cycle. */
.bulb-stage::before { display:none; }
.cinematic-intro:focus { outline:none; }
.real-bulb-frame {
  width:400px; max-width:100%; aspect-ratio:5 / 7; position:relative; isolation:isolate;
  -webkit-mask:url("assets/images/bulb-contour.svg") center / 100% 100% no-repeat;
  mask:url("assets/images/bulb-contour.svg") center / 100% 100% no-repeat;
}
.bulb-photo {
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:22% center;
  animation:tungsten-exposure 7.2s ease-in-out infinite;
}
/* Preserve photographic detail: no highlight extraction, thresholding, or blend layers. */
@keyframes tungsten-exposure {
  0%,100% { filter:brightness(.56) sepia(.28) saturate(1.35); }
  42%,58% { filter:brightness(.94) sepia(0) saturate(1); }
}
.capture-mode .bulb-photo { animation:none; filter:brightness(.88) saturate(1.08); }
.page-bulb .real-bulb-frame { width:300px; }
body.black-theme .studio-title { font-size:clamp(3rem,5.9vw,6.5rem); }
body.black-theme .studio-eyebrow { font-size:.68rem; }
body.black-theme .studio-intro { font-size:1rem; }
.live-work-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px; }
.live-work-card { overflow:hidden; }
.live-work-image { display:block; aspect-ratio:16 / 10; overflow:hidden; border-bottom:1px solid var(--border); }
.live-work-image img { width:100%; height:100%; object-fit:cover; object-position:top; transition:transform .6s; }
.live-work-image:hover img { transform:scale(1.04); }
.live-work-copy { padding:28px; }
.live-work-copy .section-label { margin:0 0 10px; font-size:.65rem; }
.live-work-copy h3 { margin:0 0 12px; }
.live-work-copy p { color:var(--muted); }
.live-work-copy>a { color:#e8c28c; font-size:.84rem; }
.home-page .demo-card-body { grid-template-rows:auto auto auto; }
.home-page .cta-band-inner h2 { margin:0; }
/* One letter at a time, keeping each word intact on smaller screens. */
.intro-line { width:100%; }
.intro-word { display:inline-block; white-space:nowrap; }
.intro-letter { display:inline-block; opacity:0; animation:letter-arrive .28s cubic-bezier(.16,1,.3,1) both; animation-delay:calc(var(--letter-index) * 75ms); }
.intro-beat-first { animation:phrase-out 2.15s linear both; }
.intro-beat-second { animation:phrase-out 2.45s linear 2.15s both; }
.intro-beat-second .intro-letter { animation-delay:calc(2.15s + var(--letter-index) * 75ms); }
@keyframes letter-arrive { from { opacity:0; transform:translateY(.35em) scale(.8); filter:blur(5px); } to { opacity:1; transform:none; filter:blur(0); } }
@keyframes phrase-out { 0%,83% { opacity:1; transform:none; filter:none; } 100% { opacity:0; transform:scale(1.08); filter:blur(8px); } }
@media(max-width:760px) {
  .real-bulb-frame { width:300px; }
  .page-bulb .real-bulb-frame { width:190px; }
  .live-work-grid { grid-template-columns:1fr; gap:24px; }
  .live-work-copy { padding:23px; }
  body.black-theme .studio-title { font-size:clamp(3.1rem,12vw,4.8rem); }
  .bulb-stage { min-height:420px; }
}

/* Portfolio refinement: readable previews, compact hero, and clear project links. */
body.black-theme .header-cta { font-size:.88rem; padding-inline:22px; }
body.black-theme .motion-toggle,body.black-theme .replay-intro { min-height:44px; }
.home-page .studio-grid { grid-template-columns:minmax(0,1.55fr) minmax(0,1fr); gap:36px; }
body.black-theme.home-page .studio-hero { padding:34px 0 40px; }
body.black-theme.home-page .studio-title { font-size:clamp(3.2rem,5.5vw,5.8rem); letter-spacing:-.06em; line-height:1.04; margin-bottom:25px; }
.home-page .studio-title em { white-space:nowrap; }
.home-page .studio-title em::after { display:none; }
.home-page .studio-eyebrow { margin-bottom:24px; }
.home-page .bulb-stage { min-height:470px; height:470px; overflow:hidden; }
.home-page .real-bulb-frame { width:340px; flex-shrink:0; }
.home-page .section { padding:72px 0; }
.home-page .section-header { margin-bottom:30px; }
.home-page .section h2 { font-size:clamp(2rem,3.2vw,3rem); }
.home-page .section-label { font-size:.72rem; letter-spacing:.13em; }
.home-page :is(.live-work-grid,.demo-grid) { grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px; }
.home-page .demo-card { border-radius:14px; }
.home-page .demo-card:hover { transform:translateY(-5px); }
.home-page .demo-card:focus-within { border-color:#bca582; }
.home-page .live-work-image { aspect-ratio:16 / 10; }
.home-page .live-work-copy { padding:26px; display:flex; flex-direction:column; flex:1; }
.home-page .live-work-copy h3 { font-size:clamp(1.35rem,2vw,1.75rem); letter-spacing:-.035em; margin-bottom:10px; }
.home-page .live-work-copy p:not(.section-label) { font-size:.95rem; line-height:1.6; margin-bottom:20px; }
.home-page .live-work-copy>a { display:flex; align-items:center; justify-content:space-between; gap:20px; border-top:1px solid #302d27; padding-top:15px; min-height:48px; font-size:.9rem; font-weight:600; margin-top:auto; }
.home-page .live-work-copy>a span { font-size:1.25rem; transition:transform .25s; }
.home-page .live-work-copy>a:hover span { transform:translate(3px,-3px); }
.home-page .demo-card-media { height:auto; aspect-ratio:16 / 10; }
.home-page .demo-card-image { object-position:top center; }
.home-page .demo-card-body { padding:24px 26px; grid-template-rows:auto 1fr auto; }
.home-page .demo-meta-row { margin-bottom:12px; }
body.black-theme.home-page .demo-tag { padding:0; min-height:0; background:transparent; border:0; border-radius:0; color:#bfa47d; font-size:.7rem; letter-spacing:.1em; text-transform:uppercase; }
.home-page .demo-card-body h3 { font-size:clamp(1.35rem,2vw,1.65rem); line-height:1.2; letter-spacing:-.035em; margin:0; }
.home-page .demo-actions { padding-top:20px; }
body.black-theme.home-page .concept-link { width:100%; justify-content:space-between; padding:14px 0 0; border-radius:0; border:0; border-top:1px solid #302d27; background:transparent; color:#e8c28c; box-shadow:none; min-height:44px; font-size:.9rem; }
body.black-theme.home-page .concept-link:hover { color:#fff; transform:none; }
.home-page .cta-band-inner { gap:30px; }
.home-page .cta-band::after { display:none; }
.home-page .footer-grid { gap:40px; }
.home-page .site-footer a { transition:color .2s; }
.home-page .site-footer a:hover { color:#e8c28c; }
@media(min-width:761px) and (max-width:1100px) {
  body.black-theme.home-page .studio-grid { grid-template-columns:minmax(0,1.5fr) minmax(0,1fr); gap:12px; }
  .home-page .real-bulb-frame { width:290px; }
  .home-page .bulb-stage { height:410px; min-height:410px; }
}
@media(max-width:760px) {
  .home-page .studio-grid { grid-template-columns:1fr; gap:0; }
  body.black-theme.home-page .studio-hero { padding:40px 0 0; }
  body.black-theme.home-page .studio-title { font-size:clamp(2.5rem,9vw,4.2rem); }
  .home-page .studio-eyebrow { font-size:.64rem; margin-bottom:20px; }
  .home-page .studio-intro { font-size:.95rem; max-width:32ch; margin-bottom:24px; }
  .home-page .studio-actions { flex-direction:row; flex-wrap:wrap; }
  .home-page .studio-actions .btn { width:auto; min-height:48px; padding-inline:22px; }
  .home-page .bulb-stage { height:300px; min-height:300px; margin-top:10px; }
  .home-page .real-bulb-frame { width:250px; margin-top:-35px; }
  .home-page .section { padding:50px 0; }
  .home-page :is(.live-work-grid,.demo-grid) { grid-template-columns:1fr; gap:24px; }
  .home-page .live-work-copy,.home-page .demo-card-body { padding:22px; }
  .home-page .section-header { margin-bottom:26px; }
  .home-page .cta-band-inner { align-items:flex-start; gap:24px; }
  .home-page .footer-grid { gap:28px; }
  body.black-theme .motion-toggle { min-height:40px; }
}

/* Give an unpaired final concept a complete row instead of leaving an empty cell. */
@media(min-width:761px) {
  .home-page .demo-grid>.demo-card:last-child:nth-child(odd) {
    grid-column:1 / -1;
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    align-items:stretch;
  }
  .home-page .demo-grid>.demo-card:last-child:nth-child(odd) .demo-card-media {
    border-bottom:0;
    border-right:1px solid var(--border);
  }
  .home-page .demo-grid>.demo-card:last-child:nth-child(odd) .demo-card-body {
    align-self:center;
    grid-template-rows:auto auto auto;
    padding:clamp(26px,4vw,52px);
  }
  .home-page .demo-grid>.demo-card:last-child:nth-child(odd) h3 {
    font-size:clamp(1.65rem,3.2vw,2.6rem);
  }
}

/* Keep keyboard access visible only on focus, and clean full-page captures. */
body.black-theme .skip-link:not(:focus-visible){top:-100px}
body.black-theme.capture-mode .site-header{position:static;top:auto}
body.black-theme.capture-mode main{padding-top:0}
body.capture-mode :is(.skip-link,.scroll-progress){display:none!important}
