:root{
  --bg:#f3f2ee;--paper:#fbfbf9;--ink:#1c1c1e;--ink2:#46464b;--muted:#8b8a86;--line:#e2e0da;--line2:#d3d0c8;
  --green:#1c1c1e;--green2:#000;--coral:#ff5f00;--coral-soft:#fff0e6;--good:#2e7d4f;--warn:#c98a12;--bad:#d64541;
  --hl:#ffe3c7;--radius:18px;--hover:rgba(28,28,30,.05);
  --shadow:0 1px 0 rgba(255,255,255,.9) inset,0 1px 2px rgba(28,28,30,.05),0 10px 30px -18px rgba(28,28,30,.25);
  --shadow-lg:0 1px 0 rgba(255,255,255,.9) inset,0 2px 6px rgba(28,28,30,.05),0 40px 80px -40px rgba(28,28,30,.35);
  --sans:"Inter",-apple-system,BlinkMacSystemFont,"SF Pro Text","Helvetica Neue",sans-serif;
  --serif:var(--sans);--mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  --ease:cubic-bezier(.2,.8,.2,1);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.55 var(--sans);-webkit-font-smoothing:antialiased;font-feature-settings:"cv11","ss01","tnum"}
a{color:var(--ink);text-underline-offset:3px;text-decoration-color:var(--line2)}
a:hover{text-decoration-color:var(--ink)}
::selection{background:var(--coral);color:#fff}
:focus-visible{outline:2px solid var(--coral);outline-offset:2px;border-radius:8px}
.wrap{max-width:880px;margin:0 auto;padding:0 24px}
.liquid{display:none}

/* nav: three things, nothing else */
nav.bar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;height:60px;margin:0 -24px;padding:0 24px;background:rgba(243,242,238,.86);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid transparent;transition:border-color .2s}
nav.bar.scrolled{border-bottom-color:var(--line)}
.brand{display:flex;align-items:center;gap:10px;font-weight:600;font-size:16px;letter-spacing:-.2px;color:var(--ink);text-decoration:none}
.brand::before{content:"";width:12px;height:12px;border-radius:50%;background:var(--coral);box-shadow:0 0 0 4px var(--coral-soft)}
nav .links{display:flex;gap:2px;align-items:center}
nav .links a{color:var(--ink2);text-decoration:none;font-size:14px;padding:7px 12px;border-radius:999px;transition:background .15s,color .15s}
nav .links a:hover{background:var(--hover);color:var(--ink)}
nav .links a.cta{background:var(--ink);color:#fff;margin-left:6px}
.pill{font:500 11px var(--sans);letter-spacing:.06em;text-transform:uppercase;padding:4px 9px;border-radius:999px;background:var(--ink);color:#fff;margin-left:6px}

/* type */
h1{font-size:clamp(38px,6.2vw,64px);line-height:1.02;letter-spacing:-.035em;font-weight:600;margin:0 0 16px}
h1 em,h2 em{font-style:normal;color:var(--muted)}
h2{font-size:clamp(26px,3.4vw,34px);letter-spacing:-.025em;line-height:1.1;font-weight:600;margin:120px 0 14px}
h3{font-size:13px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:28px 0 12px}
h3 .small{text-transform:none;letter-spacing:0;font-weight:400}
.lede{font-size:18px;color:var(--ink2);max-width:560px;margin:0 auto}
.small{font-size:13.5px;color:var(--muted)}
.center{text-align:center}
.label{display:block;font:600 11px var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:10px}
.eyebrow{display:inline-flex;gap:8px;align-items:center;font-size:13px;color:var(--ink2);padding:5px 12px 5px 6px;border-radius:999px;background:var(--paper);border:1px solid var(--line);margin-bottom:22px}
.eyebrow b{font-weight:600;font-size:11px;letter-spacing:.06em;text-transform:uppercase;background:var(--coral);color:#fff;padding:2px 8px;border-radius:999px}
kbd{font:500 11px var(--sans);opacity:.6;margin-left:8px;border:1px solid currentColor;border-radius:5px;padding:1px 5px}

/* hero */
.hero{text-align:center;padding:88px 0 36px}
.hero.left{text-align:left}.hero.left .lede{margin-left:0}

/* surfaces: one material, matte, like a device housing */
.glass,.panel{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.panel{padding:28px}

/* the instrument */
.device{padding:10px;border-radius:26px;background:linear-gradient(#ecebe6,#e4e2dc);box-shadow:0 1px 0 #fff inset,0 30px 60px -36px rgba(28,28,30,.45);border:1px solid #dcdad3}
.device > .face{background:var(--paper);border-radius:18px;border:1px solid var(--line);overflow:hidden}
.window-bar,.window-body > .row .small{display:none}
.tabs{display:flex;gap:2px;padding:4px;margin:14px 14px 0;background:#efeee9;border-radius:999px;width:max-content;max-width:calc(100% - 28px);overflow-x:auto;scrollbar-width:none}
.tabs::-webkit-scrollbar{display:none}
.tabs button{border:0;background:transparent;font:500 13.5px var(--sans);color:var(--ink2);padding:7px 14px;border-radius:999px;cursor:pointer;white-space:nowrap;transition:background .2s var(--ease),color .2s,box-shadow .2s}
.tabs button:hover{color:var(--ink)}
.tabs button.on{background:var(--paper);color:var(--ink);box-shadow:0 1px 3px rgba(28,28,30,.12)}
.dropzone{position:relative}
#input{display:block;width:100%;min-height:260px;border:0;outline:0;resize:vertical;background:transparent;padding:22px 24px;font:17px/1.6 var(--sans);color:var(--ink)}
#input::placeholder{color:#b3b1ab}
.dropmsg{display:none;position:absolute;inset:8px;border:2px dashed var(--coral);border-radius:14px;background:rgba(255,95,0,.04);align-items:center;justify-content:center;flex-direction:column;font-weight:600;color:var(--coral)}
.dropmsg span{font-weight:400;font-size:12.5px;color:var(--muted);margin-top:4px}
.dropzone.drag .dropmsg{display:flex}
.controls{display:flex;align-items:center;gap:10px;padding:12px 14px;border-top:1px solid var(--line)}
.controls .grow{flex:1}
#fileStatus{padding:0 24px}
#fileStatus:empty{display:none}
.iconbtn{width:40px;height:40px;border-radius:50%;border:1px solid var(--line);background:var(--paper);display:inline-grid;place-items:center;cursor:pointer;color:var(--ink2);transition:background .15s,transform .1s}
.iconbtn:hover{background:#f2f1ec}.iconbtn:active{transform:scale(.95)}
#wordcount{font-size:12.5px;color:var(--muted);font-variant-numeric:tabular-nums}

/* buttons: round, tactile, one accent */
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:16px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:44px;padding:0 20px;border-radius:999px;border:0;background:var(--ink);color:#fff;font:500 15px var(--sans);text-decoration:none;cursor:pointer;transition:transform .1s var(--ease),background .15s,box-shadow .15s;box-shadow:0 1px 0 rgba(255,255,255,.15) inset,0 2px 6px -2px rgba(0,0,0,.35)}
.btn:hover{background:#000}
.btn:active{transform:translateY(1px) scale(.99)}
.btn[disabled]{opacity:.45;cursor:default}
.btn.coral{background:var(--coral);box-shadow:0 1px 0 rgba(255,255,255,.25) inset,0 4px 14px -6px rgba(255,95,0,.7)}
.btn.coral:hover{background:#f05500}
.btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--line2);box-shadow:none}
.btn.ghost:hover{background:var(--hover)}
.btn.wide{width:100%}
.btn.sm{height:36px;padding:0 14px;font-size:14px}

/* result */
.result{display:none;margin-top:18px;padding:32px;animation:rise .35s var(--ease)}
@keyframes rise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.score{display:flex;align-items:center;gap:22px}
.dial{--v:0;position:relative;width:104px;height:104px;border-radius:50%;flex:none;background:conic-gradient(var(--dial,var(--coral)) calc(var(--v)*1%),#ecebe6 0);transition:--v .6s}
.dial::before{content:"";position:absolute;inset:9px;border-radius:50%;background:var(--paper);box-shadow:0 1px 3px rgba(28,28,30,.1) inset}
.dial b,.score > b{position:relative;display:grid;place-items:center;height:100%;font-size:34px;font-weight:600;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.score > b{height:auto}
#verdict{font-size:17px;color:var(--ink2);max-width:460px}
.preview{white-space:pre-wrap;padding:20px 22px;margin:24px 0 0;border-radius:14px;background:var(--bg);font-size:16px;line-height:1.65;max-height:340px;overflow:auto}
mark{background:var(--hl);color:inherit;border-radius:3px;padding:0 2px;box-shadow:0 -2px 0 var(--coral) inset}
details.fold{border-top:1px solid var(--line);margin-top:24px}
details.fold > summary{list-style:none;cursor:pointer;padding:16px 0 4px;display:flex;justify-content:space-between;align-items:center;font-weight:500}
details.fold > summary::-webkit-details-marker{display:none}
details.fold > summary::after{content:"";width:8px;height:8px;border-right:1.5px solid var(--muted);border-bottom:1.5px solid var(--muted);transform:rotate(45deg);transition:transform .2s}
details.fold[open] > summary::after{transform:rotate(-135deg)}
details.fold > summary .small{margin-left:auto;margin-right:14px}
.findings,.fit{list-style:none;padding:0;margin:8px 0 0}
.findings li,.fit li{padding:12px 0;border-bottom:1px solid var(--line);font-size:15px}
.findings li:last-child,.fit li:last-child{border-bottom:0}
.findings small,.fit small{display:block;color:var(--muted);font-size:13.5px;margin-top:2px}
.fit li{display:grid;grid-template-columns:16px 1fr;column-gap:8px}
.fit li small{grid-column:2}
.fit .dot{width:8px;height:8px;border-radius:50%;margin-top:8px;background:var(--line2)}
.fit li.ok .dot,.fit li.pass .dot,.fit li.good .dot{background:var(--good)}
.fit li.warn .dot{background:var(--warn)}
.fit li.bad .dot,.fit li.fail .dot{background:var(--bad)}
.action{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:26px;padding-top:22px;border-top:1px solid var(--line)}
.action .grow{flex:1}
select,input[type=text],input[type=email],input[type=url],input[type=number],textarea{font:15px var(--sans);color:var(--ink);background:var(--paper);border:1px solid var(--line2);border-radius:12px;padding:9px 12px;outline:0;transition:border-color .15s,box-shadow .15s}
select{height:44px;border-radius:999px;padding:0 34px 0 16px;appearance:none;background:var(--paper) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%238b8a86' fill='none' stroke-width='1.5'/%3E%3C/svg%3E") no-repeat right 14px center}
select:focus,input:focus,textarea:focus{border-color:var(--ink);box-shadow:0 0 0 3px rgba(28,28,30,.08)}
details.voice{margin-top:14px}
details.voice summary{cursor:pointer;font-size:14px;color:var(--ink2);list-style:none}
details.voice summary::-webkit-details-marker{display:none}
details.voice textarea{width:100%;min-height:110px;margin-top:10px}
.tag{font-size:10.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;padding:2px 7px;border-radius:999px;background:var(--ink);color:#fff;margin-left:6px}
.rewrite{display:none;margin-top:28px;padding-top:28px;border-top:1px solid var(--line)}
.scores{display:flex;gap:28px;align-items:baseline;font-size:14px;color:var(--muted)}
.scores b{font-size:30px;color:var(--ink);font-weight:600;letter-spacing:-.02em;margin-left:6px;font-variant-numeric:tabular-nums}
.scores b.good{color:var(--good)}
.rewrite .out{white-space:pre-wrap;padding:22px 24px;margin:16px 0;border-radius:14px;background:var(--bg);font-size:16.5px;line-height:1.7}
.rewrite .out.code{font:13px/1.55 var(--mono);max-height:480px;overflow:auto;background:#1c1c1e;color:#e9e8e3}
ins{text-decoration:none;background:#dff0e5;border-radius:3px}
del{color:var(--muted)}
.err{color:var(--bad);font-size:14px}.err:empty{display:none}
.note{margin-top:16px;padding:14px 18px;border-radius:14px;background:var(--coral-soft);font-size:14.5px}

/* steps */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:28px;border-top:1px solid var(--line)}
.steps div{padding:22px 22px 0 0}
.steps b{display:block;font-size:13px;color:var(--coral);font-weight:600;margin-bottom:8px;font-variant-numeric:tabular-nums}
.steps p{margin:0;color:var(--ink2);font-size:15px}
.steps strong{display:block;color:var(--ink);font-size:17px;font-weight:600;margin-bottom:4px}

/* before / after */
.ba{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:24px}
.ba > div{padding:26px;font-size:16.5px;line-height:1.6}
.ba > div:first-child{color:var(--muted)}
.ba > div:first-child em{background:var(--hl);font-style:normal;color:var(--ink2);border-radius:3px;padding:0 2px}
.ba > div:last-child{background:var(--ink);color:#f3f2ee;border-color:var(--ink)}
.ba > div:last-child .label{color:#8b8a86}

/* plans */
.plans{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:28px}
.plan{padding:28px;display:flex;flex-direction:column;gap:6px;position:relative}
.plan.best{border-color:var(--ink);box-shadow:0 0 0 1px var(--ink),var(--shadow)}
.badge{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.plan.best .badge{color:var(--coral)}
.price{font-size:44px;font-weight:600;letter-spacing:-.03em;line-height:1.1}
.price small{font-size:15px;color:var(--muted);font-weight:400;letter-spacing:0}
.plan ul{list-style:none;padding:0;margin:12px 0 20px;flex:1}
.plan li{padding:7px 0;font-size:14.5px;color:var(--ink2);display:flex;gap:10px}
.plan li::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--ink);margin-top:9px;flex:none}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin-top:24px}
.cards > div{padding:24px;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius)}
.num{font-size:12px;color:var(--coral);font-weight:600}

/* sheets */
.sheet-backdrop{position:fixed;inset:0;z-index:50;display:none;align-items:flex-end;justify-content:center;background:rgba(28,28,30,.32);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);padding:20px}
.sheet-backdrop.open{display:flex;animation:fade .2s}
@keyframes fade{from{opacity:0}}
@media (min-width:721px){.sheet-backdrop{align-items:center}}
.sheet{position:relative;width:100%;max-width:640px;max-height:90vh;overflow:auto;padding:32px;border-radius:24px;animation:rise .3s var(--ease)}
.sheet h2{margin:0 0 6px}
.close{position:absolute;top:16px;right:16px;width:34px;height:34px;border-radius:50%;border:0;background:#efeee9;font-size:20px;line-height:1;cursor:pointer;color:var(--ink2)}
.close:hover{background:#e6e4de}

/* forms (services, intake) */
.form label{display:block;font-size:13.5px;font-weight:500;color:var(--ink2);margin:14px 0 0}
.form label input,.form label select,.form label textarea{margin-top:6px;width:100%;min-height:0}
.form label.check{display:flex;gap:10px;align-items:center;font-weight:400}
.form label.check input{width:auto;margin:0}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}

/* faq, legal */
.faq{max-width:720px;margin:0 auto}
.faq details{padding:18px 0;border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer;font-weight:500;list-style:none;display:flex;justify-content:space-between}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:var(--muted);font-size:20px;line-height:1}
.faq details[open] summary::after{content:"\2212"}
.faq p{margin:10px 0 0;color:var(--ink2)}
.legal{padding:36px 40px;margin-top:8px;max-width:760px}.legal h3:first-child{margin-top:0}.legal p{color:var(--ink2)}

/* legacy sections kept quiet */
.dark{margin-top:120px;padding:56px;border-radius:24px;background:var(--ink);color:#f3f2ee}
.dark h2{margin-top:0}.dark .lede{color:#b9b8b3;margin:0}
.term{margin-top:24px;font:13.5px/1.8 var(--mono);color:#cfcdc7}
.term .c{color:#8b8a86}.term .r{color:var(--coral)}.term .g{color:#7fc79a}

/* toast */
.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,20px);opacity:0;pointer-events:none;z-index:60;padding:12px 18px;border-radius:999px;background:var(--ink);color:#fff;font-size:14px;border:0;transition:opacity .2s,transform .3s var(--ease)}
.toast.show{opacity:1;transform:translate(-50%,0)}

/* footer */
footer{margin:140px 0 0;padding:32px 0 48px;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:6px 22px;font-size:13.5px}
footer a{color:var(--muted);text-decoration:none}footer a:hover{color:var(--ink)}
footer p{flex-basis:100%;color:var(--muted);margin:10px 0 0}

/* reveal: gentle, once */
.reveal{opacity:0;transform:translateY(10px);transition:opacity .6s var(--ease),transform .6s var(--ease)}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}

@media (max-width:720px){
  .hero{padding:56px 0 24px}
  nav .links a.hide-sm{display:none}
  .ba,.plans,.steps,.grid2{grid-template-columns:1fr}
  .steps div{padding:18px 0 0}
  h2{margin-top:88px}
  .result{padding:22px}
  .score{gap:16px}.dial{width:84px;height:84px}.dial b{font-size:28px}
  #input{min-height:220px;font-size:16px;padding:18px}
  .action .grow{display:none}
  .legal{padding:24px}.dark{padding:32px 22px}
}

.examples{display:flex;gap:8px;justify-content:center;align-items:center;flex-wrap:wrap;margin-top:16px}
.examples button{border:1px solid var(--line2);background:var(--paper);border-radius:999px;padding:7px 14px;font:500 13.5px var(--sans);color:var(--ink);cursor:pointer;transition:background .15s,transform .1s}
.examples button:hover{background:#fff;border-color:var(--ink)}.examples button:active{transform:scale(.97)}
#rewriteStatus{display:flex;align-items:center;gap:10px;font-size:15px;color:var(--ink2)}
#rewriteStatus:empty{display:none}
.spin{width:14px;height:14px;border-radius:50%;border:2px solid var(--line2);border-top-color:var(--coral);animation:sp .8s linear infinite;flex:none}
@keyframes sp{to{transform:rotate(360deg)}}
.elapsed{margin-left:auto;color:var(--muted);font-variant-numeric:tabular-nums;font-size:13px}
