.roster-page{--roster-ink:#252b22;--roster-muted:#687065;--roster-paper:#f3f0e7;--roster-card:#fffdf8;--roster-line:#2a322624;--roster-green:#506044;--roster-plum:#6d536b;min-height:100vh;color:var(--roster-ink);background:radial-gradient(circle at 13% 4%, #96a47624, transparent 28rem), linear-gradient(180deg, #f8f6ef 0%, var(--roster-paper) 100%);font-family:var(--font-body,inherit)}.roster-page *{box-sizing:border-box}.roster-shell{width:min(1480px,100% - 40px);margin:0 auto;padding:44px 0 100px}.roster-header{justify-content:space-between;align-items:flex-start;gap:28px;display:flex}.roster-back{color:var(--roster-muted);align-items:center;gap:5px;margin-bottom:22px;font-size:13px;font-weight:700;text-decoration:none;display:inline-flex}.roster-back:hover{color:var(--roster-green)}.roster-kicker{color:var(--roster-green);letter-spacing:.15em;align-items:center;gap:10px;font-size:11px;font-weight:850;display:flex}.roster-kicker span{border:1px solid #50604447;border-radius:50%;place-items:center;width:27px;height:27px;font-size:10px;display:grid}.roster-header h1{font-family:var(--font-display,Georgia, serif);letter-spacing:-.045em;margin:10px 0 7px;font-size:clamp(42px,5vw,70px);line-height:.95}.roster-header h1 em{color:var(--roster-green);font-weight:inherit}.roster-header p{max-width:650px;color:var(--roster-muted);margin:0;font-size:16px}.roster-header-actions{align-items:center;gap:12px;padding-top:34px;display:flex}.roster-prototype-badge{color:var(--roster-plum);background:#ffffff8c;border:1px solid #6d536b40;border-radius:999px;align-items:center;gap:6px;padding:7px 11px;font-size:12px;font-weight:750;display:inline-flex}.roster-text-button{color:var(--roster-muted);font:inherit;cursor:pointer;background:0 0;border:0;padding:7px;font-size:12px;font-weight:750}.roster-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:34px 0 24px;display:grid}.roster-stat{border:1px solid var(--roster-line);background:#ffffff8c;border-radius:14px;grid-template-columns:auto auto 1fr;align-items:center;gap:10px;min-height:70px;padding:14px 16px;display:grid;box-shadow:0 9px 30px #242b2009}.roster-stat>span{border-radius:10px;place-items:center;width:35px;height:35px;display:grid}.roster-stat strong{font-family:var(--font-display,Georgia, serif);font-size:27px}.roster-stat small{color:var(--roster-muted);letter-spacing:.03em;font-size:12px;font-weight:750}.roster-stat--plum>span{color:#684963;background:#eee4ed}.roster-stat--green>span{color:#46623d;background:#e4eddf}.roster-stat--blue>span{color:#416277;background:#e0ebf0}.roster-stat--gray>span{color:#5d625c;background:#e7e8e5}.roster-toolbar{z-index:10;border:1px solid var(--roster-line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#f8f6efeb;border-radius:15px;justify-content:space-between;align-items:center;gap:18px;margin-bottom:22px;padding:8px;display:flex;position:sticky;top:8px;box-shadow:0 12px 35px #262e2217}.roster-tabs{align-items:center;gap:4px;display:flex}.roster-tabs button{color:var(--roster-muted);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:10px;padding:10px 14px;font-size:13px;font-weight:800}.roster-tabs button:hover{color:var(--roster-ink);background:#50604412}.roster-tabs button.active{color:#fff;background:var(--roster-green);box-shadow:0 6px 16px #394b3233}.roster-search{border:1px solid var(--roster-line);width:min(360px,38vw);min-height:40px;color:var(--roster-muted);background:#fffdf9;border-radius:10px;align-items:center;gap:8px;padding:0 11px;display:flex}.roster-search input{width:100%;color:var(--roster-ink);font:inherit;background:0 0;border:0;outline:0;font-size:13px}.roster-search button{color:inherit;cursor:pointer;background:0 0;border:0;place-items:center;padding:3px;display:grid}.roster-board{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:18px;display:grid}.roster-canvas-wrap{border:1px solid var(--roster-line);background:#ffffff61;border-left:none;border-right:none;border-radius:0;width:100vw;max-width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);overflow:hidden;box-shadow:0 22px 60px #242b2014}.roster-canvas-intro{border-bottom:1px solid var(--roster-line);background:#fffdf8e6;justify-content:space-between;align-items:center;gap:20px;padding:14px 16px;display:flex}.roster-canvas-intro>div:first-child{gap:2px;display:grid}.roster-canvas-intro strong{font-size:13px}.roster-canvas-intro span{color:var(--roster-muted);font-size:10px}.roster-canvas-legend{white-space:nowrap;align-items:center;gap:12px;display:flex}.roster-canvas-legend>span{text-transform:uppercase;letter-spacing:.05em;align-items:center;gap:5px;font-size:9px;font-weight:800;display:inline-flex}.roster-canvas-legend i{border-radius:99px;width:22px;height:2px;display:block}.roster-canvas-legend i.couple{background:#a85f7d}.roster-canvas-legend i.family{background:#5c7860}.roster-canvas-viewport{cursor:grab;touch-action:none;background-color:#e9e7df;background-image:radial-gradient(#3f493a38 .8px,#0000 .8px);background-size:18px 18px;height:min(760px,100vh - 110px);min-height:600px;position:relative;overflow:hidden}.roster-canvas-viewport.is-panning{cursor:grabbing}.roster-canvas-world{transform-origin:0 0;will-change:transform;position:absolute;top:0;left:0}.roster-canvas-controls{z-index:50;background:#fffdf8f0;border:1px solid #2a32262e;border-radius:11px;align-items:center;gap:3px;padding:5px;display:flex;position:absolute;bottom:16px;left:16px;box-shadow:0 8px 24px #242b2029}.roster-canvas-controls button{min-width:31px;height:31px;color:var(--roster-ink);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:7px;place-items:center;font-size:9px;font-weight:850;display:grid}.roster-canvas-controls button:hover{background:#5060441a}.roster-canvas-controls span{min-width:42px;color:var(--roster-muted);text-align:center;font-size:10px;font-weight:850}.roster-canvas-hint{z-index:50;color:var(--roster-muted);pointer-events:none;background:#fffdf8e0;border-radius:999px;align-items:center;gap:5px;padding:8px 11px;font-size:9px;font-weight:800;display:flex;position:absolute;bottom:16px;right:16px;box-shadow:0 5px 18px #242b201a}.roster-canvas-lane-label{font-family:var(--font-display,Georgia,serif);letter-spacing:-.02em;align-items:center;gap:8px;font-size:27px;font-weight:700;display:flex;position:absolute}.roster-canvas-lane-label--leadership{color:#674c64}.roster-canvas-lane-label--students{color:#49613f}.roster-canvas-frame{background:#fffdf894;border:2px solid #2a322626;border-radius:16px;position:absolute;overflow:hidden;box-shadow:0 8px 24px #242b2009}.roster-canvas-frame--leadership{border-color:#6d536b40}.roster-canvas-frame--students{border-color:#50604442}.roster-canvas-frame.is-drop-target{background:#eef4e9d1;border-color:#506044;box-shadow:0 0 0 4px #50604421,0 12px 32px #242b201a}.roster-canvas-frame>header{border-bottom:1px solid #2a32261f;justify-content:space-between;align-items:flex-start;gap:12px;min-height:61px;padding:12px 14px;display:flex}.roster-canvas-frame>header h3{margin:0;font-size:14px}.roster-canvas-frame>header p{color:var(--roster-muted);margin:3px 0 0;font-size:10px}.roster-canvas-frame>header>span{color:#fff;background:#777;border-radius:50%;flex:none;place-items:center;width:26px;height:26px;font-size:11px;font-weight:850;display:grid}.roster-canvas-frame.roster-section--senior>header{background:#f2e7f0e0}.roster-canvas-frame.roster-section--senior>header>span{background:#72536f}.roster-canvas-frame.roster-section--confirmed>header{background:#e1efe5e0}.roster-canvas-frame.roster-section--confirmed>header>span{background:#3e7651}.roster-canvas-frame.roster-section--interested>header{background:#e3eef4e0}.roster-canvas-frame.roster-section--interested>header>span{background:#46758e}.roster-canvas-frame.roster-section--prospect>header{background:#f4ead6e0}.roster-canvas-frame.roster-section--prospect>header>span{background:#a16f27}.roster-canvas-frame.roster-section--target>header{background:#eee8d9e0}.roster-canvas-frame.roster-section--target>header>span{background:#827344}.roster-canvas-frame.roster-section--decision>header{background:#ebeae6e0}.roster-canvas-frame.roster-section--decision>header>span{background:#777a72}.roster-canvas-resize-handle{z-index:12;cursor:nwse-resize;touch-action:none;background:0 0;border:0;place-content:end;gap:2px;width:30px;height:30px;padding:0 5px 5px 0;display:grid;position:absolute;bottom:0;right:0}.roster-canvas-resize-handle i{transform-origin:100%;background:#3c443873;border-radius:99px;justify-self:end;height:1px;display:block;transform:rotate(-45deg)}.roster-canvas-resize-handle i:first-child{width:6px}.roster-canvas-resize-handle i:nth-child(2){width:11px}.roster-canvas-resize-handle i:nth-child(3){width:16px}.roster-canvas-resize-handle:hover i{background:#506044}.roster-person.roster-whiteboard-card{z-index:10;touch-action:none;cursor:grab;-webkit-user-select:none;user-select:none;text-align:center;will-change:transform;flex-direction:column;align-items:center;gap:5px;width:132px;height:132px;min-height:132px;margin:0;padding:10px 8px;transition:none;display:flex;position:absolute;overflow:hidden}.roster-whiteboard-card:active,.roster-whiteboard-card.is-dragging{cursor:grabbing}.roster-person.roster-whiteboard-card:hover{transform:none}.roster-whiteboard-card.is-dragging{z-index:20;opacity:.95;border-color:#5060447a;box-shadow:0 18px 34px #262e2233}.roster-whiteboard-card .roster-avatar{width:43px;height:43px}.roster-whiteboard-card .roster-person-body{flex-direction:column;align-items:center;width:100%;display:flex}.roster-whiteboard-card .roster-person-topline{justify-content:center;width:100%}.roster-whiteboard-card .roster-person-topline strong{text-align:center;width:100%;font-size:11px}.roster-whiteboard-card .roster-person-topline svg{display:none}.roster-whiteboard-card .roster-person-body>small{text-overflow:ellipsis;white-space:nowrap;width:100%;font-size:8px;overflow:hidden}.roster-whiteboard-card .roster-badges{justify-content:center;gap:3px;width:100%;max-height:28px;margin-top:4px;overflow:hidden}.roster-whiteboard-card .roster-badges>span{text-overflow:ellipsis;white-space:nowrap;max-width:112px;padding:2px 5px;font-size:6.5px;overflow:hidden}.roster-canvas-connections{z-index:8;pointer-events:none;position:absolute;inset:0;overflow:visible}.roster-connection path{fill:none;stroke-width:2.5px;stroke-linecap:round;opacity:.72}.roster-connection circle{stroke:#f6f2e9;stroke-width:3px}.roster-connection--couple path,.roster-connection--couple circle{stroke:#a85f7d;fill:#a85f7d}.roster-connection--family path,.roster-connection--family circle{stroke:#5c7860;fill:#5c7860}.roster-connection-label-bg{fill:#fffdf8!important;stroke-width:1px!important}.roster-connection--couple .roster-connection-label-bg{stroke:#a85f7d}.roster-connection--family .roster-connection-label-bg{stroke:#5c7860}.roster-connection-label{fill:#4d514b;font-family:var(--font-body,Arial,sans-serif);text-anchor:middle;text-transform:uppercase;letter-spacing:.04em;font-size:10px;font-weight:850}.roster-lane{border:1px solid var(--roster-line);background:#ffffff61;border-radius:19px;overflow:hidden;box-shadow:0 22px 60px #242b200f}.roster-lane-header{border-bottom:1px solid var(--roster-line);align-items:center;gap:12px;padding:18px 20px;display:flex}.roster-lane-header>span{border-radius:12px;place-items:center;width:40px;height:40px;display:grid}.roster-lane--leadership .roster-lane-header{background:linear-gradient(135deg,#f2ebf1,#eae4ea)}.roster-lane--leadership .roster-lane-header>span{color:#674c64;background:#ffffffa6}.roster-lane--students .roster-lane-header{background:linear-gradient(135deg,#ebf0e7,#e1e9dd)}.roster-lane--students .roster-lane-header>span{color:#49613f;background:#ffffffa6}.roster-lane-header h2{font-family:var(--font-display,Georgia, serif);margin:0;font-size:23px}.roster-lane-header p{color:var(--roster-muted);margin:2px 0 0;font-size:12px}.roster-lane-sections{gap:12px;padding:13px;display:grid}.roster-section{border:1px solid var(--roster-line);background:#fffdf8b3;border-radius:14px;overflow:hidden}.roster-section>header{border-bottom:1px solid var(--roster-line);justify-content:space-between;gap:12px;padding:13px 14px;display:flex}.roster-section>header h3{letter-spacing:.015em;margin:0;font-size:13px}.roster-section>header p{color:var(--roster-muted);margin:3px 0 0;font-size:11px;line-height:1.35}.roster-section>header>span{color:#fff;background:#777;border-radius:50%;flex:none;place-items:center;width:24px;height:24px;font-size:11px;font-weight:850;display:grid}.roster-section--senior>header{background:#f2e7f0}.roster-section--senior>header>span{background:#72536f}.roster-section--confirmed>header{background:#e1efe5}.roster-section--confirmed>header>span{background:#3e7651}.roster-section--interested>header{background:#e3eef4}.roster-section--interested>header>span{background:#46758e}.roster-section--prospect>header{background:#f4ead6}.roster-section--prospect>header>span{background:#a16f27}.roster-section--target>header{background:#eee8d9}.roster-section--target>header>span{background:#827344}.roster-section--decision>header{background:#ebeae6}.roster-section--decision>header>span{background:#777a72}.roster-section-cards{gap:7px;padding:8px;display:grid}.roster-empty{color:#848980;border:1px dashed #2b32272e;border-radius:9px;align-items:center;gap:6px;min-height:42px;padding:9px 10px;font-size:11px;font-style:italic;display:flex}.roster-person{width:100%;color:var(--roster-ink);background:var(--roster-card);text-align:left;cursor:pointer;border:1px solid #2a32261c;border-radius:11px;align-items:flex-start;gap:11px;padding:11px;transition:transform .16s,border-color .16s,box-shadow .16s;display:flex;box-shadow:0 4px 14px #2b322709}.roster-person:hover{border-color:#5060444d;transform:translateY(-1px);box-shadow:0 8px 22px #2b322714}.roster-avatar{border-radius:50%;flex:none;place-items:center;width:43px;height:43px;display:grid;position:relative;overflow:hidden}.roster-avatar img{object-fit:cover;object-position:center 22%;width:100%;height:100%}.roster-avatar svg{opacity:.53;width:26px;height:26px}.roster-avatar small{border:2px solid var(--roster-card);color:#fff;letter-spacing:-.02em;border-radius:50%;place-items:center;min-width:18px;height:18px;font-size:7px;font-weight:900;display:grid;position:absolute;bottom:-1px;right:-1px}.roster-avatar--male{color:#416b80;background:#dce9ef}.roster-avatar--male small{background:#52788a}.roster-avatar--female{color:#855a75;background:#efe0e8}.roster-avatar--female small{background:#956b84}.roster-avatar--neutral{color:#596655;background:#e3e8df}.roster-avatar--neutral small{background:#6d7869}.roster-avatar--large{width:84px;height:84px}.roster-avatar--large svg{width:48px;height:48px}.roster-avatar--large small{width:27px;height:27px;font-size:9px}.roster-person-body{flex:1;min-width:0;display:block}.roster-person-topline{justify-content:space-between;align-items:center;gap:6px;display:flex}.roster-person-topline strong{text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.roster-person-topline svg{color:#a0a59b;flex:none}.roster-minor-badge{letter-spacing:.04em;text-transform:uppercase;background:#fff4d6;border:1px solid #00000040;border-radius:999px;flex:none;padding:1px 6px;font-size:8.5px;font-weight:800}.roster-person-body>small{color:var(--roster-muted);margin-top:1px;font-size:10px;display:block}.roster-badges{flex-wrap:wrap;gap:4px;margin-top:7px;display:flex}.roster-badges>span{color:#656a62;letter-spacing:.025em;background:#f0f0eb;border:1px solid #2e352a1a;border-radius:999px;padding:3px 6px;font-size:8px;font-weight:800}.roster-badges .roster-status{color:#fff;border-color:#0000}.roster-status--senior{background:#72536f!important}.roster-status--confirmed{background:#3e7651!important}.roster-status--interested{background:#46758e!important}.roster-status--prospect{background:#a16f27!important}.roster-status--target{background:#827344!important}.roster-status--decision{background:#777a72!important}.roster-status--historic{background:#566e7b!important}.roster-status--phased{background:#686b67!important}.roster-relationship{color:#87566b;align-items:center;gap:4px;margin-top:7px;font-size:9px;font-weight:700;display:flex}.roster-grid-view{padding:20px 2px}.roster-grid-view>header{max-width:700px;margin-bottom:22px}.roster-grid-view>header>span{color:var(--roster-green);letter-spacing:.15em;text-transform:uppercase;font-size:10px;font-weight:900}.roster-grid-view h2{font-family:var(--font-display,Georgia, serif);letter-spacing:-.025em;margin:6px 0 5px;font-size:clamp(28px,4vw,44px)}.roster-grid-view header p{color:var(--roster-muted);margin:0;font-size:14px}.roster-person-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.roster-person-grid .roster-person{min-height:112px}.roster-archive-note{color:#4c514c;background:#e8e9e5;border:1px solid #5d625c33;border-radius:14px;align-items:flex-start;gap:13px;margin:22px 0 8px;padding:16px 18px;display:flex}.roster-archive-note>svg{flex:none;margin-top:2px}.roster-archive-note strong{font-size:13px}.roster-archive-note p{color:#6c706a;margin:3px 0 0;font-size:12px}.roster-no-results{color:var(--roster-muted);text-align:center;padding:70px 20px}.roster-drawer-backdrop{z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#181d1657;justify-content:flex-end;display:flex;position:fixed;inset:0}.roster-drawer{background:#fbf8ef;border-left:1px solid #2a32262e;width:min(430px,94vw);height:100%;padding:38px 32px;animation:.2s ease-out roster-drawer-in;position:relative;overflow-y:auto;box-shadow:-24px 0 60px #1b22182e}@keyframes roster-drawer-in{0%{opacity:.5;transform:translate(24px)}to{opacity:1;transform:translate(0)}}.roster-drawer-close{border:1px solid var(--roster-line);width:34px;height:34px;color:var(--roster-muted);cursor:pointer;background:#fffdf8;border-radius:50%;place-items:center;display:grid;position:absolute;top:18px;right:18px}.roster-drawer-stage{color:var(--roster-green);letter-spacing:.13em;text-transform:uppercase;margin:20px 0 4px;font-size:10px;font-weight:900}.roster-drawer h2{font-family:var(--font-display,Georgia, serif);letter-spacing:-.03em;margin:0;font-size:36px}.roster-drawer-church{color:var(--roster-muted);margin:3px 0 0;font-size:13px}.roster-drawer-badges{margin-top:14px}.roster-drawer-badges>span{padding:5px 8px;font-size:9px}.roster-drawer-detail{color:#87566b;background:#f4e9ee;border:1px solid #85566b29;border-radius:12px;align-items:center;gap:10px;margin-top:22px;padding:13px;display:flex}.roster-drawer-detail div{display:grid}.roster-drawer-detail small{letter-spacing:.08em;text-transform:uppercase;font-size:9px;font-weight:850}.roster-drawer-detail strong{font-size:12px}.roster-drawer-note{border:1px solid var(--roster-line);background:#ffffff8c;border-radius:12px;margin-top:18px;padding:16px}.roster-drawer-note small{color:var(--roster-muted);letter-spacing:.1em;text-transform:uppercase;font-size:9px;font-weight:850}.roster-drawer-note p{margin:7px 0 0;font-size:14px;line-height:1.55}.roster-drawer-actions{gap:8px;margin-top:20px;display:flex}.roster-drawer-actions button{border:1px solid var(--roster-line);min-height:40px;color:var(--roster-muted);font:inherit;background:#eeede7;border-radius:10px;flex:1;justify-content:center;align-items:center;gap:6px;font-size:11px;font-weight:800;display:inline-flex}.roster-drawer-actions button:disabled{cursor:not-allowed;opacity:.62}.roster-drawer-footnote{color:#8a8e86;font-size:10px;line-height:1.45}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (width<=1050px){.roster-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.roster-person-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=820px){.roster-shell{width:min(100% - 24px,720px);padding-top:26px}.roster-header{display:block}.roster-header-actions{padding-top:16px}.roster-toolbar{flex-direction:column;align-items:stretch;position:static}.roster-tabs{grid-template-columns:repeat(3,1fr);display:grid}.roster-tabs button{padding-inline:8px;font-size:11px}.roster-search{width:100%}.roster-board{grid-template-columns:1fr}.roster-canvas-intro{flex-direction:column;align-items:flex-start}.roster-canvas-legend{width:100%}.roster-canvas-viewport{min-height:560px}.roster-person-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=520px){.roster-header h1{font-size:45px}.roster-stats{grid-template-columns:1fr 1fr;gap:8px}.roster-stat{grid-template-columns:auto 1fr;gap:8px;min-height:65px;padding:11px}.roster-stat strong{font-size:23px}.roster-stat small{grid-column:1/-1}.roster-tabs,.roster-person-grid{grid-template-columns:1fr}.roster-drawer{padding:32px 22px}}@media (prefers-reduced-motion:reduce){.roster-person,.roster-drawer{transition:none;animation:none}}.roster-canvas-frame-handle{cursor:grab;touch-action:none}.roster-canvas-frame.is-moving{cursor:grabbing;z-index:40;box-shadow:0 18px 40px #0000002e}.roster-canvas-frame.is-moving .roster-canvas-frame-handle{cursor:grabbing}.roster-frame-select-all{letter-spacing:.05em;text-transform:uppercase;cursor:pointer;background:#fff;border:1px solid #2a322640;border-radius:999px;flex:none;padding:4px 10px;font-size:10px}.roster-email-bar{flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 12px;display:flex}.roster-email-bar button{cursor:pointer;background:#fff;border:1px solid #2a32263d;border-radius:999px;align-items:center;gap:7px;padding:7px 14px;font-size:13px;display:inline-flex}.roster-email-bar button.active,.roster-email-bar button.primary{background:var(--green,#1f4d3a);color:#fff;border-color:#0000}.roster-email-bar button:disabled{opacity:.45;cursor:not-allowed}.roster-email-bar span{color:var(--roster-muted);font-size:12px}.roster-person.is-selected{outline:3px solid var(--green,#1f4d3a);outline-offset:2px}.roster-drawer-email{margin:16px 0 6px}.roster-drawer-email small{letter-spacing:.14em;text-transform:uppercase;color:var(--roster-muted);margin-bottom:5px;font-family:Arial,Helvetica,sans-serif;font-size:10px;display:block}.roster-drawer-email div{gap:8px;display:flex}.roster-drawer-email input{font:inherit;border:1px solid #2a32263d;border-radius:8px;flex:1;padding:8px 10px;font-size:14px}.roster-drawer-email button{cursor:pointer;background:#fff;border:1px solid #2a32263d;border-radius:8px;padding:8px 14px}.roster-composer{max-width:620px}.roster-composer-to{color:var(--roster-muted);font-size:13px}.roster-composer-missing{color:#9a3412;font-size:12px}.roster-composer-field{margin:14px 0;display:block}.roster-composer-field small{letter-spacing:.14em;text-transform:uppercase;color:var(--roster-muted);margin-bottom:5px;font-family:Arial,Helvetica,sans-serif;font-size:10px;display:block}.roster-composer-field input,.roster-composer-field textarea{width:100%;font:inherit;resize:vertical;border:1px solid #2a32263d;border-radius:8px;padding:10px 12px;font-size:15px}.roster-composer-toggle{align-items:center;gap:8px;font-size:13px;display:flex}.roster-composer-status{margin-top:12px;font-size:13px}.roster-drawer-toolbar{justify-content:flex-end;margin:14px 0 6px;display:flex}.roster-drawer-toolbar button,.roster-drawer-save,.roster-drawer-notes button{font:600 12px/1 var(--font-sans,inherit);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;background:0 0;border:1.5px solid;border-radius:999px;padding:9px 14px}.roster-drawer-toolbar button:hover,.roster-drawer-save:hover,.roster-drawer-notes button:hover{background:#0000000f}.roster-drawer-save[disabled],.roster-drawer-notes button[disabled]{opacity:.45;cursor:not-allowed}.roster-drawer-fields{text-align:left;gap:12px;margin-bottom:18px;display:grid}.roster-drawer-fields label{gap:5px;display:grid}.roster-drawer-fields small,.roster-drawer-notes small{letter-spacing:.12em;text-transform:uppercase;opacity:.65;font-size:11px}.roster-drawer-fields input,.roster-drawer-fields textarea,.roster-drawer-notes textarea{width:100%;font:inherit;resize:vertical;background:#ffffffb3;border:1.5px solid #00000040;border-radius:10px;padding:9px 11px;font-size:14px}.roster-drawer-meta{text-align:left;gap:8px;margin:14px 0 4px;display:grid}.roster-drawer-meta>div{grid-template-columns:130px 1fr;align-items:baseline;gap:10px;display:grid}.roster-drawer-meta dt{letter-spacing:.1em;text-transform:uppercase;opacity:.6;align-items:center;gap:5px;font-size:11px;display:flex}.roster-drawer-meta dd{margin:0;font-size:14px}.roster-drawer-notes{text-align:left;justify-items:start;gap:8px;margin:18px 0 6px;display:grid}.roster-frame-header-tools{align-items:center;gap:8px;display:inline-flex}.roster-frame-add{letter-spacing:.04em;text-transform:uppercase;cursor:pointer;background:#ffffffd9;border:1px solid #0000002e;border-radius:999px;align-items:center;gap:5px;padding:4px 9px;font-size:11px;font-weight:700;display:inline-flex}.roster-frame-add:hover{background:#fff;border-color:#0006}.roster-photo-upload{letter-spacing:.03em;text-transform:uppercase;cursor:pointer;border:1px dashed #0000004d;border-radius:999px;align-items:center;gap:6px;margin:10px 0 2px;padding:6px 12px;font-size:12px;font-weight:700;display:inline-flex}.roster-photo-upload:hover{border-style:solid}.roster-photo-upload input{display:none}.roster-drawer-delete{color:#8a1d1d;border-color:#8a1d1d66!important}.schedule-admin-page{background:radial-gradient(circle at 10% 0%, color-mix(in oklab, var(--blue) 12%, transparent), transparent 28rem), var(--paper);min-height:100vh;color:var(--ink);padding:72px clamp(16px,3vw,48px) 120px}.schedule-admin-gate{max-width:620px;padding-block:80px 110px}.schedule-admin-gate h1,.schedule-admin-toolbar h1{letter-spacing:-.055em;margin:10px 0 12px;font-size:clamp(42px,6vw,78px);line-height:.91}.schedule-admin-gate h1 em,.schedule-admin-toolbar h1 em{font-family:Georgia,serif;font-weight:400}.schedule-admin-toolbar{z-index:20;border:2px solid var(--ink);background:color-mix(in oklab, var(--paper) 94%, white);max-width:1600px;box-shadow:8px 8px 0 var(--ink);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px 28px;margin:0 auto;padding:22px 24px;display:grid;position:sticky;top:0}.schedule-capacity{min-width:180px;position:relative}.schedule-capacity summary{cursor:pointer;border:2px solid var(--ink);background:var(--yellow);box-shadow:4px 4px 0 var(--ink);padding:10px 12px;list-style:none;display:grid}.schedule-capacity summary::-webkit-details-marker{display:none}.schedule-capacity summary strong{font:italic 700 30px/.9 Georgia,serif}.schedule-capacity summary span{letter-spacing:.1em;text-transform:uppercase;margin-top:5px;font-size:10px;font-weight:900}.schedule-capacity summary small{margin-top:3px;font-size:8px;font-weight:800}.schedule-capacity>div{z-index:30;border:2px solid var(--ink);background:var(--paper);width:min(460px,80vw);max-height:55vh;box-shadow:6px 6px 0 var(--ink);padding:14px;position:absolute;top:calc(100% + 8px);right:0;overflow:auto}.schedule-capacity>div p{margin:0 0 10px;font-size:11px;font-weight:800}.schedule-capacity ul{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin:0;padding:0;list-style:none;display:grid}.schedule-capacity li{border:1px solid color-mix(in oklab, var(--ink) 35%, transparent);padding:6px;font-size:9px;font-weight:800}.schedule-admin-toolbar>div:first-child{min-width:0}.schedule-admin-toolbar h1{overflow-wrap:anywhere;margin:6px 0 0;font-size:clamp(26px,2.3vw,38px);line-height:.95}.schedule-admin-toolbar p{max-width:72ch;margin:0;line-height:1.55}.schedule-admin-kicker{letter-spacing:.16em;flex-wrap:wrap;gap:10px 18px;font-size:10px;font-weight:900;display:flex}.schedule-admin-kicker a{color:var(--ink)}.schedule-admin-toolbar>.schedule-admin-actions{grid-column:1/-1}.schedule-admin-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.schedule-admin-actions button,.schedule-admin-help button{border:2px solid var(--ink);background:var(--paper);color:var(--ink);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;padding:8px 12px;font:800 11px/1 inherit}.schedule-admin-actions button:hover,.schedule-admin-help button:hover{background:var(--yellow)}.schedule-admin-actions button:disabled{cursor:not-allowed;opacity:.35}.schedule-save-state{letter-spacing:.13em;text-transform:uppercase;grid-column:1/-1;justify-content:flex-end;align-items:center;gap:7px;font-size:10px;font-weight:900;display:flex}.schedule-save-state span{border:1px solid var(--ink);background:#b7b0a4;border-radius:50%;width:9px;height:9px}.schedule-save-state.is-saving span{background:var(--yellow);animation:.8s infinite alternate schedule-pulse}.schedule-save-state.is-saved span{background:#60a56f}.schedule-save-state.is-error span{background:#c74d42}@keyframes schedule-pulse{to{transform:scale(1.45)}}.schedule-admin-help{border-left:5px solid var(--blue);background:color-mix(in oklab, var(--blue) 8%, var(--paper));flex-wrap:wrap;align-items:center;gap:8px 14px;max-width:1600px;margin:26px auto 0;padding:13px 16px;font-size:14px;display:flex}.schedule-admin-help strong{letter-spacing:.06em;text-transform:uppercase}.schedule-color-key{letter-spacing:.08em;text-transform:uppercase;flex-wrap:wrap;gap:8px 13px;margin-left:auto;font-size:9px;font-weight:900;display:flex}.schedule-color-key span{align-items:center;gap:5px;display:inline-flex}.schedule-color-key i{border:1px solid var(--ink);width:12px;height:12px}.schedule-color-key .is-expository{background:color-mix(in oklab, #56805b 58%, var(--paper))}.schedule-color-key .is-video{background:#39a9db}.schedule-color-key .is-one-off{background:color-mix(in oklab, #76519a 42%, var(--paper))}.schedule-color-key .is-guest{background:color-mix(in oklab, #b74f49 42%, var(--paper))}.schedule-calendar{gap:36px;max-width:1600px;margin:32px auto 0;display:grid}.schedule-month{border:2px solid var(--ink);background:var(--paper);box-shadow:8px 8px 0 color-mix(in oklab, var(--ink) 17%, transparent);scroll-margin-top:200px}.schedule-month>header{border-bottom:2px solid var(--ink);background:var(--ink);color:var(--paper);align-items:baseline;gap:12px;padding:17px 20px 14px;display:flex}.schedule-month>header span{opacity:.65;font:700 13px/1 Georgia,serif}.schedule-month>header h2{letter-spacing:-.035em;margin:0;font:italic 36px/1 Georgia,serif}.schedule-weekdays,.schedule-month-grid{grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.schedule-weekdays{border-bottom:1px solid color-mix(in oklab, var(--ink) 30%, transparent);background:color-mix(in oklab, var(--ink) 5%, var(--paper))}.schedule-weekdays span{letter-spacing:.15em;padding:8px 10px;font-size:9px;font-weight:900}.schedule-day{border-right:1px solid color-mix(in oklab, var(--ink) 20%, transparent);border-bottom:1px solid color-mix(in oklab, var(--ink) 20%, transparent);background:color-mix(in oklab, var(--paper) 92%, white);min-height:122px;padding:9px;transition:background .15s,box-shadow .15s;position:relative}.schedule-day:nth-child(7n){border-right:0}.schedule-day.is-empty{background:color-mix(in oklab, var(--ink) 5%, var(--paper))}.schedule-day.is-sunday{background:color-mix(in oklab, var(--blue) 7%, var(--paper));min-height:210px}.schedule-day.is-today{box-shadow:inset 0 0 0 3px var(--yellow)}.schedule-day.is-drop-target{background:color-mix(in oklab, var(--yellow) 60%, var(--paper));box-shadow:inset 0 0 0 4px var(--ink)}.schedule-day.is-shift-preview .schedule-lesson{animation:.2s ease-out both schedule-shift-preview}.schedule-day.is-drop-target .schedule-lesson{outline:3px solid var(--ink);outline-offset:3px}@keyframes schedule-shift-preview{0%{opacity:.45;transform:translateY(-18px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.schedule-day-number{opacity:.55;margin-bottom:7px;font:700 12px/1 Georgia,serif;display:block}.schedule-open-sunday{text-align:center;letter-spacing:.14em;opacity:.35;margin-top:54px;font-size:9px;font-weight:900;display:block}.schedule-lesson{cursor:grab;-webkit-user-select:none;user-select:none;gap:9px;display:grid;position:relative}.schedule-lesson:active{cursor:grabbing}.schedule-lesson.is-expository,.schedule-lesson.is-video{border:2px solid var(--ink);padding:7px}.schedule-lesson.is-expository{background:color-mix(in oklab, #56805b 35%, var(--paper))}.schedule-lesson.is-video{background:color-mix(in oklab, #39a9db 38%, var(--paper))}.schedule-lesson img,.schedule-lesson-image{aspect-ratio:16/8.5;border:1px solid var(--ink);object-fit:cover;filter:saturate(.8)contrast(1.02);width:100%}.schedule-lesson>div>span{letter-spacing:.09em;text-transform:uppercase;opacity:.58;margin-bottom:4px;font-size:8px;font-weight:900;line-height:1.3;display:block}.schedule-lesson>div>.schedule-lesson-position{background:var(--ink);width:fit-content;color:var(--paper);letter-spacing:.11em;opacity:1;margin:0 0 7px;padding:4px 6px 3px;font-size:7px}.schedule-lesson strong{font-size:clamp(12px,1vw,15px);line-height:1.12;display:block}.schedule-lesson em{opacity:.65;margin-top:4px;font:italic 11px/1.25 Georgia,serif;display:block}.schedule-lesson>b{letter-spacing:-3px;background:#f5f1e8d1;padding:2px 4px;font-size:11px;position:absolute;top:6px;right:5px}.schedule-day.is-sunday{cursor:pointer}.schedule-day.is-expository-night{background:color-mix(in oklab, #56805b 29%, var(--paper))}.schedule-day.is-video-night{background:color-mix(in oklab, #39a9db 32%, var(--paper))}.schedule-day.has-one-off{background:color-mix(in oklab, #76519a 16%, var(--paper))}.schedule-day.is-guest-teaching{background:color-mix(in oklab, #b74f49 15%, var(--paper))}.schedule-day.is-break{background:repeating-linear-gradient(-45deg, color-mix(in oklab, var(--blue) 13%, var(--paper)) 0 9px, color-mix(in oklab, var(--blue) 5%, var(--paper)) 9px 18px)}.schedule-open-sunday{width:100%;color:var(--ink);cursor:pointer;background:0 0;border:0}.schedule-open-sunday:hover{opacity:.8}.schedule-break-card,.schedule-one-off{border:2px solid var(--ink);box-shadow:4px 4px 0 var(--ink);gap:6px;margin-top:16px;padding:16px 12px 14px;display:grid;position:relative}.schedule-break-card{background:color-mix(in oklab, var(--blue) 17%, var(--paper))}.schedule-one-off{background:color-mix(in oklab, #76519a 23%, var(--paper))}.schedule-one-off>img{aspect-ratio:16/9;border:1px solid var(--ink);object-fit:cover;width:100%}.schedule-one-off.is-guest-teaching{background:color-mix(in oklab, #b74f49 25%, var(--paper))}.schedule-break-card>span,.schedule-one-off>span{letter-spacing:.15em;font-size:8px;font-weight:900}.schedule-break-card strong,.schedule-one-off strong{font:700 17px/1.08 Georgia,serif}.schedule-break-card small,.schedule-one-off small,.schedule-one-off em{opacity:.7;font:italic 11px/1.3 Georgia,serif}.schedule-break-card>button,.schedule-one-off>button{color:var(--ink);cursor:pointer;background:0 0;border:0;font-size:20px;line-height:1;position:absolute;top:5px;right:6px}.schedule-modal-backdrop{z-index:100;background:#14120ead;place-items:center;padding:20px;display:grid;position:fixed;inset:0;overflow-y:auto}.schedule-modal{border:2px solid var(--ink);background:var(--paper);width:min(620px,100%);box-shadow:12px 12px 0 var(--ink);padding:34px;position:relative}.schedule-modal h2{letter-spacing:-.035em;margin:7px 0 12px;font:italic 700 clamp(30px,5vw,46px)/1 Georgia,serif}.schedule-modal>p:not(.overline){margin:0 0 24px;line-height:1.55}.schedule-modal form,.schedule-modal label{gap:8px;display:grid}.schedule-modal form{gap:18px}.schedule-modal label{letter-spacing:.12em;text-transform:uppercase;font-size:10px;font-weight:900}.schedule-modal input,.schedule-modal select,.schedule-modal textarea{border:2px solid var(--ink);width:100%;color:var(--ink);letter-spacing:normal;text-transform:none;background:#fff;border-radius:0;padding:11px 12px;font:500 16px/1.3 inherit}.schedule-modal textarea{resize:vertical}.schedule-form-row{grid-template-columns:1fr 1fr;gap:16px;display:grid}.schedule-modal-actions{justify-content:flex-end;gap:9px;margin-top:6px;display:flex}.schedule-modal-actions button{border:2px solid var(--ink);background:var(--paper);color:var(--ink);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;padding:10px 13px;font:900 10px/1 inherit}.schedule-modal-actions button[type=submit]{background:var(--yellow)}.schedule-modal-close{color:var(--ink);cursor:pointer;background:0 0;border:0;font-size:28px;position:absolute;top:10px;right:12px}.schedule-color-key .is-holiday{background:repeating-linear-gradient(-45deg, var(--yellow) 0 4px, var(--paper) 4px 8px)}.schedule-day.is-holiday:not(.is-sunday){background:color-mix(in oklab, var(--yellow) 9%, var(--paper))}.schedule-day.is-blocking-holiday{background:repeating-linear-gradient(-45deg, color-mix(in oklab, var(--yellow) 22%, var(--paper)) 0 9px, color-mix(in oklab, var(--yellow) 7%, var(--paper)) 9px 18px)}.schedule-day.is-leadership-night{background:color-mix(in oklab, #76519a 13%, var(--paper))}.schedule-day.is-rhythm-break{background:repeating-linear-gradient(-45deg, color-mix(in oklab, var(--blue) 13%, var(--paper)) 0 9px, color-mix(in oklab, var(--blue) 5%, var(--paper)) 9px 18px)}.schedule-system-card{border:2px solid var(--ink);background:color-mix(in oklab, #76519a 24%, var(--paper));box-shadow:3px 3px 0 var(--ink);gap:5px;margin-top:16px;padding:12px 10px;display:grid;position:relative}.schedule-system-card>button{color:var(--ink);cursor:pointer;background:0 0;border:0;font-size:20px;line-height:1;position:absolute;top:4px;right:5px}.schedule-system-card.is-break{background:color-mix(in oklab, var(--blue) 17%, var(--paper))}.schedule-system-card span{letter-spacing:.15em;font-size:7px;font-weight:900}.schedule-system-card strong{font:700 14px/1.12 Georgia,serif}.schedule-system-card small{font:italic 9px/1.25 Georgia,serif}.schedule-holiday-card{border:1px solid var(--ink);background:color-mix(in oklab, var(--yellow) 46%, var(--paper));gap:4px;margin-top:7px;padding:8px;display:grid}.schedule-holiday-card span{letter-spacing:.14em;font-size:7px;font-weight:900}.schedule-holiday-card strong{font:700 12px/1.15 Georgia,serif}.schedule-holiday-card small{font:italic 9px/1.25 Georgia,serif}@media (width<=600px){.schedule-form-row{grid-template-columns:1fr}.schedule-modal{padding:28px 22px}}@media (width<=980px){.schedule-admin-page{padding-inline:12px;overflow-x:auto}.schedule-admin-toolbar{grid-template-columns:1fr;min-width:900px;position:relative}.schedule-admin-actions{justify-content:flex-start}.schedule-calendar,.schedule-admin-help{min-width:900px}}@media (prefers-reduced-motion:reduce){.schedule-save-state.is-saving span,.schedule-day.is-shift-preview .schedule-lesson{animation:none}}.schedule-break-year{border-top:1px solid #201f1b24;margin-top:.75rem;padding-top:.75rem}.schedule-break-year:first-of-type{border-top:0;margin-top:0}.schedule-break-reset{letter-spacing:.08em;text-transform:uppercase;cursor:pointer;opacity:.65;background:0 0;border:0;margin-bottom:.5rem;padding:0;font-size:.72rem;text-decoration:underline}.student-schedule-page{background:radial-gradient(circle at 92% 8%, color-mix(in oklab, var(--yellow) 20%, transparent), transparent 28rem), var(--paper)}.schedule-hero{align-items:center}.schedule-hero-art{border:2px solid var(--ink);box-shadow:12px 12px 0 var(--orange);background:#eee8de;margin:0;padding:28px 25px 70px;position:relative;transform:rotate(-1.5deg)}.schedule-hero-art img{aspect-ratio:1.05;object-fit:contain;mix-blend-mode:multiply;width:100%}.schedule-hero-art figcaption{font:800 15px/1.1 Segoe Print,Bradley Hand,Comic Sans MS,cursive;position:absolute;bottom:22px;left:28px;transform:rotate(-2deg)}.schedule-tape{top:-16px;left:55%;transform:rotate(4deg)}.schedule-rhythm-copy{opacity:.85;max-width:560px;margin:22px 0 0;font-size:15px;line-height:1.65}.schedule-change-note{max-width:480px;color:var(--ink);opacity:.58;margin:16px 0 0;padding:0;font-size:12.5px;line-height:1.5}.schedule-change-note strong{opacity:1;font-weight:800}.schedule-list{gap:clamp(58px,9vw,112px);padding-block:clamp(62px,9vw,120px);display:grid}.schedule-season{gap:clamp(34px,5vw,64px);display:grid}.schedule-season-header{border:2px solid var(--ink);background:var(--ink);color:var(--paper);box-shadow:8px 8px 0 var(--yellow);grid-template-columns:auto minmax(0,1fr) auto;align-items:baseline;gap:10px clamp(18px,3vw,42px);padding:clamp(22px,4vw,38px);display:grid;position:relative}.schedule-season-header p,.schedule-season-header span{letter-spacing:.18em;text-transform:uppercase;margin:0;font-size:10px;font-weight:900}.schedule-season-header h2{letter-spacing:-.05em;margin:0;font:italic 700 clamp(38px,6vw,76px)/.9 Georgia,serif}.schedule-season-header span{color:var(--yellow)}.schedule-season-months{gap:clamp(42px,7vw,84px);display:grid}.schedule-season.is-break{gap:0}.schedule-season.is-break .schedule-season-header{background:color-mix(in oklab, var(--blue) 48%, var(--ink));box-shadow:8px 8px 0 color-mix(in oklab, var(--blue) 52%, var(--paper))}.schedule-season-break{border:2px solid var(--ink);background:repeating-linear-gradient(-45deg, color-mix(in oklab, var(--blue) 10%, var(--paper)) 0 12px, var(--paper) 12px 24px);border-top:0;margin:0 clamp(10px,3vw,36px);padding:clamp(30px,5vw,58px)}.schedule-season-break>p{max-width:760px;margin:0;font:italic 700 clamp(22px,3vw,34px)/1.25 Georgia,serif}.schedule-break-observances{border-top:2px solid var(--ink);gap:14px;margin-top:clamp(28px,5vw,48px);padding-top:24px;display:grid}.schedule-break-observances>.hand-label{margin:0 0 4px;font-size:12px}.schedule-public-month{grid-template-columns:minmax(130px,.34fr) minmax(0,1fr);gap:0 clamp(24px,5vw,80px);scroll-margin-top:120px;display:grid}.schedule-public-month>header{border-top:5px solid var(--ink);align-self:start;padding-top:9px;position:sticky;top:116px}.schedule-public-month>header span{letter-spacing:.18em;margin:12px 0 5px;font-size:10px;font-weight:900;display:block}.schedule-public-month>header h2{letter-spacing:-.055em;white-space:nowrap;margin:0;font:italic 700 clamp(35px,4vw,60px)/.9 Georgia,serif}.schedule-public-items{grid-column:2;gap:14px;display:grid}.schedule-public-lesson,.schedule-public-special,.schedule-public-holiday{border:2px solid var(--ink);background:color-mix(in oklab, var(--paper) 91%, white);box-shadow:5px 5px 0 color-mix(in oklab, var(--ink) 18%, transparent);align-items:center;display:grid}.schedule-public-lesson{color:inherit;grid-template-columns:74px clamp(110px,16vw,190px) minmax(0,1fr);gap:0;text-decoration:none;transition:transform .18s,box-shadow .18s}.schedule-public-lesson:hover,.schedule-public-lesson:focus-visible{box-shadow:8px 8px 0 var(--ink);transform:translate(-2px,-2px)}.schedule-public-lesson:focus-visible{outline:3px solid var(--yellow);outline-offset:4px}.schedule-public-lesson time{border-right:2px solid var(--ink);background:var(--ink);color:var(--paper);align-content:center;align-self:stretch;place-items:center;display:grid}.schedule-public-lesson time b{font:italic 700 34px/1 Georgia,serif}.schedule-public-lesson time span{letter-spacing:.15em;text-transform:uppercase;margin-top:5px;font-size:8px;font-weight:900}.schedule-public-lesson img{border-right:2px solid var(--ink);object-fit:cover;filter:saturate(.78)contrast(1.04);align-self:stretch;width:100%;height:100%;min-height:130px}.schedule-public-lesson>div{padding:22px clamp(18px,3vw,34px)}.schedule-public-lesson p,.schedule-public-special p,.schedule-public-holiday p{letter-spacing:.15em;text-transform:uppercase;opacity:.62;margin:0 0 8px;font-size:9px;font-weight:900}.schedule-public-lesson h3,.schedule-public-special h3,.schedule-public-holiday h3{letter-spacing:-.025em;margin:0;font-size:clamp(20px,2.3vw,30px);line-height:1.05}.schedule-public-lesson em,.schedule-public-special em{opacity:.72;margin-top:6px;font:italic 15px/1.3 Georgia,serif;display:block}.schedule-public-lesson>div>span,.schedule-public-special>div>span,.schedule-public-holiday>div>span{opacity:.62;margin-top:9px;font-size:12px;line-height:1.45;display:block}.schedule-public-special,.schedule-public-holiday{grid-template-columns:minmax(165px,.3fr) minmax(0,1fr)}.schedule-public-special{background:color-mix(in oklab, var(--blue) 12%, var(--paper));overflow:hidden}.schedule-public-special.has-image{grid-template-columns:minmax(150px,.25fr) minmax(120px,.25fr) minmax(0,1fr)}.schedule-public-special>img{border-right:2px solid var(--ink);object-fit:cover;width:100%;height:100%;min-height:130px}.schedule-public-holiday{background:repeating-linear-gradient(-45deg, color-mix(in oklab, var(--yellow) 18%, var(--paper)) 0 10px, var(--paper) 10px 20px)}.schedule-public-special time,.schedule-public-holiday time{border-right:2px solid var(--ink);text-align:center;align-self:stretch;place-items:center;padding:22px;font:italic 700 15px/1.3 Georgia,serif;display:grid}.schedule-public-special>div,.schedule-public-holiday>div{padding:22px clamp(18px,3vw,34px)}.schedule-rsvp-button{border:2px solid var(--ink);background:var(--paper);color:var(--ink);letter-spacing:.06em;text-transform:uppercase;box-shadow:3px 3px 0 var(--orange);border-radius:999px;align-items:center;gap:6px;margin-top:14px;padding:8px 16px;font-size:12px;font-weight:900;text-decoration:none;transition:transform .15s,box-shadow .15s;display:inline-flex}.schedule-rsvp-button:hover{box-shadow:4px 4px 0 var(--orange);transform:translate(-1px,-1px)}.schedule-public-break{border:2px dashed var(--ink);background:color-mix(in oklab, var(--blue) 9%, var(--paper));flex-wrap:wrap;grid-column:2;align-items:baseline;gap:8px 18px;margin-bottom:14px;padding:18px 22px;display:flex}.schedule-public-break span{letter-spacing:.16em;font-size:9px;font-weight:900}.schedule-public-break strong{font:italic 700 24px/1 Georgia,serif}.schedule-public-break small{margin-left:auto;font-weight:800}.schedule-public-state{border:2px solid var(--ink);background:color-mix(in oklab, var(--blue) 9%, var(--paper));max-width:850px;box-shadow:8px 8px 0 var(--ink);text-align:center;margin:0 auto;padding:clamp(34px,6vw,68px)}.schedule-public-state h2{margin:12px 0;font:italic 700 clamp(32px,5vw,54px)/1 Georgia,serif}.schedule-public-cta .shell{padding-block:clamp(58px,8vw,96px)}.schedule-public-cta h2{letter-spacing:-.045em;max-width:780px;margin:10px 0 28px;font:italic 700 clamp(40px,7vw,78px)/.95 Georgia,serif}.schedule-public-cta .shell>div{flex-wrap:wrap;gap:12px;display:flex}@media (width<=760px){.schedule-public-month,.schedule-season-header{grid-template-columns:1fr}.schedule-season-header h2{margin-block:4px}.schedule-season-break{margin-inline:0}.schedule-public-month>header{margin-bottom:20px;position:static}.schedule-public-items,.schedule-public-break{grid-column:1}.schedule-public-lesson{grid-template-columns:58px 96px minmax(0,1fr)}.schedule-public-lesson img{min-height:120px}.schedule-public-lesson>div{padding:16px}.schedule-public-special,.schedule-public-holiday{grid-template-columns:1fr}.schedule-public-special.has-image{grid-template-columns:minmax(120px,.35fr) minmax(0,1fr)}.schedule-public-special.has-image time{grid-column:1/-1}.schedule-public-special>img{min-height:150px}.schedule-public-special time,.schedule-public-holiday time{border-right:0;border-bottom:2px solid var(--ink);text-align:left;justify-items:start;padding:14px 18px}}@media (width<=500px){.schedule-hero-art{transform:none}.schedule-public-lesson{grid-template-columns:78px minmax(0,1fr)}.schedule-public-lesson time{min-width:0;padding-inline:8px}.schedule-public-lesson time span{letter-spacing:.08em;text-align:center;max-width:100%;font-size:12px;line-height:1.1}.schedule-public-lesson>div{min-width:0}.schedule-public-lesson h3{overflow-wrap:anywhere}.schedule-public-lesson img{border-right:0;border-bottom:2px solid var(--ink);object-position:center 22%;grid-column:2;height:145px;min-height:0}.schedule-public-lesson time{grid-row:1/3}.schedule-public-lesson>div{grid-column:2}.schedule-public-special.has-image{grid-template-columns:1fr;align-items:stretch}.schedule-public-special.has-image time{grid-column:1}.schedule-public-special.has-image>img{border-right:0;border-bottom:2px solid var(--ink);object-position:center 24%;grid-column:1;width:100%;height:180px;min-height:0}.schedule-public-special.has-image>div{grid-column:1;padding:18px}.schedule-public-break small{width:100%;margin-left:0}}@media (prefers-reduced-motion:reduce){.schedule-hero-art{transform:none}}.schedule-milestone{text-align:center;border:2px solid var(--ink);background:var(--green);color:var(--paper);box-shadow:8px 8px 0 var(--yellow);grid-column:1/-1;padding:clamp(40px,6vw,64px) clamp(20px,4vw,40px)}.schedule-milestone .hand-label{color:var(--yellow);justify-self:center;margin:0 0 10px}.schedule-milestone h2{letter-spacing:-.04em;margin:0;font:italic 700 clamp(34px,5.5vw,68px)/.95 Georgia,serif}.schedule-public-break-card{border:2px solid var(--ink);box-shadow:8px 8px 0 var(--yellow);grid-column:1/-1;display:grid}.schedule-public-break-card header{background:var(--ink);color:var(--paper);grid-template-columns:auto minmax(0,1fr) auto;align-items:baseline;gap:10px clamp(18px,3vw,42px);padding:clamp(22px,4vw,38px);display:grid}.schedule-public-break-card header>span:first-child{letter-spacing:.18em;text-transform:uppercase;font-size:10px;font-weight:900}.schedule-public-break-card header h2{letter-spacing:-.05em;margin:0;font:italic 700 clamp(38px,6vw,76px)/.9 Georgia,serif}.schedule-public-break-card header .break-dates{color:var(--yellow);letter-spacing:.18em;text-transform:uppercase;white-space:nowrap;font-size:10px;font-weight:900}.schedule-public-break-body{background:repeating-linear-gradient(-45deg, color-mix(in oklab, var(--blue) 10%, var(--paper)) 0 12px, var(--paper) 12px 24px);padding:clamp(30px,5vw,58px)}.schedule-public-break-body>p{max-width:760px;margin:0;font:italic 700 clamp(22px,3vw,34px)/1.25 Georgia,serif}@media (width<=760px){.schedule-public-break-card header{grid-template-columns:1fr}.schedule-public-break-card header h2{margin-block:4px}.schedule-public-break-card header .break-dates{white-space:normal}}.schedule-public-break.is-standalone{box-shadow:6px 6px 0 color-mix(in oklab, var(--blue) 40%, var(--paper));grid-column:1/-1;margin:0;padding:clamp(20px,3vw,30px) clamp(22px,4vw,36px)}.schedule-public-break.is-standalone strong{font-size:clamp(26px,4vw,38px)}
