/* One planner for public browsing and the signed-in Academy. */
.academy-planner{container-type:inline-size}.planner-intro h2{font-size:clamp(1.8rem,3.5vw,2.8rem);color:#ffe08e}.planner-summary{border-radius:0;background:radial-gradient(ellipse at left,#ad3c3f44,transparent 75%);padding:1.4rem 0}.planner-summary strong{font-size:1.3rem}.planner-controls{background:linear-gradient(125deg,#6e1021,#39000c);box-shadow:0 18px 45px #1e000526;border-color:#d4a96855}.planner-days button{display:flex;flex-direction:column;align-items:center;gap:.35rem}.planner-days button small{font-weight:400;font-size:.75rem}.planner-tracks{display:flex;flex-wrap:wrap;gap:.55rem;margin-bottom:1.5rem}.planner-tracks button{background:#35000a;color:#fff2da;border:1px solid #e0b37c55;border-radius:99px;display:flex;align-items:center;gap:.5rem;font-size:.8rem;padding:.65rem .9rem;min-height:44px}.planner-tracks button::before{content:'';width:10px;height:10px;background:var(--track-color);border-radius:50%;flex-shrink:0}.planner-tracks button[aria-pressed=true]{border-color:var(--track-color);background:color-mix(in srgb,var(--track-color) 20%,#35000a);box-shadow:inset 0 0 0 1px var(--track-color)}.planner-filter-row{grid-template-columns:repeat(2,minmax(0,1fr))}.planner-filter-row button{justify-self:start}.planner-active-filters{display:flex;gap:.5rem;flex-wrap:wrap}.planner-active-filters button{font-size:.78rem;padding:.5rem .7rem;min-height:44px;border-radius:99px;background:#3a000d;color:#ffe4af;border:1px solid #dcba7755}.planner-results-bar{align-items:center;gap:.8rem}
.content .planner-sessions{display:block}.session-day{margin:2.5rem 0 3.5rem;min-width:0}.planner-sessions .session-day-heading{font-size:clamp(1.4rem,3vw,2rem);margin:0;padding:0 0 .7rem;border-image:linear-gradient(90deg,#f0cc7caa,transparent) 1}.session-day-note{font-size:.85rem;color:#e8cda9;margin:.7rem 0 1.6rem}.session-block{border:0;padding:0;margin:0 0 1.5rem;min-width:0}.session-block>.session-time-heading{display:flex;cursor:pointer;margin:0 0 1rem;padding:.9rem 1rem;background:linear-gradient(90deg,#d1a34c22,transparent);border-left:2px solid #d1a34c}.session-time-heading small{margin-left:auto;color:#e6c78b;font-size:.7rem}.session-time-heading::after{display:none}.session-block:not([open])>.session-time-heading{opacity:.85}.session-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.15rem;align-items:stretch}.session-grid>*{min-width:0}
.content .cards .session-card{border:0;border-left:4px solid var(--track-color);border-radius:0 18px 18px 0;background:linear-gradient(125deg,color-mix(in srgb,var(--track-color) 10%,#44000f),#3a000c 85%);padding:1.4rem;box-shadow:0 12px 28px #16000633}.content .session-card h3{font-size:1.45rem;text-wrap:pretty}.session-card h3 a{color:#ffe09b;text-decoration:none}.session-card h3 a:hover{text-decoration:underline;text-underline-offset:5px}.content .session-card .session-duration{font-size:.78rem;margin:0 0 .8rem;color:#f0d6b1}.session-card .teacher-avatar{width:58px;height:58px;flex-basis:58px;border-radius:18px;overflow:hidden;border:1px solid #d7b47688}.session-card .teacher-name{font-size:.95rem}.session-card .class-faculty{gap:.7rem}.session-card .session-repeat{padding:.6rem .75rem;background:#ffffff05}.session-repeat summary{cursor:pointer;padding:.25rem 0;line-height:1.5;color:#f4d28b}.session-repeat a{display:block;line-height:1.6;padding:.6rem 0;color:#fff0d7}.content .session-card .session-availability{font-size:.85rem}.session-card .card-actions button{font-size:.9rem}.session-links{padding-top:1rem}.session-card .session-links a{line-height:1.5;min-height:36px;display:inline-flex;align-items:center}
.content .planner-sessions[data-layout=agenda] .session-grid{grid-template-columns:1fr}.content .planner-sessions[data-layout=agenda] .session-card{border-radius:0 12px 12px 0}.planner-sessions[data-layout=agenda] .session-duration{grid-column:1}.academy-planner :focus-visible{outline:3px solid #ffe49b;outline-offset:4px}
@container(max-width:700px){.session-grid{grid-template-columns:1fr}.content .planner-sessions[data-layout=agenda] .session-card{display:flex}.planner-tracks{gap:.4rem}.planner-tracks button{font-size:.75rem}.planner-search-row{flex-wrap:wrap}.planner-my-toggle{white-space:normal}.session-time-heading{gap:.6rem}.session-time-heading span{font-size:.75rem}.session-time-heading small{font-size:.65rem}.planner-filter-row{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:400px){.planner-filter-row{grid-template-columns:1fr}.session-time-heading small{display:none}.content .cards .session-card{padding:1rem}.planner-days button{font-size:.78rem}.planner-tracks button{padding:.55rem .65rem}}
@media print{.planner-tracks,.planner-active-filters{display:none}.session-block>.session-time-heading{background:none}.session-grid{display:block}.session-card{break-inside:avoid}}
.content #teachingList{display:block}
.session-grid>.session-card:only-child{grid-column:1/-1}.session-grid>.session-card:only-child .class-preview{max-width:75ch}.session-grid>.session-card:only-child .card-actions{max-width:520px}
/* Instructor portraits: the image fills its frame instead of retaining a 44px crop. */
.teacher-profile{display:flex;align-items:center;gap:1rem;min-width:0;width:100%;text-decoration:none;color:#ffe09b;padding:.5rem 0}.teacher-copy{display:grid;gap:.4rem;min-width:0}.teacher-copy .teacher-name{font-weight:750;line-height:1.4;overflow-wrap:anywhere}.teacher-profile-hint{font-size:.75rem;color:#e8cda9;line-height:1.4}.teacher-profile:focus-visible{outline:3px solid #ffe49b;outline-offset:5px;border-radius:12px}
.session-card .class-faculty{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:.6rem;margin:1rem 0 1.25rem}.session-card .class-teacher{width:100%;padding:0;flex:auto}.session-card .teacher-profile{padding:.7rem .8rem;background:linear-gradient(110deg,color-mix(in srgb,var(--track-color) 13%,#38000b),transparent);border-radius:20px;box-sizing:border-box}.session-card .teacher-avatar{width:184px;height:218px;flex:0 0 184px;isolation:isolate;border:0;border-radius:46% 46% 18% 18%;overflow:hidden;background:radial-gradient(ellipse at top,#ad714f,#4a0714);box-shadow:none;color:#ffdf99;font-size:1.3rem}.session-card .teacher-avatar::after{content:'';position:absolute;inset:0;border:1px solid #f9d89299;border-radius:inherit;pointer-events:none;z-index:2;background:none}
.content .cards article.session-card .teacher-avatar img{position:absolute;inset:0;width:100%;height:100%;max-width:100%;object-fit:cover;object-position:center 22%;image-rendering:auto;border-radius:inherit;transform:none;mask-image:linear-gradient(to bottom,#000 76%,transparent 100%);-webkit-mask-image:linear-gradient(to bottom,#000 76%,transparent 100%)}.session-card .teacher-avatar.has-photo .teacher-initials{visibility:hidden}.session-card .teacher-name{font-size:1.02rem;color:#ffe09b;text-decoration:none}.teacher-profile:hover .teacher-name{text-decoration:underline;text-underline-offset:4px}

@media(max-width:400px){.session-card .teacher-avatar{width:176px;height:208px;flex-basis:176px}.session-card .teacher-profile{gap:.75rem;padding:.65rem}.session-card .teacher-name{font-size:.96rem}}

.session-card .teacher-avatar.has-photo{background:transparent}.session-card .teacher-avatar::after{mask-image:linear-gradient(to bottom,#000 68%,transparent 98%);-webkit-mask-image:linear-gradient(to bottom,#000 68%,transparent 98%)}

/* Give every portrait its own space, including narrow two-column class cards. */
.session-card .teacher-profile{flex-direction:column;align-items:flex-start;gap:1rem;padding:1rem;container-type:normal}.session-card .teacher-avatar{flex:none;max-width:100%}.session-card .teacher-copy{width:100%}.session-card .teacher-name{font-size:1.1rem}.session-card .teacher-profile-hint{font-size:.82rem}.session-card .class-faculty{grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr))}
@media(max-width:400px){.session-card .teacher-profile{align-items:center;text-align:center;padding:.85rem}.session-card .teacher-avatar{flex:none}.session-card .teacher-copy{justify-items:center}}
