/* ══════════════════════════════════
   REWRITE SYSTEMS — STYLE v3
   ══════════════════════════════════ */

/* ── Accessibility ── */
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* ── Responsive Helpers ── */
.sp-only{display:none}
@media(max-width:768px){.sp-only{display:inline}}

/* ── Reset & Variables ── */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}

:root{
  --bg:#FDFBF7;
  --bg-warm:#FBF7F0;
  --bg-section:#F7F3EC;
  --bg-dark:#1a1a2e;
  --fg:#1a1a2e;
  --fg-light:#4a4a6a;
  --accent-ember:#E8652B;
  --accent-flame:#F59E0B;
  --accent-blue:#3B82F6;
  --accent-violet:#7C3AED;
  --muted:rgba(26,26,46,.4);
  --ease-out-expo:cubic-bezier(.16,1,.3,1);
  --ease-spring:cubic-bezier(.32,.72,0,1);
  --ease-bounce:cubic-bezier(.34,1.56,.64,1);
  --header-h:64px;
}

html{
  font-size:18px;
  scroll-behavior:smooth;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}

body{
  background:var(--bg);
  color:var(--fg);
  font-family:'Plus Jakarta Sans','Noto Sans JP',sans-serif;
  overflow-x:hidden;
  font-size:18px;
}

/* ── Noise Overlay ── */
body::after{
  content:'';position:fixed;inset:0;z-index:50;pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-repeat:repeat;background-size:128px;opacity:.02;
}

/* ── Canvas ── */
#particles{
  position:fixed;inset:0;z-index:1;pointer-events:none;
}

/* ── Scroll Progress Bar ── */
.scroll-progress{
  position:fixed;top:0;left:0;height:3px;z-index:200;
  background:linear-gradient(90deg,var(--accent-ember),var(--accent-violet));
  width:0%;
  transition:width .1s linear;
}

/* ── Scroll Reveal ── */
.reveal{
  opacity:0;
  transform:translateY(60px);
  transition:opacity 1s var(--ease-out-expo),transform 1s var(--ease-out-expo);
}
.reveal.visible{opacity:1;transform:translateY(0)}
.reveal-delay-1{transition-delay:.15s}
.reveal-delay-2{transition-delay:.3s}
.reveal-delay-3{transition-delay:.45s}
.reveal-delay-4{transition-delay:.6s}

/* ── scroll-margin for fixed header ── */
section[id]{
  scroll-margin-top:var(--header-h);
}

/* ── Privacy Modal ── */
.privacy-modal-trigger{
  color:rgba(255,255,255,.8);
  text-decoration:underline;
  text-underline-offset:2px;
  cursor:pointer;
  transition:color .3s;
}
.privacy-modal-trigger:hover{color:#fff}

.modal-overlay{
  position:fixed;inset:0;z-index:300;
  background:rgba(0,0,0,.6);
  backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);
  display:flex;align-items:center;justify-content:center;
  opacity:0;pointer-events:none;
  transition:opacity .3s var(--ease-out-expo);
}
.modal-overlay.active{opacity:1;pointer-events:auto}

.modal-content{
  background:var(--bg);
  border-radius:1.2rem;
  max-width:680px;width:calc(100% - 2rem);
  max-height:80vh;
  display:flex;flex-direction:column;
  box-shadow:0 24px 80px rgba(0,0,0,.25);
  transform:translateY(20px);
  transition:transform .3s var(--ease-out-expo);
}
.modal-overlay.active .modal-content{transform:translateY(0)}

.modal-header{
  display:flex;align-items:center;justify-content:space-between;
  padding:1.5rem 2rem;
  border-bottom:1px solid rgba(26,26,46,.08);
  flex-shrink:0;
}
.modal-title{
  font-family:'Noto Sans JP',sans-serif;
  font-size:1.1rem;font-weight:600;
  color:var(--fg);letter-spacing:.04em;
}
.modal-close{
  background:none;border:none;cursor:pointer;
  font-size:1.8rem;line-height:1;
  color:var(--muted);
  padding:0 .2rem;
  transition:color .3s;
}
.modal-close:hover{color:var(--fg)}

.modal-body{
  padding:2rem;
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
}
.modal-body p{
  font-family:'Noto Sans JP',sans-serif;
  font-size:.85rem;font-weight:300;
  color:var(--fg-light);line-height:2;
  margin-bottom:1rem;
}
.modal-body h4{
  font-family:'Noto Sans JP',sans-serif;
  font-size:.95rem;font-weight:600;
  color:var(--fg);letter-spacing:.04em;
  margin-top:1.8rem;margin-bottom:.6rem;
  padding-left:.6rem;
  border-left:3px solid var(--accent-ember);
}
.modal-body ol,.modal-body ul{
  margin:0 0 1rem 1.5rem;
}
.modal-body li{
  font-family:'Noto Sans JP',sans-serif;
  font-size:.85rem;font-weight:300;
  color:var(--fg-light);line-height:2;
  margin-bottom:.3rem;
}

@media(max-width:768px){
  .modal-content{max-height:85vh;margin:1rem}
  .modal-header{padding:1.2rem 1.5rem}
  .modal-body{padding:1.5rem}
}

/* ── Reduced motion ── */
@media(prefers-reduced-motion:reduce){
  .reveal{transition:none;opacity:1;transform:none}
  .hero-eyebrow,.hero-keywords,.hero-company,.hero-tagline-block,.hero-sub,.scroll-cue{
    animation:none;opacity:1;transform:none;
  }
  .ember{display:none}
}


/* ══════════════════════════════════
   HEADER / NAV
   ══════════════════════════════════ */
.site-header{
  position:fixed;top:0;left:0;right:0;z-index:100;
  height:var(--header-h);
  display:flex;align-items:center;
  background:rgba(253,251,247,.85);
  backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
  border-bottom:1px solid rgba(26,26,46,.04);
  transition:box-shadow .4s var(--ease-out-expo),background .4s var(--ease-out-expo);
}
.site-header.scrolled{
  box-shadow:0 4px 24px rgba(26,26,46,.06);
  background:rgba(253,251,247,.95);
}

.header-inner{
  max-width:1200px;width:100%;margin:0 auto;
  padding:0 2rem;
  display:flex;align-items:center;justify-content:space-between;
}

.header-logo{
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:1.1rem;font-weight:700;letter-spacing:-.01em;
  color:var(--fg);text-decoration:none;
  transition:color .3s var(--ease-out-expo);
}
.header-logo:hover{color:var(--accent-ember)}

.header-nav{
  display:flex;align-items:center;gap:2rem;
}
.nav-link{
  font-family:'Plus Jakarta Sans','Noto Sans JP',sans-serif;
  font-size:.78rem;font-weight:500;letter-spacing:.08em;
  color:var(--fg-light);text-decoration:none;
  position:relative;padding:.3rem 0;
  transition:color .3s var(--ease-out-expo);
}
.nav-link::after{
  content:'';position:absolute;bottom:0;left:0;right:0;
  height:2px;border-radius:1px;
  background:linear-gradient(90deg,var(--accent-ember),var(--accent-violet));
  transform:scaleX(0);transform-origin:right;
  transition:transform .4s var(--ease-out-expo);
}
.nav-link:hover{color:var(--fg)}
.nav-link:hover::after{transform:scaleX(1);transform-origin:left}
.nav-link.active{color:var(--fg)}
.nav-link.active::after{transform:scaleX(1);transform-origin:left}

/* Nav CTA button */
.nav-link--cta{
  background:linear-gradient(135deg,var(--accent-ember),var(--accent-flame));
  color:#fff !important;
  padding:.45rem 1.2rem;
  border-radius:9999px;
  font-weight:600;
  transition:transform .3s var(--ease-spring),box-shadow .3s var(--ease-out-expo);
}
.nav-link--cta::after{display:none}
.nav-link--cta:hover{
  transform:translateY(-2px);
  box-shadow:0 6px 20px rgba(232,101,43,.3);
}

/* Hamburger */
.hamburger{
  display:none;
  flex-direction:column;gap:5px;
  background:none;border:none;cursor:pointer;
  padding:6px;z-index:110;
}
.hamburger-line{
  width:24px;height:2px;
  background:var(--fg);border-radius:2px;
  transition:transform .3s var(--ease-out-expo),opacity .3s var(--ease-out-expo);
}
.hamburger.active .hamburger-line:nth-child(1){transform:translateY(7px) rotate(45deg)}
.hamburger.active .hamburger-line:nth-child(2){opacity:0}
.hamburger.active .hamburger-line:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* Mobile nav overlay */
@media(max-width:768px){
  .hamburger{display:flex}
  .header-nav{
    position:fixed;top:0;left:0;right:0;bottom:0;
    width:100%;height:100vh;height:100dvh;
    z-index:105;
    flex-direction:column;align-items:center;justify-content:center;
    gap:2rem;
    background:rgba(253,251,247,.97);
    backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);
    opacity:0;pointer-events:none;
    transition:opacity .4s var(--ease-out-expo);
    overflow-y:auto;
    padding:5rem 2rem 3rem;
  }
  .header-nav.open{opacity:1;pointer-events:auto}
  .header-nav .nav-link{
    font-size:1.1rem;letter-spacing:.12em;
    opacity:0;transform:translateY(20px);
    transition:opacity .4s var(--ease-out-expo),transform .4s var(--ease-out-expo),color .3s;
  }
  .header-nav .nav-link--cta{
    font-size:.95rem;
    margin-top:.5rem;
  }
  .header-nav.open .nav-link{opacity:1;transform:translateY(0)}
  .header-nav.open .nav-link:nth-child(1){transition-delay:.05s}
  .header-nav.open .nav-link:nth-child(2){transition-delay:.1s}
  .header-nav.open .nav-link:nth-child(3){transition-delay:.15s}
  .header-nav.open .nav-link:nth-child(4){transition-delay:.2s}
  .header-nav.open .nav-link:nth-child(5){transition-delay:.25s}
  .header-nav.open .nav-link:nth-child(6){transition-delay:.3s}
  .header-nav.open .nav-link:nth-child(7){transition-delay:.35s}
}


/* ══════════════════════════════════
   HERO
   ══════════════════════════════════ */
.hero{
  position:relative;z-index:2;
  min-height:100dvh;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;
  padding:4.8rem 2rem 3.2rem;
  padding-top:calc(var(--header-h) + 3rem);
}
.hero::before{
  content:'';position:absolute;inset:0;z-index:-1;
  background:
    radial-gradient(ellipse 80% 60% at 20% 20%, rgba(232,101,43,.06) 0%, transparent 60%),
    radial-gradient(ellipse 70% 50% at 80% 30%, rgba(245,158,11,.05) 0%, transparent 60%),
    radial-gradient(ellipse 60% 40% at 50% 80%, rgba(124,58,237,.03) 0%, transparent 60%);
}

.hero-inner{
  display:flex;flex-direction:column;align-items:center;gap:2rem;
  max-width:1000px;
}

.hero-eyebrow{
  display:inline-flex;align-items:center;gap:.5rem;
  padding:.5rem 1.5rem;border-radius:9999px;
  background:rgba(232,101,43,.06);border:1px solid rgba(232,101,43,.12);
  font-size:.75rem;letter-spacing:.2em;text-transform:uppercase;
  color:var(--accent-ember);font-weight:600;
  opacity:0;transform:translateY(20px);
  animation:fadeUp .8s var(--ease-out-expo) .2s forwards;
}
.hero-eyebrow::before{
  content:'';width:7px;height:7px;border-radius:50%;
  background:var(--accent-ember);
  box-shadow:0 0 12px var(--accent-ember),0 0 30px rgba(232,101,43,.3);
  animation:emberglow 2s ease-in-out infinite;
}

.hero-company{
  font-family:'Plus Jakarta Sans','Noto Sans JP',sans-serif;
  font-size:clamp(.95rem,2vw,1.2rem);
  font-weight:400;letter-spacing:.1em;line-height:1.4;
  color:var(--fg-light);
  opacity:0;transform:translateY(16px);
  animation:fadeUp 1s var(--ease-out-expo) 1.5s forwards;
}

/* ── Hero Keywords ── */
.hero-keywords{
  display:flex;align-items:baseline;gap:clamp(0,.3vw,.1rem);
  flex-wrap:wrap;justify-content:center;
  padding-bottom:.1em;
  opacity:0;transform:translateY(30px) scale(.95);
  animation:heroReveal 1.2s var(--ease-spring) .8s forwards;
}
.hero-keyword{
  font-family:'Plus Jakarta Sans',sans-serif;
  font-weight:800;letter-spacing:-.04em;
  line-height:1.2;
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;
  position:relative;
  display:inline-block;
  padding-bottom:.05em;
}
.hero-keyword--rewrite{
  font-size:clamp(3.8rem,14vw,11rem);
  background-image:linear-gradient(135deg,var(--accent-blue) 0%,var(--accent-violet) 100%);
  background-size:200% 200%;
  animation:gradientFlow 6s ease infinite;
  filter:drop-shadow(0 4px 40px rgba(59,130,246,.15));
}
.hero-keyword--relight{
  font-size:clamp(3.2rem,12vw,9.5rem);
  font-weight:300;
  letter-spacing:-.02em;
  background-image:linear-gradient(135deg,var(--accent-ember) 0%,var(--accent-flame) 100%);
  background-size:200% 200%;
  animation:gradientFlow 6s ease infinite reverse;
  filter:drop-shadow(0 4px 40px rgba(232,101,43,.15));
  padding-bottom:.1em;
}

/* ── Tagline Block ── */
.hero-tagline-block{
  display:flex;align-items:center;gap:1.5rem;
  opacity:0;transform:translateY(20px);
  animation:fadeUp 1s var(--ease-out-expo) 1.1s forwards;
}
.hero-tagline-deco{
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:.8rem;font-weight:200;letter-spacing:.3em;
  color:rgba(26,26,46,.15);
  flex-shrink:0;
}
.hero-tagline{
  font-family:'Noto Sans JP',sans-serif;
  font-size:clamp(1.05rem,2.5vw,1.4rem);
  font-weight:300;letter-spacing:.06em;
  color:var(--fg-light);line-height:2.2;
  text-align:center;
}
.t-accent{
  font-weight:600;
  background:linear-gradient(135deg,var(--accent-blue),var(--accent-violet));
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;
}
.t-ember{
  font-weight:600;
  color:var(--accent-ember);
}

.hero-sub{
  font-family:'Noto Sans JP',sans-serif;
  font-size:clamp(1.1rem,2.8vw,1.6rem);
  font-weight:600;letter-spacing:.1em;
  color:var(--fg);
  opacity:0;transform:translateY(16px);
  animation:fadeUp 1s var(--ease-out-expo) 1.35s forwards;
}

/* Scroll indicator */
.scroll-cue{
  position:absolute;bottom:2.5rem;left:50%;transform:translateX(-50%);
  display:flex;flex-direction:column;align-items:center;gap:.5rem;
  opacity:0;animation:fadeIn 1s var(--ease-out-expo) 2s forwards;
}
.scroll-cue span{
  font-size:.6rem;letter-spacing:.25em;text-transform:uppercase;
  color:var(--muted);font-weight:500;
}
.scroll-cue-line{
  width:1px;height:48px;position:relative;overflow:hidden;
  background:rgba(26,26,46,.06);
}
.scroll-cue-line::after{
  content:'';position:absolute;top:-100%;left:0;width:100%;height:100%;
  background:linear-gradient(to bottom,transparent,var(--accent-ember),transparent);
  animation:scrollDrop 2s var(--ease-out-expo) infinite;
}


/* ── Hero Japanese Tagline ── */
.hero-tagline-ja{
  font-family:'Noto Sans JP',sans-serif;
  font-size:clamp(1.1rem,2.8vw,1.65rem);
  font-weight:500;letter-spacing:.12em;line-height:1.8;
  color:var(--fg);
  opacity:0;transform:translateY(20px);
  animation:fadeUp .8s var(--ease-out-expo) .3s forwards;
  margin-bottom:-1.5rem;
}
.hero-tagline-ja strong{
  font-weight:700;
}
.hero-tagline-ja .v-rewrite{
  background:linear-gradient(135deg,var(--accent-blue),var(--accent-violet));
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
}
.hero-tagline-ja .v-relight{
  background:linear-gradient(135deg,var(--accent-ember),var(--accent-flame));
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
}

/* ══════════════════════════════════
   AI EMPLOYEE INTRO
   ══════════════════════════════════ */
.ai-intro{
  position:relative;z-index:2;
  padding:8rem 2rem 7rem;
  display:flex;justify-content:center;
  text-align:center;
  background:linear-gradient(180deg,var(--bg) 0%,rgba(232,101,43,.03) 50%,var(--bg) 100%);
}
.ai-intro-inner{
  max-width:820px;width:100%;
}
.ai-intro-label{
  display:inline-flex;padding:.45rem 1.4rem;border-radius:9999px;
  background:rgba(232,101,43,.06);border:1px solid rgba(232,101,43,.12);
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;
  color:var(--accent-ember);font-weight:700;margin-bottom:3rem;
}
.ai-intro-heading{
  font-family:'Noto Sans JP',sans-serif;
  font-size:clamp(1.5rem,4vw,2.4rem);
  font-weight:700;letter-spacing:.04em;line-height:1.9;
  color:var(--fg);
  margin-bottom:2.5rem;
}
.ai-intro-heading em{
  font-style:normal;
  background:linear-gradient(135deg,var(--accent-ember),var(--accent-flame));
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
}
.ai-intro-lead{
  font-family:'Noto Sans JP',sans-serif;
  font-size:clamp(1rem,2vw,1.15rem);
  font-weight:400;line-height:2.2;letter-spacing:.04em;
  color:var(--fg-light);
  margin-bottom:3.5rem;
}
.ai-intro-lead strong{
  color:var(--accent-ember);font-weight:600;
}
.ai-intro-features{
  display:flex;flex-direction:column;align-items:center;gap:1.8rem;
  margin-bottom:3.5rem;
}
.ai-intro-feature{
  display:flex;flex-direction:column;gap:1.2rem;
  padding:2.5rem 2.5rem;border-radius:1.2rem;
  background:rgba(255,255,255,.7);
  border:1px solid rgba(26,26,46,.05);
  box-shadow:0 4px 16px rgba(26,26,46,.03);
  text-align:left;
}
.ai-intro-feature--wide{width:88%;align-self:flex-start}
.ai-intro-feature--mid{width:88%;align-self:flex-end}
.ai-intro-feature--narrow{width:88%;align-self:flex-start}
.ai-intro-feature-header{
  display:flex;align-items:center;gap:1.4rem;
}
.ai-intro-feature-icon{
  width:88px;height:88px;min-width:88px;border-radius:18px;
  background:linear-gradient(135deg,rgba(232,101,43,.08),rgba(245,158,11,.04));
  display:flex;align-items:center;justify-content:center;
}
.ai-intro-feature-title{
  font-family:'Noto Sans JP',sans-serif;
  font-size:1.57rem;font-weight:700;letter-spacing:.04em;
  color:var(--fg);
}
.ai-intro-feature-text{
  font-family:'Noto Sans JP',sans-serif;
  font-size:1.05rem;font-weight:400;line-height:2.1;letter-spacing:.02em;
  color:var(--fg-light);
}
.ai-intro-feature-text strong{
  color:var(--accent-ember);font-weight:600;
}
.ai-intro-cta{
  display:inline-flex;align-items:center;gap:.6rem;
  padding:1rem 2.5rem;border-radius:9999px;
  background:linear-gradient(135deg,var(--accent-ember),var(--accent-flame));
  color:#fff;
  font-family:'Noto Sans JP',sans-serif;
  font-size:.95rem;font-weight:600;letter-spacing:.06em;
  text-decoration:none;
  box-shadow:0 8px 24px rgba(232,101,43,.25);
  transition:transform .3s var(--ease-spring),box-shadow .3s;
}
.ai-intro-cta:hover{
  transform:translateY(-3px);
  box-shadow:0 14px 32px rgba(232,101,43,.35);
}
.ai-intro-cta svg{flex-shrink:0}

/* ══════════════════════════════════
   VISION
   ══════════════════════════════════ */
.vision{
  position:relative;z-index:2;
  padding:10rem 2rem 8rem;
  display:flex;flex-direction:column;align-items:center;
  text-align:center;
  background:
    linear-gradient(180deg,rgba(253,251,247,.55) 0%,rgba(251,247,240,.45) 100%),
    url('../images/vision-bg.svg') center center / cover no-repeat;
  overflow:hidden;
}

.vision-label{
  display:inline-flex;padding:.45rem 1.4rem;border-radius:9999px;
  background:rgba(124,58,237,.06);border:1px solid rgba(124,58,237,.1);
  font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;
  color:var(--accent-violet);font-weight:600;margin-bottom:3.5rem;
}

.vision-main-copy{
  font-family:'Noto Sans JP',sans-serif;
  font-size:clamp(1.6rem,4vw,2.8rem);
  font-weight:300;line-height:2.2;color:var(--fg);
  max-width:800px;letter-spacing:.06em;
}
.vision-main-copy strong{
  font-family:'Plus Jakarta Sans','Noto Sans JP',sans-serif;
  font-weight:800;
  font-size:1.15em;
}
.vision-main-copy .v-rewrite{
  background:linear-gradient(135deg,var(--accent-blue),var(--accent-violet));
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;
}
.vision-main-copy .v-relight{
  background:linear-gradient(135deg,var(--accent-ember),var(--accent-flame));
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;
}

.vision-sub-copy{
  font-family:'Noto Sans JP',sans-serif;
  font-size:clamp(1.2rem,3vw,1.8rem);
  font-weight:600;color:var(--fg);letter-spacing:.12em;
  margin-top:1.5rem;
  position:relative;
  display:inline-block;
}
.vision-sub-copy::after{
  content:'';position:absolute;
  bottom:-.3em;left:10%;right:10%;height:3px;
  background:linear-gradient(90deg,var(--accent-ember),var(--accent-violet));
  border-radius:2px;opacity:.3;
}

/* ── Two Pillars ── */
.vision-pillars{
  display:grid;grid-template-columns:1fr 1fr;
  gap:2rem;max-width:1080px;width:100%;
  margin-top:5rem;
}

.pillar{
  position:relative;
  padding:3.5rem 3.5rem;border-radius:2rem;
  text-align:left;overflow:hidden;
}
.pillar::before{
  content:'';position:absolute;inset:0;border-radius:2rem;padding:1px;
  background:linear-gradient(135deg,rgba(232,101,43,.2),rgba(124,58,237,.15),transparent);
  -webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);
  -webkit-mask-composite:xor;mask-composite:exclude;
  pointer-events:none;
}
.pillar-inner{position:relative;z-index:1}

.pillar--rewrite{background:linear-gradient(135deg,rgba(59,130,246,.04) 0%,rgba(124,58,237,.02) 100%)}
.pillar--relight{background:linear-gradient(135deg,rgba(232,101,43,.04) 0%,rgba(245,158,11,.02) 100%)}

.pillar-word{
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:clamp(2.4rem,6vw,4rem);
  letter-spacing:-.03em;margin-bottom:.3rem;
  line-height:1.15;
}
.pillar--rewrite .pillar-word{
  font-weight:800;
  background:linear-gradient(135deg,var(--accent-blue),var(--accent-violet));
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
}
.pillar--relight .pillar-word{
  font-weight:300;
  background:linear-gradient(135deg,var(--accent-ember),var(--accent-flame));
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
  padding-bottom:.18em;
}

.pillar-meaning{
  font-family:'Noto Sans JP',sans-serif;
  font-size:.9rem;font-weight:400;color:var(--muted);
  margin-bottom:2rem;letter-spacing:.12em;
}

.pillar-lines{list-style:none;display:flex;flex-direction:column;gap:1rem}
.pillar-lines li{
  font-family:'Noto Sans JP',sans-serif;
  font-size:clamp(1rem,2vw,1.15rem);
  font-weight:400;color:var(--fg);line-height:1.8;
  letter-spacing:.03em;padding-left:1.4rem;position:relative;
}
.pillar-lines li::before{
  content:'';position:absolute;left:0;top:.6em;
  width:7px;height:7px;border-radius:50%;
}
.pillar--rewrite .pillar-lines li::before{
  background:var(--accent-blue);
  box-shadow:0 0 10px rgba(59,130,246,.3);
}
.pillar--relight .pillar-lines li::before{
  background:var(--accent-ember);
  box-shadow:0 0 10px rgba(232,101,43,.3);
}

/* Divider */
.vision-divider{
  width:80px;height:2px;margin:5rem auto 3rem;
  background:linear-gradient(90deg,transparent,var(--accent-ember),var(--accent-violet),transparent);
  border-radius:2px;
}

.vision-statement{
  font-family:'Noto Sans JP',sans-serif;
  font-size:clamp(1.2rem,3vw,1.8rem);
  font-weight:500;color:var(--fg);line-height:2;
  letter-spacing:.06em;max-width:700px;
  margin-top:5rem;
}

/* Floating embers */
.ember{
  position:absolute;border-radius:50%;pointer-events:none;
  animation:emberFloat linear infinite;
}
@keyframes emberFloat{
  0%{transform:translateY(0) scale(1);opacity:0}
  10%{opacity:1}
  90%{opacity:1}
  100%{transform:translateY(-500px) scale(0);opacity:0}
}


/* ══════════════════════════════════
   SERVICES
   ══════════════════════════════════ */
.services{
  position:relative;z-index:2;
  padding:8rem 2rem 10rem;
  display:flex;flex-direction:column;align-items:center;
  background:var(--bg-warm);
}

.services-label{
  display:inline-flex;padding:.45rem 1.4rem;border-radius:9999px;
  background:rgba(59,130,246,.06);border:1px solid rgba(59,130,246,.1);
  font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;
  color:var(--accent-blue);font-weight:600;margin-bottom:3rem;
}

.services-heading{
  font-family:'Noto Sans JP',sans-serif;
  font-size:clamp(1.8rem,4.5vw,3.2rem);
  font-weight:300;letter-spacing:.08em;color:var(--fg);margin-bottom:1.5rem;
}
.services-heading em{
  font-style:normal;font-weight:700;
  background:linear-gradient(135deg,var(--accent-blue),var(--accent-violet));
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
}

.services-sub{
  font-family:'Noto Sans JP',sans-serif;
  font-size:clamp(1.42rem,2.6vw,1.57rem);
  font-weight:300;color:var(--fg-light);letter-spacing:.04em;
  margin-bottom:5rem;text-align:center;max-width:600px;line-height:2;
}

.services-grid{
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:1.5rem;max-width:1060px;width:100%;
}

.service-card{
  position:relative;
  padding:2.8rem 2.2rem;border-radius:1.5rem;
  background:rgba(255,255,255,.7);
  border:1px solid rgba(26,26,46,.04);
  transition:transform .7s var(--ease-spring),box-shadow .7s var(--ease-spring),border-color .4s;
  overflow:hidden;
}
.service-card::before{
  content:'';position:absolute;inset:0;border-radius:1.5rem;
  box-shadow:inset 0 1px 1px rgba(255,255,255,.8);pointer-events:none;
}
/* Decorative card number */
.service-card::after{
  content:var(--card-index,'');
  position:absolute;top:.8rem;right:1.2rem;
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:4rem;font-weight:800;line-height:1;
  color:rgba(26,26,46,.03);
  pointer-events:none;
  transition:color .5s var(--ease-out-expo);
}
.service-card:hover{
  transform:translateY(-6px);
  box-shadow:0 24px 64px rgba(26,26,46,.07),0 6px 24px rgba(26,26,46,.04);
  border-color:rgba(232,101,43,.15);
}
.service-card:hover::after{
  color:rgba(232,101,43,.08);
}

.service-icon{
  width:52px;height:52px;border-radius:14px;
  display:flex;align-items:center;justify-content:center;
  margin-bottom:1.5rem;
  transition:transform .5s var(--ease-bounce);
}
.service-card:hover .service-icon{transform:scale(1.1) rotate(-3deg)}

.service-icon--ai{background:linear-gradient(135deg,rgba(232,101,43,.1),rgba(245,158,11,.08))}
.service-icon--dev{background:linear-gradient(135deg,rgba(59,130,246,.1),rgba(124,58,237,.08))}
.service-icon--consult{background:linear-gradient(135deg,rgba(16,185,129,.1),rgba(59,130,246,.08))}
.service-icon--data{background:linear-gradient(135deg,rgba(124,58,237,.1),rgba(236,72,153,.08))}
.service-icon--edu{background:linear-gradient(135deg,rgba(245,158,11,.1),rgba(232,101,43,.08))}
.service-icon--content{background:linear-gradient(135deg,rgba(236,72,153,.1),rgba(124,58,237,.08))}

.service-title{
  font-family:'Noto Sans JP',sans-serif;
  font-size:1.1rem;font-weight:600;
  color:var(--fg);margin-bottom:.8rem;letter-spacing:.03em;
}
.service-desc{
  font-family:'Noto Sans JP',sans-serif;
  font-size:1.07rem;font-weight:300;
  color:var(--fg-light);line-height:1.8;letter-spacing:.02em;
}


/* ══════════════════════════════════
   CEO MESSAGE
   ══════════════════════════════════ */
.ceo-message{
  position:relative;z-index:2;
  padding:10rem 2rem 8rem;
  display:flex;flex-direction:column;align-items:center;
  background:var(--bg);
}
.ceo-message-inner{
  max-width:820px;width:100%;
  display:flex;flex-direction:column;align-items:center;
}

.ceo-message-label{
  display:inline-flex;padding:.45rem 1.4rem;border-radius:9999px;
  background:rgba(232,101,43,.06);border:1px solid rgba(232,101,43,.12);
  font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;
  color:var(--accent-ember);font-weight:600;margin-bottom:3rem;
}

.ceo-message-heading{
  font-family:'Noto Sans JP',sans-serif;
  font-size:clamp(1.8rem,4.5vw,3.2rem);
  font-weight:300;letter-spacing:.12em;color:var(--fg);margin-bottom:5rem;
  text-align:center;
}

.ceo-message-content{
  display:flex;flex-direction:column;gap:3rem;
  width:100%;
}

/* Top: photo LEFT, name + titles RIGHT */
.ceo-header{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:3rem;
  align-items:center;
  width:100%;
}
.ceo-header-text{
  display:flex;flex-direction:column;
  text-align:left;
  min-width:0;
}

.ceo-photo-wrapper{display:flex;justify-content:center;flex-shrink:0}

.ceo-photo-placeholder{
  width:280px;height:360px;border-radius:1.5rem;
  background:linear-gradient(135deg,rgba(232,101,43,.06),rgba(124,58,237,.04));
  position:relative;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;
  overflow:hidden;
}
/* Gradient ring border */
.ceo-photo-placeholder::before{
  content:'';position:absolute;inset:0;border-radius:1.5rem;padding:2px;
  background:linear-gradient(135deg,var(--accent-ember),var(--accent-violet));
  -webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);
  -webkit-mask-composite:xor;mask-composite:exclude;
  pointer-events:none;
  opacity:.4;
  transition:opacity .4s var(--ease-out-expo);
}
.ceo-photo-placeholder:hover::before{opacity:.7}

/* Actual photo fills the placeholder */
.ceo-photo-placeholder .profile-img{
  position:absolute;inset:0;
  width:100%;height:100%;
  object-fit:cover;
  border-radius:1.5rem;
  display:block;
  z-index:1;
}

.photo-initials{
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:2.5rem;font-weight:700;letter-spacing:.05em;
  background:linear-gradient(135deg,var(--accent-ember),var(--accent-violet));
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;
  opacity:.3;
}

/* Legacy wrappers (kept for safety, not used in new layout) */
.ceo-text-wrapper{
  display:flex;flex-direction:column;gap:2.5rem;
}
.ceo-name-block{
  display:flex;flex-direction:column;gap:.4rem;
}
.ceo-position{
  font-family:'Noto Sans JP',sans-serif;
  font-size:1.02rem;font-weight:500;letter-spacing:.15em;
  color:var(--accent-ember);
}
.ceo-titles{
  list-style:none;margin:.9rem 0 0;padding:0;
  display:flex;flex-direction:column;gap:.35rem;
}
.ceo-titles li{
  font-family:'Noto Sans JP',sans-serif;
  font-size:1.05rem;font-weight:500;letter-spacing:.04em;
  line-height:1.7;
  color:var(--accent-ember);
  padding-left:1rem;
  position:relative;
}
.ceo-titles li::before{
  content:'';
  position:absolute;left:0;top:.75em;
  width:.5rem;height:1px;
  background:var(--accent-ember);
  opacity:.6;
}
.ceo-name-ja{
  font-family:'Noto Sans JP',sans-serif;
  font-size:clamp(2.02rem,4.2vw,2.82rem);
  font-weight:600;letter-spacing:.08em;color:var(--fg);
}
.ceo-name-en{
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:.9rem;font-weight:400;letter-spacing:.08em;
  color:var(--muted);
}

.ceo-body{
  display:flex;flex-direction:column;gap:1.5rem;
}
.ceo-body p{
  font-family:'Noto Sans JP',sans-serif;
  font-size:1.17rem;font-weight:300;
  color:var(--fg-light);line-height:2.2;letter-spacing:.03em;
}


/* ══════════════════════════════════
   FOUNDING MEMBERS — Alternating Layout
   ══════════════════════════════════ */
.members{
  position:relative;z-index:2;
  padding:8rem 2rem 10rem;
  display:flex;flex-direction:column;align-items:center;
  background:var(--bg-warm);
}
.members-inner{
  max-width:830px;width:100%;
  display:flex;flex-direction:column;align-items:center;
}

.members-label{
  display:inline-flex;padding:.45rem 1.4rem;border-radius:9999px;
  background:rgba(124,58,237,.06);border:1px solid rgba(124,58,237,.1);
  font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;
  color:var(--accent-violet);font-weight:600;margin-bottom:3rem;
}

.members-heading{
  font-family:'Noto Sans JP',sans-serif;
  font-size:clamp(1.8rem,4.5vw,3.2rem);
  font-weight:300;letter-spacing:.12em;color:var(--fg);margin-bottom:5rem;
  text-align:center;
}

.members-list{
  display:flex;flex-direction:column;gap:4rem;width:100%;
}

.member-row{
  display:flex;flex-direction:column;gap:2rem;
  padding:3rem;border-radius:1.5rem;
  background:rgba(255,255,255,.7);
  border:1px solid rgba(26,26,46,.04);
  transition:transform .7s var(--ease-spring),box-shadow .7s var(--ease-spring);
  position:relative;
  overflow:hidden;
}
.member-row::before{
  content:'';position:absolute;inset:0;border-radius:1.5rem;
  box-shadow:inset 0 1px 1px rgba(255,255,255,.8);pointer-events:none;
}
.member-row:hover{
  transform:translateY(-4px);
  box-shadow:0 20px 48px rgba(26,26,46,.06),0 4px 16px rgba(26,26,46,.03);
}

/* Top section: name+titles on the left, photo on the right */
.member-header{
  display:grid;
  grid-template-columns:1fr auto;
  gap:3rem;
  align-items:center;
  width:100%;
}
.member-header-text{
  display:flex;flex-direction:column;
  text-align:left;
  min-width:0;
}

.member-photo-wrapper{
  display:flex;justify-content:center;align-items:center;
  flex-shrink:0;
}

.member-photo-placeholder{
  width:190px;height:190px;border-radius:50%;
  background:linear-gradient(135deg,rgba(59,130,246,.06),rgba(124,58,237,.04));
  position:relative;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.6rem;
  flex-shrink:0;
  overflow:hidden;
}
/* Gradient ring */
.member-photo-placeholder::before{
  content:'';position:absolute;inset:0;border-radius:50%;padding:2px;
  background:linear-gradient(135deg,var(--accent-blue),var(--accent-violet),var(--accent-ember));
  -webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);
  -webkit-mask-composite:xor;mask-composite:exclude;
  pointer-events:none;
  opacity:.35;
  transition:opacity .4s var(--ease-out-expo);
}
.member-row:hover .member-photo-placeholder::before{opacity:.6}

/* Actual photo fills the circular placeholder */
.member-photo-placeholder .profile-img{
  position:absolute;inset:0;
  width:100%;height:100%;
  object-fit:cover;
  border-radius:50%;
  display:block;
  z-index:1;
}

.member-photo-placeholder .photo-initials{
  font-size:1.6rem;
}

/* Legacy wrapper (not used in new layout but kept for safety) */
.member-text-wrapper{
  display:flex;flex-direction:column;gap:.5rem;
}

.member-name-ja{
  font-family:'Noto Sans JP',sans-serif;
  font-size:1.72rem;font-weight:600;letter-spacing:.06em;color:var(--fg);
}
.member-name-en{
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:.8rem;font-weight:400;letter-spacing:.06em;
  color:var(--muted);margin-bottom:.5rem;
}
.member-title{
  font-family:'Noto Sans JP',sans-serif;
  font-size:.99rem;font-weight:500;
  color:var(--accent-ember);letter-spacing:.04em;
  line-height:1.7;
  margin-bottom:.6rem;
}
.member-titles{
  list-style:none;margin:.6rem 0 .9rem;padding:0;
  display:flex;flex-direction:column;gap:.3rem;
}
.member-titles li{
  font-family:'Noto Sans JP',sans-serif;
  font-size:.99rem;font-weight:500;letter-spacing:.04em;
  line-height:1.7;
  color:var(--accent-ember);
  padding-left:.9rem;
  position:relative;
}
.member-titles li::before{
  content:'';
  position:absolute;left:0;top:.75em;
  width:.45rem;height:1px;
  background:var(--accent-ember);
  opacity:.6;
}
.member-desc{
  font-family:'Noto Sans JP',sans-serif;
  font-size:1.07rem;font-weight:300;
  color:var(--fg-light);line-height:2;letter-spacing:.02em;
  width:100%;margin:0;
  text-align:left;
}
.member-desc p{
  margin:0 0 .8em;
}
.member-desc p:last-child{
  margin-bottom:0;
}


/* ══════════════════════════════════
   COMPANY INFO
   ══════════════════════════════════ */
.company{
  position:relative;z-index:2;
  padding:8rem 2rem;
  background:var(--bg-section);
  overflow:hidden;
}
/* Light orb animation */
.company::before{
  content:'';position:absolute;
  width:500px;height:500px;border-radius:50%;
  top:-150px;right:-100px;
  background:radial-gradient(circle,rgba(232,101,43,.08) 0%,rgba(245,158,11,.04) 40%,transparent 70%);
  animation:orbFloat1 12s ease-in-out infinite;
  pointer-events:none;
}
.company::after{
  content:'';position:absolute;
  width:400px;height:400px;border-radius:50%;
  bottom:-120px;left:-80px;
  background:radial-gradient(circle,rgba(59,130,246,.07) 0%,rgba(124,58,237,.03) 40%,transparent 70%);
  animation:orbFloat2 10s ease-in-out infinite;
  pointer-events:none;
}
@keyframes orbFloat1{
  0%,100%{transform:translate(0,0) scale(1);opacity:.7}
  50%{transform:translate(-40px,30px) scale(1.15);opacity:1}
}
@keyframes orbFloat2{
  0%,100%{transform:translate(0,0) scale(1);opacity:.6}
  50%{transform:translate(30px,-25px) scale(1.1);opacity:1}
}
.company-inner{
  max-width:800px;margin:0 auto;
  display:flex;flex-direction:column;align-items:center;
  position:relative;z-index:1;
}

.company-label{
  display:inline-flex;padding:.45rem 1.4rem;border-radius:9999px;
  background:rgba(26,26,46,.03);border:1px solid rgba(26,26,46,.08);
  font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;
  color:var(--fg-light);font-weight:600;margin-bottom:3rem;
}

.company-heading{
  font-family:'Noto Sans JP',sans-serif;
  font-size:clamp(1.8rem,4.5vw,3.2rem);
  font-weight:300;letter-spacing:.12em;color:var(--fg);margin-bottom:1rem;
}
.company-note{
  font-family:'Noto Sans JP',sans-serif;
  font-size:.8rem;font-weight:400;
  color:var(--muted);letter-spacing:.04em;
  margin-bottom:3.5rem;
}

.company-table{
  width:100%;border-collapse:collapse;
  background:rgba(255,255,255,.5);
  border-radius:1rem;
  overflow:hidden;
}
.company-table th,
.company-table td{
  font-family:'Noto Sans JP',sans-serif;
  padding:1.3rem 1.5rem;
  border-bottom:1px solid rgba(26,26,46,.06);
  vertical-align:middle;
  line-height:1.9;
}
.company-table tr:last-child th,
.company-table tr:last-child td{
  border-bottom:none;
}
.company-table tr:nth-child(even){
  background:rgba(26,26,46,.015);
}
.company-table th{
  font-size:.88rem;font-weight:500;letter-spacing:.08em;
  color:var(--fg);
  width:140px;white-space:nowrap;
  text-align:left;
  border-left:3px solid var(--accent-ember);
}
.company-table td{
  font-size:.95rem;font-weight:300;
  color:var(--fg-light);line-height:1.9;letter-spacing:.02em;
}
.company-en{
  display:block;
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:.8rem;font-weight:400;letter-spacing:.06em;
  color:var(--muted);margin-top:.3rem;
}


/* ══════════════════════════════════
   CTA / CONTACT FORM
   ══════════════════════════════════ */
.cta{
  position:relative;z-index:2;
  padding:8rem 2rem 6rem;
  background:var(--bg-dark);
  overflow:hidden;
}
.cta::before{
  content:'';position:absolute;
  width:600px;height:600px;border-radius:50%;
  top:-200px;right:-150px;
  background:radial-gradient(circle,rgba(232,101,43,.12) 0%,rgba(245,158,11,.06) 40%,transparent 70%);
  pointer-events:none;
}
.cta::after{
  content:'';position:absolute;
  width:400px;height:400px;border-radius:50%;
  bottom:-150px;left:-100px;
  background:radial-gradient(circle,rgba(59,130,246,.1) 0%,rgba(124,58,237,.05) 40%,transparent 70%);
  pointer-events:none;
}

.cta-inner{
  max-width:1000px;margin:0 auto;
  display:grid;grid-template-columns:1fr 1fr;gap:5rem;
  align-items:start;
  position:relative;z-index:1;
}

.cta-label{
  display:inline-flex;padding:.45rem 1.4rem;border-radius:9999px;
  background:rgba(232,101,43,.15);border:1px solid rgba(232,101,43,.25);
  font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;
  color:var(--accent-flame);font-weight:600;margin-bottom:2.5rem;
}

.cta-heading{
  font-family:'Noto Sans JP',sans-serif;
  font-size:clamp(1.8rem,4vw,2.8rem);
  font-weight:300;letter-spacing:.08em;
  color:#fff;line-height:1.8;
  margin-bottom:1.5rem;
}

.cta-sub{
  font-family:'Noto Sans JP',sans-serif;
  font-size:1rem;font-weight:300;
  color:rgba(255,255,255,.5);line-height:2;letter-spacing:.03em;
}

/* Form */
.cta-form-wrapper{
  background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.08);
  border-radius:1.5rem;
  padding:2.5rem;
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
}

.cta-form{
  display:flex;flex-direction:column;gap:1.5rem;
}

.form-field{
  display:flex;flex-direction:column;gap:.5rem;
}
.form-field label{
  font-family:'Noto Sans JP',sans-serif;
  font-size:.82rem;font-weight:500;letter-spacing:.06em;
  color:rgba(255,255,255,.7);
}
.form-required{
  display:inline-block;
  font-size:.65rem;font-weight:600;letter-spacing:.08em;
  background:linear-gradient(135deg,var(--accent-ember),var(--accent-flame));
  color:#fff;
  padding:.15rem .5rem;border-radius:4px;
  margin-left:.4rem;
  vertical-align:middle;
}

.form-field input[type="text"],
.form-field input[type="email"],
.form-field textarea{
  font-family:'Noto Sans JP',sans-serif;
  font-size:.95rem;font-weight:300;
  color:#fff;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.12);
  border-radius:.75rem;
  padding:.9rem 1.2rem;
  outline:none;
  transition:border-color .3s var(--ease-out-expo),box-shadow .3s var(--ease-out-expo);
}
.form-field input:focus,
.form-field textarea:focus{
  border-color:rgba(232,101,43,.5);
  box-shadow:0 0 0 3px rgba(232,101,43,.1);
}
.form-field input::placeholder,
.form-field textarea::placeholder{
  color:rgba(255,255,255,.2);
}
.form-field textarea{
  resize:vertical;min-height:100px;
}

/* Checkbox */
.form-field--checkbox{
  margin-top:.5rem;
}
.checkbox-label{
  display:flex;align-items:center;gap:.7rem;cursor:pointer;
}
.checkbox-label input[type="checkbox"]{
  position:absolute;opacity:0;width:0;height:0;
}
.checkbox-custom{
  width:20px;height:20px;border-radius:5px;flex-shrink:0;
  border:2px solid rgba(255,255,255,.2);
  background:rgba(255,255,255,.04);
  position:relative;
  transition:border-color .3s,background .3s;
}
.checkbox-label input:checked ~ .checkbox-custom{
  background:linear-gradient(135deg,var(--accent-ember),var(--accent-flame));
  border-color:var(--accent-ember);
}
.checkbox-label input:checked ~ .checkbox-custom::after{
  content:'';position:absolute;
  left:5px;top:1px;width:6px;height:11px;
  border:solid #fff;border-width:0 2px 2px 0;
  transform:rotate(45deg);
}
.checkbox-text{
  font-family:'Noto Sans JP',sans-serif;
  font-size:.82rem;font-weight:400;
  color:rgba(255,255,255,.6);
}

/* Form error state */
.form-error{
  display:none;
  align-items:center;gap:.4rem;
  margin-top:.7rem;margin-left:1.7rem;
  font-family:'Noto Sans JP',sans-serif;
  font-size:.78rem;font-weight:500;letter-spacing:.02em;
  color:#EF4444;
  animation:formErrorShake .45s var(--ease-out-expo);
}
.form-field.has-error .form-error{
  display:inline-flex;
}
.form-field--checkbox.has-error .checkbox-custom{
  border-color:#EF4444 !important;
  background-color:rgba(239,68,68,.1) !important;
  background-image:none !important;
  box-shadow:0 0 0 3px rgba(239,68,68,.15);
  animation:formErrorShake .45s var(--ease-out-expo);
}
@keyframes formErrorShake{
  0%,100%{transform:translateX(0)}
  20%{transform:translateX(-4px)}
  40%{transform:translateX(4px)}
  60%{transform:translateX(-3px)}
  80%{transform:translateX(2px)}
}

.cta-submit{
  font-family:'Noto Sans JP',sans-serif;
  font-size:1rem;font-weight:600;letter-spacing:.1em;
  color:#fff;
  background:linear-gradient(135deg,var(--accent-ember),var(--accent-flame));
  border:none;border-radius:9999px;
  padding:1rem 2rem;
  cursor:pointer;
  position:relative;overflow:hidden;
  transition:transform .3s var(--ease-spring),box-shadow .3s var(--ease-out-expo);
  margin-top:.5rem;
}
.cta-submit:hover{
  transform:translateY(-2px);
  box-shadow:0 8px 30px rgba(232,101,43,.4);
}
.cta-submit:active{
  transform:translateY(0);
}


/* ══════════════════════════════════
   FOOTER
   ══════════════════════════════════ */
.site-footer{
  position:relative;z-index:2;
  background:var(--bg-dark);
  border-top:1px solid rgba(255,255,255,.06);
}

.footer-inner{
  max-width:1100px;margin:0 auto;
  padding:4rem 2rem 3rem;
  display:grid;grid-template-columns:1fr auto 1fr;gap:3rem;
  align-items:start;
}

.footer-brand{
  display:flex;flex-direction:column;gap:.6rem;
}
.footer-logo{
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:1.2rem;font-weight:700;letter-spacing:-.01em;
  color:#fff;
}
.footer-tagline{
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:.85rem;font-weight:300;letter-spacing:.1em;
  background:linear-gradient(135deg,var(--accent-ember),var(--accent-flame));
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;
  opacity:.6;
}

.footer-nav{
  display:flex;flex-direction:column;gap:.8rem;
  align-items:center;
}
.footer-nav a{
  font-family:'Plus Jakarta Sans','Noto Sans JP',sans-serif;
  font-size:.78rem;font-weight:400;letter-spacing:.08em;
  color:rgba(255,255,255,.4);text-decoration:none;
  transition:color .3s var(--ease-out-expo);
}
.footer-nav a:hover{color:rgba(255,255,255,.8)}

.footer-info{
  text-align:right;
  display:flex;flex-direction:column;gap:.6rem;
}
.footer-info p{
  font-family:'Noto Sans JP',sans-serif;
  font-size:.78rem;font-weight:300;
  color:rgba(255,255,255,.35);line-height:1.8;
}

.footer-bottom{
  border-top:1px solid rgba(255,255,255,.06);
  padding:1.5rem 2rem;
  text-align:center;
  display:flex;flex-direction:column;align-items:center;gap:.8rem;
}
.footer-legal{
  display:flex;align-items:center;gap:1.5rem;
}
.footer-legal a{
  font-family:'Noto Sans JP',sans-serif;
  font-size:.72rem;font-weight:400;letter-spacing:.06em;
  color:rgba(255,255,255,.35);text-decoration:none;
  transition:color .3s var(--ease-out-expo);
}
.footer-legal a:hover{color:rgba(255,255,255,.7)}
.footer-bottom span{
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:.7rem;letter-spacing:.1em;
  color:rgba(255,255,255,.25);
}


/* ══════════════════════════════════
   KEYFRAMES
   ══════════════════════════════════ */
@keyframes fadeUp{to{opacity:1;transform:translateY(0)}}
@keyframes fadeIn{to{opacity:1}}
@keyframes emberglow{
  0%,100%{opacity:.7;transform:scale(1)}
  50%{opacity:1;transform:scale(1.5)}
}
@keyframes heroReveal{to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes gradientFlow{
  0%{background-position:0% 50%}
  50%{background-position:100% 50%}
  100%{background-position:0% 50%}
}
@keyframes scrollDrop{
  0%{top:-100%}
  100%{top:200%}
}


/* ══════════════════════════════════
   RESPONSIVE
   ══════════════════════════════════ */
@media(max-width:768px){
  .hero{padding:1rem 1rem 1rem;padding-top:calc(var(--header-h) + .5rem);min-height:auto;min-height:100svh}
  .hero-inner{gap:1rem}
  .hero-keywords{gap:.3rem}
  .hero-tagline-ja{letter-spacing:.08em}
  .ai-intro{padding:5rem 1rem 4rem}
  .ai-intro-heading{font-size:clamp(1.3rem,5vw,1.8rem)}
  .ai-intro-features{gap:1.2rem}
  .ai-intro-feature{flex-direction:column;gap:1rem;padding:1.8rem 1.4rem;text-align:center}
  .ai-intro-feature--wide,
  .ai-intro-feature--mid,
  .ai-intro-feature--narrow{width:100%;margin:0;align-self:center}
  .ai-intro-feature-header{flex-direction:column;align-items:center;gap:1rem}
  .ai-intro-feature-icon{width:96px;height:96px;min-width:96px}
  .ai-intro-feature-title{text-align:center}
  .ai-intro-feature-text{text-align:left}
  .ai-intro-cta{font-size:.88rem;padding:.9rem 2rem}
  .vision{padding:6rem 1rem 5rem}
  .vision-pillars{grid-template-columns:1fr;gap:1.5rem}
  .pillar{padding:2.5rem 1.8rem}
  .services{padding:5rem 1rem 6rem}
  .services-grid{grid-template-columns:1fr;gap:1rem}
  .service-card{padding:2.2rem 1.8rem}
  .ceo-message{padding:6rem 1rem 5rem}
  .ceo-message-content{gap:2rem}
  .ceo-header{
    grid-template-columns:1fr;
    gap:1.5rem;
    justify-items:center;
  }
  .ceo-header-text{
    text-align:center;
    align-items:center;
  }
  .ceo-photo-placeholder{width:220px;height:280px}
  .ceo-body p{text-align:left}
  .members{padding:5rem 1rem 6rem}
  .members-list{gap:2.5rem}
  .member-row{
    gap:1.5rem;padding:2rem 1.5rem;
  }
  .member-header{
    grid-template-columns:1fr;
    gap:1.5rem;
    justify-items:center;
  }
  .member-header-text{
    order:2;
    text-align:center;
    align-items:center;
  }
  .member-photo-wrapper{
    order:1;
  }
  .member-photo-placeholder{width:160px;height:160px}
  .member-desc{text-align:left}
  .company{padding:4rem 1rem}
  .company-table th{display:block;padding-bottom:.3rem;border-bottom:none;width:auto}
  .company-table td{display:block;padding-top:0;padding-bottom:1.5rem}
  /* CTA */
  .cta{padding:5rem 1rem 4rem}
  .cta-inner{grid-template-columns:1fr;gap:3rem}
  .cta-text{text-align:center}
  .cta-form-wrapper{padding:1.8rem}
  /* Footer */
  .footer-inner{
    grid-template-columns:1fr;gap:2rem;
    text-align:center;padding:3rem 1rem 2rem;
  }
  .footer-nav{flex-direction:row;flex-wrap:wrap;justify-content:center;gap:.5rem 1.2rem}
  .footer-info{text-align:center}
  .footer-bottom{padding:1rem}
}
@media(min-width:769px) and (max-width:1024px){
  .services-grid{grid-template-columns:repeat(2,1fr)}
  .ceo-message-content{gap:2.5rem}
  .ceo-header{gap:2.5rem}
  .member-row{gap:1.8rem;padding:2.5rem}
  .member-header{gap:2rem}
  .cta-inner{grid-template-columns:1fr 1fr;gap:3rem}
}


/* ══════════════════════════════════
   COOKIE CONSENT BANNER
   ══════════════════════════════════ */
.cookie-banner{
  position:fixed;bottom:1.5rem;right:1.5rem;
  max-width:380px;width:calc(100% - 3rem);
  background:rgba(253,251,247,.97);
  backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
  border:1px solid rgba(26,26,46,.08);
  border-radius:1rem;
  box-shadow:0 20px 48px rgba(26,26,46,.12),0 4px 16px rgba(26,26,46,.06);
  padding:1.3rem 1.4rem 1.2rem;
  z-index:200;
  transform:translateY(calc(100% + 3rem));
  opacity:0;
  transition:transform .7s var(--ease-out-expo),opacity .5s var(--ease-out-expo);
  pointer-events:none;
}
.cookie-banner.visible{
  transform:translateY(0);
  opacity:1;
  pointer-events:auto;
}
.cookie-banner-content{
  display:flex;flex-direction:column;gap:.8rem;
  position:relative;
}
.cookie-banner-head{
  display:flex;align-items:center;gap:.5rem;
}
.cookie-banner-icon{
  width:20px;height:20px;flex-shrink:0;
  color:var(--accent-ember);
  display:flex;align-items:center;justify-content:center;
}
.cookie-banner-title{
  font-family:'Noto Sans JP',sans-serif;
  font-size:.92rem;font-weight:600;
  color:var(--fg);letter-spacing:.04em;
}
.cookie-banner-desc{
  font-family:'Noto Sans JP',sans-serif;
  font-size:.76rem;font-weight:300;
  line-height:1.85;color:var(--fg-light);letter-spacing:.02em;
  margin:0;
}
.cookie-banner-desc a{
  color:var(--accent-ember);
  text-decoration:underline;
  text-decoration-thickness:1px;
  text-underline-offset:2px;
  transition:text-decoration-thickness .2s;
}
.cookie-banner-desc a:hover{
  text-decoration-thickness:2px;
}
.cookie-banner-actions{
  display:flex;gap:.6rem;
  margin-top:.3rem;
}
.cookie-btn{
  flex:1;
  padding:.65rem 1rem;
  font-family:'Noto Sans JP',sans-serif;
  font-size:.78rem;font-weight:600;letter-spacing:.05em;
  border-radius:9999px;
  border:none;
  cursor:pointer;
  transition:transform .3s var(--ease-spring),box-shadow .3s var(--ease-out-expo),background .3s;
}
.cookie-btn--accept{
  background:linear-gradient(135deg,var(--accent-ember),var(--accent-flame));
  color:#fff;
  box-shadow:0 4px 14px rgba(232,101,43,.28);
}
.cookie-btn--accept:hover{
  transform:translateY(-2px);
  box-shadow:0 8px 22px rgba(232,101,43,.4);
}
.cookie-btn--decline{
  background:transparent;
  color:var(--fg-light);
  border:1px solid rgba(26,26,46,.15);
}
.cookie-btn--decline:hover{
  background:rgba(26,26,46,.04);
  color:var(--fg);
}
.cookie-banner-close{
  position:absolute;
  top:-.5rem;right:-.5rem;
  width:26px;height:26px;
  background:rgba(253,251,247,1);
  border:1px solid rgba(26,26,46,.1);
  border-radius:50%;
  font-size:16px;line-height:1;
  color:var(--fg-light);
  cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  padding:0;
  transition:background .3s,color .3s,transform .3s;
  box-shadow:0 2px 8px rgba(26,26,46,.08);
}
.cookie-banner-close:hover{
  background:rgba(232,101,43,.08);
  color:var(--accent-ember);
  transform:rotate(90deg);
}

@media(max-width:480px){
  .cookie-banner{
    bottom:.8rem;right:.8rem;left:.8rem;
    width:auto;max-width:none;
    padding:1.1rem 1.2rem 1rem;
  }
  .cookie-banner-title{font-size:.88rem}
  .cookie-banner-desc{font-size:.72rem}
  .cookie-btn{padding:.55rem .8rem;font-size:.74rem}
}
