.aster-cms-media{position:absolute;inset:0;width:100%;height:100%;display:block;border:0;z-index:1;background:#050506}.aster-cms-media.fit-cover{object-fit:cover}.aster-cms-media.fit-contain{object-fit:contain}.aster-cms-media.fit-fill{object-fit:fill}.aster-cms-media.fit-scale-down{object-fit:scale-down}.poster__frame{position:relative}.poster__frame.aster-has-media .scene__placeholder{opacity:0!important;pointer-events:none}.poster__frame .poster__hud{position:relative;z-index:4}.aster-cms-play{position:absolute;z-index:5;left:50%;top:50%;transform:translate(-50%,-50%);width:64px;height:64px;border-radius:50%;display:grid;place-items:center;background:rgba(10,10,12,.46);border:1px solid rgba(200,170,106,.62);backdrop-filter:blur(6px);cursor:pointer;transition:.25s}.aster-cms-play:before{content:"";width:0;height:0;margin-left:4px;border-style:solid;border-width:9px 0 9px 15px;border-color:transparent transparent transparent rgba(241,235,221,.95)}.poster:hover .aster-cms-play{transform:translate(-50%,-50%) scale(1.08)}#reelFrame .aster-cms-media{z-index:2}#reelFrame.aster-has-media .reel-frame__placeholder{opacity:0!important}.foot__sound{margin-top:26px;max-width:420px}.foot__sound.aster-empty{display:none}.aster-audio-card{display:grid;grid-template-columns:auto minmax(0,1fr);gap:14px;align-items:center;padding:14px;border:1px solid rgba(200,170,106,.28);background:rgba(255,255,255,.025)}.aster-audio-card.no-art{grid-template-columns:1fr}.aster-audio-art{width:72px;height:72px;object-fit:cover}.aster-audio-meta{font-family:var(--mono,monospace);font-size:10px;letter-spacing:.08em;color:var(--silver,#bbb)}.aster-audio-meta strong{display:block;color:var(--paper,#eee);font-family:var(--serif,serif);font-size:17px;letter-spacing:0}.aster-audio-card audio{width:100%;margin-top:8px}.aster-music-relocated{padding:clamp(40px,6vw,90px) max(24px,5vw);position:relative;z-index:3}.aster-music-relocated .foot__sound{margin-top:0}.aster-music-sticky{position:sticky;bottom:18px;z-index:90;background:rgba(8,8,10,.92);backdrop-filter:blur(12px);padding:10px}.aster-preview-mode [data-aster-text]{outline:1px dashed rgba(200,170,106,.3);outline-offset:4px;cursor:text}.aster-preview-mode [data-aster-text]:hover{outline-color:rgba(200,170,106,.9);background:rgba(200,170,106,.07)}

/* ASTER CMS 1.1 — up to 10 responsive media panels */
#work .work-grid,.aster-cms-panel-grid{display:grid!important;grid-template-columns:repeat(12,minmax(0,1fr))!important;gap:clamp(20px,2.4vw,28px)!important}.aster-managed-poster{grid-column:span var(--aster-desktop-span,6)!important;margin-top:var(--aster-offset-y,0)!important;align-self:start}.aster-managed-poster .poster__frame{aspect-ratio:var(--aster-outer-ratio,16/9)}.aster-cms-panel-zone{position:relative;z-index:3;padding:clamp(44px,6vw,92px) max(24px,5vw);background:transparent}.aster-cms-panel-grid{width:min(100%,1460px);margin:0 auto}.aster-empty-grid{display:none!important}
@media(max-width:1080px){#work .work-grid,.aster-cms-panel-grid{grid-template-columns:repeat(12,minmax(0,1fr))!important}.aster-managed-poster{grid-column:span var(--aster-tablet-span,6)!important;margin-top:0!important}}
@media(max-width:720px){.aster-managed-poster{grid-column:1/-1!important}.aster-cms-panel-zone{padding:52px 22px}}
.aster-hp{position:absolute!important;left:-10000px!important;top:auto!important;width:1px!important;height:1px!important;overflow:hidden!important;opacity:0!important;pointer-events:none!important}.form-submit-status{min-height:18px;color:var(--gold,#c8aa6a);font-family:var(--mono,monospace);font-size:10px;letter-spacing:.08em}.form-submit:disabled{opacity:.58;cursor:wait}.form-submit.is-busy .arr{animation:aster-submit-pulse 1s ease-in-out infinite}@keyframes aster-submit-pulse{50%{opacity:.25}}


/* ASTER CMS 1.1.1 — resolve legacy responsive nth-child collision.
   The original site changes the first four .poster items to span one column
   below 1080px. In the CMS 12-column grid that produced four narrow strips.
   These scoped rules keep the dynamic width model authoritative. */
#work .work-grid > .poster.aster-managed-poster,
.aster-cms-panel-grid > .poster.aster-managed-poster {
  grid-column: span var(--aster-desktop-span, 6) !important;
  min-width: 0 !important;
  width: auto !important;
}
@media (max-width: 1080px) {
  #work .work-grid > .poster.aster-managed-poster,
  .aster-cms-panel-grid > .poster.aster-managed-poster {
    grid-column: span var(--aster-tablet-span, 6) !important;
    margin-top: 0 !important;
    min-width: 0 !important;
  }
}
@media (max-width: 720px) {
  #work .work-grid > .poster.aster-managed-poster,
  .aster-cms-panel-grid > .poster.aster-managed-poster {
    grid-column: 1 / -1 !important;
    margin-top: 0 !important;
  }
}


/* ASTER CMS 1.2 — preserve the signature outer poster architecture.
   Uploaded media now lives on an independent inner stage, so portrait,
   square and landscape sources never redefine the card itself. */
#work .work-grid,
.aster-cms-panel-grid {
  align-items: start !important;
}
.aster-managed-poster {
  min-width: 0 !important;
}
.aster-managed-poster .poster__frame {
  aspect-ratio: var(--aster-outer-ratio, 16 / 9) !important;
  isolation: isolate;
  background:
    radial-gradient(80% 120% at 50% 48%, rgba(200,170,106,.075), transparent 70%),
    #040506;
}
.aster-managed-poster .poster__frame .poster__hud {
  position: absolute !important;
  inset: 0 !important;
  z-index: 4 !important;
}
.aster-media-shell {
  position: absolute;
  z-index: 1;
  pointer-events: none;
}
.aster-media-shell.mode-bleed {
  inset: 0;
}
.aster-media-shell.mode-bleed .aster-media-stage {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  aspect-ratio: auto !important;
  overflow: hidden;
  background: #040506;
  pointer-events: auto;
}
.aster-media-shell.mode-framed {
  left: var(--aster-stage-x, 50%);
  top: var(--aster-stage-y, 50%);
  width: var(--aster-media-scale, 88%);
  height: var(--aster-media-scale, 88%);
  transform: translate(-50%, -50%);
  display: grid;
  place-items: center;
}
.aster-media-shell.mode-framed .aster-media-stage {
  position: relative;
  width: var(--aster-stage-w, 100%);
  height: var(--aster-stage-h, 100%);
  max-width: 100%;
  max-height: 100%;
  overflow: hidden;
  pointer-events: auto;
  background:
    linear-gradient(145deg, rgba(255,255,255,.025), rgba(0,0,0,.28)),
    #050506;
  border: 1px solid rgba(200,170,106,.42);
  box-shadow:
    0 24px 54px rgba(0,0,0,.48),
    0 0 0 1px rgba(255,255,255,.025) inset,
    0 0 38px rgba(200,170,106,.055);
}
.aster-media-shell.mode-framed .aster-media-stage::before,
.aster-media-shell.mode-framed .aster-media-stage::after {
  content: "";
  position: absolute;
  z-index: 3;
  pointer-events: none;
  width: 14px;
  height: 14px;
  opacity: .58;
}
.aster-media-shell.mode-framed .aster-media-stage::before {
  left: 8px;
  top: 8px;
  border-left: 1px solid var(--bone, #e8e0cf);
  border-top: 1px solid var(--bone, #e8e0cf);
}
.aster-media-shell.mode-framed .aster-media-stage::after {
  right: 8px;
  bottom: 8px;
  border-right: 1px solid var(--bone, #e8e0cf);
  border-bottom: 1px solid var(--bone, #e8e0cf);
}
.aster-media-stage .aster-cms-media {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.aster-mode-framed .poster__frame::after {
  background:
    radial-gradient(120% 80% at 50% 50%, transparent 58%, rgba(0,0,0,.44) 100%),
    linear-gradient(180deg, rgba(0,0,0,.04), rgba(0,0,0,.30));
}
.aster-managed-poster .aster-cms-play {
  transition: transform .25s var(--ease, ease), border-color .25s ease, background .25s ease;
}
.aster-managed-poster:hover .aster-cms-play {
  transform: translate(-50%,-50%) scale(1.08);
}
@media (max-width: 1080px) {
  .aster-managed-poster {
    margin-top: 0 !important;
  }
}


/* Studio device preview is semantic rather than dependent on the iframe's
   constrained physical width. Desktop therefore retains the signature 7/5
   editorial composition inside the editor. */
body.aster-preview-mode[data-aster-preview-device="desktop"] #work .work-grid > .aster-managed-poster,
body.aster-preview-mode[data-aster-preview-device="desktop"] .aster-cms-panel-grid > .aster-managed-poster {
  grid-column: span var(--aster-desktop-span, 6) !important;
  margin-top: var(--aster-offset-y, 0) !important;
}
body.aster-preview-mode[data-aster-preview-device="tablet"] #work .work-grid > .aster-managed-poster,
body.aster-preview-mode[data-aster-preview-device="tablet"] .aster-cms-panel-grid > .aster-managed-poster {
  grid-column: span var(--aster-tablet-span, 6) !important;
  margin-top: 0 !important;
}
body.aster-preview-mode[data-aster-preview-device="mobile"] #work .work-grid > .aster-managed-poster,
body.aster-preview-mode[data-aster-preview-device="mobile"] .aster-cms-panel-grid > .aster-managed-poster {
  grid-column: 1 / -1 !important;
  margin-top: 0 !important;
}


/* ASTER Studio 1.3 — universal content styling and responsive playback */
.aster-video-preload-home{position:fixed!important;width:1px!important;height:1px!important;overflow:hidden!important;opacity:.001!important;pointer-events:none!important;left:-9999px!important;top:-9999px!important}
#reelFrame.aster-video-loading::before{content:"Preparing film…";position:absolute;z-index:7;left:50%;top:50%;transform:translate(-50%,-50%);font-family:var(--mono);font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);padding:12px 16px;border:1px solid var(--line);background:rgba(4,4,5,.82);backdrop-filter:blur(8px)}
#reelFrame.aster-video-loading::after{content:"";position:absolute;z-index:8;left:50%;top:calc(50% + 38px);width:64px;height:1px;transform:translateX(-50%);background:linear-gradient(90deg,transparent,var(--gold),transparent);animation:asterLoadPulse 1.1s ease-in-out infinite}
.aster-video-retry{position:absolute;z-index:10;left:50%;top:50%;min-width:190px;min-height:50px;transform:translate(-50%,-50%);display:inline-flex;align-items:center;justify-content:center;padding:14px 22px;border:1px solid rgba(204,174,108,.82);background:rgba(4,4,5,.9);box-shadow:0 14px 42px rgba(0,0,0,.45);color:var(--ivory,#f1ebdd);font-family:var(--mono,monospace);font-size:10px;letter-spacing:.19em;line-height:1.35;text-transform:uppercase;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;backdrop-filter:blur(10px)}
.aster-video-retry:focus-visible{outline:2px solid var(--gold,#ccae6c);outline-offset:4px}.aster-video-retry:disabled{opacity:.62;cursor:wait}
@keyframes asterLoadPulse{0%,100%{opacity:.22;transform:translateX(-50%) scaleX(.45)}50%{opacity:1;transform:translateX(-50%) scaleX(1)}}
.aster-custom-block-zone{width:min(100%,1480px);margin:clamp(24px,4vw,54px) auto;padding:0 var(--aster-frame-x,clamp(28px,4vw,76px));display:grid;gap:18px;position:relative;z-index:2}
.aster-custom-block-zone.aster-custom-top{margin-top:16px;margin-bottom:clamp(24px,4vw,54px)}
.aster-custom-heading{font-family:var(--serif);font-size:clamp(34px,4vw,66px);line-height:1.02;color:var(--ivory);max-width:18ch}
.aster-custom-paragraph{font-family:var(--sans);font-size:clamp(15px,1.35vw,19px);line-height:1.65;color:var(--ivory);max-width:62ch}
.aster-custom-eyebrow{font-family:var(--mono);font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:var(--gold)}
.aster-custom-note{font-family:var(--serif);font-style:italic;font-size:clamp(20px,2.2vw,32px);line-height:1.35;color:var(--silver);max-width:34ch}
.aster-custom-divider{height:1px;width:min(100%,720px);background:var(--aster-line-gradient);opacity:.8}
.aster-custom-button{display:inline-flex;width:max-content;align-items:center;justify-content:center;padding:13px 22px;border:1px solid var(--line);font-family:var(--mono);font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--ivory);text-decoration:none;background:rgba(10,9,7,.46)}
.aster-custom-button:hover{border-color:var(--gold);color:var(--gold)}
body.aster-preview-mode [data-aster-text],body.aster-preview-mode [data-aster-block]{outline:1px dashed rgba(204,174,108,.30);outline-offset:4px;cursor:text}
body.aster-preview-mode [data-aster-text]:hover,body.aster-preview-mode [data-aster-block]:hover{outline-color:rgba(204,174,108,.92);background:rgba(204,174,108,.035)}
@media(max-width:640px){.aster-custom-block-zone{padding-left:24px;padding-right:24px}.aster-custom-heading{font-size:clamp(30px,10vw,46px)}}

/* 1.4.14 poster-first delivery: cards paint immediately without instantiating
   a video element. Unmapped future uploads retain a designed fallback, and
   iOS receives a direct-gesture retry if inline playback is interrupted. */
.aster-skip-link{position:fixed;z-index:1000;left:16px;top:12px;padding:12px 16px;background:#f1ebdd;color:#040405;font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;transform:translateY(-160%);transition:transform .18s ease}
.aster-skip-link:focus{transform:translateY(0);outline:2px solid var(--gold);outline-offset:3px}
.aster-cms-poster-placeholder{position:absolute;inset:0;background:radial-gradient(circle at 50% 42%,rgba(204,174,108,.12),transparent 32%),linear-gradient(135deg,rgba(204,174,108,.055),transparent 42%),#070707}
.aster-cms-poster-placeholder::before{content:'ASTER';position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-family:var(--serif);font-size:clamp(24px,4vw,54px);font-weight:300;letter-spacing:.28em;color:rgba(241,235,221,.2)}
@media (prefers-reduced-motion:reduce){#reelFrame.aster-video-loading::after{animation:none}.aster-managed-poster .aster-cms-play{transition:none}}

/* 1.4.14 contact-form design controls. These variables are intentionally
   scoped to the request form so Studio changes cannot recolor other sections. */
#requestForm{
  --aster-form-label-color:var(--ash,#907b4e);
  --aster-form-required-color:var(--gold,#ccae6c);
  --aster-form-example-color:var(--ash-soft,#6e5e3c);
  --aster-form-entry-color:var(--ivory,#f1ebdd)
}
#requestForm .form-field>label{color:var(--aster-form-label-color)}
#requestForm .form-field>label .req,
#requestForm .form-card__head .k{color:var(--aster-form-required-color)}
#requestForm input,
#requestForm textarea,
#requestForm select{color:var(--aster-form-entry-color)!important}
#requestForm select.aster-form-prompt{color:var(--aster-form-example-color)!important}
#requestForm input::placeholder,
#requestForm textarea::placeholder{
  color:var(--aster-placeholder-color,var(--aster-form-example-color))!important;
  font-family:var(--aster-placeholder-family,inherit);
  font-size:var(--aster-placeholder-size,inherit);
  font-weight:var(--aster-placeholder-weight,300);
  font-style:var(--aster-placeholder-style,normal);
  letter-spacing:var(--aster-placeholder-spacing,normal);
  text-transform:var(--aster-placeholder-transform,none);
  opacity:1
}
body.aster-preview-mode [data-aster-attr-text]{outline:1px dashed rgba(204,174,108,.30);outline-offset:4px;cursor:text}
body.aster-preview-mode [data-aster-attr-text]:hover{outline-color:rgba(204,174,108,.92);background:rgba(204,174,108,.035)}

/* ASTER 1.4.14 — Section 06 editor-managed media panels. */
.aster-studio-inline__intro{display:grid;grid-template-columns:minmax(180px,auto) minmax(0,1fr);align-items:baseline;gap:24px;margin-top:clamp(54px,7vw,96px);padding-top:22px;border-top:1px solid var(--line)}
.aster-studio-inline__label{font-family:var(--mono);font-size:10px;letter-spacing:.25em;text-transform:uppercase;color:var(--gold)}
.aster-studio-inline__intro>p{justify-self:end;max-width:620px;margin:0;font-family:var(--sans);font-size:clamp(14px,1.05vw,17px);font-weight:300;line-height:1.65;text-align:right;color:var(--silver)}
.aster-studio-grid{display:flex;flex-direction:column;gap:clamp(42px,6vw,82px);align-items:stretch;width:100%;margin-top:clamp(32px,4vw,58px)}
.aster-studio-panel{width:var(--aster-desktop-width,83.3333%);min-width:0;margin-top:var(--aster-offset-y,0);align-self:flex-start}
.aster-studio-panel.align-left{align-self:flex-start}
.aster-studio-panel.align-center{align-self:center}
.aster-studio-panel.align-right{align-self:flex-end}
.aster-studio-panel__frame{position:relative;aspect-ratio:var(--aster-outer-ratio,16/9)!important;overflow:hidden;isolation:isolate;border:1px solid rgba(204,174,108,.34);background:radial-gradient(90% 120% at 50% 42%,rgba(204,174,108,.11),transparent 62%),linear-gradient(145deg,rgba(255,255,255,.025),rgba(0,0,0,.42)),#050506;box-shadow:0 30px 90px rgba(0,0,0,.38),inset 0 0 0 1px rgba(255,255,255,.018)}
.aster-studio-panel__frame::after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(180deg,rgba(0,0,0,.03),transparent 60%,rgba(0,0,0,.34))}
.aster-studio-panel__frame.aster-has-media .aster-studio-panel__placeholder{opacity:0}
.aster-studio-panel__placeholder{position:absolute;inset:0;z-index:0;display:grid;place-content:center;justify-items:center;gap:12px;transition:opacity .25s ease}
.aster-studio-panel__placeholder::before,.aster-studio-panel__placeholder::after{content:"";position:absolute;width:28px;height:28px;border-color:rgba(204,174,108,.44)}
.aster-studio-panel__placeholder::before{left:18px;top:18px;border-left:1px solid;border-top:1px solid}
.aster-studio-panel__placeholder::after{right:18px;bottom:18px;border-right:1px solid;border-bottom:1px solid}
.aster-studio-panel__placeholder span{font-family:var(--serif);font-size:clamp(34px,6vw,82px);font-weight:300;letter-spacing:.28em;color:rgba(241,235,221,.24);transform:translateX(.14em)}
.aster-studio-panel__placeholder small,.aster-studio-panel__hud,.aster-studio-panel__eyebrow,.aster-studio-panel__meta,.aster-studio-panel__cta{font-family:var(--mono);font-size:9px;letter-spacing:.22em;text-transform:uppercase}
.aster-studio-panel__placeholder small{color:rgba(204,174,108,.58)}
.aster-studio-panel__hud{position:absolute;z-index:4;inset:18px 20px auto;display:flex;justify-content:space-between;gap:18px;color:rgba(241,235,221,.7);pointer-events:none}
.aster-studio-panel__hud span:last-child{color:var(--gold)}
.aster-studio-panel__copy{display:grid;gap:13px;margin-top:20px;max-width:760px}
.aster-studio-panel__eyebrow{color:var(--gold)}
.aster-studio-panel__copy h3{margin:0;font-family:var(--serif);font-size:clamp(30px,3.2vw,52px);font-weight:400;line-height:1.02;color:var(--ivory)}
.aster-studio-panel__copy>p{margin:0;max-width:62ch;font-family:var(--sans);font-size:clamp(14px,1.1vw,17px);font-weight:300;line-height:1.68;color:var(--silver);white-space:pre-line}
.aster-studio-panel__meta{display:flex;flex-wrap:wrap;gap:8px 18px;color:var(--ash);line-height:1.5}
.aster-studio-panel__meta span+span::before{content:"·";margin-right:18px;color:var(--gold)}
.aster-studio-panel__cta{display:inline-flex;width:max-content;align-items:center;justify-content:center;margin-top:4px;padding:11px 16px;border:1px solid var(--line);background:rgba(10,9,7,.45);color:var(--ivory);text-decoration:none;cursor:pointer}
.aster-studio-panel__cta:hover{border-color:var(--gold);color:var(--gold)}
.aster-studio-panel__cta:disabled{opacity:.42;cursor:not-allowed}
.aster-studio-panel.text-center .aster-studio-panel__copy{justify-items:center;margin-left:auto;margin-right:auto;text-align:center}
.aster-studio-panel.text-center .aster-studio-panel__copy>p{margin-left:auto;margin-right:auto}
.aster-studio-panel.text-right .aster-studio-panel__copy{justify-items:end;margin-left:auto;text-align:right}
.aster-studio-panel.text-right .aster-studio-panel__copy>p{margin-left:auto}
.aster-studio-panel .aster-cms-play{transition:transform .25s var(--ease,ease),border-color .25s ease,background .25s ease}
.aster-studio-panel:hover .aster-cms-play{transform:translate(-50%,-50%) scale(1.08)}
@media(max-width:1080px){.aster-studio-panel{width:var(--aster-tablet-width,100%);margin-top:0}.aster-studio-grid{gap:42px}}
@media(max-width:720px){.aster-studio-inline__intro{grid-template-columns:1fr;gap:10px;margin-top:48px}.aster-studio-inline__intro>p{justify-self:start;text-align:left}.aster-studio-grid{gap:42px;margin-top:30px}.aster-studio-panel{width:100%;align-self:stretch}.aster-studio-panel__hud{inset:13px 14px auto;font-size:7px;letter-spacing:.14em}.aster-studio-panel__meta{gap:6px 12px}.aster-studio-panel__meta span+span::before{margin-right:12px}}
body.aster-preview-mode[data-aster-preview-device="desktop"] .aster-studio-panel{width:var(--aster-desktop-width,83.3333%);margin-top:var(--aster-offset-y,0)}
body.aster-preview-mode[data-aster-preview-device="tablet"] .aster-studio-panel{width:var(--aster-tablet-width,100%);margin-top:0}
body.aster-preview-mode[data-aster-preview-device="mobile"] .aster-studio-panel{width:100%;align-self:stretch;margin-top:0}
body.aster-preview-mode [data-aster-studio-panel]{outline:1px dashed rgba(204,174,108,.22);outline-offset:5px;cursor:pointer}
