/* =========================================================
   Machine Edge Platform — Top Page Styles
   Theme: Industrial / Edge-tech / Dark with electric accent
   ========================================================= */

:root{
  --bg:        #07090d;
  --bg-2:      #0c1018;
  --bg-3:      #11161f;
  --surface:   #131a25;
  --surface-2: #18202d;
  --line:      #232c3a;
  --line-soft: #1b232f;
  --text:      #e9eef5;
  --text-soft: #9aa7b8;
  --text-mute: #6b7889;
  --accent:    #2be0c8;   /* edge electric teal */
  --accent-2:  #00b4ff;   /* signal blue */
  --accent-deep:#0a9a89;
  --danger:    #ff5d6c;
  --warn:      #ffb454;
  --maxw: 1180px;
  --radius: 14px;
  --radius-lg: 22px;
  --ease: cubic-bezier(.16,.84,.44,1);
  --font-jp: "Noto Sans JP", system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-en: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-mono: "JetBrains Mono", "SFMono-Regular", Consolas, monospace;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;scroll-padding-top:80px;-webkit-text-size-adjust:100%;}
body{
  background:var(--bg);
  color:var(--text);
  font-family:var(--font-jp);
  line-height:1.8;
  font-size:16px;
  letter-spacing:.01em;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
img,svg{display:block;max-width:100%;}
a{color:inherit;text-decoration:none;}
ul{list-style:none;}

.container{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 24px;}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;align-items:center;gap:.5em;
  font-family:var(--font-jp);font-weight:700;font-size:.98rem;
  padding:.95em 1.7em;border-radius:999px;border:1px solid transparent;
  cursor:pointer;transition:transform .25s var(--ease),box-shadow .25s var(--ease),background .25s,border-color .25s,color .25s;
  white-space:nowrap;
}
.btn-primary{
  background:linear-gradient(120deg,var(--accent),var(--accent-2));
  color:#04130f;box-shadow:0 8px 30px -8px rgba(43,224,200,.5);
}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 14px 40px -8px rgba(43,224,200,.65);}
.btn-ghost{background:transparent;border-color:var(--line);color:var(--text);}
.btn-ghost:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-2px);}
.btn-block{width:100%;justify-content:center;margin-top:.4rem;}

/* ---------- Header ---------- */
.site-header{
  position:fixed;top:0;left:0;right:0;z-index:100;
  background:rgba(7,9,13,.55);backdrop-filter:blur(14px);
  border-bottom:1px solid transparent;transition:background .3s,border-color .3s;
}
.site-header.scrolled{background:rgba(7,9,13,.9);border-bottom-color:var(--line-soft);}
.header-inner{display:flex;align-items:center;justify-content:space-between;height:72px;}
.brand{display:flex;align-items:center;gap:.55rem;font-family:var(--font-en);font-weight:800;font-size:1.2rem;letter-spacing:-.01em;color:var(--text);}
.brand-mark{color:var(--accent);display:flex;}
.brand-accent{color:var(--accent);}
.brand-text{line-height:1;}
.site-nav{display:flex;align-items:center;gap:1.9rem;}
.site-nav a{font-size:.92rem;font-weight:500;color:var(--text-soft);transition:color .2s;position:relative;}
.site-nav a:not(.nav-cta):hover{color:var(--text);}
.site-nav a:not(.nav-cta)::after{content:"";position:absolute;left:0;bottom:-6px;width:0;height:2px;background:var(--accent);transition:width .25s var(--ease);}
.site-nav a:not(.nav-cta):hover::after{width:100%;}
.nav-cta{
  background:linear-gradient(120deg,var(--accent),var(--accent-2));
  color:#04130f !important;font-weight:700;padding:.6em 1.2em;border-radius:999px;
  box-shadow:0 6px 20px -8px rgba(43,224,200,.5);transition:transform .2s,box-shadow .2s;
}
.nav-cta:hover{transform:translateY(-2px);box-shadow:0 10px 26px -8px rgba(43,224,200,.7);}
.nav-toggle{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:8px;}
.nav-toggle span{width:24px;height:2px;background:var(--text);border-radius:2px;transition:.3s;}

/* ---------- Hero ---------- */
.hero{position:relative;padding:170px 0 90px;overflow:hidden;}
.hero-grid-bg{
  position:absolute;inset:0;z-index:0;
  background-image:linear-gradient(var(--line-soft) 1px,transparent 1px),linear-gradient(90deg,var(--line-soft) 1px,transparent 1px);
  background-size:54px 54px;
  mask-image:radial-gradient(ellipse 80% 70% at 50% 30%,#000 30%,transparent 80%);
  -webkit-mask-image:radial-gradient(ellipse 80% 70% at 50% 30%,#000 30%,transparent 80%);
  opacity:.5;
}
.hero-glow{
  position:absolute;z-index:0;top:-180px;left:50%;transform:translateX(-50%);
  width:900px;height:700px;
  background:radial-gradient(circle at 50% 40%,rgba(43,224,200,.16),transparent 60%),radial-gradient(circle at 65% 55%,rgba(0,180,255,.12),transparent 60%);
  filter:blur(8px);pointer-events:none;
}
.hero-inner{position:relative;z-index:1;text-align:center;}
.hero-eyebrow{
  font-family:var(--font-mono);font-size:.82rem;letter-spacing:.4em;
  color:var(--accent);margin-bottom:1.6rem;font-weight:500;
}
.hero-title{
  font-family:var(--font-jp);font-weight:900;
  font-size:clamp(2.3rem,6.2vw,4.6rem);line-height:1.18;letter-spacing:.005em;
  margin-bottom:1.6rem;
}
.hero-title .hl{
  background:linear-gradient(120deg,var(--accent),var(--accent-2));
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.hero-lead{
  font-size:clamp(1rem,1.6vw,1.18rem);color:var(--text-soft);
  max-width:720px;margin:0 auto 2.4rem;line-height:2;
}
.hero-lead strong{color:var(--text);font-weight:700;}
.hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-bottom:4rem;}
.hero-pillars{
  display:grid;grid-template-columns:repeat(2,1fr);gap:1.2rem;
  max-width:760px;margin:0 auto;
}
.hero-pillar{
  text-align:left;background:linear-gradient(180deg,var(--surface),var(--bg-2));
  border:1px solid var(--line);border-radius:var(--radius);padding:1.5rem 1.6rem;
  position:relative;overflow:hidden;transition:border-color .3s,transform .3s;
}
.hero-pillar::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:linear-gradient(var(--accent),var(--accent-2));}
.hero-pillar:hover{border-color:var(--accent);transform:translateY(-3px);}
.pillar-num{font-family:var(--font-mono);font-size:.8rem;color:var(--accent);letter-spacing:.1em;}
.pillar-name{display:block;font-weight:700;font-size:1.12rem;margin:.35rem 0 .25rem;}
.pillar-desc{display:block;font-size:.9rem;color:var(--text-soft);}

/* ticker */
.hero-ticker{margin-top:4.5rem;border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);padding:.9rem 0;overflow:hidden;}
.ticker-track{display:flex;gap:1.6rem;white-space:nowrap;width:max-content;animation:ticker 28s linear infinite;font-family:var(--font-mono);font-size:.85rem;letter-spacing:.18em;color:var(--text-mute);}
.ticker-track span{color:var(--text-soft);}
.ticker-track span:nth-child(even){color:var(--accent);}
@keyframes ticker{from{transform:translateX(0);}to{transform:translateX(-50%);}}

/* ---------- Section base ---------- */
.section{padding:100px 0;position:relative;}
.section-eyebrow{
  font-family:var(--font-mono);font-size:.78rem;letter-spacing:.22em;
  color:var(--accent);margin-bottom:1rem;font-weight:500;
}
.section-title{
  font-weight:900;font-size:clamp(1.7rem,4vw,2.9rem);line-height:1.3;
  letter-spacing:.01em;margin-bottom:1.2rem;
}
.section-sub{color:var(--text-soft);max-width:680px;font-size:1.02rem;line-height:1.9;margin-bottom:3rem;}

/* ---------- Hero visual ---------- */
.hero-visual{margin:0 auto 3.4rem;max-width:880px;position:relative;}
.hero-visual img{width:100%;height:auto;display:block;filter:drop-shadow(0 24px 60px rgba(0,0,0,.5));}

/* ---------- Shared section illustration ---------- */
.section-visual{margin:0 auto 3rem;max-width:480px;}
.section-visual img{width:100%;height:auto;display:block;}
.section-visual--sm{max-width:380px;margin-bottom:2.4rem;}

/* ---------- Manifesto ---------- */
.manifesto{background:linear-gradient(180deg,var(--bg),var(--bg-2));}
.manifesto-layout{display:grid;grid-template-columns:1.35fr .9fr;gap:2.8rem;align-items:center;}
.manifesto-figure{margin:0;}
.manifesto-figure img{width:100%;height:auto;display:block;}
.manifesto-body{max-width:820px;}
.manifesto-body p{color:var(--text-soft);font-size:1.08rem;line-height:2.05;margin-bottom:1.5rem;}
.manifesto-body strong{color:var(--text);font-weight:700;}
.manifesto-statement{
  font-size:1.25rem !important;color:var(--text) !important;font-weight:500;
  border-left:3px solid var(--accent);padding:.6rem 0 .6rem 1.4rem;margin:2.2rem 0 !important;
  line-height:1.9 !important;
}
.manifesto-statement .hl{
  font-weight:700;
  background:linear-gradient(120deg,var(--accent),var(--accent-2));
  -webkit-background-clip:text;background-clip:text;color:transparent;
}

/* ---------- Antithesis ---------- */
.antithesis{background:var(--bg);}
.antithesis-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem;}
.myth-card{
  background:linear-gradient(180deg,var(--surface),var(--bg-2));
  border:1px solid var(--line);border-radius:var(--radius);padding:1.8rem 1.7rem;
  transition:transform .3s var(--ease),border-color .3s,box-shadow .3s;
}
.myth-card:hover{transform:translateY(-5px);border-color:var(--accent);box-shadow:0 18px 50px -22px rgba(43,224,200,.4);}
.myth-tag{
  display:inline-block;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.12em;
  color:var(--danger);border:1px solid rgba(255,93,108,.4);border-radius:999px;
  padding:.25em .8em;margin-bottom:1rem;
}
.myth-card h3{font-size:1.12rem;font-weight:700;line-height:1.6;margin-bottom:1rem;color:var(--text);}
.myth-vs{font-size:.92rem;color:var(--text-soft);line-height:1.8;margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px dashed var(--line);}
.myth-our{font-size:.95rem;line-height:1.85;color:var(--text);}
.myth-our strong{color:var(--accent);font-weight:700;}

/* ---------- Products ---------- */
.products{background:linear-gradient(180deg,var(--bg-2),var(--bg));}
.product-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:1.6rem;margin-bottom:3.5rem;}
.product-card{
  background:linear-gradient(180deg,var(--surface),var(--bg-2));
  border:1px solid var(--line);border-radius:var(--radius-lg);padding:2.2rem 2rem;
  transition:transform .3s var(--ease),border-color .3s,box-shadow .3s;position:relative;overflow:hidden;
}
.product-card:hover{transform:translateY(-5px);border-color:var(--accent);box-shadow:0 24px 60px -28px rgba(43,224,200,.5);}
.product-card--accent::after{content:"";position:absolute;top:-40%;right:-30%;width:60%;height:120%;background:radial-gradient(circle,rgba(0,180,255,.14),transparent 70%);pointer-events:none;}
.product-head{display:flex;align-items:center;gap:1.1rem;margin-bottom:1.4rem;}
.product-icon{color:var(--accent);background:rgba(43,224,200,.08);border:1px solid var(--line);border-radius:14px;padding:10px;display:flex;}
.product-kicker{font-family:var(--font-mono);font-size:.74rem;letter-spacing:.18em;color:var(--text-mute);}
.product-name{font-size:1.45rem;font-weight:800;letter-spacing:.005em;}
.product-tagline{font-size:1.08rem;font-weight:700;color:var(--accent);margin-bottom:1rem;}
.product-desc{color:var(--text-soft);font-size:.98rem;line-height:1.95;margin-bottom:1.5rem;}
.product-feats li{position:relative;padding-left:1.7rem;margin-bottom:.7rem;font-size:.94rem;color:var(--text);line-height:1.7;}
.product-feats li::before{content:"";position:absolute;left:0;top:.62em;width:9px;height:9px;border-right:2px solid var(--accent);border-bottom:2px solid var(--accent);transform:rotate(45deg);}

/* flow */
.product-flow{
  display:flex;align-items:stretch;justify-content:center;gap:.6rem;flex-wrap:wrap;
  background:var(--bg-3);border:1px solid var(--line);border-radius:var(--radius);padding:1.6rem 1.2rem;
}
.flow-node{
  flex:1;min-width:140px;text-align:center;display:flex;align-items:center;justify-content:center;
  background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:1rem .8rem;
  font-size:.92rem;font-weight:500;color:var(--text-soft);line-height:1.5;
}
.flow-node small{color:var(--text-mute);font-size:.78rem;}
.flow-node--em{color:var(--text);font-weight:700;border-color:var(--accent);background:linear-gradient(180deg,rgba(43,224,200,.07),var(--surface));}
.flow-arrow{display:flex;align-items:center;color:var(--accent);font-size:1.4rem;font-weight:700;}

/* ---------- Screenshot showcase ---------- */
.showcase-lead{text-align:center;margin:4.5rem 0 1.8rem;}
.showcase-lead .section-eyebrow{margin-bottom:.7rem;}
.showcase-title{font-size:clamp(1.4rem,3vw,2.1rem);font-weight:900;line-height:1.4;}
.screenshot-showcase{margin:0 auto;max-width:1040px;}
.screen-frame{
  border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--bg-3);
  box-shadow:0 36px 80px -34px rgba(0,0,0,.8), 0 0 0 1px rgba(43,224,200,.12), 0 0 60px -20px rgba(43,224,200,.25);
}
.screen-bar{display:flex;align-items:center;gap:8px;padding:11px 15px;background:var(--surface);border-bottom:1px solid var(--line);}
.screen-bar > span{width:11px;height:11px;border-radius:50%;background:#3a4658;flex:0 0 auto;}
.screen-bar > span:nth-child(1){background:#ff5d6c;}
.screen-bar > span:nth-child(2){background:#ffb454;}
.screen-bar > span:nth-child(3){background:#2be0c8;}
.screen-url{margin-left:12px;font-family:var(--font-mono);font-size:.78rem;letter-spacing:.02em;color:var(--text-mute);background:none;width:auto;height:auto;border-radius:0;}
.screen-frame img{width:100%;height:auto;display:block;}
.screenshot-showcase figcaption{margin-top:1.1rem;text-align:center;font-size:.9rem;color:var(--text-soft);line-height:1.7;max-width:760px;margin-left:auto;margin-right:auto;}

/* ---------- Compare ---------- */
.compare{background:var(--bg);}
.compare-table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius-lg);}
.compare-table{width:100%;border-collapse:collapse;min-width:680px;}
.compare-table th,.compare-table td{padding:1.05rem 1.3rem;text-align:left;font-size:.96rem;border-bottom:1px solid var(--line-soft);}
.compare-table thead th{font-size:.92rem;font-weight:700;background:var(--bg-3);letter-spacing:.02em;}
.compare-table thead .ct-old{color:var(--text-soft);}
.compare-table thead .ct-new{color:var(--accent);}
.compare-table tbody th{font-weight:700;color:var(--text);width:22%;background:var(--bg-2);}
.compare-table tbody td{color:var(--text-soft);}
.compare-table tbody td.ct-new{color:var(--text);background:rgba(43,224,200,.05);}
.compare-table tbody td.ct-new strong{color:var(--accent);font-weight:700;}
.compare-table tbody tr:last-child th,.compare-table tbody tr:last-child td{border-bottom:none;}
.ct-axis{width:22%;}

/* ---------- Usecase ---------- */
.usecase{background:linear-gradient(180deg,var(--bg),var(--bg-2));}
.usecase-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.3rem;}
.use-card{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:1.7rem 1.6rem;
  transition:transform .3s var(--ease),border-color .3s;position:relative;
}
.use-card::before{content:"";position:absolute;left:1.6rem;top:0;width:34px;height:3px;background:linear-gradient(90deg,var(--accent),var(--accent-2));border-radius:0 0 3px 3px;}
.use-card:hover{transform:translateY(-4px);border-color:var(--accent);}
.use-card h3{font-size:1.1rem;font-weight:700;margin:.4rem 0 .8rem;color:var(--text);}
.use-card p{font-size:.92rem;color:var(--text-soft);line-height:1.85;}

/* ---------- Distinction (有意性) ---------- */
.distinction-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem;margin-bottom:4.5rem;}
.dist-card{
  display:flex;flex-direction:column;
  background:linear-gradient(180deg,var(--surface),var(--bg-2));
  border:1px solid var(--line);border-radius:var(--radius-lg);padding:1.8rem 1.7rem;
  transition:transform .3s var(--ease),border-color .3s,box-shadow .3s;
}
.dist-card:hover{transform:translateY(-5px);border-color:var(--accent);box-shadow:0 22px 55px -28px rgba(43,224,200,.45);}
.dist-card--photo{padding-top:1.7rem;}
.dist-photo{
  position:relative;margin:-1.8rem -1.7rem 1.4rem;border-bottom:1px solid var(--line);
  background:var(--bg-3);overflow:hidden;border-radius:var(--radius-lg) var(--radius-lg) 0 0;
}
.dist-photo img{width:100%;height:230px;object-fit:cover;object-position:center 30%;display:block;}
.dist-photo--cert img{object-fit:contain;background:#f3efe2;padding:8px;height:230px;}
.dist-photo figcaption{
  position:absolute;left:0;right:0;bottom:0;
  font-family:var(--font-mono);font-size:.72rem;letter-spacing:.03em;color:var(--text);
  background:linear-gradient(180deg,transparent,rgba(7,9,13,.92));padding:1.4rem .9rem .7rem;
}
.dist-badge{
  display:inline-block;align-self:flex-start;font-family:var(--font-mono);font-size:.7rem;letter-spacing:.1em;
  color:var(--accent);border:1px solid rgba(43,224,200,.4);border-radius:999px;padding:.25em .8em;margin-bottom:.9rem;
}
.dist-card h3{font-size:1.18rem;font-weight:800;line-height:1.5;margin-bottom:.85rem;color:var(--text);}
.dist-card p{font-size:.92rem;color:var(--text-soft);line-height:1.85;}

.foresight-lead{margin:0 0 2.2rem;padding-top:1rem;border-top:1px solid var(--line-soft);}
.foresight-subtitle{font-size:clamp(1.3rem,2.8vw,1.9rem);font-weight:900;line-height:1.4;}

/* ---------- Foresight ---------- */
.foresight{background:var(--bg);}
.foresight-grid{display:grid;grid-template-columns:1fr 1fr;gap:2.6rem;align-items:center;}
.foresight-photo{position:relative;border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;background:linear-gradient(180deg,var(--surface),var(--bg-2));}
.foresight-photo::before{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;box-shadow:inset 0 0 0 1px rgba(43,224,200,.18);border-radius:inherit;}
.foresight-photo img{width:100%;height:auto;display:block;min-height:240px;object-fit:cover;}
.foresight-photo figcaption{
  position:absolute;left:0;right:0;bottom:0;z-index:3;
  font-family:var(--font-mono);font-size:.78rem;letter-spacing:.04em;color:var(--text);
  background:linear-gradient(180deg,transparent,rgba(7,9,13,.92));
  padding:1.6rem 1.1rem .9rem;
}
.foresight-text .foresight-quote{
  font-weight:900;font-size:clamp(1.3rem,2.6vw,1.9rem);line-height:1.6;
  margin-bottom:1.6rem;border-left:3px solid var(--accent);padding-left:1.2rem;
}
.foresight-text .foresight-quote .hl{
  background:linear-gradient(120deg,var(--accent),var(--accent-2));
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.foresight-text p{color:var(--text-soft);line-height:1.95;margin-bottom:1.3rem;}
.foresight-text strong{color:var(--text);font-weight:700;}
.foresight-points{margin-bottom:1.3rem;}
.foresight-points li{position:relative;padding-left:1.7rem;margin-bottom:.7rem;font-size:.95rem;color:var(--text);line-height:1.7;}
.foresight-points li::before{content:"";position:absolute;left:0;top:.62em;width:9px;height:9px;border-right:2px solid var(--accent);border-bottom:2px solid var(--accent);transform:rotate(45deg);}
.foresight-points strong{color:var(--accent);font-weight:700;}
.foresight-note{font-size:.95rem;border-top:1px dashed var(--line);padding-top:1.2rem;}

/* ---------- FAQ ---------- */
.faq{background:linear-gradient(180deg,var(--bg),var(--bg-2));}
.faq-list{max-width:860px;}
.faq-item{
  background:linear-gradient(180deg,var(--surface),var(--bg-2));
  border:1px solid var(--line);border-radius:var(--radius);
  margin-bottom:1rem;overflow:hidden;transition:border-color .25s;
}
.faq-item[open]{border-color:var(--accent);}
.faq-item:hover{border-color:var(--accent);}
.faq-item summary{
  list-style:none;cursor:pointer;padding:1.25rem 1.5rem;
  display:flex;align-items:center;gap:1rem;font-weight:700;font-size:1.02rem;line-height:1.6;color:var(--text);
}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::before{
  content:"Q";flex:0 0 auto;width:28px;height:28px;border-radius:7px;
  display:flex;align-items:center;justify-content:center;
  font-family:var(--font-en);font-weight:800;font-size:.9rem;color:#04130f;
  background:linear-gradient(120deg,var(--accent),var(--accent-2));
}
.faq-item summary::after{
  content:"";flex:0 0 auto;margin-left:auto;width:11px;height:11px;
  border-right:2px solid var(--text-soft);border-bottom:2px solid var(--text-soft);
  transform:rotate(45deg);transition:transform .25s var(--ease);
}
.faq-item[open] summary::after{transform:rotate(225deg);border-color:var(--accent);}
.faq-answer{
  padding:0 1.5rem 1.4rem 4rem;color:var(--text-soft);font-size:.96rem;line-height:1.9;
}
@media (max-width:520px){
  .faq-answer{padding-left:1.5rem;}
}

/* ---------- Contact ---------- */
.contact{background:linear-gradient(180deg,var(--bg-2),var(--bg));}
.contact-inner{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:start;}
.contact-title{font-weight:900;font-size:clamp(1.7rem,3.6vw,2.6rem);line-height:1.35;margin-bottom:1.3rem;}
.contact-lead{color:var(--text-soft);line-height:2;margin-bottom:1.6rem;}
.contact-points li{padding:.45rem 0;color:var(--text);font-size:.98rem;font-weight:500;}
.contact-form{
  background:linear-gradient(180deg,var(--surface),var(--bg-2));
  border:1px solid var(--line);border-radius:var(--radius-lg);padding:2.2rem 2rem;
}
.form-title{font-size:1.25rem;font-weight:800;margin-bottom:1.5rem;}
.form-row{margin-bottom:1.15rem;}
.form-grid2{display:grid;grid-template-columns:1fr 1fr;gap:1rem;}
.form-row label{display:block;font-size:.88rem;font-weight:600;margin-bottom:.5rem;color:var(--text-soft);}
.req{color:var(--danger);font-size:.72rem;border:1px solid rgba(255,93,108,.4);border-radius:4px;padding:.05em .45em;margin-left:.4em;vertical-align:middle;}
.contact-form input,.contact-form select,.contact-form textarea{
  width:100%;background:var(--bg);border:1px solid var(--line);border-radius:10px;
  padding:.8rem .9rem;color:var(--text);font-family:var(--font-jp);font-size:.95rem;
  transition:border-color .2s,box-shadow .2s;
}
.contact-form input::placeholder,.contact-form textarea::placeholder{color:var(--text-mute);}
.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus{
  outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,224,200,.15);
}
.contact-form textarea{resize:vertical;}
.contact-form input.invalid,.contact-form select.invalid{border-color:var(--danger);box-shadow:0 0 0 3px rgba(255,93,108,.15);}
.hp-field{position:absolute !important;left:-9999px !important;width:1px;height:1px;overflow:hidden;opacity:0;}
.form-note{margin-top:1rem;font-size:.9rem;min-height:1.2em;}
.form-note.ok{color:var(--accent);}
.form-note.err{color:var(--danger);}

/* ---------- Company ---------- */
.company{background:var(--bg);}
.company-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:2.4rem;align-items:stretch;}
.company-table{border-top:1px solid var(--line);}
.company-row{display:grid;grid-template-columns:130px 1fr;gap:1rem;padding:1rem .2rem;border-bottom:1px solid var(--line);}
.company-row dt{font-weight:700;color:var(--text-soft);font-size:.92rem;}
.company-row dd{color:var(--text);font-size:.96rem;line-height:1.8;}
.company-row dd a{color:var(--accent);text-decoration:underline;text-underline-offset:3px;word-break:break-all;}
.company-en{color:var(--text-mute);font-size:.85rem;font-family:var(--font-en);}
.company-map{display:flex;flex-direction:column;min-height:380px;}
.company-map iframe{flex:1;width:100%;min-height:340px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);}
.company-map-link{display:inline-block;margin-top:.8rem;font-size:.9rem;color:var(--accent);font-weight:600;}
.company-map-link:hover{text-decoration:underline;}

/* footer company address */
.footer-company{font-style:normal;color:var(--text-soft);font-size:.84rem;line-height:1.8;margin-top:1.1rem;}

/* ---------- Legal page (privacy etc.) ---------- */
.legal{max-width:860px;margin:0 auto;padding:130px 24px 90px;}
.legal h1{font-size:clamp(1.6rem,4vw,2.4rem);font-weight:900;margin-bottom:.6rem;}
.legal .legal-lead{color:var(--text-soft);line-height:1.9;margin-bottom:2.4rem;padding-bottom:1.4rem;border-bottom:1px solid var(--line);}
.legal h2{font-size:1.2rem;font-weight:800;margin:2.2rem 0 .9rem;padding-left:.8rem;border-left:3px solid var(--accent);}
.legal p,.legal li{color:var(--text-soft);line-height:1.95;font-size:.97rem;}
.legal ul{margin:.4rem 0 .4rem 1.3rem;list-style:disc;}
.legal li{margin-bottom:.4rem;}
.legal .legal-meta{margin-top:2.6rem;padding-top:1.4rem;border-top:1px solid var(--line);color:var(--text-mute);font-size:.9rem;}
.legal a{color:var(--accent);text-underline-offset:3px;}
.legal-back{display:inline-block;margin-top:2rem;color:var(--accent);font-weight:600;}

@media (max-width:860px){
  .company-grid{grid-template-columns:1fr;}
}
@media (max-width:520px){
  .company-row{grid-template-columns:1fr;gap:.2rem;}
}

/* ---------- Footer ---------- */
.site-footer{background:var(--bg-2);border-top:1px solid var(--line);padding-top:3.5rem;}
.footer-inner{display:grid;grid-template-columns:1.2fr 2fr;gap:3rem;padding-bottom:2.5rem;}
.footer-brand .brand-text{font-family:var(--font-en);font-weight:800;font-size:1.4rem;}
.footer-tagline{color:var(--text-soft);font-size:.9rem;margin-top:.8rem;line-height:1.7;}
.footer-nav{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;}
.footer-nav h4{font-size:.82rem;letter-spacing:.1em;color:var(--text-mute);text-transform:uppercase;margin-bottom:1rem;font-family:var(--font-en);}
.footer-nav a{display:block;font-size:.92rem;color:var(--text-soft);padding:.3rem 0;transition:color .2s;}
.footer-nav a:hover{color:var(--accent);}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.8rem;border-top:1px solid var(--line-soft);padding-top:1.4rem;padding-bottom:1.8rem;}
.footer-bottom p{font-size:.82rem;color:var(--text-mute);}
.footer-mono{font-family:var(--font-mono);letter-spacing:.12em;color:var(--accent) !important;opacity:.7;}

/* ---------- Reveal animation ---------- */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s var(--ease),transform .7s var(--ease);}
.reveal.in{opacity:1;transform:none;}

/* ---------- Responsive ---------- */
.sp-br{display:none;}
@media (max-width:980px){
  .antithesis-grid,.usecase-grid{grid-template-columns:repeat(2,1fr);}
  .product-cards{grid-template-columns:1fr;}
  .contact-inner{grid-template-columns:1fr;gap:2.2rem;}
  .footer-inner{grid-template-columns:1fr;gap:2rem;}
  .manifesto-layout{grid-template-columns:1fr;gap:1.5rem;}
  .manifesto-figure{max-width:440px;margin:0 auto;}
}
@media (max-width:760px){
  .site-nav{
    position:fixed;top:72px;right:0;left:0;flex-direction:column;align-items:stretch;
    gap:0;background:rgba(7,9,13,.97);backdrop-filter:blur(14px);
    border-bottom:1px solid var(--line);padding:1rem 24px 1.6rem;
    transform:translateY(-120%);transition:transform .35s var(--ease);
  }
  .site-nav.open{transform:translateY(0);}
  .site-nav a{padding:.9rem 0;border-bottom:1px solid var(--line-soft);}
  .site-nav a:not(.nav-cta)::after{display:none;}
  .nav-cta{text-align:center;margin-top:.8rem;}
  .nav-toggle{display:flex;}
  .nav-toggle.open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
  .nav-toggle.open span:nth-child(2){opacity:0;}
  .nav-toggle.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
  .section{padding:72px 0;}
  .hero{padding:130px 0 70px;}
  .hero-pillars{grid-template-columns:1fr;}
  .form-grid2{grid-template-columns:1fr;}
  .sp-br{display:inline;}
}
@media (max-width:520px){
  .antithesis-grid,.usecase-grid{grid-template-columns:1fr;}
  .container{padding:0 18px;}
}

@media (prefers-reduced-motion:reduce){
  *{animation:none !important;scroll-behavior:auto !important;}
  .reveal{opacity:1;transform:none;}
}
