.road-to-final{grid-column:1/-1;box-sizing:border-box;padding:28px;border-radius:22px;background:linear-gradient(135deg,#071d2b,#102f43 62%,#143d50);color:#fff;box-shadow:0 16px 40px #152c3a16;overflow:hidden}
.road-head{display:flex;align-items:flex-end;justify-content:space-between;gap:30px}.road-head>div:first-child{min-width:0}.road-head>div>span{font-size:12px;letter-spacing:2.4px;color:#8eeadd;font-weight:800}.road-head h2{margin:7px 0 5px;font-size:clamp(25px,2.2vw,36px);line-height:1.25;letter-spacing:-.8px}.road-head p{margin:0;color:#c3d6df;font-size:15px;line-height:1.6}
.road-score{min-width:210px;text-align:right}.road-score strong{display:block;font-size:30px;color:#f3cf78;line-height:1}.road-score span{display:block;margin-top:8px;font-size:11px;letter-spacing:1.3px;color:#c6d5dc}.road-score i{display:block;width:100%;height:5px;margin-top:12px;border-radius:99px;background:#ffffff1a;overflow:hidden}.road-score i b{display:block;width:0;height:100%;background:linear-gradient(90deg,#59d9cf,#f3cf78);transition:width .5s}
.road-journey{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:24px 0 16px}.road-journey span{display:flex;align-items:center;gap:10px;min-height:42px;padding:8px 12px;border:1px solid #ffffff18;background:#ffffff0a;border-radius:8px;color:#dceaf0;font-size:13px}.road-journey b{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:#8eeadd;color:#092735;font-size:11px;flex:none}
.road-status{display:flex;align-items:center;gap:10px;min-height:36px;margin-bottom:12px;color:#f4e2b5;font-size:14px}.road-status>b{color:#8eeadd}.my-final-pass{margin-left:auto;padding:5px 9px;border:1px solid #f3cf7870;border-radius:99px;background:#f3cf7814;color:#f6d98f;font-size:11px;font-weight:800;letter-spacing:.7px}
.finalist-grid{display:grid!important;grid-template-columns:repeat(5,minmax(0,1fr))!important;gap:8px!important;margin:0!important;padding:0!important;list-style:none!important}.finalist-grid li{display:grid;grid-template-columns:auto 22px minmax(0,1fr);align-items:center;gap:7px;min-width:0;min-height:43px;padding:7px 9px;border:1px solid #ffffff14;border-radius:8px;background:#06172290;color:#8fa8b5}.finalist-grid li>span{font:700 10px monospace;color:#698694}.finalist-grid li img{width:22px;height:15px;object-fit:cover;border-radius:2px}.finalist-grid li strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:700}.finalist-grid li:not(.confirmed) strong{grid-column:2/4;font-weight:500}.finalist-grid li.confirmed{border-color:#f3cf7845;background:#f3cf780d;color:#fff}.finalist-grid li.confirmed>span{color:#f3cf78}
.race-story-panel{margin:0 0 12px;padding:12px 13px;border:1px solid #e6c37155;border-left:3px solid #e6c371;border-radius:8px;background:linear-gradient(135deg,#192b37,#10202b);color:#fff}.race-story-panel[hidden]{display:none}.race-story-panel>span{display:block;color:#e8c979;font-size:10px;font-weight:800;letter-spacing:1.2px}.race-story-panel>strong{display:block;margin-top:5px;font-size:13px;line-height:1.45}.race-story-panel>p{margin:5px 0 0;color:#9edfd4;font-size:11px;line-height:1.4}
.passport-screen{max-width:1240px!important}.passport-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:24px}.passport-heading .eyebrow{margin-bottom:8px}.passport-heading h1{margin:0;font-size:clamp(30px,4vw,48px);letter-spacing:-1.5px}.passport-heading p:last-child{margin:8px 0 0;color:#5b7080;font-size:15px}.passport-mark{display:grid;place-items:center;width:74px;height:74px;border:2px solid #0b6e72;border-radius:50%;color:#0b6e72;font:800 12px/1.2 monospace;letter-spacing:2px;text-align:center;transform:rotate(-7deg)}
.passport-overview{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(280px,.8fr);gap:18px}.passport-id,.passport-highlight{box-sizing:border-box;min-height:280px;border-radius:22px}.passport-id{position:relative;overflow:hidden;padding:28px;background:radial-gradient(circle at 85% 15%,#2a6076 0,#12394a 24%,transparent 25%),linear-gradient(135deg,#061a27,#103649);color:#fff;box-shadow:0 16px 38px #12354b25}.passport-id:after{content:'◎';position:absolute;right:24px;bottom:-36px;color:#ffffff0a;font-size:190px;line-height:1}.passport-id-top{display:flex;align-items:center;justify-content:space-between;color:#80e5d8;font-size:11px;font-weight:900;letter-spacing:2px}.passport-id-top b{padding:6px 10px;border:1px solid #e8cd7a60;border-radius:99px;color:#f2d68b;letter-spacing:.8px}.passport-person{display:flex;align-items:center;gap:18px;margin:34px 0}.passport-person img,.passport-globe{width:68px;height:46px;border-radius:7px;object-fit:cover;box-shadow:0 0 0 5px #ffffff0d}.passport-globe{display:grid;place-items:center;height:68px;border-radius:50%;font-size:36px;color:#8ce9db}.passport-person div{display:grid;min-width:0}.passport-person small{color:#83a9b8;font:700 10px monospace;letter-spacing:1.5px}.passport-person strong{overflow:hidden;margin:5px 0 3px;color:#fff;font-size:clamp(24px,3vw,38px);line-height:1.1;text-overflow:ellipsis;white-space:nowrap}.passport-person span{color:#b7ced8;font:600 12px monospace;letter-spacing:1px}.passport-stats{position:relative;z-index:1;display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.passport-stats span{display:grid;padding:11px;border:1px solid #ffffff15;border-radius:10px;background:#ffffff08;color:#9db8c4;font-size:11px}.passport-stats b{margin-bottom:4px;color:#f2d27c;font-size:23px}
.passport-highlight{display:flex;flex-direction:column;padding:28px;border:1px solid #d8e1e5;background:#fff;box-shadow:0 12px 34px #18384d12}.passport-highlight>p{margin:0;color:#32737a;font-size:11px;font-weight:900;letter-spacing:1.3px;text-transform:uppercase}.passport-highlight>div{display:flex;align-items:center;gap:18px;margin:auto 0}.highlight-rank{color:#0a3144;font-size:clamp(48px,6vw,74px);font-weight:900;letter-spacing:-3px}.passport-highlight div div{display:grid;gap:7px}.passport-highlight strong{color:#0f2c3a;font-size:19px}.passport-highlight small{color:#6f8290;font-size:12px}.passport-highlight button{align-self:flex-start;margin-top:auto}.passport-highlight.empty strong{margin:auto 0 8px;color:#153b4d;font-size:25px}.passport-highlight.empty>span{color:#70838f;font-size:14px;line-height:1.6}
.passport-block{margin-top:26px}.passport-block-title{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:13px}.passport-block-title span{order:2;color:#477581;font:700 10px monospace;letter-spacing:1.5px}.passport-block-title h2{margin:0;color:#112f3e;font-size:22px}.badge-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:9px}.record-badge{display:grid;justify-items:center;min-width:0;padding:18px 8px 14px;border:1px solid #dce4e7;border-radius:14px;background:#fff;text-align:center}.record-badge i{display:grid;place-items:center;width:48px;height:48px;margin-bottom:10px;border:1px solid #ccd9de;border-radius:50%;color:#738892;font:800 15px monospace;font-style:normal}.record-badge strong{font-size:12px;line-height:1.3}.record-badge small{margin-top:6px;color:#8a9aa1;font-size:9px;letter-spacing:.7px}.record-badge.earned{border-color:#d5b85d80;background:linear-gradient(150deg,#fffdf6,#fff)}.record-badge.earned i{border-color:#e0c365;background:#f7e8b2;color:#563e08;box-shadow:0 5px 16px #d4b45138}.record-badge.earned small{color:#9b7618}.record-badge.locked{filter:saturate(.2);opacity:.62}
.stamp-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:11px}.stadium-stamp{position:relative;display:grid;grid-template-columns:92px 1fr auto;align-items:center;gap:13px;overflow:hidden;min-height:84px;padding:8px 13px 8px 8px;border:1px solid #dce4e7;border-radius:14px;background:#fff}.stadium-stamp img{width:92px;height:68px;border-radius:9px;object-fit:cover}.stadium-stamp div{display:grid;min-width:0;gap:3px}.stadium-stamp div>span{color:#31828a;font:800 9px monospace;letter-spacing:1px}.stadium-stamp strong{overflow:hidden;color:#173441;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.stadium-stamp small{color:#728690;font-size:10px}.stadium-stamp>b{display:grid;place-items:center;width:28px;height:28px;border:2px solid #cbb058;border-radius:50%;color:#8d711e;transform:rotate(-8deg)}.stadium-stamp.locked img{filter:grayscale(1);opacity:.32}.stadium-stamp.locked{opacity:.7}.stadium-stamp.locked>b{border-color:#b8c2c6;color:#9da9ae}
@media(max-width:760px){.road-to-final{padding:20px;border-radius:18px}.road-head{display:block}.road-score{min-width:0;margin-top:18px;text-align:left}.road-score strong{font-size:26px}.road-journey{grid-template-columns:1fr;margin-top:18px}.road-journey span{min-height:36px}.road-status{align-items:flex-start;flex-wrap:wrap;line-height:1.55}.my-final-pass{margin-left:0}.finalist-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.race-story-panel{padding:9px 10px;margin-bottom:9px}.race-story-panel>strong{font-size:12px}.race-story-panel>p{display:none}}
@media(max-width:760px){.passport-heading{align-items:center}.passport-heading p:last-child{font-size:14px}.passport-mark{width:58px;height:58px;flex:none;font-size:10px}.passport-overview{grid-template-columns:1fr}.passport-id,.passport-highlight{min-height:250px;padding:20px;border-radius:18px}.passport-person{margin:27px 0}.passport-person img,.passport-globe{width:55px;height:39px}.passport-globe{height:55px}.passport-stats span{padding:9px 7px}.passport-stats b{font-size:20px}.passport-highlight{min-height:220px}.badge-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.record-badge:last-child{grid-column:1/-1}.stamp-grid{grid-template-columns:1fr}.stadium-stamp{grid-template-columns:82px 1fr auto}.stadium-stamp img{width:82px;height:62px}}
@media(prefers-reduced-motion:reduce){.road-score i b{transition:none}}
