/* OFFLINE SOCIAL CLUB — CITYLOVE 城遇
   Swiss grid, wine-red accent on warm off-white and black. */

:root{
  --paper:#F4F1EE;
  --paper-2:#EAE4E1;
  --ink:#16110F;
  --mute:#6A5D5B;
  --rule:#16110F;
  --hair:#D3C8C6;
  --wine:#7A1F2E;
  --wine-ink:#FFFFFF;
  --blush:#EAD3D5;
  --gutter:clamp(16px,4vw,48px);
  --max:1320px;
  --lat:"Archivo","Helvetica Neue",Arial,sans-serif;
  --cjk:"Noto Sans TC","PingFang TC","Microsoft JhengHei",sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,Menlo,monospace;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --paper:#140F0F;--paper-2:#1F1818;--ink:#F0EAE8;--mute:#A8999A;--rule:#F0EAE8;--hair:#3D3232;
    --wine:#B84257;--wine-ink:#FFFFFF;--blush:#4A2A30;
  }
}
:root[data-theme="dark"]{
  --paper:#140F0F;--paper-2:#1F1818;--ink:#F0EAE8;--mute:#A8999A;--rule:#F0EAE8;--hair:#3D3232;
  --wine:#B84257;--wine-ink:#FFFFFF;--blush:#4A2A30;
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:var(--lat),var(--cjk);font-size:16px;line-height:1.75;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit}
img{max-width:100%}
h1,h2,h3{margin:0;font-weight:900;text-wrap:balance;letter-spacing:-.01em}
p{margin:0}
:focus-visible{outline:3px solid var(--wine);outline-offset:3px}

.wrap{max-width:var(--max);margin:0 auto;padding-inline:var(--gutter)}

/* ---------- header ---------- */
.top{border-bottom:2px solid var(--rule);background:var(--paper);position:sticky;top:env(safe-area-inset-top,0px);z-index:10}
.top .wrap{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:64px}
.mark{display:flex;align-items:center;gap:10px;text-decoration:none;line-height:1}
.mark .dot{width:22px;height:22px;border-radius:50%;background:var(--wine);flex:none;transition:transform .25s}
.mark:hover .dot{transform:scale(1.12)}
.mark b{font-family:var(--lat);font-stretch:125%;font-weight:800;font-size:15px;letter-spacing:.02em}
.mark small{display:block;font-size:11px;color:var(--mute);letter-spacing:.12em;margin-top:3px;font-weight:500}
.nav{display:flex;align-items:center;gap:clamp(14px,2.2vw,30px);font-size:15px;font-weight:500}
.nav a{text-decoration:none;padding-block:6px;border-bottom:2px solid transparent}
.nav a:hover,.nav a[aria-current="page"]{border-bottom-color:var(--ink)}
.btn{display:inline-flex;align-items:center;gap:10px;background:var(--ink);color:var(--paper);
  text-decoration:none;font-weight:700;font-size:15px;padding:11px 18px;border:2px solid var(--ink);white-space:nowrap}
.btn:hover{background:var(--wine);border-color:var(--wine);color:var(--wine-ink)}
.btn.line{background:transparent;color:var(--ink)}
.btn.line:hover{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.btn .arr{font-family:var(--lat)}
.menu{display:none;background:none;border:2px solid var(--ink);color:var(--ink);font:inherit;font-weight:700;padding:6px 12px;cursor:pointer}
@media (max-width:860px){
  .menu{display:block}
  .nav{display:none;position:absolute;left:0;right:0;top:100%;background:var(--paper);border-bottom:2px solid var(--rule);
    flex-direction:column;align-items:stretch;gap:0;padding:8px var(--gutter) 20px}
  .nav a{border-bottom:1px solid var(--hair);padding-block:14px;font-size:18px}
  .nav .btn{margin-top:16px;justify-content:center}
  .top.open .nav{display:flex}
}

/* ---------- labels ---------- */
.eyebrow{font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--mute)}
.status{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase}
.status i{width:9px;height:9px;border-radius:50%;background:var(--wine);display:block}

/* ---------- hero ---------- */
.hero{border-bottom:2px solid var(--rule);position:relative;overflow:hidden}
.hero .wrap{display:grid;grid-template-columns:repeat(12,1fr);column-gap:20px;padding-block:clamp(36px,6vw,72px) 0}
.hero .meta{grid-column:1/-1;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;padding-bottom:28px}
.wordmark{grid-column:1/-1;font-family:var(--lat);font-stretch:125%;font-weight:900;
  font-size:clamp(64px,15.4vw,212px);line-height:.8;letter-spacing:-.045em;margin:0 0 -.02em -.04em;white-space:nowrap}
.wordmark .cn{font-family:var(--cjk);font-size:.3em;letter-spacing:.02em;margin-left:.12em;vertical-align:baseline;font-weight:900}
.wordmark .o{display:inline-block;width:.74em;height:.74em;border-radius:50%;background:var(--wine);vertical-align:-.02em;margin-right:.03em}
.hero-body{grid-column:1/-1;display:grid;grid-template-columns:repeat(12,1fr);column-gap:20px;border-top:2px solid var(--rule);margin-top:clamp(18px,3vw,32px)}
.hero-body h1{grid-column:1/8;font-family:var(--cjk);font-size:clamp(34px,5.2vw,72px);line-height:1.12;padding-block:28px 32px;letter-spacing:.01em}
.hero-body .side{grid-column:8/-1;border-left:2px solid var(--rule);padding:28px 0 32px 24px;display:flex;flex-direction:column;justify-content:space-between;gap:24px}
.hero-body .side p{font-size:17px;max-width:34em}
.actions{display:flex;flex-wrap:wrap;gap:12px}
@media (max-width:860px){
  .hero-body h1,.hero-body .side{grid-column:1/-1}
  .hero-body .side{border-left:0;border-top:1px solid var(--hair);padding-left:0}
}

/* page hero (inner pages) */
.phero{border-bottom:2px solid var(--rule)}
.phero .wrap{display:grid;grid-template-columns:repeat(12,1fr);column-gap:20px;padding-block:clamp(40px,7vw,96px) clamp(28px,4vw,48px);align-items:end}
.phero .tag{grid-column:1/-1;margin-bottom:24px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}
.phero h1{grid-column:1/9;font-family:var(--cjk);font-size:clamp(40px,7vw,96px);line-height:1.04}
.phero h1 .en{display:block;font-family:var(--lat);font-stretch:125%;font-size:.34em;letter-spacing:-.01em;margin-bottom:.4em;font-weight:800}
.phero p{grid-column:9/-1;font-size:17px;padding-bottom:6px}
@media (max-width:860px){.phero h1,.phero p{grid-column:1/-1}.phero p{margin-top:24px}}

/* ---------- sections: 3 / 9 split ---------- */
.sec{border-bottom:2px solid var(--rule)}
.sec>.wrap{display:grid;grid-template-columns:repeat(12,1fr);column-gap:20px;padding-block:clamp(40px,6vw,80px)}
.sec-head{grid-column:1/4;padding-right:12px}
.sec-head h2{font-family:var(--cjk);font-size:clamp(26px,2.6vw,34px);line-height:1.25;margin-top:10px}
.sec-body{grid-column:4/-1}
.lede{font-family:var(--cjk);font-weight:700;font-size:clamp(22px,2.4vw,32px);line-height:1.5;max-width:26em;text-wrap:pretty}
.prose p{max-width:36em;color:var(--ink)}
.prose p+p{margin-top:1em}
@media (max-width:860px){.sec-head,.sec-body{grid-column:1/-1}.sec-head{margin-bottom:28px}}
.sec.invert{background:var(--ink);color:var(--paper)}
.sec.invert .eyebrow{color:var(--hair)}
.sec.accent{background:var(--wine);color:var(--wine-ink);border-bottom-color:var(--rule)}
.sec.accent .eyebrow{color:inherit;opacity:.8}

/* columns with vertical rules */
.cols{display:grid;grid-template-columns:repeat(var(--n,3),1fr);border-top:2px solid currentColor}
.cols>*{padding:20px 20px 8px 0;border-right:1px solid var(--hair)}
.cols>*+*{padding-left:20px}
.cols>*:last-child{border-right:0;padding-right:0}
.cols h3{font-family:var(--cjk);font-size:21px;line-height:1.35;margin:10px 0 10px}
.cols p{font-size:15px;color:var(--mute)}
.sec.invert .cols p,.sec.accent .cols p,.sec.invert .month p{color:inherit;opacity:.72}
@media (max-width:860px){
  .cols{grid-template-columns:1fr}
  .cols>*{border-right:0;border-bottom:1px solid var(--hair);padding:18px 0 22px}
  .cols>*+*{padding-left:0}
}

.sec.accent .def dd,.sec.invert .def dd{color:inherit;opacity:.85}
.sec.accent .def,.sec.accent .row,.sec.invert .def{border-bottom-color:color-mix(in srgb,currentColor 35%,transparent)}
.sec.accent .def dd b{color:inherit;font-weight:700}

/* two paths */
.paths{display:grid;grid-template-columns:1fr 1fr;border:2px solid var(--rule)}
.path{padding:clamp(22px,3vw,36px);display:flex;flex-direction:column;gap:18px;text-decoration:none}
.path+.path{border-left:2px solid var(--rule)}
.path.primary{background:var(--wine);color:var(--wine-ink)}
.path h3{font-family:var(--cjk);font-size:clamp(28px,3.2vw,42px);line-height:1.15}
.path h3 small{display:block;font-family:var(--lat);font-stretch:125%;font-size:13px;letter-spacing:.08em;font-weight:700;margin-bottom:12px}
.path ul{margin:0;padding:0;list-style:none;border-top:1px solid currentColor}
.path li{padding:10px 0;border-bottom:1px solid color-mix(in srgb,currentColor 30%,transparent);font-size:15px}
.path .go{margin-top:auto;font-weight:700;display:flex;justify-content:space-between;align-items:center;border-top:2px solid currentColor;padding-top:14px}
.path:hover .go span:last-child{transform:translateX(6px)}
.path .go span:last-child{transition:transform .2s}
@media (max-width:760px){.paths{grid-template-columns:1fr}.path+.path{border-left:0;border-top:2px solid var(--rule)}}

/* list rows (events, services) */
.rows{border-top:2px solid currentColor}
.row{display:grid;grid-template-columns:9.5em 1fr auto;gap:20px;align-items:baseline;padding:18px 0;border-bottom:1px solid var(--hair);text-decoration:none}
.row .d{font-family:var(--mono);font-size:14px;font-variant-numeric:tabular-nums}
.row .d b{display:block;font-family:var(--lat);font-stretch:125%;font-size:30px;line-height:1.05;letter-spacing:-.02em}
.row h3{font-family:var(--cjk);font-size:22px;line-height:1.35}
.row p{font-size:14px;color:var(--mute);margin-top:4px}
.row .go{font-weight:700;font-size:14px;white-space:nowrap;border:2px solid var(--ink);padding:6px 12px}
a.row:hover .go{background:var(--ink);color:var(--paper)}
.chip{display:inline-block;font-size:12px;font-weight:700;padding:2px 8px;border:1px solid currentColor;margin-left:8px;vertical-align:3px;letter-spacing:.04em}
.chip.hot{background:var(--wine);color:var(--wine-ink);border-color:var(--wine)}
@media (max-width:640px){.row{grid-template-columns:1fr;gap:6px}.row .go{justify-self:start;margin-top:8px}}

/* definition rows (services) */
.defs{border-top:2px solid currentColor}
.def{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:20px;padding:18px 0;border-bottom:1px solid var(--hair)}
.def dt{font-family:var(--cjk);font-weight:700;font-size:20px;margin:0}
.def dd{margin:0;color:var(--mute);font-size:15px}
.def dd b{color:var(--ink);font-weight:500}
@media (max-width:640px){.def{grid-template-columns:1fr;gap:4px}}

/* numbered sequence — only for real sequences */
.steps{counter-reset:s;display:grid;grid-template-columns:repeat(var(--n,4),1fr);border-top:2px solid currentColor;list-style:none;margin:0;padding:0}
.steps li{counter-increment:s;padding:18px 18px 6px 0;border-right:1px solid var(--hair)}
.steps li+li{padding-left:18px}
.steps li:last-child{border-right:0}
.steps li::before{content:counter(s);display:block;font-family:var(--lat);font-stretch:125%;font-weight:900;font-size:48px;line-height:1;margin-bottom:14px}
.steps b{display:block;font-family:var(--cjk);font-size:19px;margin-bottom:6px}
.steps span{font-size:14.5px;color:var(--mute);display:block}
.sec.accent .steps span,.sec.invert .steps span{color:inherit;opacity:.82}
@media (max-width:860px){
  .steps{grid-template-columns:1fr 1fr}
  .steps li{border-right:0;border-bottom:1px solid var(--hair);padding:18px 12px 18px 0}
  .steps li+li{padding-left:0}
}
@media (max-width:480px){.steps{grid-template-columns:1fr}}

/* big figures */
.figs{display:grid;grid-template-columns:repeat(3,1fr);border-top:2px solid currentColor}
.fig{padding:16px 16px 0 0;border-right:1px solid var(--hair)}
.fig+.fig{padding-left:16px}
.fig:last-child{border-right:0}
.fig b{display:block;font-family:var(--lat);font-stretch:125%;font-weight:900;font-size:clamp(52px,7vw,104px);line-height:.95;letter-spacing:-.04em}
.fig span{display:block;font-size:15px;margin-top:10px}
@media (max-width:640px){.figs{grid-template-columns:1fr}.fig{border-right:0;border-bottom:1px solid var(--hair);padding:16px 0 18px}.fig+.fig{padding-left:0}}

/* month timeline */
.month{display:grid;grid-template-columns:repeat(4,1fr);border-top:2px solid currentColor;position:relative}
.month>div{padding:16px 16px 4px 0;border-right:1px solid var(--hair)}
.month>div+div{padding-left:16px}
.month>div:last-child{border-right:0}
.month .when{font-family:var(--mono);font-size:12px;letter-spacing:.1em}
.month h3{font-family:var(--cjk);font-size:20px;margin:8px 0 6px}
.month p{font-size:14.5px;color:var(--mute)}
@media (max-width:860px){.month{grid-template-columns:1fr 1fr}.month>div{border-right:0;border-bottom:1px solid var(--hair);padding:16px 10px 16px 0}.month>div+div{padding-left:0}}

/* court diagram */
.court{width:100%;height:auto;display:block;color:var(--ink)}
.court-wrap{border:2px solid var(--rule);background:var(--paper-2);padding:clamp(16px,3vw,32px)}
.court-cap{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:14px}

/* FAQ */
.faq details{border-bottom:1px solid var(--hair)}
.faq{border-top:2px solid currentColor}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:20px;padding:18px 0;font-family:var(--cjk);font-weight:700;font-size:19px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:var(--lat);font-weight:400;font-size:28px;line-height:1}
.faq details[open] summary::after{content:"−"}
.faq details p{padding:0 0 20px;max-width:40em;color:var(--mute)}

/* CTA band */
.cta{background:var(--ink);color:var(--paper)}
.cta .wrap{padding-block:clamp(48px,8vw,104px);display:grid;grid-template-columns:repeat(12,1fr);column-gap:20px;align-items:end}
.cta h2{grid-column:1/9;font-family:var(--cjk);font-size:clamp(36px,5.6vw,76px);line-height:1.1}
.cta .actions{grid-column:9/-1;justify-content:flex-end}
.cta .btn{background:var(--wine);color:var(--wine-ink);border-color:var(--wine)}
.cta .btn:hover{background:var(--paper);color:var(--ink);border-color:var(--paper)}
.cta .btn.line{background:transparent;color:var(--paper);border-color:var(--paper)}
@media (max-width:860px){.cta h2,.cta .actions{grid-column:1/-1}.cta .actions{justify-content:flex-start;margin-top:28px}}

/* footer */
.foot{background:var(--paper);border-top:2px solid var(--rule)}
.foot .wrap{display:grid;grid-template-columns:repeat(12,1fr);column-gap:20px;row-gap:28px;padding-block:40px 28px;font-size:14px}
.foot .brand{grid-column:1/5}
.foot .brand p{color:var(--mute);margin-top:12px;max-width:22em}
.foot nav{grid-column:span 2;display:flex;flex-direction:column;gap:6px}
.foot nav a{text-decoration:none}
.foot nav a:hover{text-decoration:underline}
.foot .legal{grid-column:1/-1;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;border-top:1px solid var(--hair);padding-top:18px;color:var(--mute);font-family:var(--mono);font-size:12px}
@media (max-width:860px){.foot .brand{grid-column:1/-1}.foot nav{grid-column:span 6}}

.row.spot{border-top:2px solid currentColor;margin-bottom:clamp(28px,4vw,44px)}
.subhead{font-family:var(--cjk);font-size:22px;margin:0 0 16px}
.note{font-size:13px;color:var(--mute);margin-top:18px}
.mt{margin-top:clamp(28px,4vw,48px)}

@media (prefers-reduced-motion:no-preference){
  .wordmark{animation:slide .9s cubic-bezier(.2,.7,.1,1) both}
  @keyframes slide{from{transform:translateX(-3%)}to{transform:none}}
}

/* ---------- photos: film look + labelled empty slots ---------- */
.ph{position:relative;margin:0;background:var(--wine);color:var(--wine-ink);overflow:hidden;aspect-ratio:var(--ar,4/3);max-width:100%;border:2px solid var(--rule)}
.ph::before,.ph::after{content:"";position:absolute;background:currentColor;opacity:.25}
.ph::before{left:0;right:0;top:50%;height:1px}
.ph::after{top:0;bottom:0;left:50%;width:1px}
.ph .slot{position:absolute;left:14px;bottom:12px;right:14px;font-family:var(--mono);font-size:11px;letter-spacing:.08em;line-height:1.5;z-index:1}
.ph .slot b{display:block;font-family:var(--cjk);font-size:15px;letter-spacing:0;margin-bottom:2px}
.ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:2;
  filter:contrast(1.14) saturate(.8) sepia(.08) brightness(.97)}
/* film grain + soft vignette, only visible once a photo has loaded */
.ph .grain{position:absolute;inset:0;z-index:3;pointer-events:none;opacity:0;
  background-image:radial-gradient(120% 90% at 50% 45%,transparent 55%,rgba(10,6,6,.28) 100%),
  url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 .5  0 0 0 0 .5  0 0 0 0 .5  0 0 0 .55 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
  mix-blend-mode:overlay}
.ph img + .grain{opacity:1}

.band{border-bottom:2px solid var(--rule)}
.band .wrap{display:grid;grid-template-columns:repeat(12,1fr);gap:20px;padding-block:clamp(24px,4vw,48px)}
.band .a{grid-column:1/8;grid-row:1/3;--ar:auto;min-height:100%}
.band .b{grid-column:8/-1;--ar:16/10}
.band .c{grid-column:8/-1;--ar:16/10}
.band .wide{grid-column:1/-1;--ar:21/8}
.band .wide img{object-position:center 28%}
.band .l8{grid-column:1/9}
.band .r4{grid-column:9/-1;--ar:auto}
.band .l5{grid-column:1/6;--ar:4/5}
.band .quote{grid-column:7/-1;align-self:end;display:flex;flex-direction:column;gap:18px;padding-bottom:8px}
.band .quote .lede{max-width:18em}
@media (max-width:760px){
  .band .a,.band .b,.band .c,.band .l8,.band .r4,.band .l5,.band .quote{grid-column:1/-1;grid-row:auto}
  .band .r4{--ar:4/5}
  .band .a{--ar:4/3}
  .band .wide{--ar:4/3}
}

.team{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2vw,24px);border-top:2px solid currentColor;padding-top:20px}
.person{display:flex;flex-direction:column;gap:12px}
.person .ph{--ar:4/5}
.person h3{font-family:var(--cjk);font-size:22px;line-height:1.2}
.person h3 small{display:block;font-family:var(--mono);font-size:11px;letter-spacing:.12em;color:var(--mute);font-weight:400;margin-bottom:6px;text-transform:uppercase}
.person p{font-size:14.5px;color:var(--mute)}
.todo{background:var(--blush);color:var(--ink);padding:0 4px}
.team.duo{grid-template-columns:repeat(2,minmax(0,340px))}
@media (max-width:860px){.team{grid-template-columns:1fr 1fr}}
@media (max-width:480px){.team{grid-template-columns:1fr}}

/* ---------- event grid (Luma-style) ---------- */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:clamp(16px,2.2vw,24px)}
.ev{display:flex;flex-direction:column;border:2px solid var(--rule);background:var(--paper);text-decoration:none;
  transition:transform .12s,box-shadow .12s}
.ev:hover{transform:translateY(-3px);box-shadow:0 10px 0 -4px var(--wine)}
.ev .shot{position:relative;aspect-ratio:3/2;background:var(--paper-2);border-bottom:2px solid var(--rule);overflow:hidden}
.ev .shot img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:contrast(1.12) saturate(.82) sepia(.06)}
.ev .shot .slot{position:absolute;inset:auto 10px 10px;font-family:var(--mono);font-size:11px;color:var(--mute)}
.ev .when{position:absolute;left:0;top:0;background:var(--wine);color:var(--wine-ink);font-family:var(--lat);font-stretch:125%;
  font-weight:900;font-size:19px;letter-spacing:-.01em;padding:7px 12px;font-variant-numeric:tabular-nums;z-index:2}
.ev .meta{padding:16px 16px 18px;display:flex;flex-direction:column;gap:8px;flex:1}
.ev h3{font-family:var(--cjk);font-size:21px;line-height:1.3}
.ev .line{font-family:var(--mono);font-size:13px;color:var(--mute);display:flex;flex-wrap:wrap;gap:6px 12px}
.ev .go{margin-top:auto;padding-top:12px;font-weight:700;font-size:14.5px;display:flex;justify-content:space-between;align-items:center}
.ev.soon{background:var(--paper-2)}
.ev.soon .shot{display:none}

/* past events photo wall */
.wall{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}
.shotbox{position:relative;margin:0;aspect-ratio:1/1;border:2px solid var(--rule);background:var(--paper-2);overflow:hidden}
.shotbox img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:contrast(1.12) saturate(.82) sepia(.06)}
.shotbox figcaption{position:absolute;left:0;bottom:0;background:var(--paper);border-top:2px solid var(--rule);border-right:2px solid var(--rule);
  font-family:var(--mono);font-size:11px;padding:3px 8px;z-index:2}
.shotbox .slot{position:absolute;inset:auto 8px 8px;font-family:var(--mono);font-size:10.5px;color:var(--mute);z-index:1}
.counts{display:flex;flex-wrap:wrap;gap:clamp(18px,4vw,56px);margin-top:10px}
.counts div b{font-family:var(--lat);font-stretch:125%;font-weight:900;font-size:clamp(34px,4.4vw,54px);line-height:1;display:block}
.counts div span{font-size:13.5px;color:var(--mute)}
.tight .wrap{padding-block:clamp(28px,4vw,52px)}

/* ---------- team group shot ---------- */
.ph.teamshot{--ar:3/2;max-width:860px;margin-bottom:18px}
@media (max-width:600px){.ph.teamshot{--ar:4/3}}

/* ---------- event card tag ---------- */
.ev .tags{display:flex;flex-wrap:wrap;gap:6px}
.ev .tg{display:inline-block;border:1.5px solid var(--wine);color:var(--wine);background:transparent;
  font-family:var(--cjk);font-size:11.5px;font-weight:700;letter-spacing:.04em;padding:2px 7px;line-height:1.5}

/* long about headline */
.phero h1.long{grid-column:1/11;font-size:clamp(30px,4.4vw,58px);line-height:1.18}
.phero h1.long .en{font-size:.42em}
@media (max-width:860px){.phero h1.long{grid-column:1/-1}}

/* event card description */
.ev .desc{display:block;font-size:14px;line-height:1.72;color:var(--mute)}
