/* 8loop partner app. Light theme on the partner-sheet palette. */
html{color-scheme:light;}
/* 8loop partner app. Design system carried from the partner kit prototype. */
:root{
  --ground:#FFFFFF; --panel:#F5F6FA; --raised:#EEF0F6; --hover:#E9EBF2; --screen:#E6E8F0;
  --line:#E4E6EF; --line2:#CfD3DF;
  --text:#1B1C1F; --muted:#5A5B63; --dim:#8A8C96;
  --accent:#3D59D0; --accent2:#2F48B8; --solid:#3D59D0; --glow:rgba(61,89,208,.10);
  --ok:#1F9D63; --bad:#C94A3B; --rail:264px;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0; background:var(--ground); color:var(--text);
  font-family:"Figtree",system-ui,-apple-system,sans-serif; line-height:1.5; -webkit-font-smoothing:antialiased;}
a{color:var(--accent);}
.mono{font-family:"IBM Plex Mono",ui-monospace,monospace;}
button{font-family:inherit;}

/* ---------- atmosphere ---------- */
.bg{position:fixed; inset:0; pointer-events:none; z-index:0; overflow:hidden;}
.blob{position:absolute; border-radius:50%; filter:blur(110px); opacity:.35;}
.b1{width:620px; height:620px; left:14%; top:-280px; background:radial-gradient(circle,#C9D3F7 0%,transparent 68%);}
.b2{width:520px; height:520px; right:-140px; top:28%; background:radial-gradient(circle,#D6DDF8 0%,transparent 70%); opacity:.3;}
.b3{width:460px; height:460px; left:30%; bottom:-220px; background:radial-gradient(circle,#E3DDF8 0%,transparent 70%); opacity:.25;}
.grid{position:absolute; inset:0;
  background-image:linear-gradient(rgba(27,28,31,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(27,28,31,.045) 1px,transparent 1px);
  background-size:64px 64px; mask-image:radial-gradient(ellipse 85% 65% at 50% 25%,#000 30%,transparent 100%);}
.noise{position:fixed; inset:0; z-index:1; pointer-events:none; opacity:.05; mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)'/%3E%3C/svg%3E");}

/* ---------- shared type ---------- */
.eyebrow{font-family:"IBM Plex Mono",monospace; font-size:11px; letter-spacing:.17em; text-transform:uppercase; color:var(--accent); margin:0 0 16px;}
h1{font-size:54px; font-weight:800; letter-spacing:-.035em; margin:0 0 14px; line-height:1.02; text-wrap:balance;}
.lead{font-size:18.5px; color:var(--muted); margin:0 0 40px; max-width:58ch;}
h2.sec{font-size:13px; letter-spacing:.14em; text-transform:uppercase; color:var(--dim); font-weight:600; margin:48px 0 18px;}
.foot{margin-top:44px; padding-top:22px; border-top:1px solid var(--line); font-size:12.5px; color:var(--dim);}
.spot{position:relative; overflow:hidden;}
.spot::before{content:""; position:absolute; inset:0; opacity:0; transition:opacity .25s;
  background:radial-gradient(420px circle at var(--mx,50%) var(--my,50%),rgba(61,89,208,.08),transparent 42%);}
.spot:hover::before{opacity:1;}
.brand{display:flex; align-items:center; gap:10px; text-decoration:none; color:var(--text);}
.brand svg{width:21px; height:21px; flex:none;}
.brand b{font-size:19px; font-weight:800; letter-spacing:-.025em;}
.go{font-size:15px; font-weight:600; cursor:pointer; background:var(--solid); color:#fff; border:none; border-radius:10px; padding:15px 26px; transition:all .16s; text-decoration:none; display:inline-block;}
.go:hover{background:var(--accent2); box-shadow:0 0 28px rgba(61,89,208,.45);}
.go:disabled{opacity:.5; cursor:default; box-shadow:none;}
.ghost{background:none; border:1px solid var(--line2); color:var(--muted);}
.ghost:hover{background:var(--raised); color:var(--text); box-shadow:none;}
.btnrow{display:flex; gap:11px; margin-top:28px; align-items:center; flex-wrap:wrap;}
.small{font-size:13px; padding:10px 16px; border-radius:8px; white-space:nowrap;}
.err{color:var(--bad); font-size:13.5px; margin-top:10px; min-height:1.2em;}
.okmsg{color:var(--ok); font-size:13.5px; margin-top:10px;}
input[type=text],input[type=email],input[type=url],select,textarea{font-family:inherit; font-size:14px; padding:12px 13px; width:100%;
  background:var(--panel); border:1px solid var(--line); border-radius:9px; color:var(--text);}
input:focus,select:focus,textarea:focus{outline:none; border-color:var(--accent2);}
textarea{resize:vertical; min-height:90px;}
label.f{display:block; font-size:12px; color:var(--dim); margin:0 0 6px; letter-spacing:.04em;}
.fields{display:grid; grid-template-columns:1fr 1fr; gap:12px;}
.fields .full{grid-column:1 / -1;}
.chk{display:flex; gap:10px; align-items:center; font-size:14px; color:var(--muted); cursor:pointer;}
.chk input{width:16px; height:16px; accent-color:var(--solid);}

/* ---------- public page ---------- */
.top{position:sticky; top:0; z-index:4; display:flex; align-items:center; justify-content:space-between; gap:20px;
  padding:16px 40px; border-bottom:1px solid var(--line); backdrop-filter:blur(14px);
  background:linear-gradient(180deg,rgba(255,255,255,.9),rgba(255,255,255,.75));}
.top nav{display:flex; gap:4px; flex-wrap:wrap;}
.top nav a{font-size:13px; color:var(--muted); text-decoration:none; padding:8px 12px; border-radius:8px; transition:all .16s;}
.top nav a:hover{color:var(--text); background:var(--hover);}
.top .cta{display:flex; gap:8px; align-items:center; flex:none;}
.page{position:relative; z-index:2;}
.wrap{max-width:1120px; margin:0 auto; padding:0 40px;}
section.blk{padding:96px 0;}
section.blk + section.blk{border-top:1px solid var(--line);}
.hero{padding:120px 0 90px;}
.hero h1{font-size:64px; max-width:19ch;}
.hero .lead{font-size:20px; max-width:54ch;}
.heroline{display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:48px; padding-top:32px; border-top:1px solid var(--line); max-width:960px;}
.heroline div{font-size:14px; color:var(--muted); line-height:1.55;}
.heroline b{display:block; font-size:18px; font-weight:700; letter-spacing:-.02em; color:var(--text); margin-bottom:6px;}

.why{display:grid; grid-template-columns:1.2fr 1fr; gap:48px; align-items:start;}
.why p{font-size:16.5px; color:var(--muted); line-height:1.7; margin:0 0 18px; max-width:56ch;}
.why p b{color:var(--text); font-weight:600;}
.quoteblock{border-left:2px solid var(--solid); padding:6px 0 6px 22px; margin:0;}
.quoteblock p{font-size:24px; line-height:1.4; font-weight:500; letter-spacing:-.02em; margin:0 0 14px; color:var(--text);}
.quoteblock span{font-family:"IBM Plex Mono",monospace; font-size:11.5px; color:var(--accent); letter-spacing:.08em;}

.quoteblock.wide{margin-top:40px; max-width:60ch;}

.founders{display:grid; grid-template-columns:repeat(3,1fr); gap:14px;}
.fdr{background:#FFFFFF; border:1px solid var(--line); border-radius:14px; padding:24px; transition:border-color .2s, transform .2s;}
.fdr:hover{border-color:var(--line2); transform:translateY(-2px);}
.fname{margin:0 0 2px; font-size:20px; font-weight:700; letter-spacing:-.02em;}
.frole{margin:0 0 14px; font-family:"IBM Plex Mono",monospace; font-size:10.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--accent);}
.fbio{margin:0; font-size:14px; color:var(--muted); line-height:1.6;}
.facts.four{grid-template-columns:repeat(4,1fr); margin-top:0;}
.avatar{width:56px; height:56px; margin-bottom:16px;}
.avatar svg{width:100%; height:100%; display:block;}
.fic{width:38px; height:38px; border-radius:10px; background:var(--glow); display:grid; place-items:center; margin-bottom:16px;}
.fic svg{width:20px; height:20px;}
.bic{width:44px; height:44px; border-radius:12px; background:var(--glow); display:grid; place-items:center; margin-bottom:18px;}
.bic svg{width:24px; height:24px;}
.cell.sm .fic{margin-bottom:14px;}
.icp{display:grid; grid-template-columns:repeat(3,1fr); gap:14px;}
.icpcol{background:#FFFFFF; border:1px solid var(--line); border-radius:16px; padding:26px; transition:border-color .2s, transform .2s;}
.icpcol:hover{border-color:var(--line2); transform:translateY(-2px);}
.icpcol h3{margin:0 0 14px; font-size:21px; font-weight:700; letter-spacing:-.02em;}
.icpsub{margin:14px 0 8px; font-family:"IBM Plex Mono",monospace; font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:var(--dim);}
.icpcol ul{margin:0; padding:0; list-style:none; display:flex; flex-direction:column; gap:7px;}
.icpcol li{font-size:14.5px; color:var(--text); line-height:1.5; padding-left:16px; position:relative;}
.icpcol li::before{content:""; position:absolute; left:0; top:.62em; width:6px; height:6px; border-radius:50%; background:var(--accent);}
.icpcol li b{font-weight:600;}
.icpcol ul.dimlist li{color:var(--muted);} .icpcol ul.dimlist li::before{background:var(--dim);}
.icpnote{margin:18px 0 0; padding-top:14px; border-top:1px solid var(--line); font-size:13.5px; color:var(--muted); line-height:1.55;}
.job .chips{display:flex; flex-wrap:wrap; gap:6px; margin:0 0 20px;}
.job .chips span{font-family:"IBM Plex Mono",monospace; font-size:10px; letter-spacing:.08em; text-transform:uppercase; color:var(--accent); background:var(--glow); border-radius:5px; padding:5px 8px;}
.job .heard p{position:relative; background:var(--raised); border:1px solid var(--line); border-radius:12px 12px 12px 3px; padding:11px 14px; font-style:italic; color:var(--text); font-size:14px; margin:0 0 10px;}
.job .heard p:last-child{margin:0;}
.job .fic{margin-bottom:16px;}
.job h3{min-height:0;}
.pf{display:flex; flex-direction:column; gap:8px; padding:24px 24px 20px; border-color:var(--line2); background:#FFFFFF;}
.pf .pind{font-family:"IBM Plex Mono",monospace; font-size:10.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--accent); background:var(--glow); border-radius:5px; padding:6px 9px; width:fit-content; margin-bottom:10px;}
.pf b{margin:0;}
.pf .pwhat{font-size:14.5px; color:var(--muted); line-height:1.5;}
.ptypes{display:flex; flex-wrap:wrap; gap:8px;}
.ptypes span{font-size:13.5px; color:var(--muted); background:var(--panel); border:1px solid var(--line); border-radius:999px; padding:9px 15px;}
.prod{display:grid; grid-template-columns:480px 1fr; gap:44px; align-items:center;}
.loopart{background:#FFFFFF; border:1px solid var(--line); border-radius:16px; padding:8px;}
.loopart svg{width:100%; height:auto; display:block;}
.loopsteps{display:flex; flex-direction:column; gap:10px;}
.ls{display:grid; grid-template-columns:36px 1fr; gap:12px; padding:14px 16px; background:var(--panel); border:1px solid var(--line); border-radius:12px;}
.ls .n{font-family:"IBM Plex Mono",monospace; font-size:11px; color:var(--accent); padding-top:3px;}
.ls b{display:block; font-size:16px; font-weight:600; margin-bottom:3px;}
.ls p{margin:0; font-size:14px; color:var(--muted); line-height:1.55;}
.chans{display:grid; grid-template-columns:repeat(4,1fr); gap:14px;}
.chan{background:#FFFFFF; border:1px solid var(--line); border-radius:14px; padding:22px;}
.chan .fic{margin-bottom:14px;}
.chan b{display:block; font-size:16px; font-weight:600; margin-bottom:5px;}
.chan span{font-size:13.5px; color:var(--muted); line-height:1.55;}
.isnot{display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-top:28px;}
.isnot .lab{font-family:"IBM Plex Mono",monospace; font-size:10.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--dim); margin-right:6px;}
.isnot span:not(.lab){font-size:13px; color:var(--dim); background:var(--panel); border:1px solid var(--line); border-radius:7px; padding:8px 13px;}
.steps4{display:grid; grid-template-columns:repeat(4,1fr); gap:14px;}
.s4{background:#FFFFFF; border:1px solid var(--line); border-radius:16px; padding:24px; display:flex; flex-direction:column; gap:10px; position:relative;}
.s4top{display:flex; justify-content:space-between; align-items:center; gap:8px; margin-bottom:6px;}
.s4 .n{font-family:"IBM Plex Mono",monospace; font-size:12px; color:var(--accent);}
.s4 .when{font-family:"IBM Plex Mono",monospace; font-size:9.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--ok); background:rgba(31,157,99,.12); border-radius:5px; padding:5px 8px;}
.s4 b{font-size:17px; font-weight:600; letter-spacing:-.015em;}
.s4 p{margin:0; font-size:14px; color:var(--muted); line-height:1.6;}
.logo{height:26px; width:auto; display:block;}
.logo.sm{height:18px; display:inline-block; vertical-align:middle; margin-right:8px;}
.footbrand{display:inline-flex; align-items:center;}
.whogrid{display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:start;}
.founder{background:var(--panel); border:1px solid var(--line); border-radius:16px; padding:30px;}
.founder .ph{font-family:"IBM Plex Mono",monospace; font-size:11px; color:#B07A1E; letter-spacing:.1em; text-transform:uppercase; margin:0 0 12px;}
.founder p{font-size:15.5px; color:var(--muted); line-height:1.7; margin:0 0 14px;}
.founder p:last-child{margin:0;}
.facts{display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-top:28px;}
.fact{background:#FFFFFF; border:1px solid var(--line); border-radius:14px; padding:20px 22px;}
.fact b{display:block; font-size:15px; margin-bottom:5px; font-weight:600;}
.fact span{font-size:13.5px; color:var(--muted); line-height:1.55;}
.certs{display:flex; flex-wrap:wrap; gap:8px; margin-top:20px;}
.cert{font-family:"IBM Plex Mono",monospace; font-size:11px; letter-spacing:.08em; color:var(--muted); border:1px solid var(--line2); border-radius:6px; padding:7px 11px;}

/* bento */
.bento{display:grid; grid-template-columns:repeat(4,1fr); gap:14px;}
.cell{background:#FFFFFF; border:1px solid var(--line); border-radius:14px; padding:26px; transition:border-color .2s, transform .2s;}
.cell:hover{border-color:var(--line2); transform:translateY(-2px);}
.cell.big{grid-column:span 2; padding:30px;}
.stage-tag{display:inline-flex; align-items:center; gap:7px; font-family:"IBM Plex Mono",monospace; font-size:10.5px; letter-spacing:.13em; text-transform:uppercase; padding:5px 10px; border-radius:5px; margin-bottom:18px;}
.t-now{background:rgba(27,28,31,.05); color:var(--muted);}
.t-up{background:var(--glow); color:var(--accent);}
.cell h3{font-size:26px; font-weight:700; letter-spacing:-.02em; margin:0 0 6px;}
.cell .rate{font-size:40px; font-weight:800; letter-spacing:-.035em; margin:16px 0 4px; font-variant-numeric:tabular-nums;}
.cell .rate em{font-style:normal; font-size:17px; font-weight:500; color:var(--muted); letter-spacing:0;}
.cell p{font-size:14.5px; color:var(--muted); margin:10px 0 0; line-height:1.6;}
.cell.sm b{display:block; font-size:15px; margin-bottom:5px; font-weight:600;}
.cell.sm span{font-size:13.5px; color:var(--muted); line-height:1.55;}
.ladder{display:flex; align-items:center; gap:12px; margin:26px 0 0; padding-top:20px; border-top:1px solid var(--line);}
.pip{width:26px; height:26px; border-radius:50%; border:1px solid var(--line2); display:grid; place-items:center; font-family:"IBM Plex Mono",monospace; font-size:11px; color:var(--dim);}
.pip.fill{background:var(--solid); border-color:var(--solid); color:#fff;}
.ladder span{font-size:13px; color:var(--muted);}

/* calculator */
.calc{display:grid; grid-template-columns:1fr 340px; background:var(--panel); border:1px solid var(--line); border-radius:16px; overflow:hidden; margin-top:32px;}
.ctrls{padding:34px;}
.out{padding:34px; border-left:1px solid var(--line); display:flex; flex-direction:column; justify-content:center; background:var(--raised);}
.ctl{margin-bottom:30px;} .ctl:last-child{margin-bottom:0;}
.ctl label{display:flex; justify-content:space-between; align-items:baseline; font-size:13.5px; color:var(--muted); margin-bottom:13px;}
.ctl label .v{font-family:"IBM Plex Mono",monospace; font-size:17px; color:var(--text); font-weight:500;}
input[type=range]{-webkit-appearance:none; appearance:none; width:100%; height:4px; border-radius:4px; background:var(--line2); outline:none;}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none; width:17px; height:17px; border-radius:50%; background:var(--accent); cursor:pointer; border:3px solid var(--ground); box-shadow:0 0 0 1px var(--accent), 0 0 14px var(--glow); transition:transform .12s;}
input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.14);}
input[type=range]::-moz-range-thumb{width:17px; height:17px; border-radius:50%; background:var(--accent); cursor:pointer; border:3px solid var(--ground);}
.scale{display:flex; justify-content:space-between; font-size:11px; color:var(--dim); margin-top:9px;}
.badge{display:inline-flex; align-items:center; gap:7px; font-size:12px; font-weight:600; padding:6px 12px; border-radius:999px; margin-bottom:20px; width:fit-content; background:rgba(27,28,31,.05); color:var(--muted); transition:all .25s;}
.badge.up{background:rgba(31,157,99,.12); color:var(--ok);}
.bigfig{font-size:62px; font-weight:800; letter-spacing:-.045em; line-height:1; font-variant-numeric:tabular-nums;}
.bigsub{font-size:13.5px; color:var(--muted); margin-top:12px;}
.prog{margin-top:28px; padding-top:22px; border-top:1px solid var(--line2);}
.progtop{display:flex; justify-content:space-between; font-size:13px;}
.progbar{height:5px; border-radius:4px; background:var(--line2); overflow:hidden; margin-top:11px;}
.progbar i{display:block; height:100%; border-radius:4px; transition:width .35s cubic-bezier(.2,.7,.3,1); background:linear-gradient(90deg,var(--solid),var(--accent));}

/* who to refer: three jobs */
.jobs{display:grid; grid-template-columns:repeat(3,1fr); gap:14px;}
.job{background:#FFFFFF; border:1px solid var(--line); border-radius:16px; padding:28px; display:flex; flex-direction:column; gap:0; transition:border-color .2s, transform .2s;}
.job:hover{border-color:var(--line2); transform:translateY(-2px);}
.job h3{font-size:22px; font-weight:700; letter-spacing:-.02em; margin:0 0 4px; min-height:3em; line-height:1.5;}
.job .score{font-family:"IBM Plex Mono",monospace; font-size:11px; color:var(--accent); letter-spacing:.06em; margin:0 0 22px;}
.job .row{display:grid; grid-template-columns:86px 1fr; gap:12px; padding:12px 0; border-top:1px solid var(--line); font-size:14px; line-height:1.5;}
.job .row span{font-family:"IBM Plex Mono",monospace; font-size:10px; letter-spacing:.12em; text-transform:uppercase; color:var(--dim); padding-top:3px;}
.job .row p{margin:0; color:var(--text);}
.job .row.us p{color:var(--muted);}
.job .heard{margin-top:auto; padding-top:18px; border-top:1px solid var(--line);}
.job .heard span{font-family:"IBM Plex Mono",monospace; font-size:10px; letter-spacing:.12em; text-transform:uppercase; color:var(--dim); display:block; margin-bottom:10px;}
.job .heard p{margin:0 0 8px; font-size:15px; color:var(--muted); font-style:italic;}
.job .heard p:last-child{margin:0;}
.nofit ul{margin:14px 0 0; padding:0; list-style:none; display:flex; flex-wrap:wrap; gap:8px;}
.nofit li{font-size:13px; color:var(--dim); background:var(--panel); border:1px solid var(--line); border-radius:7px; padding:8px 13px;}
.qs{display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-top:14px;}
.q1{background:#FFFFFF; border:1px solid var(--line); border-radius:14px; padding:22px 24px;}
.q1 .n{font-family:"IBM Plex Mono",monospace; font-size:11px; color:var(--accent); margin:0 0 10px;}
.q1 b{display:block; font-size:16px; font-weight:600; margin-bottom:8px; line-height:1.4;}
.q1 p{margin:0; font-size:13.5px; color:var(--muted);}

/* proof */
.proof{display:grid; grid-template-columns:repeat(4,1fr); gap:14px;}
.pf{background:#FFFFFF; border:1px solid var(--line); border-radius:14px; padding:26px;}
.pf b{display:block; font-size:44px; font-weight:800; letter-spacing:-.04em; line-height:1; margin-bottom:10px; font-variant-numeric:tabular-nums;}
.pf span{font-size:14px; color:var(--muted); line-height:1.5;}
.honest{margin-top:22px; font-size:14.5px; color:var(--muted); max-width:70ch;}

/* what you get */
.gets{display:grid; grid-template-columns:repeat(3,1fr); gap:14px;}
.get{background:#FFFFFF; border:1px solid var(--line); border-radius:14px; padding:24px;}
.get .fic{margin-bottom:16px;}
.get.wide{grid-column:span 2;}
.get b{display:block; font-size:16px; font-weight:600; margin-bottom:6px;}
.get span{font-size:14px; color:var(--muted); line-height:1.55;}

/* apply */
.apply{display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:start;}
.form{background:#FFFFFF; border:1px solid var(--line); border-radius:16px; padding:30px;}
.form .fields{margin-bottom:14px;}
.pagefoot{border-top:1px solid var(--line); padding:34px 0 50px; font-size:13px; color:var(--dim); display:flex; justify-content:space-between; gap:20px; flex-wrap:wrap;}

/* ---------- portal ---------- */
.login{min-height:100vh; display:grid; place-items:center; position:relative; z-index:2; padding:24px;}
.logincard{width:100%; max-width:440px; background:var(--panel); border:1px solid var(--line); border-radius:18px; padding:38px;}
.logincard h1{font-size:30px; margin:22px 0 8px;}
.logincard p{color:var(--muted); font-size:14.5px; margin:0 0 24px;}
.logincard input{font-family:"IBM Plex Mono",monospace; font-size:18px; letter-spacing:.12em; text-transform:uppercase; text-align:center; padding:16px;}
.logincard .go{width:100%; margin-top:12px;}
.logincard .hint{font-size:12.5px; color:var(--dim); margin:18px 0 0; text-align:center;}

.app{display:grid; grid-template-columns:var(--rail) 1fr; min-height:100vh; position:relative; z-index:2;}
.rail{border-right:1px solid var(--line); padding:30px 0 24px; display:flex; flex-direction:column; gap:22px; position:sticky; top:0; height:100vh; overflow:auto; backdrop-filter:blur(14px);
  background:linear-gradient(180deg,rgba(255,255,255,.85),rgba(255,255,255,.95));}
.rail .brand{padding:0 24px;}
.me{padding:0 24px; font-size:13px; color:var(--muted); line-height:1.5;}
.me b{display:block; color:var(--text); font-size:14.5px; font-weight:600;}
.me .stagepill{display:inline-block; margin-top:8px; font-family:"IBM Plex Mono",monospace; font-size:10px; letter-spacing:.12em; text-transform:uppercase; color:var(--accent); border:1px solid var(--line2); border-radius:5px; padding:4px 8px;}
.railgrp{padding:0 12px; display:flex; flex-direction:column; gap:1px;}
.railgrp .gt{display:flex; align-items:center; gap:8px; font-family:"IBM Plex Mono",monospace; font-size:10px; letter-spacing:.16em; text-transform:uppercase; color:var(--dim); padding:6px 12px 8px;}
.railgrp .gt i{font-style:normal; width:16px; height:16px; border-radius:50%; border:1px solid var(--line2); display:grid; place-items:center; font-size:9px; color:var(--dim);}
.railgrp.now .gt{color:var(--accent);}
.railgrp.now .gt i{border-color:var(--accent); color:var(--accent);}
.railgrp.past .gt i{background:var(--solid); border-color:var(--solid); color:#fff;}
.nav{display:grid; grid-template-columns:24px 1fr; gap:12px; align-items:center; padding:9px 12px; border-radius:8px; cursor:pointer; border:1px solid transparent;
  background:transparent; color:var(--muted); text-align:left; width:100%; font-size:14px; font-weight:500; transition:all .16s;}
.nav:hover{background:var(--hover); color:var(--text);}
.nav .n{font-family:"IBM Plex Mono",monospace; font-size:10.5px; color:var(--dim); border:1px solid var(--line2); border-radius:50%; width:21px; height:21px; display:grid; place-items:center; transition:all .16s;}
.nav[aria-selected="true"]{background:var(--raised); color:var(--text); border-color:var(--line2);}
.nav[aria-selected="true"] .n{border-color:var(--accent); color:var(--accent);}
.nav.done .n{background:var(--solid); border-color:var(--solid); color:#fff; font-size:10px;}
.railfoot{margin-top:auto; padding:18px 24px 0; margin-left:12px; margin-right:12px; border-top:1px solid var(--line); font-size:12px; color:var(--dim); line-height:1.65;}
.railfoot a{color:var(--accent); text-decoration:none;}
.railfoot button{background:none; border:none; color:var(--dim); cursor:pointer; padding:0; font-size:12px; text-decoration:underline; margin-top:6px;}
.stage{padding:60px 56px 90px; max-width:1120px;}
.panel{display:none;}
.panel.on{display:block; animation:rise .34s cubic-bezier(.2,.7,.3,1) both;}
@keyframes rise{from{opacity:0; transform:translateY(10px);} to{opacity:1; transform:none;}}
@media (prefers-reduced-motion:reduce){.panel.on{animation:none;}}

/* stepper */
.stepper{display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin:0 0 44px;}
.step{background:#FFFFFF; border:1px solid var(--line); border-radius:12px; padding:16px 18px; display:flex; gap:14px; align-items:center; cursor:pointer; transition:all .16s;}
.step:hover{border-color:var(--line2);}
.step .k{width:28px; height:28px; border-radius:50%; border:1px solid var(--line2); display:grid; place-items:center; font-family:"IBM Plex Mono",monospace; font-size:12px; color:var(--dim); flex:none;}
.step b{display:block; font-size:14px; font-weight:600;}
.step span{font-size:12.5px; color:var(--dim);}
.step.now{border-color:var(--accent2); background:var(--glow);}
.step.now .k{border-color:var(--accent); color:var(--accent);}
.step.past .k{background:var(--solid); border-color:var(--solid); color:#fff;}

/* checklist */
.check{display:flex; flex-direction:column; gap:10px;}
.ci{display:grid; grid-template-columns:28px 1fr auto; gap:16px; align-items:center; background:var(--panel); border:1px solid var(--line); border-radius:12px; padding:16px 20px; cursor:pointer; transition:all .16s;}
.ci:hover{border-color:var(--line2);}
.ci .tick{width:24px; height:24px; border-radius:50%; border:1px solid var(--line2); display:grid; place-items:center; color:transparent; font-size:11px; transition:all .18s;}
.ci.done .tick{background:var(--solid); border-color:var(--solid); color:#fff;}
.ci b{display:block; font-size:15.5px; font-weight:600;}
.ci.done b{color:var(--dim); text-decoration:line-through; text-decoration-color:var(--line2);}
.ci span{font-size:13.5px; color:var(--muted);}
.ci .when{font-family:"IBM Plex Mono",monospace; font-size:11px; color:var(--accent); letter-spacing:.06em; white-space:nowrap;}
.ci.locked{cursor:default; opacity:.7;}
.ci.locked .tick{border-style:dashed;}
.progress{display:flex; align-items:center; gap:14px; font-size:13.5px; color:var(--muted); margin-bottom:22px;}
.progress .progbar{flex:1; margin:0;}

/* badge + post */
.two{display:grid; grid-template-columns:1fr 1fr; gap:20px; align-items:start;}
.card{background:#FFFFFF; border:1px solid var(--line); border-radius:16px; padding:28px;}
.card h3{margin:0 0 6px; font-size:20px; font-weight:700; letter-spacing:-.02em;}
.card > p{margin:0 0 20px; font-size:14px; color:var(--muted);}
.badgewrap{background:var(--ground); border:1px solid var(--line); border-radius:12px; padding:22px; display:grid; place-items:center; margin-bottom:18px;}
.badgewrap svg{width:100%; max-width:360px; height:auto;}
.post{background:var(--ground); border:1px solid var(--line); border-radius:12px; padding:22px; font-size:15px; line-height:1.7; white-space:pre-wrap; color:var(--text); margin-bottom:16px;}
.copy{font-size:13px; font-weight:600; cursor:pointer; flex:none; background:var(--solid); color:#fff; border:none; border-radius:8px; padding:10px 17px; transition:all .16s;}
.copy:hover{background:var(--accent2); box-shadow:0 0 20px rgba(61,89,208,.4);}
.copy.ok{background:var(--ok);}
.status{display:inline-flex; align-items:center; gap:8px; font-size:13px; padding:7px 13px; border-radius:999px; background:rgba(27,28,31,.05); color:var(--muted);}
.status i{width:8px; height:8px; border-radius:50%; background:var(--dim); font-style:normal;}
.status.live{background:rgba(31,157,99,.12); color:var(--ok);} .status.live i{background:var(--ok);}

/* objections */
.objhead{display:grid; grid-template-columns:1fr 1fr; gap:14px; margin:30px 0 10px;}
.objhead h2{font-family:"IBM Plex Mono",monospace; font-size:11px; letter-spacing:.15em; text-transform:uppercase; margin:0; font-weight:500;}
.objhead h2.you{color:var(--accent);} .objhead h2.us{color:var(--dim);}
.obj{display:grid; grid-template-columns:1fr 1fr; gap:14px; align-items:start;}
.ocol{display:flex; flex-direction:column; gap:12px;}
.ocard{background:#FFFFFF; border:1px solid var(--line); border-radius:14px; padding:20px 22px; transition:all .18s;}
.ocard:hover{border-color:var(--line2); transform:translateY(-2px);}
.oq{font-size:17px; font-weight:600; margin:0 0 16px; letter-spacing:-.015em;}
.line{display:grid; grid-template-columns:42px 1fr; gap:11px; align-items:start; margin-bottom:9px;}
.line:last-child{margin-bottom:0;}
.key{font-family:"IBM Plex Mono",monospace; font-size:9.5px; letter-spacing:.11em; text-transform:uppercase; padding:3px 0 0; font-weight:500;}
.key.say{color:var(--ok);} .key.not{color:var(--bad);}
.line p{margin:0; font-size:14px; line-height:1.55;}
.line.say p{color:var(--text);} .line.not p{color:var(--dim);}
.play{border:1px solid var(--line2); border-radius:14px; padding:26px 28px; background:linear-gradient(110deg,rgba(61,89,208,.18),var(--panel) 62%); margin-bottom:4px;}
.playrow{display:flex; align-items:center; gap:22px;}
.pbtn{width:54px; height:54px; border-radius:50%; flex:none; border:1px solid var(--accent); background:var(--glow); color:var(--accent); display:grid; place-items:center; font-size:16px;}
.otag{font-family:"IBM Plex Mono",monospace; font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:var(--accent); margin:0 0 9px;}

/* builder */
.build{display:grid; grid-template-columns:380px 1fr; gap:20px; align-items:start;}
.opt{display:flex; flex-direction:column; gap:8px; margin-bottom:24px;}
.opt > span{font-family:"IBM Plex Mono",monospace; font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--dim);}
.pill{font-size:14px; text-align:left; cursor:pointer; color:var(--muted); background:var(--panel); border:1px solid var(--line); border-radius:9px; padding:12px 15px; transition:all .16s;}
.pill:hover{border-color:var(--line2); color:var(--text);}
.pill[aria-pressed="true"]{border-color:var(--accent2); background:var(--glow); color:var(--text);}
.mail{background:#FFFFFF; border:1px solid var(--line); border-radius:14px; overflow:hidden;}
.mailbar{padding:15px 22px; border-bottom:1px solid var(--line); display:flex; justify-content:space-between; align-items:center; gap:14px;}
.subj{font-size:14px; color:var(--dim);} .subj b{color:var(--text); font-weight:600;}
.mailbody{padding:26px 24px; font-size:15px; line-height:1.75; white-space:pre-wrap; color:var(--text);}

/* tables */
table.t{width:100%; border-collapse:collapse; font-size:14px;}
table.t th{font-family:"IBM Plex Mono",monospace; font-size:10px; letter-spacing:.12em; text-transform:uppercase; color:var(--dim); text-align:left; padding:0 12px 12px 0; font-weight:500; border-bottom:1px solid var(--line);}
table.t td{padding:14px 12px 14px 0; border-bottom:1px solid var(--line); vertical-align:top;}
table.t td .sub{display:block; font-size:12.5px; color:var(--dim);}
.pillst{font-family:"IBM Plex Mono",monospace; font-size:10px; letter-spacing:.1em; text-transform:uppercase; padding:4px 8px; border-radius:5px; background:rgba(27,28,31,.05); color:var(--muted); white-space:nowrap;}
.pillst.confirmed,.pillst.meeting,.pillst.pilot{background:var(--glow); color:var(--accent);}
.pillst.paid{background:rgba(31,157,99,.12); color:var(--ok);}
.pillst.rejected{background:rgba(201,74,59,.1); color:var(--bad);}
.empty{color:var(--dim); font-size:15px; padding:28px 0;}

/* promise cards */
.promise{border:1px dashed var(--line2); border-radius:16px; padding:28px; background:transparent;}
.promise .tag{font-family:"IBM Plex Mono",monospace; font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:var(--dim); margin:0 0 12px;}
.promise h3{margin:0 0 8px; font-size:20px; font-weight:700; letter-spacing:-.02em;}
.promise p{margin:0; font-size:14.5px; color:var(--muted); line-height:1.6;}
.list{margin:18px 0 0; padding:0; list-style:none; display:flex; flex-direction:column; gap:8px;}
.list li{display:grid; grid-template-columns:auto 1fr; gap:12px; font-size:14px; color:var(--muted); padding:12px 14px; background:var(--panel); border:1px solid var(--line); border-radius:10px;}
.list li b{font-family:"IBM Plex Mono",monospace; font-size:11px; color:var(--accent); font-weight:500; padding-top:2px; white-space:nowrap;}

/* ---------- simulation ---------- */
.sim{position:relative; z-index:3; min-height:100vh; display:flex; flex-direction:column; align-items:center; padding:0 24px 80px;}
.simbar{width:100%; max-width:780px; display:flex; gap:5px; padding:26px 0 0;}
.simbar i{flex:1; height:2px; border-radius:2px; background:var(--line2); transition:background .4s;}
.simbar i.on{background:var(--accent);}
.simtop{width:100%; max-width:780px; display:flex; justify-content:space-between; align-items:center; padding:18px 0 0;}
.skip{font-size:12.5px; color:var(--dim); background:none; border:none; cursor:pointer; padding:6px 0;}
.skip:hover{color:var(--text); text-decoration:underline;}
.simstage{width:100%; max-width:760px; margin:auto 0; padding:56px 0 24px; display:flex; flex-direction:column; justify-content:center; min-height:62vh;}
.beatnum{font-family:"IBM Plex Mono",monospace; font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:var(--dim); margin:0 0 26px;}
.scene{font-size:15px; color:var(--muted); margin:0 0 26px;}
.utt{border-left:2px solid var(--line2); padding:4px 0 4px 20px; margin:0 0 30px;}
.who{font-family:"IBM Plex Mono",monospace; font-size:11px; color:var(--accent); letter-spacing:.09em; margin:0 0 10px;}
.said{font-size:27px; line-height:1.4; font-weight:500; letter-spacing:-.02em; margin:0; min-height:38px;}
.said::after{content:"\258F"; color:var(--accent); animation:blink 1s steps(1) infinite;}
.said.done::after{display:none;}
@keyframes blink{50%{opacity:0;}}
.choices{display:flex; flex-direction:column; gap:10px; margin-top:6px;}
.ch{font-size:16px; text-align:left; color:var(--text); cursor:pointer; background:var(--panel); border:1px solid var(--line); border-radius:11px; padding:17px 20px; transition:all .15s;}
.ch:hover{border-color:var(--accent2); background:var(--raised); transform:translateX(3px);}
.ch:disabled{cursor:default; opacity:.4; transform:none;}
.ch.right{border-color:var(--ok); background:rgba(31,157,99,.08);}
.ch.wrong{border-color:var(--bad); background:rgba(201,74,59,.07);}
.note{margin:18px 0 0; font-size:15px; line-height:1.6; padding:16px 20px; border-radius:11px; background:var(--panel); border:1px solid var(--line);}
.note b{color:var(--text);} .note.bad b{color:var(--bad);} .note.good b{color:var(--ok);}
.note p{margin:6px 0 0; color:var(--muted); font-size:14.5px;}
.verdictbig{display:flex; align-items:center; gap:16px; padding:22px 24px; border-radius:13px; background:linear-gradient(110deg,rgba(31,157,99,.12),var(--panel) 62%); border:1px solid rgba(31,157,99,.35); margin-top:6px;}
.vb{font-family:"IBM Plex Mono",monospace; font-size:12px; letter-spacing:.16em; color:var(--ok);}
.verdictbig h3{margin:0; font-size:21px; font-weight:700; letter-spacing:-.02em;}
.verdictbig p{margin:4px 0 0; font-size:13.5px; color:var(--muted);}
.regcard{background:#FFFFFF; border:1px solid var(--line); border-radius:14px; padding:26px;}
.regrow{display:flex; justify-content:space-between; padding:11px 0; border-bottom:1px solid var(--line); font-size:14.5px;}
.regrow:last-of-type{border-bottom:none;}
.regrow span{color:var(--dim);} .regrow b{font-weight:500;}
.clock{display:flex; align-items:center; gap:13px; margin-top:20px; font-size:14.5px; color:var(--muted);}
.ring{width:26px; height:26px; border-radius:50%; border:2px solid var(--line2); border-top-color:var(--accent); animation:spin .9s linear infinite; flex:none;}
.ring.ok{animation:none; border-color:var(--ok); background:var(--ok); display:grid; place-items:center; color:#fff; font-size:13px;}
@keyframes spin{to{transform:rotate(360deg);}}
.mailsim{background:#FFFFFF; border:1px solid var(--line); border-radius:14px; overflow:hidden;}
.mailsim .mailbar{padding:14px 20px; border-bottom:1px solid var(--line); font-size:13.5px; color:var(--dim); display:block;}
.mailsim .bd{padding:22px 20px; font-size:15px; line-height:1.7; white-space:pre-wrap; color:var(--text); min-height:150px;}
.stages{display:flex; flex-direction:column; gap:10px; margin-bottom:28px;}
.stg{display:flex; align-items:center; gap:14px; font-size:16px; color:var(--dim); opacity:.3; transition:all .4s;}
.stg.on{opacity:1; color:var(--text);}
.stg .tick{width:22px; height:22px; border-radius:50%; border:1px solid var(--line2); display:grid; place-items:center; font-size:11px; color:transparent; flex:none;}
.stg.on .tick{background:var(--ok); border-color:var(--ok); color:#fff;}
.money{text-align:left; padding-top:10px;}
.moneyfig{font-size:76px; font-weight:800; letter-spacing:-.05em; line-height:1; font-variant-numeric:tabular-nums;}
.moneysub{font-size:15px; color:var(--muted); margin-top:12px;}
.adv{display:inline-flex; align-items:center; gap:8px; font-size:13px; padding:6px 13px; border-radius:999px; background:rgba(31,157,99,.12); color:var(--ok); margin-bottom:22px;}
.pips{display:flex; gap:12px; align-items:center; margin:8px 0 30px;}
.bigpip{width:46px; height:46px; border-radius:50%; border:1px solid var(--line2); display:grid; place-items:center; font-family:"IBM Plex Mono",monospace; font-size:15px; color:var(--dim); transition:all .4s;}
.bigpip.fill{background:var(--solid); border-color:var(--solid); color:#fff; box-shadow:0 0 26px rgba(61,89,208,.45);}
.carry{position:fixed; left:50%; transform:translateX(-50%); bottom:22px; z-index:5; display:flex; gap:9px; align-items:center; font-family:"IBM Plex Mono",monospace; font-size:11.5px; color:var(--muted); background:rgba(255,255,255,.92); border:1px solid var(--line); border-radius:999px; padding:9px 18px; backdrop-filter:blur(10px);}
.carry b{color:var(--accent); font-weight:500;}
.carry .sep{color:var(--line2);}
.simlaunch{background:linear-gradient(130deg,rgba(61,89,208,.18),var(--panel) 60%); border:1px solid var(--line2); border-radius:18px; padding:40px; display:grid; grid-template-columns:1fr auto; gap:30px; align-items:center;}
.simlaunch h3{margin:0 0 8px; font-size:26px; font-weight:700; letter-spacing:-.025em;}
.simlaunch p{margin:0; font-size:15px; color:var(--muted); max-width:52ch;}

/* ---------- admin ---------- */
.adm{max-width:1200px; margin:0 auto; padding:50px 40px 90px; position:relative; z-index:2;}
.adm h1{font-size:34px;}
.adm .card{margin-bottom:22px;}
.adm details{border-top:1px solid var(--line); padding:14px 0;}
.adm summary{cursor:pointer; font-size:15px; font-weight:600; display:flex; gap:14px; align-items:center; flex-wrap:wrap;}
.adm summary .code{font-family:"IBM Plex Mono",monospace; font-size:12px; color:var(--accent); letter-spacing:.1em;}
.adm summary .meta{font-size:12.5px; color:var(--dim); font-weight:400;}
.adm .pane{padding:18px 0 6px;}
.adm .fields{margin-bottom:12px;}
.adm select{width:auto; padding:8px 10px; font-size:13px;}

@media (max-width:980px){
  .top{padding:14px 20px;} .top nav{display:none;} .wrap{padding:0 20px;} section.blk{padding:64px 0;}
  .hero{padding:80px 0 60px;} .hero h1{font-size:42px;} h1{font-size:38px;}
  .why,.whogrid,.apply,.two,.build,.obj,.calc{grid-template-columns:1fr;} .strip{grid-template-columns:1fr;} .frame.wide{grid-column:span 1;} .jobs,.qs,.gets,.icp,.prod{grid-template-columns:1fr;} .chans{grid-template-columns:repeat(2,1fr);} .get.wide{grid-column:span 1;}
  .bento,.proof,.facts,.facts.four,.founders,.steps4{grid-template-columns:repeat(2,1fr);} .cell.big{grid-column:span 2;}
  .app{grid-template-columns:1fr;} .rail{position:static; height:auto;} .stage{padding:34px 22px 60px;}
  .out{border-left:none; border-top:1px solid var(--line);} .stepper{grid-template-columns:1fr;}
  .said{font-size:21px;} .moneyfig{font-size:52px;} .simlaunch{grid-template-columns:1fr;}
}
@media (max-width:600px){ .facts,.facts.four,.founders,.bento,.proof,.strip,.chans,.steps4{grid-template-columns:1fr;} .cell.big{grid-column:span 1;} .heroline{grid-template-columns:1fr; gap:18px;} }

