/* Pluto Playbook Library — dark-luxury design system
   Locked 2026-07-04. See ../../design/design.md.
   One stylesheet, every page. Do not fork per-page styles. */

:root{
  --base:#0D0D0D;
  --surface:#1A1A1A;
  --surface-mid:#222018;
  --gold:#C9A96E;
  --gold-dim:#8f7a4f;
  --cream:#E8E0D0;
  --warm-gray:#8A8478;
  --emerald:#1C3A2E;
  --burgundy:#2E0D15;
  --hair:rgba(201,169,110,.28);
  --serif:'Cormorant Garamond',Georgia,serif;
  --sans:'Inter',-apple-system,BlinkMacSystemFont,sans-serif;
  --maxw:1120px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  background:var(--base);
  color:var(--cream);
  font-family:var(--sans);
  font-weight:300;
  line-height:1.8;
  -webkit-font-smoothing:antialiased;
  background-image:radial-gradient(1200px 600px at 80% -10%, rgba(201,169,110,.05), transparent 60%);
  min-height:100vh;
}
/* subtle grain — prevents flat digital feel */
body::before{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:1;opacity:.035;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
main,header,footer,section{position:relative;z-index:2}

a{color:inherit;text-decoration:none}
h1,h2,h3{font-family:var(--serif);font-weight:300;letter-spacing:.02em;line-height:1.08}
em{font-style:italic;color:var(--gold)}

.kicker{font-size:10px;letter-spacing:.32em;text-transform:uppercase;color:var(--gold);font-weight:400}
.meta{font-size:10px;letter-spacing:.28em;text-transform:uppercase;color:var(--warm-gray);font-weight:400}
.hair{height:.5px;background:var(--hair);border:0;width:100%}

/* ===== site header (shared) ===== */
.site-head{
  max-width:var(--maxw);margin:0 auto;
  padding:30px 40px;display:flex;justify-content:space-between;align-items:baseline;
  border-bottom:.5px solid var(--hair);
}
.logo{font-family:var(--serif);font-size:22px;letter-spacing:.16em}
.logo b{color:var(--gold);font-weight:300}
.logo .by{font-size:9px;letter-spacing:.34em;color:var(--warm-gray);text-transform:uppercase;margin-left:10px}
.site-nav{display:flex;gap:30px}
.site-nav a{font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--warm-gray);transition:color .5s ease}
.site-nav a:hover,.site-nav a.on{color:var(--gold)}

/* ===== library index ===== */
.masthead{padding:100px 40px 70px;text-align:center;max-width:840px;margin:0 auto}
.masthead h1{font-size:60px;margin:26px 0}
.masthead p{color:var(--warm-gray);font-size:16px;max-width:600px;margin:0 auto;font-weight:200}

.grid{max-width:var(--maxw);margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);border-top:.5px solid var(--hair)}
.card{
  border-right:.5px solid var(--hair);border-bottom:.5px solid var(--hair);
  padding:40px 34px 46px;min-height:280px;display:flex;flex-direction:column;
  transition:background .6s ease;position:relative;
}
.card:nth-child(3n){border-right:0}
.card:hover{background:var(--surface)}
.card .num{font-size:10px;letter-spacing:.28em;color:var(--gold-dim)}
.card .genre{font-size:9px;letter-spacing:.26em;text-transform:uppercase;color:var(--warm-gray);margin-top:auto}
.card h3{font-size:25px;margin:20px 0 14px}
.card.hero{background:linear-gradient(160deg,rgba(28,58,46,.4),rgba(13,13,13,0))}
.card.hero .num{color:var(--gold)}
.card p{font-size:13px;color:var(--warm-gray);font-weight:200;line-height:1.65}
.card .cta{font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);margin-top:18px;opacity:0;transition:opacity .5s ease}
.card:hover .cta{opacity:1}

.optin{padding:90px 40px;text-align:center;background:var(--surface-mid);border-top:.5px solid var(--hair)}
.optin .kicker{display:block;margin-bottom:18px}
.optin h2{font-size:38px;margin-bottom:10px}
.optin p{color:var(--warm-gray);font-weight:200;margin-bottom:32px}
.optin-form,.gate-form{
  display:flex;flex-direction:column;gap:14px;
  max-width:440px;margin:0 auto;text-align:left;position:relative;
}
.gate-row{
  display:flex;border:.5px solid var(--gold);border-radius:2px;
}
.gate-row input[type=email]{
  flex:1;background:transparent;border:0;color:var(--cream);
  padding:16px 20px;font-family:var(--sans);font-size:13px;letter-spacing:.04em;outline:none;
}
.gate-row button{
  background:var(--gold);color:var(--base);border:0;padding:0 26px;
  font-size:10px;letter-spacing:.22em;text-transform:uppercase;cursor:pointer;font-family:var(--sans);
}
.gate-copy{font-size:13px;color:var(--warm-gray);font-weight:200;margin:0;line-height:1.6}
.gate-nl{
  display:flex;gap:10px;align-items:flex-start;
  font-size:12px;color:var(--warm-gray);font-weight:200;line-height:1.55;cursor:pointer;
}
.gate-nl input[type=checkbox]{margin-top:4px;accent-color:var(--gold);flex-shrink:0}
.gate-privacy{font-size:10px;letter-spacing:.18em;text-transform:uppercase;margin:0}
.gate-privacy a{color:var(--gold)}
.gate-privacy a:hover{color:var(--cream)}
.gate-status{font-size:12px;color:var(--warm-gray);font-weight:200;margin:0;line-height:1.6}
.gate-status[data-kind=error]{color:#c9897a}
.gate-status a{color:var(--gold);margin-left:12px}
.gate-retry{
  background:none;border:0;color:var(--gold);cursor:pointer;font-family:var(--sans);
  letter-spacing:.14em;text-transform:uppercase;font-size:10px;padding:0;margin-right:4px
}
.gate-ok{font-size:16px;color:var(--gold);font-weight:300;margin:12px 0 0}
.gate-row button:disabled{opacity:.5;cursor:wait}
.pluto-ts{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
/* honeypot: off-screen, never display:none (bots skip that) */
.pluto-hp,.pluto-hp-label{
  position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden;
}
/* Pilot note — same surface language as .callout */
.pilot-note{
  border:.5px solid var(--hair);border-radius:4px;padding:22px 26px;
  margin:0 auto 36px;background:rgba(201,169,110,.03);
  max-width:560px;text-align:left;
}
.pb .pilot-note{margin:0 0 36px;max-width:none}
.calc-hero .pilot-note{margin:28px auto 0}
.pilot-note .meta{display:block;margin-bottom:8px}
.pilot-note p{color:var(--warm-gray);font-weight:200;font-size:13px;margin:0;line-height:1.65}

/* ===== playbook page (archetype ×8) ===== */
.pb{max-width:720px;margin:0 auto;padding:80px 40px}
.pb .genre{text-align:center;display:block;margin-bottom:24px}
.pb h1{font-size:52px;text-align:center;line-height:1.05;margin-bottom:20px}
.pb .dek{text-align:center;color:var(--warm-gray);font-size:17px;font-weight:200;max-width:560px;margin:0 auto 50px}
.pb-body p{color:var(--cream);font-weight:200;font-size:15px;margin-bottom:24px;opacity:.92}
.pb-body h2{font-size:30px;margin:48px 0 18px;color:var(--cream)}
.pb-body h3{font-size:22px;margin:36px 0 14px;color:var(--cream)}
.pb-body ul,.pb-body ol{margin:0 0 24px 22px;color:var(--cream);font-weight:200;opacity:.92}
.pb-body li{margin-bottom:10px;padding-left:6px}
.pb-body strong{color:var(--cream);font-weight:500}
.pb-body .pull{font-family:var(--serif);font-size:30px;font-style:italic;color:var(--gold);text-align:center;padding:40px 20px;line-height:1.3}
.pb-body .callout{border:.5px solid var(--hair);border-radius:4px;padding:26px 30px;margin:30px 0;background:rgba(201,169,110,.03)}
.pb-body .callout .meta{display:block;margin-bottom:10px}
.pb-body table{width:100%;border-collapse:collapse;margin:26px 0;font-size:13px}
.pb-body th,.pb-body td{border:.5px solid var(--hair);padding:12px 14px;text-align:left;font-weight:200}
.pb-body th{color:var(--gold);font-weight:400;letter-spacing:.06em}
.pb-fade{position:relative}
.pb-fade::after{content:"";position:absolute;left:0;right:0;bottom:0;height:340px;background:linear-gradient(transparent,var(--base) 82%);pointer-events:none}
.pb-gate{text-align:center;padding:0 40px 40px;margin-top:-120px;position:relative;z-index:2}
.pb-gate .kicker{display:block;margin-bottom:14px}
.pb-gate h3{font-family:var(--serif);font-size:28px;margin-bottom:8px}
.pb-gate p{color:var(--warm-gray);font-weight:200;font-size:13px;margin-bottom:26px}

/* ===== hero calculator ===== */
.calc-hero{padding:80px 40px 40px;text-align:center;max-width:760px;margin:0 auto}
.calc-hero h1{font-size:48px;margin:22px 0 16px}
.calc-hero p{color:var(--warm-gray);font-weight:200}
.calc-wrap{max-width:var(--maxw);margin:0 auto;display:grid;grid-template-columns:340px 1fr;border-top:.5px solid var(--hair);border-bottom:.5px solid var(--hair)}
.calc-inputs{padding:44px 40px;border-right:.5px solid var(--hair)}
.calc-inputs .kicker{display:block;margin-bottom:26px}
.field{margin-bottom:24px}
.field label{display:flex;justify-content:space-between;font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--warm-gray);margin-bottom:9px}
.field label b{color:var(--gold);font-weight:400;font-family:var(--sans)}
.field input[type=range]{width:100%;accent-color:var(--gold);height:2px}
.split{display:flex;border:.5px solid var(--hair);border-radius:2px;overflow:hidden;margin-top:4px}
.split button{flex:1;background:transparent;border:0;color:var(--warm-gray);padding:9px;font-size:10px;letter-spacing:.14em;text-transform:uppercase;cursor:pointer;font-family:var(--sans);transition:.4s}
.split button.on{background:var(--gold);color:var(--base)}
.calc-out{padding:44px 40px}
.compare{display:grid;grid-template-columns:1fr 1fr;border:.5px solid var(--hair);border-radius:4px;overflow:hidden}
.compare .col{padding:34px 30px}
.compare .col.vanity{background:var(--base)}
.compare .col.pluto{background:linear-gradient(160deg,rgba(28,58,46,.35),rgba(13,13,13,0));border-left:.5px solid var(--hair)}
.compare .col .tag{font-size:9px;letter-spacing:.24em;text-transform:uppercase;color:var(--warm-gray)}
.compare .col.pluto .tag{color:var(--gold)}
.compare .col .val{font-family:var(--serif);font-size:52px;line-height:1;margin:16px 0 6px}
.compare .col.vanity .val{color:var(--warm-gray)}
.compare .col.pluto .val{color:var(--cream)}
.compare .col .cap{font-size:11px;color:var(--warm-gray);font-weight:200}
.gap-line{text-align:center;padding:26px 0 6px;font-size:12px;letter-spacing:.14em;color:var(--warm-gray)}
.gap-line b{color:var(--gold);font-weight:400}
.calc-gate{margin-top:28px;border:.5px dashed var(--hair);border-radius:4px;padding:26px 30px;text-align:center;background:rgba(201,169,110,.03)}
.calc-gate .meta{display:block;margin-bottom:14px}

/* ===== footer (shared) ===== */
.foot{max-width:var(--maxw);margin:0 auto;text-align:center;padding:70px 40px 50px;border-top:.5px solid var(--hair)}
.foot .logo{display:block;margin-bottom:14px;font-size:18px}
.foot .meta{display:block;margin-bottom:6px}
.foot .foot-links{margin-top:16px;display:flex;gap:24px;justify-content:center;flex-wrap:wrap}
.foot .foot-links a{font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--warm-gray);transition:color .4s}
.foot .foot-links a:hover{color:var(--gold)}

@media(max-width:820px){
  .grid{grid-template-columns:1fr 1fr}
  .card:nth-child(3n){border-right:.5px solid var(--hair)}
  .calc-wrap{grid-template-columns:1fr}
  .calc-inputs{border-right:0;border-bottom:.5px solid var(--hair)}
  .compare{grid-template-columns:1fr}
  .masthead h1,.calc-hero h1,.pb h1{font-size:38px}
  .site-nav{gap:16px}
}
