

  /* ============ TOKENS ============ */
  :root{
    --washi:#E7DFC9;
    --washi-deep:#D9CCAC;
    --sumi:#141210;
    --sumi-soft:#211B15;
    --ink:#211C16;
    --ink-soft:#453D31;
    --kigi:#6B5238;
    --kigi-light:#9C815E;
    --aka:#8E2823;
    --aka-bright:#AC3A32;
    --line:rgba(33,28,22,0.18);
    --line-dark:rgba(231,223,201,0.18);

    --font-display:"Shippori Mincho","Hiragino Mincho ProN","Yu Mincho",serif;
    --font-body:"Zen Kaku Gothic New","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;
    --font-roman:"Cormorant Garamond","EB Garamond",serif;
    --font-wordmark:"Cinzel","Cormorant Garamond",serif;

    --section-pad: clamp(96px, 14vw, 224px);
    --measure: 640px;

    /* Motion: two easings, used everywhere (spec item #5) */
    --ease-standard: ease-out;
    --ease-emphasis: cubic-bezier(0.16,0.7,0.3,1);

    /* Letter-spacing scale (spec item #11) */
    --ls-tight: 0.02em;
    --ls-normal: 0.05em;
    --ls-wide: 0.12em;
    --ls-wider: 0.2em;
  }

  *{box-sizing:border-box;}
  html{scroll-behavior:smooth; font-size:113%;}
  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}
    *{animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important;}
  }

  /* ============ VIEW TRANSITIONS (page-to-page navigation) ============ */
  /* Progressive enhancement: unsupported browsers just navigate normally. */
  @media not (prefers-reduced-motion: reduce){
    @view-transition{ navigation:auto; }
    ::view-transition-old(root){
      animation: page-out 0.35s cubic-bezier(0.4,0,1,1) both;
    }
    ::view-transition-new(root){
      animation: page-in 0.5s cubic-bezier(0.22,1,0.36,1) both;
    }
  }
  @keyframes page-out{
    to{ opacity:0; transform:translateY(-14px); }
  }
  @keyframes page-in{
    from{ opacity:0; transform:translateY(18px); }
  }

  body{
    margin:0;
    background:var(--washi);
    color:var(--ink);
    font-family:var(--font-body);
    font-weight:400;
    line-height:1.95;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }

  h1,h2{
    font-family:var(--font-display);
    font-weight:700;
    color:var(--ink);
    margin:0;
    letter-spacing:var(--ls-tight);
  }
  h3{
    font-family:var(--font-display);
    font-weight:600;
    color:var(--ink);
    margin:0;
    letter-spacing:var(--ls-tight);
  }

  /* Section heading type scale (spec #12) — replaces one-off inline clamp() styles */
  .h2-md{ margin-top:20px; font-size:clamp(1.5rem,3vw,2.1rem); line-height:1.8; }
  .h2-lg{ margin-top:24px; font-size:clamp(1.9rem,3.8vw,2.9rem); }

  p{margin:0;}

  a{color:inherit; text-decoration:none;}
  a:focus-visible, button:focus-visible{
    outline:1.5px solid var(--aka);
    outline-offset:4px;
  }

  .eyebrow{
    display:inline-block;
    font-family:var(--font-roman);
    font-style:italic;
    font-size:0.95rem;
    letter-spacing:0.16em;
    text-transform:uppercase;
    color:var(--kigi);
  }
  .on-dark .eyebrow{ color:var(--kigi-light); }

  .chapter-lead{
    display:block;
    font-family:var(--font-display);
    font-size:1.05rem;
    letter-spacing:0.06em;
    color:var(--kigi);
    margin-top:22px;
    margin-bottom:-6px;
  }
  .on-dark .chapter-lead{ color:var(--kigi-light); }

  .wrap{
    max-width:1180px;
    margin:0 auto;
    padding-left:clamp(24px,6vw,72px);
    padding-right:clamp(24px,6vw,72px);
  }

  .measure{max-width:var(--measure);}
  .center{margin-left:auto; margin-right:auto; text-align:center;}

  section{position:relative; padding-top:var(--section-pad); padding-bottom:var(--section-pad);}
  .on-dark{background:var(--sumi); color:var(--washi);}
  .on-dark h1, .on-dark h2, .on-dark h3{color:var(--washi);}
  .on-dark .ink-soft{color:rgba(237,231,216,0.72);}
  .on-dark .body-text{color:rgba(237,231,216,0.78);}
  .ink-soft{color:var(--ink-soft);}

  /* ============ GRAIN OVERLAY ============ */
  .grain{
    position:fixed; inset:0; width:100%; height:100%;
    pointer-events:none; z-index:500;
    mix-blend-mode:multiply;
    background-image:url("data:image/png;base64,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");
    background-repeat:repeat;
    background-size:128px 128px;
  }

  .page-frame{
    position:fixed; inset:10px; z-index:400;
    pointer-events:none;
    border:1px solid rgba(20,17,14,0.16);
  }
  @media (max-width:640px){ .page-frame{display:none;} }

  /* ============ WOVEN DIVIDER (signature motif) ============ */
  .weave{
    display:block; width:100%; height:22px;
    overflow:hidden;
  }
  .weave svg{display:block; width:100%; height:100%;}

  /* ============ HEADER / NAV ============ */
  header.site-head{
    position:fixed; top:0; left:0; right:0; z-index:100;
    padding:22px clamp(24px,6vw,72px);
    display:flex; align-items:center; justify-content:space-between;
    transition:background 0.5s ease, backdrop-filter 0.5s ease, border-color .5s ease;
    border-bottom:1px solid transparent;
  }
  header.site-head.scrolled{
    background:rgba(237,231,216,0.86);
    -webkit-backdrop-filter:blur(10px);
    backdrop-filter:blur(10px);
    border-bottom:1px solid var(--line);
  }

  .wordmark{
    font-family:var(--font-wordmark);
    font-size:1.22rem;
    letter-spacing:0.1em;
    font-weight:600;
    color:var(--washi);
    transition:color .5s ease;
    display:flex; align-items:center; gap:12px;
  }
  header.site-head.scrolled .wordmark{color:var(--ink);}
  .wordmark .emblem{
    height:36px; width:auto; display:block;
    filter:drop-shadow(0 0 5px rgba(231,223,201,0.85)) drop-shadow(0 1px 3px rgba(20,17,14,0.4));
    transition:filter .5s ease;
  }
  header.site-head.scrolled .wordmark .emblem{
    filter:drop-shadow(0 1px 3px rgba(20,17,14,0.12));
  }

  nav.main-nav{display:flex; gap:clamp(24px,3.4vw,48px); align-items:center;}
  nav.main-nav a{
    font-family:var(--font-body);
    font-size:0.82rem;
    font-weight:700;
    letter-spacing:0.16em;
    color:var(--washi);
    text-shadow:0 1px 4px rgba(20,17,14,0.35);
    padding:4px 0;
    position:relative;
    transition:color .5s ease;
  }
  nav.main-nav a.nav-priority{ color:var(--aka-bright); }
  header.site-head.scrolled nav.main-nav a{color:var(--ink); text-shadow:none;}
  header.site-head.scrolled nav.main-nav a.nav-priority{ color:var(--aka); }
  nav.main-nav a::after{
    content:""; position:absolute; left:0; right:0; bottom:-3px; height:1px;
    background:var(--aka); transform:scaleX(0); transform-origin:left;
    transition:transform .35s ease;
  }
  nav.main-nav a:hover::after{transform:scaleX(1);}

  .nav-toggle{display:none; background:none; border:none; cursor:pointer; padding:4px;}
  .nav-toggle span{display:block; width:22px; height:1px; background:var(--washi); margin:5px 0; transition:.3s;}
  header.site-head.scrolled .nav-toggle span{background:var(--ink);}

  @media (max-width:820px){
    nav.main-nav{
      position:fixed; top:0; right:0; height:100vh; width:min(78vw,320px);
      background:var(--washi); flex-direction:column; align-items:flex-start;
      padding:100px 36px; gap:26px;
      transform:translateX(100%); transition:transform .45s ease;
      border-left:1px solid var(--line);
      overflow-y:auto;
    }
    nav.main-nav a{color:var(--ink-soft) !important;}
    nav.main-nav a.nav-priority{color:var(--aka) !important;}
    nav.main-nav.open{transform:translateX(0);}
    .nav-toggle{display:block;}
  }

  /* ============ HERO ============ */
  .hero{
    min-height:100svh;
    display:flex; flex-direction:column; justify-content:center;
    position:relative;
    padding-top:140px; padding-bottom:80px;
    color:var(--washi);
    background:var(--sumi);
  }
  .hero-photo{
    position:absolute; inset:0; z-index:0; overflow:hidden;
  }
  .hero-reveal{
    opacity:0;
    animation: heroFadeIn 1.3s ease 0.95s forwards;
  }
  @keyframes heroFadeIn{ to{ opacity:1; } }
  @media (prefers-reduced-motion: reduce){
    .hero-reveal{ animation:none; opacity:1; }
  }
  .hero-photo img, .hero-photo video{
    width:100%; height:100%; object-fit:cover; object-position:50% 42%;
    display:block;
    filter:saturate(0.8) contrast(1.08) brightness(0.96) sepia(0.08);
  }
  .hero-scrim{
    position:absolute; inset:0; z-index:1; pointer-events:none;
    background:
      linear-gradient(180deg, rgba(10,8,6,0.76) 0%, rgba(10,8,6,0.36) 34%, rgba(10,8,6,0.46) 62%, rgba(10,8,6,0.88) 100%);
  }

  .hero-inner{position:relative; z-index:2;}
  .hero-inner > *{
    opacity:0;
    animation: subTextIn 0.8s ease-out both;
  }
  .hero-inner > *:nth-child(1){ animation-delay:0.1s; }
  .hero-inner > *:nth-child(2){ animation-delay:0.25s; }
  .hero-inner > *:nth-child(3){ animation-delay:0.4s; }
  @media (prefers-reduced-motion: reduce){
    .hero-inner > *{ animation:none; opacity:1; }
  }
  .hero .eyebrow{margin-bottom:34px; color:var(--kigi-light);}
  .hero h1{
    font-size:clamp(2.5rem, 6.2vw, 5.4rem);
    line-height:1.35;
    letter-spacing:0.06em;
    color:var(--washi);
    text-shadow:0 2px 24px rgba(0,0,0,0.25);
  }
  .hero .sub{
    margin-top:30px;
    font-family:var(--font-body);
    font-weight:300;
    font-size:clamp(1rem,1.6vw,1.2rem);
    color:rgba(237,231,216,0.85);
    letter-spacing:0.06em;
  }
  .scroll-cue{
    position:absolute; bottom:40px; left:clamp(24px,6vw,72px);
    z-index:2;
    display:flex; align-items:center; gap:12px;
    font-family:var(--font-roman); font-style:italic; font-size:0.85rem;
    letter-spacing:0.18em; color:var(--kigi-light);
  }
  .scroll-cue .line{width:36px; height:1px; background:var(--kigi-light); display:inline-block;
    animation:extend 2.6s ease-in-out infinite;}
  @keyframes extend{ 0%,100%{width:24px;} 50%{width:44px;} }

  /* ============ MANIFESTO ============ */
  .manifesto{
    position:relative;
    overflow:hidden;
  }
  .manifesto-photo{
    position:absolute; inset:0; z-index:0;
  }
  .manifesto-photo img{
    width:100%; height:100%; object-fit:cover; object-position:50% 38%;
    display:block;
    filter:saturate(0.8) contrast(1.08) brightness(0.9) sepia(0.08);
  }
  .manifesto-scrim{
    position:absolute; inset:0; z-index:1; pointer-events:none;
    background:linear-gradient(100deg, rgba(10,8,6,0.9) 0%, rgba(10,8,6,0.78) 42%, rgba(10,8,6,0.48) 100%);
  }
  .manifesto > .wrap{position:relative; z-index:2;}
  .manifesto .eyebrow{color:var(--kigi-light);}
  .manifesto h2{
    font-size:clamp(1.7rem,3.6vw,2.7rem);
    line-height:1.8;
    color:var(--washi);
    text-shadow:0 2px 20px rgba(0,0,0,0.3);
  }
  .manifesto .body-text{
    margin-top:38px;
    font-size:1.05rem;
    line-height:2.1;
    color:rgba(237,231,216,0.82);
  }

  /* ============ MISSION / VISION ============ */
  .statement h2{
    font-size:clamp(1.9rem,4.2vw,3.1rem);
    line-height:1.75;
    margin-top:26px;
  }
  .statement .sub{
    margin-top:28px;
    font-size:1rem;
    line-height:2;
    color:var(--ink-soft);
  }
  .on-dark .statement .sub{color:rgba(237,231,216,0.72);}
  .statement .aka-word{color:var(--aka);}
  .on-dark .statement .aka-word{color:var(--aka-bright);}
  .manifesto .aka-word{color:var(--aka-bright);}

  /* ============ PHILOSOPHY ============ */
  .phi-frame{
    position:relative;
    padding:clamp(40px,7vw,80px) clamp(28px,6vw,64px);
    margin-top:56px;
  }
  .phi-frame .weave{position:absolute; left:0; right:0;}
  .phi-frame .weave.top{top:0;}
  .phi-frame .weave.bottom{bottom:0;}
  .phi-quote{
    font-family:var(--font-display);
    font-size:clamp(1.5rem,3vw,2.15rem);
    line-height:2.05;
    text-align:center;
    color:var(--ink);
  }
  .dna-list{
    margin-top:64px;
    display:flex; flex-direction:column;
  }
  .dna-list li{
    list-style:none;
    padding:22px 0;
    border-top:1px solid var(--line);
    font-family:var(--font-body);
    font-size:1.02rem;
    letter-spacing:0.02em;
    color:var(--ink-soft);
    display:flex; align-items:baseline; gap:18px;
  }
  .dna-list li:last-child{border-bottom:1px solid var(--line);}
  .dna-list .mark{color:var(--aka); font-family:var(--font-roman); font-style:italic; font-size:1rem;}

  /* ============ DIAGRAM FRAME (infographics) ============ */
  .diagram-frame{
    margin-top:40px;
    padding:clamp(8px,2vw,20px);
    max-width:820px;
  }
  .diagram-frame img{
    display:block; width:100%; height:auto;
  }

  /* ============ STATS STRIP ============ */
  .stats-strip{
    display:grid; grid-template-columns:repeat(3,1fr);
    border-top:1px solid var(--line); border-bottom:1px solid var(--line);
  }
  .stats-strip .stat{
    padding:34px 20px; text-align:center;
    border-left:1px solid var(--line);
  }
  .stats-strip .stat:first-child{ border-left:none; }
  .stats-strip .num{
    display:block; font-family:var(--font-display); font-weight:700;
    font-size:clamp(1.6rem,3.2vw,2.3rem); color:var(--aka);
  }
  .stats-strip .label{
    display:block; margin-top:8px; font-size:0.78rem; letter-spacing:0.04em; color:var(--kigi);
    font-family:var(--font-roman); font-style:italic;
  }
  @media (max-width:640px){
    .stats-strip{ grid-template-columns:1fr; }
    .stats-strip .stat{ border-left:none; border-top:1px solid var(--line); }
    .stats-strip .stat:first-child{ border-top:none; }
  }

  /* ============ STEP COMPARE (従来 vs LIBEDOR HAKATA) ============ */
  .step-compare{
    margin-top:44px; display:flex; flex-direction:column; gap:1px;
    background:var(--line); border:1px solid var(--line);
  }
  .step-row{
    background:var(--washi); padding:26px 28px;
    display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px;
  }
  .step-row.highlight{ background:var(--washi-deep); }
  .step-label{
    font-family:var(--font-body); font-weight:500; font-size:0.9rem; color:var(--kigi);
    min-width:150px;
  }
  .step-row.highlight .step-label{ color:var(--aka); font-weight:500; font-style:normal; }
  .step-flow{
    font-family:var(--font-display); font-size:1.05rem; color:var(--ink); letter-spacing:0.02em;
  }

  /* ============ TEMPEST BAND (text-free atmosphere) ============ */
  .tempest-band{
    width:100%;
    background:var(--sumi);
    overflow:hidden;
    line-height:0;
  }
  .tempest-band svg{
    display:block; width:100%; height:auto;
  }

  /* ============ HAKATA ============ */
  .hakata-grid{
    display:grid; grid-template-columns: 1.1fr 0.9fr; gap:clamp(40px,6vw,90px);
    align-items:start;
  }
  @media (max-width:860px){ .hakata-grid{grid-template-columns:1fr;} }
  .hakata-grid h2{
    font-size:clamp(1.7rem,3.6vw,2.5rem);
    line-height:1.9;
  }
  .hakata-grid .body-text{
    font-size:1.02rem; line-height:2.15; color:var(--ink-soft);
  }
  .hakata-mark{
    justify-self:end;
    width:100%; max-width:220px;
    aspect-ratio:1/1.3;
    border:1px solid var(--line);
    box-shadow:0 18px 40px -20px rgba(20,17,14,0.35), inset 0 0 0 1px rgba(20,17,14,0.03);
    display:flex; align-items:center; justify-content:center;
    position:relative;
  }
  .hakata-mark span{
    font-family:var(--font-roman); font-style:italic; letter-spacing:0.3em;
    writing-mode:vertical-rl; color:var(--kigi); font-size:1.05rem;
  }

  /* ============ WATCH (video) ============ */
  .watch-frame{
    position:relative;
    margin-top:56px;
    padding:clamp(28px,5vw,48px) clamp(20px,4vw,40px) clamp(40px,6vw,56px);
  }
  .watch-frame .weave{position:absolute; left:0; right:0; top:0;}
  .video-embed{
    position:relative;
    width:100%;
    aspect-ratio:16/9;
    background:var(--sumi);
    overflow:hidden;
    margin-top:32px;
    box-shadow:0 30px 60px -28px rgba(20,17,14,0.45);
  }
  .video-embed iframe{
    position:absolute; inset:0; width:100%; height:100%; border:0;
  }
  .watch-caption{
    margin-top:22px;
    font-family:var(--font-roman); font-style:italic; font-size:0.85rem;
    color:var(--kigi); letter-spacing:0.05em;
  }

  /* ============ NEWS ============ */
  .news-list{display:flex; flex-direction:column;}
  .news-list .row{
    display:grid; grid-template-columns: 140px 1fr auto;
    gap:24px; align-items:baseline;
    padding:26px 0; border-top:1px solid var(--line);
  }
  .news-list .row:last-child{border-bottom:1px solid var(--line);}
  @media (max-width:640px){
    .news-list .row{grid-template-columns:1fr; gap:8px;}
  }
  .news-list time{
    font-family:var(--font-roman); font-size:0.95rem; color:var(--kigi); letter-spacing:0.04em;
  }
  .news-list .headline{font-size:1rem; color:var(--ink); letter-spacing:0.01em;}
  .news-list .tag{
    font-family:var(--font-roman); font-style:italic; font-size:0.82rem; color:var(--kigi-light);
    justify-self:end;
  }
  @media (max-width:640px){ .news-list .tag{justify-self:start;} }
  .news-note{
    margin-top:30px; font-size:0.85rem; color:var(--kigi); font-style:italic; font-family:var(--font-roman);
  }

  /* ============ PARTNERS ============ */
  .partner-list{
    display:grid; grid-template-columns:repeat(2,1fr); gap:0 60px;
  }
  @media (max-width:640px){ .partner-list{grid-template-columns:1fr;} }
  .partner-list li{
    list-style:none; padding:20px 0; border-top:1px solid var(--line);
    font-size:1rem; color:var(--ink-soft); letter-spacing:0.02em;
  }
  .partner-list li a{
    color:inherit; display:inline-flex; align-items:center; gap:8px;
    transition:color .3s ease;
  }
  .partner-list li a::after{
    content:"↗"; font-family:var(--font-roman); font-size:0.8rem; color:var(--kigi-light);
    opacity:0; transform:translate(-3px,2px); transition:opacity .3s ease, transform .3s ease;
  }
  .partner-list li a:hover{color:var(--aka);}
  .partner-list li a:hover::after{opacity:1; transform:translate(0,0);}
  .partner-list li:nth-last-child(-n+2){border-bottom:1px solid var(--line);}
  @media (max-width:640px){ .partner-list li:nth-last-child(-n+2){border-bottom:none;} .partner-list li:last-child{border-bottom:1px solid var(--line);} }
  .partner-cta{
    margin-top:56px; display:flex; align-items:center; gap:22px; flex-wrap:wrap;
  }
  .partner-cta p{font-size:0.98rem; color:var(--ink-soft);}

  /* ============ FOLLOW ============ */
  .follow-grid{
    display:grid; grid-template-columns:1fr 1fr; gap:22px;
    margin-top:52px;
  }
  @media (max-width:640px){ .follow-grid{grid-template-columns:1fr;} }
  .follow-card{
    display:flex; align-items:center; gap:22px;
    padding:28px 26px;
    border:1px solid var(--line);
    transition:border-color .35s ease, box-shadow .35s ease, transform .35s ease;
  }
  .follow-card:hover{border-color:var(--aka); box-shadow:0 20px 40px -24px rgba(20,17,14,0.4); transform:translateY(-2px);}
  .follow-icon{
    width:38px; height:38px; flex-shrink:0; color:var(--kigi);
    transition:color .35s ease;
  }
  .follow-card:hover .follow-icon{color:var(--aka);}
  .follow-text{display:flex; flex-direction:column; gap:5px;}
  .follow-text .platform{
    font-family:var(--font-roman); font-style:italic; font-size:0.82rem;
    letter-spacing:0.1em; color:var(--kigi);
  }
  .follow-text .handle{
    font-family:var(--font-body); font-size:1.02rem; color:var(--ink); letter-spacing:0.02em;
  }

  /* ============ LINKS (text-link style, used for JOIN + partner CTA) ============ */
  .text-link{
    display:inline-flex; align-items:center; gap:10px;
    font-family:var(--font-body); font-size:0.95rem; letter-spacing:0.08em;
    color:var(--aka); border-bottom:1px solid var(--aka); padding-bottom:4px;
    transition:letter-spacing .3s ease, opacity .3s ease;
  }
  .on-dark .text-link{color:var(--aka-bright); border-color:var(--aka-bright);}
  .text-link:hover{letter-spacing:0.14em;}
  .text-link .arrow{transition:transform .3s ease;}
  .text-link:hover .arrow{transform:translateX(4px);}

  /* ============ JOIN ============ */
  .join-paths{
    margin-top:64px; display:flex; flex-direction:column;
  }
  .join-paths a{
    display:flex; justify-content:space-between; align-items:center;
    padding:28px 4px; border-top:1px solid var(--line-dark);
    font-family:var(--font-display); font-size:clamp(1.1rem,2.4vw,1.5rem);
    color:var(--washi);
    transition:padding-left .35s ease, color .35s ease;
  }
  .join-paths a:last-child{border-bottom:1px solid var(--line-dark);}
  .join-paths a:hover{padding-left:16px; color:var(--aka-bright);}
  .join-paths .num{
    font-family:var(--font-roman); font-style:italic; font-size:0.9rem; color:var(--kigi-light);
    margin-right:20px;
  }
  .join-paths a span.label{flex:1; display:flex; align-items:baseline;}

  /* ============ FOOTER (sitemap style) ============ */
  footer{
    background:var(--sumi); color:var(--washi);
    padding:64px clamp(24px,6vw,72px) 40px;
    border-top:1px solid var(--line-dark);
  }
  .foot-grid{
    max-width:1180px; margin:0 auto;
    display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:40px;
  }
  @media (max-width:640px){ .foot-grid{ grid-template-columns:1fr; } }
  footer .wordmark{color:var(--washi); font-size:0.95rem;}
  footer .wordmark .emblem{height:26px;}
  .foot-col{ display:flex; flex-direction:column; gap:13px; }
  .foot-col-title{
    font-family:var(--font-roman); font-style:italic; font-size:0.8rem;
    letter-spacing:0.1em; color:var(--kigi-light); margin-bottom:2px;
  }
  .foot-col a{
    font-size:0.85rem; letter-spacing:0.05em; color:rgba(237,231,216,0.68);
    transition:color .3s ease; width:fit-content;
  }
  .foot-col a:hover{color:var(--washi);}
  .foot-bottom{
    max-width:1180px; margin:52px auto 0; padding-top:22px;
    border-top:1px solid var(--line-dark);
    font-size:0.75rem; color:rgba(237,231,216,0.4); letter-spacing:0.04em;
  }

  /* ============ REVEAL ============ */
  /* Fail-safe by design: content is visible by default (no JS required).
     JS adds .pre-animate to opt into the entrance effect as a progressive enhancement.
     Base: opacity 0→1, translateY(30px)→0, 0.8s ease-out, staggered ~0.15s per direct child.
     Statement/manifesto sections get a slower, larger "emphasis" motion (spec #1).
     Repeating list/card items stagger individually within their own group (spec #2).
     Triggers once on viewport entry and never re-hides. transform/opacity only
     (GPU-composited, no layout/paint cost) for smooth performance on PC and mobile. */
  .reveal{opacity:1; transform:none;}
  .reveal.pre-animate{opacity:1;}
  .reveal.pre-animate > *{
    opacity:0; transform:translateY(30px);
    transition:opacity 0.8s var(--ease-standard), transform 0.8s var(--ease-standard);
  }
  .reveal.pre-animate.is-visible > *{opacity:1; transform:translateY(0);}
  .reveal.pre-animate > *:nth-child(1){transition-delay:0s;}
  .reveal.pre-animate > *:nth-child(2){transition-delay:0.15s;}
  .reveal.pre-animate > *:nth-child(3){transition-delay:0.3s;}
  .reveal.pre-animate > *:nth-child(4){transition-delay:0.45s;}
  .reveal.pre-animate > *:nth-child(5){transition-delay:0.6s;}
  .reveal.pre-animate > *:nth-child(n+6){transition-delay:0.7s;}

  /* Wrapper containers whose children stagger individually (below): skip the
     container's own fade so items aren't animated twice (spec #2, no double-motion). */
  .reveal.pre-animate > .team-photo-grid,
  .reveal.pre-animate > .timeline,
  .reveal.pre-animate > .dna-list{
    opacity:1 !important; transform:none !important; transition:none !important;
  }

  /* Manifesto / statement sections: larger, slower, more cinematic (spec #1) */
  .manifesto.pre-animate > *,
  .statement.pre-animate > *,
  .exclusivity-panel.pre-animate > *{
    transform:translateY(44px);
    transition-duration:1.4s;
    transition-timing-function:var(--ease-emphasis);
  }

  /* Repeating list/card items: stagger individually within their group,
     riding on the parent section's is-visible trigger (spec #2). Capped at
     ~8 explicit steps so very long lists (e.g. 31 team cards) don't produce
     an excessively long wait — the remainder arrive together shortly after. */
  .reveal.pre-animate.is-visible .dna-list li,
  .reveal.pre-animate.is-visible .timeline .item,
  .reveal.pre-animate.is-visible .journey-item,
  .reveal.pre-animate.is-visible .plan-card,
  .reveal.pre-animate.is-visible .follow-card,
  .reveal.pre-animate.is-visible .benefit-card,
  .reveal.pre-animate.is-visible .contact-tile,
  .reveal.pre-animate.is-visible .team-card-photo,
  .reveal.pre-animate.is-visible .category-chip,
  .reveal.pre-animate.is-visible .match-list-item{
    opacity:0; transform:translateY(20px);
    animation:itemIn 0.7s var(--ease-standard) forwards;
  }
  @keyframes itemIn{ to{ opacity:1; transform:translateY(0); } }
  .reveal.pre-animate.is-visible .dna-list li:nth-child(1),
  .reveal.pre-animate.is-visible .timeline .item:nth-child(1),
  .reveal.pre-animate.is-visible .journey-item:nth-child(1),
  .reveal.pre-animate.is-visible .plan-card:nth-child(1),
  .reveal.pre-animate.is-visible .follow-card:nth-child(1),
  .reveal.pre-animate.is-visible .benefit-card:nth-child(1),
  .reveal.pre-animate.is-visible .contact-tile:nth-child(1),
  .reveal.pre-animate.is-visible .team-card-photo:nth-child(1),
  .reveal.pre-animate.is-visible .category-chip:nth-child(1),
  .reveal.pre-animate.is-visible .match-list-item:nth-child(1){ animation-delay:0s; }
  .reveal.pre-animate.is-visible .dna-list li:nth-child(2),
  .reveal.pre-animate.is-visible .timeline .item:nth-child(2),
  .reveal.pre-animate.is-visible .journey-item:nth-child(2),
  .reveal.pre-animate.is-visible .plan-card:nth-child(2),
  .reveal.pre-animate.is-visible .follow-card:nth-child(2),
  .reveal.pre-animate.is-visible .benefit-card:nth-child(2),
  .reveal.pre-animate.is-visible .contact-tile:nth-child(2),
  .reveal.pre-animate.is-visible .team-card-photo:nth-child(2),
  .reveal.pre-animate.is-visible .category-chip:nth-child(2),
  .reveal.pre-animate.is-visible .match-list-item:nth-child(2){ animation-delay:0.07s; }
  .reveal.pre-animate.is-visible .dna-list li:nth-child(3),
  .reveal.pre-animate.is-visible .timeline .item:nth-child(3),
  .reveal.pre-animate.is-visible .journey-item:nth-child(3),
  .reveal.pre-animate.is-visible .plan-card:nth-child(3),
  .reveal.pre-animate.is-visible .follow-card:nth-child(3),
  .reveal.pre-animate.is-visible .benefit-card:nth-child(3),
  .reveal.pre-animate.is-visible .contact-tile:nth-child(3),
  .reveal.pre-animate.is-visible .team-card-photo:nth-child(3),
  .reveal.pre-animate.is-visible .category-chip:nth-child(3),
  .reveal.pre-animate.is-visible .match-list-item:nth-child(3){ animation-delay:0.14s; }
  .reveal.pre-animate.is-visible .dna-list li:nth-child(4),
  .reveal.pre-animate.is-visible .timeline .item:nth-child(4),
  .reveal.pre-animate.is-visible .journey-item:nth-child(4),
  .reveal.pre-animate.is-visible .plan-card:nth-child(4),
  .reveal.pre-animate.is-visible .follow-card:nth-child(4),
  .reveal.pre-animate.is-visible .benefit-card:nth-child(4),
  .reveal.pre-animate.is-visible .contact-tile:nth-child(4),
  .reveal.pre-animate.is-visible .team-card-photo:nth-child(4),
  .reveal.pre-animate.is-visible .category-chip:nth-child(4),
  .reveal.pre-animate.is-visible .match-list-item:nth-child(4){ animation-delay:0.21s; }
  .reveal.pre-animate.is-visible .dna-list li:nth-child(5),
  .reveal.pre-animate.is-visible .timeline .item:nth-child(5),
  .reveal.pre-animate.is-visible .journey-item:nth-child(5),
  .reveal.pre-animate.is-visible .plan-card:nth-child(5),
  .reveal.pre-animate.is-visible .follow-card:nth-child(5),
  .reveal.pre-animate.is-visible .benefit-card:nth-child(5),
  .reveal.pre-animate.is-visible .contact-tile:nth-child(5),
  .reveal.pre-animate.is-visible .team-card-photo:nth-child(5),
  .reveal.pre-animate.is-visible .category-chip:nth-child(5),
  .reveal.pre-animate.is-visible .match-list-item:nth-child(5){ animation-delay:0.28s; }
  .reveal.pre-animate.is-visible .dna-list li:nth-child(6),
  .reveal.pre-animate.is-visible .timeline .item:nth-child(6),
  .reveal.pre-animate.is-visible .journey-item:nth-child(6),
  .reveal.pre-animate.is-visible .plan-card:nth-child(6),
  .reveal.pre-animate.is-visible .follow-card:nth-child(6),
  .reveal.pre-animate.is-visible .benefit-card:nth-child(6),
  .reveal.pre-animate.is-visible .contact-tile:nth-child(6),
  .reveal.pre-animate.is-visible .team-card-photo:nth-child(6),
  .reveal.pre-animate.is-visible .category-chip:nth-child(6),
  .reveal.pre-animate.is-visible .match-list-item:nth-child(6){ animation-delay:0.35s; }
  .reveal.pre-animate.is-visible .dna-list li:nth-child(7),
  .reveal.pre-animate.is-visible .timeline .item:nth-child(7),
  .reveal.pre-animate.is-visible .journey-item:nth-child(7),
  .reveal.pre-animate.is-visible .team-card-photo:nth-child(7),
  .reveal.pre-animate.is-visible .category-chip:nth-child(7),
  .reveal.pre-animate.is-visible .match-list-item:nth-child(7){ animation-delay:0.42s; }
  .reveal.pre-animate.is-visible .timeline .item:nth-child(n+8),
  .reveal.pre-animate.is-visible .team-card-photo:nth-child(n+8),
  .reveal.pre-animate.is-visible .category-chip:nth-child(n+8){ animation-delay:0.48s; }

  @media (prefers-reduced-motion: reduce){
    .reveal.pre-animate.is-visible .dna-list li,
    .reveal.pre-animate.is-visible .timeline .item,
    .reveal.pre-animate.is-visible .journey-item,
    .reveal.pre-animate.is-visible .plan-card,
    .reveal.pre-animate.is-visible .follow-card,
    .reveal.pre-animate.is-visible .benefit-card,
    .reveal.pre-animate.is-visible .contact-tile,
    .reveal.pre-animate.is-visible .team-card-photo,
    .reveal.pre-animate.is-visible .category-chip,
    .reveal.pre-animate.is-visible .match-list-item{
      animation:none; opacity:1; transform:none;
    }
  }


/* ============ SPONSOR NAV PRIORITY (sub-nav handles this now) ============ */

/* ============ SUBHERO (interior page banner) ============ */
.subhero{
  position:relative;
  padding-top:calc(140px + 40px);
  padding-bottom:64px;
  overflow:hidden;
}
.subhero-photo{ position:absolute; inset:0; z-index:0; }
.subhero-photo img, .subhero-photo video{
  width:100%; height:100%; object-fit:cover; object-position:50% 35%;
  filter:saturate(0.8) contrast(1.08) brightness(0.55) sepia(0.08);
  display:block;
}
.subhero-scrim{
  position:absolute; inset:0; z-index:1;
  background:linear-gradient(180deg, rgba(10,8,6,0.62) 0%, rgba(10,8,6,0.78) 100%);
}
.subhero.no-photo{ background:var(--sumi); }
.subhero > .wrap{ position:relative; z-index:2; }
.subhero .eyebrow{ color:var(--kigi-light); }
.subhero h1{
  margin-top:18px;
  font-size:clamp(2rem,4.6vw,3.4rem);
  color:var(--washi);
  line-height:1.5;
}
.subhero .lede{
  margin-top:20px;
  max-width:640px;
  font-size:1rem;
  line-height:2;
  color:rgba(231,223,201,0.82);
}

/* On-load entrance: text and photo fade/slide in the moment a page appears
   ("ページが切り替わるタイミングで、テキスト、写真をフェードイン"). Pure CSS
   animation — no JS required, so it always plays reliably on every navigation. */
.subhero-photo{
  opacity:0;
  animation: subPhotoIn 1s ease both;
}
@keyframes subPhotoIn{ from{ opacity:0; } to{ opacity:1; } }

.subhero > .wrap > *{
  opacity:0;
  animation: subTextIn 0.8s ease-out both;
}
.subhero > .wrap > *:nth-child(1){ animation-delay:0.1s; }
.subhero > .wrap > *:nth-child(2){ animation-delay:0.25s; }
.subhero > .wrap > *:nth-child(3){ animation-delay:0.4s; }
.subhero > .wrap > *:nth-child(4){ animation-delay:0.55s; }
@keyframes subTextIn{
  from{ opacity:0; transform:translateY(30px); }
  to{ opacity:1; transform:translateY(0); }
}
@media (prefers-reduced-motion: reduce){
  .subhero-photo, .subhero > .wrap > *{ animation:none; opacity:1; }
}

/* ============ CRUMB ============ */
.crumb{
  display:block; margin-top:26px;
  font-family:var(--font-body); font-size:0.85rem;
  letter-spacing:var(--ls-normal); color:var(--kigi-light);
}
.crumb a{ color:inherit; border-bottom:1px solid rgba(156,129,94,0.5); padding-bottom:2px; }
.crumb a:hover{ color:var(--washi); }

/* ============ DIGEST CARD (TOP page summaries) ============ */
.digest{
  display:flex; flex-direction:column; gap:18px;
  margin-top:34px;
}
.digest .body-text{ max-width:var(--measure); }
.read-more{
  margin-top:10px;
  display:inline-flex; align-items:center; gap:9px;
  font-family:var(--font-body); font-size:0.9rem; letter-spacing:0.06em;
  color:var(--aka); border-bottom:1px solid var(--aka); padding-bottom:3px;
  width:fit-content;
  transition:letter-spacing .3s ease;
}
.on-dark .read-more{ color:var(--aka-bright); border-color:var(--aka-bright); }
.manifesto .read-more{ color:var(--aka-bright); border-color:var(--aka-bright); }
.read-more:hover{ letter-spacing:0.11em; }

.digest-news{
  display:flex; flex-direction:column; margin-top:8px;
}
.digest-news .row{
  display:grid; grid-template-columns:120px 1fr; gap:20px;
  padding:18px 0; border-top:1px solid var(--line);
}
.digest-news .row:last-child{ border-bottom:1px solid var(--line); }
.digest-news time{ font-family:var(--font-roman); font-size:0.9rem; color:var(--kigi); }
.digest-news .headline{ font-size:0.98rem; }
@media (max-width:560px){ .digest-news .row{ grid-template-columns:1fr; gap:6px; } }

.digest-hakata{
  display:grid; grid-template-columns:1fr 1fr; gap:clamp(30px,5vw,60px);
  align-items:center; margin-top:30px;
}
@media (max-width:760px){ .digest-hakata{ grid-template-columns:1fr; } }
.digest-hakata .frame{
  aspect-ratio:4/3; overflow:hidden; box-shadow:0 24px 50px -26px rgba(20,17,14,0.4);
}
.digest-hakata .frame img{ width:100%; height:100%; object-fit:cover; filter:saturate(0.82) contrast(1.06); }

.digest-partners-strip{
  display:flex; flex-wrap:wrap; gap:14px 34px; margin-top:30px;
}
.digest-partners-strip span, .digest-partners-strip a{
  font-size:0.92rem; color:var(--ink-soft); letter-spacing:0.02em;
  padding-bottom:6px; border-bottom:1px solid var(--line);
  transition:color .3s ease, border-color .3s ease;
}
.digest-partners-strip a:hover{
  color:var(--aka); border-color:var(--aka);
}

.digest-cta-row{
  margin-top:20px; display:flex; flex-wrap:wrap; gap:16px 40px;
}

/* ============ TIMELINE (沿革) ============ */
.timeline{ margin-top:56px; display:flex; flex-direction:column; }
.timeline .item{
  display:grid; grid-template-columns:110px 1fr; gap:26px;
  padding:26px 0; border-top:1px solid var(--line);
}
.timeline .item:last-child{ border-bottom:1px solid var(--line); }
.timeline time{ font-family:var(--font-roman); font-style:italic; font-size:1rem; color:var(--kigi); }
.timeline .text{ font-size:0.98rem; line-height:1.9; color:var(--ink-soft); }
.timeline .text strong{ color:var(--ink); font-weight:500; }
@media (max-width:560px){ .timeline .item{ grid-template-columns:1fr; gap:8px; } }

/* ============ JOURNEY (これまでの軌跡) — full-bleed photo chapters ============ */
.journey-block{
  position:relative; overflow:hidden;
  padding-top:calc(var(--section-pad) * 0.62);
  padding-bottom:calc(var(--section-pad) * 0.62);
}
.journey-block-bg{ position:absolute; inset:0; z-index:0; }
.journey-block-bg img{
  width:100%; height:100%; object-fit:cover; object-position:50% 32%;
  display:block;
  filter:saturate(0.8) contrast(1.08) brightness(0.82) sepia(0.08);
}
.journey-block-scrim{
  position:absolute; inset:0; z-index:1; pointer-events:none;
  background:linear-gradient(100deg, rgba(10,8,6,0.9) 0%, rgba(10,8,6,0.74) 45%, rgba(10,8,6,0.4) 100%);
}
.journey-block.no-photo{ background:var(--sumi); }
.journey-block.no-photo .journey-block-scrim{ display:none; }
.journey-block > .wrap{ position:relative; z-index:2; }
.journey-block .eyebrow{ color:var(--kigi-light); font-size:1.1rem; }
.journey-block h2{
  margin-top:16px;
  font-size:clamp(1.5rem,3vw,2.2rem);
  line-height:1.75;
  color:var(--washi);
  text-shadow:0 2px 20px rgba(0,0,0,0.35);
  max-width:640px;
}
.journey-block .quote{
  margin-top:16px;
  font-family:var(--font-display); font-weight:500;
  font-size:1rem; color:rgba(237,231,216,0.85);
}
.journey-block .read-more{ margin-top:26px; display:inline-block; }
.journey-block + .journey-block{ border-top:1px solid var(--line-dark); }

@media (max-width:640px){
  .journey-block{ padding-top:72px; padding-bottom:72px; }
}

.journey-closing{
  margin-top:0; padding:56px 0; text-align:center; background:var(--washi);
  font-family:var(--font-display); font-size:1.1rem; color:var(--kigi);
}

/* ============ EMBLEM BLOCK ============ */
.emblem-block{
  display:grid; grid-template-columns:220px 1fr; gap:clamp(40px,6vw,70px);
  margin-top:44px; align-items:center;
}
.emblem-photo{
  display:flex; justify-content:center;
}
.emblem-photo img{
  width:100%; max-width:200px; height:auto; display:block;
  filter:drop-shadow(0 18px 30px rgba(20,17,14,0.18));
}
@media (max-width:700px){
  .emblem-block{ grid-template-columns:1fr; gap:32px; }
  .emblem-photo img{ max-width:160px; margin:0 auto; }
}

/* ============ MESSAGE (代表者メッセージ) ============ */
.message-block{
  display:grid; grid-template-columns:220px 1fr; gap:clamp(30px,5vw,60px);
  margin-top:56px; align-items:start;
}
@media (max-width:700px){ .message-block{ grid-template-columns:1fr; } }
.message-photo{
  width:100%; aspect-ratio:3/4; background:var(--washi-deep);
  border:1px solid var(--line);
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 20px 44px -26px rgba(20,17,14,0.4);
}
.message-photo span{
  font-family:var(--font-body); font-size:0.85rem;
  color:var(--kigi); text-align:center; padding:0 14px;
}
.message-text{ font-size:1rem; line-height:2.05; color:var(--ink-soft); }
.message-sign{
  margin-top:26px; font-family:var(--font-display); font-size:1.1rem; color:var(--ink);
}

/* ============ TEAM ============ */
.team-group-label{
  margin-top:64px; margin-bottom:8px;
  font-family:var(--font-roman); font-style:italic; letter-spacing:0.08em;
  color:var(--kigi); font-size:1rem;
}
.team-group-label:first-of-type{ margin-top:52px; }
.team-grid{
  display:grid; grid-template-columns:repeat(auto-fill, minmax(200px,1fr)); gap:2px;
  background:var(--line); border:1px solid var(--line);
}
.team-card{
  background:var(--washi); padding:28px 22px;
  display:flex; flex-direction:column; gap:10px;
}
.team-card .no{ font-family:var(--font-roman); font-style:italic; color:var(--kigi-light); font-size:0.9rem; }
.team-card .name{ font-family:var(--font-display); font-size:1.15rem; color:var(--ink); }
.team-card .pos{ font-size:0.82rem; letter-spacing:0.05em; color:var(--ink-soft); }
.team-card.placeholder{ color:var(--kigi-light); font-style:italic; font-family:var(--font-roman); justify-content:center; align-items:center; text-align:center; min-height:130px; }

/* ============ TEAM: player spec-sheet cards ============ */
.team-photo-grid{
  display:grid; grid-template-columns:1fr; gap:1px;
  margin-top:48px;
  background:var(--line); border:1px solid var(--line);
}
@media (min-width:640px){
  .team-photo-grid{ grid-template-columns:1fr 1fr; }
}
@media (min-width:960px){
  .team-photo-grid{ grid-template-columns:1fr 1fr 1fr; }
}
@media (min-width:1280px){
  .team-photo-grid{ grid-template-columns:1fr 1fr 1fr 1fr; }
}
.team-card-photo{
  background:var(--washi);
  display:flex; flex-direction:column; align-items:center; text-align:center; gap:14px;
  padding:38px 26px;
}
.team-card-photo .photo-wrap{
  position:relative;
}
.team-card-photo .photo{
  width:136px; height:136px; border-radius:50%;
  padding:5px; border:1px solid var(--aka);
  box-shadow:0 16px 32px -20px rgba(20,17,14,0.4);
}
.team-card-photo .photo img{
  width:100%; height:100%; object-fit:cover; border-radius:50%; display:block;
}
.team-card-photo .photo-placeholder{
  width:136px; height:136px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  background:var(--washi-deep);
  border:1px dashed var(--kigi-light);
  position:relative;
  overflow:hidden;
}
.team-card-photo .photo-placeholder::before{
  content:"";
  position:absolute; top:28px; left:50%; transform:translateX(-50%);
  width:38px; height:38px; border-radius:50%;
  background:var(--kigi-light); opacity:0.5;
}
.team-card-photo .photo-placeholder::after{
  content:"";
  position:absolute; bottom:-14px; left:50%; transform:translateX(-50%);
  width:78px; height:78px; border-radius:50%;
  background:var(--kigi-light); opacity:0.5;
}
.team-card-photo .name{
  font-family:var(--font-display); font-weight:700; font-size:1.2rem; color:var(--ink);
  letter-spacing:0.03em;
}
.team-card-photo .position-tag{
  font-family:var(--font-body); font-size:0.8rem;
  color:var(--aka); letter-spacing:var(--ls-tight); margin-top:-8px;
}
.team-card-photo .spec-list{
  width:100%; max-width:230px;
  display:flex; flex-direction:column; gap:7px;
  padding-top:10px; border-top:1px solid var(--line);
}
.team-card-photo .spec-list .row{
  display:flex; justify-content:space-between; gap:10px;
  font-size:0.78rem;
}
.team-card-photo .spec-list .k{
  color:var(--kigi); font-family:var(--font-body); letter-spacing:var(--ls-tight);
  white-space:nowrap;
}
.team-card-photo .spec-list .v{
  color:var(--ink-soft); text-align:right;
}
.team-card-photo .feature{
  font-size:0.85rem; line-height:1.85; color:var(--ink-soft);
  max-width:230px;
  padding-top:10px; border-top:1px solid var(--line);
}
.team-card-photo .player-video{
  display:inline-flex; align-items:center; gap:7px;
  font-family:var(--font-body); font-size:0.78rem; letter-spacing:0.04em;
  color:var(--aka); border-bottom:1px solid var(--aka); padding-bottom:2px;
  margin-top:2px;
}
.team-card-photo .player-video:hover{ letter-spacing:0.08em; }

/* ============ MATCH: schedule & standings ============ */
.match-table{ width:100%; min-width:640px; border-collapse:collapse; margin-top:40px; font-size:0.92rem; }
.match-table th, .match-table td{
  text-align:left; padding:14px 12px; border-top:1px solid var(--line);
}
.match-table th{
  font-family:var(--font-body); font-weight:500;
  color:var(--kigi); letter-spacing:var(--ls-normal); font-size:0.85rem;
}
.match-table tr:last-child td{ border-bottom:1px solid var(--line); }
.match-table .tr{ overflow-x:auto; }
.table-wrap{ overflow-x:auto; }

/* ============ SPONSOR: category exclusivity grid (map style) ============ */
.exclusivity-panel{
  position:relative;
  padding-top:var(--section-pad); padding-bottom:var(--section-pad);
  border-top:1px solid var(--line-dark); border-bottom:1px solid var(--line-dark);
  overflow:hidden;
}
.exclusivity-panel-bg{ position:absolute; inset:0; z-index:0; }
.exclusivity-panel-bg img{
  width:100%; height:100%; object-fit:cover; object-position:50% 35%;
  filter:saturate(0.8) contrast(1.08) brightness(0.8) sepia(0.08);
  display:block;
}
.exclusivity-panel-scrim{
  position:absolute; inset:0; z-index:1; pointer-events:none;
  background:linear-gradient(100deg, rgba(10,8,6,0.9) 0%, rgba(10,8,6,0.74) 45%, rgba(10,8,6,0.4) 100%);
}
.exclusivity-panel > .wrap{ position:relative; z-index:2; }
.exclusivity-panel .category-progress{ background:var(--line-dark); }

.category-summary{
  display:flex; align-items:center; gap:28px; margin-top:44px; flex-wrap:wrap;
}
.category-summary .count-block{
  display:flex; align-items:baseline; gap:6px; white-space:nowrap;
}
.category-summary .count{
  font-family:var(--font-display); font-weight:700; font-size:3.2rem; color:var(--aka);
  line-height:1;
}
.category-summary .count-total{
  font-family:var(--font-roman); font-style:italic; font-size:1.3rem; color:var(--kigi);
}
.category-summary .count-label{
  font-family:var(--font-roman); font-style:italic; font-size:0.85rem; color:var(--kigi);
  margin-left:4px;
}
.category-progress{
  flex:1; min-width:160px; height:3px; background:var(--line); position:relative; overflow:hidden;
}
.on-dark .category-summary .count-total,
.on-dark .category-summary .count-label{ color:var(--kigi-light); }
.category-progress-fill{
  position:absolute; left:0; top:0; bottom:0; background:var(--aka); width:24%;
}

/* the "map": strong grid lines like a board or bingo card */
.category-grid-scroll{
  overflow-x:auto;
  margin-top:36px;
}
.category-grid{
  display:grid; grid-template-columns:repeat(5, minmax(130px, 1fr));
  gap:2px;
  background:var(--ink);
  border:2px solid var(--ink);
  min-width:680px;
}
.category-chip{
  padding:16px 14px;
  display:flex; flex-direction:column; gap:8px;
  min-height:110px;
  transition:transform .2s ease, box-shadow .2s ease;
  position:relative;
}
.category-chip .icon{ width:16px; height:16px; }
.category-chip .cat{
  font-size:0.8rem; letter-spacing:0.02em; font-family:var(--font-body); font-weight:700;
}
.category-chip .who{
  font-size:0.9rem; letter-spacing:0.01em; font-family:var(--font-display); font-weight:700;
}

/* filled: claimed territory on the map */
.category-chip.filled{
  background:var(--washi);
  justify-content:space-between;
  z-index:1;
}
.category-chip.filled .logo-plate{
  background:#fff;
  border:1px solid var(--line);
  padding:10px 14px;
  height:56px;
  display:flex; align-items:center; justify-content:center;
}
.category-chip.filled .logo-plate img{
  max-width:100%; max-height:100%; object-fit:contain; display:block;
}
.category-chip.filled .cat{ color:var(--ink); }
.category-chip.filled::before{
  content:"取得済み";
  position:absolute; top:0; right:0;
  background:var(--aka); color:var(--washi);
  font-family:var(--font-body); font-size:0.62rem; letter-spacing:var(--ls-normal); font-weight:500;
  padding:2px 8px;
}
.category-chip.filled:hover{
  transform:translateY(-3px);
  box-shadow:0 16px 30px -16px rgba(20,17,14,0.35);
}

/* open: conspicuously unclaimed — the blank the eye wants to fill in */
.category-chip.open{
  background:var(--washi-deep);
  border:1px dashed var(--kigi-light);
  align-items:center; justify-content:center; text-align:center;
  gap:8px;
}
.category-chip.open .icon{ color:var(--ink-soft); }
.category-chip.open .cat{ color:var(--ink); }
.category-chip.open .who{
  color:var(--kigi); font-family:var(--font-body); font-weight:400; font-size:0.76rem;
}
.category-chip.open:hover{
  background:var(--washi);
}
.category-chip.open:hover .cat{ color:var(--aka); }

/* ============ SCHEDULE: calendar ============ */
.cal-month{
  margin-top:44px;
}
.cal-month + .cal-month{ margin-top:64px; }
.cal-month-title{
  font-family:var(--font-roman); font-style:italic; font-size:1.15rem;
  color:var(--kigi); letter-spacing:0.03em; margin-bottom:18px;
}
.cal-grid{
  display:grid; grid-template-columns:repeat(7, 1fr);
  gap:1px; background:var(--line); border:1px solid var(--line);
}
.cal-dow{
  background:var(--washi-deep); text-align:center;
  font-family:var(--font-body); font-weight:500; font-size:0.78rem;
  color:var(--kigi); padding:8px 0;
}
.cal-day{
  background:var(--washi); min-height:74px;
  padding:6px 6px 8px;
  display:flex; flex-direction:column; gap:3px;
}
.cal-day.empty{ background:var(--washi-deep); opacity:0.35; }
.cal-daynum{
  font-family:var(--font-display); font-size:0.82rem; color:var(--ink-soft);
}
.cal-day.has-match{ background:var(--washi); }
.cal-day.has-match .cal-daynum{ color:var(--aka); font-weight:700; }
.cal-match{
  font-size:0.62rem; line-height:1.35;
  background:var(--sumi); color:var(--washi);
  padding:3px 5px; border-radius:2px;
}
.cal-match .cal-time{ display:block; font-family:var(--font-roman); font-style:italic; color:var(--kigi-light); font-size:0.6rem; }
.cal-match.training{ background:transparent; border:1px dashed var(--kigi); color:var(--ink-soft); }
.cal-match.training .cal-time{ color:var(--kigi); }
@media (max-width:640px){
  .cal-day{ min-height:64px; padding:4px 3px 6px; }
  .cal-match{ font-size:0.56rem; padding:2px 3px; }
  .cal-dow{ font-size:0.68rem; }
}

/* Detailed list beneath the calendar */
.match-list{ margin-top:48px; display:flex; flex-direction:column; }
.match-list-item{
  display:grid; grid-template-columns:120px 1fr; gap:24px;
  padding:22px 0; border-top:1px solid var(--line);
  align-items:start;
}
.match-list-item:last-child{ border-bottom:1px solid var(--line); }
.match-list-item time{
  font-family:var(--font-roman); font-style:italic; font-size:0.95rem; color:var(--kigi);
}
.match-list-item .comp{
  font-size:0.78rem; color:var(--kigi); letter-spacing:0.02em; margin-bottom:4px;
}
.match-list-item .vs{
  font-family:var(--font-display); font-weight:600; font-size:1.05rem; color:var(--ink);
}
.match-list-item .meta{
  margin-top:4px; font-size:0.85rem; color:var(--ink-soft);
}
.match-list-item .tag-training{
  display:inline-block; margin-top:6px;
  font-size:0.7rem; letter-spacing:0.03em; color:var(--kigi);
  border:1px dashed var(--kigi); padding:2px 8px;
}
.match-list-item .tag-double{
  display:inline-block; margin-left:8px;
  font-size:0.7rem; letter-spacing:0.03em; color:var(--washi);
  background:var(--aka); padding:2px 8px;
}
@media (max-width:560px){ .match-list-item{ grid-template-columns:1fr; gap:6px; } }

/* ============ SPONSOR: plans & benefits ============ */
.benefit-grid{
  display:grid; grid-template-columns:repeat(auto-fill, minmax(260px,1fr)); gap:1px;
  background:var(--line); border:1px solid var(--line); margin-top:40px;
}
.benefit-card{ background:var(--washi); padding:30px 26px; }
.benefit-card .icon{ width:30px; height:30px; color:var(--aka); margin-bottom:16px; }
.benefit-card h3{ font-size:1.02rem; font-family:var(--font-display); font-weight:600; }
.benefit-card .tagline{
  margin-top:6px; font-family:var(--font-body); font-size:0.8rem; color:var(--kigi);
}
.benefit-card p{ margin-top:10px; font-size:0.88rem; line-height:1.8; color:var(--ink-soft); }
.benefit-card ul{
  margin-top:14px; padding-top:14px; border-top:1px solid var(--line);
  list-style:none; display:flex; flex-direction:column; gap:8px;
}
.benefit-card li{
  font-size:0.82rem; line-height:1.6; color:var(--ink-soft);
  padding-left:14px; position:relative;
}
.benefit-card li::before{ content:"—"; position:absolute; left:0; color:var(--kigi); }

.plan-grid{
  display:grid; grid-template-columns:repeat(auto-fit, minmax(240px,1fr)); gap:24px;
  margin-top:44px;
}
.plan-card{
  border:1px solid var(--line); padding:34px 28px;
  display:flex; flex-direction:column; gap:16px;
  transition:border-color .3s ease, box-shadow .3s ease;
}
.plan-card:hover{ border-color:var(--aka); box-shadow:0 24px 48px -30px rgba(20,17,14,0.4); }
.plan-card.featured{ border-color:var(--aka); background:var(--washi-deep); }
.plan-card .plan-name{ font-family:var(--font-display); font-size:1.2rem; }
.plan-card .plan-price{ font-family:var(--font-roman); font-style:italic; font-size:1.3rem; color:var(--aka); }
.plan-card ul{ list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:10px; }
.plan-card li{ font-size:0.85rem; color:var(--ink-soft); padding-left:16px; position:relative; }
.plan-card li::before{ content:"—"; position:absolute; left:0; color:var(--kigi); }

.doc-download{
  margin-top:56px; display:flex; align-items:center; gap:22px; flex-wrap:wrap;
  padding:26px 28px; border:1px solid var(--line);
}
.doc-download p{ font-size:0.95rem; color:var(--ink-soft); }

.voice-block{
  margin-top:20px; padding:24px 26px; border-left:2px solid var(--aka);
  background:var(--washi-deep);
}
.voice-block p{ font-size:0.9rem; line-height:1.85; color:var(--ink-soft); font-style:italic; }
.voice-block .who{ margin-top:10px; font-size:0.8rem; color:var(--kigi); font-style:normal; }

/* ============ CONTACT tiles ============ */
.contact-grid{
  display:grid; grid-template-columns:repeat(auto-fit, minmax(240px,1fr)); gap:22px;
  margin-top:48px;
}
.contact-tile{
  border:1px solid var(--line); padding:32px 28px;
  display:flex; flex-direction:column; gap:14px;
}
.contact-tile .eyebrow{ font-size:0.82rem; }
.contact-tile p{ font-size:0.88rem; line-height:1.8; color:var(--ink-soft); }
.contact-info{
  margin-top:56px; display:flex; flex-direction:column; gap:14px;
}
.contact-info .row{ display:flex; gap:18px; font-size:0.95rem; flex-wrap:wrap; }
.contact-info .row .k{ min-width:96px; color:var(--kigi); font-family:var(--font-roman); font-style:italic; }
.contact-info .row .v{ color:var(--ink-soft); }

/* ============ COMPANY info table ============ */
.info-table{ margin-top:48px; display:flex; flex-direction:column; }
.info-table .row{
  display:grid; grid-template-columns:180px 1fr; gap:20px;
  padding:20px 0; border-top:1px solid var(--line);
}
.info-table .row:last-child{ border-bottom:1px solid var(--line); }
.info-table .k{ font-family:var(--font-body); color:var(--kigi); font-size:0.95rem; letter-spacing:var(--ls-tight); }
.info-table .v{ font-size:0.95rem; color:var(--ink-soft); line-height:1.8; }
@media (max-width:560px){ .info-table .row{ grid-template-columns:1fr; gap:6px; } }

/* ============ PLACEHOLDER NOTE ============ */
.placeholder-note{
  margin-top:18px; padding:14px 18px;
  border:1px dashed var(--line);
  font-family:var(--font-body); font-size:0.82rem;
  color:var(--kigi);
}
.on-dark .placeholder-note{ border-color:var(--line-dark); color:var(--kigi-light); }
