@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Space+Grotesk:wght@500;600;700&display=swap";:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#090a0b;--bg-soft:#141414;--surface:#191919;--text:#f7f5ee;--muted:#aaa69a;--accent:#facc15;--accent-2:#fbbf24;--border:#343126;--success:#39e58c;--danger:#ff8383;--shadow:0 18px 48px #00000042}[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f4f4f2;--bg-soft:#fffbeb;--surface:#fff;--text:#292524;--muted:#57534e;--accent:#facc15;--accent-2:#eab308;--border:#e7e5e4;--success:#137a45;--danger:#a83535;--shadow:0 18px 42px #29252414}[data-theme=light] body{background:radial-gradient(at 78% -8%,#facc151a,#0000 32rem),#f4f4f2}[data-theme=light] .proof-strip{border-color:var(--border);background:linear-gradient(100deg,#fff,#fffbeb,#fff)}[data-theme=light] .card{background:#fff;border-color:#e7e5e4;box-shadow:0 14px 36px #29252413}[data-theme=light] .card:hover{box-shadow:0 20px 42px #29252421}[data-theme=light] .stat{background:#fffbeb;border:1px solid #e7e5e4}[data-theme=light] .nav-links button.active{color:#302719;background:#ebe4d4}[data-theme=light] .btn-primary,[data-theme=light] .tab.active{color:#292524;background:#facc15}[data-theme=light] .site-header{background:color-mix(in srgb,var(--bg) 92%,transparent)}body.menu-open{overflow:hidden}body.menu-open main,body.menu-open .site-footer,body.menu-open .chat-fab,body.menu-open .chat-panel{filter:blur(5px);pointer-events:none;-webkit-user-select:none;user-select:none;transition:filter .2s}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:radial-gradient(ellipse at 78% -8%,color-mix(in srgb,var(--accent) 9%,transparent),transparent 32rem),var(--bg);min-width:320px;color:var(--text);-webkit-font-smoothing:antialiased;font-family:DM Sans,system-ui,-apple-system,Segoe UI,sans-serif;line-height:1.65;transition:background .2s,color .2s}button,input,textarea{font:inherit}button{color:inherit}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:3px}img{max-width:100%;display:block}.container{max-width:1120px;margin:0 auto;padding:0 1.5rem}.site-header{z-index:50;background:color-mix(in srgb,var(--bg) 88%,transparent);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid color-mix(in srgb,var(--border) 80%,transparent);position:sticky;top:0}.nav{justify-content:space-between;align-items:center;gap:1rem;min-height:74px;padding:.9rem 0;display:flex}.brand{color:var(--text);cursor:pointer;background:0 0;border:0;font-family:Space Grotesk,sans-serif;font-size:1.15rem;font-weight:700}.brand span{color:var(--accent)}.nav-links{flex-wrap:wrap;gap:.25rem;display:flex}.nav-links button{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:.5rem;padding:.45rem .75rem;font-size:.92rem;transition:color .15s,background .15s}.nav-links button:hover,.nav-links button.active{color:var(--text);background:var(--bg-soft)}.nav-links button.active{font-weight:700}.nav-actions{align-items:center;gap:.5rem;display:flex}.icon-btn{background:var(--bg-soft);border:1px solid var(--border);color:var(--text);cursor:pointer;border-radius:.6rem;justify-content:center;align-items:center;padding:.45rem .7rem;font-size:.9rem;display:inline-flex}.hero{max-width:850px;padding:6.4rem 0 4.1rem}.eyebrow{letter-spacing:.14em;color:var(--accent);margin-bottom:1rem;font-size:.75rem;font-weight:700}.proof-strip{border-block:1px solid var(--border);color:var(--muted);flex-wrap:wrap;gap:1rem 2rem;padding:1rem 1.2rem;font-size:.87rem;display:flex}.proof-strip span:before{content:"/";color:var(--accent);margin-right:.5rem;font-weight:700}.hero h1{letter-spacing:-.055em;margin-bottom:1.2rem;font-family:Space Grotesk,sans-serif;font-size:clamp(2.65rem,7vw,5.2rem);line-height:1.06}.hero .accent{color:var(--accent)}.hero p.lead{color:var(--muted);max-width:680px;margin-bottom:1.8rem;font-size:clamp(1.08rem,2vw,1.25rem)}.hero-actions{flex-wrap:wrap;gap:.75rem;display:flex}.btn{cursor:pointer;color:inherit;border:1px solid #0000;border-radius:.65rem;justify-content:center;align-items:center;gap:.4rem;padding:.72rem 1.15rem;font-size:.94rem;font-weight:700;transition:transform .12s,box-shadow .12s,background .12s;display:inline-flex}.btn:hover{text-decoration:none;transform:translateY(-1px)}.btn-primary{background:var(--accent);color:#171300}.btn-ghost{background:var(--bg-soft);color:var(--text);border-color:var(--border)}.btn-sm{padding:.42rem .75rem;font-size:.85rem}.section{padding:2.7rem 0}.section h2{letter-spacing:-.025em;margin-bottom:.35rem;font-family:Space Grotesk,sans-serif;font-size:1.8rem}.section .subtitle{color:var(--muted);max-width:760px;margin-bottom:1.5rem}.grid{gap:1rem;display:grid}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.card{background:linear-gradient(145deg,color-mix(in srgb,var(--surface) 94%,var(--accent) 6%),var(--surface));border:1px solid var(--border);box-shadow:var(--shadow);border-radius:1rem;padding:1.35rem;transition:transform .18s,border-color .18s}.card:hover{border-color:color-mix(in srgb,var(--accent) 65%,var(--border));transform:translateY(-3px)}.card h3{margin-bottom:.4rem;font-family:Space Grotesk,sans-serif;font-size:1.12rem}.card p{color:var(--muted);font-size:.96rem}.card .meta{color:var(--muted);margin-top:.6rem;font-size:.8rem}.tags{flex-wrap:wrap;gap:.4rem;margin:.75rem 0;display:flex}.tag{background:var(--bg-soft);color:var(--muted);border:1px solid var(--border);border-radius:999px;padding:.2rem .58rem;font-size:.75rem}.badge{text-transform:uppercase;letter-spacing:.04em;border-radius:999px;padding:.15rem .5rem;font-size:.7rem;font-weight:700;display:inline-block}.badge-live{color:var(--success);background:#34d39926}.badge-beta{background:color-mix(in srgb,var(--accent) 16%,transparent);color:var(--accent)}.badge-wip{color:var(--danger);background:#f8717126}.about-grid{grid-template-columns:1fr 1fr;gap:1.5rem;display:grid}.stat{background:var(--bg-soft);border:1px solid var(--border);text-align:center;border-radius:.8rem;padding:1rem}.stat .num{color:var(--accent);font-family:Space Grotesk,sans-serif;font-size:1.7rem;font-weight:700}.stat .label{color:var(--muted);font-size:.85rem}.download-card{flex-direction:column;gap:.5rem;display:flex}.download-card .top{justify-content:space-between;align-items:start;gap:.5rem;display:flex}.download-card .top h3{overflow-wrap:anywhere;min-width:0}.download-card .top .download-prices{flex-shrink:0}.download-card .price{color:var(--accent);font-weight:700}.download-prices{text-align:right;gap:.15rem;display:grid}.download-prices .price-detail{color:var(--muted);font-size:.78rem}.availability{border:1px solid var(--border);color:var(--muted);border-radius:999px;align-self:flex-start;padding:.38rem .7rem;font-size:.8rem;font-weight:600;display:inline-flex}.tabs{gap:.5rem;margin-bottom:1.25rem;display:flex}.tab{border:1px solid var(--border);background:var(--bg-soft);color:var(--muted);cursor:pointer;text-transform:capitalize;border-radius:.6rem;padding:.52rem 1rem;font-size:.9rem}.tab.active{background:var(--accent);color:#171300;border-color:var(--accent);font-weight:700}.skill-group h3{color:var(--accent);margin-bottom:.5rem;font-size:1rem}.contact-list{gap:.75rem;display:grid}.contact-item{background:var(--surface);border:1px solid var(--border);border-radius:.8rem;align-items:center;gap:.75rem;min-width:0;padding:.9rem 1.1rem;display:flex}.contact-item .icon{flex:none;font-size:1.3rem}.contact-item a{overflow-wrap:anywhere}.contact-form{gap:.75rem;max-width:560px;display:grid}.contact-form input,.contact-form textarea,.chat-input input{background:var(--bg-soft);border:1px solid var(--border);color:var(--text);border-radius:.6rem;padding:.72rem .85rem;font-family:inherit;font-size:.95rem}.contact-form textarea{resize:vertical;min-height:140px}.chat-fab{z-index:60;border:1px solid color-mix(in srgb,var(--accent) 60%,transparent);background:var(--accent);color:#171300;cursor:pointer;width:56px;height:56px;box-shadow:var(--shadow);border-radius:50%;font-size:1.4rem;transition:transform .15s;position:fixed;bottom:1.25rem;right:1.25rem}.chat-fab:hover{transform:translateY(-2px)scale(1.03)}.project-heading{justify-content:space-between;align-items:flex-start;gap:.5rem;display:flex}.project-heading h3{overflow-wrap:anywhere;min-width:0}.project-heading .badge{flex:none}.chat-panel{z-index:60;background:var(--surface);border:1px solid var(--border);width:370px;max-width:calc(100vw - 2.5rem);height:520px;max-height:70vh;box-shadow:var(--shadow);border-radius:1rem;flex-direction:column;animation:.2s slideUp;display:flex;position:fixed;bottom:5.5rem;right:1.25rem;overflow:hidden}.chat-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:.85rem 1rem;font-weight:700;display:flex}.chat-messages{flex-direction:column;flex:1;gap:.6rem;padding:1rem;display:flex;overflow-y:auto}.msg{white-space:pre-line;overflow-wrap:anywhere;border-radius:.7rem;max-width:85%;padding:.6rem .8rem;font-size:.9rem;line-height:1.5}.msg.user{background:var(--accent);color:#171300;align-self:flex-end}.msg.bot{background:var(--bg-soft);color:var(--text);align-self:flex-start}.msg.bot .sources{color:var(--muted);margin-top:.35rem;font-size:.75rem}.chat-input{border-top:1px solid var(--border);gap:.5rem;padding:.75rem;display:flex}.chat-input input{flex:1;min-width:0;font-size:.9rem}.suggestions{flex-wrap:wrap;gap:.4rem;padding:0 1rem .75rem;display:flex}.suggestion{background:var(--bg-soft);color:var(--muted);border:1px solid var(--border);cursor:pointer;border-radius:999px;padding:.25rem .6rem;font-size:.75rem}.suggestion:hover{color:var(--text);border-color:var(--accent)}.site-footer{border-top:1px solid var(--border);color:var(--muted);text-align:center;margin-top:2rem;padding:2rem 0;font-size:.85rem}.page{animation:.48s cubic-bezier(.2,.7,.2,1) fadeIn}.page .scroll-reveal-item{opacity:0;transform:translateY(var(--reveal-offset,72px)) scale(.95);transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1);animation:none!important}.page .scroll-reveal-item.is-visible{opacity:1;transform:translateY(0)scale(1)}.current-project{color:var(--text);justify-content:center;align-items:center;gap:.65rem;margin:0 auto 1rem;font-size:.95rem;display:flex}.current-project-label{color:var(--text)}.current-project-name{color:var(--accent);font-weight:700}.current-project a{font-weight:700}.current-project-label:before{content:"";background:var(--success);width:8px;height:8px;box-shadow:0 0 10px var(--success);border-radius:50%;margin-right:.5rem;display:inline-block}.dot{background:var(--success);width:9px;height:9px;box-shadow:0 0 0 3px color-mix(in srgb,var(--success) 18%,transparent),0 0 14px color-mix(in srgb,var(--success) 70%,transparent);border-radius:50%;margin-right:.55rem;animation:1.8s ease-out infinite availabilityPulse;display:inline-block}@keyframes availabilityPulse{0%,to{box-shadow:0 0 0 3px color-mix(in srgb,var(--success) 16%,transparent),0 0 8px color-mix(in srgb,var(--success) 55%,transparent)}50%{box-shadow:0 0 0 6px color-mix(in srgb,var(--success) 9%,transparent),0 0 16px color-mix(in srgb,var(--success) 75%,transparent)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@media (width<=900px){.grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=850px){.nav{min-height:66px;position:relative}.nav-links{z-index:52;background:var(--surface);border:1px solid var(--border);width:min(52vw,23rem);min-width:12rem;max-height:calc(100dvh - 66px);box-shadow:var(--shadow);visibility:hidden;opacity:0;border-right:0;border-radius:0 0 0 1rem;flex-direction:column;padding:.9rem 1rem 1.2rem;transition:opacity .22s,transform .22s,visibility .22s;display:flex;position:fixed;top:66px;right:0;overflow-y:auto;transform:translate(1.5rem)}.nav-links.open{visibility:visible;opacity:1;transform:translate(0)}.nav-links a{text-align:left;padding:.75rem .8rem}.nav-backdrop{z-index:49;-webkit-backdrop-filter:blur(9px);background:#08090a7a;border:0;animation:.24s backdropIn;position:fixed;inset:0}.menu-btn{width:2.75rem;height:2.6rem;padding:.45rem;display:inline-flex}.hamburger-lines{flex-direction:column;gap:.26rem;width:1.2rem;display:flex}.hamburger-lines span{background:currentColor;border-radius:99px;width:100%;height:2px;transition:transform .2s,opacity .15s}.menu-btn[aria-expanded=true] .hamburger-lines span:first-child{transform:translateY(.38rem)rotate(45deg)}.menu-btn[aria-expanded=true] .hamburger-lines span:nth-child(2){opacity:0}.menu-btn[aria-expanded=true] .hamburger-lines span:last-child{transform:translateY(-.38rem)rotate(-45deg)}}@media (width>=851px){.menu-btn,.nav-backdrop{display:none}}@media (width<=640px){.container{padding:0 1.1rem}.hero{padding:4.6rem 0 2.7rem}.section{padding:2rem 0}.grid-2,.grid-3,.about-grid{grid-template-columns:1fr}.tabs{padding-bottom:.25rem;overflow-x:auto}.tab{white-space:nowrap}.chat-panel{max-width:calc(100vw - 1.5rem);height:min(520px,72vh);bottom:5rem;right:.75rem}.download-card .top{flex-wrap:wrap}.download-prices{text-align:left}.chat-fab{bottom:.85rem;right:.85rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important;animation-delay:0s!important}}[data-theme=light]{--text:#292524;--muted:#57534e;--accent:#facc15;--accent-2:#eab308}[data-theme=light] a,[data-theme=light] .hero .accent,[data-theme=light] .skill-group h3,[data-theme=light] .stat .num,[data-theme=light] .eyebrow{color:#765300}[data-theme=light] .tag{color:#292524;background:#fffbeb;border-color:#e7e5e4}[data-theme=light] .nav-links button{color:#57534e}[data-theme=light] .nav-links button:hover,[data-theme=light] .nav-links button.active{color:#292524}[data-theme=light] .nav-links button.active{box-shadow:inset 0 -2px #facc15}[data-theme=light] .badge-beta{color:#634600}[data-theme=light] .badge-live{color:#075c31}[data-theme=light] .badge-wip{color:#8c2424}[data-theme=light] .btn-ghost{color:#292524;border-color:#e7e5e4}[data-theme=light] .suggestion{color:#44403c}.badge-in-development{color:var(--accent);border:1px solid color-mix(in srgb,var(--accent) 45%,transparent);background:#facc1533}.class-cover{aspect-ratio:16/9;border-bottom:1px solid var(--border);background:var(--bg-soft);border-radius:1rem 1rem .2rem .2rem;margin:-1.35rem -1.35rem 1rem;position:relative;overflow:hidden}.class-cover img{object-fit:cover;width:100%;height:100%}.class-cover span{color:#fff9df;letter-spacing:.08em;text-transform:uppercase;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#08090bcc;border:1px solid #ffffff42;border-radius:999px;padding:.2rem .5rem;font-size:.65rem;font-weight:700;position:absolute;bottom:.65rem;left:.75rem}.class-card{color:var(--text);text-decoration:none}.class-card:hover{text-decoration:none}.billing-card{flex-direction:column;align-items:flex-start;gap:.75rem;display:flex}.billing-card-clickable{cursor:pointer}.billing-card-clickable:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.billing-card-clickable:hover{border-color:var(--accent)}.billing-card .class-cover{width:calc(100% + 2.7rem)}.billing-card .class-details{width:100%}.billing-unavailable{color:var(--muted);font-size:.85rem}.class-outline-toggle{width:100%}.class-outline{border:1px solid var(--border);background:color-mix(in srgb,var(--bg-soft) 72%,transparent);border-radius:.8rem;gap:1rem;width:100%;padding:.9rem;display:grid}.class-curriculum,.class-projects{width:100%}.class-curriculum h4,.class-projects h4{color:var(--accent);margin-bottom:.45rem;font-family:Space Grotesk,sans-serif}.class-curriculum ul{color:var(--muted);padding-left:1.2rem;font-size:.9rem}.class-curriculum li+li{margin-top:.3rem}.class-project-grid{grid-template-columns:1fr 1fr}.class-project{border:1px solid var(--border);background:var(--bg-soft);border-radius:.7rem;padding:.8rem}.class-project h5{color:var(--text);margin-bottom:.3rem;font-size:.9rem}.class-project p{color:var(--muted);font-size:.82rem}.download-card{overflow:hidden}.download-cover{aspect-ratio:16/10;background:var(--bg-soft);border-bottom:1px solid var(--border);border-radius:1rem 1rem .2rem .2rem;margin:-1.35rem -1.35rem .55rem;position:relative;overflow:hidden}.download-cover img{object-fit:cover;width:100%;height:100%;transition:transform .35s cubic-bezier(.2,.7,.2,1)}.download-card:hover .download-cover img{transform:scale(1.035)}.download-cover-type{color:#fff9df;letter-spacing:.08em;text-transform:uppercase;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#08090bcc;border:1px solid #ffffff42;border-radius:999px;padding:.23rem .55rem;font-size:.68rem;font-weight:700;position:absolute;bottom:.7rem;left:.8rem}.download-cover-learn-python-3,.download-cover-python-for-everybody{background:#171717}.download-cover-learn-python-3 img{object-fit:contain}.download-cover-python-for-everybody img{object-fit:cover}.download-card:hover .download-cover-learn-python-3 img{transform:none}.download-details{color:var(--muted);margin-top:.1rem;font-size:.87rem}.download-details p{font-size:.85rem}.download-details .tags{margin:.55rem 0}.disclosure-toggle{width:max-content;max-width:100%;color:var(--accent);font:inherit;cursor:pointer;touch-action:manipulation;background:0 0;border:0;align-items:center;gap:.4rem;padding:.18rem 0;font-size:.9rem;font-weight:700;transition:color .25s,transform .3s,text-shadow .3s;display:flex}.disclosure-toggle:hover{color:var(--text);text-shadow:0 0 14px color-mix(in srgb,var(--accent) 65%,transparent);transform:translateY(-2px)}.disclosure-toggle:active{transform:scale(.96)}.disclosure-chevron{font-size:1.25rem;line-height:1;transition:transform .55s cubic-bezier(.2,.85,.25,1);display:inline-block}.disclosure-toggle[aria-expanded=true] .disclosure-chevron{transform:rotate(180deg)}.disclosure-panel{opacity:0;will-change:grid-template-rows,opacity,transform;grid-template-rows:0fr;transition:grid-template-rows .4s cubic-bezier(.2,.85,.25,1),opacity .28s,transform .32s cubic-bezier(.2,.85,.25,1);display:grid;transform:translateY(-.5rem)}.disclosure-panel.is-expanded{opacity:1;grid-template-rows:1fr;transform:translateY(0)}.disclosure-panel-inner{background:color-mix(in srgb,var(--bg-soft) 70%,transparent);border:1px solid #0000;border-radius:.8rem;min-height:0;padding:0 .8rem;transition:padding .3s,border-color .24s;overflow:hidden}.disclosure-panel.is-expanded .disclosure-panel-inner{border-color:var(--border);padding:.8rem}.project-card{flex-direction:column;gap:.65rem;display:flex}.project-card .project-description{max-height:30em;margin:0;transition:max-height .42s cubic-bezier(.2,.85,.25,1),opacity .25s;overflow:hidden}.project-card .project-description-collapsed{opacity:.82;max-height:4.8em}.project-more-toggle{padding:.1rem 0}.project-extra ul,.project-highlights{color:var(--muted);padding-left:1.1rem;font-size:.85rem}.project-extra li+li,.project-highlights li+li{margin-top:.25rem}.project-card>.availability,.project-card>a{margin-top:auto}[data-theme=light] .badge-in-development{color:#765300}[data-theme=light] .page>div>.section:nth-of-type(2n){background:#fffbeb;border-radius:1rem;padding-inline:1.5rem}@media (width<=640px){[data-theme=light] .page>div>.section:nth-of-type(2n){padding-inline:1rem}}.download-action{color:#000;background:#facc15;border-color:#eab308}.download-card-highlighted{z-index:1;border-color:var(--accent);outline:2px solid var(--accent);outline-offset:3px;box-shadow:0 0 0 7px color-mix(in srgb,var(--accent) 19%,transparent),var(--shadow);animation:1.1s ease-in-out 3 downloadCardHighlight;position:relative}@keyframes downloadCardHighlight{0%,to{box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 12%,transparent),var(--shadow);transform:translateY(0)}50%{box-shadow:0 0 0 10px color-mix(in srgb,var(--accent) 27%,transparent),0 20px 50px color-mix(in srgb,var(--accent) 20%,transparent);transform:translateY(-5px)}}@media (prefers-reduced-motion:reduce){.download-card-highlighted{animation:none}}.download-action:hover{color:#000;background:#eab308}.platform-download-dialog{border:1px solid var(--border);background:var(--bg);width:min(28rem,100% - 2rem);color:var(--text);border-radius:1rem;padding:1.5rem;box-shadow:0 1.5rem 4rem #0008}.platform-download-dialog::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0009}.platform-download-dialog h3{margin:0 0 .5rem}.platform-download-dialog p{color:var(--muted)}.platform-download-options{gap:.6rem;margin:1rem 0;display:grid}.platform-download-options .btn{text-align:center;width:100%}.platform-unavailable:disabled{opacity:.55;cursor:not-allowed;background:var(--bg-soft);color:var(--muted);border-color:var(--border)}.catalog-search{border:1px solid var(--border);background:var(--bg-soft);width:100%;max-width:34rem;color:var(--text);border-radius:.6rem;margin:0 0 1rem;padding:.7rem .85rem;display:block}.catalog-result-count{color:var(--muted);margin:-.5rem 0 1rem;font-size:.85rem}.payment-return-card{gap:.85rem;max-width:42rem;margin:1.5rem auto 0;display:grid}.payment-reference code{overflow-wrap:anywhere;background:var(--bg-soft);color:var(--accent);border-radius:.3rem;padding:.15rem .35rem}.contact-form label{margin-bottom:-.55rem;font-size:.9rem;font-weight:600}.skip-link{z-index:100;background:var(--accent);color:#171300;border-radius:.5rem;padding:.65rem .9rem;font-weight:700;position:fixed;top:.75rem;left:.75rem;transform:translateY(-180%)}.skip-link:focus{transform:translateY(0)}.nav-links a{color:var(--muted);border-radius:.5rem;padding:.45rem .75rem;font-size:.92rem;transition:color .15s,background .15s;display:block}.nav-links a:hover,.nav-links a.active{color:var(--text);background:var(--bg-soft);text-decoration:none}.nav-links a.active{font-weight:700}[data-theme=light] .nav-links a.active{box-shadow:inset 0 -2px #facc15}@media (width<=850px){.nav-links.open a{text-align:left;padding:.7rem .8rem}}.pagination{flex-wrap:wrap;justify-content:center;align-items:center;gap:.45rem;margin-top:1.5rem;display:flex}.pagination-button{border:1px solid var(--border);background:var(--surface);min-width:2.5rem;min-height:2.5rem;color:var(--text);font:inherit;cursor:pointer;border-radius:.6rem;padding:.45rem .75rem;font-weight:600;transition:background .15s,border-color .15s,color .15s}.pagination-button:hover:not(:disabled){border-color:var(--accent);background:var(--bg-soft)}.pagination-button.active{border-color:var(--accent);background:var(--accent);color:#000}.pagination-button:disabled{opacity:.45;cursor:not-allowed}@media (width<=400px){.pagination{gap:.3rem}.pagination-button{min-width:2.25rem;min-height:2.25rem;padding:.4rem .55rem}.pagination-button:not(.pagination-number){font-size:.8rem}}.current-project-label:before,.dot{animation:1.8s ease-in-out infinite statusPulse}@keyframes statusPulse{0%,to{opacity:.6;box-shadow:0 0 0 2px color-mix(in srgb,var(--success) 12%,transparent),0 0 7px color-mix(in srgb,var(--success) 45%,transparent);transform:scale(.88)}50%{opacity:1;box-shadow:0 0 0 5px color-mix(in srgb,var(--success) 20%,transparent),0 0 15px color-mix(in srgb,var(--success) 85%,transparent);transform:scale(1.08)}}@media (prefers-reduced-motion:reduce){.current-project-label:before,.dot{animation:none}}.classes-notice{border:1px solid var(--border);background:color-mix(in srgb,var(--accent) 8%,var(--surface));color:var(--text);border-radius:.75rem;align-items:center;gap:.65rem;margin:0 0 1.25rem;padding:.85rem 1rem;display:flex}.classes-status-dot{background:var(--accent);width:.55rem;height:.55rem;box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 16%,transparent);border-radius:50%;flex:none}.class-card{flex-direction:column;align-items:stretch;gap:.8rem;animation:.45s both fadeInUp;display:flex}.class-card:nth-child(2){animation-delay:70ms}.class-card:nth-child(3){animation-delay:.14s}.class-card-details-link{color:var(--accent);align-self:flex-start;margin-top:auto;padding-top:.3rem;font-size:.9rem;font-weight:700}.class-card:hover .class-card-details-link{text-decoration:underline}.class-details{gap:.45rem;width:100%;margin:.1rem 0 .4rem;display:grid}.class-details div{border-top:1px solid var(--border);justify-content:space-between;gap:.5rem;padding-top:.4rem;display:flex}.class-details dt{color:var(--muted)}.class-details dd{color:var(--accent);font-weight:700}.class-terms{color:var(--muted);margin-top:1rem;font-size:.85rem}.current-project-empty{max-width:38rem;color:var(--muted)}@keyframes backdropIn{0%{opacity:0}to{opacity:1}}@media (width<=420px){.nav-links{width:min(68vw,20rem)}.classes-notice{align-items:flex-start;font-size:.9rem}.class-card{padding:1.1rem}}@media (prefers-reduced-motion:reduce){.nav-links,.nav-backdrop,.class-card{transition:none!important;animation:none!important}}@media (width<=850px){.menu-btn .hamburger-lines span{transition:none}.menu-btn[aria-expanded=true] .hamburger-lines span{opacity:1;transform:none}.nav-backdrop{animation:none}.nav-links{transform-origin:100% 0;transition:opacity .18s,transform .24s cubic-bezier(.2,.8,.2,1),visibility 0s linear .24s;transform:translateY(-.7rem)scale(.98)}.nav-links.open{transition:opacity .18s,transform .24s cubic-bezier(.2,.8,.2,1),visibility}.nav-links a{opacity:0;transform:translateY(-.35rem)}.nav-links.open a{animation:.24s cubic-bezier(.2,.8,.2,1) both menuLinkIn}.nav-links.open a:first-child{animation-delay:40ms}.nav-links.open a:nth-child(2){animation-delay:80ms}.nav-links.open a:nth-child(3){animation-delay:.12s}.nav-links.open a:nth-child(4){animation-delay:.16s}.nav-links.open a:nth-child(5){animation-delay:.2s}.nav-links.open a:nth-child(6){animation-delay:.24s}.nav-links.open a:nth-child(7){animation-delay:.28s}}@keyframes menuLinkIn{to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.nav-links,.nav-links a{opacity:1;transform:none;transition:none!important;animation:none!important}}@media (width<=640px){.disclosure-toggle{min-height:44px;padding:.35rem .1rem}.disclosure-panel{transition:grid-template-rows .3s cubic-bezier(.2,.85,.25,1),opacity .22s,transform .24s cubic-bezier(.2,.85,.25,1)}.disclosure-panel-inner{transition:padding .22s,border-color .18s}.project-card .project-description{transition:max-height .34s cubic-bezier(.2,.85,.25,1),opacity .2s}}.download-card{position:relative}.download-card-primary-link{color:inherit;text-decoration:none}.download-card-primary-link:after{z-index:1;content:"";position:absolute;inset:0}.download-card .download-more-toggle,.download-card .download-details,.download-card .download-card-actions{z-index:2;position:relative}
