/* HuBase — 喫茶と写真と卓球
   Palette taken from the room itself: whitewashed plank walls, oak floor, the navy table, white lines. */
:root{
  --plank:#ece7dc;      /* whitewashed wood wall */
  --plank-2:#e1dace;
  --plank-3:#d3cbbb;
  --oak:#c79a63;        /* floor */
  --oak-2:#b5864f;
  --door:#6e4c35;
  --ink:#191917;
  --ink-2:#3d3c37;
  --mute:#6f6b62;
  --navy:#26324d;       /* the table */
  --navy-2:#1d2740;
  --navy-ink:#eef0f4;
  --navy-mute:#9aa3b5;
  --line:#f4f1ea;       /* table white line */
  --cube:#f5f3ee;       /* gallery white */
  --night:#15161a;
  --night-2:#1f2026;
  --night-ink:#ece7dc;
  --night-mute:#8f8b82;
  --ball:#ee7b30;       /* the orange ball — used sparingly */
  --rule:rgba(25,25,23,.16);
  --rule-l:rgba(238,240,244,.18);

  --f-jp:"Zen Old Mincho","Hiragino Mincho ProN","Yu Mincho",serif;
  --f-body:"Zen Kaku Gothic New","Hiragino Sans","Yu Gothic",system-ui,sans-serif;
  --f-lat:"Instrument Serif","Times New Roman",serif;
  --f-mono:"JetBrains Mono",ui-monospace,Menlo,monospace;

  --gut:clamp(16px,3.4vw,48px);
  --hdr:76px;
  --s-1:11px;
  --s0:15px;
  --s1:clamp(17px,1.3vw,20px);
  --s2:clamp(22px,2.2vw,32px);
  --s3:clamp(36px,5vw,76px);
  --s4:clamp(44px,8.2vw,132px);
  --ease:cubic-bezier(.2,.7,.1,1);
  --ease-io:cubic-bezier(.7,0,.2,1);
  color-scheme:light;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:var(--hdr)}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
body{margin:0;background:var(--plank);color:var(--ink);font-family:var(--f-body);font-size:var(--s0);line-height:1.9;letter-spacing:.03em;-webkit-font-smoothing:antialiased;overflow-x:clip}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
p{margin:0}
h1,h2,h3{margin:0;font-weight:500;text-wrap:balance}
ul,ol{margin:0;padding:0;list-style:none}
dl,dd{margin:0}
button{font:inherit;color:inherit}
::selection{background:var(--navy);color:var(--line)}
:focus-visible{outline:2px solid var(--ball);outline-offset:3px;border-radius:2px}
[hidden]{display:none!important}
.wrap{padding-inline:var(--gut)}
.mono{font-family:var(--f-mono);font-size:var(--s-1);letter-spacing:.08em;text-transform:uppercase;line-height:1.6;font-weight:400}
.dim{color:var(--mute)}
.small{font-size:11px;text-transform:none;letter-spacing:.04em}
.skip{position:absolute;left:-9999px;top:8px;z-index:100;background:var(--ink);color:var(--plank);padding:10px 16px}
.skip:focus{left:8px}

/* ---------- buttons & links ---------- */
.btn{display:inline-flex;align-items:center;gap:10px;border:1px solid currentColor;border-radius:999px;padding:12px 22px;text-decoration:none;font-size:14px;font-weight:500;letter-spacing:.04em;line-height:1.3;transition:background .35s var(--ease),color .35s var(--ease),border-color .35s,transform .35s var(--ease);cursor:pointer;background:none;white-space:nowrap}
.btn span{transition:transform .35s var(--ease)}
.btn:hover span{transform:translateX(4px)}
.btn:hover{background:var(--ink);color:var(--plank);border-color:var(--ink)}
.btn.solid{background:var(--ink);color:var(--plank);border-color:var(--ink)}
.btn.solid:hover{background:var(--navy);border-color:var(--navy)}
.btn.light{color:var(--navy-ink)}
.btn.light:hover{background:var(--line);color:var(--navy);border-color:var(--line)}
.btn.solid.light{background:var(--line);color:var(--navy);border-color:var(--line)}
.btn.solid.light:hover{background:var(--ball);border-color:var(--ball);color:var(--ink)}
.btn.big{display:grid;gap:2px;border-radius:18px;padding:18px 24px;white-space:normal}
.btn.big .btn-t{font-family:var(--f-jp);font-weight:700;font-size:clamp(17px,1.5vw,21px);letter-spacing:.06em}
.btn.big .btn-s{opacity:.7;text-transform:none}
.link{display:inline-block;font-size:14px;font-weight:500;text-decoration:none;background:linear-gradient(currentColor,currentColor) 0 100%/100% 1px no-repeat;padding-bottom:2px;transition:background-size .4s var(--ease)}
.link:hover{background-size:0 1px;background-position:100% 100%}

.kicker{display:flex;align-items:center;gap:12px;color:var(--mute)}
.kicker span{display:inline-grid;place-items:center;min-width:28px;height:22px;padding:0 8px;border:1px solid currentColor;border-radius:999px;font-size:10px}
.sec-h{font-family:var(--f-jp);font-weight:700;font-size:clamp(32px,4.5vw,74px);line-height:1.28;letter-spacing:.04em;word-break:keep-all;overflow-wrap:anywhere}
.sub-h{font-family:var(--f-jp);font-weight:700;font-size:var(--s2);line-height:1.35;letter-spacing:.04em}

/* ---------- header ---------- */
.hdr{position:fixed;inset:0 0 auto;z-index:50;height:var(--hdr);display:flex;align-items:center;gap:24px;padding-inline:var(--gut);padding-top:env(safe-area-inset-top,0px);transition:background .4s,color .4s,transform .5s var(--ease)}
.hdr::before{content:"";position:absolute;inset:0;background:color-mix(in srgb,var(--plank) 82%,transparent);backdrop-filter:blur(14px) saturate(1.2);-webkit-backdrop-filter:blur(14px) saturate(1.2);opacity:0;transition:opacity .4s;border-bottom:1px solid var(--rule);z-index:-1}
.hdr.scrolled::before{opacity:1}
.hdr.hide{transform:translateY(-100%)}
.hdr.on-dark{color:var(--navy-ink)}
.hdr.on-dark::before{background:color-mix(in srgb,var(--navy-2) 80%,transparent);border-color:var(--rule-l)}
.hdr.on-night{color:var(--night-ink)}
.hdr.on-night::before{background:color-mix(in srgb,var(--night) 80%,transparent);border-color:var(--rule-l)}
.brand{display:flex;align-items:baseline;gap:12px;text-decoration:none;margin-right:auto}
.brand-w{font-family:var(--f-lat);font-size:30px;line-height:1;letter-spacing:-.01em}
.brand-s{font-family:var(--f-jp);font-size:12px;font-weight:500;letter-spacing:.14em;opacity:.75}
.nav{display:flex;gap:4px}
.nav a{position:relative;display:grid;text-decoration:none;font-size:13px;font-weight:500;padding:6px 14px;border-radius:999px;line-height:1.35;transition:background .3s}
.nav a span{font-family:var(--f-mono);font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;opacity:.55}
.nav a:hover{background:color-mix(in srgb,currentColor 9%,transparent)}
.nav a.on::after{content:"";position:absolute;left:14px;bottom:2px;width:6px;height:6px;border-radius:50%;background:var(--ball)}
.hdr-cta{display:inline-flex;gap:8px;align-items:center;background:var(--ink);color:var(--plank);text-decoration:none;font-size:13px;font-weight:700;letter-spacing:.06em;padding:11px 18px;border-radius:999px;transition:background .3s,color .3s}
.hdr-cta:hover{background:var(--ball);color:var(--ink)}
.hdr.on-dark .hdr-cta,.hdr.on-night .hdr-cta{background:var(--line);color:var(--ink)}
.menu-btn{display:none;background:none;border:1px solid currentColor;border-radius:999px;padding:8px 16px;font-family:var(--f-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;cursor:pointer}
.mnav{display:none}

/* ---------- HERO ---------- */
.hero{position:relative;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);column-gap:clamp(20px,3vw,48px);padding-inline:var(--gut)}
.hero-steps{grid-column:1;grid-row:1;position:relative;z-index:2}
.hero-stage{grid-column:2;grid-row:1;position:relative;margin-right:calc(-1 * var(--gut))}
.axo-wrap{position:sticky;top:0;height:100vh;height:100svh;display:grid;place-items:center;padding-top:var(--hdr)}
#axo{width:104%;height:auto;max-height:calc(100svh - var(--hdr) - 30px);overflow:visible;margin-left:-4%}
.axo-legend{position:absolute;right:var(--gut);top:calc(var(--hdr) + 18px);display:flex;gap:6px}
.axo-legend span{display:inline-grid;place-items:center;min-width:38px;height:24px;padding:0 8px;border:1px solid var(--rule);border-radius:999px;color:var(--mute);font-size:10px;transition:all .4s}
.axo-legend span.on{background:var(--ink);border-color:var(--ink);color:var(--plank)}

.step{min-height:100vh;min-height:100svh;display:flex;flex-direction:column;justify-content:center;gap:22px;padding-block:calc(var(--hdr) + 40px) 60px;max-width:34em}
.step p{color:var(--ink-2)}
.step-intro{min-height:100svh;justify-content:flex-end;padding-bottom:clamp(40px,9vh,96px);max-width:none}
.eyebrow{color:var(--mute)}
.hero-h{font-family:var(--f-jp);font-weight:900;font-size:clamp(52px,8.6vw,150px);line-height:1.08;letter-spacing:.02em;margin-left:-.06em}
.hero-h .ln{display:block;overflow:hidden;padding-bottom:.04em}
.hero-h .ln>span{display:inline-block}
.hero-lead{font-size:var(--s1);line-height:2;max-width:25em}
.hero-cta{display:flex;flex-wrap:wrap;gap:10px}
.scroll-hint{display:flex;align-items:center;gap:12px;color:var(--mute);margin-top:12px}
.scroll-hint i{width:36px;height:1px;background:currentColor;position:relative;overflow:hidden}
.scroll-hint i::after{content:"";position:absolute;inset:0;background:var(--ink);transform:translateX(-100%);animation:hint 2.4s var(--ease-io) infinite}
@keyframes hint{60%,100%{transform:translateX(100%)}}
.step-n{display:flex;gap:12px;align-items:center;color:var(--mute)}
.step-n b{font-family:var(--f-lat);font-size:44px;font-weight:400;color:var(--ink);letter-spacing:0;text-transform:none;line-height:1}
.step-h{font-family:var(--f-jp);font-weight:700;font-size:clamp(30px,3.7vw,58px);line-height:1.3;letter-spacing:.04em;word-break:keep-all}
.step-facts{display:grid;grid-template-columns:auto 1fr;gap:6px 20px;border-top:1px solid var(--rule);padding-top:16px;max-width:26em}
.step-facts dt{color:var(--mute)}
.step-facts dd{color:var(--ink);text-align:right;font-weight:500}
.step-all .step-n b{font-size:34px}

/* axo drawing */
#axo text{font-family:var(--f-mono)}
#axo .fl{fill:var(--oak)}
#axo .fl-c{fill:#c2925a}
#axo .plk{stroke:#a87a45;stroke-width:6;opacity:.38}
#axo .staff-top{fill:var(--plank-3)}
#axo .hatch{stroke:#b9b0a0;stroke-width:12}
#axo .wl-f{fill:#efe9dd}
#axo .wl-f2{fill:#e6dfd1}
#axo .wl-x{fill:#ddd5c5}
#axo .wl-top{fill:var(--ink)}
#axo .wl-pl{stroke:#cfc6b4;stroke-width:5}
#axo .cut{fill:var(--ink)}
#axo .cut-x{fill:#d7cfbf}
#axo .cut-y{fill:#cec5b3}
#axo .door{fill:var(--door)}
#axo .door-k{fill:#c9b28e}
#axo .board{fill:#f7f6f2;stroke:#bdb5a5;stroke-width:8}
#axo .tv{fill:#1b1c1f}
#axo .col-x{fill:#e2dbcd}
#axo .col-y{fill:#d7cfc0}
#axo .col-t{fill:var(--ink)}
#axo .glass{fill:#bcd0d6;opacity:.9}
#axo .glass-top{fill:#8fb0ba}
#axo .ctr-t{fill:#4a3527}
#axo .ctr-x{fill:#e4ddcf}
#axo .ctr-y{fill:#d4ccbc}
#axo .tb-t{fill:var(--navy)}
#axo .tb-b{fill:var(--navy-2)}
#axo .tb-s{fill:#151b2c}
#axo .tb-l{stroke:var(--line);stroke-width:20;fill:none;stroke-linejoin:miter}
#axo .tb-c{stroke:var(--line);stroke-width:6;fill:none}
#axo .leg{stroke:#2b2f38;stroke-width:34;stroke-linecap:round}
#axo .net{fill:rgba(250,250,250,.55);stroke:#20242d;stroke-width:8}
#axo .ball{fill:#fbfaf6;stroke:#1f1f1f;stroke-width:5}
#axo .ball-sh{fill:rgba(0,0,0,.18)}
#axo .trail{fill:none;stroke:var(--ball);stroke-width:9;stroke-dasharray:4 34;stroke-linecap:round;opacity:.9}
#axo .zone{transition:opacity .8s var(--ease)}
#axo .z-tt{fill:var(--navy);opacity:0}
#axo .z-cafe{fill:#f0a35a;opacity:0}
#axo .z-wall{fill:none;stroke:var(--ball);stroke-width:60;stroke-linecap:butt;opacity:0}
#axo .frm{opacity:0;transform:translateY(-60px);transition:opacity .6s var(--ease),transform .9s var(--ease)}
#axo .frm-o{fill:#1d1c1a}
#axo .frm-m{fill:#f6f4ef}
#axo .cup{opacity:0;transition:opacity .5s var(--ease)}
#axo .cup-b{fill:#f6f3ec;stroke:#6b5e4f;stroke-width:6}
#axo .cup-c{fill:#3a2618}
#axo .steam{fill:none;stroke:#8d8475;stroke-width:9;stroke-linecap:round;opacity:.0;stroke-dasharray:60 400}
#axo .pool{opacity:0;transition:opacity 1.2s var(--ease)}
#axo .ann{opacity:0;transition:opacity .6s var(--ease)}
#axo .ann line,#axo .ann path{stroke:var(--ink);stroke-width:7;fill:none}
#axo .ann circle{fill:var(--ink)}
#axo .ann text{font-size:190px;fill:var(--ink-2);letter-spacing:.04em}
#axo .ann text.b{font-size:250px;font-weight:500;fill:var(--ink);font-family:var(--f-jp)!important;font-weight:700}
#axo .floor-t{font-family:var(--f-jp)!important;font-weight:700;font-size:330px;fill:rgba(60,35,10,.55);letter-spacing:.12em}
#axo .floor-s{font-size:130px;fill:rgba(60,35,10,.5);letter-spacing:.14em}

#axo[data-mode="pingpong"] .z-tt{opacity:.14}
#axo[data-mode="pingpong"] .ann-pp,#axo[data-mode="all"] .ann-all{opacity:1}
#axo[data-mode="gallery"] .z-wall{opacity:.95}
#axo[data-mode="gallery"] .ann-gal{opacity:1}
#axo[data-mode="cafe"] .z-cafe{opacity:.22}
#axo[data-mode="cafe"] .ann-cafe{opacity:1}
#axo[data-mode="gallery"] .frm,#axo[data-mode="all"] .frm,#axo[data-mode="cafe"] .frm{opacity:1;transform:none}
#axo[data-mode="cafe"] .cup,#axo[data-mode="all"] .cup{opacity:1}
#axo[data-mode="cafe"] .steam{opacity:.8;animation:steam 3.2s linear infinite}
#axo[data-mode="cafe"] .pool{opacity:1}
@keyframes steam{from{stroke-dashoffset:460}to{stroke-dashoffset:0}}

/* ---------- LESSON (the table) ---------- */
.lesson{background:var(--navy);color:var(--navy-ink);position:relative;padding-block:clamp(96px,12vw,180px) clamp(80px,10vw,140px);overflow:hidden}
.lesson::before{content:"";position:absolute;inset:clamp(10px,1.4vw,20px);border:clamp(3px,.35vw,5px) solid var(--line);pointer-events:none;opacity:.9}
.lesson>*{position:relative;z-index:1}
.lesson .kicker,.lesson .dim{color:var(--navy-mute)}
.lesson-top{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:20px;row-gap:40px}
.lesson-top .sec-head{grid-column:1/8;display:grid;gap:24px;align-content:start}
.lesson-intro{grid-column:8/13;display:grid;gap:32px;align-content:end}
.lesson-intro .big{font-size:var(--s1);line-height:2}
.pts{display:grid;border-top:1px solid var(--rule-l)}
.pts li{display:grid;grid-template-columns:minmax(0,10em) 1fr;gap:16px;padding:14px 0;border-bottom:1px solid var(--rule-l);font-size:14px}
.pts b{font-family:var(--f-jp);font-weight:700;font-size:15px;letter-spacing:.06em;white-space:nowrap}
.pts span{color:#c8cedb}

.tt-fig{margin-top:clamp(56px,7vw,110px)}
.tt{margin:0;display:grid;gap:14px}
#ttTop{width:100%;height:auto;max-height:70vh;display:block}
.tt-net{stroke:#d9dce4;stroke-width:14;stroke-dasharray:2 10}
.tt-path{fill:none;stroke:var(--ball);stroke-width:6;stroke-dasharray:3 22;stroke-linecap:round;opacity:.95}
.tt-ball{fill:var(--line)}
#ttBounces circle{fill:none;stroke:var(--ball);stroke-width:5}
.tt-dim line{stroke:var(--navy-mute);stroke-width:4}
.tt-dim text{font-family:var(--f-mono);font-size:64px;fill:var(--navy-mute);letter-spacing:.08em}
.tt figcaption{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;color:var(--navy-mute);border-top:1px solid var(--rule-l);padding-top:12px}
#ttCap{text-transform:none;color:var(--navy-ink)}

.lesson-menu,.coaches,.first{margin-top:clamp(80px,10vw,150px)}
.lm-head{display:flex;justify-content:space-between;align-items:end;gap:20px 40px;flex-wrap:wrap;padding-bottom:20px;border-bottom:1px solid var(--line)}
.menu-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
.mc{display:grid;grid-template-rows:auto auto 1fr auto;gap:14px;padding:26px 24px 28px 0;border-right:1px solid var(--rule-l);position:relative}
.mc+.mc{padding-left:24px}
.mc:last-child{border-right:0}
.mc-n{color:var(--navy-mute)}
.mc h3{word-break:keep-all;font-family:var(--f-jp);font-weight:700;font-size:clamp(18px,1.5vw,21px);letter-spacing:.05em;line-height:1.4;display:grid}
.mc h3 i{font-family:var(--f-lat);font-style:italic;font-weight:400;font-size:20px;letter-spacing:0;color:var(--navy-mute)}
.mc p{font-size:14px;color:#c8cedb}
.mc-p{display:grid;gap:2px;border-top:1px solid var(--rule-l);padding-top:14px}
.mc-p b{font-family:var(--f-lat);font-weight:400;font-size:40px;line-height:1.05;color:var(--navy-ink);letter-spacing:.01em}
.mc-p span{color:var(--navy-mute);text-transform:none}

.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{background:none;border:1px solid var(--rule-l);color:var(--navy-ink);border-radius:999px;padding:7px 14px;font-size:13px;cursor:pointer;transition:all .3s var(--ease)}
.chip:hover{border-color:var(--line)}
.chip[aria-pressed="true"]{background:var(--line);color:var(--navy);border-color:var(--line);font-weight:700}
.coach-list{display:grid}
.coach{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,5fr) minmax(0,3fr);column-gap:24px;row-gap:10px;padding:28px 0;border-bottom:1px solid var(--rule-l);align-items:start;transition:opacity .45s var(--ease)}
.coach.off{display:none}
.coach-name{display:grid;gap:6px}
.coach-name h3{font-family:var(--f-jp);font-weight:700;font-size:clamp(26px,2.6vw,38px);letter-spacing:.08em;line-height:1.2}
.coach-name .mono{color:var(--navy-mute)}
.coach-name .lead{font-size:12px;color:var(--ball);font-family:var(--f-mono);letter-spacing:.08em}
.coach-body{display:grid;gap:12px;font-size:14px;color:#c8cedb}
.coach-body ul{display:flex;flex-wrap:wrap;gap:6px}
.coach-body li{border:1px solid var(--rule-l);border-radius:4px;padding:2px 8px;font-size:12px;color:var(--navy-ink)}
.coach-side{display:grid;gap:12px;justify-items:end;text-align:right}
.coach-side b{font-family:var(--f-lat);font-weight:400;font-size:44px;line-height:1}
.coach-side .mono{color:var(--navy-mute);text-transform:none}
.coach-side .link{color:var(--navy-ink)}
.coach-note{margin-top:16px}
.coach-note b{color:var(--navy-ink)}
.coach .style{display:inline-flex;gap:8px;align-items:center}
.coach .style svg{width:30px;height:30px;flex:none}

.first-in{border:1px solid var(--line);border-radius:28px;padding:clamp(24px,4vw,56px);display:grid;gap:36px;background:rgba(10,14,26,.18)}
.flow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;counter-reset:f}
.flow li{display:grid;gap:10px;align-content:start;border-top:1px solid var(--rule-l);padding-top:16px}
.flow li span{color:var(--ball)}
.flow h3{font-family:var(--f-jp);font-weight:700;font-size:21px;letter-spacing:.05em}
.flow p{font-size:14px;color:#c8cedb}
.first-cta{display:grid;grid-template-columns:1fr 1fr;gap:14px}

/* ---------- GALLERY ---------- */
.gallery{background:var(--cube);padding-block:clamp(96px,12vw,180px)}
.gal-head{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:20px;row-gap:24px;align-items:end}
.gal-head .kicker{grid-column:1/-1}
.gal-head .sec-h{grid-column:1/9}
.gal-lead{grid-column:9/13;font-size:var(--s1);line-height:2;color:var(--ink-2)}
.gal-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:clamp(48px,6vw,88px);border-top:1px solid var(--ink)}
.gal-stats li{padding:22px 24px 6px 0;display:grid;grid-template-columns:auto 1fr;align-items:baseline;column-gap:8px}
.gal-stats li+li{padding-left:24px;border-left:1px solid var(--rule)}
.gal-stats b{font-family:var(--f-lat);font-weight:400;font-size:clamp(64px,8vw,128px);line-height:.9;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.gal-stats span{color:var(--mute);font-size:15px}
.gal-stats p{grid-column:1/-1;font-size:13px;color:var(--mute);margin-top:8px}

.next{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:20px;row-gap:36px;margin-top:clamp(80px,10vw,150px)}
.next-txt{grid-column:1/6;display:grid;gap:20px;align-content:start}
.badge{display:inline-flex;align-items:center;gap:10px;justify-self:start;border:1px solid var(--ink);border-radius:999px;padding:5px 14px 5px 10px}
.badge i{width:8px;height:8px;border-radius:50%;background:var(--ball);animation:pulse 2s infinite}
@keyframes pulse{50%{opacity:.25}}
#hbTitle{font-family:var(--f-jp);font-weight:700;font-size:clamp(40px,5vw,80px);line-height:1.15;letter-spacing:.04em;display:grid;gap:8px}
#hbTitle i{font-family:var(--f-body);font-style:normal;font-size:14px;font-weight:500;color:var(--mute);letter-spacing:.06em}
.facts{display:grid;grid-template-columns:7em 1fr;border-top:1px solid var(--rule)}
.facts dt,.facts dd{padding:11px 0;border-bottom:1px solid var(--rule);font-size:14px}
.facts dt{color:var(--mute);font-size:13px}
.next-count{display:flex;align-items:end;gap:14px}
.next-count b{font-family:var(--f-lat);font-weight:400;font-size:clamp(80px,9vw,140px);line-height:.8}
.next-strip{grid-column:6/13;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));grid-auto-rows:minmax(0,auto);gap:12px;align-content:start}
.next-strip figure{margin:0;overflow:hidden;background:var(--plank-2)}
.next-strip figure img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.next-strip figure:hover img{transform:scale(1.04)}
.next-strip figure:nth-child(2){grid-column:1/5;aspect-ratio:3/2}
.next-strip figure:nth-child(3){grid-column:5/7;aspect-ratio:2/3;align-self:end}
.next-strip figure:nth-child(4){grid-column:1/3;aspect-ratio:2/3}
.next-strip figure:nth-child(4) img{object-position:60% 50%}
.next-strip figure:nth-child(5){grid-column:3/5;aspect-ratio:2/3}
.next-strip figure:nth-child(6){grid-column:5/7;aspect-ratio:2/3}
.next-strip figure:nth-child(6) img{object-position:40% 50%}
.strip-head{grid-column:1/-1;display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;border-bottom:1px solid var(--rule);padding-bottom:12px;margin-bottom:4px}
.strip-head b{font-family:var(--f-jp);font-weight:700;font-size:22px;letter-spacing:.1em}
.strip-head .dim{font-size:13px}
.next-up{grid-column:1/-1;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:20px;row-gap:14px;border-top:1px solid var(--ink);padding-top:16px}
.next-up>p{grid-column:1/4}
.hb-list{grid-column:4/13;display:grid}
.hb-list li{display:grid;grid-template-columns:8em minmax(0,1fr) auto;gap:16px;padding:12px 0;border-bottom:1px solid var(--rule);align-items:baseline}
.hb-list .t{font-family:var(--f-jp);font-weight:700;font-size:17px;letter-spacing:.04em}
.next-up .link{grid-column:4/13;justify-self:start}

.plan-wrap{margin-top:clamp(96px,12vw,170px);--hl:var(--ball)}
.plan-head{display:flex;justify-content:space-between;align-items:end;gap:20px;flex-wrap:wrap;border-top:1px solid var(--ink);padding-top:20px}
.plan-head>div{display:grid;gap:10px}
.seg{display:inline-flex;flex:none;flex-wrap:nowrap;border:1px solid var(--ink);border-radius:999px;padding:3px}
.seg button{white-space:nowrap;background:none;border:0;border-radius:999px;padding:9px 18px;font-size:13px;font-weight:500;cursor:pointer;transition:background .35s var(--ease),color .35s}
.seg button[aria-selected="true"]{background:var(--ink);color:var(--cube)}
.plan-body{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:20px;row-gap:28px;padding-top:28px;align-items:center}
.plan-fig{grid-column:1/8}
.plan-fig svg{display:block;width:100%;max-width:620px;height:auto;margin-inline:auto}
.plan-info{grid-column:8/13;display:grid;gap:16px;align-content:center}
.plan-info h3{font-family:var(--f-jp);font-weight:700;font-size:var(--s2);letter-spacing:.05em}
.plan-info .pz-price{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.plan-info .pz-price b{font-family:var(--f-lat);font-weight:400;font-size:clamp(48px,5vw,76px);line-height:1}
.plan-info p:not(.pz-price){color:var(--ink-2);max-width:30em}
.plan-info .btn{justify-self:start}
.note{margin-top:16px;text-transform:none;letter-spacing:.03em;line-height:1.8}
#hbPlan text{font-family:var(--f-mono);letter-spacing:.04em}
#hbPlan .wall,#hbPlan .col{fill:var(--ink)}
#hbPlan .void{fill:var(--plank-2)}
#hbPlan .counter{fill:none;stroke:var(--ink);stroke-width:28}
#hbPlan .win{fill:var(--cube);stroke:var(--ink);stroke-width:24}
#hbPlan .gap{fill:var(--cube)}
#hbPlan .door{fill:none;stroke:var(--mute);stroke-width:20;stroke-dasharray:60 60}
#hbPlan .z-fill{fill:var(--hl);opacity:0;transition:opacity .5s}
#hbPlan .dw line{stroke:var(--hl);stroke-width:90;stroke-linecap:butt;transition:opacity .4s}
#hbPlan .dim-t{font-size:200px;fill:var(--ink);transition:opacity .4s}
#hbPlan .fixture{fill:var(--mute)}
#hbPlan .post{fill:var(--ink)}
#hbPlan .tbl{fill:none;stroke:var(--navy);stroke-width:24;stroke-dasharray:80 50;opacity:.55}
#hbPlan .note-t{font-size:170px;fill:var(--mute)}
#hbPlan .room-t{font-family:var(--f-jp)!important;font-size:420px;font-weight:700;fill:var(--ink);letter-spacing:.1em}
#hbPlan .room-t.sm{font-size:340px}
#hbPlan .room-s{font-size:170px;fill:var(--mute);letter-spacing:.12em}
#hbPlan .north{fill:var(--ink)}
#hbPlan .scale{stroke:var(--ink);stroke-width:24}
#hbPlan .dw.minor line{stroke-dasharray:120 90}
.plan-wrap[data-zone="all"] .z-fill,.plan-wrap[data-zone="cafe"] .zone-cafe .z-fill{opacity:.09}
.plan-wrap[data-zone="cafe"] .dw-tt{opacity:.15}

.sim{margin-top:clamp(64px,8vw,110px);border-top:1px solid var(--ink);padding-top:20px;display:grid;gap:28px}
.sim-head{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:20px;row-gap:12px;align-items:end}
.sim-head>div{grid-column:1/7;display:grid;gap:10px}
.sim-head>p{grid-column:8/13}
.sim-bar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;gap:16px 24px;align-items:end}
.sel{display:grid;gap:6px}
.sel select{appearance:none;-webkit-appearance:none;font:inherit;font-size:14px;background:transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23191917' stroke-width='1.4'/%3E%3C/svg%3E") no-repeat right 4px center;border:0;border-bottom:1px solid var(--ink);border-radius:0;padding:10px 24px 10px 0;color:var(--ink);cursor:pointer}
.sim-total{display:flex;align-items:baseline;gap:10px;justify-self:end}
.sim-total b{font-family:var(--f-lat);font-weight:400;font-size:clamp(72px,8vw,124px);line-height:.85;font-variant-numeric:tabular-nums}
.sim-walls{display:grid;grid-template-columns:1fr 1fr;gap:22px 28px;align-items:start}
.sw{display:grid;gap:8px}
.sw-top{display:flex;justify-content:space-between;align-items:baseline;gap:12px;border-top:1px solid var(--rule);padding-top:10px}
.sw-top>span:first-child{font-family:var(--f-jp);font-weight:700;font-size:15px;display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}
.sw-top b{font-family:var(--f-lat);font-weight:400;font-size:26px}
.sw svg{display:block;height:auto;min-width:80px}
.sw .wl{fill:#ebe5d8}
.sw .fr{fill:var(--ink)}
.sw .mat{fill:#f8f7f3}
.sw .fl{stroke:var(--oak);stroke-width:14}
.sw .pst{fill:#cbc3b3}
.sw.minor .sw-top>span:first-child{color:var(--mute)}
.sw-len{font-size:10.5px;text-transform:none}

.rent{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:20px;row-gap:56px;margin-top:clamp(96px,12vw,170px)}
.rent-price{grid-column:1/7;display:grid;gap:22px;align-content:start}
.price{border-top:1px solid var(--ink)}
.price li{display:grid;grid-template-columns:auto 1fr auto;column-gap:14px;align-items:baseline;padding:18px 0;border-bottom:1px solid var(--rule);transition:background .3s}
.price li>span{font-family:var(--f-jp);font-weight:700;font-size:18px;letter-spacing:.05em}
.price li i{border-bottom:1px dotted var(--mute);transform:translateY(-4px)}
.price li b{font-family:var(--f-lat);font-weight:400;font-size:clamp(34px,3.6vw,52px);line-height:1}
.price li small{grid-column:1/-1;color:var(--mute);text-transform:none;margin-top:4px}
.price li.on>span::before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--ball);margin-right:10px;transform:translateY(-3px)}
.uses{display:flex;flex-wrap:wrap;gap:8px}
.uses span{border:1px solid var(--rule);border-radius:999px;padding:5px 14px;font-size:13px}
.ask{grid-column:8/13;display:grid;gap:18px;align-content:start;background:var(--plank);border-radius:24px;padding:clamp(22px,3vw,36px)}
.f-zone{border:0;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:8px}
.f-zone legend{grid-column:1/-1;margin-bottom:6px;padding:0}
.f-zone label{position:relative;cursor:pointer}
.f-zone input{position:absolute;opacity:0;inset:0}
.f-zone label>span{display:grid;gap:2px;border:1px solid var(--rule);border-radius:14px;padding:12px 14px;font-weight:700;font-size:14px;transition:all .3s var(--ease)}
.f-zone small{font-weight:400;color:var(--mute);font-family:var(--f-mono);font-size:11px}
.f-zone input:checked+span{border-color:var(--ink);background:var(--ink);color:var(--plank)}
.f-zone input:checked+span small{color:var(--plank-3)}
.f-zone input:focus-visible+span{outline:2px solid var(--ball);outline-offset:2px}
.f-row{display:grid;grid-template-columns:1fr auto;gap:14px}
.f{display:grid;gap:6px}
.f input,.f textarea{font:inherit;font-size:15px;background:var(--cube);border:1px solid var(--rule);border-radius:10px;padding:10px 12px;color:var(--ink);width:100%}
.f textarea{resize:vertical;min-height:84px}
.stepper{display:flex;align-items:stretch;border:1px solid var(--rule);border-radius:10px;overflow:hidden;background:var(--cube)}
.stepper input{border:0;border-radius:0;width:3.2em;text-align:center;padding:10px 0;-moz-appearance:textfield}
.stepper input::-webkit-inner-spin-button{-webkit-appearance:none}
.stepper button{background:none;border:0;width:40px;font-size:18px;cursor:pointer}
.stepper button:hover{background:var(--plank-2)}
.est{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;border-top:1px solid var(--ink);padding-top:14px}
.est b{font-family:var(--f-lat);font-weight:400;font-size:44px;line-height:1}
.est span{text-transform:none}
.ask-cta{display:flex;gap:10px;flex-wrap:wrap}

/* ---------- CAFE ---------- */
.cafe{background:var(--night);color:var(--night-ink);padding-block:clamp(96px,12vw,180px);position:relative;overflow:hidden}
.cafe::before{content:"";position:absolute;width:70vw;height:70vw;right:-20vw;top:-30vw;background:radial-gradient(closest-side,rgba(238,170,90,.16),transparent);pointer-events:none}
.cafe .kicker,.cafe .dim{color:var(--night-mute)}
.cafe-in{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:20px;row-gap:56px;position:relative}
.cafe .sec-head{grid-column:1/7;display:grid;gap:26px;align-content:start}
.cafe-lead{font-size:var(--s1);line-height:2;max-width:26em;color:#cfc9bd}
.dog{display:flex;align-items:center;gap:14px;font-size:14px;border-top:1px solid var(--rule-l);padding-top:18px;max-width:28em}
.dog svg{width:44px;flex:none;color:#f0b06a}
.menu{grid-column:7/13;display:grid;grid-template-columns:minmax(0,2fr) minmax(0,5fr);gap:28px;align-items:start}
.drip svg{width:100%;max-width:200px;overflow:visible}
.dr-line{fill:none;stroke:var(--night-ink);stroke-width:2.2;stroke-linejoin:round;stroke-linecap:round}
.dr-line.thin{stroke-width:1.2;opacity:.5}
.dr-fill{fill:#6b4127;opacity:.85;transform-origin:50% 100%;transform-box:fill-box}
.dr-drop{stroke:#c58a55;stroke-width:3;stroke-dasharray:4 14;animation:drip 1.2s linear infinite}
@keyframes drip{to{stroke-dashoffset:-36}}
.dr-steam{fill:none;stroke:var(--night-mute);stroke-width:1.8;stroke-linecap:round;stroke-dasharray:24 60;animation:steam2 3s linear infinite}
@keyframes steam2{from{stroke-dashoffset:84}to{stroke-dashoffset:0}}
.menu-col{display:grid;gap:12px}
.m-h{margin-top:14px}
.m-h:first-child{margin-top:0}
.mlist{border-top:1px solid var(--rule-l)}
.mlist li{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:baseline;padding:16px 0;border-bottom:1px solid var(--rule-l)}
.mlist span{font-family:var(--f-jp);font-weight:700;font-size:18px;letter-spacing:.05em;display:grid;gap:2px}
.mlist small{font-family:var(--f-body);font-weight:400;font-size:12px;color:var(--night-mute);letter-spacing:.03em}
.mlist i{border-bottom:1px dotted var(--night-mute);transform:translateY(-5px)}
.mlist b{font-family:var(--f-lat);font-weight:400;font-size:32px;line-height:1}
.mlist b.mono{font-family:var(--f-mono);font-size:12px}

/* ---------- VISIT ---------- */
.visit{padding-block:clamp(96px,12vw,170px)}
.visit-in{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:20px;row-gap:40px}
.visit .sec-head{grid-column:1/6;display:grid;gap:24px;align-content:start}
.route{grid-column:6/13;align-self:end}
.route-svg{width:100%;height:auto;overflow:visible}
.r-line{stroke:var(--ink);stroke-width:1.5;stroke-dasharray:2 7;stroke-linecap:round}
.r-st{fill:var(--plank);stroke:var(--ink);stroke-width:1.5}
.r-hb{fill:var(--ink)}
.r-dot{fill:var(--ball)}
.r-t{font-family:var(--f-body);font-size:13px;font-weight:700;fill:var(--ink)}
.r-m{font-family:var(--f-mono);font-size:11px;letter-spacing:.1em;fill:var(--mute)}
.visit-facts{grid-column:6/13;grid-template-columns:8em 1fr}
.visit-facts dd a{text-underline-offset:3px}
.visit-cta{grid-column:6/13;display:flex;gap:10px;flex-wrap:wrap}

/* ---------- FOOTER ---------- */
.foot{background:var(--ink);color:var(--plank);padding-top:clamp(64px,8vw,120px);overflow:hidden}
.foot-top{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:20px;row-gap:40px}
.foot-cta{grid-column:1/8;display:grid;border-top:1px solid rgba(236,231,220,.25)}
.fc{display:grid;grid-template-columns:7em 1fr auto;align-items:center;gap:16px;padding:22px 0;border-bottom:1px solid rgba(236,231,220,.25);text-decoration:none;transition:padding .45s var(--ease),color .3s}
.fc span{color:#9b958a}
.fc b{font-family:var(--f-jp);font-weight:700;font-size:clamp(24px,3vw,44px);letter-spacing:.05em}
.fc i{font-style:normal;font-size:28px;transition:transform .45s var(--ease)}
.fc:hover{padding-left:16px;color:var(--ball)}
.fc:hover i{transform:translate(4px,-4px)}
.foot-co{grid-column:9/13;display:grid;grid-template-columns:5em 1fr;gap:8px 12px;align-content:start;text-transform:none;color:#cfc9bd}
.foot-co dt{color:#8f897e}
.foot-word{margin:clamp(40px,6vw,80px) 0 0;line-height:.76;font-family:var(--f-lat);white-space:nowrap;text-align:center;letter-spacing:-.03em;padding-inline:var(--gut)}
.foot-word span{display:inline-block;font-size:27vw}
.foot-bot{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;padding-block:22px calc(22px + env(safe-area-inset-bottom,0px));border-top:1px solid rgba(236,231,220,.18);color:#9b958a;text-transform:none}
.foot-bot a{text-decoration:none}

/* ---------- dock (context-aware booking pill) ---------- */
.dock{position:fixed;right:max(16px,env(safe-area-inset-right,0px));bottom:max(16px,env(safe-area-inset-bottom,0px));z-index:45;display:inline-flex;align-items:center;gap:12px;background:var(--ink);color:var(--plank);text-decoration:none;font-weight:700;font-size:14px;letter-spacing:.06em;padding:12px 20px 12px 12px;border-radius:999px;box-shadow:0 10px 30px -12px rgba(0,0,0,.45);transform:translateY(140%);transition:transform .6s var(--ease),background .3s,color .3s}
.dock.show{transform:none}
.dock:hover{background:var(--ball);color:var(--ink)}
.dock-ball{width:22px;height:22px;border-radius:50%;background:var(--ball);position:relative;animation:bounce 1.6s cubic-bezier(.3,0,.7,1) infinite}
.dock:hover .dock-ball{background:var(--plank)}
@keyframes bounce{0%,100%{transform:translateY(0)}45%{transform:translateY(-6px)}50%{transform:translateY(-6px)}}
.dock.cube{background:var(--plank);color:var(--ink);border:1px solid var(--ink)}
.dock.cube .dock-ball{background:var(--ink)}

/* ---------- reveal ---------- */
.rv{opacity:0;transform:translateY(28px)}
.no-js .rv,.reduced .rv{opacity:1;transform:none}

/* ---------- responsive ---------- */
@media (max-width:1180px){
  .nav a{padding:6px 10px}
  .brand-s{display:none}
}
@media (max-width:980px){
  :root{--hdr:60px}
  .nav,.hdr-cta{display:none}
  .menu-btn{display:inline-block}
  .mnav{display:grid;position:fixed;inset:0;z-index:-1;background:var(--plank);color:var(--ink);padding:calc(var(--hdr) + 24px) var(--gut) 32px;align-content:start;gap:2px;clip-path:inset(0 0 100% 0);transition:clip-path .6s var(--ease-io);overflow:auto}
  .hdr.open .mnav{clip-path:inset(0)}
  .hdr.open{color:var(--ink)}
  .hdr.open::before{opacity:0}
  .mnav>a{display:flex;gap:16px;align-items:baseline;font-family:var(--f-jp);font-weight:700;font-size:clamp(26px,7vw,40px);text-decoration:none;padding:12px 0;border-bottom:1px solid var(--rule)}
  .mnav>a i{font-family:var(--f-mono);font-style:normal;font-size:11px;color:var(--mute);font-weight:400}
  .mnav-cta{display:grid;gap:10px;margin-top:28px}
  .mnav-cta .btn{justify-content:center;padding:15px}

  .hero{grid-template-columns:1fr}
  .hero-stage{grid-column:1;grid-row:1;position:absolute;inset:0;pointer-events:none;z-index:1}
  .axo-wrap{height:56svh;top:var(--hdr);padding-top:0;align-items:start;background:linear-gradient(var(--plank) 82%,transparent)}
  #axo{max-height:52svh}
  .axo-legend{bottom:6px;right:0}
  .hero-steps{grid-column:1;grid-row:1}
  .step{min-height:auto;padding-block:0;margin-bottom:46svh}
  .step:not(.step-intro){background:color-mix(in srgb,var(--plank) 94%,transparent);border-top:1px solid var(--ink);padding-top:20px;padding-bottom:28px;gap:16px;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
  .step-intro{min-height:auto;padding-top:calc(56svh + 10px);padding-bottom:0;margin-bottom:40svh;background:none}
  .step-all{margin-bottom:12svh}
  .hero-h{font-size:clamp(44px,13vw,84px)}
  .step-h{font-size:clamp(28px,8vw,44px)}
  .step-n b{font-size:36px}

  .lesson-top .sec-head,.lesson-intro{grid-column:1/-1}
  .menu-cards{grid-template-columns:1fr 1fr}
  .mc{padding:24px 16px 24px 0!important;border-right:0;border-bottom:1px solid var(--rule-l)}
  .mc:nth-child(odd){border-right:1px solid var(--rule-l)}
  .mc:nth-child(even){padding-left:16px!important}
  .coach{grid-template-columns:1fr 1fr}
  .coach-name{grid-column:1/-1}
  .coach-side{justify-items:end}
  .flow{grid-template-columns:1fr}
  .first-cta{grid-template-columns:1fr}

  .gal-head .sec-h,.gal-lead{grid-column:1/-1}
  .next-txt,.next-strip{grid-column:1/-1}
  .next-up>p,.hb-list,.next-up .link{grid-column:1/-1}
  .plan-fig,.plan-info{grid-column:1/-1}
  .sim-head>div,.sim-head>p{grid-column:1/-1}
  .sim-bar{grid-template-columns:1fr 1fr}
  .sim-total{grid-column:1/-1;justify-self:start}
  .rent-price,.ask{grid-column:1/-1}
  .cafe .sec-head,.menu{grid-column:1/-1}
  .visit .sec-head,.route,.visit-facts,.visit-cta{grid-column:1/-1}
  .foot-cta,.foot-co{grid-column:1/-1}
}
@media (max-width:640px){
  body{font-size:14.5px}
  .lesson::after{display:none}
  .pts li{grid-template-columns:1fr;gap:2px}
  .menu-cards{grid-template-columns:1fr}
  .mc,.mc:nth-child(odd),.mc:nth-child(even){border-right:0;padding:22px 0!important}
  .coach{grid-template-columns:1fr}
  .coach-side{justify-items:start;text-align:left;grid-template-columns:auto 1fr;align-items:baseline;column-gap:14px}
  .coach-side .link{grid-column:1/-1}
  .gal-stats{grid-template-columns:1fr}
  .gal-stats li+li{padding-left:0;border-left:0;border-top:1px solid var(--rule)}
  .hb-list li{grid-template-columns:1fr;gap:2px}
  .sim-bar{grid-template-columns:1fr}
  .sim-walls{grid-template-columns:1fr}
  .menu{grid-template-columns:1fr}
  .drip svg{max-width:120px}
  .facts,.visit-facts{grid-template-columns:6em 1fr}
  .fc{grid-template-columns:1fr auto}
  .fc span{grid-column:1/-1;margin-bottom:-12px}
  .f-zone{grid-template-columns:1fr 1fr}
  .dock{left:16px;right:16px;justify-content:center}
  .foot-bot{padding-bottom:calc(84px + env(safe-area-inset-bottom,0px))}
  .lm-head{align-items:start}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
}

/* --- pass 2 --- */
.tt-word{font-family:var(--f-lat);font-style:italic;font-size:250px;fill:var(--line);opacity:.13;pointer-events:none}
#ttTop{cursor:crosshair;touch-action:manipulation}
.tt-hint{text-transform:none;color:var(--navy-mute)}
#ttCap b{font-family:var(--f-lat);font-weight:400;font-size:22px;color:var(--ball);letter-spacing:0;margin-left:6px}
#ttCap{display:flex;align-items:baseline}
.coach .style svg{width:26px;height:26px}
.more{justify-self:start;background:none;border:1px solid var(--ink);border-radius:999px;padding:10px 20px;font-size:13px;font-weight:500;cursor:pointer;transition:background .3s,color .3s}
.more:hover{background:var(--ink);color:var(--cube)}
.sim-walls[data-open="false"] .sw:nth-child(n+5){display:none}
.visit-lead{color:var(--ink-2);max-width:24em;line-height:2}
@media (max-width:1200px){
  .menu-cards{grid-template-columns:1fr 1fr}
  .mc{padding:24px 20px 26px 0!important;border-right:0;border-bottom:1px solid var(--rule-l)}
  .mc:nth-child(odd){border-right:1px solid var(--rule-l)}
  .mc:nth-child(even){padding-left:20px!important}
}
@media (max-width:640px){
  .tt-hint{display:none}
  .mc:nth-child(odd){border-right:0}
  .mc:nth-child(even){padding-left:0!important}
}

/* --- pass 3: phones --- */
@media (max-width:980px){
  .axo-legend{display:none}
  .axo-wrap{height:50svh}
  #axo{max-height:47svh;width:100%;margin-left:0}
  .step-intro{padding-top:calc(50svh + 4px)}
}
@media (max-width:640px){
  .menu-cards{grid-template-columns:1fr}
  .mc,.mc:nth-child(odd),.mc:nth-child(even){border-right:0;padding:22px 0!important}
  #ttTop{max-height:none}
  .tt-dim text{font-size:90px}
  .chips{flex-wrap:nowrap;overflow-x:auto;margin-inline:calc(-1 * var(--gut));padding-inline:var(--gut);scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .chips::-webkit-scrollbar{display:none}
  .chip{flex:none}
  .lm-head{display:grid;gap:14px}
  .hero-h{font-size:clamp(44px,14vw,72px)}
}

/* --- official logo (black-on-transparent PNG used as a mask, so it takes the current text colour) --- */
.brand-logo{display:block;height:38px;aspect-ratio:982/249;background:currentColor;-webkit-mask:url(../img/logo.png) left center/contain no-repeat;mask:url(../img/logo.png) left center/contain no-repeat}
.brand{align-items:center}
.foot-word{line-height:0;margin-top:clamp(56px,7vw,96px);padding-block:0 clamp(40px,5vw,72px)}
.foot-word .foot-logo{display:block;width:min(64%,460px);margin-inline:auto;aspect-ratio:982/249;font-size:0;background:var(--plank);-webkit-mask:url(../img/logo.png) center/contain no-repeat;mask:url(../img/logo.png) center/contain no-repeat}
@media (max-width:980px){.brand-logo{height:32px}}

/* --- inquiry form: direct send --- */
.f-row-2{grid-template-columns:1fr 1fr}
.f input.bad{border-color:#b3412e;box-shadow:0 0 0 1px #b3412e}
.hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.ask{position:relative}
.ask-msg{font-size:14px;line-height:1.8;border-radius:12px;padding:12px 14px}
.ask-msg b{display:block}
.ask-msg.ok{background:#e4ece1;color:#2d4a2a}
.ask-msg.ng{background:#f4e2dc;color:#7a2a1c}
.ask-msg a{color:inherit}
#askSend[disabled]{opacity:.6;cursor:wait}
@media (max-width:640px){.f-row-2{grid-template-columns:1fr}}
