:root{--text-scale-site:1;--text-scale-local:1;--brand:#0b6fa8;--brand-dark:#095c8c;--brand-accent:#29abe2;--brand-accent-light:#4fc1f0;--brand-on-accent:#0a2233;--focus-ring:var(--brand-dark);--pin-student:#0b6fa8;--pin-staff:#c2410c;--ink:#23262b;--ink-2:#3a4048;--ink-3:#4a5058;--muted:#667085;--muted-3:#5a616b;--page:#f6f7f9;--app-bar-h:56px;--surface:#ffffff;--surface-2:#fafbfc;--surface-3:#fcfcfd;--tint:#f0f9fe;--tint-2:#f5fbfe;--line:#e4e7ec;--line-soft:#f0f2f5;--line-strong:#d6dae0;--track:#eef0f3;--dark:#1d2025;--dark-2:#2c3037;--dark-line:#34383f;--dark-line-2:#3a3f47;--dark-text:#a9afb8;--dark-text-2:#7c838c;--dark-text-3:#8a9099;--tone-blue-bg:#eaf6fd;--tone-blue-fg:#0b6fa8;--tone-amber-bg:#fdf3e6;--tone-amber-fg:#9a5b12;--tone-red-bg:#fbedea;--tone-red-fg:#a63d2f;--tone-green-bg:#eaf6ef;--tone-green-fg:#1f7a47;--tone-gray-bg:#f1f3f6;--tone-gray-fg:#5a616b;--radius:10px;--radius-sm:6px;--shadow-card:0 1px 2px rgba(16,24,40,0.04),0 12px 32px -12px rgba(16,24,40,0.12);--shadow-modal:0 24px 60px -12px rgba(16,24,40,0.4);--font-sans:var(--font-public-sans),ui-sans-serif,system-ui,sans-serif;--font-serif:var(--font-source-serif),Georgia,serif;--maxw:1180px}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--page)}body{font-family:var(--font-sans);color:var(--ink);-webkit-font-smoothing:antialiased}a{color:var(--brand);text-decoration:none}a:hover{color:var(--brand-accent);text-decoration:underline}button,input,select,textarea{font-family:inherit}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:8px;border:3px solid var(--page)}@keyframes fadeUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}*{--text-scale:calc(var(--text-scale-site) * var(--text-scale-local))}.t-sm{font-size:.85em}.t-lg{font-size:1.25em}.t-xl{font-size:1.6em;line-height:1.25}.t-2xl{font-size:2.1em;line-height:1.15}:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.app-bar,.sidebar{--focus-ring:#7fd4f7}.learner-card-band{--focus-ring:#ffffff}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;top:-100px;left:12px;z-index:90;background:var(--surface);color:var(--brand);border:1px solid var(--line-strong);border-radius:var(--radius-sm);padding:10px 16px;font-size:calc(14px * var(--text-scale));font-weight:600;text-decoration:none;box-shadow:0 6px 20px rgba(16,24,40,.14);transition:top .12s}.skip-link:focus{top:12px}@media (prefers-reduced-motion:reduce){.skip-link{transition:none}}@media (max-width:860px){.skip-link:focus{top:calc(var(--app-bar-h) + env(safe-area-inset-top) + 12px)}}#portal-main:focus{outline:none}.serif{letter-spacing:-.01em}.serif,h1.display{font-family:var(--font-serif);font-weight:600}h1.display{font-size:calc(60px * var(--text-scale));line-height:1.06;letter-spacing:-.02em;margin:24px 0 0;text-wrap:balance}h2.section-title{font-family:var(--font-serif);font-size:calc(38px * var(--text-scale));font-weight:600;letter-spacing:-.015em;margin:0}.eyebrow{font-size:calc(12px * var(--text-scale));letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:700}.eyebrow.brand{color:var(--brand)}.lead{font-size:calc(19px * var(--text-scale));line-height:1.62;color:var(--ink-3);margin:24px 0 0;max-width:56ch;text-wrap:pretty}.lead-line{display:block;text-wrap:balance}.lead-line+.lead-line{margin-top:.75em}.prose{font-size:calc(15.5px * var(--text-scale));line-height:1.68;color:var(--ink-3);margin:0;white-space:pre-wrap}.wrap{max-width:var(--maxw);margin:0 auto;padding:0 40px}.grid{display:grid;grid-gap:20px;gap:20px}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}.grid-main{grid-template-columns:1.5fr 1fr}.card{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.card-pad{padding:26px}.card-head{padding:20px 26px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:16px}.card-row{padding:20px 26px;border-bottom:1px solid var(--line-soft)}.card-row:last-child{border-bottom:none}.card-hover:hover{border-color:var(--brand-accent);box-shadow:0 8px 24px -12px rgba(16,24,40,.18)}.tag{display:inline-block;font-size:calc(11px * var(--text-scale));letter-spacing:.07em;text-transform:uppercase;font-weight:700;padding:3px 8px;border-radius:4px;white-space:nowrap}.tone-blue{background:var(--tone-blue-bg);color:var(--tone-blue-fg)}.tone-amber{background:var(--tone-amber-bg);color:var(--tone-amber-fg)}.tone-red{background:var(--tone-red-bg);color:var(--tone-red-fg)}.tone-green{background:var(--tone-green-bg);color:var(--tone-green-fg)}.tone-gray{background:var(--tone-gray-bg);color:var(--tone-gray-fg)}.meta{font-size:calc(12.5px * var(--text-scale));color:var(--muted)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:none;border-radius:var(--radius-sm);font-size:calc(14.5px * var(--text-scale));font-weight:600;padding:12px 22px;cursor:pointer;text-decoration:none;transition:background .12s,border-color .12s,color .12s}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--brand);color:#fff}.btn-primary:hover:not(:disabled){background:var(--brand-dark);color:#fff;text-decoration:none}.btn-dark{background:var(--ink);color:#fff}.btn-dark:hover:not(:disabled){background:var(--brand);color:#fff;text-decoration:none}.btn-accent{background:var(--brand-accent);color:var(--brand-on-accent);font-weight:700}.btn-accent:hover:not(:disabled){background:var(--brand-accent-light);color:var(--brand-on-accent);text-decoration:none}.btn-ghost{border:1px solid var(--line-strong);background:var(--surface);color:var(--ink)}.btn-ghost:hover:not(:disabled){border-color:var(--brand-accent);color:var(--brand);text-decoration:none}.btn-link{background:transparent;border:none;color:var(--brand);font-size:calc(13.5px * var(--text-scale));font-weight:600;cursor:pointer;padding:0}.btn-link:hover{text-decoration:underline}.btn-danger{border:1px solid var(--tone-red-bg);background:var(--tone-red-bg);color:var(--tone-red-fg)}.btn-danger:hover:not(:disabled){background:#f7ded9}.btn-lg{font-size:calc(15.5px * var(--text-scale));padding:15px 30px}.btn-sm{font-size:calc(13.5px * var(--text-scale));padding:9px 16px}.btn-block{width:100%}.label{display:block;font-size:calc(13px * var(--text-scale));font-weight:600;color:var(--ink-3);margin-bottom:7px}.input,.select,.textarea{width:100%;padding:12px 14px;border:1px solid var(--line-strong);border-radius:var(--radius-sm);font-size:calc(15px * var(--text-scale));color:var(--ink);background:var(--surface);outline:none;transition:border-color .12s,box-shadow .12s}.textarea{min-height:110px;line-height:1.6;resize:vertical}.input:focus,.select:focus,.textarea:focus{border-color:var(--brand-accent);box-shadow:0 0 0 3px rgba(41,171,226,.15)}.field{margin-bottom:18px}.help{font-size:calc(12.5px * var(--text-scale));color:var(--muted);line-height:1.55;margin:-2px 0 7px}.field-error{font-size:calc(12.5px * var(--text-scale));line-height:1.5;margin-top:6px}.field-error,.form-error{color:var(--tone-red-fg);font-weight:500}.form-error{background:var(--tone-red-bg)}.form-error,.form-success{border-radius:var(--radius-sm);padding:11px 14px;font-size:calc(14px * var(--text-scale));margin-bottom:18px}.form-success{background:var(--tone-green-bg);color:var(--tone-green-fg);font-weight:500}.avatar{border-radius:99px;display:flex;align-items:center;justify-content:center;font-weight:700;flex-shrink:0;background:var(--tone-gray-bg);color:var(--ink-3);overflow:hidden}.avatar-img{width:100%;height:100%;object-fit:cover;display:block}.avatar.staff{background:var(--tone-blue-bg);color:var(--tone-blue-fg)}.avatar-sm{width:38px;height:38px;font-size:calc(13px * var(--text-scale))}.avatar-md{width:44px;height:44px;font-size:calc(13.5px * var(--text-scale))}.avatar-lg{width:56px;height:56px;font-size:calc(17px * var(--text-scale))}.bar{height:8px;background:var(--track);border-radius:99px;overflow:hidden;flex:1 1}.bar>span{display:block;height:100%;background:var(--brand-accent)}.empty{padding:56px 26px;text-align:center;color:var(--muted);font-size:calc(15px * var(--text-scale))}.empty strong{display:block;color:var(--ink);font-size:calc(16.5px * var(--text-scale));font-weight:600;margin-bottom:6px}.shell{min-height:100vh;display:grid;grid-template-columns:262px 1fr;background:var(--page)}.sidebar{background:var(--dark);color:#fff;display:flex;flex-direction:column;position:-webkit-sticky;position:sticky;top:0;height:100dvh}.app-bar,.sidebar-close{display:none}.app-bar{position:fixed;top:0;left:0;right:0;z-index:50;align-items:center;gap:14px;background:var(--dark);padding:env(safe-area-inset-top) 16px 0;height:calc(var(--app-bar-h) + env(safe-area-inset-top));border-bottom:1px solid var(--dark-2)}.app-bar-menu{display:inline-flex;align-items:center;gap:9px;background:transparent;border:1px solid var(--dark-line-2);color:var(--dark-text);border-radius:var(--radius-sm);min-height:44px;padding:0 14px;font-size:calc(14px * var(--text-scale));font-weight:600;cursor:pointer}.app-bar-menu:active{background:var(--dark-2)}.app-bar-menu .badge{background:var(--brand-accent);color:var(--brand-on-accent);font-size:calc(11.5px * var(--text-scale));font-weight:700;padding:2px 7px;border-radius:99px}.app-bar-bars{display:flex;flex-direction:column;justify-content:space-between;width:16px;height:11px}.app-bar-bars span{display:block;height:2px;border-radius:2px;background:currentColor}.app-bar .logo,.app-bar img{margin-left:auto}.nav-scrim{display:none;position:fixed;inset:0;z-index:60;background:rgba(10,12,15,.5);touch-action:none}.sidebar-head{padding:26px 22px 22px;border-bottom:1px solid var(--dark-2)}.sidebar-kicker{font-size:calc(11.5px * var(--text-scale));letter-spacing:.09em;text-transform:uppercase;color:var(--dark-text-2);font-weight:600;margin-top:12px}.sidebar-nav{flex:1 1;overflow-y:auto;padding:18px 12px}.sidebar-group{font-size:calc(10.5px * var(--text-scale));letter-spacing:.09em;text-transform:uppercase;color:var(--dark-text-2);font-weight:700;padding:16px 14px 7px}.nav-item{display:flex;align-items:center;gap:8px;padding:10px 14px;margin-bottom:2px;border-radius:var(--radius-sm);cursor:pointer;transition:background .12s;color:var(--dark-text);font-size:calc(14.5px * var(--text-scale));font-weight:500;text-decoration:none}.nav-item:hover{background:#262a31;color:#fff;text-decoration:none}.nav-item[aria-current=page]{background:var(--dark-2);color:#fff}.nav-item .badge{margin-left:auto;background:var(--brand-accent);color:var(--brand-on-accent);font-size:calc(11.5px * var(--text-scale));font-weight:700;padding:2px 7px;border-radius:99px}.nav-group{margin-bottom:2px}.nav-group-head{display:flex;align-items:stretch;gap:2px;border-radius:var(--radius-sm)}.nav-group-head:hover{background:#262a31}.nav-group-head.is-current{background:var(--dark-2)}.nav-group-head .nav-group-label{flex:1 1;min-width:0;margin-bottom:0;background:transparent}.nav-group-head .nav-group-label:hover{background:transparent}.nav-group-head .nav-group-heading{border:0;background:transparent;font:inherit;color:inherit;text-align:left;width:100%}.nav-chevron{flex-shrink:0;background:transparent;border:none;color:var(--dark-text-2);cursor:pointer;padding:0 10px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center}.nav-chevron:hover{color:#fff}.nav-chevron .chev{display:inline-block;font-size:calc(10px * var(--text-scale));line-height:1;transition:transform .14s ease}.nav-chevron .chev.open{transform:rotate(90deg)}.nav-children{margin:2px 0 6px 14px;padding-left:14px;border-left:1px solid var(--dark-2)}.nav-child{font-size:calc(13.5px * var(--text-scale));padding:7px 12px}.nav-flag{margin-left:auto;font-size:calc(9.5px * var(--text-scale));letter-spacing:.07em;text-transform:uppercase;font-weight:700;color:var(--dark-text-2);border:1px solid var(--dark-line-2);border-radius:3px;padding:1px 4px;white-space:nowrap}.sidebar-foot{padding:16px;border-top:1px solid var(--dark-2);gap:12px}.sidebar-foot,.topbar{display:flex;align-items:center}.topbar{position:-webkit-sticky;position:sticky;top:0;z-index:30;background:rgba(255,255,255,.94);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);padding:0 36px;min-height:70px;gap:24px}.topbar h1{font-family:var(--font-serif);font-size:calc(21px * var(--text-scale));font-weight:600;letter-spacing:-.01em;margin:0}.content{padding:32px 36px 64px;max-width:1240px}.divider-v{width:1px;height:26px;background:var(--line)}.cal-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;grid-gap:20px;gap:20px;align-items:start}.dow{padding:11px 4px;text-align:center;font-size:calc(11.5px * var(--text-scale));letter-spacing:.07em;text-transform:uppercase;color:var(--muted);font-weight:700;overflow:hidden}.section-block{padding:64px 0}.section-block+.section-block{padding-top:0}.section-block.section-type-image{padding-top:32px;padding-bottom:32px}.section-block+.section-block.section-type-image{padding-top:0}.section-tone-dark,.section-tone-muted,.section-tone-tinted{padding:64px 0;margin-top:0}.section-tone-muted{background:var(--surface-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.section-tone-tinted{background:var(--tint);border-top:1px solid #d6ecf9;border-bottom:1px solid #d6ecf9}.section-tone-dark{background:var(--ink);color:#fff}.section-tone-dark .prose-block,.section-tone-dark .section-heading{color:#fff}.section-tone-dark .prose-block a{color:var(--brand-accent)}.section-tone-dark .section-intro{color:var(--dark-text)}.section-inner{max-width:var(--maxw);margin:0 auto;padding:0 40px}.section-width-narrow .section-inner{max-width:760px}.section-width-wide .section-inner{max-width:1320px}.section-row{max-width:var(--maxw);margin:0 auto;padding:40px;display:grid;grid-template-columns:repeat(12,1fr);grid-gap:28px;gap:28px;align-items:start}.section-in-row{padding:0;border:none;border-radius:var(--radius);min-width:0}.section-in-row+.section-in-row{padding-top:0}.section-in-row .section-inner{max-width:none;padding:0}.section-in-row.section-tone-dark,.section-in-row.section-tone-muted,.section-in-row.section-tone-tinted{padding:28px}.section-in-row .section-heading{font-size:calc(24px * var(--text-scale))}@media (max-width:860px){.section-row{display:block;padding:24px 20px}.section-in-row+.section-in-row{margin-top:24px}}.section-heading{font-family:var(--font-serif);font-size:calc(34px * var(--text-scale));font-weight:600;letter-spacing:-.015em;margin:0 0 16px;color:var(--ink)}.section-intro{font-size:calc(16.5px * var(--text-scale));line-height:1.65;color:var(--ink-3);margin:0 0 28px;max-width:62ch}.prose-block{font-size:calc(16px * var(--text-scale));line-height:1.7;color:var(--ink-3)}.prose-block>:first-child{margin-top:0}.prose-block>:last-child{margin-bottom:0}.prose-block p{margin:0 0 1em}.prose-block h3{font-family:var(--font-serif);font-size:calc(23px * var(--text-scale));font-weight:600;color:var(--ink);margin:1.6em 0 .5em}.prose-block h4{font-size:calc(17px * var(--text-scale));font-weight:700;color:var(--ink);margin:1.5em 0 .4em}.prose-block h5,.prose-block h6{font-size:calc(15.5px * var(--text-scale));font-weight:700;color:var(--ink);margin:1.4em 0 .4em}.prose-block ol,.prose-block ul{margin:0 0 1em;padding-left:1.4em}.prose-block li{margin-bottom:.4em}.prose-block blockquote{margin:1.2em 0;padding:2px 0 2px 20px;border-left:3px solid var(--brand-accent);color:var(--ink-2);font-style:italic}.prose-block code{background:var(--tone-gray-bg);color:var(--ink);padding:2px 6px;border-radius:4px;font-size:.9em}.prose-block strong{color:var(--ink);font-weight:700}.embed-frame{position:relative;width:100%;aspect-ratio:16/10;min-height:340px;max-height:620px;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--surface-2)}.embed-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}.faq-item{border-bottom:1px solid var(--line)}.faq-item summary{cursor:pointer;padding:20px 40px 20px 0;font-size:calc(17px * var(--text-scale));font-weight:600;color:var(--ink);list-style:none;position:relative}.faq-item summary::-webkit-details-marker{display:none}.faq-item summary:after{content:"+";position:absolute;right:6px;top:50%;transform:translateY(-50%);font-size:calc(22px * var(--text-scale));font-weight:400;color:var(--brand);line-height:1}.faq-item[open] summary:after{content:"–"}.faq-item summary:hover{color:var(--brand)}.faq-answer{padding:0 40px 22px 0}.admin-bar{position:fixed;bottom:20px;right:20px;z-index:200;display:flex;align-items:center;gap:8px;background:var(--dark);border:1px solid var(--dark-line-2);border-radius:10px;padding:10px 12px;box-shadow:0 12px 32px -8px rgba(16,24,40,.45)}.admin-bar-label{font-size:calc(12.5px * var(--text-scale));font-weight:600;color:var(--dark-text);padding:0 4px}.admin-bar .btn-ghost{background:transparent;border-color:var(--dark-line-2);color:var(--dark-text)}.admin-bar .btn-ghost:hover{border-color:var(--brand-accent);color:#fff}.editable{position:relative;display:inline;cursor:pointer;border-radius:3px;outline:1px dashed transparent;outline-offset:3px;transition:outline-color .12s,background .12s}.editable:hover{outline-color:var(--brand-accent);background:rgba(41,171,226,.06)}.editable-pencil{position:absolute;top:-10px;right:-8px;transform:translateX(100%);background:var(--brand);color:#fff;border:none;border-radius:4px;font-size:calc(10.5px * var(--text-scale));font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:3px 7px;cursor:pointer;opacity:0;pointer-events:none;white-space:nowrap;transition:opacity .12s}.editable:hover .editable-pencil{opacity:1;pointer-events:auto}.editable-panel{display:block;background:var(--surface);border:1px solid var(--brand-accent);border-radius:8px;padding:16px;margin:4px 0;box-shadow:0 8px 28px -10px rgba(16,24,40,.28);text-align:left;font-family:var(--font-sans);font-size:calc(15px * var(--text-scale));font-weight:400;letter-spacing:normal;line-height:1.5;color:var(--ink);text-transform:none}.editable-label{font-size:calc(11px * var(--text-scale));letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:700;margin-bottom:8px}.editable-actions{display:flex;align-items:center;gap:8px;margin-top:10px;flex-wrap:wrap}.editable-hint{font-size:calc(12px * var(--text-scale));color:var(--muted)}.list-add{margin-top:14px}.list-add-btn{background:transparent;border:1px dashed var(--line-strong);border-radius:6px;color:var(--muted);font-size:calc(12.5px * var(--text-scale));font-weight:600;padding:7px 12px;cursor:pointer;transition:border-color .12s,color .12s}.list-add-btn:hover:not(:disabled){border-color:var(--brand-accent);color:var(--brand)}.list-remove{display:inline}.list-remove-btn{background:var(--tone-red-bg);color:var(--tone-red-fg);border:none;border-radius:99px;width:20px;height:20px;font-size:calc(14px * var(--text-scale));line-height:1;cursor:pointer;margin-left:6px;vertical-align:middle;padding:0}.list-remove-btn:hover{background:#f7ded9}.add-section{max-width:var(--maxw);margin:0 auto;padding:10px 40px}.add-section-trigger{width:100%;background:transparent;border:1px dashed var(--line-strong);border-radius:8px;color:var(--muted);font-size:calc(13.5px * var(--text-scale));font-weight:600;padding:12px;cursor:pointer;transition:border-color .12s,color .12s,background .12s}.add-section-trigger:hover{border-color:var(--brand-accent);color:var(--brand);background:var(--tint-2)}.add-section-trigger span{font-size:calc(16px * var(--text-scale));font-weight:400}.add-section-menu{border:1px solid var(--brand-accent);border-radius:8px;padding:14px;background:var(--surface)}.add-section-types{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.element-stack{margin-top:22px;display:flex;flex-direction:column}.element-stack:empty{margin-top:0}.element-stack .add-section{max-width:none;margin:0;padding:6px 0}.crop-tuner{display:grid;grid-template-columns:96px 1fr;grid-gap:18px;gap:18px;align-items:center;padding:16px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2)}.crop-preview{width:96px;height:96px}.crop-sliders{gap:8px}.crop-sliders,.crop-sliders label{display:flex;flex-direction:column}.crop-sliders label{gap:3px;font-size:calc(11.5px * var(--text-scale));font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.crop-sliders input[type=range]{width:100%;margin:0;accent-color:var(--brand)}.roster-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:20px 40px;margin-bottom:36px}.roster-eyebrow{margin:0 0 12px;font-size:calc(13px * var(--text-scale));font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--brand)}.roster-title{margin:0;font-family:var(--font-serif);font-size:calc(38px * var(--text-scale));font-weight:600;letter-spacing:-.02em;line-height:1.15}.roster-note{margin:0;max-width:440px;font-size:calc(14px * var(--text-scale));line-height:1.6;color:var(--muted);text-wrap:balance}.roster{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:0 56px;gap:0 56px;border-top:1px solid var(--line)}.roster-row{display:flex;align-items:center;gap:18px;min-height:76px;padding:16px 6px;border-bottom:1px solid var(--line);color:inherit;text-decoration:none;transition:background .16s ease}.roster-row:hover{background:var(--surface-2)}.roster-photo{flex:none;position:relative;display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;overflow:hidden;background:var(--tint)}.roster-photo img{width:100%;height:100%;display:block;object-fit:cover;object-position:var(--fx,50%) var(--fy,20%);transform:scale(var(--fz,1))}.roster-initials{font-family:var(--font-serif);font-size:calc(15px * var(--text-scale));font-weight:700;color:var(--brand)}.roster-names{flex:1 1;display:flex;flex-direction:column;gap:2px;min-width:0}.roster-name{font-family:var(--font-serif);font-size:calc(17px * var(--text-scale));font-weight:600;color:var(--ink)}.roster-role{font-size:calc(12.5px * var(--text-scale));line-height:1.4;color:var(--muted)}.roster-cue{flex:none;font-size:calc(13px * var(--text-scale));font-weight:600;color:var(--brand);white-space:nowrap}.roster-row:hover .roster-cue{color:var(--brand-dark)}.roster-cta-wrap{display:flex;margin-top:36px}@media (max-width:860px){.roster{grid-template-columns:1fr;gap:0}.roster-note{max-width:none}}.content .section-block{padding:0}.content .section-row-wrap+.section-row-wrap{margin-top:44px}.content .section-inner{padding:0}.banner{position:relative;overflow:hidden;background:var(--dark);border-radius:var(--radius-sm);padding:34px 38px;display:flex;align-items:center;gap:32px}.banner:after{content:"";position:absolute;right:-56px;bottom:0;width:280px;height:180px;background-image:radial-gradient(var(--brand) 2.4px,transparent 2.4px);background-size:16px 16px;opacity:.5;pointer-events:none}.banner-art{position:relative;flex:none;width:132px;height:132px;object-fit:cover;border:1px solid color-mix(in srgb,var(--brand) 50%,transparent);border-radius:4px}.banner-text{position:relative;flex:1 1;min-width:0}.banner-eyebrow{margin:0;font-size:calc(13px * var(--text-scale));letter-spacing:.2em;text-transform:uppercase;font-weight:600;color:color-mix(in srgb,var(--brand) 55%,#ffffff)}.banner-title{margin:12px 0 0;font-size:calc(38px * var(--text-scale));line-height:1.1;font-weight:700;color:#fff;text-wrap:balance}.banner-rule{width:150px;height:4px;background:var(--brand);margin:18px 0 16px}.banner-line{margin:0;font-size:calc(16.5px * var(--text-scale));line-height:1.6;color:rgba(255,255,255,.84);max-width:calc(100% - 200px)}@media (max-width:720px){.banner{flex-direction:column;align-items:flex-start;gap:22px;padding:30px 24px}.banner-art{width:96px;height:96px}.banner-title{font-size:calc(28px * var(--text-scale))}.banner:after{display:none}.banner-line{max-width:none}}.section-actions .section-inner{border:1px solid var(--line);border-top:3px solid var(--brand);background:var(--surface);padding:26px 30px;display:flex;align-items:center;justify-content:space-between;gap:26px;flex-wrap:wrap}.section-actions .prose-block{margin:0;flex:1 1 320px;min-width:0}.section-actions .prose-block p{margin:0;font-size:calc(16.5px * var(--text-scale));line-height:1.55}.section-actions .prose-block p+p{margin-top:8px}.section-actions .btn-row{flex:0 0 auto;margin:0}@media (max-width:720px){.section-actions .section-inner{padding:22px}.section-actions .btn-row{flex-basis:100%}}.link-list{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);overflow:hidden}.link-list-row{display:flex;align-items:center;gap:28px;padding:24px 30px;text-decoration:none;color:inherit;transition:background .12s}.link-list-row+.link-list-row{border-top:1px solid var(--line-soft)}.link-list-row:focus-visible,.link-list-row:hover{background:var(--surface-2);text-decoration:none}.link-list-row:focus-visible{outline:2px solid var(--focus-ring);outline-offset:-3px}.link-list-label{flex:0 0 108px;font-size:calc(13px * var(--text-scale));letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:var(--muted)}.link-list-title{flex:1 1 auto;min-width:0;font-size:calc(19px * var(--text-scale));line-height:1.4;font-weight:600;color:var(--ink);text-wrap:pretty}.link-list-cue{flex:0 0 auto;font-size:calc(13px * var(--text-scale));letter-spacing:.12em;text-transform:uppercase;font-weight:600;color:var(--brand-dark,var(--brand))}.link-list-row:hover .link-list-cue{color:var(--brand)}@media (max-width:720px){.link-list-row{display:grid;grid-template-columns:1fr auto;grid-gap:4px 16px;gap:4px 16px;padding:18px 20px}.link-list-label{grid-column:1/-1;flex:none}.link-list-title{font-size:calc(17px * var(--text-scale))}}.course-cards{display:grid;grid-template-columns:repeat(var(--course-columns,3),minmax(0,1fr));grid-gap:28px;gap:28px;align-items:start}.course-card{border:1px solid var(--line);background:var(--surface);border-radius:var(--radius-sm);overflow:hidden}.course-card-photo{display:block;width:100%;aspect-ratio:16/9;object-fit:contain;background:var(--surface-2);border-bottom:1px solid var(--line-soft)}.course-card-foot{padding:24px}.course-enrol{display:block;width:100%;text-align:center;letter-spacing:.06em;text-transform:uppercase;font-size:calc(14px * var(--text-scale))}.course-note{margin-top:44px;border-top:3px solid var(--brand);background:var(--surface-2);padding:26px 30px}.course-note p{margin:0;font-size:calc(18px * var(--text-scale));line-height:1.55}.course-note p+p{margin-top:10px}@media (max-width:860px){.course-cards{grid-template-columns:1fr;gap:24px}.course-note{padding:22px}.content .section-row-wrap+.section-row-wrap,.course-note{margin-top:32px}}.instructor-list{display:flex;flex-direction:column;gap:36px}.instructor{display:grid;grid-template-columns:180px 1fr;grid-gap:28px;gap:28px;align-items:start}.instructor-list-centered .instructor{align-items:center}.instructor-photo{width:180px;height:180px;object-fit:cover;border-radius:var(--radius);display:block;background:var(--surface-2)}.instructor-photo-empty{display:flex;align-items:center;justify-content:center;font-family:var(--font-serif);font-size:calc(44px * var(--text-scale));color:var(--brand);background:var(--tint)}.instructor-name{font-family:var(--font-serif);font-size:calc(23px * var(--text-scale));font-weight:700;line-height:1.25;margin:0}.instructor-title{font-size:calc(13.5px * var(--text-scale));font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--brand);margin-top:6px}.instructor-text .prose-block{margin-top:12px}.instructor-editing{position:relative;outline:1px dashed var(--line-strong);outline-offset:12px;border-radius:4px;padding-top:8px}.instructor-editing+.instructor-editing{margin-top:16px}.instructor-editing .section-controls{text-align:left}@media (max-width:700px){.instructor{grid-template-columns:1fr;gap:16px}.instructor-photo{width:132px;height:132px}}.reveal>summary{display:inline-flex;align-items:center;gap:10px;cursor:pointer;list-style:none;font-size:calc(14.5px * var(--text-scale));font-weight:700;color:var(--brand);padding:11px 18px;border:1px solid var(--line-strong);border-radius:999px;background:var(--surface);transition:border-color .12s,background .12s}.reveal>summary::-webkit-details-marker{display:none}.reveal>summary:hover{border-color:var(--brand-accent);background:var(--tint-2)}.reveal>summary:after{content:"›";font-size:calc(19px * var(--text-scale));line-height:1;transform:rotate(90deg);transition:transform .15s}.reveal[open]>summary:after{transform:rotate(-90deg)}.reveal[open]>summary{margin-bottom:28px}@media (prefers-reduced-motion:reduce){.reveal>summary,.reveal>summary:after{transition:none}}.card-title{font-size:calc(21px * var(--text-scale));line-height:1.3;margin:0 0 10px;color:var(--brand)}.section-tone-dark .card-title{color:#fff}.align-center{text-align:center}.align-right{text-align:right}.align-center .prose-block,.align-center .section-intro{margin-left:auto;margin-right:auto}.align-right .prose-block,.align-right .section-intro{margin-left:auto;margin-right:0}.btn-row{display:flex;gap:12px;flex-wrap:wrap}.align-center .btn-row{justify-content:center}.align-right .btn-row{justify-content:flex-end}.align-center .prose-block img,.align-center figure img{margin-left:auto;margin-right:auto}.align-right .prose-block img,.align-right figure img{margin-left:auto;margin-right:0}.add-section,.image-tools,.section-controls,.slot-label{text-align:left}.carousel{position:relative}.carousel-strip{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding:4px;margin:-4px;scrollbar-width:thin}.carousel-strip::-webkit-scrollbar{height:8px}.carousel-strip::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:4px}.carousel-slide{flex:0 0 auto;width:min(560px,82%);scroll-snap-align:start;margin:0}.carousel-slide img{display:block;width:100%;height:340px;object-fit:cover;border-radius:var(--radius);background:var(--surface-2)}.carousel-slide figcaption{font-size:calc(13.5px * var(--text-scale));color:var(--muted);line-height:1.5;margin-top:10px}.carousel-nav{display:flex;gap:8px;justify-content:flex-end;margin-top:12px}@media (prefers-reduced-motion:reduce){.carousel-strip{scroll-behavior:auto}}@media (max-width:700px){.carousel-slide{width:88%}.carousel-slide img{height:240px}}.block-grid{display:grid;grid-template-columns:repeat(12,1fr);grid-gap:20px;gap:20px}.block-grid>*{min-width:0;display:flex;flex-direction:column}.block-grid>*>.card{flex:1 1}.block-grid>.section-block{display:block}.block-frame{position:relative}.block-hidden{opacity:.45;outline:1px dashed var(--line-strong);outline-offset:4px;border-radius:4px}.block-grid:has(>.section-block.section-type-buttons)>[data-block="overview.announcements"]{grid-row:span 2}.block-grid>.section-block.section-type-buttons{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:26px}@media (max-width:1080px){.block-grid{display:block}.block-grid>*+*{margin-top:20px}}.element-grid{display:grid;grid-template-columns:repeat(12,1fr);grid-gap:20px;gap:20px;align-items:start}.element-grid>*{min-width:0}.element-full{grid-column:1/-1}.element-grid .element-block+.element-block{margin-top:0}@media (max-width:860px){.element-grid{display:block}.element-grid>*+*{margin-top:18px}}.element-block{position:relative}.element-block+.element-block{margin-top:18px}.element-editing{outline:1px dashed var(--line);outline-offset:6px;border-radius:4px;padding-top:6px}.element-editing>.section-controls{top:-6px;right:-2px;padding:4px 6px;gap:4px}.element-editing>.section-controls .section-controls-label{font-size:calc(10px * var(--text-scale))}.slot-elements{margin-top:18px;padding-top:4px;border-top:1px solid var(--line-soft)}.slot-elements:has(.element-stack:empty){border-top:none;margin-top:0}.slot-elements .element-stack{margin-top:0}.slot-label{font-size:calc(10px * var(--text-scale));letter-spacing:.06em;text-transform:uppercase;font-weight:700;color:var(--muted);margin:10px 0 2px}.image-tools{border:1px solid var(--line);border-radius:8px;padding:14px;margin:12px 0;background:var(--surface-2);max-width:480px}.section-editing{position:relative;outline:1px dashed var(--line-strong);outline-offset:-1px}.section-controls{position:absolute;top:8px;right:8px;z-index:20;display:flex;align-items:center;gap:6px;background:rgba(255,255,255,.96);border:1px solid var(--line);border-radius:8px;padding:6px 8px;box-shadow:0 6px 20px -8px rgba(16,24,40,.25);flex-wrap:wrap}.section-controls-label{font-size:calc(11px * var(--text-scale));letter-spacing:.06em;text-transform:uppercase;font-weight:700;color:var(--muted);padding:0 4px}.select-xs{height:28px;padding:0 22px 0 8px;font-size:calc(12px * var(--text-scale));font-weight:600;border-radius:6px;background-position:right 6px center;min-width:0;width:auto}@media (max-width:860px){.admin-bar{left:20px;right:20px;justify-content:center}.add-section{padding:10px 20px}.section-controls{position:static;margin:0 0 12px}.element-editing>.section-controls{position:static}}.modal-backdrop{position:fixed;inset:0;z-index:100;background:rgba(20,24,30,.55);display:flex;align-items:center;justify-content:center;padding:24px}.modal{width:100%;max-width:560px;background:var(--surface);border-radius:12px;padding:34px;box-shadow:var(--shadow-modal);animation:fadeUp .18s ease both;max-height:90vh;overflow-y:auto}@media (max-width:1080px){.grid-3,.grid-4{grid-template-columns:repeat(2,1fr)}.cal-layout,.grid-main{grid-template-columns:1fr}}@media (max-width:860px){.wrap{padding:0 22px}h1.display{font-size:calc(40px * var(--text-scale))}h2.section-title{font-size:calc(30px * var(--text-scale))}.lead{font-size:calc(17px * var(--text-scale))}.grid-2,.grid-3,.grid-4,.shell{grid-template-columns:1fr}.shell{padding-top:calc(var(--app-bar-h) + env(safe-area-inset-top))}.app-bar{display:flex}.sidebar{position:fixed;top:0;bottom:0;left:0;z-index:70;width:min(86vw,320px);height:100dvh;visibility:hidden;transform:translateX(-100%);transition:transform .22s ease,visibility 0s linear .22s;box-shadow:0 0 40px rgba(0,0,0,.45);padding-top:env(safe-area-inset-top);padding-left:env(safe-area-inset-left)}.sidebar[data-open=true]{visibility:visible;transform:none;transition:transform .22s ease,visibility 0s}.sidebar:focus{outline:none}.nav-scrim{display:block}.sidebar-nav{max-height:none}.sidebar-head{display:flex;align-items:flex-start;gap:12px;flex-wrap:wrap}.sidebar-close{display:block;margin-left:auto;background:transparent;border:1px solid var(--dark-line-2);color:var(--dark-text);border-radius:var(--radius-sm);width:40px;height:40px;font-size:calc(22px * var(--text-scale));line-height:1;cursor:pointer}.sidebar-close:active{background:var(--dark-2)}.nav-item{padding:12px 14px}.content{padding:24px max(20px,env(safe-area-inset-right)) calc(56px + env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left))}.topbar{top:calc(var(--app-bar-h) + env(safe-area-inset-top))}.input,.select,.textarea{font-size:max(16px,calc(15px * var(--text-scale)))}.topbar{padding:14px 20px;flex-wrap:wrap;gap:12px}.dow{font-size:calc(10px * var(--text-scale));letter-spacing:.02em;padding:9px 2px}}.course-player{display:flex;flex-direction:column;height:100dvh;background:var(--dark)}.course-bar{display:flex;align-items:center;gap:12px;flex:none;min-height:44px;padding:env(safe-area-inset-top) 16px 0;color:#fff;border-bottom:1px solid var(--dark-2)}.course-back{display:inline-flex;align-items:center;gap:7px;color:var(--dark-text);font-size:calc(13px * var(--text-scale));font-weight:600;text-decoration:none;padding:8px 10px;margin-left:-10px;border-radius:var(--radius-sm)}.course-back:hover{background:var(--dark-2);color:#fff;text-decoration:none}.course-bar-divider{width:1px;height:18px;background:var(--dark-line-2)}.course-bar-title{font-size:calc(13px * var(--text-scale));color:var(--dark-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.course-frame{flex:1 1;width:100%;border:0;display:block;background:#fff}.course-frame-loading{display:flex;align-items:center;justify-content:center;color:var(--ink-3);font-size:calc(14px * var(--text-scale))}.course-hero{position:relative;overflow:hidden;background:var(--dark);color:#fff;border-radius:var(--radius-sm);padding:34px 38px}.course-hero:after{content:"";position:absolute;right:-56px;bottom:0;width:280px;height:180px;background-image:radial-gradient(var(--brand) 2.4px,transparent 2.4px);background-size:16px 16px;opacity:.5;pointer-events:none}.course-hero-kicker{position:relative;font-size:calc(13px * var(--text-scale));letter-spacing:.2em;text-transform:uppercase;font-weight:600;color:color-mix(in srgb,var(--brand) 55%,#ffffff)}.course-hero-title{position:relative;font-size:calc(30px * var(--text-scale));font-weight:700;line-height:1.15;color:#fff;margin:12px 0 0;text-wrap:pretty}.course-hero-title:after{content:"";display:block;width:150px;height:4px;background:var(--brand);margin:18px 0 16px}.course-hero-actions{position:relative;display:flex;align-items:center;gap:14px;flex-wrap:wrap}.course-hero-note{color:rgba(255,255,255,.84);font-size:calc(13px * var(--text-scale))}.course-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:12px;gap:12px;margin-top:16px}.course-stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);padding:12px 14px}.course-stat-label{font-size:calc(12px * var(--text-scale));color:var(--ink-3)}.course-stat-value{font-size:calc(18px * var(--text-scale));font-weight:600;margin-top:3px}.course-stat-value.tone-done{color:var(--tone-green-fg)}.course-stat-value.tone-progress{color:var(--brand)}.course-stat-value.tone-failed{color:var(--tone-red-fg)}.course-stat-value.tone-none{color:var(--muted)}.course-progress{margin-top:16px;padding:20px 22px}.course-progress-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:12px}.course-progress-count{font-size:calc(13px * var(--text-scale));font-weight:600;color:var(--ink-3);white-space:nowrap}.course-progress-bar{height:10px;border-radius:999px;background:var(--surface-2);overflow:hidden}.course-progress-fill{display:block;height:100%;border-radius:inherit;background:var(--brand);transition:width .4s ease}.course-progress-note{margin:12px 0 0;font-size:calc(14px * var(--text-scale));color:var(--ink-2)}.course-progress-list{list-style:none;margin:18px 0 0;padding:0;border-top:1px solid var(--line-soft)}.course-progress-item{display:flex;align-items:center;gap:12px;padding:11px 2px;border-bottom:1px solid var(--line-soft);font-size:calc(14.5px * var(--text-scale))}.course-progress-mark{flex:none;width:22px;height:22px;display:grid;place-items:center;border:1.5px solid var(--line);border-radius:999px;font-size:calc(13px * var(--text-scale));color:#fff}.course-progress-item.is-done .course-progress-mark{background:var(--brand);border-color:var(--brand)}.course-progress-item.is-next .course-progress-mark{border-color:var(--brand)}.course-progress-title{flex:1 1 auto;min-width:0}.course-progress-item.is-todo .course-progress-title{color:var(--muted)}.course-progress-state{flex:none;font-size:calc(11.5px * var(--text-scale));letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.course-progress-item.is-next .course-progress-state{color:var(--brand);font-weight:700}.course-progress-item.is-done .course-progress-state{color:var(--brand)}@media (max-width:720px){.course-stats{grid-template-columns:1fr}.course-hero{padding:28px 22px}.course-hero-title{font-size:calc(25px * var(--text-scale))}.course-hero:after{display:none}}.course-tiles{display:flex;flex-wrap:wrap;justify-content:center;margin-top:26px;gap:32px;align-items:flex-start}.course-tiles>.course-card{flex:1 1 340px;max-width:440px}.course-card-blank{display:flex;flex-direction:column;justify-content:center;aspect-ratio:16/9;padding:22px 24px;background:var(--surface);border-bottom:1px solid var(--line-soft)}.course-card-blank-rule{display:block;width:28px;height:3px;background:var(--brand);margin-bottom:14px}.course-card-blank h3{margin:0;font-size:calc(18px * var(--text-scale));font-weight:700;line-height:1.3}.install-card{display:none}@media (max-width:860px){.install-card{display:flex;align-items:flex-start;gap:14px;position:relative;background:var(--tint);border:1px solid #d6ecf9;border-radius:var(--radius-sm);padding:16px}.install-icon img{display:block;width:44px;height:44px;border-radius:10px}.install-body{min-width:0;padding-right:26px}.install-title{font-size:calc(15px * var(--text-scale));font-weight:600;margin:0 0 4px}.install-text{line-height:1.55;margin:0 0 12px}.install-steps,.install-text{font-size:calc(13.5px * var(--text-scale));color:var(--ink-3)}.install-steps{margin:12px 0 0;padding-left:20px;line-height:1.65}.install-steps li+li{margin-top:7px}.install-dismiss{position:absolute;top:6px;right:6px;width:40px;height:40px;background:transparent;border:0;color:var(--ink-3);font-size:calc(20px * var(--text-scale));line-height:1;cursor:pointer;border-radius:var(--radius-sm)}.install-dismiss:active{background:#d6ecf9}}.progress-table{width:100%;border-collapse:collapse;font-size:calc(13.5px * var(--text-scale))}.progress-table th{text-align:left;font-size:calc(11.5px * var(--text-scale));letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:700;padding:12px 14px;border-bottom:1px solid var(--line);position:-webkit-sticky;position:sticky;top:0;background:var(--surface)}.progress-table td{padding:11px 14px;border-bottom:1px solid var(--line);color:var(--ink);white-space:nowrap}.progress-table tbody tr:last-child td{border-bottom:0}.progress-table tbody tr:hover td{background:var(--surface-2)}.progress-table td:first-child{font-weight:600;max-width:420px;overflow:hidden;text-overflow:ellipsis}.progress-idle td{color:var(--muted);font-weight:400}.progress-idle td:first-child{font-weight:500}.grade-cell{display:flex;align-items:center;gap:10px;white-space:normal}.grade-badge{display:inline-block;font-weight:700;font-size:calc(13px * var(--text-scale));color:var(--tone-green-fg);background:var(--tone-green-bg);border-radius:999px;padding:3px 11px;white-space:nowrap}.grade-badge-lg{font-size:calc(15px * var(--text-scale));padding:5px 14px}.grade-form{display:flex;flex-direction:column;gap:10px;min-width:260px;white-space:normal;padding:4px 0}.grade-form-feedback,.grade-form-score{display:flex;flex-direction:column;gap:4px}.grade-form-feedback>span:first-child,.grade-form-score>span:first-child{font-size:calc(12px * var(--text-scale));font-weight:600;color:var(--ink-3)}.grade-form-score-input{display:flex;align-items:center;gap:8px}.grade-form-score-input .input{max-width:120px}.grade-form-out-of{font-size:calc(13px * var(--text-scale));color:var(--muted)}.grade-form-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.grade-form-hint{font-size:calc(11.5px * var(--text-scale));color:var(--muted)}.feedback-note{margin-top:12px;border-left:3px solid var(--brand);background:var(--surface-2);border-radius:0 8px 8px 0;padding:10px 14px}.feedback-note-label{display:block;font-size:calc(11px * var(--text-scale));letter-spacing:.06em;text-transform:uppercase;font-weight:700;color:var(--brand);margin-bottom:4px}.feedback-note p{margin:0;font-size:calc(14px * var(--text-scale));color:var(--ink-2);line-height:1.6}.assignment-list{border:1px solid var(--line);border-radius:var(--radius-sm);overflow:hidden;background:var(--surface)}.assignment-row{display:flex;align-items:center;gap:16px;padding:15px 16px;text-decoration:none;color:inherit}.assignment-row+.assignment-row{border-top:1px solid var(--line)}.assignment-row:hover{background:var(--surface-2);text-decoration:none}.assignment-row-title{font-size:calc(15px * var(--text-scale));font-weight:600}.assignment-row-meta{font-size:calc(12.5px * var(--text-scale));color:var(--muted);margin-top:3px}.assignment-row-state{margin-left:auto;flex:none;display:flex;flex-direction:column;align-items:flex-end;gap:6px}.prereq-note{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:14px 16px;margin-bottom:22px;border:1px solid var(--tone-amber-bg);border-left:4px solid var(--tone-amber-fg);border-radius:var(--radius-sm);background:var(--tone-amber-bg)}.prereq-note strong{display:block;font-size:calc(14.5px * var(--text-scale));color:var(--tone-amber-fg);margin-bottom:2px}.prereq-note span{display:block;font-size:calc(13.5px * var(--text-scale));color:var(--ink-3);line-height:1.55}.prereq-note .btn{margin-left:auto;flex:none}.assignment-preview{display:block;width:100%;height:520px;border:0;background:var(--surface-2)}@media (max-width:720px){.assignment-preview{height:380px}.assignment-row{flex-wrap:wrap}.assignment-row-state{margin-left:0}}.learner-map-holder{position:relative;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--surface-2)}.learner-map{height:min(70dvh,620px);min-height:380px;width:100%;z-index:0}.learner-map-legend{position:absolute;top:14px;left:14px;z-index:700;pointer-events:none;background:var(--surface);border-radius:var(--radius-sm);box-shadow:0 3px 14px rgba(16,24,40,.14);padding:11px 16px;max-width:calc(100% - 96px)}.learner-map-legend strong{display:block;font-size:calc(14.5px * var(--text-scale));font-weight:700;color:var(--ink);line-height:1.35}.learner-map-legend span{display:block;font-size:calc(12.5px * var(--text-scale));color:var(--muted);margin-top:2px}.learner-pin{position:relative;filter:drop-shadow(0 2px 3px rgba(16,24,40,.35))}.learner-pin,.learner-pin svg{display:block;width:30px;height:42px}.learner-pin svg{fill:var(--brand)}.learner-pin b{position:absolute;top:6px;left:50%;transform:translateX(-50%);width:11px;height:11px;border-radius:99px;background:#fff;font-size:calc(11px * var(--text-scale));font-weight:700;font-style:normal;color:var(--brand);line-height:11px;text-align:center}.learner-pin.many b{width:17px;height:17px;line-height:17px;top:4px}.learner-pin-icon:focus-visible .learner-pin svg,.learner-pin-icon:hover .learner-pin svg{fill:var(--brand-dark)}.learner-card{position:absolute;transform:translateX(-50%);width:336px;max-width:calc(100vw - 28px);z-index:760;background:var(--surface);border-radius:14px;overflow:hidden;box-shadow:0 14px 40px rgba(16,24,40,.26)}.learner-card-band{height:66px;background:var(--brand);position:relative}.learner-card-close{position:absolute;top:8px;right:11px;width:26px;height:26px;border:none;background:transparent;color:#fff;font-size:calc(21px * var(--text-scale));line-height:1;cursor:pointer;border-radius:99px;opacity:.9}.learner-card-close:hover{background:rgba(255,255,255,.18);opacity:1}.learner-card-avatar{width:112px;height:112px;margin:-56px auto 0;position:relative;z-index:1;border-radius:99px;border:5px solid var(--surface);background:var(--tone-gray-bg);overflow:hidden;display:flex;align-items:center;justify-content:center;color:var(--ink-3);font-weight:700;font-size:calc(30px * var(--text-scale))}.learner-card-avatar img{width:100%;height:100%;object-fit:cover;display:block}.learner-card-body{padding:12px 24px 22px;text-align:center}.learner-card-body h3{font-size:calc(18px * var(--text-scale));font-weight:700;color:var(--ink);margin:0 0 10px;line-height:1.3}.learner-card-university{font-size:calc(14.5px * var(--text-scale));font-weight:700;color:var(--brand);margin:0 0 6px;line-height:1.4}.learner-card-place{font-size:calc(12px * var(--text-scale));color:var(--muted);text-transform:uppercase;letter-spacing:.07em;margin:0}.learner-card-pager{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:16px;padding-top:12px;border-top:1px solid var(--line)}.learner-card-pager span{font-size:calc(12px * var(--text-scale));color:var(--muted)}.learner-card-pager button{width:28px;height:28px;border:1px solid var(--line-strong);background:var(--surface);border-radius:99px;cursor:pointer;font-size:calc(16px * var(--text-scale));line-height:1;color:var(--ink-3)}.learner-card-pager button:hover{border-color:var(--brand-accent);color:var(--brand)}.learner-map-unplaced{font-size:calc(12.5px * var(--text-scale));color:var(--muted);line-height:1.6;margin:12px 0 0}@media (max-width:620px){.learner-map{height:min(62dvh,480px)}.learner-map-legend{top:10px;left:10px;padding:9px 13px}}.avatar-crop-wrap{display:flex;flex-direction:column;gap:12px;align-items:flex-start;margin-bottom:12px}.avatar-crop{position:relative;border-radius:99px;overflow:hidden;background:var(--tone-gray-bg);border:1px solid var(--line-strong);cursor:-webkit-grab;cursor:grab;touch-action:none;-moz-user-select:none;user-select:none;-webkit-user-select:none}.avatar-crop:active{cursor:-webkit-grabbing;cursor:grabbing}.avatar-crop:focus-visible{outline:2px solid var(--focus-ring);outline-offset:3px}.avatar-crop canvas{display:block;pointer-events:none}.avatar-crop-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:calc(13px * var(--text-scale));color:var(--muted)}.avatar-crop-zoom{display:flex;align-items:center;gap:10px;width:260px;max-width:100%}.avatar-crop-zoom span{font-size:calc(12.5px * var(--text-scale));color:var(--muted);font-weight:600}.avatar-crop-zoom input[type=range]{flex:1 1;accent-color:var(--brand);cursor:pointer}.avatar-crop-hint{font-size:calc(12.5px * var(--text-scale));color:var(--muted);line-height:1.55;margin:0;max-width:340px}@media (max-width:480px){.avatar-crop-zoom{width:100%}}.learner-map-hint{position:absolute;left:50%;bottom:18px;transform:translateX(-50%);z-index:720;pointer-events:none;max-width:calc(100% - 130px);background:rgba(23,26,31,.86);color:#fff;font-size:calc(12.5px * var(--text-scale));line-height:1.45;padding:8px 14px;border-radius:99px;text-align:center;box-shadow:0 4px 14px rgba(16,24,40,.25)}.learner-map-holder[data-armed=true]{box-shadow:0 0 0 2px var(--brand-accent)}.profile-panel-title{font-size:calc(15px * var(--text-scale));font-weight:700;color:var(--ink);margin:0 0 14px;display:flex;align-items:baseline;gap:8px}.profile-panel-count{font-size:calc(12.5px * var(--text-scale));font-weight:500;color:var(--muted)}.profile-panel-empty{font-size:calc(13.5px * var(--text-scale));color:var(--muted);line-height:1.6;margin:0}.profile-panel-note{font-size:calc(12px * var(--text-scale));color:var(--muted);line-height:1.55;margin:14px 0 0}.profile-course-list{display:flex;flex-direction:column;gap:10px}.profile-course{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2)}.profile-course-title{font-size:calc(14px * var(--text-scale));font-weight:600;color:var(--ink)}.profile-course-meta{font-size:calc(12.5px * var(--text-scale));color:var(--muted);margin-top:3px}.profile-score{font-size:calc(14px * var(--text-scale));font-weight:700;color:var(--brand);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.streak-figures{display:flex;gap:26px;flex-wrap:wrap;margin-bottom:14px}.streak-figures strong{display:block;font-size:calc(26px * var(--text-scale));font-weight:700;color:var(--brand);line-height:1.1;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.streak-figures span{display:block;font-size:calc(12px * var(--text-scale));color:var(--muted);margin-top:2px}.streak-strip{display:flex;gap:5px;flex-wrap:wrap}.streak-strip span{width:15px;height:15px;border-radius:4px;background:var(--tone-gray-bg);border:1px solid var(--line)}.streak-strip span.on{background:var(--brand);border-color:var(--brand)}.badge-shelf{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));grid-gap:10px;gap:10px}.badge-item{display:flex;align-items:center;gap:11px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius-sm);opacity:.5;background:var(--surface-2)}.badge-item.earned{opacity:1;background:var(--surface);border-color:var(--brand-accent)}.badge-item-name{font-size:calc(13.5px * var(--text-scale));font-weight:600;color:var(--ink);line-height:1.3}.badge-item-why{font-size:calc(12px * var(--text-scale));color:var(--muted);margin-top:2px;line-height:1.4}.badge-chip{width:38px;height:38px;flex-shrink:0;border-radius:99px;background:var(--tone-gray-bg);display:flex;align-items:center;justify-content:center;font-size:calc(19px * var(--text-scale));overflow:hidden;line-height:1}.badge-chip img{width:100%;height:100%;object-fit:cover;display:block}.badge-chip.sm{width:24px;height:24px;font-size:calc(13px * var(--text-scale))}.badge-row{display:flex;gap:5px;flex-wrap:wrap;margin-top:10px}.badge-toast{position:fixed;right:18px;bottom:18px;z-index:900;width:320px;max-width:calc(100vw - 28px);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 14px 40px rgba(16,24,40,.22);padding:15px 16px}.badge-toast>strong{display:block;font-size:calc(13.5px * var(--text-scale));color:var(--ink);margin-bottom:10px}.badge-toast-close{position:absolute;top:8px;right:10px;border:none;background:transparent;color:var(--muted);font-size:calc(19px * var(--text-scale));line-height:1;cursor:pointer}.badge-toast-item{display:flex;align-items:center;gap:11px;margin-top:9px}.badge-toast-name{font-size:calc(13.5px * var(--text-scale));font-weight:700;color:var(--ink)}.badge-toast-why{font-size:calc(12px * var(--text-scale));color:var(--muted);line-height:1.45;margin-top:2px}@media (max-width:620px){.badge-toast{right:10px;left:10px;bottom:10px;width:auto}.streak-figures{gap:18px}}.learner-pin[data-kind=mixed] svg,.learner-pin[data-kind=student] svg{fill:var(--pin-student)}.learner-pin[data-kind=staff] svg{fill:var(--pin-staff)}.learner-pin[data-kind=mixed] b,.learner-pin[data-kind=staff] b{border-radius:3px}.learner-pin[data-kind=mixed] b{box-shadow:0 0 0 2px var(--pin-staff)}.learner-pin[data-kind=staff] b{color:var(--pin-staff)}.learner-pin[data-kind=mixed] b{color:var(--pin-student)}.learner-map-legend .learner-map-key{display:flex;flex-wrap:wrap;gap:4px 14px;margin-top:8px;padding-top:8px;border-top:1px solid var(--line)}.learner-map-legend .learner-map-key>span{display:inline-flex;align-items:center;gap:5px;font-size:calc(11.5px * var(--text-scale));color:var(--muted);white-space:nowrap}.learner-map-legend .learner-map-key i{width:11px;height:11px;border-radius:99px;flex-shrink:0}.learner-map-legend .learner-map-key i[data-kind=student]{background:var(--pin-student)}.learner-map-legend .learner-map-key i[data-kind=staff]{background:var(--pin-staff)}.learner-map-legend .learner-map-key i[data-kind=mixed]{background:var(--pin-student);border:2px solid var(--pin-staff)}.learner-card-role{font-size:calc(11.5px * var(--text-scale));font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--pin-staff);margin:0 0 6px}.resource-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,var(--rc-min,260px)),1fr));grid-gap:24px;gap:24px}.resource-cards.shape-poster{--rc-min:200px}.resource-cards.shape-video{--rc-min:290px}.resource-cards.shape-text{--rc-min:300px}.resource-cards.shape-square{--rc-min:170px}@media (max-width:640px){.resource-cards.shape-poster{--rc-min:140px}}.resource-card{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);overflow:hidden}.resource-card-cover{display:block;width:100%;object-fit:cover;background:var(--surface-2);border-bottom:1px solid var(--line-soft)}.shape-poster .resource-card-cover{aspect-ratio:2/3}.shape-video .resource-card-cover{aspect-ratio:16/9}.shape-square .resource-card-cover{aspect-ratio:1/1}.shape-text .resource-card-cover{aspect-ratio:auto;max-height:340px;object-fit:contain}.resource-card-cover.is-empty{background-image:linear-gradient(135deg,var(--surface-2) 0,var(--surface) 50%,var(--surface-2) 100%)}.resource-card-text{display:flex;flex-direction:column;gap:5px;padding:16px 16px 12px;flex:1 1}.resource-card-kicker{margin:0;font-size:calc(10.5px * var(--text-scale));font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.resource-card-title{margin:0;font-size:calc(15.5px * var(--text-scale));font-weight:700;line-height:1.35}.resource-card-meta{margin:0;font-size:calc(13px * var(--text-scale));color:var(--muted);line-height:1.45}.resource-card-blurb{margin:2px 0 0;font-size:calc(13px * var(--text-scale));color:var(--ink-3);line-height:1.5}.resource-card-badge{align-self:flex-start;margin:3px 0 0;padding:4px 8px;border-radius:3px;background:var(--tone-blue-bg);color:var(--tone-blue-fg);font-size:calc(10.5px * var(--text-scale));font-weight:700;letter-spacing:.06em;text-transform:uppercase}.resource-card-foot{padding:0 16px 16px}.resource-card-cta{display:block;width:100%;letter-spacing:.06em;font-size:calc(13px * var(--text-scale))}.resource-card-cta,.resource-card-pending{text-align:center;text-transform:uppercase}.resource-card-pending{margin:0;padding:11px 10px;border:1px dashed var(--line-strong);border-radius:4px;font-size:calc(12px * var(--text-scale));font-weight:600;letter-spacing:.04em;color:var(--muted)}.resource-cards.is-carousel{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding:4px;margin:-4px;scrollbar-width:thin;align-items:stretch}.resource-cards.is-carousel::-webkit-scrollbar{height:8px}.resource-cards.is-carousel::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:4px}.resource-cards.is-carousel .resource-slide{flex:0 0 calc((100% - (var(--rc-visible, 4) - 1) * 24px) / var(--rc-visible, 4));scroll-snap-align:start}@media (max-width:700px){.resource-cards.is-carousel .resource-slide{flex-basis:calc((100% - 24px) / 2)}}@media (prefers-reduced-motion:reduce){.resource-cards.is-carousel{scroll-behavior:auto}}.skeleton{background:var(--surface-2);border-radius:4px;animation:skeleton-pulse 1.4s ease-in-out infinite}.skeleton-title{width:220px;height:22px}.skeleton-line{height:13px;margin-bottom:12px}.skeleton-block{height:190px;margin-top:22px;border-radius:var(--radius-sm)}@keyframes skeleton-pulse{0%,to{opacity:1}50%{opacity:.55}}@media (prefers-reduced-motion:reduce){.skeleton{animation:none}}.learner-map.is-plain .leaflet-tile-pane{filter:saturate(.28) brightness(1.06) contrast(.94)}.social-card{--ig-square:183px;--ig-frame:326px;max-width:640px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:28px 32px}.social-eyebrow{margin:0 0 8px}.social-card-heading{font-family:var(--font-serif);font-size:calc(26px * var(--text-scale));font-weight:600;line-height:1.25;letter-spacing:-.01em;margin:0 0 16px;color:var(--ink)}.social-card-blurb{font-size:calc(14.5px * var(--text-scale));color:var(--ink-3);line-height:1.6;margin:0 0 16px;max-width:56ch}.social-follow{margin:0 0 20px}.social-handle{display:inline-flex;align-items:center;gap:8px}.social-carousel{position:relative;margin-bottom:16px}.social-strip{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none}.social-strip::-webkit-scrollbar{display:none}.social-post{flex:0 0 var(--ig-square);scroll-snap-align:start}.social-square{position:relative;width:var(--ig-square);height:var(--ig-square);overflow:hidden;border:1px solid var(--line);border-radius:8px;background:var(--surface-2)}.social-square-image{display:block;width:100%;height:100%;object-fit:cover}.social-square a:focus-visible{outline:2px solid var(--focus-ring);outline-offset:-3px;border-radius:8px}.social-square .instagram-media,.social-square iframe{width:var(--ig-frame)!important;min-width:var(--ig-frame)!important;max-width:var(--ig-frame)!important;margin:0!important;border:0!important;border-radius:0!important;box-shadow:none!important;transform:scale(.561);transform-origin:top left}.social-square .instagram-media{padding:12px;font-size:calc(13px * var(--text-scale));line-height:1.45;background:var(--surface)}.social-carousel .carousel-nav{position:absolute;inset:0;margin:0;justify-content:space-between;align-items:center;pointer-events:none}.social-carousel .carousel-nav button{pointer-events:auto;width:32px;height:32px;padding:0;border-radius:50%;background:var(--surface);border:1px solid var(--line-strong);box-shadow:0 1px 3px rgba(20,29,46,.12)}.social-carousel .carousel-nav button:first-child{margin-left:-14px}.social-carousel .carousel-nav button:last-child{margin-right:-14px}.social-view-all{display:block;width:100%;text-align:center}@media (max-width:640px){.social-card{padding:20px}}@media (prefers-reduced-motion:reduce){.social-strip{scroll-behavior:auto}}.gradebook{--gb-rule:#d6ecf9;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);overflow:hidden}.gradebook-scroll{overflow-x:auto}.gradebook-table{width:100%;border-collapse:collapse;min-width:920px}.gb-head{text-align:center;padding:16px 14px;border-bottom:1px solid var(--line);font-size:calc(12px * var(--text-scale));letter-spacing:.07em;text-transform:uppercase;color:var(--muted);font-weight:700;background:var(--surface-2)}.gb-col-head{border-left:1px solid var(--line-soft);min-width:118px;text-transform:none;letter-spacing:normal;vertical-align:top}.gb-col-title{font-size:calc(13px * var(--text-scale));font-weight:700;color:var(--ink)}.gb-col-points{font-size:calc(11px * var(--text-scale));color:var(--muted);margin-top:3px;font-weight:600}.gb-avg-head{border-left:1px solid var(--line-soft);background:var(--tint-2);color:var(--brand);min-width:110px}.gb-student-col{position:-webkit-sticky;position:sticky;left:0;z-index:2;text-align:left;min-width:220px}.gb-head.gb-student-col{padding-left:20px;padding-right:20px}.gb-col-delete,.gb-col-rename{background:none;border:0;min-height:24px;display:inline-flex;align-items:center;justify-content:center;padding:0 4px;margin-top:6px;font:inherit;font-size:calc(11px * var(--text-scale));font-weight:600;color:var(--brand);cursor:pointer;text-decoration:underline}.gb-col-delete:focus-visible,.gb-col-rename:focus-visible{outline:2px solid var(--focus-ring);outline-offset:-2px;border-radius:var(--radius-sm)}.gb-col-rename:hover{color:var(--brand-dark)}.gb-col-delete{color:var(--tone-red-fg)}.gb-col-form{display:grid;grid-gap:6px;gap:6px;justify-items:stretch;text-align:left}.gb-col-points-input,.gb-col-title-input{font:inherit;font-size:calc(13px * var(--text-scale));font-weight:600;color:var(--ink);padding:5px 7px;border:1px solid var(--line-strong);border-radius:6px;background:var(--surface);width:100%;min-width:0}.gb-col-points-row{display:flex;align-items:center;gap:6px}.gb-col-points-input{width:72px;flex:0 0 auto}.gb-col-pts-label{font-size:calc(11px * var(--text-scale));color:var(--muted);font-weight:600}.gb-col-actions{display:flex;gap:6px}.gb-student-cell{background:var(--surface);padding:12px 20px;border-bottom:1px solid var(--line-soft);font-weight:400}.gb-student-link{display:flex;align-items:center;gap:12px;text-decoration:none;color:inherit}.gb-student-link:hover .gb-student-name{text-decoration:underline;color:var(--brand)}.gb-student-name{font-size:calc(14.5px * var(--text-scale));font-weight:600;color:var(--ink)}.gb-score-cell{text-align:center;padding:8px 14px;border-left:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft)}.gb-score-button{display:inline-flex;align-items:center;justify-content:center;min-width:44px;padding:6px 4px;border:1px solid transparent;border-radius:6px;background:none;font:inherit;font-size:calc(14.5px * var(--text-scale));font-weight:600;color:var(--ink-2);cursor:pointer}.gb-score-button:hover{background:var(--surface-2);border-color:var(--line)}.gb-score-button.is-excused{background:var(--tone-gray-bg);color:var(--tone-gray-fg)}.gb-score-button.is-excused,.gb-score-button.is-pending{border-color:var(--line);font-size:calc(12.5px * var(--text-scale));letter-spacing:.03em}.gb-score-button.is-pending{background:var(--tone-blue-bg);color:var(--tone-blue-fg)}.gb-score-button.is-blank{color:var(--muted);font-weight:500}.gb-score-input{width:64px;text-align:center;padding:6px 4px;border:1px solid var(--brand-accent);border-radius:6px;font:inherit;font-size:calc(14px * var(--text-scale));outline:none;box-shadow:0 0 0 3px rgba(41,171,226,.15);background:var(--surface);color:var(--ink);-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.gb-score-input::-webkit-inner-spin-button,.gb-score-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.gb-avg-cell{text-align:center;padding:12px 20px;border-left:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);background:var(--surface-2);font-size:calc(15px * var(--text-scale));font-weight:700;color:var(--brand)}.gb-foot-cell,.gb-foot-label{background:var(--tint);border-top:2px solid var(--gb-rule);color:var(--brand);font-weight:700}.gb-foot-label{padding:14px 20px;text-align:left;font-size:calc(13.5px * var(--text-scale))}.gb-foot-cell{text-align:center;padding:14px;border-left:1px solid var(--gb-rule);font-size:calc(14px * var(--text-scale))}.gb-foot-avg{padding-left:20px;padding-right:20px;font-weight:800}.gb-foot-avg,.gb-intro{font-size:calc(15px * var(--text-scale))}.gb-intro{line-height:1.65;color:var(--ink-3);margin:0 0 22px;max-width:68ch}.gb-error{background:var(--tone-red-bg);color:var(--tone-red-fg);border:1px solid var(--tone-red-fg);border-radius:var(--radius-sm);padding:10px 14px;margin-bottom:16px;font-size:calc(14px * var(--text-scale));font-weight:600}.gb-add-row{margin:16px 0 0;display:flex;align-items:center;gap:12px;flex-wrap:wrap}.gb-student-page{max-width:900px}.gb-student-banner{display:flex;align-items:center;gap:16px;margin-bottom:26px}.gb-student-banner-name{font-family:var(--font-serif);font-size:calc(22px * var(--text-scale));font-weight:600;color:var(--ink);letter-spacing:-.01em}.gb-student-banner-meta{font-size:calc(13.5px * var(--text-scale));color:var(--muted);margin-top:4px}.gb-course-block{margin-bottom:30px}.gb-section-heading{font-family:var(--font-serif);font-size:calc(17px * var(--text-scale));font-weight:600;color:var(--ink);margin:0 0 12px}.gb-course-meta{font-size:calc(13px * var(--text-scale));color:var(--muted);margin:10px 0 0}@media (max-width:640px){.gb-foot-label,.gb-head.gb-student-col,.gb-student-cell{padding-left:14px;padding-right:14px}}.answer-form-title{font-size:calc(17px * var(--text-scale));font-weight:700;margin:0 0 10px;color:var(--ink)}.answer-form-note{font-size:calc(14px * var(--text-scale));line-height:1.6;color:var(--ink-3);margin:0 0 12px;max-width:68ch}.answer-form-status{font-size:calc(13px * var(--text-scale));color:var(--muted);margin:0 0 16px;min-height:calc(19px * var(--text-scale))}.answer-list{list-style:none;margin:0 0 24px;padding:0;display:grid;grid-gap:28px;gap:28px;counter-reset:answer}.answer-item{min-width:0}.answer-prompt{display:flex;gap:12px;align-items:baseline;font-size:calc(15.5px * var(--text-scale));font-weight:600;line-height:1.5;color:var(--ink);margin-bottom:8px;cursor:pointer;max-width:72ch}.answer-number{flex:0 0 auto;display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--tint);color:var(--brand);font-size:calc(13px * var(--text-scale));font-weight:700;transform:translateY(3px)}.answer-required{color:var(--tone-red-fg);font-weight:700}.answer-optional{color:var(--muted);font-weight:400}.answer-help{font-size:calc(13.5px * var(--text-scale));line-height:1.55;color:var(--ink-3);margin:0 0 8px 38px;max-width:66ch}.answer-textarea{width:100%;min-height:132px;max-width:76ch;line-height:1.6;resize:vertical}.answer-textarea[data-flagged=true]{border-color:var(--tone-red-fg);box-shadow:0 0 0 3px rgba(166,61,47,.14)}.answer-count{font-size:calc(12.5px * var(--text-scale));color:var(--muted);margin:6px 0 0}.answer-intro{border-left:3px solid var(--brand-accent);padding:2px 0 2px 18px;margin:0 0 28px;max-width:72ch}.answer-review{display:grid;grid-gap:22px;gap:22px;margin:0}.answer-review-item{min-width:0}.answer-review-prompt{font-size:calc(14px * var(--text-scale));font-weight:700;line-height:1.5;color:var(--ink);margin:0 0 6px;max-width:72ch}.answer-review-body{font-size:calc(14.5px * var(--text-scale));line-height:1.65;color:var(--ink-2);margin:0;padding:12px 16px;background:var(--surface-2);border:1px solid var(--line-soft);border-radius:var(--radius-sm);white-space:pre-wrap;overflow-wrap:break-word;max-width:76ch}.answer-review-body.is-blank{color:var(--muted);font-style:italic;background:none;border-style:dashed}@media (max-width:640px){.answer-help{margin-left:0}.answer-prompt{gap:10px}}.answer-recap{margin-top:12px}.answer-recap summary{font-size:calc(13.5px * var(--text-scale));font-weight:600;color:var(--brand);cursor:pointer;display:flex;align-items:center;min-height:24px;width:-moz-fit-content;width:fit-content}.answer-recap summary:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px;border-radius:var(--radius-sm)}.answer-recap-body{padding:14px 0 4px}.btn-icon{min-width:32px;min-height:32px;padding:0;display:inline-grid;place-items:center;font-size:calc(15px * var(--text-scale));line-height:1}.qb{margin-top:32px}.qb-mode{margin-bottom:28px}.qb-fieldset{border:0;margin:0;padding:0}.qb-radio{display:flex;gap:10px;align-items:flex-start;padding:10px 0;font-size:calc(14px * var(--text-scale));line-height:1.55;color:var(--ink-3);cursor:pointer;max-width:70ch}.qb-radio input{margin-top:3px;flex:0 0 auto}.qb-radio strong{color:var(--ink)}.qb-radio input:disabled+span{color:var(--muted)}.qb-locked{font-size:calc(13.5px * var(--text-scale));line-height:1.55;color:var(--tone-red-fg);background:var(--tone-red-bg,var(--surface-2));border-radius:var(--radius-sm);padding:10px 12px;margin:8px 0 0;max-width:70ch}.qb-hint{color:var(--ink-3);line-height:1.55;margin:0 0 6px;max-width:66ch}.qb-hint,.qb-saved{font-size:calc(13px * var(--text-scale))}.qb-saved{color:var(--tone-green-fg);margin:8px 0}.qb-head{margin-bottom:14px}.qb-title{font-size:calc(17px * var(--text-scale));font-weight:700;color:var(--ink);margin:0 0 6px;display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.qb-count{font-size:calc(13px * var(--text-scale));font-weight:600;color:var(--muted)}.qb-note{font-size:calc(13.5px * var(--text-scale));line-height:1.6;color:var(--ink-3);margin:0;max-width:72ch}.qb-empty{border:1px dashed var(--line-strong);border-radius:var(--radius-sm);padding:16px;font-size:calc(14px * var(--text-scale));color:var(--ink-3);margin:0 0 16px}.qb-list{list-style:none;margin:0 0 20px;padding:0;display:grid;grid-gap:12px;gap:12px}.qb-item{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);padding:14px 16px}.qb-item-head{display:flex;gap:12px;align-items:flex-start}.qb-item-num{flex:0 0 auto;display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--tint);color:var(--brand);font-size:calc(13px * var(--text-scale));font-weight:700}.qb-item-body{min-width:0;flex:1 1}.qb-item-prompt{font-size:calc(14.5px * var(--text-scale));font-weight:600;line-height:1.5;color:var(--ink);margin:0 0 4px;overflow-wrap:break-word}.qb-item-meta{font-size:calc(12.5px * var(--text-scale));color:var(--muted);margin:0}.qb-item-tools{flex:0 0 auto;display:flex;gap:6px;align-items:center;flex-wrap:wrap}.qb-editor{margin-top:16px;padding-top:16px;border-top:1px solid var(--line-soft)}.qb-editor-row{display:flex;gap:20px;align-items:flex-end;flex-wrap:wrap}.qb-editor-row .field{max-width:180px}.qb-editor-tools{margin-top:4px}.qb-checkbox{display:flex;gap:8px;align-items:center;font-size:calc(14px * var(--text-scale));color:var(--ink-2);cursor:pointer;min-height:24px;padding-bottom:10px}.qb-danger{margin-top:12px;padding-top:12px;border-top:1px solid var(--line-soft)}.qb-remove{color:var(--tone-red-fg)}.qb-confirm p{font-size:calc(13.5px * var(--text-scale));line-height:1.6;color:var(--ink-2);margin:0 0 10px;max-width:66ch}.qb-confirm-tools{display:flex;gap:10px;flex-wrap:wrap}.qb-add{border-style:dashed}.qb-add-title{font-size:calc(15px * var(--text-scale));font-weight:700;color:var(--ink);margin:0 0 14px}.marker-answers{margin-top:10px}.marker-answers summary{font-size:calc(13.5px * var(--text-scale));font-weight:600;color:var(--brand);cursor:pointer;display:flex;align-items:center;min-height:24px;width:-moz-fit-content;width:fit-content}.marker-answers summary:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px;border-radius:var(--radius-sm)}.marker-answers-body{padding:14px 0 6px}@media (max-width:640px){.qb-item-head{flex-wrap:wrap}.qb-item-tools{width:100%;justify-content:flex-end}}.gb-col-link{display:flex;align-items:center;width:-moz-fit-content;width:fit-content;min-height:24px;margin-top:4px;font-size:calc(11.5px * var(--text-scale));font-weight:600;color:var(--brand);text-decoration:underline}.gb-col-link:focus-visible{outline:2px solid var(--focus-ring);outline-offset:-2px;border-radius:var(--radius-sm)}.gb-link-picker{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.gb-link-select{max-width:320px;font-size:calc(13.5px * var(--text-scale));padding:8px 10px}.admin-edit-panel{margin-top:32px}.admin-edit-panel summary{font-size:calc(15px * var(--text-scale));font-weight:700;color:var(--brand);cursor:pointer;display:flex;align-items:center;min-height:24px;width:-moz-fit-content;width:fit-content}.admin-edit-panel summary:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px;border-radius:var(--radius-sm)}.admin-edit-body{padding-top:14px;max-width:720px}.answer-form-credit{font-size:calc(13.5px * var(--text-scale));line-height:1.6;color:var(--tone-green-fg);background:var(--tone-green-bg,var(--surface-2));border-radius:var(--radius-sm);padding:10px 12px;margin:0 0 12px;max-width:68ch}.answer-form-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.answer-form-label-hint{font-size:calc(12.5px * var(--text-scale));color:var(--muted);font-style:italic}.answer-form-editors{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:14px;padding-top:14px;border-top:1px dashed var(--line-strong)}.label-editor-hint{font-size:calc(12.5px * var(--text-scale));color:var(--muted);line-height:1.5;margin:0 0 8px;max-width:56ch}.label-editor-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.label-editor-empty{color:var(--muted);font-weight:400;font-style:italic}.rs-title{font-size:calc(16px * var(--text-scale));font-weight:700;color:var(--ink);margin:0 0 6px}.rs-note{line-height:1.6;max-width:70ch}.rs-empty,.rs-note{font-size:calc(13.5px * var(--text-scale));color:var(--ink-3);margin:0 0 16px}.rs-empty{border:1px dashed var(--line-strong);border-radius:var(--radius-sm);padding:14px 16px}.rs-list{list-style:none;margin:0 0 20px;padding:0;display:grid;grid-gap:10px;gap:10px}.rs-item{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);padding:12px 14px}.rs-item-head{display:flex;gap:12px;align-items:center}.rs-item-num{flex:0 0 auto;display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--tint);color:var(--brand);font-size:calc(12.5px * var(--text-scale));font-weight:700}.rs-item-body{min-width:0;flex:1 1}.rs-item-label{font-size:calc(14.5px * var(--text-scale));font-weight:600;color:var(--ink);margin:0;overflow-wrap:break-word}.rs-item-meta{font-size:calc(12.5px * var(--text-scale));color:var(--muted);margin:2px 0 0}.rs-item-tools{flex:0 0 auto;display:flex;gap:6px;align-items:center;flex-wrap:wrap}.rs-item-editor{margin-top:12px;padding-top:12px;border-top:1px solid var(--line-soft)}.rs-inline{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.rs-inline .input{flex:1 1 240px;min-width:0}.rs-danger{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:12px;padding-top:12px;border-top:1px dashed var(--line-strong)}.rs-remove{color:var(--tone-red-fg)}.rs-danger-note{font-size:calc(12.5px * var(--text-scale));color:var(--muted)}.rs-add{border-top:1px solid var(--line-soft);padding-top:16px;max-width:480px}.rs-saved{font-size:calc(13px * var(--text-scale));color:var(--tone-green-fg);margin:8px 0 0}@media (max-width:640px){.rs-item-head{flex-wrap:wrap}.rs-item-tools{width:100%;justify-content:flex-end}}