:root{
    --bg: #0B0F1A;
    --panel: #121a2e;
    --panel-2: #171f3a;
    --line: rgba(232,236,246,0.10);
    --line-strong: rgba(232,236,246,0.22);
    --text: #E8ECF6;
    --text-muted: #8B96AE;
    --accent: #E8B65A;
    --accent-soft: rgba(232,182,90,0.14);
    --accent-2: #6FD1D6;
  }

  *{ box-sizing:border-box; }

  body{
    background:
      radial-gradient(ellipse at 20% -10%, rgba(111,209,214,0.10), transparent 55%),
      radial-gradient(ellipse at 90% 0%, rgba(232,182,90,0.08), transparent 45%),
      var(--bg);
    color:var(--text);
    font-family:'Noto Sans JP', sans-serif;
    -webkit-font-smoothing:antialiased;
  }

  .font-display{ font-family:'Shippori Mincho', serif; }
  .font-mono{ font-family:'Space Mono', monospace; letter-spacing:.03em; }

  /* subtle RA/Dec grid texture, signature motif */
  .sky-grid{
    position:relative;
    background-image:
      linear-gradient(var(--line) 1px, transparent 1px),
      linear-gradient(90deg, var(--line) 1px, transparent 1px);
    background-size: 64px 64px;
    background-position: center top;
    -webkit-mask-image: linear-gradient(to bottom, black, transparent 92%);
            mask-image: linear-gradient(to bottom, black, transparent 92%);
  }

  .eyebrow{
    font-family:'Space Mono', monospace;
    font-size:.72rem;
    letter-spacing:.14em;
    color:var(--accent-2);
    text-transform:uppercase;
    display:inline-flex;
    align-items:center;
    gap:.5rem;
  }
  .eyebrow::before{
    content:"";
    width:16px; height:1px; background:var(--accent-2);
    display:inline-block;
  }

  .btn-store{
    background:var(--panel-2);
    border:1px solid var(--line-strong);
    color:var(--text);
    border-radius:12px;
    padding:.65rem 1.1rem;
    font-size:.85rem;
    display:inline-flex;
    align-items:center;
    gap:.55rem;
    transition:border-color .15s ease;
  }
  .btn-store:hover{ border-color:var(--accent-2); color:var(--text); }
  .btn-store i{ font-size:1.2rem; }
  .btn-store small{ display:block; font-family:'Space Mono',monospace; font-size:.62rem; color:var(--text-muted); }

  /* --- phone capture placeholder, 750x1334 ratio (viewfinder style) --- */
  .phone-frame{
    width:100%;
    max-width:230px;
    aspect-ratio: 750 / 1334;
    margin:0 auto;
    background:var(--panel-2);
    border:1px solid var(--line-strong);
    border-radius:26px;
    padding:8px;
  }
  .phone-screen{
    position:relative;
    width:100%; height:100%;
    border-radius:18px;
    border:1px dashed var(--line-strong);
    display:flex; align-items:center; justify-content:center;
    text-align:center;
    padding:1.2rem;
    background:
      repeating-linear-gradient(135deg, rgba(232,236,246,0.02) 0 2px, transparent 2px 10px);
  }
  .phone-screen .capture-label{
    font-family:'Space Mono', monospace;
    font-size:.68rem;
    line-height:1.6;
    color:var(--text-muted);
  }
  .phone-screen .capture-label b{
    display:block;
    color:var(--accent);
    font-weight:700;
    margin-bottom:.35rem;
    letter-spacing:.04em;
  }
  /* reticle corners */
  .phone-screen::before, .phone-screen::after,
  .reticle-tl, .reticle-br{ content:""; }
  .reticle{ position:absolute; width:14px; height:14px; border-color:var(--accent-2); opacity:.75; }
  .reticle.tl{ top:8px; left:8px; border-top:2px solid; border-left:2px solid; }
  .reticle.tr{ top:8px; right:8px; border-top:2px solid; border-right:2px solid; }
  .reticle.bl{ bottom:8px; left:8px; border-bottom:2px solid; border-left:2px solid; }
  .reticle.br{ bottom:8px; right:8px; border-bottom:2px solid; border-right:2px solid; }

  section{ padding:5rem 0; border-bottom:1px solid var(--line); }
  .hero-section{ padding-top:6.5rem; padding-bottom:5rem; border-bottom:1px solid var(--line); }

  .lead-copy{ max-width:640px; margin:0 auto; color:var(--text-muted); font-size:1.02rem; }

  .feature-title{ font-family:'Shippori Mincho', serif; font-size:1.85rem; line-height:1.5; margin-bottom:.9rem; }
  .feature-body{ color:var(--text-muted); font-size:.98rem; line-height:1.9; max-width:440px; }

  .icon-tile{
    background:var(--panel);
    border:1px solid var(--line);
    border-radius:14px;
    padding:1.2rem .8rem;
    text-align:center;
    height:100%;
  }
  .icon-tile i{ font-size:1.35rem; color:var(--accent-2); }
  .icon-tile p{ font-size:.78rem; color:var(--text-muted); margin:.6rem 0 0; line-height:1.5; }

  .plan-card{
    background:var(--panel);
    border:1px solid var(--line);
    border-radius:16px;
    padding:1.8rem;
    height:100%;
  }
  .plan-card.is-pro{ border-color:var(--accent); background:linear-gradient(180deg, var(--accent-soft), var(--panel) 55%); }
  .plan-name{ font-family:'Shippori Mincho', serif; font-size:1.15rem; }
  .plan-price{ font-family:'Space Mono', monospace; font-size:1.6rem; color:var(--accent); margin:.4rem 0 .1rem; }
  .plan-price span{ font-size:.75rem; color:var(--text-muted); }
  .plan-desc{ color:var(--text-muted); font-size:.85rem; margin-top:.7rem; line-height:1.7; }
  .badge-tentative{
    font-family:'Space Mono', monospace;
    font-size:.62rem;
    color:var(--text-muted);
    border:1px solid var(--line-strong);
    border-radius:999px;
    padding:.15rem .6rem;
  }

  .env-row{ color:var(--text-muted); font-size:.88rem; }
  .env-row dt{ font-family:'Space Mono', monospace; font-size:.72rem; color:var(--accent-2); text-transform:uppercase; letter-spacing:.08em; }
  .env-row dd{ margin-bottom:1.1rem; }

  .cta-band{
    background:var(--panel);
    border:1px solid var(--line-strong);
    border-radius:24px;
    padding:3.2rem 2rem;
    text-align:center;
  }

  footer{ padding:2.4rem 0; }
  footer a{ color:var(--text-muted); text-decoration:none; font-size:.82rem; }
  footer a:hover{ color:var(--text); }

  .before-after{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:.6rem;
  }
  .before-after .phone-frame{ max-width:160px; }
  .before-after .ba-col{ text-align:center; }
  .before-after .ba-label{
    font-family:'Space Mono', monospace;
    font-size:.65rem;
    letter-spacing:.06em;
    color:var(--text-muted);
    margin-bottom:.5rem;
    display:inline-flex;
    align-items:center;
    gap:.3rem;
  }
  .before-after .ba-label.after{ color:var(--accent); }
  .before-after .ba-arrow{ color:var(--text-muted); font-size:1.1rem; flex-shrink:0; }
  .phone-frame img{
    width:100%; height:100%;
    object-fit:cover;
    border-radius:18px;
    display:block;
  }

  .triptych{
    display:flex;
    align-items:flex-end;
    justify-content:center;
    gap:.5rem;
  }
  .triptych .t-col{ text-align:center; }
  .triptych .phone-frame{ margin:0 auto; }
  .triptych .t-col:nth-child(1) .phone-frame{ max-width:150px; }
  .triptych .t-col:nth-child(2) .phone-frame{ max-width:120px; }
  .triptych .t-col:nth-child(3) .phone-frame{ max-width:95px; }
  .triptych .t-label{
    font-family:'Space Mono', monospace;
    font-size:.62rem;
    color:var(--text-muted);
    margin-top:.5rem;
    display:block;
  }
  .triptych .t-label b{ color:var(--accent-2); display:block; font-size:.72rem; }

  .tablet-frame{
    width:100%;
    aspect-ratio: 2360 / 1640;
    background:var(--panel-2);
    border:1px solid var(--line-strong);
    border-radius:14px;
    padding:6px;
  }
  .tablet-frame img{
    width:100%; height:100%;
    object-fit:cover;
    border-radius:9px;
    display:block;
  }
  .tablet-stack{ display:flex; flex-direction:column; gap:1rem; }
  .tablet-stack .ts-label{
    font-family:'Space Mono', monospace;
    font-size:.65rem;
    color:var(--text-muted);
    margin-bottom:.4rem;
    display:block;
  }
  .tablet-stack .ts-label b{ color:var(--accent-2); }

  .proof-card{
    background:var(--panel);
    border:1px solid var(--line-strong);
    border-radius:14px;
    overflow:hidden;
    height:100%;
  }
  .proof-card .proof-thumb{
    width:100%;
    aspect-ratio: 2360 / 1640;
    object-fit:cover;
    display:block;
  }
  .proof-card .proof-body{ padding:1rem 1.1rem 1.2rem; }
  .proof-card .proof-body i{ color:var(--accent-2); font-size:1rem; }
  .proof-card .proof-title{
    font-size:.92rem;
    color:var(--text);
    margin:.55rem 0 0;
    display:block;
  }
  .proof-card .proof-desc{
    font-size:.78rem;
    color:var(--text-muted);
    margin:.35rem 0 0;
    line-height:1.6;
  }

  /* --- legal / support documents (terms, FAQ, etc.) --- */
  .legal-header{ padding:3rem 0; border-bottom:1px solid var(--line); }
  .legal-back{
    display:inline-flex; align-items:center; gap:.4rem;
    color:var(--text-muted); font-size:.82rem; text-decoration:none;
    margin-bottom:1rem;
  }
  .legal-back:hover{ color:var(--text); }
  .legal-doc{ max-width:760px; margin:0 auto; color:var(--text-muted); font-size:.92rem; line-height:1.9; }
  .legal-doc h2{
    font-family:'Shippori Mincho', serif;
    color:var(--text);
    font-size:1.15rem;
    margin:2.4rem 0 1rem;
  }
  .legal-doc p{ margin-bottom:1rem; }
  .legal-doc .legal-updated{ font-family:'Space Mono', monospace; font-size:.75rem; color:var(--text-muted); }
  .spec-doc h2{ margin-top:3rem; padding-bottom:.5rem; border-bottom:1px solid var(--line); }
  .spec-doc h2:first-of-type{ margin-top:0; }
  .spec-doc h3{
    font-family:'Shippori Mincho', serif;
    color:var(--text);
    font-size:1rem;
    margin:1.6rem 0 .8rem;
  }
  .spec-doc ul{ padding-left:1.3rem; margin-bottom:1rem; }
  .spec-doc ul ul{ margin-top:.4rem; margin-bottom:.4rem; font-size:.95em; }
  .spec-doc li{ margin-bottom:.4rem; }
  .license-dump{
    max-width:900px; margin:0 auto;
    font-family:'Space Mono', monospace;
    font-size:.72rem; line-height:1.6;
    color:var(--text-muted);
    white-space:pre-wrap;
    word-break:break-word;
    background:rgba(255,255,255,.02);
    border:1px solid var(--line);
    border-radius:8px;
    padding:2rem;
  }

  @media (max-width: 767px){
    .feature-title{ font-size:1.5rem; }
    section{ padding:3.4rem 0; }
  }
