@charset "utf-8";

  :root {
    --bg:#FBF3EA; --surface:#FFFBF5; --surface-sunken:#F0DEC4; --border:#E5CDAE;
    --ink:#4A2E1E; --ink-soft:#775B43;
    --brand-700:#6B4226; --brand-500:#845629; --brand-300:#B98B55;
    --brand-200:#D2AE84; --brand-100:#E9D8BF; --brand-50:#F5EADA; --on-brand:#FBF3EA;
    --brand-hover:#7C5033;
    --accent:#C9776B; --status-online:#6E9B5E;
    --font-body:'Zen Maru Gothic','Hiragino Maru Gothic ProN','Yu Gothic UI','Meiryo',sans-serif;
    --font-display:'Kiwi Maru',var(--font-body);
    color-scheme: light;
  }

  * { box-sizing:border-box; }
  html { scroll-behavior:smooth; }
  body {
    margin:0; background:var(--bg); color:var(--ink);
    font-family:var(--font-body);
    font-size:15px; line-height:1.9; overflow-x:hidden;
  }
  @media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
  :focus-visible { outline:3px solid var(--accent); outline-offset:3px; }
  svg.icon { width:20px; height:20px; stroke:currentColor; fill:none; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; flex-shrink:0; }
  .shell { width:min(1120px, 100% - 40px); margin-inline:auto; }

  .btn {
    display:inline-flex; align-items:center; gap:8px;
    padding:15px 32px; border-radius:999px;
    font-family:inherit; font-weight:700; font-size:14px; line-height:1;
    border:none; cursor:pointer; text-decoration:none;
    white-space:nowrap;
  }
  .btn-primary { background:var(--brand-700); color:var(--on-brand); }
  .btn-primary:hover { background:var(--brand-hover); }
  .btn-ghost { background:transparent; color:var(--brand-700); padding:15px 14px; }
  .btn-ghost:hover { text-decoration:underline; }
  .btn-onbrand { background:var(--on-brand); color:var(--brand-700); }
  .btn-onbrand:hover { filter:brightness(0.95); }
  .btn-soft { background:var(--surface); color:var(--brand-700); }
  .btn-soft:hover { background:#FFFFFF; }
  .btn-sm { padding:11px 24px; font-size:13px; }
  .btn:disabled { opacity:0.4; cursor:default; }
  .btn:disabled:hover { filter:none; text-decoration:none; }
  .btn-primary:disabled:hover { background:var(--brand-700); }
  .btn-soft:disabled:hover { background:var(--surface); }

  .site-header {
    background:var(--surface-sunken);
    clip-path:url(#edge-bottom);
    padding:26px 0 44px;
  }
  .site-header .bar {
    display:flex; align-items:center; gap:clamp(10px,3.4vw,40px); flex-wrap:nowrap;
  }
  .site-header .bar > * { flex-shrink:0; }
  .brand-lock {
    display:flex; align-items:center; gap:12px; text-decoration:none; color:inherit;
    font-family:var(--font-display); font-weight:500;
    font-size:21px; letter-spacing:0.05em; line-height:1; white-space:nowrap;
  }
  .site-header .brand-lock { margin-right:auto; }
  .brand-lock .mark {
    width:34px; height:34px; border-radius:12px; background:var(--brand-700); color:var(--on-brand);
    display:flex; align-items:center; justify-content:center;
    font-family:var(--font-display); font-weight:500; font-size:16px;
    letter-spacing:0; flex-shrink:0; overflow:hidden;
  }
  .brand-lock .mark img { width:100%; height:100%; object-fit:cover; display:block; }
  .site-header nav { display:flex; gap:clamp(13px,2.6vw,34px); flex-wrap:nowrap; }
  .site-header nav a {
    font-size:13px; font-weight:500; letter-spacing:0.11em;
    color:var(--ink-soft); text-decoration:none; white-space:nowrap;
  }
  @media (max-width:760px) {
    .brand-lock { font-size:18px; gap:9px; letter-spacing:0.03em; }
    .brand-lock .mark { width:30px; height:30px; border-radius:10px; }
    .site-header nav a { font-size:12px; letter-spacing:0.04em; }
    .site-header .btn-sm { padding:10px 16px; font-size:12px; }
  }
  @media (max-width:470px) {
    .site-header .brand-lock { font-size:16.5px; }
    .site-header .brand-lock .mark { width:28px; height:28px; }
    .site-header nav a { font-size:11.5px; }
    .site-header .btn-sm { padding:9px 14px; font-size:11.5px; }
  }
  @media (max-width:370px) {
    .site-header .brand-lock { font-size:0; gap:0; }
    .site-header .brand-lock .mark { font-size:14px; }
  }
  .site-header nav a:hover { color:var(--brand-700); }
  .site-header nav a[aria-current="page"] { color:var(--brand-700); font-weight:700; }
  @media (max-width:539px) {
    .site-header .bar { flex-wrap:wrap; row-gap:13px; }
    .site-header nav {
      order:3; flex-basis:100%; justify-content:center;
      gap:clamp(20px,7vw,40px);
    }
  }
  .site-header .btn { position:relative; top:-1px; }

  .doc:not(.bare) section:not(.bare),
  .invite-main, .sub-card, .credit-item, .speaker, .faq details {
    position:relative; z-index:0;
  }
  .doc:not(.bare) section:not(.bare)::before,
  .invite-main::before, .sub-card::before, .credit-item::before,
  .speaker::before, .faq details::before {
    content:""; position:absolute; z-index:-1; pointer-events:none;
    background:var(--surface-sunken);
    border-radius:34px;
    inset:-48px -6px;
  }
  .sub-card::before, .credit-item::before, .speaker::before { inset:-18px -6px; }
  .invite-main::before { inset:-34px -6px; }
  .faq details::before { inset:-26px -6px; }

  .sub-card::before                          { clip-path:url(#bl-sq1); }
  .sub-card:nth-child(3n+2)::before          { clip-path:url(#bl-sq2); }
  .sub-card:nth-child(3n+3)::before          { clip-path:url(#bl-sq3); }

  .page-stage > .shape                       { clip-path:url(#bl-md1); }
  .doc:not(.bare) section:not(.bare)::before        { clip-path:url(#bl-pr1); }
  .doc:not(.bare) section:nth-of-type(3n+2)::before { clip-path:url(#bl-pr2); }
  .doc:not(.bare) section:nth-of-type(3n+3)::before { clip-path:url(#bl-pr3); }

  .faq details::before, .speaker::before,
  .credit-item::before                       { clip-path:url(#bl-wd1); }
  .invite-main::before                       { clip-path:url(#bl-pr1); }
  .faq details:nth-child(3n+2)::before,
  .speaker:nth-child(3n+2)::before,
  .credit-item:nth-child(3n+2)::before       { clip-path:url(#bl-wd2); }
  .faq details:nth-child(3n+3)::before,
  .speaker:nth-child(3n+3)::before,
  .credit-item:nth-child(3n+3)::before       { clip-path:url(#bl-wd3); }

  @media (max-width:760px) {
    .page-stage > .shape                     { clip-path:url(#bl-sq1); }
    .faq details::before,
    .credit-item::before                     { clip-path:url(#bl-md1); }
    .faq details:nth-child(3n+2)::before,
    .credit-item:nth-child(3n+2)::before     { clip-path:url(#bl-md2); }
    .faq details:nth-child(3n+3)::before,
    .credit-item:nth-child(3n+3)::before     { clip-path:url(#bl-md3); }
    .faq details[open]::before                 { clip-path:url(#bl-fq1); }
    .faq details[open]:nth-child(3n+2)::before { clip-path:url(#bl-fq2); }
    .faq details[open]:nth-child(3n+3)::before { clip-path:url(#bl-fq3); }
  }
  .stage { position:relative; z-index:1; }
  .stage > .shape {
    position:absolute; z-index:0; pointer-events:none;
    inset:-7% 0 -6%;
    border-radius:999px;
  }

  .hero-stage { margin:72px 0 clamp(120px,20vw,292px); }
  .hero-stage > .shape { background:var(--surface-sunken); clip-path:url(#blob-hero); }
  .hero {
    position:relative; z-index:1;
    padding:clamp(64px,9vw,108px) clamp(48px,8vw,96px);
    display:flex; flex-direction:column; align-items:center; text-align:center;
  }
  .hero-copy { max-width:100%; }
  .hero h1 {
    font-family:var(--font-display); font-weight:500;
    font-size:min(6.2vw,50px); line-height:1.42; margin:0 0 22px;
    letter-spacing:0.01em;
  }
  .hero h1 .ln { display:block; white-space:nowrap; }
  .hero h1 em { font-style:normal; color:var(--brand-700); }
  .hero p.sub { color:var(--ink-soft); font-size:14.5px; line-height:2.1; margin:0 auto 32px; max-width:30em; }
  .hero .cta-row { display:flex; gap:10px; flex-wrap:wrap; align-items:center; justify-content:center; margin-bottom:28px; }
  .hero .roster { display:flex; gap:12px; align-items:center; flex-wrap:wrap; justify-content:center; }
  .hero .stack { display:flex; }
  .hero .stack .avatar { margin-left:-11px; }
  .hero .stack .avatar:first-child { margin-left:0; }
  .hero .avatar {
    width:38px; height:38px; border-radius:50%; border:3px solid var(--surface-sunken);
    display:flex; align-items:center; justify-content:center; overflow:hidden;
    color:var(--on-brand); font-size:10.5px; font-weight:700;
    background:var(--brand-50); box-sizing:border-box;
  }
  .hero .avatar img { width:100%; height:100%; object-fit:cover; display:block; }
  .hero .roster .note { font-size:12px; color:var(--ink-soft); line-height:1.7; }
  .hero .roster .note b { display:block; color:var(--ink); font-size:12.5px; }

  section { margin-bottom:104px; }

  .sec-head { text-align:center; max-width:36em; margin:0 auto 46px; }
  .sec-head .eyebrow { font-size:11px; font-weight:700; letter-spacing:0.18em; color:var(--brand-500); margin-bottom:12px; }
  .sec-head h2 {
    font-family:var(--font-display); font-weight:500;
    font-size:clamp(23px,3.6vw,32px); margin:0 0 14px; text-wrap:balance;
  }
  .sec-head p { color:var(--ink-soft); font-size:14px; margin:0; line-height:2; }

  .features { display:flex; gap:26px; flex-wrap:wrap; padding:12px 0; }
  .feature {
    flex:1 1 260px; min-height:290px; box-sizing:border-box;
    background:var(--surface-sunken);
    padding:54px 46px; display:flex; flex-direction:column;
    align-items:center; justify-content:center; text-align:center;
  }
  .feature.hi { background:var(--brand-700); color:var(--on-brand); }
  .feature.s1 { clip-path:url(#blob-a); }
  .feature.s2 { clip-path:url(#blob-b); }
  .feature.s3 { clip-path:url(#blob-c); }
  .feature svg.icon { color:var(--brand-700); width:26px; height:26px; margin-bottom:14px; }
  .feature.hi svg.icon { color:var(--on-brand); }
  .feature h3 { font-size:15.5px; font-weight:700; margin:0 0 10px; }
  .feature p { margin:0; font-size:13px; line-height:1.85; color:var(--ink-soft); max-width:15em; }
  .feature.hi p { color:var(--on-brand); opacity:0.85; }

  .stats {
    display:flex; flex-wrap:wrap; justify-content:center;
    gap:clamp(32px,5vw,60px) clamp(24px,4vw,54px);
    padding:8px 0;
  }
  .stat { flex:0 1 190px; text-align:center; }
  .stat .fig {
    display:flex; align-items:baseline; justify-content:center; gap:4px;
    margin-bottom:12px;
  }
  .stat .num {
    font-family:var(--font-display); font-weight:500; line-height:1;
    font-size:clamp(42px,6.5vw,60px); color:var(--brand-700);
  }
  .stat .unit {
    font-family:var(--font-display); font-weight:500;
    font-size:clamp(14px,1.8vw,17px); color:var(--brand-500);
  }
  .stat .label { font-size:13.5px; font-weight:700; margin-bottom:7px; }
  .stat p { margin:0 auto; font-size:12px; color:var(--ink-soft); line-height:1.8; max-width:15em; }
  @media (max-width:700px) {
    .stats {
      display:grid; grid-template-columns:repeat(2,minmax(0,1fr));
      gap:clamp(26px,6vw,40px) clamp(10px,3vw,20px);
    }
    .stat { flex:none; }
    .stat .num { font-size:clamp(32px,9vw,44px); }
    .stat .label { font-size:12.5px; }
    .stat p { font-size:11.5px; line-height:1.75; }
  }
  .bot-stage { margin-bottom:34px; }
  @media (max-width:980px) { .bot-stage { margin-bottom:88px; } }
  .bot-stage > .shape { background:var(--surface-sunken); clip-path:url(#blob-wide); }
  .bot-main {
    position:relative; z-index:1;
    padding:clamp(52px,8vw,80px) clamp(56px,9vw,100px);
    display:flex; align-items:center; justify-content:center; gap:clamp(28px,5vw,56px);
    flex-wrap:wrap; text-align:left;
  }
  .bot-slot {
    border-radius:50%; overflow:hidden; flex-shrink:0; box-sizing:border-box;
    display:flex; align-items:center; justify-content:center;
    color:var(--on-brand); font-family:var(--font-display); font-weight:500;
    background:var(--brand-50); border:3px solid var(--brand-700);
  }
  .bot-slot img { width:100%; height:100%; object-fit:cover; display:block; }
  .bot-main .bot-slot { width:132px; height:132px; font-size:38px; border-width:4px; }
  .bot-main .body { max-width:30em; }
  .bot-main .role { font-size:11px; font-weight:700; letter-spacing:0.14em; color:var(--brand-500); margin-bottom:8px; }
  .bot-main h3 { font-family:var(--font-display); font-weight:500; font-size:clamp(20px,3vw,26px); margin:0 0 12px; }
  .bot-main p { margin:0 0 20px; font-size:13.5px; color:var(--ink-soft); line-height:1.95; }

  .subs { display:flex; gap:22px; flex-wrap:wrap; }
  .bot-sub {
    flex:1 1 200px; min-height:250px; box-sizing:border-box;
    background:var(--brand-50); padding:44px 32px;
    display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center;
  }
  .bot-sub.s1 { clip-path:url(#blob-b); }
  .bot-sub.s2 { clip-path:url(#blob-c); }
  .bot-sub.s3 { clip-path:url(#blob-a); }
  .bot-sub.s4 { clip-path:url(#blob-s); }
  .bot-sub .bot-slot { width:74px; height:74px; font-size:22px; margin-bottom:16px; }
  .bot-sub.s1 .bot-slot { border-color:var(--brand-500); }
  .bot-sub.s2 .bot-slot { border-color:var(--brand-300); }
  .bot-sub.s3 .bot-slot { border-color:var(--brand-200); }
  .bot-sub.s4 .bot-slot { border-color:var(--brand-100); }
  .bot-sub h4 { margin:0 0 6px; font-size:14px; font-weight:700; }
  .bot-sub p { margin:0; font-size:12px; color:var(--ink-soft); line-height:1.8; max-width:14em; }
  @media (max-width:700px) {
    .subs { gap:12px; }
    .bot-sub {
      flex:1 1 100%; min-height:0; flex-direction:row; justify-content:flex-start;
      align-items:center; text-align:left; gap:14px; padding:18px clamp(24px,6.5vw,50px);
    }
    .bot-sub .bot-slot { width:54px; height:54px; margin-bottom:0; }
    .bot-sub .txt { flex:1 1 auto; min-width:0; }
    .bot-sub p { font-size:11.5px; }
    .bot-sub p { max-width:none; }
    .bot-sub .invite { margin-top:0; flex:none; }
    .bot-sub.s1 { clip-path:url(#bl-wd1); }
    .bot-sub.s2 { clip-path:url(#bl-wd2); }
    .bot-sub.s3 { clip-path:url(#bl-wd3); }
    .bot-sub.s4 { clip-path:url(#bl-wd2); }
  }

  @media (max-width:360px) {
    .hero .cta-row { gap:4px; }
    .hero { padding-bottom:clamp(72px,18vw,96px); }
    .hero .cta-row .btn-primary { padding:12px 13px; font-size:12px; }
    .hero .cta-row .btn-ghost { padding:12px 4px; font-size:12px; }
    .bot-sub.s1 { clip-path:url(#bl-md1); }
    .bot-sub.s2 { clip-path:url(#bl-md2); }
    .bot-sub.s3 { clip-path:url(#bl-md3); }
    .bot-sub.s4 { clip-path:url(#bl-md2); }
    .bot-sub .bot-slot { width:46px; height:46px; }
    .bot-sub h4 { font-size:13px; }
    .bot-sub p { font-size:11.5px; }
  }

  code {
    font-family:inherit; font-weight:700; font-size:0.94em;
    background:var(--brand-50); color:var(--brand-700);
    padding:2px 9px; border-radius:9px;
    white-space:nowrap;
  }
  .steps { display:flex; gap:26px; flex-wrap:wrap; }
  .step { flex:1 1 240px; text-align:center; padding:0 12px; }
  .step .num {
    width:52px; height:52px; border-radius:50%; margin:0 auto 18px;
    background:var(--brand-700); color:var(--on-brand);
    display:flex; align-items:center; justify-content:center;
    font-family:var(--font-display); font-weight:500; font-size:21px;
  }
  .step h3 { font-size:15px; font-weight:700; margin:0 0 10px; }
  .step p { margin:0; font-size:13px; color:var(--ink-soft); line-height:1.9; }

  .faq { max-width:42em; margin:0 auto; }
  .faq details { padding:14px 44px; margin-bottom:64px; }
  .faq summary {
    list-style:none; cursor:pointer; padding:20px 0;
    font-size:14.5px; font-weight:700; line-height:1.8;
    display:flex; align-items:flex-start; gap:12px;
  }
  .faq summary::-webkit-details-marker { display:none; }
  .faq summary::after {
    content:"＋"; margin-left:auto; flex-shrink:0;
    color:var(--brand-300); font-weight:700;
    transition:transform .18s ease;
  }
  .faq details[open] summary::after { transform:rotate(45deg); }
  @media (hover:hover) {
    @media (hover:hover) { .faq summary:hover::after { color:var(--brand-700); } }
  }
  .faq .a {
    margin:0; padding:4px 0 22px; font-size:13.5px; line-height:2;
    color:var(--ink-soft);
  }
  .faq .a code { font-size:0.92em; }
  @media (prefers-reduced-motion:reduce) { .faq summary::after { transition:none; } }
  .cta-stage > .shape { background:var(--brand-700); clip-path:url(#blob-wide); }
  .cta {
    position:relative; z-index:1; color:var(--on-brand);
    padding:clamp(56px,9vw,84px) clamp(60px,10vw,108px);
    display:flex; flex-direction:column; align-items:center; text-align:center; gap:20px;
  }
  .cta h2 { font-family:var(--font-display); font-weight:500; font-size:clamp(21px,3.2vw,28px); margin:0 0 6px; text-wrap:balance; }
  .cta p { margin:0; font-size:13.5px; opacity:0.85; }

  .site-footer {
    background:var(--brand-700); color:var(--on-brand);
    clip-path:url(#edge-top);
    padding:clamp(96px,12vw,140px) 0 clamp(44px,6vw,64px);
    margin-top:20px;
  }
  .site-footer .inner { display:flex; flex-direction:column; align-items:center; text-align:center; gap:18px; }
  .site-footer .brand-lock .mark { background:var(--on-brand); color:var(--brand-700); }
  .site-footer .tagline { margin:0; font-size:13px; opacity:0.8; max-width:24em; line-height:1.9; }
  .site-footer nav { display:flex; flex-direction:column; align-items:center; gap:12px; margin-top:4px; }
  .site-footer nav .row { display:flex; gap:24px; flex-wrap:wrap; justify-content:center; }
  .site-footer nav a { font-size:13px; font-weight:700; color:var(--on-brand); opacity:0.85; text-decoration:none; }
  .site-footer nav a:hover { opacity:1; text-decoration:underline; }
  .site-footer .credit { font-size:11.5px; opacity:0.72; max-width:34em; line-height:1.85; margin:6px 0 0; }
  .site-footer .copy { font-size:11.5px; opacity:0.72; margin-top:4px; }

  .bot-sub .invite {
    margin-top:14px; font-size:12px; font-weight:700;
    color:var(--brand-700); text-decoration:none;
    border-bottom:1.5px solid var(--brand-300); padding-bottom:2px;
  }
  .bot-sub .invite:hover { border-bottom-color:var(--brand-700); }

  .page-stage { margin:64px 0 72px; }
  @media (max-width:760px) { .page-stage { margin:88px 0 104px; } }
  .page-stage > .shape { background:var(--surface-sunken); }
  .page-head {
    position:relative; z-index:1; text-align:center;
    padding:clamp(56px,7.5vw,92px) clamp(48px,8vw,96px);
  }
  .page-head .eyebrow { font-size:11px; font-weight:700; letter-spacing:0.18em; color:var(--brand-500); margin-bottom:14px; }
  .page-head h1 {
    font-family:var(--font-display); font-weight:500;
    font-size:clamp(26px,4.4vw,38px); margin:0 0 16px; text-wrap:balance;
  }
  .page-head p { color:var(--ink-soft); font-size:14px; margin:0 auto; max-width:34em; line-height:2; }
  .page-head .updated { font-size:12px; color:var(--ink-soft); margin-top:18px; }
  .page-head .head-cta { margin-top:28px; }

  .page-stage.bare { margin:56px 0 60px; }
  .page-stage.bare > .shape { display:none; }
  .page-stage.bare .page-head { padding:8px 0 0; }

  .doc { max-width:44em; margin:0 auto 104px; }
  .doc section { padding:56px clamp(50px,7vw,68px) 50px; margin-bottom:110px; }
  .doc section.bare { padding:0; margin-bottom:110px; }
  .doc.bare { max-width:38em; }
  .doc.bare section { padding:0; margin-bottom:64px; }
  .doc.bare section:last-child { margin-bottom:0; }
  .doc h2 {
    font-family:var(--font-display); font-weight:500;
    font-size:19px; margin:0 0 16px; padding-bottom:2px;
  }
  .doc h3 { font-size:14.5px; font-weight:700; margin:24px 0 8px; }
  .doc p { font-size:14px; line-height:2.05; color:var(--ink-soft); margin:0 0 14px; }
  .doc ul, .doc ol { font-size:14px; line-height:2.05; color:var(--ink-soft); margin:0 0 14px; padding-left:1.5em; }
  .doc li { margin-bottom:6px; }
  .doc li::marker { color:var(--brand-300); }
  .doc a:not(.btn):not(.speaker) { color:var(--brand-700); }
  .doc .note {
    font-size:14px; line-height:2.05; color:var(--ink-soft); margin:0 0 14px;
  }
  .doc .note strong { color:var(--ink); }

  .invite-main {
    padding:clamp(52px,6.6vw,68px) clamp(50px,7vw,76px);
    display:flex; align-items:center; gap:clamp(24px,4vw,42px);
    flex-wrap:wrap; margin-bottom:56px;
  }
  .invite-main .bot-slot { width:106px; height:106px; border-width:4px; }
  .invite-main .body { flex:1 1 250px; }
  .invite-main .role { font-size:11px; font-weight:700; letter-spacing:0.14em; color:var(--brand-500); margin-bottom:7px; }
  .invite-main h2 { font-family:var(--font-display); font-weight:500; font-size:clamp(20px,3vw,25px); margin:0 0 10px; }
  .invite-main p { margin:0; font-size:13.5px; color:var(--ink-soft); line-height:1.95; }
  .invite-main .btn { flex-shrink:0; }

  .invite-note {
    text-align:center; font-size:12.5px; color:var(--ink-soft);
    margin:0 0 40px; line-height:1.9;
  }

  .sub-head { text-align:center; margin:0 0 24px; }
  .sub-head h2 { font-family:var(--font-display); font-weight:500; font-size:19px; margin:0 0 8px; }
  .sub-head p { margin:0; font-size:13px; color:var(--ink-soft); line-height:1.9; }

  .sub-grid {
    display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
    gap:44px; margin-bottom:84px;
  }
  .sub-card {
    padding:42px 30px; text-align:center;
    display:flex; flex-direction:column; align-items:center;
  }
  .sub-card .bot-slot { width:64px; height:64px; margin-bottom:14px; }
  .sub-card .role { font-size:10px; font-weight:700; letter-spacing:0.13em; color:var(--brand-500); margin-bottom:6px; }
  .sub-card h3 { font-family:var(--font-display); font-weight:500; font-size:15px; margin:0 0 8px; }
  .sub-card p { margin:0 0 18px; font-size:12px; color:var(--ink-soft); line-height:1.8; }
  .sub-card .btn { margin-top:auto; }

  @media (max-width:620px) {
    .invite-main { flex-direction:column; text-align:center; }
    .invite-main .btn { width:100%; justify-content:center; }
  }

  .speaker-list {
    display:grid; grid-template-columns:repeat(auto-fill,minmax(195px,1fr));
    gap:44px; margin:34px 0;
  }
  .speaker {
    display:flex; align-items:center; justify-content:space-between; gap:10px;
    padding:20px 28px; min-height:64px; box-sizing:border-box;
    color:var(--ink); text-decoration:none;
    font-size:13.5px; font-weight:700; line-height:1.55;
  }
  a.speaker::after { content:"\203A"; color:var(--brand-300); font-weight:700; flex-shrink:0; }
  a.speaker:hover::before { background:var(--brand-100); }
  a.speaker:hover::after { color:var(--brand-700); }
  .credit-list { display:flex; flex-direction:column; gap:44px; }
  .credit-item { padding:34px 44px; }
  .credit-item h3 { margin:0 0 6px; font-size:14.5px; font-weight:700; }
  .credit-item p { margin:0; font-size:13px; color:var(--ink-soft); line-height:1.9; }
  .credit-item a:not(.btn) { color:var(--brand-700); }

  .ke-embed { margin:30px 0 12px; }
  .ke-embed iframe {
    display:block; width:100%; height:auto; aspect-ratio:16/9;
    border:0; border-radius:20px; background:var(--ink);
  }

  .doc .ke-cap {
    font-size:12.5px; line-height:1.9; color:var(--ink-soft);
    text-align:center; margin:14px auto 26px; max-width:30em;
  }

  .ke-ab {
    display:grid; grid-template-columns:repeat(auto-fit,minmax(224px,1fr));
    gap:36px; margin:30px 0 22px;
  }
  .ke-tag {
    display:inline-block; font-size:11px; font-weight:700; letter-spacing:0.08em;
    padding:5px 14px; border-radius:999px;
    background:var(--brand-200); color:var(--brand-700);
  }
  .ke-ab .ke-card:nth-child(2) .ke-tag { background:var(--brand-700); color:var(--on-brand); }
  .doc .ke-card h4 {
    font-family:var(--font-display); font-weight:500; font-size:15.5px;
    margin:12px 0 8px;
  }
  .doc .ke-card p { font-size:13px; line-height:1.95; color:var(--ink-soft); margin:0 0 14px; }

  .ke-solo { margin:28px 0 12px; }

  .ke-dl { display:flex; flex-wrap:wrap; gap:14px; margin:26px 0 14px; }
  .doc .ke-dlnote { font-size:12px; color:var(--ink-soft); margin:0 0 18px; }

  .ke-stats {
    display:grid; grid-template-columns:repeat(auto-fit,minmax(132px,1fr));
    gap:28px; margin:28px 0 26px;
  }
  .ke-stat { text-align:center; }
  .ke-stat-v {
    display:block; font-family:var(--font-display); font-weight:500;
    font-size:18px; line-height:1.4; color:var(--brand-700);
  }
  .ke-stat-l {
    display:block; font-size:11.5px; line-height:1.7; color:var(--ink-soft);
    margin-top:6px;
  }

  .ke-card audio, .ke-solo audio { display:block; width:100%; height:40px; }
  audio::-webkit-media-controls-enclosure { background-color:var(--surface) !important; }
  audio::-webkit-media-controls-panel { background-color:var(--surface) !important; }

  .toc { display:none; }
  @media (min-width:1160px) {
    .doc-layout {
      display:grid; grid-template-columns:1fr minmax(0,38em) 1fr; column-gap:40px;
      align-items:start;
    }
    .doc-layout > .doc { grid-column:2; }
    .toc {
      display:block; grid-column:3; justify-self:start;
      max-width:200px;
      position:sticky; top:28px;
    }
    .toc-title {
      font-family:var(--font-display); font-weight:500; font-size:12px;
      letter-spacing:0.12em; color:var(--brand-500); margin:0 0 14px;
    }
    .toc ol { list-style:none; margin:0; padding:0; }
    .toc li { margin-bottom:11px; }
    .toc a {
      display:block; position:relative; padding-left:14px;
      font-size:12px; line-height:1.7; color:var(--ink-soft); text-decoration:none;
    }
    .toc a:hover { color:var(--brand-700); }
    .toc a::before {
      content:""; position:absolute; left:0; top:0.62em;
      width:6px; height:6px; border-radius:999px;
      background:var(--brand-300); opacity:0;
    }
    .toc a.is-current { color:var(--brand-700); font-weight:700; }
    .toc a.is-current::before { opacity:1; }
  }

  @media (max-width:980px) {
    .bot-stage > .shape,
    .cta-stage > .shape { clip-path:url(#blob-s); }
    .hero-stage { margin-top:118px; }
    .hero { padding:clamp(48px,9vw,84px) clamp(16px,6.4vw,72px); text-align:center; }
    .hero-copy { flex-basis:100%; }
    .hero .cta-row, .hero .roster { justify-content:center; }
    .hero .roster .note { text-align:center; }
    .bot-main { padding:clamp(52px,9vw,76px) clamp(44px,8vw,72px); text-align:center; }
    .cta { padding:clamp(56px,10vw,84px) clamp(44px,8vw,72px); }
    .page-head { padding:clamp(48px,9vw,84px) clamp(22px,6.4vw,72px); }
  }
  @media (max-width:760px) {
    .stage > .shape { inset:-11% 0 -12%; }
    .hero-stage > .shape { inset:-17% 0 -20%; }
    .hero      { padding:clamp(64px,14vw,96px) clamp(16px,6.4vw,72px); }
    .bot-main  { padding:clamp(66px,13vw,88px) clamp(34px,10vw,72px); }
    .cta       { padding:clamp(66px,13vw,92px) clamp(34px,11vw,108px); }
    .page-head { padding:clamp(64px,14vw,96px) clamp(22px,6.4vw,72px); }
  }
  @media (max-width:430px) {
    .btn:not(.btn-sm):not(.btn-ghost) { padding:14px 22px; font-size:13.5px; }
  }
  @media (max-width:620px) {
    .faq details::before { inset:-30px -6px; }
    .faq details { padding:26px 30px; margin-bottom:70px; }
  }
  @media (max-width:344px) {
    .hero .cta-row { margin-bottom:34px; gap:3px; }
    .hero .cta-row .btn-primary { padding:11px 11px; font-size:11.5px; }
    .hero .cta-row .btn-ghost { padding:11px 3px; font-size:11.5px; }
  }

  @media (max-width:300px) {
    .hero .cta-row { flex-direction:column; align-items:stretch; gap:8px; }
    .hero .cta-row .btn { justify-content:center; }
    .stage > .shape { inset:-14% 0 -15%; }
    .hero-stage > .shape { inset:-17% 0 -16%; }
    .btn:not(.btn-sm):not(.btn-ghost) { padding:13px 18px; font-size:12.5px; }
  }
  @media (max-width:430px) {
    .hero .cta-row { flex-wrap:nowrap; gap:6px; justify-content:center; }
    .hero .cta-row .btn { justify-content:center; }
    .hero .cta-row .btn-primary { padding:13px 16px; font-size:12.5px; }
    .hero .cta-row .btn-ghost { padding:13px 6px; font-size:12.5px; }
  }
  @media (max-width:700px) {
    section { margin-bottom:76px; }
    .site-header { padding:20px 0 38px; }
  }
  @media (max-width:430px) { section { margin-bottom:112px; } }

  @media (max-width:700px) {
    .hero .roster { display:none; }
    .hero-stage > .shape { inset:-17% 0 -17%; }
    .hero { padding-bottom:clamp(56px,13vw,80px); }

    .features { gap:14px; }
    .feature {
      flex:1 1 100%; min-height:0;
      flex-direction:row; align-items:center; justify-content:flex-start;
      text-align:left; gap:16px; padding:26px clamp(28px,7vw,44px);
    }
    .feature svg.icon { margin-bottom:0; flex-shrink:0; width:24px; height:24px; }
    .feature .txt { flex:1 1 auto; min-width:0; }
    .feature h3 { margin:0 0 4px; font-size:14.5px; }
    .feature p { font-size:12.5px; line-height:1.8; max-width:none; }
    .feature.s1 { clip-path:url(#bl-md1); }
    .feature.s2 { clip-path:url(#bl-md2); }
    .feature.s3 { clip-path:url(#bl-md3); }

    .steps { gap:14px; }
    .step {
      flex:1 1 100%; display:grid; grid-template-columns:auto minmax(0,1fr);
      column-gap:16px; row-gap:2px; align-items:center; text-align:left; padding:0;
    }
    .step .num { grid-row:1 / span 2; width:44px; height:44px; font-size:18px; margin:0; }
    .step h3 { align-self:end; margin:0; }
    .step p { align-self:start; font-size:12.5px; line-height:1.85; }
  }

  @media (max-width:700px) and (min-width:361px) {
    .bot-main {
      flex-wrap:nowrap; justify-content:flex-start; text-align:left;
      gap:clamp(16px,4vw,24px);
      padding:clamp(34px,8vw,52px) clamp(30px,8vw,52px) clamp(46px,11vw,64px);
    }
    .bot-sub h4 { white-space:nowrap; }
    .bot-main .bot-slot { width:clamp(72px,19vw,96px); height:clamp(72px,19vw,96px); border-width:3px; }
    .bot-main .body { max-width:none; min-width:0; }
    .bot-main h3 { margin-bottom:6px; }
    .bot-main p { margin-bottom:14px; font-size:12.5px; line-height:1.85; }
    .bot-main .btn { display:flex; width:100%; justify-content:center;
                     padding:12px 14px; font-size:12.5px; }
    .bot-stage > .shape { clip-path:url(#blob-hero); inset:-13% -2.5% -14%; }
  }

  @media (max-width:360px) {
    .hero-stage > .shape { inset:-17% -3% -17%; }
  }

  @media (max-width:430px) {
    .invite-main {
      flex-direction:row; flex-wrap:wrap; text-align:left; align-items:center;
      gap:clamp(14px,4vw,22px); padding:clamp(30px,7vw,44px) clamp(30px,8vw,52px) clamp(40px,10vw,56px);
    }
    .invite-main .bot-slot { width:clamp(66px,18vw,88px); height:clamp(66px,18vw,88px); border-width:3px; }
    .invite-main .body { flex:1 1 150px; min-width:0; }
    .invite-main h2 { margin-bottom:6px; }
    .invite-main p { font-size:12.5px; line-height:1.85; }
    .invite-main .btn { flex:1 1 100%; display:flex; width:100%; justify-content:center;
                        padding:12px 14px; font-size:12.5px; }

    .sub-grid { gap:12px; }
    .sub-card {
      flex-direction:row; justify-content:flex-start; align-items:center;
      text-align:left; gap:14px; padding:21px clamp(30px,7.8vw,52px);
    }
    .sub-card .bot-slot { width:48px; height:48px; margin-bottom:0; flex-shrink:0; }
    .sub-card .txt { flex:1 1 auto; min-width:0; }
    .sub-card .role { display:none; }
    .sub-card h3 { margin:0 0 3px; font-size:14px; }
    .sub-card p { margin:0; font-size:11.5px; line-height:1.8; }
    .sub-card .btn { margin-top:0; flex:none; }
    .sub-card::before { inset:0 -12px; }
  }

  @media (max-width:430px) {
    .sub-card { clip-path:url(#bl-wd1); }
    .sub-card:nth-child(3n+2) { clip-path:url(#bl-wd2); }
    .sub-card:nth-child(3n+3) { clip-path:url(#bl-wd3); }
  }
  @media (max-width:360px) {
    .sub-card { clip-path:url(#bl-sq1); }
    .sub-card:nth-child(3n+2) { clip-path:url(#bl-sq2); }
    .sub-card:nth-child(3n+3) { clip-path:url(#bl-sq3); }
  }

  @media (max-width:700px) {
    .speaker::before { inset:-8px -4px; }
    .speaker-list { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px 14px; margin:26px 0; }
    .speaker { padding:14px 16px; min-height:54px; font-size:12.5px; }
  }
