/* Wild Wheels — the living tabletop. Every effect has a reduced-motion fallback. */
:root{--gold:#f1ca7c;--ink:#f8f0dc;--panel:#16292d}body{background:radial-gradient(ellipse at 80% 0,#50412b66,transparent 50%),#0a171d}.site-header{background:#0c1a20e8;max-width:none;padding:18px 3vw;border-bottom:1px solid #d2b77944}main{max-width:1660px;padding:26px 3vw 50px}.site-header nav{flex-wrap:wrap}.site-header .edition{white-space:nowrap}.primary{box-shadow:0 4px 0 #78572b,0 8px 24px #0006!important;border-radius:11px!important;background:linear-gradient(135deg,#ffe4a4,#dcae53)!important;letter-spacing:.2px}.primary:active{transform:translateY(3px)!important;box-shadow:0 1px 0 #78572b!important}
.arena-stage{position:relative;isolation:isolate;overflow:hidden;border-radius:22px;background:#213938 url('assets/art/arena-v07.webp') center/cover;box-shadow:inset 0 0 0 2px #c4ad6e66,0 18px 40px #0007;min-width:0;aspect-ratio:1.6;margin:12px 0}.arena-stage:before{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#030f1700 30%,#08191d38);pointer-events:none}.arena-map{display:block;width:100%;height:100%;position:relative;overflow:visible}.arena-sign{position:absolute;top:17px;left:50%;transform:translateX(-50%);text-align:center;background:#10282ddd;border:1px solid #eaca8c88;padding:10px 23px;border-radius:6px;z-index:2;box-shadow:0 5px 0 #0005;white-space:nowrap}.arena-sign span{font-size:12px;font-weight:900;letter-spacing:2px;color:#ffe4a4}.arena-sign small{display:block;font-size:9px;letter-spacing:2px;color:#c1d6ca;margin-top:5px}.arena-key{position:absolute;bottom:12px;left:0;width:100%;display:flex;justify-content:center;gap:18px;font-size:10px;text-shadow:0 2px 3px #000;background:#08171c99;padding:7px}.arena-key span:nth-child(1){color:#7edacc}.arena-key span:nth-child(2){color:#c0a0f4}.arena-key span:nth-child(3){color:#eabd69}.arena-key span:nth-child(4){color:#fbab84}.arena-racer{filter:drop-shadow(0 5px 4px #000a)}.is-driving .racer-ring{stroke-dasharray:8 2;animation:wheel-ring 9s linear infinite}.arena-racing-line{animation:road-flow 5s linear infinite}.arena-atmosphere{position:absolute;inset:0;overflow:hidden;pointer-events:none}.arena-atmosphere i{position:absolute;left:calc(var(--i)*8%);top:-20px;width:5px;height:8px;border-radius:80% 0;background:#f6d493;opacity:0;animation:petal-flight calc(10s + var(--i)*.6s) linear infinite;animation-delay:calc(var(--i)*-1.1s)}.arena-event{position:absolute;left:0;right:0;top:51%;text-align:center;font-size:clamp(17px,3vw,38px);font-weight:1000;font-style:italic;color:#fff1b7;text-shadow:0 4px 0 #21342c,0 0 25px #ffb64d;pointer-events:none;opacity:0;z-index:4}.race-spark{position:absolute;left:var(--x);top:62%;width:7px;height:7px;border-radius:50%;background:var(--hue);box-shadow:0 0 10px var(--hue);pointer-events:none;animation:spark-flight 1.2s ease-out forwards;z-index:4}
.racer-spotlight{position:relative;height:280px;overflow:hidden;border:2px solid #d7b66c;border-radius:18px;box-shadow:0 8px 24px #0006;margin:10px 0 16px;isolation:isolate}.racer-spotlight>img{width:100%;height:100%;object-fit:cover;object-position:50% 38%;transition:transform .8s}.racer-spotlight:hover>img{transform:scale(1.07)}.spotlight-caption{position:absolute;bottom:0;left:0;right:0;padding:40px 16px 16px;background:linear-gradient(transparent,#08171df5 50%)}.spotlight-caption strong{display:block;font-size:30px;font-style:italic;line-height:1.1;margin:4px 0;color:#fff0d2}.spotlight-caption small{color:#eac87d;letter-spacing:2px;text-transform:uppercase;font-size:9px}.spotlight-caption>span{display:block;font-size:12px;color:#a9e7d9;margin-top:8px}.spotlight-tier{position:absolute;top:12px;left:12px;font-size:9px;font-weight:bold;letter-spacing:1px;background:#142328dd;border:1px solid #bca465;padding:7px 10px;border-radius:20px}.spotlight-grain{position:absolute;inset:0;background:linear-gradient(115deg,transparent 25%,#ffedbe18 38%,transparent 52%);pointer-events:none}.racer-spotlight.Godlike,.racer-spotlight.Legendary{box-shadow:0 0 25px #e1b45240,0 10px 25px #0007}.lobby-lineup-art{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.lobby-lineup-art .racer-spotlight{height:220px}.lobby-lineup-art .spotlight-caption{padding:35px 10px 12px}.lobby-lineup-art .spotlight-caption strong{font-size:19px}.lobby-lineup-art .spotlight-tier,.lobby-lineup-art .spotlight-caption small{display:none}.join-room{background:linear-gradient(180deg,#0d202dea,#0d202dc9),url('assets/art/arena-v07.webp') center/cover}.lobby-mascot{width:240px;height:240px;box-shadow:0 15px 35px #0007}
.dice-tray{height:190px;position:relative;display:grid;place-items:center;perspective:700px;border:1px solid #ad956050;border-radius:22px;background:radial-gradient(ellipse at center,#365350,#0b2029 70%);box-shadow:inset 0 8px 30px #0007;margin:14px 0;overflow:hidden}.die-camera{width:82px;height:82px;perspective:500px;margin-top:-16px}.physical-die{width:82px;height:82px;position:relative;transform-style:preserve-3d;transform:rotateX(var(--rx)) rotateY(var(--ry))}.cube-face{position:absolute;inset:0;border:2px solid #fff3cf;border-radius:15px;background:linear-gradient(140deg,#fff1c5,#c99b50);box-shadow:inset 0 0 12px #fff6;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);padding:12px;gap:5px;backface-visibility:hidden}.cube-pip{border-radius:50%;background:transparent}.cube-pip.lit{background:#163033;box-shadow:inset 1px 2px 2px #0008}.face-1{transform:translateZ(41px)}.face-2{transform:rotateY(90deg) translateZ(41px)}.face-3{transform:rotateX(90deg) translateZ(41px)}.face-4{transform:rotateX(-90deg) translateZ(41px)}.face-5{transform:rotateY(-90deg) translateZ(41px)}.face-6{transform:rotateY(180deg) translateZ(41px)}.die-shadow{position:absolute;top:100px;width:110px;height:40px;border-radius:50%;background:#0008;filter:blur(8px)}.dice-caption{position:absolute;bottom:17px;font-size:9px;font-weight:bold;letter-spacing:2px;color:#ddc58c}.dice-result{padding:0}.dice-result .dice-tray{font-size:initial;font-weight:normal}.dice-result .die-camera{line-height:normal}html[data-dice=mint] .cube-face{background:linear-gradient(140deg,#e3fff6,#53b9a1);border-color:#b5ffee}html[data-dice=berry] .cube-face{background:linear-gradient(140deg,#ffe2f0,#b54978);border-color:#ffd7e8}
@media screen{.collectible{position:relative;padding:7px!important;border:1px solid color-mix(in srgb,var(--rarity,#b4c5aa) 65%,#eed89b)!important;border-radius:17px!important;background:linear-gradient(145deg,#d6c390,#29434a 6%,#0e1f27 50%,#a68b55 99%)!important;box-shadow:0 6px 0 #030c11,0 16px 28px #0007;overflow:hidden;isolation:isolate}.collectible:after{content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:linear-gradient(115deg,transparent 15%,#fff2 25%,transparent 38%);background-size:250% 100%;background-position:100%;opacity:.55;mix-blend-mode:screen;transition:background-position .8s}.collectible:hover:after{background-position:0}.collectible .card-art{aspect-ratio:2/2.15;position:relative;border-radius:11px 11px 0 0;margin:0;overflow:hidden}.collectible .card-art img{width:100%;height:100%;object-fit:cover;object-position:center 40%;transition:transform .65s}.collectible:hover .card-art img{transform:scale(1.06)}.card-art:after{content:'';position:absolute;inset:60% 0 0;background:linear-gradient(transparent,#10212d);pointer-events:none}.collectible .card-name{position:relative;margin-top:-25px;z-index:2;font-size:21px;font-style:italic;font-weight:950;letter-spacing:-.7px;padding:5px 8px 4px;color:#fff2d5;text-shadow:0 3px 7px #000}.collectible .card-heading{font-size:8px;letter-spacing:1.2px;padding:5px 3px 9px;background:none}.collectible .card-role{font-size:8px;color:#b9d8d2;background:#10212d;padding:6px 8px;text-transform:uppercase}.collectible .stats{background:#10212d;margin:0;padding:5px;gap:5px}.collectible .stats>span{border:1px solid #64808366;border-radius:8px;background:linear-gradient(#274950,#182e36);font-size:24px;color:#edce8c;padding:5px}.collectible .stats small{font-size:7px;color:#bbd4d1;letter-spacing:1px}.collectible .card-rules{background:#10212d;border:0;margin:0;padding:12px 9px;min-height:80px}.collectible .card-rules b{font-size:10px;color:#ead29c;text-transform:uppercase;letter-spacing:.4px}.collectible .card-rules p{font-size:11px;line-height:1.45;color:#d0ded8;margin-top:7px}.collectible .card-flavor{background:#10212d;color:#94acae;font-size:9px;padding:8px 9px;line-height:1.4}.collectible .card-footer{padding:8px 3px 2px;background:none;color:#c0b68f;font-size:7px}.collectible .art-tag{top:12px;bottom:auto;font-size:7px;right:8px;padding:5px 7px;background:#15272cdd;color:#ffe0a1;border:1px solid #c5a97188;z-index:2;border-radius:4px}.collectible.Godlike{--rarity:#f0bf66;box-shadow:0 6px 0 #493217,0 0 26px #d8a54030,0 18px 30px #0008}.collectible.Legendary{--rarity:#d7a5f4}.collectible.Rare{--rarity:#7cbeef}.collectible.Uncommon{--rarity:#93cdae}.card-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:27px}.card-wrap>button{margin-top:14px}.showcase .collectible{width:220px}.stable .collectible .card-art{aspect-ratio:1.1}.stable .collectible .card-rules{min-height:72px}.stable .collectible .card-rules p{font-size:10px}.stable .collectible .card-flavor{display:none}.stable .collectible .card-name{font-size:19px}.stable-choice.selected .collectible{outline:2px solid #f3d190;box-shadow:0 0 24px #e1c57440}.stable-choice:disabled{opacity:.85}.stable-choice{transition:transform .25s!important}.stable-choice:hover:not(:disabled){transform:translateY(-9px)!important}}
.race-layout{grid-template-columns:minmax(0,1fr) 310px;gap:24px}.board-panel{padding:14px;background:#112329;border-color:#8c784855}.race-top h1{font-size:30px}.race-top{margin-bottom:18px}.race-cue{font-size:11px;margin:8px 0}.board-head h2{font-size:20px}.board-head small{font-size:8px}.board-panel>.legend{display:none}.control-panel{background:linear-gradient(160deg,#243b40,#11232b);border-color:#b0996555;max-height:calc(100dvh - 24px)}.driver-portrait{position:relative!important;display:block!important;height:200px;padding:0!important;overflow:hidden;border-radius:14px!important}.driver-portrait>img{width:100%!important;height:100%!important;object-fit:cover!important;object-position:center 35%!important;border-radius:0!important}.driver-portrait>div{position:absolute;bottom:0;padding:30px 12px 10px;width:100%;background:linear-gradient(transparent,#10232bf5)}.driver-portrait .terrain-label{margin:0 0 5px!important;color:#ffdf9a}.driver-portrait span{font-size:10px}.control-panel>.racer-quip{display:none}.race-layout .turn-panel{padding:17px;min-width:0}.race-layout .turn-panel>.eyebrow{margin-bottom:6px}.turn-panel>.racer-spotlight{height:240px;margin-top:0}.turn-panel .crew-portraits img{height:80px}.turn-panel .crew-portraits button{background:#14252b;border-color:#36555b}.turn-panel>.crew-portraits{margin:13px 0}.turn-panel>p{font-size:11px}.turn-panel fieldset legend{display:none}.turn-panel label{font-size:11px;margin:10px 0}.turn-panel fieldset p{font-size:11px}.turn-panel fieldset button{font-size:11px}.turn-panel .selectable span{font-size:9px}.race-scoreboard{gap:12px}.race-scoreboard .room-card{padding:14px;margin-bottom:0;position:relative;overflow:hidden}.race-scoreboard .room-card:first-child{border-top:3px solid #8ee3d7}.race-scoreboard .room-card:last-child{border-top:3px solid #efb385}.race-scoreboard .room-card p{font-size:11px}.race-scoreboard .room-card strong{font-size:32px}.race-scoreboard .room-card p:nth-of-type(2){margin:4px 0}.in-race .room-banner{padding:8px 18px;border-radius:12px;margin-bottom:15px}.in-race .room-code{font-size:20px}.in-race .room-banner .eyebrow{display:none}.in-race .room-banner p{width:auto;margin-left:auto;font-size:10px}.in-race .room-banner button{font-size:10px;padding:8px}.in-race main>.section-head{display:none}.in-race #connection{padding:7px 12px;font-size:10px;margin:0 0 10px}.in-race .race-layout>section>section.room-card{font-size:11px}.in-race .race-layout{grid-template-columns:minmax(0,1fr) 320px}
html[data-board=garden] .arena-stage{background-blend-mode:luminosity;background-color:#244132}html[data-board=sunset] .arena-stage{background-blend-mode:luminosity;background-color:#674630}.race-log{font-size:11px}.scoreboards{gap:10px}.scoreboards .score{background:#12272d;padding:12px}.scoreboards .score strong{font-size:30px}
@keyframes road-flow{to{stroke-dashoffset:-110}}@keyframes wheel-ring{to{stroke-dashoffset:-100}}@keyframes petal-flight{10%{opacity:.7}85%{opacity:.4}to{transform:translate(100px,650px) rotate(280deg);opacity:0}}@keyframes spark-flight{0%{opacity:0;transform:scale(.3)}20%{opacity:1}100%{opacity:0;transform:translate(var(--dx),var(--dy)) scale(0)}}@keyframes card-arrival{from{opacity:0;transform:translateY(20px) rotateY(15deg)}to{opacity:1;transform:none}}
@media(max-width:1000px){.in-race .race-layout,.race-layout{grid-template-columns:minmax(0,1fr) 275px}.arena-sign{top:9px;padding:6px 12px}.arena-sign span{font-size:9px}.arena-sign small{font-size:7px}.arena-key{font-size:8px;gap:10px}.lobby-lineup-art .racer-spotlight{height:175px}.lobby-lineup-art .spotlight-caption strong{font-size:15px}}
@media(max-width:800px){.in-race .race-layout,.race-layout{grid-template-columns:minmax(0,1fr)}.control-panel{grid-row:auto;position:static;max-height:none}.arena-stage{border-radius:13px}.arena-sign{padding:5px 8px;top:5px}.arena-sign span{font-size:8px;letter-spacing:.8px}.arena-sign small{font-size:6px;letter-spacing:1px}.arena-key{bottom:3px;padding:4px;font-size:7px;gap:10px}.turn-panel>.racer-spotlight{height:260px}.race-top{flex-wrap:wrap}.race-top h1{font-size:25px}.card-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.collectible .card-name{font-size:17px}.collectible .card-rules p{font-size:10px}.collectible .card-flavor{font-size:8px}.collectible .stats>span{font-size:21px}.collectible .stats small{font-size:6px;letter-spacing:0}.lobby-lineup-art{gap:5px}.lobby-lineup-art .racer-spotlight{height:170px}.lobby-lineup-art .spotlight-caption strong{font-size:13px}.lobby-lineup-art .spotlight-caption>span{font-size:9px}.showcase .collectible{width:clamp(130px,26vw,195px)}.stable .collectible{padding:4px!important}.stable .collectible .card-name{font-size:13px}.stable .collectible .card-rules p{font-size:9px}.stable .collectible .card-rules{padding:8px 5px}.stable .collectible .stats small{font-size:5px}.stable .collectible .stats>span{font-size:19px}.site-header nav{justify-content:flex-start;gap:3px}.site-header nav>a{font-size:11px;padding:8px}.in-race .room-banner p{width:100%;margin:0}.in-race .room-banner{gap:10px}}
@media(prefers-reduced-motion:reduce){.arena-stage *,.collectible,.collectible *{animation:none!important;transition:none!important}}html[data-motion=quick] .arena-stage *,html[data-motion=quick] .collectible{animation:none!important;transition:none!important}
body:not(.in-race) main:has(#table)>.section-head{position:relative;padding:32px;border-radius:24px;min-height:240px;overflow:hidden;border:1px solid #ac966255;background:linear-gradient(90deg,#09202ae8,#09202a75 65%,#09202a22),url('assets/art/arena-v07.webp') center 40%/cover;margin:0 0 20px}body:not(.in-race) main:has(#table)>.section-head>div{position:relative;z-index:1}body:not(.in-race) main:has(#table)>.section-head h1{font-size:clamp(32px,4vw,57px);max-width:65%}body:not(.in-race) main:has(#table)>.section-head:after{content:'';position:absolute;right:0;top:0;bottom:0;width:34%;background:url('assets/art/hovie-boi.webp') center 40%/cover;mask-image:linear-gradient(90deg,transparent,#000 35%)}body:not(.in-race) main:has(#table)>.section-head>div>p:last-child{max-width:62%;font-size:12px;line-height:1.5}.detail-layout{grid-template-columns:minmax(260px,340px) 1fr}.detail-layout .collectible{max-width:none}.detail-layout .collectible .card-art{aspect-ratio:2/2.5}dialog#details{width:min(1000px,95vw);background:radial-gradient(ellipse at 20% 30%,#385350,#0c1c25 65%);border-color:#c7ae7266}.card-wrap{perspective:1000px}.card-wrap:has(.Godlike)>button{border-color:#ab8c4a;color:#ffdc95}.pack-opening{background:radial-gradient(ellipse at top,#80714344,transparent 70%),#0b1c25!important;border-color:#d4b66e77!important}@keyframes rare-reveal{from{transform:translateX(-150%)}to{transform:translateX(150%)}}@media(max-width:600px){body:not(.in-race) main:has(#table)>.section-head{padding:20px;min-height:210px}.detail-layout{grid-template-columns:1fr}.detail-layout .collectible{max-width:330px;margin:auto}.collectible .card-footer{font-size:6px}}
body:not(.in-race) main:has(#table)>.section-head>div{width:100%}body:not(.in-race) main:has(#table)>.section-head h1{max-width:65%;width:65%}.arena-zoom{position:absolute;right:12px;top:12px;padding:6px 10px;background:#102a31d9;color:#ffe1a2;border-color:#bba46a99;font-size:20px;z-index:6}.arena-stage.zoomed{overflow:auto;aspect-ratio:auto;height:620px}.arena-stage.zoomed .arena-map{width:960px;min-width:960px;height:600px}.arena-stage.zoomed .arena-sign,.arena-stage.zoomed .arena-key{display:none}.arena-stage.zoomed .arena-zoom{position:sticky;float:right;top:12px;right:12px;margin-top:-590px}.arena-stage.zoomed:before{display:none}
@media(max-width:600px){body:not(.in-race) main:has(#table)>.section-head h1{font-size:32px;letter-spacing:-1px;max-width:75%;width:75%}.arena-zoom{padding:2px 7px;top:5px;right:5px;font-size:16px}}

.arena-event{left:20%;right:20%;top:44%;padding:23px 8px;border-radius:14px;background:radial-gradient(ellipse,#153239f5,#11272de8);border:1px solid #e5c88488;box-shadow:0 6px 30px #0008;font-size:clamp(15px,2.6vw,36px)}
@media screen{.collectible .card-art{aspect-ratio:2/2.7}.collectible .art-tag{display:none}.stable .collectible .card-art{aspect-ratio:1.1}.showcase .collectible .card-art{aspect-ratio:2/2.2}.collectible .card-name{margin-top:-20px}.print-extras{margin-top:12px;font-size:11px;color:#b8b9a0}.print-extras summary{cursor:pointer}.print-extras .print-tools{margin:12px 0}.section-head:has(+.filters) h1{font-size:38px}.section-head:has(+.filters){margin-bottom:20px}.count-line{margin-top:10px}}
html[data-cards=foil] .collectible{border-color:#f1d394!important}html[data-cards=frost] .collectible{border-color:#d3edff!important}
@media print{.print-extras{display:none}}
/* Shared physical presentation in both race modes. */
.dice-result .dice-tray{width:100%;min-width:0}
.victory-particles{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:50}
.victory-particles i{position:absolute;top:-20px;width:9px;height:15px;background:var(--color);animation:confetti-fall 1.8s var(--delay) ease-in both}
@keyframes confetti-fall{to{transform:translate(var(--drift),105vh) rotate(650deg);opacity:.2}}
html[data-board=garden] .arena-stage{background-color:#567341;background-blend-mode:soft-light}
html[data-board=garden] .arena-map #road-surface stop:first-child{stop-color:#52703e}
html[data-board=garden] .arena-map #road-surface stop:last-child{stop-color:#253e2a}
html[data-board=sunset] .arena-stage{background-color:#b46d4c;background-blend-mode:soft-light}
html[data-board=sunset] .arena-map #road-surface stop:first-child{stop-color:#875a4a}
html[data-board=sunset] .arena-map #road-surface stop:last-child{stop-color:#432c32}
