/* Kino-Ebene: Inhalte bleiben sichtbar, bis js/site.js sie anreichert. */
h1,h2,h3,h4 { font-stretch:normal; font-weight:400; }
h2 { font-size:4.5rem; line-height:1.08; letter-spacing:-.02em; }
.hero { min-height:min(900px,94svh); padding-top:210px; }
.hero-content { padding-bottom:110px; }
.hero h1 { font-size:7.5rem; font-weight:400; line-height:1.03; letter-spacing:-.025em; }
.hero h1 .line { overflow:visible; padding-bottom:.08em; margin-bottom:-.04em; }
.hero h1 .line > span { animation:none; }
.hero h1 .l1,.hero h1 .l2 { font-weight:400; }
.hero h1 .l2 { font-style:italic; position:relative; display:inline-block; background:none; -webkit-text-fill-color:initial; }
.hero-word { --d:0s; position:relative; display:inline-block; animation:word-in .65s var(--ease) var(--d) both; }
.l1 .hero-word:nth-child(2) { --d:.12s; }
.l2 .hero-word { --d:.24s; }
.l2 .hero-word:nth-child(2) { --d:.36s; }
.hero-word::before { content:attr(data-word); position:absolute; inset:0; color:var(--gold-hi); filter:blur(6px); opacity:0; animation:word-blur .7s both; pointer-events:none; }
.l1 .hero-word::before { color:var(--paper); }
@keyframes word-in { from { opacity:0; transform:translate3d(0,22px,0); } to { opacity:1; transform:none; } }
@keyframes word-blur { from { opacity:.6; } to { opacity:0; } }

/* Glanz-Sweep: läuft als zweite Hintergrundebene IN der Schrift (background-clip:text).
   Früher ein ::after-Kasten mit mix-blend-mode, der rechts neben „Powerful Brands.“ als dunkles Rechteck sichtbar wurde. */
.l2 .hero-word {
  background-image:linear-gradient(110deg,transparent 40%,rgba(255,246,222,.95) 50%,transparent 60%),linear-gradient(110deg,var(--gold-hi),var(--gold),var(--gold-lo));
  background-size:250% 100%,100% 100%;
  background-position:0% 0,0 0;
  background-repeat:no-repeat;
  /* Platz für Unterlängen (f) und kursiven Überhang, sonst schneidet background-clip:text sie ab */
  padding:0 .08em .22em .02em; margin:0 -.08em -.22em -.02em;
  -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent;
}
.l2 .hero-word::before { padding:inherit; }
.l2.shine .hero-word { animation:word-in .65s var(--ease) var(--d) both, headline-shine 1.1s calc(var(--d) * .5) ease-out both; }
@keyframes headline-shine { from { background-position:100% 0,0 0; } to { background-position:0% 0,0 0; } }

.hero-row { animation:word-in .65s .4s both; }
.hero .eyebrow { animation:word-in .5s both; }
.viewfinder { display:grid; grid-template-columns:1fr auto 1fr; gap:24px; }
.viewfinder > span:last-child { justify-self:end; }
.viewfinder .showreel-label { justify-self:center; font-size:.625rem; gap:6px; white-space:nowrap; letter-spacing:.08em; }
.showreel-label em { font-style:normal; text-transform:none; }
.hero.has-video .showreel-label { visibility:hidden; }
.leak { animation:none; background:radial-gradient(ellipse at 65% 28%,var(--cinema-glow),transparent 56%); filter:none; transform:translate3d(var(--light-x,0px),var(--light-y,0px),0); transition:transform 1.2s ease-out; }
.projector-dust { position:absolute; inset:0; width:100%; height:100%; pointer-events:none; }
.hero-shade { box-shadow:inset 0 0 160px 30px var(--ink); }
.letterbox { position:absolute; left:0; right:0; height:18%; z-index:3; background:var(--ink); pointer-events:none; animation:letterbox-open 1.05s var(--ease) both; }
.letterbox-top { top:0; --box-direction:-101%; }
.letterbox-bottom { bottom:0; --box-direction:101%; }
@keyframes letterbox-open { from { transform:translateY(0); } to { transform:translateY(var(--box-direction)); } }
.scroll-cue { position:absolute; bottom:37px; left:50%; transform:translateX(-50%); display:flex; align-items:center; gap:13px; color:var(--mute); font-size:.625rem; text-decoration:none; min-height:44px; }
.scroll-cue::before { content:""; height:34px; width:1px; background:var(--gold); transform-origin:top; animation:scroll-line 2.8s ease-in-out infinite; }
@keyframes scroll-line { 0%,100% { transform:scaleY(.45); opacity:.4; } 50% { transform:scaleY(1); opacity:1; } }
.ticker { padding-block:24px; }
.ticker-track { animation-duration:54s; }
.ticker-track span { font-size:2.25rem; font-weight:400; letter-spacing:0; }
.ticker-outline { margin-top:12px; animation-direction:reverse; animation-duration:64s; }
.ticker-outline span { font-style:italic; color:transparent; -webkit-text-stroke:1px var(--cinema-outline); }
.cinema-reveal { opacity:0; transform:translate3d(0,24px,0); transition:opacity .75s var(--ease) var(--reveal-delay,0ms),transform .75s var(--ease) var(--reveal-delay,0ms); }
.cinema-reveal.is-revealed { opacity:1; transform:none; }
.work-media { border:1px solid var(--line-gold); transition:transform .3s ease-out; }
.work-media::after { content:""; position:absolute; inset:0; border:1px solid var(--gold); opacity:0; pointer-events:none; background:radial-gradient(ellipse at var(--shine-x,50%) var(--shine-y,30%),var(--cinema-highlight),transparent 65%); transition:opacity .4s; }
.work-media:hover::after,.work-media:focus-visible::after { opacity:1; }
.work-preview { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0; transition:opacity .4s; }
.work-media.preview-playing .work-preview { opacity:1; }
.work-media.preview-playing .ph { opacity:0; }
.work-meta h3 { font-size:1.75rem; font-weight:400; letter-spacing:0; }
.cinema-cursor { position:fixed; top:0; left:0; width:0; height:0; z-index:100; pointer-events:none; opacity:0; transition:opacity .2s; }
.cinema-cursor.cursor-visible { opacity:1; }
.cursor-ring { position:absolute; width:30px; height:30px; left:-15px; top:-15px; border:1px solid var(--cinema-outline); border-radius:50%; display:grid; place-items:center; transition:transform .25s; }
.cursor-dot { position:absolute; width:4px; height:4px; top:-2px; left:-2px; background:var(--gold-hi); border-radius:50%; }
.cursor-ring span { font-family:var(--f-mono); font-size:7px; color:var(--gold-hi); text-transform:uppercase; opacity:0; transition:opacity .2s; }
.cursor-play .cursor-ring { transform:scale(2); border-color:var(--gold); background:var(--ink); }
.cursor-play .cursor-ring span { opacity:1; }
.cursor-play .cursor-dot { opacity:0; }
@media (hover:hover) and (pointer:fine) { .cinema-pointer,.cinema-pointer a,.cinema-pointer button { cursor:none; } }
.btn { position:relative; overflow:hidden; transition:transform .3s ease-out; }
.btn-primary:hover { filter:none; }
.btn-primary::after { content:""; position:absolute; inset:-10%; background:linear-gradient(110deg,transparent 30%,var(--cinema-paper) 50%,transparent 70%); opacity:0; transform:translateX(-120%); pointer-events:none; }
.btn-primary:hover::after,.btn-primary:focus-visible::after { animation:btn-shine .7s ease-out; }
@keyframes btn-shine { 0% { transform:translateX(-120%); opacity:0; } 30%,65% { opacity:1; } 100% { transform:translateX(120%); opacity:0; } }
.service { position:relative; }
.service::after { content:""; position:absolute; height:1px; bottom:-1px; left:0; right:0; background:var(--gold); transform:scaleX(0); transform-origin:left; transition:transform .55s var(--ease); }
.service:hover::after { transform:scaleX(1); }
.service h3 { font-size:2.75rem; font-weight:400; line-height:1.15; letter-spacing:-.015em; }
.service:hover h3 { font-style:italic; color:var(--gold); }
.services-intro h2 { font-size:3.5rem; }
.process-head h3 { font-weight:400; font-size:2.75rem; }
.steps { position:relative; }
.steps::before { content:""; position:absolute; left:0; right:0; top:0; height:1px; background:var(--gold); transform:scaleX(var(--process-progress,1)); transform-origin:left; }
.step::before { background:var(--mute); }
.step::after { content:""; position:absolute; left:0; top:-4px; width:7px; height:7px; background:var(--gold-hi); box-shadow:var(--cinema-shadow); transform:rotate(45deg); opacity:0; transition:opacity .6s; }
.step-lit::after { opacity:1; }
.step h4 { font-weight:400; font-size:1.6rem; line-height:1.2; letter-spacing:0; }
.paper { position:relative; overflow:hidden; }
.about { position:relative; z-index:1; }
.about-watermark { position:absolute; top:0; right:5%; font-family:var(--f-display); font-style:italic; font-size:24rem; line-height:1; opacity:.035; pointer-events:none; color:var(--gold); }
.about h2 { font-size:6rem; font-weight:400; }
.principles dt { font-weight:400; font-size:1.4rem; }
.contact h2 { font-size:4.5rem; }
.field:not(fieldset) { position:relative; padding-top:12px; gap:0; }
.field:not(fieldset) > label { position:absolute; top:15px; left:0; z-index:1; transform-origin:left; transform:translateY(0); transition:transform .25s; pointer-events:none; }
.field:not(fieldset):focus-within > label,.field:has(input:not(:placeholder-shown)) > label,.field:has(textarea:not(:placeholder-shown)) > label,.field:has(select) > label { transform:translateY(-16px) scale(.9); }
.field:not(fieldset) input::placeholder,.field textarea::placeholder { opacity:0; }
.field:not(fieldset):focus-within input::placeholder,.field:focus-within textarea::placeholder { opacity:1; }
.field:not(fieldset)::after { content:""; position:absolute; bottom:0; left:0; right:0; height:1px; background:var(--gold); transform:scaleX(0); transform-origin:left; transition:transform .4s var(--ease); pointer-events:none; }
.field:not(fieldset):focus-within::after { transform:scaleX(1); }
.field input:focus,.field select:focus,.field textarea:focus { box-shadow:none; border-bottom-color:var(--line-strong); }
.wordmark { position:relative; font-weight:400; font-size:20rem; letter-spacing:-.02em; line-height:1; margin-bottom:30px; }
.wordmark::after { content:"EDWIN"; position:absolute; inset:0; background:linear-gradient(105deg,transparent 25%,var(--gold-hi) 50%,transparent 75%); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; opacity:0; pointer-events:none; animation:footer-shimmer 10s ease-in-out infinite; }
@keyframes footer-shimmer { 0%,100% { opacity:0; transform:translateX(-2px); } 50% { opacity:.38; transform:translateX(2px); } }
.logo { font-weight:500; font-size:1.55rem; }
.btn-sm,.chip,.copy-btn,.check-chip span,.footer-links a { min-height:44px; }
.footer-links a { display:inline-flex; align-items:center; }
.consent { min-height:44px; }
.consent input { width:22px; height:22px; }
.nav a { display:inline-flex; align-items:center; min-height:44px; }
@media (max-width:1200px) { .hero h1 { font-size:6rem; } h2 { font-size:3.75rem; } .services-intro h2 { font-size:3rem; } .contact h2 { font-size:3.75rem; } .hero-row { grid-template-columns:1fr; } .hero-content { padding-bottom:105px; } .service h3 { font-size:2.4rem; } .wordmark { font-size:17rem; } }
@media (max-width:900px) { .hero h1 { font-size:5rem; } .viewfinder .showreel-label { display:none; } .viewfinder { grid-template-columns:1fr 1fr; } .hero { min-height:760px; } .about h2 { font-size:4.5rem; } .wordmark { font-size:13rem; } .steps::before { display:none; } .step::before { background:var(--gold); } }
@media (max-width:600px) {
  .hero { min-height:94svh; padding-top:220px; }
  .hero-content { padding-bottom:92px; }
  .hero h1 { font-size:2.65rem; line-height:1.15; margin-bottom:26px; letter-spacing:-.025em; }
  .hero h1 .line { white-space:nowrap; }
  .hero .eyebrow { font-size:.625rem; gap:8px; letter-spacing:.07em; margin-bottom:22px; }
  .hero .eyebrow::before { width:16px; flex:none; }
  .hero-sub { font-size:1rem; }
  .hero-cta .btn { padding-inline:16px; }
  .scroll-cue { bottom:24px; }
  h2,.services-intro h2,.contact h2 { font-size:2.5rem; line-height:1.12; }
  .service h3 { font-size:2rem; overflow-wrap:anywhere; }
  .process-head h3 { font-size:2.1rem; }
  .about h2 { font-size:3.5rem; }
  .wordmark { font-size:7.25rem; line-height:1.1; }
  .ticker-track span { font-size:1.75rem; gap:28px; padding-right:28px; }
  .ticker { padding-block:18px; }
  .about-watermark { font-size:13rem; right:-5%; top:20px; }
  .form { padding:28px 20px; gap:36px; }
  .field > label { letter-spacing:.07em; }
  .projector-dust,.cinema-cursor { display:none; }
  .hero-shade { box-shadow:inset 0 0 70px 10px var(--ink); }
  .logo small { font-size:.5625rem; letter-spacing:.1em; }
  .work-meta h3 { font-size:1.55rem; }
  .group-label { gap:10px; flex-wrap:wrap; font-size:.8125rem; }
  .work-media:hover .poster,.work-media:hover .ph { transform:none; }
}
@media (max-width:374px) { .hero h1 { font-size:2.4rem; } .hero .eyebrow { font-size:.5625rem; } .logo { gap:7px; } .wordmark { font-size:6.75rem; } }
@media (hover:none), (pointer:coarse) { .projector-dust,.cinema-cursor { display:none; } .work-media:hover::after { opacity:0; } .service:hover h3 { transform:none; } }
@media (prefers-reduced-motion:reduce) {
  *,*::before,*::after { animation:none!important; transition:none!important; }
  .cinema-reveal { opacity:1!important; transform:none!important; }
  .hero-word { opacity:1; transform:none; }
  .hero-word::before,.letterbox,.projector-dust,.cinema-cursor,.wordmark::after { display:none; }
  .photo,.btn,.work-media,.leak { transform:none!important; }
  .steps::before { transform:scaleX(1); }
  .step::before { background:var(--gold); }
  html { scroll-behavior:auto; }
}

/* Schriftzug im Footer passt sich der Breite an (EDWIN = 5 Buchstaben, ca. 3,4 × Schriftgröße breit) */
.wordmark { font-size:min(20rem, calc((100vw - 2 * clamp(16px, 4vw, 48px)) / 3.6)); }
