:root{
  --paper:#F4EEE1; --card:#FFFDF8; --ink:#1B1714; --soft:#6B6256; --line:#E5DCC9;
  --mag:#E8458C; --cobalt:#2B57E4; --green:#1FA86B; --orange:#F26A1B; --violet:#7A3FF2; --mustard:#F4B23E;
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  background:var(--paper); color:var(--ink);
  font-family:'Instrument Sans',system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  background-image:radial-gradient(rgba(27,23,20,.045) 1.1px,transparent 1.3px);
  background-size:18px 18px; background-attachment:fixed;
}
.serif{font-family:'Fraunces',Georgia,serif;font-weight:600;letter-spacing:-.01em;}
a{color:inherit;}
.wrap{max-width:1040px;margin:0 auto;padding:0 22px;}
.eyebrow{font-size:.7rem;letter-spacing:2.5px;font-weight:700;color:var(--soft);text-transform:uppercase;display:inline-flex;align-items:center;}
.eyebrow::before{content:"";width:7px;height:7px;background:var(--mag);border-radius:2px;margin-right:9px;transform:rotate(10deg);}

/* nav */
.nav{position:sticky;top:0;z-index:20;background:rgba(244,238,225,.88);backdrop-filter:blur(8px);border-bottom:1.5px solid rgba(27,23,20,.12);}
.nav-in{display:flex;align-items:center;gap:18px;padding:12px 0;}
.logo{width:34px;height:34px;border-radius:11px;background:var(--ink);display:flex;align-items:center;justify-content:center;position:relative;flex:none;}
.logo span{color:var(--paper);font-family:'Fraunces',Georgia,serif;font-weight:700;font-size:20px;}
.logo::after{content:"";position:absolute;width:9px;height:9px;background:var(--mustard);border-radius:50%;right:-3px;top:-3px;border:2px solid var(--paper);}
.brand{font-family:'Fraunces',Georgia,serif;font-weight:700;font-size:1.35rem;}
.nav a.link{color:var(--soft);text-decoration:none;font-size:.9rem;}
.nav a.link:hover,.nav a.link.active{color:var(--ink);}

/* cards */
.deck{display:grid;gap:14px;}
.card{background:var(--card);border:1.5px solid rgba(27,23,20,.13);border-radius:16px;box-shadow:4px 4px 0 rgba(27,23,20,.05);padding:18px;}
.kpi{font-family:'Fraunces',Georgia,serif;font-weight:600;font-size:2.3rem;line-height:1;}
.tag{display:inline-block;font-size:.7rem;border-radius:999px;padding:2px 9px;}
.bar{display:flex;gap:3px;}
.bar span{height:6px;width:16px;border-radius:3px;background:var(--line);}
.btn{display:inline-flex;align-items:center;gap:8px;background:var(--ink);color:var(--paper);border:none;border-radius:999px;padding:10px 18px;font-size:.9rem;text-decoration:none;cursor:pointer;}
.btn.line{background:transparent;color:var(--ink);border:1.5px solid rgba(27,23,20,.2);}
.rule{height:1.5px;background:repeating-linear-gradient(90deg,rgba(27,23,20,.16) 0 7px,transparent 7px 14px);margin:30px 0;}
.muted{color:var(--soft);}

/* ===== LANDING (route /) ===== */
.landing{margin:0 -22px;}
.landing .eyebrow::before{display:none;}
.hero{padding:72px 28px 40px;text-align:center;position:relative;max-width:1080px;margin:0 auto;}
.blob{position:absolute;border-radius:50%;filter:blur(8px);opacity:.18;z-index:0;pointer-events:none;}
.hero h1{font-weight:600;font-size:clamp(2.5rem,6vw,4.8rem);line-height:1.03;letter-spacing:-.025em;margin:16px auto 0;max-width:15ch;position:relative;z-index:1;}
.hero .sub{color:var(--soft);font-size:clamp(1rem,1.8vw,1.18rem);max-width:36ch;margin:18px auto 0;line-height:1.55;position:relative;z-index:1;}
.dots{display:flex;gap:9px;justify-content:center;margin-top:20px;position:relative;z-index:1;}
.dots span{width:10px;height:10px;border-radius:50%;}
.ask{max-width:680px;margin:36px auto 0;position:relative;z-index:2;}
.askbar{display:flex;gap:10px;align-items:flex-end;background:var(--card);border:1.5px solid rgba(27,23,20,.16);border-radius:20px;padding:10px 10px 10px 18px;box-shadow:6px 8px 0 rgba(27,23,20,.06);}
.askbar textarea{flex:1;border:none;background:transparent;resize:none;font:inherit;font-size:1rem;outline:none;color:var(--ink);max-height:140px;padding:8px 0;}
.askbar button{flex:none;width:46px;height:46px;border:none;border-radius:14px;background:var(--ink);color:var(--paper);font-size:1.2rem;cursor:pointer;transition:transform .12s;}
.askbar button:hover{transform:translateY(-2px);} .askbar button:disabled{opacity:.4;}
.chips{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:14px;}
.chips button{font-size:.82rem;background:transparent;border:1.5px solid rgba(27,23,20,.18);border-radius:999px;padding:7px 13px;cursor:pointer;color:var(--soft);}
.chips button:hover{color:var(--ink);border-color:var(--ink);}
.note{font-size:.7rem;color:var(--soft);margin-top:14px;}
#feed{max-width:720px;margin:26px auto 0;display:flex;flex-direction:column;gap:14px;text-align:left;}
.msg{display:flex;gap:11px;} .msg.u{flex-direction:row-reverse;}
.av{width:30px;height:30px;border-radius:9px;flex:none;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:.8rem;}
.av.u{background:var(--cobalt);} .av.t{background:var(--ink);font-family:'Fraunces',Georgia,serif;}
.bub{background:var(--card);border:1.5px solid rgba(27,23,20,.12);border-radius:16px;padding:13px 16px;font-size:.94rem;line-height:1.6;max-width:88%;}
.msg.u .bub{background:#E9EFFF;border-color:#C6D4FF;}
.bub h3{font-family:'Fraunces',Georgia,serif;font-size:1.02rem;margin:.7em 0 .25em;}
.bub ul{margin:.4em 0;padding-left:1.1em;}
.src{margin-top:11px;padding-top:9px;border-top:1px dashed var(--line);}
.src a{display:inline-flex;gap:6px;font-size:.72rem;background:#EFE7D6;border-radius:999px;padding:3px 10px;margin:0 5px 5px 0;text-decoration:none;}
.spin{display:inline-block;width:13px;height:13px;border:2px solid var(--line);border-top-color:var(--ink);border-radius:50%;animation:s .7s linear infinite;vertical-align:-2px;}
@keyframes s{to{transform:rotate(360deg);}}
.reveal{opacity:0;transform:translateY(26px);transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1);}
.reveal.in{opacity:1;transform:none;}
.landing section.block{padding:78px 28px;border-top:1px solid rgba(27,23,20,.08);max-width:1080px;margin:0 auto;}
.two{display:grid;grid-template-columns:1.1fr 1fr;gap:48px;align-items:start;}
@media(max-width:760px){.two{grid-template-columns:1fr;gap:24px;}}
.lead{font-size:clamp(1.8rem,3.4vw,2.7rem);line-height:1.2;letter-spacing:-.02em;max-width:20ch;font-weight:600;margin-top:14px;}
.lead em{font-style:italic;color:var(--mag);}
.bodytext{color:#3A332B;font-size:1.02rem;line-height:1.7;}
.landing .grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-top:18px;}
.mod{background:var(--card);border:1.5px solid rgba(27,23,20,.1);border-radius:18px;padding:20px;box-shadow:4px 5px 0 rgba(27,23,20,.04);}
.mod .k{font-size:1.5rem;} .mod h4{font-weight:600;font-size:1.1rem;margin:8px 0 4px;} .mod p{font-size:.86rem;color:var(--soft);line-height:1.5;}
.closing{background:var(--ink);color:var(--paper);padding:88px 28px;text-align:center;margin:0 -22px;}
.closing h2{font-weight:500;font-size:clamp(2rem,5vw,3.3rem);line-height:1.1;letter-spacing:-.02em;max-width:18ch;margin:0 auto;}
.closing p{color:#B9AE9C;margin-top:18px;font-size:.95rem;}
