/* Changes supplied for NFP, 1 October 2026. Original typography is retained. */
:root { --ivory:#FFFFFF; --black:#111111; --paper:#FFFFFF; --ink:#111111; --muted:rgba(17,17,17,.65); color-scheme:light; }
:root[data-theme="dark"] { --ivory:#111111; --black:#F7F6F3; --paper:#111111; --ink:#F7F6F3; --muted:rgba(247,246,243,.72); --hair:rgba(247,246,243,.22); --hair-strong:rgba(247,246,243,.55); color-scheme:dark; }
html { scroll-behavior:smooth; scroll-padding-top:100px; }
body { background:var(--paper); color:var(--ink); }
.theme-ready body,.theme-ready .head,.theme-ready .menu { transition:background-color 180ms ease,color 180ms ease,border-color 180ms ease; }
figure { margin:0; }
.sr-only { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }
.inverted,.foot { background:#111111; color:#F7F6F3; }
.inverted .btn { background:#FFFFFF; color:#111111; border-color:#FFFFFF; }
.inverted .btn:hover { background:var(--purple); border-color:var(--purple); color:#FFFFFF; }
.inverted .btn-ghost { background:transparent; color:#FFFFFF; }
.inverted .body-text,.inverted .event-costs { color:#F7F6F3; }
.inverted .mono { color:rgba(247,246,243,.8); }
.brand { flex:none; gap:9px; }
.brand-knot { width:26px; display:block; }
.brand-knot .knot-mark { width:26px; height:auto; }
.brand-copy { display:flex; flex-direction:column; gap:4px; line-height:1; }
.brand-copy strong { font-size:1.3rem; font-weight:800; }
.brand-copy small { font-family:var(--mono); font-size:.5rem; font-weight:400; letter-spacing:.14em; white-space:nowrap; }
.logo-night { display:none!important; }
html[data-theme="dark"] .logo-day { display:none!important; }
html[data-theme="dark"] .logo-night { display:block!important; }
.head-in { gap:12px; }
.nav { gap:16px; }
.head-controls { display:flex; align-items:center; gap:12px; margin-left:auto; flex:none; }
.language-switch { display:flex; align-items:center; gap:5px; font-family:var(--mono); font-size:.65rem; }
.language-switch a { text-decoration:none; display:grid; place-items:center; min-height:44px; min-width:24px; position:relative; }
.language-switch a[aria-current]::after { content:""; position:absolute; height:1px; background:var(--purple); bottom:9px; left:2px; right:2px; }
.theme-controls { display:flex; }
.theme-controls button { width:44px; height:44px; padding:11px; background:none; border:0; color:var(--ink); cursor:pointer; position:relative; }
.theme-controls svg { display:block; width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:1.15; stroke-linecap:round; stroke-linejoin:round; }
.theme-controls button[aria-pressed="true"]::after { content:""; position:absolute; height:1px; left:12px; right:12px; bottom:4px; background:var(--purple); }
.theme-controls button:focus-visible,.format-tab:focus-visible { outline:1px solid var(--purple); outline-offset:2px; }
.burger { flex:none; margin-left:0; color:var(--ink); }
.menu-close { color:var(--ink); }
.menu-inner { display:flex; flex-direction:column; flex:1; }
.menu-sky { min-height:80px; max-height:120px; background:url('/static/uploads/updates/sky-day.jpg') center/cover; clip-path:polygon(0 28%,19% 7%,47% 34%,69% 3%,100% 24%,100% 100%,0 100%); }
html[data-theme="dark"] .menu-sky { background-image:url('/static/uploads/updates/sky-night.jpg'); }
@media (min-width:1000px) and (max-width:1279px) { .nav { display:none; } .burger { display:grid; } }
@media (min-width:1280px) { .head-in { height:82px; gap:24px; } .nav { display:flex; margin-left:auto; } .head-controls { margin-left:0; } .burger { display:none; } .nav a { letter-spacing:.08em; font-size:.65rem; } .nav .btn-join { padding:10px 14px; } }
.updated-hero { padding:clamp(28px,5vh,66px) 0 clamp(48px,7vh,100px); }
.community-description { margin:0 0 15px; max-width:64ch; color:var(--ink); font-size:.76rem; line-height:1.65; }
.updated-hero .journey { height:48px; margin:0; }
.hero-coordinate-row { display:flex; gap:20px; justify-content:space-between; align-items:center; margin:12px 0 38px; }
.coordinate-ticker { font-size:.65rem; min-width:0; letter-spacing:.09em; }
.coordinate-ticker [data-coordinates] { display:inline-block; min-width:25ch; transition:opacity 180ms ease,transform 180ms ease; }
.coordinate-ticker [data-coordinates].flap-out { opacity:0; transform:perspective(400px) rotateX(-65deg); }
.coordinate-ticker .is-here { color:var(--purple); }
.clock-label { flex:none; font-size:.65rem; letter-spacing:.09em; }
.clock-now { color:var(--purple); transition:opacity 200ms ease; }
.clock-now.is-muted { opacity:.35; }
.updated-hero .hero-grid { align-items:start; gap:clamp(28px,4vw,60px); }
.updated-hero h1 { max-width:15ch; font-size:clamp(2.6rem,6.5vw,6.5rem); line-height:.95; }
.updated-hero .hero-status { margin-top:24px; }
.hero-photo { aspect-ratio:4/5; }
.hero-photo img { width:100%; height:100%; object-fit:cover; }
.multilingual { position:relative; }
.multilingual-stage { display:grid; }
.multilingual-visible,.multilingual-sizer { grid-area:1/1; align-self:start; overflow-wrap:normal; }
.multilingual-sizer { visibility:hidden; pointer-events:none; }
.multilingual-visible { transition:opacity 200ms ease,transform 200ms ease; }
.multilingual-visible.language-out { opacity:0; transform:translateY(5px); }
.multilingual-visible:lang(zh),.multilingual-visible:lang(ja),.multilingual-sizer:lang(zh),.multilingual-sizer:lang(ja) { font-family:"Noto Sans SC","Noto Sans JP",var(--display); line-height:1.1; }
.route-here { font-family:var(--mono); font-size:14px; letter-spacing:1px; fill:var(--purple); }
.journey .journey-track { stroke:var(--hair-strong); fill:none; stroke-width:1; stroke-dasharray:none!important; }
.journey .journey-marker { fill:var(--ink); transition:fill 220ms ease; }
.journey .destination-dot { fill:var(--purple); }
.journey .has-arrived { fill:var(--purple); }
.journey .plane-marker path { stroke:none; fill:var(--ink); }
.updated-statement { min-height:0; padding-top:clamp(42px,7vh,88px); padding-bottom:clamp(48px,8vh,104px); }
.updated-statement h2 { max-width:24ch; margin:0 auto; }
.updated-statement .journey { height:65px; margin:20px 0; }
.movement-photo { width:min(560px,100%); margin:22px auto 0; }
.movement-photo img { width:100%; max-height:500px; object-fit:cover; object-position:center; }
.section-title { margin:0 0 clamp(24px,4vh,44px); }
#about { scroll-margin-top:92px; }
#about .section-title { font-size:clamp(2rem,4.8vw,4rem); max-width:16ch; }
.life-photo { max-width:540px; margin-left:auto; }
.life-photo img { width:100%; height:auto; }
.life-night,.sky-night { display:none!important; }
html[data-theme="dark"] .life-day,html[data-theme="dark"] .sky-day { display:none!important; }
html[data-theme="dark"] .life-night,html[data-theme="dark"] .sky-night { display:block!important; }
.sky-break { position:relative; height:clamp(120px,17vw,260px); width:100%; overflow:hidden; clip-path:polygon(0 22%,17% 8%,39% 29%,58% 2%,82% 21%,100% 8%,100% 88%,75% 100%,47% 77%,19% 98%,0 83%); }
.sky-break img { width:100%; height:100%; object-fit:cover; object-position:center; }
.benefits-grid { align-items:start; }
.get-row { display:block; padding:23px 0; }
.get-row h3 { font-size:clamp(1.4rem,3.4vw,2.35rem); margin-bottom:9px; }
.get-row p { max-width:56ch; color:var(--ink); }
.support-photo { max-width:430px; margin-left:auto; }
.support-photo img { width:100%; height:auto; }
.format-tabs { display:flex; flex-wrap:wrap; border-top:1px solid var(--hair); border-bottom:1px solid var(--hair); margin-bottom:34px; }
.format-tab { position:relative; flex:1 1 135px; min-height:82px; color:var(--ink); background:none; border:none; padding:16px 10px; font-family:var(--display); text-align:left; cursor:pointer; display:flex; flex-direction:column; justify-content:space-between; gap:9px; }
.format-tab span { font-size:.85rem; line-height:1.2; }
.format-tab small { font-family:var(--mono); letter-spacing:.1em; font-size:.6rem; color:var(--muted); }
.format-tab[aria-selected="true"]::after { content:""; position:absolute; background:var(--purple); height:2px; bottom:-1px; left:10px; right:10px; }
.format-tab[aria-selected="true"] small { color:var(--purple); }
.format-panel { padding:8px 0 20px; min-height:290px; }
.format-panel h3 { font-size:clamp(1.85rem,4vw,3.35rem); max-width:22ch; }
.format-code { display:block; color:var(--purple); margin:15px 0 22px; }
.format-meta { letter-spacing:.04em; max-width:65ch; line-height:1.75; font-size:.67rem; color:var(--muted); }
.format-description { max-width:62ch; line-height:1.65; font-size:1.05rem; }
.format-panel.has-photo { display:grid; grid-template-columns:1.1fr .7fr; gap:50px; }
.format-photo { margin-left:auto; width:min(350px,100%); }
.format-photo img { width:100%; max-height:400px; object-fit:contain; }
.formats-all .format-panel { border-top:1px solid var(--hair); padding:35px 0; }
.section-cta { margin-top:clamp(24px,4vh,42px); }
.exchange-layout { align-items:center; }
.exchange-layout .exchange { display:flex; flex-direction:column; gap:20px; }
.exchange-layout .exchange .take,.exchange-layout .exchange .give { text-align:left; font-size:clamp(2rem,4.8vw,4.2rem); }
.exchange-photo { width:min(460px,100%); margin-left:auto; }
.exchange-photo img { width:100%; height:auto; }
.coins .lead { margin:20px 0 32px; color:var(--purple); }
.coins .body-text { max-width:70ch; }
.coins .btn { margin-top:12px; }
.rules-layout { grid-template-columns:1.3fr .7fr; gap:clamp(30px,5vw,70px); }
.rules-layout .value-row h3 { font-size:clamp(1.25rem,2.4vw,2.15rem); line-height:1.06; }
.rules-photo { align-self:center; }
.rules-photo img { width:100%; height:auto; object-fit:contain; }
.rule-explanation { margin-top:27px; }
.next-event { background:none; }
.next-event h2 { font-weight:400; font-size:.78rem; line-height:1.8; }
.next-event .body-text { margin:0; }
.final-copy { margin-top:28px; }
#join-community .display { max-width:19ch; font-size:clamp(2.2rem,7vw,6.2rem); }
.membership-free { margin-top:30px; }
.event-costs { max-width:70ch; font-size:.95rem; opacity:.7; }
.final-table { width:100%; margin-top:clamp(36px,6vh,66px); }
.final-table img { width:100%; height:auto; aspect-ratio:766/465; object-fit:contain; }
.foot-mark { display:flex; align-items:center; gap:10px; font-size:clamp(1.35rem,4vw,2.2rem); }
.foot-links { margin-bottom:14px; }
.rules-acceptance { border-top:1px solid var(--hair); padding-top:30px; margin-top:42px; }
.rules-acceptance .btn { margin-top:24px; }
button:disabled { cursor:default; opacity:.4; }
.coins-dialog { width:min(640px,calc(100% - 32px)); max-height:85dvh; overflow-y:auto; border:1px solid var(--hair); padding:28px; background:var(--paper); color:var(--ink); }
.coins-dialog::backdrop { background:rgba(0,0,0,.6); }
.dialog-top { display:flex; justify-content:space-between; align-items:center; margin-bottom:20px; }
.dialog-close { background:none; color:var(--ink); border:0; width:44px; height:44px; font-size:1.8rem; cursor:pointer; }
.coins-dialog h2 { font-size:1.8rem; line-height:1.05; margin-bottom:24px; }
.page-intro { padding-bottom:36px; }
.page-intro .display { max-width:21ch; font-size:clamp(2.2rem,7vw,6.5rem); }
.city-link { text-decoration:none; display:block; border-top:1px solid var(--hair); border-bottom:1px solid var(--hair); padding:25px 0; }
.city-link h3 { margin:12px 0 18px; font-size:1.9rem; }
.field .hint,.counter { color:var(--muted); }
.field input,.field textarea,.field select { color:var(--ink); background:transparent; }
.choices .choice { color:var(--ink); }
.consent { color:var(--ink); }
.form-nav .btn { max-width:100%; }
.btn { letter-spacing:.09em; text-align:center; }
@media (max-width:899px) {
  /* Keep all six navigation links usable on phones, including short viewports. */
  .menu {
    height:100%;
    height:100dvh;
    overflow-y:auto;
    overscroll-behavior:contain;
    padding-top:max(16px,env(safe-area-inset-top));
    padding-bottom:max(16px,env(safe-area-inset-bottom));
  }
  .menu-inner { flex:1 0 auto; width:100%; padding:0; }
  .menu-top { height:48px; flex-shrink:0; }
  .menu nav { gap:4px; margin-top:16px; flex-shrink:0; }
  .menu nav a {
    display:flex;
    align-items:center;
    min-height:44px;
    font-size:clamp(26px,7vw,34px);
    line-height:1.15;
  }
  .menu .btn-join { margin-top:20px; min-height:48px; flex-shrink:0; }
  .menu-sky { height:64px; min-height:64px; max-height:80px; flex-shrink:0; margin-top:20px; }
  .menu-foot { flex-shrink:0; font-size:10px; letter-spacing:.08em; }
  .pad { padding:50px 0; }
  .pad-sm { padding:36px 0; }
  .updated-hero { padding:20px 0 44px; }
  .head-in { height:68px; gap:8px; }
  .head-controls { gap:4px; }
  .brand-copy strong { font-size:1.12rem; }
  .brand-copy small { font-size:.44rem; letter-spacing:.08em; }
  .community-description { font-size:.64rem; line-height:1.6; margin-bottom:8px; max-width:45ch; }
  .updated-hero .journey { height:31px; }
  .hero-coordinate-row { display:block; margin:8px 0 18px; }
  .coordinate-ticker { display:block; font-size:.52rem; letter-spacing:.03em; }
  .coordinate-ticker [data-coordinates] { min-width:0; }
  .clock-label { display:block; margin-top:6px; font-size:.55rem; }
  .updated-hero h1 { font-size:clamp(2rem,7.6vw,3.7rem); max-width:100%; line-height:1; }
  .hero-cta { flex-direction:column; align-items:stretch; margin-top:18px; gap:9px; }
  .hero-cta .btn { width:100%; }
  .updated-hero .hero-status { margin-top:15px; font-size:.55rem; }
  .hero-photo { width:min(520px,100%); margin:0 auto; }
  .updated-statement { padding:36px 0 44px; }
  .updated-statement h2 { font-size:clamp(1.9rem,6vw,3rem); }
  .updated-statement .journey { height:40px; margin:13px 0; }
  .movement-photo img { max-height:340px; }
  .section-title { margin-bottom:25px; }
  .life-photo { max-width:480px; margin:0 auto; }
  .sky-break { height:135px; }
  .get-row { padding:20px 0; }
  .support-photo { width:min(360px,100%); margin:0 auto; }
  .format-tabs { margin-bottom:25px; }
  .format-tab { flex-basis:45%; min-width:0; min-height:80px; }
  .format-panel.has-photo { grid-template-columns:1fr; gap:22px; }
  .format-panel { min-height:0; }
  .format-panel h3 { font-size:1.9rem; }
  .format-code { margin:13px 0 20px; }
  .format-meta { font-size:.65rem; }
  .format-photo { margin:0 auto; width:min(330px,100%); }
  .format-photo img { max-height:380px; }
  .exchange-photo { margin:0 auto; }
  .rules-layout { grid-template-columns:1fr; }
  .rules-photo { max-width:440px; margin:0 auto; }
  .next-event { padding:25px 22px; }
  .next-event .btn { width:100%; }
  .final-table { margin-top:32px; }
  .foot-sign { gap:15px; }
  .coins-dialog { padding:22px; }
  .form-shell { gap:26px; }
  .steps { flex-wrap:wrap; }
  .step-dot { white-space:normal; }
}
@media (max-width:359px) {
  .head-in { gap:4px; }
  .brand { gap:5px; }
  .brand-copy small { font-size:.40rem; letter-spacing:.04em; }
  .brand-knot,.brand-knot .knot-mark { width:22px; }
  .head-controls { gap:0; }
  .language-switch { gap:2px; font-size:.58rem; }
  .language-switch a { min-width:20px; }
  .coordinate-ticker { font-size:.49rem; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation:none!important; transition:none!important; }
}
