img{max-width:100%}[hidden]:not([hidden=until-found i]){display:none!important}html{scroll-padding-top:env(safe-area-inset-top,0px)}
/* Quiet NYC: warm paper, one dusty-navy accent, serif display over a light sans, photo-led cards. */
  :root {
    --bg: #f4efe7;
    --surface: #fbf8f3;
    --ink: #2a2622;
    --muted: #7b7268;
    --line: #e1d8ca;
    --accent: #3d5272;
    --accent-ink: #fbf8f3;
    --soft: #e8e1d5;
    --focus: #3d5272;
    --c-Music: #b9825a;
    --c-Food: #b0675c;
    --c-Arts: #8f7399;
    --c-Outdoors: #6f8f6e;
    --c-Nightlife: #62799f;
    --c-Community: #a89265;
    --font-display: "Cormorant Garamond", "Cormorant", Georgia, "Times New Roman", serif;
    --font-body: "Jost", "Helvetica Neue", Arial, sans-serif;
  }
  @media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) {
    --bg: #14171c; --surface: #1b2027; --ink: #ece6dc; --muted: #9a9387; --line: #2b323c; --accent: #a9bddb; --accent-ink: #14171c; --soft: #232932; --focus: #a9bddb;
    --c-Music: #d09a6e; --c-Food: #cc8076; --c-Arts: #ab90b5; --c-Outdoors: #8fae8d; --c-Nightlife: #849cc5; --c-Community: #c2ab7d; color-scheme: dark; } }
  :root[data-theme="dark"] {
    --bg: #14171c; --surface: #1b2027; --ink: #ece6dc; --muted: #9a9387; --line: #2b323c; --accent: #a9bddb; --accent-ink: #14171c; --soft: #232932; --focus: #a9bddb;
    --c-Music: #d09a6e; --c-Food: #cc8076; --c-Arts: #ab90b5; --c-Outdoors: #8fae8d; --c-Nightlife: #849cc5; --c-Community: #c2ab7d; color-scheme: dark; }

  * { box-sizing: border-box; }
  body { margin: 0; background: var(--bg); color: var(--ink); font-family: var(--font-body); font-weight: 300; font-size: 16px; line-height: 1.55; }
  button, input, select { font-family: inherit; }
  a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible { outline: 2px solid var(--focus); outline-offset: 3px; }

  /* Masthead */
  .sign { max-width: 1080px; margin-inline: auto; padding-inline: 20px; padding-block: 22px 8px; }
  .brand { display: flex; align-items: center; justify-content: space-between; gap: 12px 20px; flex-wrap: wrap; }
  .logo { display: block; width: min(250px, 66vw); height: auto; }
  .logo .l-ring { fill: none; stroke: var(--ink); stroke-width: 1.4; }
  .logo .l-hand { stroke: var(--ink); stroke-width: 1.6; stroke-linecap: round; fill: none; }
  .logo .l-nyc { font-family: var(--font-body); font-weight: 400; font-size: 25px; letter-spacing: .42em; fill: var(--ink); }
  .logo .l-sub { font-family: var(--font-display); font-style: italic; font-weight: 500; font-size: 22px; fill: var(--muted); }
  .submit { color: var(--ink); text-decoration: none; font-size: .78rem; letter-spacing: .14em; text-transform: uppercase; border-bottom: 1px solid var(--ink); padding-bottom: 3px; }
  .hero { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: 36px; align-items: center; padding-block: 44px 28px; }
  .kicker { font-size: .78rem; letter-spacing: .24em; text-transform: uppercase; color: var(--muted); margin: 0 0 18px; font-weight: 400; }
  h1 { font-family: var(--font-display); font-weight: 400; font-size: clamp(2.8rem, 9vw, 5.2rem); line-height: .98; letter-spacing: -.01em; margin: 0 0 22px; text-wrap: balance; }
  h1 em { font-style: italic; color: var(--accent); }
  .sub { margin: 0 0 6px; font-size: 1.02rem; max-width: 34ch; }
  .updated { margin: 0; color: var(--muted); font-size: .86rem; max-width: 40ch; }
  .heropic { width: 100%; max-width: 300px; justify-self: center; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 999px 999px 10px 10px; display: block; background: var(--soft); }
  .skyline { display: block; width: 100%; height: 54px; color: var(--ink); opacity: .35; }
  .ticker { display: none; }

  .wrap { max-width: 1080px; margin-inline: auto; padding-inline: 20px; padding-block: 28px 110px; }
  .banner { background: var(--surface); border: 1px solid var(--line); padding: 12px 16px; border-radius: 10px; font-size: .92rem; margin-bottom: 16px; }

  .views { display: flex; gap: 28px; margin-bottom: 22px; border-bottom: 1px solid var(--line); flex-wrap: wrap; }
  .view { border: 0; background: none; color: var(--muted); padding: 10px 0; font-size: .8rem; letter-spacing: .2em; text-transform: uppercase; cursor: pointer; border-bottom: 1px solid transparent; margin-bottom: -1px; font-weight: 400; }
  .view[aria-pressed="true"] { color: var(--ink); border-bottom-color: var(--ink); }

  .tabs, .chips { display: flex; gap: 8px; flex-wrap: wrap; }
  .tabs { margin-bottom: 12px; }
  .tab, .chip { border: 1px solid var(--line); background: transparent; color: var(--ink); border-radius: 999px; cursor: pointer; font-size: .86rem; font-weight: 300; padding: 8px 18px; letter-spacing: .02em; }
  .chip { font-size: .8rem; padding: 6px 14px 6px 10px; display: inline-flex; align-items: center; gap: 6px; }
  .tab[aria-pressed="true"], .chip[aria-pressed="true"] { background: var(--ink); color: var(--bg); border-color: var(--ink); }
  .chip .bullet { margin-right: 0; }

  .controls { display: flex; gap: 12px; flex-wrap: wrap; align-items: center; margin: 22px 0 10px; }
  .controls input[type="search"], .controls select { font-size: .92rem; font-weight: 300; color: var(--ink); background: var(--surface); border: 1px solid var(--line); border-radius: 999px; padding: 10px 18px; }
  .controls input[type="search"] { flex: 1 1 240px; min-width: 0; }
  .free { display: flex; align-items: center; gap: 8px; font-size: .88rem; }
  .count { color: var(--muted); font-size: .85rem; margin: 6px 0 0; letter-spacing: .04em; }

  .day { font-family: var(--font-body); font-weight: 400; text-transform: uppercase; letter-spacing: .26em; font-size: .8rem; margin: 52px 0 22px; padding-bottom: 12px; border-bottom: 1px solid var(--line); display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; }
  .day .n { margin-left: auto; letter-spacing: .06em; text-transform: none; color: var(--muted); font-size: .82rem; }
  .grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(235px, 1fr)); gap: 38px 26px; }

  .row { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
  .ph { position: relative; }
  .pic { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 10px; display: block; background: var(--soft); }
  .sticker { position: absolute; left: 12px; top: 12px; background: color-mix(in srgb, var(--bg) 88%, transparent); color: var(--ink); font-size: .7rem; letter-spacing: .16em; text-transform: uppercase; padding: 5px 12px; border-radius: 999px; font-weight: 400; }
  .meta { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-top: 6px; font-size: .72rem; text-transform: uppercase; letter-spacing: .16em; color: var(--muted); font-weight: 400; }
  .bullet { display: inline-block; width: 8px; height: 8px; border-radius: 50%; font-size: 0; }
  .bullet.Music { background: var(--c-Music); } .bullet.Food { background: var(--c-Food); } .bullet.Arts { background: var(--c-Arts); }
  .bullet.Outdoors { background: var(--c-Outdoors); } .bullet.Nightlife { background: var(--c-Nightlife); } .bullet.Community { background: var(--c-Community); }
  .time { color: var(--ink); }
  .title { font-family: var(--font-display); font-weight: 500; font-size: 1.62rem; line-height: 1.08; margin: 0; text-wrap: balance; }
  .desc { margin: 0; font-size: .94rem; color: var(--ink); opacity: .86; }
  .where { color: var(--muted); font-size: .84rem; }
  .foot { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; margin-top: auto; padding-top: 10px; }
  .price { font-size: .86rem; letter-spacing: .02em; }
  .btn { text-decoration: none; background: var(--ink); color: var(--bg); padding: 9px 20px; border-radius: 999px; font-size: .78rem; letter-spacing: .12em; text-transform: uppercase; font-weight: 400; white-space: nowrap; transition: opacity .15s ease; }
  .btn:hover { opacity: .8; }
  .host { display: none; }
  .row.nopic { border-top: 1px solid var(--line); padding-top: 14px; }
  .empty { text-align: center; color: var(--muted); padding: 56px 0; }
  .fine { color: var(--muted); font-size: .8rem; margin-top: 56px; max-width: 70ch; }

  @media (max-width: 760px) {
    .hero { grid-template-columns: minmax(0, 1fr); padding-block: 28px 18px; gap: 26px; }
    .heropic { aspect-ratio: 4 / 5; max-width: 260px; justify-self: center; border-radius: 999px 999px 10px 10px; }
  }
  @media (prefers-reduced-motion: reduce) { .btn { transition: none; } }

  /* ---- Weekend planner ---- */
  .plan-btn { position: fixed; right: 16px; bottom: calc(16px + env(safe-area-inset-bottom, 0px)); z-index: 20; background: var(--accent); color: var(--accent-ink); border: 0; border-radius: 999px; padding: 16px 28px 16px 24px; font-size: .86rem; font-weight: 400; letter-spacing: .14em; text-transform: uppercase; cursor: pointer; box-shadow: 0 10px 30px rgba(20,30,60,.35); display: inline-flex; align-items: center; gap: 10px; }
  .plan-btn::before { content: ""; width: 10px; height: 10px; border-radius: 50%; background: #7ee2a1; box-shadow: 0 0 0 0 rgba(126,226,161,.7); animation: ping 2s infinite; }
  @keyframes ping { 70% { box-shadow: 0 0 0 12px rgba(126,226,161,0); } 100% { box-shadow: 0 0 0 0 rgba(126,226,161,0); } }
  .teaser { position: fixed; right: 16px; bottom: calc(86px + env(safe-area-inset-bottom, 0px)); z-index: 19; max-width: min(280px, calc(100vw - 32px)); background: var(--surface); color: var(--ink); border: 1px solid var(--line); border-radius: 18px 18px 4px 18px; padding: 14px 40px 14px 16px; font-size: .92rem; box-shadow: 0 14px 40px rgba(0,0,0,.22); }
  .teaser[hidden] { display: none; }
  .teaser strong { display: block; font-family: var(--font-display); font-weight: 500; font-size: 1.25rem; line-height: 1.1; margin-bottom: 2px; }
  .teaser button.x { position: absolute; top: 6px; right: 8px; background: none; border: 0; color: var(--muted); font-size: 1.3rem; cursor: pointer; line-height: 1; }
  @media (prefers-reduced-motion: reduce) { .plan-btn::before { animation: none; } }
  .planner { position: fixed; right: 16px; bottom: calc(80px + env(safe-area-inset-bottom, 0px)); z-index: 21; width: min(420px, calc(100vw - 32px)); height: min(620px, calc(100vh - 120px)); background: var(--surface); border: 1px solid var(--accent); border-radius: 18px; box-shadow: 0 24px 70px rgba(0,0,0,.35); display: flex; flex-direction: column; overflow: hidden; }
  .planner[hidden] { display: none; }
  .pl-head { display: flex; justify-content: space-between; align-items: center; padding: 16px 18px; background: var(--accent); color: var(--accent-ink); }
  .pl-head strong { font-family: var(--font-display); font-weight: 500; font-size: 1.3rem; }
  .pl-x { background: none; border: 0; color: inherit; font-size: 1.6rem; line-height: 1; cursor: pointer; }
  .pl-msgs { flex: 1; overflow-y: auto; padding: 16px; display: flex; flex-direction: column; gap: 10px; }
  .msg { max-width: 88%; padding: 10px 14px; border-radius: 16px; font-size: .92rem; }
  .msg.bot { background: var(--soft); align-self: flex-start; }
  .msg.user { background: var(--ink); color: var(--bg); align-self: flex-end; }
  .msg.wide { max-width: 100%; width: 100%; }
  .it-note { font-size: .88rem; margin-bottom: 6px; }
  .it-day { font-family: var(--font-display); font-size: 1.2rem; margin: 10px 0 2px; }
  .it-item { padding: 8px 0; border-top: 1px solid var(--line); font-size: .9rem; }
  .it-t { font-weight: 400; color: var(--muted); }
  .it-item a { color: var(--ink); }
  .pl-replies { padding: 10px 14px 14px; border-top: 1px solid var(--line); display: flex; flex-wrap: wrap; gap: 8px; max-height: 150px; overflow-y: auto; }
  .pl-replies:empty { display: none; }
  .chip.go { background: var(--ink); color: var(--bg); border-color: var(--ink); }

  /* ---- Engagement: save, calendar, share, quick picks, featured, bot, signup ---- */
  .acts { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: 10px; }
  .acts .ib, .acts details.cal > summary { font: inherit; font-size: .74rem; letter-spacing: .06em; border: 1px solid var(--line); background: transparent; color: var(--ink); border-radius: 999px; padding: 5px 12px; cursor: pointer; list-style: none; text-decoration: none; display: inline-flex; align-items: center; gap: 5px; }
  .acts details.cal > summary::-webkit-details-marker { display: none; }
  .acts .ib[aria-pressed="true"] { background: var(--ink); color: var(--bg); border-color: var(--ink); }
  .acts details.cal { position: relative; }
  .acts details.cal[open] > summary { background: var(--soft); }
  .calmenu { position: absolute; left: 0; top: calc(100% + 6px); z-index: 5; background: var(--surface); border: 1px solid var(--line); border-radius: 12px; padding: 6px; box-shadow: 0 12px 30px rgba(0,0,0,.2); min-width: 190px; display: flex; flex-direction: column; }
  .calmenu a { color: var(--ink); text-decoration: none; font-size: .84rem; padding: 8px 10px; border-radius: 8px; }
  .calmenu a:hover, .calmenu a:focus-visible { background: var(--soft); }
  .quick { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 14px 0 4px; }
  .quick .ql { font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); margin-right: 4px; }
  .feat { margin: 18px 0 4px; border: 1px solid var(--line); border-left: 4px solid var(--accent); background: var(--surface); border-radius: 14px; padding: 16px 18px; display: grid; gap: 6px; }
  .feat .fk { font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; color: var(--accent); }
  .feat h3 { font-family: var(--font-display); font-weight: 500; font-size: 1.45rem; line-height: 1.15; margin: 0; }
  .feat p { margin: 0; font-size: .92rem; }
  .feat .fm { color: var(--muted); font-size: .86rem; }
  .feat .fa { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-top: 6px; }
  .feat .fa a.lnk { color: var(--ink); font-size: .86rem; }
  .pl-form { display: flex; gap: 8px; padding: 10px 14px 14px; border-top: 1px solid var(--line); }
  .pl-form input { flex: 1 1 auto; min-width: 0; font: inherit; font-size: .92rem; color: var(--ink); background: var(--bg); border: 1px solid var(--line); border-radius: 999px; padding: 10px 16px; }
  .pl-form button { font: inherit; font-size: .82rem; background: var(--ink); color: var(--bg); border: 0; border-radius: 999px; padding: 10px 18px; cursor: pointer; }
  .pl-head small { display: block; font-size: .72rem; opacity: .85; letter-spacing: .04em; }
  .msg a { color: inherit; }
  .bot-card { padding: 9px 0; border-top: 1px solid var(--line); font-size: .88rem; }
  .bot-card:first-of-type { border-top: 0; }
  .bot-card b { font-weight: 500; }
  .bot-card .bm { color: var(--muted); font-size: .8rem; }
  .bot-card .bl { display: flex; gap: 12px; margin-top: 3px; font-size: .8rem; }
  .nl { margin: 36px auto 0; max-width: 980px; padding: 22px 22px; border: 1px solid var(--line); border-radius: 16px; background: var(--surface); display: grid; gap: 10px; }
  .nl h2 { font-family: var(--font-display); font-weight: 500; font-size: 1.6rem; margin: 0; }
  .nl p { margin: 0; font-size: .92rem; }
  .nl form { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
  .nl input[type="email"] { flex: 1 1 240px; min-width: 0; font: inherit; font-size: .92rem; color: var(--ink); background: var(--bg); border: 1px solid var(--line); border-radius: 999px; padding: 10px 18px; }
  .nl .hp { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }
  .nl label.ok { flex-basis: 100%; font-size: .82rem; color: var(--muted); display: flex; gap: 8px; align-items: flex-start; }
  .nl .nlmsg { font-size: .9rem; }

  /* Filters */
  .fbar { display: flex; gap: 12px; align-items: center; margin: 22px 0 6px; }
  .fbar input[type="search"], .fpanel select { font-size: .92rem; font-weight: 300; color: var(--ink); background: var(--surface); border: 1px solid var(--line); border-radius: 999px; padding: 10px 18px; }
  .fbar input[type="search"] { flex: 1 1 auto; min-width: 0; }
  .ftoggle { border: 1px solid var(--ink); background: transparent; color: var(--ink); border-radius: 999px; padding: 10px 20px; font-size: .78rem; letter-spacing: .14em; text-transform: uppercase; cursor: pointer; white-space: nowrap; }
  .fpanel { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px 40px; padding: 22px 0 8px; margin-top: 14px; border-top: 1px solid var(--line); }
  .fpanel[hidden], .fg[hidden], .fclear[hidden] { display: none; }
  .fg { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
  .fl { font-size: .7rem; letter-spacing: .22em; text-transform: uppercase; color: var(--muted); }
  .pills, .selects { display: flex; flex-wrap: wrap; gap: 8px; min-width: 0; }
  .pills .chip, .pills .tab { padding: 7px 15px; font-size: .84rem; }
  .selects select { flex: 1 1 150px; min-width: 0; }
  .fclear { grid-column: 1 / -1; justify-self: start; background: none; border: 0; border-bottom: 1px solid var(--ink); color: var(--ink); padding: 0 0 3px; font-size: .78rem; letter-spacing: .14em; text-transform: uppercase; cursor: pointer; }
  @media (max-width: 760px) { .fpanel { grid-template-columns: minmax(0, 1fr); gap: 18px; } }
  .fg.full { grid-column: 1 / -1; }
  .daterow { display: flex; flex-wrap: wrap; gap: 10px 14px; align-items: center; min-width: 0; }
  .df { display: inline-flex; align-items: center; gap: 8px; font-size: .78rem; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }
  .df input[type="date"] { font: inherit; font-size: .9rem; letter-spacing: 0; text-transform: none; color: var(--ink); background: var(--surface); border: 1px solid var(--line); border-radius: 999px; padding: 8px 14px; min-width: 0; }
  [hidden] { display: none !important; }
  .logolink { display: inline-block; line-height: 0; color: inherit; }
  .nav { display: flex; gap: 26px; flex-wrap: wrap; }
  .nav a, .fnav a { color: var(--ink); text-decoration: none; font-size: .78rem; letter-spacing: .18em; text-transform: uppercase; }
  .nav a:hover, .fnav a:hover { color: var(--accent); }
  .docwrap { max-width: 1080px; margin-inline: auto; padding-inline: 20px; padding-block: 36px 90px; }
  .doc { max-width: 720px; }
  .doc h1 { font-family: var(--font-display); font-weight: 500; font-size: clamp(2.2rem, 6vw, 3.4rem); line-height: 1.05; margin: 0 0 14px; }
  .doc h2 { font-family: var(--font-display); font-weight: 500; font-size: 1.7rem; line-height: 1.15; margin: 34px 0 8px; }
  .doc p, .doc li { font-size: 1.04rem; line-height: 1.7; }
  .doc ul { padding-left: 1.2em; }
  .doc a { color: var(--accent); }
  .doc .lead { font-size: 1.25rem; color: var(--muted); margin: 0 0 22px; }
  .doc .crumb, .pmeta { font-size: .76rem; letter-spacing: .16em; text-transform: uppercase; color: var(--muted); margin: 0 0 12px; }
  .doc .crumb a { color: var(--muted); }
  .doc .todo { background: color-mix(in srgb, #e0b000 25%, transparent); padding: 1px 6px; border-radius: 4px; }
  .pgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 20px; margin-top: 18px; }
  .pcard { display: flex; flex-direction: column; gap: 8px; padding: 22px; border: 1px solid var(--line); border-radius: 14px; background: var(--surface); color: var(--ink); text-decoration: none; }
  .pcard h3 { font-family: var(--font-display); font-weight: 500; font-size: 1.55rem; line-height: 1.1; margin: 0; }
  .pcard p { margin: 0; font-size: .94rem; line-height: 1.5; color: var(--muted); }
  .pcard .pmeta { margin: 0; }
  .pcard .more { margin-top: auto; font-size: .76rem; letter-spacing: .16em; text-transform: uppercase; border-bottom: 1px solid var(--ink); align-self: flex-start; padding-bottom: 2px; }
  .doc .cta { margin: 34px 0 6px; }
  .doc .btn { color: var(--bg); display: inline-block; }
  .sitefoot { border-top: 1px solid var(--line); background: var(--surface); padding: 40px 20px 110px; }
  .sitefoot .fin { max-width: 1080px; margin-inline: auto; display: flex; gap: 30px 60px; justify-content: space-between; flex-wrap: wrap; }
  .fabout { max-width: 420px; }
  .fabout strong { font-family: var(--font-display); font-weight: 500; font-size: 1.5rem; }
  .fabout p { margin: 6px 0 0; font-size: .9rem; color: var(--muted); }
  .fnav { display: flex; flex-direction: column; gap: 12px; }
  .legal { max-width: 1080px; margin: 28px auto 0; font-size: .8rem; color: var(--muted); }
  .consent { position: fixed; left: 16px; right: 16px; bottom: calc(16px + env(safe-area-inset-bottom, 0px)); z-index: 40; max-width: 640px; margin-inline: auto; background: var(--surface); color: var(--ink); border: 1px solid var(--line); border-radius: 18px; padding: 16px 18px; box-shadow: 0 18px 50px rgba(0,0,0,.28); display: flex; gap: 14px 20px; align-items: center; flex-wrap: wrap; }
  .consent p { margin: 0; font-size: .9rem; flex: 1 1 260px; }
  .consent a { color: var(--accent); }
  .cbtns { display: flex; gap: 10px; }
  .cb { border: 1px solid var(--ink); background: var(--ink); color: var(--bg); border-radius: 999px; padding: 10px 20px; font-size: .76rem; letter-spacing: .12em; text-transform: uppercase; cursor: pointer; }
  .cb.ghost { background: transparent; color: var(--ink); }
  @media (max-width: 760px) { .nav { order: 3; width: 100%; gap: 18px; } }
  .nav { gap: 22px; }
  .nav a.on { border-bottom: 1px solid var(--ink); padding-bottom: 3px; }
  .navbtn { display: none; background: none; border: 1px solid var(--ink); color: var(--ink); border-radius: 999px; padding: 8px 18px; font-size: .76rem; letter-spacing: .16em; text-transform: uppercase; cursor: pointer; }
  @media (max-width: 760px) { .navbtn { display: inline-block; } .nav { display: none; width: 100%; flex-direction: column; gap: 14px; padding: 14px 0 6px; border-top: 1px solid var(--line); order: 4; } .nav.open { display: flex; } }
  .eyebrow, .ptag { font-size: .72rem; letter-spacing: .22em; text-transform: uppercase; color: var(--accent); margin: 0 0 12px; display: block; }
  .doc { max-width: 960px; }
  .doc > p, .doc > ul, .doc > h2, .doc .post-body { max-width: 720px; }
  .ab-hero { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: 40px; align-items: center; padding-bottom: 26px; }
  .ab-hero h1 { font-size: clamp(2.4rem, 6vw, 4rem); margin: 0 0 16px; }
  .ab-pic, .post-pic { width: 100%; max-width: 300px; justify-self: center; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 999px 999px 12px 12px; background: var(--soft); display: block; }
  .stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); border-block: 1px solid var(--line); margin-block: 20px 8px; }
  .stats div { padding: 22px 16px; display: flex; flex-direction: column; gap: 4px; border-right: 1px solid var(--line); }
  .stats div:last-child { border-right: 0; }
  .stats strong { font-family: var(--font-display); font-weight: 500; font-size: 2.8rem; line-height: 1; color: var(--accent); }
  .stats span { font-size: .74rem; letter-spacing: .16em; text-transform: uppercase; color: var(--muted); }
  .cards3 { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 18px; margin: 14px 0 6px; }
  .mini { background: var(--surface); border: 1px solid var(--line); border-radius: 16px; padding: 24px; }
  .mini .num { font-family: var(--font-display); font-style: italic; color: var(--accent); font-size: 1.6rem; }
  .mini h3 { font-family: var(--font-display); font-weight: 500; font-size: 1.6rem; margin: 6px 0 6px; line-height: 1.1; }
  .mini p { margin: 0; font-size: .95rem; line-height: 1.55; color: var(--muted); }
  .ab-cta { display: flex; justify-content: space-between; align-items: center; gap: 18px 30px; flex-wrap: wrap; margin: 40px 0 8px; padding: 28px; background: var(--accent); color: var(--accent-ink); border-radius: 20px; }
  .ab-cta h3 { font-family: var(--font-display); font-weight: 500; font-size: 1.9rem; margin: 0 0 2px; line-height: 1.1; }
  .ab-cta p { margin: 0; }
  .ab-cta .btn { background: var(--accent-ink); color: var(--accent); }
  .pcard { overflow: hidden; padding: 0; gap: 0; transition: transform .18s ease, box-shadow .18s ease; }
  .pcard:hover { transform: translateY(-3px); box-shadow: 0 14px 34px rgba(0,0,0,.12); }
  .pcover { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; display: block; background: var(--soft); }
  .pbody { display: flex; flex-direction: column; gap: 8px; padding: 20px 22px 22px; flex: 1; }
  .pbody .ptag { margin: 0; }
  .pcard.big { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); margin-block: 22px 8px; }
  .pcard.big .pcover { height: 100%; aspect-ratio: auto; min-height: 260px; }
  .pcard.big h3 { font-size: 2.2rem; }
  .post-head { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 34px; align-items: center; margin-bottom: 26px; }
  .post-head h1 { font-size: clamp(2.2rem, 5vw, 3.4rem); }
  .adslot { display: none; max-width: 760px; margin: 30px auto; text-align: center; }
  .adslot.on { display: block; }
  .adslot .adlabel { display: block; font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; opacity: .6; margin-bottom: 8px; }
  .adslot iframe { border: 0; max-width: 100%; display: block; margin: 0 auto; overflow: hidden; }
  #homeWidget .affbox { margin: 36px auto 44px; }
  #homex .twidget { margin: 56px auto 40px; }
  #homeWidget .twidget { margin: 64px auto 40px; }
  .affbox + .twidget { margin-top: 48px; }
  .reqtag { margin: 6px 0 0 0; display: inline-block; font-size: .68rem; letter-spacing: .06em; text-transform: uppercase; font-weight: 700; padding: 3px 9px; border-radius: 999px; background: var(--accent, #c8402a); color: var(--accent-ink); text-decoration: none; white-space: nowrap; }
  .row.req { border-left: 4px solid var(--accent); padding-left: 14px; }
  .row.req .meta { flex-wrap: wrap; }
  .doc .muted { opacity: .65; margin-left: 8px; font-size: .9em; }
  .twidget { display: none; max-width: 760px; margin: 26px auto; text-align: left; }
  .twidget.on { display: block; }
  .twidget .adlabel { display: block; font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; opacity: .6; margin-bottom: 8px; text-align: center; }
  .twidget .fine { font-size: .8rem; opacity: .7; margin: 8px 0 0; text-align: center; }
  .affbox { max-width: 720px; margin: 28px auto; padding: 18px 20px; border: 1px solid rgba(0,0,0,.14); border-radius: 14px; text-align: left; }
  .affbox .adlabel { display: block; font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; opacity: .6; margin-bottom: 6px; }
  .affbox h3 { margin: 0 0 6px; }
  .affbox p { margin: 0 0 12px; }
  .affbox .fine { font-size: .8rem; opacity: .7; margin: 10px 0 0; }
  .partnerad { max-width: 720px; margin: 34px auto 10px; text-align: center; }
  .partnerad img { width: 100%; height: auto; aspect-ratio: 2 / 1; object-fit: cover; border-radius: 14px; display: block; margin-bottom: 16px; }
  .partnerad a { display: block; }
  .partnerad .adlabel { display: block; font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; opacity: .6; margin-bottom: 8px; }
  .post-body { padding-top: 6px; }
  .post-body > p:first-child::first-letter { font-family: var(--font-display); font-size: 3.6rem; float: left; line-height: .85; padding: 6px 10px 0 0; color: var(--accent); }
  .homex { max-width: 1080px; margin-inline: auto; padding: 10px 20px 40px; }
  .hx-title { font-family: var(--font-display); font-weight: 500; font-size: 2.4rem; margin: 40px 0 6px; }
  .hx-more { margin: 14px 0 0; } .hx-more a { color: var(--ink); font-size: .78rem; letter-spacing: .16em; text-transform: uppercase; border-bottom: 1px solid var(--ink); padding-bottom: 2px; text-decoration: none; }
  .hx-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 18px; margin-top: 44px; }
  .hx { display: block; text-decoration: none; color: var(--ink); background: var(--surface); border: 1px solid var(--line); border-radius: 18px; padding: 28px; transition: transform .18s ease; }
  .hx:hover { transform: translateY(-3px); }
  .hx h3 { font-family: var(--font-display); font-weight: 500; font-size: 1.9rem; margin: 0 0 6px; line-height: 1.1; }
  .hx p { margin: 0; color: var(--muted); }
  .shareblock { margin-top: 26px; }
  .shareblock .sharemsg { display: block; min-height: 1.2em; margin-top: 8px; font-size: .85rem; opacity: .8; }
  .shareblock .sharebtn:hover, .shareblock .sharebtn:focus-visible { transform: translateY(-3px); filter: brightness(1.1); }
  .post-body .shareblock { max-width: 720px; margin: 34px auto 0; }
  .social { margin-top: 26px; }
  .social .sfollow { font-family: var(--font-body, inherit); font-size: .95rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; margin: 0 0 16px; opacity: 1; }
  .sicons { display: flex; gap: 14px; flex-wrap: wrap; align-items: center; }
  .sicons .si { width: 42px; height: 42px; border-radius: 50%; display: flex; align-items: center; justify-content: center; box-shadow: 0 0 0 1px rgba(255,255,255,.28); transition: transform .15s, filter .15s; }
  .sicons .si svg { width: 20px; height: 20px; display: block; }
  .sicons .si:hover, .sicons .si:focus-visible { transform: translateY(-3px); filter: brightness(1.1); }
  .si.fb { background: #1877F2; } .si.yt { background: #FF0000; } .si.li { background: #0A66C2; } .si.tt { background: #000; } .si.th { background: #000; }
  .si.ig { background: radial-gradient(circle at 30% 107%, #fdf497 0%, #fdf497 5%, #fd5949 45%, #d6249f 60%, #285AEB 90%); }
  .sitefoot .fnav { display: grid; grid-template-columns: repeat(2, auto); gap: 12px 40px; }
  @media (max-width: 760px) { .ab-hero, .post-head, .pcard.big { grid-template-columns: minmax(0, 1fr); } .ab-pic, .post-pic { max-width: 220px; justify-self: start; } .stats div { border-right: 0; border-bottom: 1px solid var(--line); } .pcard.big .pcover { min-height: 180px; } }
  @media (prefers-reduced-motion: reduce) { .pcard, .hx { transition: none; } }
  .topbar { position: sticky; top: env(safe-area-inset-top, 0px); z-index: 15; background: var(--bg); border-bottom: 1px solid var(--line); }
  .topbar .brand { max-width: 1080px; margin-inline: auto; padding: 12px 20px; }
  .topbar .logo { width: min(210px, 56vw); }
  .sign { padding-block: 0 8px; }
  .crumbs { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; font-size: .76rem; letter-spacing: .16em; text-transform: uppercase; color: var(--muted); margin-bottom: 22px; }
  .crumbs a { color: var(--muted); text-decoration: none; border-bottom: 1px solid var(--line); }
  .crumbs a:hover { color: var(--ink); }
  .crumbs em { font-style: normal; color: var(--ink); }
  .explore { max-width: 960px; margin-top: 56px; padding-top: 26px; border-top: 1px solid var(--line); display: flex; flex-direction: column; gap: 12px; }
  .explore .chip { text-decoration: none; }
  .explore .chip:hover { background: var(--ink); color: var(--bg); }
  .doc .crumb { display: none; }
  .pl-form { display: flex; gap: 8px; padding: 10px 12px 12px; border-top: 1px solid var(--line); }
  .pl-form input { flex: 1 1 auto; min-width: 0; font-size: .92rem; font-weight: 300; color: var(--ink); background: var(--bg); border: 1px solid var(--line); border-radius: 999px; padding: 10px 16px; }
  .pl-send { border: 0; background: var(--accent); color: var(--accent-ink); border-radius: 999px; padding: 10px 18px; font-size: .76rem; letter-spacing: .12em; text-transform: uppercase; cursor: pointer; }
  .pl-form input:disabled, .pl-send:disabled { opacity: .6; }
  .kicker { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; font-size: .7rem; letter-spacing: .2em; }
  .live { display: inline-flex; align-items: center; gap: 8px; color: var(--ink); }
  .live i { width: 7px; height: 7px; border-radius: 50%; background: #5fbf86; box-shadow: 0 0 0 0 rgba(95,191,134,.6); animation: ping 2.4s infinite; }
  .kdiv { opacity: .4; }
  .hoodswap { transition: opacity .35s ease, transform .35s ease; display: inline-block; }
  .hoodswap.out { opacity: 0; transform: translateY(4px); }
  .ph { overflow: hidden; border-radius: 10px; }
  .pic { transition: transform .7s cubic-bezier(.2,.7,.2,1); }
  .row:hover .pic { transform: scale(1.035); }
  .route { max-width: 1080px; margin: 38px auto 0; position: relative; display: flex; justify-content: space-between; gap: 6px; padding-top: 18px; font-size: .62rem; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); }
  .route::before { content: ""; position: absolute; left: 4px; right: 4px; top: 4px; height: 1px; background: var(--line); }
  .route span { position: relative; }
  .route span::before { content: ""; position: absolute; left: 0; top: -18px; width: 9px; height: 9px; border-radius: 50%; background: var(--bg); border: 1px solid var(--ink); }
  .route span:last-child { text-align: right; }
  .route span:last-child::before { left: auto; right: 0; }
  @media (prefers-reduced-motion: reduce) { .live i { animation: none; } .hoodswap, .pic { transition: none; } .row:hover .pic { transform: none; } }
  .navcta { border: 1px solid var(--ink); border-radius: 999px; padding: 6px 14px; }
  .nav a.navcta:hover { background: var(--ink); color: var(--bg); }
  .doc.wide { max-width: 1080px; }
  .doc.wide > p, .doc.wide > ul, .doc.wide > h2 { max-width: none; }
  .sub-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.35fr); gap: 56px; align-items: start; }
  .sub-grid h1 { font-size: clamp(2.4rem, 5vw, 3.8rem); margin-bottom: 16px; }
  .tick { list-style: none; padding: 0; margin: 20px 0; display: grid; gap: 10px; }
  .tick li { padding-left: 28px; position: relative; font-size: 1rem; }
  .tick li::before { content: ""; position: absolute; left: 4px; top: .5em; width: 12px; height: 7px; border-left: 2px solid var(--accent); border-bottom: 2px solid var(--accent); transform: rotate(-45deg) translateY(-3px); }
  .fineprint { font-size: .86rem !important; color: var(--muted); }
  .sform { display: grid; gap: 18px; background: var(--surface); border: 1px solid var(--line); border-radius: 20px; padding: 28px; min-width: 0; }
  .sform label { display: grid; gap: 6px; font-size: .74rem; letter-spacing: .16em; text-transform: uppercase; color: var(--muted); min-width: 0; }
  .sform input, .sform select, .sform textarea { font: inherit; font-size: .98rem; letter-spacing: 0; text-transform: none; color: var(--ink); background: var(--bg); border: 1px solid var(--line); border-radius: 12px; padding: 12px 14px; min-width: 0; width: 100%; }
  .sform textarea { resize: vertical; }
  .sform input:focus, .sform select:focus, .sform textarea:focus { outline: 2px solid var(--accent); outline-offset: 1px; }
  .row2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
  .row4 { display: grid; grid-template-columns: 1.6fr .8fr .9fr 1.1fr; gap: 12px; }
  .hp { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }
  .sbtn { border: 0; background: var(--accent); color: var(--accent-ink); border-radius: 999px; padding: 15px 28px; font-size: .8rem; letter-spacing: .16em; text-transform: uppercase; cursor: pointer; justify-self: start; }
  .sbtn:disabled { opacity: .6; cursor: default; }
  .ferr { margin: 0; color: #b4493b; font-size: .92rem; }
  .sthanks { background: var(--soft); border-radius: 14px; padding: 16px 18px; font-size: .95rem; }
  .sthanks .cbox { white-space: pre-wrap; font-size: .85rem; background: var(--bg); border: 1px solid var(--line); border-radius: 10px; padding: 10px 12px; margin: 10px 0; color: var(--ink); }
  .sthanks .cb { display: inline-block; text-decoration: none; }
  @media (max-width: 900px) { .sub-grid { grid-template-columns: minmax(0, 1fr); gap: 28px; } .row4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
  @media (max-width: 520px) { .row2 { grid-template-columns: minmax(0, 1fr); } .sform { padding: 20px; } }

/* consistent page frame: header on top, footer at the bottom, every page at least one screen tall */
body{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}
body>.topbar,body>.sitefoot{flex:none}
body>#home,body>#pages{flex:1 0 auto}
body>*{min-width:0;max-width:100%}
#pages,.doc{overflow-wrap:anywhere}
.morebox{text-align:center;margin:28px 0 8px}
.grid[hidden],.day[hidden]{display:none!important}
#pages.docwrap:not([hidden]){min-height:calc(100vh - 260px);min-height:calc(100dvh - 260px)}
