.passport-page{--passport-blue:#1764c6;--passport-forest:#173f35;--passport-paper:#fffdf5;--passport-line:#a9c2da;--passport-light:#edf4fd;padding-bottom:12px}
.passport-cover{display:flex;align-items:center;gap:38px;padding:44px 0 34px}.passport-cover>div:last-child{min-width:0}
.passport-cover-mark{position:relative;flex:none;display:flex;flex-direction:column;justify-content:space-between;align-items:center;width:118px;height:158px;padding:23px 15px 20px;border:1px solid #507064;border-radius:5px 15px 15px 5px;background:linear-gradient(100deg,#143a30,#205244);color:#e6e5ad;box-shadow:inset 6px 0 #102f27,inset 9px 0 #436556,0 14px 23px #173f351c;transform:rotate(-7deg)}
.passport-cover-mark:before{content:"";position:absolute;inset:12px 10px 12px 16px;border:1px solid #dce89755;border-radius:3px 8px 8px 3px;pointer-events:none}.passport-cover-mark .icon{width:40px;height:40px}.passport-book-brand{font:400 21px/1 Georgia,serif;letter-spacing:3px;padding-left:3px}.passport-book-caption{font-size:8px;font-weight:600;letter-spacing:1.2px}
.passport-cover h1{font:400 clamp(32px,3.8vw,51px)/1.08 Georgia,serif;letter-spacing:-1.1px;color:var(--passport-forest);margin:13px 0 17px;max-width:700px}.passport-cover p{font-size:15px;line-height:1.8;color:#5b6e65;max-width:570px;margin:0 0 18px}.passport-identity{display:flex;align-items:center;gap:8px;font-size:12px;line-height:1.7;color:#375e51;overflow-wrap:anywhere}.passport-identity .icon{width:18px;height:18px;flex:none;color:var(--passport-blue)}
.passport-page .passport-registration{display:flex;justify-content:space-between;align-items:center;gap:28px;padding:28px 30px;background:#edf0dd;border-color:#d8dfbd;border-radius:18px;margin:6px 0 26px}.passport-page .passport-registration h2{color:var(--passport-forest);font-size:27px;margin:0 0 9px}.passport-page .passport-registration p{margin:0;max-width:610px;font-size:13px;color:#53634b}.passport-page .passport-registration .button{flex:none;min-height:48px;font-size:12px}
.passport-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid #d9dfd4;background:#fffef9;border-radius:18px;margin:12px 0 38px}.passport-stats>div{padding:25px 18px 23px;text-align:center;position:relative}.passport-stats>div+div:before{content:"";position:absolute;left:0;top:27%;height:46%;border-left:1px solid #d9dfd4}.passport-stats strong{display:block;font:400 37px/1.1 Georgia,serif;color:var(--passport-forest);margin-bottom:8px;font-variant-numeric:tabular-nums}.passport-stats span{font-size:12px;line-height:1.5;color:#66746b}
.passport-road{position:relative;isolation:isolate;border:1px solid #dfdfcd;background:radial-gradient(#c2c8b32b .7px,transparent .9px) 0 0/16px 16px,#f4f2e7;border-radius:25px;padding:39px 36px 31px}.passport-road:before{content:"";position:absolute;inset:10px;border:1px solid #c9ceba7d;border-radius:17px;pointer-events:none;z-index:-1}.passport-road-heading{text-align:center;max-width:610px;margin:0 auto 25px}.passport-road-heading .section-kicker{color:#5e7455;font-size:10px;letter-spacing:1.7px}.passport-road-heading h2{font:400 39px/1.13 Georgia,serif;letter-spacing:-.7px;color:var(--passport-forest);margin:13px 0}.passport-road-heading p{font-size:14px;line-height:1.8;color:#637160;margin-bottom:0}
.passport-collection{max-width:460px;margin:0 auto 41px;padding:16px 20px 18px;border:1px solid #dce0ce;border-radius:13px;background:#fffef6d9}.passport-collection>div:first-child{display:flex;justify-content:space-between;gap:13px;align-items:center;margin-bottom:12px}.passport-collection>div>span{color:#667360;font-size:12px}.passport-collection strong{font:400 24px/1.15 Georgia,serif;color:var(--passport-blue);white-space:nowrap}.passport-collection strong>span{font:400 11px/1.5 system-ui,sans-serif;color:#64705e}.passport-collection-track{height:5px;border-radius:10px;overflow:hidden;background:#e6eadb}.passport-collection-track>span{display:block;height:100%;background:var(--passport-blue);border-radius:inherit;transition:width .5s ease}
.passport-trail{list-style:none;margin:0 auto;padding:0;max-width:900px;position:relative}.passport-trail:before{content:"";position:absolute;left:50%;top:30px;bottom:70px;transform:translateX(-50%);border-left:2px dashed var(--passport-line)}.passport-step{display:grid;grid-template-columns:minmax(0,1fr) 90px minmax(0,1fr);position:relative;padding:0 0 33px;min-height:230px;align-items:start}.passport-step>.passport-stamp{grid-row:1;grid-column:1;transform:rotate(-1.4deg)}.passport-step:nth-child(even)>.passport-stamp{grid-column:3;transform:rotate(1.4deg)}
.passport-mile{grid-column:2;grid-row:1;justify-self:center;position:relative;z-index:1;display:grid;place-items:center;width:37px;height:37px;border:4px solid #f4f2e7;outline:1px solid #91b0ce;border-radius:50%;background:var(--passport-blue);color:#fff;font-size:12px;font-weight:700;margin-top:30px;box-shadow:0 3px 9px #1764c60c}.passport-mile:before{content:"";position:absolute;right:31px;top:13px;width:31px;border-top:2px dashed var(--passport-line)}.passport-step:nth-child(even) .passport-mile:before{right:auto;left:31px}
.passport-stamp{--stamp-surface:#fffdf5;isolation:isolate;min-width:0;position:relative;background:var(--stamp-surface);border:1px solid #8baccb;border-radius:1px;padding:21px 22px 17px;box-shadow:0 10px 19px #354f5520,inset 0 0 0 5px #fffdf5,inset 0 0 0 6px #b1c8dc;animation:passport-appear .45s ease both}
/* The paper edge is separate so perforations never mask text or buttons. */
.passport-stamp:before{content:"";position:absolute;inset:-5px;z-index:-1;pointer-events:none;background:radial-gradient(circle at 5px 5px,#fffdf5 4px,transparent 4.7px) top left/10px 10px repeat-x,radial-gradient(circle at 5px 5px,#fffdf5 4px,transparent 4.7px) bottom left/10px 10px repeat-x,radial-gradient(circle at 5px 5px,#fffdf5 4px,transparent 4.7px) top left/10px 10px repeat-y,radial-gradient(circle at 5px 5px,#fffdf5 4px,transparent 4.7px) top right/10px 10px repeat-y}
.passport-stamp-top{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;font-size:10px;line-height:1.5;letter-spacing:.8px;color:#386484;font-weight:700}.passport-stamp-top>.icon{width:17px;height:17px}.passport-current{background:var(--passport-blue);color:#fff;padding:5px 9px;border-radius:20px;font-size:11px;line-height:1.4;letter-spacing:0;white-space:nowrap}.passport-stamp-art{display:flex;align-items:center;gap:13px;margin:20px 0 17px;color:#477595}.passport-stamp-art>.icon{height:38px;width:38px;flex:none}.passport-stamp-art>span{font-size:9px;letter-spacing:1.5px;border:1px solid #9db8cd;padding:6px 7px;transform:rotate(-8deg);color:#4b7691}
.passport-stamp h3{font:400 26px/1.16 Georgia,serif;letter-spacing:-.3px;margin:12px 0;color:#204d6b;overflow-wrap:anywhere}.passport-stamp p.passport-stamp-origin{font-size:12px;color:#446b83;margin:0 0 9px;line-height:1.6}.passport-stamp time{display:block;font-size:11px;color:#5c7481;line-height:1.6;font-variant-numeric:tabular-nums}.passport-stamp-footer{border-top:1px solid #cad9de;padding-top:12px;margin-top:17px;display:flex;gap:8px;flex-direction:column;font-size:11px;line-height:1.6;color:#5a7382}.passport-visit{display:flex;gap:6px;align-items:center}.passport-visit .icon{width:14px;height:14px;flex:none}
.passport-story-link{border:0;background:transparent;padding:3px 0;display:flex;align-items:center;justify-content:space-between;gap:8px;text-align:left;color:#195fa9;font-family:inherit;font-size:12px;font-weight:600;line-height:1.5;min-height:44px;cursor:pointer}.passport-story-link>.icon{height:17px;width:17px;flex:none;transition:transform .2s ease}.passport-story-link:hover>.icon{transform:translateX(4px)}.passport-story-link:focus-visible{outline:2px solid var(--passport-blue);outline-offset:4px;border-radius:2px}
.passport-step.current .passport-stamp{--stamp-surface:#f1f6ff;border-color:var(--passport-blue);box-shadow:0 10px 24px #1764c622,inset 0 0 0 5px #f1f6ff,inset 0 0 0 6px #90b3db}.passport-step.current .passport-mile{background:#1764c6;outline:2px solid #1764c6}.passport-step.undiscovered{min-height:200px}.passport-step.undiscovered .passport-mile{background:#e6e7db;color:#6c7661;outline-color:#bec7b0}
.passport-stamp-unknown{--stamp-surface:#f7f5e9;border-color:#b8c0aa;box-shadow:inset 0 0 0 5px #f7f5e9,inset 0 0 0 6px #d6d9c7;text-align:center;padding:23px 21px}.passport-stamp-unknown:before{opacity:.7}.passport-mystery{display:inline-flex;gap:8px;align-items:center;justify-content:center;color:#7e8b70;height:48px;margin-bottom:7px}.passport-mystery .icon{height:27px;width:27px}.passport-mystery>span{font:400 37px/1 Georgia,serif;color:#6c7e62}.passport-stamp-unknown h3{color:#637457;font-size:24px;margin:8px 0 11px}.passport-stamp-unknown p{font-size:12px;line-height:1.7;color:#6b765f;margin:0 auto 14px;max-width:245px}.passport-unknown-label{font-size:9px;letter-spacing:1px;text-transform:uppercase;border:1px solid #c6ceb8;padding:5px 7px;display:inline-block;color:#6a795d}
.passport-road-end{text-align:center;margin:0 0 20px}.passport-road-end>span{color:#7f9557;font-size:25px}.passport-road-end p{font:400 27px/1.3 Georgia,serif;margin:12px 0 21px;color:#3d5b45}.passport-road-end .button{font-size:12px;min-height:48px}.passport-footnote{font-size:12px;line-height:1.8;text-align:center;color:#6b7764;max-width:535px;margin:28px auto 0}.passport-achievements{margin-top:44px}.passport-page .badge-card{min-width:0;background:#fffef8;border-color:#dce1d2}.passport-page .badge-card.earned{border-color:#cbd7a5;background:#f2f4e6}.passport-page .badge-card h3{font-size:14px;line-height:1.4;color:var(--passport-forest)}.passport-page .badge-card p,.passport-page .badge-card small{font-size:12px;line-height:1.6}.passport-data{margin-top:34px;text-align:center}.passport-data .button{font-size:12px;color:#6b756b;min-height:44px}
@keyframes passport-appear{from{opacity:0;translate:0 10px}to{opacity:1;translate:0 0}}
@media(max-width:800px){.passport-page .passport-registration{align-items:flex-start;flex-direction:column;gap:19px}.passport-step{grid-template-columns:minmax(0,1fr) 66px minmax(0,1fr)}.passport-mile:before{width:19px}.passport-stamp{padding:19px 17px 14px}}
@media(max-width:700px){
.passport-cover{gap:23px;padding:30px 0 27px;align-items:flex-start}.passport-cover-mark{width:76px;height:106px;padding:16px 10px 14px;margin:5px 0 0 3px;border-radius:4px 11px 11px 4px;box-shadow:inset 4px 0 #102f27,inset 6px 0 #436556,0 9px 18px #173f3520}.passport-cover-mark:before{inset:8px 7px 8px 11px;border-radius:3px 6px 6px 3px}.passport-cover-mark .icon{width:28px;height:28px}.passport-book-brand{font-size:15px;letter-spacing:2px}.passport-book-caption{font-size:6px;letter-spacing:.7px}.passport-cover h1{font-size:clamp(29px,5.2vw,36px);letter-spacing:-.7px;margin:10px 0 13px}.passport-cover p{font-size:13px;line-height:1.7;margin-bottom:13px}.passport-cover .section-kicker{font-size:9px;letter-spacing:1px}.passport-identity{font-size:11px;align-items:flex-start;gap:7px}.passport-identity .icon{width:16px;height:16px;margin-top:2px}
.passport-page .passport-registration{padding:22px;border-radius:15px}.passport-page .passport-registration h2{font-size:25px}.passport-page .passport-registration p{font-size:13px}.passport-page .passport-registration .button{min-height:48px}.passport-stats{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:28px;border-radius:15px}.passport-stats>div{padding:21px 9px 20px}.passport-stats strong{font-size:33px}.passport-stats span{font-size:11px}.passport-stats>div:nth-child(3),.passport-stats>div:nth-child(4){border-top:1px solid #d9dfd4}.passport-stats>div:nth-child(3):before{display:none}
.passport-road{padding:30px 21px 25px;border-radius:18px}.passport-road:before{inset:7px;border-radius:12px}.passport-road-heading{margin-bottom:23px}.passport-road-heading .section-kicker{font-size:9px;letter-spacing:1px}.passport-road-heading h2{font-size:33px}.passport-road-heading p{font-size:13px;line-height:1.75}.passport-collection{padding:14px 15px;margin-bottom:35px}.passport-collection>div:first-child{gap:8px;align-items:flex-start}.passport-collection>div>span{max-width:110px;font-size:11px;line-height:1.5}.passport-collection strong{font-size:23px}.passport-collection strong>span{display:block;font-size:10px}
.passport-trail:before{left:16px;top:24px;bottom:75px}.passport-step{grid-template-columns:46px minmax(0,1fr);padding-bottom:30px;min-height:190px}.passport-step>.passport-stamp,.passport-step:nth-child(even)>.passport-stamp{grid-column:2;transform:none}.passport-mile{grid-column:1;justify-self:start;margin-top:24px;width:32px;height:32px;border-width:3px;font-size:11px}.passport-mile:before,.passport-step:nth-child(even) .passport-mile:before{left:28px;right:auto;width:17px;top:12px}.passport-stamp{padding:18px 17px 14px}.passport-stamp h3{font-size:25px}.passport-stamp-top{font-size:9px;letter-spacing:.5px;gap:7px}.passport-current{font-size:10px;padding:5px 7px}.passport-stamp-art{gap:10px;margin:19px 0 16px}.passport-stamp-art>.icon{width:30px;height:30px}.passport-stamp-art>span{font-size:8px;letter-spacing:1px;padding:6px}.passport-stamp-unknown{padding:20px 17px}.passport-stamp-unknown h3{font-size:23px}.passport-road-end p{font-size:24px}.passport-footnote{font-size:11px}
}
@media(max-width:380px){.passport-cover{gap:17px}.passport-cover-mark{width:62px;height:90px;padding:13px 7px 11px}.passport-cover-mark .icon{width:23px;height:23px}.passport-book-brand{font-size:12px}.passport-book-caption{font-size:5px;letter-spacing:.6px}.passport-cover h1{font-size:29px}.passport-road{padding-right:17px;padding-left:14px}.passport-step{grid-template-columns:36px minmax(0,1fr)}.passport-mile:before,.passport-step:nth-child(even) .passport-mile:before{width:10px}.passport-stamp{padding-right:14px;padding-left:14px}.passport-stamp h3{font-size:23px}.passport-stamp-top{font-size:9px;letter-spacing:0}.passport-stamp-art{gap:8px}.passport-stamp-art>span{font-size:7px;letter-spacing:.5px}.passport-stamp p.passport-stamp-origin{font-size:12px}.passport-unknown-label{font-size:8px;letter-spacing:.6px}.passport-page .passport-registration .button{width:100%;padding-left:12px;padding-right:12px}}
@media(prefers-reduced-motion:reduce){.passport-stamp{animation:none;translate:none}.passport-collection-track>span,.passport-story-link>.icon{transition:none}.passport-story-link:hover>.icon{transform:none}}
