:root{--green:#17352f;--green-deep:#0e2723;--cream:#f7f3e9;--paper:#fffdfa;--gold:#ba9c66;--ink:#263630;--muted:#6d756f;--border:#dedccf;--font:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);font-family:var(--font);background:var(--cream);-webkit-font-smoothing:antialiased}h1,h2,h3,p{margin-top:0}h1,h2{font-family:Georgia,"Times New Roman",serif;font-weight:400}button,input{font:inherit}button{cursor:pointer}a{color:inherit}a:hover{text-decoration-color:var(--gold)}.eyebrow{font-size:.7rem;letter-spacing:.19em;text-transform:uppercase;font-weight:700}.guest-hero{background:radial-gradient(ellipse at 4% 8%,#315a4d 0,transparent 36%),radial-gradient(ellipse at 96% 90%,#27483c 0,transparent 39%),linear-gradient(145deg,var(--green),var(--green-deep));color:#fff9e9;text-align:center;padding:64px 20px 78px;position:relative}.guest-hero:before,.guest-hero:after{content:"✧";position:absolute;top:44%;font-size:4rem;color:#b8a67c;opacity:.24}.guest-hero:before{left:9%}.guest-hero:after{right:9%}.hero-inner{max-width:660px;margin:auto}.hero-stars{color:var(--gold);letter-spacing:1em;font-size:1rem;margin-bottom:28px}.guest-hero .eyebrow{color:#decfac;font-size:.68rem}.guest-hero h1{font-size:clamp(3rem,9vw,5.2rem);line-height:1.06;letter-spacing:-.035em;margin:19px 0 12px}.kicker{font-family:Georgia,serif;font-size:clamp(1.45rem,4vw,2rem);letter-spacing:.12em;margin-bottom:24px;color:#e7d5ad}.intro{margin:0 auto;max-width:490px;line-height:1.7;color:#e8e8df;font-size:.95rem}.guest-content{max-width:890px;margin:auto;padding:42px 18px 90px}.section-head{display:flex;align-items:end;justify-content:space-between;gap:12px;padding:0 3px 18px}.section-head .eyebrow{color:#7e6743;margin:0}.section-head p{font-size:.79rem;margin:0;color:var(--muted);text-align:right;max-width:250px}.challenges{display:grid;gap:13px}.challenge{background:var(--paper);border:1px solid var(--border);border-radius:14px;display:flex;align-items:center;gap:18px;padding:21px;box-shadow:0 4px 18px #172c2220}.emoji{background:#f3efe4;border-radius:13px;width:61px;height:61px;display:grid;place-items:center;font-size:1.8rem;flex:none}.challenge-copy{flex:1;min-width:0}.number{display:block;color:#927c56;font-size:.63rem;letter-spacing:.15em;font-weight:700;margin-bottom:5px}.challenge h2{font-size:1.45rem;margin:0 0 4px;color:#20382f;line-height:1.2}.challenge p{font-size:.81rem;color:#747b75;margin:0;line-height:1.45}.upload-open{background:var(--green);color:white;border:0;border-radius:8px;font-size:.84rem;font-weight:600;white-space:nowrap;padding:13px 16px}.upload-open:hover{background:#285749}.upload-open span{margin-left:7px;color:#e2c88c}.upload-open.uploaded{background:#426e51}.footer-note{text-align:center;color:#6e756d;line-height:1.6;margin-top:45px;font-family:Georgia,serif;font-size:1.15rem}.footer-note>span{color:#be966e}.footer-note small{display:block;max-width:550px;margin:13px auto 0;font-family:var(--font);font-size:.76rem}.upload-dialog{border:0;border-radius:16px;padding:27px;width:min(94vw,460px);max-height:90vh;box-shadow:0 20px 80px #001e16a0}.upload-dialog::backdrop{background:#061a16b7}.dialog-top{display:flex;align-items:start;justify-content:space-between}.dialog-top .eyebrow{color:#947b4d;margin:8px 0}.dialog-top button{border:0;background:transparent;color:#56635b;font-size:2rem;line-height:1;padding:0 4px}.upload-dialog h2{font-size:2rem;line-height:1.15;margin:8px 0 26px}.input-label{font-size:.8rem;display:block;font-weight:700;margin:18px 0 8px}.input-label small{font-weight:400;color:#7b837c}.upload-dialog input{width:100%;padding:14px 12px;border:1px solid #cfd2c9;border-radius:8px;background:#fbfbf7;color:var(--ink);font-size:.92rem}.upload-dialog input[type=file]{background:#f3f4ef;font-size:.8rem}.file-hint{color:#707970;font-size:.72rem;line-height:1.5}.primary-button{display:inline-block;text-align:center;padding:13px 17px;background:var(--green);border:0;color:#fff;text-decoration:none;border-radius:8px;font-weight:650;font-size:.83rem}.primary-button:hover{background:#2d594c}.primary-button:disabled{opacity:.6;cursor:wait}.upload-dialog .primary-button{margin-top:15px;width:100%}#message{font-size:.84rem;line-height:1.4;margin-top:12px}#message.success{background:#e5f5e8;color:#1a6034;border-radius:8px;padding:12px}#message.error{background:#fff0e9;color:#992d22;border-radius:8px;padding:12px}.center-message{text-align:center;max-width:500px;margin:15vh auto;padding:20px}.center-message .mark{font-size:3rem;color:#a79567}.center-message h1{font-size:2.9rem}.admin-page{background:#f5f4ee}.admin-wrap{max-width:1140px;margin:55px auto;padding:0 24px 70px}.admin-top{display:flex;align-items:end;justify-content:space-between;gap:28px;margin-bottom:32px}.admin-top h1{font-size:2.7rem;margin:10px 0}.admin-top p{color:#68766d;font-size:.85rem}.admin-top .eyebrow{color:#9c7e52}.admin-actions{display:flex;gap:10px;flex-wrap:wrap}.subtle-button{display:inline-block;padding:12px 16px;background:#fff;border:1px solid #c9d0c9;border-radius:8px;text-decoration:none;font-size:.82rem;font-weight:650}.admin-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.admin-album{display:flex;align-items:center;gap:16px;background:white;border:1px solid #dddcd4;border-radius:14px;padding:20px;text-decoration:none}.admin-album:hover{border-color:var(--gold)}.admin-album .emoji{width:52px;height:52px}.admin-album h2{font-size:1.3rem;margin:0 0 5px}.admin-album p{font-size:.8rem;color:#6d776f;margin:0}.chevron{margin-left:auto;color:#698275}.help-note{margin-top:26px;color:#667068;font-size:.8rem}.back-link{font-size:.85rem;color:#536e59;text-decoration:none}.photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.photo-card{border-radius:12px;border:1px solid #dddcd4;background:white;overflow:hidden}.photo-card>a{display:block;aspect-ratio:4/3;background:#e8e8e0}.photo-card>a img{width:100%;height:100%;object-fit:cover;display:block}.heic-placeholder{display:flex;align-items:center;justify-content:center;flex-direction:column;height:100%;font-size:2.3rem}.heic-placeholder small{font-size:.75rem;color:#718078;margin-top:7px}.photo-caption{display:grid;gap:7px;padding:13px}.photo-caption strong{font-size:.8rem}.photo-caption small,.photo-caption a{font-size:.72rem;color:#637369}.print-page{background:#efeeea}.print-toolbar{max-width:900px;margin:20px auto;display:flex;justify-content:space-between;padding:0 15px}.print-toolbar a{align-self:center}.print-toolbar button{background:var(--green);color:white;border:0;border-radius:6px;padding:12px 22px;font-weight:700}.print-warning{max-width:900px;margin:10px auto;color:#921c10;background:#ffe4d5;padding:13px;font-size:.9rem}.print-sheet{width:190mm;max-width:100%;margin:16px auto 30px;display:flex;flex-direction:column;gap:5mm}.print-card{background:#fdfbf5;border:1.5mm solid #1b3e35;border-radius:3mm;display:flex;height:132mm;padding:7mm;gap:5mm;position:relative;overflow:hidden}.print-left{width:66%;position:relative}.print-subheading{font-size:2.6mm;letter-spacing:.15em;font-weight:700;text-transform:uppercase;color:#667869;margin:0}.print-decoration{font-size:8mm;color:#b89c69;position:absolute;top:4mm;right:4mm}.print-card h2{font-size:11mm;line-height:1;margin:6mm 0 2mm;color:#1a3d35;letter-spacing:-.025em}.print-name{font-family:Georgia,serif;font-size:6mm;color:#96784f;margin:0 0 3mm}.print-description{font-size:3.2mm;margin:0 0 5mm;color:#58675d}.print-card ol{display:grid;grid-template-columns:1fr 1fr;gap:3mm 4mm;list-style:none;padding:0;margin:0}.print-card li{font-size:3.25mm;color:#254039;font-weight:600}.print-card li span{margin-right:1mm}.print-right{width:34%;border-left:.35mm solid #c9c5b7;padding-left:4mm;text-align:center;display:flex;align-items:center;justify-content:center;flex-direction:column}.print-right img{width:100%;max-width:38mm;image-rendering:crisp-edges}.print-right strong{font-size:6mm;letter-spacing:.13em;color:#244638;margin:3mm 0}.print-right p{font-size:3.3mm;line-height:1.5;color:#375045;margin:0 0 3mm}.print-right small{font-size:2.7mm;color:#748176}
@media(max-width:650px){.guest-hero{padding:48px 22px 55px}.guest-hero:before,.guest-hero:after{display:none}.guest-content{padding:30px 13px 60px}.challenge{padding:14px 12px;gap:10px;border-radius:10px}.challenge .emoji{width:43px;height:43px;font-size:1.35rem;border-radius:9px}.challenge h2{font-size:1.12rem}.challenge p{font-size:.73rem}.challenge .number{font-size:.58rem}.upload-open{padding:10px 11px;font-size:.76rem}.upload-open span{margin-left:2px}.admin-top{flex-direction:column;align-items:start}.admin-list{grid-template-columns:1fr}.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-wrap{margin-top:25px;padding:0 14px 50px}.admin-top h1{font-size:2.15rem}.print-sheet{overflow:hidden}.print-card{height:auto;min-height:100mm;padding:4mm}.print-left{width:64%}.print-right{width:36%}.print-card h2{font-size:7mm}.print-card li{font-size:2.5mm}.print-name{font-size:4.3mm}.print-description{font-size:2.6mm}.print-card ol{grid-template-columns:1fr}}
@media(max-width:380px){.challenge .emoji{display:none}.challenge{gap:8px}.challenge h2{font-size:1.05rem}.upload-open{padding:10px 9px}.photo-grid{grid-template-columns:1fr}}
@page{size:A4 portrait;margin:10mm}@media print{body.print-page{background:white;-webkit-print-color-adjust:exact;print-color-adjust:exact}.print-toolbar,.print-warning{display:none!important}.print-sheet{width:190mm;margin:0;gap:5mm}.print-card{break-inside:avoid;page-break-inside:avoid;border-radius:0;height:132mm}.print-left{width:66%}.print-right{width:34%}.print-card h2{font-size:11mm}.print-card li{font-size:3.25mm}.print-card ol{grid-template-columns:1fr 1fr}}

/* Wedding photo dashboard statistics — v1.1 */
.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 12px}
.stat-card{background:#fff;border:1px solid #deddd4;padding:18px;border-radius:13px;display:flex;flex-direction:column;gap:8px;min-width:0}
.stat-card>span{font-size:.75rem;color:#666f68;font-weight:650}
.stat-card>strong{font-size:clamp(1.1rem,2vw,1.6rem);font-family:Georgia,serif;font-weight:400;color:#1b3e35;white-space:nowrap}
.stat-card>small{font-size:.67rem;color:#7c847d;line-height:1.3}
.quota-line{height:7px;background:#dfdfd5;border-radius:99px;overflow:hidden}
.quota-line>div{background:#a2885f;height:100%;border-radius:99px}
.quota-caption{color:#737b73;font-size:.73rem;margin:8px 0 28px}
.albums-heading{font-size:1.65rem;margin:0 0 16px}
@media(max-width:850px){.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:420px){.stats-grid{gap:9px}.stat-card{padding:12px}.stat-card>strong{font-size:1.13rem}}

/* Allow the longer couple title to fit on printed cards. */
.print-card h2{font-size:9mm}
@media print{.print-card h2{font-size:9mm}}

/* Admin-only safe photo management — v1.2 */
.photo-operation{margin:0;padding:0;display:block}
.photo-action{background:#edf3ef;border:1px solid #bed0c4;color:#194a38;padding:9px 11px;font-size:.77rem;line-height:1.2;border-radius:8px;cursor:pointer;font-weight:650;width:100%;text-align:center}
.photo-action:hover{background:#dce9df}
.photo-action.danger{background:#fff6f4;border-color:#edc2ba;color:#9b3028}
.photo-action.danger:hover{background:#fde7e2}
.photo-action:disabled{opacity:.55;cursor:wait}
.removed-category{font-size:.73rem;color:#66786d;font-weight:650;margin:0 0 6px}
.admin-actions{flex-wrap:wrap}

/* v1.3: private accounts, album photobook, duplex cards */
.account-bar{display:flex;gap:15px;align-items:center;justify-content:flex-end;margin-bottom:20px;color:#62756b;font-size:.8rem}
.account-bar form{margin:0}.account-bar button{border:0;background:none;color:#244b40;text-decoration:underline;cursor:pointer;font-size:.8rem}
.login-page{background:#f4f1e8;min-height:100vh}.login-shell{min-height:100vh;display:grid;place-items:center;padding:25px}
.login-panel{width:min(100%,450px);background:#fffcf6;border:1px solid #dedacc;border-radius:18px;box-shadow:0 12px 45px #163b2912;padding:clamp(24px,6vw,48px);text-align:center}
.login-decoration{font-size:2rem;color:#b79b6b;margin:10px 0}.login-panel h1{font-family:Georgia,serif;color:#173b32;font-size:clamp(2rem,5vw,3rem);margin:12px 0;line-height:1.1}
.login-intro{color:#65756b;margin:12px 0 25px}.login-form{display:grid;text-align:left;gap:9px}.login-form label{font-size:.8rem;font-weight:700;color:#41584b}
.login-form input{height:47px;font-size:1rem;border:1px solid #cbd5cb;border-radius:9px;padding:10px 12px;background:white;margin-bottom:7px}
.login-form input:focus{outline:2px solid #a0bfae;outline-offset:1px}.login-form button{text-align:center;border:none;cursor:pointer;margin-top:12px}
.login-error{background:#ffefeb;color:#893a2d;padding:10px;border-radius:8px;font-size:.83rem}.login-help{font-size:.75rem;color:#7a877b;margin-top:23px}
.photo-thumb{cursor:zoom-in}.photobook{width:min(94vw,1100px);height:min(94vh,900px);max-width:none;max-height:none;border:0;border-radius:12px;padding:0;background:#0e1c18;color:#fbf7eb;box-shadow:0 15px 75px #0009}
.photobook::backdrop{background:rgba(0,0,0,.84)}.photobook-header,.photobook-footer{display:flex;align-items:center;justify-content:space-between;padding:12px 18px;gap:12px;font-size:.9rem}
.photobook-header button{border:0;background:transparent;color:white;font-size:2rem;cursor:pointer}.photobook-media{height:calc(100% - 112px);display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 7px}
.photobook-media>button{border:0;border-radius:999px;cursor:pointer;width:46px;height:46px;background:#ffffff1d;color:#fff;font-size:2rem;flex:0 0 46px}
.photobook-image{height:100%;width:100%;min-width:0;display:grid;place-items:center}.photobook-image img{display:block;width:100%;height:100%;max-height:100%;object-fit:contain}.photobook-image img[hidden]{display:none}.photobook-image p{color:#efebe3;text-align:center;padding:15px}
.photobook-footer a{color:#f3d9a5}.photobook-footer span{font-size:.82rem;color:#d5dfd9}
@media(max-width:550px){.photobook{width:100vw;height:100dvh;border-radius:0}.photobook-media>button{width:35px;height:42px;flex-basis:35px;font-size:1.5rem}.account-bar{justify-content:flex-start}}
/* Print: three identical cards, 87mm tall each, 6mm gutters, with 10mm page margins. */
.print-toolbar{max-width:850px;gap:12px}.print-toolbar>div{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:flex-end}.print-toolbar span{font-size:.74rem;color:#5b6d65}
.print-screen-label{max-width:190mm;margin:26px auto 7px;color:#6b746c;font-size:.72rem;letter-spacing:.1em;font-weight:700}
.print-sheet{width:190mm;max-width:100%;display:flex;flex-direction:column;gap:6mm;margin:0 auto 25px}
.print-card{box-sizing:border-box;width:100%;height:87mm;min-height:87mm;max-height:87mm;flex:0 0 87mm;padding:5mm 6mm;gap:5mm;border:.4mm solid #21463d;border-radius:2mm;overflow:hidden;background:#fdfbf5;display:flex}
.print-left{width:69%}.print-right{width:31%;padding-left:3mm}.print-card h2,.print-card.print-card-back h2{font-size:7mm;line-height:1.04;margin:3mm 0 1mm}.print-card .print-name{font-size:4.8mm;margin-bottom:1.7mm}
.print-description{font-size:2.9mm;margin-bottom:2.6mm}.print-card ol{display:grid;grid-template-columns:1fr 1fr;gap:2mm 2mm}.print-card li{font-size:2.75mm;line-height:1.15}
.print-subheading{font-size:2.35mm}.print-right img{max-width:32mm;width:100%}.print-right strong{font-size:4mm;margin:1.5mm 0}.print-right p{font-size:2.9mm;line-height:1.4}
.print-card-back .print-back-copy{width:69%}.print-card-back .print-description{margin-top:3mm}.print-card-back .print-steps{display:grid;grid-template-columns:1fr;list-style:none;gap:3mm;margin:3mm 0;padding:0}
.print-card-back .print-steps li{font-size:3.4mm}.print-card-back .print-steps b{margin-right:3mm;color:#9c8053}.print-card-back .print-thanks{font-family:Georgia,serif;font-size:4.2mm;color:#9c8053;margin:4mm 0 0}
.print-lamination-tip{max-width:190mm;margin:25px auto 45px;color:#526a5c;font-size:.8rem}
@page{size:A4 portrait;margin:10mm}
@media print{
  html,body{margin:0!important;padding:0!important}body.print-page{background:#fff!important}
  .print-toolbar,.print-warning,.print-screen-label,.print-lamination-tip{display:none!important}
  .print-sheet{width:190mm!important;height:273mm!important;max-width:none!important;margin:0!important;gap:6mm!important;break-after:page;page-break-after:always}
  .print-sheet:last-of-type{break-after:auto;page-break-after:auto}
  .print-card{width:190mm!important;height:87mm!important;min-height:87mm!important;max-height:87mm!important;flex:0 0 87mm!important;border:.4mm solid #21463d!important;border-radius:2mm!important;padding:5mm 6mm!important;break-inside:avoid!important;page-break-inside:avoid!important}
  .print-left{width:69%!important}.print-right{width:31%!important}.print-card h2,.print-card.print-card-back h2{font-size:7mm!important}
  .print-card ol{grid-template-columns:1fr 1fr!important}.print-card li{font-size:2.75mm!important}.print-card .print-name{font-size:4.8mm!important}
}
@media screen and (max-width:800px){.print-sheet{min-width:630px}.print-page{overflow-x:auto}}
/* Balanced table-card layout, with scan-safe QR size. */
.print-card .print-left,.print-card .print-back-copy{display:flex;flex-direction:column;justify-content:center}
.print-card .print-left h2,.print-card .print-back-copy h2{font-size:7.8mm;line-height:1.08}
.print-card .print-left ol{gap:3mm 3mm}
.print-card .print-left li{font-size:3mm}
.print-card .print-back-copy .print-steps{grid-template-columns:1fr!important;gap:3mm}
.print-card .print-right img{max-width:38mm}
@media print{
  .print-card .print-left,.print-card .print-back-copy{display:flex!important;flex-direction:column!important;justify-content:center!important}
  .print-card .print-left h2,.print-card .print-back-copy h2{font-size:7.8mm!important}
  .print-card .print-left li{font-size:3mm!important}
  .print-card .print-back-copy .print-steps{grid-template-columns:1fr!important}
}

/* v1.4 — couple-first dashboard and restrained illustrated stationery */
.task-line-icon{width:28px;height:28px;color:#4e514d;display:block;flex:none}
.emoji .task-line-icon{width:32px;height:32px}
.admin-top .eyebrow .task-line-icon{width:17px;height:17px;display:inline-block;vertical-align:middle;margin-right:3px}
.couple-summary{margin-bottom:22px}.couple-photo-count{background:white;border:1px solid var(--border);border-radius:14px;padding:20px 26px;display:flex;flex-wrap:wrap;gap:10px 22px;align-items:center}
.couple-photo-count>span{font-size:.83rem;color:#53665a;font-weight:650}.couple-photo-count strong{font:400 2.3rem Georgia,serif;color:#213e32}.couple-photo-count p{flex-basis:100%;font-size:.78rem;color:#69786d;margin:0}
.favourites-summary{background:#faf8f2;border:1px solid #dddad0;border-radius:14px;padding:22px 23px;margin:24px 0}
.favourites-summary h2{font-size:1.8rem;margin:7px 0 20px}.favourites-summary .eyebrow{margin:0;color:#9e8051}
.favourite-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.favourite-links a{border:1px solid #ddd9cd;border-radius:10px;background:white;padding:15px;text-decoration:none;display:flex;flex-direction:column;gap:6px;min-width:0}
.favourite-links a:hover{border-color:var(--gold)}
.favourite-links strong{font:400 2rem Georgia,serif;color:#234538}.favourite-links span{font-size:.76rem;color:#5c6b60}
.photo-fav-badges{display:flex;gap:5px;flex-wrap:wrap}.photo-fav-badges span{font-size:.66rem;background:#f3ede4;color:#70562f;padding:3px 6px;border-radius:5px}
.photo-fav-badges .joint-mark{background:#e7efe8;color:#29533d}.favourite-toggle.is-favourite{background:#e5efe7;color:#145735;border-color:#a7c9b0}
.photo-download-link{display:block;padding:7px 0;font-weight:600;text-decoration:underline;text-underline-offset:2px}
.share-guest{margin:26px 0 8px;background:white;border:1px solid #dddcd4;border-radius:13px;padding:20px;display:grid;gap:12px}.share-guest strong{font:400 1.25rem Georgia,serif}
.share-guest p{font-size:.78rem;margin:5px 0 0;color:#69766c}.share-input{display:flex;gap:8px;max-width:100%}
.share-input input{flex:1;min-width:0;border:1px solid #c4cfc7;border-radius:7px;padding:12px;font-size:.83rem;color:#405147;background:#fcfdfb}
.share-input button{border:0;border-radius:7px;background:#213d34;color:white;font-size:.8rem;padding:10px 16px;font-weight:700}
#shareFeedback{font-size:.76rem;color:#34684c}

/* The photo opens in a centred, non-scrolling window; zoom is opt-in. */
.photobook{width:min(94vw,1100px);height:min(90dvh,780px);max-width:none;max-height:none;overflow:hidden!important;overscroll-behavior:contain;border-radius:14px}
.photobook[open]{display:flex;flex-direction:column}
.photobook-header{flex:0 0 auto;min-height:52px;background:#152a24;border-bottom:1px solid #ffffff20;padding:7px 17px}
.book-top-actions{display:flex;align-items:center;gap:9px}.photobook-header .book-top-actions button{font:500 .81rem var(--font);border:1px solid #ffffff40;padding:8px 11px;border-radius:6px;color:white;background:#ffffff16}
.photobook-header #bookClose{font-size:1.6rem;line-height:1;padding:4px 12px}
.photobook-media{flex:1 1 auto;min-height:0;height:auto;display:flex;align-items:stretch;gap:4px;padding:8px 9px;overflow:hidden}
.photobook-media>button{align-self:center;flex:0 0 40px;width:40px;height:44px;z-index:1}
.photobook-image{flex:1;min-width:0;min-height:0;height:100%;width:auto;overflow:hidden;display:flex;justify-content:center;align-items:center}
.photobook-image img{display:block;width:auto;height:auto;max-height:100%;max-width:100%;object-fit:contain;flex:none}
.photobook-image.is-zoomed{display:block;overflow:auto;text-align:center}
.photobook-image.is-zoomed img{width:auto;height:auto;min-width:125%;max-width:none;max-height:none;margin:auto}
.photobook-footer{flex:0 0 auto;min-height:55px;gap:16px;background:#152a24;border-top:1px solid #ffffff20}
.photobook-footer #bookCaption{min-width:0;flex:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.book-footer-actions{display:flex;gap:10px;align-items:center;flex-shrink:0}
.book-footer-actions a,.book-footer-actions button{display:inline-block;background:#faf5e7;color:#1a392e;border:0;border-radius:6px;text-decoration:none;padding:9px 12px;font-size:.78rem;line-height:1.3;font-weight:650;white-space:nowrap}
.book-footer-actions button.is-favourite{background:#e2c994;color:#422b0c}
.book-footer-actions button[hidden]{display:none}
@media(max-width:650px){.photobook{width:100vw;height:94dvh;border-radius:0}.photobook-media{padding:4px;gap:2px}.photobook-media>button{width:29px;flex-basis:29px;font-size:1.5rem;background:#ffffff1a}.photobook-footer{padding:8px;flex-wrap:wrap}.book-footer-actions a,.book-footer-actions button{font-size:.72rem;padding:8px}.favourite-links{gap:6px}.favourite-links a{padding:10px}.favourite-links span{font-size:.68rem}.favourite-links strong{font-size:1.65rem}.share-guest{padding:14px}.share-input{flex-wrap:wrap}.share-input input{flex-basis:100%}}

/* Paper cards are nearly black-and-white, with a muted gold crest and rules. */
.print-card,.print-card-back{background:#fff!important;color:#202423!important;border:.35mm solid #2d3431!important}
.print-card .print-left h2,.print-card .print-back-copy h2{color:#171b19!important}
.print-card .print-subheading{color:#62635e!important}
.print-card .print-name{color:#826635!important}
.print-card .print-description{color:#555954!important}
.print-card .print-right{border-color:#bcaa86!important}
.print-card .print-right strong{color:#171b19!important;font-weight:800!important;letter-spacing:.12em}
.print-card .print-right p{color:#555a55!important}
.print-card .print-thanks{color:#826635!important}
.print-heading-row{display:flex;align-items:center;justify-content:space-between;gap:4mm}

.print-card ol li{display:flex;align-items:center;gap:1.5mm;color:#232724!important;line-height:1.2}
.print-task-icon{width:5.2mm;height:5.2mm;flex:0 0 5.2mm;stroke:#3b413c!important}
.print-card .print-left ol{gap:2mm 3.1mm!important}
.print-card .print-left li{font-size:2.9mm!important}
.print-card .print-name{letter-spacing:.02em}
.print-card .print-steps b{color:#977a4c!important}
@media print{
 .print-card,.print-card-back{background:white!important;color:#202423!important;border:.35mm solid #2d3431!important}
 .print-task-icon{width:5.2mm!important;height:5.2mm!important;flex:0 0 5.2mm!important}
 .print-card .print-left li{font-size:2.9mm!important}
}

/* v1.5 - cohesive black ink task illustrations from Mason's supplied artwork */
.task-line-icon {display:block;object-fit:contain;width:31px;height:31px;color:inherit}
.emoji .task-line-icon {display:block;width:32px;height:32px;object-fit:contain}
.admin-top .eyebrow .task-line-icon {display:inline-block;width:17px;height:17px;vertical-align:middle;object-fit:contain;margin-right:5px}
.print-task-icon {width:6.3mm;height:6.3mm;flex:0 0 6.3mm;display:block;object-fit:contain;filter:none}
.print-card .print-left ol {grid-template-columns:1fr 1fr;gap:2.6mm 2.5mm!important}
.print-card .print-left li {font-size:2.88mm!important;min-width:0}
@media print {
 .print-task-icon {width:6.3mm!important;height:6.3mm!important;flex:0 0 6.3mm!important;object-fit:contain!important}
 .print-card .print-left ol {grid-template-columns:1fr 1fr!important;gap:2.6mm 2.5mm!important}
 .print-card .print-left li {font-size:2.88mm!important}
}


/* v1.6: bonus points apply only to the first task, not the entire photo hunt. */
.print-card .print-challenge-copy {display:block; min-width:0; line-height:1.17}
.print-card .print-challenge-copy small {display:block; font-size:2.16mm; line-height:1.2; color:#886b39; font-weight:500; margin-top:.8mm}
.print-card .print-left ol li {align-items:flex-start}
@media print {
 .print-card .print-challenge-copy small {font-size:2.16mm!important;color:#886b39!important}
}

/* v1.7: four print rows for eight challenges. Maintain three 87 mm cards per A4 face. */
.print-card .print-left ol{gap:1.7mm 2.5mm!important}
.print-card .print-left li{font-size:2.72mm!important;line-height:1.12!important}
.print-task-icon{width:5.5mm;height:5.5mm;flex-basis:5.5mm}
.print-card .print-challenge-copy small{font-size:2mm;margin-top:.4mm}
@media print{
 .print-card .print-left ol{gap:1.7mm 2.5mm!important}
 .print-card .print-left li{font-size:2.72mm!important;line-height:1.12!important}
 .print-task-icon{width:5.5mm!important;height:5.5mm!important;flex-basis:5.5mm!important}
 .print-card .print-challenge-copy small{font-size:2mm!important}
}
