:root{
--ink:#1b1464;--ink2:#2a2185;--text:#1f1a4d;--muted:#4c4778;--line:#dcd9f0;--paper:#ffffff;--wash:#f4f3fb;
--teal:#33d1bf;--teal-soft:#d9f6f2;--sun:#ffd43b;--sun-soft:#fff4c7;--lilac:#e7b8f5;--lilac-soft:#f6e6fb;--peri:#5c6cf2;--peri-soft:#e3e6fd;
--ok:#0f6a43;--okbg:#dcf5e8;--warn:#7a4300;--warnbg:#fff1d6;--bad:#9b1c1c;--badbg:#fde5e5;--focus:#ff8a00;
--display:"Fredoka","Trebuchet MS",system-ui,sans-serif;--sans:"Atkinson Hyperlegible",Verdana,system-ui,sans-serif;
--r:28px;--r-lg:44px;--shadow:0 10px 30px -18px rgba(27,20,100,.35)}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;font:19px/1.65 var(--sans);color:var(--text);background:var(--paper)}
a{color:var(--ink2);font-weight:700;text-decoration-thickness:2px;text-underline-offset:4px;text-decoration-color:rgba(92,108,242,.45)}
a:hover{color:var(--peri);text-decoration-color:currentColor}
:focus-visible{outline:4px solid var(--focus);outline-offset:3px;border-radius:10px}
.skip{position:absolute;left:-999px}.skip:focus{left:16px;top:10px;background:#fff;padding:8px 14px;z-index:9;border-radius:999px}
.wrap{max-width:1180px;margin:0 auto;padding:0 24px}
@media(max-width:600px){.wrap{padding:0 16px}body{font-size:18px}}
/* header */
header.site{background:#fff;position:relative;z-index:3}
header.site .wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 24px;padding-top:18px;padding-bottom:18px}
.logo{display:inline-flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink)}
.logo b{font:600 1.55rem/1 var(--display);letter-spacing:-.01em}.logo i{font-style:normal;color:var(--peri)}
nav.main ul{display:flex;flex-wrap:wrap;gap:4px;list-style:none;margin:0;padding:0;align-items:center}
nav.main a{display:block;padding:9px 16px;border-radius:999px;text-decoration:none;font:600 1rem/1 var(--display);color:var(--ink)}
nav.main a:hover{background:var(--wash)}
nav.main a[aria-current=page]{background:var(--ink);color:#fff}
/* type */
h1,h2,h3{font-family:var(--display);color:var(--ink);font-weight:600;letter-spacing:-.01em}
h1{font-size:clamp(2.1rem,4.6vw,3.4rem);line-height:1.05;margin:.2em 0 .35em}
h2{font-size:clamp(1.6rem,3vw,2.3rem);line-height:1.12;margin:1.6em 0 .6em}
h3{font-size:1.3rem;margin:1.3em 0 .3em}
main{padding:8px 0 64px}
.lede{font-size:1.15rem;color:var(--muted);max-width:44em}
.muted,small{color:var(--muted)}
.crumbs{font-size:.9rem;color:var(--muted);margin-top:14px}.crumbs a{color:var(--muted);font-weight:400}
.eyebrow{display:inline-block;font:600 .85rem/1 var(--display);letter-spacing:.06em;text-transform:uppercase;color:var(--ink);background:#fff;border-radius:999px;padding:8px 14px;margin:0 0 16px}
.center{text-align:center}
/* blocks (Demelza-style colour panels) */
.block{position:relative;border-radius:var(--r-lg);padding:clamp(28px,5vw,60px);overflow:hidden;margin:28px 0}
.block>*{position:relative;z-index:1}
.b-teal{background:var(--teal)}.b-sun{background:var(--sun)}.b-lilac{background:var(--lilac)}.b-peri{background:var(--peri);color:#fff}.b-ink{background:var(--ink);color:#fff}
.b-peri h2,.b-ink h2,.b-peri h3,.b-ink h3,.b-peri a,.b-ink a{color:#fff}
.b-teal .lede,.b-sun .lede,.b-lilac .lede{color:var(--text)}
.dots::before,.dots::after{content:"";position:absolute;border-radius:50%;z-index:0;pointer-events:none}
.dots::before{width:64px;height:64px;background:var(--lilac);right:8%;top:28px}
.dots::after{width:26px;height:26px;background:var(--sun);right:calc(8% + 80px);top:96px}
.b-lilac.dots::before{background:var(--peri)}.b-sun.dots::before{background:var(--teal)}
/* hero */
.hero{margin-top:4px}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:40px;align-items:center}
@media(max-width:900px){.hero-grid{grid-template-columns:1fr;gap:28px}}
.hero h1{font-size:clamp(2.5rem,6vw,4.6rem);font-weight:700;max-width:11em;line-height:1}
.hero .lede{font-weight:700;font-size:1.12rem;max-width:34em}
.searchbox{display:flex;flex-wrap:wrap;gap:10px;margin:26px 0 8px;max-width:640px;background:#fff;border-radius:999px;padding:8px;box-shadow:var(--shadow)}
.searchbox input{flex:1 1 220px;min-width:0;font:inherit;font-size:1.05rem;padding:12px 18px;border:0;border-radius:999px;background:transparent;color:var(--text)}
.searchbox input:focus{outline:none}.searchbox:focus-within{outline:4px solid var(--focus);outline-offset:3px}
.searchbox input::placeholder{color:#6b6797}
@media(max-width:480px){.searchbox{border-radius:26px}.searchbox button{width:100%;justify-content:center}}
button,.btn{font:600 1.05rem/1 var(--display);padding:15px 26px;border-radius:999px;border:2px solid var(--ink);background:var(--ink);color:#fff;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;gap:8px;transition:transform .15s,background .15s}
button:hover,.btn:hover{background:var(--ink2);color:#fff;transform:translateY(-2px)}
.btn.secondary{background:#fff;color:var(--ink)}.btn.secondary:hover{background:var(--wash);color:var(--ink)}
.btn.light{background:#fff;border-color:#fff;color:var(--ink)}
.btnrow{display:flex;flex-wrap:wrap;gap:10px;margin:20px 0}
.hint{font-weight:700}.hint a{color:var(--ink)}
#results{list-style:none;padding:0;margin:12px 0 0;max-width:640px;background:#fff;border-radius:24px;overflow:hidden}
#results:not(:empty){box-shadow:var(--shadow)}
#results li{border-bottom:1px solid var(--line)}#results li:last-child{border:0}
#results a{display:block;padding:13px 22px;text-decoration:none;color:var(--ink)}#results a:hover{background:var(--wash)}
/* ledger card */
.ledger{background:var(--ink);color:#e9e7ff;border-radius:36px;padding:30px 30px 24px}
.ledger .eyebrow{background:var(--sun);color:var(--ink);margin-bottom:22px}
.ledger dl{margin:0;display:grid;gap:14px}
.ledger dl div{display:flex;align-items:baseline;gap:14px}
.ledger dt{font:700 2.4rem/1 var(--display);color:#fff;min-width:3.3em;font-variant-numeric:tabular-nums}
.ledger dd{margin:0;font-weight:700}
.ledger p{font-size:.85rem;margin:18px 0 0;color:#c9c5f5}.ledger a{color:#fff}
/* steps (circle icons) */
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:28px;list-style:none;padding:0;margin:0;text-align:center}
.steps .ic{width:132px;height:132px;border-radius:50%;background:var(--ink);display:grid;place-items:center;margin:0 auto 18px}
.steps h3{margin:0 0 6px}.steps p{margin:0 auto;max-width:18em;color:var(--muted)}
/* notes, badges */
.note{border-radius:var(--r);background:var(--sun-soft);padding:18px 24px}
.note.warn{background:var(--warnbg)}
.badge{display:inline-flex;align-items:center;gap:6px;font:600 .85rem/1 var(--display);padding:8px 14px;border-radius:999px;margin:0 6px 6px 0}
.ok{background:var(--okbg);color:var(--ok)}.ok::before{content:"✓"}.warn{background:var(--warnbg);color:var(--warn)}
.bad{background:var(--badbg);color:var(--bad)}.bad::before{content:"✕"}.info{background:var(--peri-soft);color:var(--ink)}
/* cards */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px;padding:0;list-style:none;margin:0}
.card{position:relative;border-radius:var(--r);padding:24px 26px;background:var(--wash);transition:transform .15s,box-shadow .15s}
.card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.card a{font:600 1.2rem/1.2 var(--display);text-decoration:none;color:var(--ink)}.card a::after{content:"";position:absolute;inset:0;border-radius:inherit}
.card small{display:block;margin-top:6px;font-weight:700}
.grid>li.c1{background:var(--teal-soft)}.grid>li.c2{background:var(--lilac-soft)}.grid>li.c3{background:var(--peri-soft)}.grid>li.c4{background:var(--sun-soft)}
.grid.three{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}
.card.big{padding:30px;min-height:170px;display:flex;flex-direction:column;justify-content:space-between}
.card.big a{font-size:1.35rem}
.grid>li.big.c1{background:var(--teal)}.grid>li.big.c2{background:var(--lilac)}.grid>li.big.c3{background:var(--peri)}.grid>li.big.c3 a,.grid>li.big.c3 small{color:#fff}.grid>li.big.c4{background:var(--sun)}
.big small{color:var(--text)}
/* record panel */
.record{border-radius:var(--r);background:#fff;border:2px solid var(--line);overflow:hidden;margin:24px 0}
.record header{background:var(--teal);padding:16px 26px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;align-items:center}
.record header span{font:600 .95rem/1 var(--display);color:var(--ink)}.record header small{color:var(--ink);font-weight:700}
dl.facts{display:grid;grid-template-columns:max-content 1fr;margin:0}
dl.facts dt,dl.facts dd{padding:14px 26px;border-bottom:1px solid var(--line);margin:0}
dl.facts dt{font-weight:700;color:var(--muted);font-size:.95rem}
dl.facts dt:last-of-type,dl.facts dd:last-of-type{border-bottom:0}
@media(max-width:600px){dl.facts{grid-template-columns:1fr}dl.facts dt{border:0;padding-bottom:0}dl.facts dd{padding-top:2px}}
.conditions li{margin-bottom:10px}
/* tables */
.tablewrap{overflow-x:auto;border-radius:var(--r);border:2px solid var(--line);background:#fff}
table{border-collapse:collapse;width:100%;font-size:.95rem}
th,td{text-align:left;padding:14px 18px;border-bottom:1px solid var(--line);vertical-align:top}
thead th{background:var(--wash);font:600 .9rem/1.2 var(--display);color:var(--ink)}
tbody tr:hover{background:#fbfaff}tbody tr:last-child td{border-bottom:0}
td a{text-decoration:none}
/* chips + pills */
.cols{display:flex;flex-wrap:wrap;gap:10px;list-style:none;padding:0;margin:0}
ul.chips li{background:var(--wash);border-radius:999px;padding:6px 16px;font-size:.95rem}
ul.cols.pills a{display:inline-block;padding:8px 16px;border-radius:999px;text-decoration:none;background:var(--peri-soft);color:var(--ink)}
ul.cols.pills a:hover{background:var(--ink);color:#fff}
ul.cols.pills small{color:inherit;opacity:.75}
.pager{margin:24px 0}.pager .cols a{display:inline-block;min-width:44px;text-align:center;padding:8px 12px;border-radius:999px;text-decoration:none;background:var(--wash)}
.pager .cols a[aria-current]{background:var(--ink);color:#fff}
/* guides */
.answer{font:500 1.25rem/1.55 var(--display);color:var(--ink);background:var(--teal-soft);padding:26px 30px;border-radius:var(--r);max-width:44em}
article{max-width:46em}article table{margin:16px 0}article li{margin-bottom:6px}
dl.defs dt{font:600 1.1rem var(--display);color:var(--ink);margin-top:14px}dl.defs dd{margin:2px 0 0}
/* forms */
form.stack{display:grid;gap:4px;max-width:620px;background:var(--wash);border-radius:var(--r);padding:30px}
form.stack p{margin:6px 0}
form.stack label{font-weight:700;display:block;margin-bottom:4px;color:var(--ink)}
form.stack input,form.stack select,form.stack textarea{width:100%;font:inherit;padding:13px 16px;border:2px solid #9b97c4;border-radius:16px;background:#fff}
form.stack input:focus,form.stack select:focus,form.stack textarea:focus{border-color:var(--ink)}
.hint{display:block}form.stack .hint{font-weight:400;color:var(--muted);font-size:.92rem;margin-bottom:4px}.hidden{display:none}
.adslot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 24px;border:2px dashed #b8b3e6;border-radius:var(--r);padding:20px 26px;margin:32px 0;background:#fff;position:relative}
.adslot .adlabel{position:absolute;top:-11px;left:22px;background:#fff;padding:0 8px;font:600 .75rem/1.4 var(--display);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.adslot p{margin:0;font-weight:700;color:var(--ink);max-width:40em}.adslot img{display:block;max-width:100%;height:auto;border-radius:12px}
.adslot.paid{border-style:solid;border-color:var(--line);padding:16px}
.forsale{display:inline-flex;align-items:center;gap:8px;background:var(--sun);color:var(--ink)!important;border-radius:999px;padding:6px 14px;font:600 .9rem/1 var(--display);text-decoration:none}
.forsale:hover{background:#fff}
.form-status{border-radius:16px;padding:14px 18px;font-size:.98rem}.form-status.err{background:var(--badbg);color:var(--bad);border:2px solid #f3b4b4}
.form-status.err .muted{color:#7d4b4b;font-size:.85rem}
/* footer */
footer.site{background:var(--ink);color:#d7d4fb;font-size:.95rem;padding:48px 0 36px;margin-top:56px;border-radius:var(--r-lg) var(--r-lg) 0 0}
footer.site a{color:#fff}footer.site strong{color:#fff}
footer.site .cols{margin-top:16px;gap:10px 24px}
.foot-brand{font:600 1.6rem/1 var(--display);color:#fff;margin:0 0 14px}
/* motion */
@media (prefers-reduced-motion:no-preference){
.rise{opacity:0;transform:translateY(16px);animation:rise .7s cubic-bezier(.2,.7,.2,1) forwards}
.rise.d1{animation-delay:.08s}.rise.d2{animation-delay:.18s}.rise.d3{animation-delay:.3s}.rise.d4{animation-delay:.45s}
@keyframes rise{to{opacity:1;transform:none}}
.dots::before{animation:bob 6s ease-in-out infinite}.dots::after{animation:bob 7s ease-in-out infinite reverse}
@keyframes bob{50%{transform:translateY(-10px)}}}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;scroll-behavior:auto!important}}