/* V1: a living sporting world, illustrated and explorable. */
[hidden]{display:none!important}
button{font:inherit;color:inherit;cursor:pointer}
button:focus-visible,[role=tabpanel]:focus-visible{outline:2px solid var(--ink);outline-offset:5px}
.header{position:relative;z-index:2}
.hero-art{position:relative;margin:0;isolation:isolate;background:radial-gradient(ellipse at 20% 65%,#b5dce555,transparent 60%),radial-gradient(ellipse at 85% 25%,#ff5d5520,transparent 55%);border-radius:55% 40% 12px 12px / 20% 20% 12px 12px}
.hero-art img{display:block;width:100%;height:clamp(380px,47vw,680px);object-fit:contain;mix-blend-mode:multiply;mask-image:linear-gradient(to bottom,transparent,black 5%,black 94%,transparent)}
.art-tag,.art-stamp{position:absolute;padding:17px 24px;background:#fff9;border:1px solid #fff;backdrop-filter:blur(12px);box-shadow:0 8px 40px #20382d0b;border-radius:40px;font-size:14px;line-height:1.5}
.art-tag{bottom:5%;left:4%;transform:rotate(-3deg);animation:float-in 3s ease-out both}
.art-stamp{top:8%;right:2%;transform:rotate(4deg);animation:float-in 4s ease-out both}
@keyframes float-in{from{opacity:0;translate:0 20px}to{opacity:1;translate:0 0}}
.vision{padding-block:95px 75px}
.vision p{max-width:780px}
.ecosystem{gap:7%;align-items:start}
.ecosystem h2{font-size:clamp(39px,4.4vw,68px)}
.ecosystem p{max-width:none}
.sport-map{padding:35px 30px 25px;border:1px solid #fff;background:linear-gradient(135deg,#dcebf3aa,#faf9f299 45%,#ff5d5518);border-radius:22px;box-shadow:0 22px 70px #20382d0a;position:relative}
.sport-map>.eyebrow{font-size:11px;color:var(--muted)}
.map-layers{display:grid;gap:17px}
.map-row{display:flex;gap:9px;justify-content:center}
.map-row span{flex:1;text-align:center;display:grid;place-items:center;padding:15px 8px;font-size:13px;line-height:1.4;background:#ffffffb0;border:1px solid #fff;border-radius:11px;box-shadow:0 5px 12px #22332205}
.map-row:nth-child(2){margin-inline:15px;transform:rotate(-2deg)}
.map-thread{height:23px;width:1px;background:var(--coral);margin:auto;position:relative}
.map-thread:before{content:'';position:absolute;bottom:0;left:-3px;width:7px;height:7px;border-radius:50%;background:var(--coral)}
.event-node{background:var(--ink);color:var(--paper);padding:20px;text-align:center;border-radius:14px;max-width:290px;width:100%;margin:0 auto 15px;font-size:19px}
.role-label{font-size:14px!important;margin:18px 0 12px}
.role-buttons{display:flex;flex-wrap:wrap;gap:8px}
.role-buttons button{min-height:42px;border:1px solid #bdc5bb;border-radius:24px;background:#ffffff70;padding:9px 14px;font-size:13px;transition:background .2s,transform .2s}
.role-buttons button:hover{transform:translateY(-2px);background:white}
.role-buttons button[aria-pressed=true]{background:var(--coral);border-color:var(--coral);color:var(--ink)}
#role-description{min-height:106px;padding-top:20px}
#role-description p{font-size:16px;line-height:1.5;margin:0;color:var(--ink)}
.diagram-note{font-size:12px!important;line-height:1.6!important;color:var(--muted);margin:18px 0 0}
.week{border-top:1px solid var(--line);padding:80px 0 100px}
.week-opening{display:grid;grid-template-columns:1.2fr 1fr;gap:9%;align-items:center;margin-bottom:55px}
.week h2{font-weight:400;margin:0;line-height:1}
.week-number{display:block;font-size:clamp(90px,12vw,180px);letter-spacing:-.085em;font-variant-numeric:tabular-nums;color:var(--coral)}
.week-unit{display:block;font-family:Georgia,serif;font-size:clamp(27px,3.5vw,50px);font-style:italic;letter-spacing:-.025em;margin-top:12px}
.week-intro h3{font-weight:400;font-size:30px;line-height:1.2;letter-spacing:-.035em;margin:0 0 20px}
.week-intro p{color:var(--muted);margin:0}
.week-explorer{background:linear-gradient(110deg,#dcebf375,#fff9 55%,#ffe2b065);border:1px solid #fff;border-radius:20px;overflow:hidden}
.week-tabs{display:grid;grid-template-columns:repeat(7,1fr);padding:20px 28px 0;position:relative}
.week-tabs:before{content:'';position:absolute;top:40px;left:9%;right:9%;height:1px;background:#9ba79655}
.week-tabs button{position:relative;background:transparent;border:0;min-height:80px;font-size:15px;display:flex;align-items:center;flex-direction:column;gap:12px;padding:11px 2px 18px}
.day-dot{width:18px;height:18px;border-radius:50%;border:5px solid var(--paper);background:#adb7a7;box-shadow:0 0 0 1px #bdc6b7;transition:transform .2s,background .2s}
[aria-selected=true] .day-dot{background:var(--coral);transform:scale(1.25);box-shadow:0 0 0 1px var(--coral)}
.week-tabs button[aria-selected=true]{font-weight:bold}
.week-tabs button:hover .day-dot{transform:scale(1.2)}
.week-panel{display:grid;grid-template-columns:1fr 5fr;gap:25px;padding:35px 45px 45px;min-height:240px;border-top:1px solid #ffffffb0}
.week-panel .eyebrow{margin-bottom:15px;color:var(--muted)}
.week-panel h3{font-size:clamp(25px,3vw,40px);letter-spacing:-.035em;font-weight:400;line-height:1.2;margin:0 0 16px}
.week-panel p:last-child{margin-bottom:0;max-width:750px}
.panel-index{font-family:Georgia,serif;font-style:italic;font-size:64px;color:#34493450;line-height:1}
.manifesto{background:linear-gradient(125deg,#ff5d55e8,#ff857bd9);position:relative}
@media(max-width:850px){.ecosystem{grid-template-columns:1fr;gap:40px}.ecosystem>div:last-child{grid-row:1}.sport-map{max-width:650px;width:100%;margin:auto}.week-opening{gap:5%;grid-template-columns:1fr 1fr}.week-number{font-size:105px}.week-intro h3{font-size:25px}.week-intro p{font-size:16px}.week-panel{min-height:275px}.hero-art img{height:440px}.art-tag,.art-stamp{font-size:12px;padding:12px 18px}}
@media(max-width:600px){.hero-intro h1{font-size:clamp(49px,15.6vw,84px)}.hero-art{margin-inline:-16px}.hero-art img{height:auto;aspect-ratio:1.15;object-fit:cover;object-position:50% center}.art-stamp{top:0;right:2%;font-size:11px;padding:8px 12px}.art-tag{bottom:0;left:3%;max-width:90%;font-size:11px;padding:10px 14px}.vision{padding:65px 0 48px}.ecosystem h2{font-size:43px}.sport-map{padding:25px 17px 20px}.map-row{gap:5px}.map-row span{font-size:11px;padding:12px 5px}.map-row:nth-child(2){margin-inline:8px}.event-node{max-width:235px}.role-buttons{gap:7px}.role-buttons button{font-size:12px;padding-inline:12px}.week{padding:55px 0 65px}.week-opening{grid-template-columns:1fr;gap:32px;margin-bottom:30px}.week-number{font-size:clamp(92px,26vw,132px)}.week-unit{font-size:32px}.week-intro h3{font-size:28px}.week-intro p{font-size:17px}.week-tabs{padding:15px 9px 0}.week-tabs:before{top:35px}.week-tabs button{font-size:13px}.week-panel{grid-template-columns:1fr;padding:25px;gap:12px;min-height:300px}.panel-index{font-size:34px}.week-panel h3{font-size:28px}.week-panel p:last-child{font-size:16px}.week-panel .eyebrow{font-size:10px}.diagram-note{font-size:11px!important}}
@media(prefers-reduced-motion:reduce){.art-tag,.art-stamp{animation:none}button,.day-dot{transition:none!important}}
