:root{--ink:#233f35;--paper:#f5f0e4;--gold:#c89c50}body{background:var(--paper);color:var(--ink)}main{max-width:1080px;padding:28px 24px 70px}header{position:relative;overflow:hidden;padding:55px 42px;background:linear-gradient(90deg,#173e32f5,#173e3270),url('/assets/bushland.webp') center 54%/cover;border:1px solid #526d4a;border-radius:24px;min-height:300px}header h1{font:clamp(42px,6vw,72px)/.98 Georgia,serif;letter-spacing:-2px;max-width:650px}header p{max-width:480px;font-size:14px;color:#ede8d6}header .eyebrow{color:#e4c68f;font-size:10px;letter-spacing:2.4px}.back{font-size:12px}h2{font:30px/1.15 Georgia,serif}h3{font-size:13px}.card{background:#fffcf5;border:1px solid #d8d2bd;box-shadow:none;padding:25px;border-radius:20px}.stats>b{background:#e8e7d8;border:1px solid #d7d6bf;font-size:13px;padding:14px 20px}.team-card{padding:26px 30px;background:#e9ebdc}.team-card .eyebrow{font-size:9px;color:#89713d}.team-card h2{margin:9px 0}.team-card>p{font-size:13px;max-width:720px}.team-card label{display:block;font-size:12px;font-weight:700;margin:20px 0 8px}select{width:100%;min-height:48px;background:#fffcf5;border:1px solid #aaa88d;border-radius:10px;padding:12px;color:var(--ink);font:14px system-ui}.journey-links{display:flex;gap:22px;flex-wrap:wrap;font-size:12px;font-weight:700;margin-top:20px}.course-card{position:relative;overflow:hidden;text-align:left;border:1px solid #c3c9ad;background:#e1e7d3;min-height:310px;padding:22px;transition:transform .2s,box-shadow .2s}.course-card:hover{transform:translateY(-4px);box-shadow:0 12px 25px #173e321a}.course-fly{background:#dce8e2}.course-swim{background:#d1e4de}.course-card .racer-art{width:145px;height:145px;margin:0 auto 15px;border-radius:50%;box-shadow:0 6px 22px #263f3520}.course-card .course-number{font:700 9px system-ui;letter-spacing:2px;color:#836b3d;margin-bottom:12px}.course-card strong{font:27px Georgia}.course-card small{font:12px/1.6 system-ui;max-width:250px}.racer-art{display:block;flex:none;width:90px;height:90px;background-repeat:no-repeat;border-radius:50%;background-color:#fbf2df}.world-art{display:grid;place-items:center;font-size:55px;background:radial-gradient(circle at 50% 40%,#fff8e4,#d9c9a0)}.race-card{padding:18px}.race-hud{padding:0 0 16px}.race-hud>*{font-size:13px!important;background:#e9eadb!important}.race-scene{height:380px;position:relative;overflow:hidden;border-radius:15px;background:linear-gradient(#b4c6b0 0%,#dfd6a6 44%,#6e8c59 45%,#4b704e 100%);isolation:isolate}.scene-run{background:linear-gradient(#b9c9b6 0%,#e5d3a6 42%,#6f8b5d 43%,#65814f 70%,#c5a471 71%)}.scene-fly{background:linear-gradient(#83b3c1,#cfddd0 68%,#3c6a51 69%)}.scene-swim{background:linear-gradient(#9bc4c5 0%,#c9dacc 38%,#577c58 39%,#3d796e 51%,#74b3ad 52%,#377d7c 100%)}.scene-sun{position:absolute;width:94px;height:94px;right:18%;top:38px;background:#f9e5ad;box-shadow:0 0 50px #fce5b085;border-radius:50%}.scene-ridge{position:absolute;left:-10%;width:120%;height:60%;border-radius:50% 55% 0 0;background:#82976c;top:31%;transform:rotate(-5deg)}.ridge-front{background:#46694b;top:44%;transform:rotate(7deg);height:50%}.scene-fly .scene-ridge{top:76%;background:#56866a}.scene-fly .ridge-front{top:88%;background:#2a5d47}.scene-swim .scene-ridge{height:26%;top:32%;background:#5e8159}.scene-swim .ridge-front{top:46%;height:13%;background:#375f4b}.scene-cloud{position:absolute;width:150px;height:30px;border-radius:50%;background:#f9f5e4a3;filter:blur(3px);top:42px;left:12%;animation:cloud-drift 20s linear infinite alternate}.c2{top:97px;left:62%;width:95px;animation-delay:-9s}.course-label{position:absolute;z-index:2;top:18px;left:20px;font:750 9px system-ui;letter-spacing:2px;color:#173e32}.course-label span{display:block;margin-top:6px;font-size:10px;letter-spacing:0;font-weight:500}.race-lane{position:absolute;z-index:3;left:0;right:0;height:108px;top:139px;background:#d4b17b77;border-top:1px solid #fff5d12b;border-bottom:1px solid #fff5d159}.rival-lane{top:253px;filter:saturate(.65);background:#b3946a88}.lane-name{position:absolute;left:12px;top:7px;color:#fff9dc;font:800 8px system-ui;letter-spacing:1px;z-index:1}.runner{--progress:0;position:absolute;z-index:3;left:calc(42px + (100% - 144px) * var(--progress));top:7px;width:78px;transition:left .08s linear;filter:drop-shadow(0 6px 4px #173e3238)}.runner .racer-art{width:70px;height:70px;border:2px solid #e0bd76;animation:race-bob .5s ease-in-out infinite alternate}.runner b{display:block;background:#173e32e8;color:#fff5da;font:600 8px/1.2 system-ui;white-space:nowrap;max-width:105px;overflow:hidden;text-overflow:ellipsis;padding:4px 6px;border-radius:4px;position:absolute;left:-10px;top:70px}.rival-runner .racer-art{border-color:#e6dcc3;animation-delay:-.25s}.scene-fly .race-lane{background:#d8eee52a;border:0}.scene-fly .runner .racer-art{animation:race-soar 1.2s ease-in-out infinite alternate}.scene-swim .race-lane{background:repeating-linear-gradient(0deg,#b3dedc35 0 2px,transparent 2px 21px);border:0}.scene-swim .runner:after{content:'≈';position:absolute;left:-20px;top:33px;font:40px Georgia;color:#d4f3ec}.hurdle{position:absolute;z-index:2;bottom:2px;font:48px Georgia;color:#345b3b;text-shadow:2px 2px #b5bd79;transition:opacity .2s}.hurdle.cleared{opacity:.2}.runner.jumping{transform:translateY(-42px);transition:transform .15s}.finish-post{position:absolute;z-index:2;right:10px;top:114px;height:250px;border-left:3px solid #ede5cf;color:#fff8df;font:700 8px system-ui;writing-mode:vertical-rl;letter-spacing:3px;padding:10px 4px}.finish-post span{font-size:28px;margin-top:5px}.scene-foreground{position:absolute;z-index:4;left:0;right:0;bottom:-13px;height:34px;background:repeating-linear-gradient(75deg,#405d38 0 5px,transparent 6px 15px);pointer-events:none}.race-distances{display:grid;grid-template-columns:90px 1fr;align-items:center;gap:5px 12px;margin:18px 0}.race-distances h3{margin:0}.race-distances .track{height:9px}.race-distances h3:nth-of-type(2){grid-row:2;font-size:0}.race-distances h3:nth-of-type(2):before{content:'Rival ';font-size:13px}.race-distances h3:nth-of-type(2) span{font-size:13px}.controls{gap:16px}.controls button{min-height:94px;border-radius:16px;background:linear-gradient(#426f50,#2c583f);border:1px solid #31543c;border-bottom:6px solid #173e32;box-shadow:0 4px 0 #c5c9af;font-size:22px}.prompt{background:#f1e4bf;border-color:#bd9851;font-size:14px}#jump{background:#d6b774;color:#243f34;min-width:180px;font-size:16px}.podium{text-align:center;padding:30px;background:radial-gradient(ellipse at top,#eee0b4,#e5e9d7);border-radius:15px;margin:22px 0}.podium .racer-art{width:170px;height:170px;margin:0 auto 15px;border:5px double #b99449}.podium>span{letter-spacing:3px;font:800 10px system-ui;color:#8a692e}.podium h2{margin:14px}.progress-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.companion-card{padding:22px;border:1px solid #d2ceb7;border-radius:16px;background:#fffcf5}.companion-card .racer-art{margin:0 auto 18px;width:120px;height:120px}.companion-card h2{font-size:24px}.companion-card p{font-size:12px}.companion-card a{display:inline-block;background:#285942;color:white;text-decoration:none;padding:13px;border-radius:8px;font-size:12px}.progress-notice{font-size:13px}button,a,select{touch-action:manipulation}button:focus-visible,a:focus-visible,select:focus-visible{outline:3px solid #ad7f2d;outline-offset:4px}@keyframes race-bob{to{transform:translateY(-4px) rotate(2deg)}}@keyframes race-soar{to{transform:translateY(-12px) rotate(-4deg)}}@keyframes cloud-drift{to{transform:translateX(80px)}}@media(max-width:650px){main{padding:16px 12px 45px}header{padding:32px 24px;min-height:270px}header h1{font-size:47px}.card{padding:18px}.modes{grid-template-columns:1fr}.course-card{min-height:172px;padding:20px 18px 20px 145px}.course-card .racer-art{position:absolute;left:18px;top:24px;width:108px;height:108px}.course-card strong{font-size:25px}.course-card small{font-size:12px}.race-scene{height:355px}.race-lane{top:121px}.rival-lane{top:233px}.race-card{padding:10px}.race-hud{gap:5px}.race-hud>*{padding:9px 6px;font-size:11px!important}.runner b{max-width:88px}.finish-post{top:102px;height:238px}.team-card{padding:20px}.journey-links{gap:14px}.progress-grid{grid-template-columns:1fr 1fr}.companion-card{padding:15px}.companion-card h2{font-size:21px}.companion-card .racer-art{width:98px;height:98px}.controls button{font-size:20px;min-height:85px}.race-distances{grid-template-columns:75px 1fr}.race-hud{flex-wrap:nowrap}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
.scene-run{background:linear-gradient(#264b3533,#173e3266),url('/assets/bushland.webp') center 65%/cover}.scene-run .scene-ridge,.scene-run .scene-sun,.scene-run .scene-cloud{display:none}.scene-run .race-lane{background:linear-gradient(#c3a16b99,#dbbd86bd);border-top:2px solid #e9ce9a6b;border-bottom:2px solid #79673d77}.scene-swim{background:linear-gradient(#2e674d00 25%,#3a929378 55%,#307c7da8),url('/assets/bushland.webp') center 62%/cover}.scene-swim .scene-ridge,.scene-swim .scene-sun,.scene-swim .scene-cloud{display:none}.scene-swim .race-lane{background:repeating-linear-gradient(0deg,#b3dedc48 0 2px,#4a999bab 2px 21px);border-top:1px solid #e9f1c86e}.scene-foreground{bottom:-16px;height:40px;border-radius:50% 50% 0 0;background:radial-gradient(ellipse at 6% 100%,#3d603e 0 12%,transparent 12.5%),radial-gradient(ellipse at 95% 100%,#587a46 0 16%,transparent 16.5%)}.hurdle{font-size:0;bottom:6px;width:25px;height:17px;border:3px double #bfa36b;background:#69533b;border-radius:5px;box-shadow:0 3px 0 #334f2f}.hurdle:before,.hurdle:after{content:'';position:absolute;bottom:12px;left:4px;width:4px;height:10px;transform:rotate(-25deg);background:#7d7147;border-radius:5px}.hurdle:after{left:13px;transform:rotate(30deg)}body[data-racing] header{min-height:0;padding:24px 30px;margin-bottom:14px}body[data-racing] header h1{font-size:clamp(35px,5vw,50px);margin:5px 0 9px}body[data-racing] header p{margin:7px 0}.race-scene .course-label{color:#fff7de;text-shadow:0 1px 4px #173e32}.scene-fly .course-label{color:#173e32;text-shadow:none}@media(max-width:650px){body[data-racing] header{padding:20px}body[data-racing] header h1{font-size:36px}body[data-racing] header .eyebrow{font-size:8px}body[data-racing] header p{font-size:12px}}
@media(max-width:650px){body:not([data-racing]) #race-app>header{min-height:0;padding:25px 22px}body:not([data-racing]) #race-app>header h1{font-size:42px}body:not([data-racing]) #race-app>header>p:last-child{display:none}#league-panel-play>.team-card{padding:16px;margin:12px 0}#league-panel-play>.team-card h2{font-size:25px}#league-panel-play>.team-card>p:not(#racer-detail){display:none}#league-panel-play>.team-card label{margin-top:12px}#league-panel-play>.team-card .journey-links{font-size:11px;gap:10px}#league-panel-play>.team-card .journey-links a:nth-child(2){display:none}#league-panel-play>.modes{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}#league-panel-play .course-card{min-height:170px;padding:12px 6px;text-align:center}#league-panel-play .course-card .racer-art{position:static;width:75px;height:75px;margin:0 auto 12px}#league-panel-play .course-card strong{font-size:19px}#league-panel-play .course-card .course-number{font-size:8px;letter-spacing:.6px;margin-bottom:8px}#league-panel-play .course-card small{display:none}.stats>b{padding:10px 9px;font-size:11px}#league-panel-play>h2{font-size:25px;margin:20px 0 12px}}

.animal-rank,.encounter-badge{display:inline-block;font:750 10px/1.4 system-ui;letter-spacing:.6px;padding:6px 10px;border:1px solid #a8bb90;border-radius:20px;background:#e5edda;color:#36563c}.rank-2{border-color:#7da9a4;background:#dcece6;color:#285759}.rank-3{border-color:#c6a354;background:#f0e3be;color:#7b5b22}.animal-rank{margin:6px 0}.xp-track{height:7px;overflow:hidden;border-radius:9px;background:#dadfc9;margin:12px 0}.xp-track i{display:block;height:100%;background:linear-gradient(90deg,#507756,#d0ad61);border-radius:9px}.companion-card{position:relative;background:radial-gradient(ellipse at top,#f4ecd3,transparent 65%),#fffcf5;box-shadow:0 7px 25px #244b3b0a}.companion-card .racer-art{box-shadow:0 10px 25px #244b3b20;border:3px double #d6c89e}.race-scene:after{content:'';position:absolute;inset:0;z-index:1;pointer-events:none;background:radial-gradient(circle at 13% 20%,#f7edbd80 0 2px,transparent 3px),radial-gradient(circle at 42% 17%,#f7edbd70 0 1px,transparent 2px),radial-gradient(circle at 78% 33%,#f7edbd90 0 2px,transparent 3px),radial-gradient(circle at 62% 50%,#f7edbd70 0 1px,transparent 2px);animation:league-glimmer 5s ease-in-out infinite alternate}.runner .racer-art{box-shadow:0 0 0 4px #fff5d133,0 7px 14px #173e3233}.scene-fly{background:radial-gradient(ellipse at 20% 24%,#f9f0d399,transparent 35%),linear-gradient(#75adbd,#d8e4ce 65%,#567e59)}.scene-fly .race-lane{background:linear-gradient(90deg,#e4efd615,transparent);border-bottom:1px dashed #fff8de55}.scene-swim .runner:after{content:'≈ ≈';left:-40px;opacity:.8;animation:wake-flow .7s ease-in-out infinite alternate}#combo{font-weight:850;color:#315d43}.race-scene .course-label{background:#183f3280;padding:8px 10px;border-radius:7px}.scene-fly .course-label{background:#f8f1dc77}.podium{background:radial-gradient(circle at 25% 20%,#fff8d4,transparent 30%),radial-gradient(ellipse at top,#e5cd8f,#dce6ce)}@keyframes league-glimmer{to{opacity:.3;transform:translateY(-12px)}}@keyframes wake-flow{to{transform:translateX(-9px);opacity:.35}}@media(prefers-reduced-motion:reduce){.race-scene:after,.scene-swim .runner:after{animation:none}}

.cloud-status{padding:15px 18px;border-radius:12px;background:#e3ebd7;border:1px solid #c4d1af;font:600 13px/1.6 system-ui}.cloud-error{background:#f4e6d1;border-color:#d3ad75;color:#7b4f28}#auth-card label,#recovery-card label{display:block;font:650 12px system-ui;margin:18px 0 8px}#auth-card input,#recovery-card input{display:block;width:100%;min-height:48px;border:1px solid #bdc7ac;border-radius:9px;padding:12px;background:#fffdf6;color:#244b3b;font:15px system-ui}#auth-card .action,#recovery-card .action{margin-top:20px;width:100%}.account-tabs{display:flex;gap:8px}.account-tabs button{flex:1;min-height:44px;border-radius:8px;border:0;background:#e6ebda;color:#244b3b;font:700 13px system-ui}.account-tabs button[aria-pressed=true]{background:#244b3b;color:#fff8de}.text-link{display:inline-block;padding:12px 5px;border:0;background:none;color:#315d44;text-decoration:underline;min-height:44px}.sync-options{display:grid;grid-template-columns:1fr 1fr;gap:20px}.sync-options article{padding:18px;background:#edf0e3;border:1px solid #d4dcc4;border-radius:12px}.sync-options p{font-size:12px}#confirm-sync{padding:18px;background:#f1e4bc;border:1px solid #c9ae63;border-radius:12px;margin:20px 0}#user-email{overflow-wrap:anywhere;font-size:26px}[hidden]{display:none!important}@media(max-width:650px){.sync-options{grid-template-columns:1fr;gap:12px}}

body:has(#auth-card) header{min-height:0;padding:28px 30px}body:has(#auth-card) header h1{font-size:clamp(35px,5vw,55px)}body:has(#auth-card) header p{margin-bottom:0}
