:root{--navy:#14213D;--navy2:#22396b;--amber:#F2A541;--paper:#FAF7F2;--teal:#2A9D8F;--blue:#5B7DB1;--gold:#d98a1f;--red:#C4483A;--ink:#1d2433;
--fh:"Playfair Display",Georgia,"Times New Roman",serif;--fb:Inter,-apple-system,"Helvetica Neue",Arial,sans-serif;--hw:700;
--radius:28px;--cr:18px;--or:16px;--lr:50%;--btn:999px;
--soft:color-mix(in srgb,var(--navy) 7%,#fff);--line:color-mix(in srgb,var(--navy) 14%,#fff);--mute:color-mix(in srgb,var(--navy) 58%,#fff)}
*{box-sizing:border-box}html,body{height:100%;margin:0}
body{font-family:var(--fb);color:var(--ink);font-size:17px;line-height:1.65;background:var(--paper)}
h1,h2,h3{font-family:var(--fh);font-weight:var(--hw);color:var(--navy);line-height:1.12;margin:0 0 .5em;letter-spacing:-.01em}
:focus-visible{outline:3px solid var(--amber);outline-offset:2px}
.app{display:grid;grid-template-columns:300px minmax(0,1fr);grid-template-rows:68px minmax(0,1fr) 78px;height:100vh;background:#fff;position:relative}
header{grid-column:1/3;background:linear-gradient(100deg,var(--navy),var(--navy2));color:#fff;display:flex;align-items:center;gap:14px;padding:0 28px}
header img{width:38px;height:38px;border-radius:10px;box-shadow:0 0 0 2px rgba(255,255,255,.14)}
header .t{font-family:var(--fh);font-weight:var(--hw);font-size:20px;flex:1;min-width:0;line-height:1.2}
header .p{font-size:13px;font-weight:600;background:rgba(255,255,255,.16);padding:6px 14px;border-radius:999px;white-space:nowrap}
.bar{position:absolute;left:0;top:68px;height:5px;background:linear-gradient(90deg,var(--amber),color-mix(in srgb,var(--amber) 55%,#fff));transition:width .4s;z-index:5;border-radius:0 4px 4px 0}
nav{background:#fff;border-right:1px solid var(--line);overflow:auto;padding:18px 14px 26px}
nav h4{display:flex;justify-content:space-between;align-items:center;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--mute);margin:20px 10px 6px;font-weight:700}
nav h4 b{font-weight:700;background:var(--soft);color:var(--navy);border-radius:999px;padding:2px 9px;letter-spacing:0}
nav button{display:flex;gap:12px;align-items:center;width:100%;text-align:left;border:0;background:none;font:inherit;font-size:14.5px;line-height:1.35;padding:9px 10px;border-radius:12px;cursor:pointer;color:var(--ink);transition:background .15s}
nav button:hover{background:var(--soft)}nav button.cur{background:var(--navy);color:#fff;box-shadow:0 6px 16px color-mix(in srgb,var(--navy) 28%,transparent)}
nav button .d{width:20px;height:20px;border-radius:50%;border:2px solid color-mix(in srgb,var(--navy) 22%,#fff);flex:none;display:grid;place-items:center;font-size:11px;color:#fff;font-weight:700}
nav button.done .d{background:var(--teal);border-color:var(--teal)}nav button.done .d:after{content:"✓"}
nav button.cur .d{border-color:var(--amber);background:var(--amber)}nav button.cur .d:after{content:""}
nav button.lock{opacity:.42;cursor:not-allowed}
main{min-width:0;overflow:auto;padding:36px 5vw 44px;background:radial-gradient(900px 500px at 100% 0,color-mix(in srgb,var(--amber) 16%,#fff) 0,transparent 60%),radial-gradient(700px 500px at 0 100%,color-mix(in srgb,var(--teal) 16%,#fff) 0,transparent 55%),var(--paper)}
html[data-pat=dots] main{background:radial-gradient(color-mix(in srgb,var(--navy) 16%,transparent) 1.6px,transparent 1.8px) 0 0/24px 24px,var(--paper)}
html[data-pat=grid] main{background:linear-gradient(color-mix(in srgb,var(--navy) 7%,transparent) 1px,transparent 1px) 0 0/32px 32px,linear-gradient(90deg,color-mix(in srgb,var(--navy) 7%,transparent) 1px,transparent 1px) 0 0/32px 32px,var(--paper)}
html[data-pat=stripes] main{background:repeating-linear-gradient(135deg,transparent 0 16px,color-mix(in srgb,var(--navy) 5%,transparent) 16px 18px),var(--paper)}
html[data-pat=waves] main{background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='40' viewBox='0 0 120 40'%3E%3Cpath d='M0 20 Q15 0 30 20 T60 20 T90 20 T120 20' fill='none' stroke='%23000' stroke-opacity='.06' stroke-width='2'/%3E%3C/svg%3E") 0 0/120px 40px,var(--paper)}
html[data-pat=circles] main{background:radial-gradient(circle at 12% 18%,color-mix(in srgb,var(--amber) 20%,transparent) 0 120px,transparent 121px),radial-gradient(circle at 88% 78%,color-mix(in srgb,var(--teal) 18%,transparent) 0 170px,transparent 171px),radial-gradient(circle at 70% 10%,color-mix(in srgb,var(--blue) 14%,transparent) 0 80px,transparent 81px),var(--paper)}
.screen{max-width:1000px;margin:0 auto;background:#fff;border-radius:var(--radius);padding:44px 48px;box-shadow:0 24px 60px color-mix(in srgb,var(--navy) 10%,transparent),0 2px 6px color-mix(in srgb,var(--navy) 6%,transparent);animation:in .45s cubic-bezier(.2,.7,.2,1)}
.screen.split{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:40px;align-items:center}
.screen .art svg{width:100%;height:auto;display:block;border-radius:calc(var(--radius) - 4px);box-shadow:0 14px 34px color-mix(in srgb,var(--navy) 16%,transparent)}
.screen.hero{background:linear-gradient(135deg,var(--navy) 0,var(--navy2) 100%);color:#e9edf7;padding:52px}
.screen.hero h1{color:#fff;font-size:50px}.screen.hero .kicker{color:var(--amber)}.screen.hero .pts li::marker{color:var(--amber)}
.screen.hero .callout{background:rgba(255,255,255,.12);color:#fff;border-left-color:var(--amber)}.screen.hero .callout b{color:var(--amber)}
html[data-hero=light] .screen.hero{background:linear-gradient(135deg,color-mix(in srgb,var(--amber) 22%,#fff),color-mix(in srgb,var(--teal) 14%,#fff));color:var(--ink);border:3px solid var(--navy)}
html[data-hero=light] .screen.hero h1{color:var(--navy)}html[data-hero=light] .screen.hero .kicker{color:var(--navy)}
html[data-hero=light] .screen.hero .callout{background:#fff;color:var(--ink)}html[data-hero=light] .screen.hero .callout b{color:var(--navy)}
@keyframes in{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.kicker{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--teal);font-weight:700;margin-bottom:12px}
.screen h1{font-size:44px}.screen h2{font-size:34px}
p{margin:.55em 0}ul.pts{padding-left:1.2em;margin:.8em 0}ul.pts li{margin:.5em 0}ul.pts li::marker{color:var(--amber)}
.callout{border-left:5px solid var(--amber);background:color-mix(in srgb,var(--amber) 13%,#fff);padding:16px 20px;border-radius:0 14px 14px 0;margin:24px 0 4px;font-size:16.5px}
.callout b{color:var(--navy)}
.cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:24px 0 6px}
.card{--tone:var(--teal);--tint:color-mix(in srgb,var(--tone) 13%,#fff);background:#fff;border:2px solid var(--line);border-radius:var(--cr);padding:18px 20px;cursor:pointer;text-align:left;font:inherit;transition:transform .2s,box-shadow .2s,border-color .2s,background .2s;min-height:112px;position:relative;overflow:hidden}
.card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:var(--tone)}
.card:hover{transform:translateY(-3px);box-shadow:0 12px 26px color-mix(in srgb,var(--navy) 14%,transparent);border-color:var(--tone)}
.card .n{width:30px;height:30px;border-radius:var(--lr);background:var(--tone);color:#fff;font-weight:700;font-size:14px;display:grid;place-items:center;margin-bottom:10px}
.card .h{font-weight:700;color:var(--navy);font-size:18px}
.card .r{display:block;font-size:12.5px;color:var(--mute);margin-top:4px}
.card .b{display:none;margin-top:8px;font-size:15.5px;line-height:1.55}
.card.open{background:var(--tint);border-color:var(--tone)}.card.open .b{display:block;animation:in .3s}.card.open .r{display:none}
.card.t-blue{--tone:var(--blue)}.card.t-amber{--tone:var(--gold)}.card.t-red{--tone:var(--red)}
html[data-cards=top] .card:before{left:0;right:0;top:0;bottom:auto;width:auto;height:7px}
html[data-cards=top] .card{padding-top:24px}
.hint{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--teal);font-weight:700;margin-top:14px}
.opt{display:flex;gap:14px;align-items:flex-start;width:100%;text-align:left;font:inherit;line-height:1.5;background:#fff;color:var(--ink);border:2px solid var(--line);border-radius:var(--or);padding:14px 16px;margin:10px 0;cursor:pointer;transition:.15s}
.opt .l{flex:none;width:30px;height:30px;border-radius:var(--lr);background:var(--soft);color:var(--navy);font-weight:700;font-size:14px;display:grid;place-items:center;transition:.15s}
.opt:hover{border-color:var(--navy);transform:translateX(3px)}.opt.sel{border-color:var(--navy);background:var(--soft)}.opt.sel .l{background:var(--navy);color:#fff}
.opt.ok{border-color:var(--teal);background:color-mix(in srgb,var(--teal) 13%,#fff)}.opt.ok .l{background:var(--teal);color:#fff}.opt.ok .l span{display:none}.opt.ok .l:after{content:"✓"}
.opt.no{border-color:var(--red);background:color-mix(in srgb,var(--red) 11%,#fff)}.opt.no .l{background:var(--red);color:#fff}.opt.no .l span{display:none}.opt.no .l:after{content:"✕"}
.opt:disabled{cursor:default;transform:none}
.fb{margin-top:16px;padding:16px 20px;border-radius:14px;background:var(--soft);border-left:5px solid var(--navy);animation:in .3s}
.fb.good{background:color-mix(in srgb,var(--teal) 13%,#fff);border-left-color:var(--teal)}.fb.bad{background:color-mix(in srgb,var(--red) 11%,#fff);border-left-color:var(--red)}
.btn{background:var(--navy);color:#fff;border:0;border-radius:var(--btn);padding:13px 28px;font:inherit;font-weight:700;font-size:16px;cursor:pointer;transition:transform .15s,box-shadow .2s,background .2s;box-shadow:0 6px 16px color-mix(in srgb,var(--navy) 24%,transparent)}
.btn:hover{background:color-mix(in srgb,var(--navy) 82%,#000);transform:translateY(-1px)}.btn.alt{background:var(--amber);color:var(--navy);box-shadow:0 6px 16px color-mix(in srgb,var(--amber) 42%,transparent)}.btn.alt:hover{background:color-mix(in srgb,var(--amber) 85%,#fff)}
.btn:disabled{opacity:.35;cursor:not-allowed;transform:none;box-shadow:none}
.qb{margin:22px 0 8px;padding-bottom:6px;border-bottom:1px dashed var(--line)}.qb:last-of-type{border-bottom:0}
footer{grid-column:2;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 5vw;border-top:1px solid var(--line);background:#fff}
footer .stp{font-size:13px;color:var(--mute);font-weight:600}
.score{font-size:72px;font-family:var(--fh);font-weight:var(--hw);color:var(--navy);line-height:1}
.res{display:grid;grid-template-columns:auto 1fr;gap:22px;align-items:center;margin-top:20px;padding:20px 24px;border-radius:18px;background:var(--soft);animation:in .35s}
.cert{border:3px double var(--amber);padding:34px 30px;text-align:center;background:linear-gradient(180deg,#fff,color-mix(in srgb,var(--amber) 16%,#fff));border-radius:18px;margin-top:20px;box-shadow:0 10px 26px color-mix(in srgb,var(--amber) 22%,transparent)}
.cert svg{width:150px;height:auto;margin:0 auto 6px;display:block;border-radius:18px}.cert h2{font-size:30px}
/* top-navigation layout variant */
html[data-nav=top] .app{grid-template-columns:minmax(0,1fr);grid-template-rows:68px 62px minmax(0,1fr) 78px}
html[data-nav=top] header{grid-column:1}html[data-nav=top] footer{grid-column:1}html[data-nav=top] .bar{top:68px}
html[data-nav=top] nav{grid-row:2;display:flex;align-items:center;gap:6px;overflow-x:auto;overflow-y:hidden;border-right:0;border-bottom:1px solid var(--line);padding:0 24px;counter-reset:s}
html[data-nav=top] nav h4{display:none}
html[data-nav=top] nav button{width:auto;flex:none;white-space:nowrap;padding:7px 12px 7px 8px;counter-increment:s;border-radius:999px}
html[data-nav=top] nav button .d{width:26px;height:26px;font-size:12px}
html[data-nav=top] nav button .d:before{content:counter(s)}html[data-nav=top] nav button.done .d:before{content:"✓"}html[data-nav=top] nav button .d:after,html[data-nav=top] nav button.done .d:after,html[data-nav=top] nav button.cur .d:after{content:""}
html[data-nav=top] nav button:not(.cur) .tx{display:none}
@media(max-width:1120px){.screen.split{grid-template-columns:1fr;gap:26px}.screen.split .art{order:-1}.screen .art svg{max-height:230px}}
@media(max-width:820px){.app,html[data-nav=top] .app{grid-template-columns:minmax(0,1fr);grid-template-rows:68px minmax(0,1fr) 78px}nav{display:none}footer{grid-column:1;padding:0 18px}header{grid-column:1;padding:0 16px}main{padding:18px 12px 28px}.screen{padding:26px 22px;border-radius:22px}.screen h1,.screen.hero h1{font-size:32px}.screen h2{font-size:26px}.cards{grid-template-columns:1fr}.res{grid-template-columns:1fr}footer .stp{display:none}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
html[data-nav=top] nav button:not(.done):not(.cur) .d{color:var(--mute)}
html[data-nav=top] nav button.cur .d{color:var(--navy)}

.vid{margin:18px 0 6px;border-radius:calc(var(--radius) - 8px);overflow:hidden;background:#000;box-shadow:0 14px 34px color-mix(in srgb,var(--navy) 22%,transparent)}.vid video{display:block;width:100%;aspect-ratio:16/9;background:#000}
.tx2{margin-top:12px;font-size:15px;color:var(--mute)}.tx2 summary{cursor:pointer;font-weight:700;color:var(--navy)}
