:root{--ink:#47224d;--plum:#682c61;--rose:#e85f91;--pink:#f7c6d7;--cream:#fff7e5;--gold:#d6a43e;--deepgold:#9a6423;--mint:#62b99c}*{box-sizing:border-box}body{margin:0;background:#6ec9c0;font-family:Nunito,sans-serif;color:var(--ink);overflow-x:hidden}.game-shell{min-height:100vh;background:linear-gradient(#8edbd3 0 58%,#f7bad3 100%);position:relative}.topbar{height:76px;position:relative;z-index:10;display:flex;align-items:center;gap:14px;padding:8px 4vw;margin:0 auto;border-radius:0 0 26px 26px;border-top:0}.frame{background:linear-gradient(135deg,#fffdf4,#ffeaf3);border:2px solid var(--gold);box-shadow:inset 0 0 0 3px #fff6db,inset 0 0 0 5px #e5b85d,0 8px 18px #67255b33;position:relative}.frame:before,.frame:after{content:'◆';position:absolute;color:var(--rose);font-size:12px;top:5px}.frame:before{left:7px}.frame:after{right:7px}.brand{font:700 21px Cinzel;color:var(--plum);background:none;border:0;margin-right:auto;cursor:pointer}.brand span{color:var(--gold)}button{font:700 14px Nunito;color:var(--ink);cursor:pointer}.resource{min-width:100px;display:grid;grid-template-columns:25px auto;line-height:16px}.resource i{grid-row:span 2;font-size:22px;color:var(--gold);font-style:normal}.resource b{font-size:16px}.resource small,.eyebrow{font-size:10px;letter-spacing:1.4px;color:#9a6685;font-weight:800;text-transform:uppercase}.sound{border:0;border-radius:50%;background:#f7b4cf;color:white;width:34px;height:34px;font-size:20px}.screen{display:none}.screen.active{display:block}#home{min-height:calc(100vh - 76px);position:relative}.home-map{position:absolute;inset:0;background:url('assets/sunmeadow-racecourse.png') center/cover no-repeat;overflow:hidden}.home-map:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#32133870 0%,transparent 56%)}.hero-copy{z-index:2;position:relative;width:min(450px,90vw);margin:0 0 0 8vw;top:10vh;padding:28px 35px;border-radius:30px}.hero-copy h1,h2,h3{font-family:Cinzel;margin:.2em 0;color:var(--plum)}.hero-copy h1{font-size:clamp(30px,4vw,48px);line-height:1.1}.hero-copy>p:not(.eyebrow){font-size:16px;line-height:1.55}.gold-btn{border:2px solid #8b5525;border-radius:22px;padding:11px 19px;background:linear-gradient(#ffe69a,#d99a35);box-shadow:inset 0 2px #fff8c9,0 3px #9e602a;color:#6b2a36;text-transform:uppercase;letter-spacing:.5px}.gold-btn:hover{filter:brightness(1.1);transform:translateY(-1px)}.map-spot{z-index:3;position:absolute;border:2px solid #fff5d0;border-radius:50%;width:90px;height:90px;background:#7d346acc;color:white;box-shadow:0 0 0 5px #dca94788;display:flex;flex-direction:column;align-items:center;justify-content:center;transition:.2s}.map-spot:hover{background:var(--plum);transform:scale(1.08)}.map-spot span{font-size:31px}.stable-spot{right:23%;top:32%}.track-spot{right:8%;bottom:19%}.train-spot{right:41%;bottom:23%}.map-label{z-index:2;position:absolute;right:16%;top:23%;color:#fff5cc;font:700 14px Cinzel;text-shadow:0 2px #632e5d}.pony{position:absolute;z-index:2;font-size:70px;color:#fff0d8;bottom:20%;left:48%;filter:drop-shadow(3px 4px #6d3160)}.quest-card{z-index:4;position:absolute;bottom:26px;left:8vw;width:350px;border-radius:20px;padding:12px 19px;display:flex;gap:13px;align-items:center}.quest-card p{margin:0}.quest-card small{display:block;color:#9a6685;margin-top:4px}.portrait,.celestine-mini{border-radius:50%;width:48px;height:48px;display:grid;place-items:center;background:linear-gradient(140deg,#f6bcda,#8362ac);color:#fff5bd;font-size:29px;border:2px solid var(--gold)}.sub-screen{min-height:calc(100vh - 76px);padding:30px 7vw;background:linear-gradient(145deg,#d9f1e7,#f9d8e2)}.page-head,.race-top{display:flex;gap:20px;align-items:center;justify-content:space-between;max-width:1100px;margin:0 auto 24px}.page-head h2,.race-top h2{font-size:28px}.back{border:0;background:none;color:var(--plum);font-size:15px}.small{padding:8px 13px;font-size:11px}.stable-grid{max-width:1100px;margin:auto;display:grid;grid-template-columns:1.7fr 1fr;gap:26px}.horse-card{border-radius:27px;padding:25px;min-height:350px;display:grid;grid-template-columns:40% 1fr;align-items:center}.horse-art{height:255px;border-radius:18px;display:grid;place-items:center;font-size:200px;position:relative;text-shadow:5px 6px #7b486c;color:#fff0d6;background:linear-gradient(135deg,#e9a7c1,#9bd7c2);overflow:hidden}.horse-art span{position:absolute;right:18px;top:17px;font-size:38px;color:#fff9c0}.horse-info{padding:0 20px}.horse-info h3{font-size:30px}.temperament{color:#915e82}.stat{margin-top:16px}.stat label{display:flex;justify-content:space-between;font-size:13px}.stat>div{height:10px;border-radius:9px;background:#ecd6cf;overflow:hidden;margin-top:5px}.stat i{display:block;height:100%;background:linear-gradient(90deg,#ef7ba6,#dbb550);border-radius:9px}.whinny{grid-column:2;border:0;background:none;color:#bd5f89;text-align:left;padding-left:20px}.locked-stall{border-radius:27px;text-align:center;display:grid;place-content:center;color:#956486}.locked-stall div{font-size:60px;color:var(--gold)}.training-layout{max-width:960px;margin:50px auto;display:grid;grid-template-columns:1fr 1.2fr;align-items:center;gap:35px}.trainer-bust{display:flex;flex-direction:column;align-items:center}.bust{font-size:175px;color:#fff4d4;text-shadow:5px 6px #8a5d88}.speech{border-radius:20px;padding:16px 20px;max-width:330px}.speech p{margin:5px}.training-menu{border-radius:26px;padding:25px}.training-option{width:100%;border:1px solid #e8c489;border-radius:15px;background:#fffdf7;margin-top:12px;padding:13px;display:flex;text-align:left;align-items:center;gap:12px}.training-option:hover{background:#fff0f5}.training-option span{font-size:28px;color:var(--rose)}.training-option div{display:grid;flex:1}.training-option small{color:#98708a}.training-option em{font-style:normal;color:#d09438;font-size:12px}.race-screen{padding:20px 4vw 0;background:#d8f3ee}.race-lore{max-width:800px;margin:0 auto 12px;border-radius:17px;padding:8px 16px;display:flex;align-items:center;gap:10px}.race-lore p{margin:0}.racecourse{height:48vh;min-height:330px;max-height:470px;position:relative;overflow:hidden;background:linear-gradient(#ffffff15,#ffffff00),url('assets/sunmeadow-racecourse.png') center/cover}.racecourse:after{content:'';position:absolute;inset:auto 0 0;height:40%;background:repeating-linear-gradient(0deg,#e2a8b8 0 3px,#ffcad7 3px 34px);border-top:5px solid #fff1d1}.finish-line{position:absolute;right:10%;bottom:20%;z-index:2;display:grid;text-align:center;font-size:48px;color:#fff4c8;text-shadow:2px 3px #9a486b}.finish-line small{font:700 10px Cinzel}.lane{z-index:3;position:absolute;left:6%;right:11%;bottom:23%;height:50px}.racer,.opponent{position:absolute;font-size:62px;line-height:.8;bottom:0;text-shadow:3px 4px #79445f;color:#fff0d3}.racer{left:0;transition:left .2s linear}.opponent{left:25%;color:#d6bad2}.race-hud{z-index:5;position:absolute;left:50%;transform:translateX(-50%);top:18px;width:min(600px,90%);border-radius:17px;padding:10px 21px;display:flex;justify-content:space-between;align-items:center;text-align:center}.race-hud small{display:block;font-size:9px;color:#947088;letter-spacing:1px}.race-hud b{font-size:20px}.meter{width:190px}.pace-track{height:13px;margin-top:5px;border-radius:20px;background:linear-gradient(90deg,#7abfa9 0 31%,#e987a7 31% 69%,#7abfa9 69%);position:relative}.pace-track i{position:absolute;height:21px;width:6px;top:-4px;left:48%;background:#fff;box-shadow:0 1px 4px #56304b;border-radius:3px;transition:left .12s}.pace-track span{position:absolute;top:15px;left:0;right:0;font-size:9px;color:#895876}.race-controls{position:relative;margin:-12px auto 0;z-index:10;width:min(700px,94%);border-radius:18px;padding:13px;display:flex;align-items:center;justify-content:center;gap:10px}.race-controls button{border:1px solid #ddba78;border-radius:15px;background:#fff9e9;padding:9px 13px}.race-controls button.active{background:#f6a3bf;color:#fff}.race-controls #burstBtn{color:#a96c1b}.race-controls p{position:absolute;left:20px;bottom:-31px;font-size:12px;color:#724568}.modal{display:none;position:fixed;z-index:50;inset:0;background:#3a194877;place-items:center}.modal.show{display:grid}.result-card{width:min(400px,90vw);border-radius:28px;text-align:center;padding:34px}.result-card #resultSparkle{font-size:55px;color:var(--gold)}.result-card h2{font-size:30px}.reward{font:700 25px Cinzel;color:#bf7c26;background:#fff5d3;margin:18px auto;padding:10px;border-radius:14px}.toast{position:fixed;left:50%;bottom:30px;transform:translate(-50%,100px);z-index:60;background:#5b2c61;color:#fff5df;padding:11px 20px;border-radius:20px;box-shadow:0 4px 12px #0004;transition:.3s}.toast.show{transform:translate(-50%,0)}@media(max-width:700px){.topbar{height:auto;min-height:64px;padding:7px 14px}.resource{min-width:auto}.resource small{display:none}.brand{font-size:15px}.hero-copy{margin:auto;top:30px;padding:22px}.stable-grid,.training-layout{grid-template-columns:1fr}.horse-card{grid-template-columns:1fr;padding:17px}.horse-art{height:175px;font-size:140px}.horse-info{padding:10px}.whinny{grid-column:1;padding:10px}.map-spot{transform:scale(.8)}.stable-spot{right:11%;top:31%}.track-spot{right:1%;bottom:20%}.train-spot{right:36%;bottom:19%}.quest-card{left:5%;bottom:15px;width:90%}.race-top h2{font-size:20px}.race-lore{font-size:12px}.race-controls{flex-wrap:wrap}.race-controls p{display:none}.finish-line{right:3%}.racecourse{height:46vh}.page-head{align-items:flex-start}.page-head .gold-btn{font-size:9px}.race-hud{top:8px}.race-hud b{font-size:16px}}
