:root {
  --ink: #201947;
  --ink-soft: #5b5674;
  --paper: #fffdf6;
  --white: #ffffff;
  --purple: #6c4df6;
  --purple-dark: #3d2da7;
  --pink: #ff5ca8;
  --orange: #ff8a3d;
  --yellow: #ffd84d;
  --cyan: #64dce1;
  --green: #77dfa3;
  --blue: #79a8ff;
  --line: #241d4e;
  --shadow: 6px 7px 0 var(--line);
  --soft-shadow: 0 24px 70px rgba(52, 40, 111, .15);
  --shell: min(1180px, calc(100% - 40px));
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: "Trebuchet MS", ui-rounded, "Arial Rounded MT Bold", system-ui, sans-serif; line-height: 1.55; -webkit-font-smoothing: antialiased; }
a { color: inherit; text-decoration: none; }
svg { display: block; }
button, a { -webkit-tap-highlight-color: transparent; }
.shell { width: var(--shell); margin-inline: auto; }
.section-pad { padding: 110px 0; }
.skip-link { position: fixed; left: 16px; top: -60px; z-index: 1000; padding: 10px 16px; background: white; border: 2px solid var(--line); border-radius: 12px; }
.skip-link:focus { top: 16px; }

.site-header { position: fixed; inset: 0 0 auto; z-index: 100; transition: .25s ease; }
.site-header.scrolled { background: rgba(255,253,246,.93); border-bottom: 2px solid var(--line); backdrop-filter: blur(16px); }
.nav-wrap { min-height: 82px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.brand { display: inline-flex; align-items: center; gap: 9px; font-size: 21px; font-weight: 900; letter-spacing: -.05em; }
.brand small { margin-left: 2px; padding: 2px 6px; color: var(--purple-dark); background: var(--yellow); border: 1.5px solid var(--line); border-radius: 999px; font-size: 8px; letter-spacing: .03em; text-transform: uppercase; transform: rotate(-4deg); }
.brand-mark { width: 40px; height: 40px; display: grid; place-items: center; color: white; background: var(--purple); border: 2px solid var(--line); border-radius: 13px 13px 13px 5px; box-shadow: 3px 3px 0 var(--line); font-family: Georgia, serif; font-size: 23px; font-weight: 900; }
.primary-nav { display: flex; align-items: center; gap: 26px; font-size: 13px; font-weight: 800; }
.primary-nav > a:not(.nav-cta):hover { color: var(--purple); }
.github-link { display: inline-flex; align-items: center; gap: 6px; }
.github-link svg, .button svg { width: 18px; fill: currentColor; }
.language-switch{display:inline-flex;padding:2px;background:white;border:2px solid var(--line);border-radius:999px}.language-switch a{min-width:27px;padding:3px 6px;text-align:center;border-radius:999px;font-size:9px}.language-switch a.active{color:white;background:var(--ink)}
.nav-cta { padding: 10px 17px; color: white; background: var(--purple); border: 2px solid var(--line); border-radius: 12px; box-shadow: 3px 3px 0 var(--line); transition: transform .2s, box-shadow .2s; }
.nav-cta:hover { color: white !important; transform: translate(2px,2px); box-shadow: 1px 1px 0 var(--line); }
.menu-button { display: none; width: 43px; height: 43px; padding: 10px; background: var(--yellow); border: 2px solid var(--line); border-radius: 12px; box-shadow: 3px 3px 0 var(--line); }
.menu-button span { display: block; height: 2px; margin: 4px 0; background: var(--ink); transition: .2s; }

.hero { position: relative; padding: 155px 0 0; overflow: hidden; background: radial-gradient(circle at 82% 20%, rgba(100,220,225,.34), transparent 24%), radial-gradient(circle at 12% 88%, rgba(255,92,168,.17), transparent 23%), var(--paper); }
.hero-grid { min-height: 650px; display: grid; grid-template-columns: .94fr 1.06fr; gap: 60px; align-items: center; padding-bottom: 75px; }
.hero-copy { position: relative; z-index: 3; }
.open-badge { display: inline-flex; align-items: center; gap: 8px; margin-bottom: 25px; padding: 8px 13px; color: var(--purple-dark); background: #eeeaff; border: 2px solid var(--line); border-radius: 999px; box-shadow: 3px 3px 0 var(--line); font-size: 11px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; transform: rotate(-1deg); }
.open-badge span { color: var(--green); text-shadow: 0 0 0 var(--line); }.open-badge b{font-size:16px}
h1,h2,h3,p{margin-top:0}h1,h2{font-weight:900;letter-spacing:-.055em;line-height:.98}h1{max-width:650px;margin-bottom:25px;font-size:clamp(54px,6vw,80px)}h1 em,h2 em{position:relative;color:var(--purple);font-style:normal}h1 em:after{content:"";position:absolute;z-index:-1;left:-3%;right:-3%;bottom:4px;height:18px;background:var(--yellow);border-radius:50%;transform:rotate(-2deg)}
.hero-intro { max-width:610px; margin-bottom:30px; color:var(--ink-soft);font-size:18px;line-height:1.7}.hero-actions{display:flex;gap:14px;flex-wrap:wrap}.button{min-height:52px;display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:0 21px;border:2px solid var(--line);border-radius:13px;font-size:13px;font-weight:900;box-shadow:var(--shadow);transition:transform .2s,box-shadow .2s}.button:hover{transform:translate(3px,3px);box-shadow:2px 2px 0 var(--line)}.button-dark{color:white;background:var(--ink)}.button-white{background:white}.button-yellow{background:var(--yellow)}
.hero-price-note{display:flex;align-items:center;gap:14px;margin-top:30px}.avatar-stack{display:flex;flex:0 0 auto}.avatar-stack span{width:35px;height:35px;display:grid;place-items:center;margin-left:-7px;background:white;border:2px solid var(--line);border-radius:50%;font-size:17px}.avatar-stack span:first-child{margin-left:0}.hero-price-note p{max-width:410px;margin:0;color:var(--ink-soft);font-size:11px}.hero-price-note strong{color:var(--ink)}
.doodle{position:absolute;z-index:0}.doodle-star{left:3%;top:25%;color:var(--orange);font-size:46px;transform:rotate(15deg)}.doodle-loop{right:-90px;top:95px;width:250px;height:250px;border:4px solid var(--pink);border-radius:48% 52% 62% 38%;opacity:.35;transform:rotate(23deg)}
.happy-board{position:relative;z-index:2;padding:32px 20px 20px}.board-window{overflow:hidden;background:white;border:3px solid var(--line);border-radius:22px;box-shadow:10px 12px 0 var(--line);transform:rotate(1deg)}.board-bar{height:50px;display:flex;align-items:center;justify-content:space-between;padding:0 16px;background:#f7f5ff;border-bottom:2px solid var(--line);font-size:9px}.dots{display:flex;gap:5px}.dots i{width:8px;height:8px;background:var(--pink);border:1px solid var(--line);border-radius:50%}.dots i:nth-child(2){background:var(--yellow)}.dots i:nth-child(3){background:var(--green)}.board-avatar{width:27px;height:27px;display:grid;place-items:center;color:white;background:var(--purple);border:1.5px solid var(--line);border-radius:50%;font-size:8px;font-weight:900}.board-body{padding:22px;background:#fffdf9}.hello-row{display:flex;align-items:end;justify-content:space-between;margin-bottom:16px}.hello-row small,.hello-row h2{display:block}.hello-row small{font-size:8px}.hello-row h2{margin:3px 0 0;font-size:19px;letter-spacing:-.03em}.hello-row button{padding:7px 11px;color:white;background:var(--purple);border:1.5px solid var(--line);border-radius:8px;font-size:8px;font-weight:900}.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.stat-grid article{display:flex;gap:9px;padding:12px 10px;border:1.5px solid var(--line);border-radius:12px;box-shadow:2px 2px 0 var(--line)}.stat-grid article>span{font-size:18px}.stat-grid p{margin:0;font-size:7px}.stat-grid b,.stat-grid small{display:block}.stat-grid b{font-size:20px;line-height:1.2}.stat-grid small{font-size:6px}.stat-yellow{background:#fff1a7}.stat-pink{background:#ffc2dd}.stat-blue{background:#c5e5ff}.board-lower{display:grid;grid-template-columns:1.15fr .85fr;gap:9px;margin-top:10px}.week-card,.todo-card{height:175px;padding:13px;background:white;border:1.5px solid var(--line);border-radius:12px}.week-card>div:first-child{display:flex;justify-content:space-between;font-size:8px}.happy-bars{height:105px;display:flex;align-items:end;justify-content:space-around;padding:10px 7px 0;border-bottom:1px solid #ddd7ef}.happy-bars span{width:18px;height:var(--h);background:var(--purple);border:1.5px solid var(--line);border-radius:6px 6px 0 0}.happy-bars span:nth-child(2),.happy-bars span:nth-child(5){background:var(--pink)}.happy-bars span:nth-child(4){background:var(--yellow)}.week-labels{display:flex;justify-content:space-around;padding-top:5px}.week-labels i{font-size:6px;font-style:normal}.todo-card>b{font-size:9px}.todo-card p{display:flex;align-items:center;gap:7px;margin:10px 0;padding-bottom:8px;border-bottom:1px dashed #d8d2e8;font-size:7px}.check{width:20px;height:20px;display:grid;place-items:center;color:white;border:1px solid var(--line);border-radius:6px;font-weight:900}.check.purple{background:var(--purple)}.check.orange{background:var(--orange)}.check.green{background:#44bd76}.sticker{position:absolute;z-index:5;padding:10px 14px;border:2px solid var(--line);box-shadow:4px 4px 0 var(--line);font-size:10px;font-weight:900}.sticker-wow{right:-5px;top:5px;background:var(--yellow);border-radius:12px;transform:rotate(5deg)}.sticker-open{left:-12px;bottom:-8px;width:70px;height:70px;display:grid;place-items:center;text-align:center;color:white;background:var(--pink);border-radius:50%;line-height:1.05;transform:rotate(-10deg)}.mini-float{position:absolute;right:-18px;bottom:45px;display:flex;align-items:center;gap:8px;padding:9px 12px;background:white;border:2px solid var(--line);border-radius:11px;box-shadow:4px 4px 0 var(--line);transform:rotate(-2deg)}.mini-float>span{width:28px;height:28px;display:grid;place-items:center;background:var(--cyan);border:1.5px solid var(--line);border-radius:8px}.mini-float p{margin:0}.mini-float b,.mini-float small{display:block}.mini-float b{font-size:8px}.mini-float small{font-size:6px}
.role-ribbon{display:flex;align-items:center;justify-content:center;gap:22px;padding:20px;background:var(--ink);color:white;border:3px solid var(--line);border-bottom:0;border-radius:22px 22px 0 0;font-size:11px}.role-ribbon b{color:var(--yellow)}.role-ribbon span{white-space:nowrap}

.open-section{background:var(--yellow)}.open-card{display:grid;grid-template-columns:1fr .9fr;gap:70px;align-items:center;padding:65px;color:white;background:var(--purple);border:3px solid var(--line);border-radius:30px;box-shadow:10px 12px 0 var(--line)}.kicker{display:inline-flex;margin-bottom:18px;padding:6px 11px;border:2px solid var(--line);border-radius:999px;font-size:10px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;box-shadow:2px 2px 0 var(--line)}.kicker-yellow{color:var(--ink);background:var(--yellow)}.kicker-purple{color:white;background:var(--purple)}.kicker-pink{color:var(--ink);background:var(--pink)}.open-copy h2{font-size:clamp(45px,4.6vw,64px)}.open-copy>p:not(.kicker){color:rgba(255,255,255,.78);font-size:15px}.open-actions{display:flex;align-items:center;gap:17px;margin-top:28px;flex-wrap:wrap}.license-note{color:rgba(255,255,255,.65);font-size:9px}.code-card{position:relative;overflow:visible;background:#17132d;border:3px solid var(--line);border-radius:18px;box-shadow:8px 8px 0 #241d4e;transform:rotate(2deg)}.code-top{display:flex;align-items:center;gap:5px;padding:12px;border-bottom:1px solid #393256}.code-top span{width:8px;height:8px;background:var(--pink);border-radius:50%}.code-top span:nth-child(2){background:var(--yellow)}.code-top span:nth-child(3){background:var(--green)}.code-top b{margin-left:7px;color:#a9a1c9;font-size:8px}.code-card pre{margin:0;padding:25px;color:#d7d1f2;font:12px/1.9 ui-monospace,SFMono-Regular,Menlo,monospace}.code-card i{color:#77708e}.code-card b{color:var(--green)}.code-card mark{padding:4px;color:var(--ink);background:var(--yellow)}.fork-bubble{position:absolute;right:-25px;bottom:-22px;padding:9px 13px;color:var(--ink);background:var(--cyan);border:2px solid var(--line);border-radius:999px;box-shadow:4px 4px 0 var(--line);font-size:10px;font-weight:900;transform:rotate(-5deg)}.open-perks{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:28px}.open-perks article{display:grid;grid-template-columns:auto 1fr;column-gap:14px;align-items:center;padding:23px;border:3px solid var(--line);border-radius:18px;box-shadow:5px 6px 0 var(--line)}.open-perks span{grid-row:1/3;font-size:29px}.open-perks h3{margin:0;font-size:17px}.open-perks p{margin:2px 0 0;font-size:11px}.perk-yellow{background:#fff5bd}.perk-cyan{background:#b9f5f2}.perk-pink{background:#ffc4df}

.features-section{background:#f7f3ff}.section-heading{max-width:720px;margin-bottom:50px}.section-heading.centered{margin-inline:auto;text-align:center}.section-heading h2{margin-bottom:18px;font-size:clamp(46px,5vw,66px)}.section-heading h2 em{color:var(--pink);font-style:normal}.section-heading>p:last-child{color:var(--ink-soft);font-size:16px}.bento-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:17px}.bento{position:relative;min-height:270px;padding:28px;overflow:hidden;border:3px solid var(--line);border-radius:23px;box-shadow:5px 6px 0 var(--line);transition:transform .2s}.bento:hover{transform:translateY(-5px)}.bento>span{position:absolute;right:20px;top:17px;font-size:9px;font-weight:900}.bento-icon{width:51px;height:51px;display:grid;place-items:center;margin-bottom:35px;background:white;border:2px solid var(--line);border-radius:15px;box-shadow:3px 3px 0 var(--line);font-size:24px}.bento h3{margin-bottom:9px;font-size:23px}.bento p{max-width:470px;margin-bottom:0;color:#403a5d;font-size:12px}.bento-students{grid-column:span 7;background:var(--yellow)}.bento-attendance{grid-column:span 5;background:var(--cyan)}.bento-mail{grid-column:span 4;background:#ffc3dd}.bento-money{grid-column:span 4;background:#bcefcf}.bento-more{grid-column:span 4;background:#ffbe91}.bento-ai{grid-column:span 8;display:grid;grid-template-columns:.8fr 1.2fr;gap:30px;align-items:center;color:white;background:var(--purple)}.bento-ai p{color:rgba(255,255,255,.75)}.bento-ai h3{font-size:34px}.student-faces{display:flex;margin-top:25px}.student-faces i{width:39px;height:39px;display:grid;place-items:center;margin-right:-7px;background:white;border:2px solid var(--line);border-radius:50%;font-size:8px;font-style:normal;font-weight:900}.student-faces i:nth-child(2){background:#ffc3dd}.student-faces i:nth-child(3){background:#b9f5f2}.student-faces i:last-child{width:auto;padding:0 10px;border-radius:999px}.attendance-line{display:flex;align-items:center;gap:7px;margin-top:36px}.attendance-line i{width:29px;height:29px;background:white;border:2px solid var(--line);border-radius:8px}.attendance-line i.on{background:var(--purple)}.attendance-line b{margin-left:5px;font-size:20px}.mail-fly{position:absolute;right:30px;bottom:15px;color:var(--purple);font-size:66px;transform:rotate(-22deg)}.money-chart{height:70px;display:flex;align-items:end;gap:8px;margin-top:30px}.money-chart i{width:25px;background:var(--purple);border:2px solid var(--line);border-radius:6px 6px 0 0}.money-chart i:nth-child(1){height:35%}.money-chart i:nth-child(2){height:65%;background:var(--pink)}.money-chart i:nth-child(3){height:50%;background:var(--yellow)}.money-chart i:nth-child(4){height:90%}.ai-chat{padding:15px;color:var(--ink);background:white;border:2px solid var(--line);border-radius:16px;box-shadow:5px 5px 0 var(--line);transform:rotate(1deg)}.ai-chat>p{max-width:80%;margin-left:auto;padding:10px;color:white;background:var(--ink);border-radius:11px 11px 3px 11px;font-size:9px}.ai-chat>div{display:flex;gap:7px;padding:10px;background:#eeeaff;border-radius:10px;font-size:9px}.ai-chat>div span{color:var(--purple)}.more-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:25px}.more-tags span{padding:5px 8px;background:rgba(255,255,255,.6);border:1.5px solid var(--line);border-radius:999px;font-size:8px;font-weight:800}

.people-section{background:var(--pink)}.people-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:80px;align-items:center}.people-copy h2{font-size:clamp(46px,5vw,66px)}.people-copy>p:last-child{font-size:15px}.people-cards{display:grid;grid-template-columns:1fr 1fr;gap:15px}.person-card{display:flex;align-items:center;gap:15px;padding:20px;background:white;border:3px solid var(--line);border-radius:18px;box-shadow:5px 6px 0 var(--line)}.person-card:nth-child(2),.person-card:nth-child(3){transform:rotate(2deg)}.person-card:nth-child(1),.person-card:nth-child(4){transform:rotate(-2deg)}.person-card>span{width:54px;height:54px;display:grid;place-items:center;border:2px solid var(--line);border-radius:15px;font-size:27px}.teacher>span{background:var(--yellow)}.admin>span{background:var(--cyan)}.staff>span{background:var(--green)}.parent>span{background:#c9bfff}.person-card b,.person-card small{display:block}.person-card b{font-size:15px}.person-card small{display:inline-block;margin-top:3px;padding:2px 8px;color:white;background:var(--purple);border-radius:999px;font-size:8px;font-weight:900;text-transform:uppercase}

.pricing-section{background:var(--paper)}.pricing-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;max-width:950px;margin:auto}.price-card{position:relative;padding:42px;border:3px solid var(--line);border-radius:25px;box-shadow:8px 9px 0 var(--line)}.self-host{background:#dff8f3}.hosted{background:var(--yellow);transform:rotate(1deg)}.price-icon{width:58px;height:58px;display:grid;place-items:center;margin-bottom:25px;background:white;border:2px solid var(--line);border-radius:16px;box-shadow:4px 4px 0 var(--line);font-size:25px}.price-label{margin-bottom:4px;color:var(--purple-dark);font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.1em}.price-card h3{margin-bottom:20px;font-size:32px}.price{padding:15px 0;border-top:2px solid var(--line);border-bottom:2px solid var(--line)}.price b,.price small{display:block}.price b{font-size:27px}.price small{color:var(--ink-soft);font-size:10px}.price-card ul{padding:0;margin:25px 0;list-style:none}.price-card li{position:relative;padding:7px 0 7px 25px;font-size:12px}.price-card li:before{content:"✓";position:absolute;left:0;top:6px;width:18px;height:18px;display:grid;place-items:center;color:white;background:var(--purple);border-radius:50%;font-size:9px;font-weight:900}.price-card .button{width:100%}.popular-badge{position:absolute;right:-14px;top:-18px;padding:8px 12px;color:white;background:var(--pink);border:2px solid var(--line);border-radius:999px;box-shadow:3px 3px 0 var(--line);font-size:9px;font-weight:900;transform:rotate(4deg)}.pricing-footnote{margin:38px 0 0;text-align:center;color:var(--ink-soft);font-size:12px}.pricing-footnote b{color:var(--purple)}

.contact-section{padding-top:20px;background:var(--paper)}.contact-card{position:relative;padding:75px 55px;overflow:hidden;text-align:center;background:var(--cyan);border:3px solid var(--line);border-radius:30px;box-shadow:10px 11px 0 var(--line)}.contact-card h2{font-size:clamp(47px,5.5vw,72px)}.contact-card h2 em{color:var(--purple);font-style:normal}.contact-card>p:not(.kicker){max-width:610px;margin:0 auto 28px;color:#403a5d}.contact-actions{display:flex;align-items:center;justify-content:center;gap:25px;flex-wrap:wrap}.contact-mail{font-size:11px}.contact-confetti span{position:absolute;font-size:25px}.contact-confetti span:nth-child(1){left:5%;top:16%;color:var(--pink)}.contact-confetti span:nth-child(2){right:8%;top:18%;color:var(--purple);font-size:40px}.contact-confetti span:nth-child(3){left:10%;bottom:12%;color:var(--orange);transform:rotate(20deg)}.contact-confetti span:nth-child(4){right:5%;bottom:10%;color:var(--yellow)}

.site-footer{padding:70px 0 25px;color:white;background:var(--ink)}.footer-top{display:grid;grid-template-columns:2fr 1fr 1fr;gap:60px;padding-bottom:50px}.footer-brand .brand-mark{background:var(--yellow);color:var(--ink)}.footer-top>div:first-child>p{margin-top:17px;color:rgba(255,255,255,.58);font-size:12px}.footer-links{display:flex;flex-direction:column;align-items:start;gap:9px}.footer-links strong{margin-bottom:8px;color:var(--yellow);font-size:10px;text-transform:uppercase;letter-spacing:.1em}.footer-links a{color:rgba(255,255,255,.68);font-size:12px}.footer-links a:hover{color:white}.footer-bottom{display:flex;justify-content:space-between;gap:24px;padding-top:22px;border-top:1px solid rgba(255,255,255,.15);color:rgba(255,255,255,.5);font-size:10px}.footer-bottom strong{color:rgba(255,255,255,.8)}
.reveal{opacity:0;transform:translateY(22px);transition:opacity .65s ease,transform .65s ease}.reveal.visible{opacity:1;transform:none}.reveal-delay{transition-delay:.12s}

@media(max-width:1040px){.hero-grid{grid-template-columns:1fr;gap:55px}.hero-copy{max-width:800px}.happy-board{max-width:720px;margin:auto}.role-ribbon{flex-wrap:wrap}.open-card{grid-template-columns:1fr;gap:45px}.code-card{max-width:600px}.bento-students,.bento-ai{grid-column:span 12}.bento-attendance{grid-column:span 6}.bento-mail,.bento-money,.bento-more{grid-column:span 4}.people-grid{gap:45px}}
@media(max-width:780px){:root{--shell:min(100% - 28px,620px);--shadow:4px 5px 0 var(--line)}.section-pad{padding:78px 0}.nav-wrap{min-height:70px}.menu-button{display:block}.primary-nav{position:absolute;left:14px;right:14px;top:76px;display:none;align-items:stretch;gap:3px;padding:13px;background:white;border:2px solid var(--line);border-radius:16px;box-shadow:5px 6px 0 var(--line)}.primary-nav.open{display:flex;flex-direction:column}.primary-nav a{padding:10px 12px}.github-link{justify-content:center}.nav-cta{text-align:center}.menu-button[aria-expanded=true] span:nth-child(1){transform:translateY(6px) rotate(45deg)}.menu-button[aria-expanded=true] span:nth-child(2){opacity:0}.menu-button[aria-expanded=true] span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}.hero{padding-top:120px}.hero-grid{min-height:auto;padding-bottom:55px}h1{font-size:48px}.hero-intro{font-size:16px}.hero-actions{flex-direction:column}.hero-actions .button{width:100%}.hero-price-note{align-items:flex-start}.happy-board{padding:22px 0}.sticker-wow{right:-4px}.sticker-open{left:-7px;bottom:-26px}.mini-float{right:-5px;bottom:35px}.board-body{padding:13px}.stat-grid{gap:5px}.stat-grid article{padding:9px 6px;gap:4px}.stat-grid article>span{display:none}.board-lower{grid-template-columns:1fr}.todo-card{display:none}.role-ribbon{width:100%;gap:9px 14px;border-radius:0;padding:17px 14px}.role-ribbon b{width:100%;text-align:center}.open-card{padding:38px 24px}.open-copy h2{font-size:43px}.open-actions{align-items:stretch;flex-direction:column}.code-card pre{padding:18px;font-size:10px}.open-perks{grid-template-columns:1fr}.section-heading h2{font-size:44px}.bento-grid{grid-template-columns:1fr}.bento,.bento-students,.bento-attendance,.bento-mail,.bento-money,.bento-ai,.bento-more{grid-column:auto}.bento-ai{grid-template-columns:1fr}.people-grid{grid-template-columns:1fr}.people-cards{grid-template-columns:1fr 1fr}.pricing-grid{grid-template-columns:1fr}.hosted{transform:none}.contact-card{padding:55px 22px}.contact-card h2{font-size:43px}.footer-top{grid-template-columns:1fr 1fr}.footer-top>div:first-child{grid-column:1/-1}.footer-bottom{flex-direction:column;gap:10px}}
@media(max-width:460px){h1{font-size:43px}.happy-board{margin-inline:-5px}.board-bar{height:42px}.hello-row h2{font-size:15px}.stat-grid article:nth-child(3){display:none}.stat-grid{grid-template-columns:1fr 1fr}.sticker-open{display:none}.mini-float{transform:scale(.86) rotate(-2deg);transform-origin:right bottom}.people-cards{grid-template-columns:1fr}.person-card:nth-child(n){transform:none}.price-card{padding:32px 23px}.contact-confetti{display:none}}
@media(max-width:860px){.menu-button{display:block}.primary-nav{position:absolute;left:14px;right:14px;top:76px;display:none;align-items:stretch;gap:3px;padding:13px;background:white;border:2px solid var(--line);border-radius:16px;box-shadow:5px 6px 0 var(--line)}.primary-nav.open{display:flex;flex-direction:column}.primary-nav a{padding:10px 12px}.github-link{justify-content:center}.language-switch{align-self:center}.language-switch a{padding:3px 10px}.nav-cta{text-align:center}.menu-button[aria-expanded=true] span:nth-child(1){transform:translateY(6px) rotate(45deg)}.menu-button[aria-expanded=true] span:nth-child(2){opacity:0}.menu-button[aria-expanded=true] span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}*{animation:none!important;transition-duration:.01ms!important}}
