/* =========================================================
   NUMIS AI SALON — LP Styles
   Palette: Ink black / Bone cream / Antique gold
   ========================================================= */

:root{
  --ink:        #1a1814;
  --ink-2:      #2a2620;
  --ink-3:      #3a3530;
  --bone:       #f3ede1;
  --bone-2:     #ece4d3;
  --bone-3:     #e0d6be;
  --paper:      #faf6ec;
  --gold:       #a8864a;
  --gold-lt:    #c8a861;
  --gold-dk:    #7a6232;
  --rule:       #d8cdb4;
  --rule-dk:    #3a332a;
  --mute:       #8a7f66;
  --text:       #2b2620;
  --text-dim:   #6a6253;

  --serif-en:   'Cormorant Garamond', 'Times New Roman', serif;
  --serif-ja:   'Shippori Mincho', 'Yu Mincho', 'YuMincho', serif;
  --mono:       'JetBrains Mono', ui-monospace, monospace;

  --maxw: 1240px;
  --pad: clamp(20px, 4vw, 56px);
}

*{ box-sizing:border-box; margin:0; padding:0; }
html,body{ background:var(--paper); color:var(--text); font-family:var(--serif-ja); -webkit-font-smoothing:antialiased; font-feature-settings:"palt"; }
body{ line-height:1.75; font-size:16px; }

a{ color:inherit; text-decoration:none; }
img,svg{ display:block; max-width:100%; }
em{ font-style:normal; }
button{ font:inherit; cursor:pointer; }

/* ==================== NAV ==================== */
.nav{
  position:sticky; top:0; z-index:50;
  backdrop-filter:saturate(1.2) blur(10px);
  background:rgba(250,246,236,.85);
  border-bottom:1px solid var(--rule);
}
.nav-inner{
  max-width:var(--maxw); margin:0 auto;
  padding:14px var(--pad);
  display:flex; align-items:center; justify-content:space-between; gap:24px;
}
.brand{ display:flex; align-items:center; gap:12px; color:var(--ink); }
.brand-mark{ color:var(--gold-dk); }
.brand-wordmark{ display:flex; flex-direction:column; line-height:1.05; }
.brand-name{ font-family:var(--serif-en); font-weight:600; letter-spacing:.14em; font-size:18px; }
.brand-sub{ font-family:var(--serif-ja); font-size:10px; letter-spacing:.08em; color:var(--mute); margin-top:3px; white-space:nowrap;}
@media (max-width:1080px){ .brand-sub{ display:none; } }

.nav-links{ display:flex; gap:28px; }
.nav-links a{
  font-family:var(--serif-ja); font-size:13px; color:var(--ink-2);
  position:relative; padding:4px 0;
}
.nav-links a:hover{ color:var(--gold-dk); }
.nav-links a:hover::after{
  content:""; position:absolute; left:0; right:0; bottom:-2px; height:1px; background:var(--gold);
}
.nav-cta{
  font-family:var(--serif-ja); font-size:13px;
  padding:10px 20px; border:1px solid var(--ink); color:var(--ink);
  transition:all .25s;
}
.nav-cta:hover{ background:var(--ink); color:var(--bone); }

@media (max-width:860px){
  .nav-links{ display:none; }
}

/* ==================== BUTTONS ==================== */
.btn{
  display:inline-flex; align-items:center; gap:10px;
  padding:14px 26px;
  font-family:var(--serif-ja); font-size:14px; letter-spacing:.04em;
  border:1px solid var(--ink);
  transition:all .3s ease;
  white-space:nowrap;
}
.btn-primary{ background:var(--ink); color:var(--bone); }
.btn-primary:hover{ background:var(--gold-dk); border-color:var(--gold-dk); }
.btn-ghost{ background:transparent; color:var(--ink); }
.btn-ghost:hover{ background:var(--ink); color:var(--bone); }
.btn.lg{ padding:17px 34px; font-size:15px; }
.btn.xl{ padding:22px 44px; font-size:16px; letter-spacing:.06em; }

/* ==================== SECTION BASE ==================== */
.sec{
  max-width:var(--maxw);
  margin:0 auto;
  padding:clamp(80px,10vw,140px) var(--pad);
  position:relative;
}
.sec-head{ max-width:860px; margin-bottom:64px; }
.sec-head.dark{ color:var(--bone); }
.sec-no{
  font-family:var(--mono); font-size:11px; letter-spacing:.3em;
  color:var(--gold-dk); margin-bottom:8px;
}
.sec-label{
  font-family:var(--mono); font-size:11px; letter-spacing:.32em;
  color:var(--mute); margin-bottom:22px;
  padding-bottom:14px; border-bottom:1px solid var(--rule);
  display:inline-block; min-width:240px;
}
.sec-head.dark .sec-label{ color:var(--bone-3); border-color:rgba(216,205,180,.2); }
.sec-title{
  font-family:var(--serif-ja); font-weight:600;
  font-size:clamp(30px,4.2vw,52px);
  line-height:1.35; letter-spacing:.01em;
  color:var(--ink);
  text-wrap:pretty;
}
.sec-head.dark .sec-title{ color:var(--bone); }
.sec-title em{
  font-family:var(--serif-en); font-style:italic; font-weight:500;
  color:var(--gold-dk); padding:0 .08em;
}
.sec-head.dark .sec-title em{ color:var(--gold-lt); }
.sec-lead{
  margin-top:22px; font-size:15.5px; line-height:2; color:var(--text-dim);
  max-width:640px; text-wrap:pretty;
}
.sec-head.dark .sec-lead{ color:rgba(243,237,225,.72); }

/* ==================== HERO ==================== */
.hero{
  position:relative; overflow:hidden;
  background:
    radial-gradient(ellipse 80% 60% at 80% 20%, rgba(168,134,74,.06), transparent 60%),
    radial-gradient(ellipse 70% 50% at 10% 80%, rgba(26,24,20,.04), transparent 60%),
    var(--paper);
  border-bottom:1px solid var(--rule);
}
.hero-rule{
  display:flex; justify-content:space-between; gap:24px;
  padding:16px var(--pad);
  font-family:var(--mono); font-size:10px; letter-spacing:.28em;
  color:var(--mute);
  border-bottom:1px solid var(--rule);
  max-width:var(--maxw); margin:0 auto;
}
.hero-rule span:nth-child(2){ text-align:center; }
.hero-rule span:last-child{ text-align:right; }
@media (max-width:720px){ .hero-rule span:nth-child(2){ display:none; } }

.hero-inner{
  max-width:var(--maxw); margin:0 auto;
  padding:clamp(60px,8vw,110px) var(--pad);
  display:grid; grid-template-columns:1.1fr .9fr; gap:clamp(32px,6vw,80px);
  align-items:center;
}
@media (max-width:920px){ .hero-inner{ grid-template-columns:1fr; } }

.hero-eyebrow{
  display:flex; align-items:center; flex-wrap:wrap;
  gap:14px;
  margin-bottom:40px;
  line-height:1.4;
}
.hero-eyebrow .eb-kicker{
  font-family:var(--mono);
  font-size:11px; letter-spacing:.34em;
  color:var(--gold-dk);
  text-transform:uppercase;
}
.hero-eyebrow .eb-rule{
  flex:0 0 52px; height:1px;
  background:var(--gold);
  opacity:.6;
}
.hero-eyebrow .eb-jp{
  font-family:var(--serif-ja);
  font-size:12.5px; letter-spacing:.12em;
  color:var(--text-dim); font-weight:500;
}
@media (max-width:560px){
  .hero-eyebrow{ gap:10px; margin-bottom:28px; }
  .hero-eyebrow .eb-rule{ flex-basis:28px; }
  .hero-eyebrow .eb-kicker{ font-size:10px; letter-spacing:.28em; }
  .hero-eyebrow .eb-jp{ font-size:11.5px; letter-spacing:.06em; }
}

.hero-title{
  font-family:var(--serif-ja); font-weight:700;
  font-size:clamp(46px,7vw,92px);
  line-height:1.14; letter-spacing:.01em;
  color:var(--ink);
  text-wrap:balance;
  margin:0;
}
.hero-title .t-line{ display:block; }
.hero-title .t-line-1{
  font-size:.62em;
  font-weight:500;
  color:var(--ink-2);
  letter-spacing:.08em;
  margin-bottom:.14em;
}
.hero-title .t-line-2{
  font-size:1em;
  font-weight:700;
  letter-spacing:.015em;
}
.hero-title em{
  font-family:var(--serif-en); font-style:italic; font-weight:500;
  font-size:1.28em;
  color:var(--gold-dk);
  padding:0 .06em 0 .02em;
  line-height:.9;
  vertical-align:-0.05em;
}
@media (max-width:560px){
  .hero-title{ font-size:clamp(40px,10vw,58px); line-height:1.18; }
  .hero-title .t-line-1{ font-size:.58em; }
}
.hero-lead{
  margin-top:34px; font-size:16px; line-height:1.9; color:var(--text);
  max-width:500px;
  letter-spacing:.015em;
  font-weight:400;
}
@media (max-width:560px){
  .hero-lead{ margin-top:26px; font-size:14.5px; line-height:1.85; }
  .hero-lead br{ display:none; }
}
.hero-lead .u{
  background:linear-gradient(transparent 60%, rgba(168,134,74,.25) 60%);
  padding:0 2px;
}
.hero-ctas{ margin-top:44px; margin-bottom:8px; display:flex; gap:14px; flex-wrap:wrap; }

/* ---- Hero visual / Coin ---- */
.hero-visual{ position:relative; aspect-ratio:1/1; max-width:520px; margin:0 auto; }
.coin-stage{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; }

.coin{
  position:absolute;
  width:76%; aspect-ratio:1/1;
  border-radius:50%;
  background:
    radial-gradient(circle at 30% 30%, #f1dea0 0%, #c5a35c 35%, #8a6c2c 70%, #4a3812 100%);
  box-shadow:
    inset 0 0 0 1px rgba(255,230,170,.5),
    inset 0 -8px 18px rgba(0,0,0,.35),
    inset 0 8px 20px rgba(255,230,170,.15),
    0 30px 60px -20px rgba(58,42,14,.55),
    0 10px 20px -10px rgba(58,42,14,.4);
}
.coin-main{
  z-index:3; top:50%; left:50%; transform:translate(-50%,-50%);
  display:flex; align-items:center; justify-content:center;
}
.coin-b{ z-index:1; top:4%; right:0%; width:36%; opacity:.75; filter:blur(.4px); }
.coin-c{ z-index:1; bottom:4%; left:0%; width:40%; opacity:.65; filter:blur(.6px); }

.coin-face{
  position:relative; width:100%; height:100%;
  border-radius:50%; overflow:hidden;
  display:flex; align-items:center; justify-content:center;
}
.coin-ring.outer{
  position:absolute; inset:6%; border-radius:50%;
  border:1px solid rgba(58,42,14,.35);
}
.coin-ring.inner{
  position:absolute; inset:10%; border-radius:50%;
  border:1px dashed rgba(58,42,14,.22);
}
.coin-portrait{ width:78%; height:78%; }
.coin-legend{
  position:absolute; left:0; right:0; text-align:center;
  font-family:var(--serif-en); font-weight:500;
  font-size:11px; letter-spacing:.28em;
  color:rgba(42,30,10,.75);
  text-shadow:0 1px 0 rgba(255,230,170,.3);
}
.coin-legend.top{ top:9%; }
.coin-legend.bot{ bottom:9%; }

@media (max-width:920px){
  .hero-visual{ max-width:420px; margin:48px auto 0; }
}

/* Marquee */
.hero-marquee{
  border-top:1px solid var(--rule);
  border-bottom:1px solid var(--rule);
  overflow:hidden;
  background:var(--bone-2);
}
.marquee-track{
  display:flex; gap:32px; align-items:center;
  padding:16px 0;
  font-family:var(--serif-en); font-size:18px; font-weight:500;
  letter-spacing:.2em; color:var(--ink-3);
  white-space:nowrap;
  animation:marq 40s linear infinite;
}
.marquee-track i{ color:var(--gold); font-style:normal; font-size:10px; }
@keyframes marq{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }


/* Hero badges */
.hero-badges{
  list-style:none;
  display:flex; gap:10px; flex-wrap:wrap;
  margin-top:36px;
  padding:0;
}
.badge{
  display:inline-flex; align-items:center; gap:10px;
  padding:10px 18px 10px 16px;
  background:var(--bone);
  border:1px solid var(--rule);
  font-family:var(--serif-ja);
  font-size:13.5px; font-weight:500; letter-spacing:.05em;
  color:var(--ink-2);
  line-height:1.4;
  transition:border-color .25s ease, background .25s ease, transform .25s ease;
}
.badge:hover{
  border-color:var(--gold);
  background:var(--paper);
  transform:translateY(-1px);
}
.badge i{
  color:var(--gold);
  font-style:normal;
  font-size:9px;
  line-height:1;
  transform:translateY(-1px);
}
@media (max-width:560px){
  .hero-badges{ gap:8px; margin-top:28px; }
  .badge{ font-size:12.5px; padding:9px 14px; letter-spacing:.03em; }
}

/* Utility link */
.ulink{
  color:var(--gold-dk);
  border-bottom:1px solid var(--gold);
  padding-bottom:1px;
  transition:color .2s;
}
.ulink:hover{ color:var(--ink); }

/* ==================== OPERATOR ==================== */
.sec-operator{}
.op-grid{
  display:grid; grid-template-columns:repeat(4,1fr); gap:0;
  border-top:1px solid var(--rule);
  border-left:1px solid var(--rule);
}
.op-card{
  padding:40px 32px 48px;
  border-right:1px solid var(--rule);
  border-bottom:1px solid var(--rule);
  background:var(--paper);
  display:flex; flex-direction:column; gap:10px;
  transition:background .25s;
}
.op-card:hover{ background:var(--bone); }
.op-icon{ color:var(--gold-dk); margin-bottom:18px; }
.op-label{
  font-family:var(--mono); font-size:10px; letter-spacing:.26em;
  color:var(--mute); margin-bottom:8px;
}
.op-card h3{
  font-family:var(--serif-ja); font-weight:600; font-size:19px;
  line-height:1.5; margin-bottom:12px; color:var(--ink);
}
.op-card p{ font-size:13.5px; line-height:1.95; color:var(--text-dim); }
.op-card p b{ color:var(--ink); font-weight:600; }
@media (max-width:980px){ .op-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .op-grid{ grid-template-columns:1fr; } }

/* ==================== GUARANTEE ==================== */
.sec-guarantee{}
.guar-grid{
  display:grid; grid-template-columns:repeat(3,1fr); gap:24px;
}
@media (max-width:900px){ .guar-grid{ grid-template-columns:1fr; } }

.guar-card{
  padding:40px 36px 44px;
  background:var(--bone);
  border:1px solid var(--rule);
  position:relative;
  display:flex; flex-direction:column; gap:16px;
}
.guar-card.guar-primary{
  background:var(--ink);
  color:var(--bone);
  border-color:var(--ink);
}
.guar-card.guar-primary .guar-num{ color:var(--gold-lt); }
.guar-card.guar-primary .guar-label{ color:var(--gold-lt); }
.guar-card.guar-primary h3{ color:var(--bone); }
.guar-card.guar-primary .guar-lead{ color:rgba(243,237,225,.85); }
.guar-card.guar-primary .guar-lead b{ color:var(--gold-lt); }
.guar-card.guar-primary .guar-list li{ color:rgba(243,237,225,.78); }
.guar-card.guar-primary .guar-list span{ color:var(--gold-lt); }

.guar-num{
  font-family:var(--serif-en); font-style:italic; font-weight:500;
  font-size:44px; line-height:1; color:var(--gold-dk);
}
.guar-label{
  font-family:var(--mono); font-size:10.5px; letter-spacing:.3em;
  color:var(--gold-dk); padding-bottom:10px;
  border-bottom:1px solid var(--rule);
}
.guar-card.guar-primary .guar-label{ border-bottom-color:rgba(216,205,180,.15); }
.guar-card h3{
  font-family:var(--serif-ja); font-weight:600; font-size:24px;
  color:var(--ink); letter-spacing:.01em;
}
.guar-lead{
  font-size:14px; line-height:1.95; color:var(--text);
}
.guar-lead b{ color:var(--ink); font-weight:600; }
.guar-list{ list-style:none; margin-top:6px; }
.guar-list li{
  display:flex; gap:10px; align-items:baseline;
  padding:6px 0; font-size:13px; color:var(--text-dim);
  line-height:1.7;
}
.guar-list span{ color:var(--gold); font-size:8px; }

.guar-note{
  margin-top:32px;
  padding-top:20px;
  border-top:1px solid var(--rule);
  font-family:var(--mono); font-size:10.5px; letter-spacing:.08em;
  color:var(--mute); line-height:1.9;
  text-align:center;
}

/* ==================== WHY ==================== */
.sec-why{}
.why-grid{
  display:grid; grid-template-columns:repeat(4,1fr); gap:0;
  border-top:1px solid var(--rule);
  border-left:1px solid var(--rule);
}
.why-card{
  padding:48px 36px 56px;
  border-right:1px solid var(--rule);
  border-bottom:1px solid var(--rule);
  background:var(--paper);
  position:relative;
  transition:background .3s;
}
.why-card:hover{ background:var(--bone); }
.why-card.accent{ background:var(--ink); color:var(--bone); }
.why-card.accent:hover{ background:var(--ink-2); }
.why-card.accent .why-no{ color:var(--gold-lt); }
.why-card.accent b{ color:var(--gold-lt); }
.why-icon{ color:var(--gold-dk); margin-bottom:32px; }
.why-card.accent .why-icon{ color:var(--gold-lt); }
.why-no{ font-family:var(--serif-en); font-style:italic; font-size:24px; color:var(--gold-dk); margin-bottom:18px; }
.why-card h3{ font-family:var(--serif-ja); font-weight:600; font-size:20px; line-height:1.5; margin-bottom:16px; letter-spacing:.01em; }
.why-card p{ font-size:14px; line-height:2; color:var(--text-dim); }
.why-card.accent p{ color:rgba(243,237,225,.75); }
.why-card p b{ color:var(--ink); font-weight:600; }

@media (max-width:980px){ .why-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .why-grid{ grid-template-columns:1fr; } }

.why-quote{
  margin-top:72px;
  padding:56px 48px;
  background:var(--bone);
  border-left:3px solid var(--gold);
  max-width:820px;
}
.why-quote p{
  font-family:var(--serif-ja); font-weight:500;
  font-size:clamp(20px,2.4vw,28px); line-height:1.9;
  color:var(--ink);
  text-wrap:pretty;
}
.why-quote cite{
  display:block; margin-top:24px;
  font-family:var(--serif-en); font-style:italic;
  font-size:14px; color:var(--text-dim);
  letter-spacing:.04em;
}


/* ==================== SERVICE ==================== */
.service-grid{
  display:grid; grid-template-columns:repeat(3,1fr); gap:0;
  border-top:1px solid var(--rule);
  border-left:1px solid var(--rule);
}
.svc{
  padding:44px 32px 48px;
  border-right:1px solid var(--rule);
  border-bottom:1px solid var(--rule);
  background:var(--paper);
  position:relative;
  transition:background .3s;
}
.svc:hover{ background:var(--bone); }
.svc-wide{ grid-column:span 3; background:var(--ink); color:var(--bone); }
.svc-wide:hover{ background:var(--ink-2); }
.svc-wide .svc-no{ color:var(--gold-lt); }
.svc-wide .svc-tags li{ border-color:rgba(200,168,97,.4); color:var(--gold-lt); }

.svc-no{
  font-family:var(--serif-en); font-style:italic; font-weight:500;
  font-size:42px; color:var(--gold-dk); line-height:1; margin-bottom:24px;
}
.svc h3{
  font-family:var(--serif-ja); font-weight:600; font-size:21px; line-height:1.5;
  margin-bottom:14px; letter-spacing:.01em;
}
.svc p{ font-size:14px; line-height:2; color:var(--text-dim); }
.svc-wide p{ color:rgba(243,237,225,.75); }
.svc-tags{ list-style:none; display:flex; gap:8px; margin-top:20px; flex-wrap:wrap; }
.svc-tags li{
  font-family:var(--mono); font-size:9.5px; letter-spacing:.22em;
  padding:5px 10px; border:1px solid var(--rule); color:var(--text-dim);
}

@media (max-width:920px){
  .service-grid{ grid-template-columns:repeat(2,1fr); }
  .svc-wide{ grid-column:span 2; }
}
@media (max-width:560px){
  .service-grid{ grid-template-columns:1fr; }
  .svc-wide{ grid-column:span 1; }
}


/* ==================== AI DEMO (dark) ==================== */
.sec-ai{
  max-width:none;
  background:var(--ink);
  color:var(--bone);
  padding:clamp(80px,10vw,140px) 0;
}
.sec-ai .sec-head{
  max-width:var(--maxw); margin:0 auto 64px; padding:0 var(--pad);
}
.ai-demo{
  max-width:var(--maxw); margin:0 auto; padding:0 var(--pad);
  display:grid; grid-template-columns:1fr 1fr; gap:32px;
  align-items:stretch;
}
@media (max-width:960px){ .ai-demo{ grid-template-columns:1fr; } }

/* Left: coin window */
.ai-window{
  background:#14120e;
  border:1px solid rgba(216,205,180,.1);
  height:100%;
  display:flex; flex-direction:column;
}
.ai-winbar{
  display:flex; align-items:center; gap:6px;
  padding:10px 14px;
  border-bottom:1px solid rgba(216,205,180,.08);
}
.ai-winbar .dot{ width:10px; height:10px; border-radius:50%; background:#3a3530; }
.ai-winbar .dot:nth-child(1){ background:#5a4a3a; }
.ai-winbar .dot:nth-child(2){ background:#4a4238; }
.wb-label{
  margin-left:12px; font-family:var(--mono); font-size:11px; letter-spacing:.18em;
  color:var(--mute);
}
.ai-canvas{
  flex:1;
  padding:40px;
  background:
    radial-gradient(ellipse at center, rgba(168,134,74,.08), transparent 70%),
    #1a1814;
  display:flex; align-items:center; justify-content:center;
}

.coin-plate{ text-align:center; width:100%; }
.coin-img{
  position:relative; width:min(340px,100%); aspect-ratio:1/1;
  margin:0 auto;
  border-radius:50%;
  overflow:visible;
}
.ci-inner{
  width:100%; height:100%; border-radius:50%; overflow:hidden;
  box-shadow:0 20px 50px -10px rgba(0,0,0,.6), inset 0 0 0 1px rgba(200,168,97,.2);
}
.ai-grid{
  position:absolute; inset:0; border-radius:50%;
  background:
    linear-gradient(rgba(200,168,97,.18) 1px, transparent 1px) 0 0/40px 40px,
    linear-gradient(90deg, rgba(200,168,97,.18) 1px, transparent 1px) 0 0/40px 40px;
  mix-blend-mode:overlay;
  pointer-events:none;
}
.ai-scanline{
  position:absolute; left:0; right:0; top:50%; height:1.5px;
  background:linear-gradient(90deg,transparent,var(--gold-lt),transparent);
  box-shadow:0 0 16px var(--gold-lt);
  animation:scanAi 3s ease-in-out infinite;
}
@keyframes scanAi{
  0%,100%{ top:12%; opacity:.6; }
  50%{ top:88%; opacity:1; }
}
.mark{
  position:absolute;
  border:1px solid var(--gold-lt);
  background:rgba(20,18,14,.8);
  padding:3px 8px;
  font-family:var(--mono); font-size:9.5px; letter-spacing:.14em;
  color:var(--gold-lt);
  white-space:nowrap;
}
.mark::before{
  content:""; position:absolute;
  width:18px; height:1px; background:var(--gold-lt);
}
.mark.m1{ top:18%; left:-40%; }
.mark.m1::before{ right:-20px; top:50%; }
.mark.m2{ top:52%; right:-50%; }
.mark.m2::before{ left:-22px; top:50%; }
.mark.m3{ bottom:14%; left:-36%; }
.mark.m3::before{ right:-20px; top:50%; }

.plate-caption{
  margin-top:32px;
  font-family:var(--serif-en);
  color:var(--bone);
  display:flex; flex-direction:column; gap:4px;
}
.plate-caption span:first-child{ font-size:22px; font-style:italic; font-weight:500; }
.plate-caption span:last-child{ font-size:13px; color:var(--mute); letter-spacing:.08em; }

@media (max-width:640px){
  .mark.m1{ left:auto; right:6%; top:-6%; }
  .mark.m1::before{ display:none; }
  .mark.m2{ right:auto; left:6%; top:auto; bottom:-6%; }
  .mark.m2::before{ display:none; }
  .mark.m3{ display:none; }
}

/* Right: terminal */
.ai-terminal{
  background:#14120e;
  border:1px solid rgba(216,205,180,.1);
  padding:24px 26px 28px;
  font-family:var(--mono);
  font-size:12.5px;
  color:var(--bone-3);
  line-height:1.9;
  height:100%;
  display:flex; flex-direction:column;
}
.term-head{
  display:flex; justify-content:space-between; align-items:center;
  padding-bottom:14px;
  border-bottom:1px solid rgba(216,205,180,.08);
  margin-bottom:18px;
}
.term-label{ letter-spacing:.22em; font-size:11px; color:var(--gold-lt); }
.term-ping{ display:flex; align-items:center; gap:8px; font-size:10px; letter-spacing:.2em; color:#7fc689; }
.term-ping i{ width:7px; height:7px; border-radius:50%; background:#7fc689; box-shadow:0 0 8px #7fc689; animation:pulse 1.8s infinite; }
@keyframes pulse{ 0%,100%{opacity:1;} 50%{opacity:.4;} }

.term-line{ display:flex; gap:8px; padding:4px 0; color:var(--bone); }
.prompt{ color:var(--gold-lt); }
.typed{ color:var(--bone); }
.cursor{ color:var(--gold-lt); animation:blink .9s steps(2) infinite; }
@keyframes blink{ 50%{opacity:0;} }

.term-block{
  margin:10px 0 18px;
  padding:14px 16px;
  background:rgba(216,205,180,.04);
  border-left:2px solid var(--gold-dk);
}
.kv{ display:flex; justify-content:space-between; gap:12px; padding:3px 0; }
.kv span{ color:var(--mute); font-size:11px; letter-spacing:.14em; }
.kv b{ color:var(--bone); font-weight:500; font-size:12.5px; }
.kv b.hi{ color:var(--gold-lt); font-size:13.5px; }
.kv b em{ color:#7fc689; font-style:normal; font-size:11px; margin-left:4px; }

.meter{ margin:8px 0 18px; }
.meter-row{
  display:grid; grid-template-columns:150px 1fr 60px; gap:12px;
  align-items:center; padding:6px 0;
}
.ml{ font-size:11px; color:var(--mute); letter-spacing:.1em; }
.mbar{
  height:4px; background:rgba(216,205,180,.1); position:relative; overflow:hidden;
}
.mbar i{
  display:block; height:100%;
  background:linear-gradient(90deg, var(--gold-dk), var(--gold-lt));
  animation:fillw 1.4s ease-out;
}
@keyframes fillw{ from{width:0 !important;} }
.mv{ text-align:right; color:var(--gold-lt); font-size:11px; }

.chart{ width:100%; height:120px; margin:8px 0 18px; }


/* ==================== MASTERS ==================== */
.masters-grid{
  display:grid; grid-template-columns:1fr 1fr; gap:48px;
  border-top:1px solid var(--rule); padding-top:56px;
}
@media (max-width:880px){ .masters-grid{ grid-template-columns:1fr; } }

.master{ display:grid; grid-template-columns:200px 1fr; gap:32px; align-items:start; }
@media (max-width:520px){ .master{ grid-template-columns:1fr; } }

.master-portrait{ position:relative; }
.portrait-frame{
  position:relative; aspect-ratio:5/6;
  border:1px solid var(--rule);
  padding:8px; background:var(--bone);
}
.portrait-frame svg{ width:100%; height:100%; display:block; }
.portrait-tag{
  position:absolute; bottom:-12px; left:50%; transform:translateX(-50%);
  background:var(--ink); color:var(--gold-lt);
  font-family:var(--mono); font-size:9.5px; letter-spacing:.26em;
  padding:6px 14px;
  white-space:nowrap;
}

.master-role{
  font-family:var(--mono); font-size:10.5px; letter-spacing:.26em;
  color:var(--gold-dk); margin-bottom:10px;
}
.master-name{
  font-family:var(--serif-ja); font-weight:600; font-size:26px;
  margin-bottom:18px; color:var(--ink);
}
.master-name .en{
  display:block; font-family:var(--serif-en); font-style:italic; font-weight:500;
  font-size:14px; color:var(--text-dim); margin-top:4px;
  letter-spacing:.03em;
}
.master-bio{ font-size:13.5px; line-height:2; color:var(--text-dim); margin-bottom:18px; }
.master-creds{ list-style:none; border-top:1px solid var(--rule); padding-top:14px; }
.master-creds li{
  display:flex; gap:10px; align-items:baseline;
  font-size:13px; color:var(--text); padding:4px 0;
}
.master-creds li span{ color:var(--gold); font-size:8px; }

.masters-advisors{
  margin-top:72px; padding-top:32px;
  border-top:1px solid var(--rule);
}
.adv-label{
  font-family:var(--mono); font-size:10.5px; letter-spacing:.32em;
  color:var(--mute); text-align:center; margin-bottom:24px;
}
.adv-list{
  display:grid; grid-template-columns:repeat(4,1fr); gap:24px;
}
@media (max-width:720px){ .adv-list{ grid-template-columns:repeat(2,1fr); } }
.adv{ display:flex; flex-direction:column; gap:4px; }
.adv b{ font-family:var(--serif-ja); font-weight:600; font-size:15px; }
.adv span{ font-size:11.5px; color:var(--text-dim); }


/* ==================== RESULTS (dark) ==================== */
.sec-results{
  max-width:none;
  background:var(--ink);
  color:var(--bone);
  padding:clamp(80px,10vw,140px) 0;
}
.sec-results .sec-head{
  max-width:var(--maxw); margin:0 auto 56px; padding:0 var(--pad);
}
.sec-results .sec-lead{ color:rgba(243,237,225,.55); font-size:12.5px; }

.results-stats{
  max-width:var(--maxw); margin:0 auto 64px;
  padding:0 var(--pad);
  display:grid; grid-template-columns:repeat(6,1fr);
  border-top:1px solid rgba(216,205,180,.1);
  border-bottom:1px solid rgba(216,205,180,.1);
}
.stat{
  padding:36px 24px;
  text-align:center;
  border-right:1px solid rgba(216,205,180,.1);
}
.stat:last-child{ border-right:none; }
.stat b{
  display:block;
  font-family:var(--serif-en); font-weight:500;
  font-size:clamp(30px,3.2vw,44px); letter-spacing:.01em;
  color:var(--bone);
  line-height:1;
}
.stat b em{ font-style:normal; font-size:.55em; margin-left:2px; color:var(--gold-lt); }
.stat span{
  display:block; margin-top:12px;
  font-family:var(--mono); font-size:9.5px; letter-spacing:.24em;
  color:var(--mute);
}
@media (max-width:980px){ .results-stats{ grid-template-columns:repeat(3,1fr); }
  .stat:nth-child(3){ border-right:none; }
  .stat:nth-child(1),.stat:nth-child(2),.stat:nth-child(3){ border-bottom:1px solid rgba(216,205,180,.1); } }
@media (max-width:560px){ .results-stats{ grid-template-columns:repeat(2,1fr); }
  .stat{ border-right:1px solid rgba(216,205,180,.1) !important; }
  .stat:nth-child(2n){ border-right:none !important; }
  .stat:not(:nth-last-child(-n+2)){ border-bottom:1px solid rgba(216,205,180,.1); } }

.cases{
  max-width:var(--maxw); margin:0 auto; padding:0 var(--pad);
  display:grid; grid-template-columns:repeat(3,1fr); gap:24px;
}
@media (max-width:900px){ .cases{ grid-template-columns:1fr; } }
.case{
  background:#14120e;
  border:1px solid rgba(216,205,180,.1);
  padding:32px 28px;
  display:flex; flex-direction:column; gap:14px;
}
.case-no{
  font-family:var(--mono); font-size:10px; letter-spacing:.3em;
  color:var(--gold-lt);
}
.case-meta{
  font-family:var(--mono); font-size:10.5px; letter-spacing:.18em;
  color:var(--mute);
}
.case-title{
  font-family:var(--serif-ja); font-weight:600; font-size:19px;
  line-height:1.65; color:var(--bone); margin:2px 0 6px;
}
.case-data{
  display:grid; grid-template-columns:1fr 1fr 1.3fr; gap:14px;
  padding:14px; background:rgba(216,205,180,.04);
  border-left:2px solid var(--gold-dk);
}
.case-data > div{ display:flex; flex-direction:column; gap:2px; }
.case-data span{ font-family:var(--mono); font-size:9.5px; letter-spacing:.2em; color:var(--mute); }
.case-data b{ font-family:var(--serif-en); font-weight:500; font-size:15px; color:var(--bone); }
.case-data b.up{ color:var(--gold-lt); }
.case-data b i{ font-style:normal; font-size:11px; color:#7fc689; margin-left:4px; }
.case-body{ font-size:13px; line-height:1.9; color:rgba(243,237,225,.65); }


/* ==================== EXIT FLOW ==================== */
.exit-flow{
  display:grid; grid-template-columns:repeat(4,1fr); gap:0;
  margin-top:40px; position:relative;
}
.exit-flow::before{
  content:""; position:absolute;
  top:32px; left:5%; right:5%; height:1px; background:var(--rule);
  z-index:0;
}
.flow-step{
  padding:0 24px 24px;
  position:relative; z-index:1;
  background:var(--paper);
}
.fs-num{
  font-family:var(--mono); font-size:10.5px; letter-spacing:.26em;
  color:var(--gold-dk); margin-bottom:14px;
}
.fs-dot{
  width:12px; height:12px; border-radius:50%;
  background:var(--paper);
  border:1px solid var(--gold);
  margin-bottom:24px; position:relative;
}
.fs-dot::after{
  content:""; position:absolute; inset:3px; border-radius:50%;
  background:var(--gold);
}
.flow-step h4{
  font-family:var(--serif-ja); font-weight:600; font-size:18px;
  margin-bottom:12px; color:var(--ink);
}
.flow-step p{
  font-size:13px; line-height:2; color:var(--text-dim);
}
@media (max-width:820px){
  .exit-flow{ grid-template-columns:1fr 1fr; }
  .exit-flow::before{ display:none; }
  .flow-step{ padding:20px; border:1px solid var(--rule); margin:-0.5px; }
}
@media (max-width:520px){ .exit-flow{ grid-template-columns:1fr; } }


/* ==================== EVENTS ==================== */
.events-list{ list-style:none; border-top:1px solid var(--rule); }
.event{
  display:grid;
  grid-template-columns:140px 1fr auto;
  gap:32px; align-items:center;
  padding:28px 8px;
  border-bottom:1px solid var(--rule);
  transition:background .25s;
}
.event:hover{ background:var(--bone); }
.event-date{
  display:flex; flex-direction:column; gap:2px;
  font-family:var(--serif-en); line-height:1;
}
.event-date b{ font-size:36px; font-weight:500; letter-spacing:.01em; color:var(--ink); }
.event-date span{ font-size:12px; letter-spacing:.22em; color:var(--gold-dk); font-style:italic; margin-top:4px; }
.event-date em{ font-size:11px; color:var(--mute); margin-top:2px; }
.event-type{
  font-family:var(--mono); font-size:10px; letter-spacing:.24em;
  color:var(--gold-dk); margin-bottom:6px;
}
.event-body h4{
  font-family:var(--serif-ja); font-weight:600; font-size:18px;
  margin-bottom:4px; color:var(--ink);
}
.event-body h4 .muted{ color:var(--text-dim); font-weight:400; font-size:13px; }
.event-body p{ font-size:12.5px; color:var(--text-dim); }
.event-tags{ display:flex; gap:6px; }
.event-tags span{
  font-family:var(--mono); font-size:9px; letter-spacing:.22em;
  padding:4px 8px; border:1px solid var(--rule); color:var(--text-dim);
}
@media (max-width:700px){
  .event{ grid-template-columns:100px 1fr; gap:18px; }
  .event-tags{ grid-column:2; }
  .event-date b{ font-size:28px; }
}


/* ==================== VOICES ==================== */
.voices{
  display:grid; grid-template-columns:1fr 1fr; gap:32px;
}
@media (max-width:720px){ .voices{ grid-template-columns:1fr; } }
.voice{
  padding:36px 32px;
  background:var(--bone);
  border-left:2px solid var(--gold);
}
.voice blockquote{
  font-family:var(--serif-ja); font-weight:500;
  font-size:16px; line-height:2.05;
  color:var(--ink);
  text-wrap:pretty;
  position:relative; padding-left:28px;
}
.voice blockquote::before{
  content:"\201C"; position:absolute; left:-4px; top:-18px;
  font-family:var(--serif-en); font-size:56px; color:var(--gold);
  line-height:1;
}
.voice figcaption{
  margin-top:20px; padding-top:14px;
  border-top:1px solid var(--rule-dk);
  border-top-color:rgba(58,51,42,.15);
  font-family:var(--mono); font-size:11px; letter-spacing:.16em;
  color:var(--text-dim);
}


/* ==================== PLAN ==================== */
.sec-plan{
  max-width:none;
  background:var(--ink);
  color:var(--bone);
  padding:clamp(80px,10vw,140px) 0;
}
.sec-plan .sec-head{
  max-width:var(--maxw); margin:0 auto 56px; padding:0 var(--pad);
}
.plan-card{
  max-width:1000px; margin:0 auto; padding:0 var(--pad);
}
.plan-card > *{ background:#14120e; }
.plan-head{
  padding:44px 48px;
  border:1px solid rgba(216,205,180,.12);
  border-bottom:none;
  display:grid; grid-template-columns:1fr auto; gap:32px;
  align-items:center;
}
@media (max-width:720px){ .plan-head{ grid-template-columns:1fr; } }
.pl-sub{
  font-family:var(--mono); font-size:10.5px; letter-spacing:.3em;
  color:var(--gold-lt); margin-bottom:12px; display:block;
}
.plan-name h3{
  font-family:var(--serif-ja); font-weight:600; font-size:28px;
  color:var(--bone); letter-spacing:.02em;
}
.plan-price{
  display:flex; align-items:flex-end; gap:24px;
}
.pp-init, .pp-monthly{ display:flex; flex-direction:column; gap:2px; text-align:right; }
.pp-init span, .pp-monthly span{
  font-family:var(--mono); font-size:10px; letter-spacing:.22em; color:var(--mute);
}
.pp-init b, .pp-monthly b{
  font-family:var(--serif-en); font-weight:500; font-size:28px; color:var(--bone);
  letter-spacing:.01em; line-height:1;
}
.pp-monthly b{ font-size:36px; color:var(--gold-lt); }
.pp-init em, .pp-monthly em{
  font-family:var(--mono); font-size:9.5px; letter-spacing:.18em; color:var(--mute); margin-top:4px;
  font-style:normal;
}
.pp-divider{ width:1px; align-self:stretch; background:rgba(216,205,180,.15); margin:0 4px; }

.plan-body{
  padding:48px;
  border-left:1px solid rgba(216,205,180,.12);
  border-right:1px solid rgba(216,205,180,.12);
  display:grid; grid-template-columns:1.3fr 1fr; gap:56px;
}
@media (max-width:720px){ .plan-body{ grid-template-columns:1fr; gap:36px; padding:36px 24px; } }
.plan-feats h4, .plan-opt h4{
  font-family:var(--mono); font-size:10.5px; letter-spacing:.26em;
  color:var(--gold-lt); padding-bottom:12px;
  border-bottom:1px solid rgba(216,205,180,.12);
  margin-bottom:20px;
}
.plan-feats ul, .plan-opt ul{ list-style:none; }
.plan-feats li{
  font-size:14px; color:rgba(243,237,225,.85);
  padding:10px 0; line-height:1.6;
  border-bottom:1px dashed rgba(216,205,180,.08);
}
.plan-feats li:last-child{ border-bottom:none; }
.plan-opt li{
  display:flex; justify-content:space-between; gap:12px;
  padding:10px 0;
  border-bottom:1px dashed rgba(216,205,180,.08);
  font-size:13.5px;
  color:rgba(243,237,225,.85);
}
.plan-opt li em{
  font-family:var(--serif-en); font-style:italic; color:var(--gold-lt);
  white-space:nowrap;
}

.plan-foot{
  padding:36px 48px 44px;
  border:1px solid rgba(216,205,180,.12);
  border-top:none;
  display:grid; grid-template-columns:1fr auto; gap:24px; align-items:center;
}
@media (max-width:720px){ .plan-foot{ grid-template-columns:1fr; padding:28px 24px; } }
.pf-note{
  font-family:var(--mono); font-size:10.5px; letter-spacing:.12em;
  color:var(--mute); line-height:1.9;
}
.plan-foot .btn-primary{
  background:var(--bone); color:var(--ink); border-color:var(--bone);
}
.plan-foot .btn-primary:hover{ background:var(--gold-lt); border-color:var(--gold-lt); color:var(--ink); }


/* ==================== FAQ ==================== */
.faq-list{ max-width:860px; margin:0 auto; border-top:1px solid var(--rule); }
.faq-item{ border-bottom:1px solid var(--rule); }
.faq-item summary{
  list-style:none; cursor:pointer;
  padding:24px 0;
  display:flex; gap:14px; align-items:baseline;
  font-family:var(--serif-ja); font-weight:600; font-size:16px;
  color:var(--ink);
  position:relative; padding-right:40px;
  transition:color .2s;
}
.faq-item summary::-webkit-details-marker{ display:none; }
.faq-item summary:hover{ color:var(--gold-dk); }
.faq-item summary::after{
  content:"+"; position:absolute; right:4px; top:50%; transform:translateY(-50%);
  font-family:var(--serif-en); font-size:22px; color:var(--gold); font-weight:300;
  transition:transform .3s;
}
.faq-item[open] summary::after{ content:"\2212"; }
.faq-item .q{
  font-family:var(--serif-en); font-style:italic; color:var(--gold-dk);
  font-size:18px; flex-shrink:0;
}
.faq-item .a{
  display:flex; gap:14px; padding:0 0 24px;
  animation:fadeIn .3s;
}
@keyframes fadeIn{ from{opacity:0; transform:translateY(-4px);} }
.faq-item .a span{
  font-family:var(--serif-en); font-style:italic; color:var(--gold-dk);
  font-size:18px; flex-shrink:0;
}
.faq-item .a p{ font-size:14px; line-height:2; color:var(--text-dim); padding-top:1px; }


/* ==================== CTA ==================== */
.sec-cta{
  max-width:none;
  background:
    radial-gradient(ellipse 60% 50% at 50% 20%, rgba(168,134,74,.08), transparent 70%),
    var(--bone);
  padding:clamp(80px,10vw,140px) var(--pad);
  border-top:1px solid var(--rule);
}
.cta-box{
  max-width:720px; margin:0 auto; text-align:center;
}
.cta-ornament{ color:var(--gold-dk); margin-bottom:24px; display:flex; justify-content:center; }
.cta-eyebrow{
  font-family:var(--mono); font-size:10.5px; letter-spacing:.32em;
  color:var(--gold-dk); margin-bottom:22px;
}
.cta-title{
  font-family:var(--serif-ja); font-weight:600;
  font-size:clamp(32px,4.5vw,52px); line-height:1.4;
  color:var(--ink); letter-spacing:.02em;
}
.cta-title em{
  font-family:var(--serif-en); font-style:italic; font-weight:500;
  color:var(--gold-dk);
}
.cta-lead{
  margin-top:28px; font-size:15.5px; line-height:2.1;
  color:var(--text-dim);
}
.sec-cta .btn{ margin-top:40px; }
.cta-sub{
  margin-top:36px; padding-top:24px;
  border-top:1px solid var(--rule);
  display:flex; justify-content:center; gap:24px; flex-wrap:wrap;
  font-family:var(--mono); font-size:10.5px; letter-spacing:.18em;
  color:var(--mute);
}


/* ==================== FOOTER ==================== */
.foot{
  background:var(--ink);
  color:var(--bone-3);
}
.foot-inner{
  max-width:var(--maxw); margin:0 auto;
  padding:64px var(--pad) 40px;
  display:grid; grid-template-columns:1.2fr 2fr; gap:48px;
}
@media (max-width:760px){ .foot-inner{ grid-template-columns:1fr; } }
.foot-brand{ display:flex; gap:14px; align-items:flex-start; color:var(--gold-lt); }
.fb-text{ display:flex; flex-direction:column; gap:6px; }
.fb-text b{ font-family:var(--serif-en); font-size:17px; letter-spacing:.1em; color:var(--bone); }
.fb-text span{ font-family:var(--mono); font-size:10.5px; letter-spacing:.14em; color:var(--mute); line-height:1.7; }

.foot-cols{
  display:grid; grid-template-columns:repeat(3,1fr); gap:24px;
}
@media (max-width:560px){ .foot-cols{ grid-template-columns:repeat(2,1fr); } }
.foot-cols h5{
  font-family:var(--mono); font-size:10px; letter-spacing:.28em;
  color:var(--gold-lt); margin-bottom:16px; font-weight:400;
}
.foot-cols a{
  display:block; padding:5px 0; font-size:13px;
  color:var(--bone-3); transition:color .2s;
}
.foot-cols a:hover{ color:var(--gold-lt); }

.foot-bottom{
  border-top:1px solid rgba(216,205,180,.1);
  padding:24px var(--pad);
  max-width:var(--maxw); margin:0 auto;
  display:flex; justify-content:space-between; gap:24px;
  font-family:var(--mono); font-size:10px; letter-spacing:.1em;
  color:var(--mute); line-height:1.8;
}
@media (max-width:760px){ .foot-bottom{ flex-direction:column; } }

/* ==================== BACK TO TOP ==================== */
.to-top{
  position:fixed;
  right:clamp(16px, 2.4vw, 32px);
  bottom:clamp(16px, 2.4vw, 32px);
  z-index:60;
  width:64px; height:64px;
  display:flex; flex-direction:column;
  align-items:center; justify-content:center;
  gap:2px;
  background:var(--ink);
  color:var(--bone);
  border:1px solid rgba(200,168,97,.35);
  border-radius:50%;
  box-shadow:
    0 12px 28px rgba(26,24,20,.28),
    0 2px 6px rgba(26,24,20,.18),
    inset 0 0 0 1px rgba(200,168,97,.08);
  opacity:0; visibility:hidden;
  transform:translateY(12px);
  transition:opacity .5s ease, transform .5s ease, visibility .5s ease,
             background .25s ease, color .25s ease, border-color .25s ease;
  text-decoration:none;
}
.to-top.show{
  opacity:1; visibility:visible; transform:translateY(0);
}
.to-top .tt-ring{
  position:absolute; inset:0;
  display:flex; align-items:center; justify-content:center;
  color:var(--gold-lt);
  pointer-events:none;
  transition:transform .6s cubic-bezier(.2,.8,.2,1);
}
.to-top .tt-arrow{
  display:flex; align-items:center; justify-content:center;
  color:var(--gold-lt);
  transform:translateY(1px);
  transition:transform .35s ease, color .25s ease;
}
.to-top .tt-label{
  font-family:var(--mono);
  font-size:8.5px; letter-spacing:.24em;
  color:var(--mute);
  transform:translateY(-1px);
  transition:color .25s ease;
}
.to-top:hover{
  background:var(--bone);
  color:var(--ink);
  border-color:var(--gold);
}
.to-top:hover .tt-ring{
  transform:rotate(90deg);
  color:var(--gold);
}
.to-top:hover .tt-arrow{
  transform:translateY(-3px);
  color:var(--ink);
}
.to-top:hover .tt-label{
  color:var(--gold-dk);
}
.to-top:focus-visible{
  outline:2px solid var(--gold-lt);
  outline-offset:3px;
}
@media (max-width:560px){
  .to-top{
    width:52px; height:52px;
    right:14px; bottom:14px;
  }
  .to-top .tt-label{ display:none; }
  .to-top .tt-arrow svg{ width:16px; height:16px; }
}
@media (prefers-reduced-motion: reduce){
  .to-top, .to-top .tt-ring, .to-top .tt-arrow, .to-top .tt-label{
    transition:opacity .2s ease, visibility .2s ease;
  }
}
