:root {
  --navy: #071f39;
  --navy-deep: #031426;
  --blue: #0f62ac;
  --accent: #55aee6;
  --accent-soft: #b8def5;
  --paper: #f3f5f6;
  --white: #fff;
  --ink: #10263a;
  --muted: #617384;
  --line: rgba(16, 38, 58, .15);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color-scheme: light;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
html, body { margin: 0; min-height: 100%; }
body { background: var(--paper); color: var(--ink); font-size: 16px; line-height: 1.55; }
a { color: inherit; }
button { font: inherit; }

.hero { position: relative; min-height: min(900px, 88svh); display: grid; grid-template-rows: auto 1fr; overflow: hidden; isolation: isolate; background: var(--navy-deep); color: var(--white); }
.hero-media, .hero-shade { position: absolute; inset: 0; z-index: -2; }
.hero-media video { width: 100%; height: 100%; object-fit: cover; filter: saturate(.62) contrast(1.06); }
.hero-shade { z-index: -1; background: linear-gradient(90deg, rgba(3,20,38,.97), rgba(7,31,57,.82) 50%, rgba(7,31,57,.42)), linear-gradient(0deg, rgba(3,20,38,.82), transparent 54%); }

.site-header { position: relative; z-index: 5; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 34px; padding: 12px clamp(24px,5vw,76px); border-bottom: 1px solid rgba(16,38,58,.15); background:rgba(249,251,252,.95); color:var(--navy-deep); box-shadow:0 8px 30px rgba(3,20,38,.1); backdrop-filter:blur(10px); }
.brand { display: inline-flex; align-items: center; gap: 13px; width: max-content; text-decoration: none; }
.nav-wtc-brand { min-width:132px; justify-content:center; padding:0; }
.nav-wtc-brand img { display:block; width:108px; height:58px; object-fit:contain; }
.brand-mark { display: flex; gap: 3px; align-items: flex-end; width: 31px; height: 29px; }
.brand-mark i { display: block; width: 8px; background: var(--accent); transform: skew(-17deg); }
.brand-mark i:nth-child(1) { height: 14px; opacity: .55; }.brand-mark i:nth-child(2) { height: 22px; opacity: .78; }.brand-mark i:nth-child(3) { height: 29px; }
.brand-copy { display: flex; flex-direction: column; line-height: 1.05; }
.brand-copy small { margin-bottom: 5px; font-size: .56rem; font-weight: 650; letter-spacing: .17em; text-transform: uppercase; opacity: .62; }
.brand-copy strong { font-size: .96rem; letter-spacing: .14em; }.brand-copy b { color: var(--accent); }
.site-header nav { display: flex; gap: clamp(18px,3vw,40px); }
.site-header nav a { text-decoration: none; font-size: .68rem; font-weight: 750; letter-spacing: .15em; text-transform: uppercase; }
.site-header nav a:hover { color: var(--blue); }
.header-partners { justify-self:end; display:flex; align-items:center; gap:14px; }
.header-partners a,.footer-logos a { display:flex; align-items:center; }
.header-partners img { display:block; width:auto; height:auto; object-fit:contain; }
.header-partners .partner-logo-gft { width:clamp(94px,8.5vw,130px); }
.header-partners .partner-logo-swiss { width:clamp(115px,10vw,154px); }

.hero-content { width: 100%; align-self: center; display: grid; grid-template-columns: minmax(0,1.25fr) minmax(300px,.75fr); align-items: center; gap: clamp(50px,8vw,130px); padding: clamp(55px,8vh,95px) clamp(24px,8vw,120px) clamp(62px,9vh,110px); }
.eyebrow { display: flex; align-items: center; gap: 12px; margin: 0; color: var(--accent); font-size: .68rem; font-weight: 760; letter-spacing: .2em; text-transform: uppercase; }
.eyebrow span { flex: 0 0 32px; height: 2px; background: currentColor; }.eyebrow-dark { color: var(--blue); }
.hero h1 { margin: 20px 0 25px; font-size: clamp(3.5rem,6.6vw,7.5rem); font-weight: 650; line-height: .88; letter-spacing: -.062em; text-transform: uppercase; }
.hero h1 em, h2 em { color: var(--accent); font-family: Georgia,"Times New Roman",serif; font-weight: 400; text-transform: none; }
.hero-lead { max-width: 720px; margin: 0; color: rgba(255,255,255,.76); font-size: clamp(1rem,1.3vw,1.18rem); }.hero-lead strong { color: var(--white); }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; }
.button { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 48px; padding: 12px 21px; border: 1px solid transparent; text-decoration: none; cursor: pointer; font-size: .68rem; font-weight: 790; letter-spacing: .13em; text-transform: uppercase; transition: background .2s,border .2s,transform .2s; }
.button:hover, .button:focus-visible { transform: translateY(-2px); }.button i { font-style: normal; font-size: .62rem; }
.button-primary { background: var(--accent); color: var(--navy-deep); }.button-primary:hover { background: var(--accent-soft); }
.button-ghost { border-color: rgba(255,255,255,.4); background: rgba(255,255,255,.04); color: var(--white); }.button-ghost:hover { border-color: var(--accent); }

.hero-aside { display: grid; gap: 18px; }
.wtc-logo-slot { min-height: 180px; display: grid; align-items: center; padding: 12px 0; border-block: 1px solid rgba(255,255,255,.25); }
.wtc-logo-slot > * { grid-area: 1 / 1; }.wtc-logo-slot > img { display: block; width: min(100%,360px); max-height: 190px; margin: auto; object-fit: contain; }
.wtc-logo-slot > img[hidden],.wtc-logo-slot > [hidden] { display: none !important; }
.hero-wordmark { display: grid; grid-template-columns: auto 1fr; align-items: baseline; gap: 11px; }
.hero-wordmark span { font-size: clamp(1.5rem,2.8vw,2.8rem); font-weight: 830; letter-spacing: -.04em; }.hero-wordmark strong { color: var(--accent); font-size: clamp(2.8rem,5.2vw,5.5rem); line-height: .8; letter-spacing: -.07em; }.hero-wordmark small { grid-column: 1/-1; font-size: .57rem; letter-spacing: .19em; text-transform: uppercase; opacity: .6; }
.trailer-card { position: relative; display: block; width: 100%; padding: 0; overflow: hidden; border: 1px solid rgba(255,255,255,.3); background: var(--navy); color: var(--white); cursor: pointer; text-align: left; }
.trailer-card::after { content:""; position:absolute; inset:0; background: linear-gradient(0deg,rgba(3,20,38,.92),transparent 68%); }
.trailer-card img { display: block; width: 100%; aspect-ratio: 16/8.5; object-fit: cover; filter: saturate(.7); transition: transform .45s; }.trailer-card:hover img { transform: scale(1.035); }
.trailer-play { position: absolute; z-index: 2; left: 22px; top: 21px; display: grid; place-items: center; width: 44px; height: 44px; padding-left: 3px; border-radius: 50%; background: var(--accent); color: var(--navy-deep); font-size: .72rem; box-shadow: 0 8px 25px rgba(3,20,38,.3); }
.trailer-label { position: absolute; z-index: 2; left: 22px; right: 22px; bottom: 17px; display: flex; align-items: center; justify-content: space-between; gap: 15px; }.trailer-label small { font-size: .55rem; letter-spacing: .15em; text-transform: uppercase; opacity: .6; }.trailer-label strong { font-size: .75rem; letter-spacing: .1em; text-transform: uppercase; }

.compact-section { padding: clamp(75px,8vw,120px) clamp(24px,8vw,120px); background: var(--paper); }
.compact-heading { display: grid; grid-template-columns: .58fr 1.42fr; gap: 45px; align-items: start; margin-bottom: clamp(44px,5vw,70px); }
.compact-heading h2, .contact-copy h2 { margin: 0; font-size: clamp(2.7rem,5vw,5.6rem); font-weight: 640; line-height: .96; letter-spacing: -.052em; }.compact-heading h2 em { color: var(--blue); }
.story-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); border: 1px solid var(--line); background: var(--white); }
.story-card { min-height: 345px; display: flex; flex-direction: column; padding: clamp(28px,3vw,45px); }.story-card + .story-card { border-left: 1px solid var(--line); }
.card-index { margin: 0 0 42px; color: var(--blue); font-size: .65rem; font-weight: 780; letter-spacing: .15em; text-transform: uppercase; }
.story-card > p:not(.card-index) { margin: 0; font-size: clamp(1.02rem,1.35vw,1.28rem); line-height: 1.48; letter-spacing: -.012em; }
.story-card-blue { background: var(--blue); color: var(--white); }.story-card-blue .card-index { color: var(--accent-soft); }
.topics { display: flex; flex-wrap: wrap; gap: 7px; margin-top: auto; padding-top: 28px; }.topics span { padding: 6px 9px; border: 1px solid rgba(255,255,255,.35); font-size: .58rem; letter-spacing: .09em; text-transform: uppercase; }
.city-line { display: flex; align-items: center; gap: 12px; margin-top: auto; padding-top: 28px; color: var(--blue); font-size: .6rem; font-weight: 760; letter-spacing: .13em; text-transform: uppercase; }.city-line i { position: relative; flex: 1; height: 1px; background: var(--accent); }.city-line i::after { content:""; position:absolute; right:0; top:-3px; width:7px; height:7px; border-radius:50%; background:var(--accent); }
.decision-strip { display: grid; grid-template-columns: .52fr 1.48fr; align-items: center; gap: clamp(40px,6vw,90px); padding: clamp(34px,4vw,58px); border: 1px solid var(--line); border-top: 0; background: #eaf1f6; }
.decision-date { display: flex; align-items: center; gap: 14px; color: var(--blue); }.decision-date strong { font-size: clamp(4.5rem,8vw,8.2rem); font-weight: 660; line-height: .72; letter-spacing: -.08em; }.decision-date span { font-size: .64rem; font-weight: 780; letter-spacing: .14em; text-transform: uppercase; }
.decision-strip > div:last-child > p:last-child { max-width: 850px; margin: 0; font-size: clamp(1rem,1.4vw,1.24rem); }.decision-strip .card-index { margin-bottom: 12px; }

.contact-section { position: relative; display: grid; grid-template-columns: 1.25fr .75fr; align-items: center; gap: clamp(60px,9vw,150px); min-height: 500px; padding: clamp(70px,8vw,115px) clamp(24px,8vw,120px); overflow: hidden; background: var(--navy); color: var(--white); }
.contact-section::before { content:"2030"; position:absolute; right:-3vw; top:-16%; color:rgba(85,174,230,.055); font-size:31vw; font-weight:800; letter-spacing:-.1em; }
.contact-copy,.statement { position:relative; z-index:1; }.contact-copy h2 { margin: 18px 0 22px; }.contact-copy h2 em { color: var(--accent); }.contact-copy > p:not(.eyebrow) { max-width: 700px; margin: 0; color: rgba(255,255,255,.7); font-size: clamp(1rem,1.35vw,1.18rem); }
.contact-email { display:inline-flex; align-items:center; gap:16px; margin-top:25px; padding-bottom:6px; border-bottom:2px solid var(--accent); text-decoration:none; font-size:clamp(1.1rem,1.7vw,1.55rem); font-weight:650; }.contact-email span { color:var(--accent); }
.statement { padding: 28px; border:1px solid rgba(255,255,255,.24); background:rgba(15,98,172,.15); }.statement small { display:block; margin-bottom:14px; color:rgba(255,255,255,.55); font-size:.58rem; letter-spacing:.13em; text-transform:uppercase; }.statement strong { display:block; color:var(--accent); font-size:clamp(1.35rem,2.2vw,2.2rem); line-height:1.08; text-transform:uppercase; }

.site-footer { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:36px; padding:30px clamp(24px,5vw,76px); background:var(--navy-deep); color:var(--white); }.footer-brand { display:flex; flex-direction:column; line-height:1.2; }.footer-brand strong { letter-spacing:.12em; }.footer-brand span,.footer-partner>span { color:rgba(255,255,255,.42); font-size:.56rem; letter-spacing:.14em; text-transform:uppercase; }.footer-partner { display:flex; align-items:center; gap:18px; }.footer-logos { display:flex; align-items:center; gap:10px; }.footer-logos a { justify-content:center; width:134px; min-height:44px; padding:7px 10px; background:rgba(255,255,255,.94); }.footer-logos img { display:block; width:112px; max-height:32px; object-fit:contain; }.footer-logos .partner-logo-gft,.footer-logos .partner-logo-swiss { width:112px; }.site-footer nav { justify-self:end; display:flex; gap:20px; }.site-footer nav a { color:rgba(255,255,255,.6); text-decoration:none; font-size:.62rem; letter-spacing:.09em; text-transform:uppercase; }.site-footer nav a:hover { color:var(--accent); }

.film-modal[hidden] { display:none; }.film-modal { position:fixed; z-index:100; inset:0; display:grid; place-items:center; padding:28px; background:rgba(3,20,38,.92); backdrop-filter:blur(12px); }.film-dialog { width:min(1120px,100%); overflow:hidden; background:var(--navy-deep); color:var(--white); box-shadow:0 30px 100px rgba(0,0,0,.55); }.film-head { display:flex; align-items:center; justify-content:space-between; padding:15px 20px; }.film-head small { color:var(--accent); font-size:.55rem; letter-spacing:.15em; text-transform:uppercase; }.film-head h2 { margin:2px 0 0; font-size:1rem; letter-spacing:.08em; text-transform:uppercase; }.film-head button { border:0; background:transparent; color:var(--white); font-size:2rem; line-height:1; cursor:pointer; }.film-dialog video { display:block; width:100%; max-height:76svh; background:#000; }.film-open { overflow:hidden; }

.consent-banner[hidden],.consent-manage[hidden] { display:none !important; }.consent-banner { position:fixed; z-index:220; inset:auto 18px 18px; display:flex; justify-content:center; pointer-events:none; }.consent-card { width:min(1100px,100%); display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:end; gap:34px; padding:26px 28px; border:1px solid rgba(255,255,255,.17); background:rgba(3,20,38,.98); color:var(--white); box-shadow:0 24px 80px rgba(0,0,0,.48); pointer-events:auto; }.consent-kicker { margin:0 0 7px; color:var(--accent); font-size:.58rem; font-weight:780; letter-spacing:.16em; text-transform:uppercase; }.consent-copy h2 { margin:0 0 9px; font-size:clamp(1.2rem,2vw,1.7rem); }.consent-copy>p:not(.consent-kicker) { max-width:780px; margin:0; color:rgba(255,255,255,.76); font-size:.88rem; line-height:1.5; }.consent-copy .consent-detail { margin-top:8px !important; color:rgba(255,255,255,.55) !important; font-size:.72rem !important; }.consent-detail a { color:var(--accent-soft); }.consent-detail code,.legal-card code { font-family:ui-monospace,SFMono-Regular,Consolas,monospace; }.consent-actions { display:grid; grid-template-columns:1fr 1fr; gap:9px; min-width:340px; }.consent-button { min-height:46px; padding:11px 15px; border:1px solid var(--accent); cursor:pointer; font:inherit; font-size:.64rem; font-weight:780; letter-spacing:.09em; text-transform:uppercase; }.consent-reject { background:transparent; color:var(--white); }.consent-accept { background:var(--accent); color:var(--navy-deep); }.consent-button:hover,.consent-button:focus-visible { outline:2px solid var(--white); outline-offset:2px; }.consent-manage { position:fixed; z-index:90; left:12px; bottom:12px; padding:7px 10px; border:1px solid rgba(255,255,255,.25); background:rgba(3,20,38,.9); color:rgba(255,255,255,.78); cursor:pointer; font:inherit; font-size:.56rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; box-shadow:0 5px 20px rgba(0,0,0,.2); }.consent-manage:hover,.consent-manage:focus-visible { color:var(--white); border-color:var(--accent); }.privacy-inline-button { padding:0; border:0; border-bottom:1px solid currentColor; background:transparent; color:var(--blue); cursor:pointer; font:inherit; }

.legal-page { min-height:100svh; background:radial-gradient(circle at 95% 0%,rgba(85,174,230,.14),transparent 30%),var(--paper); }.legal-page .site-header { background:rgba(249,251,252,.97); color:var(--navy-deep); }.legal-card { width:min(850px,calc(100% - 48px)); margin:0 auto; padding:clamp(65px,9vw,120px) 0 130px; }.legal-card h1 { margin:18px 0 20px; font-size:clamp(3.4rem,8vw,6.8rem); line-height:.92; letter-spacing:-.06em; }.legal-card h2 { margin:38px 0 7px; font-size:1.08rem; }.legal-card p { color:#455a6b; }.legal-card a { color:var(--blue); }.legal-updated { margin:0 0 50px; color:var(--muted); font-size:.82rem; letter-spacing:.06em; text-transform:uppercase; }.back { display:inline-block; margin-top:30px; font-weight:760; text-decoration:none; }

@media(max-width:980px) {
  .site-header { grid-template-columns:1fr auto; }.site-header nav { display:none; }
  .hero { min-height:auto; }.hero-content { grid-template-columns:minmax(0,1fr); }.hero-aside { grid-template-columns:.75fr 1.25fr; align-items:stretch; }.wtc-logo-slot { padding-inline:20px; }
  .compact-heading,.decision-strip,.contact-section { grid-template-columns:1fr; }.story-grid { grid-template-columns:1fr; }.story-card { min-height:auto; }.story-card + .story-card { border-left:0; border-top:1px solid var(--line); }
  .decision-date strong { font-size:6rem; }.site-footer { grid-template-columns:1fr 1fr; }.footer-partner { justify-self:end; }.site-footer nav { grid-column:1/-1; justify-self:start; }
  .consent-card { grid-template-columns:1fr; gap:20px; }.consent-actions { min-width:0; }
}

@media(max-width:620px) {
  .site-header { padding:10px 20px; }.site-header .header-partners { display:none; }.nav-wtc-brand { min-width:100px; }.nav-wtc-brand img { width:88px; height:52px; }
  .hero-content { padding:58px 22px 70px; gap:42px; }.hero-copy { min-width:0; }.hero h1 { width:100%; font-size:clamp(2.75rem,12vw,3.4rem); overflow-wrap:anywhere; }.hero-lead { overflow-wrap:anywhere; }
  .hero-actions { flex-direction:column; align-items:stretch; }.button { width:100%; }.hero-aside { grid-template-columns:1fr; }.wtc-logo-slot { min-height:150px; }.trailer-card img { aspect-ratio:16/9; }
  .compact-section { padding:68px 22px; }.compact-heading { margin-bottom:38px; }.compact-heading h2,.contact-copy h2 { font-size:clamp(2.45rem,12vw,3.4rem); }.story-card { padding:30px 24px; }.card-index { margin-bottom:26px; }.decision-strip { padding:30px 24px; }.decision-date { align-items:flex-end; }
  .contact-section { min-height:600px; padding:68px 22px; }.statement { padding:24px; }.site-footer { grid-template-columns:1fr; padding:32px 22px; }.footer-partner { justify-self:start; flex-wrap:wrap; }.footer-partner>span { width:100%; }.site-footer nav { grid-column:auto; justify-self:start; flex-wrap:wrap; }
  .film-modal { padding:0; }.film-dialog { width:100%; }.film-head { padding:13px 16px; }
  .consent-banner { inset:auto 8px 8px; }.consent-card { padding:20px 18px; }.consent-actions { grid-template-columns:1fr; }.consent-copy>p:not(.consent-kicker) { font-size:.8rem; }.consent-manage { left:8px; bottom:8px; }
}

@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }.hero-media video { display:none; }.hero-media { background:url('/fileadmin/wtc2030/wtc-2030-poster.jpg') center/cover no-repeat; }
}
