.season-header{max-width:1120px;margin:24px auto;padding:20px 24px;display:flex;align-items:center;justify-content:space-between;border:1px solid #334358;border-radius:24px;background:#101622}.season-wrap{max-width:1120px;margin:50px auto;padding:0 24px}.season-wrap h1{font-size:clamp(42px,7vw,82px)}.season-wrap h2{margin-top:32px}.pass-cover{padding:32px;border:1px solid #345176;border-radius:28px;background:radial-gradient(ellipse at top right,#153a6655,transparent 60%),linear-gradient(140deg,#111c2b,#101017);box-shadow:0 0 70px #152c521c}.pass-stats{display:flex;gap:28px;flex-wrap:wrap;margin:24px 0}.pass-stats strong{display:block;font-size:34px;color:#f7d18e}.pass-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:18px;margin:24px 0}.pass-stamp{--ink:#58c8ff;border:3px double var(--ink);color:var(--ink);border-radius:28px;padding:26px 16px;text-align:center;background:#07111b;box-shadow:inset 0 0 30px #1b354822;transform:rotate(-2deg)}.pass-stamp:nth-child(even){transform:rotate(2deg)}.pass-stamp.magenta{--ink:#f778db}.pass-stamp.gold{--ink:#f5c776}.pass-stamp .stamp-icon{display:block;font-size:40px}.pass-stamp strong{display:block;margin:12px 0}.pass-stamp small{display:block}.pass-reward{border:1px solid #394257;border-radius:22px;background:#111722;padding:24px;overflow-wrap:anywhere}.pass-reward p{color:#c2ccdb}.pass-progress{width:100%;height:12px;accent-color:#ebc278}.stamp-received{animation:stamp-hit .6s cubic-bezier(.2,.7,.2,1)}@keyframes stamp-hit{0%{opacity:0;transform:scale(1.8) rotate(-18deg)}70%{opacity:1;transform:scale(.93) rotate(-3deg)}100%{transform:scale(1) rotate(0)}}.season-wrap input,.season-wrap select{font-size:16px}.season-wrap form{max-width:520px}.season-error{color:#ffb6c9}.season-wrap button:disabled{opacity:.55}.pass-activity{padding:12px 0;border-bottom:1px solid #303949;display:flex;justify-content:space-between;gap:16px}.pass-notice{padding:20px;border:1px solid #ddbf77;border-radius:20px;margin:20px 0;background:#2a2117}.season-wrap label{display:block;margin:16px 0}.season-wrap input{width:100%;padding:15px;background:#0b111b;border:1px solid #46546b;border-radius:12px;color:white}.season-header a{font-size:16px}@media(prefers-reduced-motion:reduce){.stamp-received{animation:none}}@media(max-width:600px){.season-header{margin:12px}.season-wrap{margin:28px auto;padding:0 18px}.pass-cover{padding:22px}.pass-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.pass-stamp{padding:18px 10px}.pass-stamp strong{font-size:15px}.pass-reward{grid-column:1/-1}}
#scene-map{height:430px;border-radius:24px;margin:24px 0;z-index:0}#scene-list .pass-reward{grid-column:1/-1}.scene-pin{background:#eabf78;border:2px solid #151a25;border-radius:50%;box-shadow:0 0 15px #4abaff}.leaflet-popup-content{color:#101622}.leaflet-popup-content a{color:#184b83}.scene-description{white-space:pre-wrap}.season-wrap textarea{width:100%;min-height:130px;font-size:16px;background:#0b111b;color:white;border:1px solid #46546b;border-radius:12px;padding:15px}
[hidden]{display:none!important}.pass-grid>p{grid-column:1/-1}.season-wrap input[type=checkbox]{width:auto;display:inline-block;margin-right:8px}.stamp-animation{overflow:hidden;padding:16px;margin:-16px}.season-wrap .pass-notice{transform-origin:center}

.pass-scanner{max-width:540px;width:94vw;border:1px solid #6889ac;border-radius:20px;background:#0b1422;color:#f6f6f6;padding:24px;max-height:90svh;overflow:auto}.pass-scanner::backdrop{background:#000c}.pass-scanner video{display:block;width:100%;max-height:36svh;margin:16px 0}.pass-scanner .button{margin:10px 6px 10px 0;min-height:44px}.pass-scanner input{font-size:16px;max-width:100%}.pass-scanner p{margin:16px 0;line-height:1.6}

/* Season progress shares the existing midnight-blue/gold visual language. */
.season-jump{display:flex;gap:10px;flex-wrap:wrap;margin:24px 0}.season-jump a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 16px;border:1px solid #4b5f79;border-radius:999px;text-decoration:none;background:#111c2c;color:#f4f5f8}.season-jump a:hover{border-color:#ebc278;box-shadow:0 0 20px #ebc27820}.season-journey{margin-top:38px}.season-section-heading{display:flex;justify-content:space-between;gap:24px;align-items:end}.season-section-heading h2{margin-top:8px}.season-focus-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);gap:20px;margin:22px 0}.season-number{display:block;font-size:clamp(64px,10vw,100px);line-height:1.1;color:#f5d08a}.season-series{background:radial-gradient(ellipse at top right,#193e6055,transparent 75%),#101724}.season-next{border-color:#7c663e;background:linear-gradient(135deg,#232020,#101724)}.season-next h3{font-size:28px;line-height:1.25}.season-journey progress{width:100%;height:12px;accent-color:#ebc278}.season-all-goals{padding:20px;border:1px solid #42516a;border-radius:20px;background:#0c1420}.season-all-goals summary,.season-series summary{cursor:pointer;min-height:44px;padding:10px 0;font-weight:650}.season-earned{border-color:#ad8b48}.season-trophy>span{display:block;font-size:40px;color:#f5d08a}.season-trophy small{display:block;margin-top:8px;color:#c2ccdb}.season-trophy h3{font-size:23px;margin-top:12px}.season-recap{margin-top:32px}.season-recap .actions{display:flex;gap:12px;flex-wrap:wrap}.season-wrap .button{display:inline-flex;align-items:center;justify-content:center;text-align:center;min-height:48px;line-height:1.35;white-space:normal}.season-wrap :is(button,a,input,select,summary):focus-visible{outline:3px solid #f4d18e;outline-offset:4px}.season-wrap [id]{scroll-margin-top:120px}.season-wrap h2:focus{outline:none}.season-wrap .pass-grid{min-width:0}.season-trophy-grid .pass-reward{min-width:0}@media(max-width:600px){.season-focus-grid{grid-template-columns:minmax(0,1fr)}.season-section-heading{display:block}.season-jump a{flex:1 1 40%}.season-trophy-grid{grid-template-columns:minmax(0,1fr)}.season-recap .button{width:100%}.season-next h3{font-size:25px}.season-all-goals{padding:16px}}@media(prefers-reduced-motion:no-preference){.season-trophy{transition:border-color .2s ease,box-shadow .2s ease}.season-trophy:hover{border-color:#ad8b48;box-shadow:0 10px 28px #0003}}

.follow-card-image{width:100%;height:220px;object-fit:contain;background:#060d17;border-radius:16px}.vehicle-follow{margin:24px 0;padding:24px;border:1px solid #415779;border-radius:22px;background:#101827}.vehicle-follow .button{margin:0 14px 12px 0}.vehicle-follow p{line-height:1.6}.vehicle-follow button:disabled{opacity:.6}

/* Compact pass summary: progress and check-in stay together. */
.pass-next-goal{display:flex;flex-wrap:wrap;gap:4px 16px;padding:12px 0;margin:8px 0;color:#f4d18e;text-decoration:none;border-top:1px solid #46546b}.pass-next-goal>span{font-size:12px;width:100%;color:#c2ccdb}.pass-next-goal strong{font-size:17px}.pass-next-goal small{align-self:center}.pass-checkin .button{width:100%}.pass-checkin>p{font-size:12px;color:#c2ccdb;line-height:1.5;margin:8px 0 0}.pass-manual,.pass-benefits{border:1px solid #42516a;border-radius:16px;padding:12px 16px;margin:16px 0}.season-wrap summary{min-height:44px;display:list-item;align-content:center;cursor:pointer}.season-error:empty{display:none}
@media(max-width:760px){html.caral-app .season-wrap{margin:16px auto;padding:0 16px}html.caral-app .pass-cover{padding:18px;border-radius:20px}html.caral-app .pass-cover h1{font-size:32px;line-height:1.1;margin:4px 0 12px}html.caral-app .pass-cover>.eyebrow{margin:0}html.caral-app .pass-intro{display:none}html.caral-app .pass-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:12px 0}html.caral-app .pass-stats strong{font-size:28px}html.caral-app .pass-stats>div{font-size:12px}html.caral-app .pass-level-next{margin:6px 0;font-size:13px}html.caral-app .season-jump{gap:6px;margin:14px 0}html.caral-app .season-jump a{flex:1 1 auto;padding:8px 10px;font-size:12px}html.caral-app .season-journey{margin-top:24px}html.caral-app .season-focus-grid{grid-template-columns:minmax(0,1fr)}html.caral-app .season-next{order:-1}html.caral-app .season-number{font-size:48px}html.caral-app .pass-reward{padding:18px}}
