:root{
  --paper:#F8F4EC; --ink:#2E2B26; --brown:#7A5A44; --beige:#E6DDD1; --gold:#C7A66A;
  --paper-2:#F2ECDF; --line:#dfd4c2; --shadow:rgba(46,43,38,.14); --red:#C76B5A;
  --serif:'Cormorant Garamond',Georgia,serif; --hand:'Caveat',cursive; --body:'Inter',system-ui,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0; background:var(--paper); color:var(--ink); font-family:var(--body); font-weight:400;
  line-height:1.7; font-size:17px; -webkit-font-smoothing:antialiased; overflow-x:hidden}
body::before{content:""; position:fixed; inset:0; z-index:0; pointer-events:none; opacity:.5;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.045'/%3E%3C/svg%3E")}
.wrap{position:relative; z-index:1; max-width:1080px; margin:0 auto; padding:0 24px}
.narrow{max-width:780px}
h1,h2,h3,h4{font-family:var(--serif); font-weight:600; line-height:1.08; margin:0; letter-spacing:.2px}
p{margin:0 0 1.1em}
a{color:inherit}
img{max-width:100%; display:block}
.hand{font-family:var(--hand)}
.gold{color:var(--brown)}
svg .sketch{filter:url(#rough)}

/* ---------- nav ---------- */
header.nav{position:sticky; top:0; z-index:60; backdrop-filter:blur(7px);
  background:linear-gradient(var(--paper),rgba(248,244,236,.82)); border-bottom:1px solid var(--line)}
.nav .wrap{display:flex; align-items:center; justify-content:space-between; height:66px; gap:18px}
.brand{font-family:var(--serif); font-size:22px; font-weight:600; letter-spacing:.4px; display:flex;
  align-items:center; gap:10px; text-decoration:none; white-space:nowrap}
.brand .dot{width:9px; height:9px; border-radius:50%; background:var(--gold); box-shadow:0 0 0 4px rgba(199,166,106,.18)}
.menu{display:flex; gap:22px; align-items:center; font-size:14px; font-weight:500}
.menu>a,.drop>span{color:var(--brown); text-decoration:none; cursor:pointer; opacity:.9; transition:opacity .2s; white-space:nowrap}
.menu>a:hover,.drop>span:hover{opacity:1; color:var(--ink)}
.menu>a.active{color:var(--ink); border-bottom:2px solid var(--gold); padding-bottom:2px}
.drop{position:relative}
.drop>span::after{content:" ⌄"; color:var(--gold)}
.drop .panel{position:absolute; top:130%; left:50%; transform:translateX(-50%) translateY(6px); min-width:210px;
  background:var(--paper); border:1px solid var(--line); box-shadow:4px 8px 22px var(--shadow); padding:10px;
  border-radius:2px 14px 2px 14px; opacity:0; visibility:hidden; transition:all .2s; z-index:70}
.drop:hover .panel,.drop:focus-within .panel{opacity:1; visibility:visible; transform:translateX(-50%) translateY(0)}
.drop .panel a{display:block; padding:8px 12px; text-decoration:none; color:var(--ink); font-size:14px; border-radius:8px}
.drop .panel a:hover{background:var(--paper-2); color:var(--brown)}
.ask-btn{font-family:var(--hand); font-size:20px; color:var(--ink); text-decoration:none; cursor:pointer;
  border-bottom:2px solid var(--gold); padding-bottom:1px; background:none; border-top:none; border-left:none; border-right:none}
.hamb{display:none; background:none; border:none; cursor:pointer; font-size:24px; color:var(--ink)}
@media(max-width:940px){
  .menu{position:fixed; inset:66px 0 auto 0; flex-direction:column; align-items:flex-start; gap:4px;
    background:var(--paper); border-bottom:1px solid var(--line); padding:14px 24px 22px; box-shadow:0 10px 24px var(--shadow);
    transform:translateY(-130%); transition:transform .28s ease; max-height:80vh; overflow:auto}
  .menu.open{transform:none}
  .menu>a,.drop{width:100%; padding:6px 0}
  .drop .panel{position:static; transform:none; opacity:1; visibility:visible; box-shadow:none; border:none;
    padding:2px 0 6px 14px; min-width:0}
  .drop .panel a{padding:6px 0}
  .hamb{display:block}
}

/* ---------- shared bits ---------- */
.eyebrow{font-family:var(--hand); font-size:22px; color:var(--gold); display:inline-block; margin-bottom:6px; transform:rotate(-1.5deg)}
.page-head{padding:64px 0 14px}
.page-head h1{font-size:clamp(2.3rem,6vw,3.8rem)}
.page-head .sub{max-width:60ch; color:#4a443c; margin-top:14px; font-size:1.12rem}
section{position:relative; z-index:1; padding:46px 0}
.sec-title{font-size:clamp(1.8rem,4.5vw,2.6rem)}
.sec-intro{max-width:60ch; color:#4a443c; margin-top:10px}
.divider{height:40px; margin:8px 0; opacity:.7}
.divider svg{width:100%; height:100%}
.btn{font-family:var(--body); font-weight:500; font-size:15px; cursor:pointer; border:none; text-decoration:none;
  display:inline-flex; align-items:center; gap:9px; transition:transform .18s ease, box-shadow .18s ease}
.btn:hover{transform:translateY(-2px)}
.btn-primary{background:var(--ink); color:var(--paper); padding:14px 26px;
  border-radius:2px 14px 4px 16px/14px 4px 16px 4px; box-shadow:3px 4px 0 rgba(46,43,38,.18)}
.btn-ghost{font-family:var(--hand); font-size:21px; color:var(--ink); padding:6px 4px; border-bottom:2px solid var(--gold)}
.lede{font-size:1.18rem; color:#46413a}

/* ---------- animated signature masthead (her real logo, hand written) ---------- */
.signature{position:relative; z-index:2; text-align:center; padding:6px 0 18px}
.sig-script{position:relative; display:inline-block; line-height:1}
.sig-script .ink{
  font-family:'Great Vibes', cursive; font-weight:400;
  font-size:clamp(3rem, 12vw, 6.4rem); letter-spacing:.5px; display:inline-block; padding:0 .12em;
  background:linear-gradient(95deg,#5e9ea0 0%, #7fa6a0 38%, #b07a8a 74%, #c98b97 100%);
  -webkit-background-clip:text; background-clip:text; color:transparent;
  -webkit-text-fill-color:transparent;
  clip-path:inset(0 100% 0 0); animation:sig-write 2.8s cubic-bezier(.6,.02,.25,1) .25s forwards;
}
.sig-script .nib{position:absolute; top:8%; left:0; width:clamp(22px,5vw,34px); height:auto; opacity:0;
  transform:translateX(-50%) rotate(6deg); animation:sig-nib 2.8s cubic-bezier(.6,.02,.25,1) .25s forwards}
.sig-script .nib svg{width:100%; height:auto; display:block; filter:drop-shadow(0 2px 2px rgba(46,43,38,.25))}
.sig-sub{font-family:var(--serif); font-weight:600; letter-spacing:.42em; text-transform:uppercase;
  font-size:clamp(.78rem,2.4vw,1.05rem); color:var(--ink); margin-top:6px; padding-left:.42em; opacity:0;
  animation:sig-fade 1s ease 2.7s forwards}
@keyframes sig-write{to{clip-path:inset(0 0 0 0)}}
@keyframes sig-nib{0%{opacity:0; left:2%} 8%{opacity:1} 92%{opacity:1; left:98%} 100%{opacity:0; left:100%}}
@keyframes sig-fade{to{opacity:1}}
@media(max-width:600px){ .sig-sub{letter-spacing:.3em} }

/* ---------- hero ---------- */
.hero{position:relative; padding:48px 0 50px; overflow:hidden}
.hero .ruled{position:absolute; inset:0; z-index:0; opacity:.4;
  background-image:repeating-linear-gradient(transparent 0 37px, var(--line) 37px 38px);
  -webkit-mask-image:linear-gradient(transparent,#000 22%,#000 78%,transparent); mask-image:linear-gradient(transparent,#000 22%,#000 78%,transparent)}
.hero .margin-line{position:absolute; top:0; bottom:0; left:70px; width:1px; background:rgba(199,107,90,.4); z-index:0}
.hero-grid{position:relative; z-index:2; display:grid; grid-template-columns:1.15fr .85fr; gap:36px; align-items:center}
.hero h1{font-size:clamp(2.7rem,7.4vw,5rem); letter-spacing:-.5px}
.hero h1 .pow{position:relative; white-space:nowrap}
.hero h1 .pow svg{position:absolute; left:-2%; bottom:-.18em; width:104%; height:.4em; overflow:visible}
.hero h1 em{font-style:italic; color:var(--brown); font-weight:500}
.hero .lede{max-width:32ch; margin-top:18px}
.cta-row{display:flex; gap:16px; flex-wrap:wrap; margin-top:26px; align-items:center}
.hero-art{position:relative; min-height:320px}
.tape{position:absolute; width:74px; height:26px; background:rgba(199,166,106,.34); transform:rotate(-6deg);
  box-shadow:0 1px 3px var(--shadow); top:-12px; left:42%}
@media(max-width:860px){ .hero-grid{grid-template-columns:1fr} .hero-art{min-height:240px; order:-1} .hero .margin-line{left:24px} }

/* proof chips */
.proof{display:flex; flex-wrap:wrap; gap:10px; margin-top:24px}
.proof span{font-family:var(--body); font-size:13px; background:var(--paper-2); border:1px solid var(--line);
  color:var(--brown); padding:7px 13px; border-radius:255px 14px 225px 14px/14px 225px 14px 255px}

/* stats */
.stats{display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:20px; margin-top:18px}
.stat{text-align:center; padding:18px 10px; border:1px dashed var(--line); border-radius:255px 16px 225px 16px/16px 225px 16px 255px}
.stat b{font-family:var(--serif); font-size:2.6rem; color:var(--ink); display:block; line-height:1}
.stat span{font-size:.92rem; color:var(--brown)}

/* cards */
.cards{display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:22px; margin-top:26px}
.card{background:var(--paper); border:1px solid var(--line); padding:22px 24px;
  border-radius:255px 14px 225px 14px/14px 225px 14px 255px; box-shadow:3px 4px 12px var(--shadow)}
.card h3{font-size:1.5rem; margin-bottom:6px}
.card p{font-size:.97rem; color:#4a443c; margin:0}
.card .k{font-family:var(--hand); font-size:19px; color:var(--gold)}

/* timeline */
.timeline{margin-top:30px; position:relative; padding-left:34px}
.timeline::before{content:""; position:absolute; left:9px; top:6px; bottom:6px; width:2px;
  background:repeating-linear-gradient(var(--gold) 0 7px, transparent 7px 15px); opacity:.6}
.tl{position:relative; margin-bottom:26px; opacity:0; transform:translateY(18px); transition:.7s}
.tl.in{opacity:1; transform:none}
.tl::before{content:""; position:absolute; left:-30px; top:6px; width:14px; height:14px; border-radius:50%;
  background:var(--paper); border:2px solid var(--brown)}
.tl .tlph{margin:0 0 12px; max-width:340px; border:1px solid var(--line); background:var(--paper); padding:7px; box-shadow:3px 4px 12px var(--shadow); transform:rotate(-1deg)}
.tl .tlph img{width:100%; display:block; border-radius:2px}
.tl .yr{font-family:var(--hand); font-size:1.5rem; color:var(--brown)}
.tl h3{font-size:1.5rem; margin:2px 0 6px}
.tl p{font-size:1rem; color:#4a443c; margin:0; max-width:62ch}

/* video / screening room */
.reels{display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:24px; margin-top:26px}
.reel{background:var(--ink); padding:12px; border-radius:6px; box-shadow:4px 7px 18px var(--shadow); position:relative}
.reel::before,.reel::after{content:""; position:absolute; top:0; bottom:0; width:14px;
  background-image:radial-gradient(circle, var(--paper) 2.2px, transparent 2.4px); background-size:14px 14px; opacity:.5}
.reel::before{left:0} .reel::after{right:0}
.reel .frame{position:relative; aspect-ratio:16/9; border-radius:3px; overflow:hidden; cursor:pointer; background:#000}
.reel .frame img{width:100%; height:100%; object-fit:cover; opacity:.86; transition:opacity .25s}
.reel .frame:hover img{opacity:1}
.reel .play{position:absolute; inset:0; display:flex; align-items:center; justify-content:center}
.reel .play span{width:58px; height:58px; border-radius:50%; background:rgba(248,244,236,.92); display:flex;
  align-items:center; justify-content:center; box-shadow:0 4px 14px rgba(0,0,0,.4)}
.reel .play span::after{content:""; border-left:18px solid var(--ink); border-top:11px solid transparent; border-bottom:11px solid transparent; margin-left:4px}
.reel iframe{width:100%; aspect-ratio:16/9; border:0; border-radius:3px; display:block}
.reel .cap{color:var(--paper); font-family:var(--hand); font-size:19px; padding:9px 6px 3px; text-align:center}

/* polaroids / testimonials grid */
.poly{display:grid; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); gap:28px; margin-top:28px}
.tcard{background:var(--paper); border:1px solid var(--line); box-shadow:4px 6px 16px var(--shadow);
  text-decoration:none; color:inherit; display:flex; flex-direction:column; transition:transform .2s}
.tcard:nth-child(odd){transform:rotate(-1deg)} .tcard:nth-child(even){transform:rotate(1deg)}
.tcard:hover{transform:translateY(-4px) rotate(0)}
.tcard .frame{position:relative; aspect-ratio:16/10; overflow:hidden; background:#000}
.tcard .frame img{width:100%; height:100%; object-fit:cover; opacity:.9}
.tcard .play{position:absolute; inset:0; display:flex; align-items:center; justify-content:center}
.tcard .play span{width:48px; height:48px; border-radius:50%; background:rgba(248,244,236,.92); display:flex; align-items:center; justify-content:center}
.tcard .play span::after{content:""; border-left:15px solid var(--ink); border-top:9px solid transparent; border-bottom:9px solid transparent; margin-left:3px}
.tcard .body{padding:16px 18px 20px}
.tcard .body .nm{font-family:var(--serif); font-size:1.35rem; font-weight:600}
.tcard .body .hd{font-family:var(--hand); font-size:18px; color:var(--gold); margin:1px 0 6px}
.tcard .body p{font-size:.92rem; color:#4a443c; margin:0}

/* notes / shelf / press */
.notes{display:flex; flex-wrap:wrap; gap:26px; justify-content:center; margin-top:30px}
.note{position:relative; background:var(--paper); padding:30px 26px; width:230px; min-height:140px; display:flex;
  align-items:center; justify-content:center; text-align:center; font-family:var(--hand); font-size:1.6rem;
  color:var(--ink); line-height:1.15; box-shadow:4px 6px 16px var(--shadow)}
.note::after{content:""; position:absolute; top:-12px; left:50%; transform:translateX(-50%) rotate(-5deg);
  width:84px; height:26px; background:rgba(199,166,106,.36)}
.note:nth-child(odd){transform:rotate(-3deg)} .note:nth-child(even){transform:rotate(2deg); background:var(--paper-2)}
.shelf{display:flex; flex-wrap:wrap; gap:12px; margin-top:24px}
.spine-book{font-family:var(--serif); font-size:1.05rem; color:var(--paper); background:var(--brown);
  padding:12px 16px; border-radius:2px 5px 5px 2px; box-shadow:2px 3px 8px var(--shadow); border-left:4px solid var(--gold)}
.spine-book:nth-child(3n){background:var(--ink)} .spine-book:nth-child(4n){background:#8a6a4f} .spine-book:nth-child(5n){background:#6d5742}
.covers{display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:26px 18px; margin-top:28px; align-items:start}
.cover{margin:0; text-align:center}
.cover img{width:100%; height:auto; border-radius:2px; box-shadow:3px 7px 18px var(--shadow); background:var(--beige); transition:transform .2s}
.cover:hover img{transform:translateY(-5px)}
.cover figcaption{margin-top:9px; font-family:var(--serif); font-weight:600; font-size:.95rem; color:var(--brown); line-height:1.18}
@media(max-width:600px){ .covers{grid-template-columns:repeat(auto-fill,minmax(120px,1fr)); gap:20px 12px} }
.pcols{display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:24px; margin-top:24px}
.pcol h4{font-family:var(--hand); font-size:1.5rem; color:var(--gold); margin-bottom:8px}
.pcol ul{list-style:none; padding:0; margin:0} .pcol li{padding:3px 0; font-size:.96rem; border-bottom:1px dotted var(--line)}

/* why-write icons */
.reasons{display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); gap:22px; margin-top:30px}
.reason{text-align:center; opacity:0; transform:translateY(18px); transition:.6s}
.reason.in{opacity:1; transform:none}
.reason .ic{width:66px; height:66px; margin:0 auto 10px}
.reason h3{font-size:1.4rem} .reason p{font-size:.9rem; color:#4a443c; margin:4px 0 0}

/* FAQ */
.faq{margin-top:24px; max-width:760px}
.qa{border-bottom:1px solid var(--line)}
.qa button{width:100%; text-align:left; background:none; border:none; cursor:pointer; padding:18px 0;
  font-family:var(--serif); font-size:1.3rem; color:var(--ink); display:flex; justify-content:space-between; gap:16px; align-items:center}
.qa button .pm{font-family:var(--hand); color:var(--gold); font-size:1.6rem; flex:none}
.qa .ans{max-height:0; overflow:hidden; transition:max-height .3s ease}
.qa .ans p{padding:0 0 18px; color:#4a443c; margin:0}
.qa.open .ans{max-height:340px}

/* free ebook band */
.freebie{background:linear-gradient(180deg,transparent,rgba(199,166,106,.16)); text-align:center}
.freebie .card{max-width:620px; margin:26px auto 0; text-align:center}

/* contact */
.contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:30px; margin-top:26px}
.contact-grid .row{margin-bottom:14px} .contact-grid .row .l{font-family:var(--hand); font-size:18px; color:var(--gold)}
@media(max-width:760px){ .contact-grid{grid-template-columns:1fr} }

/* closing + footer */
.closing{text-align:center}
.closing h2{font-size:clamp(2rem,5.5vw,3.2rem); max-width:18ch; margin:0 auto}
.closing .hand{font-size:1.6rem; color:var(--brown); display:block; margin-top:8px}
footer{position:relative; z-index:1; text-align:center; padding:42px 0 56px; color:var(--brown); font-size:13px; border-top:1px solid var(--line); margin-top:30px}
footer .sig{font-family:var(--hand); font-size:24px; color:var(--ink)}
footer .credit{display:inline-block; margin-top:10px; font-family:var(--hand); font-size:18px; color:var(--gold);
  text-decoration:none; border:1px dashed var(--line); padding:5px 14px; border-radius:255px 14px 225px 14px/14px 225px 14px 255px; transition:all .18s}
footer .credit:hover{color:var(--ink); border-color:var(--gold); transform:translateY(-2px)}
footer nav{display:flex; flex-wrap:wrap; gap:14px; justify-content:center; margin:12px 0}
footer nav a{color:var(--brown); text-decoration:none} footer nav a:hover{color:var(--ink)}
.social{display:flex; flex-wrap:wrap; gap:12px}
.social a{display:inline-flex; align-items:center; justify-content:center; width:40px; height:40px; border-radius:50%;
  border:1.5px solid var(--line); color:var(--brown); background:var(--paper); text-decoration:none; transition:all .18s}
.social a:hover{background:var(--ink); color:var(--paper); border-color:var(--ink); transform:translateY(-2px)}
.social a svg{display:block}
footer .social{justify-content:center; margin:12px 0 4px}

/* team polaroids (real headshots) */
.team{display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:22px; margin-top:30px}
.member{margin:0; background:var(--paper); padding:10px 10px 14px; border:1px solid var(--line); box-shadow:3px 5px 14px var(--shadow); text-align:center; transition:transform .2s}
.member:nth-child(odd){transform:rotate(-1.2deg)} .member:nth-child(even){transform:rotate(1.2deg)}
.member:hover{transform:translateY(-4px) rotate(0)}
.member .ph{aspect-ratio:1; overflow:hidden; background:var(--beige); border-radius:2px}
.member .ph img{width:100%; height:100%; object-fit:cover}
.member figcaption{margin-top:10px}
.member .nm{display:block; font-family:var(--serif); font-weight:600; font-size:1.12rem; line-height:1.12}
.member .rl{display:block; font-family:var(--hand); font-size:1.02rem; color:var(--gold); margin-top:2px}

/* draw-on primitive */
.draw path,.draw line,.draw circle,.draw rect,.draw polyline{stroke-dasharray:var(--len,1200); stroke-dashoffset:var(--len,1200);
  transition:stroke-dashoffset 1.6s ease}
.draw.in path,.draw.in line,.draw.in circle,.draw.in rect,.draw.in polyline{stroke-dashoffset:0}
.rise{opacity:0; transform:translateY(20px); transition:opacity .7s, transform .7s}
.rise.in{opacity:1; transform:none}

/* ---------- Ask Janine floating panel ---------- */
.ask-fab{position:fixed; right:22px; bottom:22px; z-index:80; background:var(--ink); color:var(--paper);
  border:none; cursor:pointer; padding:14px 20px; border-radius:255px 16px 225px 16px/16px 225px 16px 255px;
  box-shadow:3px 5px 16px var(--shadow); font-family:var(--hand); font-size:21px; display:flex; align-items:center; gap:8px}
.ask-fab:hover{transform:translateY(-2px)}
.ask-panel{position:fixed; right:22px; bottom:22px; z-index:90; width:min(400px,calc(100vw - 28px)); height:min(620px,calc(100vh - 40px));
  background:var(--paper); border:1px solid var(--line); border-radius:10px; box-shadow:8px 14px 40px rgba(46,43,38,.3);
  display:none; flex-direction:column; overflow:hidden}
.ask-panel.open{display:flex}
.ask-panel .top{padding:16px 18px 10px 22px; border-bottom:1px dashed var(--line); position:relative}
.ask-panel .top::before{content:""; position:absolute; left:0; top:0; bottom:0; width:8px; background:rgba(199,107,90,.4)}
.ask-panel .top .h{font-family:var(--hand); font-size:1.9rem; color:var(--ink); line-height:1}
.ask-panel .top .s{font-size:.82rem; color:var(--brown)}
.ask-panel .x{position:absolute; right:12px; top:12px; background:none; border:none; cursor:pointer; font-size:22px; color:var(--brown)}
.prompts{display:flex; flex-wrap:wrap; gap:8px; padding:12px 16px 4px}
.chip{font-size:12.5px; cursor:pointer; background:var(--paper-2); border:1px solid var(--line); color:var(--brown);
  padding:7px 12px; border-radius:255px 14px 225px 14px/14px 225px 14px 255px; transition:.18s}
.chip:hover{background:var(--gold); color:var(--paper); border-color:var(--gold)}
.thread{flex:1; overflow-y:auto; padding:10px 16px}
.msg{margin:14px 0; font-size:.96rem; line-height:1.62}
.msg.you{max-width:88%; margin-left:auto} .msg.you .b{background:var(--ink); color:var(--paper); padding:9px 14px; border-radius:14px 14px 4px 14px; display:inline-block}
.msg.her{max-width:96%}
.msg.her .who{font-family:var(--hand); font-size:16px; color:var(--gold); margin-bottom:2px}
.msg.her .b{background:var(--paper-2); border:1px solid var(--line); padding:12px 16px; border-radius:14px 14px 14px 4px; display:block; color:#3a352e}
.msg.her .b p{margin:0 0 9px} .msg.her .b p:last-child{margin-bottom:0}
.msg.her .b ul{margin:8px 0; padding-left:20px} .msg.her .b li{margin:4px 0; padding-left:2px}
.msg.her .b li::marker{color:var(--gold)}
.msg.her .b strong{font-weight:600; color:var(--ink)}
.msg.her .b em{font-style:italic; color:var(--brown)}
.typing span{display:inline-block; width:6px; height:6px; margin:0 2px; border-radius:50%; background:var(--brown); opacity:.5; animation:blink 1.2s infinite}
.typing span:nth-child(2){animation-delay:.2s} .typing span:nth-child(3){animation-delay:.4s}
@keyframes blink{0%,60%,100%{opacity:.25} 30%{opacity:.9}}
.composer{display:flex; gap:8px; padding:10px 14px 12px; border-top:1px dashed var(--line)}
.composer input{flex:1; font-family:var(--body); font-size:14px; padding:11px 14px; border:1px solid var(--line);
  background:var(--paper); border-radius:2px 12px 4px 12px/12px 4px 12px 4px; color:var(--ink)}
.composer input:focus{outline:none; border-color:var(--gold)}
.composer button{background:var(--ink); color:var(--paper); border:none; cursor:pointer; padding:0 18px; font-size:17px; border-radius:2px 12px 4px 12px/12px 4px 12px 4px}
.disclaim{font-size:11px; color:var(--brown); opacity:.85; padding:0 16px 10px; font-style:italic; text-align:center}

/* ---------- reviews wall (real screenshots, kept as shared) ---------- */
.wall{columns:3 250px; column-gap:20px; margin-top:28px}
.shot{break-inside:avoid; margin:0 0 20px; background:var(--paper); padding:9px; border:1px solid var(--line); box-shadow:3px 5px 14px var(--shadow)}
.shot::before{content:""; display:block; position:absolute; width:70px; height:22px; background:rgba(199,166,106,.34); margin:-20px 0 0 30%; transform:rotate(-4deg)}
.shot{position:relative}
.shot:nth-child(odd){transform:rotate(-1deg)} .shot:nth-child(even){transform:rotate(1deg)}
.shot img{width:100%; border-radius:2px; display:block}

/* ---------- mobile polish (flawless down to 360px) ---------- */
@media(max-width:600px){
  body{font-size:16px}
  .wrap{padding:0 18px}
  section{padding:40px 0}
  .page-head{padding:46px 0 10px}
  .hero{padding:54px 0 38px}
  .hero h1{font-size:clamp(2.4rem,11vw,3.4rem)}
  .hero .lede,.lede{font-size:1.08rem}
  .sec-title{font-size:clamp(1.6rem,7vw,2.1rem)}
  .cta-row{gap:12px}
  .btn-primary{padding:13px 22px}
  .stat b{font-size:2.1rem}
  .note{width:100%; max-width:340px; font-size:1.45rem; min-height:120px}
  .wall{columns:1}
  .shot{transform:none!important; max-width:460px; margin-left:auto; margin-right:auto}
  .reel .cap,.tcard .body .hd{font-size:17px}
  .ask-fab{right:14px; bottom:14px; padding:12px 16px; font-size:19px}
  .ask-panel{right:0; bottom:0; width:100vw; height:100dvh; border-radius:0}
  footer nav{gap:10px 14px}
}
@media(max-width:380px){
  .hero h1{font-size:2.15rem}
  .brand{font-size:18px}
}

@media(prefers-reduced-motion:reduce){
  *{animation:none!important} html{scroll-behavior:auto}
  .sig-script .ink{clip-path:none!important; opacity:1!important} .sig-sub{opacity:1!important} .sig-script .nib{display:none}
  .tl,.reason,.rise{opacity:1!important; transform:none!important; transition:none}
  .draw path,.draw line,.draw circle,.draw rect,.draw polyline{stroke-dashoffset:0!important; transition:none}
}
