@font-face{font-family:'DM Serif Display';src:url(/fonts/DMSerifDisplay-Regular.ttf) format('truetype');font-display:swap}
@font-face{font-family:Montserrat;src:url(/fonts/Montserrat.ttf) format('truetype');font-weight:100 900;font-display:swap}
@font-face{font-family:'Great Vibes';src:url(/fonts/GreatVibes-Regular.ttf) format('truetype');font-display:swap}
@font-face{font-family:'Pinyon Script';src:url(/fonts/PinyonScript-Regular.ttf) format('truetype');font-display:swap}
@font-face{font-family:'Cormorant Garamond';src:url(/fonts/CormorantGaramond.ttf) format('truetype');font-weight:300 700;font-display:swap}
:root{--plum:#5A2D5E;--orchid:#D9B3D8;--abyss:#0F4D5A;--gold:#C9A86A;--ink:#1B1420;--petal:#FBF7FB;--mauve:#6B6470;--line:#E9DDE9;--ok:#1E7B4F;--bad:#B3261E;--warn:#9A6400}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;font-family:Montserrat,system-ui,sans-serif;color:var(--ink);background:var(--petal);line-height:1.55;font-size:16px}
a{color:var(--abyss)}a:hover{color:var(--plum)}
h1,h2,h3{font-family:'DM Serif Display',Georgia,serif;font-weight:400;line-height:1.15;color:var(--plum);margin:.2em 0 .5em}
h1{font-size:clamp(2rem,4.5vw,3.6rem)}h2{font-size:clamp(1.6rem,3vw,2.4rem)}h3{font-size:1.35rem}
.wrap{max-width:1180px;margin:0 auto;padding:0 22px}
.skip{position:absolute;left:-999px}.skip:focus{left:10px;top:10px;background:#fff;padding:8px;z-index:9}
header.top{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}
header.top .wrap{display:flex;align-items:center;gap:20px;height:72px}
header.top .brand img{height:44px;display:block}
header.top nav{margin-left:auto;display:flex;gap:18px;align-items:center;flex-wrap:wrap}
header.top nav a{text-decoration:none;font-weight:600;font-size:.92rem;color:var(--ink)}
header.top nav a:hover{color:var(--plum)}
.btn{display:inline-block;border:0;border-radius:999px;padding:.75em 1.4em;font:600 .95rem Montserrat,sans-serif;cursor:pointer;text-decoration:none;background:var(--plum);color:#fff!important;transition:transform .15s,box-shadow .15s}
.btn:hover{transform:translateY(-1px);box-shadow:0 6px 18px rgba(90,45,94,.25)}
.btn.alt{background:var(--abyss)}.btn.ghost{background:transparent;color:var(--plum)!important;box-shadow:inset 0 0 0 2px var(--plum)}.btn.light{background:#fff;color:var(--plum)!important}
.btn.sm{padding:.45em .9em;font-size:.82rem}.btn.danger{background:var(--bad)}
.hero{background:radial-gradient(1200px 500px at 85% -10%,rgba(217,179,216,.55),transparent 60%),linear-gradient(135deg,var(--plum) 0%,#3c1f44 45%,var(--abyss) 100%);color:#fff;overflow:hidden}
.hero .wrap{display:grid;grid-template-columns:1.05fr 1fr;gap:40px;align-items:center;padding-top:70px;padding-bottom:80px}
.hero h1{color:#fff}.hero p.lead{font-size:1.15rem;opacity:.92;max-width:34em}
.hero .stack{position:relative;height:420px}
.hero .stack img{position:absolute;width:78%;border-radius:10px;box-shadow:0 25px 60px rgba(0,0,0,.35)}
.hero .stack img:nth-child(1){left:0;top:30px;transform:rotate(-5deg)}.hero .stack img:nth-child(2){right:0;top:110px;transform:rotate(4deg)}
.pill{display:inline-block;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.3);padding:.3em .9em;border-radius:999px;font-size:.8rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase}
section.band{padding:72px 0}section.band.white{background:#fff}
.grid{display:grid;gap:22px}.g2{grid-template-columns:repeat(2,1fr)}.g3{grid-template-columns:repeat(3,1fr)}.g4{grid-template-columns:repeat(4,1fr)}
.card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:24px;box-shadow:0 2px 0 rgba(90,45,94,.03)}
.card.feature h3{font-size:1.2rem;margin-top:.3em}.icon{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:var(--orchid);color:var(--plum);font-weight:800}
.steps{counter-reset:s}.steps .card{position:relative;padding-top:48px}.steps .card:before{counter-increment:s;content:counter(s);position:absolute;top:16px;left:24px;font:700 .9rem Montserrat;color:#fff;background:var(--abyss);width:26px;height:26px;border-radius:50%;display:grid;place-items:center}
.price{text-align:left}.price .amt{font-family:'DM Serif Display';font-size:2.2rem;color:var(--plum)}.price.hl{border:2px solid var(--plum);box-shadow:0 12px 30px rgba(90,45,94,.12)}
.price ul{padding-left:1.1em;margin:.6em 0 1.2em}.muted{color:var(--mauve)}.small{font-size:.86rem}
.designs{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;align-items:end}.designs img{width:100%;border-radius:8px;box-shadow:0 8px 24px rgba(27,20,32,.12);background:#fff}
footer.foot{background:var(--ink);color:#d9d2dc;padding:46px 0 30px;margin-top:0}footer.foot a{color:#fff;text-decoration:none}footer.foot .grid{grid-template-columns:2fr 1fr 1fr 1fr}
footer.foot h4{color:var(--orchid);font:700 .8rem Montserrat;letter-spacing:.1em;text-transform:uppercase}
form .row{margin-bottom:14px}label{display:block;font-weight:600;font-size:.88rem;margin-bottom:5px}
input:not([type]),input[type=text],input[type=email],input[type=date],input[type=number],input[type=search],select,textarea{width:100%;padding:.7em .8em;border:1.5px solid #d9cdd9;border-radius:10px;font:inherit;background:#fff}
input:focus,select:focus,textarea:focus{outline:3px solid rgba(217,179,216,.7);border-color:var(--plum)}
.notice{padding:12px 16px;border-radius:12px;margin:12px 0;background:#F3EAF3;border-left:4px solid var(--plum)}.notice.err{background:#FBEAEA;border-color:var(--bad)}.notice.ok{background:#E8F5EE;border-color:var(--ok)}
table.t{width:100%;border-collapse:collapse;background:#fff;border-radius:12px;overflow:hidden}table.t th,table.t td{padding:10px 12px;border-bottom:1px solid var(--line);text-align:left;font-size:.9rem;vertical-align:top}table.t th{background:#F6EEF6;color:var(--plum);font-size:.78rem;text-transform:uppercase;letter-spacing:.05em}
.status{display:inline-flex;align-items:center;gap:8px;font-weight:700;padding:.45em 1em;border-radius:999px}.status.valid{background:#E3F4EA;color:var(--ok)}.status.revoked{background:#FBE4E2;color:var(--bad)}.status.expired{background:#FFF1D6;color:var(--warn)}
.verify-wrap{display:grid;grid-template-columns:1.6fr 1fr;gap:26px;align-items:start;padding:36px 0 60px}
.cert-img{width:100%;border-radius:10px;box-shadow:0 14px 40px rgba(27,20,32,.18);background:#fff}
dl.meta{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;margin:0}dl.meta dt{font-weight:600;color:var(--mauve);font-size:.85rem}dl.meta dd{margin:0}
.share{display:flex;flex-wrap:wrap;gap:8px}.share a,.share button{font-size:.8rem}
.admin{display:grid;grid-template-columns:230px 1fr;min-height:calc(100vh - 72px)}
.admin aside{background:#fff;border-right:1px solid var(--line);padding:22px 14px}.admin aside a{display:block;padding:9px 12px;border-radius:10px;text-decoration:none;color:var(--ink);font-weight:600;font-size:.92rem}
.admin aside a.on,.admin aside a:hover{background:#F3EAF3;color:var(--plum)}.admin main{padding:28px 32px;min-width:0}
.stats{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}.stats .card{padding:16px}.stats b{display:block;font:2rem 'DM Serif Display';color:var(--plum)}
.designer{display:grid;grid-template-columns:1fr 340px;gap:20px}.designer .stage-wrap{background:#e9e3ea;border-radius:14px;padding:18px;position:sticky;top:90px}
.designer svg{width:100%;height:auto;display:block;box-shadow:0 10px 30px rgba(0,0,0,.15);background:#fff;touch-action:none}
.designer .dc-f{cursor:move}.designer .dc-f.sel{outline:3px dashed #E5484D}.designer svg .sel{filter:drop-shadow(0 0 6px #E5484D)}
.panel{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px;margin-bottom:14px}.panel h3{font-size:1.05rem;margin:0 0 10px}
.swatch{display:flex;gap:8px;align-items:center;margin-bottom:8px}.swatch input[type=color]{width:44px;height:36px;border:0;padding:0;background:none;cursor:pointer}.swatch input[type=text]{font-family:monospace;width:110px}
.presets{display:flex;flex-wrap:wrap;gap:6px}.preset{display:flex;border:1px solid var(--line);border-radius:999px;padding:4px 10px 4px 4px;gap:4px;align-items:center;background:#fff;cursor:pointer;font-size:.78rem}.preset i{width:16px;height:16px;border-radius:50%;display:inline-block}
.embed-box{font-family:monospace;font-size:.78rem;background:#1B1420;color:#F3EAF3;padding:12px;border-radius:10px;white-space:pre-wrap;word-break:break-all}
.cookie{position:fixed;bottom:16px;left:16px;right:16px;max-width:620px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px 16px;box-shadow:0 10px 30px rgba(0,0,0,.15);display:none;z-index:50}
.prose{max-width:820px}.prose h2{margin-top:1.4em}
@media (max-width:900px){.hero .wrap,.verify-wrap,.designer,.admin{grid-template-columns:1fr}.g3,.g4,.stats,.designs{grid-template-columns:1fr 1fr}footer.foot .grid{grid-template-columns:1fr 1fr}.hero .stack{height:300px}header.top nav{display:none}header.top nav.open{display:flex}}
@media (max-width:560px){.g2,.g3,.g4,.stats,.designs{grid-template-columns:1fr}}
/* Embed widget (inside an LMS iframe): fluid, fills width */
body.embed{background:transparent;font-size:15px}body.embed .w{max-width:100%;padding:14px}
.widget{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:18px;align-items:center}
.widget img{width:100%;border-radius:8px;box-shadow:0 6px 18px rgba(0,0,0,.12)}
@media (max-width:640px){.widget{grid-template-columns:1fr}}
/* v2 parity: newsletters, account, reports, audit */
.nl-hero{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;background:linear-gradient(135deg,var(--plum),#3c1f44 55%,var(--abyss));color:#fff;border-radius:18px;padding:26px 28px;margin-bottom:18px}
.nl-hero h1{color:#fff;font-size:2rem;margin:.2em 0}.nl-hero p{opacity:.9;max-width:40em;margin:0}
.nl-eyebrow{display:inline-flex;gap:6px;align-items:center;font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--orchid)}
.nl-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:16px}.nl-stat{background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px 16px;display:flex;gap:12px;align-items:center}
.nl-stat b{display:block;font-size:1.35rem;color:var(--plum)}.nl-stat small{color:var(--mauve)}.nl-ic{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:#F3EAF3;color:var(--plum)}.nl-ic.t{background:#E6F0F2;color:var(--abyss)}
.nl-tabs{display:flex;gap:6px;border-bottom:2px solid var(--line);margin-bottom:16px}.nl-tabs a{padding:10px 14px;text-decoration:none;font-weight:600;color:var(--mauve);border-bottom:3px solid transparent;margin-bottom:-2px}.nl-tabs a.on{color:var(--plum);border-color:var(--plum)}
.nl-count{background:var(--plum);color:#fff;border-radius:999px;padding:0 .5em;font-size:.75rem}
.nl-item{display:grid;grid-template-columns:1fr auto;gap:14px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px 18px;margin-bottom:10px}.nl-item h3{margin:.2em 0;font-size:1.2rem}.nl-item p{margin:0;color:var(--mauve);font-size:.9rem}
.nl-item-side{text-align:right}.nl-item-side b{display:block;font-size:1.3rem;color:var(--plum)}
.tag{display:inline-block;border-radius:999px;padding:.15em .7em;font-size:.75rem;font-weight:700}.tag.ok{background:#E3F3EA;color:var(--ok)}.tag.v{background:#F3EAF3;color:var(--plum)}.tag.warn{background:#FFF3DC;color:var(--warn)}.tag.bad{background:#FBE4E2;color:var(--bad)}
.nl-compose{display:grid;grid-template-columns:1fr 1.1fr;gap:18px;align-items:start}.nl-form label{display:block;font-weight:600;margin:12px 0 4px}.nl-form input,.nl-form textarea,.nl-form select{width:100%}.nl-form textarea{min-height:240px}
.nl-counter{float:right;font-weight:400;color:var(--mauve);font-size:.8rem}.nl-hint{font-size:.85rem;color:var(--mauve)}.nl-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px;align-items:center}
.nl-preview{background:#efe8ef;border-radius:16px;padding:12px}.nl-preview-bar{display:flex;gap:10px;align-items:center;font-size:.8rem;padding:4px 6px 10px;flex-wrap:wrap}.nl-seg button{border:1px solid var(--line);background:#fff;padding:4px 10px;border-radius:999px;cursor:pointer}.nl-seg button.on{background:var(--plum);color:#fff}
.nl-preview-stage{background:var(--petal);border-radius:12px;padding:16px;transition:max-width .2s;margin:0 auto}.nl-preview-stage.mobile{max-width:380px}
.nl-empty{text-align:center;padding:40px}.nl-chips{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}.nl-chip{background:#F3EAF3;border-radius:999px;padding:3px 10px 3px 3px;font-size:.85rem;display:inline-flex;gap:6px;align-items:center}.nl-chip i{font-style:normal;background:var(--plum);color:#fff;border-radius:50%;width:24px;height:24px;display:grid;place-items:center;font-size:.7rem}
.nl-av{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--orchid);color:var(--plum);font-weight:700;font-size:.75rem;margin-right:8px}
.nl-check{list-style:none;padding:0}.nl-check li{padding:4px 0 4px 26px;position:relative}.nl-check li:before{content:'✓';position:absolute;left:4px;color:var(--ok);font-weight:700}
.nl-confirm{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start}.nl-recip b{font-size:2.2rem;color:var(--plum)}
.acct-emails{list-style:none;padding:0}.acct-emails li{display:flex;gap:10px;align-items:center;border-top:1px solid var(--line);padding:10px 0}.acct-emails li>div:nth-child(2){flex:1}.acct-emails form{display:inline}
.acct-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:18px;align-items:start}.acct-log{list-style:none;padding:0}.acct-log li{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding:8px 0}
.bar{height:8px;background:#efe8ef;border-radius:999px;overflow:hidden;min-width:80px}.bar i{display:block;height:100%;background:linear-gradient(90deg,var(--plum),var(--abyss))}
@media(max-width:900px){.nl-stats{grid-template-columns:1fr 1fr}.nl-compose,.nl-confirm,.acct-grid{grid-template-columns:1fr}.nl-hero{flex-direction:column;align-items:flex-start}}
/* milestone badge widgets + badge designer */
.emb{font-family:inherit;max-width:100%}.emb .card{border-radius:14px}.emb .row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.emb .pill,.pill{display:inline-block;padding:5px 11px;border-radius:999px;background:#EEE6EE;color:#5A2D5E;font-size:13px;font-weight:600}.pill.ok{background:#E3F2EA;color:#1D6B3F}.pill.warn{background:#FFF3DC;color:#7A4B00}
.emb .muted{color:#6B6470}.emb .progress{height:8px;background:#EEE6EE;border-radius:99px;overflow:hidden}.emb .progress span{display:block;height:100%;background:#0F4D5A}
.emb .fineprint{color:#6B6470}.emb .promo{background:#5A2D5E;border-radius:10px}
@media (max-width:480px){.emb .card{flex-direction:column;text-align:center}}
.bdesigner{display:grid;grid-template-columns:minmax(0,1fr) 420px;gap:24px}.bdesigner .stage{width:400px;max-width:100%;aspect-ratio:1;background:repeating-conic-gradient(#f3eef3 0 25%,#fff 0 50%) 0 0/20px 20px;border-radius:12px}.bdesigner .stage svg,.bdesigner .stage img{width:100%;height:100%}
.bdesigner .mini{display:flex;flex-wrap:wrap;gap:6px}.bdesigner .mini label{font-size:12px}.bdesigner .mini input,.bdesigner .mini select{width:auto;max-width:90px}.bdesigner fieldset{border:1px solid #eee;border-radius:8px;margin:6px 0}.bdesigner .tabs [aria-selected=true]{background:#5A2D5E;color:#fff}
@media (max-width:900px){.bdesigner{grid-template-columns:1fr}}
@font-face{font-family:Poppins;font-style:normal;font-weight:400;font-display:swap;src:url(/static/fonts/Poppins-Regular.woff2) format('woff2')}
@font-face{font-family:Poppins;font-style:normal;font-weight:500;font-display:swap;src:url(/static/fonts/Poppins-Medium.woff2) format('woff2')}
@font-face{font-family:Poppins;font-style:normal;font-weight:600;font-display:swap;src:url(/static/fonts/Poppins-SemiBold.woff2) format('woff2')}
@font-face{font-family:Poppins;font-style:normal;font-weight:700;font-display:swap;src:url(/static/fonts/Poppins-Bold.woff2) format('woff2')}
@font-face{font-family:Poppins;font-style:normal;font-weight:800;font-display:swap;src:url(/static/fonts/Poppins-ExtraBold.woff2) format('woff2')}
/* responsive embeds (v4): fluid width, badge images keep a 1:1 aspect ratio, no fixed pixel widths */
body.embed{margin:0;background:transparent;overflow:hidden}
.emb{box-sizing:border-box;width:100%;padding:2px;font-size:clamp(12.5px,2.6vw,15px)}.emb *{box-sizing:border-box}
.emb .wcard{display:flex;gap:clamp(10px,3vw,18px);align-items:center;padding:clamp(10px,2.5vw,16px);background:#fff;border:1px solid #E7DDE7;border-radius:14px}
.emb .wimg{flex:0 0 auto;width:clamp(64px,22vw,120px);height:auto;aspect-ratio:1/1;object-fit:contain}
.emb .winfo{flex:1 1 auto;min-width:0;overflow-wrap:anywhere}.emb .wtitle{font:700 clamp(15px,3.6vw,18px)/1.25 Poppins,sans-serif}
.emb .wsub{font-size:.88em}.emb .btn{white-space:normal}
.emb .wgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(clamp(64px,18vw,96px),1fr));gap:10px}
.emb .wgrid div{text-align:center;font-size:.8em;min-width:0;overflow-wrap:anywhere}.emb .wgrid img{width:100%;max-width:88px;height:auto;aspect-ratio:1/1;object-fit:contain;display:block;margin:0 auto 4px}
.emb .wpromos{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}
@media (max-width:420px){.emb .wcard.m{flex-direction:column;text-align:center}.emb .wcard.m .row{justify-content:center}}
