@import"https://fonts.googleapis.com/css2?family=Dosis:wght@200..800&family=Fredoka:wght@300..700&display=swap";.shake{animation:shake .8s cubic-bezier(.36,.07,.19,.97) both}@keyframes shake{10%,90%{transform:translate(-.25em)}20%,80%{transform:translate(.25em)}30%,50%,70%{transform:translate(-.5em)}40%,60%{transform:translate(.5em)}to{transform:translate(0)}}.tinted-thumbnail{overflow:hidden;background-color:var(--card-color)}.tinted-thumbnail img{width:100%;object-fit:cover;object-position:center;opacity:.6;filter:grayscale(100%) sepia(100%) hue-rotate(calc(var(--tint-hue) - 30deg)) saturate(2) brightness(.75);transform:rotate(-4deg) scale(1.1);transition:opacity .2s cubic-bezier(.47,3,.41,.8),transform .2s cubic-bezier(.47,3,.41,.8)}:root{color-scheme:dark;--fg: #fff;--bg: #171730;--bg-shadow: #000000;--bg-inset: color-mix(in oklch, var(--bg), black 25%);--bg-inset-edge: color-mix(in oklch, var(--bg), black 80%);--bg-light: color-mix(in oklch, white, var(--bg) 90%);--text: #bccdfc;--text-weak: color-mix(in oklch, var(--text), var(--bg) 50%);--text-strong: color-mix(in oklch, var(--text), var(--fg) 50%);--primary: #f6c43b;--primary-dark: #582008;--primary-text: var(--primary-dark);--primary-side: color-mix(in oklch, var(--primary), var(--primary-dark) 50%);--primary-light: color-mix(in oklch, white, var(--primary) 90%);--secondary: color-mix(in oklch, var(--bg), var(--text) 30%);--secondary-dark: color-mix(in oklch, var(--bg), var(--text) 15%);--secondary-light: color-mix(in oklch, var(--bg), var(--text) 50%);--secondary-text: var(--text);--green: #7ca925;--green-light: #e9ff7b;--green-dark: #235413;--red: #ff624d;--overlay: rgba(0, 0, 0, .75);--overlay-light: rgba(0, 0, 0, .3);--heading-shadow: color-mix(in srgb, var(--bg), var(--bg-shadow) 50%) .05em .05em 0;--blockquote-shadow: color-mix(in srgb, var(--bg), var(--bg-shadow) 50%) .02em .02em 0;--nav-hover-bg: var(--bg);--nav-hover-text: var(--primary);--heading-secondary: color-mix(in srgb, var(--text), var(--bg) 40%);--checkbox-bg: var(--bg-inset);--checkbox-check: var(--primary);--popup-top-border: var(--secondary-dark)}:root[data-theme=dark]{color-scheme:dark;--fg: #fff;--bg: #1e1e1e;--bg-shadow: #000000;--bg-inset: color-mix(in oklch, var(--bg), black 25%);--bg-inset-edge: color-mix(in oklch, var(--bg), black 80%);--bg-light: color-mix(in oklch, white, var(--bg) 90%);--text: #e0e0e0;--text-weak: color-mix(in oklch, var(--text), var(--bg) 50%);--text-strong: color-mix(in oklch, var(--text), var(--fg) 50%);--primary: #f6c43b;--primary-dark: #582008;--primary-text: var(--primary-dark);--primary-side: color-mix(in oklch, var(--primary), var(--primary-dark) 50%);--primary-light: color-mix(in oklch, white, var(--primary) 90%);--secondary: color-mix(in oklch, var(--bg), var(--text) 30%);--secondary-dark: color-mix(in oklch, var(--bg), var(--text) 15%);--secondary-light: color-mix(in oklch, var(--bg), var(--text) 50%);--secondary-text: var(--text);--overlay: rgba(0, 0, 0, .75);--overlay-light: rgba(0, 0, 0, .3)}:root[data-theme=light]{color-scheme:light;--fg: #1a1a1a;--bg: #f4f4f6;--bg-shadow: #d0d0d4;--bg-inset: color-mix(in oklch, var(--bg), black 8%);--bg-inset-edge: color-mix(in oklch, var(--bg), black 20%);--bg-light: color-mix(in oklch, white, var(--bg) 50%);--text: #2d2d30;--text-weak: color-mix(in oklch, var(--text), var(--bg) 50%);--text-strong: color-mix(in oklch, var(--text), var(--fg) 50%);--primary: #2e2e7a;--primary-dark: #08080f;--primary-text: var(--bg);--primary-side: color-mix(in oklch, var(--primary), var(--primary-dark) 50%);--primary-light: color-mix(in oklch, white, var(--primary) 50%);--secondary: color-mix(in oklch, var(--primary), var(--bg) 40%);--secondary-dark: color-mix(in oklch, var(--primary), var(--bg) 20%);--secondary-light: color-mix(in oklch, var(--primary), var(--bg) 50%);--secondary-text: #ffffff;--overlay: rgba(40, 40, 50, .55);--overlay-light: rgba(40, 40, 50, .2);--heading-shadow: none;--blockquote-shadow: none;--nav-hover-bg: var(--primary);--nav-hover-text: #ffffff;--popup-top-border: var(--bg-inset-edge)}:root[data-theme=light] *:not(.Card):not(.Card *){text-shadow:none!important}:root[data-theme=high-contrast]{color-scheme:light;--fg: #000000;--bg: #ffffff;--bg-shadow: #000000;--bg-inset: #ffffff;--bg-inset-edge: #000000;--bg-light: #ffffff;--text: #000000;--text-weak: #000000;--text-strong: #000000;--primary: #000000;--primary-dark: #000000;--primary-text: #ffffff;--primary-side: #000000;--primary-light: #ffffff;--secondary: #000000;--secondary-dark: #000000;--secondary-light: #000000;--secondary-text: #ffffff;--green: #000000;--green-light: #ffffff;--green-dark: #000000;--red: #000000;--overlay: rgba(0, 0, 0, .9);--overlay-light: rgba(0, 0, 0, .7);--heading-shadow: none;--blockquote-shadow: none;--nav-hover-bg: var(--primary);--nav-hover-text: #ffffff;--heading-secondary: var(--text);--checkbox-bg: var(--text);--checkbox-check: var(--bg)}:root[data-theme=high-contrast] *:not(.Card):not(.Card *){text-shadow:none!important}:root[data-theme=high-contrast] .Card{background-color:color-mix(in oklch,var(--card-color),black 50%)}.confetti-canvas{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;background:transparent;border:none;margin:0;padding:0}html{scroll-behavior:smooth}:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-size:18px;--card-text: #ffffff;--card-heading-shadow: .05em .05em 0 rgba(0, 0, 0, .5);--content-width: 720px;--sidebar-width: 216px;--sidebar-width-right: 256px;--top-bar-height: 4em;--sale-banner-height: 2.5em;color:var(--text);background-color:var(--bg);font-family:Fredoka,sans-serif;font-optical-sizing:auto;font-weight:400;font-style:normal;font-variation-settings:"wdth" 100}button,h1,h2,h3,h4,h5,h6{font-family:Dosis,sans-serif;font-optical-sizing:auto;font-weight:800;font-style:normal}button{background:none;border:none;cursor:pointer}h1,h2,h3,h4,h5,h6{color:var(--primary);margin:2em 0 .5em;text-shadow:var(--heading-shadow)}h1{color:var(--primary)}h2,h3,h4,h5,h6{color:var(--heading-secondary);text-transform:uppercase}:is(h2,h3,h4,h5,h6).primary{color:var(--primary)}h1{font-size:3rem}h2{font-size:2rem}h3{font-size:1.5rem}h4{font-size:1.25rem}h5{font-size:1rem}h6{font-size:.8rem}p{line-height:1.5;text-align:justify}a{text-decoration:none;color:var(--text)}a:visited,a:active{color:var(--text)}body{margin:0 auto;min-height:100vh;overflow-x:clip}svg{width:1.2em;height:1.2em;vertical-align:bottom;display:inline-block}input[type=text],input[type=password],input[type=email],select{background-color:var(--bg-inset);color:var(--text);font-size:1rem;padding:.5em 1em;border:none;border-radius:.4em;border-top:.125em solid var(--bg-inset-edge);margin:.5em 0}:is(input[type=text],input[type=password],input[type=email],select):active,:is(input[type=text],input[type=password],input[type=email],select):focus{outline:solid 2px var(--primary)}select{font-family:Fredoka,sans-serif;cursor:pointer}article hr{border:0;height:.25em;background:var(--bg-inset);border-radius:1em;margin:2em 0 1em}article figure{display:flex;background:var(--bg-inset);padding:1em;border-radius:.5em}article figure.image{display:flex;justify-content:center;align-items:center}article figure.image a{max-width:100%}article figure.image img{max-width:100%;max-height:90vh;border-radius:.5em}article blockquote{background:color-mix(in srgb,var(--bg),var(--bg-shadow) 50%);padding:1.5em 1em;border-radius:.5em;margin:1.5em 1em;position:relative}article blockquote:before,article blockquote:after{position:absolute;display:block;line-height:1;width:0;height:0;font-size:10em;color:color-mix(in srgb,var(--text),var(--bg) 80%);text-shadow:var(--blockquote-shadow)}article blockquote:before{content:"“";left:-.125em;top:-.25em}article blockquote:after{content:"”";right:.2em;top:-.25em}*{scrollbar-width:thin;scrollbar-color:var(--secondary) transparent}*::-webkit-scrollbar{width:8px;height:8px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background-color:var(--secondary);border-radius:4px}*::-webkit-scrollbar-thumb:hover{background-color:var(--secondary-dark)}*::-webkit-scrollbar-button{display:none}*::-webkit-scrollbar-corner{background:transparent}@keyframes page-enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.page-content{animation:page-enter .2s ease-out}.App{display:flex;flex-direction:column;align-items:center;min-height:100vh}.App>header{display:flex;justify-content:space-between;align-items:center}.App>main{width:var(--content-width);max-width:100%;padding:0 1em;box-sizing:border-box;margin:var(--top-bar-height) 0 0;flex:1}.App .page-top-bar{display:block;height:var(--top-bar-height);background:var(--bg-inset);position:fixed;top:0;left:0;right:0;z-index:9}.App.has-sale-banner .page-top-bar{height:calc(var(--top-bar-height) + var(--sale-banner-height))}.App.has-sale-banner>main{margin-top:calc(var(--top-bar-height) + var(--sale-banner-height))}.App.has-sale-banner .Sidebar .header{top:var(--sale-banner-height)}.App.has-sale-banner .Sidebar .content{padding:calc(1em + var(--top-bar-height) + var(--sale-banner-height)) 1em 1em}.App.has-sale-banner .ShoppingCartPanel,.App.has-sale-banner .AccountPanel{padding-top:calc(1em + var(--top-bar-height) + var(--sale-banner-height))}.NotFoundPage{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:50vh;padding:2rem}.NotFoundPage h1{font-size:4rem;margin-bottom:.5rem}.NotFoundPage p{color:#666}.CouponLandingPage{display:flex;justify-content:center;align-items:center;min-height:50vh}.Loading{width:300px;height:300px;margin:50px auto;position:relative;-webkit-user-select:none;user-select:none}.Loading .text{text-align:center;font-size:3em;color:var(--secondary);display:flex;justify-content:center;align-items:center;height:100%;width:100%;position:absolute;top:0;left:0;font-family:Dosis,sans-serif;font-optical-sizing:auto;font-weight:800;font-style:normal}.Loading .text span{animation:waving-letters 1.2s ease-in-out infinite}.Loading .text span:nth-child(1){animation-delay:0s}.Loading .text span:nth-child(2){animation-delay:.1s}.Loading .text span:nth-child(3){animation-delay:.2s}.Loading .text span:nth-child(4){animation-delay:.3s}.Loading .text span:nth-child(5){animation-delay:.4s}.Loading .text span:nth-child(6){animation-delay:.5s}.Loading .text span:nth-child(7){animation-delay:.6s}.Loading svg{width:100%;height:100%}.Loading .line{stroke:var(--secondary);stroke-width:.4em;fill:none;stroke-linecap:round;stroke-dasharray:100 500;animation:loading-animation 2s linear infinite}@keyframes loading-animation{to{stroke-dashoffset:-600}}@keyframes rotate{0%{transform:rotate(0)}to{transform:rotate(-360deg)}}@keyframes waving-letters{0%,50%,to{transform:translateY(0)}25%{transform:translateY(-.25em)}}.Button,.supabase-auth-ui_ui-container{display:inline-block}:is(.Button,.supabase-auth-ui_ui-container).small button{font-size:.8rem}:is(.Button,.supabase-auth-ui_ui-container) button{--button-side: color-mix(in oklch, var(--primary), var(--primary-dark) 50%);--bg-shadow: color-mix(in oklch, var(--bg), black 25%);--button-pressed: color-mix(in oklch, var(--primary), var(--primary-dark) 10%);--button-hovered: color-mix(in oklch, var(--primary), white 10%);font-size:1.25rem;text-transform:uppercase;white-space:nowrap;color:var(--primary-text);display:flex;align-items:center;gap:.5em;padding:.5em 1em;border-radius:.5em;border:none;background:var(--primary);position:relative}:is(.Button,.supabase-auth-ui_ui-container) button svg path{fill:var(--primary-text)}:is(.Button,.supabase-auth-ui_ui-container) button:not([aria-disabled=true]){top:-.25em;box-shadow:0 .25em 0 var(--button-side),.25em .25em 0 var(--bg-shadow);transition:top .1s cubic-bezier(.47,4,.41,.8),box-shadow .1s cubic-bezier(.47,4,.41,.8)}:is(.Button,.supabase-auth-ui_ui-container) button[aria-disabled=true]{cursor:not-allowed;top:0;color:var(--bg);background-color:color-mix(in oklch,var(--bg),white 15%)}:is(.Button,.supabase-auth-ui_ui-container) button[aria-disabled=true] svg path{fill:var(--bg)}:is(.Button,.supabase-auth-ui_ui-container) button[aria-disabled=true] .LoadingSpinner{--spinner-color: var(--bg)}.supabase-auth-ui_ui-container button:not([aria-disabled=true]){transition-delay:.1s}.Button:hover button:not([aria-disabled=true]),.supabase-auth-ui_ui-container button:hover:not([aria-disabled=true]){background:var(--button-hovered);top:-.375em;box-shadow:0 .375em 0 var(--button-side),.375em .375em 0 var(--bg-shadow);transition:top .1s cubic-bezier(.47,4,.41,.8),box-shadow .1s cubic-bezier(.47,4,.41,.8)}.Button:active button:not([aria-disabled=true]),.Button:has(button:active) button:not([aria-disabled=true]),.supabase-auth-ui_ui-container button:active:not([aria-disabled=true]){background:var(--button-pressed);top:.25em;box-shadow:0 -.375em 0 var(--bg-shadow),0 0 0 transparent,0 -.25em 0 inset var(--bg),0 -.25em 0 inset var(--bg),0 -.25em 0 inset var(--bg),0 -.25em 0 inset var(--bg),1em -.125em 0 -.75em inset var(--button-side);transition:top 10ms cubic-bezier(.47,1,.41,.8),box-shadow 10ms cubic-bezier(.47,1,.41,.8)}@media (max-width: 600px){.Button button,.supabase-auth-ui_ui-container button{font-size:1rem;padding:.4em .75em}}.LoadingSpinner{--spinner-color: var(--fg);width:1em;height:1em;border:6px solid var(--spinner-color);border-bottom-color:transparent;border-radius:50%;display:inline-block;box-sizing:border-box;animation:rotation 1s linear infinite;position:relative;top:.125em}.LoadingSpinner button:disabled{border:3px solid var(--text-weak);border-bottom-color:transparent}@keyframes rotation{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.AdminLessonCard{transition:background-color .15s}.AdminLessonCard:hover{background-color:var(--secondary-dark);color:var(--secondary-text)}.AdminLessonCard.inactive{opacity:.4}.AdminLessonCard.inactive:hover{opacity:1}.AdminLessonCard .lesson-main{display:grid;grid-template-columns:57px 57px 40px 40px 1fr 90px 90px 50px 50px 80px 200px;align-items:center;gap:.5rem;padding:.25rem .75rem}.AdminLessonCard .thumbnail-cell{width:57px;height:57px;overflow:hidden}.AdminLessonCard .thumbnail-cell img{width:57px;height:57px;object-fit:cover;image-rendering:pixelated;display:block}.AdminLessonCard .tinted-thumbnail{width:57px;height:57px}.AdminLessonCard .tinted-thumbnail img{height:100%;image-rendering:pixelated;transform:none}.AdminLessonCard .hue-cell{position:relative}.AdminLessonCard .hue-cell .hue-swatch{width:32px;height:24px;border:none;border-radius:4px;display:flex;align-items:center;justify-content:center;font-size:.65rem;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.5);font-weight:600;cursor:pointer}.AdminLessonCard .cell{font-size:.85rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.AdminLessonCard .title-cell{font-weight:600}.AdminLessonCard .price-id-cell{word-break:break-all;white-space:normal;line-height:1}.AdminLessonCard .price-id-cell .price-id{font-family:monospace;font-size:.7rem;color:var(--text-weak)}.AdminLessonCard .last-rendered-cell{display:flex;align-items:center;gap:.5rem;font-size:.8rem;overflow:visible}.AdminLessonCard .icon-button{background:none;border:none;padding:.25rem .5rem;cursor:pointer;font-size:1rem;opacity:.7;transition:opacity .2s;color:var(--text)}.AdminLessonCard .icon-button:hover:not(:disabled){opacity:1}.AdminLessonCard .icon-button:disabled{opacity:.5;cursor:not-allowed;animation:spin 1s linear infinite}.AdminLessonCard .lesson-summary{padding:.25rem .75rem;font-size:.8rem;font-style:italic;color:var(--text-weak)}.AdminLessonCard .lesson-summary a{color:var(--text-weak)}.AdminLessonCard .lesson-summary .admin-link{font-size:.75rem}.AdminLessonCard .lesson-assignments{padding:.25rem .75rem .5rem}.AdminLessonCard.orphan{background-color:var(--bg-inset)}.AdminLessonCard .orphan-actions{padding:.25rem .75rem;font-size:.8rem}.AdminLessonCard .orphan-warning{color:var(--red)}.AdminLessonCard .expand-button{background:none;border:none;cursor:pointer;font-size:.8rem;color:var(--text-weak);padding:.25rem 0}.AdminLessonCard .expand-button:hover{color:var(--text)}.AdminAssignmentList{margin-top:.25rem;padding-left:1rem}.AdminAssignmentList .no-assignments{font-size:.8rem;color:var(--text-weak)}.AdminAssignmentList .assignment-row{display:flex;align-items:center;gap:.75rem;padding:.35rem 0;font-size:.8rem;color:var(--text-weak)}.AdminAssignmentList .assignment-number{font-weight:600;width:2rem}.AdminAssignmentList .assignment-title{flex:1}.AdminAssignmentList .assignment-tag{width:5rem;text-align:center;font-size:.75rem}.AdminAssignmentList .assignment-tag.warning{color:var(--red)}.AdminAssignmentList .assignment-rendered{width:10rem;font-size:.75rem}.AdminAssignmentList .assignment-actions{width:2rem;text-align:center}.AdminAssignmentList .icon-button{background:none;border:none;padding:.25rem .5rem;cursor:pointer;font-size:.85rem;opacity:.7;transition:opacity .2s;color:var(--text)}.AdminAssignmentList .icon-button:hover:not(:disabled){opacity:1}.AdminAssignmentList .icon-button:disabled{opacity:.5;cursor:not-allowed;animation:spin 1s linear infinite}.HuePicker .backdrop{position:fixed;inset:0;z-index:10}.HuePicker .panel{position:absolute;top:calc(100% + .25rem);left:0;z-index:11;width:180px;padding:.75rem;border-radius:.5rem;background-color:var(--bg-inset);box-shadow:0 .5rem 1rem #00000040}.HuePicker input[type=range]{appearance:none;-webkit-appearance:none;width:100%;height:.75rem;margin:0;padding:0;border:none;border-radius:.375rem;cursor:pointer}.HuePicker input[type=range]::-webkit-slider-runnable-track{height:.75rem;background:transparent;border-radius:.375rem}.HuePicker input[type=range]::-moz-range-track{height:.75rem;background:transparent;border-radius:.375rem}.HuePicker input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:.75rem;height:.75rem;border-radius:50%;background:var(--text);box-shadow:0 0 0 2px var(--bg-inset)}.HuePicker input[type=range]::-moz-range-thumb{width:.75rem;height:.75rem;border:none;border-radius:50%;background:var(--text);box-shadow:0 0 0 2px var(--bg-inset)}.ToastContainer{position:fixed;bottom:1rem;right:1rem;z-index:9999;display:flex;flex-direction:column;gap:.5rem;max-width:400px}.ToastContainer .toast{display:flex;align-items:stretch;border-radius:6px;color:#fff;font-size:1.1em;cursor:pointer;animation:toast-in .5s cubic-bezier(.2,2,.2,.8);line-height:1.4;word-break:break-word;background-color:var(--secondary-dark);box-shadow:0 .25em .5em var(--bg-inset);overflow:hidden}.ToastContainer .toast.dismissing{animation:toast-out .5s cubic-bezier(.2,2,.2,.8) forwards}.ToastContainer .icon{display:flex;align-items:center;justify-content:center;padding:.75rem;font-size:1.1em;background-color:var(--text-weak);color:var(--fg)}.ToastContainer .icon.success{background-color:var(--green)}.ToastContainer .icon.error{background-color:var(--red)}.ToastContainer .text{padding:.75rem 1rem}@keyframes toast-in{0%{opacity:0;transform:translate(100%) scale(.1)}to{opacity:1;transform:translate(0) scale(1)}}@keyframes toast-out{0%{opacity:1;transform:translate(0) scale(1)}to{opacity:0;transform:translate(100%) scale(.1)}}.AdminLessonList{margin-top:2rem;width:100vw;margin-left:calc(-50vw + 50%);padding:0 2rem;box-sizing:border-box}.AdminLessonList h2{display:flex;align-items:center;gap:.5rem}.AdminLessonList .expand-all-button{background:none;border:none;cursor:pointer;font-size:.75rem;color:var(--text-weak);margin-left:.5rem}.AdminLessonList .expand-all-button:hover{color:var(--text)}.AdminLessonList .actions{margin:2em 0;display:flex;flex-wrap:wrap;gap:.5rem}.AdminLessonList .error-message{color:var(--red);margin-bottom:1rem}.AdminLessonList .lesson-grid{font-size:.9rem}.AdminLessonList .grid-header{display:grid;grid-template-columns:57px 57px 40px 40px 1fr 90px 90px 50px 50px 80px 200px;gap:.5rem;padding:.75rem;background-color:var(--bg-inset);font-weight:600;font-size:.85rem}.AdminLessonList .course-group{margin-bottom:.5rem}.AdminLessonList .course-header{padding:.5rem .75rem;font-weight:700;font-size:.9rem;background-color:var(--bg-inset);color:var(--text-strong)}.AdminLessonList .course-header.orphan{color:var(--red)}.AdminCourseHueCell{position:relative}.AdminCourseHueCell .hue-swatch{width:32px;height:24px;border:none;border-radius:4px;display:flex;align-items:center;justify-content:center;font-size:.65rem;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.5);font-weight:600;cursor:pointer}.AdminCourseList{margin-top:2rem;width:100vw;margin-left:calc(-50vw + 50%);padding:0 2rem;box-sizing:border-box}.AdminCourseList .actions{margin:2em 0;display:flex;flex-wrap:wrap;gap:.5rem}.AdminCourseList .error-message{color:var(--red);margin-bottom:1rem}.AdminCourseList .thumbnail-cell{width:57px;padding:.25rem!important}.AdminCourseList .thumbnail-cell img{width:57px;height:57px;object-fit:cover;image-rendering:pixelated;display:block}.AdminCourseList .hue-cell{width:32px;padding:.25rem!important}.AdminCourseList .icon-button{background:none;border:none;padding:.25rem .5rem;cursor:pointer;font-size:1rem;opacity:.7;transition:opacity .2s}.AdminCourseList .icon-button:hover:not(:disabled){opacity:1}.AdminCourseList .icon-button:disabled{opacity:.5;cursor:not-allowed;animation:spin 1s linear infinite}.AdminCourseList table{width:100%;border-collapse:collapse;font-size:.9rem}.AdminCourseList th{padding:.75rem;text-align:left;border-bottom:1px solid var(--secondary-dark);background-color:var(--bg-inset);font-weight:600}.AdminCourseList td{padding:.75rem;text-align:left}.AdminCourseList tbody tr:hover{background-color:var(--secondary-dark);color:var(--secondary-text)}.AdminCourseList .price-id-cell{word-break:break-all;width:4em;line-height:1}.AdminCourseList .price-id-cell .price-id{font-family:monospace;font-size:.75rem;color:var(--text-weak);line-height:1;display:inline-block}.AdminCourseList .last-rendered-cell{display:flex;align-items:center;gap:.5rem}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.AdminSalePanel{margin-top:2rem;width:100vw;margin-left:calc(-50vw + 50%);padding:0 2rem;box-sizing:border-box}.AdminSalePanel .error-message{color:var(--error, #d32f2f)}.AdminSalePanel table{width:100%;border-collapse:collapse;font-size:.9rem}.AdminSalePanel th{padding:.75rem;text-align:left;border-bottom:1px solid var(--secondary-dark);background-color:var(--bg-inset);font-weight:600}.AdminSalePanel td{padding:.75rem;text-align:left}.AdminSalePanel tbody tr:hover,.AdminSalePanel tr.active{background-color:var(--secondary-dark);color:var(--secondary-text)}.AdminSalePanel .create-form{display:flex;gap:.5em;align-items:center;margin-top:1em}.AdminSalePanel .create-form input{padding:.4em .6em;border:1px solid var(--border);border-radius:4px;background:var(--bg-inset);color:var(--text);font-size:.9em}.AdminSalePanel .create-form input[type=number]{width:5em}.AdminCouponPanel{margin-top:2rem;width:100vw;margin-left:calc(-50vw + 50%);padding:0 2rem;box-sizing:border-box}.AdminCouponPanel .error-message{color:var(--error, #d32f2f)}.AdminCouponPanel .table-wrapper{overflow-x:auto}.AdminCouponPanel table{width:100%;border-collapse:collapse;font-size:.85rem}.AdminCouponPanel th{padding:.5rem .6rem;text-align:left;border-bottom:1px solid var(--secondary-dark);background-color:var(--bg-inset);font-weight:600;white-space:nowrap}.AdminCouponPanel td{padding:.5rem .6rem;text-align:left;white-space:nowrap}.AdminCouponPanel tbody tr:hover{background-color:var(--secondary-dark);color:var(--secondary-text)}.AdminCouponPanel tr.inactive{opacity:.5}.AdminCouponPanel .slug{font-family:monospace;font-weight:600}.AdminCouponPanel .create-form{margin-top:1em;display:flex;flex-direction:column;gap:.5em}.AdminCouponPanel .create-form .form-row{display:flex;gap:.5em;align-items:center;flex-wrap:wrap}.AdminCouponPanel .create-form input,.AdminCouponPanel .create-form select{padding:.4em .6em;border:1px solid var(--border);border-radius:4px;background:var(--bg-inset);color:var(--text);font-size:.9em}.AdminCouponPanel .create-form input[type=number]{width:5em}.AdminCouponPanel .create-form input[type=text]{width:10em}.AdminCouponPanel .create-form label{display:flex;align-items:center;gap:.3em;font-size:.9em}.AdminGiftCodePanel{margin-top:2rem;width:100vw;margin-left:calc(-50vw + 50%);padding:0 2rem;box-sizing:border-box}.AdminGiftCodePanel .error-message{color:var(--red)}.AdminGiftCodePanel .table-wrapper{overflow-x:auto}.AdminGiftCodePanel table{width:100%;border-collapse:collapse;font-size:.85rem}.AdminGiftCodePanel th{padding:.5rem .6rem;text-align:left;border-bottom:1px solid var(--secondary-dark);background-color:var(--bg-inset);font-weight:600;white-space:nowrap}.AdminGiftCodePanel td{padding:.5rem .6rem;text-align:left;white-space:nowrap}.AdminGiftCodePanel tbody tr:hover{background-color:var(--secondary-dark);color:var(--secondary-text)}.AdminGiftCodePanel tr.redeemed{opacity:.5}.AdminGiftCodePanel .code{font-family:monospace;font-weight:600;letter-spacing:.1em}.AdminGiftCodePanel .create-form{margin-top:1em;display:flex;flex-direction:column;gap:.5em}.AdminGiftCodePanel .create-form .form-row{display:flex;gap:.5em;align-items:center;flex-wrap:wrap}.AdminGiftCodePanel .create-form select{padding:.4em .6em;background:var(--bg-inset);color:var(--text);border:none;border-radius:4px;font-size:.9em}.AdminGiftCodePanel .created-code{display:flex;align-items:center;gap:.5em;padding:.5em .75em;background:var(--bg-inset);border-radius:4px;width:fit-content;max-width:100%}.AdminGiftCodePanel .created-code .link{font-family:monospace;word-break:break-all}.CopyButton{background:none;border:none;color:var(--text-weak);cursor:pointer;padding:.25em}.CopyButton:hover{color:var(--text)}.AdminPppPanel{margin-top:2rem;width:100vw;margin-left:calc(-50vw + 50%);padding:0 2rem;box-sizing:border-box}.AdminPppPanel .result{margin-top:.5em;color:var(--text-weak)}.AdminPppPanel .factor-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.4em;margin-top:1em}.AdminPppPanel .factor-item{display:flex;justify-content:space-between;align-items:center;background:var(--bg-inset);padding:.3em .6em;border-radius:4px;font-size:.85em}.AdminPppPanel .factor-item .country{font-weight:600}.AdminPppPanel .factor-item .discount{color:var(--green)}.AdminReferrerPanel{margin-top:2rem;width:100vw;margin-left:calc(-50vw + 50%);padding:0 2rem;box-sizing:border-box}.AdminReferrerPanel .error-message{color:var(--red)}.AdminReferrerPanel .content{display:flex;gap:2rem;align-items:flex-start}.AdminReferrerPanel .pie-section{flex-shrink:0;display:flex;flex-direction:column;align-items:center}.AdminReferrerPanel .pie-chart{width:300px;height:300px}.AdminReferrerPanel .pie-chart svg{width:100%;height:100%}.AdminReferrerPanel .group-control{margin-top:.5em;font-size:.85em;color:var(--text-weak);display:flex;align-items:center;gap:.4em;cursor:pointer;-webkit-user-select:none;user-select:none}.AdminReferrerPanel .list{flex-shrink:0;min-width:0}.AdminReferrerPanel .list-items{display:flex;flex-direction:column;gap:.15em;max-height:350px;overflow-y:auto}.AdminReferrerPanel .list-header{display:flex;align-items:center;gap:.5em;padding:.3em .5em;font-size:.75em;font-weight:600;color:var(--text-weak);border-bottom:1px solid var(--secondary-dark);position:sticky;top:0;background:var(--bg);z-index:1}.AdminReferrerPanel .list-header .sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.AdminReferrerPanel .list-header .sortable:hover{color:var(--text)}.AdminReferrerPanel .list-header .sortable.active{color:var(--primary)}.AdminReferrerPanel .list-header .sortable.active:after{content:" ▼";font-size:.7em}.AdminReferrerPanel .list-item{display:flex;align-items:center;gap:.5em;padding:.3em .5em;border-radius:4px;font-size:.85em}.AdminReferrerPanel .list-item:hover{background:var(--bg-inset)}.AdminReferrerPanel .list-total{display:flex;align-items:center;gap:.5em;padding:.3em .5em;font-size:.85em;font-weight:600;position:sticky;bottom:0;background:var(--bg);border-top:1px solid var(--secondary-dark);z-index:1}.AdminReferrerPanel .swatch{width:12px;height:12px;border-radius:2px;flex-shrink:0}.AdminReferrerPanel .source-label{color:var(--text-weak);font-size:.85em;min-width:5em}.AdminReferrerPanel .detail-label{font-weight:600;flex:1;min-width:0}.AdminReferrerPanel .visits-col,.AdminReferrerPanel .sales-col,.AdminReferrerPanel .conv-col{width:4em;text-align:right;flex-shrink:0}.AdminReferrerPanel .conv-col{color:var(--text-weak)}.AdminReferrerPanel .value{width:5.5em;text-align:right;flex-shrink:0;white-space:nowrap}@media (max-width: 1200px){.AdminReferrerPanel .content{flex-direction:column;align-items:center}.AdminReferrerPanel .pie-chart{width:250px;height:250px}}.Checkbox{display:inline-flex;align-items:center;gap:.5em;cursor:pointer;-webkit-user-select:none;user-select:none}.Checkbox input{display:none}.Checkbox .box{display:flex;align-items:center;justify-content:center;width:2em;height:2em;border-radius:4px;background:var(--checkbox-bg);font-size:.8em;flex-shrink:0;color:transparent}.Checkbox.checked .box{color:var(--checkbox-check)}.AdminSalesChart{flex:1;min-width:0;display:flex;flex-direction:column}.AdminSalesChart h2{display:flex;align-items:baseline;gap:.75em}.AdminSalesChart .totals{font-size:.55em;font-weight:400;color:var(--text-weak)}.AdminSalesChart .error-message{color:var(--red)}.AdminSalesChart .sort-control{margin-bottom:.75em;display:flex;align-items:center;gap:.5em;font-size:.85em;color:var(--text-weak)}.AdminSalesChart .sort-control button{padding:.3em .7em;background:var(--bg-inset);color:var(--text-weak);border:none;border-radius:4px;cursor:pointer;font-size:.9em}.AdminSalesChart .sort-control button.active{background:var(--primary);color:var(--primary-text)}.AdminSalesChart .chart{display:flex;align-items:flex-end;gap:2px;flex:1;min-height:200px;overflow-x:auto;padding-bottom:1.5em;position:relative}.AdminSalesChart .bar-col{display:flex;flex-direction:column;align-items:center;flex:1;min-width:28px;max-width:60px;height:100%}.AdminSalesChart .bar-value{font-size:.65em;color:var(--text-weak);white-space:nowrap;margin-bottom:.25em}.AdminSalesChart .bar-track{flex:1;width:100%;display:flex;align-items:flex-end}.AdminSalesChart .bar-fill{width:100%;background:var(--primary);border-radius:2px 2px 0 0;min-height:2px;transition:height .2s ease}.AdminSalesChart .bar-label{font-size:.65em;color:var(--text-weak);white-space:nowrap;margin-top:.25em;position:absolute;bottom:0}.AdminRecentSales{flex:1;min-width:0}.AdminRecentSales h2{margin-bottom:.5em}.AdminRecentSales .error-message{color:var(--red)}.AdminRecentSales .list-items{display:flex;flex-direction:column;gap:.15em;max-height:350px;overflow-y:auto}.AdminRecentSales .list-header{display:flex;align-items:center;gap:.5em;padding:.3em .5em;font-size:.75em;font-weight:600;color:var(--text-weak);border-bottom:1px solid var(--secondary-dark)}.AdminRecentSales .list-item{display:flex;align-items:center;gap:.5em;padding:.3em .5em;border-radius:4px;font-size:.85em}.AdminRecentSales .list-item:hover{background:var(--bg-inset)}.AdminRecentSales .product-col{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}.AdminRecentSales .amount-col{width:5em;text-align:right;flex-shrink:0;white-space:nowrap}.AdminRecentSales .referrer-col{width:7em;flex-shrink:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-weak)}.AdminRecentSales .ppp-col{width:3em;text-align:right;flex-shrink:0;color:var(--text-weak)}.AdminRecentSales .time-col{width:5em;text-align:right;flex-shrink:0;color:var(--text-weak);white-space:nowrap}.AdminCompletionChart{margin-top:2rem;width:100vw;margin-left:calc(-50vw + 50%);padding:0 2rem;box-sizing:border-box}.AdminCompletionChart h2{display:flex;align-items:baseline;gap:.75em}.AdminCompletionChart .totals{font-size:.55em;font-weight:400;color:var(--text-weak)}.AdminCompletionChart .error-message{color:var(--red)}.AdminCompletionChart .chart{position:relative;padding-left:2em}.AdminCompletionChart .y-labels{position:absolute;left:0;top:0;width:2em;height:200px}.AdminCompletionChart .y-label{position:absolute;right:.4em;transform:translateY(-50%);font-size:.65em;color:var(--text-weak);white-space:nowrap}.AdminCompletionChart svg{width:100%;height:200px;display:block;overflow:visible}.AdminCompletionChart .gridline{stroke:var(--bg-inset-edge);stroke-width:1;vector-effect:non-scaling-stroke}.AdminCompletionChart .line{fill:none;stroke-width:2;vector-effect:non-scaling-stroke}.AdminCompletionChart .line.lessons{stroke:var(--primary)}.AdminCompletionChart .line.assignments{stroke:var(--secondary)}.AdminCompletionChart .dots-overlay{position:absolute;left:2em;right:0;top:0;height:200px;pointer-events:none}.AdminCompletionChart .dot{position:absolute;width:6px;height:6px;border-radius:50%;transform:translate(-50%,-50%);pointer-events:auto}.AdminCompletionChart .dot.lessons{background:var(--primary)}.AdminCompletionChart .dot.assignments{background:var(--secondary)}.AdminCompletionChart .x-labels{display:flex;justify-content:space-between;margin-top:.25em}.AdminCompletionChart .x-label{font-size:.65em;color:var(--text-weak);flex:1;text-align:center;white-space:nowrap}.AdminCompletionChart .legend{display:flex;gap:1em;margin-top:.75em;font-size:.85em;color:var(--text-weak)}.AdminCompletionChart .legend-item{display:inline-flex;align-items:center;gap:.4em}.AdminCompletionChart .legend-item .swatch{display:inline-block;width:.9em;height:.9em;border-radius:2px}.AdminCompletionChart .legend-item.lessons .swatch{background:var(--primary)}.AdminCompletionChart .legend-item.assignments .swatch{background:var(--secondary)}.AdminToolsPanel{margin-top:2rem;width:100vw;margin-left:calc(-50vw + 50%);padding:0 2rem;box-sizing:border-box}.AdminToolsPanel .user-id{display:flex;align-items:center;gap:.5em;margin-bottom:1rem;font-size:.9em;color:var(--text-weak)}.AdminToolsPanel .user-id .value{font-family:monospace;color:var(--text)}.AdminToolsPanel .tool-row{display:flex;gap:1rem;align-items:center;flex-wrap:wrap}.AdminToolsPanel .tool-description{color:var(--text-weak);font-size:.9em}.AdminToolsPanel .tool-message{color:var(--green);margin-top:.5rem}.AdminToolsPanel .tool-error{color:var(--red);margin-top:.5rem}.AdminPage{padding:2rem}.AdminPage h1{margin-bottom:0;margin-top:0;width:100vw;margin-left:calc(-50vw + 50%);padding:0 2rem;box-sizing:border-box}.AdminPage .admin-nav{display:flex;gap:.5em;flex-wrap:wrap;padding:.5em 2rem;width:100vw;margin-left:calc(-50vw + 50%);box-sizing:border-box}.AdminPage .admin-nav a{padding:.3em .7em;font-size:.85em;background:var(--bg-inset);border-radius:4px;color:var(--text-weak);text-decoration:none}.AdminPage .admin-nav a:hover{color:var(--text)}.AdminPage .sales-row{display:flex;gap:2rem;align-items:stretch;margin-top:0;width:100vw;margin-left:calc(-50vw + 50%);padding:0 2rem;box-sizing:border-box}@media (max-width: 1200px){.AdminPage .sales-row{flex-direction:column}}.AssignmentsPage h2{margin-bottom:1em}.AssignmentsPage .error{color:var(--red)}.AssignmentsList{display:flex;flex-wrap:wrap;gap:1em}.AssignmentsList .assignment-preview{overflow:hidden;width:30%;background-color:var(--secondary);color:var(--secondary-text);cursor:pointer;padding:.25em 0;margin:0;outline:solid 0 var(--primary);text-decoration:none;position:relative;transition:transform .2s cubic-bezier(.47,3,.41,.8),outline-width .2s cubic-bezier(.47,5,.41,.8),box-shadow .2s ease}.AssignmentsList .assignment-preview h2{margin:0 0 0 .25em;font-size:1.25em;color:var(--secondary-text);display:flex;gap:.2em;align-items:center}.AssignmentsList .assignment-preview h2 .number{font-size:1.75em}.AssignmentsList .assignment-preview h2 .title{font-size:.75em}.AssignmentsList .assignment-preview .worksheet{flex-grow:1;flex-basis:100%;display:flex;align-items:center;justify-content:center;margin-top:1em}.AssignmentsList .assignment-preview .worksheet img{padding:.5em;background-color:var(--bg);max-width:10em;max-height:6em;mix-blend-mode:luminosity;opacity:.75;transform:rotate(-3deg) scale(1.1);border-bottom:solid .25em var(--bg-inset-edge);border-radius:.5em;transition:transform .1s ease-in-out;position:relative;left:-.5em;margin-bottom:1em}.AssignmentsList .assignment-preview:hover{transform:scale(1.05);box-shadow:0 .5em color-mix(in oklch,var(--bg),var(--bg-shadow) 20%);outline:solid .25em var(--primary)}.AssignmentsList .assignment-preview:hover .worksheet img{transform:rotate(4deg) scale(1.1)}.Card{overflow:hidden;background-color:var(--card-color);color:var(--card-text);border-radius:.5em;box-shadow:0 .25em color-mix(in oklch,var(--bg),var(--bg-shadow) 20%);cursor:pointer;margin:0;padding:.5em .5em 2.5em;box-sizing:border-box;outline:solid 0 var(--primary);text-decoration:none;position:relative;-webkit-user-select:none;user-select:none;transition:transform .2s cubic-bezier(.47,3,.41,.8),outline-width .2s cubic-bezier(.47,5,.41,.8)}.Card h2{margin:0 0 0 .25em;font-size:1.25em;color:var(--card-text);text-shadow:var(--card-heading-shadow);line-height:1}.Card p{margin:0}.Card .completion{display:flex;align-items:center;justify-content:center;background-color:var(--secondary-dark);width:1.5em;height:1.5em;font-size:.5em;color:var(--bg);outline:solid .25em var(--bg);position:absolute!important;bottom:0;right:0;font-size:1.25em;border-radius:50% 0 0}.Card .completion.complete{background-color:var(--green);color:#fff}.Card .completion.complete svg{filter:drop-shadow(0 .1em 0 var(--green-dark))}.Card:hover{transform:scale(1.05);box-shadow:0 .5em color-mix(in oklch,var(--bg),var(--bg-shadow) 20%);outline:solid .25em var(--primary)}.Card:hover h1,.Card:hover h2{color:var(--card-text)}.CheckoutAuth{display:flex;flex-direction:column;align-items:center;gap:1.5em;margin-top:1em}.CheckoutAuth .checkout-auth-context p{color:var(--text-weak);line-height:1.6}.CheckoutAuth .checkout-auth-form{width:24em;max-width:100%;display:flex;flex-direction:column;gap:1em}.CheckoutAuth .checkout-auth-form .auth-link{text-align:center;font-size:.9rem;color:var(--text-weak);margin-top:.75em}.CartSummary{padding:1em 1.25em;background:var(--bg-inset);border-radius:6px;margin:1em 0}.CartSummary .label{font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;margin:0 0 .75em;color:var(--text-weak)}.CartSummary .items .item{display:flex;justify-content:space-between;align-items:baseline;gap:1em;padding:.4em 0;border-bottom:1px solid var(--bg-inset-edge)}.CartSummary .items .item .item-title{font-weight:500}.CartSummary .items .item .item-title .item-type{font-weight:400;opacity:.5;font-size:.9em}.CartSummary .items .item .item-price{font-weight:600;white-space:nowrap}.CartSummary .subtotal{display:flex;justify-content:space-between;align-items:baseline;gap:1em;padding:.5em 0 0;font-size:.9rem;opacity:.7}.CartSummary .discount{display:flex;justify-content:space-between;align-items:baseline;gap:1em;padding:.25em 0;color:var(--primary);font-weight:500;font-size:.9rem}.CartSummary .discount.lesson-credit{justify-content:flex-start}.CartSummary .total{display:flex;justify-content:space-between;align-items:baseline;gap:1em;padding:.6em 0 0;font-weight:700;font-size:1.05rem}.CartSummary .guarantee{font-size:.8rem;margin:.75em 0 0;opacity:.6}.CheckoutPage .checkout-form{border-radius:8px;overflow:hidden;margin:2rem 0}.ContactPage{max-width:600px;margin:4em auto;padding:0 1.5em}.ContactPage .inner{display:flex;flex-direction:column;gap:.5em}.ContactPage .discord-banner{display:flex;align-items:center;gap:1em;padding:1em 1.25em;background:var(--bg-inset);border-radius:.5em;margin-bottom:1.5em}.ContactPage .discord-banner .discord-icon{font-size:1.75em;color:var(--primary);flex-shrink:0}.ContactPage .discord-banner .discord-text{display:flex;flex-direction:column;gap:.15em;flex:1}.ContactPage .discord-banner .discord-text strong{font-size:.95em}.ContactPage .discord-banner .discord-text span{font-size:.85em;color:var(--text-weak)}.ContactPage h1{margin:0 0 .25em}.ContactPage .subtitle{color:var(--text-weak);margin:0 0 1.5em}.ContactPage .form{display:flex;flex-direction:column;gap:1.25em}.ContactPage .field{display:flex;flex-direction:column;gap:.4em}.ContactPage .field label{font-size:.9em;font-weight:600;color:var(--text)}.ContactPage .field select,.ContactPage .field textarea{background-color:var(--bg-inset);color:var(--text);font-size:1rem;padding:.5em 1em;border:none;border-radius:.4em;border-top:.125em solid var(--bg-inset-edge);font-family:inherit}:is(.ContactPage .field select,.ContactPage .field textarea):focus{outline:solid 2px var(--primary)}.ContactPage .field textarea{min-height:8em;resize:vertical}.ContactPage .field select{cursor:pointer}.ContactPage .error{color:var(--red);font-size:.9em;margin:0}.ContactPage .submit-row{display:flex}.ContactPage .success{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.75em;padding:4em 1em}.ContactPage .success .success-icon{font-size:3.5em;color:var(--green)}.ContactPage .success h2{margin:0}.ContactPage .success p{color:var(--text-weak);margin:0;text-align:center}@media (max-width: 600px){.ContactPage{margin:2em auto}.ContactPage .discord-banner{flex-direction:column;text-align:center}.ContactPage .discord-banner .discord-text{align-items:center}}.CardList{display:flex;flex-wrap:wrap;justify-content:flex-start;align-items:center;margin:0;padding:0;box-sizing:border-box;--gap-size: 1rem;gap:var(--gap-size)}.CardList .item{flex:0 0 calc(100% / 3 - (var(--gap-size) * 2 / 3))}.CardList .item .Card{height:10em;position:relative}.CardList .item .Card h1,.CardList .item .Card h2{color:var(--card-text)}.CardList .item .Card .thumbnail{width:100%;height:100%;border-radius:.5em .5em 0 0;margin:0;padding:0;position:absolute;top:0;left:0;z-index:0;display:flex;align-items:center;justify-content:center}.CardList .item .Card>*{position:relative;z-index:1}.CardList .item .Card:hover .tinted-thumbnail img{opacity:.8;filter:grayscale(0%) sepia(0%) hue-rotate(0deg) saturate(1) brightness(1);transform:rotate(4deg) scale(1.1)}.DiscordPage{max-width:var(--content-width);margin:0 auto;padding:2rem 1rem}.DiscordPage h1{margin-bottom:1.5rem}.DiscordLinkSection{margin-bottom:2.5rem}.DiscordLinkSection p,.DiscordLinkAction p{margin-bottom:1rem}.DiscordLinkAction .error-message{color:var(--red);margin-top:.75rem}.DiscordLinkedStatus .status{font-size:1.1rem}.DiscordLinkedStatus .status .weak{color:var(--text-weak)}.DiscordLinkedStatus .actions{display:flex;gap:.5rem;margin-top:.75rem}.DiscordLinkedStatus ul{font-size:1.2em;font-weight:600}.DiscordLinkedStatus ul a{color:var(--text);text-decoration:none}.DiscordLinkedStatus ul a:hover{text-decoration:underline}.DiscordLinkedStatus ul .status{font-size:.9em;font-weight:400;color:var(--text-weak)}.DiscordInvite{padding:1.5rem;background:var(--bg-inset);border-radius:6px}.DiscordInvite h2{margin-top:0;margin-bottom:.75rem}.DiscordInvite p{margin-bottom:1rem}.FaqPage{max-width:720px;margin:3em auto;padding:0 1.5em}.FaqPage h1{margin-bottom:1.5em}.FaqPage .faq-list{display:flex;flex-direction:column;gap:2em}.FaqPage .faq-item h2{font-size:1rem;margin-bottom:.4em;color:var(--text)}.FaqPage .faq-item p{color:var(--text-weak);font-size:.95rem;margin:0}.HomeBanner{--banner-accent: #2b2b7e;width:100vw;position:relative;left:50%;transform:translate(-50%);margin-top:calc(var(--top-bar-height) * -1);margin-bottom:3em;box-sizing:border-box;background:var(--bg-inset)}.HomeBanner:after{content:"";display:block;height:.5em;background:var(--primary);margin-top:2em;box-shadow:0 .25em 0 var(--primary-side)}.HomeBanner .banner{position:relative;overflow:hidden;isolation:isolate;min-height:36em;display:flex;flex-direction:column}.HomeBanner .banner-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:top;display:block;image-rendering:pixelated;z-index:-2}.HomeBanner .banner:before{content:"";position:absolute;inset:0;background:var(--bg);opacity:0;z-index:-1}.HomeBanner .banner:after{content:"";position:absolute;left:0;right:0;bottom:0;height:5em;background:linear-gradient(to bottom,transparent,var(--bg-inset));z-index:-1;pointer-events:none}.HomeBanner .content{padding:calc(var(--top-bar-height) + 2em) 2em 3em;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;flex:1;gap:1.5em;box-sizing:border-box}.HomeBanner h1{font-size:4rem;font-weight:800;margin:0}.HomeBanner .banner:not(.parallax) h1{color:var(--bg);text-shadow:.07em 0 0 var(--primary),-.07em 0 0 var(--primary),0 .07em 0 var(--primary),0 -.07em 0 var(--primary),.07em .07em 0 var(--primary),-.07em -.07em 0 var(--primary),.07em -.07em 0 var(--primary),-.07em .07em 0 var(--primary),.12em .12em 0 var(--bg),.19em .12em 0 var(--bg),.05em .12em 0 var(--bg),.12em .19em 0 var(--bg),.12em .05em 0 var(--bg),.19em .19em 0 var(--bg),.05em .05em 0 var(--bg),.19em .05em 0 var(--bg),.05em .19em 0 var(--bg)}.HomeBanner .banner.parallax .content{gap:.5em}.HomeBanner .banner.parallax h1{color:var(--bg-light);text-shadow:none}.HomeBanner .banner.parallax .tagline{color:var(--bg-light);font-weight:600;line-height:1.1;text-shadow:.02em .02em .2em var(--fg)}.HomeBanner .tagline{font-size:1.05rem;color:var(--fg);width:560px;max-width:100%;margin:0;text-align:center;line-height:1.6;padding:.6em 1em;border-radius:.5em;background:var(--banner-accent);box-shadow:inset 0 .3em 0 var(--bg)}.HomeBanner .banner.parallax .tagline{background:none;box-shadow:none}.HomeBanner .ctas{display:flex;flex-direction:column;align-items:center;gap:.75em;padding:4em 1em 3em}.HomeBanner .secondary-cta{font-size:.95rem;color:var(--text-weak);text-decoration:none}.HomeBanner .secondary-cta:hover{color:var(--text);text-decoration:underline}.HomeBanner .social-proof{margin:0;padding:1.5em 1em 0;font-size:.9rem;color:var(--text-weak);text-align:center}@media (max-width: 480px){.HomeBanner h1{font-size:2.5rem}}.CourseBuyGroup{display:flex;flex-direction:column;align-items:center;gap:.4em}.CourseBuyGroup .course-label{font-size:1.2rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;margin-bottom:.5em}.CourseBuyGroup .Button button{font-size:1.1rem;padding:.6em 2.5em}@media (max-width: 440px){.CourseBuyGroup .Button button{font-size:.95rem;padding:.5em 1.25em}}.DiscountedPrice.has-discount{display:inline-flex;align-items:baseline;gap:.35em}.DiscountedPrice .original{text-decoration:line-through;opacity:.55;font-size:.9em}.DiscountedPrice .sale{font-weight:700}.DiscountNoticeInline{font-size:.8em;font-weight:600;color:var(--text-weak);margin:-.4em 0 0}.DiscountNoticeInline svg{color:var(--text-weak);margin-right:.3em}@keyframes parallax-banner-clouds-scroll{0%{background-position-x:0}to{background-position-x:calc(-479px * var(--scale))}}@keyframes parallax-banner-flag-flap{0%{background-position-x:0}to{background-position-x:calc(-35px * var(--scale))}}@keyframes parallax-banner-bird-flap{0%{background-position-x:0}to{background-position-x:calc(-32px * var(--scale))}}@keyframes parallax-banner-bird-special{0%{background-position:0 calc(-16px * var(--scale))}33%{background-position:calc(-16px * var(--scale)) calc(-16px * var(--scale))}67%{background-position:0 calc(-16px * var(--scale))}to{background-position:0 calc(-16px * var(--scale))}}.ParallaxBanner{--scale: 1;--parallax-x: 0;--parallax-y: 0;--bg-anchor-x: .3;position:absolute;inset:0;overflow:hidden;z-index:-2}.ParallaxBanner .layer{position:absolute;inset:-60px;background-image:url(/assets/banner-DnQDQPxy.png);background-repeat:no-repeat;background-size:calc(479px * var(--scale)) auto;image-rendering:pixelated;will-change:transform}.ParallaxBanner.snapping .layer{transition:transform .25s ease-out}.ParallaxBanner .layer-0{background-position:calc(var(--bg-anchor-x) * 100%) calc(50% + 715px * var(--scale));transform:translate3d(calc(var(--parallax-x) * -48px),calc(var(--parallax-y) * -24px),0)}.ParallaxBanner .layer-0 .bird{position:absolute;left:calc((100% - 479px * var(--scale)) * var(--bg-anchor-x) + 394px * var(--scale));top:calc(50% + 41px * var(--scale));width:calc(16px * var(--scale));height:calc(16px * var(--scale));background-image:url(/assets/bird-CVK_tNTS.png);background-size:calc(32px * var(--scale)) calc(32px * var(--scale));background-repeat:no-repeat;image-rendering:pixelated;animation:parallax-banner-bird-flap .4s steps(2) infinite}.ParallaxBanner .layer-0 .bird.special{animation:parallax-banner-bird-special .3s step-end 1}.ParallaxBanner .layer-1{background-position:calc(var(--bg-anchor-x) * 100%) calc(50% + 515px * var(--scale));transform:translate3d(calc(var(--parallax-x) * -36px),calc(var(--parallax-y) * -18px),0)}.ParallaxBanner .layer-2{background-position:calc(var(--bg-anchor-x) * 100%) calc(50% + 315px * var(--scale));transform:translate3d(calc(var(--parallax-x) * -26px),calc(var(--parallax-y) * -13px),0)}.ParallaxBanner .layer-2 .flag{position:absolute;left:calc((100% - 479px * var(--scale)) * var(--bg-anchor-x) + 128px * var(--scale));top:calc(50% - 7px * var(--scale));width:calc(7px * var(--scale));height:calc(7px * var(--scale));background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACMAAAAHCAYAAACC5PR5AAAAmElEQVQokWNomLHsPwMDA8OdW7X/YZgBCmBy2AA15NDtZLxzq/b/pyeMDHwyCP0qas2MMMUMDAwMyPLocshiyJYg85Hl0eWQ1TDh8gEp4Ny+uv+4LIHJE2MOC4zx6Qkjg5FTEyN+5bQB8JAraNmC09XEyJ3bV/cfPWSQ9cHkiTGTRUDkE04XEyOHLTSR9aHL4zOTKmmGWgAAQLtrwGlMGGIAAAAASUVORK5CYII=);background-size:calc(35px * var(--scale)) calc(7px * var(--scale));background-repeat:no-repeat;image-rendering:pixelated;animation:parallax-banner-flag-flap .6s steps(5) infinite}.ParallaxBanner .layer-3{background-position:calc(var(--bg-anchor-x) * 100%) calc(50% + 115px * var(--scale));transform:translate3d(calc(var(--parallax-x) * -18px),calc(var(--parallax-y) * -9px),0)}.ParallaxBanner .layer-4{background-position:calc(var(--bg-anchor-x) * 100%) calc(50% - 85px * var(--scale));transform:translate3d(calc(var(--parallax-x) * -12px),calc(var(--parallax-y) * -6px),0)}.ParallaxBanner .layer-5{background-position:calc(var(--bg-anchor-x) * 100%) calc(50% - 285px * var(--scale));transform:translate3d(calc(var(--parallax-x) * -7px),calc(var(--parallax-y) * -3px),0)}.ParallaxBanner .layer-6{background-position-x:0;background-position-y:calc(50% - 485px * var(--scale));background-repeat:repeat-x;animation:parallax-banner-clouds-scroll 90s linear infinite;transform:translate3d(calc(var(--parallax-x) * -3px),calc(var(--parallax-y) * -1px),0)}.ParallaxBanner .layer-7{background-position:calc(var(--bg-anchor-x) * 100%) calc(50% - 685px * var(--scale));transform:translateZ(0)}.HomeBottomCta{margin:3em 0;background:var(--bg-inset);border-radius:1em;padding:2.5em 2em;text-align:center;display:flex;flex-direction:column;align-items:center;gap:.75em}.HomeBottomCta h2{margin:0}.HomeBottomCta p{margin:0;color:var(--text-weak);text-align:center}.HomeBottomCta .guarantee{margin:0;font-size:.85rem;color:var(--text-weak)}.HomeDifferentiator{width:100vw;position:relative;left:50%;transform:translate(-50%);background:var(--bg-inset);padding:1em 2em 3.5em;margin:3em 0;box-sizing:border-box}.HomeDifferentiator .content{max-width:var(--content-width);margin:0 auto}.HomeDifferentiator .content h3{margin-top:1em}.HomeDifferentiator .content p{margin:0 0 1em;color:var(--text);line-height:1.7;font-size:1rem}.HomeDifferentiator .content p:last-child{margin-bottom:0}.HomeDifferentiator .content .kicker{color:var(--text);font-weight:600;font-size:1.05rem;text-align:center;margin-top:1.5em}.HomeDifferentiator h2{color:var(--text)}.HomeEmailSignup{margin:3em 0}.HomeEmailSignup .content{background:var(--bg-inset);border-radius:1em;padding:2em;display:flex;align-items:flex-start;gap:2em}.HomeEmailSignup .text{flex:1}.HomeEmailSignup .text h2{margin:0 0 .4em}.HomeEmailSignup .text p{margin:0;color:var(--text-weak);font-size:.95rem;line-height:1.6}.HomeEmailSignup .kit-form-wrapper{flex:1;margin-top:1em}.HomeEmailSignup .kit-form-wrapper .formkit-form{box-shadow:none!important;max-width:100%!important}.HomeEmailSignup .kit-form-wrapper .formkit-header,.HomeEmailSignup .kit-form-wrapper .formkit-subheader{display:none!important}@media (max-width: 600px){.HomeEmailSignup .content{flex-direction:column;gap:1.25em}}.HomeFaq{margin:3em 0}.HomeFaq .faq-list{display:flex;flex-direction:column;gap:.5em;margin-top:1.5em}.HomeFaq .faq-item{background:var(--bg-inset);border-radius:.6em}.HomeFaq .faq-item summary{cursor:pointer;padding:.75em 1em;font-family:Dosis,sans-serif;font-weight:800;font-size:1rem;color:var(--text);list-style:none;display:flex;justify-content:space-between;align-items:center;-webkit-user-select:none;user-select:none}.HomeFaq .faq-item summary::-webkit-details-marker{display:none}.HomeFaq .faq-item summary:after{content:"+";font-size:1.4rem;color:var(--primary);line-height:1;margin-left:1em;flex-shrink:0}.HomeFaq .faq-item[open] summary:after{content:"−"}.HomeFaq .faq-item p{margin:0 1em .75em;padding-top:.75em;color:var(--text-weak);font-size:.95rem}.HomeFeaturedCourse{scroll-margin-top:calc(var(--top-bar-height) + 1em);margin:3em 0}.HomeFeaturedCourse .header{text-align:center;margin-bottom:1.5em}.HomeFeaturedCourse .header h2{margin:0 0 .4em}.HomeFeaturedCourse .header p{margin:0;color:var(--text-weak);font-size:.95rem;text-align:center}.HomeFeaturedCourse .box{background:var(--bg-inset);border-radius:1em;padding:2em}.HomeFeaturedCourse .box .course-header{display:flex;gap:2em;align-items:flex-start;margin-bottom:.5em}.HomeFeaturedCourse .box .intro{flex:1;min-width:0}.HomeFeaturedCourse .box .intro h2{margin-top:0}.HomeFeaturedCourse .PreviewStats{margin:0 0 1.5em}.HomeFeaturedCourse .curriculum{margin-top:1.5em}.HomeFeaturedCourse .curriculum h3{margin-top:0}.HomeFeaturedCourse .curriculum .list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,1fr);gap:.4em}.HomeFeaturedCourse .curriculum .item{display:flex;align-items:center;gap:.5em;padding:.4em .6em;background:var(--bg);border-radius:.4em;font-size:.85rem;font-weight:500;overflow:hidden}.HomeFeaturedCourse .curriculum .item .thumbnail{width:48px;height:48px;flex-shrink:0;margin:-.4em .5em -.4em -.6em;display:flex;align-items:center;justify-content:center}.HomeFeaturedCourse .curriculum .item .thumbnail img{image-rendering:pixelated;width:57px;height:57px}.HomeFeaturedCourse .curriculum .item .title{color:var(--text);display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;line-height:1;-webkit-box-orient:vertical;overflow:hidden}.HomeFeaturedCourse .curriculum .full-details{text-align:center}.HomeFeaturedCourse .curriculum .full-details a{margin-top:.75em;font-size:.8rem;color:var(--text-weak)}.HomeFeaturedCourse .curriculum .full-details a:hover{color:var(--text);text-decoration:underline}.HomeFeaturedCourse .PurchaseFooter{margin-top:2em}.HomeFeaturedCourse .guarantee{margin:.75em 0 0;text-align:center;font-size:.85rem;color:var(--text-weak);display:none}@media (max-width: 700px){.HomeFeaturedCourse .curriculum .list{grid-template-columns:repeat(2,1fr)}}@media (max-width: 560px){.HomeFeaturedCourse .box .course-header{flex-direction:column}.HomeFeaturedCourse .curriculum .list{grid-template-columns:1fr}}.ContentHtml{line-height:1.75}.ContentHtml a{text-decoration:underline dotted;text-underline-offset:3px}.ContentHtml a:hover{color:var(--text-strong);text-decoration:underline solid}.PreviewStats{display:flex;width:100%;justify-content:space-around;align-items:center;flex-wrap:wrap;gap:.5em}.PreviewStat{display:flex;align-items:center;gap:.5em}.PreviewStat .icon{font-size:2em;color:var(--text-weak)}.PreviewStat .stat{display:flex;flex-direction:column;align-items:center;line-height:1.1}.PreviewStat .stat .value{font-size:1.5em;font-weight:700}.PreviewStat .stat .title{font-size:.7em;text-transform:uppercase;font-weight:500}@media (max-width: 560px){.PreviewStat .icon{font-size:1.5em}.PreviewStat .stat .value{font-size:1.2em}}@media (max-width: 400px){.PreviewStat{flex-direction:column;gap:.25em}.PreviewStat .icon{font-size:1.25em}.PreviewStat .stat .value{font-size:1em}}.PurchaseFooter{display:flex;justify-content:flex-end;align-items:center;gap:1em;width:100%;margin-top:2em}.PurchaseFooter .info{display:flex;flex-direction:column;align-items:flex-end}.PurchaseFooter .info h5{margin:0}.PurchaseFooter .info .price{font-weight:700;font-size:1.25em;line-height:1}.PurchaseFooter .thumbnail{width:3em;height:auto;border-radius:.5em;object-fit:cover;background-color:hsl(var(--hue),50%,50%);box-shadow:.125em .125em 0 var(--bg-inset)}@media (max-width: 540px){.PurchaseFooter{flex-wrap:wrap;justify-content:center}.PurchaseFooter .info{align-items:center;flex:1 0 100%}}.HomeFeatures{margin:3em 0}.HomeFeatures h2{text-align:center}.HomeFeatures .feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1em;margin-top:1.5em}.HomeFeatures .feature-card{background:var(--bg-inset);border-radius:.75em;padding:1.25em 1em;text-align:center}.HomeFeatures .feature-card .feature-icon{width:160px;height:120px;margin:-4em auto .5em;transform:rotate(-5deg);filter:drop-shadow(4px 0 0 var(--bg-inset)) drop-shadow(0 4px 0 var(--bg-inset))}.HomeFeatures .feature-card h4{margin:0 0 .4em;color:var(--primary);font-size:.95rem}.HomeFeatures .feature-card p{margin:0;font-size:.85rem;color:var(--text-weak);text-align:center;line-height:1.5}@media (max-width: 660px){.HomeFeatures .feature-grid{grid-template-columns:repeat(2,1fr)}.HomeFeatures .feature-card .feature-icon{transform:rotate(-5deg) scale(.75);margin-top:-4.5em;margin-bottom:-.5em}}@media (max-width: 400px){.HomeFeatures .feature-grid{grid-template-columns:1fr}}.HomeForYou{margin:3em 0}.HomeForYou h2{margin-bottom:1.5em}.HomeForYou .columns{display:grid;grid-template-columns:1fr 1fr;gap:1.25em}.HomeForYou .column{background:var(--bg-inset);border-radius:.75em;padding:1.5em}.HomeForYou .column h3{margin:0 0 1em;font-size:.95rem;text-transform:uppercase;letter-spacing:.06em}.HomeForYou .column ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.75em}.HomeForYou .column li{display:flex;align-items:flex-start;gap:.65em;font-size:.95rem;color:var(--text);line-height:1.5}.HomeForYou .column li span{flex:1}.HomeForYou .column .icon{flex-shrink:0;width:1em;height:1em;margin-top:.2em}.HomeForYou .column.column--yes h3,.HomeForYou .column.column--yes .icon--yes{color:var(--primary)}.HomeForYou .column.column--no h3{color:var(--text-weak)}.HomeForYou .column.column--no .icon--no{color:var(--text-weak);opacity:.6}@media (max-width: 540px){.HomeForYou .columns{grid-template-columns:1fr}}.HomeInstructor{margin:3em 0}.HomeInstructor h2{margin-bottom:1em}.HomeInstructor .instructor-card{background:var(--bg-inset);border-radius:8px;padding:2em;overflow:hidden}.HomeInstructor .instructor-card h3{margin:0;font-size:1.7rem}.HomeInstructor .instructor-card h3 .username{font-weight:500;opacity:.6;font-size:.8em}.HomeInstructor .instructor-card .credentials{margin:0 0 1em;font-size:.9rem;font-weight:600;opacity:.6;display:flex;align-items:center;flex-wrap:wrap;gap:.25em .75em;white-space:nowrap}.HomeInstructor .instructor-card .credentials .sep{width:.5em;height:.5em;background:var(--text-weak);border-radius:50%}.HomeInstructor .instructor-card p{margin:0 0 .75em;line-height:1.6}.HomeInstructor .instructor-card p:last-child{margin-bottom:0}.HomeInstructor .avatar{float:left;width:110px;height:110px;border-radius:50%;object-fit:cover;margin:0 1.5em .5em 0}.HomeInstructor .instructor-card .examples{margin-top:1.5em;clear:left}.HomeInstructor .instructor-card .examples .examples-label{margin:0 0 .75em;font-size:.9rem;opacity:.6}.HomeInstructor .instructor-card .examples .examples-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:.5em}.HomeInstructor .instructor-card .examples .examples-grid img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:4px;cursor:zoom-in;transition:transform .15s ease}.HomeInstructor .instructor-card .examples .examples-grid img:hover{transform:scale(1.08)}@media (max-width: 600px){.HomeInstructor .avatar{float:none;display:block;margin:0 auto 1em}.HomeInstructor .instructor-card .examples .examples-grid{grid-template-columns:repeat(3,1fr)}}.Lightbox{position:fixed;inset:0;background:var(--overlay);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:1000;cursor:zoom-out;animation:lightbox-fade-in .2s ease}.Lightbox.closing{animation:lightbox-fade-out .2s ease forwards}.Lightbox.closing img{animation:lightbox-scale-out .2s ease forwards}.Lightbox img{width:80vw;height:80vh;object-fit:contain;image-rendering:pixelated;border-radius:4px;cursor:zoom-out;animation:lightbox-scale-in .2s ease}@keyframes lightbox-fade-in{0%{opacity:0}to{opacity:1}}@keyframes lightbox-fade-out{0%{opacity:1}to{opacity:0}}@keyframes lightbox-scale-in{0%{transform:scale(.85)}to{transform:scale(1)}}@keyframes lightbox-scale-out{0%{transform:scale(1)}to{transform:scale(.85)}}.HomeLessonsPreview{margin:3em 0}.HomeLessonsPreview .section-sub{color:var(--text-weak);margin-top:-.5em;margin-bottom:1.5em}.HomeLessonsPreview .browse-more{display:flex;justify-content:center;margin-top:1.5em}.ProductList{display:flex;flex-wrap:wrap;justify-content:flex-start;align-items:flex-start}.ProductLink{display:flex;flex-direction:column;align-items:center;flex:0 0 calc(25% - .5em);box-sizing:border-box;border-radius:.5em;padding:.5em;border-bottom:.25em solid transparent;transition:transform .1s ease-in-out,background-color .1s ease-in-out,border-color .1s ease-in-out,color .1s ease-in-out}.ProductLink .thumbnail{width:100%;aspect-ratio:1.25;border-radius:.25em;background-color:var(--card-color);outline:solid 2px transparent;position:relative}.ProductLink .thumbnail img{transition:opacity .4s ease,transform .4s ease}.ProductLink .thumbnail img{width:100%;height:100%;object-fit:cover;object-position:center}.ProductLink .thumbnail .ribbon{position:absolute;top:1em;right:-2em;background:var(--primary);color:var(--primary-text);font-size:.625em;font-weight:700;text-transform:uppercase;padding:.4em 2.5em;transform:rotate(35deg);pointer-events:none;letter-spacing:.05em;line-height:1;text-align:center;z-index:1}.ProductLink h6{margin:0 0 .5em;color:var(--text);height:3.5em;display:flex;flex-direction:column;justify-content:flex-end;text-align:left;width:100%}.ProductLink .footer{width:100%;display:flex;justify-content:flex-end;align-items:center;margin-top:.5em;font-weight:700;height:1.5em}.ProductLink .footer .owned{text-transform:uppercase;font-size:.75em;color:var(--text-weak)}.ProductLink:hover{background-color:var(--secondary);cursor:pointer;transform:translateY(-.25em);border-bottom-color:var(--bg-inset)}.ProductLink:hover h6,.ProductLink:hover .footer .price,.ProductLink:hover .footer .owned{color:var(--secondary-text)}.ProductLink:hover .thumbnail{outline-color:var(--bg)}.ProductLink:hover .tinted-thumbnail img{opacity:.8;filter:grayscale(0%) sepia(0%) hue-rotate(0deg) saturate(1) brightness(1);transform:scale(1.05);transition:opacity .4s ease,transform .4s ease}@media (max-width: 560px){.ProductLink{flex:0 0 calc(50% - .5em)}}.HomeOutcomes{margin:3em 0}.HomeOutcomes .outcomes-list{list-style:none;padding:0;margin:1.5em auto 0;width:fit-content;display:flex;flex-direction:column;gap:.6em}.HomeOutcomes .outcomes-list li{display:flex;align-items:center;gap:.75em;font-size:1.05rem;color:var(--text)}.HomeOutcomes .outcomes-list li svg{font-size:.6rem;font-weight:700;color:var(--primary);flex-shrink:0;width:1.4em;height:1.4em;background:var(--bg-inset);border-radius:50%;padding:.75em;display:flex;align-items:center;justify-content:center}.HomeStickyEnroll{position:fixed;bottom:0;left:0;right:0;z-index:9;background:var(--bg-inset);padding:.75em 1.5em;display:flex;align-items:center;justify-content:center;gap:1.25em;transform:translateY(100%);transition:transform .25s ease}.HomeStickyEnroll.visible{transform:translateY(0)}.HomeStickyEnroll .label{font-weight:700;color:var(--text);font-size:.95rem;white-space:nowrap}.HomeStickyEnroll .guarantee{font-size:.8rem;color:var(--text-weak);white-space:nowrap}@media (max-width: 768px){.HomeStickyEnroll .guarantee{display:none}}@media (max-width: 560px){.HomeStickyEnroll{flex-wrap:wrap;justify-content:center;gap:.5em}.HomeStickyEnroll .label{width:100%;text-align:center;font-size:.85rem}.HomeStickyEnroll .Button button{font-size:1rem;padding:.4em .75em}}@media (max-width: 380px){.HomeStickyEnroll .label{display:none}}.HomeStudentWork{margin:3em 0}.HomeStudentWork .section-sub{text-align:center;color:var(--text-weak);font-size:.95rem;margin:.5em 0 1.5em}.HomeStudentWork .gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:.5em}.HomeStudentWork .gallery img{width:100%;aspect-ratio:1;object-fit:contain;background:var(--bg-inset);border-radius:.5em;cursor:pointer;image-rendering:pixelated;transition:transform .15s ease}.HomeStudentWork .gallery img:hover{transform:scale(1.04)}@media (max-width: 540px){.HomeStudentWork .gallery{grid-template-columns:repeat(3,1fr)}}.HomeTestimonials{margin:3em 0}.HomeTestimonials h2{margin-bottom:.75em}.HomeTestimonials .slider-wrap{overflow:hidden}.HomeTestimonials .slider{display:flex;transition:transform .35s ease}.HomeTestimonials .page{min-width:100%;display:grid;grid-template-columns:repeat(2,1fr);gap:1em}.HomeTestimonials .card{margin:0;padding:1.25em 1.5em;background:var(--bg-inset);border-radius:.75em;display:flex;flex-direction:column;gap:.75em}.HomeTestimonials .card p{margin:0;font-size:.9rem;color:var(--text);line-height:1.6;flex:1}.HomeTestimonials .card footer{font-size:1.2rem;color:var(--text-weak);font-weight:400}.HomeTestimonials .controls{display:flex;align-items:center;justify-content:center;gap:.75em;margin-top:1.25em}.HomeTestimonials .arrow{background:none;border:none;color:var(--text-weak);cursor:pointer;padding:.25em .5em;font-size:.9rem;transition:color .15s}.HomeTestimonials .arrow:hover:not(:disabled){color:var(--text)}.HomeTestimonials .arrow:disabled{opacity:.25;cursor:default}.HomeTestimonials .dots{display:flex;align-items:center}.HomeTestimonials .dot{padding:6px 4px;background:transparent;border:none;cursor:pointer;opacity:.35;transition:opacity .15s}.HomeTestimonials .dot:after{content:"";display:block;width:7px;height:7px;border-radius:50%;background:var(--text-weak);transition:background .15s}.HomeTestimonials .dot.active{opacity:1}.HomeTestimonials .dot.active:after{background:var(--primary)}.HomeTestimonials .dot:hover:not(.active){opacity:.6}.HomeTestimonials .view-all{text-align:center;margin-top:1em}.HomeTestimonials .view-all a{font-size:.85rem;color:var(--text-weak)}.HomeTestimonials .view-all a:hover{color:var(--text)}@media (max-width: 700px){.HomeTestimonials .page{grid-template-columns:1fr}.HomeTestimonials .card:nth-child(n+3){display:none}}.HomePage>*>h2{text-align:center}.HomePage .lessons-preview{margin:3em 0}.HomePage .lessons-preview .section-sub{color:var(--text-weak);margin-top:-.5em;margin-bottom:1.5em}.HomePage .lessons-preview .browse-more{display:flex;justify-content:center;margin-top:1.5em}.OrderRow{display:flex;align-items:center;gap:1em;padding:1em;background:var(--bg-inset);border-radius:.5em;text-decoration:none;color:var(--text);transition:background .1s ease-in-out}.OrderRow:hover{background:var(--secondary);color:var(--secondary-text)}.OrderRow .date{flex-shrink:0;font-weight:700;min-width:10em}.OrderRow .items{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.OrderRow .total{flex-shrink:0;font-weight:700}.OrdersPage .order-list{display:flex;flex-direction:column;gap:.5em}.LegalPage{padding:0 0 3em}.LegalPage h1{margin-bottom:.25em}.LegalPage .effective-date{color:var(--text-weak);font-size:.85rem;margin-top:0;margin-bottom:2em;font-style:italic}.LegalPage section{margin-bottom:1em}.LegalPage h2{font-size:1.3rem;margin-top:1.5em;margin-bottom:.5em}.LegalPage p{margin:.75em 0;line-height:1.7}.LegalPage ul,.LegalPage ol{margin:.5em 0;padding-left:1.5em}:is(.LegalPage ul,.LegalPage ol) li{margin:.4em 0;line-height:1.6}.LegalPage a{color:var(--primary);text-decoration:underline}.LegalPage a:visited{color:var(--primary)}.LegalPage a:hover{opacity:.8}.RedeemPage{max-width:var(--content-width);margin:0 auto;padding:2rem 1rem}.RedeemPage .redeem-form{display:flex;gap:.75rem;align-items:center;margin-top:1rem}.RedeemPage .redeem-form input{font-size:1.2rem;padding:.6em .8em;background:var(--bg-inset);color:var(--text);border:none;border-radius:4px;font-family:monospace;letter-spacing:.15em;text-transform:uppercase;width:12em}.RedeemPage p a{color:var(--primary);text-decoration:underline}.RedeemPage .success{margin-top:1rem}.RedeemPage .success p{margin-bottom:1rem}.RedeemPage .redeem-another{display:inline-block;margin-top:1rem;color:var(--text-weak);font-size:.9rem;cursor:pointer}.RedeemPage .redeem-another:hover{color:var(--text);text-decoration:underline}.RedeemPage .error-message{color:var(--red);margin-top:.75rem}.DiscountNotice{display:flex;flex-wrap:wrap;gap:.4em}.DiscountNotice .notice{display:inline-flex;align-items:center;gap:.5em;white-space:nowrap;padding:.4em .8em;background:color-mix(in oklch,var(--text),transparent 90%);color:var(--text-strong);border-radius:6px;font-size:.95em}.DiscountNotice .notice svg{color:var(--primary)}.DiscountNotice .notice strong{font-style:italic;font-weight:600}.DiscountNotice .notice .amount{display:inline-block;font-weight:800;background:var(--bg-inset);padding:.1em .4em;border-radius:4px;margin:0 0 0 .5em}.DiscountNotice .header{flex-basis:100%;font-size:.9em;color:var(--text-weak);font-weight:600}.ShopPage .gift{margin:6em 0 2em;color:var(--text-weak)}.Dropdown{display:flex;flex-direction:column;gap:.25em}.Dropdown .label{font-size:.85em;color:var(--text-weak)}.Dropdown select{width:100%}.TestPage .tests{padding:2em 0;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:1rem}.TestPage .tests>*{display:flex;justify-content:center;align-items:center;width:30%;aspect-ratio:1 / 1}.TestPage .toasts{display:flex;gap:1em}.TestimonialsPage{padding:2em 0}.TestimonialsPage h1{margin-bottom:1em}.TestimonialsPage .list{display:flex;flex-direction:column;gap:1em}.TestimonialsPage .card{margin:0;padding:1.25em 1.5em;background:var(--bg-inset);border-radius:.75em}.TestimonialsPage .card p{margin:0 0 .5em;color:var(--text);line-height:1.6}.TestimonialsPage .card footer{font-size:.85rem;color:var(--text-weak);font-weight:600}.CoursePage.error{text-align:center;padding:2em;color:var(--text-weak)}.DevelopmentBlurb{background:var(--bg-inset);border-radius:0 .5em .5em 0;padding:1em 1.5em;margin:1.5em 0;border-left:.25em solid var(--primary)}.DevelopmentBlurb strong{color:var(--primary);font-size:1.1em}.DevelopmentBlurb p{margin:.5em 0 0;color:var(--text)}.DevelopmentNotice{color:var(--text-weak);font-style:italic;text-align:center;margin:1em 0}.CoursePreview .ownership-credit{background:var(--bg-inset);color:var(--primary);padding:12px 16px;border-radius:6px;margin:0 0 16px;font-weight:600}.PlaceholderProduct{display:flex;flex-direction:column;align-items:center;flex:0 0 calc(25% - .5em);box-sizing:border-box;border-radius:.5em;padding:.5em;opacity:.4;pointer-events:none}.PlaceholderProduct h6{margin:0 0 .5em;color:var(--text-weak);height:3.5em;display:flex;flex-direction:column;justify-content:flex-end;text-align:left;width:100%}.PlaceholderProduct .placeholder-thumbnail{width:100%;aspect-ratio:1.25;border-radius:.25em;background-color:var(--secondary);display:flex;align-items:center;justify-content:center;font-size:2em;color:var(--text-weak)}.PlaceholderProduct .footer{width:100%;height:1.5em;margin-top:.5em}.Lesson article hr{margin-bottom:4em}.CompletedButton button.completed{--button-bg: var(--green);--button-side: color-mix(in oklch, var(--green), var(--green-dark) 50%);--bg-shadow: color-mix(in oklch, var(--bg), black 25%);--button-pressed: color-mix(in oklch, var(--green), var(--green-dark) 20%);--button-hovered: color-mix(in oklch, var(--green), var(--green-light) 20%);--icon-bg: color-mix(in oklch, var(--green), var(--green-dark) 50%);--icon-color: var(--green-light)}.CompletedButton button.incomplete{--button-bg: var(--secondary);--button-side: var(--secondary-dark);--bg-shadow: color-mix(in oklch, var(--bg), black 25%);--button-pressed: color-mix(in oklch, var(--secondary), var(--secondary-dark) 20%);--button-hovered: color-mix(in oklch, var(--secondary), white 10%);--icon-bg: var(--secondary-dark);--icon-color: var(--secondary-text)}.CompletedButton button{font-size:1.5em;display:flex;justify-content:space-between;align-items:center;padding:.25em .5em;position:relative;border-radius:1.5em;background-color:var(--button-bg);color:var(--secondary-text)}.CompletedButton button .text{width:5em;text-align:left;padding-left:.5em}.CompletedButton button .icon{width:1.5em;height:1.5em;padding:.125em;border-radius:1em;display:flex;justify-content:center;align-items:center;background-color:var(--icon-bg)}.CompletedButton button .icon svg path{fill:var(--icon-color)}.CompletedButton button:not(.loading){top:-.25em;box-shadow:0 .25em 0 var(--button-side),.25em .25em 0 var(--bg-shadow);transition:top .1s cubic-bezier(.47,4,.41,.8),box-shadow .1s cubic-bezier(.47,4,.41,.8)}.CompletedButton button.loading{cursor:wait;top:0;color:var(--bg);background-color:color-mix(in oklch,var(--bg),var(--secondary) 50%)}.CompletedButton button.loading .icon{background-color:var(--bg)}.CompletedButton button.loading .icon svg path{fill:color-mix(in oklch,var(--bg),var(--secondary) 50%)}.CompletedButton button.loading .icon .LoadingSpinner{top:auto;--spinner-color: color-mix(in oklch, var(--bg), var(--secondary) 50%)}.CompletedButton:hover button:not(.loading){background:var(--button-hovered);top:-.375em;box-shadow:0 .375em 0 var(--button-side),.375em .375em 0 var(--bg-shadow);transition:top .1s cubic-bezier(.47,4,.41,.8),box-shadow .1s cubic-bezier(.47,4,.41,.8)}.CompletedButton:active button:not(.loading),.CompletedButton:has(button:active) button:not(.loading){background:var(--button-pressed);top:.25em;box-shadow:0 -.375em 0 var(--bg-shadow),0 0 0 transparent,0 -.25em 0 inset var(--bg),0 -.25em 0 inset var(--bg),0 -.25em 0 inset var(--bg),0 -.25em 0 inset var(--bg),1em -.125em 0 -.75em inset var(--button-side);transition:top 10ms cubic-bezier(.47,1,.41,.8),box-shadow 10ms cubic-bezier(.47,1,.41,.8)}.Assignments{margin-bottom:5em}.LessonHeader h1{font-size:4em;margin:1em 0 0;line-height:1}.LessonHeader h1 span{color:color-mix(in srgb,var(--text),var(--bg) 40%);font-size:.5em}.LessonHeader .meta{display:flex;justify-content:flex-start;align-items:stretch;gap:.5em;margin-top:.5em}.LessonHeader .meta .meta-item{--edge-height: .2em;min-width:0;display:flex;flex-direction:column}.LessonHeader .meta .meta-item label{display:block;font-size:.65em;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-weak);margin-top:auto;margin-bottom:.25em;text-align:center}.LessonHeader .meta .meta-item a,.LessonHeader .meta .meta-item div{display:flex;align-items:center;justify-content:center;gap:.25em;overflow:hidden;padding:.3em .6em;border-radius:6px;background:var(--secondary);font-weight:600;font-size:1em;color:var(--secondary-text);text-decoration:none;box-shadow:0 0 0 transparent;margin-bottom:var(--edge-height);transition:box-shadow 50ms ease-in-out,transform 50ms ease-in-out}:is(.LessonHeader .meta .meta-item a,.LessonHeader .meta .meta-item div) svg{flex-shrink:0;transition:transform 50ms ease-in-out;transform:scale(.9);color:var(--secondary-text)}:is(.LessonHeader .meta .meta-item a,.LessonHeader .meta .meta-item div) .text{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.LessonHeader .meta .meta-item a:hover{background:var(--secondary-light);color:var(--secondary-text);box-shadow:0 var(--edge-height) 0 var(--bg-inset-edge);transform:translateY(calc(var(--edge-height) * -1))}.LessonHeader .meta .meta-item a:hover svg{transform:scale(1.1)}.LessonHeader .meta .meta-item .level .text{text-transform:capitalize}.LessonHeader p{font-style:italic;font-size:.9em;margin:.5em 0;color:var(--text-weak)}.LessonPreview .prerequisite-warning{background:var(--bg-inset);border:2px solid var(--red);border-radius:8px;padding:1em 1.25em;display:flex;align-items:flex-start;gap:.75em}.LessonPreview .prerequisite-warning svg{color:var(--red);font-size:1.5em;margin-top:.2em;flex-shrink:0}.LessonPreview .prerequisite-warning p{margin:0}.LessonPreview .prerequisite-warning a{font-weight:600;text-decoration:underline dotted;text-underline-offset:2px}.LessonPreview .prerequisite-warning a:hover{text-decoration:underline solid;color:var(--text-strong)}.AssignmentsPreview{display:flex;flex-wrap:wrap;gap:1em;margin-bottom:3em}.AssignmentsPreview .assignment{font-size:.8em;border-radius:.25em;display:flex;flex-direction:column;justify-content:space-between;background-color:var(--secondary);color:var(--secondary-text);width:6em;aspect-ratio:.75;box-sizing:border-box;padding:1em .5em .5em;position:relative;box-shadow:.125em .125em 0 var(--bg-inset);line-height:1;font-weight:700;text-overflow:ellipsis;white-space:wrap;word-break:break-all;-webkit-user-select:none;user-select:none}.AssignmentsPreview .assignment .words{letter-spacing:-.05em}.AssignmentsPreview .assignment .time{text-align:right;color:var(--bg)}.AssignmentsPreview .assignment .time svg{font-size:.9em;color:var(--bg)}.AssignmentsPreview .assignment:before{content:"";position:absolute;top:-.125em;right:-.125em;width:1em;height:1em;background:linear-gradient(225deg,var(--bg) 50%,var(--secondary) 50%);border-bottom:2px solid var(--bg);border-left:2px solid var(--bg);box-sizing:border-box;border-right:.25em solid var(--bg);border-bottom-left-radius:.25em}.OrderDetails{background:var(--bg-inset);border-radius:.5em;padding:1em;margin:1em 0;display:flex;flex-direction:column;gap:.25em}.OrderPage h1{margin-bottom:0}.OrderPage .back-link{color:var(--text-weak);font-size:.9em;display:inline-flex;align-items:center}.OrderPage .back-link:hover{color:var(--text);text-decoration:underline}.OrderPage .error-message{background:color-mix(in oklch,var(--secondary),red 10%);border-radius:.5em;padding:1em;margin:1em 0}.OrderPage .gift-codes{display:flex;flex-direction:column;gap:1rem;margin-top:1rem}.OrderPage .gift-code-card{background:var(--bg-inset);border-radius:8px;padding:1rem 1.25rem}.OrderPage .gift-code-card.redeemed{opacity:.6}.OrderPage .gift-code-card .product-name{font-weight:600;margin-bottom:.5rem}.OrderPage .gift-code-card .product-type{font-weight:400;color:var(--text-weak);font-size:.85em}.OrderPage .gift-code-card .code-row{display:flex;align-items:center;gap:.5rem}.OrderPage .gift-code-card .code{font-family:monospace;font-size:1.4rem;font-weight:700;letter-spacing:.15em}.OrderPage .gift-code-card .link-row{display:flex;align-items:center;gap:.5rem;margin-top:.25rem}.OrderPage .gift-code-card .link{font-family:monospace;font-size:.8rem;color:var(--text-weak);word-break:break-all}.OrderPage .gift-code-card .copy-button{background:none;border:none;color:var(--text-weak);cursor:pointer;padding:.25em;font-size:.85rem;flex-shrink:0}.OrderPage .gift-code-card .copy-button:hover{color:var(--text)}.OrderPage .gift-code-card .code-meta{margin-top:.5rem;font-size:.85rem;color:var(--text-weak)}.LeftSidebar{left:0}.LeftSidebar .header{left:0;justify-content:flex-start}.LeftSidebar .content .ThemeToggle{margin-top:auto}.LeftSidebar:not(.open){transform:translate(calc(-1 * var(--sidebar-width)))}.LeftSidebar:not(.open) .header{transform:translate(var(--sidebar-width))}.Sidebar{position:fixed;top:0;bottom:0;z-index:10;-webkit-user-select:none;user-select:none;display:flex;flex-direction:column;width:var(--sidebar-width);background:var(--bg-inset);transition:transform .15s ease-in-out}.Sidebar .header{position:fixed;top:0;z-index:11;width:var(--sidebar-width);height:var(--top-bar-height);flex-shrink:0;background:var(--bg-inset);transition:transform .15s ease-in-out;box-sizing:border-box;display:flex;align-items:center}@media (max-width: 700px){.Sidebar .header{width:auto}}.Sidebar .content{flex:1;display:flex;flex-direction:column;width:var(--sidebar-width);box-sizing:border-box;overflow-y:auto;overflow-x:hidden;position:relative;padding:calc(1em + var(--top-bar-height)) 1em 1em 1em}.LeftSidebarNavigation{display:flex;align-items:center;width:var(--sidebar-width)}.LeftSidebarNavigation .logo{display:flex;align-items:center;text-decoration:none;color:inherit}.LeftSidebarNavigation .logo .logomark{margin-left:1rem;height:3rem;width:auto;margin-top:-.4rem;margin-left:.5em;flex-shrink:0;color:var(--text-weak)}.LeftSidebarNavigation .logo h1{padding-left:.4rem;font-size:1.5rem;margin:0;line-height:.9}.LeftSidebarNavigation .logo:hover svg{color:var(--primary)}.LeftSidebarNavigation .logo:hover h1{color:var(--text)}.LeftSidebarNavigation button{margin:.5em;font-size:1.1em;background:transparent;border:none;color:var(--text-weak);padding:.5em;border-radius:.5em;cursor:pointer}.LeftSidebarNavigation button svg path{fill:var(--text-weak)}.LeftSidebarNavigation button:hover{background-color:var(--secondary);color:var(--secondary-text)}.LeftSidebarNavigation button:hover svg path{fill:var(--secondary-text)}@media (max-width: 700px){.LeftSidebarNavigation{width:auto}.LeftSidebarNavigation .logo .logomark{height:2.5rem}.LeftSidebarNavigation .logo h1{font-size:1.2rem}}@media (max-width: 400px){.LeftSidebarNavigation .logo .logomark{display:none}}@media (max-width: 300px){.LeftSidebarNavigation .logo h1{display:none}}.RightSidebarNavigation{display:flex;justify-content:flex-end;align-items:center;width:var(--sidebar-width-right);gap:.5em}.RightSidebarNavigation>button{margin:0;font-size:1.1em;background:transparent;border:none;color:var(--text-weak);padding:.5em;border-radius:.5em;cursor:pointer}.RightSidebarNavigation>button svg path{fill:var(--text-weak)}.RightSidebarNavigation>button:hover{background-color:var(--secondary);color:var(--secondary-text)}.RightSidebarNavigation>button:hover svg path{fill:var(--secondary-text)}.RightSidebarNavigation .shopping-cart{position:relative}.RightSidebarNavigation .shopping-cart .cart-items{position:absolute;top:.25em;right:.25em;font-size:.7em;background:var(--red);color:#fff;width:1.2em;height:1.2em;border-radius:25%;border:2px solid var(--bg)}@media (max-width: 700px){.RightSidebarNavigation{width:auto}}.NavButton{--edge-height: .25em;color:var(--text);text-shadow:0em .15em 0 var(--bg-inset-edge);font-weight:700;font-size:1em;text-decoration:none;text-align:left;border-radius:.25em;padding:.5em;box-shadow:var(--edge-height) 0 0 transparent;margin-bottom:calc(var(--edge-height) + .25em);transition:box-shadow 50ms ease-in-out,transform 50ms ease-in-out;background:none;border:none;cursor:pointer;font-family:inherit;display:block;width:100%;box-sizing:border-box}.NavButton svg{transition:margin-right 50ms ease-in-out,transform 50ms ease-in-out;transform:scale(.8);margin-right:.5em}.NavButton:hover{color:var(--nav-hover-text);background-color:var(--nav-hover-bg);box-shadow:0 var(--edge-height) 0 var(--bg-inset-edge);transform:translateY(-.25em)}.NavButton:hover svg{transform:scale(1.2)}.NavButton.active{color:var(--primary)}.NavButton.active:hover{color:var(--nav-hover-text)}.ThemeToggle{background:none;padding:.5em;cursor:pointer;color:var(--text-weak);font-size:1.1rem;transition:color .2s ease,transform .2s ease}.ThemeToggle:hover{color:var(--primary);transform:scale(1.15)}.RightSidebar{--sidebar-width: var(--sidebar-width-right);right:0}.RightSidebar .header{right:0;justify-content:flex-end;padding:.5em}.RightSidebar:not(.open){transform:translate(var(--sidebar-width))}.RightSidebar:not(.open) .header{transform:translate(calc(-1 * var(--sidebar-width)))}.AccountPanel{position:absolute;top:0;left:0;right:0;padding:calc(1em + var(--top-bar-height)) 1em 1em 1em;box-sizing:border-box;transform:translate(100%);transition:transform .2s ease}.AccountPanel.open{transform:translate(0)}.AccountPanel>h5:first-child{margin-top:0}.AccountPanel .details{margin-bottom:1em;background:var(--bg);padding:.5em;border-radius:.5em;border-bottom:solid .25em color-mix(in oklch,var(--bg),var(--bg-shadow) 40%)}.AccountPanel .details .name{font-weight:700;font-size:1.1em;margin:0}.AccountPanel .details .email{opacity:.7;font-size:.9em}.AccountPanel .details .provider{font-style:italic}.AccountPanel p svg{color:var(--text-weak)}.AccountPanel .account-nav{display:flex;flex-direction:column}.ThemeSelector{margin-bottom:1em}.ThemeSelector select{background-color:var(--bg);border-top-color:var(--bg-shadow)}.ShoppingCartPanel{position:absolute;inset:0;padding:calc(1em + var(--top-bar-height)) 1em 1em 1em;box-sizing:border-box;transform:translate(100%);transition:transform .2s ease;display:flex;flex-direction:column}.ShoppingCartPanel.open{transform:translate(0)}.ShoppingCartPanel h2{margin-top:0;flex-shrink:0}.ShoppingCartPanel .cart-items{flex:1;overflow-y:auto;min-height:0}.ShoppingCartPanel .cart-item{padding:.5em 0;border-bottom:2px solid var(--bg-inset)}.ShoppingCartPanel .cart-item:last-child{border-bottom:none}.ShoppingCartPanel .cart-item .cart-item-details h3{margin:0;font-size:1em;display:flex;align-items:center;position:relative;overflow:hidden;white-space:nowrap}.ShoppingCartPanel .cart-item .cart-item-details .remove-item{cursor:pointer;position:absolute;right:0;top:0;bottom:0;display:flex;align-items:center;padding-left:1.5em;padding-right:.25em;background:linear-gradient(to right,transparent,var(--bg-inset) 40%);opacity:0;pointer-events:none;transition:opacity .15s ease}.ShoppingCartPanel .cart-item .cart-item-details p{margin:.25em 0 0;color:var(--text-weak);font-size:.9em}.ShoppingCartPanel .cart-item .cart-item-details .info{display:flex;align-items:center;justify-content:left}.ShoppingCartPanel .cart-item .cart-item-details .info .type{flex:1;color:var(--text-weak);font-size:.7em;text-transform:uppercase}.ShoppingCartPanel .cart-item .cart-item-details .info .price{color:var(--text);font-weight:700}.ShoppingCartPanel .cart-item:hover .remove-item{opacity:1;pointer-events:auto}.ShoppingCartPanel .gift-notice{color:var(--primary);font-size:.9em;margin-top:.75em;display:flex;align-items:center;gap:.4em}.ShoppingCartPanel .cart-footer{flex-shrink:0}.ShoppingCartPanel .cart-total{margin-top:1.5em;padding-top:1em;border-top:1px solid var(--border);text-align:right}.ShoppingCartPanel .cart-total p{margin:0;font-size:1.1em}.ShoppingCartPanel .cart-total p strong{color:var(--text)}.ShoppingCartPanel .cart-total .cart-subtotal{font-size:.9em;opacity:.7}.ShoppingCartPanel .cart-total .cart-discount{font-size:.9em;color:var(--primary)}.ShoppingCartPanel .Button{margin-top:1em;width:100%}.ShoppingCartPanel .clear-cart{margin:.5em auto 0;padding:.5em 1em;cursor:pointer;border-radius:.5em;color:var(--text-weak);font-size:.8em;text-align:center}.ShoppingCartPanel .clear-cart svg{margin-right:.5em}.ShoppingCartPanel .clear-cart:hover{background:var(--secondary);color:var(--secondary-text)}.Popup{background-color:var(--bg);border:solid .25em var(--bg-inset);border-radius:1em;border-bottom-color:var(--bg-inset-edge);border-top-color:var(--popup-top-border);outline:solid .125em var(--text);padding:2em;position:fixed;top:50%;left:50%;max-width:min(60em,calc(100vw - 2em));max-height:calc(100vh - 4em);margin:0;transform:translate(-50%,-50%);overflow:auto;box-sizing:border-box}.Popup::backdrop{-webkit-backdrop-filter:blur(.5em);backdrop-filter:blur(.5em);background-color:var(--overlay-light);pointer-events:none}.Popup .close-button{position:absolute;top:.5em;right:.5em;padding:0;font-size:1.5rem;border-radius:.25em;z-index:1}.Popup .close-button button{padding:.25em}.AuthPopup{width:20em}.AuthPopup>h2{margin-top:.25em;text-align:center}.AuthPopup p{text-align:center;font-size:.9rem;color:var(--text-weak)}.AuthPopup button svg{width:1.5em;height:1.5em}.AuthPopup input{border-color:var(--bg-inset-edge)!important}.AuthPopup .error{margin-bottom:2em;line-height:1.1em;font-size:.9em;color:var(--text);display:flex;align-items:center;gap:1em}.AuthPopup .error svg{font-size:1.5em}.UpdatePasswordForm{display:flex;flex-direction:column;gap:1em}.UpdatePasswordForm h6{margin:0;color:var(--text)}.UpdatePasswordForm label{display:flex;flex-direction:column;gap:.25em;font-size:.9rem;color:var(--text-weak)}.UpdatePasswordForm .input-wrapper{position:relative;display:flex;align-items:center}.UpdatePasswordForm input{width:100%;padding:.6em 2.5em .6em .75em}.UpdatePasswordForm .toggle{position:absolute;right:.75em;cursor:pointer;color:var(--text-weak)}.UpdatePasswordForm .toggle:hover{color:var(--text)}.UpdatePasswordForm .error{color:var(--red);font-size:.9rem;margin:0}.Assignment h2{margin:0;color:var(--text-strong);line-height:1}.Assignment h3{margin:0;line-height:1}.Assignment .description{flex:1;flex-shrink:1}.Assignment .description p:first-child{margin-top:0}.Assignment .instructions-wrapper{display:grid;grid-template-rows:0fr;transition:grid-template-rows .4s ease}.Assignment .instructions-wrapper.open{grid-template-rows:1fr}.Assignment .instructions-wrapper .wrapper-inner{overflow:hidden}.Assignment .footer{display:flex;justify-content:space-between;gap:1em;width:100%}.Assignment .footer .worksheet{margin-right:1em;display:flex;flex-direction:column;text-align:center}.Assignment .footer .worksheet h6{margin:0}.Assignment .footer .worksheet img{background:var(--bg-inset);border-radius:.5em;padding:1em}.Assignment .footer .worksheet .download-buttons{display:flex;gap:.5em;margin-top:1em;justify-content:center;flex-wrap:wrap}.Assignment .footer .worksheet button svg{margin-left:.5em}.Assignment .footer .complete-assignment{display:flex;justify-content:center;align-items:center;flex-direction:column;flex-shrink:0;flex-grow:1;margin:0}.Assignment .footer .complete-assignment p{font-size:.8em;width:22em;max-width:100%;font-style:italic;text-align:center;margin-bottom:2em;color:color-mix(in oklch,var(--text),var(--bg) 40%)}.EvaluationGuide{display:grid;grid-template-rows:0fr;transition:grid-template-rows .4s ease}.EvaluationGuide.open{grid-template-rows:1fr}.EvaluationGuide .guide-inner{overflow:hidden}.EvaluationGuide .guide-content{line-height:1.75}.EvaluationGuide .feedback-prompt{text-decoration:none;color:var(--text-weak);display:block;text-align:center;padding-bottom:1em}.EvaluationGuide .feedback-prompt .discord-link{text-decoration:underline}.EvaluationGuide .feedback-prompt:hover{text-decoration:underline;color:var(--text)}.EvaluationGuide .reveal-image{position:relative;cursor:pointer;display:flex;justify-content:center}.EvaluationGuide .reveal-image figure.image{background:var(--bg-inset);padding:1em;border-radius:.5em;display:flex;justify-content:center;align-items:center}.EvaluationGuide .reveal-image img{filter:blur(8px);opacity:.3;transition:filter .4s ease,opacity .4s ease;border-radius:.5em}.EvaluationGuide .reveal-image .reveal-overlay{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:#fff;font-weight:700;font-size:1.2em;pointer-events:none;transition:opacity .4s ease;text-shadow:0 .1em .5em var(--bg-inset)}.EvaluationGuide .reveal-image.revealed{cursor:default}.EvaluationGuide .reveal-image.revealed img{filter:blur(0);opacity:1}.EvaluationGuide .reveal-image.revealed .reveal-overlay{opacity:0}.ErrorPopup{min-width:320px;max-width:720px}.ErrorPopup h2{margin-top:0}.ErrorPopup .details{background:var(--bg-inset);padding:12px 16px;max-height:60vh;overflow:auto;white-space:pre-wrap;word-break:break-word}.Footer{width:100vw;position:relative;left:50%;transform:translate(-50%);background:var(--bg-inset);margin-top:4em}.Footer .logomark{display:block;margin:-2em auto -1.5em;height:3em;width:auto;color:var(--text-weak)}.Footer .inner{max-width:var(--content-width);margin:0 auto;padding:2.5em 1.5em 1.5em;box-sizing:border-box}.Footer .columns{display:flex;gap:3em;margin-bottom:2em}.Footer .col{display:flex;flex-direction:column;gap:.6em;min-width:120px}.Footer .col .col-heading{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-weak);margin-bottom:.25em}.Footer .col a,.Footer .col .text-link{color:var(--text);text-decoration:none;font-size:.9rem;display:flex;align-items:center;gap:.5em;width:fit-content}:is(.Footer .col a,.Footer .col .text-link) svg{color:var(--text-weak);transition:transform .2s ease}:is(.Footer .col a,.Footer .col .text-link):hover{color:var(--primary)}:is(.Footer .col a,.Footer .col .text-link):hover svg{color:var(--primary);transform:scale(1.2)}.Footer .col .text-link{background:none;border:none;padding:0;cursor:pointer;font-family:inherit;font-weight:inherit}.Footer .theme-row{display:flex;justify-content:center;margin-bottom:1.25em}.Footer .bottom{display:flex;align-items:center;justify-content:space-between;padding-top:1.25em;border-top:2px solid color-mix(in oklch,var(--bg-inset),var(--text) 8%);flex-wrap:wrap;gap:.75em}.Footer .copyright{font-size:.8rem;color:var(--text-weak)}.Footer .legal{display:flex;gap:1.25em;flex-wrap:wrap}.Footer .legal a{font-size:.8rem;color:var(--text-weak);text-decoration:none}.Footer .legal a:hover{color:var(--text);text-decoration:underline}@media (max-width: 720px){.Footer .columns{flex-wrap:wrap;gap:1.5em}.Footer .col{min-width:calc(50% - 1.5em)}}@media (max-width: 420px){.Footer .columns{flex-direction:column;gap:1.75em}.Footer .col{min-width:unset}.Footer .bottom{flex-direction:column;align-items:flex-start}}.SaleBanner{position:fixed;top:0;left:0;right:0;z-index:12;display:flex;align-items:center;justify-content:center;gap:.5em;min-height:var(--sale-banner-height);background:var(--primary);color:var(--bg);font-weight:600;font-size:.9em;padding:.25em var(--sidebar-width);box-sizing:border-box}.SaleBanner .text{text-align:center;min-width:0}.SaleBanner .dismiss{position:absolute;right:.5em;background:none;border:none;color:var(--bg);cursor:pointer;padding:.25em .5em;font-size:1em;opacity:.7;transition:opacity .15s}.SaleBanner .dismiss:hover{opacity:1}@media (max-width: 700px){.SaleBanner{padding:.25em 2.5em .25em 1em}}
