:root{
  --paper:#ffffff; --paper-2:#f3f3f0; --paper-3:#e9e9e5;
  --ink:#121212; --ink-2:#5b5b57; --ink-3:#8b8b86; --line:#dededa;
  --red:#e63b2e; --yellow:#f2c230; --blue:#2c6be0; --green:#23a55a; --orange:#f0782a; --purple:#7b4fe0;
  --on-yellow:#121212; --on-color:#ffffff;
  --shadow:0 12px 40px rgba(18,18,18,.10);
  --display:"Arimo","Helvetica Neue",Helvetica,Arial,sans-serif;
  --body:"Arimo","Noto Sans JP","Helvetica Neue","Hiragino Sans",Helvetica,Arial,sans-serif;
  --mono:"Arimo","Helvetica Neue",Helvetica,Arial,sans-serif;
  --gutter:clamp(16px,4vw,48px);
  --maxw:1240px;
  color-scheme:light;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --paper:#0f0f0f; --paper-2:#1a1a19; --paper-3:#242422;
    --ink:#f4f4f1; --ink-2:#a6a6a0; --ink-3:#77776f; --line:#2b2b29;
    --red:#ff5a4c; --yellow:#f6cd45; --blue:#4d86f0; --green:#35c06d; --orange:#ff8d3f; --purple:#9a74ff;
    --shadow:0 12px 40px rgba(0,0,0,.5);
    color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --paper:#0f0f0f; --paper-2:#1a1a19; --paper-3:#242422;
  --ink:#f4f4f1; --ink-2:#a6a6a0; --ink-3:#77776f; --line:#2b2b29;
  --red:#ff5a4c; --yellow:#f6cd45; --blue:#4d86f0; --green:#35c06d; --orange:#ff8d3f; --purple:#9a74ff;
  --shadow:0 12px 40px rgba(0,0,0,.5);
  color-scheme:dark;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);font-size:15px;font-variant-numeric:tabular-nums;line-height:1.75;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit;text-decoration:none}
a:hover{text-decoration:underline;text-underline-offset:.2em}
img{max-width:100%;display:block}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
:focus-visible{outline:2px solid var(--blue);outline-offset:3px}
.wrap{max-width:var(--maxw);margin:0 auto;padding-inline:var(--gutter)}
h1,h2,h3{margin:0;text-wrap:balance}
.eyebrow{font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2)}
.eyebrow b{color:var(--ink);font-weight:600}
.section{padding-block:clamp(56px,9vw,112px);border-top:1px solid var(--line)}
.section-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px 32px;margin-bottom:clamp(28px,4vw,44px)}
.section-head h2{font-family:var(--display);font-weight:700;font-size:clamp(30px,4.6vw,52px);line-height:1;letter-spacing:-.02em}
.section-head h2 small{display:block;font-family:var(--body);font-weight:500;font-size:14px;letter-spacing:0;color:var(--ink-2);margin-top:12px;line-height:1.5}
.more{font-family:var(--mono);font-size:13px;letter-spacing:.06em;border-bottom:1px solid var(--ink);padding-bottom:2px;white-space:nowrap}
.more:hover{text-decoration:none;border-color:transparent}

/* ---------- header ---------- */
.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:40;background:color-mix(in srgb,var(--paper) 88%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.top .wrap{display:flex;align-items:center;justify-content:space-between;gap:24px;height:64px}
.logo{font-family:var(--display);font-weight:700;font-size:20px;letter-spacing:-.02em;white-space:nowrap;display:flex;align-items:baseline;gap:.35em}
.logo .blank{display:inline-block;width:5.2em;border-bottom:3px solid currentColor;height:.75em;transform:translateY(-.05em)}
.nav{display:flex;gap:26px;font-family:var(--mono);font-size:12.5px;letter-spacing:.1em;text-transform:uppercase}
.nav a{padding:6px 0;border-bottom:2px solid transparent}
.nav a:hover{text-decoration:none;border-color:var(--ink)}
.nav .cta{background:var(--ink);color:var(--paper);padding:8px 14px;border-radius:999px;border:0}
.nav .cta:hover{background:var(--ink-2)}
.menu-btn{display:none;font-family:var(--mono);font-size:12px;letter-spacing:.1em;padding:8px 12px;border:1px solid var(--line);border-radius:999px}
@media(max-width:820px){
  .nav{display:none;position:absolute;left:0;right:0;top:64px;background:var(--paper);border-bottom:1px solid var(--line);padding:16px var(--gutter) 22px;flex-direction:column;gap:14px}
  .nav.open{display:flex}
  .menu-btn{display:inline-block}
  .nav .cta{align-self:flex-start}
}

/* ---------- hero ---------- */
.hero{position:relative;overflow:hidden;padding-block:clamp(56px,10vw,128px) clamp(48px,7vw,96px)}
.hero canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.hero .wrap{position:relative}
.hero h1{font-family:var(--display);font-weight:700;font-size:clamp(44px,9.4vw,124px);line-height:.98;letter-spacing:-.035em}
.hero h1 .line{display:block}
.fill{display:inline-block;position:relative;min-width:4.6em;line-height:.98;vertical-align:baseline;border-bottom:.08em solid var(--ink);padding-bottom:.02em;color:var(--fill,var(--ink));transition:color .3s;white-space:nowrap}
.fill .caret{display:inline-block;width:.06em;height:.8em;background:currentColor;vertical-align:-.06em;margin-left:.04em;animation:blink 1s steps(1) infinite}
@keyframes blink{50%{opacity:0}}
.hero p.lede{max-width:34em;font-size:clamp(15px,1.6vw,18px);margin:28px 0 0;color:var(--ink-2)}
.hero p.lede strong{color:var(--ink);font-weight:700;display:inline-block;margin-bottom:6px}
.hero .tags{display:flex;flex-wrap:wrap;gap:10px;margin-top:30px}
.hero .tags a{font-family:var(--mono);font-size:12.5px;letter-spacing:.06em;padding:8px 14px;border:1px solid var(--line);border-radius:999px;background:var(--paper);display:inline-flex;align-items:center;gap:8px}
.hero .tags a:hover{text-decoration:none;border-color:var(--ink)}
.dot{width:10px;height:10px;border-radius:50%;background:var(--c,var(--ink));display:inline-block;flex:none}

/* ---------- next up ---------- */
.nextup{background:var(--ink);color:var(--paper);position:relative;isolation:isolate}
.photo-band{background:var(--bg) center 40%/cover no-repeat,#111;color:#f4f4f1}
.photo-band::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,10,10,.92) 0%,rgba(10,10,10,.78) 45%,rgba(10,10,10,.55) 100%);z-index:-1}
.photo-band .ticker a{border-right-color:rgba(255,255,255,.22)}
.photo-band .sw{--paper:#f4f4f1}
.nextup + .section{border-top:0}
.nextup .wrap{display:grid;grid-template-columns:auto 1fr;gap:28px;align-items:center;padding-block:22px}
.nextup .label{font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;opacity:.7}
.ticker{display:flex;gap:0;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;margin-inline:-4px}
.ticker::-webkit-scrollbar{display:none}
.ticker a{flex:none;display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:center;padding:8px 22px 8px 4px;border-right:1px solid rgba(255,255,255,.18);margin-right:22px;color:inherit}
.ticker a:last-child{border-right:0}
.ticker a:hover{text-decoration:none}
.ticker .d{font-family:var(--mono);font-size:26px;font-weight:600;line-height:1;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.ticker .d small{display:block;font-size:11px;letter-spacing:.12em;opacity:.7;margin-top:4px;font-weight:500}
.ticker .t{font-family:var(--display);font-weight:700;font-size:16px;line-height:1.2;max-width:22ch;letter-spacing:-.01em}
.ticker .t small{display:block;font-family:var(--body);font-weight:400;font-size:12px;opacity:.7;margin-top:4px}
.ticker .sw{width:4px;height:44px;border-radius:2px;background:var(--c,var(--paper));grid-row:span 2}
@media(max-width:720px){.nextup .wrap{grid-template-columns:1fr;gap:10px}}

/* ---------- series ---------- */
.series{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}
.series article{position:relative;display:grid;grid-template-rows:auto auto 1fr auto;gap:18px;padding:0 26px 26px;border:1px solid var(--line);border-radius:6px;background:var(--paper);overflow:hidden;min-height:300px}
.series .ph{aspect-ratio:21/9;background:var(--paper-2);margin:0 -26px 6px;overflow:hidden;max-width:none}
.series .ph img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s}
.series article:hover .ph img{transform:scale(1.03)}
.series article::before{content:"";position:absolute;inset:0 auto 0 0;width:8px;background:var(--c);z-index:1}
.series .head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding-left:10px}
.series h3{font-family:var(--display);font-weight:700;font-size:clamp(24px,2.6vw,32px);line-height:1.05;letter-spacing:-.025em}
.series h3 small{display:block;font-family:var(--body);font-weight:500;font-size:13px;letter-spacing:0;color:var(--ink-2);margin-top:8px}
.series .badge{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;padding:5px 9px;border-radius:4px;background:var(--c);color:var(--on,#fff);white-space:nowrap;flex:none}
.series p{margin:0;padding-left:10px;color:var(--ink-2);font-size:14px;max-width:46em}
.series dl{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;margin:0;padding-left:10px;font-size:13px;align-content:end}
.series dt{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);padding-top:3px}
.series dd{margin:0}
.series dd.next{font-family:var(--mono);font-weight:600;font-variant-numeric:tabular-nums}
.series dd.next a{border-bottom:1px solid var(--c)}
.series dd.next a:hover{text-decoration:none;color:var(--c)}
.series dd.tba{color:var(--ink-3)}
@media(max-width:760px){.series{grid-template-columns:1fr}}

/* ---------- calendar ---------- */
.cal{display:grid;grid-template-columns:minmax(300px,380px) 1fr;gap:clamp(24px,4vw,56px);align-items:start}
.month{position:sticky;top:calc(64px + env(safe-area-inset-top,0px) + 24px)}
.month .bar{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.month .bar h3{font-family:var(--mono);font-weight:600;font-size:22px;letter-spacing:-.01em;font-variant-numeric:tabular-nums}
.month .bar h3 span{color:var(--ink-3);font-weight:400}
.month .bar button{width:36px;height:36px;border:1px solid var(--line);border-radius:50%;font-family:var(--mono);font-size:16px;display:grid;place-items:center}
.month .bar button:hover{border-color:var(--ink)}
.grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.grid .wd{font-family:var(--mono);font-size:11px;letter-spacing:.06em;color:var(--ink-3);text-align:center;padding-bottom:6px}
.grid .wd:first-child{color:var(--red)}
.grid .wd:nth-child(7){color:var(--blue)}
.day{aspect-ratio:1;border-radius:6px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-family:var(--mono);font-size:13px;font-variant-numeric:tabular-nums;border:1px solid transparent;color:var(--ink-2)}
.day.has{color:var(--ink);font-weight:600;background:var(--paper-2)}
.day.has:hover{border-color:var(--ink)}
.day.today{border-color:var(--ink);}
.day.sel{background:var(--ink);color:var(--paper)}
.day .dots{display:flex;gap:2px;height:5px}
.day .dots i{width:5px;height:5px;border-radius:50%;background:currentColor;display:block;opacity:.8}
.day.pad{visibility:hidden}
.month .legend{display:flex;flex-wrap:wrap;gap:8px 14px;margin-top:16px;font-size:12px;color:var(--ink-2)}
.month .legend span{display:inline-flex;align-items:center;gap:6px}
.month .legend .dot{width:8px;height:8px}
.filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px;align-items:center}
.chip{font-family:var(--mono);font-size:12px;letter-spacing:.06em;padding:7px 13px;border:1px solid var(--line);border-radius:999px}
.chip[aria-pressed="true"]{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.filters .count{margin-left:auto;font-family:var(--mono);font-size:12px;color:var(--ink-3)}
.evlist{display:flex;flex-direction:column;border-top:1px solid var(--line)}
.ev{display:grid;grid-template-columns:76px 72px 1fr;gap:18px;padding:16px 0;border-bottom:1px solid var(--line);align-items:center}
.ev .when{font-family:var(--mono);font-variant-numeric:tabular-nums;line-height:1.1}
.ev .when b{display:block;font-size:22px;font-weight:600;letter-spacing:-.02em}
.ev .when small{display:block;font-size:11px;color:var(--ink-3);margin-top:5px;letter-spacing:.06em}
.ev .when small.sun{color:var(--red)}
.ev .when small.sat{color:var(--blue)}
.ev .fl{width:72px;height:72px;border-radius:4px;background:var(--paper-2);overflow:hidden}
.ev .fl img{width:100%;height:100%;object-fit:cover}
.ev .body{min-width:0}
.ev h4{margin:0;font-family:var(--display);font-weight:700;font-size:17px;line-height:1.25;letter-spacing:-.01em}
.ev h4 a:hover{text-decoration:none;color:var(--blue)}
.ev .meta{font-size:12.5px;color:var(--ink-2);margin-top:5px;display:flex;flex-wrap:wrap;gap:4px 14px}
.ev .meta .time{font-family:var(--mono);font-variant-numeric:tabular-nums}
.ev .tag{display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--c);font-weight:600}
.empty{padding:40px 0;color:var(--ink-3);font-family:var(--mono);font-size:13px;text-align:center}
.ev .go{font-family:var(--mono);font-size:11px;letter-spacing:.1em;color:var(--ink-3);white-space:nowrap}
@media(max-width:900px){.cal{grid-template-columns:1fr}.month{position:static}}
@media(max-width:520px){.ev{grid-template-columns:64px 1fr;gap:14px}.ev .fl{display:none}}

/* ---------- magazine ---------- */
.tabs{display:flex;gap:4px;flex-wrap:wrap;margin-bottom:26px;border-bottom:1px solid var(--line)}
.tabs button{font-family:var(--mono);font-size:12.5px;letter-spacing:.1em;text-transform:uppercase;padding:10px 14px;border-bottom:2px solid transparent;margin-bottom:-1px;color:var(--ink-2)}
.tabs button[aria-selected="true"]{color:var(--ink);border-color:var(--ink)}
.feature{display:grid;grid-template-columns:1.25fr 1fr;gap:32px;align-items:center;margin-bottom:40px}
.feature .img{aspect-ratio:2/1;background:var(--paper-2);border-radius:6px;overflow:hidden;max-width:100%}
.feature .img img{width:100%;height:100%;object-fit:cover}
.feature h3{font-family:var(--body);font-weight:700;font-size:clamp(21px,2.4vw,28px);line-height:1.4;margin-top:10px}
.feature p{color:var(--ink-2);font-size:14px;margin:12px 0 0;max-width:38em}
.cat{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--c,var(--ink-2));font-weight:600}
.cat + .date{margin-left:12px}
.date{font-family:var(--mono);font-size:11.5px;letter-spacing:.06em;color:var(--ink-3);font-variant-numeric:tabular-nums}
.posts{display:grid;grid-template-columns:repeat(3,1fr);gap:28px 24px}
.post .img{aspect-ratio:2/1;background:var(--paper-2);border-radius:5px;overflow:hidden;margin-bottom:12px;max-width:100%}
.post .img img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.post:hover .img img{transform:scale(1.03)}
.post h3{font-family:var(--body);font-weight:700;font-size:15.5px;line-height:1.5;margin-top:6px}
.post a:hover{text-decoration:none}
.post:hover h3{color:var(--blue)}
@media(max-width:900px){.posts{grid-template-columns:repeat(2,1fr)}.feature{grid-template-columns:1fr}}
@media(max-width:520px){.posts{grid-template-columns:1fr}}

/* ---------- movies ---------- */
#movies[hidden]{display:none}
.vids{display:grid;grid-template-columns:2fr 1fr 1fr;grid-auto-rows:auto;gap:22px 20px}
.vid{display:block}
.vid .th{position:relative;aspect-ratio:16/9;background:var(--paper-2);border-radius:5px;overflow:hidden;max-width:100%}
.vid .th img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.vid:hover .th img{transform:scale(1.03)}
.vid .th::after{content:"";position:absolute;left:50%;top:50%;width:52px;height:52px;margin:-26px 0 0 -26px;border-radius:50%;background:var(--paper) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 6.5v11l9-5.5z' fill='%23121212'/%3E%3C/svg%3E") center/26px no-repeat;opacity:.92;box-shadow:var(--shadow)}
.vid h3{font-family:var(--body);font-weight:700;font-size:14.5px;line-height:1.5;margin-top:10px}
.vid.lead h3{font-size:clamp(17px,1.8vw,21px)}
.vid.lead{grid-row:span 2}
.vid:hover h3{color:var(--blue)}
.vid:hover{text-decoration:none}
.vid .date{display:block;margin-top:4px}
.yt-btn{display:inline-flex;align-items:center;gap:8px}
.yt-btn::before{content:"";width:16px;height:16px;border-radius:3px;background:var(--red);mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M23 7.2a3 3 0 0 0-2.1-2.1C19 4.6 12 4.6 12 4.6s-7 0-8.9.5A3 3 0 0 0 1 7.2 31 31 0 0 0 .5 12 31 31 0 0 0 1 16.8a3 3 0 0 0 2.1 2.1c1.9.5 8.9.5 8.9.5s7 0 8.9-.5a3 3 0 0 0 2.1-2.1A31 31 0 0 0 23.5 12 31 31 0 0 0 23 7.2zM9.7 15.1V8.9l6 3.1-6 3.1z'/%3E%3C/svg%3E") center/contain no-repeat;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M23 7.2a3 3 0 0 0-2.1-2.1C19 4.6 12 4.6 12 4.6s-7 0-8.9.5A3 3 0 0 0 1 7.2 31 31 0 0 0 .5 12 31 31 0 0 0 1 16.8a3 3 0 0 0 2.1 2.1c1.9.5 8.9.5 8.9.5s7 0 8.9-.5a3 3 0 0 0 2.1-2.1A31 31 0 0 0 23.5 12 31 31 0 0 0 23 7.2zM9.7 15.1V8.9l6 3.1-6 3.1z'/%3E%3C/svg%3E") center/contain no-repeat}
@media(max-width:900px){.vids{grid-template-columns:1fr 1fr}.vid.lead{grid-column:span 2;grid-row:auto}}
@media(max-width:520px){.vids{grid-template-columns:1fr}.vid.lead{grid-column:auto}}

/* ---------- about / submit ---------- */
.two{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,5vw,80px);align-items:stretch}
.two>div{display:flex;flex-direction:column}
.two h2{font-family:var(--display);font-weight:700;font-size:clamp(26px,3.4vw,40px);line-height:1.05;letter-spacing:-.025em}
.two h2 small{display:block;font-family:var(--body);font-weight:500;font-size:14px;letter-spacing:0;color:var(--ink-2);margin-top:12px}
.two p{color:var(--ink-2);max-width:36em}
.two .eyebrow{margin-bottom:14px}
.family{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}
.family-grid{grid-template-columns:1fr 1fr}
.about-photo{aspect-ratio:4/3;border-radius:6px;overflow:hidden;background:var(--paper-2);flex:1;min-height:200px}
.family-wrap{margin-top:clamp(32px,5vw,56px)}
.family-wrap .eyebrow{display:block;margin-bottom:14px}
.family-row{grid-template-columns:repeat(4,1fr)}
.family-row a{padding:20px 22px;font-size:17px}
@media(max-width:900px){.family-row{grid-template-columns:repeat(2,1fr)}}
@media(max-width:480px){.family-row{grid-template-columns:1fr}}
.about-photo img{width:100%;height:100%;object-fit:cover;display:block}
.submit-photo{margin-top:auto;padding-top:26px}
.submit-photo img{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:6px;display:block}
.family a{border:1px solid var(--line);border-radius:6px;padding:16px 18px;font-family:var(--display);font-weight:700;font-size:15px;letter-spacing:-.01em;line-height:1.2}
.family a small{display:block;font-family:var(--body);font-weight:400;font-size:12px;color:var(--ink-2);margin-top:5px}
.family a:hover{text-decoration:none;border-color:var(--ink)}
.notes{margin:8px 0 0;padding:0;list-style:none;display:grid;gap:10px;font-size:13.5px;color:var(--ink-2)}
.notes li{display:flex;gap:10px;align-items:baseline}
.notes li::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--green);flex:none;transform:translateY(-1px)}
.btn{display:inline-flex;align-items:center;gap:10px;font-family:var(--mono);font-size:13px;letter-spacing:.08em;padding:14px 22px;border-radius:999px;background:var(--ink);color:var(--paper)}
.btn:hover{text-decoration:none;background:var(--ink-2)}
.btn[disabled]{opacity:.5;cursor:default}
.submit-box{background:var(--paper-2);border-radius:8px;padding:clamp(22px,3vw,36px);display:flex;flex-direction:column;gap:22px}
.fields{display:grid;gap:16px}
.fields label{display:grid;gap:7px}
.lbl{display:flex;align-items:baseline;gap:8px;font-family:var(--mono);font-size:12px;letter-spacing:.1em;font-weight:700}
.lbl em{font-style:normal;font-family:var(--body);font-weight:500;letter-spacing:0;color:var(--ink-2)}
.lbl b{margin-left:auto;font-family:var(--body);font-weight:500;font-size:10.5px;letter-spacing:.04em;color:var(--red);border:1px solid currentColor;border-radius:3px;padding:1px 6px}
.fields input[type=text],.fields input[type=email],.fields input[type=date],.fields textarea{width:100%;font:inherit;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:5px;padding:11px 13px;line-height:1.5}
.fields input:focus,.fields textarea:focus{outline:2px solid var(--blue);outline-offset:1px;border-color:transparent}
.fields textarea{resize:vertical;min-height:120px}
.fields input[type=date]{font-variant-numeric:tabular-nums}
.fields .file input{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden}
.fields .file{position:relative}
.fields .filename{display:block;border:1px dashed var(--ink-3);border-radius:5px;padding:16px 13px;font-size:13px;color:var(--ink-2);background:var(--paper);cursor:pointer;text-align:center}
.fields .file:hover .filename,.fields .file:focus-within .filename{border-color:var(--ink);color:var(--ink)}
.fields .filename.has{border-style:solid;color:var(--ink);text-align:left}
.fields .filename img{width:64px;height:64px;object-fit:cover;border-radius:4px;margin-right:12px;display:inline-block;vertical-align:middle}
.hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.actions{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin-top:auto}
.status{margin:0;font-size:13px;color:var(--ink-2)}
.status.ok{color:var(--green)}
.status.err{color:var(--red)}
.fields input:user-invalid,.fields textarea:user-invalid{border-color:var(--red)}
@media(max-width:820px){.two{grid-template-columns:1fr}}

/* ---------- staff ---------- */
.staff{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}
.staff article{display:grid;grid-template-columns:minmax(150px,240px) 1fr;gap:0;border:1px solid var(--line);border-radius:6px;overflow:hidden}
.staff .ph{aspect-ratio:1;background:var(--paper-2);max-width:100%}
.staff .ph img{width:100%;height:100%;object-fit:cover}
.staff .ph-empty{background:repeating-linear-gradient(-45deg,var(--paper-2) 0 8px,var(--paper) 8px 16px)}
.staff .info{display:flex;flex-direction:column;justify-content:space-between;gap:22px;padding:24px 26px}
.staff .name{font-family:var(--display);font-weight:700;font-size:clamp(28px,3.4vw,42px);line-height:1;letter-spacing:-.025em}
.staff .links{display:flex;flex-direction:column;gap:8px;align-items:flex-start}
.staff .links a{display:inline-flex;align-items:center;gap:9px;font-size:13.5px;color:var(--ink-2);padding:4px 12px 4px 4px;border:1px solid var(--line);border-radius:999px}
.staff .links a:hover{text-decoration:none;border-color:var(--ink);color:var(--ink)}
.staff .ic{width:24px;height:24px;border-radius:50%;background:var(--ink);color:var(--paper);display:grid;place-items:center;font-family:var(--display);font-size:12px;font-weight:700;flex:none}
@media(max-width:1000px){.staff{grid-template-columns:1fr}}
@media(max-width:480px){.staff article{grid-template-columns:1fr}.staff .ph{aspect-ratio:4/3}}

/* ---------- footer ---------- */
footer{border-top:1px solid var(--line);padding-block:40px 60px;color:var(--ink-2);font-size:13px}
footer .wrap{display:flex;flex-wrap:wrap;justify-content:space-between;gap:24px;align-items:center}
footer .links{display:flex;flex-wrap:wrap;gap:20px;font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase}
footer .stamp{font-family:var(--mono);font-size:11px;color:var(--ink-3);width:100%;padding-top:20px;border-top:1px solid var(--line)}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .fill .caret{animation:none}
  .post .img img{transition:none}
}

/* ======================================================================
   sub pages (article / event / archives)
   ====================================================================== */
.page{padding-block:clamp(36px,6vw,72px) clamp(56px,9vw,112px)}
.narrow{max-width:820px}
.crumbs{display:flex;flex-wrap:wrap;gap:6px 10px;font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);margin-bottom:26px}
.crumbs a{color:var(--ink-2)}
.crumbs span::before{content:"/";margin-right:10px;color:var(--line)}
.page-head{margin-bottom:clamp(24px,4vw,40px)}
.page-head .meta{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;margin-bottom:14px}
.page-head h1{font-family:var(--body);font-weight:700;font-size:clamp(24px,3.6vw,40px);line-height:1.35;letter-spacing:-.01em}
.page-head h1.en{font-family:var(--display);letter-spacing:-.025em;line-height:1.1}
.page-head .lede{margin:14px 0 0;color:var(--ink-2);font-size:15px}
.hero-img{border-radius:6px;overflow:hidden;background:var(--paper-2);margin-bottom:clamp(24px,4vw,40px)}
.hero-img img{width:100%;height:auto;display:block}

.prose{font-size:16px;line-height:1.95;color:var(--ink)}
.prose>*+*{margin-top:1.4em}
.prose p{margin:0}
.prose h2,.prose h3,.prose h4{font-weight:700;line-height:1.4;margin-top:2.2em}
.prose h2{font-size:clamp(20px,2.2vw,24px);padding-bottom:.4em;border-bottom:1px solid var(--line)}
.prose h3{font-size:18px}
.prose h4{font-size:16px}
.prose a{color:var(--blue);text-decoration:underline;text-underline-offset:.2em;text-decoration-thickness:1px}
.prose img{height:auto;border-radius:4px}
.prose figure{margin:0}
.prose figure img{width:100%}
.prose figcaption{font-size:12.5px;color:var(--ink-3);margin-top:8px;text-align:center}
.prose blockquote{margin:0;padding:4px 0 4px 20px;border-left:3px solid var(--line);color:var(--ink-2)}
.prose ul,.prose ol{padding-left:1.4em}
.prose li+li{margin-top:.4em}
.prose hr{border:0;border-top:1px solid var(--line)}
.prose iframe{width:100%;aspect-ratio:16/9;height:auto;border:0;border-radius:4px}
.prose table{border-collapse:collapse;width:100%;font-size:14px}
.prose td,.prose th{border:1px solid var(--line);padding:8px 10px;text-align:left;vertical-align:top}
.prose strong{font-weight:700}
.prose pre,.prose code{font-family:var(--mono);font-size:13px}
.prose pre{background:var(--paper-2);padding:14px 16px;border-radius:5px;overflow-x:auto}
.prose .wp-block-embed,.prose .video{aspect-ratio:16/9}
.prose .wp-block-embed iframe{height:100%}

.post-foot{margin-top:clamp(40px,6vw,72px);padding-top:28px;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:14px;justify-content:space-between;align-items:center}
.share{display:flex;gap:8px}
.share a{font-family:var(--mono);font-size:12px;letter-spacing:.06em;padding:7px 12px;border:1px solid var(--line);border-radius:999px}
.share a:hover{text-decoration:none;border-color:var(--ink)}
.related{margin-top:clamp(48px,7vw,88px)}
.related .eyebrow{display:block;margin-bottom:18px}

/* event page */
.event-page{display:grid;grid-template-columns:minmax(260px,420px) 1fr;gap:clamp(24px,4vw,56px);align-items:start}
.event-page .flyer{position:sticky;top:calc(64px + env(safe-area-inset-top,0px) + 24px);border-radius:6px;overflow:hidden;background:var(--paper-2)}
.event-page .flyer img{width:100%;height:auto;display:block}
.event-page .flyer.empty{aspect-ratio:1;background:repeating-linear-gradient(-45deg,var(--paper-2) 0 8px,var(--paper) 8px 16px)}
.ev-when{font-family:var(--mono);font-variant-numeric:tabular-nums;line-height:1;margin-bottom:12px}
.ev-when b{font-size:clamp(40px,6vw,64px);font-weight:700;letter-spacing:-.03em;display:block}
.ev-when span{display:block;font-size:14px;color:var(--ink-2);margin-top:10px;letter-spacing:.04em}
.ev-when .sun{color:var(--red)}.ev-when .sat{color:var(--blue)}
.ev-info{display:grid;grid-template-columns:auto 1fr;gap:10px 20px;margin:24px 0;padding:22px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:14px}
.ev-info dt{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);padding-top:3px}
.ev-info dd{margin:0}
.ev-info dd small{display:block;color:var(--ink-2);font-size:12.5px;margin-top:2px}
.ev-info a{color:var(--blue);text-decoration:underline;text-underline-offset:.2em}
.ev-actions{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:28px}
.ev-past{display:inline-block;font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--paper);background:var(--ink-3);padding:4px 9px;border-radius:4px;margin-bottom:14px}
@media(max-width:820px){.event-page{grid-template-columns:1fr}.event-page .flyer{position:static;max-width:520px}}

/* archives */
.archive-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px 32px;margin-bottom:clamp(24px,4vw,40px)}
.archive-head h1{font-family:var(--display);font-weight:700;font-size:clamp(34px,5vw,60px);line-height:1;letter-spacing:-.03em}
.archive-head h1 small{display:block;font-family:var(--body);font-weight:500;font-size:14px;letter-spacing:0;color:var(--ink-2);margin-top:12px}
.cat-nav{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:26px;border-bottom:1px solid var(--line)}
.cat-nav a{font-family:var(--mono);font-size:12.5px;letter-spacing:.1em;text-transform:uppercase;padding:10px 14px;border-bottom:2px solid transparent;margin-bottom:-1px;color:var(--ink-2)}
.cat-nav a[aria-current]{color:var(--ink);border-color:var(--ink)}
.cat-nav a:hover{text-decoration:none;color:var(--ink)}
.year-nav{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:26px}
.year-nav a{font-family:var(--mono);font-size:13px;letter-spacing:.06em;padding:8px 14px;border:1px solid var(--line);border-radius:999px}
.year-nav a[aria-current]{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.year-nav a:hover{text-decoration:none;border-color:var(--ink)}
.month-group{margin-top:36px}
.month-group h2{font-family:var(--mono);font-weight:600;font-size:20px;letter-spacing:-.01em;font-variant-numeric:tabular-nums;padding-bottom:10px;border-bottom:1px solid var(--ink);margin-bottom:0}
.month-group h2 span{color:var(--ink-3);font-weight:400}
.month-group h2 small{font-family:var(--body);font-weight:400;font-size:12px;color:var(--ink-3);margin-left:12px;letter-spacing:0}
.posts.archive{grid-template-columns:repeat(3,1fr)}
@media(max-width:900px){.posts.archive{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.posts.archive{grid-template-columns:1fr}}
.ev .go{margin-left:auto}

/* directory */
.dir-group{margin-top:clamp(40px,6vw,64px)}
.dir-group h2{font-family:var(--display);font-weight:700;font-size:clamp(26px,3.4vw,40px);letter-spacing:-.025em;line-height:1;padding-bottom:14px;border-bottom:1px solid var(--ink);margin-bottom:22px}
.dir-group h2 small{font-family:var(--body);font-weight:500;font-size:13px;letter-spacing:0;color:var(--ink-2);margin-left:14px}
.dir{display:grid;grid-template-columns:repeat(3,1fr);gap:22px 20px}
.dir a.card{display:grid;grid-template-rows:auto 1fr;border:1px solid var(--line);border-radius:6px;overflow:hidden;background:var(--paper)}
.dir a.card:hover{text-decoration:none;border-color:var(--ink)}
.dir .shot{aspect-ratio:16/10;background:var(--paper-2);overflow:hidden;border-bottom:1px solid var(--line);position:relative}
.dir .shot img{width:100%;height:100%;object-fit:cover;object-position:top;display:block;transition:transform .6s}
.dir a.card:hover .shot img{transform:scale(1.02)}
.dir .shot.empty{display:grid;place-items:center;font-family:var(--display);font-weight:700;font-size:56px;color:var(--ink-3);background:repeating-linear-gradient(-45deg,var(--paper-2) 0 8px,var(--paper) 8px 16px)}
.dir .body{padding:16px 18px 18px;display:flex;flex-direction:column;gap:8px}
.dir h3{font-family:var(--display);font-weight:700;font-size:18px;letter-spacing:-.01em;line-height:1.2}
.dir .note{font-size:13px;color:var(--ink-2);line-height:1.7}
.dir .foot{margin-top:auto;display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;padding-top:8px}
.dir .dom{font-family:var(--mono);font-size:11px;letter-spacing:.06em;color:var(--ink-3);text-transform:lowercase}
.dir .tag{font-family:var(--mono);font-size:10.5px;letter-spacing:.08em;padding:3px 8px;border-radius:4px;background:var(--red);color:#fff}
.dir .area{font-size:11.5px;color:var(--ink-3)}
@media(max-width:900px){.dir{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.dir{grid-template-columns:1fr}}
