@import "https://fonts.googleapis.com/css2?family=Archivo+Black&family=DM+Sans:wght@400;600;700&display=swap";:root{color:#18211c;font-synthesis:none;--forest:#173a2b;--paper:#f8f4e9;--yellow:#f4bc3b;--green:#24734d;--red:#be4134;background:#e8e1d2;font-family:DM Sans,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}.shell{background-color:#e8e1d2;background-image:linear-gradient(#173a2b14 1px,#0000 1px),linear-gradient(90deg,#173a2b14 1px,#0000 1px);background-size:32px 32px;min-height:100vh;padding:clamp(1.25rem,5vw,4rem)}.brand{align-items:center;gap:1rem;max-width:1080px;margin:0 auto 3rem;display:flex}.route-marker{aspect-ratio:1;border:4px solid var(--paper);outline:3px solid var(--forest);background:var(--forest);width:58px;color:var(--paper);border-radius:50%;place-items:center;font-weight:700;display:grid}.eyebrow,.section-number{color:var(--red);text-transform:uppercase;margin:0;font-size:.75rem;font-weight:700}h1,h2{letter-spacing:0;font-family:Archivo Black,sans-serif}h1{margin:.15rem 0 0;font-size:clamp(1.5rem,4vw,2.5rem)}.version-stamp{color:#667068;margin-top:.35rem;font-size:.65rem;font-weight:600;line-height:1.3;display:block}.rules-link{color:var(--forest);text-underline-offset:3px;align-items:center;gap:.4rem;margin-top:.6rem;font-size:.8rem;font-weight:700;display:inline-flex}.rules-link svg{width:16px;height:16px}.rules-link span{color:#667068;font-size:.7rem}.rules-link:focus-visible{outline:3px solid var(--yellow);outline-offset:3px}.join-panel{border-top:12px solid var(--yellow);background:var(--paper);max-width:1080px;box-shadow:12px 12px 0 var(--forest);grid-template-columns:minmax(0,.9fr) minmax(320px,1.1fr);gap:clamp(2rem,7vw,6rem);margin:auto;padding:clamp(1.5rem,4vw,3.5rem);display:grid}h2{max-width:10ch;margin:.5rem 0;font-size:clamp(2rem,5vw,4.5rem);line-height:1.02}.game-form{align-content:start;gap:1.4rem;display:grid}label,legend{font-weight:700}input{border:2px solid var(--forest);background:#fff;width:100%;margin-top:.4rem;padding:.85rem 1rem}fieldset{border:0;margin:0;padding:0}.format-switch{grid-template-columns:1fr 1fr;gap:.6rem;margin-top:.4rem;display:grid}.format-switch button{border:2px solid var(--forest);background:0 0;min-height:76px;padding:.75rem;font-weight:700}.format-switch button[aria-pressed=true]{background:var(--forest);color:#fff}.format-switch small{margin-top:.2rem;font-weight:400;display:block}.primary-action,.code-entry button{background:var(--green);color:#fff;border:0;padding:1rem;font-weight:700}.divider{color:#667068;text-transform:uppercase;align-items:center;gap:.75rem;font-size:.8rem;display:flex}.divider:before,.divider:after{content:"";background:#c8c5ba;flex:1;height:1px}.code-entry{grid-template-columns:1fr auto;display:grid}.code-entry input{text-transform:uppercase;letter-spacing:.2em;margin:.4rem 0 0;font-family:Archivo Black,sans-serif}.code-entry button{white-space:nowrap;justify-content:center;align-items:center;gap:.4rem;margin-top:.4rem;display:inline-flex}.code-entry button svg{width:18px;height:18px}.error-message{color:var(--red);margin:0;font-weight:700}.lobby h2{font-size:clamp(2rem,5vw,4rem)}.lobby-settings{border-left:5px solid var(--forest);background:#ebe7dc;gap:1rem;margin:1.25rem 0;padding:1rem;display:grid}.house-rule-options{gap:.5rem;margin-top:.4rem;display:grid}.house-rule-options label{background:var(--paper);cursor:pointer;border:2px solid #c8c5ba;grid-template-columns:22px 1fr;align-items:start;gap:.65rem;padding:.65rem;display:grid}.house-rule-options label:has(input:checked){border-color:var(--green);background:#eef3ed}.house-rule-options input{width:20px;height:20px;accent-color:var(--green);margin:.1rem 0 0}.house-rule-options input:focus-visible{outline:3px solid var(--yellow);outline-offset:2px}.house-rule-options span,.house-rule-options small{display:block}.house-rule-options small{color:#667068;margin-top:.15rem;font-weight:400}.player-list{gap:.6rem;margin:1.25rem 0;padding:0;list-style:none;display:grid}.player-list li{border-left:5px solid var(--yellow);background:#fff;justify-content:space-between;align-items:center;gap:.75rem;min-width:0;padding:1rem;font-weight:700;display:flex}.player-list li>span:first-child{overflow-wrap:anywhere;min-width:0}.player-list small{color:#667068;font-weight:600}.player-status{align-items:center;gap:.6rem;display:flex}.player-status button{border:1px solid var(--red);color:var(--red);background:0 0;padding:.3rem .5rem;font-size:.75rem;font-weight:700}.lobby-name-form{flex:1;grid-template-columns:minmax(0,1fr) 42px;min-width:0;max-width:320px;display:grid}.lobby-name-form input{min-width:0;margin:0;padding:.55rem .7rem}.lobby-name-form button{background:var(--green);color:#fff;border:0;place-items:center;width:42px;display:grid}.lobby-name-form button svg{width:19px;height:19px}.lobby-entry-tools{gap:1rem;margin:1.25rem 0;display:grid}.invite-entry input{text-transform:none;letter-spacing:0;min-width:0;font-family:DM Sans,sans-serif}.copy-status{color:var(--green);margin-top:-.65rem;font-weight:700;display:block}.lobby-actions,.hand-actions{flex-wrap:wrap;gap:.75rem;display:flex}.lobby-actions button,.hand-actions button{border:2px solid var(--forest);background:0 0;min-height:44px;padding:.75rem 1rem;font-weight:700}.lobby-actions .primary-action,.hand-actions .primary-action{border-color:var(--green);background:var(--green);color:#fff}.scenario-builder{gap:.5rem;display:grid}.scenario-stage-switch,.scenario-player-switch{grid-template-columns:repeat(3,minmax(0,1fr))}.scenario-builder .format-switch button{overflow-wrap:anywhere;min-width:0;padding-inline:.5rem}.lobby-scenarios{border-top:1px solid #c8c5ba;gap:1rem;margin-top:1.5rem;padding-top:1rem;display:grid}.lobby-scenarios>button{border:2px solid var(--forest);background:0 0;min-height:44px;font-weight:700}.startup-status{align-self:center}.startup-status p{margin:0}.muted{color:#667068;font-size:.875rem}.game-shell{background:#d8d2c4;min-height:100vh;padding:1.25rem clamp(1rem,3vw,2.5rem) 21rem}.game-header{justify-content:space-between;align-items:center;gap:1rem;max-width:1400px;margin:0 auto 1.25rem;display:flex}.compact-brand{margin:0}.compact-brand h1{font-size:clamp(1.3rem,3vw,2rem)}.compact-brand .version-stamp{max-width:42ch}.turn-controls{align-items:stretch;gap:.65rem;display:flex}.turn-sign{border:3px solid var(--paper);outline:3px solid var(--forest);background:var(--forest);color:#fff;text-align:center;min-width:180px;padding:.65rem 1rem}.turn-sign span,.turn-sign small{display:block}.turn-sign span{font-weight:700}.debug-download{border:3px solid var(--forest);background:var(--paper);width:48px;min-width:48px;color:var(--forest);place-items:center;padding:0;display:grid}.debug-download svg{width:22px;height:22px}.debug-download:focus-visible{outline:4px solid var(--yellow);outline-offset:2px}.debug-download:disabled{cursor:wait;opacity:.55}.winner-banner{border-left:10px solid var(--yellow);background:var(--paper);justify-content:space-between;align-items:center;gap:1rem;max-width:1400px;margin:0 auto 1rem;padding:1rem 1.5rem;display:flex}.winner-banner h2{max-width:none;margin:.2rem 0 0;font-size:2rem}.result-reason{color:#667068;margin:.25rem 0 0}.winner-actions{flex-wrap:wrap;justify-content:flex-end;gap:.65rem;display:flex}.winner-actions button{border:2px solid var(--forest);min-height:46px;color:var(--forest);background:0 0;padding:.7rem 1rem;font-weight:700}.winner-actions .primary-action{background:var(--green);color:#fff;border:0}.score-results{border-top:8px solid var(--yellow);background:var(--paper);max-width:1400px;margin:0 auto 1rem;padding:1.25rem 1.5rem 1.5rem}.score-results-heading{justify-content:space-between;align-items:end;gap:1.5rem;margin-bottom:1rem;display:flex}.score-results-heading h2{max-width:none;margin:.15rem 0 0;font-size:clamp(1.5rem,3vw,2.25rem)}.score-results-heading>p{color:#667068;text-align:right;max-width:34ch;margin:0;font-size:.85rem}.score-table-scroll{border:2px solid var(--forest);padding-top:8px;overflow-x:auto}.score-table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;min-width:620px}.score-table th,.score-table td{text-align:right;border-bottom:1px solid #c8c5ba;padding:.65rem .8rem}.score-table th:first-child{text-align:left;min-width:220px}.score-table thead{background:var(--forest);color:var(--paper)}.score-table thead th{border-color:var(--forest);position:relative}.score-table thead .score-winner{background:var(--yellow);color:var(--forest)}.score-table thead th small{text-transform:uppercase;margin-top:.15rem;font-size:.65rem;display:block}.score-racer-name{z-index:1;position:relative}.winner-ribbon{filter:drop-shadow(2px 3px #173a2b40);pointer-events:none;width:50px;height:70px;display:block}.winner-ribbon:before,.winner-ribbon:after{z-index:-1;content:"";clip-path:polygon(0 0,100% 0,100% 100%,50% 77%,0 100%);background:#1261c9;width:22px;height:34px;position:absolute;bottom:0}.winner-ribbon:before{left:5px;transform:rotate(8deg)}.winner-ribbon:after{right:5px;transform:rotate(-8deg)}.winner-ribbon>span{color:#fff;background:#1261c9;border-radius:50%;place-items:center;width:50px;height:50px;font-family:Archivo Black,sans-serif;font-size:1.65rem;line-height:1;display:grid}.race-winner-ribbon{z-index:2;position:absolute;top:50%;left:.65rem;transform:translateY(-50%)rotate(-8deg)}.race-winner-ribbon.awaiting-landing{visibility:hidden}.score-table tbody th span,.score-table tbody th small{display:block}.score-table tbody th small{color:#667068;margin-top:.1rem;font-size:.68rem;font-weight:600}.score-table tbody tr:nth-child(2n){background:#ebe7dc}.score-table tfoot{background:#f0eadc}.score-table tfoot th,.score-table tfoot td{font-weight:700}.score-table .hand-total-row{border-top:3px solid var(--forest)}.score-table .match-total-row{background:var(--yellow);color:var(--forest)}.score-table .match-total-row small{font-weight:600}.score-table .match-total-row strong{font-family:Archivo Black,sans-serif;font-size:1.15rem}.reaction-banner{border:3px solid var(--forest);background:var(--paper);justify-content:space-between;align-items:center;gap:1rem;max-width:1400px;margin:0 auto 1rem;padding:1rem 1.5rem;display:flex}.reaction-banner.your-reaction{border-left:12px solid var(--red)}.reaction-banner h2{max-width:none;margin:.15rem 0;font-size:clamp(1.25rem,3vw,2rem)}.reaction-banner p{margin:.35rem 0 0}.reaction-actions{flex-shrink:0;gap:.6rem;display:flex}.reaction-actions button{border:2px solid var(--forest);background:0 0;min-height:46px;padding:.7rem 1rem;font-weight:700}.reaction-actions .primary-action{border-color:var(--green);background:var(--green);color:#fff}.road-table{max-width:1400px;margin:auto}.tabletop-piles{border:2px solid var(--forest);background-color:#2c6049;background-image:radial-gradient(#f8f4e914 1px,#0000 1px);background-size:8px 8px;grid-template-columns:minmax(130px,.65fr) minmax(190px,1fr) minmax(190px,1fr);gap:1rem;min-height:220px;padding:1rem;display:grid;box-shadow:inset 0 0 0 5px #f8f4e91f}.target-marker{border:5px solid var(--paper);color:#173a2b;text-align:center;background:#f8f4e9;border-radius:64px 64px 7px 7px;outline:3px solid #173a2b;place-self:center;place-items:center;width:128px;min-height:154px;padding:1rem;display:grid;position:relative;box-shadow:5px 7px #10221a59}.target-marker span,.target-marker small{text-transform:uppercase;font-size:.68rem;font-weight:700}.target-marker strong{text-align:center;width:100%;min-width:0;font-family:Archivo Black,sans-serif;font-size:2rem;line-height:1}.target-marker.cheat-toggle{font:inherit;cursor:pointer}.target-marker.cheat-toggle:focus-visible{outline:5px solid var(--yellow);outline-offset:4px}.target-marker.cheat-mode{background:var(--red);color:#fff}.target-marker.cheat-mode .cheat-overlay{background:var(--forest);color:#fff;letter-spacing:0;padding:.25rem;font-size:.72rem;position:absolute;bottom:29px;left:-9px;right:-9px;transform:rotate(-5deg);box-shadow:2px 3px #10221a59}.target-marker .debug-overlay{border:2px solid var(--forest);background:var(--yellow);color:var(--forest);letter-spacing:0;padding:.25rem .45rem;font-size:.68rem;position:absolute;top:-11px;right:-10px;transform:rotate(5deg);box-shadow:2px 3px #10221a59}.pile-zone{min-width:0;color:var(--paper);border:1px solid #f8f4e973;grid-template-rows:auto 1fr auto;padding:.7rem .85rem;display:grid}.pile-heading{border-bottom:1px solid #f8f4e959;justify-content:space-between;align-items:baseline;gap:.75rem;min-width:0;padding-bottom:.35rem;display:flex}.pile-heading span{text-transform:uppercase;font-size:.72rem;font-weight:700}.pile-heading strong{text-overflow:ellipsis;white-space:nowrap;font-size:.78rem;overflow:hidden}.pile-zone>small{color:#f8f4e9c7;text-align:center;align-self:end;font-size:.68rem}.draw-stack,.discard-stack{aspect-ratio:5/7;place-self:center;width:88px;margin:10px;position:relative}.draw-stack{isolation:isolate;color:inherit;background:0 0;border:0;padding:0}.draw-stack:disabled{opacity:.82}.draw-stack:not(:disabled){cursor:pointer}.draw-stack:not(:disabled):before{content:"";z-index:0;pointer-events:none;background:#69eb9f47;border:2px solid #84ffb5b8;border-radius:13px;animation:1.8s ease-in-out infinite draw-pile-pulse;position:absolute;inset:-9px;box-shadow:0 0 14px 7px #69eb9fbf,0 0 30px 13px #69eb9f61}.draw-stack:not(:disabled):hover .stacked-back:last-of-type,.draw-stack:not(:disabled):focus-visible .stacked-back:last-of-type{transform:translate(3px,-7px)rotate(2deg)}.draw-stack:focus-visible{outline:4px solid var(--yellow);outline-offset:9px}.stacked-back{z-index:1;transform:translate(calc(var(--stack-index) * -2px), calc(var(--stack-index) * -2px));transition:transform .14s;position:absolute;inset:0}.card-back{color:#173a2b;background-color:#e4ac2f;background-image:repeating-linear-gradient(45deg,#0000 0 7px,#173a2b2e 7px 9px),repeating-linear-gradient(-45deg,#0000 0 7px,#173a2b1f 7px 9px);border:2px solid #10291f;border-radius:5px;padding:6px;display:grid;position:absolute;inset:0;box-shadow:2px 3px #10221a59}.card-back-border{background:#f8f4e938;border:2px solid;border-radius:3px;align-content:center;place-items:center;display:grid}.card-back svg{width:42%;height:42%}.card-back strong{font-family:Archivo Black,sans-serif;font-size:1.15rem}.card-back small{text-transform:uppercase;font-size:.42rem;font-weight:700}.discard-stack{pointer-events:auto;display:block}.discard-draw-action{color:inherit;background:0 0;border:0;place-self:center;padding:0;display:block}.discard-draw-action .discard-stack:before{content:"";z-index:-1;background:#69eb9f47;border:2px solid #84ffb5b8;border-radius:13px;animation:1.8s ease-in-out infinite draw-pile-pulse;position:absolute;inset:-9px;box-shadow:0 0 14px 7px #69eb9fbf,0 0 30px 13px #69eb9f61}.discard-draw-action:focus-visible{outline:4px solid var(--yellow);outline-offset:9px}.discard-card{--discard-x:0;--discard-y:0;--discard-rotation:0;background:var(--paper);transform:translate(var(--discard-x), var(--discard-y)) rotate(var(--discard-rotation));transform-origin:50% 75%;border:2px solid #15231b;border-radius:5px;position:absolute;inset:0;overflow:hidden;box-shadow:2px 3px #10221a47}.discard-card .card-face{padding:7px}.discard-card .card-topline{font-size:5px}.discard-card .card-category{padding:1px 2px}.discard-card .card-caption{padding-top:3px}.discard-card .card-caption strong{min-height:2em;font-size:8px}.discard-card .card-caption small{display:none}.discard-card .card-illustration{margin:3px 0}.discard-card.distance .card-illustration strong{font-size:20px}.empty-pile{color:#f8f4e9bf;text-transform:uppercase;border:2px dashed #f8f4e98c;border-radius:5px;place-items:center;font-size:.68rem;font-weight:700;display:grid;position:absolute;inset:0}.racer-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem;margin-top:1rem;display:grid;position:relative}.racer-lane{background:var(--paper);border:2px solid #0000;border-top:7px solid #667068;min-width:0;padding:1rem;position:relative;box-shadow:5px 5px #173a2b33}.racer-lane.your-lane{border-color:var(--yellow)}.racer-lane.hazard-active{border-color:var(--red);border-top-color:var(--red);box-shadow:5px 5px #8f231d47}.racer-lane.hazard-arrived{animation:.85s ease-out hazard-lane-impact}.racer-lane header{justify-content:space-between;align-items:start;gap:.75rem;display:flex}.racer-lane h2{overflow-wrap:anywhere;max-width:13ch;margin:0;font-size:1.15rem}.racer-lane header small{display:block}.auto-discard-status{color:var(--red);text-transform:uppercase;margin-top:.18rem;font-weight:700}.racer-lane header strong{white-space:nowrap;font-family:Archivo Black,sans-serif;font-size:1.5rem}.racer-lane header strong span{font-family:DM Sans,sans-serif;font-size:.75rem}.racer-lane header .distance-odometer{font-size:inherit;align-items:center;gap:.35rem;display:flex}.odometer-wheels{background:#111;border:2px solid #111;height:38px;display:flex;overflow:hidden;box-shadow:inset 0 2px 3px #00000038}.odometer-wheel{color:#111;background:#fff;border-left:1px solid #111;width:21px;height:34px;display:block;position:relative;overflow:hidden}.odometer-wheel:first-child{border-left:0}.odometer-digit-strip{--odometer-digit-height:24px;transform:translateY(calc((var(--odometer-steps) + 1) * var(--odometer-digit-height) * -1));will-change:transform;flex-direction:column;display:flex;position:absolute;top:5px;left:0;right:0}.odometer-digit-strip.is-spinning{animation:.42s cubic-bezier(.12,.72,.2,1) both odometer-wheel-advance}.racer-lane header .odometer-digit-strip>span{flex:0 0 var(--odometer-digit-height);height:var(--odometer-digit-height);font-family:Archivo Black,sans-serif;font-size:1.35rem;line-height:var(--odometer-digit-height);text-align:center;display:block}.odometer-wheel:before,.odometer-wheel:after{z-index:1;content:"";pointer-events:none;height:4px;position:absolute;left:0;right:0}.odometer-wheel:before{background:linear-gradient(#0003,#0000);top:0}.odometer-wheel:after{background:linear-gradient(#0000,#0003);bottom:0}.racer-lane header .odometer-unit{font-family:DM Sans,sans-serif;font-size:.75rem}.turn-token-destination{z-index:4;aspect-ratio:1;pointer-events:none;width:clamp(76px,24%,92px);position:absolute;top:-13px;left:50%;transform:translate(-50%,-10%)}.turn-token{aspect-ratio:1;color:var(--forest);font:inherit;filter:drop-shadow(5px 6px #173a2b59);perspective:360px;background:0 0;border:0;padding:0;display:block}.turn-token-overlay{z-index:8;cursor:default;margin:0;position:absolute}button.turn-token-overlay{cursor:pointer}.turn-token-flipper{transform-style:preserve-3d;display:block;position:absolute;inset:0}.turn-token-face{box-sizing:border-box;border:5px solid var(--forest);background:var(--paper);backface-visibility:hidden;transform-style:preserve-3d;border-radius:50%;place-items:center;display:grid;position:absolute;inset:0}.turn-token-face:before{content:"";border:2px solid #173a2b47;border-radius:50%;position:absolute;inset:9px}.turn-token-face-yours{border-width:6px;transform:rotateY(180deg)}.steering-wheel-icon{z-index:1;aspect-ratio:1;box-sizing:border-box;border:4px solid;border-radius:50%;width:58%;display:block;position:relative}.steering-wheel-icon:before{content:"";background:currentColor;border-radius:2px;height:4px;position:absolute;top:50%;left:10%;right:10%;transform:translateY(-50%)}.steering-wheel-icon:after{content:"";background:currentColor;border-radius:2px;width:4px;position:absolute;top:48%;bottom:9%;left:50%;transform:translate(-50%)}.steering-wheel-icon>span{z-index:1;aspect-ratio:1;border:3px solid var(--paper);background:currentColor;border-radius:50%;width:12px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.turn-token-face>.turn-token-label{z-index:2;border:2px solid var(--forest);background:var(--yellow);color:var(--forest);text-align:center;text-transform:uppercase;padding:.28rem .25rem;font-size:.58rem;font-weight:700;line-height:1;position:absolute;bottom:17%;left:-8px;right:-8px;box-shadow:2px 3px #173a2b66}.turn-token-face-yours>.turn-token-label{background:var(--green);color:#fff;font-size:.66rem}.hazard-status{background:var(--red);color:#fff;grid-template-columns:20px auto 1fr;align-items:center;gap:.4rem;min-height:36px;margin-top:.75rem;padding:.4rem .55rem;display:grid}.hazard-status svg{width:20px;height:20px}.hazard-status span{text-transform:uppercase;font-size:.62rem;font-weight:700}.hazard-status strong{overflow-wrap:anywhere;text-align:right;min-width:0;font-family:Archivo Black,sans-serif;font-size:.75rem}.hazard-arrived .hazard-status{animation:.65s ease-out hazard-banner-impact}.progress-track{background:#d8d2c4;height:8px;margin:.85rem 0;overflow:hidden}.progress-track span{background:var(--red);height:100%;display:block}.racer-tableau{grid-template-columns:repeat(3,1fr);gap:.55rem;margin-top:.8rem;display:grid;position:relative}.hazard-active .racer-tableau{outline:3px solid var(--red);padding:.45rem}.hazard-arrived .tableau-card.hazard{animation:.7s ease-out hazard-card-impact}.tableau-slot{background:#ebe7dc;justify-items:center;gap:.3rem;min-width:0;padding:.4rem;display:grid}.tableau-slot>small{color:#667068;text-transform:uppercase;font-size:.62rem;font-weight:700}.tableau-card-tooltip{aspect-ratio:5/7;width:min(100%,68px);display:block}.tableau-card,.empty-tableau-card{aspect-ratio:5/7;background:var(--paper);border:2px solid #15231b;border-radius:4px;width:min(100%,68px);display:block;position:relative;overflow:hidden;box-shadow:2px 3px #173a2b38}.tableau-card-tooltip .tableau-card{width:100%;height:100%}.empty-tableau-card{box-shadow:none;color:#85877f;text-transform:uppercase;border-style:dashed;place-items:center;font-size:.52rem;font-weight:700;display:grid}.tableau-card .card-face{padding:6px}.tableau-card .card-topline{border-bottom-width:1px;gap:2px;padding-bottom:2px;font-size:4px}.tableau-card .card-category{padding:1px 2px}.tableau-card .card-illustration{margin:3px 0}.tableau-card .card-caption{border-top-width:1px;padding-top:3px}.tableau-card .card-caption strong{min-height:2em;font-size:7px}.tableau-card.distance .card-illustration strong{font-size:17px}.safety-slot{grid-column:1/-1;justify-items:start}.tableau-safeties{grid-template-columns:repeat(4,minmax(0,1fr));gap:.45rem;width:100%;max-width:293px;display:grid}.tableau-safeties .tableau-card-tooltip,.tableau-safeties .tableau-card{width:100%;max-width:68px}.final-hand{border-top:1px solid #c8c5ba;margin-top:.75rem;padding-top:.65rem}.final-hand>small{color:#667068;text-transform:uppercase;margin-bottom:.45rem;font-size:.62rem;font-weight:700;display:block}.final-hand>span{color:#667068;font-size:.75rem}.final-hand-cards{grid-template-columns:repeat(auto-fill,minmax(52px,1fr));gap:.4rem;display:grid}.final-hand-cards .tableau-card-tooltip,.final-hand-cards .tableau-card{width:100%;max-width:68px}.score-strip{border-top:1px solid #c8c5ba;justify-content:space-between;margin-top:.75rem;padding-top:.65rem;font-size:.8rem;display:flex}.remove-action{border:1px solid var(--red);width:100%;min-height:38px;color:var(--red);background:0 0;margin-top:.75rem;font-weight:700}.target-action{background:var(--green);color:#fff;border:0;width:100%;min-height:42px;margin-top:.75rem;font-weight:700}.target-action.negative-action{background:var(--red)}.target-action.safety-action{background:var(--yellow);color:var(--forest);padding-left:28px;padding-right:28px;position:relative;overflow:hidden}.target-action.safety-action:before,.target-action.safety-action:after{background:repeating-linear-gradient(135deg, #111 0 5px, var(--yellow) 5px 10px);content:"";width:18px;position:absolute;top:0;bottom:0}.target-action.safety-action:before{left:0}.target-action.safety-action:after{right:0}.hand-dock{z-index:2;border-top:6px solid var(--forest);background:var(--paper);padding:.8rem clamp(1rem,3vw,2.5rem) 1rem;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -8px 24px #173a2b2e}.hand-toolbar{justify-content:space-between;align-items:center;max-width:1400px;margin:0 auto .65rem;display:flex}.hand-toolbar h2{max-width:none;margin:.1rem 0 0;font-size:1.2rem}.hand-actions .discard-all-action{border-color:var(--red);color:var(--red)}.hand-actions .discard-all-action:disabled{border-color:var(--green);color:var(--green);opacity:1;background:#eef3ed}.card-hand{overscroll-behavior-inline:contain;scroll-snap-type:inline proximity;grid-auto-columns:142px;grid-auto-flow:column;gap:.75rem;max-width:1400px;margin:auto;padding:5px 5px .5rem;display:grid;overflow-x:auto}.hand-card-slot{scroll-snap-align:start;width:142px;padding-bottom:11px;display:block;position:relative}.hand-card-slot.playable:after{content:"";background:var(--forest);pointer-events:none;height:5px;position:absolute;bottom:0;left:12px;right:12px}.playing-card{aspect-ratio:5/7;color:#172019;text-align:left;scroll-snap-align:start;background:#faf6e9;border:3px solid #15231b;border-radius:7px;width:142px;padding:0;transition:transform .12s,box-shadow .12s;display:block;position:relative;overflow:hidden;box-shadow:3px 4px #173a2b47}.playing-card:after{content:"";z-index:3;opacity:.45;pointer-events:none;border:1px solid;border-radius:3px;position:absolute;inset:5px}.playing-card:not(:disabled):hover{transform:translateY(-4px);box-shadow:4px 8px #173a2b3d}.playing-card:focus-visible{outline:4px solid var(--yellow);outline-offset:2px}.playing-card:disabled{opacity:.72;filter:saturate(.78)}.playing-card.selected{outline:5px solid var(--yellow);outline-offset:1px;transform:translateY(-5px);box-shadow:4px 9px #173a2b4d}.card-tooltip-anchor{min-width:0}.card-effect-tooltip{z-index:100;border:3px solid var(--forest);background:var(--paper);color:#18211c;text-align:left;pointer-events:none;gap:.45rem;width:min(320px,100vw - 24px);padding:.85rem;display:grid;position:fixed;box-shadow:6px 7px #10221a61}.card-effect-tooltip.above{transform:translate(-50%,-100%)}.card-effect-tooltip.below{transform:translate(-50%)}.card-effect-tooltip>strong{font-family:Archivo Black,sans-serif;font-size:1rem;line-height:1.1}.card-effect-tooltip>span:not(.card-tooltip-relationships){color:#3f4b44;font-size:.8rem;line-height:1.35}.card-tooltip-relationships{border-top:1px solid #c8c5ba;flex-wrap:wrap;gap:.55rem;padding-top:.2rem;display:flex}.card-tooltip-relationship{flex:110px;gap:.3rem;display:grid}.card-tooltip-relationship>small{color:#667068;text-transform:uppercase;font-size:.62rem;font-weight:700}.card-tooltip-relationship>span{flex-wrap:wrap;gap:.35rem;display:flex}.tooltip-mini-card{aspect-ratio:5/7;width:52px;color:var(--forest);background:#f8f4e9;border:2px solid #15231b;border-radius:3px;grid-template-rows:auto 1fr auto;padding:4px;display:grid;overflow:hidden;box-shadow:2px 2px #173a2b33}.tooltip-mini-card>span{font-family:Archivo Black,sans-serif;font-size:5px}.tooltip-mini-card svg{place-self:center;width:23px;height:23px}.tooltip-mini-card strong{overflow-wrap:anywhere;align-self:end;font-family:Archivo Black,sans-serif;font-size:6px;line-height:1}.tooltip-mini-card.hazard{color:#321713;background:#ef6453}.tooltip-mini-card.remedy{color:#11364a;background:#dcecf0}.tooltip-mini-card.safety{color:#173a2b;background:#f4bc3b}.card-face{--card-ink:#173a2b;--card-field:#f8f4e9;--card-accent:#e4ac2f;background:var(--card-field);color:var(--card-ink);grid-template-rows:auto 1fr auto;padding:12px;display:grid;position:absolute;inset:0;overflow:hidden}.card-face:before{content:"";background-image:repeating-linear-gradient(135deg, transparent 0 12px, color-mix(in srgb, var(--card-ink) 7%, transparent) 12px 13px);pointer-events:none;position:absolute;inset:0}.card-topline,.card-caption{z-index:2;position:relative}.card-topline{text-transform:uppercase;border-bottom:2px solid;justify-content:space-between;align-items:center;gap:6px;padding-bottom:5px;font-size:8px;font-weight:700;display:flex}.card-code{font-family:Archivo Black,sans-serif}.card-category{background:var(--card-ink);color:var(--card-field);padding:2px 4px}.card-illustration{z-index:1;background:var(--card-accent);clip-path:polygon(50% 0,100% 18%,92% 84%,50% 100%,8% 84%,0 18%);place-items:center;min-height:0;margin:7px 0;display:grid;position:relative;overflow:hidden}.card-illustration svg{z-index:2;fill:none;width:60%;height:60%;position:relative}.card-road-lines{opacity:.24;background:repeating-linear-gradient(90deg,#0000 0 43%,currentColor 43% 47%,#0000 47% 53%,currentColor 53% 57%,#0000 57% 100%);position:absolute;inset:0;transform:rotate(-24deg)scale(1.5)}.card-caption{border-top:2px solid;min-width:0;padding-top:6px;display:block}.card-caption strong{overflow-wrap:anywhere;min-height:2.2em;font-family:Archivo Black,sans-serif;font-size:13px;line-height:1.05;display:block}:is(.playing-card,.tableau-card,.discard-card,.picker-card).hazard .card-face{--card-ink:#321713;--card-field:#ef6453;--card-accent:#f7cf47}:is(.playing-card,.tableau-card,.discard-card,.picker-card).hazard .card-illustration{clip-path:polygon(30% 0,70% 0,100% 30%,100% 70%,70% 100%,30% 100%,0 70%,0 30%)}:is(.playing-card,.tableau-card,.discard-card,.picker-card).remedy .card-face{--card-ink:#11364a;--card-field:#dcecf0;--card-accent:#70b9ca}:is(.playing-card,.tableau-card,.discard-card,.picker-card).safety .card-face{--card-ink:#173a2b;--card-field:#f4bc3b;--card-accent:#f8f4e9}:is(.playing-card,.tableau-card,.discard-card,.picker-card).safety .card-illustration{clip-path:polygon(50% 0,92% 16%,84% 72%,50% 100%,16% 72%,8% 16%)}:is(.playing-card,.tableau-card,.discard-card,.picker-card).distance .card-face{--card-ink:#f8f4e9;--card-field:#245942;--card-accent:#f8f4e9}:is(.playing-card,.tableau-card,.discard-card,.picker-card).distance .card-illustration{border:3px solid var(--card-ink);clip-path:none;color:#173a2b;background:#f8f4e9;border-radius:50% 50% 5px 5px}:is(.playing-card,.tableau-card,.discard-card,.picker-card).distance .card-illustration svg{opacity:.18;width:42%;height:42%;position:absolute;bottom:8%}:is(.playing-card,.tableau-card,.discard-card,.picker-card).distance .card-illustration strong{z-index:2;font-family:Archivo Black,sans-serif;font-size:31px;line-height:1;position:relative}:is(.playing-card,.tableau-card,.discard-card,.picker-card)[data-kind=distance-200]{border-color:#d6a62c}:is(.playing-card,.tableau-card,.discard-card,.picker-card)[data-kind=distance-200] .card-illustration{background:#d6a62c;border-color:#d6a62c}:is(.playing-card,.tableau-card,.discard-card,.picker-card)[data-kind=stop] .card-illustration svg{fill:#f8f4e9;color:#8f231d}:is(.playing-card,.tableau-card,.discard-card,.picker-card)[data-kind=roll] .card-illustration svg,:is(.playing-card,.tableau-card,.discard-card,.picker-card)[data-kind=right-of-way] .card-illustration svg,:is(.playing-card,.tableau-card,.discard-card,.picker-card)[data-kind=driving-ace] .card-illustration svg{fill:#f8f4e9}.cheat-draw-dialog{width:min(1040px,100vw - 2rem);max-width:none;max-height:calc(100vh - 2rem);color:inherit;background:0 0;border:0;padding:0}.cheat-draw-dialog::backdrop{background:#10221ab8}.cheat-draw-surface{border-top:10px solid var(--red);background:var(--paper);max-height:calc(100vh - 2rem);box-shadow:12px 12px 0 var(--forest);padding:1.25rem;overflow-y:auto}.cheat-draw-surface>header{justify-content:space-between;align-items:start;gap:1rem;display:flex}.cheat-draw-surface h2{max-width:none;margin:.15rem 0 0;font-size:clamp(1.6rem,4vw,2.5rem)}.dialog-close{border:2px solid var(--forest);width:42px;height:42px;color:var(--forest);background:0 0;flex:0 0 42px;place-items:center;padding:0;display:grid}.dialog-close svg{width:22px;height:22px}.normal-draw-action{background:var(--green);color:#fff;border:0;width:100%;min-height:48px;margin:1rem 0;font-weight:700}.cheat-card-sections{gap:1.25rem;display:grid}.cheat-card-sections section{border-top:2px solid var(--forest);padding-top:.75rem}.cheat-card-sections h3{margin:0 0 .65rem;font-family:Archivo Black,sans-serif;font-size:1rem}.cheat-card-grid{grid-template-columns:repeat(auto-fill,minmax(102px,1fr));gap:.65rem;display:grid}.cheat-card-choice{min-width:0;min-height:155px;color:var(--forest);background:#fff;border:2px solid #c8c5ba;justify-items:center;gap:.35rem;padding:.55rem;font-weight:700;display:grid}.cheat-card-choice:not(:disabled):hover{border-color:var(--green);background:#eef3ed}.cheat-card-choice:focus-visible,.dialog-close:focus-visible,.normal-draw-action:focus-visible{outline:4px solid var(--yellow);outline-offset:2px}.cheat-card-choice:disabled{cursor:not-allowed;opacity:.38}.cheat-card-choice>span:not(.picker-card){overflow-wrap:anywhere;min-width:0;font-size:.72rem}.cheat-card-choice>small{color:#667068;font-size:.65rem}.picker-card{aspect-ratio:5/7;background:var(--paper);border:2px solid #15231b;border-radius:4px;width:68px;display:block;position:relative;overflow:hidden}.picker-card .card-face{padding:6px}.picker-card .card-topline{border-bottom-width:1px;gap:2px;padding-bottom:2px;font-size:4px}.picker-card .card-category{padding:1px 2px}.picker-card .card-illustration{margin:3px 0}.picker-card .card-caption{border-top-width:1px;padding-top:3px}.picker-card .card-caption strong{min-height:2em;font-size:7px}.picker-card.distance .card-illustration strong{font-size:17px}.reaction-wheel{z-index:25;top:50%;right:max(0px, env(safe-area-inset-right));border:5px solid var(--forest);background:var(--paper);border-radius:50%;width:286px;height:286px;transition:transform .26s cubic-bezier(.22,.8,.28,1);position:fixed;overflow:hidden;transform:translate(222px,-50%);box-shadow:-8px 9px #173a2b47}.reaction-wheel.open{transform:translate(-12px,-50%)}.reaction-wheel-toggle{z-index:2;background:var(--forest);color:#fff;border:0;border-radius:50%;place-items:center;width:52px;height:70px;padding:0;font-family:Archivo Black,sans-serif;font-size:2rem;line-height:1;display:grid;position:absolute;top:50%;left:8px;transform:translateY(-50%)}.reaction-wheel-toggle:focus-visible,.reaction-wheel-options button:focus-visible{outline:4px solid var(--yellow);outline-offset:2px}.reaction-wheel-options{opacity:0;pointer-events:none;grid-template-rows:repeat(3,64px);grid-template-columns:repeat(2,64px);gap:10px;width:max-content;margin:35px 0 0 92px;transition:opacity .16s,transform .22s;display:grid;transform:translate(35px)}.reaction-wheel.open .reaction-wheel-options{opacity:1;pointer-events:auto;transform:none}.reaction-wheel-options button{background:#fff;border:2px solid #c8c5ba;border-radius:50%;place-items:center;width:64px;height:64px;padding:0;font-size:2rem;line-height:1;display:grid}.reaction-wheel-options button:not(:disabled):hover{border-color:var(--green);background:#eef3ed;transform:scale(1.06)}.reaction-float-layer{z-index:20;pointer-events:none;position:fixed;inset:0;overflow:hidden}.floating-reaction{filter:drop-shadow(3px 5px #173a2b33);transform:translate(-50%, -50%) scale(var(--reaction-scale));font-size:clamp(3rem,7vw,5.5rem);line-height:1;animation:1.65s cubic-bezier(.15,.75,.25,1) forwards reaction-float;display:block;position:absolute}.winner-celebration-layer{z-index:30;pointer-events:none;position:fixed;inset:0;overflow:hidden}.celebration-particles{position:absolute;inset:0}.celebration-particle{opacity:0;filter:drop-shadow(3px 5px #173a2b38);animation:celebration-particle-burst var(--particle-duration) cubic-bezier(.16,.72,.22,1) var(--particle-delay) forwards;font-size:clamp(3.5rem,8vw,7rem);line-height:1;display:block;position:absolute}.flying-winner-ribbon{visibility:hidden;filter:drop-shadow(8px 12px #173a2b40);transform-origin:50%;width:180px;height:252px;position:absolute;top:0;left:0}.flying-winner-ribbon:before,.flying-winner-ribbon:after{width:79px;height:122px}.flying-winner-ribbon:before{left:18px}.flying-winner-ribbon:after{right:18px}.flying-winner-ribbon>span{width:180px;height:180px;font-size:5.9rem}.floating-error{z-index:40;background:var(--red);color:#fff;margin:0;padding:.75rem 1rem;font-weight:700;position:fixed;top:1rem;left:50%;transform:translate(-50%)}@keyframes draw-pile-pulse{0%,to{opacity:.72;transform:scale(.97)}50%{opacity:1;transform:scale(1.03)}}@keyframes hazard-lane-impact{0%{transform:translate(0)}18%{transform:translate(-7px)}36%{transform:translate(6px)}54%{transform:translate(-4px)}72%{transform:translate(2px)}to{transform:translate(0)}}@keyframes hazard-banner-impact{0%{filter:brightness(1.5);transform:scale(.92)}55%{filter:brightness(1.08);transform:scale(1.03)}to{filter:none;transform:scale(1)}}@keyframes hazard-card-impact{0%{opacity:.2;transform:translateY(-24px)rotate(-5deg)scale(1.15)}65%{opacity:1;transform:translateY(3px)rotate(2deg)scale(1.05)}to{transform:translateY(0)rotate(0)scale(1)}}@keyframes odometer-wheel-advance{0%{transform:translateY(calc(var(--odometer-digit-height) * -1))}to{transform:translateY(calc((var(--odometer-steps) + 1) * var(--odometer-digit-height) * -1))}}@keyframes reaction-float{0%{opacity:0;transform:translate(-50%, 15%) scale(calc(var(--reaction-scale) * .65)) rotate(0)}15%{opacity:1}72%{opacity:1}to{opacity:0;transform:translate(calc(-50% + var(--reaction-drift)), -42vh) scale(var(--reaction-scale)) rotate(var(--reaction-rotation))}}@keyframes reaction-fade{0%{opacity:0;transform:translate(-50%,-50%)scale(.8)}25%{opacity:1}to{opacity:0;transform:translate(-50%, -50%) scale(var(--reaction-scale))}}@keyframes celebration-particle-burst{0%{opacity:0;transform:translate(-50%,-50%)scale(.2)rotate(0)}12%{opacity:1;transform:translate(-50%, -50%) scale(var(--particle-scale)) rotate(0)}72%{opacity:1}to{opacity:0;transform:translate(calc(-50% + var(--particle-drift-x)), calc(-50% + var(--particle-drift-y))) scale(calc(var(--particle-scale) * .85)) rotate(var(--particle-rotation))}}@media (width<=760px){.brand{margin-bottom:1.5rem}.join-panel{box-shadow:7px 7px 0 var(--forest);grid-template-columns:1fr}h2{max-width:14ch;font-size:2.4rem}.format-switch{grid-template-columns:1fr}.player-list li{flex-direction:column;align-items:stretch}.lobby-name-form{width:100%;max-width:none}.player-status{justify-content:space-between}.game-shell{padding-bottom:19rem}.game-header{align-items:flex-start}.game-header .route-marker{display:none}.tabletop-piles{grid-template-columns:100px 1fr 1fr;gap:.5rem;min-height:190px;padding:.65rem}.target-marker{border-width:4px;width:88px;min-height:116px;padding:.55rem}.target-marker strong{font-size:1.4rem}.target-marker span,.target-marker small{font-size:.52rem}.target-marker.cheat-mode .cheat-overlay{font-size:.58rem;bottom:23px;left:-6px;right:-6px}.target-marker .debug-overlay{padding:.18rem .3rem;font-size:.54rem;top:-9px;right:-8px}.pile-zone{padding:.5rem}.draw-stack,.discard-stack{width:67px;margin:8px}.pile-heading strong{display:none}.racer-grid{grid-template-columns:1fr 1fr}.hand-toolbar{align-items:flex-end}.reaction-banner,.winner-banner{flex-direction:column;align-items:stretch}.winner-actions{justify-content:stretch}.winner-actions button{flex:1}.score-results{padding:1rem}.score-results-heading{flex-direction:column;align-items:start;gap:.35rem}.score-results-heading>p{text-align:left}.reaction-actions button{flex:1}.card-hand{grid-auto-columns:118px;gap:.55rem}.hand-card-slot,.playing-card{width:118px}.card-face{padding:10px}.card-caption strong{font-size:11px}.card-illustration{margin:5px 0}.playing-card.distance .card-illustration strong{font-size:26px}.cheat-draw-dialog{width:calc(100vw - 1rem);max-height:calc(100vh - 1rem)}.cheat-draw-surface{max-height:calc(100vh - 1rem);box-shadow:6px 6px 0 var(--forest);padding:.9rem}.cheat-card-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=480px){.racer-grid{grid-template-columns:1fr}.turn-sign{min-width:130px}.turn-controls{gap:.4rem}.debug-download{width:42px;min-width:42px}.reaction-wheel{width:258px;height:258px;transform:translate(200px,-50%)}.reaction-wheel.open{transform:translate(-4px,-50%)}.reaction-wheel-options{grid-template-rows:repeat(3,58px);grid-template-columns:repeat(2,58px);gap:8px;margin:34px 0 0 86px}.reaction-wheel-options button{width:58px;height:58px;font-size:1.8rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important}.draw-stack:not(:disabled):before{opacity:.75;animation:none;transform:none}.racer-lane.hazard-arrived,.hazard-arrived .hazard-status,.hazard-arrived .tableau-card.hazard{animation:none}.reaction-wheel,.reaction-wheel-options{transition:none}.floating-reaction{animation:.7s ease-out forwards reaction-fade}.celebration-particle{animation-name:reaction-fade;animation-duration:.7s;animation-delay:0s}.odometer-digit-strip.is-spinning{animation:none}}
