:root{
  --coai-navy-950:#121A2E;--coai-navy-900:#1B2A4A;--coai-navy-700:#2E4270;--coai-navy-100:#E6EAF2;
  --coai-teal-700:#0F7A5A;--coai-teal-500:#1D9E75;--coai-teal-300:#5FD3AE;--coai-teal-50:#E3F4EE;
  --coai-spark:#F2B33D;
  --coai-ink:#3A4357;--coai-muted:#5B6475;--coai-line:#D9DEE6;--coai-mist:#F4F6F8;--coai-white:#FFFFFF;
  --coai-font-ja:"Zen Kaku Gothic New","Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic","Meiryo",sans-serif;
  --coai-font-latin:"Outfit","Helvetica Neue",Arial,sans-serif;
  --header-h:68px;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 12px)}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--coai-white);color:var(--coai-ink);font-family:var(--coai-font-ja);font-size:16px;line-height:1.9;-webkit-font-smoothing:antialiased}
img,svg{max-width:100%;display:block}
a{color:var(--coai-teal-700)}
:focus-visible{outline:2px solid var(--coai-teal-500);outline-offset:3px;border-radius:4px}
h1,h2,h3{color:var(--coai-navy-900);line-height:1.45;margin:0;font-weight:700}
p{margin:0 0 1em}
.wrap{max-width:1120px;margin:0 auto;padding:0 24px}
.narrow{max-width:760px}
.latin{font-family:var(--coai-font-latin)}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-9999px;top:8px;background:var(--coai-navy-900);color:#fff;padding:8px 14px;border-radius:6px;z-index:100}
.skip:focus{left:12px}

/* header */
.site-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.96);border-bottom:1px solid var(--coai-line)}
.site-header .wrap{display:flex;align-items:center;gap:28px;height:var(--header-h)}
.brand{display:flex;align-items:center;flex-shrink:0}
.brand img{height:36px;width:auto}
.gnav{margin-left:auto}
.gnav ul{display:flex;gap:26px;list-style:none;margin:0;padding:0}
.gnav a{color:var(--coai-muted);text-decoration:none;font-size:.92rem}
.gnav a:hover{color:var(--coai-navy-900)}
@media (max-width:860px){.gnav{display:none}.site-header .btn{margin-left:auto}}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:999px;padding:13px 28px;font:inherit;font-weight:500;font-size:.98rem;line-height:1.4;text-decoration:none;border:2px solid transparent;cursor:pointer;transition:background .15s,color .15s,border-color .15s}
.btn-sm{padding:8px 18px;font-size:.88rem}
.btn-primary{background:var(--coai-teal-700);color:#fff}
.btn-primary:hover{background:#0B6349}
.btn-secondary{background:transparent;color:var(--coai-navy-900);border-color:var(--coai-navy-900)}
.btn-secondary:hover{background:var(--coai-navy-100)}
.btn-spark{background:var(--coai-spark);color:var(--coai-navy-900)}
.btn-spark:hover{background:#E5A42B}
.btn-ghost-light{color:#fff;border-color:rgba(255,255,255,.7)}
.btn-ghost-light:hover{background:rgba(255,255,255,.1)}

/* hero */
.hero{background:var(--coai-navy-900);color:#C9D0DD;overflow:hidden}
.hero .wrap{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:40px;align-items:center;padding-top:80px;padding-bottom:88px}
.hero .status{display:inline-block;font-size:.85rem;color:var(--coai-spark);border:1px solid rgba(242,179,61,.5);border-radius:999px;padding:3px 14px;margin-bottom:24px}
.hero h1{color:#fff;font-size:clamp(2.2rem,5.4vw,3.8rem);line-height:1.28;letter-spacing:.03em;margin-bottom:24px}
.hero .lead{font-size:1.08rem;max-width:32em;margin-bottom:36px}
.hero .actions{display:flex;flex-wrap:wrap;gap:14px}
.hero .note{font-size:.85rem;color:#9AA3B5;margin-top:18px}
.hero-art{justify-self:end;width:100%;max-width:460px}
.hero-art text{font-family:var(--coai-font-ja)}
@media (max-width:860px){.hero .wrap{grid-template-columns:1fr;padding-top:48px;padding-bottom:64px}.hero-art{order:-1;justify-self:center;max-width:320px}}

/* sections */
.section{padding:100px 0}
.section.alt{background:var(--coai-mist)}
.sec-head{display:grid;grid-template-columns:minmax(0,340px) minmax(0,1fr);gap:48px;margin-bottom:56px}
.sec-head h2{font-size:clamp(1.6rem,3vw,2.2rem)}
.sec-head p{margin:0;max-width:38em}
@media (max-width:860px){.section{padding:72px 0}.sec-head{grid-template-columns:1fr;gap:16px;margin-bottom:40px}}

/* three pillars */
.pillars{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2px;background:var(--coai-line);border:1px solid var(--coai-line);border-radius:16px;overflow:hidden}
.pillar{background:#fff;padding:36px 32px}
.pillar svg{width:36px;height:36px;margin-bottom:18px}
.pillar h3{font-size:1.25rem;margin-bottom:10px}
.pillar p{margin:0}
@media (max-width:860px){.pillars{grid-template-columns:1fr}}
.neutral{margin-top:32px;display:flex;gap:16px;align-items:flex-start;background:var(--coai-teal-50);border-radius:12px;padding:20px 24px;color:var(--coai-navy-900)}
.neutral svg{flex-shrink:0;width:22px;height:22px;margin-top:4px}
.neutral p{margin:0}

/* members */
.members{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.member{background:#fff;border:1px solid var(--coai-line);border-radius:12px;padding:28px 24px;display:flex;flex-direction:column}
.badge{display:inline-block;align-self:flex-start;font-size:.8rem;font-weight:500;padding:3px 12px;border-radius:999px;margin-bottom:14px}
.b-full{background:var(--coai-navy-900);color:#fff}
.b-ind{background:var(--coai-teal-50);color:var(--coai-teal-700)}
.b-corp{background:var(--coai-navy-100);color:var(--coai-navy-900)}
.b-sp{background:#FDF1D8;color:#7A5200}
.member h3{font-size:1.05rem;margin-bottom:8px}
.member ul{margin:0 0 18px;padding-left:1.1em;font-size:.92rem}
.member .fee{margin-top:auto;border-top:1px solid var(--coai-line);padding-top:14px;font-size:.85rem;color:var(--coai-muted)}
.member .fee b{font-family:var(--coai-font-latin);font-size:1.25rem;color:var(--coai-navy-900);font-weight:600;margin-right:4px}
.fine{font-size:.85rem;color:var(--coai-muted);margin-top:20px}
@media (max-width:980px){.members{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.members{grid-template-columns:1fr}}

/* scenes */
.scenes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.scene{border-top:3px solid var(--coai-teal-500);padding-top:20px}
.scene .when{font-size:.85rem;color:var(--coai-muted)}
.scene h3{font-size:1.15rem;margin:4px 0 10px}
.scene p{margin:0;font-size:.95rem}
@media (max-width:860px){.scenes{grid-template-columns:1fr}}

/* timeline */
.timeline{list-style:none;margin:0;padding:0;position:relative}
.timeline::before{content:"";position:absolute;left:11px;top:8px;bottom:8px;width:2px;background:var(--coai-line)}
.timeline li{position:relative;padding:0 0 32px 48px}
.timeline li::before{content:"";position:absolute;left:4px;top:8px;width:16px;height:16px;border-radius:50%;background:#fff;border:3px solid var(--coai-navy-900)}
.timeline li.now::before{background:var(--coai-teal-500);border-color:var(--coai-teal-500)}
.timeline .when{font-family:var(--coai-font-latin);font-weight:500;color:var(--coai-navy-900)}
.timeline h3{font-size:1.05rem;margin:2px 0 4px}
.timeline p{margin:0;font-size:.95rem}
.timeline li.now .tag{display:inline-block;margin-left:8px;font-size:.75rem;background:var(--coai-teal-50);color:var(--coai-teal-700);padding:1px 10px;border-radius:999px;vertical-align:2px}

/* register */
.register{background:var(--coai-navy-900);color:#C9D0DD}
.register .sec-head h2{color:#fff}
.reg-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.reg-card{background:var(--coai-navy-950);border:1px solid #2E3A55;border-radius:16px;padding:36px 32px;display:flex;flex-direction:column}
.reg-card h3{color:#fff;font-size:1.3rem;margin-bottom:6px}
.reg-card .for{color:var(--coai-teal-300);font-size:.92rem;margin-bottom:18px}
.reg-card ul{margin:0 0 28px;padding-left:1.1em;font-size:.92rem}
.reg-card .btn{margin-top:auto;align-self:flex-start}
.reg-note{margin-top:28px;display:flex;flex-wrap:wrap;gap:8px 28px;font-size:.88rem;color:#9AA3B5}
.reg-note span::before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--coai-spark);margin-right:8px;vertical-align:1px}
.form-pending{display:none;margin-top:12px;font-size:.85rem;color:var(--coai-spark)}
.form-pending.show{display:block}
@media (max-width:860px){.reg-grid{grid-template-columns:1fr}}

/* faq */
.faq details{border-bottom:1px solid var(--coai-line);padding:4px 0}
.faq summary{cursor:pointer;list-style:none;padding:18px 40px 18px 0;position:relative;font-weight:500;color:var(--coai-navy-900)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";position:absolute;right:8px;top:50%;width:10px;height:10px;border-right:2px solid var(--coai-muted);border-bottom:2px solid var(--coai-muted);transform:translateY(-70%) rotate(45deg);transition:transform .2s}
.faq details[open] summary::after{transform:translateY(-30%) rotate(-135deg)}
.faq details p{margin:0 0 18px;color:var(--coai-ink)}

/* footer */
.site-footer{background:var(--coai-navy-950);color:#9AA3B5;padding:56px 0 40px;font-size:.88rem}
.site-footer .wrap{display:flex;flex-wrap:wrap;gap:24px 48px;justify-content:space-between;align-items:flex-start}
.site-footer img{height:34px;width:auto;margin-bottom:12px}
.site-footer a{color:#C9D0DD}
.site-footer nav ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px 24px}
.site-footer .copy{flex-basis:100%;border-top:1px solid #2E3A55;padding-top:20px;margin-top:8px;font-family:var(--coai-font-latin)}

/* document pages */
.doc{padding:72px 0 96px}
.doc h1{font-size:clamp(1.7rem,3.4vw,2.3rem);margin-bottom:12px}
.doc .meta{color:var(--coai-muted);font-size:.9rem;margin-bottom:40px}
.doc h2{font-size:1.15rem;margin:40px 0 12px;padding-left:14px;border-left:4px solid var(--coai-teal-500)}
.doc ol,.doc ul{padding-left:1.4em;margin:0 0 1em}
.doc li{margin-bottom:4px}
.doc .contact{background:var(--coai-mist);border-radius:12px;padding:20px 24px;margin-top:12px}
.timeline li:last-child{padding-bottom:0}.timeline::before{bottom:auto;height:calc(100% - 40px)}
