:root{
  --night:#0b0f2a; --indigo:#151a45; --deep:#1d2260; --violet:#3a2f6b;
  --gold:#e3bf6a; --gold-soft:#f3dca0; --pearl:#f4efe6; --mist:#c9c4dd; --muted:#9a95b8;
  --card:rgba(255,255,255,.045); --line:rgba(243,220,160,.22);
  --serif:'Cormorant Garamond',Georgia,serif; --sans:'Jost','Helvetica Neue',Arial,sans-serif;
  --r:18px; --max:1120px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:var(--sans);font-weight:300;color:var(--pearl);line-height:1.7;font-size:17px;
  background:radial-gradient(1200px 700px at 70% -10%,#2a2470 0%,transparent 60%),
             radial-gradient(900px 600px at -10% 30%,#1a2a6a55 0%,transparent 60%),
             linear-gradient(180deg,var(--night),#0e1236 60%,var(--night));
  min-height:100vh;overflow-x:hidden}
html{background:var(--night)}
body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;opacity:.7;
  background-image:
   radial-gradient(1px 1px at 10% 20%,#fff9 50%,transparent 51%),radial-gradient(1px 1px at 30% 70%,#fff7 50%,transparent 51%),
   radial-gradient(1.5px 1.5px at 55% 15%,#f3dca0cc 50%,transparent 51%),radial-gradient(1px 1px at 80% 40%,#fff8 50%,transparent 51%),
   radial-gradient(1px 1px at 90% 85%,#fff6 50%,transparent 51%),radial-gradient(1.5px 1.5px at 20% 90%,#f3dca099 50%,transparent 51%),
   radial-gradient(1px 1px at 65% 60%,#fff6 50%,transparent 51%),radial-gradient(1px 1px at 45% 40%,#fff5 50%,transparent 51%);
  background-size:420px 420px;animation:twinkle 9s ease-in-out infinite alternate}
@keyframes twinkle{from{opacity:.45}to{opacity:.85}}
@media (prefers-reduced-motion:reduce){body::before{animation:none}}
main,header,footer{position:relative;z-index:1}
a{color:var(--gold-soft);text-decoration-color:rgba(243,220,160,.4);text-underline-offset:3px}
a:hover{color:#fff}
h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.15;color:var(--pearl);margin:0 0 .5em}
h1{font-size:clamp(2.6rem,6vw,4.6rem);letter-spacing:.5px}
h2{font-size:clamp(2rem,4vw,2.9rem)}
h3{font-size:1.55rem}
p{margin:0 0 1em}
.wrap{max-width:var(--max);margin:0 auto;padding:0 24px}
.eyebrow{font-family:var(--sans);text-transform:uppercase;letter-spacing:.32em;font-size:.74rem;color:var(--gold);font-weight:400;margin-bottom:1rem;display:block}
.gold{background:linear-gradient(120deg,#fbe9b7,#e3bf6a 55%,#c8994a);-webkit-background-clip:text;background-clip:text;color:transparent}
.placeholder{border-left:2px dashed var(--gold);padding-left:.8em;color:var(--mist)}
.tag{display:inline-block;font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;padding:.25em .8em;border:1px solid var(--gold);color:var(--gold-soft);border-radius:99px;background:rgba(227,191,106,.08)}
.tag.example{border-color:#e7a5c8;color:#f6cfe3;background:rgba(231,165,200,.1)}
/* header */
.site-header{position:sticky;top:0;backdrop-filter:blur(12px);background:rgba(11,15,42,.72);border-bottom:1px solid rgba(243,220,160,.1);z-index:10}
.nav{display:flex;align-items:center;justify-content:space-between;height:72px}
.brand{display:flex;align-items:center;gap:.7rem;text-decoration:none;color:var(--pearl)}
.brand img{width:42px;height:42px}
.brand span{font-family:var(--serif);font-size:1.55rem;letter-spacing:.5px}
.nav ul{list-style:none;display:flex;gap:1.6rem;margin:0;padding:0}
.nav ul a{text-decoration:none;color:var(--mist);font-size:.88rem;letter-spacing:.12em;text-transform:uppercase}
.nav ul a:hover,.nav ul a[aria-current]{color:var(--gold-soft)}
.menu-btn{display:none;background:none;border:1px solid var(--line);color:var(--pearl);border-radius:10px;padding:.45rem .7rem;font:inherit;cursor:pointer}
@media (max-width:900px){
  .menu-btn{display:block}
  .nav ul{position:absolute;top:72px;left:0;right:0;flex-direction:column;gap:0;background:rgba(11,15,42,.97);border-bottom:1px solid var(--line);display:none}
  .nav ul.open{display:flex}
  .nav ul a{display:block;padding:1rem 24px}
}
/* buttons */
.btn{display:inline-block;padding:.85rem 1.7rem;border-radius:99px;text-decoration:none;font-size:.85rem;letter-spacing:.16em;text-transform:uppercase;font-weight:400;border:1px solid var(--gold);color:var(--gold-soft);transition:.25s;cursor:pointer;font-family:var(--sans);background:transparent}
.btn.primary{background:linear-gradient(120deg,#f6dc9a,#d9ae5a);color:#1a1640;border-color:transparent;box-shadow:0 0 30px rgba(227,191,106,.35)}
.btn:hover{transform:translateY(-2px);box-shadow:0 0 36px rgba(227,191,106,.45);color:#fff}
.btn.primary:hover{color:#1a1640}
/* hero */
.hero{text-align:center;padding:90px 0 80px}
.hero .mark{width:min(230px,52vw);height:auto;margin:0 auto 1.2rem;display:block;animation:breathe 7s ease-in-out infinite}
@keyframes breathe{0%,100%{filter:drop-shadow(0 0 18px rgba(243,220,160,.25))}50%{filter:drop-shadow(0 0 38px rgba(243,220,160,.55))}}
.hero p.lead{font-size:1.2rem;color:var(--mist);max-width:620px;margin:0 auto 2rem}
.hero .ctas{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}
.page-hero{padding:80px 0 40px;text-align:center}
.page-hero p{color:var(--mist);max-width:640px;margin:0 auto}
section{padding:70px 0}
.divider{width:120px;height:1px;margin:0 auto;background:linear-gradient(90deg,transparent,var(--gold),transparent)}
.center{text-align:center}
.narrow{max-width:720px;margin:0 auto}
/* cards */
.grid{display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:32px 28px;transition:.3s;position:relative;overflow:hidden}
.card:hover{border-color:rgba(243,220,160,.5);box-shadow:0 10px 40px rgba(0,0,0,.35),0 0 30px rgba(227,191,106,.12);transform:translateY(-3px)}
.card .icon{width:44px;height:44px;margin-bottom:1rem;color:var(--gold)}
.card p{color:var(--mist);font-size:.98rem}
.card .more{font-size:.8rem;letter-spacing:.16em;text-transform:uppercase;text-decoration:none}
.card.feature{border-color:rgba(243,220,160,.45);background:linear-gradient(160deg,rgba(227,191,106,.12),rgba(255,255,255,.03))}
.dest .art{height:150px;margin:-32px -28px 22px;background:var(--grad);position:relative}
.dest .art::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 70% 30%,rgba(255,240,200,.45),transparent 40%)}
.dest .tag{position:absolute;top:14px;left:14px;z-index:2}
/* forms */
.panel{background:rgba(255,255,255,.04);border:1px solid var(--line);border-radius:24px;padding:44px}
@media (max-width:600px){.panel{padding:28px 20px}}
form .row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
@media (max-width:640px){form .row{grid-template-columns:1fr}}
label{display:block;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-soft);margin:0 0 .4rem}
input,textarea,select{width:100%;padding:.85rem 1rem;border-radius:12px;border:1px solid rgba(243,220,160,.25);background:rgba(11,15,42,.6);color:var(--pearl);font:inherit;font-size:1rem;margin-bottom:18px}
input:focus,textarea:focus,select:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(227,191,106,.2)}
textarea{min-height:110px;resize:vertical}
.note{font-size:.85rem;color:var(--muted)}
.signup{display:flex;gap:12px;max-width:520px;margin:1.5rem auto 0}
.signup input{margin:0}
@media (max-width:560px){.signup{flex-direction:column}}
/* two col */
.split{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
@media (max-width:820px){.split{grid-template-columns:1fr;gap:32px}}
.orb{aspect-ratio:1;border-radius:50%;max-width:380px;margin:auto;background:radial-gradient(circle at 35% 30%,#fff3cf 0%,#e3bf6a 18%,#6b4fa0 55%,#151a45 75%);box-shadow:0 0 120px rgba(227,191,106,.25);opacity:.9}
/* chat mock */
.chat{max-width:760px;margin:0 auto;background:rgba(11,15,42,.75);border:1px solid var(--line);border-radius:24px;overflow:hidden;box-shadow:0 20px 70px rgba(0,0,0,.5),0 0 40px rgba(227,191,106,.1)}
.chat-head{display:flex;align-items:center;gap:.7rem;padding:16px 22px;border-bottom:1px solid var(--line);background:rgba(255,255,255,.03)}
.chat-head img{width:34px;height:34px}
.chat-head b{font-family:var(--serif);font-weight:500;font-size:1.3rem}
.chat-head .tag{margin-left:auto}
.chat-body{padding:24px 22px;display:flex;flex-direction:column;gap:14px}
.msg{max-width:82%;padding:.85rem 1.1rem;border-radius:18px;font-size:.97rem;line-height:1.6}
.msg.user{align-self:flex-end;background:linear-gradient(120deg,#3a2f6b,#2a2a70);border-bottom-right-radius:4px}
.msg.guide{align-self:flex-start;background:rgba(227,191,106,.1);border:1px solid rgba(227,191,106,.25);border-bottom-left-radius:4px}
.msg.guide small{display:block;color:var(--gold);letter-spacing:.14em;text-transform:uppercase;font-size:.66rem;margin-bottom:.25rem}
.chips{display:flex;flex-wrap:wrap;gap:8px;padding:0 22px 14px}
.chips span{font-size:.78rem;padding:.35rem .85rem;border:1px solid var(--line);border-radius:99px;color:var(--mist)}
.chat-input{display:flex;gap:10px;padding:16px 22px;border-top:1px solid var(--line)}
.chat-input input{margin:0}
/* journal */
.post-list{display:grid;gap:22px}
.post-card{display:block;text-decoration:none;color:inherit}
.post-meta{font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
article.post{max-width:720px;margin:0 auto}
article.post p{font-size:1.08rem}
article.post blockquote{font-family:var(--serif);font-size:1.6rem;font-style:italic;color:var(--gold-soft);border-left:2px solid var(--gold);margin:2rem 0;padding:.2rem 0 .2rem 1.3rem}
.notice{border:1px dashed #e7a5c8;background:rgba(231,165,200,.08);color:#f6cfe3;border-radius:14px;padding:14px 18px;font-size:.92rem;margin:0 0 2rem}
/* worksheet */
.ws{background:var(--pearl);color:#1d1a3a;border-radius:20px;padding:48px;max-width:860px;margin:0 auto}
.ws h1,.ws h2,.ws h3{color:#1d1a3a}
.ws h2{font-size:1.6rem;border-bottom:1px solid #c8994a;padding-bottom:.3rem;margin-top:1.6rem}
.ws .lines{border-bottom:1px solid #b9b2cf;height:2.1rem}
.ws .field{display:grid;grid-template-columns:180px 1fr;gap:12px;align-items:end;margin:.4rem 0}
.ws .field span{font-size:.85rem;letter-spacing:.1em;text-transform:uppercase;color:#6b5a2a}
.ws .field div{border-bottom:1px solid #b9b2cf;height:1.9rem}
.ws table{width:100%;border-collapse:collapse;margin-top:.6rem}
.ws td,.ws th{border:1px solid #cfc8e0;padding:.55rem;height:2.3rem;text-align:left;font-weight:400;font-size:.9rem}
.ws th{background:#efe6d2;letter-spacing:.08em;text-transform:uppercase;font-size:.75rem}
.ws .checks{columns:2;list-style:none;padding:0}
.ws .checks li::before{content:"☐  ";color:#a07a2c}
.ws-head{display:flex;align-items:center;gap:14px;margin-bottom:1rem}
.ws-head img{width:60px;filter:drop-shadow(0 0 1px #8a6a20)}
@media (max-width:640px){.ws{padding:26px 18px}.ws .field{grid-template-columns:1fr}.ws .checks{columns:1}}
/* footer */
.site-footer{border-top:1px solid rgba(243,220,160,.12);padding:50px 0 40px;margin-top:40px;color:var(--muted);font-size:.9rem}
.footer-grid{display:flex;justify-content:space-between;gap:30px;flex-wrap:wrap;align-items:center}
.site-footer .brand img{width:34px;height:34px}
.site-footer nav a{margin-right:1.2rem;color:var(--mist);text-decoration:none}
@media print{
  body{background:#fff!important;color:#000}
  body::before,.site-header,.site-footer,.no-print{display:none!important}
  .ws{box-shadow:none;padding:0;border-radius:0;max-width:none}
  section{padding:0}
}
.btn{white-space:nowrap}
.grid.three{grid-template-columns:repeat(3,1fr)}
@media (max-width:900px){.grid.three{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.grid.three{grid-template-columns:1fr}}
