/* INARY — dark / frontier design tokens */
:root{
  --bg:#0B0B0D;
  --bg-2:#0E0E12;
  --bg-3:#121218;
  --ink:#F5F3EF;
  --ink-60:rgba(245,243,239,.6);
  --ink-42:rgba(245,243,239,.42);
  --ink-30:rgba(245,243,239,.3);
  --line:rgba(245,243,239,.1);
  --line-soft:rgba(245,243,239,.06);
  --accent:#e45e32;
  --maxw:1200px;
  --pad:32px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  background:var(--bg);
  color:var(--ink);
  font-family:'Inter','Noto Sans JP',system-ui,sans-serif;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  line-height:1.5;
  overflow-x:hidden;
}
::selection{background:var(--accent);color:var(--bg)}
a{color:var(--ink);text-decoration:none}
a:hover{color:var(--accent)}
img{max-width:100%;display:block}
.mono{font-family:'IBM Plex Mono',monospace}
.eyebrow{font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.24em;text-transform:uppercase;color:var(--accent)}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--pad)}
.accent{color:var(--accent)}

/* Buttons */
.btn{display:inline-flex;align-items:center;gap:8px;font-size:15px;font-weight:600;border-radius:9px;padding:14px 26px;transition:transform .15s ease,opacity .15s ease;cursor:pointer;border:0}
.btn-primary{background:var(--accent);color:var(--bg)}
.btn-primary:hover{color:var(--bg);opacity:.9;transform:translateY(-1px)}
.btn-ghost{border:1px solid var(--line);color:var(--ink);background:transparent}
.btn-ghost:hover{border-color:var(--accent);color:var(--ink)}

/* Header */
.site-header{position:sticky;top:0;z-index:50;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);background:rgba(11,11,13,.72);border-bottom:1px solid var(--line-soft)}
.site-header .bar{height:72px;display:flex;align-items:center;justify-content:space-between}
.brand{font-weight:700;font-size:20px;letter-spacing:.24em;color:var(--ink)}
.brand:hover{color:var(--ink)}
.nav{display:flex;align-items:center;gap:30px}
.nav a{font-size:14px;color:var(--ink-60)}
.nav a:hover{color:var(--ink)}
.lang-toggle{font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.12em;color:var(--ink-60);border:1px solid var(--line);border-radius:999px;padding:6px 12px}
.lang-toggle:hover{color:var(--ink);border-color:var(--accent)}
.nav .cta{font-size:14px;font-weight:600;color:var(--bg);background:var(--accent);padding:10px 18px;border-radius:8px}
.nav .cta:hover{color:var(--bg);opacity:.9}
.menu-btn{display:none;background:none;border:0;color:var(--ink);cursor:pointer;font-size:22px;line-height:1}

/* Hero */
.hero{position:relative;min-height:calc(100vh - 72px);display:flex;align-items:center;overflow:hidden}
.hero .glow{position:absolute;inset:0;pointer-events:none;background:radial-gradient(130% 80% at 50% 128%, rgba(228,94,50,.22), rgba(228,94,50,.05) 32%, transparent 60%);animation:glow 9s ease-in-out infinite}
.hero .glow-top{position:absolute;inset:0;pointer-events:none;background:radial-gradient(80% 50% at 50% -10%, rgba(245,243,239,.05), transparent 60%)}
.hero canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;mix-blend-mode:screen}
.hero .inner{position:relative;z-index:2;width:100%;padding:120px 0}
.hero-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:56px;align-items:center;animation:rise .8s ease both}
.hero-copy{max-width:620px}
h1.hero-h{font-size:clamp(2.6rem,6.4vw,5.4rem);line-height:1.02;font-weight:600;letter-spacing:-.02em;text-wrap:balance;max-width:16ch}
.hero-sub{margin-top:32px;font-size:clamp(1.05rem,1.6vw,1.35rem);line-height:1.6;color:var(--ink-60);max-width:56ch;text-wrap:pretty}
.hero-actions{margin-top:44px;display:flex;align-items:center;gap:24px;flex-wrap:wrap}
.hero-cap{font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.1em;color:var(--ink-42)}
.hero-visual{display:flex;justify-content:flex-end;min-width:0}
.hero-visual .frame{position:relative;width:100%}
.hero-visual .frame::before{content:"";position:absolute;inset:-6% -4% -12% -4%;background:radial-gradient(52% 50% at 56% 46%, rgba(228,94,50,.2), transparent 70%);filter:blur(14px);pointer-events:none}
.hero-visual img{position:relative;width:100%;height:auto;max-width:100%;filter:drop-shadow(0 50px 80px rgba(0,0,0,.6))}

/* Sections */
.section{padding:clamp(88px,12vh,160px) 0}
.section.alt{background:var(--bg-2);border-top:1px solid var(--line-soft)}
.section-intro{font-size:clamp(1.8rem,3.4vw,2.9rem);line-height:1.12;font-weight:600;letter-spacing:-.015em;max-width:22ch;text-wrap:balance}

/* Contrast */
.contrast-list{margin-top:72px;border-bottom:1px solid var(--line)}
.contrast-row{display:grid;grid-template-columns:minmax(0,0.36fr) minmax(0,0.64fr);gap:40px;padding:40px 0;border-top:1px solid var(--line)}
.contrast-row .idx{font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--accent);letter-spacing:.1em}
.contrast-row .label{margin-top:12px;font-size:1.15rem;font-weight:600;color:var(--ink)}
.contrast-row .today{font-size:clamp(1.05rem,1.5vw,1.25rem);color:var(--ink-42);line-height:1.5}
.contrast-row .arrow{margin:16px 0 14px;color:var(--accent);font-size:20px;line-height:1}
.contrast-row .inary{font-size:clamp(1.25rem,2vw,1.7rem);color:var(--ink);font-weight:500;line-height:1.35;text-wrap:pretty}

/* Scenes */
.scenes-grid{margin-top:64px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}
.scene{background:var(--bg);padding:clamp(32px,4vw,56px);min-height:220px;display:flex;flex-direction:column;justify-content:space-between}
.scene .idx{font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--ink-30);letter-spacing:.1em}
.scene .text{font-size:clamp(1.2rem,1.9vw,1.6rem);font-weight:500;line-height:1.35;color:var(--ink);text-wrap:pretty}

/* Industry */
.industry{background:var(--bg-2);border-top:1px solid var(--line-soft);padding:clamp(80px,11vh,150px) 0}
.industry .wrap{max-width:1000px;text-align:center}
.industry-line{font-size:clamp(1.4rem,2.8vw,2.4rem);line-height:1.3;font-weight:500;letter-spacing:-.01em;color:var(--ink);text-wrap:balance}

/* Final CTA */
.cta-section{position:relative;background:var(--bg);padding:clamp(110px,16vh,200px) 0;overflow:hidden}
.cta-section .glow{position:absolute;inset:0;pointer-events:none;background:radial-gradient(90% 120% at 50% 140%, rgba(228,94,50,.2), transparent 55%)}
.cta-section .wrap{position:relative;max-width:900px;text-align:center}
.cta-h{font-size:clamp(2.2rem,5vw,4rem);line-height:1.05;font-weight:600;letter-spacing:-.02em;text-wrap:balance}
.cta-cap{margin-top:22px;font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.08em;color:var(--ink-42)}

/* Footer */
.site-footer{background:var(--bg);border-top:1px solid var(--line);padding:56px 0 40px}
.footer-grid{display:flex;flex-wrap:wrap;gap:32px;align-items:flex-start;justify-content:space-between}
.footer-copy{margin-top:14px;font-size:13px;color:var(--ink-42)}
.footer-mail{margin-top:8px;display:inline-block;font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--ink-60)}
.footer-links{display:flex;flex-wrap:wrap;gap:24px}
.footer-links a{font-size:13px;color:var(--ink-60)}

/* Pricing */
.price-hero{padding:clamp(120px,16vh,180px) 0 clamp(48px,6vh,72px);text-align:center;position:relative;overflow:hidden}
.price-hero .glow{position:absolute;inset:0;pointer-events:none;background:radial-gradient(70% 60% at 50% -20%, rgba(228,94,50,.14), transparent 60%)}
.price-hero .wrap{position:relative;max-width:800px}
.price-h{font-size:clamp(2.2rem,4.6vw,3.6rem);line-height:1.06;font-weight:600;letter-spacing:-.02em}
.price-sub{margin-top:24px;font-size:clamp(1.05rem,1.6vw,1.25rem);color:var(--ink-60);max-width:52ch;margin-left:auto;margin-right:auto;text-wrap:pretty}
.plans{padding:0 0 clamp(88px,12vh,140px)}
.plans-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:16px;overflow:hidden}
.plan{background:var(--bg);padding:36px 28px;display:flex;flex-direction:column;min-height:360px}
.plan.featured{background:var(--bg-3)}
.plan .name{font-size:1.15rem;font-weight:600}
.plan .cap{margin-top:6px;font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);min-height:14px}
.plan .price{margin-top:28px;font-size:2.4rem;font-weight:600;letter-spacing:-.02em;line-height:1}
.plan .per{font-size:.85rem;color:var(--ink-42);margin-top:8px;min-height:16px}
.plan .battery{margin-top:24px;display:flex;align-items:center;gap:8px}
.plan .battery .cell{height:8px;flex:1;border-radius:2px;background:var(--line)}
.plan .battery .cell.on{background:var(--accent)}
.plan .battery-label{margin-top:10px;font-size:.8rem;color:var(--ink-42)}
.plan .desc{margin-top:20px;font-size:.9rem;color:var(--ink-60);line-height:1.5;flex:1}
.plan .plan-cta{margin-top:24px}
.plan .plan-cta a{display:block;text-align:center;font-size:14px;font-weight:600;padding:12px;border-radius:8px}
.plan .plan-cta .solid{background:var(--accent);color:var(--bg)}
.plan .plan-cta .solid:hover{color:var(--bg);opacity:.9}
.plan .plan-cta .outline{border:1px solid var(--line);color:var(--ink)}
.plan .plan-cta .outline:hover{border-color:var(--accent)}
.price-note{margin-top:40px;text-align:center;font-size:.95rem;color:var(--ink-42);max-width:60ch;margin-left:auto;margin-right:auto;text-wrap:pretty}

/* Simple content pages (legal / auth / request) */
.page-hero{padding:clamp(120px,15vh,170px) 0 clamp(40px,5vh,56px)}
.page-hero .wrap{max-width:820px}
.page-h{font-size:clamp(2rem,4vw,3rem);font-weight:600;letter-spacing:-.02em;line-height:1.08}
.page-lede{margin-top:20px;font-size:1.1rem;color:var(--ink-60);max-width:60ch;text-wrap:pretty}
.doc{padding:0 0 clamp(88px,12vh,140px)}
.doc .wrap{max-width:820px}
.doc h2{font-size:1.4rem;font-weight:600;margin:44px 0 14px;letter-spacing:-.01em}
.doc h3{font-size:1.1rem;font-weight:600;margin:28px 0 10px}
.doc p,.doc li{color:var(--ink-60);font-size:1rem;line-height:1.7;text-wrap:pretty}
.doc ul,.doc ol{margin:12px 0 12px 22px}
.doc li{margin:6px 0}
.doc a{color:var(--accent)}
.doc a:hover{text-decoration:underline}
.doc .todo{background:rgba(228,94,50,.08);border:1px dashed rgba(228,94,50,.5);border-radius:8px;padding:14px 16px;color:var(--ink);font-size:.9rem;margin:14px 0}
.info-table{width:100%;border-collapse:collapse;margin-top:24px}
.info-table th,.info-table td{text-align:left;padding:16px 12px;border-top:1px solid var(--line);vertical-align:top;font-size:.98rem}
.info-table th{width:34%;color:var(--ink);font-weight:600}
.info-table td{color:var(--ink-60)}

/* Auth / gate cards */
.auth{min-height:calc(100vh - 72px);display:flex;align-items:center;justify-content:center;padding:80px 0;position:relative;overflow:hidden}
.auth .glow{position:absolute;inset:0;pointer-events:none;background:radial-gradient(60% 60% at 50% 60%, rgba(228,94,50,.14), transparent 60%)}
.auth-card{position:relative;width:100%;max-width:440px;background:rgba(18,18,22,.8);border:1px solid var(--line);border-radius:16px;padding:40px 32px;box-shadow:0 40px 90px -34px rgba(0,0,0,.85)}
.auth-card h1{font-size:1.7rem;font-weight:600;letter-spacing:-.01em}
.auth-card p{margin-top:12px;color:var(--ink-60);font-size:.98rem;line-height:1.55}
.field{margin-top:24px}
.field label{display:block;font-size:.85rem;color:var(--ink-60);margin-bottom:8px}
.field input{width:100%;background:rgba(245,243,239,.04);border:1px solid var(--line);border-radius:9px;padding:14px 16px;color:var(--ink);font-size:1rem;font-family:inherit}
.field input:focus{outline:none;border-color:var(--accent)}
.auth-card .btn{width:100%;justify-content:center;margin-top:20px}
.auth-err{margin-top:14px;color:var(--accent);font-size:.9rem;min-height:18px}
.redirect-note{text-align:center;color:var(--ink-60);font-family:'IBM Plex Mono',monospace;font-size:13px;letter-spacing:.06em}

@keyframes rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
@keyframes glow{0%,100%{opacity:.85}50%{opacity:1}}

@media (max-width:820px){
  .nav .desktop-only{display:none}
  .menu-btn{display:block}
  .nav.open .desktop-only{display:flex}
  .plans-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .scenes-grid{grid-template-columns:1fr}
  .contrast-row{grid-template-columns:1fr;gap:16px}
}
@media (max-width:520px){
  .plans-grid{grid-template-columns:1fr}
}
