:root{--bg:#050a0f;--card:#0c1a1f;--card-h:#112228;--grn:#2ecc71;--ylw:#f1c40f;--orn:#e67e22;--red:#e74c3c;--t1:#e8f0f2;--t2:#8ba4ad;--t3:#4a6670;--ag:#4ade80;--at:#2dd4bf;--ap:#a78bfa;--brd:#1a2e35}
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:'Outfit',sans-serif;background:var(--bg);color:var(--t1);min-height:100vh;overflow-x:hidden}
.abg{position:fixed;inset:0;z-index:0;overflow:hidden;pointer-events:none}
.ab{position:absolute;width:200%;height:300px;top:-80px;left:-50%;filter:blur(60px);animation:ad 20s ease-in-out infinite}
.ab:nth-child(1){background:radial-gradient(ellipse at center,rgba(46,204,113,.12),rgba(45,212,191,.06) 30%,rgba(167,139,250,.04) 60%,transparent 80%)}
.ab:nth-child(2){top:-40px;animation-delay:-7s;animation-duration:25s;opacity:.7;background:radial-gradient(ellipse at center,rgba(45,212,191,.1),rgba(167,139,250,.06) 40%,transparent 70%)}
.ab:nth-child(3){top:-120px;animation-delay:-14s;animation-duration:30s;opacity:.5;background:radial-gradient(ellipse at center,rgba(167,139,250,.08),rgba(46,204,113,.04) 40%,transparent 70%)}
@keyframes ad{0%,100%{transform:translateX(-10%) rotate(-2deg)}33%{transform:translateX(5%) rotate(1deg)}66%{transform:translateX(-5%) rotate(-1deg)}}
.star{position:absolute;width:2px;height:2px;background:#fff;border-radius:50%;animation:tw 3s ease-in-out infinite}
@keyframes tw{0%,100%{opacity:.3}50%{opacity:.8}}
.c{position:relative;z-index:1;max-width:900px;margin:0 auto;padding:0 20px}
header{padding:40px 0 16px;text-align:center}
.logo{font-family:'Fraunces',serif;font-size:2.2rem;font-weight:700;background:linear-gradient(135deg,var(--ag),var(--at),var(--ap));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:-.02em;margin-bottom:4px;cursor:pointer}
.tagline{font-size:.95rem;color:var(--t2);font-weight:300}

/* Dark/daylight banner */
.now-banner{text-align:center;padding:10px 16px;border-radius:10px;font-size:.85rem;margin:8px 0 0}
.now-banner.is-dark{background:rgba(46,204,113,.1);border:1px solid rgba(46,204,113,.2);color:var(--ag)}
.now-banner.is-light{background:rgba(241,196,15,.06);border:1px solid rgba(241,196,15,.15);color:var(--ylw)}
.now-banner.is-summer{background:rgba(167,139,250,.08);border:1px solid rgba(167,139,250,.15);color:var(--ap)}

.loading{text-align:center;padding:80px 20px}
.spinner{width:40px;height:40px;border:3px solid var(--brd);border-top-color:var(--ag);border-radius:50%;animation:sp 1s linear infinite;margin:0 auto 16px}
@keyframes sp{to{transform:rotate(360deg)}}
.sl{font-size:.8rem;font-weight:500;text-transform:uppercase;letter-spacing:.12em;color:var(--t3);margin:32px 0 16px;padding-left:4px}
.upd{text-align:center;font-size:.75rem;color:var(--t3);margin-bottom:8px}

/* Hero */
.hero{margin:20px 0;padding:28px;border-radius:20px;text-align:center;cursor:pointer;transition:transform .2s}
.hero:hover{transform:scale(1.01)}
.lv-g{background:linear-gradient(135deg,rgba(46,204,113,.15),rgba(45,212,191,.08));border:1px solid rgba(46,204,113,.3)}
.lv-p{background:linear-gradient(135deg,rgba(241,196,15,.12),rgba(241,196,15,.04));border:1px solid rgba(241,196,15,.25)}
.lv-c{background:linear-gradient(135deg,rgba(230,126,34,.12),rgba(230,126,34,.04));border:1px solid rgba(230,126,34,.25)}
.lv-u{background:linear-gradient(135deg,rgba(231,76,60,.1),rgba(231,76,60,.03));border:1px solid rgba(231,76,60,.2)}
.hero-ey{font-size:.8rem;font-weight:500;text-transform:uppercase;letter-spacing:.12em;color:var(--t2);margin-bottom:10px}
.hero-loc{font-family:'Fraunces',serif;font-size:1.5rem;font-weight:500;margin-bottom:6px}
.hero-v{font-size:1.02rem;margin-bottom:14px;line-height:1.5}
.hero-d{font-size:.83rem;color:var(--t2)}.hero-d strong{color:var(--t1);font-weight:500}

/* Outlook */
.olstrip{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}
.olcard{background:var(--card);border:1px solid var(--brd);border-radius:14px;padding:14px 12px;text-align:center;transition:all .2s}
.olcard:hover{background:var(--card-h)}
.olcard.ist{border-color:rgba(255,255,255,.12)}
.olday{font-size:.72rem;font-weight:500;color:var(--t2);margin-bottom:8px;text-transform:uppercase;letter-spacing:.06em}
.oldot{width:16px;height:16px;border-radius:50%;margin:0 auto 8px}
.oldot.dg{background:var(--grn);box-shadow:0 0 14px var(--grn)}.oldot.dp{background:var(--ylw);box-shadow:0 0 14px var(--ylw)}
.oldot.dc{background:var(--orn);box-shadow:0 0 14px var(--orn)}.oldot.du{background:var(--red);box-shadow:0 0 10px var(--red)}
.ollbl{font-size:.82rem;font-weight:500;margin-bottom:3px}.oldesc{font-size:.72rem;color:var(--t3);line-height:1.4}

/* Location cards */
.lgrid{display:grid;grid-template-columns:1fr;gap:12px;margin-bottom:24px}
@media(min-width:600px){.lgrid{grid-template-columns:1fr 1fr}}
.lcard{background:var(--card);border:1px solid var(--brd);border-radius:16px;padding:18px;cursor:pointer;transition:all .2s;position:relative;overflow:hidden}
.lcard:hover{background:var(--card-h);transform:translateY(-2px);border-color:rgba(255,255,255,.1)}
.lcard::before{content:'';position:absolute;top:0;left:0;width:4px;height:100%;border-radius:4px 0 0 4px}
.lcard.lv-g::before{background:var(--grn)}.lcard.lv-p::before{background:var(--ylw)}.lcard.lv-c::before{background:var(--orn)}.lcard.lv-u::before{background:var(--red)}
.ch{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.cn{font-weight:600;font-size:1.02rem}
.ci{width:12px;height:12px;border-radius:50%;flex-shrink:0}
.lv-g .ci{background:var(--grn);box-shadow:0 0 12px var(--grn)}.lv-p .ci{background:var(--ylw);box-shadow:0 0 12px var(--ylw)}
.lv-c .ci{background:var(--orn);box-shadow:0 0 12px var(--orn)}.lv-u .ci{background:var(--red);box-shadow:0 0 12px var(--red)}
.cv{font-size:.88rem;color:var(--t2);line-height:1.5;margin-bottom:8px}
.cm{display:flex;gap:12px;font-size:.76rem;color:var(--t3);flex-wrap:wrap}.cm span{display:flex;align-items:center;gap:4px}

/* Alert */
.asec{margin:32px 0;background:linear-gradient(135deg,rgba(45,212,191,.08),rgba(167,139,250,.05));border:1px solid rgba(45,212,191,.2);border-radius:16px;padding:24px;text-align:center}
.atitle{font-family:'Fraunces',serif;font-size:1.2rem;font-weight:500;margin-bottom:6px}
.adesc{font-size:.88rem;color:var(--t2);margin-bottom:18px;max-width:420px;margin-left:auto;margin-right:auto;line-height:1.5}
.aform{display:flex;gap:8px;max-width:400px;margin:0 auto}
.ainput{flex:1;padding:11px 14px;border-radius:10px;border:1px solid var(--brd);background:var(--bg);color:var(--t1);font-family:'Outfit',sans-serif;font-size:.88rem;outline:none;transition:border-color .2s}
.ainput:focus{border-color:var(--at)}.ainput::placeholder{color:var(--t3)}
.moon-e{filter:grayscale(1) brightness(2);display:inline}
.abtn{padding:11px 18px;border-radius:10px;border:none;background:linear-gradient(135deg,var(--at),var(--ag));color:var(--bg);font-family:'Outfit',sans-serif;font-weight:600;font-size:.88rem;cursor:pointer;transition:all .2s;white-space:nowrap}
.abtn:hover{transform:scale(1.03);box-shadow:0 0 20px rgba(45,212,191,.3)}
.aok{display:none;color:var(--ag);font-size:.88rem;margin-top:10px}
.aerr{display:none;color:var(--red);font-size:.85rem;margin-top:8px}

/* Last night */
.lnsec{margin:32px 0;background:var(--card);border:1px solid var(--brd);border-radius:16px;padding:22px}
.lnh{display:flex;align-items:center;gap:10px;margin-bottom:6px}.lnh h3{font-size:.95rem;font-weight:600}
.lnd{font-size:.85rem;color:var(--t2);line-height:1.5}

/* Tours */
.tgrid{display:grid;grid-template-columns:1fr;gap:12px}
@media(min-width:600px){.tgrid{grid-template-columns:1fr 1fr}}
.tcard{background:var(--card);border:1px solid var(--brd);border-radius:14px;padding:16px;display:flex;gap:12px;align-items:center;text-decoration:none;color:inherit;transition:all .2s}
.tcard:hover{background:var(--card-h);border-color:rgba(255,255,255,.1);transform:translateY(-1px)}
.ticon{width:42px;height:42px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:1.2rem;flex-shrink:0;background:rgba(45,212,191,.1)}
.tinfo h3{font-size:.88rem;font-weight:600;margin-bottom:2px}.tinfo p{font-size:.78rem;color:var(--t2);line-height:1.4}
.text-link{font-size:.72rem;color:var(--at);margin-top:2px;display:block}

/* SEO */
.seosec{margin:40px 0;padding:24px;background:var(--card);border:1px solid var(--brd);border-radius:16px}
.seosec h2{font-family:'Fraunces',serif;font-size:1.2rem;font-weight:500;margin-bottom:10px}
.seosec p{font-size:.88rem;color:var(--t2);line-height:1.7;margin-bottom:10px}.seosec p:last-child{margin-bottom:0}

/* Detail page */
.det{display:none}.det.active{display:block}
.back{display:inline-flex;align-items:center;gap:6px;color:var(--t1);font-size:.88rem;cursor:pointer;padding:10px 18px;margin-bottom:14px;border:1px solid var(--brd);background:var(--card);border-radius:10px;font-family:'Outfit',sans-serif;font-weight:500;transition:all .2s}.back:hover{background:var(--card-h);border-color:var(--at);color:var(--at)}
.dhero{padding:28px;border-radius:20px;margin-bottom:20px;text-align:center}
.dname{font-family:'Fraunces',serif;font-size:1.7rem;font-weight:500;margin-bottom:6px}
.dverdict{font-size:1.05rem;margin-bottom:14px;line-height:1.5}
.dstats{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;margin-top:18px}
.dstat{text-align:center}.dsv{font-size:1.3rem;font-weight:600;margin-bottom:2px}.dsl{font-size:.72rem;color:var(--t3);text-transform:uppercase;letter-spacing:.06em}
.icard{background:var(--card);border:1px solid var(--brd);border-radius:14px;padding:18px;margin-bottom:12px}
.icard h3{font-size:.88rem;font-weight:600;margin-bottom:6px;display:flex;align-items:center;gap:8px}
.icard p{font-size:.83rem;color:var(--t2);line-height:1.6}
.slist{list-style:none;padding:0}.slist li{padding:9px 0;border-bottom:1px solid var(--brd);font-size:.85rem}
.slist li:last-child{border-bottom:none}.sn{font-weight:600;color:var(--t1)}.sd{color:var(--t2);margin-top:2px;line-height:1.4}
.sbtn{display:inline-flex;align-items:center;gap:6px;padding:9px 16px;border-radius:10px;border:1px solid var(--brd);background:var(--card);color:var(--t2);font-family:'Outfit',sans-serif;font-size:.83rem;cursor:pointer;transition:all .2s;margin-top:14px}
.sbtn:hover{background:var(--card-h);color:var(--t1);border-color:var(--at)}
.olocs{display:flex;gap:8px;overflow-x:auto;padding-bottom:8px;margin:12px 0}
.ochip{flex-shrink:0;padding:7px 14px;border-radius:20px;background:var(--card);border:1px solid var(--brd);font-size:.8rem;color:var(--t2);cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:6px}
.ochip:hover{background:var(--card-h);color:var(--t1)}
.cdot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.nerd{cursor:pointer}.ndata{display:none;margin-top:8px}
.loc-jump{padding:6px 10px;border-radius:8px;border:1px solid var(--brd);background:var(--card);color:var(--t2);font-family:'Outfit',sans-serif;font-size:.78rem;cursor:pointer;outline:none;transition:border-color .2s;-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%238ba4ad'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;padding-right:26px}
.loc-jump:hover,.loc-jump:focus{border-color:var(--at);color:var(--t1)}
footer{text-align:center;padding:40px 0;font-size:.76rem;color:var(--t3);line-height:1.7}footer a{color:var(--t2);text-decoration:none}footer a:hover{color:var(--t1)}