/* A small book of actual endings. No sample progress or remote resources. */
.passport-shell{max-width:1280px;margin:0 auto;padding:48px 0 68px}
.passport-intro{max-width:760px;margin:0 auto 42px;text-align:center}
.passport-intro .kicker{color:var(--muted);letter-spacing:.18em;font-size:11px}
.passport-intro h1{font:500 clamp(44px,5.3vw,76px)/.98 Georgia,serif;letter-spacing:-.045em;margin:20px 0}
.passport-intro .lede{max-width:550px;margin:0 auto;font-size:18px;line-height:1.6;color:var(--muted)}
.passport-book{display:grid;grid-template-columns:minmax(250px,.76fr) minmax(0,1.55fr);border:1px solid var(--gold);background:var(--bone);box-shadow:0 18px 48px #06182a1f,0 5px 0 -1px var(--soft),0 6px 0 var(--line);border-radius:7px 12px 12px 7px;overflow:hidden}
.passport-cover{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;padding:34px 28px;background:#0b2336;color:#f7f0de;border-right:1px solid #b28b4e;isolation:isolate}
.passport-cover:before{content:"";position:absolute;inset:12px;border:1px solid #b28b4e80;pointer-events:none;z-index:-1}
.passport-cover:after{content:"";position:absolute;inset:0 0 0 auto;width:20px;background:linear-gradient(90deg,transparent,#020d18a6);pointer-events:none}
.passport-cover .kicker{font-size:10px;letter-spacing:.2em;color:#dbbd7f;margin:10px 0 18px}
.passport-cover h2{font:500 clamp(28px,3vw,42px)/1.05 Georgia,serif;letter-spacing:.01em;margin:8px 0 18px}
.passport-cover-rule{width:58px;height:1px;background:#b28b4e;margin:4px auto 18px}
.passport-cover p:not(.kicker){font:15px/1.6 Georgia,serif;max-width:240px;color:#d4d9d4}
.passport-cover .passport-cover-note{font-style:italic;margin:20px 0 8px}
.passport-cover-art{display:block;width:100%;margin:4px 0 20px;border:1px solid #b28b4e80;padding:5px;background:#06182a}
.passport-cover-art img{display:block;width:100%;height:auto;aspect-ratio:1.18;object-fit:cover;object-position:58% 50%}
.passport-cover .passport-edition{margin-top:auto;padding-top:28px;font:10px/1.5 Arial,sans-serif!important;letter-spacing:.17em;text-transform:uppercase;color:#dbbd7f!important}
.passport-pages{min-width:0;background:linear-gradient(90deg,#06182a0c,transparent 22px)}
.passport-quest-page{padding:36px 32px 30px}
.passport-quest-page+.passport-quest-page{border-top:1px dashed var(--line)}
.passport-quest-heading{border-bottom:1px solid var(--line);padding-bottom:22px;margin-bottom:26px}
.passport-quest-heading .kicker{font-size:10px;letter-spacing:.18em;color:var(--muted);margin:0 0 10px}
.passport-quest-heading h2{font:500 clamp(29px,3.4vw,42px)/1.12 Georgia,serif;letter-spacing:-.02em;margin:0 0 12px}
.passport-progress{font:12px/1.5 Arial,sans-serif;letter-spacing:.04em;color:var(--muted);margin:0}
.passport-stamp-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.passport-stamp,.passport-undiscovered{display:flex;flex-direction:column;align-items:center;gap:7px;text-align:center;min-width:0;padding:0;border:0;background:transparent;color:var(--ink);font-family:Georgia,serif}
.passport-stamp{cursor:pointer;border-radius:8px;transition:transform .18s ease}
.passport-stamp:hover{transform:translateY(-4px)}
.passport-stamp-art{display:block;width:100%;height:auto;aspect-ratio:1;filter:drop-shadow(0 3px 2px #06182a18);transform:rotate(-5deg)}
.passport-stamp:nth-child(2) .passport-stamp-art{transform:rotate(4deg)}
.passport-stamp:nth-child(3) .passport-stamp-art{transform:rotate(-2deg)}
.passport-stamp-title{font-size:15px;line-height:1.3;max-width:160px}
.passport-stamp-date{font:10px/1.5 Arial,sans-serif;letter-spacing:.015em;color:var(--muted)}
.passport-unknown-mark{position:relative;display:grid;place-items:center;width:calc(100% - 14px);aspect-ratio:1;margin:7px 7px 8px;border:1px dashed var(--line);border-radius:50%;color:var(--muted);font:italic 37px/1 Georgia,serif;background:repeating-linear-gradient(135deg,transparent,transparent 5px,#b28b4e07 5px,#b28b4e07 6px)}
.passport-unknown-mark:after{content:"";position:absolute;inset:7px;border:1px solid var(--line);border-radius:50%;opacity:.45}
.passport-undiscovered .passport-stamp-title{color:var(--muted);font-style:italic}
.passport-empty{font:italic 15px/1.6 Georgia,serif;color:var(--muted);margin:26px 0 22px}
.passport-quest-actions{display:flex;flex-direction:column;align-items:flex-start;border-top:1px solid var(--line);padding-top:22px;gap:9px}
.passport-action{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:11px 16px;color:var(--button-ink);background:var(--button);font:600 13px/1.4 Arial,sans-serif;text-decoration:none;border:1px solid var(--button);border-radius:3px}
.passport-action:hover{text-decoration:underline;text-underline-offset:3px}
.passport-fineprint{font:12px/1.65 Arial,sans-serif;color:var(--muted);margin:0}
.passport-complete{display:flex;align-items:center;gap:16px;margin:18px 0;color:var(--olive);font:italic 17px/1.4 Georgia,serif}
.passport-complete-art{width:82px;height:82px;flex:0 0 82px}
.passport-storage{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:start;margin:30px 0 0;padding:0 3px}
.passport-storage h2{font:500 19px/1.3 Georgia,serif;margin:0 0 8px}
.passport-storage p{max-width:780px;font:12px/1.7 Arial,sans-serif;color:var(--muted);margin:5px 0}
.passport-storage p[data-state=corrupt],.passport-storage p[data-state=unsupported],.passport-storage p[data-state=quota],.passport-storage p[data-state=unavailable]{color:var(--ink);border-left:3px solid var(--gold);padding-left:12px}
.passport-reset-open{border:0;background:none;color:var(--muted);text-decoration:underline;text-underline-offset:4px;min-height:44px;font:12px/1.4 Arial,sans-serif;cursor:pointer;padding:10px}
.passport-reset-open:disabled{opacity:.55;cursor:default;text-decoration:none}
.passport-reset-result{grid-column:1/-1;margin:0!important}
.passport-loading{padding:20px;text-align:center;color:var(--muted)}
.passport-dialog{color:var(--ink);background:var(--paper);border:1px solid var(--gold);border-radius:9px;padding:0;max-width:640px;width:calc(100% - 32px);max-height:88dvh;box-shadow:0 24px 80px #0008}
.passport-dialog::backdrop{background:#020d18b8;backdrop-filter:blur(4px)}
.passport-dialog-bar{position:sticky;top:0;z-index:1;display:flex;align-items:center;justify-content:space-between;background:var(--paper);border-bottom:1px solid var(--line);padding:10px 20px;font:10px/1.5 Arial,sans-serif;letter-spacing:.14em}
.passport-dialog-bar button,.passport-reset-actions button{font:600 13px/1.4 Arial,sans-serif;min-height:44px;padding:8px 16px;cursor:pointer;border:1px solid var(--line);border-radius:3px;color:var(--ink);background:var(--bone)}
.passport-detail-body{padding:8px 30px 30px;font:17px/1.7 Georgia,serif}
.passport-detail-stamp{display:block;width:180px;height:180px;margin:0 auto 2px;transform:rotate(-5deg)}
.passport-detail-body>.kicker{font:11px/1.5 Arial,sans-serif;color:var(--muted);text-align:center;letter-spacing:.15em}
.passport-detail-body h2{font:500 34px/1.1 Georgia,serif;letter-spacing:-.025em;margin:10px 0 14px;text-align:center}
.passport-earned-date{text-align:center;font:12px/1.5 Arial,sans-serif!important;color:var(--muted);margin-bottom:26px}
.passport-story-reward{padding:18px 20px;border:1px solid var(--gold);background:var(--bone);margin:24px 0}
.passport-story-reward h3{font:500 23px/1.2 Georgia,serif;margin:10px 0}
.passport-story-reward p{font-size:15px}
.passport-story-reward .kicker{font:10px/1.5 Arial,sans-serif;letter-spacing:.13em;color:var(--muted)}
.passport-reset-body{padding:25px}
.passport-reset-body h2{font:500 29px/1.15 Georgia,serif;margin:0 0 14px}
.passport-reset-body p{font-size:16px;line-height:1.6}
.passport-reset-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:25px}
.passport-reset-actions #passport-reset-confirm{background:var(--button);color:var(--button-ink);border-color:var(--button)}
.passport-shell a:focus-visible,.passport-shell button:focus-visible,.passport-dialog :focus-visible{outline:3px solid var(--gold);outline-offset:5px}
@media(max-width:900px){.passport-book{grid-template-columns:minmax(220px,.7fr) minmax(0,1.3fr)}.passport-quest-page{padding:30px 22px}.passport-stamp-row{gap:10px}.passport-stamp-title{font-size:14px}}
@media(max-width:699px){.passport-shell{padding-top:32px}.passport-intro{margin-bottom:28px}.passport-intro h1{font-size:49px}.passport-intro .lede{font-size:16px}.passport-book{grid-template-columns:1fr}.passport-cover{padding:26px 24px 28px;border-right:0;border-bottom:1px solid #b28b4e}.passport-cover h2{font-size:33px;max-width:240px;margin:0 0 14px}.passport-cover-art{max-width:280px;margin:0 auto 13px}.passport-cover-art img{aspect-ratio:1.7}.passport-cover .passport-cover-note{display:none}.passport-cover .passport-edition{padding-top:10px;margin-bottom:0}.passport-cover .kicker{margin:0 0 12px}.passport-cover p:not(.kicker){margin:2px auto}.passport-cover-rule{display:none}.passport-quest-page{padding:29px 20px}.passport-quest-heading{padding-bottom:18px;margin-bottom:23px}.passport-stamp-row{gap:10px}.passport-stamp-title{font-size:14px}.passport-stamp-date{font-size:10px}.passport-unknown-mark{font-size:28px}.passport-storage{grid-template-columns:1fr;gap:7px}.passport-reset-open{justify-self:start;padding-left:0}.passport-detail-body{padding:8px 23px 28px}.passport-detail-body h2{font-size:29px}}
@media(max-width:359px){.passport-quest-page{padding:24px 14px}.passport-stamp-row{gap:7px}.passport-stamp-title{font-size:12px}.passport-stamp-date{font-size:9px}.passport-intro h1{font-size:43px}}
@media(prefers-reduced-motion:reduce){.passport-stamp{transition:none}.passport-stamp:hover{transform:none}}
