/* The dialog IS the bound passport. Every control is printed inside its paper edges. */
#passport-book-dialog{box-sizing:border-box;width:min(1080px,calc((100dvh - 24px)*1.42),calc(100vw - 24px));height:min(780px,calc(100dvh - 24px));max-height:none;padding:12px 18px;color:#214c47;border:8px double #17665d;border-radius:15px 21px 21px 15px;background:repeating-linear-gradient(10deg,#b59b6612 0 .5px,transparent .5px 5px),#fff3d9;box-shadow:0 4px #9c7d46,0 20px 70px #061b25aa,inset 0 0 0 2px #baa475;overflow:hidden}
#passport-book-dialog[open]{display:flex;flex-direction:column}
.passport-book-header{display:flex;flex:none;justify-content:space-between;align-items:center;gap:8px;padding:0 4px 5px;border-bottom:1px solid #baa47577}
.passport-book-header h2{margin:2px 0;font:700 23px Georgia,serif}.passport-book-kicker{margin:0;font-size:8px;letter-spacing:.1em;text-transform:uppercase;color:#756344}
#passport-book-dialog .close-button{flex:none;width:30px;height:30px;min-height:30px;padding:0;font-size:22px;background:transparent;border:1px solid #baa475;color:#675b3e}
#passport-book-content{display:grid;grid-template-rows:auto minmax(0,1fr) auto;flex:1;min-height:0}
.passport-book-summary{margin:5px 0;font-size:10px;color:#756344;line-height:1.3;text-align:center}
.passport-book-footer{padding-top:5px;border-top:1px solid #baa47577}
.passport-book-navigation{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px}
.passport-book-navigation label{font-size:0;font-weight:700}.passport-book-navigation select{margin:0}
#passport-book-dialog select{width:100%;min-height:32px;padding:5px 6px;border:1px solid #b39b6877;border-radius:4px;background:#fff9e966;color:#334b40;font:inherit;font-size:11px}
#passport-book-dialog button:not(.close-button){min-height:32px;padding:5px 10px;border:1px solid #897547;border-radius:6px;color:#28554e;background:#fff9e955;box-shadow:none;font-weight:700;font-size:11px}
#passport-book-dialog button:not(:disabled):hover{background:#e5d7af}#passport-book-dialog button:disabled{opacity:.4;cursor:default}
.passport-page-position{font-size:9px;color:#756344;text-align:center;margin:3px 0 0}
.passport-book-pages{position:relative;display:grid;grid-template-columns:minmax(0,1fr);min-height:0;height:100%;overflow:hidden;background:#fff6e255}
/* data-spread describes the visible pair, not only the viewport width. A lone
   final/theme sheet uses the full paper instead of leaving a blank half-page. */
.passport-book-pages[data-spread=true]{grid-template-columns:repeat(2,minmax(0,1fr))}
.passport-book-pages[data-spread=true]::after{content:'';position:absolute;left:calc(50% - 8px);top:0;bottom:0;width:16px;background:linear-gradient(90deg,transparent,#8a6c3d22,#fff5d066,transparent);pointer-events:none}
.passport-book-page{display:flex;flex-direction:column;min-height:0;min-width:0;height:100%;padding:16px 20px;background:radial-gradient(ellipse at 45% 20%,#fff9ea99,transparent 70%),repeating-linear-gradient(10deg,#b59b6618 0 .5px,transparent .5px 5px),linear-gradient(90deg,#d5bf8c44,transparent 9%,#fff6e2 50%,#d5bf8c33)}
.passport-book-page>h3{flex:none;margin:0 auto 8px;padding:5px 10px;border:1px solid #cf8249;border-radius:9px 9px 0 0;color:#155c58;text-align:center;font:700 clamp(15px,1.6vw,21px) Georgia,serif}
.passport-page-note{flex:none;margin:0 0 6px;text-align:center;font-size:10px;line-height:1.35;color:#746449}
.passport-group-stamps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(3,minmax(0,1fr));gap:6px 14px;flex:1;min-height:0}
.passport-group-stamp{display:flex;flex-direction:column;justify-content:center;min-height:0;min-width:0;text-align:center;color:#aaa599;--stamp-accent:#b5aa9e}
.passport-group-stamp.is-earned{color:#08756e;--stamp-accent:#e56a26}
.passport-stamp-print{position:relative;min-height:0;height:calc(100% - 28px);max-height:135px;width:min(100%,185px);margin:0 auto;transform:rotate(-3deg)}
.passport-group-stamp:nth-child(even) .passport-stamp-print{transform:rotate(2deg)}
.passport-print-art{display:block;width:100%;height:100%;object-fit:contain;overflow:visible}
.print-accent{stroke:var(--stamp-accent,#d26c32)}
.passport-stamp-number{position:absolute;left:20%;top:10%;width:60%;font:italic 900 clamp(28px,7dvh,72px) Georgia,serif;line-height:1;letter-spacing:-.07em;text-shadow:1px 0 currentColor}
.passport-group-stamp p{margin:1px 0;font-size:10px}.passport-group-stamp small{font-size:9px;line-height:1.2;color:#746449}
.passport-empty-slot{display:grid;place-items:center;min-height:0;color:#b3a47d66;font-size:22px}
#passport-book-special,#passport-book-special>.workbench,#discovery-opportunity,#discovery-targets{display:contents}
.passport-special-gallery{grid-column:1/-1;position:relative;z-index:1;background:transparent}
.passport-special-gallery>.workbench-heading{display:flex;flex:none;align-items:center;justify-content:space-between;gap:8px}.passport-special-gallery h2{font:700 20px Georgia,serif;margin:0}
.passport-special-gallery>p{font-size:10px;line-height:1.3;margin:4px 0;text-align:center}
#passport-book-special .knowledge-stamps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:8px 28px;flex:1;min-height:0}
#passport-book-special .knowledge-stamp{display:grid;grid-template-rows:minmax(0,1fr) 26px 16px;min-height:0;min-width:0;padding:0;border:0;background:transparent;box-shadow:none;opacity:1;text-align:center;color:#aaa599}
#passport-book-special .knowledge-stamp.is-earned{color:#08756e}
#passport-book-special .knowledge-stamp>span{display:flex;align-items:center;justify-content:center;min-height:0;min-width:0;width:100%;height:100%}
#passport-book-special .knowledge-stamp>span img,#passport-book-special .knowledge-stamp>span i{display:block;height:100%;max-height:180px;width:100%;max-width:180px;object-fit:contain}
#passport-book-special .knowledge-stamp h3{align-self:center;color:inherit;margin:0;font:700 clamp(12px,1.4vw,18px) Georgia,serif}
#passport-book-special .knowledge-stamp p{align-self:center;font-size:10px;line-height:1.2;color:#75654c;margin:0}
#passport-book-special .stamp-description,#stamp-current-selection{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.knowledge-stamp:not(.is-earned) img{filter:grayscale(1);opacity:.65}
.hidden-stamp-question svg{display:block;width:100%;height:100%;overflow:visible}.hidden-stamp-question text{font:italic 100px 'Segoe Print','Bradley Hand',cursive;fill:#aaa59a;transform:rotate(-8deg);transform-origin:center}
.passport-stamp-selection{flex:none;padding-top:6px;margin-top:6px;border-top:1px solid #baa47566}
#stamp-selection-form{margin:0;display:flex;align-items:center;gap:8px}#stamp-selection-form label{margin:0;display:flex;align-items:center;gap:8px;flex:1;font-size:10px;min-width:0}#stamp-selection-form select{margin:0;flex:1;min-width:0}#stamp-selection-form button{flex:none}#stamp-selection-message{font-size:10px;margin:2px 0;line-height:1.2}#stamp-selection-message:empty{display:none}
.passport-discovery-page{list-style:none;margin:0}.passport-discovery-page strong{margin:10px 0;font:700 18px/1.3 Georgia,serif;overflow-wrap:anywhere}.passport-discovery-page p{font-size:11px;line-height:1.35}.passport-discovery-page button{align-self:start;margin-top:8px}
@media(max-width:849px){#passport-book-dialog{width:min(530px,calc((100dvh - 24px)*.73),calc(100vw - 20px));height:min(780px,calc(100dvh - 24px),max(600px,calc((100vw - 20px)/.73)))}.passport-book-page{padding:8px 10px}.passport-book-kicker{font-size:7px}.passport-book-navigation{gap:6px}#passport-book-dialog button:not(.close-button){padding:5px 7px;font-size:10px}#stamp-selection-form label{font-size:0}#passport-book-special .knowledge-stamps{gap:6px 12px}}
@media(max-height:600px){#passport-book-dialog{padding:7px 10px}.passport-book-header h2{font-size:18px}.passport-book-kicker{font-size:7px}.passport-page-note{display:none}.passport-book-page{padding:6px 10px}.passport-book-page>h3{font-size:13px;margin-bottom:4px}.passport-stamp-number{font-size:28px}.passport-stamp-print{height:calc(100% - 22px)}.passport-group-stamp p{font-size:9px}.passport-group-stamp small{font-size:8px}.passport-special-gallery>p{display:none}.passport-special-gallery h2{font-size:17px}#passport-book-special .knowledge-stamps{gap:4px 20px}#passport-book-special .knowledge-stamp p{font-size:9px}#passport-book-special .knowledge-stamp h3{font-size:13px}.passport-discovery-page strong{font-size:15px}.passport-discovery-page p{font-size:10px;margin:5px 0}}

#passport-book-dialog .stamp-choice-deadline{font-size:9px;line-height:1.2;color:#75654c;margin:3px 0 0}

#passport-book-dialog .passport-special-gallery>p{display:none}.passport-stamp-guide{flex:none;font-size:10px;margin-left:auto}.passport-stamp-guide summary{list-style:none;cursor:pointer;padding:8px 6px;border-bottom:1px dotted #8d805b;color:#36584c}.passport-stamp-guide>div{position:absolute;z-index:5;top:42px;left:8px;right:8px;padding:10px 14px;background:#fff4d9;border:1px solid #b49e71;border-radius:5px;box-shadow:0 5px 15px #54442333}#passport-book-dialog .passport-stamp-guide p{font-size:11px;line-height:1.4;margin:6px 0}.passport-stamp-guide summary:focus-visible{outline:2px solid #36584c;outline-offset:2px}
@media(max-width:550px){.passport-special-gallery h2{font-size:17px}.passport-stamp-guide summary{padding:8px 3px;font-size:9px}#passport-book-special .passport-special-gallery>.workbench-heading{gap:5px}}
