html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
:root{--red:#e8bb48;--paper:#252321;--ink:#f5efdf;--line:#59534a;--muted:#d2c8b6;--gold:#e8bb48}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.5 Arial,sans-serif}header{background:#151513;color:#f1e6bc;padding:18px max(20px,calc((100% - 760px)/2));display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}header strong{font-size:23px}header span{font-size:14px}.shell{max-width:800px;margin:auto;padding:0 20px}.concept{font-size:13px;color:var(--muted);margin:14px 0 4px}nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;position:sticky;top:0;background:var(--paper);padding:8px 0 14px;z-index:3}button,input,select,textarea{font:inherit}button{cursor:pointer;min-height:46px;border:1px solid var(--red);border-radius:8px;padding:9px 14px;background:var(--red);color:#252321}button.secondary,nav button{background:transparent;color:var(--red)}button:disabled{opacity:.55;cursor:default}nav button{font-size:14px;padding:8px}nav button[aria-current=page]{background:var(--red);color:#252321}:focus-visible{outline:3px solid var(--gold);outline-offset:3px}.skip{position:fixed;left:8px;top:8px;padding:10px;background:white;z-index:10;transform:translateY(-150%)}.skip:focus{transform:none}main{padding:14px 0 28px;min-height:50vh}main:focus,h1:focus{outline:none}h1{font-size:29px;line-height:1.2;margin:0 0 16px}h2{font-size:21px;line-height:1.3;margin:28px 0 12px}h3{font-size:18px;margin:0 0 8px}p{margin:0 0 16px}label{display:block;font-weight:bold;margin:18px 0 6px}input:not([type=checkbox]),select,textarea{width:100%;min-width:0;min-height:48px;padding:10px 12px;border:1px solid #8d8780;border-radius:7px;background:#f7f2e5;color:#292722;margin-top:6px}textarea{min-height:78px}input[type=checkbox]{width:22px;height:22px;flex:0 0 22px}.check{display:flex;align-items:flex-start;gap:10px;font-weight:normal;margin:18px 0}.check input{margin:1px 0}.actions{display:flex;flex-wrap:wrap;gap:14px;margin:20px 0}.actions>*{flex:0 1 auto}.stack{display:flex;flex-direction:column;gap:14px;max-width:360px;margin:22px 0}.stack>*{width:100%;margin:0}.results{display:flex;gap:20px;justify-content:space-between;align-items:center;flex-wrap:wrap;margin:20px 0}.results p{margin:0}.switch{display:inline-flex}.switch button{background:transparent;color:var(--red);min-width:70px;border-radius:0;min-height:44px;font-size:14px}.switch button:first-child{border-radius:8px 0 0 8px}.switch button:last-child{border-radius:0 8px 8px 0;border-left:0}.switch button[aria-pressed=true]{background:var(--red);color:#252321}ul.plain{padding:0;margin:0;list-style:none}.venue,.request,.receipt{padding:20px 0;border-bottom:1px solid var(--line)}.venue:first-child{border-top:1px solid var(--line)}.meta{font-size:14px;color:var(--muted)}.status{display:inline-block;padding:3px 9px;border:1px solid #9e8d70;border-radius:4px;font-size:13px;margin-bottom:10px}.status.confirmed{border-color:var(--red);color:var(--red)}.notice{padding:14px 16px;border:1px solid var(--line);background:#f7f2e5;color:#292722;margin:18px 0}.error{color:#ffd0c8;font-weight:bold}.totals{display:flex;gap:20px;flex-wrap:wrap;padding:12px 0 18px;border-bottom:1px solid var(--line)}.totals strong{font-size:27px;color:var(--red)}.totals span{font-size:14px}.stamps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;list-style:none;padding:0}.stamp{height:100%;border:2px solid #796434;outline:1px solid #a08851;outline-offset:-7px;border-radius:12px;padding:18px 12px;text-align:center;color:#39342a;background:#f1ead7;display:flex;flex-direction:column}.stamp small{text-transform:uppercase;font-size:10px;letter-spacing:1px}.stamp .centre{min-height:130px;flex:1;display:flex;flex-direction:column;justify-content:center}.stamp h3{font-size:17px;overflow-wrap:anywhere}.stamp p{font-size:14px;margin:4px 0}.stamp time{font:14px 'Courier New',monospace;border:1px solid #796434;padding:7px 2px}.seal{width:84px;height:84px;margin:14px auto 0;border:4px double currentColor;outline:1px dashed;outline-offset:-9px;border-radius:50%;display:flex;flex-direction:column;justify-content:center;transform:rotate(-9deg);font:bold 10px/1.4 'Courier New',monospace;text-transform:uppercase}.menu{display:flex;flex-direction:column;gap:12px}.menu button{text-align:left;background:transparent;color:var(--red)}.map{display:block;width:100%;border:1px solid var(--line);border-radius:10px;background:#e7e6dc}.map button{background:white}.history{padding-left:20px}.history li{margin:10px 0}.demo-mode{background:#34312b;border:1px solid var(--line);padding:12px 14px;font-size:14px;margin-bottom:20px}.demo-mode strong{color:var(--red)}footer{font-size:12px;color:var(--muted);border-top:1px solid var(--line);padding:20px 0 30px}progress{width:100%;accent-color:var(--red);height:16px}a{color:var(--red)}[hidden]{display:none!important}@media(min-width:700px){nav{grid-template-columns:repeat(4,1fr)}.stamps{max-width:600px}}@media(max-width:360px){.stamps{grid-template-columns:1fr}}@media(max-width:450px){.actions{flex-direction:column;align-items:stretch}.actions>*{width:100%}}

header strong{letter-spacing:-.4px}header{border-bottom:1px solid #796434}.map{color:#252321}.status{border-color:#a18b5e}.notice .meta{color:#59544e}
.draw-panel{border-block:1px solid #796434;margin:22px 0;padding:18px 0 6px}.draw-panel h2{margin:0 0 14px}.draw-entry{color:#f1e6bc}.draw-entry strong{font-size:28px;color:var(--gold)}.draw-panel progress{display:block;margin-bottom:12px}

.map a{cursor:pointer}.map a:focus-visible{outline:none}.map a:focus-visible .marker,.map a:hover .marker{stroke:#252321;stroke-width:3}

.demo-controls{margin:28px 0;border-block:1px solid var(--line);padding:8px 0}.demo-controls>summary{cursor:pointer;color:var(--gold);font-weight:bold;min-height:44px;padding:10px 0}.demo-controls>p{margin-top:14px}

.back-more{margin:0 0 20px}

.map-key{display:flex;flex-wrap:wrap;gap:8px 16px;margin:12px 0;font-size:13px;color:var(--muted)}.map-key span{display:inline-flex;align-items:center;gap:7px}.map-key i{display:inline-block;width:16px;height:16px;border:2px solid #252321;border-radius:50%;flex-shrink:0}.map-key .key-collected{background:#252321;border:3px double #e8bb48}.map-key .key-pending{background:#f1ead7;border:2px dashed #8c7b59}.map-key .key-new{background:#e8bb48;border-color:#e8bb48}.map a:focus-visible .focus-ring{opacity:1}

.scan-demo,.scan-result{text-align:center}.scan-demo h2{margin-top:20px}.scan-frame{display:inline-block;padding:10px;border:2px solid var(--gold);border-radius:12px;margin:6px 0 18px;background:white}.scan-frame img{display:block;width:176px;height:176px}.scan-demo .stack,.scan-result .stack{margin:20px auto}.scan-result .seal{width:100px;height:100px;font-size:12px}.scan-result h2{margin-top:22px}

.stamps:has(>li:only-child){grid-template-columns:minmax(0,1fr);max-width:320px}

.scan-demo .scan-frame img{width:152px;height:152px}.scan-demo h2{margin:12px 0}.scan-demo .scan-frame{margin:0 0 10px}.scan-demo .stack{margin:14px auto}.scan-result .notice{text-align:left}

.audit-change{margin:6px 0;color:var(--gold);font-size:14px}.history li>p{margin-bottom:8px}

.totals:has(>span:nth-child(3)){display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}

nav button{min-width:0;line-height:1.25}header strong,header span,.concept,nav button{-webkit-text-size-adjust:100%;text-size-adjust:100%}

header{align-items:center;flex-wrap:nowrap;gap:14px}.brand-badge{width:64px;height:64px;object-fit:contain;flex:none}.brand-name{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;min-width:0}.brand-name strong{font-size:23px}.brand-name span{font-size:14px}.share-demo{border-top:1px solid var(--line);margin-top:28px;padding-top:2px}.share-demo input{font-size:14px}.home-screen-help{margin-top:24px}.home-screen-help summary{cursor:pointer;min-height:44px;padding:10px 0}.home-screen-help p{margin:12px 0}

.stamp-cafe-link{margin:16px auto 0;background:transparent;color:#39342a;border-color:#796434;font-size:14px;min-height:44px;padding:8px 10px}

.nearby-search{margin-top:20px;border-block:1px solid var(--line);padding:8px 0}.nearby-search>summary,.map-about>summary{cursor:pointer;padding:10px 0;min-height:44px}.nearby-search .stack{margin:14px 0}.nearby-search .meta{margin:12px 0}.real-map{height:380px;width:100%;border:1px solid var(--line);border-radius:8px;background:#e7e6dc;z-index:0}.leaflet-container{font:14px/1.5 Arial,sans-serif;color:#252321}.leaflet-container a{color:#175e85}.leaflet-container .leaflet-control-attribution{background:#fff;color:#252321;font-size:11px}.leaflet-container .leaflet-control-zoom a{width:44px;height:44px;line-height:44px;color:#252321}.cafe-pin{background:none;border:0;display:grid;place-items:center}.cafe-pin span{width:30px;height:30px;border-radius:50%;border:2px solid #252321;background:#e8bb48;color:#252321;text-align:center;line-height:26px;font-weight:bold;box-shadow:0 2px 4px #0004}.cafe-pin.confirmed span{background:#252321;color:#e8bb48;border-color:#e8bb48}.cafe-pin.pending span{background:#f1ead7;border-style:dashed}.leaflet-popup-content p{margin:8px 0}.leaflet-popup-content button{margin-top:8px;font-size:14px}.distance{font-weight:bold;color:var(--gold)}.map-about{font-size:14px}.map-about p{margin:10px 0}.real-map+.notice{margin-top:12px}@media(max-width:450px){.real-map{height:340px}}

/* Prize feature retains the existing charcoal, cream and gold palette. */
.prize-draw{padding:0;border:1px solid #796434;overflow:hidden;margin:28px 0 36px}.prize-intro,.prize-caption,.draw-tracker{padding:20px}.prize-kicker{font-size:11px;font-weight:bold;letter-spacing:.08em;color:var(--gold);margin:0 0 12px}.prize-draw h2{font-size:28px;line-height:1.15;margin:0 0 14px}.prize-intro>p:last-child{margin:0}.prize-picture{margin:0;background:#f5efdf;color:#39342a}.prize-picture img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:contain}.prize-picture figcaption{font-size:11px;text-align:center;padding:0 12px 10px}.prize-caption{padding-bottom:0}.prize-tag{color:var(--gold);font-size:11px;letter-spacing:.06em;font-weight:bold}.prize-caption h3{font-size:21px;margin:8px 0;line-height:1.25}.prize-caption p{font-size:15px;margin:0}.draw-tracker .draw-entry{margin:0 0 14px;font-size:16px}.draw-start{font-weight:bold;margin:0 0 14px}.stamp-steps{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:5px}.stamp-steps span{display:grid;place-items:center;aspect-ratio:1;border:1px solid #796434;border-radius:50%;font-size:12px;color:var(--muted)}.stamp-steps .filled{background:var(--gold);border-color:var(--gold);color:#252321;font-weight:bold}.draw-tracker progress{width:100%;height:7px;margin:14px 0 0;accent-color:var(--gold)}.draw-next{margin:10px 0 0;font-size:16px}.draw-demo-note{border-top:1px solid var(--line);padding:14px 20px;margin:0!important;font-size:12px}.draw-demo-note a{color:var(--gold)}@media(min-width:650px){.prize-picture img{max-height:330px}.prize-intro,.prize-caption,.draw-tracker{padding-inline:28px}.prize-draw h2{font-size:34px}.stamp-steps{max-width:480px;gap:9px}}

.stamp-number{font-size:12px;line-height:1.4;margin-top:5px}

/* Keep the collected stamp and passport cards centred in their content area. */
.stamps{margin-inline:auto}
.scan-result{max-width:420px;margin:0 auto;display:flex;flex-direction:column;align-items:center}
.scan-result .seal{flex:0 0 auto;margin:0 auto 20px}
.scan-result>p{width:100%}
.scan-result .stack{width:100%;margin:8px auto 0}


main:has(.scan-result)>.back-more{margin-bottom:8px}


/* Balance the stamp count between the search field and collection. */
#stamp-search{display:block}
.stamp-count{margin:12px 0}
.stamp-count+.stamps{margin-top:0}

.selected-cafe{margin:10px 0 0}

.cafe-suggestions{margin-top:12px}.cafe-suggestions>p{margin:0 0 6px}.cafe-suggestions ul{list-style:none;padding:0;margin:0}.cafe-suggestions li+li{margin-top:6px}.cafe-suggestions button{width:100%;text-align:left;white-space:normal}
