/* ============================================================================
   ALSTERGEE — SITE-WIDE DESIGN SYSTEM (base)
   Loaded site-wide via WP custom CSS. Per-page accent override:
     each vertical injects <style>:root{--accent:#xxxx}</style> at top of content.
   Canonical source: /docker/wordpress/design/alstergee-base.css
   ========================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,400..800&family=JetBrains+Mono:wght@400;500;600;700&family=Instrument+Serif:ital,wght@0,400;1,400&family=Fraunces:ital,opsz,wght@0,9..144,200..900;1,9..144,200..900&family=Inter+Tight:wght@300;400;500;600;700&display=swap');

:root{
  --bg:#0a0a0a; --surface:#111; --surface-2:#161616; --surface-3:#1c1c1c;
  --ink:#f5f4ed; --ink-2:#c8c6bc; --ink-dim:#7a7770;
  --rule:#1f1f1f; --rule-mid:#2a2a2a;
  --accent:#c8ff00;          /* default = festival lime; pages override */
  --accent-ink:#000;          /* text color that sits ON the accent */
  --accent-2:#ff3b30;
  --display:'Bricolage Grotesque',sans-serif;
  --mono:'JetBrains Mono',monospace;
  --serif:'Fraunces',serif;
  --ital:'Instrument Serif',serif;
  --sans:'Inter Tight',sans-serif;
  --maxw:1380px;
}

/* per-vertical accents (also settable inline per page) */
body.v-festival{--accent:#c8ff00;}
body.v-outdoor {--accent:#2ee6d6;}      /* signal cyan */
body.v-stage   {--accent:#ff2d6f;--accent-2:#7c4dff;} /* laser magenta */
body.v-ad      {--accent:#9d7bff;}      /* projection violet */
body.v-biz     {--accent:#38bdf8;}      /* electric blue */
body.v-city    {--accent:#ffb02e;}      /* solar amber */

html,body{background:var(--bg)!important;color:var(--ink)!important;font-family:var(--sans)!important;font-weight:400!important;-webkit-font-smoothing:antialiased;letter-spacing:-0.003em;line-height:1.55;margin:0!important;overflow-x:hidden;}
*{box-sizing:border-box;}
body{position:relative;}

/* GRAIN */
body::after{content:'';position:fixed;inset:0;pointer-events:none;z-index:8000;mix-blend-mode:overlay;opacity:0.32;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 220 220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.92' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)' opacity='0.5'/></svg>");}

/* LIVE TICKER (text set globally; pages may override via --ticker) */
body::before{display:none!important;}

/* HEADER (Astra overrides) */
html body .site-header,html body .ast-primary-header-bar,html body .main-header-bar,html body .ast-above-header,html body .ast-below-header{background:transparent!important;border-bottom:0!important;}
html body .ast-theme-transparent-header .site-header{padding-top:0!important;}
html body .site-header{position:fixed!important;top:0;left:0;right:0;z-index:9000;backdrop-filter:blur(14px) saturate(140%);-webkit-backdrop-filter:blur(14px) saturate(140%);background:rgba(10,10,10,0.55)!important;border-bottom:1px solid rgba(255,255,255,0.06)!important;}
html body .site-primary-header-wrap{padding:8px 5vw!important;max-width:none!important;}
html body .ast-button-wrap,html body .ast-header-button-1,html body .ast-header-woo-cart{display:none!important;}
html body .main-header-menu a,html body .main-navigation a{font-family:var(--mono)!important;font-size:11px!important;font-weight:500!important;letter-spacing:0.18em!important;text-transform:uppercase!important;color:var(--ink)!important;padding:0 14px!important;}
html body .main-header-menu a:hover,html body .main-navigation a:hover{color:var(--accent)!important;}
html body .main-header-menu .current-menu-item>a,html body .menu-item.current-menu-item>a{color:var(--accent)!important;}
html body img.custom-logo,html body .site-logo-img img,html body span.site-logo-img img,html body .ast-site-identity img,html body .custom-logo-link img{max-height:120px!important;height:120px!important;width:auto!important;max-width:none!important;filter:brightness(1.2) contrast(1.05);}
html body .site-logo-img,html body .custom-logo-link{display:block!important;line-height:0!important;max-width:none!important;}
html body .ast-site-identity,html body .site-branding,html body .site-header-section-left{padding:0!important;overflow:visible!important;max-width:none!important;}
html body .ast-builder-layout-element{overflow:visible!important;}
html body .site-branding{padding:0!important;}

/* NUCLEAR FULL-BLEED — wrappers vanish from layout */
html body #content>.ast-container,html body #primary,html body main#main,html body article.page,html body article.post,html body .entry-content{display:contents!important;}
html body #content,html body .site-content{display:block!important;width:100%!important;max-width:none!important;padding:0!important;margin:0!important;}
.entry-content{counter-reset:section;}
html body .entry-header,html body .ast-archive-header,html body .ast-single-post-banner{display:none!important;}

/* ===== HERO COVER ===== */
html body .wp-block-cover.alignfull{position:relative;width:100vw!important;max-width:100vw!important;left:50%!important;right:50%!important;margin-left:-50vw!important;margin-right:-50vw!important;padding:0!important;min-height:100vh!important;display:flex;align-items:flex-end!important;border:0!important;overflow:hidden;}
html body .entry-content>.wp-block-cover.alignfull:first-child{margin-top:0!important;}
html body .wp-block-cover__image-background{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;object-fit:cover;filter:saturate(0.78) contrast(1.1) brightness(0.62);will-change:transform;transform:translateZ(0);}
html body .wp-block-cover.alignfull::before{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0.72) 0%,rgba(0,0,0,0.18) 35%,rgba(0,0,0,0.12) 58%,rgba(0,0,0,0.9) 100%);z-index:1;pointer-events:none;}
html body .wp-block-cover.alignfull::after{content:'';position:absolute;bottom:32px;right:32px;width:48px;height:48px;border-right:1px solid var(--accent);border-bottom:1px solid var(--accent);z-index:3;pointer-events:none;}
/* frosted hero card */
html body .wp-block-cover .wp-block-cover__inner-container{max-width:1100px;width:auto;padding:36px 44px!important;margin:0 0 6vh 5vw!important;text-align:left!important;position:relative;z-index:2;background:rgba(10,10,10,0.42);backdrop-filter:blur(18px) saturate(150%);-webkit-backdrop-filter:blur(18px) saturate(150%);border:1px solid rgba(255,255,255,0.08);border-radius:0;}
html body .wp-block-cover h1{font-family:var(--display)!important;font-size:clamp(2.2rem,6.2vw,6rem)!important;font-weight:700!important;line-height:0.92!important;letter-spacing:-0.04em!important;text-align:left!important;color:#fff!important;margin:0 0 1rem!important;font-variation-settings:'opsz' 96;text-wrap:balance;}
html body .wp-block-cover h1 em,html body .wp-block-cover h1 i{font-family:var(--ital)!important;font-style:italic;font-weight:400;letter-spacing:-0.025em;color:var(--accent)!important;}
html body .wp-block-cover p{font-family:var(--mono)!important;font-size:11px!important;letter-spacing:0.22em!important;text-transform:uppercase;color:var(--accent)!important;text-align:left!important;max-width:none!important;margin:0!important;font-weight:500!important;display:flex;align-items:center;gap:14px;flex-wrap:wrap;}
html body .wp-block-cover p::before{content:'';display:inline-block;width:24px;height:1px;background:var(--accent);flex-shrink:0;}

/* nested mid-page covers */
html body .wp-block-cover.alignfull:not(:first-of-type){min-height:78vh!important;}
html body .wp-block-cover.alignfull:not(:first-of-type) .wp-block-cover__inner-container{max-width:780px;padding:36px 44px!important;}
html body .wp-block-cover.alignfull h2{font-family:var(--display)!important;font-size:clamp(1.8rem,4vw,3.4rem)!important;font-weight:700!important;line-height:1!important;letter-spacing:-0.03em!important;color:#fff!important;margin:0 0 1rem!important;border:0!important;padding:0!important;max-width:18ch;display:block!important;}
html body .wp-block-cover.alignfull h2::before{display:none!important;}
html body .wp-block-cover.alignfull p:not(.eyebrow){font-family:var(--sans)!important;font-size:1.08rem!important;line-height:1.6!important;color:#f0efe9!important;text-transform:none!important;letter-spacing:-0.005em!important;max-width:52ch!important;margin:0 0 1rem!important;font-weight:400!important;display:block!important;}
html body .wp-block-cover.alignfull p:not(.eyebrow)::before{display:none!important;}

/* full-bleed containers */
html body .wp-block-group.alignfull,html body .wp-block-columns.alignfull,html body .wp-block-gallery.alignfull,html body hr.wp-block-separator.alignfull{position:relative;width:100vw!important;max-width:100vw!important;left:50%!important;right:50%!important;margin-left:-50vw!important;margin-right:-50vw!important;}

/* ===== STATEMENT band ===== */
html body .wp-block-group.has-background.alignfull{padding:14vh 5vw!important;}
html body .wp-block-group.alignfull.is-style-statement{padding:16vh 5vw!important;background:radial-gradient(ellipse 800px 600px at 50% 50%,color-mix(in srgb,var(--accent) 7%,transparent),transparent 60%),var(--surface)!important;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);}
html body .wp-block-group.alignfull.is-style-statement h2{font-family:var(--ital)!important;font-style:italic;font-weight:400!important;font-size:clamp(2rem,5vw,5rem)!important;line-height:1.1!important;letter-spacing:-0.02em!important;color:var(--ink)!important;max-width:24ch;margin:0 auto!important;text-align:center;border:0!important;padding:0!important;display:block!important;}
html body .wp-block-group.alignfull.is-style-statement h2::before{display:none!important;}
html body .wp-block-group.alignfull.is-style-statement h2 em,html body .wp-block-group.alignfull.is-style-statement h2 i{font-family:var(--display)!important;font-style:normal;font-weight:700;color:var(--accent);}
html body .wp-block-group.alignfull.is-style-statement p{font-family:var(--mono)!important;font-size:11px!important;letter-spacing:0.22em!important;text-transform:uppercase!important;color:var(--accent)!important;text-align:center!important;margin:1.5rem auto 0!important;max-width:none!important;}

/* ===== INNER READING COLUMN ===== */
html body .entry-content>h2,html body .entry-content>h3,html body .entry-content>p,html body .entry-content>ul,html body .entry-content>ol,html body .entry-content>.wp-block-buttons,html body .entry-content>.has-medium-font-size,html body .entry-content>.has-large-font-size{padding-left:max(5vw,32px)!important;padding-right:max(5vw,32px)!important;max-width:var(--maxw);margin-left:auto!important;margin-right:auto!important;}
html body .entry-content>.wp-block-columns:not(.alignfull){padding-left:max(5vw,32px)!important;padding-right:max(5vw,32px)!important;max-width:var(--maxw);margin:4rem auto!important;}

/* ===== TYPE ===== */
html body h1,html body h2,html body h3,html body h4{font-family:var(--display)!important;font-weight:700!important;color:var(--ink)!important;line-height:1!important;letter-spacing:-0.03em!important;font-variation-settings:'opsz' 96;}
html body .entry-content>h2{font-size:clamp(1.8rem,3.5vw,3.2rem)!important;margin:7rem auto 2rem!important;padding-top:2.5rem!important;border-top:1px solid var(--rule)!important;counter-increment:section;display:grid!important;grid-template-columns:auto 1fr;gap:2rem;align-items:end;}
html body .entry-content>h2::before{content:'CUE / 0' counter(section);font-family:var(--mono)!important;font-size:11px!important;font-weight:500!important;color:var(--accent)!important;letter-spacing:0.2em!important;text-transform:uppercase!important;align-self:start;padding-top:0.4rem;background:none!important;display:block!important;}
html body .entry-content>h3{font-size:1.45rem!important;margin:2.5rem auto 1rem!important;letter-spacing:-0.015em!important;display:flex;align-items:center;gap:14px;}
html body .entry-content>h3::before{content:'';display:inline-block;width:14px;height:14px;border:1px solid var(--accent);flex-shrink:0;}
html body .entry-content p{font-size:1.05rem;line-height:1.7;color:var(--ink-2)!important;max-width:62ch;margin:0 auto 1.3rem!important;font-weight:400;}
html body .entry-content>p:first-of-type,html body .entry-content>.has-medium-font-size:first-of-type{padding-top:5rem!important;}
html body .has-medium-font-size{font-family:var(--display)!important;font-size:clamp(1.6rem,2.6vw,2.4rem)!important;line-height:1.18!important;font-weight:500!important;letter-spacing:-0.018em!important;max-width:34ch!important;color:var(--ink)!important;font-variation-settings:'opsz' 24;}
html body .has-large-font-size{font-family:var(--display)!important;font-size:1.6rem!important;font-weight:500!important;color:var(--ink)!important;letter-spacing:-0.01em!important;}
p strong{color:var(--ink)!important;font-weight:600;}
.entry-content p em,.entry-content p i{font-family:var(--ital)!important;font-style:italic;font-weight:400;color:var(--ink);}

/* LINKS */
html body .entry-content a:not(.wp-block-button__link):not(.service-panel):not(.fork-panel):not(.case-card):not(.spec-card):not(.btn){color:var(--ink)!important;text-decoration:none!important;background:linear-gradient(var(--accent),var(--accent)) no-repeat;background-size:100% 1px;background-position:0 95%;padding-bottom:1px;transition:background-size 0.25s ease,color 0.25s ease;}
html body .entry-content a:not(.wp-block-button__link):not(.service-panel):not(.fork-panel):not(.case-card):not(.spec-card):not(.btn):hover{background-size:100% 50%;color:#000!important;}
html body a.spec-card{text-decoration:none!important;}
html body a.spec-card:hover{box-shadow:inset 0 0 0 1px var(--accent);}

/* LISTS */
html body .entry-content>ul,html body .entry-content>ol{list-style:none!important;padding:0 max(5vw,32px)!important;margin:2rem auto 3rem!important;border-top:1px solid var(--rule);max-width:var(--maxw);}
html body .entry-content ul li{border-bottom:1px solid var(--rule)!important;padding:1.4rem 0 1.4rem 3rem!important;position:relative;font-size:1.05rem;line-height:1.55;max-width:none;color:var(--ink-2)!important;display:block;list-style:none!important;}
html body .entry-content ul li strong{color:var(--ink)!important;font-weight:600;}
html body .entry-content ul li::before{content:'→';position:absolute;left:0;color:var(--accent);font-family:var(--mono);font-weight:500;font-size:1rem;top:1.4rem;}
html body .entry-content ol li{counter-increment:step;padding:1.5rem 0 1.5rem 4.5rem!important;border-bottom:1px solid var(--rule);position:relative;font-size:1.05rem;line-height:1.55;color:var(--ink-2)!important;list-style:none!important;}
html body .entry-content ol li::before{content:'STEP / ' counter(step,decimal-leading-zero);position:absolute;left:0;color:var(--accent);font-family:var(--mono);font-size:10.5px;font-weight:500;top:1.7rem;letter-spacing:0.18em;}
html body .entry-content ol{counter-reset:step;}

/* IMAGES */
html body .wp-block-image.alignfull{width:100vw!important;max-width:100vw!important;margin:0!important;padding:0!important;left:50%!important;right:50%!important;margin-left:-50vw!important;margin-right:-50vw!important;position:relative;}
html body .wp-block-image.alignwide{width:90vw!important;max-width:90vw!important;margin:5rem auto!important;padding:0!important;position:relative;left:50%!important;right:50%!important;margin-left:-45vw!important;margin-right:-45vw!important;}
html body .wp-block-image img{display:block;width:100%;height:auto;filter:saturate(0.92) contrast(1.06);}
html body .wp-block-image.alignfull img,html body .wp-block-image.alignwide img{filter:saturate(0.88) contrast(1.08) brightness(0.92);}
html body .wp-block-image:not(.alignwide):not(.alignfull){margin:4rem auto!important;padding:0 max(5vw,32px)!important;max-width:var(--maxw);}
html body .wp-block-image figcaption{font-family:var(--mono)!important;font-size:10.5px!important;letter-spacing:0.16em!important;text-transform:uppercase!important;color:var(--ink-dim)!important;margin-top:1rem!important;padding-left:max(5vw,32px);}

/* GALLERY */
html body .wp-block-gallery{display:grid!important;grid-template-columns:repeat(4,1fr)!important;gap:2px!important;margin:0!important;padding:0!important;width:100vw!important;max-width:100vw!important;position:relative;left:50%!important;right:50%!important;margin-left:-50vw!important;margin-right:-50vw!important;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);}
html body .wp-block-gallery figure{margin:0!important;padding:0!important;overflow:hidden;background:#000;}
html body .wp-block-gallery img{display:block;width:100%;height:100%;object-fit:cover;aspect-ratio:1/1;filter:saturate(0.82) contrast(1.06) brightness(0.85);transition:filter 0.4s ease,transform 0.6s ease;}
html body .wp-block-gallery img:hover{filter:saturate(1.15) contrast(1.12) brightness(1);transform:scale(1.04);}

/* BUTTONS */
html body .wp-block-buttons{display:flex;gap:1rem;padding:0 max(5vw,32px)!important;max-width:var(--maxw);margin:3rem auto!important;flex-wrap:wrap;}
html body .wp-block-button{margin:0!important;display:inline-block;}
html body .wp-block-button__link{display:inline-flex!important;align-items:center;gap:14px;font-family:var(--mono)!important;font-weight:600!important;font-size:11.5px!important;letter-spacing:0.2em!important;text-transform:uppercase!important;background:var(--accent)!important;color:var(--accent-ink)!important;border-radius:0!important;padding:1.4rem 2.2rem!important;border:0!important;position:relative;transition:transform 0.18s,box-shadow 0.18s;}
html body .wp-block-button__link::before{content:'';display:inline-block;width:8px;height:8px;background:var(--accent-ink);border-radius:50%;}
html body .wp-block-button__link::after{content:'→';font-size:14px;line-height:1;}
html body .wp-block-button__link:hover{transform:translate(-3px,-3px);box-shadow:6px 6px 0 var(--ink);}
html body .wp-block-button.is-style-outline .wp-block-button__link{background:transparent!important;color:var(--ink)!important;border:1px solid var(--rule-mid)!important;}
html body .wp-block-button.is-style-outline .wp-block-button__link::before{background:var(--accent);}
html body .wp-block-button.is-style-outline .wp-block-button__link:hover{border-color:var(--accent)!important;color:var(--accent)!important;box-shadow:6px 6px 0 var(--rule);}

/* COLUMNS */
html body .wp-block-columns{gap:3rem!important;}
html body .wp-block-column h3:first-child{margin-top:0!important;}

/* FORMS */
html body form{font-family:var(--sans);max-width:none!important;}
html body form input,html body form textarea,html body form select{background:rgba(10,10,10,0.6)!important;border:1px solid var(--rule-mid)!important;color:var(--ink)!important;border-radius:0!important;font-family:var(--sans)!important;font-size:1rem!important;padding:16px 18px!important;transition:border-color 0.2s,background 0.2s;width:100%;backdrop-filter:blur(6px);}
html body form input:focus,html body form textarea:focus,html body form select:focus{border-color:var(--accent)!important;outline:none!important;background:rgba(20,20,20,0.8)!important;}
html body form label{font-family:var(--mono)!important;font-size:10.5px!important;font-weight:500!important;text-transform:uppercase!important;letter-spacing:0.2em!important;color:var(--ink-dim)!important;display:grid;gap:10px;}
html body form button{font-family:var(--mono)!important;font-weight:600!important;font-size:11.5px!important;letter-spacing:0.2em!important;text-transform:uppercase!important;background:var(--accent)!important;color:var(--accent-ink)!important;border-radius:0!important;padding:1.4rem 2.4rem!important;border:0!important;cursor:pointer;transition:transform 0.18s,box-shadow 0.18s;display:inline-flex;align-items:center;gap:12px;justify-self:start;}
html body form button:hover{transform:translate(-3px,-3px);box-shadow:6px 6px 0 var(--ink);}

/* SEPARATORS / FOOTER / SPACER */
html body hr.wp-block-separator{border:0!important;border-top:1px solid var(--rule)!important;margin:0!important;width:100vw!important;max-width:100vw!important;opacity:1!important;}
html body .site-footer,html body footer.site-footer,html body .footer-sml-section-1,html body .footer-sml-section-2,html body .site-below-footer-wrap{background:#000!important;border-top:1px solid var(--rule);color:var(--ink-dim)!important;font-family:var(--mono)!important;font-size:10.5px!important;letter-spacing:0.18em!important;text-transform:uppercase;padding:3rem 5vw 4rem!important;}
html body .site-footer a{color:var(--ink-dim)!important;border:0!important;background:none!important;}
html body .site-footer a:hover{color:var(--accent)!important;}
.wp-block-spacer{height:0!important;}

/* ============================================================================
   COMPONENTS (used inside wp:html blocks across pages)
   ========================================================================== */

/* ---- HUB FORK (home) : 6 vertical panels ---- */
html body .fork-grid{display:grid!important;grid-template-columns:repeat(3,1fr)!important;gap:0!important;width:100vw!important;position:relative;left:50%!important;right:50%!important;margin-left:-50vw!important;margin-right:-50vw!important;margin-top:0!important;margin-bottom:0!important;background:var(--rule);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);}
html body .fork-panel{position:relative;display:flex!important;flex-direction:column;justify-content:flex-end;min-height:62vh;padding:2.6rem 2rem 2.4rem!important;color:#fff!important;text-decoration:none!important;overflow:hidden;background:#000!important;border-right:1px solid var(--rule);border-bottom:1px solid var(--rule);--pa:var(--accent);}
html body .fork-panel:nth-child(3n){border-right:0;}
html body .fork-panel::before{content:'';position:absolute;inset:0;background-image:var(--panel-img);background-size:cover;background-position:center;filter:saturate(0.6) brightness(0.4) contrast(1.05);z-index:0;transition:filter 0.6s ease,transform 0.9s ease;}
html body .fork-panel::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0.2) 0%,rgba(0,0,0,0.45) 45%,rgba(0,0,0,0.92) 100%);z-index:1;pointer-events:none;}
html body .fork-panel:hover::before{filter:saturate(1.05) brightness(0.72) contrast(1.1);transform:scale(1.06);}
html body .fork-panel>*{position:relative;z-index:2;}
html body .fork-panel .fork-num{font-family:var(--mono)!important;font-size:10.5px!important;font-weight:500!important;letter-spacing:0.22em!important;text-transform:uppercase!important;color:var(--pa)!important;display:flex!important;align-items:center;gap:12px;margin:0 0 1.3rem!important;}
html body .fork-panel .fork-num::before{content:'';width:22px;height:1px;background:var(--pa);flex-shrink:0;display:inline-block;}
html body .fork-panel h3{font-family:var(--display)!important;font-size:clamp(1.5rem,1.9vw,2.1rem)!important;font-weight:700!important;line-height:0.98!important;letter-spacing:-0.025em!important;margin:0 0 0.8rem!important;color:#fff!important;display:block!important;}
html body .fork-panel h3::before{display:none!important;}
html body .fork-panel p{font-family:var(--sans)!important;font-size:0.95rem!important;line-height:1.5!important;color:#d8d6cc!important;margin:0 0 1.5rem!important;max-width:34ch!important;font-weight:400!important;}
html body .fork-panel .fork-arrow{font-family:var(--mono)!important;font-size:10.5px!important;font-weight:500!important;letter-spacing:0.2em!important;text-transform:uppercase!important;color:var(--pa)!important;align-self:flex-start;transition:transform 0.35s ease,letter-spacing 0.3s ease;border-bottom:1px solid var(--pa);padding-bottom:4px;}
html body .fork-panel:hover .fork-arrow{transform:translateX(8px);letter-spacing:0.24em;}
html body .fork-panel:hover{box-shadow:inset 0 0 0 1px var(--pa);}

/* keep the legacy 5-panel services-grid working too */
html body .services-grid{display:grid!important;grid-template-columns:repeat(5,1fr)!important;gap:0!important;width:100vw!important;position:relative;left:50%!important;right:50%!important;margin-left:-50vw!important;margin-right:-50vw!important;background:var(--rule);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);}
html body .service-panel{position:relative;display:flex!important;flex-direction:column;justify-content:flex-end;min-height:80vh;padding:3rem 2rem 2.5rem!important;color:#fff!important;text-decoration:none!important;overflow:hidden;background:none!important;border-right:1px solid var(--rule);}
html body .service-panel:last-child{border-right:0;}
html body .service-panel::before{content:'';position:absolute;inset:0;background-image:var(--bg);background-size:cover;background-position:center;filter:saturate(0.7) brightness(0.5) contrast(1.05);z-index:0;transition:filter 0.6s ease,transform 0.9s ease;}
html body .service-panel::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0.25) 0%,rgba(0,0,0,0.4) 45%,rgba(0,0,0,0.9) 100%);z-index:1;}
html body .service-panel>*{position:relative;z-index:2;}
html body .service-panel .panel-num{font-family:var(--mono)!important;font-size:10.5px!important;letter-spacing:0.22em!important;text-transform:uppercase!important;color:var(--accent)!important;display:flex!important;align-items:center;gap:12px;margin:0 0 1.4rem!important;}
html body .service-panel h3{font-family:var(--display)!important;font-size:clamp(1.4rem,1.7vw,2rem)!important;font-weight:700!important;line-height:0.98!important;margin:0 0 0.9rem!important;color:#fff!important;}
html body .service-panel p{font-size:0.95rem!important;color:#d8d6cc!important;margin:0 0 1.6rem!important;max-width:32ch!important;}
html body .service-panel .panel-arrow{font-family:var(--mono)!important;font-size:10.5px!important;letter-spacing:0.2em!important;text-transform:uppercase!important;color:var(--accent)!important;border-bottom:1px solid var(--accent);padding-bottom:4px;}

/* ---- EYEBROW ---- */
html body .eyebrow{font-family:var(--mono)!important;font-size:10.5px!important;font-weight:500!important;letter-spacing:0.22em!important;text-transform:uppercase!important;color:var(--accent)!important;display:flex;align-items:center;gap:14px;}
html body .eyebrow::before{content:'';width:24px;height:1px;background:var(--accent);display:inline-block;flex-shrink:0;}

/* ---- STAT BAND ---- */
html body .stat-band{display:grid!important;grid-template-columns:repeat(4,1fr)!important;gap:0;width:100vw!important;position:relative;left:50%!important;right:50%!important;margin-left:-50vw!important;margin-right:-50vw!important;background:var(--rule);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);}
html body .stat{background:var(--bg);padding:3.5rem 2.4rem;border-right:1px solid var(--rule);}
html body .stat:last-child{border-right:0;}
html body .stat .stat-n{font-family:var(--display)!important;font-size:clamp(2.6rem,4.5vw,4rem);font-weight:700;line-height:0.9;letter-spacing:-0.04em;color:var(--ink);}
html body .stat .stat-n em{font-family:var(--mono);font-style:normal;font-size:0.4em;color:var(--accent);vertical-align:super;margin-left:4px;letter-spacing:0;}
html body .stat .stat-l{font-family:var(--mono)!important;font-size:10.5px;letter-spacing:0.18em;text-transform:uppercase;color:var(--ink-dim);margin-top:1.1rem;line-height:1.5;}

/* ---- SPEC / PRODUCT CARDS (Bucky/Podboi/LinkSwarm etc.) ---- */
html body .spec-grid{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))!important;gap:1px;width:100vw!important;position:relative;left:50%!important;right:50%!important;margin-left:-50vw!important;margin-right:-50vw!important;background:var(--rule);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);}
html body .spec-card{background:var(--surface);padding:2.8rem 2.2rem 2.4rem;position:relative;transition:background 0.3s ease;}
html body .spec-card:hover{background:var(--surface-2);}
html body .spec-card .spec-tag{font-family:var(--mono)!important;font-size:10px;letter-spacing:0.2em;text-transform:uppercase;color:var(--accent);display:block;margin-bottom:1.4rem;}
html body .spec-card h4{font-family:var(--display)!important;font-size:1.7rem;font-weight:700;letter-spacing:-0.02em;color:var(--ink);margin:0 0 0.3rem;line-height:1;}
html body .spec-card .spec-sub{font-family:var(--ital)!important;font-style:italic;font-size:1.05rem;color:var(--accent);margin:0 0 1.4rem;}
html body .spec-card p{font-size:0.97rem;line-height:1.6;color:var(--ink-2);margin:0 0 1.4rem;max-width:none;}
html body .spec-card ul{list-style:none;margin:0;padding:0;border-top:1px solid var(--rule-mid);}
html body .spec-card ul li{font-family:var(--mono)!important;font-size:11px;letter-spacing:0.05em;color:var(--ink-2);padding:0.7rem 0 0.7rem 1.4rem;border-bottom:1px solid var(--rule);position:relative;text-transform:uppercase;}
html body .spec-card ul li::before{content:'+';position:absolute;left:0;color:var(--accent);}

/* ---- FEATURE ROWS (alternating text / visual) ---- */
html body .feat-row{display:grid!important;grid-template-columns:1fr 1fr!important;gap:0;width:100vw!important;position:relative;left:50%!important;right:50%!important;margin-left:-50vw!important;margin-right:-50vw!important;border-bottom:1px solid var(--rule);}
html body .feat-row .feat-text{padding:8vh 5vw;display:flex;flex-direction:column;justify-content:center;border-right:1px solid var(--rule);}
html body .feat-row.rev .feat-text{order:2;border-right:0;border-left:1px solid var(--rule);}
html body .feat-row .feat-text h3{font-family:var(--display)!important;font-size:clamp(1.6rem,2.6vw,2.4rem);font-weight:700;letter-spacing:-0.025em;line-height:1.02;color:var(--ink);margin:1.2rem 0 1.2rem;}
html body .feat-row .feat-text p{font-size:1.05rem;line-height:1.7;color:var(--ink-2);margin:0 0 1rem;max-width:48ch;}
html body .feat-row .feat-vis{min-height:60vh;background-size:cover;background-position:center;position:relative;}
html body .feat-row .feat-vis::after{content:'';position:absolute;inset:0;background:linear-gradient(120deg,rgba(0,0,0,0.55),rgba(0,0,0,0.15));}

/* ---- CASE STUDY CARDS (what we've done) ---- */
html body .case-grid{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(320px,1fr))!important;gap:2px;width:100vw!important;position:relative;left:50%!important;right:50%!important;margin-left:-50vw!important;margin-right:-50vw!important;background:var(--rule);}
html body a.case-card{position:relative;min-height:46vh;display:flex;flex-direction:column;justify-content:flex-end;padding:2.4rem 2rem;text-decoration:none!important;overflow:hidden;background:#000;}
html body a.case-card::before{content:'';position:absolute;inset:0;background-image:var(--panel-img);background-size:cover;background-position:center;filter:saturate(0.7) brightness(0.45) contrast(1.05);transition:transform 0.8s ease,filter 0.5s ease;}
html body a.case-card::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0.1),rgba(0,0,0,0.9));}
html body a.case-card:hover::before{transform:scale(1.06);filter:saturate(1) brightness(0.6);}
html body a.case-card>*{position:relative;z-index:2;}
html body a.case-card .case-tag{font-family:var(--mono)!important;font-size:10px;letter-spacing:0.2em;text-transform:uppercase;color:var(--accent);margin-bottom:0.9rem;}
html body a.case-card h4{font-family:var(--display)!important;font-size:1.4rem;font-weight:700;letter-spacing:-0.02em;color:#fff;margin:0 0 0.5rem;line-height:1.05;}
html body a.case-card p{font-size:0.92rem;color:#cfcdc4;margin:0;max-width:36ch;}

/* ---- PULL QUOTE ---- */
html body .pull{width:100vw!important;position:relative;left:50%!important;right:50%!important;margin-left:-50vw!important;margin-right:-50vw!important;padding:12vh 5vw;text-align:center;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);background:var(--surface);}
html body .pull blockquote{font-family:var(--ital)!important;font-style:italic;font-size:clamp(1.6rem,3.2vw,2.8rem);line-height:1.2;letter-spacing:-0.02em;color:var(--ink);max-width:24ch;margin:0 auto;}
html body .pull cite{display:block;font-family:var(--mono)!important;font-style:normal;font-size:10.5px;letter-spacing:0.2em;text-transform:uppercase;color:var(--accent);margin-top:2rem;}

/* ---- CTA BAND ---- */
html body .cta-band{width:100vw!important;position:relative;left:50%!important;right:50%!important;margin-left:-50vw!important;margin-right:-50vw!important;padding:16vh 5vw;text-align:center;background:radial-gradient(ellipse 900px 500px at 50% 120%,color-mix(in srgb,var(--accent) 18%,transparent),transparent 70%),#000;border-top:1px solid var(--rule);overflow:hidden;}
html body .cta-band .eyebrow{justify-content:center;margin-bottom:2rem;}
html body .cta-band h2{font-family:var(--display)!important;font-size:clamp(2.2rem,5.5vw,5rem)!important;font-weight:700;letter-spacing:-0.04em;line-height:0.96;color:var(--ink);margin:0 auto 2.5rem;max-width:18ch;}
html body .cta-band h2 em{font-family:var(--ital);font-style:italic;color:var(--accent);}
html body .cta-band .cta-actions{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;}
html body .cta-band a.btn{display:inline-flex;align-items:center;gap:14px;font-family:var(--mono)!important;font-weight:600;font-size:11.5px;letter-spacing:0.2em;text-transform:uppercase;background:var(--accent);color:var(--accent-ink);padding:1.4rem 2.4rem;text-decoration:none;transition:transform 0.18s,box-shadow 0.18s;}
html body .cta-band a.btn::after{content:'→';}
html body .cta-band a.btn:hover{transform:translate(-3px,-3px);box-shadow:6px 6px 0 var(--ink);}
html body .cta-band a.btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--rule-mid);}
html body .cta-band a.btn.ghost:hover{border-color:var(--accent);color:var(--accent);box-shadow:6px 6px 0 var(--rule);}

/* ---- SECTION INTRO (eyebrow + lead inside wp:html) ---- */
html body .sec-intro{max-width:var(--maxw);margin:7rem auto 0;padding:2.5rem max(5vw,32px) 0;border-top:1px solid var(--rule);}
html body .sec-intro .eyebrow{margin-bottom:1.6rem;}
html body .sec-intro h2{font-family:var(--display)!important;font-size:clamp(1.8rem,3.5vw,3.2rem);font-weight:700;letter-spacing:-0.03em;line-height:1;color:var(--ink);margin:0 0 1.2rem;max-width:20ch;}
html body .sec-intro p{font-size:1.1rem;line-height:1.7;color:var(--ink-2);max-width:58ch;margin:0;}

/* ---- ROSTER (client list with service tags) ---- */
html body .roster{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))!important;gap:1px;width:100vw!important;position:relative;left:50%!important;right:50%!important;margin-left:-50vw!important;margin-right:-50vw!important;background:var(--rule);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);}
html body .roster .ritem{background:var(--bg);padding:1.7rem 1.9rem;transition:background 0.3s ease;}
html body .roster .ritem:hover{background:var(--surface);}
html body .roster .ritem .rn{font-family:var(--display)!important;font-size:1.18rem;font-weight:700;letter-spacing:-0.02em;color:var(--ink);line-height:1.05;}
html body .roster .ritem .rtags{margin-top:0.8rem;display:flex;flex-wrap:wrap;gap:6px;}
html body .roster .ritem .rtags span{font-family:var(--mono)!important;font-size:9.5px;letter-spacing:0.12em;text-transform:uppercase;color:var(--accent);border:1px solid var(--rule-mid);padding:3px 7px;line-height:1.3;}

/* ---- NAMEWALL / CREDITS (long lists of shows, festivals) ---- */
html body .namewall{width:100vw!important;position:relative;left:50%!important;right:50%!important;margin-left:-50vw!important;margin-right:-50vw!important;padding:10vh 5vw!important;background:radial-gradient(ellipse 900px 500px at 50% 0%,color-mix(in srgb,var(--accent) 6%,transparent),transparent 60%),var(--surface);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);}
html body .namewall .nw-head{max-width:var(--maxw);margin:0 auto 3rem;text-align:center;}
html body .namewall .nw-head .eyebrow{justify-content:center;margin-bottom:1.2rem;}
html body .namewall .nw-head h3{font-family:var(--display)!important;font-size:clamp(1.4rem,2.6vw,2.2rem);font-weight:700;letter-spacing:-0.025em;color:var(--ink);margin:0;line-height:1.05;}
html body .namewall .nw-list{font-family:var(--display)!important;font-weight:600;font-size:clamp(1.05rem,1.9vw,1.7rem);line-height:1.65;letter-spacing:-0.02em;color:var(--ink-dim);max-width:1180px;margin:0 auto;text-align:center;}
html body .namewall .nw-list span{color:var(--ink-2);white-space:nowrap;}
html body .namewall .nw-list span.key{color:var(--ink);}
html body .namewall .nw-list span:not(:last-child)::after{content:' / ';color:var(--accent);font-weight:400;}

/* ---- ROLE NOTE (partnership / credit context) ---- */
html body .role-note{max-width:var(--maxw);margin:3rem auto;padding:2rem max(5vw,32px);border-left:2px solid var(--accent);background:var(--surface);}
html body .role-note p{font-family:var(--sans)!important;font-size:1.02rem;line-height:1.65;color:var(--ink-2)!important;margin:0;max-width:64ch;}
html body .role-note p strong{color:var(--ink)!important;}
html body .role-note .rl{font-family:var(--mono)!important;font-size:10px;letter-spacing:0.2em;text-transform:uppercase;color:var(--accent);display:block;margin-bottom:0.8rem;}

/* ---- PHOTO / VIDEO SLOTS (placeholders for Alex's real media) ---- */
html body .media-slots{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))!important;gap:2px;width:100vw!important;max-width:100vw!important;position:relative;left:50%!important;right:50%!important;margin-left:-50vw!important;margin-right:-50vw!important;background:var(--rule);justify-items:stretch!important;}
html body .photo-slot{min-height:40vh;width:100%;display:flex!important;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:14px;padding:2rem;background:repeating-linear-gradient(45deg,#0d0d0d,#0d0d0d 14px,#121212 14px,#121212 28px);border:1px dashed var(--rule-mid);}
html body .photo-slot .ps-tag{font-family:var(--mono)!important;font-size:10px;letter-spacing:0.2em;text-transform:uppercase;color:var(--accent);}
html body .photo-slot .ps-desc{font-family:var(--sans)!important;font-size:1rem;line-height:1.5;color:var(--ink);max-width:36ch;margin:0;}
html body .photo-slot .ps-file{font-family:var(--mono)!important;font-size:10.5px;letter-spacing:0.03em;color:var(--ink-dim);background:#000;padding:5px 10px;border:1px solid var(--rule);}
/* FILLED real-photo / video tile — drops into a .media-slots grid in place of a .photo-slot */
html body .media-slots .shot{position:relative;margin:0;min-height:46vh;width:100%;overflow:hidden;display:block;background:#000;}
html body .media-slots .shot img,html body .media-slots .shot video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s ease;}
html body .media-slots .shot:hover img,html body .media-slots .shot:hover video{transform:scale(1.045);}
html body .media-slots .shot figcaption{position:absolute;left:0;right:0;bottom:0;z-index:2;font-family:var(--mono)!important;font-size:11px;letter-spacing:0.1em;text-transform:uppercase;color:#fff;background:linear-gradient(transparent,rgba(0,0,0,0.9));padding:2.6rem 1rem 0.95rem;}
html body .media-slots .shot figcaption .shot-k{color:var(--accent);}
html body .media-slots .shot.tall{min-height:64vh;}
/* video tiles use native controls (bottom bar) — move the caption to the TOP so it doesn't collide */
html body .media-slots .shot.vid video{cursor:pointer;}
html body .media-slots .shot.vid figcaption{top:0;bottom:auto;background:linear-gradient(rgba(0,0,0,0.9),transparent);padding:0.95rem 1rem 2.6rem;}
html body .media-slots .shot.vid:hover video{transform:none;}
/* LOGO WALL — reference / client brand marks */
html body .logo-wall{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(150px,1fr))!important;gap:1px;width:100vw!important;max-width:100vw!important;position:relative;left:50%!important;margin-left:-50vw!important;background:var(--rule);justify-items:stretch!important;margin-top:2rem;}
html body .logo-wall .logo-cell{display:flex;align-items:center;justify-content:center;padding:1.8rem 1.4rem;min-height:120px;background:#0c0c0c;}
html body .logo-wall .logo-cell img{max-width:100%;max-height:58px;width:auto;height:auto;object-fit:contain;filter:grayscale(1) brightness(1.7) contrast(0.95);opacity:0.62;transition:filter .25s,opacity .25s,transform .25s;}
html body .logo-wall .logo-cell:hover img{filter:none;opacity:1;transform:scale(1.05);}
/* color variant — for vibe/festival walls, no greyscale */
html body .logo-wall.color .logo-cell img{filter:none;opacity:0.9;}
html body .logo-wall.color .logo-cell:hover img{opacity:1;transform:scale(1.05);}
/* FAQ accordion (no-JS via <details>) */
html body .faq{max-width:var(--maxw);margin:0 auto;padding:0 max(5vw,32px);}
html body .faq details{border-bottom:1px solid var(--rule);}
html body .faq details:first-of-type{border-top:1px solid var(--rule);}
html body .faq summary{cursor:pointer;list-style:none;padding:1.4rem 0;font-family:var(--display)!important;font-size:clamp(1.05rem,1.6vw,1.35rem);font-weight:600;color:var(--ink);display:flex;justify-content:space-between;align-items:center;gap:1rem;}
html body .faq summary::-webkit-details-marker{display:none;}
html body .faq summary::after{content:"+";color:var(--accent);font-size:1.5em;line-height:1;flex:0 0 auto;}
html body .faq details[open] summary::after{content:"\2212";}
html body .faq details p{padding:0 0 1.4rem;color:var(--ink-2);line-height:1.7;max-width:74ch;margin:0;}
/* solo feat-row — text-only feature (no visual half) */
html body .feat-row.solo{grid-template-columns:1fr!important;}
html body .feat-row.solo .feat-text{border-right:0!important;border-left:0!important;}
/* photo-slot used as the visual half of a feat-row */
html body .feat-row .photo-slot{min-height:60vh;}

/* ---- TAG LIST (positions worked, gear/brands) ---- */
html body .taglist{display:flex;flex-wrap:wrap;gap:8px;max-width:var(--maxw);margin:1.6rem auto 0;padding:0 max(5vw,32px);}
html body .taglist span{font-family:var(--mono)!important;font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:var(--ink-2);border:1px solid var(--rule-mid);padding:8px 13px;transition:border-color .2s,color .2s;}
html body .taglist span:hover{border-color:var(--accent);color:var(--accent);}
html body .taglist span.hd{background:var(--accent);color:var(--accent-ink)!important;border-color:var(--accent);font-weight:700;}

/* ============================================================================
   RESPONSIVE
   ========================================================================== */
@media (max-width:1080px){
  html body .fork-grid{grid-template-columns:repeat(2,1fr)!important;}
  html body .fork-panel:nth-child(3n){border-right:1px solid var(--rule);}
  html body .fork-panel:nth-child(2n){border-right:0;}
  html body .services-grid{grid-template-columns:repeat(2,1fr)!important;}
  html body .service-panel{min-height:60vh;}html body .service-panel:nth-child(5){grid-column:1 / -1;}
  html body .stat-band{grid-template-columns:repeat(2,1fr)!important;}
  html body .stat:nth-child(2n){border-right:0;}
  html body .feat-row{grid-template-columns:1fr!important;}
  html body .feat-row .feat-text{border-right:0!important;border-left:0!important;order:2!important;}
  html body .feat-row .feat-vis{order:1;min-height:42vh;}
}
@media (max-width:880px){
  body::before{font-size:9px;letter-spacing:0.12em;height:24px;justify-content:flex-start;padding-left:16px;}
  html body .ast-theme-transparent-header .site-header{padding-top:0!important;top:0;}
  html body .wp-block-cover.alignfull{min-height:86vh!important;}
  html body .wp-block-cover h1{font-size:2.5rem!important;}
  html body .wp-block-cover.alignfull h2{font-size:2rem!important;}
  html body .entry-content>h2{grid-template-columns:1fr!important;gap:0.5rem!important;font-size:1.9rem!important;}
  html body .wp-block-gallery{grid-template-columns:repeat(2,1fr)!important;}
  html body .case-grid,html body .spec-grid{grid-template-columns:1fr!important;}
  html body .wp-block-columns{flex-direction:column!important;gap:2rem!important;}
  html body .wp-block-cover .wp-block-cover__inner-container{padding:24px 28px!important;margin:0 5vw 4vh!important;}
}
@media (max-width:680px){
  html body .fork-grid{grid-template-columns:1fr!important;}
  html body .fork-panel{min-height:54vh;border-right:0!important;}
  html body .stat-band{grid-template-columns:1fr!important;}
  html body .stat{border-right:0!important;}
}

/* ============================================================================
   FILL + WIDE-SCREEN FIXES  (panels were <a> elements sizing to content, not cell)
   ========================================================================== */
:root{--maxw:1480px;}
/* full-bleed sections: width:100vw was being capped by an inherited max-width (1200) — force it */
html body .fork-grid,html body .services-grid,html body .spec-grid,html body .stat-band,html body .roster,html body .case-grid,html body .namewall,html body .feat-row,html body .cta-band,html body .pull{max-width:100vw!important;}
/* grid items must fill their cells — anchors don't stretch by default */
html body .fork-grid,html body .services-grid,html body .spec-grid,html body .stat-band,html body .roster,html body .case-grid{justify-items:stretch!important;}
html body .fork-panel,html body .service-panel,html body a.case-card,html body a.spec-card,html body .spec-card,html body .stat,html body .ritem{width:100%!important;max-width:none!important;}
/* lead paragraph: match the body content column (was a narrow centered floaty block) */
html body .has-medium-font-size{max-width:var(--maxw)!important;}
html body .entry-content>.has-medium-font-size{font-size:clamp(1.45rem,2.1vw,2rem)!important;text-wrap:pretty;}
/* taller panels read better on very wide monitors */
@media (min-width:1500px){
  html body .fork-panel{min-height:56vh;}
}
/* mobile: trim the logo + tighten hero card so it doesn't dominate */
@media (max-width:880px){
  html body img.custom-logo,html body .site-logo-img img,html body span.site-logo-img img,html body .ast-site-identity img,html body .custom-logo-link img{max-height:78px!important;height:78px!important;}
}
