/* SkiWhen — alpine night */
/* Fonts are self-hosted (SIL Open Font License) so no third party sees visitors */
@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/inter-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:swap;src:url(fonts/inter-latin-500-normal.woff2) format('woff2')}
@font-face{font-family:'Inter';font-style:normal;font-weight:600;font-display:swap;src:url(fonts/inter-latin-600-normal.woff2) format('woff2')}
@font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:swap;src:url(fonts/inter-latin-700-normal.woff2) format('woff2')}
@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:600;font-display:swap;src:url(fonts/barlow-condensed-latin-600-normal.woff2) format('woff2')}
@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:700;font-display:swap;src:url(fonts/barlow-condensed-latin-700-normal.woff2) format('woff2')}
@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:800;font-display:swap;src:url(fonts/barlow-condensed-latin-800-normal.woff2) format('woff2')}
:root{
  --bg:#0A1420; --panel:#111E2E; --panel2:#0E1A28; --raise:#102236;
  --line:#1C2D42; --line2:#23364F; --line3:#2A4260;
  --text:#F4F7FA; --soft:#C7D3E0; --muted:#B4C3D3; --dim:#9DB0C4; --faint:#7F93A8;
  --accent:#8FD3FF; --accent-hover:#C9EBFF;
  --q-bg:#12301F; --q-fg:#6BE3A0; --b-bg:#3A2A0C; --b-fg:#F7C25A; --p-bg:#3D1714; --p-fg:#FF8A7A;
  --display:'Barlow Condensed',system-ui,sans-serif; --body:Inter,system-ui,-apple-system,sans-serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--body);line-height:1.5}
a{color:var(--accent);text-decoration:none}
a:hover{color:var(--accent-hover)}
a:focus-visible,button:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.wrap{max-width:1200px;margin:0 auto;padding:0 24px}
.skip{position:absolute;left:-999px;top:0;background:var(--accent);color:var(--bg);padding:8px 14px;z-index:10}
.skip:focus{left:8px}

/* header */
.site-header{border-bottom:1px solid var(--line)}
.nav{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 24px;padding-top:16px;padding-bottom:16px}
.brand{display:flex;align-items:center;gap:10px;color:var(--text)}
.brand span{font-family:var(--display);font-weight:800;font-size:28px;letter-spacing:1.5px}
.nav-links{display:flex;flex-wrap:wrap;align-items:center;gap:8px 24px;font-size:15px;font-weight:500}
.nav-links a{color:var(--soft)}
.nav-links a[aria-current=page]{color:var(--text)}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 22px;border-radius:999px;font-weight:700;font-size:16px;border:0;cursor:pointer;font-family:var(--body)}
.btn-primary,.nav-links a.btn-primary,a.btn-primary:visited{background:var(--accent);color:var(--bg)}
.btn-primary:hover,.nav-links a.btn-primary:hover{background:var(--accent-hover);color:var(--bg)}
.btn-ghost,.nav-links a.btn-ghost{border:1px solid #3A5677;color:var(--text);background:transparent}
.nav .btn{min-height:40px;padding:0 18px;font-size:15px}

/* hero */
.hero{position:relative;overflow:hidden;border-bottom:1px solid var(--line)}
.hero canvas.snowfall{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.hero svg.ridges{position:absolute;left:0;right:0;bottom:0;width:100%;height:380px}
.hero-inner{position:relative;z-index:1;display:flex;flex-wrap:wrap;gap:40px;align-items:flex-start;padding-top:72px;padding-bottom:130px}
.hero-copy{flex:999 1 480px;min-width:0;display:flex;flex-direction:column;gap:20px}
.pill{display:inline-flex;align-self:flex-start;align-items:center;gap:8px;border:1px solid var(--line3);border-radius:999px;padding:6px 14px;font-size:13px;color:var(--soft)}
.dot{width:8px;height:8px;border-radius:50%;background:var(--accent);display:inline-block}
h1,h2,h3{margin:0}
.display{font-family:var(--display);font-weight:800;text-transform:uppercase;line-height:.92;letter-spacing:-.5px}
.hero h1{font-size:clamp(60px,9vw,104px)}
.lede{margin:0;max-width:540px;font-size:19px;color:var(--muted)}
.cta-row{display:flex;flex-wrap:wrap;gap:12px}
.card{background:var(--panel);border:1px solid var(--line2);border-radius:20px;padding:22px}
.weekend-card{flex:1 1 340px;min-width:0;display:flex;flex-direction:column;gap:6px}
.eyebrow{font-size:12px;font-weight:600;letter-spacing:1.4px;text-transform:uppercase;color:var(--dim)}
.eyebrow.accent{color:var(--accent)}
.card-title{font-family:var(--display);font-weight:700;font-size:32px;line-height:1.1}
.rank-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0;border-top:1px solid var(--line)}
.rank-row a{color:var(--text);font-weight:500;font-size:15px}
.subhead{margin:10px 0 2px;font-size:13px;font-weight:600;color:var(--dim)}

/* crowd chips */
.chip{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:700;padding:5px 11px;border-radius:999px;white-space:nowrap}
.chip::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
.green{background:var(--q-bg);color:var(--q-fg)}
.yellow{background:var(--b-bg);color:var(--b-fg)}
.red{background:var(--p-bg);color:var(--p-fg)}
.cell{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;width:62px;height:48px;border-radius:12px}
.cell b{font-family:var(--display);font-weight:800;font-size:21px;line-height:1}
.cell small{font-size:9.5px;font-weight:700;letter-spacing:.6px;text-transform:uppercase}

/* banner */
.banner{display:flex;gap:14px;align-items:center;background:var(--raise);border:1px solid #23415F;border-radius:14px;padding:14px 18px;font-size:15px;color:var(--soft);margin-top:28px}
.banner strong{color:var(--text)}

/* sections */
.block{padding-top:64px;padding-bottom:16px}
.section-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:22px}
.section-head h2{font-size:clamp(40px,5vw,56px)}
.legend{display:flex;flex-wrap:wrap;gap:16px;font-size:14px;color:var(--muted)}
.legend span{display:inline-flex;align-items:center;gap:8px}
.legend i{width:10px;height:10px;border-radius:50%;display:inline-block}
.filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}
.filter{min-height:40px;padding:0 14px;border-radius:999px;border:1px solid var(--line3);background:var(--panel);color:#E3EAF2;font:600 14px var(--body);cursor:pointer}
.filter[aria-pressed=true]{background:var(--accent);color:var(--bg);border-color:var(--accent)}
.search{min-height:40px;padding:0 16px;border-radius:999px;border:1px solid var(--line3);background:var(--bg);color:var(--text);font:15px var(--body);min-width:220px}
.search::placeholder{color:var(--faint)}

/* grid table */
.table-box{overflow-x:auto;border:1px solid var(--line);border-radius:20px;background:var(--panel2)}
table.grid{width:100%;min-width:880px;border-collapse:collapse;font-size:15px}
.grid thead th{position:sticky;top:0;background:var(--panel2);text-align:center;color:var(--dim);font-size:12px;letter-spacing:.6px;text-transform:uppercase;font-weight:600;padding:16px 6px}
.grid thead th:first-child{text-align:left;padding-left:20px}
.grid thead th b{display:block;font-family:var(--display);font-size:18px;color:var(--text);letter-spacing:0}
.grid td{padding:8px 4px;text-align:center}
.grid th[scope=row]{padding:12px 20px;text-align:left;font-weight:600;white-space:nowrap}
.grid th[scope=row] a{color:var(--text)}
.grid th[scope=row] small{display:block;font-size:12px;font-weight:500;color:var(--faint)}
.grid tr{border-top:1px solid var(--line)}
.grid tr.region th{padding:18px 20px 8px;text-align:left;font-family:var(--display);font-weight:800;font-size:22px;letter-spacing:1px;text-transform:uppercase;color:var(--accent)}
.note{margin:12px 4px 0;font-size:13px;color:var(--faint)}

/* cards grid */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px}
.pass-card{display:flex;flex-direction:column;gap:10px}
.pass-card .top{display:flex;justify-content:space-between;align-items:center;font-size:13px;color:var(--dim)}
.pass-card .temp{font-family:var(--display);font-weight:700;font-size:26px;color:var(--text)}
.pass-card h3{font-family:var(--display);font-weight:700;font-size:28px;line-height:1}
.how h3{margin:6px 0 8px;font-size:20px}
.how p{margin:0;font-size:15px;color:var(--muted)}
.how .num{font-family:var(--display);font-weight:800;font-size:44px;color:#2E4A6B}
.how > div{border-top:2px solid var(--accent);padding-top:20px}

/* signup */
.signup{display:flex;flex-wrap:wrap;gap:28px;align-items:center;justify-content:space-between;padding:44px;border-radius:28px}
.signup h2{font-size:clamp(38px,4.5vw,52px)}
.signup p{margin:8px 0 0;color:var(--muted);font-size:17px}

/* footer */
.site-footer{border-top:1px solid var(--line);margin-top:56px}
.site-footer .wrap{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;padding:26px 24px;font-size:13px;color:var(--faint)}
.site-footer a{color:var(--dim)}

/* mountain page */
.m-hero-inner{position:relative;padding-top:36px;padding-bottom:100px;display:flex;flex-direction:column;gap:24px}
.back{display:inline-flex;align-items:center;gap:6px;font-size:14px;color:var(--dim);align-self:flex-start}
.m-title{display:flex;flex-wrap:wrap;gap:32px;align-items:flex-end;justify-content:space-between}
.m-title h1{font-size:clamp(56px,9vw,112px);margin:8px 0 10px}
.tiles{flex:1 1 380px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;min-width:0}
.tile .big{font-family:var(--display);font-weight:800;font-size:52px;line-height:1}
.tile .lab{font-weight:700;font-size:15px}
.m-body{display:flex;flex-wrap:wrap;gap:28px;align-items:flex-start;padding-top:44px;padding-bottom:24px}
.days{flex:999 1 600px;min-width:0;display:flex;flex-direction:column;gap:10px}
.day{display:flex;flex-wrap:wrap;align-items:center;gap:16px}
.day .when{width:78px}
.day .when b{display:block;font-family:var(--display);font-size:26px;line-height:1.1}
.day .wx{flex:1 1 220px;min-width:0}
.day .wx b{display:block;font-size:15px}
.day .wx span{font-size:14px;color:var(--dim)}
.day .cond{text-align:right}
.day .cond b{display:block;font-family:var(--display);font-size:24px}
.day .cond span{font-size:12px;color:var(--dim)}
aside.side{flex:1 1 320px;min-width:0;display:flex;flex-direction:column;gap:16px}
.kv{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;font-size:14px}
.kv div span{display:block;font-size:12px;color:var(--dim)}
.kv div b{font-weight:600}
.soon{background:var(--raise);border:1px dashed #3A5677}

/* planner */
.planner{display:flex;flex-wrap:wrap;gap:24px;align-items:flex-start}
.map-wrap{flex:999 1 560px;min-width:0}
.map{position:relative;height:620px;border:1px solid var(--line);border-radius:24px;background:var(--panel2);overflow:hidden}
.map .pt{position:absolute;width:16px;height:16px;margin:-8px 0 0 -8px;border-radius:50%;border:0;padding:0;cursor:pointer}
.map .pt.green{background:var(--q-fg);box-shadow:0 0 0 4px rgba(107,227,160,.22)}
.map .pt.yellow{background:var(--b-fg);box-shadow:0 0 0 4px rgba(247,194,90,.22)}
.map .pt.red{background:var(--p-fg);box-shadow:0 0 0 4px rgba(255,138,122,.22)}
.map .pt.dim{opacity:.15}
.map .rlab{position:absolute;font-family:var(--display);font-weight:800;font-size:20px;letter-spacing:1px;text-transform:uppercase;color:#3A5677;pointer-events:none}
.map-tip{position:absolute;z-index:5;pointer-events:none;background:rgba(17,30,46,.96);border:1px solid var(--line3);border-radius:14px;padding:10px 12px;font-size:13px;white-space:nowrap;transform:translate(-50%,calc(-100% - 16px));display:none;box-shadow:0 10px 30px rgba(0,0,0,.45),0 0 0 1px rgba(143,211,255,.06);backdrop-filter:blur(6px)}
.map-tip b{display:block;font-size:15px;margin-bottom:6px}
.map-tip .tip-row{display:flex;align-items:center;gap:8px}
.map-tip small{color:var(--dim)}
.map-tip .tip-go{display:block;margin-top:8px;color:var(--accent);font-weight:700;pointer-events:auto}
.map-tip.below{transform:translate(-50%,16px)}
.ranked{flex:1 1 360px;min-width:0}
.ranked ol{list-style:none;margin:0;padding:0}
.ranked li{display:flex;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--line)}
.ranked li .n{width:26px;font-family:var(--display);font-weight:800;font-size:22px;color:#4D6683}
.ranked li .nm{flex:1 1 auto;min-width:0}
.ranked li .nm a{color:var(--text);font-weight:600}
.ranked li .nm small{display:block;font-size:12px;color:var(--faint)}

/* crowd meter + closed states */
.meter{display:block;width:44px;height:5px;border-radius:3px;background:rgba(255,255,255,.12);overflow:hidden;margin-top:5px}
.meter i{display:block;height:100%;border-radius:3px;background:currentColor}
.cell small{font-size:11px}
.cell.closed{background:#162231;color:#7F93A8}
.cell.closed b{font-size:18px}
.chip.closed{background:#1A2738;color:#9DB0C4}
.chip.closed::before{background:#5E7189}
.grid tr.shut th[scope=row] a{color:var(--dim)}
.tag{display:inline-block;margin-left:8px;font-style:normal;font-size:11px;font-weight:600;color:var(--dim);border:1px solid var(--line3);border-radius:999px;padding:1px 8px;vertical-align:2px}
.map .pt.closed{background:#3A4A5E}

/* where-do-you-ski + best day */
button.pill{background:transparent;font:inherit;font-size:14px;color:var(--soft);cursor:pointer;min-height:36px}
button.pill:hover{border-color:var(--accent);color:var(--text)}
.best{display:flex;flex-direction:column;align-items:flex-start;gap:8px;max-width:560px;border-color:#2E5578;background:linear-gradient(135deg,#12253A,#0F1E2F)}
.best-line{font-family:var(--display);font-weight:800;font-size:34px;line-height:1.02;text-transform:uppercase}
.best-line a{color:var(--text)}
.best-line a:hover{color:var(--accent-hover)}
.best-sub{margin:0;font-size:15px;color:var(--muted)}
.empty{margin:8px 0 4px;font-size:14px;color:var(--muted)}
.rank-row.preview a{color:var(--dim)}
.rank-row.preview .chip{opacity:.6}

/* explain the colors */
.explain{position:relative;font-size:14px}
.explain summary{cursor:pointer;color:var(--accent);list-style:none}
.explain summary::-webkit-details-marker{display:none}
.explain dl{position:absolute;right:0;top:28px;z-index:5;width:320px;max-width:86vw;margin:0;padding:16px;background:var(--panel);border:1px solid var(--line2);border-radius:16px;box-shadow:0 12px 32px rgba(0,0,0,.45);display:grid;grid-template-columns:auto 1fr;gap:10px 12px;align-items:center}
.explain dd{margin:0;color:var(--soft)}
.explain dd.small{grid-column:1/-1;font-size:12px;color:var(--faint)}

/* picker dialog */
dialog.picker{border:1px solid var(--line2);border-radius:24px;background:var(--panel);color:var(--text);padding:0;width:min(640px,94vw);max-height:90vh}
dialog.picker::backdrop{background:rgba(4,10,18,.75);backdrop-filter:blur(3px)}
.picker-inner{padding:28px;display:flex;flex-direction:column;gap:14px}
.picker-head{display:flex;justify-content:space-between;align-items:center}
.picker-head h2{font-size:44px}
.picker-sub{margin:0;color:var(--muted)}
.pick-btns{display:flex;flex-wrap:wrap;gap:8px}
.pick-btns .filter:hover{border-color:var(--accent)}
.x{background:transparent;border:0;color:var(--dim);font-size:32px;line-height:1;cursor:pointer;min-width:44px;min-height:44px}
.link-btn{align-self:flex-start;background:none;border:0;padding:8px 0;color:var(--accent);font:600 15px var(--body);cursor:pointer}

/* mountain page */
.verdict{margin:0 0 6px;max-width:620px;font-size:22px;font-weight:600;line-height:1.35;color:var(--text)}
.tile .big{font-size:34px;white-space:nowrap}
.tile .meter{width:100%;height:6px;margin-top:10px}
.tile.shut .big{color:var(--faint)}
.tile:not(.shut) .big + .meter{color:inherit}
.day.shut{opacity:.55}

/* legal pages */
.legal{max-width:760px}
.legal h1{font-size:clamp(48px,7vw,72px);margin:8px 0 14px}
.legal .lede{max-width:none;margin-bottom:24px}
.legal-toc ol{margin:0;padding-left:20px;columns:2;column-gap:28px;font-size:15px}
.legal-toc li{margin:3px 0;break-inside:avoid}
.legal section{padding-top:28px}
.legal h2{font-size:22px;margin-bottom:8px}
.legal p,.legal li{color:var(--soft);font-size:16px;line-height:1.65}
.legal strong{color:var(--text)}
@media (max-width:640px){.legal-toc ol{columns:1}}

/* social kit */
.kit{margin-top:28px;display:flex;flex-direction:column;gap:14px}
.kit h2{font-size:48px}
.kit h3{font-size:17px;margin-top:8px}
.kit h3 small{font-weight:500;color:var(--dim);font-size:13px;margin-left:6px}
.strip{display:flex;gap:10px;overflow-x:auto;padding-bottom:6px}
.strip img{height:300px;border-radius:12px;border:1px solid var(--line2);display:block}
.strip.tall img{height:360px}
.vid{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.vid video{height:360px;border-radius:12px;border:1px solid var(--line2);background:#000}
.cap textarea{width:100%;background:var(--bg);color:var(--soft);border:1px solid var(--line3);border-radius:12px;padding:12px;font:14px/1.5 var(--body);resize:vertical}
.cap-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
.copy{min-height:36px}

/* guides */
.guide{max-width:980px}
.guide h1{font-size:clamp(44px,6.5vw,76px);margin:8px 0 14px}
.guide .lede{max-width:760px;margin-bottom:20px}
.crumbs{font-size:14px;color:var(--dim);margin-bottom:14px}
.crumbs a{color:var(--dim)}
.answer{margin:8px 0 22px;border-color:#2E5578;background:linear-gradient(135deg,#12253A,#0F1E2F)}
.answer p{margin:6px 0 0;font-size:17px;color:var(--soft);line-height:1.6}
.g-sec{padding-top:30px}
.g-sec h2{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:34px;margin-bottom:12px}
.g-sec p,.g-sec li{color:var(--soft);line-height:1.65}
.g-table{width:100%;border-collapse:collapse;font-size:15px;min-width:560px}
.g-table th,.g-table td{padding:10px 12px;border-top:1px solid var(--line);text-align:left}
.g-table thead th{color:var(--dim);font-size:12px;text-transform:uppercase;letter-spacing:.6px;border-top:0}
.g-table thead th b{display:block;font-family:var(--display);font-size:18px;color:var(--text)}
.g-table th[scope=row] a{color:var(--text)}
.g-table .chip{font-size:12px;padding:4px 9px}
.pick{margin:0 0 10px}
.tips li,.tiplist li{margin:8px 0}
.faq{border-top:1px solid var(--line);padding:12px 0}
.faq summary{cursor:pointer;font-weight:600;color:var(--text)}
.faq p{margin:8px 0 0}
.bars{display:flex;flex-direction:column;gap:8px;max-width:620px}
.bar-row{display:grid;grid-template-columns:48px 1fr 70px;gap:12px;align-items:center;font-size:14px;color:var(--soft)}
.bar{height:12px;border-radius:6px;background:var(--line)}
.bar i{display:block;height:100%;border-radius:6px}
.bar i.green{background:var(--q-fg)}.bar i.yellow{background:var(--b-fg)}.bar i.red{background:var(--p-fg)}
.week{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}
.wk{display:flex;flex-direction:column;align-items:center;gap:6px;font-size:13px;color:var(--dim)}
.g-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;margin-top:10px}
.g-card{display:flex;flex-direction:column;gap:6px;color:var(--text)}
.g-card:hover{border-color:var(--accent);color:var(--text)}
.g-card h3{font-size:19px;line-height:1.3}
.g-card p{margin:0;font-size:14px;color:var(--muted)}
.g-reg h3{font-size:16px;margin:18px 0 4px;color:var(--accent)}
.g-reg p{margin:0;font-size:15px}
.prose h2{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:30px;margin:28px 0 8px}
.prose p,.prose li{color:var(--soft);font-size:17px;line-height:1.7}
.guide-link{display:block;color:var(--text)}
.guide-link:hover{border-color:var(--accent);color:var(--text)}

/* forms */
.hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.form-msg{margin:6px 0 0;font-size:14px;min-height:1px}
.form-msg.good{color:var(--q-fg)}
.form-msg.bad{color:var(--p-fg)}
.fine{margin:4px 0 0;font-size:12px;color:var(--faint)}
.fine a{color:var(--dim);text-decoration:underline}
input,select{font:16px var(--body)}
.subscribe{flex:1 1 360px;display:flex;flex-wrap:wrap;gap:10px;align-items:center;min-width:0}
.subscribe input{flex:1 1 40%;min-width:0;min-height:48px;padding:0 18px;border-radius:999px;border:1px solid var(--line3);background:var(--bg);color:var(--text)}
.subscribe input::placeholder{color:var(--faint)}
.subscribe .btn{min-height:48px;flex:1 1 100%}
.signup .fine{font-size:12px;margin-top:0}
.signup .form-msg{font-size:15px;margin:0}
.subscribe .form-msg,.subscribe .fine{flex-basis:100%}

/* live check-ins */
.live{display:flex;flex-direction:column;gap:12px;border-color:#2E5578}
.live-head{display:flex;justify-content:space-between;align-items:center}
.live-age{font-size:12px;color:var(--faint)}
.pulse{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--faint);margin-right:8px;box-shadow:0 0 0 0 rgba(107,227,160,.6)}
.live.fresh .pulse{background:var(--q-fg);animation:pulse 2s infinite}
@keyframes pulse{70%{box-shadow:0 0 0 8px rgba(107,227,160,0)}100%{box-shadow:0 0 0 0 rgba(107,227,160,0)}}
@media (prefers-reduced-motion:reduce){.pulse{animation:none}}
.live-sum{display:flex;flex-wrap:wrap;gap:8px}
.live-empty,.live-count{margin:0;font-size:14px;color:var(--muted);flex-basis:100%}
.checkin{display:flex;flex-direction:column;gap:10px;border-top:1px solid var(--line);padding-top:14px}
.checkin fieldset{border:0;margin:0;padding:0}
.checkin legend{font-size:12px;font-weight:600;color:var(--dim);margin-bottom:6px;text-transform:uppercase;letter-spacing:.8px}
.opts{display:flex;flex-wrap:wrap;gap:6px}
.opts button{min-height:40px;padding:0 13px;border-radius:999px;border:1px solid var(--line3);background:var(--bg);color:#E3EAF2;font:600 14px var(--body);cursor:pointer}
.opts button[aria-pressed=true]{background:var(--accent);color:var(--bg);border-color:var(--accent)}

/* polls */
.poll-page{max-width:760px}
.poll-page h1{font-size:clamp(52px,8vw,84px);margin:6px 0 12px}
.poll-form{display:flex;flex-direction:column;gap:12px;margin-top:20px}
.poll-form label,.pv-name{font-size:13px;font-weight:600;color:var(--dim)}
.poll-form input,.poll-page #pv-name,.share-box input{min-height:46px;padding:0 16px;border-radius:12px;border:1px solid var(--line3);background:var(--bg);color:var(--text);width:100%}
.p-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:10px 0;border-top:1px solid var(--line)}
.p-row select{min-height:46px;padding:0 12px;border-radius:12px;border:1px solid var(--line3);background:var(--bg);color:var(--text)}
.p-row .p-mtn{flex:2 1 200px;min-width:0}
.p-row .p-day{flex:1 1 120px}
.poll-form .btn{align-self:flex-start}
.share-box{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;margin:16px 0 20px}
.share-box > div:first-child{flex:1 1 300px;display:flex;flex-direction:column;gap:8px;min-width:0}
.share-btns{display:flex;gap:8px}
.pv-opts{display:flex;flex-direction:column;gap:10px;margin-top:16px}
.pv-opt{display:flex;flex-direction:column;gap:10px;text-align:left;color:var(--text);font:inherit;cursor:pointer;width:100%}
.pv-opt:hover{border-color:var(--accent)}
.pv-opt.mine{border-color:var(--accent);box-shadow:0 0 0 2px rgba(143,211,255,.35)}
.pv-top{display:flex;justify-content:space-between;align-items:center;gap:12px}
.pv-name-line{display:flex;flex-direction:column}
.pv-name-line b{font-size:19px}
.pv-name-line span{font-size:14px;color:var(--dim)}
.pv-opt .bar{height:10px}
.bar i.vote{background:var(--accent)}
.pv-votes{font-size:14px;color:var(--muted)}

.status-line{margin:8px 0 0;font-size:14px;color:var(--dim)}
.status-line b{color:var(--soft);font-weight:600}
.status-line a{color:var(--accent)}
.tag.t-delayed,.tag.t-closed{color:var(--p-fg);border-color:#5a2a26}
.tag.t-open{color:var(--q-fg)}

.gear ul{list-style:none;margin:10px 0 8px;padding:0;display:flex;flex-direction:column;gap:10px}
.gear li a{font-weight:600;color:var(--text)}
.gear li a:hover{color:var(--accent)}
.gear li span{display:block;font-size:13px;color:var(--dim)}

/* batch 1: pass mode, steal days, calendar, app, wrapped */
.pills{display:flex;flex-wrap:wrap;gap:8px}
.steal-box{max-width:560px;border-color:#2c6b4a;background:linear-gradient(135deg,#10291d,#0f1e2f)}
.tools-row{display:flex;flex-wrap:wrap;gap:12px 24px;align-items:center;margin-bottom:12px}
.toggle{display:inline-flex;align-items:center;gap:8px;font-size:14px;color:var(--soft);cursor:pointer}
.toggle input{width:18px;height:18px;accent-color:var(--accent)}
.cal-link{font-size:14px;color:var(--accent)}
.cell{position:relative}
.cell .star{position:absolute;top:-6px;right:-6px;width:18px;height:18px;border-radius:50%;background:var(--q-fg);color:var(--bg);font-style:normal;font-size:11px;line-height:18px;text-align:center;font-weight:800}
.cell.steal{box-shadow:0 0 0 2px var(--q-fg)}
.cell.blk{background:repeating-linear-gradient(135deg,#2a1a1a 0 6px,#1d1414 6px 12px);color:#c99}
.cell.blk small::after{content:" · blackout";font-size:8px}
.grid tr.nopass th[scope=row] a,.grid tr.nopass td{opacity:.35}
.passcard{display:flex;flex-direction:column;gap:6px;border-color:#2E5578}
.pc-head{font-size:18px}
.pc-warn{margin:0;color:var(--p-fg);font-weight:600;font-size:14px}
.season-log{display:flex;flex-direction:column;gap:10px;align-items:flex-start}
.install-btn{min-height:40px}
.wrap-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin:10px 0 18px}
.wrap-stat{display:flex;flex-direction:column;gap:4px}
.wrap-stat b{font-family:var(--display);font-weight:800;font-size:52px;line-height:1;color:var(--accent)}
.wrap-stat span{color:var(--soft);font-size:14px}
.wrap-list{color:var(--muted);font-size:15px;line-height:1.8;padding-left:18px}

.alerts-row{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;position:relative;z-index:2}
.alerts-btn{background:rgba(17,30,46,.92);border-color:var(--line3);backdrop-filter:blur(6px);box-shadow:0 4px 18px rgba(0,0,0,.35)}
.alerts-btn:hover{border-color:var(--accent)}
.alerts-btn[disabled]{opacity:.7;cursor:progress}
.alerts-msg{max-width:440px;color:var(--soft)}
.alerts-msg:not(:empty){background:rgba(10,20,32,.88);border:1px solid var(--line2);border-radius:12px;padding:8px 12px;backdrop-filter:blur(6px)}
.drive-top{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.drive-top h2{font-size:18px}
.drive-plain{margin:0;font-size:14px;color:var(--soft)}
.live-profile{margin:0;font-size:14px;color:var(--soft);border-left:3px solid var(--accent);padding-left:10px}
#drive .chip{align-self:flex-start}

.hidden{display:none !important}
@media (max-width:640px){
  .hero-inner{padding-top:40px;padding-bottom:110px}
  .best-line{font-size:28px}
  .picker-head h2{font-size:36px}
  .picker-inner{padding:22px}
  .signup{padding:28px}
  .map{height:420px}
}

/* ---- batch 3: night skiing, live roads, scorecard */
.night .night-sched{margin:8px 0 4px;font-weight:600;font-size:15px}
.night-card{display:flex;flex-direction:column;gap:6px;color:inherit;text-decoration:none}
.night-card h3{font-size:20px}
.night-card p{margin:0;font-size:14px;color:var(--muted)}
.road-box{display:flex;flex-direction:column;gap:10px}
.road-box .chip{align-self:flex-start}
.road-item{display:flex;flex-direction:column;gap:2px;font-size:14px}
.road-item span{color:var(--muted)}
.score-top{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:20px}
.score-num{flex:1 1 160px;display:flex;flex-direction:column}
.score-num b{font-family:var(--display, inherit);font-size:44px;line-height:1}
.score-num span{font-size:13px;color:var(--muted)}
.score-table{width:100%;border-collapse:collapse;font-size:14px}
.score-table th,.score-table td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line, rgba(0,0,0,.08))}

.btn:disabled,.btn.is-off{opacity:.55;cursor:not-allowed;border-style:dashed}
.btn:disabled:hover,.btn.is-off:hover{transform:none;box-shadow:none}

/* glows: only for things worth your attention (steal days, a quiet best day, fresh check-ins) */
@keyframes breathe-green{0%,100%{box-shadow:0 0 0 1px rgba(107,227,160,.25),0 0 18px rgba(107,227,160,.10)}50%{box-shadow:0 0 0 1px rgba(107,227,160,.45),0 0 32px rgba(107,227,160,.24)}}
.best.glow{border-color:#2c6b4a;animation:breathe-green 4s ease-in-out infinite}
.steal-box:not([hidden]){animation:breathe-green 3.2s ease-in-out infinite}
.cell.steal{box-shadow:0 0 0 2px var(--q-fg),0 0 12px rgba(107,227,160,.45)}
@media (prefers-reduced-motion:reduce){.best.glow,.steal-box:not([hidden]){animation:none;box-shadow:0 0 0 1px rgba(107,227,160,.4),0 0 24px rgba(107,227,160,.18)}}

/* pass math */
.passmath .pp-deadlines ul{margin:8px 0 0;padding-left:18px;display:flex;flex-direction:column;gap:6px}
.calc{display:flex;flex-direction:column;gap:14px;margin-top:20px}
.calc label{display:flex;flex-direction:column;gap:6px;font-weight:600;font-size:15px}
.calc input,.pass-cost input{font:inherit;padding:12px 14px;border-radius:12px;border:1px solid var(--line);background:var(--bg);color:var(--text);max-width:220px}
.calc-line{margin:0;font-weight:700}
.calc-list{display:flex;flex-direction:column;gap:10px}
.calc-row{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;padding:10px 0;border-top:1px solid var(--line)}
.calc-row b{flex:1 1 180px}
.calc-row span{font-size:14px;color:var(--muted)}
.calc-row .chip{color:inherit}
.pp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}
.pp-card{display:flex;flex-direction:column;gap:8px}
.pp-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.pp-head h3{font-size:19px}
.pp-cost{display:flex;flex-direction:column;align-items:flex-end;text-align:right}
.pp-price{font-family:var(--display);font-size:30px;line-height:1}
.pp-access{margin:0;font-size:14px;color:var(--muted)}
.pp-deals{margin:0;padding-left:18px;font-size:14px}
.dl-pill{align-self:flex-start;font-size:14px;font-weight:600;padding:8px 14px;border-radius:999px;border:1px solid #6b5a2e;background:#2a2412;color:#f3d38a}
.dl-pill:hover{border-color:#f3d38a}
.pass-cost{margin-top:20px;display:flex;flex-direction:column;gap:8px}
.pass-cost label{font-weight:600}
.pc-row{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.pc-out{font-family:var(--display);font-size:24px}

.site-footer .install-btn{font:inherit;font-size:inherit;padding:0;margin-left:4px}

/* conditions, trip, prefs */
.conditions{display:flex;flex-direction:column;gap:10px}
.cond-links{display:flex;flex-wrap:wrap;gap:8px}
.cond-links .btn{padding:10px 14px;font-size:14px}
.trip{display:flex;flex-direction:column;gap:8px}
.trip-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.trip-list li{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;font-size:14px}
.trip-list li a,.trip-wk a{font-size:13px}
.trip-wk{margin:0;font-size:14px;display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.dt{color:var(--faint)}
#home-city{max-width:280px}

/* families */
.kid{display:block;font-size:13px;margin-top:4px}
.kid.ok{color:var(--q-fg)}
.kid.no{color:var(--faint)}
.family{display:flex;flex-direction:column;gap:10px}
.fam-acts{margin:0;padding-left:18px;font-size:14px}
.fam-card{display:flex;flex-direction:column;gap:8px;color:inherit;text-decoration:none}
.fam-card ul{margin:0;padding-left:18px;font-size:14px;color:var(--muted)}
.fam-card .chip{align-self:flex-start}
.families .tips{display:flex;flex-direction:column;gap:6px;padding-left:18px}

.card-note{font-size:16px;line-height:1.55;color:var(--muted);margin:18px 0 24px}

/* ---- phone polish */
@media (max-width:640px){
  .nav{gap:10px 12px;padding-top:12px;padding-bottom:12px}
  .nav-links{flex-wrap:nowrap;overflow-x:auto;gap:18px;width:100%;padding-bottom:4px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .nav-links::-webkit-scrollbar{display:none}
  .nav-links a{white-space:nowrap;flex:0 0 auto}
  .nav .btn{min-height:36px;padding:0 14px;font-size:14px}
  .pills{gap:6px}
  button.pill{font-size:13px;min-height:34px;padding:4px 12px}
  .hero-inner{padding-top:32px}
  /* compact 7-day cards: day + crowd on one row, weather under it, conditions inline */
  .day{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:6px 14px;padding:16px 18px}
  .day .when{width:auto;display:flex;align-items:baseline;gap:8px}
  .day .when b{font-size:22px;display:inline}
  .day .wx{grid-column:1 / -1;flex:none}
  .day .cond{grid-column:3;grid-row:1;text-align:right}
  .day .cond b{font-size:20px}
  .day .cond span{display:block}
  .day > .cell{grid-column:2;justify-self:start}
  .card{padding:20px}
}

.brand{order:1}.nav-links{order:2}.nav-cta{order:3}
@media (max-width:640px){
  .nav-cta{order:2;margin-left:auto}
  .nav-links{order:3}
}
@media (max-width:380px){ .nav-cta{font-size:13px;padding:0 10px} }
@media (min-width:641px){ .nav{justify-content:flex-start} .nav-links{margin-left:auto} }
@media (max-width:640px){
  .nav-links{gap:16px;font-size:14px;-webkit-mask-image:linear-gradient(90deg,#000 88%,transparent);mask-image:linear-gradient(90deg,#000 88%,transparent)}
}

.calc select{font:inherit;padding:12px 14px;border-radius:12px;border:1px solid var(--line);background:var(--bg);color:var(--text);max-width:420px}

/* family extras */
.dress{display:flex;flex-direction:column;gap:8px}
.dress-row{margin:0;font-size:15px;line-height:1.5}
.dress-row b{display:block;font-size:14px;color:var(--soft)}
.famcost{display:flex;flex-direction:column;gap:10px}
.famcost-in{display:flex;flex-wrap:wrap;gap:10px}
.famcost-in label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--soft)}
.famcost-in input{width:84px;font:inherit;padding:8px 10px;border-radius:10px;border:1px solid var(--line);background:var(--bg);color:var(--text)}
.famcost-out{margin:0;font-weight:600}
.firstday .card{margin-top:20px}
.fd-list{display:flex;flex-direction:column;gap:10px;margin:10px 0}
.fd-row{display:flex;flex-direction:column;gap:4px;padding:12px 0;border-top:1px solid var(--line);color:inherit;text-decoration:none}
.fd-row span{font-size:14px;color:var(--muted)}
.fd-row .chip{align-self:flex-start;color:inherit}
.fd-steps{display:flex;flex-direction:column;gap:10px;padding-left:20px;line-height:1.55}
.fd-pack{list-style:none;padding:0;margin:8px 0;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px}
.fd-pack label{display:flex;gap:12px;align-items:flex-start;font-size:16px;font-weight:600;cursor:pointer;height:100%;box-sizing:border-box;padding:12px 14px;border-radius:14px;background:var(--panel2);border:1px solid var(--line2);transition:background .2s,border-color .2s}
.fd-pack label:hover{border-color:var(--line3)}
.fd-pack input{flex:none;appearance:none;-webkit-appearance:none;width:22px;height:22px;margin:1px 0 0;border:2px solid var(--line3);border-radius:7px;background:transparent;display:grid;place-items:center;cursor:pointer;transition:background .15s,border-color .15s}
.fd-pack input:checked{background:var(--q-fg);border-color:var(--q-fg)}
.fd-pack input:checked::after{content:'✓';color:#0A1420;font-weight:900;font-size:14px;line-height:1}
.fd-pack input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.fd-pack label:has(input:checked){background:var(--q-bg);border-color:rgba(107,227,160,.35)}
.milestones{margin-top:20px;display:flex;flex-direction:column;gap:10px}
.ms-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px}
.ms{display:flex;flex-direction:column;align-items:flex-start;gap:4px;text-align:left;padding:14px;border-radius:16px;border:1px dashed var(--line3);background:transparent;color:var(--text);font:inherit;cursor:pointer}
.ms.done{border-style:solid;border-color:#2c6b4a;background:#10291d}
.ms-ico{font-size:24px}
.ms small{font-size:12px;color:var(--muted)}
.ms-who{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--soft)}
.ms-who input{font:inherit;padding:8px 10px;border-radius:10px;border:1px solid var(--line);background:var(--bg);color:var(--text);max-width:220px}

/* celebration */
.toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%);z-index:60;background:#10291d;border:1px solid #2c6b4a;color:var(--text);
  padding:12px 18px;border-radius:999px;font-weight:600;box-shadow:0 10px 30px rgba(0,0,0,.4);transition:opacity .4s,transform .4s;max-width:90vw}
.toast.out{opacity:0;transform:translate(-50%,10px)}
.confetti{position:fixed;top:30vh;z-index:59;font-size:18px;pointer-events:none;animation:confetti 1.6s cubic-bezier(.2,.6,.3,1) forwards}
@keyframes confetti{0%{transform:translate(0,0) rotate(0);opacity:1}100%{transform:translate(var(--dx),var(--dy)) rotate(var(--r));opacity:0}}
.ms.done{animation:none}
.ms:active{transform:scale(.97)}
/* printable first-season card */
.fs-wrap{padding-top:32px}
.fs-actions{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px}
.fs-card{background:#fff;color:#0A1420;border-radius:20px;padding:28px;max-width:860px;margin:0 auto;border:3px solid #8FD3FF}
.fs-head{text-align:center;margin-bottom:18px}
.fs-title{font-family:var(--display);font-weight:800;font-size:48px;text-transform:uppercase;letter-spacing:.5px;color:#0A1420}
.fs-name{font-size:16px;margin-top:6px}
.fs-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.fs-item{border:2px dashed #9AB0C7;border-radius:16px;padding:12px;display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto auto;gap:4px 10px;align-items:center;min-height:150px}
.fs-ico{font-size:30px;grid-row:1}
.fs-box{width:22px;height:22px;border:2px solid #0A1420;border-radius:5px;justify-self:end;grid-column:2;grid-row:1}
.fs-item b{grid-column:1 / -1;font-size:16px}
.fs-date{grid-column:1 / -1;font-size:13px;color:#3A4A5E}
.fs-sticker{grid-column:1 / -1;justify-self:center;width:62px;height:62px;border:2px dotted #9AB0C7;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;color:#9AB0C7}
.fs-foot{text-align:center;font-size:13px;margin-top:16px;color:#3A4A5E}
@media (max-width:640px){.fs-grid{grid-template-columns:repeat(2,1fr)}.fs-title{font-size:34px}}
@media print{
  body{background:#fff !important}
  .site-header,.site-footer,.no-print,.skip{display:none !important}
  .fs-wrap{padding:0}.fs-card{border:none;padding:0;max-width:none}
  .fs-grid{grid-template-columns:repeat(3,1fr)}
  .fs-item{break-inside:avoid;min-height:0}
  @page{margin:12mm}
}
/* planner: zoom + later dates */
.map .pt{transition:opacity .25s,transform .15s}
.map .pt[hidden],.map .mlab[hidden],.map .rlab[hidden]{display:none}
.map .mlab{position:absolute;transform:translate(12px,-50%);font-size:12px;font-weight:600;color:var(--text);white-space:nowrap;pointer-events:none;text-shadow:0 1px 3px rgba(0,0,0,.6)}
.map .mlab.flip{transform:translate(calc(-100% - 12px),-50%)}
.filter.later{display:inline-flex;align-items:center;gap:8px;cursor:pointer}
.filter.later input{background:transparent;border:0;color:inherit;font:inherit;color-scheme:dark;padding:0;min-width:0}
.filter.later[aria-pressed="true"] input{color-scheme:light}
.plan-note{margin:10px 0 0;font-size:14px;color:var(--dim);max-width:640px}
.fs-pick{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--soft)}
.fs-pick select{background:var(--panel);color:var(--text);border:1px solid var(--line3);border-radius:10px;padding:8px 10px;font:inherit}
.fs-box{display:flex;align-items:center;justify-content:center;font-weight:800;font-size:16px;line-height:1;color:#0A8A4A}
.fs-item.got{border-style:solid;border-color:#6BE3A0;background:#F1FBF5}
.fs-item.got .fs-date{color:#0A1420;font-weight:600}
@media print{.fs-item.got{background:none}}

/* planner map: basemap, glow, branding */
.map{background:radial-gradient(ellipse at 30% 20%,#12263D 0%,#0D1B2B 45%,#0A1522 100%);box-shadow:inset 0 0 80px rgba(0,0,0,.35)}
.map::after{content:"";position:absolute;inset:0;pointer-events:none;border-radius:inherit;box-shadow:inset 0 0 0 1px rgba(143,211,255,.05),inset 0 -60px 80px -40px rgba(10,20,32,.8)}
.map-base,.map-base svg{position:absolute;inset:0;width:100%;height:100%}
.map-base .st{fill:#132A42;stroke:#24476B;stroke-width:1;vector-effect:non-scaling-stroke;stroke-linejoin:round;transition:fill .4s,stroke .4s}
.map-base .st.mx{fill:#0F2033;stroke:#1B3350}
.map-base .st.ski{cursor:pointer}
.map-base .st.ski:hover{fill:#183553}
.map-base .st.on{fill:#1A3B5E;stroke:#8FD3FF;stroke-opacity:.75;stroke-width:1.5}
.map.zoomed .map-base .st:not(.on){fill:#102338}
.map .pt{z-index:2}
.map .pt:hover,.map .pt:focus-visible{transform:scale(1.45);z-index:3;outline:none}
.map .pt.green{animation:dot-glow 2.8s ease-in-out infinite}
@keyframes dot-glow{0%,100%{box-shadow:0 0 0 4px rgba(107,227,160,.18),0 0 10px rgba(107,227,160,.35)}50%{box-shadow:0 0 0 7px rgba(107,227,160,.10),0 0 22px rgba(107,227,160,.6)}}
.map .pt.yellow{box-shadow:0 0 0 4px rgba(247,194,90,.18),0 0 12px rgba(247,194,90,.35)}
.map .pt.red{box-shadow:0 0 0 4px rgba(255,138,122,.18),0 0 12px rgba(255,138,122,.35)}
.map .pt.closed{background:#6A7F98;box-shadow:0 0 0 2px #0B1828,0 0 0 4px rgba(106,127,152,.25)}
.map .pt.dim{opacity:.18;animation:none}
.map .mlab{z-index:2}
.map-badge{position:absolute;top:16px;left:18px;z-index:4;pointer-events:none;display:flex;flex-direction:column;gap:2px}
.map-badge b{font-family:var(--display);font-weight:800;font-size:26px;letter-spacing:.5px;text-transform:uppercase;color:var(--text);text-shadow:0 2px 12px rgba(0,0,0,.6)}
.map-badge span{font-size:13px;color:var(--soft)}
.map-back{position:absolute;top:16px;right:16px;z-index:4;min-height:36px;padding:0 14px;border-radius:999px;border:1px solid var(--line3);background:rgba(17,30,46,.85);color:var(--text);font:600 14px var(--body);cursor:pointer;backdrop-filter:blur(6px)}
.map-back:hover{border-color:var(--accent)}
.map-mark{position:absolute;right:16px;bottom:14px;z-index:1;display:flex;align-items:center;gap:6px;font-family:var(--display);font-weight:800;font-size:15px;letter-spacing:1.5px;text-transform:uppercase;color:#8FD3FF;opacity:.45;pointer-events:none}
@media (prefers-reduced-motion:reduce){.map .pt.green{animation:none}}
@media (max-width:640px){.map-badge b{font-size:20px}}
/* packing list */
.pk-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap}
.pk-count{font-size:15px;color:var(--q-fg);font-weight:700}
.pk-bar{height:8px;border-radius:99px;background:var(--panel2);border:1px solid var(--line);overflow:hidden;margin:10px 0 14px}
.pk-bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,#4FC98A,var(--q-fg));border-radius:inherit;transition:width .35s ease}
.pk-trip{display:inline-flex;gap:0;padding:4px;border-radius:999px;background:var(--panel2);border:1px solid var(--line2);margin:0 0 6px}
.pk-trip button{min-height:38px;padding:0 18px;border:0;border-radius:999px;background:transparent;color:var(--soft);font:600 15px var(--body);cursor:pointer}
.pk-trip button[aria-pressed=true]{background:var(--accent);color:var(--bg)}
.pk-group h3{display:flex;justify-content:space-between;align-items:baseline;gap:10px;font-size:18px;color:var(--text);margin:22px 0 10px;padding-bottom:8px;border-bottom:1px solid var(--line)}
.pk-gcount{font-size:13px;font-weight:600;color:var(--dim)}
.pk-gcount.done{color:var(--q-fg)}
.pk-group[hidden]{display:none}
.fd-pack label span{display:flex;flex-direction:column;gap:4px}
.fd-pack label small{display:block;font-size:13.5px;font-weight:400;color:var(--muted);line-height:1.4}
.fd-pack .pk-t{font-weight:600}
.fd-pack input:checked + span .pk-t{color:var(--dim);text-decoration:line-through;text-decoration-thickness:2px;text-decoration-color:rgba(107,227,160,.8)}
.fd-pack input:checked + span small{color:var(--faint)}
@media print{
  body.print-pack .firstday>*:not(.pk-card){display:none!important}
  body.print-pack .pk-group[hidden]{display:none!important}
  .pk-card{background:#fff;color:#000;border:none}
  .pk-card .fd-pack small{color:#444}
}
/* region filters grouped by area, A to Z */
.fgroups{display:flex;flex-direction:column;gap:8px;margin-bottom:10px}
.fgroups>.fall{align-self:flex-start;margin-bottom:2px}
.fgroup{display:grid;grid-template-columns:190px 1fr;align-items:center;gap:6px 12px}
.flabel{font-size:12px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--dim)}
.fgroup .filters{margin:0}
.region-tools .search{margin-top:6px}
@media (max-width:640px){.fgroup{grid-template-columns:1fr}.flabel{margin-top:4px}}
/* shared family trip board */
.plan-cta{margin:0 0 22px;color:var(--soft)}
.plan-cta a{color:var(--accent);font-weight:700}
.trip .trip-add{margin-top:12px}
.trip-page{padding-top:40px}
.trip-page h1.display{font-size:clamp(44px,7vw,80px)}
.trip-form{display:flex;flex-direction:column;gap:12px;margin-top:20px}
.trip-form label{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:600;color:var(--dim)}
.trip-form input:not([type=checkbox]),.trip-form select,.trip-me input,.trip-notes textarea{min-height:46px;padding:0 14px;border-radius:12px;border:1px solid var(--line3);background:var(--bg);color:var(--text);font:15px var(--body);width:100%;box-sizing:border-box}
.trip-form input[type=date]{color-scheme:dark}
.trip-row{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end}
.trip-row label{flex:1 1 120px}
.trip-row label.grow{flex:3 1 240px}
.trip-row label.check{flex:0 0 auto;flex-direction:row;align-items:center;gap:8px;min-height:46px;font-size:15px;color:var(--soft)}
.trip-row label.check input{width:20px;height:20px;accent-color:var(--accent)}
.trip-row label[hidden]{display:none}
.trip-form .btn{align-self:flex-start}
.trip-recent h2{font-size:20px;margin-bottom:8px}
.trip-recent ul{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:6px}
.trip-recent a{color:var(--accent);font-weight:600}
.trip-top{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:12px}
.trip-meta{color:var(--soft);margin:6px 0 0;font-size:16px}
.trip-actions{display:flex;gap:10px;flex-wrap:wrap}
.trip-me{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:600;color:var(--dim);max-width:360px;margin:8px 0 20px}
.trip-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:18px;align-items:start}
.trip-empty b{font-size:18px}
.trip-opt{display:flex;flex-direction:column;gap:12px;position:relative}
.trip-opt.fav{border-color:rgba(107,227,160,.45);box-shadow:0 0 0 1px rgba(107,227,160,.2),0 0 28px rgba(107,227,160,.12)}
.trip-opt h3{font-size:26px;font-family:var(--display);font-weight:800;text-transform:uppercase;letter-spacing:.3px;margin:0}
.trip-opt h3 a{color:var(--text);text-decoration:none}
.trip-opt h3 a:hover{color:var(--accent)}
.tr-when{margin:-6px 0 0;font-weight:600;color:var(--soft)}
.tr-sub{margin:-8px 0 0;font-size:13px;color:var(--dim)}
.tr-badges{display:flex;flex-wrap:wrap;gap:6px}
.tr-badge{font-size:12px;font-weight:700;padding:4px 10px;border-radius:999px;background:var(--panel2);border:1px solid var(--line3);color:var(--soft)}
.tr-badge.fav{background:#3A1A2A;border-color:#7A3A55;color:#FFB3CF}
.tr-badge.quiet{background:var(--q-bg);border-color:rgba(107,227,160,.4);color:var(--q-fg)}
.tr-badge.cheap{background:#13283A;border-color:#2C5878;color:var(--accent)}
.tr-badge.close{background:#2E2410;border-color:#6A5222;color:var(--b-fg)}
.tr-row{display:grid;grid-template-columns:96px 1fr;gap:10px;padding-top:10px;border-top:1px solid var(--line)}
.tr-k{font-size:12px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--dim);padding-top:3px}
.tr-v{font-size:14px;color:var(--soft);display:flex;flex-direction:column;gap:6px;min-width:0}
.tr-days{display:flex;flex-wrap:wrap;gap:8px;flex-direction:row}
.tr-day{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:62px}
.tr-day small{font-size:12px;color:var(--dim)}
.tr-day .tr-w{color:var(--soft)}
.tr-note{margin:-4px 0 0}
.tr-link{color:var(--accent);font-weight:600;font-size:14px}
.tr-pass{font-size:13px}
.tr-pass.ok b{color:var(--q-fg)}
.tr-pass.warn b{color:var(--b-fg)}
.tr-pass.bad b{color:var(--p-fg)}
.tr-cost>div:not(.fine){display:flex;justify-content:space-between;gap:10px}
.tr-cost>div span{color:var(--dim)}
.tr-cost>div b{text-align:right;font-weight:600;color:var(--text)}
.tr-total{border-top:1px dashed var(--line3);padding-top:6px;font-size:16px}
.tr-total b{color:var(--q-fg)!important;font-weight:800!important}
.tr-kids b{color:var(--text)}
.tr-foot{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding-top:12px;border-top:1px solid var(--line)}
.tr-names{color:var(--dim)}
.tr-del{margin-left:auto;color:var(--faint)!important;font-size:13px}
.trip-notes{margin-top:20px;display:flex;flex-direction:column;gap:10px}
.trip-notes ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:12px}
.trip-notes li p{margin:4px 0 0;color:var(--soft);white-space:pre-wrap}
.trip-notes li small{color:var(--faint)}
.trip-notes textarea{padding:12px 14px;min-height:70px;resize:vertical}
.trip-notes .btn{align-self:flex-start}
@media (max-width:640px){.trip-grid{grid-template-columns:1fr}.tr-row{grid-template-columns:1fr;gap:6px}}
.trip-page [hidden]{display:none!important}
.tr-get,.tr-passes{display:flex;flex-direction:column;gap:4px}
.tr-cost>div:not(.fine) span{flex:none}
/* keep space for content the script fills in, so pages don't jump (CLS) */
.fd-row.skel{pointer-events:none;opacity:.35}
.fd-row.skel>*{background:var(--line);border-radius:6px;color:transparent;min-width:40%}
/* accounts */
.nav-acct{order:3;color:var(--soft);font-weight:600;font-size:15px;text-decoration:none;padding:8px 4px;min-width:84px;text-align:right}
.nav-acct:hover{color:var(--accent)}
@media (min-width:641px){.nav-cta{order:4}}
@media (max-width:640px){.nav-acct{order:2;margin-left:auto;min-width:0}.nav-cta{margin-left:0}}
.acct{max-width:720px}
.acct h1.display{font-size:clamp(44px,7vw,72px)}
.acct .card{margin-top:16px}
.acct .card h2{font-size:20px;margin-bottom:8px}
.acct-form{display:flex;flex-direction:column;gap:10px}
.acct-form label[for]{font-size:13px;font-weight:600;color:var(--dim)}
.acct-form input[type=email]{min-height:48px;padding:0 16px;border-radius:12px;border:1px solid var(--line3);background:var(--bg);color:var(--text);font:16px var(--body)}
.acct-form .btn{align-self:flex-start}
.acct-check{display:flex;gap:10px;align-items:flex-start;font-size:15px;color:var(--soft);cursor:pointer}
.acct-check input{flex:none;width:20px;height:20px;margin-top:2px;accent-color:var(--accent)}
.acct-welcome{border-color:rgba(107,227,160,.45);background:var(--q-bg)}
.acct-list{list-style:none;padding:0;margin:0}
.acct-list li{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}
.acct-list li span{color:var(--dim)}
.acct-del{color:var(--p-fg)!important}
.acct .cta-row{margin-top:20px;align-items:center}
