@font-face{font-family:Montserrat;src:url("assets/original/Montserrat-Light.woff2") format("woff2");font-weight:300}
@font-face{font-family:Montserrat;src:url("assets/original/Montserrat-Medium.woff2") format("woff2");font-weight:500}
@font-face{font-family:Montserrat;src:url("assets/original/Montserrat-SemiBold.woff2") format("woff2");font-weight:600}

:root{
  --orange:#f18918;--ink:#2d2d35;--ink-2:#3d3d46;--paper:#f2f0eb;
  --white:#fff;--line:rgba(45,45,53,.18);--pad:clamp(24px,5.5vw,90px)
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:Montserrat,Arial,sans-serif;font-weight:300;overflow-x:hidden}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
button{font:inherit}
.page-progress{position:fixed;z-index:200;left:0;top:0;width:0;height:3px;background:var(--orange);pointer-events:none}
.cursor{position:fixed;z-index:190;left:0;top:0;width:42px;height:42px;border:1px solid var(--orange);border-radius:50%;pointer-events:none;transform:translate(-50%,-50%);transition:width .25s,height .25s,background .25s;mix-blend-mode:difference}
.cursor i{position:absolute;left:50%;top:50%;width:4px;height:4px;background:var(--orange);border-radius:50%;transform:translate(-50%,-50%)}
.cursor.active{width:78px;height:78px;background:rgba(241,137,24,.18)}

.header{
  position:fixed;z-index:100;top:0;left:0;width:100%;display:flex;
  justify-content:space-between;align-items:center;padding:22px var(--pad);
  border-bottom:1px solid rgba(255,255,255,.2);
  background:rgba(45,45,53,.72);backdrop-filter:blur(12px);
  transition:padding .35s,background .35s,box-shadow .35s,backdrop-filter .35s
}
.header.scrolled{
  padding-top:14px;padding-bottom:14px;background:rgba(45,45,53,.94);
  box-shadow:0 12px 35px rgba(0,0,0,.16);backdrop-filter:blur(18px)
}
.logo{width:clamp(190px,18vw,260px);transition:width .35s}
.header.scrolled .logo{width:clamp(170px,15vw,220px)}
.header nav{display:flex;align-items:center;gap:clamp(24px,3vw,48px);color:white;text-transform:uppercase;letter-spacing:.1em;font-size:14px;font-weight:500}
.header nav a{position:relative;padding:13px 2px;transition:color .3s}
.header nav a::after{content:"";position:absolute;left:0;bottom:5px;width:0;height:2px;background:var(--orange);transition:.35s}
.header nav a:hover,.header nav a.active{color:var(--orange)}
.header nav a:hover::after,.header nav a.active::after{width:100%}
.header nav .menu-cta{
  padding:14px 20px;background:var(--orange);color:white;border-radius:2px;
  box-shadow:0 8px 24px rgba(241,137,24,.24);transition:background .3s,color .3s,transform .3s
}
.header nav .menu-cta span{display:inline-block;margin-left:14px;font-size:16px;transition:transform .3s}
.header nav .menu-cta::after{display:none}
.header nav .menu-cta:hover,.header nav .menu-cta.active{color:var(--ink);background:white;transform:translateY(-2px)}
.header nav .menu-cta:hover span{transform:translate(3px,3px)}
.menu-toggle{display:none;background:0;border:0;width:52px;height:48px;padding:10px}
.menu-toggle span{display:block;height:1px;background:white;margin:7px 0}

.hero{min-height:100svh;background:var(--ink);color:white;display:grid;grid-template-columns:1.06fr .94fr;position:relative;overflow:hidden}
.hero-copy{z-index:3;padding:clamp(150px,19vh,210px) 4vw 45px var(--pad);display:flex;flex-direction:column;justify-content:center}
.overline{margin:0;text-transform:uppercase;letter-spacing:.18em;font-size:11px;font-weight:500}
.hero h1{margin:35px 0 0;font-size:clamp(64px,8.3vw,135px);line-height:.79;letter-spacing:-.075em;font-weight:300}
.hero h1 span{display:block}
.hero h1 .orange{color:var(--orange);font-weight:600;margin-left:8vw}
.hero-date{display:flex;align-items:center;gap:20px;margin:55px 0 0 8vw}
.hero-date strong{font-size:clamp(23px,3.2vw,48px);font-weight:300;letter-spacing:-.05em}
.hero-date i{width:55px;height:1px;background:var(--orange)}
.hero-intro{width:360px;margin:28px 0 0 8vw;font-size:15px;line-height:1.65;color:#d2d0cc}
.hero-visual{position:relative;min-height:100svh;overflow:hidden}
.hero-image{position:absolute;inset:0;clip-path:polygon(16% 0,100% 0,100% 100%,0 100%);overflow:hidden}
.hero-image img{width:100%;height:100%;object-fit:cover;object-position:48% center;transform:scale(1.04);animation:heroBreath 18s ease-in-out infinite alternate}
@keyframes heroBreath{to{transform:scale(1.12) translateX(-1.5%)}}
.hero-image::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(45,45,53,.25),transparent 35%),linear-gradient(0deg,rgba(45,45,53,.55),transparent 45%)}
.lens-rings{position:absolute;width:34vw;aspect-ratio:1;border:1px solid rgba(255,255,255,.3);border-radius:50%;right:-8vw;top:23%;animation:spin 32s linear infinite}
.lens-rings i{position:absolute;border:1px solid rgba(255,255,255,.2);border-radius:50%}
.lens-rings i:nth-child(1){inset:15%}.lens-rings i:nth-child(2){inset:32%}.lens-rings i:nth-child(3){inset:46%;background:rgba(241,137,24,.28)}
@keyframes spin{to{transform:rotate(360deg)}}
.image-meta{position:absolute;bottom:32px;left:18%;right:25px;display:flex;justify-content:space-between;font-size:10px;letter-spacing:.14em}
.hero-cta{position:absolute;z-index:5;right:calc(47% - 60px);bottom:50px;width:120px;height:120px;border-radius:50%;background:var(--orange);display:grid;place-items:center;text-align:center;font-size:11px;line-height:1.5;transition:background .3s,color .3s}
.hero-cta b{position:absolute;bottom:16px;font-size:17px;font-weight:300}
.hero-cta:hover{background:white;color:var(--ink)}
.hero-index{position:absolute;left:var(--pad);bottom:30px;color:#aaa;font-size:10px;letter-spacing:.15em}
.hero-reveal{opacity:0;transform:translateY(35px);animation:introIn .9s cubic-bezier(.16,1,.3,1) forwards}
.hero-reveal:nth-child(2){animation-delay:.12s}.hero-reveal:nth-child(3){animation-delay:.24s}.hero-reveal:nth-child(4){animation-delay:.34s}
@keyframes introIn{to{opacity:1;transform:none}}

.marquee{background:var(--orange);color:white;overflow:hidden;padding:14px 0}
.marquee div{width:max-content;display:flex;align-items:center;animation:marquee 27s linear infinite}
.marquee span{font-size:13px;letter-spacing:.14em;white-space:nowrap}.marquee b{font-size:8px;margin:0 32px}
@keyframes marquee{to{transform:translateX(-50%)}}

.statement{padding:150px var(--pad);display:grid;grid-template-columns:.78fr 1.22fr;gap:6vw;align-items:start}
.statement-number{display:flex;color:var(--orange);line-height:.75}
.statement-number span{font-size:clamp(130px,19vw,300px);letter-spacing:-.1em;font-weight:500}
.statement-number b{font-size:clamp(35px,5vw,75px);font-weight:300}
.statement-copy{padding-top:20px}
.statement h2,.program h2,.visit h2,.partners h2,.location h2{font-size:clamp(52px,7vw,105px);line-height:.89;letter-spacing:-.07em;font-weight:300;margin:35px 0 0}
h2 em{color:var(--orange);font-style:normal;font-weight:600}
.statement-text{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-top:55px}
.statement-text p{margin:0;font-size:15px;line-height:1.8}
.statement-text p:first-child{font-size:22px;line-height:1.5}

.gallery{min-height:950px;background:var(--ink);position:relative;padding:110px var(--pad);overflow:hidden}
.gallery figure{margin:0;position:absolute;z-index:2}
.gallery img{width:100%;height:100%;object-fit:cover;transition:transform .8s}
.gallery figure:hover img{transform:scale(1.05)}
.gallery-main{width:58vw;height:630px;left:var(--pad);top:110px}
.gallery-main img{object-position:center 42%}
.gallery-detail{width:30vw;height:400px;right:4vw;bottom:85px;border:14px solid var(--ink)}
.gallery-detail img{object-position:73% center}
.gallery figcaption{position:absolute;left:0;bottom:-34px;color:white;font-size:12px}
.gallery figcaption span{color:var(--orange);margin-right:18px;text-transform:uppercase;letter-spacing:.15em}
.gallery-word{position:absolute;right:-1vw;top:3%;font-size:clamp(140px,23vw,370px);font-weight:600;letter-spacing:-.08em;color:rgba(255,255,255,.035)}

.contest-visual{height:min(78vh,760px);position:relative;overflow:hidden;background:var(--ink);border-top:10px solid var(--orange)}
.contest-visual>img{width:100%;height:110%;object-fit:cover;object-position:center 42%;transform:scale(1.02)}
.contest-visual-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(45,45,53,.88) 0%,rgba(45,45,53,.52) 42%,rgba(45,45,53,.08) 72%),linear-gradient(0deg,rgba(45,45,53,.45),transparent 50%)}
.contest-visual-label{position:absolute;left:var(--pad);top:50%;transform:translateY(-50%);color:white;max-width:650px}
.contest-visual-label.visible{transform:translateY(-50%)}
.contest-visual-label span{display:inline-block;background:var(--orange);padding:10px 14px;text-transform:uppercase;letter-spacing:.15em;font-size:10px;font-weight:500;margin-bottom:24px}
.contest-visual-label strong{display:block;font-size:clamp(57px,8vw,122px);line-height:.8;letter-spacing:-.075em;font-weight:500}
.contest-visual-label p{font-size:16px;margin:30px 0 0}
.youth-contest{display:grid;grid-template-columns:.9fr 1.1fr;background:var(--orange);color:white;border-top:1px solid rgba(255,255,255,.45)}
.contest-intro{padding:130px var(--pad);display:flex;flex-direction:column;justify-content:center}
.contest-intro h2{font-size:clamp(58px,8vw,120px);line-height:.84;letter-spacing:-.075em;font-weight:300;margin:34px 0 0}
.contest-intro h2 em{color:var(--ink)}
.contest-intro>p:not(.overline){max-width:560px;font-size:17px;line-height:1.75;margin:45px 0 0}
.contest-link{align-self:flex-start;margin-top:35px;border-bottom:1px solid;padding:12px 0;text-transform:uppercase;letter-spacing:.1em;font-size:11px}
.contest-link span{margin-left:45px}
.contest-upload-link{margin-top:12px;background:var(--ink);border:0;padding:16px 18px}
.contest-groups{background:var(--ink);padding:90px var(--pad);display:grid;grid-template-columns:1fr 1fr;gap:18px;align-content:center}
.contest-card{min-height:420px;background:var(--orange);padding:32px;display:flex;flex-direction:column}
.contest-card.light{background:var(--paper);color:var(--ink)}
.contest-card>span{text-transform:uppercase;letter-spacing:.14em;font-size:10px}
.contest-card strong{font-size:clamp(45px,5vw,76px);line-height:.9;letter-spacing:-.065em;font-weight:500;margin:auto 0}
.contest-card p{font-size:13px;line-height:1.6}
.contest-card b{border-top:1px solid currentColor;padding-top:18px;text-transform:uppercase;letter-spacing:.08em;font-size:10px;font-weight:500}
.contest-note{grid-column:1/-1;margin:12px 0 0;color:#aaa;font-size:11px;line-height:1.6}

.submission{display:grid;grid-template-columns:.82fr 1.18fr;background:#e9e6df;padding:150px var(--pad);gap:8vw}
.submission-intro{position:sticky;top:110px;align-self:start}
.submission h2{font-size:clamp(52px,7vw,105px);line-height:.89;letter-spacing:-.07em;font-weight:300;margin:35px 0 0}
.submission h2 em{color:var(--orange);font-style:normal;font-weight:600}
.submission-intro>p:not(.overline){font-size:16px;line-height:1.8;max-width:540px;margin:38px 0 0}
.submission-promise{margin-top:55px;border-top:1px solid var(--line)}
.submission-promise>span{float:left;color:var(--orange);font-size:10px;padding-top:20px}
.submission-promise p{margin:0 0 0 42px;padding:17px 0;border-bottom:1px solid var(--line);font-size:13px;line-height:1.5}
.upload-form{background:white;padding:clamp(28px,4vw,65px);box-shadow:0 30px 80px rgba(45,45,53,.08)}
.form-section{padding-bottom:48px;margin-bottom:48px;border-bottom:1px solid #dedbd4}
.form-step{display:block;color:var(--orange);text-transform:uppercase;letter-spacing:.16em;font-size:10px;font-weight:600;margin-bottom:28px}
.upload-form label{display:block;margin-top:22px}
.upload-form label>span:first-child{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.08em;font-weight:500;margin-bottom:10px}
.upload-form input:not([type=checkbox]):not([type=file]),.upload-form textarea{
  width:100%;border:1px solid #cbc8c1;background:#f8f7f4;padding:16px 17px;color:var(--ink);
  font:inherit;font-size:14px;border-radius:0;outline:none;transition:border-color .25s,box-shadow .25s
}
.upload-form input:focus,.upload-form textarea:focus{border-color:var(--orange);box-shadow:0 0 0 3px rgba(241,137,24,.12)}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.form-grid .full{grid-column:1/-1}
.dropzone{height:340px!important;margin:0!important;border:2px dashed #c9c5bd;display:flex!important;flex-direction:column;justify-content:center;align-items:center;position:relative;overflow:hidden;background:#f8f7f4;cursor:pointer;transition:.3s}
.dropzone:hover,.dropzone.dragover{border-color:var(--orange);background:#fff8ef}
.dropzone input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%}
.dropzone .drop-icon{display:grid!important;place-items:center;width:64px;height:64px;border-radius:50%;background:var(--orange);color:white;font-size:30px;margin:0 0 18px!important}
.dropzone strong{font-size:24px;font-weight:500}.dropzone small{margin-top:8px;color:#777}
.upload-preview{display:none;position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#26262d;padding:15px;pointer-events:none}
.dropzone.has-file .upload-preview{display:block}.dropzone.has-file::after{content:"Foto ändern";position:absolute;right:14px;bottom:14px;background:var(--orange);color:white;padding:10px 13px;font-size:10px;text-transform:uppercase;letter-spacing:.1em}
.consent-section{padding-bottom:22px;margin-bottom:28px}
.check-label{display:grid!important;grid-template-columns:22px 1fr;gap:12px;align-items:start;cursor:pointer}
.check-label input{width:20px;height:20px;accent-color:var(--orange);margin:1px 0 0}
.check-label span{font-size:12px!important;line-height:1.6;text-transform:none!important;letter-spacing:0!important;font-weight:300!important;margin:0!important}
.upload-submit{border:0;background:var(--orange);color:white;padding:20px 22px;width:100%;display:flex;justify-content:space-between;text-transform:uppercase;letter-spacing:.1em;font-size:11px;cursor:pointer}
.upload-submit span{font-size:17px}.form-footnote{font-size:10px;color:#777;margin:14px 0 0}
.form-message{padding:16px 18px;margin-bottom:30px;font-size:13px;line-height:1.5}.form-message.success{background:#e7f5eb;color:#215a31}.form-message.error{background:#fff0ec;color:#8b2e1f}
.honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important}

.program{padding:150px var(--pad);background:var(--paper);display:grid;grid-template-columns:.82fr 1.18fr;gap:8vw}
.program-head{position:sticky;top:90px;align-self:start}
.program-head>p:last-child{max-width:460px;margin:40px 0 0;font-size:14px;line-height:1.8}
.timeline{position:relative}
.timeline-line{position:absolute;left:82px;top:25px;bottom:65px;width:1px;background:var(--line)}
.timeline-line i{display:block;height:var(--timeline-progress,0%);width:3px;margin-left:-1px;background:var(--orange);box-shadow:0 0 20px rgba(241,137,24,.4)}
.event-day{min-height:235px;display:grid;grid-template-columns:56px 53px 1fr}
.event-day time{text-align:right;padding-top:3px}
.event-day time strong{display:block;font-size:42px;line-height:1;font-weight:300;letter-spacing:-.07em}
.event-day time span{display:block;color:var(--orange);font-size:10px;text-transform:uppercase;letter-spacing:.08em;margin-top:8px;white-space:nowrap}
.event-dot{width:13px;height:13px;margin:10px auto;border-radius:50%;background:var(--orange);box-shadow:0 0 0 6px var(--paper),0 0 0 7px var(--orange);transition:.35s}
.event-day:hover .event-dot{transform:scale(1.35);box-shadow:0 0 0 6px var(--paper),0 0 0 12px rgba(241,137,24,.15)}
.day-program{border-top:1px solid var(--line)}
.event-card{padding:18px 0 34px;border-bottom:1px solid var(--line);transition:padding-left .35s,border-color .35s}
.event-card:last-child{margin-bottom:48px}
.event-card:hover{border-color:var(--orange);padding-left:18px}
.event-meta{display:flex;align-items:center;justify-content:space-between}
.event-meta p{margin:0;color:var(--orange);text-transform:uppercase;letter-spacing:.14em;font-size:10px}
.event-meta b{border:1px solid var(--line);padding:7px 9px;font-size:9px;text-transform:uppercase;letter-spacing:.1em;font-weight:500}
.event-card h3{margin:12px 0;font-size:clamp(27px,2.6vw,42px);font-weight:300;letter-spacing:-.05em}
.event-card>span{display:block;max-width:570px;font-size:13px;line-height:1.7}

.visit{min-height:830px;display:grid;grid-template-columns:1fr 1fr;background:var(--orange);color:white}
.visit-image{position:relative;overflow:hidden;clip-path:polygon(0 0,88% 0,100% 100%,0 100%)}
.visit-image img{width:100%;height:100%;object-fit:cover;object-position:35% center;filter:saturate(.85)}
.visit-image::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(241,137,24,.28))}
.visit-copy{padding:120px var(--pad) 100px 5vw;display:flex;flex-direction:column;justify-content:center}
.visit h2 em{color:var(--ink)}
.visit-date{display:flex;align-items:center;gap:18px;margin-top:50px}
.visit-date span{font-size:clamp(28px,4vw,55px);letter-spacing:-.06em}.visit-date i{font-style:normal}
.visit-copy>p:not(.overline):not(.calendar-status){font-size:14px;line-height:1.7;margin:30px 0 0}
.primary-button{align-self:flex-start;margin-top:35px;border:0;background:white;color:var(--ink);padding:18px 22px;text-transform:uppercase;letter-spacing:.1em;font-size:11px;cursor:pointer}
.primary-button span{margin-left:38px}
.calendar-status{min-height:15px;font-size:8px;margin:12px 0 0}

.partners{padding:140px var(--pad);background:white}
.partners-head{display:flex;align-items:end;justify-content:space-between;margin-bottom:75px}
.partners-head h2{margin-top:25px}
.partners-head>a{border-bottom:1px solid;padding:10px 0;text-transform:uppercase;letter-spacing:.12em;font-size:11px}
.partners-head>a span{margin-left:45px}
.partner-slider{overflow:hidden}
.slider-viewport{overflow:hidden}
.logo-track{display:flex;transition:transform .7s cubic-bezier(.16,1,.3,1);will-change:transform}
.partner-logo{height:290px;min-width:50%;border:1px solid #e3e1dc;border-right:0;display:flex;align-items:center;justify-content:center;padding:42px;position:relative;filter:grayscale(1);transition:.4s}
.partner-logo:hover{filter:none;background:#faf9f6}
.partner-logo span{position:absolute;top:20px;left:20px;color:var(--orange);font-size:10px}
.partner-logo img{max-height:170px;max-width:80%;width:auto}
.slider-controls{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #e3e1dc;padding-top:20px;margin-top:20px}
.slider-controls p{margin:0;font-size:12px;letter-spacing:.12em}.slide-current{color:var(--orange)}
.slider-controls div{display:flex;gap:8px}
.slider-controls button{width:48px;height:48px;border:1px solid var(--line);background:white;color:var(--ink);font-size:18px;cursor:pointer;transition:.3s}
.slider-controls button:hover{background:var(--orange);color:white;border-color:var(--orange)}

.location{min-height:800px;background:var(--ink);color:white;display:grid;grid-template-columns:1.1fr .9fr}
.map-art{position:relative;overflow:hidden;background:#35353e}
.map-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);background-size:48px 48px;transform:perspective(500px) rotateX(25deg) scale(1.2)}
.route{position:absolute;width:120%;height:25%;border-top:2px solid #777780;border-radius:50%}
.route-one{left:-15%;top:32%;transform:rotate(-18deg)}.route-two{left:5%;top:60%;transform:rotate(18deg)}
.map-target{position:absolute;left:52%;top:44%;width:110px;height:110px;border:1px solid var(--orange);border-radius:50%;animation:target 2.5s ease-in-out infinite}
.map-target span{position:absolute;left:50%;top:50%;width:20px;height:20px;background:var(--orange);border-radius:50%;transform:translate(-50%,-50%)}
@keyframes target{50%{box-shadow:0 0 0 35px rgba(241,137,24,.08)}}
.map-art>b{position:absolute;left:calc(52% - 5px);top:calc(44% + 120px);color:var(--orange);font-size:7px;letter-spacing:.16em}
.location-copy{padding:110px var(--pad)}
.location-copy h3{margin:55px 0 12px;color:var(--orange);font-size:16px}
.location-copy>p:not(.overline){font-size:14px;line-height:1.7}
.location-copy ul{list-style:none;padding:0;margin:35px 0}
.location-copy li{padding:16px 0;border-top:1px solid rgba(255,255,255,.18);font-size:12px}
.location-copy li span{display:inline-block;width:65px;color:var(--orange)}
.route-link{display:inline-flex;gap:50px;border-bottom:1px solid;padding:11px 0;text-transform:uppercase;letter-spacing:.12em;font-size:11px}

footer{padding:60px var(--pad);background:#24242b;color:#bbb;display:grid;grid-template-columns:1.4fr 1fr .7fr 1fr;gap:40px;font-size:12px;line-height:1.8}
footer img{width:200px}footer p{margin:0}footer div{display:flex;flex-direction:column}footer a:hover{color:var(--orange)}

.reveal{opacity:0;transform:translateY(34px);clip-path:inset(0 0 25% 0);transition:opacity .85s,transform .85s,clip-path .95s}
.reveal.visible{opacity:1;transform:none;clip-path:inset(0)}

@media(max-width:950px){
  .header nav{
    position:absolute;left:0;right:0;top:100%;padding:35px var(--pad) 42px;
    background:rgba(45,45,53,.98);flex-direction:column;align-items:stretch;gap:4px;
    transform:scaleY(0);opacity:0;transform-origin:top;transition:transform .35s,opacity .25s;
    box-shadow:0 28px 45px rgba(0,0,0,.2)
  }
  .header.open nav{transform:scaleY(1);opacity:1}
  .header nav a{font-size:20px;padding:17px 0;border-bottom:1px solid rgba(255,255,255,.12)}
  .header nav .menu-cta{margin:16px 0 5px;padding:18px 20px;border:0;text-align:center}
  .menu-toggle{display:block}
  .program{grid-template-columns:1fr}.program-head{position:relative;top:auto;margin-bottom:60px}
  .youth-contest{grid-template-columns:1fr}
  .submission{grid-template-columns:1fr}.submission-intro{position:relative;top:auto}
  .statement{grid-template-columns:1fr}.statement-number span{font-size:28vw}
  .partners-head{align-items:start;flex-direction:column;gap:30px}
  .location{grid-template-columns:1fr}.map-art{min-height:520px}
}

@media(max-width:650px){
  .cursor{display:none}.header,.header.scrolled{padding:16px 22px}.logo,.header.scrolled .logo{width:180px}
  .hero{grid-template-columns:1fr;min-height:100svh}
  .hero-copy{padding:135px 22px 300px;min-height:100svh;justify-content:flex-start}
  .hero h1{font-size:17vw;margin-top:45px}.hero h1 .orange{margin-left:0}
  .hero-date,.hero-intro{margin-left:0}.hero-date{margin-top:35px}
  .hero-visual{position:absolute;left:0;right:0;bottom:0;height:42vh;min-height:0}
  .hero-image{clip-path:polygon(0 18%,100% 0,100% 100%,0 100%)}
  .lens-rings{width:75vw;right:-28vw;top:15%}.image-meta{left:22px}
  .hero-cta{right:22px;bottom:25px;width:88px;height:88px}.hero-index{display:none}
  .statement,.program,.partners,.submission{padding:90px 22px}
  .statement-number span{font-size:39vw}.statement-copy{padding:0}
  .statement h2,.program h2,.visit h2,.partners h2,.location h2{font-size:14vw}
  .statement-text{grid-template-columns:1fr;gap:20px;margin-top:40px}
  .gallery{min-height:740px;padding:70px 22px}
  .gallery-main{width:87vw;height:420px;left:22px;top:70px}
  .gallery-detail{width:58vw;height:270px;right:0;bottom:65px;border-width:9px}
  .gallery-word{font-size:44vw;top:28%}
  .contest-visual{height:620px;border-top-width:7px}
  .contest-visual>img{object-position:63% center}
  .contest-visual-shade{background:linear-gradient(0deg,rgba(45,45,53,.92) 0%,rgba(45,45,53,.25) 72%)}
  .contest-visual-label{left:22px;right:22px;top:auto;bottom:55px;transform:none}
  .contest-visual-label.visible{transform:none}
  .contest-visual-label strong{font-size:15vw;line-height:.85}
  .contest-visual-label p{font-size:14px}
  .contest-intro{padding:90px 22px}.contest-intro h2{font-size:15vw}
  .contest-intro>p:not(.overline){font-size:15px}
  .contest-groups{padding:70px 22px;grid-template-columns:1fr}
  .contest-card{min-height:350px}
  .submission{gap:55px}.submission h2{font-size:14vw}.upload-form{padding:25px 20px}.dropzone{height:270px!important}
  .form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}
  .timeline-line{left:65px}.event{grid-template-columns:43px 43px 1fr;min-height:250px}
  .event-day{grid-template-columns:43px 43px 1fr}.event-day time strong{font-size:30px}.event-card h3{font-size:25px}
  .event-meta{align-items:flex-start;gap:8px}.event-meta b{font-size:8px}
  .event-card>span{font-size:12px}
  .visit{grid-template-columns:1fr;min-height:auto}
  .visit-image{height:430px;clip-path:polygon(0 0,100% 0,100% 88%,0 100%)}
  .visit-copy{padding:75px 22px 90px}
  .partner-logo{height:200px;min-width:100%;border-right:1px solid #e3e1dc}
  .partner-logo img{max-height:125px}
  .location-copy{padding:85px 22px}.map-art{min-height:450px}
  footer{grid-template-columns:1fr 1fr;padding:50px 22px}footer img{width:170px}
}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}
  .reveal,.hero-reveal{opacity:1;transform:none;clip-path:none}
}
