/* Copyright (c) 2026 Gregorey Landveld. All rights reserved. See LICENSE. */
@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--ink:#123f39;--muted:#58736f;--accent:#f1b748;--mint:#d9efe5;--line:#dbe7e2;--paper:#fff;--background:#f4f8f6;--shadow:0 12px 40px #0c3a2d14;font-family:'DM Sans',sans-serif;color:var(--ink);font-size:16px}
*{box-sizing:border-box}body{margin:0;background:var(--background)}button,input,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default;opacity:.5}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #d48712;outline-offset:4px}button{color:inherit}a{color:inherit}svg.lucide{width:20px;height:20px;stroke-width:1.8;flex-shrink:0}button svg{pointer-events:none}h1,h2,h3{font-family:'Manrope',sans-serif}h1{font-size:clamp(1.35rem,2.2vw,1.85rem);letter-spacing:-.06em;margin:.35rem 0 .6rem;font-weight:800}h2{font-size:1.15rem;letter-spacing:-.035em;margin:.4rem 0}h3{font-size:1.55rem;letter-spacing:-.045em;line-height:1.22;margin:0 0 12px}p{line-height:1.6}button{border:none} .topbar{height:88px;padding:0 36px;display:flex;align-items:center;justify-content:space-between;background:#fff;border-bottom:1px solid var(--line);gap:20px}.brand{display:flex;align-items:center;gap:11px;text-decoration:none;font-weight:800;font-family:'Manrope';font-size:1.2rem;letter-spacing:-.04em}.brand-mark{background:var(--ink);color:var(--accent);width:42px;height:46px;border-radius:12px 12px 18px 18px;display:grid;place-items:center;font-size:1.65rem;transform:rotate(-5deg)}.brand-light{font-weight:500}.brand small{display:block;font-size:.62rem;letter-spacing:.19em;font-weight:600;margin-top:4px}nav{display:flex;gap:9px}.nav{display:flex;align-items:center;gap:8px;background:transparent;padding:12px 16px;border-radius:30px;font-size:.88rem;font-weight:600;color:var(--muted)}.nav.active{background:#e9f3ee;color:var(--ink)}.score-pill{display:flex;align-items:center;gap:7px;background:#fff5d9;padding:11px 17px;border-radius:30px;white-space:nowrap}.score-pill svg{color:#ad781e}.score-pill span{font-size:.8rem}.score-pill strong{font-size:1.15rem}main{display:grid;grid-template-columns:minmax(0,1fr) 376px;max-width:1700px;margin:auto;min-height:calc(100dvh - 132px)}.map-section{position:relative;min-height:720px;overflow:hidden;background:#eaf2ef}.map-top{position:absolute;z-index:500;left:25px;right:25px;top:24px;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;pointer-events:none}.map-top>div{background:#ffffffec;border:1px solid #ffffff;padding:18px 22px;border-radius:18px;box-shadow:0 5px 25px #17403309;backdrop-filter:blur(8px)}.map-top button{pointer-events:auto}.eyebrow{font-size:.65rem;font-weight:800;letter-spacing:.17em;color:#668078}.map-sub{display:flex;gap:12px;flex-wrap:wrap;color:var(--muted);font-size:.75rem}.map-sub span{display:flex;gap:5px;align-items:center}.map-sub svg{width:14px;height:14px}#map{position:absolute;inset:0;background:#e9f2ed;z-index:1}.leaflet-container{font-family:'DM Sans',sans-serif}.leaflet-control-attribution{font-size:10px!important;max-width:90%;background:#ffffffe0!important}.leaflet-control-attribution a{color:#315e52!important}.leaflet-tooltip{border:none!important;box-shadow:0 3px 18px #133f3920!important;background:#fff!important;color:var(--ink)!important;font-family:inherit;padding:8px 12px!important;border-radius:10px!important;font-size:13px!important;white-space:normal!important;max-width:200px}.map-actions{position:absolute;z-index:500;right:22px;top:185px;display:grid;gap:8px}.round{display:grid;place-items:center;width:43px;height:43px;background:#fff;border:1px solid #dce7e2;border-radius:13px;box-shadow:0 3px 12px #16453408}.round:hover{background:#e8f3ed}.round.small{width:34px;height:34px;box-shadow:none}.map-bottom{position:absolute;bottom:27px;left:24px;right:24px;z-index:500;display:flex;align-items:center;justify-content:space-between;pointer-events:none}.map-legend{display:flex;align-items:center;gap:8px;background:#fffffff0;border-radius:24px;padding:11px 15px;font-size:.69rem;box-shadow:var(--shadow)}.legend-line{width:19px;border-top:3px dashed #318575}.legend-dot{width:8px;height:8px;border-radius:50%;background:var(--accent);margin-left:8px}.north{display:grid;place-items:center;width:35px;height:35px;background:#fff;border-radius:50%;font-size:.8rem;font-weight:800}.journey{background:#fff;border-left:1px solid var(--line);padding:28px 25px;position:relative;z-index:600}.journey-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.progress-number{display:flex;align-items:baseline;gap:3px;font-size:.75rem;color:var(--muted);white-space:nowrap}.progress-number b{font-size:1.6rem;color:var(--ink)}.progress-track{height:5px;background:#e7eee9;border-radius:5px;margin:19px 0 24px;overflow:hidden}#progress-fill{background:#2d8b6c;height:100%;width:0;transition:width .4s}.mission-art{height:157px;background:linear-gradient(135deg,#eef7ef,#dceee4);position:relative;border-radius:15px;overflow:hidden;margin-bottom:20px}.mission-art:after{content:'';position:absolute;left:13%;right:13%;bottom:24px;height:16px;background:#244e3620;filter:blur(10px);border-radius:50%}.mission-art .token{width:150px;height:150px;position:absolute;left:50%;top:1px;transform:translateX(-50%);z-index:1}.mission-art .number{position:absolute;left:16px;top:15px;background:white;color:var(--ink);font-size:.8rem;font-weight:700;padding:7px 10px;border-radius:20px}.mission-art .type-label{position:absolute;right:14px;bottom:13px;color:#476b5e;font-size:.68rem;text-transform:uppercase;letter-spacing:.1em}.token{display:block;background-image:url('assets/monument-figures-16.png');background-size:800% 200%;background-repeat:no-repeat;filter:drop-shadow(2px 5px 2px #133e3629)}.token.statue{background-position:0 0}.token.bust{background-position:14.286% 0}.token.plaque{background-position:28.571% 0}.token.tree{background-position:0 100%}.token.abstract{background-position:57.143% 0}.token.memorial,.token.gateway{background-position:42.857% 0}.token.group{background-position:71.429% 0}.token.building{background-position:14.286% 100%}.token.religious{background-position:28.571% 100%}.token.grave{background-position:42.857% 100%}.token.fort{background-position:57.143% 100%}.token.palace{background-position:71.429% 100%;scale:1.45;transform-origin:50% 100%}.token.stenentrap{background-position:85.714% 0;scale:1.15;transform-origin:50% 100%}.token.kreek{background-position:85.714% 100%;scale:1.15;transform-origin:50% 100%}.token.waag{background-position:100% 0;scale:1.15;transform-origin:50% 100%}.token.hof{background-position:100% 100%;scale:1.15;transform-origin:50% 100%}.mission-meta{display:flex;align-items:center;gap:8px;font-size:.73rem;color:var(--muted);margin:12px 0}.mission-meta svg{width:15px;height:15px}.tag{display:inline-flex;align-items:center;gap:6px;font-size:.7rem;font-weight:700;padding:6px 9px;border-radius:7px;background:#edf4ee}.tag.gold{background:#fff2cb;color:#946111}.muted{color:var(--muted)}.small-text{font-size:.78rem;line-height:1.55}.mission-prompt{font-size:.94rem;line-height:1.6;margin:13px 0 18px}.primary,.secondary{display:flex;align-items:center;justify-content:center;gap:8px;border-radius:11px;padding:13px 16px;font-weight:700;font-size:.88rem;min-height:47px;width:100%}.primary{background:var(--ink);color:#fff}.primary:hover{background:#226154}.secondary{background:#f2f6f3;color:var(--ink);border:1px solid var(--line);margin-top:9px}.primary.gold{background:var(--accent);color:#3c361d}.text-button{background:transparent;padding:10px 0;color:var(--muted);font-size:.78rem;text-decoration:underline;text-underline-offset:3px}.split{display:flex;justify-content:space-between;align-items:center;gap:12px}.journey-foot{display:flex;align-items:center;gap:9px;border-top:1px solid var(--line);margin-top:24px;padding-top:17px;color:var(--muted);font-size:.7rem;line-height:1.5}.journey-foot svg{width:17px}.object-marker{border:0!important;background:none!important}.marker-button{background:transparent;position:relative;width:58px;height:65px;padding:0;display:block;filter:drop-shadow(1px 2px 2px #1942371a)}.marker-button .token{position:absolute;inset:0;width:58px;height:58px}.marker-button .seq{position:absolute;bottom:0;left:50%;transform:translateX(-50%);min-width:22px;height:22px;display:grid;place-items:center;border-radius:50%;background:#fff;border:2px solid #477766;color:#254d41;font-size:10px;font-weight:800;padding:0 3px;box-shadow:0 2px 3px #153d291a}.marker-button.current .seq{background:var(--accent);border-color:#fff;color:#503b11}.marker-button.done .seq{background:#237258;color:#fff;border-color:#fff}.marker-button.current:before{content:'';position:absolute;left:6px;top:11px;width:46px;height:40px;border-radius:50%;background:#f8ca6466;border:2px solid #e9b446;animation:breathe 2.6s ease-in-out infinite}.marker-button:focus-visible{outline:3px solid #de8b18;border-radius:10px}.map-label{background:transparent!important;border:0!important;font-size:10px;letter-spacing:.05em;font-weight:600;color:#66877a;text-align:center;pointer-events:none;text-shadow:0 1px #fff,1px 0 #fff,-1px 0 #fff;white-space:nowrap}.map-label.major{font-size:12px;text-transform:uppercase;letter-spacing:.17em;color:#466d5c}.footprint{background:transparent!important;border:0!important;pointer-events:none}.footprint span{display:block;width:15px;height:18px;color:#2c7b68;opacity:.75}.footprint svg{width:15px;height:18px;fill:none;stroke-width:2.4}.footprint.active span{color:#ca8b1b;opacity:1}.mode-banner{position:absolute;z-index:501;bottom:80px;left:24px;right:80px;background:#fff4d5;color:#785619;padding:9px 14px;border-radius:10px;font-size:.77rem;box-shadow:var(--shadow)}footer{min-height:44px;display:flex;align-items:center;justify-content:space-between;padding:10px 30px;gap:12px;font-size:.65rem;color:#5b7770;background:#fff;border-top:1px solid var(--line)}footer button{background:none;font-size:inherit;text-decoration:underline;color:inherit}dialog{border:0;border-radius:22px;width:min(600px,calc(100% - 28px));max-height:88dvh;padding:25px;box-shadow:0 30px 100px #05271c40;color:var(--ink)}dialog::backdrop{background:#082b2380;backdrop-filter:blur(4px)}.modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.modal-head+.modal-body{overflow:auto}dialog h2{font-size:1.55rem}dialog p{font-size:.95rem}dialog .cover{width:100%;max-height:260px;object-fit:cover;border-radius:14px;margin:10px 0}.route-row{display:flex;align-items:center;gap:12px;width:100%;background:#fff;border-bottom:1px solid var(--line);padding:13px 0;text-align:left}.route-row .route-n{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-size:.75rem;background:#eaf3ed;flex-shrink:0}.route-row .route-name{flex:1;font-weight:600;font-size:.86rem}.route-row small{display:block;font-size:.72rem;font-weight:400;color:var(--muted);margin-top:3px}.route-row.done .route-n{background:var(--ink);color:white}.route-chapter{padding:22px 0 5px;font-size:.75rem;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}.option{background:#f7faf8;border:1px solid #dce7df;border-radius:10px;display:flex;align-items:center;gap:10px;padding:13px 12px;margin:9px 0;width:100%;font-size:.88rem;text-align:left}.option:hover{border-color:#50836d;background:#edf6ef}.option .letter{font-size:.73rem;font-weight:800;border:1px solid #d0ded5;border-radius:6px;padding:3px 6px}.option.wrong{border-color:#c88a72;background:#fff0e9}.option.correct{border-color:#37805f;background:#e4f4e9}.feedback{border-radius:12px;background:#e9f5ec;padding:15px;margin:16px 0;font-size:.86rem;line-height:1.6}.feedback.error{background:#fff0e6;color:#80553e}.gps-note{background:#f0f5f2;padding:12px;border-radius:10px;font-size:.76rem;line-height:1.55;margin:12px 0}.photo-input{display:block;width:100%;font-size:.8rem;margin:15px 0}.photo-preview{width:100%;max-height:220px;object-fit:cover;border-radius:12px}.field-label{display:block;font-size:.78rem;font-weight:600;margin:14px 0 6px}input[type=text],textarea{width:100%;padding:12px;border:1px solid #ccdcd2;border-radius:9px;color:var(--ink);background:#fff;font-size:1rem}textarea{min-height:90px;resize:vertical}.bonus-card{margin-top:20px;background:#fffae9;border:1px solid #f0dfad;border-radius:14px;padding:16px}.bonus-card h3{font-size:1rem;margin:8px 0}.bonus-card p{font-size:.8rem;margin:8px 0}.bonus-card button{font-size:.8rem}.passport-stats{display:grid;grid-template-columns:1fr 1fr;gap:12px}.passport-stat{background:#eef6f0;border-radius:13px;padding:18px}.passport-stat strong{display:block;font-size:2rem}.passport-stat span{font-size:.75rem;color:var(--muted)}.stamp-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:20px 0}.stamp{border:2px dashed #d2dfd7;padding:15px 5px;text-align:center;border-radius:50%;aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#849d90;gap:5px;font-size:.65rem}.stamp.earned{border-color:#2b755b;background:#e6f4e9;color:#245c47;transform:rotate(-4deg)}.stamp svg{width:25px;height:25px}.passport-photo{width:90px;height:90px;object-fit:cover;border-radius:10px}.photo-album{display:flex;flex-wrap:wrap;gap:10px}.status-note{background:#fff6e0;padding:11px 13px;border-radius:10px;font-size:.8rem;line-height:1.55}.paid-note{background:#fdeede}.paid-note svg{width:15px;height:15px;vertical-align:-2px}.achievement{text-align:center;padding:18px 0}.achievement .big-icon{display:grid;place-items:center;width:80px;height:80px;border-radius:50%;background:#fff2c4;margin:0 auto 20px}.achievement .big-icon svg{width:38px;height:38px}.points-gained{font-size:2rem;font-weight:800;color:#26644a;margin:8px 0}.player-dot{width:20px;height:20px;border:4px solid white;background:#177e90;border-radius:50%;box-shadow:0 0 0 8px #1992a126,0 2px 8px #244c4d30}.photo-credit{font-size:.65rem!important;color:var(--muted)}#toast{position:fixed;z-index:2000;left:50%;bottom:25px;transform:translate(-50%,15px);background:#103b32;color:white;border-radius:14px;padding:14px 22px;font-size:.85rem;box-shadow:var(--shadow);opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;max-width:calc(100% - 36px);text-align:center}#toast.visible{opacity:1;transform:translate(-50%,0)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}[hidden]{display:none!important}@keyframes breathe{50%{transform:scale(1.15);opacity:.55}}@media(prefers-reduced-motion:reduce){*,*:before{animation:none!important;transition:none!important}}@media(min-width:1500px){main{grid-template-columns:minmax(0,1fr) 420px}.journey{padding:32px}}@media(max-width:1000px){.topbar{padding:0 20px}main{grid-template-columns:minmax(0,1fr) 340px}.journey{padding:22px 20px}.nav{padding:10px}.map-top{left:17px;right:17px}.map-top>div{padding:14px}.map-sub{gap:7px}.map-sub span:last-child{display:none}}@media(max-width:760px){.topbar{height:73px;padding:0 15px;gap:8px}.brand{font-size:1rem;gap:8px}.brand-mark{width:33px;height:38px;font-size:1.3rem}.brand small{font-size:.5rem}nav{gap:2px}.nav{padding:9px;background:none}.nav span{display:none}.score-pill{padding:8px 10px;gap:4px}.score-pill span{display:none}.score-pill svg{width:16px}.score-pill strong{font-size:.95rem}main{display:block}.map-section{height:57dvh;min-height:430px}.map-top{top:14px;left:13px;right:13px}.map-top>div{padding:12px 14px;border-radius:13px}h1{font-size:1.3rem;margin:3px 0 7px}.eyebrow{font-size:.58rem}.map-sub{font-size:.65rem}.map-actions{right:13px;top:145px;gap:6px}.round{width:38px;height:38px;border-radius:11px}.map-bottom{bottom:20px;left:13px;right:13px}.map-legend{font-size:.58rem;gap:6px;padding:9px 11px}.north{font-size:.7rem}.mode-banner{bottom:65px;left:13px;right:60px;font-size:.7rem}.journey{padding:22px;border:0;border-radius:24px 24px 0 0;margin-top:-13px;box-shadow:0 -7px 24px #123f3912}.journey-top h2{font-size:1rem}.progress-track{margin:14px 0 21px}.mission-art{height:125px;margin-bottom:18px}.mission-art .token{width:120px;height:120px}.journey-foot{margin-top:20px}footer{padding:15px 20px;flex-wrap:wrap;justify-content:center;font-size:.65rem}footer>span:first-child{display:none}dialog{padding:20px}.map-label{font-size:9px}.map-label.major{font-size:10px}.marker-button{transform:scale(.91)}.progress-number b{font-size:1.3rem}}@media(min-width:761px) and (max-height:850px){.map-section{min-height:670px}.mission-art{height:133px}.mission-art .token{width:133px;height:133px}.journey{padding-top:22px}.progress-track{margin:14px 0 18px}}

.real-photo{margin:0 0 20px}.real-photo .cover{max-height:320px;object-fit:contain;background:#edf3ef;display:block}.real-photo figcaption{line-height:1.6}.photo-unavailable{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;background:#edf3ef;padding:25px 20px;border-radius:14px;margin-bottom:20px}.photo-unavailable p{font-size:.85rem;margin:0}.photo-unavailable a{font-size:.8rem}.photo-unavailable svg{width:32px;height:32px;color:#729080}

/* Start anywhere, errands at local places, pause and skip */
input[type="number"]{width:100%;padding:12px;border:1px solid #ccdcd2;border-radius:9px;color:var(--ink);background:#fff;font-size:1rem}
.errand-art{height:120px;background:linear-gradient(135deg,#fff7df,#fbe9bd);position:relative;border-radius:15px;margin-bottom:20px;display:grid;place-items:center;color:#8a5d12}
.errand-art>svg.lucide{width:54px;height:54px;stroke-width:1.5}
.errand-art .type-label{position:absolute;right:14px;bottom:13px;color:#8a6a2c;font-size:.68rem;text-transform:uppercase;letter-spacing:.1em}
dialog .errand-art{height:96px}
.walk-tools{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 16px;margin-top:14px;border-top:1px solid var(--line);padding-top:6px}
.walk-tools .text-button{display:inline-flex;align-items:center;gap:6px}
.walk-tools .text-button svg{width:15px;height:15px}
.shop-marker{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#fff7df;border:2px solid #e3b24a;color:#8a5d12;padding:0;box-shadow:0 2px 5px #153d2933}
.shop-marker svg.lucide{width:17px;height:17px}
.shop-marker.current{background:var(--accent);border-color:#fff;color:#503b11;animation:breathe 2.6s ease-in-out infinite}
.shop-marker.done{background:#237258;border-color:#fff;color:#fff}
.marker-button.skipped{opacity:.55}
.marker-button.skipped .seq{background:#eef2f0;border-color:#a9bdb4;color:#6f837c}
.route-row.skipped .route-name{color:var(--muted)}
.route-row.errand .route-n{background:#fff2c4;color:#8a5d12}
.route-row.errand.done .route-n{background:var(--ink);color:#fff}
.route-row .route-n svg{width:14px;height:14px}
.route-row .tag{flex-shrink:0}
.passport-stat strong{font-size:1.7rem;overflow-wrap:anywhere}
.day-row{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--line);font-size:.86rem}
.day-row svg{width:17px;height:17px;color:var(--muted)}
.day-row .muted{margin-left:auto}
.tool-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;flex:1 1 150px;background:#fff;border:1px solid var(--line);border-radius:11px;padding:10px 12px;font-size:.8rem;font-weight:600;color:var(--ink)}
.tool-button svg.lucide{width:16px;height:16px}
.walk-tools{border-top:0;padding-top:0;gap:8px}
.choice{display:flex;align-items:center;gap:13px;width:100%;text-align:left;background:#fff;border:1px solid var(--line);border-radius:13px;padding:13px 15px;margin-top:9px}
.choice:first-of-type{background:var(--ink);color:#fff;border-color:var(--ink)}
.choice span{display:flex;flex-direction:column;gap:2px}
.choice b{font-size:.92rem}
.choice small{font-size:.74rem;opacity:.75}
.link-button{display:flex;align-items:center;justify-content:center;gap:8px;text-decoration:none}
/* Language button: the top bar has one more icon on phones */
@media (max-width:760px){.topbar{gap:6px}.nav{padding:7px}}
@media (max-width:400px){.score-pill svg.lucide{display:none}.brand{gap:6px}}
/* Account and travel group */
.group-card{border:1px solid var(--line);border-radius:14px;padding:14px 16px;margin:10px 0 18px;background:#fbfdfc}
.group-card .day-row b{font-weight:600}
.primary.danger{background:#9b2c2c;color:#fff}
#modal-body input[type="text"]+button{margin-top:10px}
/* Nearby alerts and keep-screen-on */
.alert-choice.on{border-color:#e3b24a;background:#fff9e8}
.alert-choice.on svg.lucide{color:#b07a12}
.tool-button.on{background:#fff4d5;border-color:#e3b24a}
/* Reminder dialog */
input[type="date"],input[type="time"]{width:100%;padding:11px 12px;border:1px solid #ccdcd2;border-radius:9px;color:var(--ink);background:#fff;font-size:1rem;margin-top:6px}
.remind-fields{align-items:flex-start;margin:10px 0 16px}
.remind-fields .field-label{flex:1;margin:0}
/* Street names along the streets */
.street-label{background:none!important;border:0!important;pointer-events:none}
.street-label span{position:absolute;left:0;top:0;white-space:nowrap;font-size:11px;font-weight:700;letter-spacing:.02em;color:#50695f;text-shadow:0 0 2px #fff,0 0 2px #fff,0 0 3px #fff;transform-origin:center}
.walk-left:not([hidden]){display:flex;align-items:center;gap:10px;background:#103b32;color:#fff;border-radius:16px;padding:10px 15px;box-shadow:var(--shadow);max-width:calc(100% - 50px);pointer-events:auto}.walk-left svg{color:var(--accent)}.walk-left b{display:block;font-size:1rem}.walk-left small{display:block;font-size:.7rem;opacity:.85;line-height:1.4}@media(max-width:760px){.walk-left b{font-size:.92rem}}.map-section:has(.walk-left:not([hidden])) .mode-banner{bottom:118px}@media(max-width:760px){.map-section:has(.walk-left:not([hidden])) .mode-banner{bottom:100px}}.rules{display:grid;gap:10px;margin:14px 0 18px}.rule{display:flex;gap:12px;align-items:flex-start;background:#f3f8f5;border-radius:12px;padding:11px 13px}.rule>svg.lucide{color:#2d8b6c;margin-top:3px}.rule p{margin:0;font-size:.84rem;line-height:1.55}.rules-tip{display:flex;gap:9px;align-items:flex-start;background:#eef6f8;color:#26545e;border-radius:10px;padding:10px 12px;font-size:.76rem;line-height:1.5;margin:0 0 14px}.rules-tip>svg.lucide{width:17px;height:17px;margin-top:1px}.rules-tip .text-button{padding:0;font-size:inherit;color:inherit}footer a{font-size:inherit;text-decoration:underline;color:inherit}.fb-button{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:47px;margin-top:9px;padding:13px 16px;border-radius:11px;background:#1877f2;color:#fff;font-weight:700;font-size:.88rem}.fb-button:hover{background:#166fe5}.fb-mark{width:20px;height:20px;flex-shrink:0}.offline-tip{display:flex;gap:8px;align-items:flex-start;background:#eef6f8;color:#26545e;border-radius:10px;padding:10px 12px;margin-top:10px}.offline-tip>svg.lucide{width:17px;height:17px;margin-top:1px}.intro-art>svg.lucide{width:58px;height:58px}.intro-dots{display:flex;justify-content:center;gap:7px;margin:14px 0 4px}.intro-dots span{width:8px;height:8px;border-radius:50%;background:#d3e2da}.intro-dots span.on{background:var(--ink);width:22px;border-radius:4px}.cash-tip{display:flex;gap:9px;align-items:flex-start;background:#fff7df;color:#735414;border-radius:10px;padding:10px 12px;font-size:.76rem;line-height:1.5;margin:0 0 12px}.cash-tip>svg.lucide{width:17px;height:17px;margin-top:1px}.foreign-amount{display:block;margin:6px 0 0;font-size:.75rem;color:var(--muted)}.passport-stat .foreign-amount{margin-top:4px}.fac-dot{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:#fff;border:2px solid #2f6f8a;color:#2f6f8a;box-shadow:0 2px 5px #0d2f2a33}.fac-dot svg.lucide{width:14px;height:14px;stroke-width:2.2}.fac-money{border-color:#8a6a12;color:#8a6a12}.fac-toilet{border-color:#4d5fb0;color:#4d5fb0}.fac-water{border-color:#1d86a8;color:#1d86a8}.fac-park{border-color:#2d8b4c;color:#2d8b4c}.fac-help{border-color:#b43d3d;color:#b43d3d}.fac-info{border-color:#6c4db0;color:#6c4db0}.round.on{background:var(--ink);color:#fff;border-color:var(--ink)}.fac-popup .leaflet-popup-content{font-family:inherit;font-size:13px;line-height:1.45;margin:12px 14px}.fac-popup .link-button{margin-top:8px;min-height:36px;padding:8px 12px;font-size:.78rem}
/* Sunlight mode: strong contrast and larger text for bright daylight */
.map-top-buttons{display:flex;gap:8px;pointer-events:auto}
html.sun{font-size:18px;--ink:#04201b;--muted:#1f3a35;--line:#8fa8a0;--background:#fff;--mint:#cfe9dc}
html.sun body{background:#fff}
html.sun .map-top>div{background:#fff;border:2px solid var(--ink);backdrop-filter:none}
html.sun .map-legend,html.sun .round{border:2px solid var(--ink)}
html.sun .small-text{font-size:.86rem}
html.sun .text-button{color:var(--ink);font-weight:700}
html.sun .secondary,html.sun .choice,html.sun .option,html.sun .route-row{border:2px solid var(--ink)}
html.sun .gps-note,html.sun .rules-tip,html.sun .cash-tip,html.sun .offline-tip,html.sun .feedback{border:1px solid currentColor}
html.sun .nav{color:var(--ink)}
html.sun .map-label,html.sun .street-label span{color:#0b2a24;font-weight:800}
html.sun #map .leaflet-overlay-pane{filter:contrast(1.35) saturate(1.15)}
html.sun .mission-prompt{font-size:1.02rem}
.cert-preview{margin:14px 0;border-radius:14px;overflow:hidden;background:#f3f8f5;min-height:120px;display:grid;place-items:center}.cert-preview img{display:block;width:100%;height:auto}.report-link{display:flex;align-items:center;gap:6px;margin:6px 0 0}.report-link svg.lucide{width:15px;height:15px}.report-kind.on{border-color:var(--ink);background:#e9f3ee;box-shadow:inset 0 0 0 1px var(--ink)}.report-kind:first-of-type{background:#fff;color:var(--ink);border-color:var(--line)}.report-kind.on,.report-kind.on:first-of-type{background:var(--ink);color:#fff;border-color:var(--ink);box-shadow:none}.compass-btn{flex-shrink:0;display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:#ffffff1f;color:var(--accent);border:2px solid transparent}.compass-btn.on{background:var(--accent);color:#103b32}.compass-arrow{display:grid;place-items:center;transition:transform .25s ease-out}.compass-arrow svg.lucide{width:22px;height:22px;fill:currentColor}@media(prefers-reduced-motion:reduce){.compass-arrow{transition:none}}.grecaptcha-badge{visibility:hidden}.recaptcha-note{font-size:.7rem;margin-top:10px}.recaptcha-note a{color:inherit}.partner-box{background:#fff7df;border:1px solid #f0dfad;border-radius:12px;padding:10px 12px;margin:10px 0}.partner-tag{background:#f1b748;color:#3c361d}.partner-tag svg.lucide{width:13px;height:13px}.small-tag{font-size:.62rem;padding:2px 6px;vertical-align:middle}.partner-offer{display:flex;gap:7px;align-items:flex-start;font-weight:700;color:#735414;margin:8px 0 4px;font-size:.88rem}.partner-offer svg.lucide{width:17px;height:17px;flex-shrink:0}.partner-box .small-text{margin:6px 0 0}.partner-logo{display:block;max-width:100%;max-height:140px;border-radius:10px;margin:6px 0 10px;object-fit:contain}.shop-marker.partner{box-shadow:0 0 0 3px #f1b748,0 2px 6px #0003}.pass-pill{display:flex;align-items:center;gap:6px;background:#e3f3e8;color:#1f5c4a;border:1px solid #bfe0cc;border-radius:30px;padding:8px 12px;font-size:.78rem;font-weight:700;white-space:nowrap}.pass-pill:not([hidden]){display:flex}.pass-pill svg.lucide{width:16px;height:16px}.pass-list{padding-left:18px;margin:8px 0}.choice.locked{opacity:.78}.choice.locked svg.lucide{color:#946111}@media(max-width:760px){.pass-pill span{display:none}.pass-pill{padding:8px}}
/* Pass pill on phones: ticket plus short time left; the top bar makes room while a pass shows. */
.pass-pill .pass-short{display:none}@media(max-width:760px){.pass-pill .pass-short{display:inline;font-size:.72rem}.pass-pill:not([hidden]){padding:6px 8px;gap:3px}.pass-pill svg.lucide{width:14px;height:14px}.topbar:has(.pass-pill:not([hidden])){padding:0 10px;gap:4px}.topbar:has(.pass-pill:not([hidden])) nav{gap:0}.topbar:has(.pass-pill:not([hidden])) .nav{padding:6px}.topbar:has(.pass-pill:not([hidden])) .score-pill{padding:8px 8px}}@media(max-width:400px){.topbar:has(.pass-pill:not([hidden])) .brand>span:not(.brand-mark){display:none}}
.family-name{font-family:Manrope,sans-serif;font-size:1.35rem;font-weight:800;margin:4px 0 10px;color:var(--ink)}#family-own-input{margin-top:8px}
.read-more{margin:10px 0;border:1px solid var(--line);border-radius:10px;padding:8px 12px;background:#f7faf8}.read-more summary{cursor:pointer;font-weight:700;font-size:.85rem}.read-more p{font-size:.9rem;margin:8px 0}.fact-note{background:#fff7df;border-radius:10px;padding:9px 12px;font-size:.86rem;line-height:1.5}.plaque-text{margin:8px 0;padding:8px 12px;border-left:3px solid var(--accent);font-style:italic;white-space:pre-line;font-size:.88rem}
.tour-shade{position:fixed;inset:0;z-index:3000}.tour-hole{position:fixed;z-index:3001;border-radius:14px;box-shadow:0 0 0 9999px #082b23bf,0 0 0 3px #f1b748;pointer-events:none;transition:all .25s}.tour-bubble{position:fixed;z-index:3002;background:#fff;color:var(--ink);border-radius:16px;padding:14px 16px 10px;box-shadow:0 12px 40px #05271c66;font-size:.92rem;line-height:1.5}.tour-bubble p{margin:0 0 8px}.tour-count{font-size:.68rem;font-weight:800;letter-spacing:.12em;color:#946111;text-transform:uppercase}.tour-buttons{display:flex;justify-content:space-between;align-items:center;gap:10px}.tour-buttons .primary{width:auto;min-height:40px;padding:9px 18px}@media(prefers-reduced-motion:reduce){.tour-hole{transition:none}}
