:root{--paper:#f5f3ed;--white:#fffefa;--ink:#212e48;--muted:#707789;--line:#e2e2df;--blue:#3658cf;--lime:#e2edba;--coral:#f3c6b1;--serif:'Bricolage Grotesque',sans-serif;font-family:'DM Sans',sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}
*{box-sizing:border-box}body{margin:0;font-size:14px;line-height:1.6}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button,.button{display:inline-flex;align-items:center;justify-content:center;gap:18px;min-height:46px;border:1px solid transparent;border-radius:9px;padding:12px 19px;background:var(--blue);color:#fff;font-size:13px;font-weight:600;cursor:pointer;line-height:1.5;transition:background .18s,transform .18s}button:hover,.button:hover{background:#2645b7;transform:translateY(-1px)}button:active,.button:active{transform:translateY(1px)}button:disabled{opacity:.5;cursor:wait}.secondary{background:#fffefa;color:var(--ink);border-color:#d6d9e0}.secondary:hover{background:#ebedf8}.text-button{padding:6px 0;background:transparent;color:var(--muted);min-height:36px;font-size:12px;border:0}.text-button:hover{background:transparent;color:var(--blue)}.danger{color:#ac4c38}.text-link{font-size:13px;font-weight:600;color:var(--blue)}.muted{color:var(--muted)}.small{font-size:12px}.fine-print{font-size:11px;color:var(--muted);line-height:1.8;overflow-wrap:anywhere}.eyebrow,.nav-label{font-size:10px;font-weight:600;letter-spacing:.09em;text-transform:uppercase}.eyebrow{color:var(--blue);margin:0 0 16px}h1,h2,h3,p{margin-top:0}h1,h2,h3{line-height:1.13;text-wrap:balance}h1{font-family:var(--serif);font-size:clamp(36px,3.9vw,58px);font-weight:800;letter-spacing:-.045em;margin-bottom:17px;overflow-wrap:anywhere}h2{font-family:var(--serif);font-size:23px;font-weight:600;letter-spacing:-.035em;margin-bottom:8px}h3{font-family:var(--serif);font-size:25px;font-weight:600;letter-spacing:-.035em;margin-bottom:12px}p{margin-bottom:16px}.heading-period{color:var(--blue)}
.brand{display:flex;align-items:center;gap:10px;font-family:var(--serif);font-size:37px;line-height:1;font-weight:800;letter-spacing:-.12em}.brand>span{font-size:27px;letter-spacing:-.055em}.brand i{width:7px;height:7px;background:var(--blue);border-radius:2px;align-self:flex-end;margin-bottom:4px;margin-left:-8px}.sidebar{position:fixed;inset:0 auto 0 0;width:235px;background:#eeeee8;border-right:1px solid #dedfd7;padding:37px 23px;display:flex;flex-direction:column;z-index:2}.nav-label{margin:56px 0 19px;color:#8b8c85;font-size:8px;letter-spacing:.08em}.sidebar nav{display:flex;flex-direction:column;gap:9px}.sidebar nav a{display:flex;gap:13px;align-items:center;padding:13px 14px;border-radius:9px;font-size:18px;color:#6c7380;transition:background .18s}.sidebar nav a span{font-size:13px}.sidebar nav a:hover{background:#e5e6df}.sidebar nav a.selected{background:var(--blue);color:#fff;font-weight:600}.sidebar-note{background:var(--lime);padding:21px 18px;border-radius:12px;margin-top:55px;transform:rotate(-2deg);position:relative;overflow:hidden}.sidebar-note>span{font:800 23px/1.12 var(--serif);letter-spacing:-.04em}.sidebar-note p{font-size:10px;margin:11px 0 22px;color:#556546}.notebook-motif{display:flex;gap:5px}.notebook-motif i{height:7px;width:34px;background:#879b5f;border-radius:2px}.notebook-motif i:nth-child(2){opacity:.5}.notebook-motif i:nth-child(3){opacity:.25}.sidebar-bottom{margin-top:auto;padding-top:35px}.teacher{display:flex;align-items:center;gap:10px;border-bottom:1px solid #d9dcd2;padding-bottom:18px;margin-bottom:10px}.avatar{width:36px;height:36px;display:grid;place-items:center;background:#dedfef;border-radius:10px;font-family:var(--serif);font-size:19px;color:var(--blue)}.teacher strong{font-size:12px;display:block}.teacher small{display:block;font-size:9px;color:var(--muted)}.main{margin-left:235px;max-width:1550px;padding:49px 52px 60px;min-height:calc(100vh - 60px);min-width:0}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:28px;margin-bottom:32px}.page-heading .muted{margin:0;font-size:13px}.page-heading .button{flex-shrink:0}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:40px}.stats>div{padding:18px 22px;background:#e4e8f5;border-radius:12px;position:relative;overflow:hidden}.stats>div:nth-child(2){background:#e5ebd6}.stats>div:nth-child(3){background:#f0e0d8}.stats>div:after{content:'↗';position:absolute;right:20px;top:17px;color:#65749b;font-size:22px}.stats>div:nth-child(2):after{color:#7d8d63}.stats>div:nth-child(3):after{color:#a47f69}.stat-label{display:block;font-size:11px;color:#59647b;margin-bottom:8px}.stats strong{font-family:var(--serif);font-weight:600;font-size:42px;letter-spacing:-.045em;line-height:1.1;display:flex;gap:13px;align-items:baseline;font-variant-numeric:tabular-nums}.stats small{font:10px 'DM Sans',sans-serif;color:#6e7581;letter-spacing:0}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:30px 0 18px}.section-heading h2{margin:0}.section-heading p{margin:8px 0 0}.class-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:stretch}.class-card{border:1px solid #dedfdc;border-radius:14px;background:var(--white);padding:26px;min-width:0;border-top:5px solid #8b9de6}.class-tone-1{border-top-color:#db9f7c}.class-tone-2{border-top-color:#a6b879}.class-card header{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:23px}.class-card header>.muted{margin-left:auto}.card-type{font-size:9px;color:#7c8291;text-transform:uppercase;letter-spacing:.06em}.section-icon{display:inline-grid;place-items:center;width:42px;height:44px;border-radius:8px;background:#e9eaf5;font-family:var(--serif);font-size:22px;font-weight:600;color:#596cc2}.tone-1{background:#fae5d7;color:#af7355}.tone-2{background:#eaf0d8;color:#758550}.class-card h3{overflow-wrap:anywhere}.class-card .small{margin-bottom:22px}.group-list{display:flex;flex-direction:column;gap:8px}.group-list a{display:flex;justify-content:space-between;gap:12px;padding:12px 14px;border:1px solid #e7e7e2;border-radius:7px;font-size:12px;background:#f7f7f2;transition:background .2s,border-color .2s}.group-list a span:first-child{overflow-wrap:anywhere;min-width:0;font-weight:600}.group-list a span:last-child{font-size:10px;color:#6679bc;flex-shrink:0}.group-list a:hover{background:#e9ecfa;border-color:#aebce9}.class-card details{margin-top:12px}.class-card summary{font-size:11px;cursor:pointer;padding:8px 0;list-style:none;color:var(--blue);font-weight:600}.inline-form{display:flex;gap:8px;margin-top:12px}.inline-form input{min-width:0;width:100%}.add-card{background:#eeeee8;border:1px dashed #c4c9ba;display:flex;flex-direction:column;justify-content:center}.add-card .section-icon{margin-bottom:22px;background:#e0e3d5;color:#7f8b69}.add-card h3{font-size:24px}.add-card form{margin-top:auto}.stack{display:flex;flex-direction:column;gap:10px}.stack label{font-size:12px;font-weight:600}.stack button{margin-top:8px;justify-content:space-between}input,select{background:#fffefa;border:1px solid #d7dae2;border-radius:7px;min-height:45px;padding:10px 13px;color:var(--ink);width:100%;font-size:13px}input::placeholder{color:#969baa}input:focus,select:focus{border-color:#7187da;outline:3px solid #e5eafa;outline-offset:1px}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #e6a56d;outline-offset:4px}.table-card,.register{background:var(--white);border:1px solid var(--line);border-radius:12px;overflow:hidden;min-width:0}.table-wrap{overflow-x:auto;position:relative;max-width:100%}table{width:100%;border-collapse:collapse;text-align:left;font-size:12px}th{font-size:9px;letter-spacing:.07em;color:#7b8399;font-weight:600;padding:17px 20px;background:#edeee8;white-space:nowrap}td{padding:18px 20px;border-top:1px solid #eeeee9}tbody tr:hover{background:#f7f8fb}.table-link{font-weight:600;display:block;min-width:125px;color:#324b99}.badge{display:inline-flex;align-items:center;gap:7px;background:#eaece8;color:#687164;font-size:10px;padding:5px 10px;border-radius:5px;white-space:nowrap;font-weight:600}.live{background:#e4edcc;color:#526b2e}.live:before{content:'';width:6px;height:6px;border-radius:50%;background:#6c8c45}.empty{text-align:center;padding:43px 24px}.empty-symbol{font-size:30px;color:#8c9ac6;display:block;margin-bottom:14px}.empty h3{font-size:28px}.empty p{font-size:12px;color:var(--muted);margin:0}.workspace-footer{margin-left:235px;padding:20px 52px;border-top:1px solid var(--line);display:flex;gap:20px;font-size:10px;color:#9195a0}.workspace-footer span:last-child{margin-left:auto}.back-link{display:inline-block;font-size:12px;color:var(--blue);margin-bottom:28px}.start-session{display:grid;grid-template-columns:1fr 1fr;gap:60px;padding:39px;background:#e4e8f6;border:1px solid #d3daf0;border-radius:14px}.start-session .eyebrow{color:#6077c4}.start-session h2{font:800 40px/1.08 var(--serif);letter-spacing:-.05em;margin:20px 0}.start-session p{font-size:13px;max-width:290px;color:#687695}.session-grid{display:grid;grid-template-columns:335px minmax(0,1fr);gap:24px;align-items:start}.qr-card{background:#e5e9f9;border:1px solid #d6def6;padding:28px;text-align:center;border-radius:14px}.qr-card .qr-frame{margin:24px auto}.qr-frame{background:#fff;border:1px solid #dce1ee;padding:12px;border-radius:12px;width:100%;max-width:300px;line-height:0}.qr-frame img{width:100%;height:auto;aspect-ratio:1}.qr-card h2{font-size:28px;letter-spacing:-.05em}.qr-card .button{width:100%;background:var(--blue);color:white;border:0}.qr-card .text-button{display:block;margin:8px auto}.qr-card .copy-status{margin:0}.register .section-heading{padding:24px;margin:0;flex-wrap:wrap}.register .fine-print{padding:20px 24px;margin:0;border-top:1px solid var(--line)}.count{font:600 12px 'DM Sans',sans-serif;padding:5px 9px;background:#e7ebfa;color:var(--blue);border-radius:5px;margin-left:6px}.student-number{font-family:monospace;font-size:10px;color:#8995b9;display:inline-block;width:30px}.closed-symbol{font-size:55px;font-family:var(--serif);color:#657ba4;margin:35px 0}.notice{padding:14px 16px;border:1px solid #e8baa4;background:#fff0e9;border-radius:8px;font-size:13px;color:#913e2d;margin-bottom:20px}
.public-page{min-height:100dvh;background:#eeeee7;display:flex;flex-direction:column}.public-brand{padding:30px 45px}.public-main{width:100%;padding:24px 24px 55px;display:flex;align-items:center;justify-content:center;gap:90px;flex:1}.public-card{width:100%;max-width:450px;background:var(--white);border:1px solid #dfe1d8;border-radius:17px;padding:38px;box-shadow:0 12px 45px #26334a08}.public-card h1{font-size:49px}.public-card .stack{margin:28px 0 22px}.public-card .fine-print{margin:24px 0 0}.public-footer{text-align:center;font-size:10px;color:#8c9286;padding:20px}.login-art{max-width:420px;width:100%}.login-art h2{font:800 61px/1.02 var(--serif);letter-spacing:-.055em}.login-art h2 em{color:var(--blue);font-style:normal}.login-art>p:last-child{font-size:14px;color:#68748b;line-height:1.6}.login-register{width:230px;background:#e2e9c8;padding:20px 22px;margin:30px 0;transform:rotate(-4deg);border-radius:10px;border-left:10px solid #b5c18e}.login-register>span{font-size:8px;letter-spacing:.12em;color:#6d7c51}.login-register>div{display:flex;gap:16px;align-items:center;border-bottom:1px solid #c3cfab;padding:10px 0}.login-register b{font:12px monospace;color:#93a078}.login-register i{display:block;height:5px;background:#b6c49b;width:85px;border-radius:4px}.login-register strong{color:#617b39;font-size:15px}.class-context{font-size:11px;border-bottom:1px solid var(--line);padding-bottom:22px;margin-bottom:28px;font-weight:600;color:var(--blue)}.class-context span{display:block;color:var(--muted);font-weight:400;overflow-wrap:anywhere;margin-top:3px}.join-card{border-top:7px solid var(--blue)}.join-card .muted{font-size:13px}.join-card .eyebrow{font-size:9px}.check-mark{background:#e6edcb;color:#627d3c;display:grid;place-items:center;width:57px;height:57px;font-size:30px;border-radius:12px;margin-bottom:27px;transform:rotate(-5deg)}.check-mark.neutral{background:#e6e9f1;color:#6a7a9e}.success-name{font-size:22px;font-weight:600;overflow-wrap:anywhere;color:var(--blue)}.projector{text-align:center;width:100%;max-width:800px}.projector h1{font-size:50px}.projector .qr-frame{max-width:390px;margin:35px auto}.projector h2{font:600 36px var(--serif)}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(min-width:1500px){.class-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:1150px){.main{padding:40px 30px}.sidebar{width:205px;padding:30px 18px}.main,.workspace-footer{margin-left:205px}.stats small{display:none}.session-grid{grid-template-columns:290px minmax(0,1fr)}.qr-card{padding:20px}.start-session{gap:30px;padding:30px}.workspace-footer{padding:20px 30px}.register .section-heading{padding:18px}.public-main{gap:45px}.login-art{max-width:340px}.login-art h2{font-size:53px}.card-type{display:none}}
@media(max-width:800px){.sidebar{position:static;width:100%;padding:18px 24px;flex-direction:row;align-items:center;flex-wrap:wrap;gap:16px;border-bottom:1px solid var(--line)}.sidebar .brand{font-size:32px}.brand>span{font-size:24px}.sidebar .nav-label,.teacher,.sidebar-note{display:none}.sidebar nav{flex-direction:row;margin-left:auto;gap:4px}.sidebar nav a{padding:9px}.sidebar nav a span{font-size:11px}.sidebar-bottom{margin:0;padding:0}.sidebar-bottom .text-button{font-size:10px}.main{margin:0;padding:35px 24px 45px}.workspace-footer{margin:0;padding:18px 24px}.page-heading{margin-bottom:28px}.page-heading .muted{font-size:12px}.start-session h2{font-size:35px}.session-grid{grid-template-columns:1fr}.qr-card .qr-frame{max-width:260px}.qr-card .button{width:auto}.public-main{gap:30px}.login-art{display:none}.register .section-heading{padding:22px}.class-grid{gap:15px}.class-card{padding:20px}.stats{margin-bottom:30px}.card-type{display:inline}}
@media(max-width:530px){.sidebar{gap:12px;padding:16px 18px}.sidebar nav{order:3;width:100%;justify-content:space-between;margin:0}.sidebar-bottom{margin-left:auto}.sidebar nav a{gap:8px}.sidebar nav a span{font-size:10px;white-space:nowrap}.main{padding:30px 18px}.page-heading{align-items:flex-start;flex-direction:column;gap:20px}.page-heading .eyebrow{font-size:8px}h1{font-size:39px;letter-spacing:-.05em}.stats{gap:8px}.stats>div{padding:14px 12px}.stats>div:after{display:none}.stats strong{font-size:33px}.stat-label{font-size:9px}.class-grid{grid-template-columns:1fr}.section-heading{gap:12px}.section-heading h2{font-size:20px}.section-heading>.muted,.section-heading .text-link{font-size:10px}.class-card{padding:24px}.start-session{grid-template-columns:1fr;gap:15px;padding:25px}.workspace-footer{padding:16px 18px;font-size:9px;gap:12px}.workspace-footer span:last-child{display:none}.public-brand{padding:25px}.public-main{padding:14px 16px 30px}.public-card{padding:28px}.public-card h1{font-size:44px}.public-footer{padding:15px 20px;font-size:9px}.projector h1{font-size:38px}th,td{padding:14px 16px}.register .section-heading{padding:20px}.register .fine-print{padding:18px}.register .empty{padding:40px 20px}}
@media(prefers-reduced-motion:no-preference){.main,.public-card{animation:appear .25s ease-out}@keyframes appear{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}@media print{.sidebar,.workspace-footer,.back-link,.qr-card,.button,.danger{display:none}.main{margin:0;padding:0}.session-grid{display:block}.register{border:0}body{background:#fff}}
