/* A broadcast rhythm: framing, light, scale and quiet movement. */
:root{--ease-editorial:cubic-bezier(.22,1,.36,1)}
.site-header{transition:background .4s,border-color .4s,box-shadow .4s;isolation:isolate}
.site-header::after{content:'';position:absolute;bottom:-1px;left:0;width:100%;height:2px;background:var(--accent);transform:scaleX(var(--page-progress,0));transform-origin:left;pointer-events:none}
.site-header.is-scrolled{background:rgba(247,244,238,.96);box-shadow:0 5px 30px #25232306;backdrop-filter:blur(12px)}
.hero{position:relative;isolation:isolate;overflow:hidden;padding-top:60px;padding-bottom:60px}
.hero:before{content:'';position:absolute;width:700px;height:700px;z-index:-1;top:-100px;left:-300px;border-radius:50%;background:radial-gradient(ellipse,#e8c7ce55,transparent 66%);pointer-events:none}
.hero-copy{align-self:center}.hero-word{display:block;overflow:hidden;padding:0 .08em .08em 0;margin-bottom:-.08em}.hero-word>span,.hero-word>em{display:block}
.hero-word em{font-style:italic;line-height:1.05}.hero-media{border-radius:2px 2px 110px 2px;min-height:660px}
.hero-media img{object-position:center 29%;transform:translateY(var(--photo-shift,0px)) scale(1.08);transform-origin:50% 35%}
.hero-media figcaption{left:32px;bottom:34px;font-size:28px}.hero-media figcaption small{font-size:12px;line-height:1.5}
.hero-media .frame-label{font-size:11px;left:25px;top:25px;letter-spacing:.16em}
.hero-media:after{inset:65% 0 0;background:linear-gradient(transparent,#210912cc)}
.button{position:relative;isolation:isolate;overflow:hidden;transition:transform .5s var(--ease-editorial),background .4s,color .4s}
.button-gold:before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(110deg,transparent 20%,#ffffff22 47%,transparent 74%);transform:translateX(-120%);transition:transform .75s var(--ease-editorial)}
.button:hover:before,.button:focus-visible:before{transform:translateX(120%)}.button:hover{transform:translateY(-3px)}.button span,.card-cta span{transition:transform .5s var(--ease-editorial)}.button:hover span,.card-cta:hover span{transform:translate(3px,-3px)}
.entry-product-card{border-radius:2px;transition:transform .7s var(--ease-editorial),box-shadow .7s var(--ease-editorial),background .5s}
.entry-product-card:hover{transform:translateY(-7px);box-shadow:0 24px 42px #2523230d}.entry-product-featured{background:linear-gradient(125deg,#672336,#87384e 60%,#652133)}
.format-mark{overflow:hidden;transition:background .6s,border-color .6s}.format-mark>span{transition:transform .8s var(--ease-editorial)}.case-card:hover .format-mark{background:#e5d3d3;border-color:#b48893}.case-card:hover .format-mark>span{transform:translateX(10px)}
.extra-grid>a{transition:background .5s}.extra-grid>a:hover{background:#eee8e1}.team-portrait{overflow:hidden}.team-portrait img{transition:transform 1.1s var(--ease-editorial)}.team-portrait:hover img{transform:scale(1.025)}
.production-frame{margin-top:65px;position:relative;overflow:hidden;height:410px;border-radius:2px 80px 2px 2px}
.production-frame img{width:100%;height:100%;object-fit:cover;object-position:center 45%}
.production-frame:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#171514bb,transparent 80%)}
.production-frame figcaption{position:absolute;left:38px;bottom:35px;z-index:1;font-size:clamp(24px,3.3vw,46px);line-height:1.12;letter-spacing:-.035em;color:var(--paper)}
.production-frame figcaption span{display:block}.production-frame figcaption small{font-size:12px;display:block;margin-top:20px;letter-spacing:0}
.section-heading,.entry-product-card,.results-list article,.case-card,.materials-links,.entry-process li,.team-portrait,.team-copy,.extra-grid>a,.faq-list details,.contact-copy,.lead-form,.production-frame,.entry-situation-grid article{transition:opacity .85s var(--ease-editorial),transform .85s var(--ease-editorial)}
.motion-ready .reveal-pending{opacity:0;transform:translateY(32px)}.motion-ready .reveal-pending:focus-within{opacity:1;transform:none}
.motion-ready .hero-word>span,.motion-ready .hero-word>em{animation:headline-enter 1.15s var(--ease-editorial) both}.motion-ready .hero-word:nth-child(2)>span{animation-delay:.12s}.motion-ready .hero-word:nth-child(3)>em{animation-delay:.24s}
.motion-ready .hero-media{animation:frame-enter 1.5s var(--ease-editorial) both}.motion-ready .hero:before{animation:studio-light 12s ease-in-out infinite alternate}
@supports (background-clip:text) or (-webkit-background-clip:text){.motion-ready .hero-word em{background:linear-gradient(100deg,#642033 5%,#ad536b 33%,#70273a 58%,#8d3650 80%);background-size:230% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:headline-enter 1.15s .24s var(--ease-editorial) both,ink-light 9s 1.5s ease-in-out infinite alternate}}
.motion-ready .results-list article:nth-child(2),.motion-ready .entry-product-card:nth-child(2),.motion-ready .case-card:nth-child(2){transition-delay:.1s}.motion-ready .case-card:nth-child(3){transition-delay:.18s}
@keyframes headline-enter{from{opacity:0;transform:translateY(110%) rotate(2deg)}to{opacity:1;transform:translateY(0) rotate(0)}}
@keyframes frame-enter{from{opacity:0;clip-path:inset(15% 0 15% 0);transform:translateY(28px)}to{opacity:1;clip-path:inset(0);transform:none}}
@keyframes studio-light{from{transform:translate(0,-20px) scale(.9);opacity:.5}to{transform:translate(100px,75px) scale(1.3);opacity:1}}
@keyframes ink-light{from{background-position:0 50%}to{background-position:100% 50%}}
/* Text used to choose or act stays readable on every screen. */
.hero-description,.entry-product-card>p,.case-card p:not(.case-label),.results-list p,.entry-process li p,.extra-grid p,.team-copy>p:not(.lead-paragraph):not(.section-kicker){font-size:16px}
nav,.header-cta,.button,.text-link,.entry-product-card ul,.card-cta,.materials-links>a{font-size:14px}.section-kicker,.eyebrow,.card-label,.case-label{font-size:12px}.brand small{font-size:10px}.case-card>a{font-size:14px;min-height:44px}.lead-form label>span{font-size:14px}.lead-form-heading>p:last-child{font-size:14px}.contact-prompts span,.contact-direct>span,.contact-direct p,.lead-form-footer>p{font-size:12px}.contact-copy>p{font-size:16px}
@media(max-width:1100px) and (min-width:761px){.site-header nav{gap:14px;font-size:13px}.header-cta{font-size:12px}.brand strong{font-size:22px}.hero{gap:32px}.hero-media{min-height:650px}.hero-actions{gap:16px}.section-heading{gap:35px}}
@media(max-width:900px) and (min-width:761px){.site-header .header-cta{display:none}.hero h1{font-size:72px}.hero-description{font-size:15px}.hero-media{min-height:650px}.hero-lead{font-size:22px}}
@media(max-width:760px){.hero{padding-top:34px;padding-bottom:30px;gap:28px}.hero-media{min-height:0;height:450px;border-bottom-right-radius:80px}.hero-media img{object-position:center 25%;transform:scale(1.025)}.hero-media figcaption{left:24px;bottom:27px;font-size:25px}.hero-media .frame-label{left:20px;top:20px;font-size:10px}.hero-word{padding-bottom:.12em;margin-bottom:-.12em}.hero-description{font-size:16px}.hero-actions{gap:18px}.section-heading>p{font-size:16px}.entry-product-card h3{font-size:49px}.card-label{font-size:11px;letter-spacing:.07em;max-width:210px}.production-frame{height:330px;margin-top:34px;border-top-right-radius:55px}.production-frame figcaption{left:23px;bottom:25px;right:20px;font-size:27px}.production-frame:after{background:linear-gradient(0deg,#171514cc,transparent 90%)}.brand small{font-size:8px}.footer-links{font-size:14px}.team-portrait figcaption{font-size:12px}.lead-form{padding:24px}}
@media(max-width:360px){.hero h1{font-size:63px}.hero-media{height:405px}.hero-description{font-size:15px}.lead-form{padding:18px}.hero-actions{gap:10px}.card-label{max-width:185px}.production-frame figcaption{font-size:25px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}.motion-ready .reveal-pending{opacity:1;transform:none}.motion-ready .hero-word em{color:var(--accent);background:none}.hero-media img{transform:none!important}*,*:before,*:after{animation:none!important;transition:none!important}.button:hover,.entry-product-card:hover,.team-portrait:hover img,.case-card:hover .format-mark>span{transform:none}}
/* A distinct opening scene; the rest of the site keeps its light editorial rhythm. */
.hero{color:var(--paper);background:linear-gradient(125deg,#32131f,#5b2033 58%,#411724)}
.hero:before{width:1100px;height:1100px;left:-360px;top:-300px;background:radial-gradient(ellipse,#a04b6255,transparent 64%)}
.hero:after{content:'';position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse at 75% 65%,#a1475026,transparent 55%);pointer-events:none}
.hero .eyebrow{color:#ead1d8}.hero .signal{background:#ead1d8}.hero .hero-lead{color:var(--paper)}.hero .hero-description{color:#e1cfd3}.hero .text-link{color:var(--paper)}
.hero .button-gold{background:var(--paper);color:#542034}.hero .button-gold:hover{background:#e9d5d9}.hero .button-gold:before{background:linear-gradient(110deg,transparent 20%,#732a3b22 47%,transparent 74%)}
.hero h1 em{color:#edcbd4}.hero-media{height:690px;min-height:0}.hero-media .frame-label{color:var(--ink)}
@supports (background-clip:text) or (-webkit-background-clip:text){.motion-ready .hero-word em{background-image:linear-gradient(100deg,#efc6d0 5%,#ffffff 33%,#d69eae 58%,#f8dde4 80%)}}
.hero h1{font-size:clamp(70px,7.4vw,108px)}
.motion-toggle{position:absolute;z-index:2;right:24px;top:25px;border:1px solid #ffffff88;border-radius:2px;padding:9px 12px;background:#32131f99;color:white;font-size:11px;min-height:40px;cursor:pointer;backdrop-filter:blur(8px)}
.motion-toggle:hover{background:#32131f}.motion-toggle:disabled{cursor:default;opacity:.8}
html.effects-off *{animation:none!important;transition:none!important}.effects-off .hero-word em{color:#edcbd4;background:none}.effects-off .hero-media img{transform:none}
@media(max-width:1000px) and (min-width:761px){.hero h1{font-size:clamp(60px,7.4vw,82px)}.hero-media{height:680px}.motion-toggle{top:auto;bottom:115px;right:25px}}
@media(max-width:760px){.hero h1{font-size:clamp(68px,15vw,102px)}.hero{margin:0;padding-left:var(--pad);padding-right:var(--pad);padding-bottom:25px}.hero-media{height:450px;min-height:0}.motion-toggle{top:20px;right:20px;font-size:10px;padding:8px 10px}.hero-media .frame-label{font-size:9px;letter-spacing:.06em}.hero .hero-description{font-size:16px}}
@media(max-width:360px){.hero h1{font-size:63px}.hero-media{height:400px}.hero-media .frame-label{top:20px;left:16px;font-size:8px}.motion-toggle{right:16px;padding:8px;max-width:120px}}
@media(prefers-reduced-motion:reduce){.hero h1 em,.motion-ready .hero-word em{color:#edcbd4;background:none}.hero-media{animation:none}}

html.effects-off{scroll-behavior:auto!important}
