:root {
  --ink: #080808; --ink-raised: #0f0f0f; --paper: #f2f0ea; --paper-soft: #c7c5bf;
  --paper-dim: #8e8d88; --line: rgba(242,240,234,.18); --line-strong: rgba(242,240,234,.38);
  --danger: #e58a82; --display: 'Poppins', Arial, sans-serif;
  --mono: 'SFMono-Regular', Consolas, 'Liberation Mono', monospace;
  --gutter: clamp(1.25rem,3.3vw,4rem); --section-space: clamp(6rem,11vw,11rem);
  --ease: cubic-bezier(.22,1,.36,1); --bg: var(--ink); --panel: var(--ink-raised);
  --soft: var(--ink-raised); --text: var(--paper); --muted: var(--paper-dim); --green: var(--paper);
}
*,*::before,*::after { box-sizing:border-box; }
html { min-width:320px; scroll-behavior:smooth; scroll-padding-top:6rem; overflow-x:clip; color:var(--paper); background:var(--ink); font-family:var(--display); }
body { min-width:320px; min-height:100vh; margin:0; overflow-x:clip; color:var(--paper); background:var(--ink); font-size:1rem; line-height:1.6; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; }
body.menu-open { overflow:hidden; } ::selection { color:var(--ink); background:var(--paper); }
:focus-visible { outline:1px solid var(--paper); outline-offset:.35rem; }
a { color:inherit; text-decoration:none; } button,input,textarea,select { max-width:100%; min-width:0; color:inherit; font:inherit; }
button { cursor:pointer; } img { display:block; max-width:100%; } p,h1,h2,h3,h4,ul,ol,figure { margin:0; } ul,ol { padding:0; }
h1,h2,h3,h4,p,a,button,label,li { min-width:0; overflow-wrap:anywhere; hyphens:auto; }
.site-shell { width:min(100%,112rem); min-width:0; margin-inline:auto; padding-inline:var(--gutter); }
.skip-link { position:fixed; z-index:1000; top:.75rem; left:.75rem; padding:.75rem 1rem; color:var(--ink); background:var(--paper); font-family:var(--mono); font-size:.75rem; transform:translateY(-200%); }
.skip-link:focus { transform:translateY(0); }
.eyebrow { color:var(--paper-dim); font-family:var(--mono); font-size:.7rem; letter-spacing:.08em; line-height:1.4; text-transform:uppercase; }

/* BLP-Media-Rahmen */
.site-header { position:fixed; z-index:100; inset:0 0 auto; height:5.25rem; border-bottom:1px solid transparent; background:rgba(8,8,8,.84); backdrop-filter:blur(14px); transition:height 260ms var(--ease),border-color 260ms ease,background 260ms ease; }
.site-header.is-scrolled { height:4.5rem; border-color:var(--line); background:rgba(8,8,8,.96); }
.header-inner { display:flex; height:100%; align-items:center; justify-content:space-between; gap:3rem; }
.site-brand { display:inline-flex; flex:0 0 auto; flex-direction:column; line-height:1; }
.site-brand strong { font-size:.98rem; letter-spacing:-.045em; text-transform:uppercase; }
.site-brand span { margin-top:.48rem; color:var(--paper-dim); font-family:var(--mono); font-size:.57rem; letter-spacing:.08em; text-transform:uppercase; }
.site-nav { display:flex; align-items:center; gap:clamp(1.15rem,2.2vw,2.75rem); }
.site-nav a { position:relative; color:var(--paper-soft); font-size:.75rem; font-weight:500; letter-spacing:.025em; transition:color 180ms ease; }
.site-nav a::after { position:absolute; right:0; bottom:-.52rem; left:0; height:1px; background:currentColor; content:''; transform:scaleX(0); transform-origin:right; transition:transform 300ms var(--ease); }
.site-nav a:hover,.site-nav a.active { color:var(--paper); }.site-nav a:hover::after,.site-nav a.active::after { transform:scaleX(1); transform-origin:left; }
.nav-toggle { display:none; width:2.75rem; height:2.75rem; padding:.7rem 0; border:0; background:transparent; }
.nav-toggle span { display:block; width:100%; height:1px; margin-block:.42rem; background:var(--paper); transition:transform 240ms var(--ease); }
.nav-toggle.active span:first-child { transform:translateY(.49rem) rotate(45deg); }.nav-toggle.active span:last-child { transform:rotate(-45deg); }

/* Projektintro */
.upload-hero { display:grid; min-height:100svh; padding-top:5.25rem; border-bottom:1px solid var(--line); grid-template-rows:auto auto 1fr auto; }
.giveaway-wrap { padding-top:clamp(1.5rem,3vh,2.5rem); }
.giveaway-announcement { position:relative; isolation:isolate; display:grid; min-height:5.5rem; align-items:center; gap:1.25rem; padding:1.2rem 4rem 1.2rem 1.4rem; overflow:hidden; border:1px solid var(--line-strong); grid-template-columns:minmax(10rem,.65fr) minmax(16rem,1.15fr) minmax(12rem,.8fr); transition:color 320ms var(--ease),background 320ms var(--ease); }
.giveaway-announcement::before { position:absolute; inset:0; z-index:-1; background:var(--paper); content:''; transform:scaleY(0); transform-origin:bottom; transition:transform 420ms var(--ease); }
.giveaway-announcement:hover { color:var(--ink); }.giveaway-announcement:hover::before { transform:scaleY(1); transform-origin:top; }
.giveaway-label { color:var(--paper-dim); font-family:var(--mono); font-size:.64rem; letter-spacing:.07em; text-transform:uppercase; }.giveaway-announcement:hover .giveaway-label,.giveaway-announcement:hover .giveaway-copy { color:rgba(8,8,8,.62); }
.giveaway-announcement strong { font-size:clamp(1.05rem,1.8vw,1.55rem); font-weight:400; letter-spacing:-.035em; }.giveaway-copy { color:var(--paper-soft); font-size:.78rem; }
.giveaway-arrow { position:absolute; right:1.4rem; font-size:1.15rem; transition:transform 300ms var(--ease); }.giveaway-announcement:hover .giveaway-arrow { transform:translate(.2rem,.2rem); }
.upload-hero-meta { display:flex; align-items:center; justify-content:space-between; gap:1.5rem; padding-top:clamp(2rem,5vh,4rem); }.upload-hero-meta>p:last-child { text-align:right; }
.instagram-stats { display:flex; align-items:center; gap:clamp(.8rem,1.7vw,1.6rem); color:var(--paper-dim); font-family:var(--mono); font-size:.64rem; letter-spacing:.055em; text-transform:uppercase; white-space:nowrap; }
.instagram-stats span { display:inline-flex; align-items:baseline; gap:.35rem; }.instagram-stats strong { color:var(--paper); font-size:.76rem; font-weight:500; }.instagram-profile-button { min-height:2.35rem; padding:.55rem .8rem; align-items:center!important; border:1px solid var(--line-strong); color:var(--paper); transition:color 220ms ease,background 220ms ease,border-color 220ms ease; }.instagram-profile-button>span { font-size:.85rem; transition:transform 220ms var(--ease); }.instagram-stats:hover .instagram-profile-button { border-color:var(--paper); color:var(--ink); background:var(--paper); }.instagram-stats:hover .instagram-profile-button>span { transform:translate(.15rem,-.15rem); }
.upload-title-wrap { display:flex; align-items:center; padding-block:clamp(2.5rem,7vh,5rem); }
.upload-title-wrap h1 { width:100%; font-size:clamp(3.2rem,8.6vw,9.7rem); font-weight:400; letter-spacing:-.075em; line-height:.84; text-transform:uppercase; }
.upload-title-wrap h1 span { display:block; width:max-content; max-width:100%; opacity:0; animation:title-left 1.05s var(--ease) forwards; }
.upload-title-wrap h1 span:last-child { margin-left:auto; animation-name:title-right; animation-delay:100ms; }
@keyframes title-left { from { opacity:0; transform:translateX(-2.5rem); } to { opacity:1; transform:none; } }
@keyframes title-right { from { opacity:0; transform:translateX(2.5rem); } to { opacity:1; transform:none; } }
.upload-hero-bottom { display:grid; align-items:end; gap:3rem; padding-bottom:clamp(2rem,5vh,4rem); grid-template-columns:minmax(16rem,.9fr) 1fr; }
.upload-hero-bottom>p { max-width:36rem; color:var(--paper-soft); font-size:clamp(.95rem,1.25vw,1.18rem); }
.upload-hero-bottom ul { display:flex; justify-content:flex-end; list-style:none; flex-wrap:wrap; gap:.45rem 1.5rem; color:var(--paper-dim); font-family:var(--mono); font-size:.66rem; letter-spacing:.06em; text-transform:uppercase; }

/* Einsendung */
.submission-section { padding-block:var(--section-space); border-bottom:1px solid var(--line); }
.submission-layout { display:grid; gap:clamp(4rem,8vw,10rem); grid-template-columns:minmax(16rem,.7fr) minmax(28rem,1.3fr); }
.submission-intro { position:sticky; top:8rem; align-self:start; }.submission-intro h2 { margin-top:1.8rem; font-size:clamp(3rem,6vw,7rem); font-weight:400; letter-spacing:-.065em; line-height:.92; }
.submission-intro>p:last-child { max-width:29rem; margin-top:2rem; color:var(--paper-soft); font-size:clamp(.95rem,1.25vw,1.12rem); }
.upload-form fieldset { margin:0; padding:clamp(2.5rem,5vw,4.5rem) 0; border:0; border-top:1px solid var(--line); }.upload-form fieldset:first-of-type { padding-top:0; border-top:0; }
.upload-form legend { display:grid; width:100%; margin:0 0 2rem; padding:0; grid-template-columns:3rem 1fr; }.upload-form legend span { color:var(--paper-dim); font-family:var(--mono); font-size:.68rem; }
.upload-form legend strong { font-size:clamp(1.65rem,2.7vw,3rem); font-weight:400; letter-spacing:-.045em; line-height:1; }
.dropzone { position:relative; min-height:19rem; border:1px solid var(--line-strong); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.65rem; text-align:center; transition:color 300ms var(--ease),background 300ms var(--ease); }
.dropzone:hover,.dropzone.is-over { color:var(--ink); background:var(--paper); }.dropzone:hover span,.dropzone.is-over span { color:rgba(8,8,8,.65); }
.dropzone input { position:absolute; inset:0; width:100%; height:100%; opacity:0; cursor:pointer; }.dropzone strong { font-size:clamp(1.35rem,2.2vw,2.3rem); font-weight:400; letter-spacing:-.04em; }
.dropzone span,.field-note { color:var(--paper-dim); font-family:var(--mono); font-size:.65rem; letter-spacing:.035em; }.field-note { margin-top:.8rem; }
.previews { display:grid; margin-top:1.2rem; gap:.65rem; grid-template-columns:repeat(3,1fr); }.preview-card { position:relative; margin:0; overflow:hidden; aspect-ratio:4/5; background:var(--ink-raised); cursor:grab; }
.preview-card img { width:100%; height:100%; object-fit:cover; }.preview-card figcaption,.remove-image { position:absolute; top:.5rem; width:1.9rem; height:1.9rem; display:grid; place-items:center; border:1px solid var(--line-strong); background:rgba(8,8,8,.9); color:var(--paper); font-family:var(--mono); font-size:.65rem; }
.preview-card figcaption { left:.5rem; }.remove-image { right:.5rem; font-size:1rem; }.preview-card.dragging { opacity:.35; }
.text-field { display:block; margin-bottom:2rem; }.text-field>span:first-child,.extras-head>span { display:block; margin-bottom:.55rem; color:var(--paper-dim); font-family:var(--mono); font-size:.67rem; letter-spacing:.04em; text-transform:uppercase; }
.text-field input,.text-field select,.caption-field textarea { width:100%; padding:1rem 0; border:0; border-bottom:1px solid var(--line-strong); border-radius:0; outline:0; background:transparent; color:var(--paper); font-size:clamp(1.1rem,1.7vw,1.45rem); }.text-field input:focus,.text-field select:focus,.caption-field textarea:focus { border-color:var(--paper); }.text-field select option { color:#111; background:#fff; }
.handle-input { display:flex; align-items:center; border-bottom:1px solid var(--line-strong); }.handle-input:focus-within { border-color:var(--paper); }.handle-input b { color:var(--paper-dim); font-size:1.25rem; font-weight:400; }.handle-input input { border:0; padding-left:.2rem; }
.extras-head { display:flex; align-items:center; justify-content:space-between; gap:1rem; }.text-button { padding:.45rem 0; border:0; border-bottom:1px solid var(--line-strong); background:none; color:var(--paper); font-size:.75rem; }
.extra-row { display:flex; align-items:center; gap:.75rem; margin-top:.75rem; }.extra-row .handle-input { flex:1; }.extra-row button { padding:.8rem; border:0; background:none; color:var(--paper-dim); }
.checks { display:grid; gap:1.15rem; }.checks label { display:grid; align-items:start; gap:.85rem; grid-template-columns:1.25rem 1fr; color:var(--paper-soft); font-size:.82rem; line-height:1.65; cursor:pointer; }
.checks input { appearance:none; width:1.2rem; height:1.2rem; margin:.15rem 0 0; border:1px solid var(--line-strong); background:transparent; display:grid; place-items:center; }.checks input:checked { background:var(--paper); }.checks input:checked::after { content:'✓'; color:var(--ink); font-size:.72rem; font-weight:600; }.checks a { border-bottom:1px solid var(--line-strong); }
.retention-note { margin:2rem 0 0 2.1rem; color:var(--paper-dim); font-family:var(--mono); font-size:.64rem; line-height:1.7; }
.submit-button,.inline-button { width:100%; min-height:4.4rem; padding:0 1.4rem; border:1px solid var(--paper); display:flex; align-items:center; justify-content:space-between; background:transparent; color:var(--paper); font-size:.76rem; font-weight:600; letter-spacing:.02em; transition:color 250ms ease,background 250ms ease; }
.submit-button:hover,.inline-button:hover { color:var(--ink); background:var(--paper); }.submit-button:disabled { opacity:.42; cursor:wait; }.no-guarantee { margin-top:1rem; color:var(--paper-dim); font-family:var(--mono); font-size:.62rem; text-align:center; }
.form-error,.submit-error { min-height:1.3rem; margin:.55rem 0; color:var(--danger); font-family:var(--mono); font-size:.68rem; }.honeypot { position:absolute!important; left:-10000px!important; }

/* Fortschritt und Folgeseiten */
.upload-overlay { position:fixed; z-index:300; inset:0; display:grid; place-items:center; background:rgba(8,8,8,.98); }.upload-overlay[hidden] { display:none; }
.progress-panel { width:min(46rem,calc(100% - 2.5rem)); }.progress-panel h2 { margin-bottom:3rem; font-size:clamp(2.8rem,7vw,6.5rem); font-weight:400; letter-spacing:-.065em; line-height:.9; text-transform:uppercase; }
.progress-track { height:1px; background:var(--line); }.progress-track span { display:block; width:0; height:100%; background:var(--paper); transition:width .15s linear; }.progress-value { margin-top:1rem; color:var(--paper-dim); font-family:var(--mono); font-size:.75rem; text-align:right; }
.message-page,.legal-page { width:min(100%,112rem); min-height:calc(100svh - 5rem); margin:auto; padding:clamp(11rem,18vw,16rem) var(--gutter) var(--section-space); }
.message-page h1,.legal-page h1 { max-width:70rem; font-size:clamp(3.5rem,8vw,9rem); font-weight:400; letter-spacing:-.075em; line-height:.88; text-transform:uppercase; }.message-page p:not(.eyebrow) { max-width:40rem; margin:2.5rem 0 3rem; color:var(--paper-soft); font-size:clamp(1rem,1.4vw,1.25rem); }.message-page .inline-button { max-width:22rem; }
.legal-page { width:min(58rem,100%); }.legal-page h1 { margin-bottom:5rem; font-size:clamp(3.2rem,7vw,7rem); }.legal-page h2 { margin:3.5rem 0 .75rem; font-size:clamp(1.4rem,2.2vw,2.1rem); font-weight:400; letter-spacing:-.04em; }.legal-page p { color:var(--paper-soft); }.legal-page a { border-bottom:1px solid var(--line-strong); }.legal-intro { font-size:1.15rem; }.legal-note { margin-top:3rem; padding:1.5rem 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); color:var(--paper-dim)!important; font-family:var(--mono); font-size:.67rem; }.text-link { display:inline-flex; margin-top:2rem; padding-bottom:.35rem; border-bottom:1px solid var(--line-strong); font-size:.8rem; }
.login-page { min-height:100svh; display:grid; place-items:center; padding:7rem var(--gutter); }.login-form { width:min(31rem,100%); padding:3rem 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }.login-form h1 { margin:1.5rem 0 3rem; font-size:clamp(3rem,7vw,5.5rem); font-weight:400; letter-spacing:-.065em; }

/* BLP-Media Footer */
.site-footer { border-top:1px solid var(--line); }.footer-grid { display:grid; gap:3rem; padding-block:clamp(4rem,8vw,7rem); grid-template-columns:1.35fr repeat(2,.65fr); }
.footer-brand { display:flex; flex-direction:column; }.footer-brand strong { margin-bottom:1rem; font-size:1.05rem; text-transform:uppercase; }.footer-brand span { color:var(--paper-dim); font-size:.75rem; }
.footer-nav { display:flex; flex-direction:column; align-items:flex-start; gap:.6rem; }.footer-nav span { margin-bottom:.55rem; color:var(--paper-dim); font-family:var(--mono); font-size:.62rem; letter-spacing:.06em; text-transform:uppercase; }.footer-nav a { color:var(--paper-soft); font-size:.78rem; }.footer-nav a:hover { color:var(--paper); }
.footer-bottom { min-height:5rem; border-top:1px solid var(--line); display:flex; align-items:center; justify-content:space-between; color:var(--paper-dim); font-family:var(--mono); font-size:.62rem; text-transform:uppercase; }

@media (max-width:64rem) { .submission-layout { gap:4rem; grid-template-columns:minmax(14rem,.6fr) minmax(24rem,1.4fr); } }
@media (max-width:48rem) {
  :root { --gutter:clamp(1.125rem,5.5vw,1.75rem); --section-space:clamp(5rem,19vw,7.5rem); }
  .site-header,.site-header.is-scrolled { height:4.5rem; }.nav-toggle { display:block; }
  .site-nav { position:fixed; inset:4.5rem 0 0; display:none; min-height:calc(100dvh - 4.5rem); padding:1.5rem var(--gutter) 3rem; overflow-y:auto; flex-direction:column; align-items:stretch; gap:0; border-top:1px solid var(--line); background:rgba(8,8,8,.995); }.site-nav.open { display:flex; }.site-nav a { display:flex; min-height:4.25rem; align-items:center; border-bottom:1px solid var(--line); font-size:1.25rem; letter-spacing:-.03em; }.site-nav a::after { display:none; }
  .upload-hero { padding-top:4.5rem; }.giveaway-wrap { padding-top:1rem; }.giveaway-announcement { min-height:0; gap:.4rem; padding:1.15rem 3rem 1.15rem 1rem; grid-template-columns:1fr; }.giveaway-announcement strong { font-size:1.1rem; }.giveaway-copy { font-size:.7rem; }.giveaway-arrow { right:1rem; }.upload-hero-meta { padding-top:1.5rem; }.upload-hero-meta>p:last-child { display:none; }.instagram-stats { gap:.7rem; font-size:.55rem; letter-spacing:.025em; }.instagram-stats strong { font-size:.66rem; }.instagram-profile-button { min-height:2rem; padding:.4rem .55rem; }.instagram-profile-button>span { display:none; }.upload-title-wrap { padding-block:3.5rem; }.upload-title-wrap h1 { font-size:clamp(2.55rem,12.4vw,4.8rem); line-height:.92; }.upload-title-wrap h1 span,.upload-title-wrap h1 span:last-child { width:100%; margin:0; }.upload-title-wrap h1 span:last-child { margin-top:.25rem; }.upload-hero-bottom { gap:1.75rem; grid-template-columns:1fr; }.upload-hero-bottom ul { justify-content:flex-start; }
  .submission-layout { grid-template-columns:1fr; }.submission-intro { position:static; }.submission-intro h2 { font-size:clamp(2.8rem,15vw,5.5rem); }.upload-form legend { grid-template-columns:2.2rem 1fr; }.dropzone { min-height:14rem; }.extras-head { align-items:flex-start; flex-direction:column; }
  .footer-grid { grid-template-columns:1fr 1fr; }.footer-brand { grid-column:1/-1; }.footer-bottom { align-items:flex-start; padding-block:1.5rem; gap:1rem; flex-direction:column; }
}
@media (max-width:27rem) { .upload-hero-meta:has(.instagram-stats) { justify-content:flex-end; }.upload-hero-meta:has(.instagram-stats)>.eyebrow { display:none; }.previews { gap:.35rem; }.footer-grid { grid-template-columns:1fr; }.footer-brand { grid-column:auto; } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; }.upload-title-wrap h1 span { opacity:1; animation:none; } *,*::before,*::after { transition-duration:.01ms!important; } }
