/* Shared interaction, individually art-directed sport campaigns. */
body{--surface:#17241f;--surface-deep:#101b18;background:var(--night)}
.world-photo{inset:0;mask-image:none}.world-photo img{object-position:right center}
.world-shade{background:linear-gradient(90deg,transparent 28%,color-mix(in srgb,var(--night) 12%,transparent) 43%,color-mix(in srgb,var(--night) 64%,transparent) 65%,var(--night) 100%),linear-gradient(0deg,var(--night),transparent 65%)}
.wizard,.report-panel{background:linear-gradient(145deg,color-mix(in srgb,var(--surface) 96%,transparent),color-mix(in srgb,var(--surface-deep) 97%,transparent));border-color:color-mix(in srgb,var(--acid) 24%,transparent)}
.story{isolation:isolate}.story-copy{position:relative;z-index:1}.story h1{font-size:clamp(46px,5vw,82px)}.story p{font-size:15px;line-height:1.65;max-width:28em}.story-overline{font-size:11px;line-height:1.5}.story-label{font-size:12px}.story-bottom{font-size:12px}.brand-mark i,.wizard-edge,.analysis-visual span{background:var(--acid)}.age-range input{color:var(--acid)}.next{color:var(--night)}.report-top b{font-size:10px}.profile-stamp strong{color:var(--acid)}
@media(min-width:701px){
 [data-side=left] .experience:not(.show-report){grid-template-columns:minmax(450px,540px) minmax(0,1fr)}
 [data-side=left] .wizard{grid-column:1;grid-row:1}
 [data-side=left] .story{grid-column:2;grid-row:1;text-align:right}
 [data-side=left] .story-label{justify-content:flex-end}
 [data-side=left] .story h1,[data-side=left] .story p{margin-left:auto}
 [data-side=left] .world-photo img{object-position:left center}
 [data-side=left] .world-shade{background:linear-gradient(90deg,var(--night),color-mix(in srgb,var(--night) 80%,transparent) 30%,color-mix(in srgb,var(--night) 20%,transparent) 60%,transparent 86%),linear-gradient(0deg,var(--night),transparent 60%)}
}
/* Football: floodlit field, a measured pitch perimeter and electric green. */
[data-theme=stadium]{--surface:#15291e;--surface-deep:#0b1711}
[data-theme=stadium] .wizard{border-radius:8px 32px 8px 8px;border-top:3px solid var(--acid)}
[data-theme=stadium] .story:before{content:'';position:absolute;inset:18% 8% 38% 2%;border:1px solid #ffffff25;border-radius:0 60px 0 0;z-index:-1}
[data-theme=stadium] .story h1{font-weight:700;line-height:1.02;text-transform:uppercase}
[data-theme=stadium] .choice{border-radius:4px}.sport-football .report-panel{border-radius:8px}
[data-sport=football] .report-panel{border-top:4px solid var(--acid)}
/* Hockey: cold metal, sharp ice cuts, scoreboard-like numerals. */
[data-theme=ice]{--surface:#172b3b;--surface-deep:#0c1726}
[data-theme=ice] .wizard{border-radius:4px 4px 34px 4px;border-bottom:3px solid var(--acid)}
[data-theme=ice] .story:before{content:'';position:absolute;inset:28% 5% 30%;background:repeating-linear-gradient(135deg,transparent 0 90px,#c1edff26 91px 92px,transparent 93px 140px);z-index:-1}
[data-theme=ice] .story h1{font-style:italic;text-transform:uppercase;letter-spacing:-.02em}
[data-theme=ice] .choice,[data-theme=ice] .test-row{border-radius:3px}.report-panel .test-number{color:var(--acid)}
/* Basketball: warm parquet, a giant centre-court arc, confident rounded scorecards. */
[data-theme=court]{--surface:#342319;--surface-deep:#1a1410}
[data-theme=court] .story:before{content:'';position:absolute;width:310px;height:310px;border:2px solid #ffbd7855;border-radius:50%;left:-65px;top:18%;z-index:-1}
[data-theme=court] .wizard{border-radius:30px 30px 10px 10px;border-top:2px solid var(--acid)}
[data-theme=court] .story h1{font-weight:700;text-transform:uppercase;line-height:1.02}
[data-theme=court] .test-row{border-left:4px solid var(--acid)}[data-theme=court] .profile-age{font-size:100px}
/* Volleyball: tall net divisions, elevated cool-violet panels. */
[data-theme=net]{--surface:#232c50;--surface-deep:#11192e}
[data-theme=net] .story:before{content:'';position:absolute;inset:18% 0 35%;background:repeating-linear-gradient(90deg,transparent 0 57px,#ffffff20 58px 59px),repeating-linear-gradient(0deg,transparent 0 57px,#ffffff20 58px 59px);mask-image:linear-gradient(0deg,transparent,#000,transparent);z-index:-1}
[data-theme=net] .wizard{border-radius:32px 8px 32px 8px}
[data-theme=net] .story h1{font-weight:500;letter-spacing:-.025em}
[data-theme=net] .choice{border-left:3px solid color-mix(in srgb,var(--acid) 40%,transparent)}
[data-theme=net] .report-profile{border-right-style:dashed}
/* Handball: warm arena, impact band and compact bold blocks. */
[data-theme=impact]{--surface:#382219;--surface-deep:#211411}
[data-theme=impact] .story:before{content:'';position:absolute;inset:34% -8% 42% 0;background:linear-gradient(115deg,#ff865a33,transparent);transform:skewY(-12deg);z-index:-1}
[data-theme=impact] .wizard{border-radius:8px;border-left:4px solid var(--acid)}
[data-theme=impact] .story h1{font-weight:700;text-transform:uppercase;font-style:italic}
[data-theme=impact] .choice,[data-theme=impact] .next,[data-theme=impact] .test-row{border-radius:5px}
[data-theme=impact] .report-panel{border-left:5px solid var(--acid);border-radius:8px}
/* Rugby: heritage club greens, ivory accents, turf divisions. */
[data-theme=club]{--surface:#293929;--surface-deep:#152218}
[data-theme=club] .wizard{border-radius:10px;border:1px solid #e1e9a54d;box-shadow:0 0 0 6px #e1e9a508,0 30px 80px #0005}
[data-theme=club] .story:before{content:'';position:absolute;inset:22% 10% 28%;border-top:2px solid #e1e9a566;border-bottom:2px solid #e1e9a544;z-index:-1}
[data-theme=club] .story h1{font-weight:500;letter-spacing:.005em}
[data-theme=club] .report-top{border-bottom:double 3px #e1e9a544}
[data-theme=club] .test-row{border-radius:4px}
/* Tennis: clay warmth, court-line frame and lean match typography. */
[data-theme=clay]{--surface:#3a2c20;--surface-deep:#221a13}
[data-theme=clay] .story:before{content:'';position:absolute;inset:16% 8% 35% 0;border:1px solid #f2d3a155;box-shadow:inset 35px 0 0 #f2d3a108;z-index:-1}
[data-theme=clay] .wizard{border-radius:3px;border-top:3px double var(--acid)}
[data-theme=clay] .choice,[data-theme=clay] .age-preset,[data-theme=clay] .next{border-radius:3px}
[data-theme=clay] .story h1{font-weight:500;line-height:1.08}
[data-theme=clay] .report-panel{border-radius:3px}.report-main .test-row{border-color:color-mix(in srgb,var(--acid) 24%,transparent)}
/* Combat: restrained dojo, vertical discipline stripe and hard-edged report. */
[data-theme=dojo]{--surface:#2b211e;--surface-deep:#171310}
[data-theme=dojo] .wizard{border-radius:2px;border-top:4px solid var(--acid)}
[data-theme=dojo] .story:before{content:'';position:absolute;right:8%;top:20%;width:38px;height:180px;background:linear-gradient(#ffb2a34d,transparent);transform:skew(-9deg);z-index:-1}
[data-theme=dojo] .story h1{text-transform:uppercase;font-weight:700;font-size:clamp(50px,5.5vw,86px)}
[data-theme=dojo] .choice,[data-theme=dojo] .next,[data-theme=dojo] .test-row{border-radius:2px}
[data-theme=dojo] .report-panel{border-radius:2px;border-right:5px solid var(--acid)}
/* Swimming: translucent deep-water glass and broad surface ripples. */
[data-theme=water]{--surface:#123b46;--surface-deep:#09212c}
[data-theme=water] .wizard{border-radius:40px 40px 12px 40px;background:linear-gradient(145deg,#164450eb,#081f2af5)}
[data-theme=water] .story:before{content:'';position:absolute;width:95%;height:160px;border-top:1px solid #9ff4ec55;border-bottom:1px solid #9ff4ec22;border-radius:50%;top:32%;left:0;transform:rotate(-12deg);z-index:-1}
[data-theme=water] .story h1{font-family:Onest,sans-serif;font-size:clamp(40px,4.5vw,70px);font-weight:600;line-height:1.08;letter-spacing:-.06em}
[data-theme=water] .choice{border-radius:16px}[data-theme=water] .report-panel{border-radius:36px 12px 36px 12px}
/* Nordic: glacier horizon, open air and icy monospaced captions. */
[data-theme=alpine]{--surface:#2b414e;--surface-deep:#142733}
[data-theme=alpine] .wizard{border-radius:6px 30px 6px 6px;border-bottom:3px solid var(--acid)}
[data-theme=alpine] .story:before{content:'';position:absolute;left:0;right:0;top:42%;height:1px;background:linear-gradient(90deg,transparent,#e0f0ff99);transform:rotate(-14deg);z-index:-1}
[data-theme=alpine] .story h1{font-weight:500;text-transform:uppercase;letter-spacing:.015em}
[data-theme=alpine] .story-overline,[data-theme=alpine] .wizard-wordmark{font-family:monospace}
[data-theme=alpine] .test-row{border-radius:3px;border-bottom:2px solid var(--acid)}
/* Gymnastics: plum stage, satin curves and a sculpted asymmetric frame. */
[data-theme=gallery]{--surface:#412139;--surface-deep:#241322}
[data-theme=gallery] .wizard{border-radius:42px 8px 42px 8px;border-color:#ffbfdb55}
[data-theme=gallery] .story:before{content:'';position:absolute;inset:15% 8% 23% 0;border:1px solid #ffbfdb44;border-radius:50% 50% 0 50%;transform:rotate(-15deg);z-index:-1}
[data-theme=gallery] .story h1{font-weight:500;font-size:clamp(50px,5.7vw,88px);line-height:1.08;letter-spacing:-.03em}
[data-theme=gallery] .choice{border-radius:18px 4px 18px 4px}
[data-theme=gallery] .report-panel{border-radius:36px 8px 36px 8px}
[data-theme=gallery] .profile-stamp strong{font-weight:500}
@media(max-width:700px){
 .world-photo img{object-position:75% top}.world-shade{background:linear-gradient(0deg,var(--night) 30%,color-mix(in srgb,var(--night) 70%,transparent) 50%,transparent 90%)}
 [data-side=left] .story{text-align:left;grid-column:auto;grid-row:auto}.story:before{display:none}.story h1,[data-theme] .story h1{font-size:clamp(26px,7vw,36px);line-height:1.03;letter-spacing:-.03em}.story p{display:none}.story-overline{font-size:8px}.story h1 br:nth-child(2){display:none}.story h1 span{display:inline}.story-copy{padding:0}.wizard{border-radius:20px!important;border-width:1px!important}.report-panel{border-radius:20px!important}.story-label{display:none}.report-profile .profile-age{font-size:34px}.profile-stamp{display:none}
}
@media(max-height:720px) and (min-width:701px){.story h1,[data-theme] .story h1{font-size:44px}.story p{font-size:12px}.story-overline{font-size:9px}.story:before{opacity:.5}}
@media(min-width:701px){
 .world-photo img{object-position:132% center}
 [data-side=left] .world-photo img{object-position:40% center}
 [data-theme=court] .world-photo img{object-position:40% center}
 [data-theme=gallery] .world-photo img{object-position:40% center}
 [data-theme=water] .world-photo img{object-position:24% center}
 [data-theme=impact] .world-photo img{object-position:40% center}
}
@media(max-width:700px) and (max-height:700px){[data-theme=gallery] .story h1,[data-theme=dojo] .story h1,[data-theme=alpine] .story h1{font-size:23px}}
@media(max-width:700px) and (max-height:600px){.story h1,[data-theme] .story h1{font-size:18px!important}.story h1 br:nth-child(2){display:none}}

/* Photography takes priority over ornamental pitch/court geometry. */
.story:before,.story:after{display:none!important}.story-label,.story-rule,.story-number{display:none!important}.story-bottom{border-top:0;padding-top:0}
body[data-theme=ice]{--acid:#a1e6ff;--accent:#a1e6ff;--surface:#172b3b;--surface-deep:#0c1726;--muted:#a9bacb}
[data-theme=ice] .wizard,[data-theme=ice] .report-panel{background:linear-gradient(145deg,#172b3bf7,#0c1726f7);border-color:#a1e6ff40}
[data-theme=ice] .wizard-edge,[data-theme=ice] .next,[data-theme=ice] .age-preset[aria-pressed=true],[data-theme=ice] .steps button[aria-current=step]>span:first-child{background:#a1e6ff;color:#101d2a}
[data-theme=ice] .age-range input{color:#a1e6ff}
/* Keep volleyball copy below the athlete's face. */
@media(min-width:701px){
 [data-theme=net] .story{justify-content:flex-end;padding-bottom:10px}
 [data-theme=net] .story-copy{padding-bottom:0}
 [data-theme=net] .story h1{font-size:clamp(40px,4.3vw,68px);line-height:1.05}
 [data-theme=net] .story-overline{margin-bottom:12px}
 [data-theme=net] .story p{font-size:13px;line-height:1.55;margin-top:16px}
 [data-theme=net] .story-bottom{margin-top:18px;font-size:10px}
}

@media(min-width:701px){
 [data-theme=clay] .story,[data-theme=water] .story,[data-theme=gallery] .story{justify-content:flex-end;padding-bottom:10px}
 [data-theme=clay] .story h1,[data-theme=water] .story h1,[data-theme=gallery] .story h1{font-size:clamp(38px,4.2vw,66px);line-height:1.05}
 [data-theme=clay] .story-overline,[data-theme=water] .story-overline,[data-theme=gallery] .story-overline{margin-bottom:12px}
 [data-theme=clay] .story p,[data-theme=water] .story p,[data-theme=gallery] .story p{font-size:13px;line-height:1.5;margin-top:14px}
 [data-theme=clay] .story-bottom,[data-theme=water] .story-bottom,[data-theme=gallery] .story-bottom{margin-top:16px;font-size:10px}
}
