:root{color-scheme:dark;--bg:#0b1723;--surface:#11212f;--border:#283948;--text:#edf2f1;--muted:#a6b6c2;--gold:#f4ca7a;--soft:#ddd0b4}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.5 system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}button,input,textarea{font:inherit}button,a,input,textarea{outline-offset:5px}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--gold)}button{cursor:pointer}a{color:inherit}header{min-height:88px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:24px;padding:18px 4.5%}.brand{text-decoration:none;display:flex;align-items:center;gap:12px;font:25px/1.1 Georgia,serif}.brand em{font-style:normal;color:var(--gold)}.brand-icon{font-size:40px;color:var(--gold)}.demo-badge{margin-left:auto;color:var(--muted);font-size:10px;font-weight:600;letter-spacing:1.5px;display:flex;align-items:center;gap:8px}.demo-badge i,.live-dot{width:6px;height:6px;border-radius:50%;background:#cbb982;display:inline-block}.primary{background:var(--gold);border:0;border-radius:8px;padding:13px 20px;color:#18212a;font-weight:650;display:flex;align-items:center;justify-content:center;gap:25px;transition:background .2s,transform .2s}.primary:hover{background:#ffdb98;transform:translateY(-1px)}main{max-width:1680px;margin:auto;padding:0 4.5%}.intro{display:flex;align-items:center;justify-content:space-between;gap:30px;padding:46px 0 34px}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:650;color:var(--gold);margin:0 0 13px}h1{font:46px/1.12 Georgia,serif;letter-spacing:-1px;margin:0 0 16px}h1 span{color:var(--soft)}.description{color:var(--muted);font-size:14px;margin:0;line-height:1.7}.stats{display:flex;gap:40px;text-align:center;padding-right:24px}.stats strong{font:44px/1.1 Georgia,serif;display:block;color:var(--gold)}.stats span{color:var(--muted);font-size:12px}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 300px;border:1px solid var(--border);border-radius:14px;overflow:hidden;background:var(--surface)}.map-card{min-width:0}.map-top{display:flex;justify-content:space-between;gap:15px;padding:18px 22px;font-size:9px;letter-spacing:1.5px;color:var(--muted)}.map-top .live-dot{margin-right:6px}.map-top span:last-child{font-size:11px;letter-spacing:0}.map-viewport{position:relative;aspect-ratio:2/1;min-height:290px;overflow:hidden;background:#102330;touch-action:pan-y}#world-map{display:block;width:100%;height:100%;cursor:grab}#world-map.picking{cursor:crosshair}#countries path{fill:#2c4450;stroke:#64777c;stroke-opacity:.35;stroke-width:.55;vector-effect:non-scaling-stroke}#grid path{stroke:#657983;stroke-opacity:.12;fill:none;stroke-width:.5}.map-controls{position:absolute;bottom:24px;left:20px;display:flex;background:#10212e;border:1px solid #40505b;border-radius:8px;overflow:hidden}.map-controls button{color:var(--text);border:0;border-right:1px solid var(--border);background:transparent;min-width:38px;height:38px;font-size:21px}.map-controls button:hover{background:#304551}.map-credit{position:absolute;bottom:7px;right:10px;font-size:9px;color:#a3b2bc}.legend{display:flex;gap:20px;align-items:center;justify-content:space-between;padding:20px 22px}.legend .eyebrow{display:block;font-size:9px;margin-bottom:3px;letter-spacing:1.3px}.legend-note{font-size:11px;color:var(--muted)}.levels{display:flex;gap:19px}.levels>div{min-width:24px;text-align:center;font-size:10px;color:var(--muted)}.level-dot{display:block;margin:0 auto 7px;width:9px;height:9px;border-radius:100%;background:#f5c874}.l1{opacity:.45}.l2{opacity:.6;box-shadow:0 0 6px #f4ca7a66}.l3{opacity:.75;box-shadow:0 0 10px #f4ca7aaa}.l4{box-shadow:0 0 12px 3px #f4ca7a99}.l5{background:#fff4d9;box-shadow:0 0 18px 6px #f4ca7a99}.activity{border-left:1px solid var(--border);padding:24px 22px;display:flex;flex-direction:column}.activity-heading h2{font:25px/1.2 Georgia,serif;margin:0 0 10px}.activity-heading>p:last-child{color:var(--muted);font-size:12px;margin:0 0 18px}.feed{max-height:355px;overflow:auto}.feed-empty{color:var(--muted);font-size:13px;padding:25px 0;border-top:1px solid var(--border)}.note{padding:17px 0;border-top:1px solid var(--border)}.note .note-location{font-size:10px;color:var(--gold);display:block;margin-bottom:8px}.note p{font:16px/1.6 Georgia,serif;margin:0 0 10px;overflow-wrap:anywhere}.note .signature{font-size:10px;color:var(--muted)}.private-note{font-family:inherit!important;font-size:12px!important;color:var(--muted)}.text-button,.inline-button{border:0;background:transparent;color:var(--gold);padding:0;text-align:left}.text-button{font-size:12px}.activity>.text-button{margin-top:16px}.inline-button{text-decoration:underline;font-size:inherit}.section-heading{display:flex;justify-content:space-between;align-items:end;margin:34px 0 20px;gap:20px}.section-heading .eyebrow{font-size:9px;margin-bottom:8px}h2{font:26px Georgia,serif;margin:0}.section-heading>span{font-size:11px;color:var(--muted)}.places{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px}.place{border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text);text-align:left;padding:18px;display:flex;align-items:center;gap:16px;transition:border-color .2s}.place:hover,.place.selected{border-color:var(--gold)}.place strong{display:block;font-weight:500;font-size:14px}.place small{display:block;color:var(--muted);margin-top:4px;font-size:11px}.place .level-dot{flex-shrink:0;margin:0}.places-empty{border:1px dashed #394b59;color:var(--muted);border-radius:10px;padding:24px;font-size:13px;grid-column:1/-1}footer{display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--border);margin-top:36px;padding:24px 0;font-size:11px;color:var(--muted)}dialog{width:min(520px,calc(100% - 30px));max-height:calc(100dvh - 30px);border:1px solid #53616b;border-radius:16px;background:#142534;color:var(--text);padding:28px;box-shadow:0 30px 120px #0009}dialog::backdrop{background:#020b13bb;backdrop-filter:blur(5px)}.dialog-head{display:flex;align-items:center;justify-content:space-between}.dialog-head .eyebrow{margin:0}.icon-button{border:1px solid var(--border);color:var(--muted);background:transparent;border-radius:50%;width:34px;height:34px;font-size:23px}dialog h2{font-size:36px;margin:14px 0 8px}.dialog-description{color:var(--muted);font-size:13px;margin:0 0 22px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}label{display:block;font-size:12px;color:#d9e2e7;margin-top:16px}input:not([type=checkbox]),textarea{width:100%;margin-top:7px;border:1px solid #415564;border-radius:7px;background:#0d1c29;color:var(--text);padding:12px;font-size:13px}input::placeholder,textarea::placeholder{color:#91a1ae}textarea{resize:vertical}.field-help{font-size:11px;color:var(--muted);margin:8px 0 0;line-height:1.6}.message-meta{display:flex;justify-content:space-between;font-size:10px;color:var(--muted);margin-top:5px}.check-label{display:flex;align-items:center;gap:10px;line-height:1.5}.check-label input{width:17px;height:17px;accent-color:var(--gold);flex-shrink:0}.demo-info{font-size:11px;color:var(--muted);padding:14px 0;margin-top:16px;border-top:1px solid var(--border);display:flex;gap:10px}.demo-info span{color:var(--gold)}.full-width{width:100%;font-size:13px;margin-top:5px;gap:15px}#form-error{color:#ffb8ad;font-size:12px}#map-error{position:absolute;left:20px;top:20px;max-width:280px;background:#11212f;padding:15px;color:#ffb8ad;font-size:12px}.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);max-width:calc(100% - 30px);width:max-content;background:#f4ca7a;color:#18212a;padding:14px 24px;border-radius:10px;font-size:13px;box-shadow:0 10px 60px #0008;z-index:10}.marker{cursor:pointer}.marker:focus{outline:none}.marker:focus-visible .marker-hit{stroke:#fff;stroke-width:2}.marker text{font-size:9px;fill:#e6d4af;paint-order:stroke;stroke:#10212e;stroke-width:3px;stroke-linejoin:round}.marker .burst{animation:burst 1.5s ease-out forwards;transform-box:fill-box;transform-origin:center}@keyframes burst{from{opacity:.9;transform:scale(.2)}to{opacity:0;transform:scale(3)}}#place-detail{padding:12px 0 20px;color:var(--gold);font-size:12px}[hidden]{display:none!important}@media(min-width:1500px){h1{font-size:54px}.workspace{grid-template-columns:minmax(0,1fr) 330px}}@media(max-width:1000px){.workspace{grid-template-columns:minmax(0,1fr) 255px}.stats{gap:20px;padding:0}.stats strong{font-size:36px}.legend{flex-direction:column;align-items:start;gap:16px}.levels{gap:30px}.map-top span:last-child{display:none}h1{font-size:39px}}@media(max-width:720px){header{gap:12px;min-height:74px;padding:14px 5%}.brand{font-size:18px;gap:7px}.brand-icon{font-size:29px}.demo-badge{display:none}header>.primary{margin-left:auto;padding:10px 12px;font-size:12px;gap:8px}main{padding:0 5%}.intro{padding:30px 0 24px;display:block}h1{font-size:37px}.intro .eyebrow{font-size:8px;letter-spacing:1.5px}.description{font-size:13px}.stats{justify-content:start;gap:30px;text-align:left;margin-top:24px}.stats>div{display:flex;align-items:center;gap:10px}.stats strong{font-size:29px}.stats span{font-size:10px;max-width:70px}.workspace{grid-template-columns:1fr}.activity{border-left:0;border-top:1px solid var(--border);padding:22px}.activity-heading h2{font-size:25px}.feed{max-height:260px}.map-viewport{min-height:270px;aspect-ratio:1.45/1}.map-top{padding:15px 16px}.legend{padding:18px}.legend>div:first-child{display:flex;flex-direction:column}.legend-note{font-size:10px}.levels{width:100%;justify-content:space-between;gap:10px}.section-heading{align-items:start;flex-direction:column;gap:10px}.section-heading h2{font-size:25px}.places{grid-template-columns:1fr 1fr}.place{padding:14px;gap:12px}.place strong{font-size:12px}.place small{font-size:10px}footer{flex-direction:column;gap:6px}dialog{padding:22px}.form-row{grid-template-columns:1fr;gap:0}.full-width{font-size:12px}.desktop-only{display:none}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}

/* Map-led layout, based on the Word document's desktop reference. */
@font-face{font-family:Kaushan Script;src:url('assets/KaushanScript-Regular.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
header{min-height:72px;padding:12px 2.5%}.brand{font-family:'Kaushan Script',cursive;font-size:29px;white-space:nowrap}.brand em{color:var(--text)}main{max-width:1900px;padding:0 2.5%}.intro{padding:20px 0 18px;gap:24px}.intro .eyebrow{font-size:8px;letter-spacing:1.4px;margin-bottom:6px}h1{font-family:'Times New Roman',Times,serif;font-size:27px;line-height:1.12;margin-bottom:8px;letter-spacing:-.3px}h1 br{display:none}h1 span{margin-left:7px}.description{font-size:12px;line-height:1.5}.description br{display:none}.stats{padding:0}.stats strong{font-size:28px}.stats span{font-size:10px}.workspace{grid-template-columns:minmax(0,1fr) 230px}.map-viewport{min-height:380px;aspect-ratio:2/1}.map-top{padding:12px 18px}.legend{padding:14px 18px}.activity{padding:18px 16px}.activity-heading h2{font-family:'Times New Roman',Times,serif;font-size:20px}.activity-heading .eyebrow{font-size:8px}.activity-heading>p:last-child{font-size:11px}.note p{font-family:'Times New Roman',Times,serif;font-size:14px;line-height:1.5}.note{padding:13px 0}.feed{max-height:460px}footer{margin-top:16px;padding:16px 0}
@media(max-width:1000px){.workspace{grid-template-columns:minmax(0,1fr) 210px}.intro{padding:18px 0}h1{font-size:23px}.map-viewport{min-height:340px}.legend{flex-direction:row}.levels{gap:14px}}
@media(max-width:720px){header{padding:12px 4%;gap:12px}.brand{font-size:23px}header>.primary{font-size:11px;gap:6px;padding:10px}main{padding:0 3%}.intro{display:flex;align-items:center;padding:16px 0;gap:14px}.intro .eyebrow{font-size:7px;letter-spacing:1px}h1{font-size:21px}h1 span{display:block;margin-left:0}.description{font-size:11px}.stats{margin-top:0;flex-shrink:0}.stats>div{display:block;text-align:center}.stats strong{font-size:25px}.stats span{display:block;max-width:55px;font-size:9px}.workspace{grid-template-columns:1fr}.map-viewport{min-height:330px;aspect-ratio:1.3/1}.activity{border-left:0;border-top:1px solid var(--border)}.legend{flex-direction:column;align-items:stretch;gap:14px}.levels{gap:10px}.feed{max-height:230px}.activity-heading h2{font-size:20px}}
@media(max-width:390px){.brand{font-size:20px}.intro .eyebrow{display:none}h1{font-size:19px}}
#world-map{position:absolute;inset:0}.feed{max-height:clamp(220px,30vw,400px)}
@media(max-width:720px){.feed{max-height:230px}}
.map-viewport{width:100%}

/* Reference navigation and blue satellite imagery. */
header{gap:20px;flex-wrap:wrap}.main-nav{display:flex;gap:22px;align-items:center;margin-left:auto}.main-nav a{font-size:12px;text-decoration:none;color:#c1d9e8;white-space:nowrap}.main-nav a:hover{color:#fff}.main-nav a:focus-visible{outline:2px solid var(--gold)}.demo-badge{margin-left:0}.brand{font-size:27px}
#satellite-map{position:absolute;inset:0;background:#143f66;z-index:1}#satellite-map.picking,.picking .leaflet-grab{cursor:crosshair}.leaflet-tile-pane{filter:saturate(1.25) brightness(.85) hue-rotate(8deg)}.leaflet-tile-pane::after{content:'';position:absolute;inset:-10000px;background:#075bbb24;mix-blend-mode:screen;pointer-events:none}.leaflet-control-attribution{background:#081827dc!important;color:#c1d4e2!important;font-size:9px!important}.leaflet-control-attribution a{color:#b6d8ee!important}.map-controls{z-index:600;bottom:30px}#map-error{z-index:500}.leaflet-container{font-family:inherit}.gratitude-map-icon{background:none;border:0}.satellite-light-wrap{position:relative;width:32px;height:32px}.satellite-light{position:relative;display:block;width:32px;height:32px;background:none;border:0;padding:0;color:#f8dfac}.satellite-dot{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);border-radius:50%;background:#ffd38a;pointer-events:none}.brightness-1 .satellite-dot{width:5px;height:5px;opacity:.65;box-shadow:0 0 8px 3px #ffc46a66}.brightness-2 .satellite-dot{width:7px;height:7px;opacity:.75;box-shadow:0 0 12px 5px #ffc46a88}.brightness-3 .satellite-dot{width:9px;height:9px;opacity:.85;box-shadow:0 0 16px 7px #ffc46a99}.brightness-4 .satellite-dot{width:11px;height:11px;box-shadow:0 0 20px 9px #ffc46abb}.brightness-5 .satellite-dot{width:13px;height:13px;background:#fff5d5;box-shadow:0 0 8px 3px #fff2bda0,0 0 28px 12px #ffc46acc}.satellite-label{position:absolute;bottom:33px;left:50%;transform:translateX(-50%);font-size:10px;white-space:nowrap;text-shadow:0 1px 3px #000,0 0 5px #000;pointer-events:none}.satellite-light.selected-light{border:1px solid #ffe7b5;border-radius:50%}.new-light .satellite-dot{animation:satellite-burst 1s ease-out}@keyframes satellite-burst{from{transform:translate(-50%,-50%) scale(.3)}to{transform:translate(-50%,-50%) scale(1)}}.panel-copy{font-size:14px;line-height:1.7;color:#c1d4e2}#info-dialog{width:min(640px,calc(100% - 30px))}#info-content{margin-top:22px}
@media(max-width:1100px){header{gap:14px}.brand{font-size:24px}.main-nav{gap:16px}.main-nav a{font-size:11px}.demo-badge{display:none}}
@media(max-width:720px){header{gap:10px}.brand{font-size:23px}.main-nav{order:3;width:100%;margin:5px 0 0;padding:10px 0 2px;border-top:1px solid var(--border);justify-content:space-between;gap:9px}.main-nav a{font-size:11px}header>.primary{margin-left:auto}.leaflet-control-attribution{max-width:240px;font-size:8px!important}}

.intro-video{display:block;width:100%;max-height:65dvh;border-radius:10px;background:#000}.video-link{display:inline-block;margin-top:12px;font-size:12px;color:var(--gold)}#info-dialog:has(video){width:min(1000px,calc(100% - 30px))}

/* Enlarged wordmark across desktop and mobile layouts. */
.brand{font-size:40.5px}
@media(max-width:1100px){.brand{font-size:36px}}
@media(max-width:720px){.brand{font-size:34.5px}}
@media(max-width:390px){.brand{font-size:30px}}
.description{max-width:850px}

/* Keep navigation centered in the page with balanced side columns. */
header{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)}
header .brand{justify-self:start}
.main-nav{margin:0;justify-content:center}
.header-actions{justify-self:end;display:flex;align-items:center;gap:20px}
@media(max-width:1200px){header{grid-template-columns:minmax(0,1fr) auto}.header-actions{grid-column:2;grid-row:1}.main-nav{grid-column:1/-1;grid-row:2;width:100%;justify-content:center;margin:4px 0 0}}
@media(max-width:720px){.header-actions{gap:0}.header-actions>.primary{font-size:11px;gap:6px;padding:10px}.main-nav{gap:clamp(9px,3vw,22px)}}

.main-nav{gap:28px}
@media(max-width:1100px){.main-nav{gap:22px}}
@media(max-width:720px){.main-nav{gap:clamp(12px,3.5vw,26px)}}

/* A warmer, brighter home for messages of love. */
:root{color-scheme:light;--bg:#fffaf0;--surface:#f1f8fc;--border:#cddfe8;--text:#193c53;--muted:#526c7c;--gold:#f4c66b;--soft:#26769b}
body{background:linear-gradient(180deg,#fffaf0,#f6fbfd)}
header{background:#fffdf8}.brand{color:#206286}.brand em{color:#206286}
.main-nav a{color:#315e78}.main-nav a:hover{color:#173f59}.eyebrow{color:#80601f}
h1 span{color:#26769b}.stats strong{color:#966619}
.primary{background:#f5cc77;color:#243e4c;box-shadow:0 3px 12px #d7aa4930}.primary:hover{background:#ffda8c}.primary span{font-size:20px}
.workspace{box-shadow:0 12px 36px #315b7310}.map-top,.legend{background:#edf6fb}.activity{background:#fffcf5;padding:24px 20px}
.note{padding:20px 16px;margin:12px 0;border:1px solid #e5e0d4;border-radius:12px;background:#fffefa;box-shadow:0 3px 12px #876c3210}.note p{font-size:15px;line-height:1.7;margin-bottom:0}.note .note-location{color:#346b87;margin-bottom:12px}.activity-heading>p:last-child{line-height:1.6}
.text-button,.inline-button,.video-link{color:#246b8c}#place-detail{color:#80601f}.panel-copy{color:var(--text)}
dialog{background:#fffdf8;border-color:var(--border);box-shadow:0 24px 100px #163e5540}dialog::backdrop{background:#173a5866}label{color:var(--text)}input:not([type=checkbox]),textarea{background:#f6fbfd;border-color:#b6cedb;color:var(--text)}input::placeholder,textarea::placeholder{color:#657d8b}#form-error{color:#a33628}.demo-info span{color:#80601f}
.map-controls{background:#fffdf3;border-color:#9fbdcf}.map-controls button{color:#214f6e}.map-controls button:hover{background:#dceef8}
.leaflet-tile-pane{filter:saturate(1.25) brightness(1.12) hue-rotate(8deg)}.leaflet-tile-pane::after{background:#168be72b}
#satellite-map,.map-viewport{background:#226c9b}#countries path{fill:#7da7b1;stroke:#d4e6e8;stroke-opacity:.55}#grid path{stroke:#b9ddf0;stroke-opacity:.2}
.level-dot{background:#c88c27}.l5{background:#ffe7a3}.satellite-dot{background:#ffda7c}.brightness-1 .satellite-dot{opacity:.85}.brightness-2 .satellite-dot{opacity:.9}.satellite-label{color:#fff4d0}
.new-light::after{content:'';position:absolute;inset:0;border:2px solid #ffe3a0;border-radius:50%;pointer-events:none;animation:love-ripple 1.8s ease-out forwards}.new-light .satellite-dot{animation:satellite-burst 1.5s ease-out}
@keyframes love-ripple{from{transform:scale(.3);opacity:.9}to{transform:scale(2.8);opacity:0}}
@media(max-width:720px){.activity{padding:22px 18px}.note{padding:18px 16px}.header-actions>.primary{gap:7px}}
@media(prefers-reduced-motion:reduce){.new-light::after{display:none}}

/* Softer blue palette with less glare. */
:root{--bg:#dce9f1;--surface:#d7e6f0;--border:#b1c9d9;--text:#203f56;--muted:#4c687c;--soft:#26668a}
body{background:linear-gradient(180deg,#d8e6f0,#c8dce9)}
header{background:#d0e2ee}.brand,.brand em{color:#235b7e}
.workspace{background:#d5e5f0;box-shadow:0 12px 36px #244b6820}.map-top,.legend{background:#c8deed}
.activity{background:#d9e8f2}.note{background:#e4eef5;border-color:#b8d0e0;box-shadow:0 3px 12px #355a7410}
dialog{background:#dceaf3}input:not([type=checkbox]),textarea{background:#e8f1f7;border-color:#abc6d8}
.primary{background:#e7bf72;box-shadow:0 3px 12px #49647718}.primary:hover{background:#efcc8a}
.map-controls{background:#dcebf4;border-color:#8eb0c8}.map-controls button:hover{background:#bfd9ea}
.leaflet-tile-pane{filter:saturate(1.2) brightness(1.02) hue-rotate(8deg)}

/* Deep blue opening band, with the wordmark as its warm focal point. */
body{background:linear-gradient(180deg,#173c58 0,#214e6c 238px,#c8dce9 238px,#c8dce9 100%)}
header{background:#173c58;border-bottom:1px solid #416680}
.brand,.brand em{color:#ffdf9b}.brand{text-shadow:0 2px 2px #071d3266,0 0 22px #ffd78230;letter-spacing:.3px}
.main-nav a{color:#e0edf6}.main-nav a:hover{color:#ffdf9b}.demo-badge{color:#c2d9e8}
.intro{background:linear-gradient(110deg,#173c58,#214e6c);position:relative;color:#eff6fb}
.intro::before{content:'';position:absolute;inset:0 calc(-2.5vw / .95);background:inherit;z-index:-1}
.intro h1,.intro h1 span{color:#f0f6fa}.intro .description{color:#d5e5f0}.intro .eyebrow{color:#f2d293}.intro .stats strong{color:#ffdf9b}.intro .stats span{color:#d5e5f0}
main{isolation:isolate}.workspace{margin-top:16px}footer{color:#395c74}
@media(max-width:720px){.intro::before{inset:0 calc(-3vw / .94)}}

body{background:linear-gradient(180deg,#d8e6f0,#c8dce9)}
.intro{background:#214b68;box-shadow:0 0 0 100vmax #214b68;clip-path:inset(0 -100vmax)}
.intro::before{display:none}

.intro h1{font-size:24px}
@media(max-width:1000px){.intro h1{font-size:21px}}
@media(max-width:720px){.intro h1{font-size:19px}}

.intro-love-button{display:inline-flex;vertical-align:middle;margin:4px 5px;font-size:12px;gap:12px;padding:10px 15px}

.intro-love-button{font-size:10px;padding:3px 7px;gap:5px;margin:0 3px;border-radius:5px;line-height:1.4;box-shadow:none}.intro-love-button span{font-size:12px}

/* Give the featured map more room while retaining a narrow page edge. */
main{max-width:none;padding-left:12px;padding-right:12px}
@media(max-width:720px){main{padding-left:8px;padding-right:8px}}

/* Give the wordmark more presence in the opening band. */
header{padding-top:18px;padding-bottom:18px}
.brand{font-size:48.6px;color:#ffe5a6;text-shadow:0 2px 3px #061c3480,0 0 18px #ffd78226}
.brand em{color:#ffe5a6}
@media(max-width:1100px){.brand{font-size:43.2px}}
@media(max-width:720px){header{padding-top:16px;padding-bottom:16px}.brand{font-size:41.4px}}
@media(max-width:540px){header{grid-template-columns:1fr}.header-actions{grid-column:1;grid-row:2;justify-self:end}.main-nav{grid-row:3}.brand{font-size:36px}}

#composer fieldset{border:0;padding:0;margin:0;min-width:0}.compose-progress{font-size:10px;letter-spacing:1.4px;color:#496b83;margin:22px 0 8px}#composer h2{margin-top:8px}.delivery-options{margin:24px 0!important}.delivery-options legend{font-size:12px;color:var(--text);margin-bottom:10px}.delivery-options label{display:flex;align-items:center;gap:12px;padding:14px 16px;margin:8px 0;border:1px solid #abc6d8;border-radius:10px;background:#e8f1f7;cursor:pointer}.delivery-options label:has(input:checked){border-color:#527d9a;background:#c7dfef;box-shadow:inset 3px 0 #c18e36}.delivery-options input{accent-color:#2b6489}.delivery-options span{font-size:14px;font-weight:600}.delivery-options small{display:block;font-size:11px;font-weight:400;color:var(--muted);margin-top:3px}.compose-back{display:block;margin:18px auto 0}#composer{width:min(560px,calc(100% - 30px))}

.delivery-options input[type=radio]{width:18px;height:18px;margin:0;padding:0;flex:0 0 18px}

.place-search-button{margin-top:10px;border:1px solid #739ab5;border-radius:7px;background:#c4deef;color:#244f6b;padding:9px 14px;font-size:12px}.search-results{display:grid;gap:7px;margin-top:10px}.search-result{text-align:left;border:1px solid #abc6d8;border-radius:7px;background:#e8f1f7;color:var(--text);padding:11px;font-size:12px}.search-result:hover{background:#c7dfef}

.satellite-light.selected-light{border:0}.new-light::after{display:none}

/* Satellite colors inspired by the supplied ocean-blue reference. */
.leaflet-tile-pane{filter:saturate(1.65) brightness(.76) contrast(1.32)}
.leaflet-tile-pane::after{background:#008fc313;mix-blend-mode:screen}
#satellite-map,.map-viewport{background:#031a2e}
#countries path{fill:#9b8b64;stroke:#3e9bb0;stroke-opacity:.6}

.result-kind{display:block;font-size:10px;color:var(--muted);margin-top:3px}

#search-status:not(:empty){padding:10px 12px;border-radius:7px;background:#c4deef;color:#234c69;font-weight:600}.search-results{max-height:210px;overflow-y:auto}.search-result:first-child{border-color:#537e9c}

.map-controls #reset-view{font-size:12px;font-weight:600;padding:0 12px}

/* Keep the phone view focused on the map and its lights. */
@media(max-width:720px){#reset-view,.legend,.activity{display:none}.satellite-label,.marker text{display:none}}

@media(max-width:720px){#export-contacts{display:none}}

/* Brightness changes intensity, never the light's footprint. */
.satellite-dot,.brightness-1 .satellite-dot,.brightness-2 .satellite-dot,.brightness-3 .satellite-dot,.brightness-4 .satellite-dot,.brightness-5 .satellite-dot{width:7px;height:7px;background:#ffda87;box-shadow:0 0 8px 3px #ffd075;opacity:1}
.brightness-1 .satellite-dot{opacity:.35}
.brightness-2 .satellite-dot{opacity:.5}
.brightness-3 .satellite-dot{opacity:.65}
.brightness-4 .satellite-dot{opacity:.82}
.brightness-5 .satellite-dot{opacity:1;background:#fff1c2;box-shadow:0 0 8px 3px #ffe2a0}
.new-light .satellite-dot{animation:light-brighten 1.2s ease-out}
@keyframes light-brighten{from{filter:brightness(.6)}to{filter:brightness(1)}}
.level-dot{width:9px;height:9px;box-shadow:0 0 7px 2px #dba14370}.l1{opacity:.35}.l2{opacity:.5}.l3{opacity:.65}.l4{opacity:.82}.l5{opacity:1;box-shadow:0 0 7px 2px #dba14370}

/* Coordinate the title with the new illustrated logo. */
.brand{font-family:Georgia,'Times New Roman',serif;font-size:43px;letter-spacing:-1.2px;gap:16px}.brand span{white-space:nowrap}.brand-logo{display:block;width:80px;height:80px;object-fit:contain;background:#fff;border-radius:12px;padding:4px;box-shadow:0 3px 14px #071c3433;flex-shrink:0}
@media(max-width:1500px){header{grid-template-columns:minmax(0,1fr) auto}.header-actions{grid-column:2;grid-row:1}.main-nav{grid-column:1/-1;grid-row:2}}
@media(max-width:1100px){.brand{font-size:36px}.brand-logo{width:68px;height:68px}}
@media(max-width:720px){.brand{font-size:29px;gap:10px}.brand-logo{width:60px;height:60px}.main-nav{flex-wrap:wrap;gap:10px 18px}.main-nav a{font-size:11px}}
@media(max-width:540px){header{grid-template-columns:1fr}.header-actions{grid-column:1;grid-row:2}.main-nav{grid-row:3}.brand{font-size:27px;letter-spacing:-.8px}}

/* Echo the illustrated logo's warm-to-blue lettering. */
.brand{font-family:Georgia,'Times New Roman',serif;font-weight:700;text-shadow:none;filter:drop-shadow(0 2px 1px #06182d80)}
.brand-warm{color:#ffbd35;background:linear-gradient(180deg,#ffd147 5%,#ff9f08 50%,#c44505 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.brand em{color:#66c7ed;background:linear-gradient(180deg,#7bdeff 0%,#21a9df 42%,#387bc4 72%,#75a8e0 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}

.brand-wordmark{position:relative;display:inline-block;padding-bottom:10px}.brand-heart-o{position:relative;display:inline-block}.brand-o-heart{position:absolute;left:50%;top:51%;transform:translate(-50%,-50%);font:700 .36em/1 Georgia,serif;color:#ffbd24;background:linear-gradient(#ffe461,#f6a509);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;letter-spacing:0}.brand-swoosh{position:absolute;left:0;bottom:0;width:100%;height:15px;overflow:visible}.brand em .brand-heart-o{background:inherit;background-clip:text;-webkit-background-clip:text}

.brand-o-heart{background:none;-webkit-text-fill-color:#ffc52f;color:#ffc52f}

.brand{font-size:50px;gap:28px}
@media(max-width:1100px){.brand{font-size:42px;gap:24px}}
@media(max-width:720px){.brand{font-size:32px;gap:18px}}
@media(max-width:540px){.brand{font-size:30px;gap:18px}.brand-logo{width:52px;height:52px}}

/* Improve readability of the introduction. */
.intro h1{font-size:28px}.intro .description{font-size:14px;line-height:1.65}
@media(max-width:1000px){.intro h1{font-size:25px}}
@media(max-width:720px){.intro h1{font-size:22px}.intro .description{font-size:13px;line-height:1.6}}

.compose-title-row{display:flex;align-items:center;gap:18px;margin:8px 0}.compose-title-row #compose-title{margin:0;flex:0 1 auto}.compose-logo{width:64px;height:64px;object-fit:contain;border-radius:9px;background:white;padding:3px;flex-shrink:0}@media(max-width:540px){.compose-title-row{gap:12px}.compose-title-row #compose-title{font-size:29px}.compose-logo{width:54px;height:54px}}

/* Center the introduction title and echo the main wordmark. */
.intro{display:grid;grid-template-columns:minmax(0,1fr) auto;position:relative}
.intro>div:first-child{display:contents}
.intro h1{grid-column:1/-1;grid-row:1;text-align:center;font-family:Georgia,'Times New Roman',serif;font-weight:700;letter-spacing:-.6px;margin:0 0 10px;text-shadow:none;filter:drop-shadow(0 2px 1px #06182d60)}
.intro .description{grid-column:1;grid-row:2}.intro .stats{grid-column:2;grid-row:2}
.intro h1 span{margin:0;display:inline}
.intro-heading-warm{color:#ffc343;background:linear-gradient(180deg,#ffd147,#ff9f08 55%,#d26616);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}
.intro-heading-blue{color:#70cff4;background:linear-gradient(180deg,#7bdeff,#21a9df 45%,#75a8e0);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}
@media(max-width:720px){.intro{gap:12px}.intro h1{font-size:22px;line-height:1.3;margin-bottom:0}.intro h1 span{display:inline}.intro .stats{align-self:center}}

.intro .description{text-align:center;justify-self:center;max-width:1050px}.sparkle-wordmark{position:relative;display:inline-block;font-weight:700;color:#ffe5a6;text-shadow:0 0 9px #ffcf6150}.sparkle{position:absolute;color:#ffdf86;pointer-events:none;font-size:12px;line-height:1;animation:gentle-sparkle 3s ease-in-out infinite}.sparkle-one{left:-8px;top:-5px}.sparkle-two{right:25%;top:-9px;animation-delay:1s;font-size:10px}.sparkle-three{right:-8px;bottom:-4px;animation-delay:2s;font-size:10px}@keyframes gentle-sparkle{0%,100%{opacity:.3;transform:scale(.7)}50%{opacity:1;transform:scale(1.1)}}@media(prefers-reduced-motion:reduce){.sparkle{animation:none;opacity:.8}}

.intro{padding:14px 0 12px;column-gap:18px;row-gap:5px}.intro h1{margin:0;font-size:26px}.intro .description{line-height:1.5}@media(max-width:1000px){.intro h1{font-size:23px}}@media(max-width:720px){.intro{padding:12px 0 10px;column-gap:12px;row-gap:5px}.intro h1{font-size:21px}}

.brand{font-size:55px}@media(max-width:1100px){.brand{font-size:46px}}@media(max-width:720px){.brand{font-size:34px}}@media(max-width:540px){.brand{font-size:32px;gap:14px}}

/* Twinkle through brightness alone, with a fixed light footprint. */
.satellite-dot,.new-light .satellite-dot{animation:gratitude-twinkle 2.8s ease-in-out infinite}
.gratitude-map-icon:nth-child(3n) .satellite-dot{animation-delay:-.9s}.gratitude-map-icon:nth-child(3n+1) .satellite-dot{animation-delay:-1.8s}
.marker circle:not(.marker-hit){animation:gratitude-twinkle 2.8s ease-in-out infinite}.marker:nth-child(3n){animation-delay:-.9s}
@keyframes gratitude-twinkle{0%,100%{filter:brightness(1)}45%{filter:brightness(2.2)}65%{filter:brightness(1.25)}}
@media(prefers-reduced-motion:reduce){.satellite-dot,.new-light .satellite-dot,.marker circle:not(.marker-hit){animation:none;filter:brightness(1.3)}}

/* Explicitly requested map twinkle, including this device's reduced-motion mode. */
.satellite-light .satellite-dot{animation:visible-map-twinkle 2.6s ease-in-out infinite!important;filter:none}
.brightness-1{--light-peak:.6}.brightness-2{--light-peak:.7}.brightness-3{--light-peak:.8}.brightness-4{--light-peak:.9}.brightness-5{--light-peak:1}
@keyframes visible-map-twinkle{0%,100%{opacity:calc(var(--light-peak,1)*.4);filter:brightness(1)}45%,55%{opacity:var(--light-peak,1);filter:brightness(1.8)}}

.satellite-light .satellite-dot{width:5px;height:5px;box-shadow:0 0 5px 2px #ffd075}.brightness-5 .satellite-dot{box-shadow:0 0 5px 2px #ffe2a0}

.satellite-label{bottom:21px;background:#082234c9;padding:1px 4px;border-radius:4px}
.satellite-light .satellite-dot{animation:clear-map-twinkle 1.8s ease-in-out infinite!important}
@keyframes clear-map-twinkle{0%,100%{opacity:calc(var(--light-peak,1)*.25);filter:brightness(.9)}40%,60%{opacity:var(--light-peak,1);filter:brightness(2.5)}}

.satellite-light-wrap,.satellite-light{width:12px;height:12px}.satellite-label{bottom:11px}

/* Small star glints, staggered without changing the light footprint. */
.satellite-glint{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:9px;height:9px;text-align:center;font:12px/9px Georgia,serif;color:#fff3c9;pointer-events:none;text-shadow:0 0 3px #ffc95c;animation:map-star-glint 4s ease-in-out infinite!important;animation-delay:var(--twinkle-delay,0s)!important}
.satellite-light .satellite-dot{animation-delay:var(--twinkle-delay,0s)!important}
@keyframes map-star-glint{0%,25%,65%,100%{opacity:0}40%,48%{opacity:1}55%{opacity:.25}}
.new-light .satellite-glint{animation:new-map-glint 1.6s ease-in-out 1,map-star-glint 4s 1.6s ease-in-out infinite!important}
@keyframes new-map-glint{0%,35%,70%,100%{opacity:0}18%,53%{opacity:1}}

.workspace{grid-template-columns:minmax(0,1fr)}

#info-dialog.wall-dialog{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;margin:0;border:0;border-radius:0;padding:24px max(20px,calc((100vw - 1100px)/2));background:linear-gradient(#173c58 0 140px,#d8e8f2 140px);overflow-y:auto}
.wall-dialog .dialog-head{gap:20px}.wall-dialog .dialog-head .eyebrow{color:#ffdf9b}.wall-dialog #info-title{color:#ffdf9b;font-size:38px;margin:20px 0 30px}.wall-dialog #close-info{width:auto;height:auto;border:1px solid #7f9aaf;border-radius:8px;font-size:13px;color:#edf5fb;padding:10px 14px;white-space:nowrap}
.wall-dialog #info-content{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:40px}.wall-dialog .note{margin:0;padding:28px;background:#edf5fa;border-color:#acc9dd}.wall-dialog .note p{font-size:21px;line-height:1.7}.wall-dialog .note-location{font-size:12px}.wall-dialog .dialog-description{grid-column:1/-1;padding:32px;background:#edf5fa;border-radius:12px;font-size:16px;text-align:center}
@media(max-width:720px){#info-dialog.wall-dialog{padding:20px 16px}.wall-dialog #info-title{font-size:32px}.wall-dialog #info-content{grid-template-columns:1fr;gap:14px}.wall-dialog .note{padding:22px}.wall-dialog .note p{font-size:19px}}

/* Shared branded headings on forms and information screens. */
#compose-title,#info-title{font-family:Georgia,'Times New Roman',serif;font-weight:700;background:linear-gradient(110deg,#b85a09 0%,#d38a13 42%,#19799f 58%,#21598d 100%);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}
.info-title-row{display:flex;align-items:center;gap:24px;margin:18px 0}.info-title-row #info-title{margin:0}.info-logo{width:68px;height:68px;object-fit:contain;background:#fff;border-radius:10px;padding:3px;flex-shrink:0}
.wall-dialog .info-title-row{margin:20px 0 24px}.wall-dialog #info-title{background-image:linear-gradient(110deg,#ffc43d 0%,#ff9e14 42%,#65cfff 58%,#79aee4 100%)}
#info-dialog.wall-dialog{scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:#5a819d #d8e8f2}
@media(max-width:720px){.info-title-row{gap:16px}.info-logo{width:56px;height:56px}}

/* Leave roughly half an inch of the website visible around the wall. */
#info-dialog.wall-dialog{width:calc(100vw - 96px);max-width:calc(100vw - 96px);height:calc(100dvh - 96px);max-height:calc(100dvh - 96px);margin:auto;border:1px solid #94b2c7;border-radius:16px;padding:24px clamp(20px,4vw,60px)}
#info-dialog.wall-dialog::backdrop{background:#12304726;backdrop-filter:none}
@media(max-width:600px){#info-dialog.wall-dialog{width:calc(100vw - 32px);max-width:calc(100vw - 32px);height:calc(100dvh - 32px);max-height:calc(100dvh - 32px);padding:20px 16px}}

.wall-scroll-track{display:none}.wall-dialog .wall-scroll-track{display:block;position:absolute;right:5px;width:9px;border-radius:8px;background:#abc7da88;pointer-events:none}.wall-scroll-thumb{width:9px;border-radius:8px;background:#467895;box-shadow:inset 0 0 0 1px #315f7b}

.wall-dialog .wall-scroll-track{pointer-events:auto;touch-action:none;cursor:ns-resize}

.wall-dialog .wall-introduction{font:700 24px/1.4 Georgia,serif;color:#f4f8fc;background:#285570;border:1px solid #527c98;border-left:4px solid #e7bf72;padding:22px 26px;box-shadow:0 4px 16px #234b6815}@media(max-width:720px){.wall-dialog .wall-introduction{font-size:20px;padding:18px}}

.sent-message-actions{display:flex;align-items:center;justify-content:center;gap:16px;padding:12px 16px;margin:12px 0;background:#d7e9f5;border:1px solid #90b2ca;border-radius:9px;font-size:13px}.sent-message-actions a{font-weight:700;color:#245f83}.sent-message-actions button{background:none;border:0;font-size:22px;color:#3c627b}.wall-dialog .note.wall-message-highlight{border:2px solid #c28a29;background:#fff7df;box-shadow:0 0 0 4px #edc87560}.wall-dialog .note:focus-visible{outline:2px solid #b77917;outline-offset:4px}@media(max-width:720px){.sent-message-actions{flex-wrap:wrap;gap:8px 14px}}

.wall-dialog .sent-message-actions{grid-column:1/-1;margin:0;justify-content:space-between}.wall-dialog #view-sent-message{background:#e7bf72;color:#203f56;padding:10px 16px;border-radius:7px;text-decoration:none}

.wall-dialog .wall-introduction{font-size:16px;padding:15px 18px}@media(max-width:720px){.wall-dialog .wall-introduction{font-size:14px;padding:12px}}

.wall-introduction-text{font-family:Georgia,'Times New Roman',serif;font-weight:700;background:linear-gradient(110deg,#ffc43d 0%,#ff9e14 42%,#65cfff 58%,#79aee4 100%);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}

.wall-dialog .dialog-head{display:grid;grid-template-columns:1fr auto;align-items:center;gap:8px 20px}.wall-dialog .dialog-head .eyebrow{grid-column:1;grid-row:1}.wall-dialog #close-info{grid-column:2;grid-row:1;justify-self:stretch;text-align:center}.wall-dialog .sent-message-actions{grid-column:2;grid-row:2;display:block;padding:0;margin:0;background:none;border:0;border-radius:0}.wall-dialog .sent-message-actions>span,.wall-dialog #dismiss-sent-message{display:none}.wall-dialog #view-sent-message{display:block;border:1px solid #7f9aaf;border-radius:8px;background:transparent;color:#edf5fb;padding:10px 14px;font-size:13px;font-weight:400;text-align:center;text-decoration:none;white-space:nowrap}

.wall-dialog #info-content{grid-template-columns:minmax(0,1fr)}

.wall-dialog .note .wall-message-people{font-family:inherit;font-size:14px;font-weight:700;color:#285d7b;margin:0 0 10px;line-height:1.4}

.wall-dialog #close-info,.wall-dialog #view-sent-message{display:block;width:100%;box-sizing:border-box;border:1px solid #7f9aaf;border-radius:8px;background:transparent;color:#edf5fb;padding:10px 14px;font:400 13px/1.5 system-ui,-apple-system,sans-serif;text-align:center;text-decoration:none;box-shadow:none;outline:none}
.wall-dialog #close-info:focus-visible,.wall-dialog #view-sent-message:focus-visible{outline:2px solid #90ccec;outline-offset:3px}

.wall-dialog .note{padding:16px 20px}.wall-dialog .note p{font-size:12px;line-height:1.6}.wall-dialog .note .wall-message-people{font-size:12px;margin-bottom:7px}.wall-dialog #info-content{gap:12px}@media(max-width:720px){.wall-dialog .note{padding:14px 16px}.wall-dialog .note p{font-size:12px}}

.wall-dialog .note p{font-size:16px;line-height:1.65}.wall-dialog .note .wall-message-people{font-size:14px}@media(max-width:720px){.wall-dialog .note p{font-size:16px}}

@media(max-width:720px){.map-controls #reset-view{display:block}}

.satellite-label,.marker text{display:none}

/* Keep modal scrolling contained and the underlying page stationary. */
html:has(#info-dialog[open]),body:has(#info-dialog[open]){overflow:hidden}
#info-dialog{overscroll-behavior:contain}
#info-dialog.wall-dialog{overflow-y:auto;overscroll-behavior:none;touch-action:pan-y}

.pin-toolbar{position:sticky;top:8px;z-index:900;display:flex;align-items:center;justify-content:space-between;gap:16px;background:#d9eaf5;border:1px solid #8eafc7;border-radius:9px;margin:12px 0;padding:12px 16px;font-size:13px;box-shadow:0 4px 18px #15384f20}.pin-toolbar .primary{font-size:12px;padding:10px 14px;white-space:nowrap}@media(max-width:720px){.pin-toolbar{flex-wrap:wrap;gap:10px}}

/* Keep a readable return control at the top of every screen. */
.screen-back,#close-info{width:auto;height:auto;flex-shrink:0;border:1px solid #8eb4cb;border-radius:8px;padding:9px 12px;background:#e2eff7;color:#285674;font:600 13px Arial,sans-serif;cursor:pointer}.dialog-head{gap:12px}.screen-back:focus-visible{outline:2px solid #4b91bb;outline-offset:3px}
/* Prominent pin selection instructions and return controls. */
.pin-toolbar{gap:18px;padding:18px 22px;background:#e0effa;border:2px solid #77afd1;box-shadow:0 6px 22px #15384f35;font-size:17px;line-height:1.45}
#pin-help{flex:1;font-weight:600;color:#214d6b}
.pin-toolbar #return-to-form,.pin-toolbar #clear-map-pin{font-size:17px;font-weight:700;padding:15px 22px;min-height:52px;border-radius:10px;white-space:nowrap;margin:0}
.pin-toolbar #clear-map-pin{background:#c3e1f4;border:2px solid #5289ab;color:#214d6b}
.pin-toolbar #clear-map-pin:disabled{opacity:.55;cursor:not-allowed}
@media(max-width:720px){.pin-toolbar{padding:15px;gap:12px;font-size:16px}#pin-help{flex-basis:100%}.pin-toolbar #return-to-form,.pin-toolbar #clear-map-pin{flex:1;font-size:16px;padding:14px 12px}}
/* Center pin actions and gently pulse the instructions for attention. */
.pin-toolbar{justify-content:center;flex-wrap:wrap;text-align:center;gap:12px 18px}
#pin-help{flex:0 0 100%;animation:pin-instruction-blink 2s ease-in-out infinite}
.pin-toolbar #clear-map-pin,.pin-toolbar #return-to-form{flex:0 1 auto}
@keyframes pin-instruction-blink{0%,100%{opacity:1}50%{opacity:.45}}
@media(prefers-reduced-motion:reduce){#pin-help{animation:none}}
@media(max-width:720px){.pin-toolbar #clear-map-pin,.pin-toolbar #return-to-form{flex:0 1 auto}}
#pin-help{animation:pin-instruction-blink 2s ease-in-out infinite}
#pin-help{animation:pin-instruction-blink 2s ease-in-out infinite!important}

.recipient-location-title{display:block;font-size:24px;font-weight:700;margin-bottom:10px;color:#214d6b}.location-instructions{display:block;font-size:15px;font-weight:400;line-height:1.5;margin-bottom:12px;color:#285674}.location-map-button{display:block;width:100%;padding:14px 18px;margin:12px 0 24px;border:2px solid #6a9dbc;border-radius:9px;background:#c4e1f3;color:#214d6b;font:700 16px Arial,sans-serif;cursor:pointer}.location-map-button:hover{background:#b2d6ed}.location-map-button:focus-visible{outline:2px solid #285674;outline-offset:3px}
/* A scrollable frame outside the interactive map. */
.map-card{padding:0 20px 20px;background:#bdd6e8;border:1px solid #7da4bf;border-radius:12px;overflow:hidden}
.map-viewport{border:1px solid #668ca8;border-radius:8px;overflow:hidden}
.map-card .map-top,.map-card .legend{background:transparent}
@media(max-width:720px){.map-card{padding:0 16px 16px}.map-card .map-top{padding-left:0;padding-right:0}.map-card .legend{padding-left:0;padding-right:0}}

#whatsapp-handoff{max-width:620px}#whatsapp-handoff textarea{font-size:17px;line-height:1.5}#whatsapp-open{text-decoration:none;margin-top:18px}#whatsapp-status{font-size:14px;color:#285674}

#messenger-handoff{max-width:620px}#messenger-handoff textarea{font-size:17px;line-height:1.5}#messenger-open{text-align:center;text-decoration:none}#messenger-status{font-size:14px;color:#285674}.handoff-steps{padding-left:24px}.handoff-steps li{margin-bottom:9px}

.newsletter-invitation{font-size:14px;line-height:1.6;margin:0 0 20px}.newsletter-archive{border-top:1px solid #9ebed3;margin-top:22px;padding-top:16px}.newsletter-archive h3{font:700 23px Georgia,serif;color:#285674;margin:0 0 12px}

.terms-agreement{padding:15px;margin-bottom:20px;background:#d1e5f2;border:1px solid #8db4ce;border-radius:9px}.terms-agreement .check-label{font-size:14px;line-height:1.5}.terms-link{display:inline-block;margin:8px 0 0 25px;font-weight:600;color:#285674}.terms-agreement .field-help{margin-bottom:0}
/* Compact consent panel while retaining an accessible checkbox target. */
.terms-agreement{padding:10px 12px;margin-bottom:14px}
.terms-agreement .check-label{font-size:12px;line-height:1.4;gap:8px;margin-bottom:4px}
.terms-agreement input[type=checkbox]{width:18px;height:18px;flex-shrink:0}
.terms-agreement .terms-link{font-size:12px;margin:3px 0 0 26px}
.terms-agreement .field-help{font-size:10px;line-height:1.4;margin-top:5px}
/* Give the wordmark and logo a distinct area, with navigation aligned right. */
@media(min-width:721px){header{grid-template-columns:minmax(0,1fr) auto;column-gap:36px;row-gap:18px}.header-actions{grid-column:2;grid-row:1}.main-nav{grid-column:1/-1;grid-row:2;justify-self:end;justify-content:flex-end;width:auto;max-width:100%;margin:0;flex-wrap:wrap}}
@media(max-width:720px){.main-nav{justify-content:flex-end;justify-self:end}}
.brand-area{position:relative;justify-self:start;padding-bottom:38px;min-width:0}.language-control{position:absolute;right:0;bottom:0;display:flex;align-items:center;gap:5px;margin:0;color:#e0edf6;font-size:14px}.language-control select{max-width:120px;background:#244f6c;color:#f0f7fc;border:1px solid #7baccb;border-radius:7px;padding:7px 5px;font-size:12px;cursor:pointer}.brand-area .brand{max-width:100%}@media(max-width:540px){.brand-area{width:100%}.brand-area .brand{justify-content:space-between}}
/* Compact language selection beneath the title. */
.language-control{left:0;right:auto;gap:4px;font-size:12px}
.language-control select{max-width:105px;padding:4px 6px;font-size:11px;border-radius:6px}
.brand-area{padding-bottom:30px}
/* Place language selection on the same header row as navigation. */
@media(min-width:721px){.brand-area{padding-bottom:0}.language-control{bottom:-46px;min-height:28px;z-index:2}header{row-gap:18px}.main-nav{min-height:28px}}
@media(max-width:720px){.brand-area{padding-bottom:0}.language-control{position:static;margin-top:12px}.main-nav{align-self:end}}
/* Keep geographic controls and the wordmark stable in RTL languages. */
html[dir=rtl] .brand,html[dir=rtl] .brand-area,html[dir=rtl] .map-viewport{direction:ltr}
html[dir=rtl] dialog,html[dir=rtl] .intro,html[dir=rtl] .pin-toolbar{direction:rtl}
html[dir=rtl] .check-label{text-align:right}
html[dir=rtl] input[type=email],html[dir=rtl] input[type=tel]{direction:ltr;text-align:left}
html[dir=rtl] textarea{direction:rtl}
/* Language selection shares the introductory headline row. */
.intro-heading-row{position:relative;display:flex;align-items:center;justify-content:center;min-height:38px;padding:0 120px;margin-bottom:8px;direction:ltr}
.intro-heading-row h1{margin-bottom:0}
.intro-heading-row .language-control{position:absolute;left:0;right:auto;top:50%;bottom:auto;transform:translateY(-50%);margin:0;min-height:0;direction:ltr}
@media(max-width:720px){.intro-heading-row{padding:0 0 0 100px}.intro-heading-row h1{font-size:19px}.intro-heading-row .language-control select{max-width:85px}.intro-heading-row .language-control{font-size:10px;gap:2px}}
.delivery-options legend{font-size:20px;font-weight:700;line-height:1.4;color:#214d6b;margin-bottom:14px}
@media(max-width:600px){.delivery-options legend{font-size:18px}}
#terms-dialog{width:min(850px,calc(100vw - 32px));max-width:850px;padding:16px;max-height:90vh}
#terms-dialog iframe{display:block;width:100%;height:70vh;border:0;margin-top:12px;border-radius:8px;background:#e0edf6}

/* Make the monthly newsletter opt-in easier to read. */
.check-label.newsletter-opt-in{font-size:18px;line-height:1.5;}

/* Small-screen audit: fit the title and logo without clipping. */
@media(max-width:540px){
 .brand-area .brand{gap:12px;min-width:0;white-space:normal;justify-content:flex-start;font-size:clamp(22px,6.8vw,32px);}
 .brand-area .brand-wordmark{min-width:0;flex:1;}
 .brand-area .brand-logo{width:48px;height:48px;flex:none;}
 input,textarea,select{font-size:16px;}
 .demo-badge[data-local-only]{display:flex;}
}

/* Compact Wall of Love: keep each message readable while showing more rows. */
.wall-dialog .note{padding:10px 16px}
.wall-dialog .note p{font-size:14px;line-height:1.45;margin:0}
.wall-dialog .note .wall-message-people{font-size:12px;line-height:1.35;margin:0 0 5px}
.wall-dialog #info-content{gap:8px;margin-top:20px}
.wall-dialog .wall-introduction{padding:10px 14px}
@media(max-width:720px){.wall-dialog .note{padding:10px 12px}.wall-dialog .note p{font-size:14px}}

.wall-email-search{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap}
.wall-email-search label{flex:1;min-width:180px}
.wall-email-search input{margin-top:8px}
.wall-email-search button{min-height:44px}
.wall-dialog .wall-email-results{display:grid;gap:8px}

/* Make the page scrollbar beside the map easier to find and drag. */
html{overflow-y:scroll;scrollbar-gutter:stable;scrollbar-width:auto;scrollbar-color:#285b80 #d6e7f2}
html::-webkit-scrollbar{width:18px}
html::-webkit-scrollbar-track{background:#d6e7f2;border-left:1px solid #8baec7}
html::-webkit-scrollbar-thumb{background:#285b80;border:3px solid #d6e7f2;border-radius:12px;min-height:60px}
html::-webkit-scrollbar-thumb:hover{background:#163e5c}
html::-webkit-scrollbar-thumb:active{background:#b5771b}

.wall-dialog #view-sent-message{white-space:normal;max-width:260px;justify-self:end}
@media(max-width:600px){.wall-dialog #view-sent-message{max-width:170px;font-size:12px}}

/* Give the front-page tree logo a little more presence. */
.brand-area .brand-logo{width:96px;height:96px}
@media(max-width:1100px){.brand-area .brand-logo{width:82px;height:82px}}
@media(max-width:720px){.brand-area .brand-logo{width:72px;height:72px}}
@media(max-width:540px){.brand-area .brand-logo{width:58px;height:58px}}

/* Clearly separate saving on the website from sending in a chat app. */
.handoff-notice{margin:20px 0;padding:16px 18px;background:#fff3d3;border:2px solid #d7a341;border-radius:10px;color:#4c391a}
.handoff-notice strong{display:block;font-size:20px;line-height:1.35;margin-bottom:7px}
.handoff-notice p{margin:0;font-size:16px;line-height:1.5}
@media(max-width:540px){.handoff-notice{padding:14px}.handoff-notice strong{font-size:18px}}

/* Fit the desktop home view to the available window; dialogs retain their own scrolling. */
@media(min-width:721px) and (min-height:600px){
 html{overflow-y:auto}
 body{min-height:100dvh;display:flex;flex-direction:column}
 body>header{flex:none;min-height:0;padding-top:10px;padding-bottom:10px;row-gap:8px}
 body>main{flex:1;min-height:0;width:100%;display:flex;flex-direction:column}
 .intro{flex:none;padding:10px 0;gap:6px 20px}
 .intro-heading-row{margin-bottom:3px;min-height:32px}
 .intro h1{font-size:24px;margin-bottom:0}
 .intro .description{font-size:13px;line-height:1.5}
 .workspace{flex:1;min-height:0;margin-top:10px;display:flex}
 .map-card{flex:1;display:flex;flex-direction:column;min-height:0;padding:0 14px 10px}
 .map-top{padding:8px 4px;flex:none}
 .map-viewport{flex:1;min-height:220px;aspect-ratio:auto}
 .legend{flex:none;padding:8px 4px;gap:8px}
 footer{flex:none;margin-top:8px;padding:8px 0}
 body:not(:has(.pin-toolbar:not([hidden])))>main{height:calc(100dvh - var(--home-header-height,150px));flex:none}
}

@media(min-width:721px) and (min-height:600px){.workspace{align-self:center;width:100%}}

@media(min-width:721px) and (min-height:600px){
 .brand-area .brand{font-size:44px;gap:18px}
 .brand-area .brand-logo{width:80px;height:80px}
 .map-viewport{min-height:160px}
 .legend .levels{gap:12px}
}

/* Wider-world local design preview: use more width and trim the surrounding frame. */
@media(min-width:721px) and (min-height:600px){
 body>header{padding-top:6px;padding-bottom:6px;row-gap:3px}
 .brand-area .brand{font-size:38px;gap:14px}
 .brand-area .brand-logo{width:68px;height:68px}
 .main-nav{min-height:24px;font-size:12px}
 .header-actions .primary{padding:11px 18px}
 .intro{padding:6px 0;gap:3px 16px}
 .intro-heading-row{min-height:29px;margin-bottom:0}
 .intro h1{font-size:23px}
 .intro .description{line-height:1.4}
 .workspace{margin-top:6px;border-radius:8px;box-shadow:none}
 .map-card{padding:0 5px 4px;border-radius:8px;border-color:#95b4c9}
 .map-top{padding:5px 6px}
 .map-viewport{border-radius:5px;border-color:#95b4c9}
 .legend{padding:5px 6px}
 footer{margin-top:4px;padding:5px 0}
}
