@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:400 600;font-display:swap;src:url("fonts/ibm-plex-sans.woff2") format("woff2")}
@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:400 700;font-display:swap;src:url("fonts/source-serif-4.woff2") format("woff2")}
@font-face{font-family:"Source Serif 4";font-style:italic;font-weight:400;font-display:swap;src:url("fonts/source-serif-4-italic.woff2") format("woff2")}
:root{--paper:#f3efe4;--paper-2:#eae4d4;--raised:#faf7ef;--ink:#1b1914;--ink-2:#2e2a22;--muted:#6a6458;--hair:#cfc6b0;--bronze:#8a6734;--bronze-soft:#b08950;--forest:#24352c;--risk:#7a2e24;--serif:"Source Serif 4","Iowan Old Style",Palatino,"Times New Roman",serif;--sans:"IBM Plex Sans","Segoe UI","Helvetica Neue",Arial,sans-serif}


*{box-sizing:border-box}
html{font-size:17px}
html,body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);line-height:1.55}
body{min-height:100vh}
a{color:var(--bronze);text-underline-offset:3px}
a:hover{color:var(--ink)}
h1,h2,h3,.serif{font-family:var(--serif);font-weight:600;letter-spacing:-0.015em;line-height:1.2}
.eyebrow{font-size:0.72rem;letter-spacing:0.16em;text-transform:uppercase;color:var(--bronze);font-weight:500}
.wrap{width:min(1080px,calc(100% - 48px));margin:0 auto}
.site-head{border-bottom:1px solid var(--hair);background:var(--raised);position:sticky;top:0;z-index:20}
.site-head .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 0}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:inherit}
.mark{width:36px;height:36px;background:var(--forest);color:var(--paper);display:grid;place-items:center;font-family:var(--serif);font-weight:700;font-size:0.95rem}
.brand-name{font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;font-weight:600}
.brand-sub{display:block;font-size:0.68rem;letter-spacing:0.08em;text-transform:uppercase;color:var(--muted);font-weight:400}
.head-meta{font-size:0.78rem;color:var(--muted);text-align:right}


.cover{padding:56px 0 40px;display:grid;grid-template-columns:1.15fr 0.85fr;gap:56px;align-items:start}
.cover h1{font-size:clamp(2.1rem,4.2vw,3.15rem);margin:12px 0 16px}
.lede{font-size:1.15rem;color:var(--ink-2);max-width:38em}
.is-isnot{margin:22px 0 0;padding:14px 16px;border-left:3px solid var(--bronze);background:var(--paper-2);font-size:0.95rem}
.meta-row{display:flex;flex-wrap:wrap;gap:10px 18px;margin:22px 0 0;padding:0;list-style:none;font-size:0.88rem;color:var(--muted)}
.btn{appearance:none;border:1px solid var(--ink);background:var(--ink);color:var(--paper);font:inherit;font-size:0.92rem;padding:11px 18px;cursor:pointer;letter-spacing:0.02em}
.btn:hover{background:var(--forest)}
.btn-ghost{background:transparent;color:var(--ink)}
.btn-ghost:hover{background:var(--paper-2)}
.btn-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}
.contents{border:1px solid var(--hair);background:var(--raised);padding:22px 24px}
.contents h2{font-size:1.15rem;margin:0 0 6px}
.contents ol{margin:14px 0 0;padding-left:1.15em}
.contents li{margin:0 0 10px}
.contents li strong{display:block;font-family:var(--serif)}
.contents li span{display:block;color:var(--muted);font-size:0.88rem}


.instrument{padding:28px 0 64px}
.inst-grid{display:grid;grid-template-columns:220px 1fr;gap:36px;align-items:start}
.rail{position:sticky;top:78px}
.rail ol{list-style:none;margin:0;padding:0}
.rail li{border-left:2px solid var(--hair);padding:8px 0 8px 12px;font-size:0.82rem;color:var(--muted)}
.rail li.is-on{border-color:var(--bronze);color:var(--ink);font-weight:500}
.rail li.is-done{border-color:var(--forest);color:var(--forest)}
.rail button{all:unset;cursor:pointer;display:block;width:100%}
.panel{background:var(--raised);border:1px solid var(--hair);padding:28px 32px 32px}
.panel h2{margin:6px 0 8px;font-size:1.65rem}
.panel p.dim-lead{color:var(--ink-2);margin:0 0 22px}
.q{margin:0 0 22px;padding:0 0 18px;border-bottom:1px solid var(--hair)}
.q:last-of-type{border-bottom:0;margin-bottom:8px}
.q-num{font-family:var(--serif);color:var(--bronze);font-size:0.95rem}
.q h3{font-size:1.05rem;font-family:var(--sans);font-weight:500;letter-spacing:0;line-height:1.4;margin:4px 0 6px}
.help{font-size:0.86rem;color:var(--muted);margin:0 0 12px}
.likert{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.likert label{border:1px solid var(--hair);padding:10px 8px;text-align:center;font-size:0.78rem;line-height:1.25;cursor:pointer;background:var(--paper);min-height:58px;display:flex;flex-direction:column;justify-content:center;gap:2px}
.likert label strong{font-size:0.72rem;letter-spacing:0.08em;text-transform:uppercase;color:var(--muted);font-weight:500}
.likert input{position:absolute;opacity:0;pointer-events:none}
.likert label:has(input:checked){border-color:var(--bronze);background:#f3ead6;box-shadow:inset 0 -2px 0 var(--bronze)}
.likert label:hover{border-color:var(--bronze-soft)}


.fields{display:grid;grid-template-columns:1fr 1fr;gap:14px 16px;margin:18px 0 8px}
.field{display:flex;flex-direction:column;gap:6px}
.field.span2{grid-column:1/-1}
.field label,.field .lbl{font-size:0.78rem;letter-spacing:0.06em;text-transform:uppercase;color:var(--muted)}
select,input[type=text]{font:inherit;padding:9px 10px;border:1px solid var(--hair);background:var(--paper);color:var(--ink);width:100%}
select:focus,input:focus,.btn:focus-visible,.likert label:focus-within{outline:2px solid var(--bronze);outline-offset:2px}
.progress{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px;font-size:0.82rem;color:var(--muted)}
.bar{flex:1;height:3px;background:var(--paper-2);position:relative}
.bar>i{display:block;height:100%;background:var(--bronze);width:0}
.nav-row{display:flex;justify-content:space-between;gap:10px;margin-top:18px}
.err{color:var(--risk);font-size:0.88rem;margin:8px 0 0}
.hidden{display:none !important}
.site-foot{border-top:1px solid var(--hair);padding:22px 0 36px;color:var(--muted);font-size:0.82rem}
.site-foot .wrap{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}


.results{padding:36px 0 72px}
.memo{background:var(--raised);border:1px solid var(--hair);padding:36px 40px 40px;box-shadow:0 1px 0 rgba(27,25,20,.04)}
.memo-top{display:flex;justify-content:space-between;gap:16px;border-bottom:1px solid var(--ink);padding-bottom:14px;margin-bottom:22px}
.memo-kicker{font-size:0.72rem;letter-spacing:0.14em;text-transform:uppercase;color:var(--muted)}
.classif{font-size:0.72rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--bronze);text-align:right}
.score-row{display:grid;grid-template-columns:160px 1fr;gap:28px;align-items:center;margin:8px 0 28px}
.score-num{font-family:var(--serif);font-size:5.2rem;line-height:0.85;letter-spacing:-0.04em}
.band{font-size:0.78rem;letter-spacing:0.14em;text-transform:uppercase;margin-top:8px}
.band.risk{color:var(--risk)} .band.mixed{color:var(--bronze)} .band.ready{color:var(--forest)}
.dims{display:flex;flex-direction:column;gap:10px}
.dim{display:grid;grid-template-columns:1fr 42px;gap:10px;align-items:center;font-size:0.88rem}
.meter{height:6px;background:var(--paper-2);margin-top:4px}
.meter>i{display:block;height:100%;background:var(--forest)}
.dim.is-weak .meter>i{background:var(--bronze)}
.gap h3{font-size:1.25rem;margin:28px 0 8px}
.gap p,.gap li{font-size:0.98rem}
.mods{margin:12px 0 0;padding:0;list-style:none}
.mods li{border-top:1px solid var(--hair);padding:10px 0}
.mods strong{font-family:var(--serif)}
.cta-box{margin-top:28px;padding-top:18px;border-top:1px solid var(--ink);display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.fine{font-size:0.8rem;color:var(--muted);margin-top:18px}


@media(max-width:860px){.cover,.inst-grid,.score-row,.fields{grid-template-columns:1fr}.rail{position:static}.likert{grid-template-columns:1fr 1fr}.wrap{width:min(1080px,calc(100% - 28px))}.panel,.memo{padding:20px}.score-num{font-size:4rem}.site-head .head-meta{display:none}}
@media print{body{background:#fff;color:#111;font-size:11.5pt}.site-head,.site-foot,.btn-row,.nav-row,.rail,.no-print,#view-cover,#view-instrument{display:none !important}#view-results{display:block !important}.results{padding:0}.memo{border:0;box-shadow:none;padding:0}.score-num{font-size:42pt}a{color:inherit;text-decoration:none}@page{margin:16mm;size:A4}}


body{border-top:4px solid var(--bronze)}
.cta-box{margin-top:22px;padding-top:16px;display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.contents ol{color:var(--ink-2)}
.method{margin-top:20px;font-size:0.82rem;color:var(--muted)}
.method summary{cursor:pointer;color:var(--bronze)}

a.btn{text-decoration:none;display:inline-block}
.contents details.method{margin-top:16px}


/* Sampling-Size Calculator — extra layout on merl-diagnostic tokens */
input[type=number],input[type=text],textarea{font:inherit;padding:9px 10px;border:1px solid var(--hair);background:var(--paper);color:var(--ink);width:100%}
textarea{min-height:4.5em;resize:vertical}
.field label,.field .lbl{font-size:0.78rem;letter-spacing:0.06em;text-transform:uppercase;color:var(--muted)}
.hint{display:block;font-size:0.8rem;color:var(--muted);font-weight:400;letter-spacing:0;text-transform:none;margin:0 0 4px}
.lead-in{color:var(--ink-2);margin:0 0 18px}
.out{margin:16px 0 0;font-size:0.86rem;color:var(--muted)}
.instrument{padding:8px 0 8px}
.instrument .panel{margin-bottom:22px}
.panel h2{margin:6px 0 8px;font-size:1.65rem}
.choices{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:8px 0 18px}
.choice{border:1px solid var(--hair);background:var(--paper);padding:12px 14px;cursor:pointer;display:block}
.choice strong{display:block;font-family:var(--serif);font-weight:600;margin:2px 0 4px}
.choice span{display:block;font-size:0.84rem;color:var(--muted)}
.choice:has(input:checked){border-color:var(--bronze);background:#f3ead6;box-shadow:inset 0 -2px 0 var(--bronze)}
.choice input{margin-right:6px}
.seg{display:flex;flex-wrap:wrap;gap:6px}
.seg label{border:1px solid var(--hair);background:var(--paper);padding:8px 12px;cursor:pointer;font-size:0.88rem}
.seg label:has(input:checked){border-color:var(--bronze);background:#f3ead6;box-shadow:inset 0 -2px 0 var(--bronze)}
.seg input{margin-right:4px}
.mode-block{margin-top:18px;padding-top:16px;border-top:1px solid var(--hair)}
.weights{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;margin-top:8px}
.formula{font-size:0.9rem;color:var(--ink-2);line-height:1.55}
.formula p{margin:0 0 8px}
.formula code,.formula .eq{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:0.86rem}
.accept-box{margin-top:22px;padding:16px 18px;border:1px solid var(--ink);background:var(--raised)}
.accept-box label{display:flex;gap:10px;align-items:flex-start;font-size:0.95rem}
.accept-box input{margin-top:4px}
.accept-why{color:var(--risk);font-size:0.88rem;margin:10px 0 0}
.btn:disabled{opacity:0.42;cursor:not-allowed;background:var(--paper-2);color:var(--muted);border-color:var(--hair)}
.btn.btn-ghost:disabled:hover{background:var(--paper-2)}
.btn:disabled:hover{background:var(--paper-2)}
.memo-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px 28px;margin:8px 0 22px}
.kv{border-top:1px solid var(--hair);padding-top:8px}
.kv .lbl{font-size:0.72rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--muted)}
.kv .val{font-family:var(--serif);font-size:1.35rem;margin-top:2px}
.kv .val.big{font-size:2.4rem;letter-spacing:-0.03em}
.sites{width:100%;border-collapse:collapse;margin:12px 0 8px;font-size:0.92rem}
.sites th,.sites td{border-bottom:1px solid var(--hair);text-align:left;padding:7px 8px}
.sites th{font-size:0.72rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--muted);font-weight:500}
.sites td.num,.sites th.num{text-align:right}
.flag{color:var(--risk);font-size:0.88rem}
.memo .gap h3{font-size:1.15rem;margin:22px 0 8px}
.memo p{margin:0 0 10px}
@media(max-width:860px){.choices{grid-template-columns:1fr}.memo-grid{grid-template-columns:1fr}}
@media print{
  .site-head,.site-foot,.instrument,.no-print,#view-cover{display:none !important}
  .results{padding:0}
  .memo{border:0;box-shadow:none;padding:0}
}

.field label.inline-check{display:flex;align-items:flex-start;gap:8px;font-size:0.9rem;letter-spacing:0;text-transform:none;color:var(--ink);font-weight:400}
.field label.inline-check input{margin-top:4px}

.price{margin:8px 0 14px;display:flex;align-items:baseline;gap:12px}
.price-num{font-family:var(--serif);font-size:2.1rem;letter-spacing:-0.03em}
.price-sub{font-size:0.92rem;color:var(--muted);letter-spacing:0.08em;text-transform:uppercase}
.product-shot{margin:0;border:1px solid var(--hair);background:var(--raised);padding:10px}
.product-shot img{display:block;width:100%;height:auto}
.product-shot figcaption{font-size:0.78rem;color:var(--muted);margin:8px 4px 2px}
.deep{padding:0 0 48px}
.deep h2{font-size:1.25rem;margin:28px 0 8px}
.deep p{max-width:42em;color:var(--ink-2)}
.cover{align-items:start}
@media(max-width:860px){.cover{grid-template-columns:1fr}}

.price{margin:8px 0 14px;display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.price-num{font-family:var(--serif);font-size:2.1rem;letter-spacing:-0.03em}
.price-sub{font-size:0.92rem;color:var(--muted);letter-spacing:0.08em;text-transform:uppercase}
.product-shot{margin:0;border:1px solid var(--hair);background:var(--raised);padding:10px}
.product-shot img{display:block;width:100%;height:auto}
.product-shot figcaption{font-size:0.78rem;color:var(--muted);margin:8px 4px 2px}
.deep{padding:0 0 36px}
.deep h2{font-size:1.25rem;margin:28px 0 8px}
.deep p,.deep li{max-width:42em;color:var(--ink-2)}
.intake{padding:12px 0 48px}
.preview-window{position:relative;border:1px solid var(--ink);background:var(--raised);padding:28px 32px;min-height:320px}
.preview-window.is-locked{user-select:none}
.watermark{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none;font-family:var(--serif);font-size:3.2rem;letter-spacing:0.12em;text-transform:uppercase;color:rgba(138,103,52,0.18);transform:rotate(-18deg)}
.story{border-top:1px solid var(--hair);padding:14px 0;margin-top:10px}
.story h3{margin:0 0 6px;font-size:1.1rem}
.pay-box{margin-top:22px;padding:16px 18px;border:1px solid var(--ink);background:var(--raised)}
.pay-box .amt{font-family:var(--serif);font-size:1.8rem}
@media print{body:not(.is-paid) .preview-window,body:not(.is-paid) .pack{display:none !important}
body:not(.is-paid)::after{content:"Preview only. Pay before the file ships.";font-family:var(--sans);color:#7a2e24}}
