/* EFIR v2 — evolution of the existing system. No build or runtime dependency. */
:root { --pad: clamp(1.2rem,4.3vw,5rem); }
html { scroll-padding-top: 6rem; }
[hidden] { display:none !important; }
.chrome { min-height:76px; gap:1.5rem; }
.bug { font-size:1rem; letter-spacing:.035em; min-height:44px; display:flex; align-items:center; }
.bug .mark { margin-right:.05em; }
.nav { gap:clamp(.9rem,1.8vw,2rem); }
.nav a { font-size:.7rem; min-height:44px; display:flex; align-items:center; }
.chrome__right { gap:1.1rem; }
.lang__btn { min-width:44px; min-height:44px; }
.eyebrow,.section-kicker { font-size:.65rem; font-weight:500; letter-spacing:.12em; text-transform:uppercase; }
.hero { padding:2.1rem var(--pad) 1.6rem; min-height: min(860px,calc(100svh - 76px)); display:flex; flex-direction:column; justify-content:space-between; overflow:hidden; }
.hero::before { display:none; }
.hero .safe { inset:1rem; opacity:.4; }
.hero .safe i { width:12px; height:12px; border-width:1px; }
.hero__topline { display:flex; justify-content:space-between; align-items:center; gap:1rem; position:relative; z-index:2; }
.hero__edition { font-size:.65rem; letter-spacing:.15em; }
.hero__composition { display:grid; grid-template-columns:1.05fr 1fr; gap:3.5vw; align-items:center; padding:3.5rem 0; max-width:1600px; width:100%; margin:auto; }
.hero__copy { position:relative; z-index:2; min-width:0; }
.hero h1 { font-size:clamp(2.35rem,4.55vw,5rem); line-height:1.12; letter-spacing:-.065em; font-weight:800; }
.hero h1>span,.hero h1 em { display:block; }
.hero h1 em { font-weight:200; font-style:normal; letter-spacing:-.065em; margin-top:.12em; max-width:12ch; }
.hero__lead { font-size:clamp(.8rem,1vw,.97rem); line-height:1.8; max-width:43ch; margin-top:1.7rem; color:var(--on-cobalt-2); }
.hero__actions { margin-top:2rem; display:flex; gap:1.25rem; flex-wrap:wrap; align-items:center; }
.btn { min-height:48px; white-space:normal; font-size:.69rem; line-height:1.5; padding:1em 1.3em; }
.btn--white { background:var(--white); color:var(--black); border-color:var(--white); gap:1.7rem; }
.btn--white:hover { background:var(--black); color:var(--white); border-color:var(--black); }
.text-link { display:inline-flex; gap:1rem; align-items:center; min-height:44px; font-size:.68rem; text-decoration:none; border-bottom:1px solid var(--rule-cobalt); }
.text-link:hover { border-color:var(--white); }
.hero__bottom.lower { display:flex; gap:1rem; max-width:none; align-items:center; border-top:1px solid var(--rule-cobalt); padding-top:1.4rem; transform:none!important; opacity:1!important; transition:none; }
.hero__bottom .lower__lamp { width:8px; height:8px; flex:none; }
.hero__bottom .lower__text { flex:1; }
.hero__bottom .lower__title { font-size:.72rem; }
.hero__bottom .lower__sub { font-size:.61rem; margin-top:.35rem; }
.hero__bottom .btn { min-height:44px; background:transparent; border:0; padding:0; font-size:.65rem; }
.hero__bottom .btn:hover { background:transparent; color:var(--white); text-decoration:underline; }
.broadcast { min-width:0; position:relative; }
.broadcast__meta { display:flex; justify-content:space-between; gap:1rem; border-bottom:1px solid var(--rule-cobalt); padding-bottom:1rem; font-size:.54rem; letter-spacing:.1em; }
.broadcast__meta>span:first-child { display:flex; align-items:center; gap:.55rem; }
.signal-dot { display:inline-block; width:7px; height:7px; border-radius:50%; background:var(--red); }
.broadcast__screen { aspect-ratio:1.25; position:relative; isolation:isolate; }
.signal-orbits { position:absolute; inset:4% 2%; display:grid; place-items:center; }
.signal-orbits i { position:absolute; width:80%; aspect-ratio:1; border:1px solid color-mix(in oklab,var(--white) 22%,transparent); border-radius:50%; }
.signal-orbits i:nth-child(2) { width:64%; }
.signal-orbits i:nth-child(3) { width:47%; }
.signal-orbits i:nth-child(4) { width:27%; background:var(--white); border:0; }
.design-window { position:absolute; left:4%; top:13%; width:82%; background:var(--white); color:var(--black); transform:rotate(-7deg); transform-origin:center; }
.design-window__bar { display:flex; justify-content:space-between; padding:3% 4%; border-bottom:1px solid var(--rule-white); font-size:clamp(.35rem,.65vw,.62rem); font-weight:600; }
.design-window__bar>span:first-child { font-size:.45rem; letter-spacing:.2em; }
.design-window__body { position:relative; padding:5% 6% 3%; overflow:hidden; }
.specimen-label { font-size:clamp(.32rem,.55vw,.52rem); letter-spacing:.08em; }
.design-window strong { display:block; margin:5% 0 6%; font-size:clamp(2rem,4.4vw,4.8rem); line-height:.96; letter-spacing:-.065em; position:relative; z-index:2; }
.design-window strong em { font-style:normal; font-weight:200; }
.design-window__mark { position:absolute; width:63%; right:-22%; top:26%; }
.specimen-bottom { border-top:1px solid var(--rule-white); padding-top:4%; display:flex; align-items:center; justify-content:space-between; font-size:clamp(.32rem,.6vw,.58rem); font-weight:500; }
.specimen-arrow { font-size:2rem; line-height:1; }
.design-mobile { position:absolute; width:28%; right:0; bottom:6%; background:var(--black); border:3px solid var(--white); color:var(--white); transform:rotate(7deg); padding:5% 3% 3%; display:grid; gap:1.3rem; }
.design-mobile>span { font-size:clamp(.3rem,.55vw,.52rem); font-weight:700; }
.design-mobile svg { width:74%; margin:.3rem auto; }
.design-mobile b { font-size:clamp(.7rem,1.25vw,1.3rem); line-height:1.05; letter-spacing:-.04em; }
.design-mobile i { font-style:normal; border-top:1px solid var(--rule-black); font-size:1.6rem; }
.design-stamp { position:absolute; right:1%; top:6%; background:var(--black); font-size:1.6rem; line-height:1; font-weight:800; padding:.9rem; transform:rotate(7deg); }
.design-stamp span { display:block; font-size:.45rem; font-weight:400; margin-top:.4rem; letter-spacing:.1em; }
.broadcast__steps { display:grid; grid-template-columns:repeat(3,1fr); gap:.5rem; border-top:1px solid var(--rule-cobalt); padding-top:.85rem; font-size:.58rem; }
.broadcast__steps>span { display:flex; gap:.5rem; color:var(--on-cobalt-2); }
.broadcast__steps b { font-weight:400; opacity:.65; }
.broadcast[data-stage="1"] [data-step="1"],.broadcast[data-stage="2"] [data-step="2"],.broadcast[data-stage="3"] [data-step="3"] { color:var(--white); font-weight:700; }
.broadcast__foot { display:flex; align-items:center; justify-content:space-between; gap:.7rem; font-size:.52rem; color:var(--on-cobalt-2); padding-top:.7rem; }
.broadcast__foot>span { max-width:31ch; }
.broadcast__foot button { font-size:11px; min-height:44px; min-width:80px; text-align:right; text-decoration:underline; text-underline-offset:.3em; }
/* A finite 4.5-second sequence; content and CTA never wait for it. */
.broadcast.is-playing .design-window { animation:window-build 4.5s var(--ease-out) both; }
.broadcast.is-playing .design-mobile { animation:mobile-build 4.5s var(--ease-out) both; }
.broadcast.is-playing .design-stamp { animation:stamp-build 4.5s var(--ease-out) both; }
.broadcast.is-playing .signal-orbits { animation:orbit-build 4.5s var(--ease-out) both; }
@keyframes window-build { 0% { transform:translateY(10%) rotate(0) scale(.65); opacity:0; } 20% { opacity:1; transform:rotate(0) scale(.78); } 42% { transform:rotate(0) scale(.9); } 70%,100% { transform:rotate(-7deg); } }
@keyframes mobile-build { 0%,42% { transform:translateY(15%) rotate(0) scale(.7); opacity:0; } 75%,100% { transform:rotate(7deg); opacity:1; } }
@keyframes stamp-build { 0%,68% { transform:rotate(7deg) scale(.7); opacity:0; } 86%,100% { transform:rotate(7deg); opacity:1; } }
@keyframes orbit-build { 0% { transform:scale(.55) rotate(-30deg); } 65%,100% { transform:scale(1) rotate(0); } }
.work { background:var(--white); color:var(--black); padding:5rem var(--pad); }
.work>* { max-width:var(--max); margin-inline:auto; }
.section-kicker { display:flex; justify-content:space-between; gap:1rem; padding-bottom:1.5rem; border-bottom:1px solid var(--rule-white); }
.section-kicker--indexed { margin-bottom:2.5rem; }
.guide>.section-kicker,.contact>.section-kicker { border-color:var(--rule-black); }
.contact>.section-kicker { display:flex; }
.idents>.section-kicker { grid-column:1/-1; width:100%; max-width:none; margin:0; border-color:var(--rule-cobalt); }
.work__head { display:grid; grid-template-columns:1.1fr 1fr; gap:5rem; align-items:end; padding:2.5rem 0 3rem; }
.work__head h2 { max-width:21ch; font-size:clamp(1.6rem,3vw,2.9rem); line-height:1.2; }
.work__head p { font-size:.86rem; line-height:1.8; color:var(--on-white-2); max-width:45ch; }
.work__grid { display:grid; grid-template-columns:1.1fr 1fr; gap:2rem; }
.work-piece { margin:0; min-width:0; }
.work-art { aspect-ratio:1.24; overflow:hidden; position:relative; padding:1.3rem; }
.work-art--identity { background:var(--black); color:var(--white); }
.art-caption { position:relative; z-index:2; font-size:.55rem; letter-spacing:.08em; }
.work-art--campaign .art-caption,.work-art--campaign .art-bottom { background:color-mix(in oklab,var(--black) 10%,var(--white)); }
.identity-repeat { position:absolute; top:21%; left:5%; font-size:clamp(3rem,7.5vw,8rem); font-weight:800; line-height:.94; letter-spacing:-.08em; }
.identity-repeat span { display:block; }
.identity-repeat span:last-child { font-weight:200; }
.work-art--identity svg { width:59%; position:absolute; right:-20%; top:29%; color:var(--white); }
.art-bottom { display:flex; justify-content:space-between; align-items:center; position:absolute; bottom:1.2rem; left:1.3rem; right:1.3rem; font-size:.52rem; letter-spacing:.1em; }
.art-bottom b { font-size:1.5rem; line-height:1; }
.work-art--campaign { background:color-mix(in oklab,var(--black) 10%,var(--white)); color:var(--black); }
.campaign-poster { position:absolute; width:56%; top:18%; left:12%; background:var(--cobalt); color:var(--white); padding:6%; transform:rotate(-9deg); }
.campaign-poster small { font-size:.4rem; letter-spacing:.13em; }
.campaign-poster strong { position:relative; z-index:1; display:block; font-size:clamp(1.5rem,3.4vw,3.8rem); line-height:1.08; letter-spacing:-.06em; padding:15% 0 24%; }
.campaign-poster em { font-style:normal; font-weight:200; }
.campaign-poster>span:last-child { font-size:.38rem; display:block; border-top:1px solid var(--rule-cobalt); padding-top:8%; }
.poster-dot { width:12%; aspect-ratio:1; border-radius:50%; background:var(--red); position:absolute; right:12%; bottom:20%; }
.campaign-ticket { position:absolute; right:5%; bottom:18%; width:31%; background:var(--white); color:var(--black); font-size:clamp(1.2rem,3vw,3.3rem); line-height:1; font-weight:800; letter-spacing:-.06em; padding:4%; transform:rotate(9deg); }
.campaign-ticket span { display:block; border-top:1px solid var(--rule-white); font-size:.45rem; font-weight:400; letter-spacing:0; margin-top:20%; padding-top:15%; }
figcaption { display:flex; justify-content:space-between; gap:1rem; padding:1.3rem 0; }
figcaption .eyebrow { font-size:.55rem; color:var(--on-white-2); }
figcaption h3 { font-size:1rem; line-height:1.5; margin-top:.45rem; letter-spacing:-.03em; }
figcaption>span { max-width:16ch; text-align:right; font-size:.58rem; line-height:1.7; color:var(--on-white-2); padding-top:.2rem; }
details { border-top:1px solid var(--rule-white); border-bottom:1px solid var(--rule-white); font-size:.73rem; }
summary { cursor:pointer; padding:1rem 0; min-height:48px; }
details p { padding:0 0 1.2rem; line-height:1.8; color:var(--on-white-2); }
.work__note { margin-top:2.5rem; font-size:.67rem; line-height:1.8; color:var(--on-white-2); }
.work :focus-visible { outline-color:var(--black); }
.guide,.rundown,.idents,.contact { padding-block:5rem; }
.guide__head h2,.rundown__head h2 { line-height:1.18; }
.epg__row { grid-template-columns:3rem minmax(0,4fr) minmax(0,6fr) minmax(160px,3fr); padding-block:2rem; }
.epg { counter-reset:service; }
.epg__now { display:none; }
.epg__row::before { counter-increment:service; content:counter(service,decimal-leading-zero); font-size:.67rem; color:var(--on-black-2); }
.epg__row.is-now { background:transparent; }
.epg__row:hover { background:var(--cobalt); }
.epg__name { font-size:clamp(1rem,1.45vw,1.4rem); }
.epg__desc { font-size:.81rem; line-height:1.85; }
.epg__spec li { font-size:.68rem; line-height:1.8; }
.rundown { background:var(--white); }
.sheet__row { padding-block:1.7rem; }
.sheet__row p { font-size:.82rem; line-height:1.8; }
.idents { max-width:none; grid-template-columns:1fr 1.3fr 1fr; }
.ident p { font-size:.79rem; line-height:1.85; }
.ident h2 { line-height:1.3; }
.contact__sign { display:inline-block; width:auto; font-size:.85rem; padding:.8em; box-shadow:none; margin-bottom:1.5rem; }
.contact__copy h2 { max-width:19ch; line-height:1.13; }
.contact .channels { display:flex; }
.foot__brand { flex-wrap:wrap; }
.foot__mark { display:block; width:56px; height:auto; flex:none; color:var(--white); }
.foot__note { max-width:var(--max); margin-inline:auto; font-size:.65rem; }
.foot__meta { font-size:.65rem; }
.foot__cookies { min-height:44px; }
@media(min-width:1600px) { .hero__topline,.hero__bottom { width:100%; max-width:1600px!important; margin-inline:auto; } }
@media(max-width:1100px) { .nav a { font-size:.6rem; } .chrome .onair { display:none; } .hero__composition { gap:2rem; } .hero h1 { font-size:4.5vw; } .hero__actions { gap:.7rem; } .hero__bottom .lower__sub { max-width:58ch; } .epg__row { grid-template-columns:2rem 1fr 1.2fr; } .epg__spec { grid-column:3; } .epg__desc { grid-column:3; grid-row:auto; } .idents { grid-template-columns:1fr; } .ident { max-width:65rem; } }
@media(min-width:651px) and (max-width:1100px) { .epg__row { grid-template-columns:2rem 1fr; } .epg__name { grid-column:2; grid-row:1; } .epg__desc,.epg__spec { grid-column:2; } .epg__desc { font-size:.9rem; max-width:55ch; } .epg__spec li { font-size:.78rem; } }
@media(max-width:900px) { .chrome .onair { display:none; } .hero { min-height:0; } .hero__composition { grid-template-columns:1fr 1fr; padding-block:3rem; gap:1.5rem; } .hero h1 { font-size:4.5vw; } .hero__lead { font-size:.72rem; } .hero__bottom .btn { max-width:14rem; } .design-mobile { gap:.6rem; } .work__head { gap:2rem; } .work__grid { gap:1.3rem; } .broadcast__meta { font-size:.43rem; } }
@media(max-width:650px) {
 .chrome { min-height:66px; padding:.55rem var(--pad); grid-template-columns:1fr auto; gap:.5rem; }
 .bug { font-size:.8rem; } .bug__name { display:inline; } .chrome__right { gap:0; }
 .hero { padding-top:1.4rem; padding-bottom:1.25rem; }
 .hero__topline .eyebrow { max-width:31ch; font-size:.53rem; line-height:1.65; } .hero__edition { font-size:.53rem; }
 .hero__composition { grid-template-columns:1fr; gap:2.3rem; padding-top:2rem; padding-bottom:1.5rem; }
 .hero h1 { font-size:clamp(2rem,8.4vw,3.6rem); letter-spacing:-.06em; }
 .hero h1 em { max-width:16ch; }
 .hero__lead { margin-top:1.2rem; font-size:.74rem; line-height:1.8; max-width:46ch; }
 .hero__actions { margin-top:1.3rem; gap:.7rem 1.2rem; } .hero__actions .btn { font-size:.63rem; min-height:49px; }
 .text-link { font-size:.61rem; }
 .broadcast { width:100%; max-width:470px; margin-inline:auto; }
 .broadcast__screen { aspect-ratio:1.07; }
 .broadcast__meta { font-size:.48rem; }
 .design-window { top:10%; width:78%; left:5%; }
 .design-window strong { font-size:clamp(2.5rem,9vw,3.9rem); }
 .design-window__bar { font-size:.43rem; }
 .specimen-label,.specimen-bottom { font-size:.4rem; }
 .design-mobile { width:27%; right:2%; bottom:4%; gap:.75rem; }
 .design-mobile>span { font-size:.35rem; } .design-mobile b { font-size:.85rem; } .design-mobile i { font-size:1rem; }
 .design-stamp { top:3%; font-size:1.2rem; padding:.65rem; }
 .broadcast__steps { font-size:.54rem; } .broadcast__foot { font-size:.49rem; }
 .hero__bottom.lower { display:none; }
 .work,.guide,.rundown,.idents,.contact { padding-block:3.5rem; }
 .section-kicker { font-size:11px; letter-spacing:.08em; }
 .section-kicker>span+span { font-size:10px; }
 .section-kicker--indexed { margin-bottom:2rem; }
 .idents>.section-kicker { margin-bottom:0; }
 .work__head { grid-template-columns:1fr; padding:2rem 0; gap:1.2rem; }
 .work__head h2 { font-size:1.7rem; }
 .work__head p { font-size:.76rem; }
 .work__grid { grid-template-columns:1fr; gap:2.5rem; }
 .identity-repeat { font-size:16vw; }
 .campaign-poster strong { font-size:7.7vw; }
 .campaign-ticket { font-size:7vw; }
 figcaption h3 { font-size:.9rem; } figcaption>span { font-size:.53rem; }
 .work__note { font-size:.61rem; }
 .epg__row { grid-template-columns:1.5rem 1fr; gap:.8rem; padding:1.5rem .4rem; }
 .epg__name { grid-column:2; grid-row:1; }
 .epg__desc,.epg__spec { grid-column:2; }
 .epg__spec { gap:.4rem .8rem; }
 .guide__head p,.rundown__head p { font-size:.8rem; line-height:1.8; }
 .sheet__row h3 { font-size:1rem; }
 .sheet__row p { font-size:.77rem; }
 .channels .btn { font-size:.67rem; }
 .contact__hours { font-size:.64rem; line-height:1.8; }
 .foot__tag { margin:0; font-size:.65rem; }
}
@media(prefers-reduced-motion:reduce) { html:not(.motion-forced) *,html:not(.motion-forced) *::before,html:not(.motion-forced) *::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; } }
.motion-status { margin:0; padding:.6rem 1rem; font-size:11px; line-height:1.6; border-top:1px solid currentColor; }
html.motion-still *,html.motion-still *::before,html.motion-still *::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
