:root { color-scheme: light; --cream:#f7f1e7; --green:#193f35; --muted:#89867d; }
* { box-sizing:border-box; }
body { margin:0; background:var(--cream); color:var(--green); font:400 16px/1.5 system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif; }
a { color:inherit; text-underline-offset:3px; }
button,input,select { font:inherit; }
button,a,input,select { -webkit-tap-highlight-color:transparent; }
button { cursor:pointer; }
button:disabled { opacity:.6; cursor:wait; }
:focus-visible { outline:2px solid #803e4c; outline-offset:4px; }
h1,h2,p { margin:0; }
h1,h2 { font-family:Georgia,'Times New Roman',serif; font-weight:400; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; }
.auth-page,.home-page { width:100%; max-width:520px; margin:auto; min-height:100svh; }
.auth-page { display:flex; flex-direction:column; }
.auth-top { display:flex; align-items:center; justify-content:space-between; padding: max(24px,env(safe-area-inset-top)) 30px 0; }
.back { font:300 44px/1 Georgia,serif; text-decoration:none; min-width:44px; min-height:44px; }
.country-control select { border:0; background:#ede8df; border-radius:24px; padding:10px 18px; color:var(--green); max-width:100%; }
.auth-content { padding:44px 30px 0; }
.auth-content h1 { font-size:34px; margin-bottom:24px; }
.auth-content form { display:grid; gap:16px; }
.field { display:flex; align-items:center; min-height:49px; border:1px solid #ccc5b9; border-radius:9px; padding:0 14px; gap:12px; }
.field-icon { width:20px; font-size:24px; font-family:Georgia,serif; line-height:1; }
.field-icon svg { display:block; width:20px; height:22px; fill:none; stroke:currentColor; stroke-width:1.4; }
.field input { width:100%; min-width:0; border:0; background:transparent; padding:14px 0; color:#253b32; outline-offset:0; }
.field input::placeholder { color:#807e76; opacity:1; }
.primary,.google-button { display:flex; align-items:center; justify-content:center; gap:16px; width:100%; min-height:52px; padding:12px 18px; border:1px solid var(--green); border-radius:40px; }
.primary { background:var(--green); color:#fffaf1; }
.primary span { font-size:28px; line-height:1; }
.text-link { padding:0; border:0; background:transparent; color:var(--green); text-decoration:underline; text-underline-offset:3px; }
.forgot { justify-self:end; font-size:13px; min-height:30px; }
.divider { display:flex; align-items:center; gap:12px; margin:14px 0; font-size:13px; color:#323a31; }
.divider::before,.divider::after { content:''; flex:1; height:1px; background:#dcd5c9; }
.google-button { color:#202821; background:transparent; }
.google-mark { font-size:24px; font-weight:700; background:conic-gradient(#4285f4 0deg 90deg,#34a853 90deg 175deg,#fbbc05 175deg 230deg,#ea4335 230deg 300deg,#4285f4 300deg); background-clip:text; color:transparent; }
.auth-switch { text-align:center; font-size:13px; margin-top:18px; }
.form-message,.prepared-message { color:#803e4c; font-size:14px; }
.form-message:empty,.prepared-message:empty { display:none; }
.prepared-message:not(:empty) { margin:12px 30px; }
.auth-content .prepared-message { margin:12px 0; }
.password-hint { color:#706f64; font-size:13px; }
.auth-photo { position:relative; flex:1; min-height:240px; margin-top:22px; background:linear-gradient(var(--cream),transparent 28%,#142c2440 65%,#142c24aa),url('/assets/assets/login-city-reference-provisional.png') right center/cover; }
.auth-photo p { position:absolute; left:30px; bottom:30px; color:#fff8e8; font:italic 18px/1.5 Georgia,serif; }
.auth-photo p span { display:block; }
.registration .auth-content { padding-top:22px; }
.registration .auth-photo { min-height:140px; }
.home-page { padding: max(27px,env(safe-area-inset-top)) 23px 110px; }
.home-header { display:flex; align-items:center; gap:14px; }
.wordmark { margin-right:auto; text-decoration:none; font-size:23px; font-weight:650; letter-spacing:5px; }
.country-pill { display:flex; align-items:center; gap:8px; background:#eee8df; border-radius:30px; padding:9px 12px; font-size:13px; white-space:nowrap; }
.country-flag { width:17px; height:17px; border-radius:50%; background:linear-gradient(#b72930 25%,#f1bf43 25% 75%,#b72930 75%); }
.avatar { display:grid; place-items:center; flex-shrink:0; width:39px; height:39px; border-radius:50%; background:var(--green); }
.avatar svg { width:24px; height:24px; fill:var(--cream); }
.greeting { margin:25px 0 17px; }
.greeting h1 { font-size:33px; line-height:1.2; overflow-wrap:anywhere; }
.greeting p { margin-top:5px; color:var(--muted); font-size:16px; }
.tour-carousel { display:flex; gap:14px; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; padding:0 9px; }
.tour-card { position:relative; flex:0 0 100%; aspect-ratio: .955; min-height:340px; border-radius:22px; overflow:hidden; scroll-snap-align:center; background:#897d66; color:#fffaf2; }
.tour-card img { width:100%; height:100%; position:absolute; inset:0; object-fit:cover; }
.tour-card::after { content:''; position:absolute; inset:0; background:linear-gradient(transparent 40%,#161b17c9 100%); pointer-events:none; }
.tour-badge { position:absolute; z-index:1; left:20px; top:20px; background:#dfdfcbe6; color:#233b31; padding:5px 11px; border-radius:10px; font-size:10px; font-weight:600; }
.tour-caption { position:absolute; z-index:1; left:20px; right:16px; bottom:17px; }
.tour-caption h2 { font-size:30px; line-height:1.2; margin-bottom:4px; letter-spacing:-.8px; }
.tour-caption>p { font-size:13px; letter-spacing:-.3px; max-width:84%; }
.tour-meta { display:flex; gap:20px; margin-top:10px; font-size:12px; }
.tour-arrow { position:absolute; z-index:2; right:16px; bottom:27px; width:50px; height:50px; border:1px solid #fff8ed; border-radius:50%; background:#133e35ed; color:white; font:300 29px/1 system-ui; }
.carousel-position { display:flex; justify-content:center; margin:18px 0 22px; }
.carousel-position span { width:8px; height:8px; border-radius:50%; background:var(--green); }
.section-heading { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.section-heading h2 { font-size:27px; color:#171d16; }
.section-heading a { font-size:12px; }
.section-heading a span { margin-left:8px; font-size:24px; vertical-align:middle; }
.empty-stories { display:flex; align-items:center; gap:16px; margin-top:14px; padding:20px 16px; border-radius:18px; background:#fffaf45e; color:#76766b; font-size:14px; }
.empty-stories>span { font-size:32px; color:#9a9f89; }
.empty-stories small { font-size:12px; }
.bottom-nav { position:fixed; z-index:3; bottom:0; left:50%; transform:translateX(-50%); display:flex; justify-content:space-around; width:min(100%,520px); padding:15px 12px max(20px,env(safe-area-inset-bottom)); background:var(--cream); }
.bottom-nav a { display:flex; align-items:center; flex-direction:column; gap:6px; min-width:75px; font-size:12px; text-decoration:none; color:#908c82; }
.bottom-nav svg { width:25px; height:25px; fill:none; stroke:currentColor; stroke-width:1.7; }
.bottom-nav [aria-current=page] { color:var(--green); }
.bottom-nav [aria-current=page] svg circle:first-child { fill:var(--green); }
.bottom-nav [aria-current=page] svg path { stroke:var(--cream); }
.minimal-page { margin-top:36px; }
.minimal-page h1 { font-size:32px; }
dl { margin:25px 0; overflow-wrap:anywhere; }
dt { color:var(--muted); font-size:13px; margin-top:18px; }
dd { margin:3px 0; }
@media(min-width:520px) { .auth-content { padding-top:65px; } .home-page { padding-inline:28px; } .tour-card { min-height:440px; } .tour-caption h2 { font-size:37px; } .tour-caption>p { font-size:16px; } .greeting h1 { font-size:40px; } }
@media(max-width:360px) { .home-page { padding-inline:16px; } .home-header { gap:8px; } .wordmark { font-size:20px; letter-spacing:3px; } .country-pill { padding:8px; gap:5px; font-size:12px; } .auth-content { padding-inline:24px; } .tour-caption { left:14px; } .tour-caption h2 { font-size:25px; } .tour-caption>p { font-size:12px; max-width:77%; } .tour-meta { gap:10px; font-size:10px; } .tour-arrow { width:42px; height:42px; right:12px; } .greeting p { font-size:14px; } }

.tour-card-link{position:absolute;inset:0;display:block;color:inherit;text-decoration:none}.tour-card-link .tour-arrow{display:flex;align-items:center;justify-content:center}
