/* ---- self-hosted fonts (assets/fonts) ---- */
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:400;font-display:swap;src:url(assets/fonts/cormorant-400.woff2) format('woff2')}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:500;font-display:swap;src:url(assets/fonts/cormorant-500.woff2) format('woff2')}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:600;font-display:swap;src:url(assets/fonts/cormorant-600.woff2) format('woff2')}
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:400;font-display:swap;src:url(assets/fonts/cormorant-400-italic.woff2) format('woff2')}
@font-face{font-family:'Inter';font-style:normal;font-weight:300;font-display:swap;src:url(assets/fonts/inter-300.woff2) format('woff2')}
@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url(assets/fonts/inter-400.woff2) format('woff2')}
@font-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:swap;src:url(assets/fonts/inter-500.woff2) format('woff2')}
@font-face{font-family:'Inter';font-style:normal;font-weight:600;font-display:swap;src:url(assets/fonts/inter-600.woff2) format('woff2')}
@font-face{font-family:'Noto Serif SC';font-style:normal;font-weight:400;font-display:swap;src:url(assets/fonts/noto-serif-sc-400.woff2) format('woff2')}
@font-face{font-family:'Noto Serif SC';font-style:normal;font-weight:600;font-display:swap;src:url(assets/fonts/noto-serif-sc-600.woff2) format('woff2')}

:root{--void:#0B0E1A;--void-2:#0F1425;--ink:#141A2E;--gold:#C9A96A;--gold-soft:#E0C68C;
    --mist:#E8E4D8;--muted:#8A8FA3;--line:rgba(201,169,106,.20);
    --serif:'Cormorant Garamond',serif;--cn:'Noto Serif SC',serif;--sans:'Inter',system-ui,sans-serif;}
  *{box-sizing:border-box;margin:0;padding:0}
  html{scroll-behavior:smooth}
  body{background:var(--void);color:var(--mist);font-family:var(--sans);font-weight:300;line-height:1.65;overflow-x:hidden;-webkit-font-smoothing:antialiased}
  ::selection{background:var(--gold);color:var(--void)}
  .wrap{max-width:1080px;margin:0 auto;padding:0 24px}
  header{position:fixed;top:0;left:0;right:0;z-index:40;backdrop-filter:blur(10px);background:rgba(11,14,26,.55);border-bottom:1px solid var(--line)}
  .bar{display:flex;align-items:center;justify-content:space-between;height:64px}
  .brand{display:flex;align-items:center;gap:10px;font-family:var(--serif);font-size:1.35rem;letter-spacing:.02em}
  .brand .seal{width:26px;height:26px;color:var(--gold)}
  .brand b{color:var(--gold);font-weight:600}
  .brand .tag{font-family:var(--cn);font-size:.9rem;color:var(--muted);letter-spacing:.2em;margin-left:2px}
  #stars{position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.9}
  .hero{position:relative;z-index:2;min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:120px 24px 80px}
  .hero-art{position:absolute;inset:0;display:grid;place-items:center;z-index:0;pointer-events:none}
  .hero-art svg{width:min(720px,94vw);height:auto}
  .spin{transform-origin:100px 100px;animation:spin 150s linear infinite}
  .spin-r{transform-origin:100px 100px;animation:spin 95s linear infinite reverse}
  @keyframes spin{to{transform:rotate(360deg)}}
  .hero-inner{position:relative;z-index:1}
  .eyebrow{font-size:.72rem;letter-spacing:.42em;text-transform:uppercase;color:var(--gold);margin-bottom:26px}
  .eyebrow .cn{font-family:var(--cn);letter-spacing:.3em;margin-left:.4em;color:var(--gold-soft)}
  .hero h1{font-family:var(--serif);font-weight:400;font-size:clamp(2.6rem,7vw,5rem);line-height:1.04;max-width:16ch;color:var(--mist)}
  .hero h1 em{font-style:italic;color:var(--gold-soft)}
  .hero .fate{font-family:var(--serif);font-style:italic;font-size:clamp(1.25rem,3.2vw,1.85rem);color:var(--gold-soft);margin:20px auto 0;max-width:34ch;line-height:1.35}
  .hero p.sub{max-width:52ch;margin:22px auto 0;color:var(--muted);font-size:1.02rem}
  .cta{display:inline-flex;align-items:center;gap:10px;margin-top:40px;background:linear-gradient(180deg,var(--gold-soft),var(--gold));color:#1a1408;font-family:var(--sans);font-weight:500;font-size:.86rem;letter-spacing:.06em;padding:15px 30px;border:none;border-radius:2px;cursor:pointer;text-transform:uppercase;transition:.25s;box-shadow:0 6px 30px rgba(201,169,106,.22)}
  .cta:hover{transform:translateY(-2px);box-shadow:0 10px 40px rgba(201,169,106,.34)}
  .scrollcue{margin-top:64px;color:var(--muted);font-size:.68rem;letter-spacing:.3em;text-transform:uppercase;animation:float 2.6s ease-in-out infinite}
  @keyframes float{0%,100%{transform:translateY(0);opacity:.5}50%{transform:translateY(6px);opacity:1}}
  section.block{position:relative;z-index:2;padding:96px 0}
  .kicker{font-size:.7rem;letter-spacing:.38em;text-transform:uppercase;color:var(--gold);text-align:center;margin-bottom:16px}
  .htitle{font-family:var(--serif);font-weight:400;font-size:clamp(1.9rem,4.2vw,2.9rem);text-align:center;line-height:1.12;margin-bottom:14px}
  .lead{max-width:56ch;margin:0 auto;text-align:center;color:var(--muted)}
  .three{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:56px}
  .card{border:1px solid var(--line);border-radius:3px;padding:32px 26px;background:linear-gradient(180deg,rgba(20,26,46,.6),rgba(15,20,37,.3))}
  .card .num{font-family:var(--cn);font-size:1.6rem;color:var(--gold);opacity:.85}
  .card h3{font-family:var(--serif);font-size:1.35rem;font-weight:500;margin:12px 0 8px}
  .card p{color:var(--muted);font-size:.92rem}
  #calc{background:linear-gradient(180deg,transparent,rgba(20,26,46,.4),transparent)}
  .panel{max-width:640px;margin:44px auto 0;border:1px solid var(--line);border-radius:4px;padding:40px 38px;background:rgba(15,20,37,.72);backdrop-filter:blur(4px)}
  .field{margin-bottom:22px}
  .field label{display:block;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);margin-bottom:9px}
  .field .row{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
  .field .row.two{grid-template-columns:repeat(2,1fr)}
  input,select{width:100%;background:var(--void-2);border:1px solid var(--line);color:var(--mist);font-family:var(--sans);font-size:.95rem;padding:13px 14px;border-radius:3px;outline:none;transition:.2s}
  input:focus,select:focus{border-color:var(--gold);background:var(--ink)}
  select{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23C9A96A' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:34px}
  .hint{font-size:.78rem;color:var(--muted);margin-top:6px}
  .citymeta{font-size:.8rem;color:var(--gold-soft);margin-top:8px;min-height:1.1em}
  .calc-btn{width:100%;margin-top:8px;justify-content:center}
  .err{color:#C1614E;font-size:.82rem;margin-top:10px;min-height:1.2em;text-align:center}
  #result{display:none}
  .pillars{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;max-width:560px;margin:36px auto 0}
  .pillar{border:1px solid var(--line);border-radius:4px;text-align:center;padding:16px 6px;background:rgba(20,26,46,.5);position:relative;overflow:hidden}
  .pillar .plabel{font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-bottom:10px}
  .pillar .glyph{font-family:var(--cn);font-size:1.9rem;line-height:1.15;font-weight:600}
  .pillar .rom{font-size:.66rem;color:var(--muted);letter-spacing:.06em;margin-top:6px}
  .pillar.day{border-color:var(--gold)}
  .pillar.day::after{content:'';position:absolute;inset:0;background:radial-gradient(circle at 50% 0,rgba(201,169,106,.14),transparent 70%)}
  .hookgrid{display:grid;grid-template-columns:1fr 1fr;gap:18px;max-width:760px;margin:40px auto 0}
  @media(max-width:640px){.hookgrid{grid-template-columns:1fr}}
  .hblock{border:1px solid var(--line);border-radius:5px;padding:26px 26px;background:rgba(15,20,37,.6)}
  .hblock .lab{font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);display:flex;align-items:center;gap:8px}
  .hblock .lab .n{font-family:var(--cn);color:var(--gold-soft)}
  .hblock .big{font-family:var(--serif);font-size:1.5rem;margin:10px 0 4px;color:var(--mist)}
  .hblock .ex{color:var(--muted);font-size:.9rem;margin-top:8px}
  .hblock .meta{color:var(--gold-soft);font-size:.92rem;font-style:italic;margin-top:10px}
  .favline{display:flex;gap:10px;margin-top:14px}
  .favline .star{color:var(--gold-soft)}
  .favline b{font-family:var(--serif);font-weight:500;font-size:1.15rem;color:var(--mist)}
  .favline .sup{color:var(--muted);font-size:.86rem}
  .dirchips{display:flex;gap:10px;flex-wrap:wrap;margin:12px 0 2px}
  .chip{border:1px solid var(--line);border-radius:20px;padding:6px 15px;font-size:.85rem;color:var(--mist);background:rgba(201,169,106,.06)}
  .chip.el{border-color:transparent;color:#0b0e1a;font-weight:500}
  .unlockbar{max-width:760px;margin:44px auto 0;text-align:center;border:1px solid var(--gold);border-radius:6px;padding:38px 28px;background:radial-gradient(circle at 50% -20%,rgba(201,169,106,.16),transparent 70%)}
  .unlockbar .lock{font-size:1.6rem}
  .unlockbar h3{font-family:var(--serif);font-size:1.7rem;margin:6px 0 4px}
  .price{font-family:var(--serif);font-size:2.4rem;color:var(--gold-soft);margin-top:6px}
  .price small{font-size:.95rem;color:var(--muted);font-family:var(--sans)}
  .inside{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:20px auto;max-width:520px}
  .inside span{font-size:.8rem;color:var(--muted);border:1px solid var(--line);border-radius:16px;padding:5px 13px}
  #report{display:none;max-width:820px;margin:20px auto 0}
  .rephead{text-align:center;color:var(--muted);font-size:.85rem;letter-spacing:.04em;margin-bottom:8px}
  .chapter{border-top:1px solid var(--line);padding:64px 0 8px}
  .chapter:first-child{border-top:none}
  .chnum{font-family:var(--serif);font-style:italic;font-size:1.3rem;color:var(--gold);letter-spacing:.1em}
  .chtitle{font-family:var(--serif);font-size:clamp(1.8rem,4vw,2.6rem);font-weight:400;margin:6px 0 22px;line-height:1.1}
  .chapter p{color:var(--mist);opacity:.92;margin-bottom:16px;font-size:1rem}
  .chapter p.muted{color:var(--muted)}
  .barrow{display:flex;align-items:center;gap:14px;margin:10px 0}
  .barrow .bl{width:82px;flex:none;font-size:.85rem;color:var(--muted)}
  .barrow .bl .cn{font-family:var(--cn);color:var(--gold-soft);margin-left:4px}
  .bartrack{flex:1;height:10px;background:var(--void-2);border-radius:5px;overflow:hidden}
  .bartrack i{display:block;height:100%;border-radius:5px}
  .barrow .bv{width:38px;text-align:right;font-size:.8rem;color:var(--muted)}
  .archetype{text-align:center;margin:8px 0 24px}
  .archetype .an{font-family:var(--serif);font-size:2.4rem;color:var(--gold-soft)}
  .subh{font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);margin:22px 0 10px}
  .chipwrap{display:flex;flex-wrap:wrap;gap:9px;margin-bottom:8px}
  .check{display:flex;align-items:center;gap:10px;color:var(--mist);margin:7px 0;font-size:.98rem}
  .check .ck{color:var(--gold-soft)}
  .rel{border:1px solid var(--line);border-radius:5px;padding:18px 20px;margin:10px 0;background:rgba(20,26,46,.4)}
  .rel .rl{font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);margin-bottom:6px}
  .rel p{margin:0;font-size:.96rem}
  .blueprint{border:1px solid var(--line);border-radius:6px;padding:24px 26px;margin:6px 0 8px;background:rgba(15,20,37,.5)}
  .dlwrap{text-align:center;padding:40px 0 8px}
  .cta.ghost{background:none;color:var(--gold);border:1px solid var(--gold);box-shadow:none}
  .cta.ghost:hover{background:rgba(201,169,106,.08)}
  .modal{position:fixed;inset:0;z-index:60;display:none;align-items:center;justify-content:center;padding:24px;background:rgba(6,8,16,.78);backdrop-filter:blur(6px)}
  .modal.on{display:flex}
  .mbox{width:100%;max-width:440px;border:1px solid var(--line);border-radius:6px;position:relative;background:linear-gradient(180deg,var(--ink),var(--void-2));padding:38px 32px 30px;max-height:92vh;overflow-y:auto}
  .mbox h3{font-family:var(--serif);font-size:1.7rem;text-align:center}
  .mbox .msub{text-align:center;color:var(--muted);font-size:.88rem;margin-top:6px}
  .curr-row{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:16px 0;margin:22px 0}
  .curr-row select{width:auto;padding:8px 30px 8px 12px}
  .curr-row .amt{font-family:var(--serif);font-size:1.6rem;color:var(--gold-soft)}
  .stripe-note{display:flex;align-items:center;justify-content:center;gap:8px;font-size:.76rem;color:var(--muted);margin-top:16px}
  .demo-tag{display:block;text-align:center;font-size:.72rem;color:var(--muted);margin-top:14px;line-height:1.5}
  .close{position:absolute;top:16px;right:20px;background:none;border:none;color:var(--muted);font-size:1.5rem;cursor:pointer;line-height:1}
  .gen{position:fixed;inset:0;z-index:70;display:none;flex-direction:column;align-items:center;justify-content:center;background:var(--void);text-align:center}
  .gen.on{display:flex}
  .gen svg{width:120px;height:120px}
  .gen .gt{font-family:var(--serif);font-size:1.8rem;margin-top:30px;color:var(--gold-soft);letter-spacing:.02em}
  .gen .gs{color:var(--muted);font-size:.85rem;margin-top:10px;letter-spacing:.2em;text-transform:uppercase;min-height:1.1em}
  .genspin{transform-origin:60px 60px;animation:spin 3s linear infinite}
  footer{position:relative;z-index:2;padding:40px 0 60px;border-top:1px solid var(--line);margin-top:40px;text-align:center;color:var(--muted);font-size:.8rem}
  .disclaimer{border-top:1px solid var(--line);margin-top:40px;padding-top:26px;text-align:center;color:var(--muted);font-size:.78rem;line-height:1.6}
  @media(max-width:720px){.three{grid-template-columns:1fr}.field .row{grid-template-columns:1fr 1fr}.pillars{grid-template-columns:1fr 1fr;gap:12px;max-width:340px}.panel{padding:30px 22px}}
  @media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
  @media print{
    header,#stars,.hero,#about,#calc,footer,.dlwrap,.modal,.gen{display:none!important}
    body{background:#fff;color:#111}
    #result{display:block!important}.hookgrid,.unlockbar,.pillars,.kicker,.htitle{display:none!important}
    #report{display:block!important;max-width:100%}
    .chapter p,.check,.rel p{color:#111}.chtitle,.archetype .an,.chnum,.subh{color:#8a6d2f}
    .rel,.blueprint{background:#f6f4ee;border-color:#e4dcc7}
  }
