
:root{
  --bg:#0B1722;--bg-deep:#08121B;--panel:#0F1F2E;--panel-2:#132739;
  --ink:#F5F1E8;--body:#C3CDD5;--body-2:#B9C6D0;--muted:#8FA3B1;
  --gold:#C9A84C;--gold-2:#D8BA63;--gold-soft:rgba(201,168,76,.12);
  --teal:#12A0B5;--teal-lt:#5CC5D5;
  --rule:rgba(255,255,255,.08);--rule-2:rgba(255,255,255,.14);--rule-gold:rgba(201,168,76,.4);
  --good:#6CCB9F;--warn:#E3B95C;--bad:#E89A8F;
  --display:Georgia,'Times New Roman',Times,serif;
  --sans:Inter,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
  --r:14px;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--body);font:400 16px/1.7 var(--sans);-webkit-font-smoothing:antialiased;padding-bottom:env(safe-area-inset-bottom,0px)}
a{color:var(--teal-lt)}
h1,h2,h3,h4{font-family:var(--display);font-weight:400;color:var(--ink);margin:0}
h1 em,h2 em,h3 em{color:var(--gold);font-style:italic}
p{margin:0}
strong{color:var(--ink);font-weight:600}
.wrap{max-width:1080px;margin:0 auto;padding:0 22px}
.ico{display:inline-block;vertical-align:-2px;flex-shrink:0}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
:focus-visible{outline:2px solid var(--teal);outline-offset:3px}

/* scroll progress */
.scroll-prog{position:fixed;top:0;left:0;right:0;height:2px;background:var(--gold);transform-origin:left;transform:scaleX(0);z-index:400}

/* live bar */
.live{background:var(--bg-deep);border-bottom:1px solid var(--rule)}
.live-in{display:flex;gap:22px;align-items:center;overflow-x:auto;scrollbar-width:none;padding:9px 22px;max-width:1080px;margin:0 auto}
.live-in::-webkit-scrollbar{display:none}
.lb{display:flex;align-items:baseline;gap:7px;white-space:nowrap;flex-shrink:0}
.lb small{font-size:.62rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.lb b{font-size:.84rem;font-weight:600;color:var(--ink)}
.lb i{font-style:normal;font-size:.7rem;color:var(--muted)}
.dot{width:7px;height:7px;border-radius:50%;background:var(--good);box-shadow:0 0 8px var(--good);flex-shrink:0;align-self:center;animation:pulse 2.4s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.35}}

/* sticky bar */
.bar{position:sticky;top:0;z-index:300;background:rgba(11,23,34,.95);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--rule)}
.bar-in{display:flex;align-items:center;gap:14px;min-height:58px;max-width:1080px;margin:0 auto;padding:0 22px}
.logo{font-family:var(--display);color:var(--ink);text-decoration:none;font-size:1.18rem;white-space:nowrap;flex-shrink:0}
.logo em{color:var(--gold);font-style:italic}
.links{flex:1;display:flex;gap:2px;overflow-x:auto;scrollbar-width:none;min-width:0;-webkit-mask-image:linear-gradient(90deg,#000 92%,transparent);mask-image:linear-gradient(90deg,#000 92%,transparent)}
.links::-webkit-scrollbar{display:none}
.links a{color:var(--muted);font-size:.8rem;padding:7px 11px;border-radius:999px;white-space:nowrap;text-decoration:none;transition:color .15s,background .15s}
.links a:hover{color:var(--ink);background:rgba(255,255,255,.05)}
.links a.on{color:var(--gold);background:var(--gold-soft)}
.bar-r{display:flex;gap:8px;align-items:center;flex-shrink:0}

/* buttons */
.btn{appearance:none;border:0;cursor:pointer;background:var(--gold);color:#0B1722;font:600 .88rem/1 var(--sans);padding:12px 20px;border-radius:999px;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap;transition:background .15s,color .15s,border-color .15s}
.btn:hover{background:var(--gold-2)}
.btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--rule-2)}
.btn.ghost:hover{border-color:var(--gold);color:var(--gold)}
.btn.sm{padding:8px 14px;font-size:.78rem}
.btn.teal{background:transparent;color:var(--teal-lt);border:1px solid rgba(18,160,181,.45)}
.btn.teal:hover{background:var(--teal);color:#0B1722}
.chip-reg.is-reg{background:transparent;color:var(--good);border:1px solid rgba(108,203,159,.45);cursor:default}

/* masthead */
.mast{position:relative;overflow:hidden;padding:64px 0 44px}
.mast:before{content:"";position:absolute;inset:-300px -20% auto auto;width:720px;height:720px;background:radial-gradient(closest-side,rgba(18,160,181,.10),transparent 70%);pointer-events:none}
.mast .wrap{position:relative}
.eb{color:var(--gold);font-size:.8rem;letter-spacing:.06em;margin:0}
hr.hair{border:0;border-top:1px solid var(--rule-gold);margin:14px 0 12px;max-width:560px}
.subline{font-size:.84rem;color:var(--muted);letter-spacing:.04em}
.mast h1{font-size:clamp(2.6rem,7.2vw,4.7rem);line-height:1.02;margin:12px 0 20px;letter-spacing:-.01em}
.lead{max-width:64ch;font-size:1.06rem;line-height:1.75;color:var(--body)}
.stats{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);margin:32px 0 24px}
.st{padding:16px 18px;border-left:1px solid var(--rule)}
.st:first-child{border-left:0;padding-left:0}
.st b{display:block;font:400 2.05rem/1.1 var(--display);color:var(--gold)}
.st span{display:block;font-size:.74rem;color:var(--muted);letter-spacing:.03em;margin-top:4px}
.mg{display:flex;gap:16px;align-items:center;background:var(--panel);border:1px solid var(--rule-gold);border-radius:var(--r);padding:16px 18px;max-width:760px}
.mg svg{color:var(--gold)}
.mg p{flex:1;font-size:.9rem;line-height:1.55}

/* sections */
section.s{padding:62px 0;border-top:1px solid var(--rule);scroll-margin-top:62px}
.sh{margin-bottom:28px;max-width:740px}
.sl{color:var(--gold);font-size:.78rem;letter-spacing:.06em;margin:0 0 8px}
.sh h2{font-size:clamp(1.75rem,3.8vw,2.35rem);line-height:1.15;margin:0 0 12px}
.sh p{color:var(--body)}
.g2{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.g3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.g4{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.panel{background:var(--panel);border:1px solid var(--rule);border-radius:var(--r);padding:22px}
.ph{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:16px}
.ph h3{font-size:1.25rem}
.src{font-size:.72rem;color:var(--muted)}
.note{font-size:.88rem;line-height:1.65;background:rgba(18,160,181,.07);border:1px solid rgba(18,160,181,.22);border-radius:12px;padding:14px 16px;color:var(--body)}
.note.gold{background:var(--gold-soft);border-color:rgba(201,168,76,.28)}
.srcline{font-size:.72rem;color:var(--muted);margin-top:12px;line-height:1.55}
.mt{margin-top:18px}

/* how to read */
.how{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.how div{border-top:1px solid var(--rule-gold);padding-top:14px}
.how svg{color:var(--gold);margin-bottom:10px}
.how h3{font-size:1.08rem;margin:0 0 6px}
.how p{font-size:.86rem;line-height:1.6}
/* ===== business layer ===== */
.deal-wrap{margin:0 0 34px}
.deal-wrap>h3{font-size:clamp(1.4rem,3vw,1.8rem);margin:0 0 8px}.deal-wrap>h3 em{color:var(--gold)}
.deal-wrap>p{max-width:72ch;font-size:.94rem;line-height:1.65}
.deal-more{font-size:.84rem;margin:14px 0 0}
.deal{display:grid;grid-template-columns:minmax(230px,.8fr) 1.2fr;gap:24px;background:var(--gold-soft);border:1px solid var(--rule-gold);border-radius:var(--r);padding:24px;margin-top:16px}
.deal .sl{margin:0 0 6px}
.price{font:400 2.6rem/1.05 var(--display);color:var(--gold);margin:0;display:flex;align-items:baseline;gap:14px;flex-wrap:wrap}
.price s{font-size:.5em;color:var(--muted);text-decoration-thickness:2px;text-decoration-color:var(--bad)}
.price b{font-weight:400}
.price .from{font:500 .85rem/1 var(--sans);color:var(--body);margin-right:6px;vertical-align:.5em}
.deal-t{font-size:.95rem;color:var(--ink);margin:10px 0 0}
.places{font-size:.82rem;line-height:1.55;color:var(--body);margin:14px 0 0;padding-top:12px;border-top:1px solid var(--rule-gold)}
.places b{color:var(--gold);font-weight:600}
.deal-c{display:flex;flex-wrap:wrap;gap:12px 20px;align-items:center;margin:16px 0 0}
.deal-c .more{color:var(--gold);font-size:.86rem}
.deal-c button.more{appearance:none;background:none;border:0;padding:0;cursor:pointer;font:500 .86rem/1.4 var(--sans);color:var(--gold);text-decoration:underline;text-underline-offset:3px}
.deal-n{font-size:.78rem;color:var(--muted);margin:10px 0 0}
.ticks{list-style:none;margin:0;padding:0}
.ticks li{position:relative;padding:7px 0 7px 24px;font-size:.88rem;line-height:1.5;border-bottom:1px solid var(--rule)}
.ticks li:last-child{border-bottom:0}
.ticks li:before{content:"";position:absolute;left:2px;top:12px;width:12px;height:7px;border-left:2px solid var(--gold);border-bottom:2px solid var(--gold);transform:rotate(-45deg)}
.biz-free{font-size:1.15rem;margin:0 0 14px}
.clock{margin:14px 0 0;display:flex;flex-direction:column;gap:4px}
.clock span{font-size:.8rem;color:var(--body)}
.clock b{font:600 1.15rem/1.2 var(--sans);color:var(--ink);font-variant-numeric:tabular-nums;letter-spacing:.01em}
.clock b:empty{display:none}
.std-only{display:none}
.offer-over .f-only{display:none!important}
.offer-over .std-only{display:inline}
.tag.feat{border-color:var(--gold);background:var(--gold);color:#0B1722;font-weight:600}
.feat-line{font-size:.82rem;color:var(--muted);margin:0 0 10px;display:flex;gap:8px;align-items:center}
.owner{margin-top:34px;border-color:var(--rule-gold)}
.owner .deal{margin-top:18px}
.owner-free{margin-top:26px;padding-top:20px;border-top:1px solid var(--rule)}
.owner textarea,#fb-code{width:100%;min-height:84px;font:400 .74rem/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--body);margin-top:8px}
.badge-prev{margin-top:12px;min-height:64px}
.badge-prev iframe{border:0;width:280px;max-width:100%;height:64px;display:block}
.owner-app{margin-top:18px;padding-top:14px;border-top:1px solid var(--rule)}
.hero-deal{margin-top:6px}
.sec-h{font-size:clamp(1.5rem,3.4vw,2rem);margin:54px 0 8px}.sec-h em{color:var(--gold)}
.sec-p{max-width:72ch;margin:0 0 18px}
.stack{list-style:none;margin:0;padding:0;counter-reset:st;border:1px solid var(--rule-gold);border-radius:var(--r);overflow:hidden}
.stack li{counter-increment:st;display:grid;grid-template-columns:44px 1fr;gap:4px 14px;padding:16px 20px;border-bottom:1px solid var(--rule);background:var(--panel)}
.stack li:before{content:counter(st,decimal-leading-zero);grid-row:span 2;font:400 1.3rem/1.2 var(--display);color:var(--gold)}
.stack li>b,.stack .tot div>b{font:400 1.1rem/1.3 var(--display);color:var(--ink)}
.stack li>span{font-size:.88rem;line-height:1.6;color:var(--body)}
.stack .tot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;background:var(--gold-soft);border-bottom:0}
.stack .tot:before{content:none}
.stack .tot div>b{font-size:1.2rem}
.stack .tot .price{font-size:2.2rem}
.stack .price b{font:inherit;color:inherit}
.cmp{width:100%;border-collapse:collapse;font-size:.88rem;line-height:1.5}
.cmp th,.cmp td{text-align:left;vertical-align:top;padding:12px 14px;border-bottom:1px solid var(--rule)}
.cmp thead th{font:400 1.05rem/1.3 var(--display);color:var(--ink);border-bottom:1px solid var(--rule-2)}
.cmp tbody th{font-weight:600;color:var(--ink);width:22%}
.cmp td{color:var(--body);width:39%}
.cmp .us{background:var(--gold-soft);color:var(--ink)}
.cmp thead .us{color:var(--gold)}
.steps3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;counter-reset:s3}
.steps3 div{counter-increment:s3;border-top:1px solid var(--rule-gold);padding-top:14px}
.steps3 h3{font-size:1.1rem;margin:0 0 6px}
.steps3 h3:before{content:counter(s3)". ";color:var(--gold)}
.steps3 p{font-size:.88rem;line-height:1.6}
.steps4{grid-template-columns:repeat(4,1fr)}
.pv-link{margin:14px 0 0}
.vgrid3 .own{margin-top:10px}
.claim-top{margin:4px 0 6px}
.buy-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px}
.buy-row .sm{color:var(--muted);flex:1 1 240px}
#fr-buy.wait{opacity:.55}
.capg{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.capg .panel{padding:18px 20px}
.app-teaser{display:flex;gap:16px 24px;align-items:center;justify-content:space-between;flex-wrap:wrap;border-color:var(--rule-gold)}
.app-teaser>div{flex:1 1 320px}.app-teaser .h3{margin-bottom:6px}
.svc{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:6px}
.svc-c{display:flex;flex-direction:column;gap:10px}
.svc-c.best{border-color:var(--gold)}
.svc-c .h3{margin:0}
.svc-c .price{font-size:2.1rem}
.svc-n{color:var(--muted)}
.svc-a{margin-top:auto;padding-top:6px}
.svc-talk{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.svc-talk a{display:block;text-decoration:none}
.svc-talk b{display:block;font:400 1.1rem/1.3 var(--display);color:var(--ink);margin-bottom:4px}
.svc-talk span{font-size:.86rem;color:var(--body);line-height:1.55}
.svc-talk a:hover{border-color:var(--gold)}
.terms ol{padding-left:22px}.terms li{margin:0 0 14px;line-height:1.65;font-size:.92rem}.terms h2{font-size:1.15rem;margin:30px 0 10px}
html.ri-pv [data-gate-inline],html.ri-pv .pv-link,html.ri-pv #ag-bar,html.ri-pv .own-nudge{display:none!important}
.pv-ph{border:1px dashed var(--rule-gold);border-radius:8px;color:var(--muted);font-style:italic}
.pv-txt{display:inline-block;padding:3px 9px}
.pv-gal{margin-top:16px;grid-template-columns:repeat(3,1fr)!important}
.pv-img{aspect-ratio:4/3;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;background:var(--gold-soft);color:var(--gold);font-style:normal;font-size:.8rem;border-radius:10px}
.cc .pv-btn{font-size:.74rem;font-weight:600;font-style:normal;color:var(--gold);padding:6px 12px;border-radius:999px;display:inline-flex}
body.pv-on{padding-bottom:84px}
.pv-bar{position:fixed;left:0;right:0;bottom:0;z-index:330;background:rgba(8,18,27,.97);border-top:1px solid var(--gold);padding:10px 16px calc(10px + env(safe-area-inset-bottom))}
.pv-in{max-width:1180px;margin:0 auto;display:flex;align-items:center;gap:8px 16px;flex-wrap:wrap}
.pv-l{margin:0;font-size:.86rem;color:var(--body);flex:1 1 220px}.pv-l b{color:var(--gold)}
.pv-p{margin:0;font:400 1.25rem/1 var(--display);color:var(--gold);display:flex;align-items:baseline;gap:8px}
.pv-p s{font-size:.72em;color:var(--muted);text-decoration-color:var(--bad)}
.pv-cd{font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums}
.pv-timer{display:inline-flex;gap:8px;align-items:baseline;flex-wrap:wrap;margin:0 0 14px;padding:8px 14px;border-radius:999px;background:rgba(232,154,143,.12);border:1px solid rgba(232,154,143,.4);font-size:.84rem;color:var(--ink)}
.pv-timer b{font-variant-numeric:tabular-nums;color:var(--bad);font-weight:700}
.pv-exit{font-size:.8rem;color:var(--muted)}
html.pv-lock{overflow:hidden}
.pv-modal{position:fixed;inset:0;z-index:9500;background:rgba(4,10,16,.74);display:flex;align-items:center;justify-content:center;padding:16px}
.pv-modal[hidden]{display:none}
.pv-box{position:relative;width:100%;max-width:560px;max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);overflow-y:auto;background:var(--panel);border:1px solid var(--gold);border-radius:18px;padding:28px 26px;box-shadow:0 30px 80px rgba(0,0,0,.5);outline:none}
.pv-box h2{font-size:clamp(1.55rem,4.6vw,2.05rem);margin:0 40px 10px 0;line-height:1.15}.pv-box h2 em{color:var(--gold)}
.pv-lead{font-size:.9rem;line-height:1.6;margin:0 0 16px}
.pv-deal{background:var(--gold-soft);border:1px solid var(--rule-gold);border-radius:12px;padding:16px 18px;margin:0 0 12px}
.pv-box .deal-c{margin-top:4px}.pv-ticks{margin-top:14px;border-top:1px solid var(--rule)}
.pv-app{font-size:.8rem;color:var(--body);margin:14px 0 0;padding-top:12px;border-top:1px solid var(--rule)}
.pv-x{position:absolute;top:14px;right:14px;width:36px;height:36px;border-radius:50%;border:1px solid var(--rule-2);background:transparent;color:var(--ink);display:flex;align-items:center;justify-content:center;cursor:pointer}
.pv-x:hover{border-color:var(--gold);color:var(--gold)}
.own-nudge{position:fixed;right:20px;bottom:20px;z-index:325;width:320px;max-width:calc(100vw - 32px);background:var(--panel);border:1px solid var(--rule-gold);border-radius:14px;padding:16px 18px;box-shadow:0 18px 50px rgba(0,0,0,.45);opacity:0;transform:translateY(12px);visibility:hidden;pointer-events:none;transition:opacity .25s,transform .25s,visibility 0s .25s}
.own-nudge.show{opacity:1;transform:none;visibility:visible;pointer-events:auto;transition:opacity .25s,transform .25s}
.own-nudge .sl{margin:0 0 4px}
.on-t{font:400 1.15rem/1.3 var(--display);color:var(--ink);margin:0 30px 4px 0}
.on-s{font-size:.84rem;line-height:1.5;margin:0}
.on-c{display:flex;align-items:center;gap:14px;margin:12px 0 0}
.on-no{appearance:none;background:none;border:0;padding:0;cursor:pointer;font:500 .8rem/1 var(--sans);color:var(--muted);text-decoration:underline;text-underline-offset:3px}
.on-x{position:absolute;top:10px;right:10px;width:30px;height:30px;border-radius:50%;border:0;background:transparent;color:var(--muted);display:flex;align-items:center;justify-content:center;cursor:pointer}
.on-x:hover{color:var(--ink)}
@media (max-width:980px){.capg{grid-template-columns:1fr 1fr}.steps4{grid-template-columns:1fr 1fr}.svc{grid-template-columns:1fr}.svc-talk{grid-template-columns:1fr}}
@media (max-width:760px){.deal{grid-template-columns:1fr;padding:18px;gap:16px}.price{font-size:2.2rem}.steps3{grid-template-columns:1fr}.cmp th,.cmp td{padding:10px 8px;font-size:.8rem}.cmp tbody th{width:24%}.stack li{grid-template-columns:30px 1fr;padding:14px}
  .capg{grid-template-columns:1fr}.steps4{grid-template-columns:1fr}.pv-box{padding:22px 18px}.pv-box .price{font-size:2.2rem}.pv-l{flex-basis:100%}.pv-bar .btn{padding:8px 12px}
  .own-nudge{left:12px;right:12px;bottom:12px;width:auto;max-width:none}}

/* ===== business layer, version 2 ===== */
.vs{font-size:.84rem;line-height:1.5;color:var(--muted);margin:6px 0 0}
.talk{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px 24px;background:var(--panel);border:1px solid var(--rule-gold);border-radius:var(--r);padding:20px 24px}
.talk-t{flex:1 1 340px}
.talk .sl{margin-bottom:4px}
.talk-n{font:400 1.3rem/1.25 var(--display);color:var(--ink);margin:0 0 6px}
.talk .sm{margin:0;max-width:62ch}
.talk-b{display:flex;flex-wrap:wrap;gap:10px;margin:0}
.talk-b .btn svg{flex:none}
.deal-ex{margin:12px 0 0;font-size:.88rem;line-height:1.5}
.owner-talk{margin-top:22px;background:transparent;border-width:1px 0 0;border-color:var(--rule);border-radius:0;padding:20px 0 0}
@media(max-width:480px){.talk{padding:18px 16px}.owner-talk{padding:18px 0 0}.talk-b .btn{flex:1 1 auto}}
.pv-so{font:600 .72rem/1 var(--sans);letter-spacing:.04em;color:var(--gold);margin-right:4px}
.svc.svc4{grid-template-columns:repeat(4,1fr)}
.svc.svc4 .btn{padding-left:16px;padding-right:16px;font-size:.88rem}
.svc-talk.st4{grid-template-columns:repeat(4,1fr)}
@media(max-width:1180px){.svc.svc4,.svc-talk.st4{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.svc.svc4,.svc-talk.st4{grid-template-columns:1fr}}
.built{list-style:none;margin:0;padding:0}
.built li{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--rule)}
.built li:last-child{border-bottom:0}
.built .sm{color:var(--muted)}
.site-teaser{margin-top:44px}
/* featured page layout */
.fx-cover{margin:6px 0 0;border-radius:18px;overflow:hidden;aspect-ratio:21/9;background:var(--panel);border:1px solid var(--rule)}
.fx-cover img{width:100%;height:100%;object-fit:cover;display:block}
.fx-act{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0 22px}
.fx-act .btn svg,.fx-sticky .btn svg{flex:none}
.fx-gal{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}
.fx-gal img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:12px;display:block}
.feat-about p{font-size:1rem;line-height:1.75}
.ib .ticks{padding-left:0}
.fx-hours{margin:0 0 6px}
.fx-open{display:inline-flex;align-items:center;gap:8px;font:600 .86rem/1.2 var(--sans);border-radius:999px;padding:7px 13px;margin:0 0 10px}
.fx-open:before{content:"";width:8px;height:8px;border-radius:50%;background:currentColor}
.fx-open.is-open{color:#6CCB9F;background:rgba(108,203,159,.1);border:1px solid rgba(108,203,159,.35)}
.fx-open.is-closed{color:var(--bad);background:rgba(232,154,143,.1);border:1px solid rgba(232,154,143,.35)}
.fx-week{width:100%;border-collapse:collapse;font-size:.88rem}
.fx-week th,.fx-week td{text-align:left;padding:5px 0;border-bottom:1px solid var(--rule);font-weight:400;color:var(--body)}
.fx-week td{text-align:right;color:var(--ink)}
.fx-week tr.today th,.fx-week tr.today td{color:var(--ink);font-weight:600}
.fx-sticky{display:none}
@media(max-width:760px){
  .fx-cover{aspect-ratio:4/3;border-radius:14px}
  .fx-act{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin-right:-16px;padding-right:16px}
  .fx-act::-webkit-scrollbar{display:none}
  .fx-act .btn{flex:none;padding:9px 14px;font-size:.84rem}
  .fx-sticky{display:flex;gap:8px;position:fixed;left:0;right:0;bottom:0;z-index:320;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:rgba(8,18,27,.96);border-top:1px solid var(--rule-gold);backdrop-filter:blur(8px)}
  .fx-sticky .btn{flex:1 1 0;padding:11px 10px;font-size:.84rem}
  .fx-sticky .btn:not(:first-child) span{font-size:.8rem}
  body:has(.fx-sticky){padding-bottom:76px}
  .fx-sticky{transition:transform .25s ease}
  html.fx-js .fx-sticky:not(.show){transform:translateY(110%)}
}
.pv-cover{aspect-ratio:21/9;margin-top:6px}
.pv-act{margin:16px 0 22px}
.pv-act .pv-btn,.fx-act .pv-btn{font-size:.82rem;font-weight:600;font-style:normal;color:var(--gold);padding:9px 16px;border-radius:999px;display:inline-flex;flex:none;white-space:nowrap}
.pv-open{margin-top:4px}
@media(max-width:760px){.pv-cover{aspect-ratio:4/3}}
/* footer, from footer_html() */
.ifoot{border-top:1px solid var(--rule-gold);margin-top:72px;padding:44px 0 40px;font-size:.86rem;color:var(--muted);background:linear-gradient(180deg,rgba(15,31,46,.55),rgba(11,23,34,0))}
.ifoot p{margin:0 0 8px}
.ifoot a{color:var(--body);text-decoration:none}
.ifoot a:hover{text-decoration:underline}
.ifoot .foot-grid{display:grid;grid-template-columns:minmax(0,1.5fr) repeat(3,minmax(0,1fr));gap:28px 32px}
.ifoot .foot-brand .logo{font-size:1.35rem}
.ifoot .foot-brand>p{margin:12px 0 0;max-width:38ch;line-height:1.6}
.ifoot .foot-talk{display:flex;flex-direction:column;gap:4px;margin-top:16px!important}
.ifoot .foot-talk span{color:var(--ink);font-weight:500}
.ifoot .foot-col{display:flex;flex-direction:column;gap:9px;align-items:flex-start}
.ifoot .foot-col .fh{font:600 .74rem/1.3 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--gold);margin:0 0 4px}
.ifoot .foot-dir a{display:inline-flex;align-items:center;gap:8px}
.ifoot .foot-dir svg{color:var(--gold);opacity:.85;flex:none}
.ifoot .foot-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px 24px;margin-top:36px;padding-top:20px;border-top:1px solid var(--rule);font-size:.8rem}
.ifoot .foot-bottom p{margin:0;max-width:80ch}
.ifoot .foot-links{display:flex;flex-wrap:wrap;gap:6px 18px}
@media(max-width:860px){.ifoot .foot-grid{grid-template-columns:1fr 1fr}.ifoot .foot-brand{grid-column:1/-1}}
@media(max-width:560px){.ifoot .foot-grid{gap:26px 20px}.ifoot .foot-dir{grid-column:1/-1;order:3;display:grid;grid-template-columns:1fr 1fr;gap:9px 16px}.ifoot .foot-dir .fh{grid-column:1/-1}.ifoot .foot-dir a{font-size:.84rem}}

:root{--click:#0D7A8A;--click-hi:#0B6E7D;--click-edge:#12A0B5;--click-lt:#5CC5D5}
.btn:not(.ghost),.btn-gold,.ask-btn,#contact-fab .fab-ask,#ask-dialog .ad-wa{background:var(--click);color:#FFFFFF;border:1px solid var(--click-edge)}
.btn:not(.ghost):hover,.btn-gold:hover,.ask-btn:hover,#contact-fab .fab-ask:hover,#ask-dialog .ad-wa:hover{background:var(--click-hi);color:#FFFFFF;border-color:var(--click-edge)}
html body .ag-btn,html body #ag-conf-dialog .ag-wa,html body .at-btn{background:var(--click)!important;color:#FFFFFF!important;border:1px solid var(--click-edge)!important}
html body .ag-btn:hover,html body #ag-conf-dialog .ag-wa:hover,html body .at-btn:hover{background:var(--click-hi)!important;color:#FFFFFF!important}
.btn.ghost:hover,.btn-ghost:hover,.lozenge.lozenge-tci:hover,.atlas-bar-chips a:hover,.atlas-bar-pdf:hover,.atlas-xlink a:hover,.tool-xlink a:hover,#ask-dialog .ad-em:hover,.pv-x:hover,.svc-talk a:hover,.dir-jump a:hover{border-color:var(--click-edge);color:var(--click-lt)}
.series-card:hover,.topic-btn:hover{border-color:rgba(18,160,181,.65)}
a.vlink:hover,.vcard .vc-name:hover,.vlist a:hover,.crumbs a:hover,.own:hover,.top-nav a:hover,.site-foot a:hover,.logo:hover em{color:var(--click-lt)}
.deal-c button.more,.cc .pv-btn,.pv-box .deal-n a{color:var(--click-lt)}
.chk input,.ag-check input{accent-color:var(--click-edge)}

@view-transition{navigation:auto}
::view-transition-old(root),::view-transition-new(root){animation-duration:.22s;animation-timing-function:ease}
.btn,.btn-gold,.ask-btn,#contact-fab .fab-ask,.vcard,.vlist li,.svc-c,.svc-talk a,.topic-btn,.series-card,.dir-jump a,.capg>.panel{transition:background-color .18s ease,border-color .18s ease,color .18s ease,box-shadow .2s ease,translate .2s ease,transform .18s ease}
.btn:hover,.btn-gold:hover,.ask-btn:hover,#contact-fab .fab-ask:hover,.dir-jump a:hover{translate:0 -1px}
.vcard:hover,.vlist li:hover,.svc-c:hover,.svc-talk a:hover,.topic-btn:hover,.series-card:hover,.capg>.panel:hover{translate:0 -2px}
.vcard:not(.is-feat):hover,.vlist li:hover,.svc-c:not(.best):hover,.capg>.panel:hover{border-color:rgba(18,160,181,.5)}
.rise{opacity:0;transform:translateY(14px);transition:opacity .6s cubic-bezier(.2,.7,.2,1),transform .6s cubic-bezier(.2,.7,.2,1),background-color .18s ease,border-color .18s ease,box-shadow .2s ease,translate .2s ease}
.rise.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){
  @view-transition{navigation:none}
  .fx-sticky{transition:none}
  .rise{opacity:1;transform:none;transition:none}
  .btn:hover,.btn-gold:hover,.ask-btn:hover,#contact-fab .fab-ask:hover,.dir-jump a:hover,.vcard:hover,.vlist li:hover,.svc-c:hover,.svc-talk a:hover,.topic-btn:hover,.series-card:hover,.capg>.panel:hover{translate:none}
}
@media print{.rise{opacity:1!important;transform:none!important}}

:root{--paper:#FFFFFF;--paper-ink:#0B1722;--paper-body:#1F2C38;--paper-muted:#4A5967;--paper-rule:rgba(11,23,34,.14);--paper-gold:#0B6E7D;--paper-line:#0B1722;--paper-edge:#12A0B5;--paper-pop:#0D7A8A}
.deal,.talk:not(.owner-talk),.vatlas,.svc-c.best,.pv-deal,.vcard.is-feat{background:var(--paper)!important;background-image:none!important;border:3px solid var(--paper-edge)!important;border-radius:16px!important;box-shadow:6px 6px 0 var(--paper-pop)!important;color:var(--paper-body)}
:is(.deal,.talk:not(.owner-talk),.vatlas,.svc-c.best,.pv-deal,.vcard.is-feat) p,:is(.deal,.talk:not(.owner-talk),.vatlas,.svc-c.best,.pv-deal,.vcard.is-feat) .sm{color:var(--paper-body);font-weight:500}
:is(.deal,.talk:not(.owner-talk),.vatlas,.svc-c.best,.pv-deal,.vcard.is-feat) .sl{color:var(--paper-gold);font-weight:700;letter-spacing:.06em}
:is(.deal,.talk:not(.owner-talk),.vatlas,.svc-c.best,.pv-deal,.vcard.is-feat) :is(b,strong){color:inherit}
:is(.deal,.talk:not(.owner-talk),.vatlas,.svc-c.best,.pv-deal,.vcard.is-feat) :is(.price,.deal-t,.talk-n,.va-t,.h3,.vc-name){color:var(--paper-ink)}
:is(.deal,.talk:not(.owner-talk),.vatlas,.svc-c.best,.pv-deal,.vcard.is-feat) :is(.price,.talk-n,.va-t,.vc-name){font-weight:700}
:is(.deal,.talk:not(.owner-talk),.vatlas,.svc-c.best,.pv-deal,.vcard.is-feat) .price b{font-weight:700}
:is(.deal,.talk:not(.owner-talk),.vatlas,.svc-c.best,.pv-deal,.vcard.is-feat) .deal-t{font-weight:600}
:is(.deal,.talk:not(.owner-talk),.vatlas,.svc-c.best,.pv-deal,.vcard.is-feat) .price .from{color:var(--paper-muted);font-weight:600}
:is(.deal,.talk:not(.owner-talk),.vatlas,.svc-c.best,.pv-deal,.vcard.is-feat) :is(.vs,.deal-n,.svc-n){color:var(--paper-muted);font-weight:500}
:is(.deal,.talk:not(.owner-talk),.vatlas,.svc-c.best,.pv-deal,.vcard.is-feat) .ticks li{color:var(--paper-body);font-weight:500;border-color:var(--paper-rule)}
:is(.deal,.talk:not(.owner-talk),.vatlas,.svc-c.best,.pv-deal,.vcard.is-feat) .ticks li:before{border-color:var(--paper-ink)}
:is(.deal,.talk:not(.owner-talk),.vatlas,.svc-c.best,.pv-deal,.vcard.is-feat) :is(a:not(.btn),.deal-c .more,em){color:var(--paper-gold);font-weight:700}
:is(.deal,.talk:not(.owner-talk),.vatlas,.svc-c.best,.pv-deal,.vcard.is-feat) .btn{border:2px solid var(--paper-pop)!important;font-weight:700}
:is(.deal,.talk:not(.owner-talk),.vatlas,.svc-c.best,.pv-deal,.vcard.is-feat) .btn:not(.ghost){background:var(--paper-pop);color:#FFFFFF}
:is(.deal,.talk:not(.owner-talk),.vatlas,.svc-c.best,.pv-deal,.vcard.is-feat) .btn.ghost{color:var(--paper-gold);background:var(--paper);border-color:var(--paper-edge)!important}
:is(.deal,.talk:not(.owner-talk),.vatlas,.svc-c.best,.pv-deal,.vcard.is-feat) .btn:hover{transform:translate(-1px,-1px);box-shadow:3px 3px 0 color-mix(in srgb,#0D7A8A 35%,transparent)}
:is(.deal,.talk:not(.owner-talk),.vatlas,.svc-c.best,.pv-deal,.vcard.is-feat) .btn:not(.ghost):hover{background:#0B6E7D;color:#FFFFFF}
:is(.deal,.talk:not(.owner-talk),.vatlas,.svc-c.best,.pv-deal,.vcard.is-feat) .btn.ghost:hover{color:var(--paper-gold);background:color-mix(in srgb,#0D7A8A 10%,#FFFFFF)}
:is(.deal,.talk:not(.owner-talk),.vatlas,.svc-c.best,.pv-deal,.vcard.is-feat) .tag.feat{color:#0B1722}
@media(prefers-reduced-motion:reduce){:is(.deal,.talk:not(.owner-talk),.vatlas,.svc-c.best,.pv-deal,.vcard.is-feat) .btn:hover{transform:none}}

.walkline{display:flex;gap:8px;align-items:center;color:var(--body);font-size:.92rem;margin:6px 0 10px}.walkline svg{width:16px;height:16px;color:var(--gold);flex:none}
html body :is(.deal,.talk,.vatlas,.svc-c.best,.pv-deal,.vcard.is-feat) .price s{color:var(--paper-muted,#4A5967)}
.fx-gal img,.gal img{height:auto}
/* ===== Rochester host pieces for version 2: icons, jump links, prose pages, white panel details ===== */
.sl .ico{vertical-align:-3px;margin-right:7px;color:var(--gold)}
.vmore-h .ico{vertical-align:-2px;margin-right:10px;color:var(--gold)}
.dir-jump{display:flex;flex-wrap:wrap;gap:8px;margin:22px 0 4px}
.dir-jump a{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:8px 15px;border:1px solid var(--rule-2);border-radius:999px;color:var(--ink);text-decoration:none;font-size:.86rem;background:var(--panel)}
.dir-jump a .ico{color:var(--gold);flex:none}
.dir-jump a[aria-current]{border-color:var(--click-edge,#12A0B5);color:var(--click-lt,#5CC5D5)}
:is(.deal,.pv-deal) .clock span{color:var(--paper-muted,#4A5967)}
:is(.deal,.pv-deal) .clock b{color:var(--paper-ink,#0B1722)}
:is(.deal,.pv-deal) .places{border-top-color:var(--paper-rule,rgba(11,23,34,.14))}
.prose p{margin:0 0 12px;line-height:1.7}.prose p:last-child{margin-bottom:0}.prose .ticks li b{color:var(--ink);font-weight:600}
.vcard.is-feat :is(h3,h3 a){color:var(--paper-ink,#0B1722)!important}
.vcard.is-feat :is(p,.loc,.hrs,.loc span,.hrs span){color:var(--paper-body,#1F2C38)!important}
.vcard.is-feat .cc a{color:var(--paper-gold,#0B6E7D);border-color:var(--paper-edge,#12A0B5)}
.vcard.is-feat .cc a:hover{background:var(--paper-pop,#0D7A8A);color:#FFFFFF}
.vcard.is-feat .tag:not(.feat){color:var(--paper-gold,#0B6E7D);border-color:var(--paper-rule,rgba(11,23,34,.14))}
.vcard.is-feat .cc:before{border-top-color:var(--paper-rule,rgba(11,23,34,.14))}
/* one colour for everything clickable: the guide's own buttons, tabs, call buttons and hovers (gold stays for headings, labels and rules) */
html body .num .call{background:var(--click,#0D7A8A);color:#FFFFFF;border:1px solid var(--click-edge,#12A0B5)}
html body .num .call:hover{background:var(--click-hi,#0B6E7D);color:#FFFFFF}
html body .tb .n{opacity:.85}
html body .tb.on{border-color:var(--click-edge,#12A0B5);color:var(--click-lt,#5CC5D5);background:rgba(18,160,181,.12)}
html body .links a.on{color:var(--click-lt,#5CC5D5);background:rgba(18,160,181,.12)}
html body #ki-bubble{border-color:var(--click-edge,#12A0B5)}
html body :is(#ki-bubble,#btt,.fav,.qt,.mini,a.card):hover{border-color:var(--click-edge,#12A0B5)}
html body :is(#btt,.fav):hover{color:var(--click-lt,#5CC5D5)}
html body :is(.nextup a,.onow li.none a){color:var(--click-lt,#5CC5D5)}
html body :is(.onow li a,.stop h3 a,.mlist li a,.tw-list a,.crumbs a,.card h3 a,.az a,.own):hover{color:var(--click-lt,#5CC5D5);text-decoration-color:var(--click-lt,#5CC5D5)}

/* cards */
.card{background:var(--panel);border:1px solid rgba(201,168,76,.16);border-radius:var(--r);padding:20px;display:flex;flex-direction:column}
.card h3{font-size:1.2rem;line-height:1.25;margin:10px 0 8px}
.card p{font-size:.88rem;line-height:1.62}
.card .loc,.card .hrs{font-size:.78rem;color:var(--muted);margin-top:10px;display:flex;gap:6px;align-items:flex-start;line-height:1.5}
.card .hrs{margin-top:5px}
.card .loc svg,.card .hrs svg{margin-top:2px;color:var(--gold)}
.cc{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto;padding-top:14px}
.cc:before{content:"";flex-basis:100%;border-top:1px solid var(--rule);margin-bottom:8px}
.cc a{font-size:.74rem;font-weight:600;color:var(--teal-lt);text-decoration:none;border:1px solid rgba(18,160,181,.35);padding:6px 12px;border-radius:999px;display:inline-flex;gap:6px;align-items:center;transition:.15s}
.cc a:hover{background:var(--teal);color:#0B1722;border-color:var(--teal)}
.tags{display:flex;flex-wrap:wrap;gap:6px}
.tag{display:inline-block;font-size:.68rem;letter-spacing:.04em;padding:3px 9px;border-radius:999px;border:1px solid var(--rule-2);color:var(--muted);line-height:1.5}
.tag.t{border-color:rgba(18,160,181,.4);color:var(--teal-lt)}
.tag.g{border-color:rgba(201,168,76,.45);color:var(--gold)}
.tag.gr{border-color:rgba(108,203,159,.4);color:var(--good)}
.tag.feat{border-color:var(--gold);background:var(--gold);color:#0B1722;font-weight:600}

/* tabs */
.tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:20px}
.tb{appearance:none;background:transparent;border:1px solid var(--rule-2);color:var(--muted);font:500 .8rem/1 var(--sans);padding:9px 14px;border-radius:999px;cursor:pointer;transition:.15s}
.tb:hover{color:var(--ink);border-color:rgba(255,255,255,.3)}
.tb.on{border-color:var(--gold);color:var(--gold);background:var(--gold-soft)}
.tb .n{opacity:.85;margin-left:4px}
.pane{display:none}.pane.on{display:block}

/* weather */
.wx{display:grid;grid-template-columns:auto 1fr;gap:22px;align-items:center}
.wx-main{text-align:center;padding-right:24px;border-right:1px solid var(--rule);min-width:150px}
.wx-main svg{margin:0 auto 6px}
.wx-temp{font:400 3.4rem/1 var(--display);color:var(--ink)}
.wx-cond{font-size:.85rem;color:var(--muted);margin-top:6px}
.kv{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.k{background:var(--bg);border:1px solid var(--rule);border-radius:10px;padding:10px 12px}
.k small{display:block;font-size:.64rem;font-weight:600;letter-spacing:.08em;color:var(--muted);text-transform:uppercase}
.k b{font:600 1.05rem/1.4 var(--sans);color:var(--ink)}
.sunbar{height:6px;border-radius:999px;background:linear-gradient(90deg,#1d3550,var(--gold) 50%,#1d3550);position:relative;margin:18px 0 6px}
.sunpip{position:absolute;top:50%;width:14px;height:14px;border-radius:50%;background:var(--ink);border:3px solid var(--gold);transform:translate(-50%,-50%)}
.sunlbl{display:flex;justify-content:space-between;font-size:.72rem;color:var(--muted)}
.tides{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.ti{background:var(--bg);border:1px solid var(--rule);border-radius:10px;padding:10px 8px;text-align:center}
.ti.hi{border-color:rgba(18,160,181,.5)}
.ti small{display:block;font-size:.62rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.ti b{display:block;font:400 1.4rem/1.3 var(--display);color:var(--ink)}
.ti span{font-size:.7rem;color:var(--muted)}
.ti.hi small{color:var(--teal-lt)}
.tidechart{margin-top:14px;background:var(--bg);border:1px solid var(--rule);border-radius:10px;padding:10px 10px 6px}
.tidechart svg{width:100%;height:110px;display:block}
.tidechart .ax{display:flex;justify-content:space-between;font-size:.66rem;color:var(--muted);margin-top:4px}
.aq-n{font:400 3.6rem/1 var(--display);color:var(--ink)}
.aq-s{font-weight:600;margin-top:6px}
.aqbar{height:8px;border-radius:999px;background:linear-gradient(90deg,#4FB89A 0%,#9CC86A 17%,#E3B95C 33%,#E0874F 50%,#D0605A 67%,#9B5BA8 100%);position:relative;margin:18px 0 6px}
.aqpip{position:absolute;top:50%;width:14px;height:14px;border-radius:50%;background:var(--ink);border:3px solid var(--bg);box-shadow:0 0 0 1px var(--ink);transform:translate(-50%,-50%);transition:left .6s}
.aqlbl{display:flex;justify-content:space-between;font-size:.68rem;color:var(--muted)}
.bands{list-style:none;margin:0;padding:0}
.bands li{display:flex;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid var(--rule);font-size:.86rem}
.bands i{width:10px;height:10px;border-radius:3px;flex-shrink:0}
.wear-grid{display:flex;flex-wrap:wrap;gap:10px}
.wear-item{flex:1 1 150px;background:var(--bg);border:1px solid var(--rule);border-radius:12px;padding:14px;display:flex;flex-direction:column;gap:4px;color:var(--muted)}
.wear-item.rec{border-color:var(--rule-gold)}
.wear-icon{color:var(--gold);margin-bottom:4px}
.wear-label{font-weight:600;color:var(--ink);font-size:.92rem}
.wear-note{font-size:.76rem}
.loading{color:var(--muted);font-size:.84rem;font-style:italic}
.ae-row{display:flex;gap:14px;align-items:center;background:var(--bg);border:1px solid var(--rule);border-radius:12px;padding:16px}
.ae-dot{width:14px;height:14px;border-radius:50%;flex-shrink:0;background:var(--muted)}
.ae-dot.green{background:var(--good);box-shadow:0 0 10px var(--good)}
.ae-dot.amber{background:var(--warn);box-shadow:0 0 10px var(--warn)}
.ae-dot.red{background:var(--bad);box-shadow:0 0 10px var(--bad)}
.ae-wait{font:400 1.6rem/1.2 var(--display);color:var(--ink)}
.ae-lbl{font-size:.76rem;color:var(--muted)}

/* info lists */
.ib h4{font-size:1.12rem;margin:0 0 8px}
.ib ul{margin:0;padding:0;list-style:none}
.ib li{padding:9px 0 9px 18px;border-bottom:1px solid var(--rule);position:relative;font-size:.88rem;line-height:1.55}
.ib li:last-child{border-bottom:0}
.ib li:before{content:"";position:absolute;left:2px;top:17px;width:6px;height:6px;border-radius:50%;background:var(--gold)}

/* tables */
.tw{overflow-x:auto;border:1px solid var(--rule);border-radius:var(--r);background:var(--panel)}
.tbl{width:100%;border-collapse:collapse;font-size:.88rem}
.tbl th{text-align:left;font:600 .66rem/1.4 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:12px 14px;border-bottom:1px solid var(--rule-2);background:var(--bg-deep);white-space:nowrap}
.tbl td{padding:12px 14px;border-bottom:1px solid var(--rule);color:var(--body);vertical-align:top}
.tbl tr:last-child td{border-bottom:0}
.tbl td.it{color:var(--ink);font-weight:500}
.tbl td.pr{font:400 1.05rem/1.4 var(--display);color:var(--gold);white-space:nowrap}
.tbl td.sm{font-size:.8rem;color:var(--muted)}
.grade-o{color:var(--good)!important;font-weight:600}
.grade-g{color:var(--teal-lt)!important;font-weight:600}

/* shortlist */
.picks{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.pick{background:var(--panel);border:1px solid rgba(201,168,76,.18);border-radius:var(--r);padding:20px;position:relative}
.pick .cat{font-size:.72rem;letter-spacing:.06em;color:var(--gold);display:flex;align-items:center;gap:8px}
.pick .cat b{font:italic 400 1.5rem/1 var(--display);color:var(--gold)}
.pick h3{font-size:1.25rem;margin:12px 0 6px}
.pick p{font-size:.88rem}
.pick .where{font-size:.74rem;color:var(--muted);margin-top:10px}
.lockhint{display:none;align-items:center;gap:6px;font-size:.74rem;font-weight:600;color:var(--gold);margin-top:12px}
html:not(.ag-reg) .pick.gated .lockhint{display:inline-flex}

/* pints */
.pints{border:1px solid var(--rule);border-radius:var(--r);background:var(--panel);overflow:hidden}
.pt{display:grid;grid-template-columns:34px 1fr auto;gap:14px;align-items:center;padding:12px 16px;border-bottom:1px solid var(--rule)}
.pt:last-child{border-bottom:0}
.pt .rk{font:italic 400 1.1rem var(--display);color:var(--muted)}
.pt .nm{color:var(--ink);font-weight:600;font-size:.92rem}
.pt .ty{font-size:.76rem;color:var(--muted)}
.pt .pp{font:400 1.45rem/1 var(--display);color:var(--gold);text-align:right}
.pt .pp small{display:block;font:400 .64rem var(--sans);color:var(--muted);margin-top:4px}

/* calculators */
.calc{display:grid;grid-template-columns:1.4fr 1fr;gap:26px;align-items:start}
.sliders{display:flex;flex-direction:column;gap:16px}
.fl{display:block;font-size:.76rem;color:var(--muted);margin:0 0 6px;letter-spacing:.02em}
.rr{display:flex;gap:14px;align-items:center}
.rr input{flex:1}
.rv{min-width:58px;text-align:right;font-weight:600;color:var(--ink);font-size:.92rem}
input[type=range]{accent-color:var(--gold);height:22px}
select,input[type=text],input[type=email],input[type=tel],input[type=search],textarea{width:100%;background:var(--bg);border:1px solid var(--rule-2);border-radius:9px;color:var(--ink);font:400 .92rem/1.4 var(--sans);padding:11px 12px;color-scheme:dark}
textarea{min-height:110px;resize:vertical}
select:focus,input:focus,textarea:focus{outline:2px solid var(--teal);outline-offset:1px;border-color:transparent}
.res{background:var(--bg);border:1px solid var(--rule-gold);border-radius:var(--r);padding:22px;position:sticky;top:84px}
.res small{font-size:.66rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.res .big{font:400 3rem/1.05 var(--display);color:var(--gold);margin:6px 0 2px}
.res .pp{font-size:.86rem;color:var(--body)}
.rows{margin-top:14px}
.rows div{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid var(--rule);font-size:.84rem}
.rows div span:last-child{color:var(--ink);font-weight:600}
.rows div.tot{border-bottom:0;border-top:1px solid var(--rule-gold);margin-top:4px;padding-top:12px}
.rows div.tot span{color:var(--gold);font-weight:600}
.fgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px}

/* trains */
.trow{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--rule)}
.trow .tt{font:400 1.15rem/1.3 var(--display);color:var(--ink)}
.trow .tinfo{font-size:.74rem;color:var(--muted)}
.trow .tbadge{font-size:.66rem;font-weight:600;letter-spacing:.06em;color:var(--teal-lt);border:1px solid rgba(18,160,181,.4);padding:3px 8px;border-radius:999px}
.tnote{font-size:.76rem;color:var(--muted);background:var(--bg);border:1px solid var(--rule);border-radius:9px;padding:9px 12px;margin-bottom:6px}
.map{border-radius:var(--r);overflow:hidden;border:1px solid var(--rule);height:320px;margin-top:18px;background:var(--panel)}
.map iframe{width:100%;height:100%;border:0;display:block}

/* sights and events */
.srow{display:grid;grid-template-columns:76px 1fr;gap:20px;padding:24px 0;border-bottom:1px solid var(--rule)}
.srow:first-child{padding-top:4px}
.srow .num{font:italic 400 2.5rem/1 var(--display);color:var(--gold)}
.srow h3{font-size:1.35rem;margin:0 0 8px}
.srow p{font-size:.92rem}
.srow .tags{margin-top:12px}
.ev{display:grid;grid-template-columns:66px 1fr;gap:18px;padding:18px 0;border-bottom:1px solid var(--rule)}
.ev .mo{border:1px solid var(--rule-gold);border-radius:10px;text-align:center;padding:8px 4px;height:fit-content}
.ev .mo b{display:block;font:600 .74rem var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--gold)}
.ev .mo span{font:italic 400 .95rem var(--display);color:var(--ink)}
.ev h3{font-size:1.15rem;margin:0 0 6px}
.ev p{font-size:.88rem}
a.card{text-decoration:none;color:inherit;transition:border-color .15s,transform .15s}
a.card:hover{border-color:var(--rule-gold);transform:translateY(-2px)}
a.card .go{margin-top:auto;padding-top:12px;font-size:.74rem;font-weight:600;color:var(--teal-lt)}
.icowrap{width:38px;height:38px;border-radius:10px;background:rgba(18,160,181,.12);display:flex;align-items:center;justify-content:center;color:var(--teal-lt)}
.goodlist{list-style:none;margin:10px 0 0;padding:0}
.goodlist li{padding:10px 0;border-bottom:1px solid var(--rule);font-size:.88rem;line-height:1.6}
.goodlist li:last-child{border-bottom:0}

/* faq */
.faq details{border-bottom:1px solid var(--rule)}
.faq summary{cursor:pointer;list-style:none;padding:18px 34px 18px 0;font:400 1.15rem/1.4 var(--display);color:var(--ink);position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary:after{content:"+";position:absolute;right:4px;top:14px;font:300 1.5rem var(--sans);color:var(--gold)}
.faq details[open] summary:after{content:"\2212"}
.faq details p{padding:0 0 18px;font-size:.92rem;max-width:70ch}

/* series */
.series{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.sc{border:1px solid var(--rule);border-radius:var(--r);padding:18px;background:var(--panel)}
.sc.here{border-color:var(--rule-gold)}
.sc h3{font-size:1.2rem}
.sc h3 em{color:var(--gold)}
.sc p{font-size:.78rem;color:var(--muted);margin-top:6px}

/* contact */
.okmsg{display:none;align-items:center;gap:10px;color:var(--good);font-weight:600;margin-top:12px}
.method{font-size:.8rem;color:var(--muted);line-height:1.7}
.method p+p{margin-top:10px}

/* footer */
footer{background:var(--bg-deep);border-top:1px solid var(--rule);padding:40px 0 96px;font-size:.84rem;color:var(--muted)}
.f-top{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;padding-bottom:22px;border-bottom:1px solid var(--rule);margin-bottom:20px}
.f-brand{font-family:var(--display);font-size:1.35rem;color:var(--ink)}
.f-brand em{color:var(--gold)}
.f-links{display:flex;flex-wrap:wrap;gap:6px 18px}
.f-links a{color:var(--muted);text-decoration:none}
.f-links a:hover{color:var(--gold)}
footer p+p{margin-top:6px}

/* floating buttons */
#btt{position:fixed;bottom:22px;left:18px;width:42px;height:42px;border-radius:50%;background:var(--panel);border:1px solid var(--rule-2);color:var(--ink);cursor:pointer;z-index:290;display:none;align-items:center;justify-content:center;transition:bottom .25s}
#btt:hover{border-color:var(--gold);color:var(--gold)}
#ki-bubble{position:fixed;bottom:20px;right:18px;height:50px;padding:0 18px 0 14px;border-radius:999px;background:var(--panel);border:1px solid var(--rule-gold);box-shadow:0 10px 30px rgba(0,0,0,.4);cursor:pointer;z-index:290;display:flex;align-items:center;gap:8px;color:var(--ink);font:600 .82rem var(--sans);transition:bottom .25s}
#ki-bubble svg{color:var(--gold)}
#ki-bubble:hover{border-color:var(--gold)}
body.bar-on{padding-bottom:var(--barh,96px)}
body.bar-on #btt{bottom:calc(var(--barh,96px) + 14px)}
body.bar-on #ki-bubble{bottom:calc(var(--barh,96px) + 12px)}
#ki-panel{position:fixed;bottom:84px;right:18px;width:370px;max-height:560px;background:var(--panel);border:1px solid var(--rule-gold);border-radius:16px;box-shadow:0 24px 60px rgba(0,0,0,.5);z-index:350;display:none;flex-direction:column;overflow:hidden}
body.bar-on #ki-panel{bottom:calc(var(--barh,96px) + 74px)}
.ki-head{background:var(--bg-deep);padding:14px 18px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--rule)}
.ki-head b{font:400 1.1rem var(--display);color:var(--ink);display:block}
.ki-head b em{color:var(--gold)}
.ki-head span{font-size:.68rem;color:var(--muted);letter-spacing:.04em}
.ki-x{background:none;border:1px solid var(--rule-2);width:32px;height:32px;border-radius:50%;cursor:pointer;color:var(--body);display:flex;align-items:center;justify-content:center}
#ki-messages{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:10px;min-height:200px;max-height:380px}
.ki-msg{max-width:86%;padding:10px 13px;border-radius:12px;font-size:.85rem;line-height:1.55;white-space:pre-wrap}
.ki-bot{background:var(--bg);color:var(--body);align-self:flex-start;border:1px solid var(--rule);border-radius:4px 12px 12px 12px}
.ki-user{background:var(--gold);color:#0B1722;align-self:flex-end;border-radius:12px 4px 12px 12px}
.ki-typing{background:var(--bg);border:1px solid var(--rule);padding:10px 16px;border-radius:4px 12px 12px 12px;align-self:flex-start}
.ki-typing span{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--muted);margin:0 2px;animation:kib .9s infinite}
.ki-typing span:nth-child(2){animation-delay:.15s}.ki-typing span:nth-child(3){animation-delay:.3s}
@keyframes kib{0%,60%,100%{transform:translateY(0)}30%{transform:translateY(-5px)}}
.ki-foot{padding:12px;border-top:1px solid var(--rule);display:flex;gap:8px}
.ki-foot button{flex-shrink:0;padding:10px 14px}

/* ===== open badges, saves, flashes ===== */
.ob{display:inline-flex;align-items:center;gap:7px;font-size:.74rem;font-weight:600;margin:0 0 8px;color:var(--muted)}
.ob:before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor;flex-shrink:0}
.ob.open{color:var(--good)}
.ob.soon{color:var(--warn)}
.ob:empty{display:none}
.card,.srow{position:relative}
.card h3{padding-right:42px}
.srow h3{padding-right:46px}
.fav{position:absolute;top:14px;right:14px;width:36px;height:36px;border-radius:50%;border:1px solid var(--rule-2);background:var(--bg);color:var(--muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:color .15s,border-color .15s,background .15s}
.fav:hover{color:var(--gold);border-color:var(--gold)}
.fav[aria-pressed="true"]{color:var(--gold);border-color:var(--gold);background:var(--gold-soft)}
.fav[aria-pressed="true"] svg{fill:currentColor}
.srow .fav{top:22px;right:0}
.own{display:inline-block;appearance:none;background:none;border:0;padding:0;margin-top:12px;font:500 .78rem/1.4 var(--sans);color:var(--muted);cursor:pointer;text-align:left;text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--rule-2)}
.own:hover{color:var(--gold);text-decoration-color:var(--gold)}
.flash{animation:flash 2.4s ease}
@keyframes flash{0%,45%{box-shadow:0 0 0 2px var(--gold),0 0 34px rgba(201,168,76,.35)}100%{box-shadow:0 0 0 0 rgba(201,168,76,0)}}
tr.flash td,.srow.flash,.ev.flash{animation:flashbg 2.4s ease}
@keyframes flashbg{0%,45%{background:var(--gold-soft)}100%{background:transparent}}
.empty-pane{color:var(--muted);font-size:.9rem;padding:8px 0 4px}
.tb-open .n{color:var(--good);opacity:1}

/* next up */
.nextup{display:flex;gap:10px;align-items:flex-start;font-size:.88rem;line-height:1.55;color:var(--body);margin:0 0 20px}
.nextup svg{color:var(--gold);flex-shrink:0;margin-top:3px}
.nextup b{color:var(--ink);font-weight:600}
.nextup b.live-on{color:var(--good);margin-right:4px}
.nextup a{color:var(--gold);font-weight:600;text-decoration:none}
.nextup a:hover{text-decoration:underline}

/* open right now */
.onow{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.onow h4{font:600 .68rem/1.4 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 6px;display:flex;justify-content:space-between;gap:8px;padding-bottom:8px;border-bottom:1px solid var(--rule-2)}
.onow h4 span{color:var(--good);letter-spacing:.04em}
.onow ul{list-style:none;margin:0;padding:0}
.onow li{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding:9px 0;border-bottom:1px solid var(--rule);font-size:.88rem}
.onow li:last-child{border-bottom:0}
.onow li a{color:var(--ink);text-decoration:none}
.onow li a:hover{color:var(--gold)}
.onow li small{color:var(--muted);white-space:nowrap;font-size:.74rem}
.onow li.none{display:block;color:var(--muted);font-size:.84rem;line-height:1.55}
.onow li.none a{color:var(--gold)}

/* day plans */
.plan-pick{display:none;align-items:flex-start;gap:12px;background:var(--gold-soft);border:1px solid rgba(201,168,76,.3);border-radius:12px;padding:13px 16px;font-size:.88rem;line-height:1.55;margin-bottom:18px}
.plan-pick.show{display:flex}
.plan-pick svg{color:var(--gold);flex-shrink:0;margin-top:2px}
.plan-intro{font-size:.95rem;margin-bottom:8px}
.stops{list-style:none;margin:0;padding:0}
.stop{display:grid;grid-template-columns:72px 1fr;gap:16px;padding:16px 0;border-bottom:1px solid var(--rule)}
.stop .tm{font:italic 400 1.3rem/1.25 var(--display);color:var(--gold)}
.stop h3{font-size:1.15rem;margin:0 0 4px}
.stop h3 a{color:var(--ink);text-decoration:none}
.stop h3 a:hover{color:var(--gold)}
.stop p{font-size:.88rem}
.st-b{display:flex;gap:6px;align-items:flex-start;font-size:.76rem;font-weight:600;margin-top:8px;line-height:1.45}
.st-b svg{flex-shrink:0;margin-top:1px}
.st-b.ok{color:var(--good)}
.st-b.no{color:var(--warn)}
.tip{margin-top:18px}

/* bar extras */
.bar-r .icon-btn{gap:6px}
#my-chip svg{color:var(--gold);fill:var(--gold)}
#my-chip b{font-weight:600}

/* modals */
.modal{position:fixed;inset:0;z-index:9000;display:none;align-items:flex-start;justify-content:center;padding:10vh 16px 16px}
.modal.open{display:flex}
.modal .scrim{position:absolute;inset:0;background:rgba(4,10,16,.76);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
.modal .box{position:relative;width:min(640px,100%);max-height:78vh;max-height:78dvh;overflow:auto;background:var(--bg);border:1px solid var(--rule-gold);border-radius:16px;box-shadow:0 30px 80px rgba(0,0,0,.55);padding:18px 18px 20px}
.mhead{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
.mhead b{font:400 1.3rem var(--display);color:var(--ink)}
.sbox{display:flex;gap:10px;align-items:center;background:var(--panel);border:1px solid var(--rule-2);border-radius:12px;padding:0 14px;color:var(--muted)}
.sbox input{border:0;background:transparent;padding:14px 0;font-size:1rem;outline:none}
.sbox:focus-within{border-color:var(--teal)}
.sres{list-style:none;margin:10px 0 0;padding:0}
.sr{appearance:none;width:100%;display:flex;gap:12px;align-items:flex-start;text-align:left;background:transparent;border:1px solid transparent;border-radius:10px;padding:10px 12px;cursor:pointer;color:var(--body);font:inherit}
.sr.on,.sr:hover{background:var(--panel);border-color:var(--rule-2)}
.sr .tag{flex-shrink:0;min-width:74px;text-align:center}
.sr b{display:block;color:var(--ink);font-weight:600;font-size:.92rem}
.sr small{display:block;color:var(--muted);font-size:.76rem;line-height:1.45}
.sres .empty,.box .empty{color:var(--muted);font-size:.88rem;padding:12px 4px}
.shint{font-size:.74rem;color:var(--muted);margin-top:12px}
.mlist{list-style:none;margin:0;padding:0}
.mlist li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--rule)}
.mlist li div{min-width:0}
.mlist li .tag{margin-right:8px}
.mlist li a{color:var(--ink);font-weight:600;text-decoration:none}
.mlist li a:hover{color:var(--gold)}
.mlist li small{display:block;color:var(--muted);font-size:.76rem;margin-top:2px}
.mbtns{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}

/* business tools */
.biz{grid-template-columns:repeat(4,1fr)}
.bt-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:28px;align-items:start}
.copyrow{display:flex;gap:8px}
.copyrow input{font-size:.84rem}
.cardprev{display:flex;justify-content:center;align-items:center;min-height:300px;background:var(--bg);border:1px dashed var(--rule-2);border-radius:14px;padding:18px}
.cardprev svg{width:100%;max-width:300px;height:auto;display:block;border-radius:8px;box-shadow:0 18px 40px rgba(0,0,0,.45)}
.ph-empty{color:var(--muted);font-size:.86rem;text-align:center;max-width:220px}
.badge-prev{display:flex;align-items:center;gap:12px;margin:2px 0 10px}
#bt-badge{min-height:84px;font:400 .74rem/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--body)}
.bt-actions{display:flex;gap:8px;flex-wrap:wrap}
.bt-theme{margin:0}
.bt-theme .tb{padding:7px 12px}

@media (max-width:980px){.biz{grid-template-columns:1fr 1fr}}
@media (max-width:760px){
  .onow,.bt-grid,.biz{grid-template-columns:1fr}
  .stop{grid-template-columns:56px 1fr;gap:12px}
  .modal{padding:8px 8px 8px;align-items:stretch}
  .modal .box{max-height:none;height:auto;width:100%}
  .bar-r .icon-btn .lbl{display:none}
  .bar-r .icon-btn{padding:8px 10px}
  .cardprev{min-height:0}
  .cardprev svg{max-width:240px}
}
@media print{.fav,.own,.nextup,#plan-pick,.modal,#business .bt-grid{display:none!important}.ob{color:#333!important}}

/* ===== register to reveal ===== */
html:not(.ag-reg) [data-smudge]{filter:blur(5px);cursor:pointer;-webkit-user-select:none;user-select:none;background:rgba(201,168,76,.16);border-radius:4px;transition:filter .25s}
html:not(.ag-reg) [data-smudge]:hover{filter:blur(4px)}
html:not(.ag-reg) .pick.gated{cursor:pointer}
.ag-inline{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:16px;background:var(--panel);border:1px dashed var(--rule-gold);border-radius:12px;padding:14px 16px}
.ag-inline p{flex:1 1 260px;font-size:.86rem;line-height:1.5}
.ag-inline p svg{color:var(--gold);display:inline-block;vertical-align:-3px;margin-right:6px}
.ag-inline form{display:flex;gap:8px;flex:1 1 300px}
.ag-inline input{padding:10px 12px}
html.ag-reg .ag-inline{display:none}
#ag-bar{position:fixed;left:0;right:0;bottom:0;z-index:320;background:rgba(15,31,46,.98);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-top:1px solid var(--gold);transform:translateY(110%);transition:transform .35s ease;padding:12px 0 calc(12px + env(safe-area-inset-bottom,0px))}
#ag-bar.show{transform:none}
.agb-in{max-width:1080px;margin:0 auto;padding:0 22px;display:flex;gap:16px;align-items:center}
.agb-t{flex:1;min-width:0}
.agb-t b{display:block;font:400 1.08rem/1.3 var(--display);color:var(--ink)}
.agb-t span{font-size:.78rem;color:var(--muted)}
#ag-bar form{display:flex;gap:8px;flex:0 1 420px}
#ag-bar input{padding:10px 12px}
.agb-x{background:none;border:1px solid var(--rule-2);color:var(--body);width:34px;height:34px;border-radius:50%;cursor:pointer;flex-shrink:0;display:flex;align-items:center;justify-content:center}
#ag-dialog{position:fixed;inset:0;z-index:10000;display:none;align-items:center;justify-content:center;padding:16px}
#ag-dialog.open{display:flex}
.ag-scrim{position:absolute;inset:0;background:rgba(4,10,16,.74);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
.ag-box{position:relative;width:min(480px,100%);max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);overflow:auto;background:var(--bg);border:1px solid rgba(201,168,76,.55);border-radius:16px;padding:30px 28px 24px;box-shadow:0 30px 80px rgba(0,0,0,.55)}
.ag-box .eb{font-size:.72rem;letter-spacing:.08em;margin-bottom:10px}
.ag-box h2{font-size:1.75rem;line-height:1.2;margin:0 0 10px}
.ag-box .ag-lead{font-size:.92rem;line-height:1.6;margin:0 0 18px}
.ag-box label{display:block;font-size:.76rem;color:var(--muted);margin:0 0 5px}
.ag-box input[type=text],.ag-box input[type=email],.ag-box select{margin:0 0 12px}
.ag-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.ag-check{display:flex!important;gap:9px;align-items:flex-start;font-size:.82rem!important;color:var(--body-2)!important;margin:2px 0 16px!important;line-height:1.45}
.ag-check input{margin-top:3px;accent-color:var(--gold)}
.ag-box .btn{width:100%;padding:14px}
.ag-fine{font-size:.72rem;color:var(--muted);margin:12px 0 0;line-height:1.55}
.ag-err{color:var(--bad);font-size:.8rem;margin:-6px 0 10px;display:none}
.ag-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.ag-x{position:absolute;top:12px;right:12px;width:34px;height:34px;border-radius:50%;border:1px solid var(--rule-2);background:transparent;color:var(--body);cursor:pointer;display:flex;align-items:center;justify-content:center}
.ag-done{text-align:center;padding:10px 0 4px}
.ag-done svg{color:var(--gold);margin:0 auto 10px}
#ag-toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,140%);background:var(--panel);border:1px solid rgba(108,203,159,.5);color:var(--ink);padding:12px 18px;border-radius:999px;font-size:.86rem;z-index:10001;transition:transform .35s;display:flex;gap:8px;align-items:center;box-shadow:0 12px 30px rgba(0,0,0,.4)}
#ag-toast svg{color:var(--good)}
#ag-toast.show{transform:translate(-50%,0)}

/* responsive */
@media (max-width:980px){
  .g3,.picks,.series{grid-template-columns:1fr 1fr}
  .how{grid-template-columns:1fr 1fr}
  .g4{grid-template-columns:1fr 1fr}
}
@media (max-width:760px){
  .wrap,.live-in,.agb-in{padding-left:16px;padding-right:16px}
  .bar-in{flex-wrap:wrap;gap:4px 10px;padding:8px 16px 0;min-height:0}
  .bar-in .logo{flex:1;font-size:1.1rem}
  .links{order:3;flex-basis:100%;margin:2px -16px 0;padding:0 16px 8px}
  .bar-r .pdf{display:none}
  section.s{padding:46px 0;scroll-margin-top:96px}
  .mast{padding:44px 0 34px}
  .stats{grid-template-columns:1fr 1fr}
  .st{border-left:0;padding:14px 0}
  .st:nth-child(even){padding-left:16px;border-left:1px solid var(--rule)}
  .st:nth-child(-n+2){border-bottom:1px solid var(--rule)}
  .st b{font-size:1.7rem}
  .mg{flex-direction:column;align-items:flex-start}
  .g2,.g3,.g4,.picks,.series,.how,.calc,.fgrid,.ag-row{grid-template-columns:1fr}
  .wx{grid-template-columns:1fr}
  .wx-main{border-right:0;border-bottom:1px solid var(--rule);padding:0 0 16px}
  .tides{grid-template-columns:1fr 1fr}
  .res{position:static}
  .srow{grid-template-columns:1fr;gap:6px}
  .srow .num{font-size:1.8rem}
  .ev{grid-template-columns:56px 1fr;gap:14px}
  .pt{grid-template-columns:26px 1fr auto;gap:10px;padding:12px}
  .tbl{font-size:.82rem}
  .tbl th,.tbl td{padding:10px}
  .hide-m{display:none}
  .map{height:240px}
  #ki-bubble span{display:none}
  #ki-bubble{padding:0;width:50px;justify-content:center}
  #ki-panel{width:calc(100vw - 24px);right:12px;max-height:70vh;max-height:70dvh}
  .agb-in{flex-wrap:wrap;gap:8px}
  .agb-t span{display:none}
  #ag-bar form{flex:1 1 100%;order:3}
  .ag-inline{padding:12px}
  .ag-inline p{flex-basis:100%;font-size:.82rem}
  .ag-inline form .btn{padding:10px 14px}
}
/* ===== October 2026: practical-first blocks ===== */
.qtiles{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:26px 0 0;max-width:900px}
.qt{display:flex;gap:12px;align-items:center;background:var(--panel);border:1px solid var(--rule);border-radius:12px;padding:13px 14px;text-decoration:none;color:var(--ink);transition:.15s;min-height:62px}
.qt:hover{border-color:var(--gold);background:var(--panel-2)}
.qt svg{color:var(--gold);flex-shrink:0}
.qt b{display:block;font:600 .9rem/1.25 var(--sans);color:var(--ink)}
.qt small{display:block;font-size:.72rem;color:var(--muted);line-height:1.35;margin-top:2px}
.qt small.live-n{color:var(--good)}
.tw-list{list-style:none;margin:0;padding:0}
.tw-list li{display:grid;grid-template-columns:86px 1fr;gap:12px;padding:10px 0;border-bottom:1px solid var(--rule);align-items:baseline}
.tw-list li:last-child{border-bottom:0}
.tw-list .dt{font-size:.74rem;color:var(--gold);font-weight:600;letter-spacing:.02em}
.tw-list .dt.now{color:var(--good)}
.tw-list a{color:var(--ink);text-decoration:none;font-weight:500}
.tw-list a:hover{color:var(--gold)}
.tw-list small{display:block;font-size:.76rem;color:var(--muted);line-height:1.45}
.fchips{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 18px}
.evl{display:grid;gap:10px}
.evi{display:grid;grid-template-columns:74px 1fr;gap:16px;background:var(--panel);border:1px solid var(--rule);border-radius:12px;padding:14px 16px;align-items:start}
.evi.big{border-color:var(--rule-gold)}
.evi .dbx{text-align:center;border-right:1px solid var(--rule);padding-right:12px}
.evi .dbx b{display:block;font:400 1.9rem/1 var(--display);color:var(--gold)}
.evi .dbx span{display:block;font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-top:4px}
.evi .dbx i{display:block;font-style:normal;font-size:.64rem;color:var(--muted);margin-top:4px;line-height:1.3}
.evi h3{font-size:1.12rem;line-height:1.3;margin:0 0 4px}
.evi .meta{font-size:.76rem;color:var(--muted);line-height:1.5;margin-bottom:6px}
.evi .meta b{color:var(--body);font-weight:500}
.evi p{font-size:.86rem;line-height:1.6}
.evi .lnk{font-size:.74rem;margin-top:6px;display:inline-block}
.evi .now-b{display:inline-block;font-size:.64rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--good);border:1px solid rgba(108,203,159,.45);border-radius:999px;padding:2px 8px;margin-left:8px;vertical-align:3px}
.ev-more{margin-top:14px}
/* long lists show the first few with a Show all button: fewer on phones so the page is quicker to scroll past */
.more-w{display:none;margin-top:14px}
@media(max-width:700px){.clp-m2:not(.open)>:nth-child(n+3),.clp-m3:not(.open)>:nth-child(n+4),.clp-m4:not(.open)>:nth-child(n+5),.clp-m5:not(.open)>:nth-child(n+6),.clp-m6:not(.open)>:nth-child(n+7){display:none}.more-w.mm{display:block}.onow.clp:not(.open) li:nth-child(n+3){display:none}}
@media(min-width:701px){.clp-d4:not(.open)>:nth-child(n+5),.clp-d6:not(.open)>:nth-child(n+7),.clp-d9:not(.open)>:nth-child(n+10),.clp-d10:not(.open)>:nth-child(n+11),.clp-d12:not(.open)>:nth-child(n+13){display:none}.more-w.md{display:block}}
@media print{.more-w{display:none!important}.clp>*{display:revert!important}}
.reg-list{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.reg-i{border-top:1px solid var(--rule-gold);padding:12px 0 4px}
.reg-i h4{font-size:1.02rem;margin:0 0 4px}
.reg-i p{font-size:.82rem;line-height:1.55}
.reg-i .w{color:var(--gold);font-size:.76rem;font-weight:600}
.e999{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 18px}
.e999 a{flex:1 1 180px;display:flex;align-items:center;gap:12px;background:var(--panel);border:1px solid var(--rule);border-radius:12px;padding:14px 16px;text-decoration:none;color:var(--ink)}
.e999 a b{font:400 1.7rem/1 var(--display);color:var(--gold);min-width:56px}
.e999 a span{font-size:.8rem;color:var(--body);line-height:1.4}
.e999 a.red b{color:#E89A8F}
.nsearch{display:flex;gap:10px;align-items:center;margin:0 0 12px;max-width:520px}
.nsearch input{flex:1}
.nums{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.num{background:var(--panel);border:1px solid var(--rule);border-radius:12px;padding:14px 16px;display:flex;flex-direction:column;gap:4px}
.num h4{font:600 .95rem/1.35 var(--sans);color:var(--ink);margin:0;display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center}
.num .ob{margin:0}
.num .nl{font-size:.76rem;color:var(--muted);line-height:1.5}
.num .nn{font-size:.82rem;line-height:1.55;color:var(--body)}
.num .na{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px;align-items:center}
.num .call{display:inline-flex;align-items:center;gap:8px;font:600 .9rem/1 var(--sans);color:#0B1722;background:var(--gold);border-radius:999px;padding:9px 14px;text-decoration:none}
.num .call:hover{background:var(--gold-2)}
.num .wl{font-size:.74rem;font-weight:600;color:var(--teal-lt);text-decoration:none;border:1px solid rgba(18,160,181,.35);padding:7px 12px;border-radius:999px}
.num .wl:hover{background:var(--teal);color:#0B1722}
.cat-h{grid-column:1/-1;font:400 1.2rem/1.3 var(--display);color:var(--ink);margin:14px 0 2px;padding-top:12px;border-top:1px solid var(--rule)}
.cat-h:first-child{margin-top:0;border-top:0;padding-top:0}
.kd{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,1fr);gap:10px}
.kd li{background:var(--panel);border:1px solid var(--rule);border-radius:12px;padding:14px}
.kd li.next{border-color:var(--gold)}
.kd li.done{opacity:.5}
.kd .d{font:400 1.25rem/1.2 var(--display);color:var(--gold)}
.kd .c{font-size:.7rem;font-weight:600;letter-spacing:.04em;color:var(--good);margin-top:2px;min-height:1em}
.kd h4{font:600 .86rem/1.35 var(--sans);color:var(--ink);margin:8px 0 4px}
.kd p{font-size:.74rem;line-height:1.5;color:var(--muted)}
.terms{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.terms span{font-size:.76rem;border:1px solid var(--rule-2);border-radius:999px;padding:6px 12px;color:var(--body)}
.terms span.next{border-color:var(--gold);color:var(--gold)}
.terms span.now{border-color:rgba(108,203,159,.6);color:var(--good)}
.schs{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.famh-l{list-style:none;margin:8px 0 0;padding:0}.famh-l li{padding:9px 0;border-top:1px solid var(--rule)}.famh-l li:first-child{border-top:0}.famh-l a{font-weight:600}.famh-l small{display:block;color:var(--muted);font-size:.8rem;line-height:1.45;margin-top:2px}.famh .panel h3{font-size:1.15rem}.famh-b{white-space:normal}
.nu-h{font:400 1.2rem/1.3 var(--display);color:var(--ink);margin:24px 0 12px}.nu-h .cnt{font:500 .8rem/1 var(--sans);color:var(--muted);margin-left:6px;vertical-align:3px}
.sch h3{margin:8px 0 2px}
.sch .who{font-size:.78rem;color:var(--muted);line-height:1.5}
.ofs{margin:10px 0 2px;background:var(--bg);border:1px solid var(--rule);border-radius:10px;padding:10px 12px}
.ofs .h{font-size:.66rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.ofs .g{font:400 1.15rem/1.35 var(--display);color:var(--ink)}
.ofs .g.o{color:var(--good)}.ofs .g.gd{color:var(--teal-lt)}
.ofs .x{font-size:.74rem;color:var(--muted);line-height:1.45;margin-top:2px}
.ofs ul{list-style:none;margin:6px 0 0;padding:0;display:grid;grid-template-columns:1fr auto;gap:2px 10px;font-size:.76rem}
.ofs ul li{display:contents}
.ofs ul span{color:var(--body)}
.ofs ul b{font-weight:600;text-align:right}
.gr-ex,.gr-o{color:var(--good)}.gr-s,.gr-g{color:var(--teal-lt)}.gr-e{color:var(--body)}.gr-n,.gr-ri{color:var(--warn)}.gr-u{color:var(--bad)}
.sch .adm{font-size:.8rem;line-height:1.55;margin-top:8px}
.sch .sev{list-style:none;margin:8px 0 0;padding:0}
.sch .sev li{font-size:.78rem;line-height:1.45;padding:6px 0 6px 14px;position:relative;border-top:1px solid var(--rule)}
.sch .sev li:before{content:"";position:absolute;left:0;top:12px;width:6px;height:6px;border-radius:50%;background:var(--gold)}
.sch .sev li b{color:var(--gold);font-weight:600}
.sch .sev-h{font-size:.66rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--gold);margin-top:10px}
.sch-c{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:16px}
@media (max-width:980px){.qtiles{grid-template-columns:repeat(2,1fr)}.kd{grid-template-columns:repeat(3,1fr)}}
@media (max-width:760px){
  .qtiles{grid-template-columns:1fr 1fr;gap:8px}
  .qt{padding:11px 12px;gap:10px;min-height:56px}
  .qt small{display:none}
  .evi{grid-template-columns:58px 1fr;gap:12px;padding:12px}
  .evi .dbx b{font-size:1.5rem}
  .nums,.schs,.reg-list,.sch-c{grid-template-columns:1fr}
  .kd{grid-template-columns:1fr 1fr}
  .fchips{flex-wrap:nowrap;overflow-x:auto;margin-left:-16px;margin-right:-16px;padding:0 16px 6px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .fchips::-webkit-scrollbar{display:none}
  .fchips .tb{flex:none}
  .tw-list li{grid-template-columns:72px 1fr}
}
@media print{.qtiles,.fchips,.nsearch,.ev-more{display:none!important}.evi,.num,.kd li{background:#fff!important;border-color:#ccc!important}.evi.hide-old{display:none!important}}
.evl-a{display:flex;flex-wrap:wrap;gap:4px 16px;margin-top:6px}.evl-a .lnk{margin-top:0}.cal{display:inline-flex;flex-wrap:wrap;gap:4px 16px}
.dirlinks{display:flex;flex-wrap:wrap;gap:6px 16px;margin:14px 0 0}.dirlinks a{color:var(--muted);font-size:.8rem}
.seclinks{margin-top:10px;font-size:.88rem}.seclinks a{margin-right:14px}
.live-badge iframe{border:0;width:280px;max-width:100%;height:64px;display:block;margin-top:8px}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
/* the long homepage lays out each section as it nears the screen; switched off (cv-off) before any jump so links land exactly */
@supports (content-visibility:auto){main>section.s:not(#now){content-visibility:auto;contain-intrinsic-size:auto 1400px}html.cv-off main>section.s{content-visibility:visible!important}}
@media (prefers-reduced-motion:no-preference){main>section.s.hrv{opacity:0;transform:translateY(18px)}main>section.s.hrv.in{opacity:1;transform:none;transition:opacity .6s ease,transform .6s ease}}
html.cv-off main>section.s.hrv{opacity:1;transform:none;transition:none}
@media print{
  body{background:#fff;color:#222}
  .live,.bar,#btt,#ki-bubble,#ki-panel,#ag-bar,#ag-dialog,#ag-toast,.ag-inline,.mg,.map,form,.tabs,.cc{display:none!important}
  .pane{display:block!important}
  section.s{border-color:#ddd;padding:24px 0;break-inside:auto}
  h1,h2,h3,h4,strong,.st b,.pt .pp,.tbl td.pr,.srow .num,.tbl td.it,.pt .nm,.logo{color:#111!important}
  .panel,.card,.pick,.pints,.tw,.k,.ti,.res,.note,.sc{background:#fff!important;border-color:#ccc!important}
  .tbl th{background:#f3f3f3!important;color:#555}
  p,li,td,.lead{color:#333!important}
}
/* phones and tablets: form fields at 16px, the size below which iPhone Safari zooms the page in when a field or dropdown is tapped */
@media (max-width:900px),(pointer:coarse){select,input,textarea,.copyrow input,.owner textarea,#fb-code{font-size:16px!important}}

/* ===== static pages ===== */
body.subpage main{padding:0 0 64px}
.crumbs{font-size:.76rem;color:var(--muted);padding:22px 0 0;display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.crumbs a{color:var(--muted);text-decoration:none}.crumbs a:hover{color:var(--gold)}
.ph1{padding:18px 0 8px;max-width:860px}
.ph1 h1{font-size:clamp(2.1rem,5.4vw,3.3rem);line-height:1.08;margin:8px 0 14px;letter-spacing:-.01em}
.ph1 .lead{max-width:72ch}
.ph1 .ob{margin:0 0 12px}
.h3{font-size:1.25rem;margin:0 0 12px}
.kd h3{font:600 .86rem/1.35 var(--sans);color:var(--ink);margin:8px 0 4px}
.fam-i{color:var(--muted);margin:-6px 0 14px;font-size:.92rem}.card.fam .hrs{color:var(--ink);font-size:.86rem}.card.fam .who{font-size:.8rem;margin:4px 0 8px}.h4{font-size:1.05rem;margin:0 0 6px}
.sm{font-size:.84rem;line-height:1.6}
.mt{margin-top:18px}
.vgrid{display:grid;grid-template-columns:1.1fr 1fr;gap:18px;margin-top:20px}
.htbl{width:100%;border-collapse:collapse;font-size:.92rem}
.htbl th{text-align:left;font-weight:500;color:var(--body);padding:9px 0;border-bottom:1px solid var(--rule)}
.htbl td{text-align:right;color:var(--ink);padding:9px 0;border-bottom:1px solid var(--rule)}
.htbl tr.today th,.htbl tr.today td{color:var(--gold);font-weight:600}
.card h3 a{color:var(--ink);text-decoration:none}.card h3 a:hover{color:var(--gold)}
.vc .ob{margin-bottom:4px}
.grp-h{font-size:1.4rem;margin:36px 0 14px}
.grp-h .cnt{font:500 .8rem/1 var(--sans);color:var(--muted);margin-left:6px;vertical-align:4px}
.tog{display:inline-flex;gap:10px;align-items:center;font-size:.88rem;background:var(--panel);border:1px solid var(--rule-gold);border-radius:999px;padding:10px 16px;cursor:pointer}
.tog input{accent-color:var(--gold);width:16px;height:16px}
.tog b{color:var(--good);font-weight:600}
.owner textarea,#fb-code{min-height:84px;font:400 .74rem/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--body);margin-top:8px}
.badge-prev{margin-top:12px;min-height:64px}
.badge-prev iframe{border:0;width:280px;max-width:100%;height:64px;display:block}
.az{columns:3 240px;column-gap:28px;margin-top:10px}
.az h2{font-size:1.5rem;margin:20px 0 6px;break-after:avoid;color:var(--gold)}
.az a{display:block;padding:8px 0;border-bottom:1px solid var(--rule);color:var(--ink);text-decoration:none;font-size:.95rem;break-inside:avoid}
.az a:hover{color:var(--gold)}
.az a small{display:block;color:var(--muted);font-size:.78rem;margin-top:2px}
.dirlinks{display:flex;flex-wrap:wrap;gap:6px 16px;margin:14px 0 0}
.dirlinks a{color:var(--muted);font-size:.8rem}
.chg{list-style:none;margin:0;padding:0}
.chg li{padding:12px 0;border-bottom:1px solid var(--rule);font-size:.92rem;line-height:1.6}
.chg b{color:var(--ink);margin-right:4px}
.sights .srow h2{margin:0 0 6px}
.chk{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:6px}
.chk label{display:flex;gap:8px;align-items:center;font-size:.88rem}
.chk input,.ag-check input{accent-color:var(--gold)}
fieldset{border:0;padding:0;margin-left:0;margin-right:0}
.hgrid{grid-template-columns:repeat(4,1fr)!important}
.evl-a{display:flex;flex-wrap:wrap;gap:4px 16px;margin-top:6px}
.evl-a .lnk{margin-top:0}
.cal{display:inline-flex;flex-wrap:wrap;gap:4px 16px}
.minis{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.mini{display:block;background:var(--panel);border:1px solid var(--rule);border-radius:12px;padding:12px 14px;text-decoration:none}
.mini b{display:block;font:400 1.02rem/1.3 var(--display);color:var(--ink)}
.mini small{display:block;font-size:.72rem;color:var(--muted);margin-top:3px}
.mini:hover{border-color:var(--gold)}
.gal{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:6px}
.gal img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:10px;display:block}
@media (max-width:980px){.minis{grid-template-columns:1fr 1fr}}
@media (max-width:760px){.vgrid{grid-template-columns:1fr}.gal{grid-template-columns:1fr 1fr}.hgrid{grid-template-columns:1fr 1fr!important}.bar-r .btn{padding:8px 12px}}
