@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&display=swap');
:root{font-family:'DM Sans',sans-serif;color:#20212a;background:#f6f7fb;font-synthesis:none;-webkit-font-smoothing:antialiased}
*{box-sizing:border-box}
body{margin:0;min-height:100svh;display:flex;flex-direction:column}
.masthead{padding:32px 48px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand{display:flex;align-items:center;gap:11px;font-size:20px;font-weight:650;letter-spacing:-.8px}
.brand-mark{display:grid;place-items:center;background:#2f50ed;color:white;width:32px;height:32px;border-radius:9px;font-size:27px;line-height:1;letter-spacing:-2px;padding-right:3px;padding-bottom:3px}
.edition{font-size:14px;color:#757781}
main{flex:1;display:grid;place-items:center;padding:56px 24px 80px}
.challenge{width:min(850px,100%);text-align:center}
.filters{border:0;padding:0;margin:0 0 36px;min-width:0}
.filters legend{width:100%;font-size:14px;color:#727581;margin-bottom:14px}
.filter-options{display:flex;flex-wrap:wrap;justify-content:center;gap:5px}
.filter-options label{position:relative;cursor:pointer}
.filter-options input{position:absolute;opacity:0;width:1px;height:1px}
.filter-options span{display:block;padding:11px 17px;border-radius:8px;font-size:14px;color:#616574;border:1px solid transparent;transition:background .15s}
.filter-options label:hover span{background:#e9edf6}
.filter-options input:checked+span{background:#e9edff;border-color:#d8e0ff;color:#2947c3;font-weight:600}
.filter-options input:focus-visible+span{outline:3px solid #2f50ed;outline-offset:3px}
@media(max-width:600px){.filter-options span{padding:10px 11px}.filters{margin-bottom:26px}}
.eyebrow{display:flex;justify-content:center;align-items:center;gap:13px;color:#727581;font-size:12px;font-weight:600;letter-spacing:1.5px}
.badge{color:#2947c3;background:#e9edff;padding:7px 10px;border:1px solid #d8e0ff;border-radius:5px;font-size:11px;letter-spacing:1px}
.prompt-wrap{min-height:245px;display:grid;place-items:center;margin:27px 0 29px}
h1{margin:0;font-size:clamp(2.25rem,4.5vw,3.75rem);font-weight:500;line-height:1.23;letter-spacing:-2.4px;text-wrap:balance}
h1 span{color:#2f50ed}
h1.flow-prompt{font-size:clamp(1.8rem,3.5vw,2.8rem);letter-spacing:-1.3px;line-height:1.3}
button{display:inline-flex;align-items:center;justify-content:center;gap:12px;border:1px solid #24252e;border-radius:11px;background:#24252e;color:#fff;padding:17px 25px;font:550 16px 'DM Sans',sans-serif;cursor:pointer;box-shadow:0 3px 4px #181b2910;transition:background .18s,transform .18s,box-shadow .18s;min-height:56px}
button svg{width:20px;height:20px}
button:hover{background:#3b3d4a;box-shadow:0 5px 12px #181b2920;transform:translateY(-2px)}
button:active{transform:translateY(0)}
button:focus-visible{outline:3px solid #2f50ed;outline-offset:5px}
.note{margin:21px 0 0;font-size:14px;color:#777984;line-height:1.6}
.secondary{margin-left:10px;background:transparent;color:#333846;border-color:#d3d7e3;box-shadow:none}
.secondary:hover{background:#e9edf6;box-shadow:none}
.secondary.is-done{color:#216646;background:#e7f3eb;border-color:#bbdcc8}
button:disabled{cursor:default;transform:none;box-shadow:none;opacity:.65}
.storage-note{font-size:12px;color:#777984;margin:7px 0 0}
@media(max-width:420px){button{padding:15px 16px;font-size:14px;gap:8px}.secondary{margin-left:5px}}
footer{border-top:1px solid #e1e3eb;margin:0 48px;min-height:79px;display:flex;align-items:center;justify-content:space-between;gap:20px;color:#7b7e89;font-size:10px;letter-spacing:1.3px;font-weight:500}
.footer-mark{font-size:26px;color:#2f50ed}
@media(min-width:1600px){.challenge{width:920px}h1{font-size:4.25rem}}
@media(max-width:600px){.masthead{padding:24px}.brand{font-size:18px}.edition{display:none}main{padding:35px 24px 55px}.eyebrow{gap:10px;font-size:10px;letter-spacing:1px}.prompt-wrap{min-height:260px;margin:22px 0}h1{letter-spacing:-1.4px}footer{margin:0 24px;min-height:67px;justify-content:center}footer span:last-child{display:none}.footer-mark{font-size:20px}.note{font-size:13px}}
@media(prefers-reduced-motion:reduce){button{transition:none}}
