:root{
  --paper:#FFFFFF;
  --card:rgba(255,255,255,0.40);
  --tint:#FAE4EE;
  --ink:#1B2530;
  --ink-soft:#5B6672;
  --accent:#E8331C;
  --accent-deep:#C40E47;
  --chip-ink:#FFFFFF;
  --accent-soft:rgba(232,51,28,0.10);
  --line:rgba(27,37,48,0.14);
  --line-strong:rgba(27,37,48,0.28);
  --shadow:0 18px 40px -20px rgba(27,37,48,0.35);
  --band-bg:#153A5C;
  --band-ink:#FAFAFA;
  --band-accent:#E8331C;
  --hero-photo:url(../images/bg-pattern.jpg);
  --hc-swing:cubic-bezier(.65,0,.35,1);
}
:root[data-theme="dark"]{
  --paper:#15191D; --card:rgba(30,35,40,0.46); --tint:rgba(196,14,71,0.12);
  --ink:#ECEEF0; --ink-soft:#9BA5AE; --accent:#FF5B3D; --accent-deep:#FF5C93;
  --chip-ink:#1B0812; --accent-soft:rgba(255,91,61,0.14);
  --line:rgba(236,238,240,0.14); --line-strong:rgba(236,238,240,0.28);
  --shadow:0 18px 40px -20px rgba(0,0,0,0.6);
  --hero-photo:none;
}
:root[data-theme="light"]{
  --paper:#FFFFFF; --card:rgba(255,255,255,0.40); --tint:#FAE4EE;
  --ink:#1B2530; --ink-soft:#5B6672; --accent:#E8331C; --accent-deep:#C40E47;
  --chip-ink:#FFFFFF; --accent-soft:rgba(232,51,28,0.10);
  --line:rgba(27,37,48,0.14); --line-strong:rgba(27,37,48,0.28);
  --shadow:0 18px 40px -20px rgba(27,37,48,0.35);
  --hero-photo:url(../images/bg-pattern.jpg);
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth; background:var(--paper);}
@media (prefers-reduced-motion: reduce){ html{scroll-behavior:auto;} *{animation-duration:0.001ms !important; transition-duration:0.001ms !important;} }

body{
  margin:0;
  background:transparent;
  color:var(--ink);
  font-family:"Yu Gothic Medium","Yu Gothic","Hiragino Kaku Gothic ProN","Hiragino Sans","Noto Sans JP",sans-serif;
  line-height:1.9;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
body::before{
  content:"";
  position:fixed;
  inset:0;
  z-index:-1;
  pointer-events:none;
  background:
    var(--hero-photo) top center/100% auto no-repeat,
    radial-gradient(ellipse 900px 560px at -10% 55%, var(--tint), transparent 60%),
    var(--paper);
}
@media (max-width:860px){
  body::before{
    background:
      var(--hero-photo) right -12vw bottom 0/auto 90vh no-repeat,
      radial-gradient(ellipse 900px 560px at -10% 92%, var(--tint), transparent 60%),
      var(--paper);
  }
}
.mono{
  font-family:ui-monospace,"SFMono-Regular","Cascadia Code",Consolas,"Roboto Mono",monospace;
}
h1,h2,h3{
  font-family:"Yu Gothic Bold","Yu Gothic","Hiragino Sans","Noto Sans JP",sans-serif;
  font-weight:700;
  text-wrap:balance;
  margin:0;
  color:var(--ink);
}
a{color:inherit;}
img,svg{max-width:100%;display:block;}
:focus-visible{outline:2px solid var(--accent); outline-offset:3px;}

.wrap{max-width:1080px; margin:0 auto; padding:0 28px;}

header.site{
  position:sticky; top:0; z-index:50;
  background:color-mix(in srgb, var(--paper) 88%, transparent);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
.header-inner{
  display:flex; align-items:center; justify-content:space-between;
  padding:12px 28px;
  max-width:1080px; margin:0 auto;
  column-gap:40px;
}
.brand{display:flex; align-items:center; gap:16px; font-size:15px; letter-spacing:.02em;}
.brand-mark{width:72px; height:72px; flex:none; object-fit:contain;}
.brand picture{display:flex; flex:none; line-height:0;}
.brand strong{font-weight:700; white-space:nowrap;}
.brand span.sub{display:block; font-size:10px; color:var(--ink-soft); letter-spacing:.12em; margin-top:1px;}

nav.primary{display:flex; gap:12px;}
nav.primary a{
  font-size:13px; text-decoration:none; color:var(--ink-soft);
  letter-spacing:.03em; position:relative; padding:4px 0; white-space:nowrap; flex:none;
}
nav.primary a:hover, nav.primary a.active{color:var(--ink);}
nav.primary a.active::after{
  content:""; position:absolute; left:0; right:0; bottom:-3px; height:2px; background:var(--accent);
}
.view-toggle{
  display:none;
  flex:none; font-size:11px; font-weight:700; letter-spacing:.04em;
  padding:6px 12px; border:1px solid var(--line-strong); background:transparent;
  color:var(--ink-soft); cursor:pointer; white-space:nowrap;
}
@media (pointer:coarse), (any-pointer:coarse){
  .view-toggle{display:inline-block;}
}
.view-toggle:hover{color:var(--ink); border-color:var(--ink);}
@media (max-width:1100px){
  .header-inner{flex-wrap:wrap; row-gap:10px;}
  nav.primary{
    width:100%; gap:20px; overflow-x:auto; padding-bottom:4px;
    -webkit-overflow-scrolling:touch; scrollbar-width:thin;
  }
}
@media (min-width:821px) and (max-width:1100px){
  .brand-mark{width:52px; height:52px;}
  .brand{gap:12px;}
  .brand span.sub{display:none;}
}
@media (min-width:921px) and (max-width:1100px){
  nav.primary{width:auto; gap:10px; overflow:visible; padding-bottom:0;}
  nav.primary a{font-size:12px;}
  .header-inner{column-gap:24px;}
}
@media (max-width:480px){
  .brand-mark{width:52px; height:52px;}
  .brand span.sub{display:none;}
}

.menu-btn{
  display:none; align-items:center; gap:8px; flex:none;
  border:1px solid var(--line-strong); background:transparent; color:var(--ink);
  font-size:11px; font-weight:700; letter-spacing:.04em; padding:8px 10px;
  white-space:nowrap; cursor:pointer;
}
.menu-btn .bars{
  display:block; width:16px; height:2px; background:currentColor;
  box-shadow:0 -5px 0 currentColor, 0 5px 0 currentColor;
}
.menu-btn[aria-expanded="true"] .bars{box-shadow:none; position:relative; transform:rotate(45deg);}
.menu-btn[aria-expanded="true"] .bars::after{
  content:""; position:absolute; left:0; top:0; width:100%; height:100%;
  background:currentColor; transform:rotate(90deg);
}
@media (max-width:820px){
  .menu-btn{display:flex;}
  .header-inner{flex-wrap:nowrap; gap:12px;}
  .brand{gap:10px; min-width:0;}
  .brand>span{min-width:0;}
  .brand strong{white-space:normal; word-break:keep-all; line-height:1.25;}
  .brand strong>span{white-space:nowrap;}
  nav.primary{
    display:none; position:absolute; left:0; right:0; top:100%;
    flex-direction:column; width:auto; gap:0; overflow:visible;
    padding:4px 28px 14px;
    background:var(--paper); border-bottom:1px solid var(--line); box-shadow:var(--shadow);
  }
  nav.primary.open{display:flex;}
  nav.primary a{font-size:15px; padding:13px 0; border-bottom:1px solid var(--line);}
  nav.primary a.active::after{display:none;}
  nav.primary a.active{color:var(--accent-deep);}
  .view-toggle{margin-top:14px; align-self:flex-start;}
}

.ruler{
  height:8px;
  background-image:repeating-linear-gradient(90deg, var(--line-strong) 0 1px, transparent 1px 8px);
  background-position:0 bottom;
  opacity:.55;
}

.spec-frame{position:relative;}
.corner{position:absolute; width:12px; height:12px; pointer-events:none;}
.corner.tl{top:-1px; left:-1px; border-top:2px solid var(--accent); border-left:2px solid var(--accent);}
.corner.tr{top:-1px; right:-1px; border-top:2px solid var(--accent); border-right:2px solid var(--accent);}
.corner.bl{bottom:-1px; left:-1px; border-bottom:2px solid var(--accent); border-left:2px solid var(--accent);}
.corner.br{bottom:-1px; right:-1px; border-bottom:2px solid var(--accent); border-right:2px solid var(--accent);}

.panel, .goal, .area-card, .case-card, .overview, .founder-card, .officer-card{
  backdrop-filter:blur(30px);
  -webkit-backdrop-filter:blur(30px);
}

.tag{
  display:inline-flex; align-items:center; gap:8px;
  font-size:11px; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
  color:var(--chip-ink); background:var(--accent-deep);
  padding:7px 14px; margin-bottom:16px;
}
.section-heading{
  position:relative; padding-left:20px; font-size:clamp(19px,2.6vw,28px); line-height:1.3;
  white-space:nowrap;
}
@media (max-width:640px){ .section-heading{white-space:normal;} }
.section-heading::before{
  content:""; position:absolute; left:0; top:.18em; bottom:.18em; width:5px; background:var(--accent);
}
.section-heading em{color:var(--accent-deep); font-style:normal;}

section{padding:96px 0; position:relative;}
section + section{border-top:1px solid var(--line);}

.hero{padding-top:0; padding-bottom:88px; position:relative;}
.hero > .wrap{position:relative; z-index:1; padding-top:56px;}
.hero-band{
  background:var(--band-bg);
  padding:10px 0; display:flex; align-items:center; justify-content:center;
  position:relative; z-index:1;
}
.hero-band img{width:auto; height:110px; object-fit:contain;}
@media (max-width:600px){
  .hero-band{padding:8px 0;}
  .hero-band img{height:72px;}
}
.hero-grid{
  display:grid; grid-template-columns:1fr 340px; gap:40px; align-items:center;
}
@media (max-width:800px){ .hero-grid{grid-template-columns:1fr;} }
.hero h1{font-size:clamp(30px,4.6vw,50px); line-height:1.35; letter-spacing:-.01em;}
.hero h1 em{color:var(--accent-deep); font-style:normal;}
.hero p.lead{color:var(--ink-soft); font-size:16px; max-width:46ch; margin-top:22px;}
.cta-row{display:flex; gap:14px; margin-top:34px; flex-wrap:wrap;}
.btn{
  font-size:13px; letter-spacing:.04em; padding:13px 22px; text-decoration:none;
  border:1px solid var(--ink); display:inline-flex; align-items:center; gap:8px;
  transition:background .15s, color .15s;
}
.btn.primary{background:var(--ink); color:var(--paper); border-color:var(--ink);}
.btn.primary:hover{background:var(--accent); border-color:var(--accent); color:#fff;}
.btn.ghost:hover{background:var(--ink); color:var(--paper);}

.hc-stage{display:flex; flex-direction:column; align-items:center; gap:12px;}
.hc-device{position:relative; width:min(320px,80vw); max-width:100%;
  border-radius:26px; background:var(--paper); box-shadow:var(--shadow);
  border:1px solid var(--line-strong); padding:8px; touch-action:pan-y;}
.hc-screen{position:relative; width:100%; aspect-ratio:230/496; border-radius:19px; overflow:hidden;
  container-type:inline-size;
  background:var(--paper);
  background-image:linear-gradient(rgba(27,37,48,.07) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(27,37,48,.07) 1px,transparent 1px);
  background-size:20px 20px;}

@media (max-width:800px){
  .hc-device{width:min(320px,80vw,calc((70vh - 18px) * 230 / 496 + 18px));}
}
@media (max-width:800px){
  .hero{padding-bottom:40px;}
  #background{padding-top:40px;}
}
@supports (height:1svh){
  @media (max-width:800px){
    .hc-device{width:min(320px,80vw,calc((70svh - 18px) * 230 / 496 + 18px));}
  }
}
.hc-slot,.hc-part{position:absolute; opacity:0;}
.hc-back{position:absolute; inset:0; z-index:0; opacity:0;
  transition:opacity 1.1s var(--hc-swing);}
.hc-back.on{opacity:1;}
.hc-back img{display:block; width:100%; height:100%; object-fit:cover;}
.hc-slot{background:#E9EAEE; border:1px solid #D2D5DB; border-radius:7px; z-index:1;
  box-shadow:0 1px 0 rgba(27,37,48,.04); transform:scale(.92);
  transition:opacity .26s var(--hc-swing),transform .26s var(--hc-swing);}
.hc-slot.on{opacity:1; transform:scale(1);}
.hc-slot.off{opacity:0; transform:scale(1);}
.hc-part{z-index:2; transform:translateY(6px) scale(.97);
  transition:opacity .34s var(--hc-swing),transform .34s var(--hc-swing);}
.hc-part.on{opacity:1; transform:none;}
.hc-screen img{display:block; width:100%; height:100%;}
.hc-shine{position:absolute; inset:0; z-index:4; pointer-events:none; opacity:0;
  transition:opacity .7s var(--hc-swing);
  background:linear-gradient(158deg,rgba(255,255,255,.30) 0%,rgba(255,255,255,0) 38%),
             radial-gradient(130% 55% at 50% 0%,rgba(255,255,255,.16) 0%,rgba(255,255,255,0) 72%);}
.hc-shine.on{opacity:1;}
.hc-glow{position:absolute; z-index:5; border-radius:50%; pointer-events:none; opacity:0;
  background:radial-gradient(circle,rgba(255,255,255,.70) 0%,rgba(255,255,255,.34) 50%,rgba(255,255,255,0) 72%);
  transform:scale(.6);
  transition:opacity .4s var(--hc-swing),transform .4s var(--hc-swing);}
.hc-glow.ready{opacity:.30; transform:scale(.92); animation:hcBreathe 2.1s ease-in-out infinite;}
.hc-glow.hit{opacity:1; transform:scale(1.55); animation:none;}
.hc-glow.burst{opacity:1; transform:scale(16); animation:none;
  transition:transform 1.05s var(--hc-swing),opacity 1.05s var(--hc-swing);}
.hc-glow.burst.gone{opacity:0; transition:opacity .9s var(--hc-swing);}
@keyframes hcBreathe{0%,100%{opacity:.16} 50%{opacity:.40}}
.hc-chip{position:absolute; top:10px; right:10px; z-index:10; font-size:10px; letter-spacing:.04em;
  background:rgba(27,37,48,.82); color:#fff; border-radius:999px; padding:4px 10px;
  display:flex; align-items:center; gap:6px; white-space:nowrap;}
.hc-chip i{width:6px; height:6px; border-radius:50%; background:var(--accent);
  box-shadow:0 0 0 0 rgba(232,51,28,.55); animation:hcPing 1.9s ease-out infinite;}
@keyframes hcPing{70%{box-shadow:0 0 0 7px rgba(232,51,28,0)} 100%{box-shadow:0 0 0 0 rgba(232,51,28,0)}}
.hc-cursor{position:absolute; left:0; top:0; z-index:8; pointer-events:none;
  will-change:transform; transition:opacity .3s var(--hc-swing);}
.hc-cursor svg{display:block; filter:drop-shadow(0 2px 5px rgba(27,37,48,.45));}
.hc-xy{position:absolute; left:16px; top:14px; white-space:nowrap; font-size:9.5px;
  letter-spacing:.02em; background:var(--accent); color:#fff; border-radius:5px; padding:2px 6px;}
.hc-xy span{opacity:.62; margin-right:2px;}
.hc-xy em{font-style:normal; display:inline-block; min-width:2em; text-align:right;
  font-variant-numeric:tabular-nums;}
.hc-ring{position:absolute; z-index:6; width:30px; height:30px; margin:-15px 0 0 -15px;
  border-radius:50%; border:2px solid var(--accent); opacity:0; pointer-events:none;}
.hc-ring.go{animation:hcDrop .55s ease-out;}
@keyframes hcDrop{0%{opacity:.9; transform:scale(.35)} 100%{opacity:0; transform:scale(1.5)}}
.hc-said{position:absolute; inset:0; z-index:9; display:flex; flex-direction:column;
  align-items:center; justify-content:center; gap:11px; padding:18px 8%; text-align:center;
  background:rgba(255,255,255,.30);
  backdrop-filter:blur(0px); -webkit-backdrop-filter:blur(0px);
  opacity:0; visibility:hidden;
  transition:opacity .6s var(--hc-swing),visibility .6s var(--hc-swing),
             backdrop-filter .95s var(--hc-swing),-webkit-backdrop-filter .95s var(--hc-swing);}
.hc-said.on{opacity:1; visibility:visible;
  backdrop-filter:blur(13px); -webkit-backdrop-filter:blur(13px);}
.hc-said.out{opacity:0; backdrop-filter:blur(0px); -webkit-backdrop-filter:blur(0px);
  transition:opacity 1.5s var(--hc-swing),backdrop-filter 1.5s var(--hc-swing),
             -webkit-backdrop-filter 1.5s var(--hc-swing);}
.hc-screen.fading .hc-part,.hc-screen.fading .hc-back,.hc-screen.fading .hc-shine,
.hc-screen.fading .hc-glow{opacity:0; transition:opacity 1.5s var(--hc-swing);}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  .hc-said{background:rgba(255,255,255,.50);}
}
.hc-said .hc-w{color:#141C25; font-size:15.5px; font-weight:700; letter-spacing:.10em;
  line-height:1.5; opacity:0; transform:translateY(9px);
  transition:opacity .62s var(--hc-swing),transform .62s var(--hc-swing);}
.hc-said .hc-w.on{opacity:1; transform:none;}
.hc-said .hc-rule{display:block; width:78%; max-width:230px; height:2px; background:var(--accent);
  margin:15px auto; transform:scaleX(0); transform-origin:center;
  transition:transform .9s var(--hc-swing);}
.hc-said .hc-rule.on{transform:scaleX(1);}
.hc-said .hc-say{font-family:"Hiragino Mincho ProN","Yu Mincho Demibold","Yu Mincho",serif; color:#141C25;
  font-size:clamp(15px,4.1vw,19px);
  font-size:clamp(11px,5.8cqw,18px);
  font-weight:700;
  line-height:1.9; letter-spacing:.05em; margin-top:0;
  word-break:keep-all; line-break:strict; opacity:0; transform:translateY(9px);
  transition:opacity 1.0s var(--hc-swing),transform 1.0s var(--hc-swing);}
.hc-said .hc-say.on{opacity:1; transform:none;}
@media (min-width:801px){
  .hc-said .hc-say{font-size:19px;}
}
.hc-spec{font-size:11px; letter-spacing:.04em; color:var(--ink-soft); text-align:center; margin:0;}
@media (prefers-reduced-motion:reduce){
  .hc-chip i,.hc-glow.ready{animation:none;}
  .hc-slot,.hc-part,.hc-shine,.hc-glow,.hc-said,.hc-said .hc-w,.hc-said .hc-say,
  .hc-said .hc-rule,.hc-back{transition:none;}
  .hc-said{backdrop-filter:blur(13px); -webkit-backdrop-filter:blur(13px);}
}

.background-split{display:grid; grid-template-columns:1fr 340px; gap:40px;}
@media (max-width:800px){ .background-split{grid-template-columns:1fr;} }
.body p{color:var(--ink-soft); max-width:68ch; font-size:15.5px;}
.body p strong{color:var(--ink); font-weight:700;}
.background-photo{
  border:1px solid var(--line-strong); box-shadow:var(--shadow); overflow:hidden; min-height:260px;
}
.background-photo img{width:100%; height:100%; object-fit:cover; display:block;}
@media (max-width:800px){ .background-photo{height:260px;} }

.panel-stack{display:grid; gap:2px; background:var(--line);}
.panel{
  background:var(--card); padding:32px 34px; display:grid;
  grid-template-columns:200px 1fr; gap:28px; align-items:start;
}
@media (max-width:700px){ .panel{grid-template-columns:1fr; gap:14px;} }
.panel .label{border-left:4px solid var(--accent-deep); padding-left:16px;}
.panel .label .word{
  display:block; font-size:clamp(24px,3vw,32px); font-weight:800; letter-spacing:.01em;
  line-height:1.1; color:var(--ink); font-family:ui-monospace,"SFMono-Regular","Cascadia Code",Consolas,monospace;
}
.panel .label .jp{
  display:block; margin-top:8px; font-size:11px; letter-spacing:.28em; color:var(--accent-deep); font-weight:700;
}
.panel h3{font-size:19px; line-height:1.6; margin-bottom:10px;}
.panel p{color:var(--ink-soft); font-size:14.5px; max-width:60ch;}

.goals{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line);}
@media (max-width:760px){ .goals{grid-template-columns:1fr;} }
.goal{background:var(--card); padding:30px 26px;}
.goal .idx{
  font-size:30px; font-weight:800; color:var(--accent-deep); display:block; margin-bottom:12px;
  font-family:ui-monospace,"SFMono-Regular","Cascadia Code",Consolas,monospace; line-height:1;
}
.goal h3{font-size:16.5px; line-height:1.6; margin-bottom:10px;}
.goal p{font-size:14px; color:var(--ink-soft);}

.values{display:flex; flex-direction:column;}
.value-row{
  display:grid; grid-template-columns:56px 1fr; gap:22px; padding:22px 0;
  border-top:1px solid var(--line); align-items:baseline;
}
.value-row:last-child{border-bottom:1px solid var(--line);}
.value-row .idx{
  font-size:20px; font-weight:800; color:var(--accent-deep);
  font-family:ui-monospace,"SFMono-Regular","Cascadia Code",Consolas,monospace;
}
.value-row h3{font-size:15.5px; display:inline; font-weight:700;}
.value-row p{color:var(--ink-soft); font-size:14.5px; margin:6px 0 0; max-width:62ch;}

.areas{display:grid; grid-template-columns:repeat(4,1fr); gap:16px;}
@media (max-width:900px){ .areas{grid-template-columns:repeat(2,1fr);} }
@media (max-width:520px){ .areas{grid-template-columns:1fr;} }
.area-card{
  background:var(--card); border:1px solid var(--line); padding:28px 22px;
  display:flex; flex-direction:column; align-items:center; text-align:center;
  gap:16px; min-height:220px;
}
.area-card .icon-tile{
  width:96px; height:96px; aspect-ratio:1/1; flex:none;
  display:flex; align-items:center; justify-content:center;
}
.area-card .icon-tile svg{width:54px; height:54px; color:var(--accent-deep);}
.area-card .icon-tile img{width:100%; height:100%; object-fit:contain; display:block;}
.area-card h3{font-size:15px;}
.area-card p{font-size:13px; color:var(--ink-soft); margin:0;}
@media (max-width:520px){
  .areas{grid-template-columns:minmax(0,1fr); grid-auto-rows:1fr; gap:12px;}
  .area-card{
    display:grid;
    grid-template-columns:auto minmax(0,1fr);
    grid-template-rows:auto 1fr;
    column-gap:14px; row-gap:4px;
    align-items:stretch; text-align:left;
    padding:14px 16px; min-height:0;
  }
  .area-card .icon-tile{
    grid-column:1; grid-row:1 / span 2; align-self:center;
    width:80px; height:80px; aspect-ratio:1/1;
  }
  .area-card .icon-tile svg{width:36px; height:36px;}
  .area-card .icon-tile img{width:100%; height:100%;}
  .area-card h3{grid-column:2; grid-row:1; align-self:center; min-width:0;}
  .area-card p{grid-column:2; grid-row:2; align-self:start; min-width:0;}
}
.areas-note{font-size:12.5px; color:var(--ink-soft); margin-top:18px;}

.cases{display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}
@media (max-width:900px){ .cases{grid-template-columns:repeat(2,1fr);} }
@media (max-width:640px){ .cases{grid-template-columns:1fr; gap:14px;} }
.case-card{background:var(--card); border:1px solid var(--line); overflow:hidden;}
.case-thumb{aspect-ratio:8/5; background:var(--tint); border-bottom:1px solid var(--line);}
.case-thumb img{width:100%; height:100%; object-fit:cover;}
.case-body{padding:18px 20px 22px;}
.case-card h3{font-size:15px;}
.case-card p{font-size:13px; color:var(--ink-soft); margin:8px 0 0;}
.case-status{
  display:inline-block; margin-top:12px; font-size:10.5px; font-weight:700;
  letter-spacing:.1em; color:var(--accent-deep);
  border:1px solid currentColor; padding:2px 9px;
}
main[data-cases="hide"] #cases{display:none;}
body:has(main[data-cases="hide"]) nav.primary a[href="#cases"]{display:none;}
main[data-case-style="tentative"] .case-ready{display:none;}
main[data-case-style="ready"] .case-tentative{display:none;}

.overview{
  background:var(--card); border:1px solid var(--line-strong); box-shadow:var(--shadow);
  padding:30px 32px;
}
.overview-grid{display:grid; grid-template-columns:auto 1fr; gap:12px 24px; margin:0; font-size:14.5px;}
.overview-grid dt{color:var(--ink-soft); white-space:nowrap;}
.overview-grid dd{margin:0; color:var(--ink);}
@media (max-width:600px){ .overview-grid{grid-template-columns:1fr;} .overview-grid dt{margin-top:10px;} }

.role-badge{
  display:inline-block; background:var(--accent-deep); color:var(--chip-ink);
  font-size:11px; font-weight:700; letter-spacing:.08em; padding:4px 12px;
}

.officer-head{
  display:grid; grid-template-columns:1fr; align-items:center; gap:12px;
}
.officer-head:has(.avatar){grid-template-columns:1fr 1fr;}
.officer-head .info{min-width:0;}
.avatar{
  border-radius:50%; object-fit:cover; flex:none;
  border:1px solid var(--line-strong); justify-self:center;
}
.avatar.avatar-sm{width:128px; height:128px;}
@media (max-width:420px){
  .officer-head{grid-template-columns:1fr; justify-items:start;}
  .officer-head:has(.avatar){grid-template-columns:1fr;}
  .avatar{justify-self:start; margin-top:10px;}
}

.founder-top{display:grid; grid-template-columns:1fr; align-items:start; gap:32px;}
.founder-top:has(.avatar-lg){grid-template-columns:1fr 230px;}
.founder-top .info{min-width:0;}
.avatar-lg{width:230px; height:230px; align-self:start;}
@media (max-width:700px){
  .founder-top{grid-template-columns:1fr; justify-items:start;}
  .founder-top:has(.avatar-lg){grid-template-columns:1fr;}
  .avatar-lg{width:150px; height:150px; order:-1;}
}

.founder-card{background:var(--card); border:1px solid var(--line-strong); padding:34px 36px; box-shadow:var(--shadow);}
.founder-card h3{font-size:22px; margin:2px 0 0;}
.founder-card .org{font-size:13px; color:var(--ink-soft); line-height:1.6; margin-top:4px;}
.founder-card hr{border:none; border-top:1px solid var(--line); margin:22px 0;}
.founder-card .bio{font-size:14px; color:var(--ink-soft);}
.timeline{list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:8px 0;}
.timeline li{font-size:12.5px; color:var(--ink-soft); display:flex; align-items:center;}
.timeline li:not(:last-child)::after{content:"→"; margin:0 8px; color:var(--line-strong);}
.credits{margin-top:22px;}
.credits h4{font-size:13px; letter-spacing:.08em; color:var(--ink-soft); margin:0 0 4px;}
.credits ul{margin:0; padding:0; list-style:none; display:grid; gap:8px;}
.credits li{
  font-size:14.5px; padding:2px 0;
  display:flex; flex-wrap:wrap; justify-content:space-between; align-items:baseline; gap:4px 12px;
}
.credits li span{font-size:12px; color:var(--ink-soft); font-family:ui-monospace,monospace; white-space:nowrap;}
.credits li.etc{color:var(--ink-soft); font-style:italic;}

@media (max-width:600px){
  .overview{padding:24px 22px;}
  .founder-card{padding:26px 24px;}
}

.officers-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:16px;}
@media (max-width:700px){ .officers-grid{grid-template-columns:1fr;} }
.officer-card{
  background:var(--card); border:1px solid var(--line); padding:22px 24px;
  display:flex; flex-direction:column; justify-content:center;
}
.officer-card h4{font-size:16px; margin:1px 0 0;}
.officer-card .officer-head{margin-bottom:0;}
.officer-card .org{font-size:13px; color:var(--ink-soft); line-height:1.6; margin-top:4px;}
.officer-card .quals{font-size:12px; color:var(--ink-soft); margin-top:6px;}

.status{background:var(--band-bg); color:var(--band-ink); position:relative;}
.status .wrap{padding:96px 28px;}
.status-grid{display:grid; grid-template-columns:1fr 1fr; gap:48px;}
@media (max-width:800px){ .status-grid{grid-template-columns:1fr;} }
.status h2{color:inherit; font-size:28px;}
.status .section-heading::before{background:var(--band-accent);}
.status p{color:inherit; opacity:.82; font-size:15px; max-width:52ch;}
.status-list{list-style:none; margin:18px 0 0; padding:0; display:grid; gap:10px;}
.status-list li{font-size:13.5px; display:flex; gap:10px; opacity:.9; border-top:1px solid rgba(255,255,255,.18); padding-top:10px;}
.status-list li .mono{opacity:.65; flex:none; width:64px;}
.contact-box{background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.22); padding:26px;}
.contact-box dl{display:grid; grid-template-columns:auto 1fr; gap:8px 16px; font-size:13.5px; margin:16px 0 0;}
.contact-box dt{opacity:.65;}
.contact-box dd{margin:0;}
.contact-box .btn.primary{background:var(--band-accent); border-color:var(--band-accent); color:#fff;}
.contact-box .btn.primary:hover{background:#fff; color:var(--band-bg); border-color:#fff;}

footer{padding:36px 0;}
.footer-inner{
  display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:14px;
  font-size:12px; color:var(--ink-soft);
}
.footer-brand{display:flex; align-items:center; gap:10px;}
.footer-brand img{width:22px; height:22px;}
.footer-note{
  margin-top:20px; padding-top:16px; border-top:1px solid var(--line);
  font-size:11.5px; line-height:1.95; color:var(--ink-soft);
}
.footer-note p{margin:0;}
.footer-note a{color:inherit; text-decoration:underline; word-break:break-all;}
.footer-note a:hover{color:var(--ink);}

.hc-play{
  margin-top:10px; cursor:pointer; display:inline-flex; align-items:center; gap:8px;
  font-family:inherit; letter-spacing:.04em; white-space:nowrap;
  background:transparent; color:var(--ink-soft); border:1px solid var(--line-strong);
  font-size:12px; font-weight:700; padding:7px 14px; border-radius:999px;
  transition:color .15s, border-color .15s, background .15s;
}
.hc-play:hover{color:var(--ink); border-color:var(--ink);}
.hc-play:focus-visible{outline:2px solid var(--accent-deep); outline-offset:2px;}
.hc-play-mark{
  display:block; width:0; height:0; flex:none;
  border-left:8px solid currentColor; border-top:5px solid transparent; border-bottom:5px solid transparent;
}
.hc-play[data-kind="pause"] .hc-play-mark{
  width:8px; height:10px; border:none;
  background:linear-gradient(to right, currentColor 0 3px, transparent 3px 5px, currentColor 5px 8px);
}
.hc-spec{margin-bottom:2px;}

section[id]{scroll-margin-top:calc(var(--hdr, 105px) + 12px - 97px);}
#contact{scroll-margin-top:calc(var(--hdr, 105px) + 12px - 193px);}
@media (max-width:400px){:root{--hdr:90px;}}
@media (min-width:401px) and (max-width:480px){:root{--hdr:85px;}}
@media (min-width:821px) and (max-width:999px){:root{--hdr:132px;}}
@media (min-width:1000px) and (max-width:1100px){:root{--hdr:85px;}}
@media (max-width:800px){
  #background{scroll-margin-top:calc(var(--hdr, 105px) + 12px - 41px);}
}
