@font-face{font-family:saans;src:url(../media/Saans_Regular-s.p.0yt0mr5dlbdon.otf?dpl=dpl_345oJSyn9K6AKAEmpP1X4crWWdgE)format("opentype");font-display:swap;font-weight:400;font-style:normal}@font-face{font-family:saans;src:url(../media/Saans_Bold-s.p.0iibus5l4cyhf.otf?dpl=dpl_345oJSyn9K6AKAEmpP1X4crWWdgE)format("opentype");font-display:swap;font-weight:700;font-style:normal}@font-face{font-family:saans Fallback;src:local(Arial);ascent-override:101.04%;descent-override:29.01%;line-gap-override:0.0%;size-adjust:99.96%}.saans_d24d4a8f-module__pleYtG__className{font-family:saans,saans Fallback}.saans_d24d4a8f-module__pleYtG__variable{--font-saans:"saans", "saans Fallback"}
@font-face{font-family:saansMono;src:url(../media/SaansMono_Regular-s.p.0w6r9a3osco.8.otf?dpl=dpl_345oJSyn9K6AKAEmpP1X4crWWdgE)format("opentype");font-display:swap;font-weight:400;font-style:normal}@font-face{font-family:saansMono Fallback;src:local(Arial);ascent-override:76.81%;descent-override:22.05%;line-gap-override:0.0%;size-adjust:131.49%}.saansmono_8d1df7a5-module__N2DjqW__className{font-family:saansMono,saansMono Fallback}.saansmono_8d1df7a5-module__N2DjqW__variable{--font-saans-mono:"saansMono", "saansMono Fallback"}
:root{--ink:#131313;--page:#060606;--paper:#f2f0e6;--paper-warm:#e9e6d9;--pink:#f6d9d5;--navy:#2e2e41;--green:#27d17b;--green-deep:#17914f;--blue:#b6f1fa;--yellow:#fbfc69;--card-dark:#1a1a1a;--wrap-dark:#161616;--accent:var(--green);--accent-text:#0f7a41;--accent-soft:var(--blue);--muted:#6f6c60;--muted-on-dark:#9b988c;--rule:#d9d5c6;--rule-on-dark:#f2f0e647;--highlight:var(--yellow);--done:var(--green);--radius-xs:4px;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-pill:999px;--page-text:var(--paper);--page-muted:var(--muted-on-dark)}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}html.lenis,html.lenis body{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}.lenis.lenis-stopped{overflow:hidden}.reveal{opacity:0;transform:translateY(40px)}.reveal.in-view{opacity:1;transition:opacity .45s cubic-bezier(.33,1,.68,1),transform .9s cubic-bezier(.22,1,.36,1);transform:none}body{font-family:var(--font-saans), "Saans", sans-serif;background:var(--page);color:var(--page-text);-webkit-font-smoothing:antialiased;font-size:16px;line-height:1.55}.container{margin:0 auto;padding:0 80px}.bleed{margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw)}:focus{outline:none}:focus-visible{outline:3px solid var(--green);outline-offset:3px;border-radius:2px}.hero :focus-visible,.exercise :focus-visible,.assessment :focus-visible,.how-to-use :focus-visible{outline-color:var(--ink)}.progress-panel :focus-visible,.nav-menu :focus-visible,.toast :focus-visible{outline-color:var(--yellow)}input[type=checkbox]:focus-visible{outline-offset:2px}.skip-link{background:var(--yellow);color:var(--ink);font-family:var(--font-saans-mono), "Saans Mono", monospace;letter-spacing:.1em;text-transform:uppercase;z-index:200;border-radius:3px;padding:10px 16px;font-size:11px;text-decoration:none;transition:top .15s;position:absolute;top:-48px;left:16px}.skip-link:focus{outline:3px solid var(--green);outline-offset:2px;top:16px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.assessment-submit:hover,.toast{transform:none!important}html{scroll-behavior:auto}}.session-bar{z-index:300;position:absolute;top:16px;left:16px}header{background:var(--page);color:var(--page-text);margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);padding:96px 80px 88px;position:relative;overflow:hidden}h1.title{letter-spacing:-.035em;z-index:2;max-width:10ch;margin-bottom:40px;font-size:clamp(56px,13.9vw,200px);font-weight:700;line-height:.88;position:relative}h1.title .italic{color:inherit;font-style:normal;font-weight:700}h1.title .underline{text-decoration:none}.lede{letter-spacing:.02em;z-index:2;max-width:760px;font-size:clamp(18px,2vw,26px);font-weight:500;line-height:1.45;position:relative}.lede em{color:inherit;font-style:normal}.hero-art{z-index:1;pointer-events:none;width:clamp(220px,32vw,470px);position:absolute;top:90px;right:80px}.hero-art svg{pointer-events:auto;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.hero-art svg.dragging{cursor:grabbing}.hero-art svg{aspect-ratio:248/181;width:55%;height:auto;position:absolute;overflow:visible}.hero-art .art-scatter{aspect-ratio:254.851/186;top:0;right:0}.hero-art .art-trim{top:120px;right:42%}.hero-art .art-physics{top:215px;right:2%}.hero-art .art-randomizer{top:300px;right:32%}.hero-art ellipse{transform-box:fill-box;transform-origin:50%}.how-to-use{background:var(--green);color:var(--ink);margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);padding:88px 80px 104px}.how-to-use h2.how-to-title{letter-spacing:-.025em;text-align:center;color:var(--ink);margin-bottom:56px;font-size:clamp(30px,3.6vw,52px);font-weight:700}.how-to-grid{grid-template-columns:repeat(3,1fr);gap:14px;display:grid}.how-to-grid>div{background:var(--page);color:var(--page-text);border-radius:var(--radius-md);padding:32px}.how-to-grid h4{letter-spacing:-.02em;color:inherit;margin-bottom:12px;font-size:24px;font-weight:700}.how-to-grid p{opacity:.85;font-size:16px;line-height:1.55}.section-marker{font-family:var(--font-saans-mono), "Saans Mono", monospace;letter-spacing:.2em;text-transform:uppercase;color:var(--page-muted);align-items:center;gap:12px;margin-bottom:16px;font-size:11px;display:flex}.section-marker:before{content:"";background:var(--green);width:40px;height:1px}h2.section-title{letter-spacing:-.025em;color:var(--page-text);margin-bottom:16px;font-size:clamp(32px,4.2vw,52px);font-weight:700;line-height:1.02}h2.section-title em{color:var(--green);font-style:normal}.section-sub{color:var(--page-muted);max-width:720px;margin-bottom:32px;font-size:16px;line-height:1.6}section{padding:72px 0;scroll-margin-top:72px}section[id^=ex]{padding:0}.section-head{flex-direction:column;align-items:flex-start;gap:12px;display:flex}.section-head .section-title{letter-spacing:0;flex:1;margin:0;font-size:42px;line-height:1.49}.section-head .section-sub{color:var(--page-text);max-width:720px;margin:0;font-size:16px;line-height:1.55}.check-item{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:flex-start;gap:14px;padding:10px 0;display:flex}.check-item input[type=checkbox]{appearance:none;border:2px solid var(--ink);border-radius:var(--radius-xs);cursor:pointer;background:0 0;flex-shrink:0;width:24px;height:24px;margin-top:1px;transition:all .15s;position:relative}.check-item input[type=checkbox]:hover{border-color:var(--accent-text)}.check-item input[type=checkbox]:checked{border-color:var(--ink);background:0 0}.check-item input[type=checkbox]:checked:after{content:"";background:var(--ink);width:14px;height:10px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 10' fill='none'%3E%3Cpath d='M0.996582 4.56055L5.49658 8.56055L12.9966 1.06055' stroke='%23000' stroke-width='2.6'/%3E%3C/svg%3E") 50%/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 10' fill='none'%3E%3Cpath d='M0.996582 4.56055L5.49658 8.56055L12.9966 1.06055' stroke='%23000' stroke-width='2.6'/%3E%3C/svg%3E") 50%/contain no-repeat}.check-item input[type=checkbox]:checked~.check-label{color:var(--muted);text-decoration:line-through}.check-label{flex:1;font-size:15.5px;line-height:1.5}.check-label strong{font-weight:700}.assessment{background:var(--paper);color:var(--ink);border-radius:var(--radius-md);grid-template-columns:1fr 1fr;align-items:start;gap:54px 12px;padding:32px;display:grid}.assessment h3{letter-spacing:0;color:var(--ink);margin:0;font-size:clamp(30px,3vw,42px);font-weight:700;line-height:1.49}.assessment p.intro{color:var(--ink);margin:0;font-size:16px;line-height:1.55}.assessment-grid,.assessment-submit-bar{grid-column:1/-1}.assessment-grid{grid-template-columns:1fr 1fr;gap:8px 60px;display:grid}.assessment-grid .check-item{border-bottom:1px solid var(--rule);min-height:45px;padding:10px 0 11px}.assessment-grid .check-item:nth-last-child(-n+2){border-bottom:none}.assessment-grid .check-label{color:#1a1a1a;font-size:14px;line-height:1.6}.assessment-grid .check-item input[type=checkbox]{border-radius:var(--radius-xs);background:#898989;border-color:#898989}.assessment-grid .check-item input[type=checkbox]:hover{border-color:var(--ink)}.assessment-grid .check-item input[type=checkbox]:checked{background:#898989;border-color:#898989}.assessment-submit-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;margin-top:0;display:flex}.assessment-submit-meta{color:#010101;font-size:12px}.assessment-submit-meta strong{color:#010101;font-weight:700}.assessment-submit{letter-spacing:.25px;border-radius:var(--radius-lg);cursor:pointer;color:#1a1a1a;background:0 0;border:1px solid #1a1a1a;align-items:center;width:218px;height:66px;padding:0 0 0 21px;font-size:16px;font-weight:400;text-decoration:none;display:inline-flex;position:relative}.checkpoint-notify{border-color:var(--paper);color:var(--paper);align-self:flex-end}.assessment-submit>span{z-index:1;transition:transform .8s cubic-bezier(.5,0,.5,1);display:inline-block;position:relative}.assessment-submit:hover>span{transform:translate(47px)}.assessment-submit:before,.assessment-submit:after{content:"";background:url(/icons/send-arrow-dark.svg) 50%/contain no-repeat;width:42px;height:42px;transition:transform .8s cubic-bezier(.5,0,.5,1),opacity .8s cubic-bezier(.5,0,.5,1);position:absolute;top:12px}.assessment-submit:before{opacity:0;left:12px;transform:scale(.189)}.assessment-submit:after{opacity:1;right:12px;transform:scale(1)}.checkpoint-notify:before,.checkpoint-notify:after{background-image:url(/icons/send-arrow.svg)}.assessment-submit:hover:before{opacity:1;transform:scale(1)}.assessment-submit:hover:after{opacity:0;transform:scale(.161)}.assessment-submit.sent:before{display:none}.assessment-submit.sent>span{transform:none}.assessment-submit.sent:after{content:"✓";opacity:1;color:var(--accent-text);background:#fff;border-radius:50%;justify-content:center;align-items:center;font-size:16px;font-weight:700;display:flex;transform:scale(1)}.assessment-submit.sent{background:var(--paper-warm);color:var(--ink);pointer-events:none}.exercise{background:var(--paper);color:var(--ink);border-radius:var(--radius-md);grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:stretch;margin-bottom:24px;display:grid;overflow:hidden}.exercise>*{grid-column:1/-1}.exercise-header{border-bottom:1px solid #898989;grid-column:1;padding:32px 24px 32px 32px}.exercise-num{font-family:var(--font-saans-mono), "Saans Mono", monospace;letter-spacing:0;text-transform:uppercase;color:var(--ink);margin-bottom:10px;font-size:16px;font-weight:400;line-height:1.87}.exercise-title{letter-spacing:0;margin-bottom:10px;font-size:32px;font-weight:700;line-height:1.2}.exercise-meta{font-family:var(--font-saans-mono), "Saans Mono", monospace;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);flex-wrap:wrap;gap:16px;font-size:10px;display:none}.exercise-meta span:before{content:"·";color:var(--accent-text);margin-right:8px}.exercise-meta span:first-child:before{content:"";margin-right:0}.exercise-badges{display:none}.badge{font-family:var(--font-saans-mono), "Saans Mono", monospace;letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;border-radius:2px;padding:4px 10px;font-size:10px;font-weight:600}.badge-time{background:var(--paper-warm);color:var(--ink)}.badge-level{background:var(--ink);color:var(--paper)}.exercise-brief{border-bottom:1px solid #898989;grid-column:2;padding:32px 32px 32px 24px}.exercise-brief h5{display:none}.exercise-brief p{color:#1a1a1a;font-size:16px;line-height:1.5}.exercise-steps{padding:0}.exercise-steps>h5{display:none}.exercise-brief h5,.exercise-steps h5,.exercise-success h5,.exercise-resources h5{font-family:var(--font-saans-mono), "Saans Mono", monospace;letter-spacing:.15em;text-transform:uppercase;color:var(--accent-text);margin-bottom:8px;font-size:10px;font-weight:700}.exercise-success{background:var(--blue);border-left:none;border-radius:0;margin-top:0;padding:32px 171px 32px 32px;position:relative}.exercise-success h5{font-family:var(--font-saans), "Saans", sans-serif;letter-spacing:0;text-transform:none;color:#010101;margin-bottom:12px;font-size:20px;font-weight:700;line-height:1.495}.exercise-success p{color:#1a1a1a;font-size:16px;font-style:normal;line-height:1.5}.success-checkbox{appearance:none;cursor:pointer;background:0 0;border:1px solid #1a1a1a;border-radius:18px;width:107px;height:107px;margin:0;position:absolute;top:50%;right:32px;transform:translateY(-50%)}.success-check{pointer-events:none;width:57px;height:41px;position:absolute;top:50%;right:57px;transform:translateY(-50%)}.success-check path{stroke-dasharray:1 1;stroke-dashoffset:1px}.success-checkbox:checked~.success-check path{stroke-dashoffset:0}.exercise-resources{background:var(--green);border-top:none;flex-wrap:wrap;align-items:flex-end;gap:20px;margin-top:0;padding:32px;display:flex}.exercise-resources h5{font-family:var(--font-saans), "Saans", sans-serif;letter-spacing:0;text-transform:none;color:#010101;flex-basis:100%;margin-bottom:-8px;font-size:20px;font-weight:700;line-height:1.495}.res-item{flex-direction:column;align-items:flex-start;gap:4px;display:inline-flex}.res-tag{font-family:var(--font-saans-mono), "Saans Mono", monospace;letter-spacing:0;color:#1a1a1a;text-transform:uppercase;font-size:13px;font-weight:400;line-height:1.55}.exercise-resources a{color:#010101;border-radius:var(--radius-sm);background:0 0;border:1px solid #010101;align-items:center;gap:12px;padding:13px;font-size:13px;font-weight:400;text-decoration:none;transition:background .15s;display:inline-flex}.exercise-resources a .ext-icon{flex-shrink:0;width:24px;height:24px}.exercise-resources a .ext-icon path{stroke-dasharray:1 1;stroke-dashoffset:0}@keyframes ext-draw{0%{stroke-dashoffset:1px}to{stroke-dashoffset:0}}@keyframes ext-nudge{0%{transform:translate(0)}42%{transform:translate(2px,-2px)}to{transform:translate(0)}}.exercise-resources a:hover .ext-box{animation:.5s ease-out ext-draw}.exercise-resources a:hover .ext-diag{animation:.5s ease-out ext-draw,.342s .858s ext-nudge}.exercise-resources a:hover .ext-head{animation:.5s ease-out .358s backwards ext-draw,.342s .858s ext-nudge}.exercise-resources a:hover{background:#ffffff59}.resource-note{color:var(--ink);opacity:.75;padding:4px 0;font-size:13px;font-style:italic}.step-wrap{border-top:1px solid #898989;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:4px 20px;padding:32px;transition:background-color .2s;display:grid}.step-wrap:first-child{border-top:none}.step-wrap+.step-wrap{border-top:1px solid #898989}.step-wrap:has(.check-item input:checked){background:var(--muted-on-dark)}.step-wrap .check-item{grid-column:1;gap:16px;padding:2px 0}.step-wrap .check-label{font-size:20px;line-height:1.495}.step-expand{border-radius:var(--radius-md);color:#010101;font-family:var(--font-saans), "Saans", sans-serif;letter-spacing:0;text-transform:none;cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #010101;grid-area:1/2;align-items:center;gap:12px;margin:0;padding:8px 8px 8px 12px;font-size:14px;font-weight:400;transition:border-radius .35s cubic-bezier(.22,1,.36,1),background .15s,color .15s;display:inline-flex}.step-expand:hover{border-radius:26px}.step-expand:active{border-radius:var(--radius-md)}.step-expand{position:relative}.step-expand:after{content:"";border-radius:var(--radius-pill);background:linear-gradient(#848484 0 0) 50%/12px 2px no-repeat,#010101;flex-shrink:0;width:35px;height:35px}.step-expand:before{content:"";background:#848484;width:12px;height:2px;margin-top:-1px;transition:transform .35s cubic-bezier(.22,1,.36,1);position:absolute;top:50%;right:19.5px;transform:rotate(90deg)}.step-wrap.expanded .step-expand:before{transform:rotate(0)}.step-expand .collapse-label{display:none}.step-details{counter-reset:substep;background:0 0;grid-column:1/-1;margin:32px -32px 0;padding:10px 40px 0;font-size:16px;line-height:1.4;display:none;overflow:hidden}.step-wrap.expanded .step-details{display:block}.step-details .substep{border-radius:var(--radius-md);background:#fff;align-items:center;gap:12px;min-height:48px;margin-top:10px;padding:10px 16px;display:flex}.step-details .substep:first-child{margin-top:0}.step-details .ui-shot{border-radius:var(--radius-sm);vertical-align:middle;mix-blend-mode:luminosity;flex-shrink:0;display:inline-flex;position:relative;overflow:hidden}.step-details .ui-shot img{max-width:none;position:absolute}.ui-shot-text{display:none}.step-details .substep:before{content:counter(substep, decimal-leading-zero);counter-increment:substep;background:var(--card-dark);width:42px;height:42px;color:var(--paper);border-radius:var(--radius-md);flex-shrink:0;justify-content:center;align-items:center;font-size:16px;font-weight:400;display:inline-flex}.step-details .substep-body{flex:1}.step-details .menu-path{font-family:var(--font-saans-mono), "Saans Mono", monospace;color:var(--muted);font-size:12px;font-weight:500}.step-details p{margin-bottom:6px}.step-details p:last-child{margin-bottom:0}.step-details .substep+p,.step-details .tip+p,.step-details .gotcha+p{margin-top:26px}.step-details .visual{background:var(--paper);border:1px solid var(--rule);border-radius:var(--radius-sm);margin:10px 0;padding:12px}.step-details .visual svg{max-width:100%;height:auto;display:block}.step-details .visual-caption{color:var(--muted);text-align:center;margin-top:6px;font-size:11px;font-style:italic}.step-details .tip{border-radius:var(--radius-md);background:#fff;margin-top:10px;padding:16px;font-size:16px;line-height:1.4}.step-details .tip:before{content:"TIP: ";font-family:var(--font-saans-mono), "Saans Mono", monospace;color:#1a1a1a;font-size:16px;font-weight:600}.step-details .gotcha{border-radius:var(--radius-md);background:#fff;margin-top:10px;padding:16px;font-size:16px;line-height:1.4}.step-details .gotcha:before{content:"COMMON GOTCHA: ";font-family:var(--font-saans-mono), "Saans Mono", monospace;color:#1a1a1a;font-size:16px;font-weight:600}.checkpoint{background:var(--card-dark);color:var(--paper);border-radius:var(--radius-md);border:1px solid #010101;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:stretch;gap:32px;margin:32px 0 40px;padding:32px;display:grid;position:relative}.checkpoint:before{content:none}.checkpoint-card{background:var(--yellow);color:var(--ink);border-radius:var(--radius-md);align-self:stretch;padding:32px}.checkpoint-tag{font-family:var(--font-saans-mono), "Saans Mono", monospace;letter-spacing:0;text-transform:uppercase;font-size:16px;font-weight:400;line-height:1.87}.checkpoint h4{letter-spacing:0;color:var(--ink);margin-bottom:0;font-size:32px;font-style:normal;font-weight:700;line-height:.93}.checkpoint ul{padding-right:16px;list-style:none}.checkpoint ul li{opacity:.92;counter-increment:cpitem;padding:12px 0 12px 48px;font-size:16px;line-height:1.4;position:relative}.checkpoint ul{counter-reset:cpitem}.checkpoint ul li:before{content:counter(cpitem, decimal-leading-zero);background:var(--paper);width:32px;height:26px;color:var(--ink);border-radius:var(--radius-sm);font-family:var(--font-saans-mono), "Saans Mono", monospace;justify-content:center;align-items:center;font-size:11px;font-weight:700;display:flex;position:absolute;top:10px;left:0}.checkpoint-right{flex-direction:column;align-items:flex-start;gap:32px;min-width:0;display:flex}.checkpoint p{color:var(--muted-on-dark);padding-right:16px;font-size:13.5px}.checkpoint.phases ul{counter-reset:none}.checkpoint.phases ul li{counter-increment:none;color:var(--paper);opacity:1;padding:6px 0;font-size:16px;line-height:1.55}.checkpoint.phases ul li:before{content:none}.checkpoint.phases ul li strong{color:var(--paper);font-weight:400}.whats-new{background:var(--blue);color:var(--ink);border-radius:var(--radius-md);border:none;margin:32px 0 40px;padding:44px 48px;position:relative}.whats-new:before{content:"NEW IN FIGMA · 2026";background:var(--navy);color:var(--paper);font-family:var(--font-saans-mono), "Saans Mono", monospace;letter-spacing:.15em;border-radius:var(--radius-xs);padding:5px 12px;font-size:11px;font-weight:700;position:absolute;top:-12px;left:32px}.whats-new h4{letter-spacing:-.02em;color:var(--ink);margin-bottom:12px;font-size:26px;font-style:normal;font-weight:700}.whats-new>p{color:var(--ink);font-size:14.5px;line-height:1.6}.whats-new ul{margin:14px 0 0;list-style:none}.whats-new ul li{padding:8px 0 8px 24px;font-size:14px;line-height:1.6;position:relative}.whats-new ul li:before{content:"→";color:var(--ink);font-weight:700;position:absolute;left:0}.whats-new .footnote{color:var(--ink);opacity:.75;margin-top:16px;font-size:13px;font-style:italic}.whats-new .footnote a{color:var(--ink);font-weight:600}.track-index{grid-template-columns:repeat(3,1fr);gap:8px;margin-top:40px;margin-bottom:40px;display:grid}.track-index a{color:var(--paper);background:var(--card-dark);border-radius:3px;padding:20px;text-decoration:none;transition:all .2s;display:block}.track-index a:nth-child(3n+1):hover{background:var(--pink);border-color:var(--pink)}.track-index a:nth-child(3n+2):hover{background:var(--blue);border-color:var(--blue)}.track-index a:nth-child(3n):hover{background:var(--yellow);border-color:var(--yellow)}.track-index a:hover,.track-index a:hover .track-index-num{color:var(--ink)}.track-index-num{color:var(--paper);letter-spacing:0;margin-bottom:8px;font-size:28px;font-style:normal;font-weight:700;line-height:1}.track-index-name{font-family:var(--font-saans-mono), "Saans Mono", monospace;letter-spacing:1.1px;text-transform:uppercase;font-size:16px;font-weight:400;line-height:1.07}.progress-panel{background:var(--green);width:342px;max-width:100%;color:var(--ink);border-radius:var(--radius-md);z-index:150;filter:drop-shadow(0 4px 10px #00000026);flex-direction:column;gap:12px;margin:40px auto;padding:12px;display:flex;position:sticky;top:16px}.progress-top-row{justify-content:space-between;align-items:center;gap:16px;display:flex}.progress-actions{flex-shrink:0;align-items:center;gap:10px;display:flex}.progress-label{letter-spacing:1px;text-transform:uppercase;font-size:12px;font-weight:400;font-family:var(--font-saans), "Saans", sans-serif;flex:1;min-width:0}.progress-label span{color:var(--ink);font-weight:400}.progress-bar{border-radius:var(--radius-xs);background:#62626233;width:100%;height:6px;overflow:hidden}.progress-fill{border-radius:var(--radius-xs);background:#fff;width:0%;height:100%;transition:width .3s}.progress-reset{font-family:var(--font-saans), "Saans", sans-serif;letter-spacing:1px;text-transform:uppercase;color:var(--ink);border:1px solid var(--ink);cursor:pointer;border-radius:var(--radius-sm);background:0 0;align-items:center;height:40px;padding:0 13px;font-size:13px;font-weight:400;transition:border-radius .35s cubic-bezier(.22,1,.36,1),background .15s,color .15s;display:inline-flex}.progress-reset:hover{border-radius:20px}.progress-reset:active{background:var(--ink);color:var(--paper);border-radius:20px}.nav-toggle{border:1px solid var(--ink);color:var(--ink);border-radius:var(--radius-sm);cursor:pointer;background:0 0;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;gap:4px;width:40px;height:40px;padding:0;transition:border-radius .35s cubic-bezier(.22,1,.36,1),background .15s,border-color .15s;display:flex}.nav-toggle:hover{border-radius:20px}.nav-toggle.open{background:#010101;border-color:#010101;border-radius:20px}.nav-toggle.open span{background:#fff}.nav-toggle span{background:var(--ink);width:16px;height:2px;transition:all .2s;display:block}.nav-toggle.open span:first-child{transform:translateY(6px)rotate(45deg)}.nav-toggle.open span:nth-child(2){opacity:0}.nav-toggle.open span:nth-child(3){transform:translateY(-6px)rotate(-45deg)}.nav-menu{visibility:hidden;z-index:1;transition:visibility 0s .983s;position:absolute;top:calc(100% + 8px);left:0;right:0}.nav-menu.open{visibility:visible;transition:visibility}.nav-menu-body{background:var(--green);border-radius:var(--radius-md);flex-direction:column;gap:8px;height:0;padding:12px;display:flex;overflow:hidden;box-shadow:0 4px 20px #00000014}.nav-menu.open .nav-menu-body{height:auto}.nav-menu-body>*{opacity:0;transition:opacity .673s cubic-bezier(.5,0,.5,1)}.nav-menu.open .nav-menu-body>*{opacity:1;transition:opacity .673s cubic-bezier(.5,0,.5,1) .31s}.nav-menu a{color:var(--ink);border-radius:var(--radius-sm);align-items:center;gap:12px;padding:12px;font-size:14px;text-decoration:none;transition:all .12s;display:flex}.nav-menu a:hover{background:#fff}.nav-menu a.current{background:var(--ink);color:var(--paper)}.nav-menu a.current:hover{background:var(--ink)}.nav-menu .nav-num{color:inherit;min-width:28px;font-size:14px;font-style:normal;font-weight:700;line-height:1}.nav-menu a.current .nav-num{color:inherit}.nav-menu .nav-name{letter-spacing:.02em;flex:1}.nav-menu .nav-check{color:var(--ink);opacity:0;font-size:11px;font-weight:700;transition:opacity .15s}.nav-menu a.complete .nav-check{opacity:1}.nav-menu a.current .nav-check{color:var(--paper)}.nav-menu-footer a{font-family:var(--font-saans), "Saans", sans-serif;color:var(--ink);border-radius:var(--radius-sm);border:1px solid #010101;justify-content:space-between;align-items:center;padding:13px;font-size:16px;font-weight:700;text-decoration:none;transition:all .12s;display:flex}.nav-menu-footer a:hover{background:#fff}.nav-menu-footer a:active{background:var(--ink);color:var(--paper)}.nav-menu-footer a:after{content:"↓";color:inherit;font-size:15px;font-weight:400}.toast{background:var(--pink);max-width:380px;color:var(--ink);border-radius:var(--radius-md);z-index:200;opacity:0;pointer-events:none;transition:opacity .3s,transform .3s cubic-bezier(.2,.9,.3,1.2);position:fixed;bottom:32px;right:32px;overflow:hidden;transform:translateY(20px)scale(.96);box-shadow:0 20px 60px #00000026}.toast.show{opacity:1;pointer-events:auto;transform:translateY(0)scale(1)}.toast-body{padding:24px}.toast-eyebrow{font-family:var(--font-saans-mono), "Saans Mono", monospace;letter-spacing:1.65px;text-transform:uppercase;color:var(--ink);margin-bottom:24px;font-size:11px;font-weight:400;line-height:1.3}.toast-title{letter-spacing:-.22px;margin-bottom:8px;font-size:22px;font-weight:700;line-height:1.2}.toast-title em{color:inherit;font-style:normal}.toast-message{margin-bottom:24px;font-size:14px;line-height:1.6}.toast-actions{align-items:stretch;gap:8px;display:flex}.toast-action{letter-spacing:0;text-transform:none;font-size:14px;font-weight:400;font-family:var(--font-saans), "Saans", sans-serif;cursor:pointer;border:none;height:66px;text-decoration:none;transition:all .15s}.toast-action.primary{background:var(--page);color:var(--paper);border-radius:var(--radius-lg);align-items:center;gap:9px;padding:12px 12px 12px 18px;display:inline-flex}.toast-action.primary .toast-send{flex-shrink:0;width:42px;height:42px;display:block}.toast-action.secondary{color:var(--ink);border:1px solid var(--ink);border-radius:var(--radius-md);background:0 0;flex:1;justify-content:center;align-items:center;display:inline-flex}.toast-action.secondary:hover{background:#1313130f}.toast-close{width:24px;height:24px;color:var(--ink);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;justify-content:center;align-items:center;font-size:20px;line-height:1;transition:all .15s;display:flex;position:absolute;top:20px;right:20px}.toast-close:hover{background:#13131314}@media (max-width:600px){.toast{bottom:calc(96px + env(safe-area-inset-bottom,0px));max-width:none;left:16px;right:16px}}.notes-card{background:var(--card-dark);color:var(--paper);border-radius:var(--radius-md);border:1px solid #010101;flex-direction:column;gap:32px;margin:32px 0 40px;padding:32px;display:flex}.notes-head{color:var(--ink);border-radius:var(--radius-md);align-items:center;gap:32px;padding:32px;display:flex}.notes-head-pink{background:var(--pink)}.notes-head-blue{background:var(--blue)}.notes-head-title{flex:1;min-width:0}.notes-head h4{letter-spacing:0;color:var(--ink);font-size:32px;font-weight:700;line-height:.93}.notes-head>p{color:#1a1a1a;max-width:453px;font-size:16px;line-height:1.5}.notes-head>p a{color:var(--ink);text-decoration:underline}.notes-cols{align-items:flex-start;gap:40px;display:flex}.notes-col{flex-direction:column;flex:1;gap:30px;min-width:0;display:flex}.notes-col .check-item{align-items:flex-start;gap:20px;padding:0}.notes-col .check-item input[type=checkbox]{border-color:var(--paper)}.notes-col .check-item input[type=checkbox]:hover{border-color:var(--green)}.notes-col .check-item input[type=checkbox]:checked{border-color:var(--paper)}.notes-col .check-item input[type=checkbox]:checked:after{background:var(--paper)}.notes-col .check-item input[type=checkbox]:checked~.check-label{color:var(--muted-on-dark)}.notes-col .check-label{color:var(--paper);font-size:16px;line-height:1.4}.notes-col .check-label a{color:inherit;text-decoration:underline}.hub-groups{flex-direction:column;display:flex}.resource-group{padding-top:24px}.resource-group:first-child{padding-top:0}.resource-group h4{font-family:var(--font-saans-mono), "Saans Mono", monospace;letter-spacing:1.65px;text-transform:uppercase;color:var(--paper);font-size:11px;font-weight:700}.resource-group ul{padding-top:10px;list-style:none}.resource-group ul li{color:var(--paper);padding:5px 0 5px 20px;font-size:14px;line-height:1.5;position:relative}.resource-group ul li:before{content:"→";color:var(--paper);font-weight:700;position:absolute;top:5px;left:0}.resource-group a{color:var(--paper);text-underline-position:from-font;text-decoration:underline}.resource-group a:hover{color:var(--green)}footer{border-top:1px solid #262626;margin-top:80px;padding:48px 0 64px}footer .container{font-family:var(--font-saans-mono), "Saans Mono", monospace;letter-spacing:.1em;text-transform:uppercase;color:var(--page-muted);justify-content:space-between;align-items:baseline;font-size:11px;display:flex}footer .signature{text-transform:none;letter-spacing:0;color:var(--page-text);font-size:15px;font-style:italic;font-family:var(--font-saans), "Saans", sans-serif}code{border-radius:var(--radius-xs);font-size:16px;font-family:var(--font-saans-mono), "Saans Mono", monospace;background:#13131314;padding:1px 6px}kbd{border-radius:var(--radius-xs);font-size:16px;font-family:var(--font-saans), "Saans", sans-serif;letter-spacing:.22px;color:#1a1a1a;background:#13131314;padding:2px 10px;font-weight:700}.checkpoint code,.whats-new code{background:#1313131a}.checkpoint code,.checkpoint kbd,.notes-card kbd{background:#f2f0e624}.checkpoint kbd,.notes-card kbd{color:var(--paper)}@media (max-width:900px){.container{padding:0 32px}header,.how-to-use{padding-left:32px;padding-right:32px}.hero-art{right:32px}.how-to-grid{grid-template-columns:1fr;gap:20px}.how-to-use{padding-top:64px;padding-bottom:72px}.notes-head{flex-direction:column;align-items:flex-start;gap:16px}.notes-cols{flex-direction:column;gap:24px}.assessment{grid-template-columns:1fr;gap:32px;padding:24px}.assessment-grid{grid-template-columns:1fr}.assessment-grid .check-item:nth-last-child(-n+2){border-bottom:1px solid var(--rule)}.assessment-grid .check-item:last-child{border-bottom:none}.track-index{grid-template-columns:repeat(2,1fr)}.exercise{display:block}.exercise-header{border-bottom:none;padding:24px 24px 8px}.exercise-brief{padding:0 24px 24px}.step-wrap{grid-template-columns:1fr;padding:16px 24px}.step-wrap .check-label{font-size:17px}.step-expand{grid-area:auto/1;justify-self:start;margin-left:40px}.step-details{margin:16px -24px 0;padding:10px 16px 0}.exercise-success{padding:24px 104px 24px 24px}.success-checkbox{width:64px;height:64px;right:24px}.success-check{width:36px;height:26px;right:38px}.exercise-resources{padding:24px}.checkpoint{grid-template-columns:1fr;gap:20px;padding:20px}.checkpoint-card{padding:28px 24px}.whats-new{padding:32px 24px}.hero-art{width:100%;max-width:440px;height:500px;margin-top:40px;position:relative;top:auto;right:auto}header{padding-top:56px;padding-bottom:56px}footer .container{flex-direction:column;align-items:flex-start;gap:16px}}@media (max-width:768px){.container{padding:0 24px}.how-to-use{padding-left:24px;padding-right:24px}.session-bar{white-space:nowrap;left:50%;transform:translate(-50%)}header{flex-direction:column;padding:88px 24px 96px;display:flex}h1.title{margin-bottom:12px;font-size:clamp(56px,19.5vw,76px)}.lede{letter-spacing:.3px;font-size:15px;line-height:1.45}.hero-art{order:10;width:100%;max-width:440px;height:440px;margin-top:56px;position:relative;top:auto;right:auto}.exercise-header{border-bottom:none;padding:24px 16px 0}.exercise-num{letter-spacing:1px;margin-bottom:12px;font-size:14px;line-height:1.3}.exercise-title{margin-bottom:0;font-size:28px;line-height:34px}.exercise-brief{border-bottom:1px solid #898989;padding:12px 16px 24px}.exercise-brief p{font-size:14px;line-height:22px}.step-wrap{border-top-color:#89898980;padding:20px 24px}.step-wrap .check-item{gap:12px;padding:4px 0}.step-wrap .check-label{font-size:15px;font-weight:700;line-height:22px}.step-expand{grid-area:auto/1;justify-content:space-between;justify-self:stretch;width:100%;margin:8px 0 0}.step-details{border-top:none;margin:16px 0 0;padding:0 12px 12px}.step-details .substep{flex-direction:column;align-items:flex-start;gap:8px;min-height:0;margin-top:16px;padding:12px}.step-details .substep:first-child{margin-top:0}.step-details .substep:before{border-radius:var(--radius-sm);width:28px;height:28px;font-size:12px;font-weight:600}.step-details,.step-details .substep-body{font-size:14px;line-height:20px}.step-details .substep-body:has(code,kbd,.ui-shot,.ui-shot-text){line-height:2}kbd{padding:1px 8px;font-size:14px}.step-details .ui-shot{display:none}.ui-shot-text{font-weight:700;display:inline}.step-details .tip,.step-details .gotcha{margin-top:16px;font-size:13px;line-height:18px}.step-details .tip:before,.step-details .gotcha:before{letter-spacing:.5px;margin-bottom:6px;font-size:13px;display:block}.step-details .tip:before{content:"TIP"}.step-details .gotcha:before{content:"COMMON GOTCHA"}.exercise-success{flex-direction:column;align-items:flex-start;gap:8px;padding:20px;display:flex}.exercise-success h5{order:1;margin:0;font-size:15px}.exercise-success p{order:2;font-size:13px;line-height:20px}.success-checkbox{border-radius:var(--radius-xs);border-width:1px;order:3;width:24px;height:24px;margin-top:4px;position:relative;top:auto;right:auto;transform:none}.success-checkbox:checked:after{content:"";background:var(--ink);width:14px;height:10px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);-webkit-mask:url("data:image/svg+xml,%3Csvg viewBox='0 0 14 10' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0.996582 4.56055L5.49658 8.56055L12.9966 1.06055' stroke='%23000' stroke-width='2.6'/%3E%3C/svg%3E") 50%/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg viewBox='0 0 14 10' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0.996582 4.56055L5.49658 8.56055L12.9966 1.06055' stroke='%23000' stroke-width='2.6'/%3E%3C/svg%3E") 50%/contain no-repeat}.success-check{display:none}.exercise-resources{gap:16px;padding:32px 16px}.exercise-resources h5{margin-bottom:0;font-size:15px}.res-item{width:100%}.res-tag{font-size:12px}.exercise-resources a{justify-content:space-between;width:100%;padding:12px;font-size:15px}.progress-panel{border-radius:var(--radius-lg) var(--radius-lg) 0 0;width:auto;max-width:none;padding:12px 16px calc(16px + env(safe-area-inset-bottom,0px));filter:drop-shadow(0 -6px 22px #0000004d);margin:0;position:fixed;inset:auto 0 0}main{padding-bottom:calc(130px + env(safe-area-inset-bottom,0px))}.nav-toggle{width:44px;height:44px}.progress-reset{min-height:44px}.nav-menu{top:auto;bottom:calc(100% + 8px)}.nav-menu-body{gap:4px;max-height:calc(100dvh - 140px);padding:8px}.nav-menu.open .nav-menu-body{overflow-y:auto}.nav-menu a{padding:9px 12px}.nav-menu-footer a{padding:12px}.progress-label{font-size:13px}.toast{bottom:calc(120px + env(safe-area-inset-bottom,0px))}}.save-error{z-index:250;background:var(--card-dark);max-width:420px;color:var(--paper);border-left:4px solid var(--yellow);border-radius:var(--radius-md);font-family:var(--font-saans-mono), "Saans Mono", monospace;letter-spacing:.03em;padding:12px 40px 12px 16px;font-size:12px;line-height:1.5;position:fixed;top:16px;right:16px;box-shadow:0 10px 30px #00000073}.save-error-close{width:24px;height:24px;color:var(--paper);cursor:pointer;opacity:.7;background:0 0;border:none;font-size:18px;line-height:1;position:absolute;top:6px;right:8px}.save-error-close:hover{opacity:1}@media (max-width:768px){.save-error{top:auto;bottom:calc(108px + env(safe-area-inset-bottom,0px));max-width:none;left:16px;right:16px}}.landing{text-align:center;background:var(--paper);min-height:100vh;color:var(--ink);flex-direction:column;justify-content:center;align-items:center;gap:32px;padding:48px 32px;display:flex}.landing-logo{filter:brightness(0);width:clamp(180px,20vw,260px);height:auto}.landing h1{letter-spacing:-.03em;max-width:880px;font-size:clamp(44px,7vw,88px);font-weight:700;line-height:.98}.landing h1 .italic{color:var(--ink);font-style:normal;font-weight:700}.landing h1 .underline{text-decoration:underline;-webkit-text-decoration-color:var(--green);text-decoration-color:var(--green);text-underline-offset:6px;text-decoration-thickness:6px}.landing p.sub{max-width:640px;color:var(--muted);font-size:clamp(17px,2vw,21px);font-weight:500;line-height:1.45}.landing .cta{letter-spacing:0;text-transform:none;border-radius:var(--radius-lg);cursor:pointer;background:var(--ink);color:var(--paper);border:none;align-items:center;gap:12px;padding:16px 26px;font-size:15px;font-weight:600;text-decoration:none;transition:all .15s;display:inline-flex}.landing .cta:hover{background:var(--green);color:var(--ink);transform:translateY(-2px)}.landing .hint{font-family:var(--font-saans-mono), "Saans Mono", monospace;letter-spacing:.15em;text-transform:uppercase;color:var(--muted);font-size:10px}.landing .error{background:var(--pink);border:1px solid var(--navy);color:var(--navy);border-radius:var(--radius-md);font-family:var(--font-saans-mono), "Saans Mono", monospace;letter-spacing:.1em;max-width:520px;padding:12px 18px;font-size:12px}.admin-shell{padding:48px 0 96px}.admin-topbar{font-family:var(--font-saans-mono), "Saans Mono", monospace;letter-spacing:.15em;text-transform:uppercase;color:var(--muted-on-dark);border-bottom:1px solid #262626;justify-content:space-between;align-items:baseline;margin-bottom:32px;padding-bottom:20px;font-size:11px;display:flex}.admin-topbar a{color:var(--paper);text-decoration:underline;-webkit-text-decoration-color:var(--green);text-decoration-color:var(--green)}.admin-topbar a+a{margin-left:18px}.admin h1{letter-spacing:-.025em;color:var(--paper);margin-bottom:32px;font-size:clamp(34px,5vw,56px);font-weight:700;line-height:1.02}.admin h1 em{color:var(--green);font-style:normal}.stat-grid{grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:40px;display:grid}.stat-card{background:var(--paper);color:var(--ink);border-radius:var(--radius-md);border:none;padding:24px}.stat-label{font-family:var(--font-saans-mono), "Saans Mono", monospace;letter-spacing:.15em;text-transform:uppercase;color:var(--muted);margin-bottom:8px;font-size:10px}.stat-value{color:var(--ink);font-size:36px;font-weight:700;line-height:1}.stat-value em{color:var(--accent-text);font-style:normal}.users-table{border-collapse:collapse;background:var(--paper);width:100%;color:var(--ink);border-radius:var(--radius-md);border:none;overflow:hidden}.users-table th,.users-table td{text-align:left;border-bottom:1px solid var(--rule);padding:12px 16px;font-size:14px}.users-table tr:last-child td{border-bottom:none}.users-table th{background:var(--paper-warm);font-family:var(--font-saans-mono), "Saans Mono", monospace;letter-spacing:.15em;text-transform:uppercase;color:var(--muted);font-size:10px;font-weight:700}.users-table td a{color:var(--ink);text-decoration:underline;-webkit-text-decoration-color:var(--green);text-decoration-color:var(--green)}.users-table th a.sort-link{color:inherit;white-space:nowrap;align-items:center;gap:6px;text-decoration:none;display:inline-flex}.users-table th a.sort-link:hover,.users-table th a.sort-link.is-active{color:var(--ink)}.users-table th .sort-caret{color:var(--green);letter-spacing:0}.users-table .meter{background:var(--paper-warm);border-radius:var(--radius-xs);vertical-align:middle;width:120px;height:6px;margin-right:10px;display:inline-block;overflow:hidden}.users-table .meter>span{background:var(--green);height:100%;display:block}.admin-exercise-ro{background:var(--paper);color:var(--ink);border-radius:var(--radius-md);border:none;margin-bottom:16px;padding:24px 28px}.admin-exercise-ro .exercise-num{margin-bottom:4px}.admin-exercise-ro h3{margin-bottom:12px;font-size:22px;font-weight:700}.admin-exercise-ro ul{margin-top:8px;list-style:none}.admin-exercise-ro ul li{padding:6px 0 6px 28px;font-size:14px;line-height:1.5;position:relative}.admin-exercise-ro ul li:before{content:"";border-radius:var(--radius-xs);border:2px solid var(--ink);background:0 0;width:16px;height:16px;position:absolute;top:9px;left:0}.admin-exercise-ro ul li.checked:before{background:var(--green);border-color:var(--green)}.admin-exercise-ro ul li.checked:after{content:"✓";color:var(--ink);font-size:11px;font-weight:700;line-height:1;position:absolute;top:7px;left:3px}.admin-exercise-ro ul li.checked{color:var(--muted);text-decoration:line-through}@media (max-width:900px){.stat-grid{grid-template-columns:repeat(2,1fr)}}
