.ufs{--k: #0b0c08;--k2: #14150e;--k3: #1d1f15;--paper: #f4f4ea;--muted: #9c9e8a;--lime: var(--web-color-primary);--line: color-mix(in srgb, var(--paper) 10%, transparent);background:var(--k);color:var(--paper);border-radius:var(--web-radius-2xl);padding:clamp(1.2rem,3vw,2.2rem);overflow:hidden;font-family:var(--web-font-family-sans)}.ufs-head{margin-bottom:var(--web-space-5)}.ufs-eyebrow{font-family:var(--web-font-family-display);font-weight:700;font-stretch:90%;font-size:var(--web-font-size-step--1);letter-spacing:.16em;text-transform:uppercase;color:var(--lime);margin:0 0 .3rem}.ufs-title{font-family:var(--web-font-family-display);font-weight:800;font-stretch:108%;font-size:clamp(1.7rem,1rem + 2.4vw,2.8rem);line-height:.98;text-transform:uppercase;color:var(--paper);margin:0}.ufs-bar{display:flex;flex-direction:column;gap:var(--web-space-3);margin-bottom:var(--web-space-4)}.ufs-bar-top{display:flex;align-items:center;justify-content:space-between;gap:var(--web-space-3);flex-wrap:wrap}.ufs-locname{display:flex;flex-direction:column;gap:.1rem;min-width:0}.ufs-locname-lb{font-family:var(--web-font-family-display);font-weight:700;font-stretch:90%;font-size:var(--web-font-size-step--2);letter-spacing:.14em;text-transform:uppercase;color:var(--lime)}.ufs-locname-v{font-family:var(--web-font-family-display);font-weight:800;font-stretch:106%;font-size:var(--web-font-size-step-1);text-transform:uppercase;line-height:1;color:var(--paper)}.ufs-locpick{position:relative;display:inline-flex;align-items:center}.ufs-locpick select{appearance:none;-webkit-appearance:none;background:var(--k2);border:1px solid var(--line);border-radius:var(--web-radius-pill);color:var(--paper);font-family:var(--web-font-family-display);font-weight:700;font-stretch:100%;font-size:var(--web-font-size-step--1);text-transform:uppercase;letter-spacing:.03em;padding:.55rem 2.2rem .55rem 1rem;cursor:pointer}.ufs-locpick select option{color:#111;background-color:#fff}.ufs-locpick svg{position:absolute;right:.8rem;width:1rem;height:1rem;pointer-events:none;fill:none;stroke:var(--lime);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}.ufs-week{display:inline-flex;align-items:center;gap:.6rem;align-self:flex-start;background:var(--k2);border:1px solid var(--line);border-radius:var(--web-radius-pill);padding:.3rem .4rem}.ufs-nav{display:grid;place-items:center;width:2.2rem;height:2.2rem;border:none;border-radius:50%;background:transparent;color:var(--paper);cursor:pointer;transition:background-color .18s ease,color .18s ease}.ufs-nav:hover{background:var(--lime);color:var(--k)}.ufs-nav svg{width:1.2rem;height:1.2rem;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}.ufs-week-label{min-width:12ch;text-align:center;font-family:var(--web-font-family-display);font-weight:700;font-stretch:100%;font-size:var(--web-font-size-step--1);text-transform:uppercase;letter-spacing:.04em;color:var(--paper)}.ufs-daypick{display:none;gap:.4rem;overflow-x:auto;scrollbar-width:none;padding-bottom:.2rem}.ufs-daypick::-webkit-scrollbar{display:none}.ufs-daychip{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;min-width:3.1rem;padding:.4rem .2rem;border:1px solid var(--line);border-radius:var(--web-radius-lg);background:var(--k2);color:var(--muted);cursor:pointer;font-family:var(--web-font-family-display)}.ufs-daychip .d{font-weight:700;font-size:var(--web-font-size-step--2);text-transform:uppercase}.ufs-daychip .n{font-weight:800;font-size:var(--web-font-size-step-0);color:var(--paper)}.ufs-daychip.is-active{background:var(--lime);border-color:var(--lime);color:var(--k)}.ufs-daychip.is-active .n{color:var(--k)}.ufs-daychip.is-today{border-color:color-mix(in srgb,var(--lime) 60%,transparent)}.ufs-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.6rem;min-height:18rem}.ufs-day{display:flex;flex-direction:column;gap:.5rem;min-width:0}.ufs-dayhead{display:flex;align-items:baseline;justify-content:space-between;gap:.3rem;padding:.4rem .2rem .5rem;border-bottom:1px solid var(--line);font-family:var(--web-font-family-display);text-transform:uppercase}.ufs-dayhead .d{font-weight:800;font-stretch:104%;font-size:var(--web-font-size-step--1);letter-spacing:.04em;color:var(--paper)}.ufs-dayhead .n{font-weight:600;font-size:var(--web-font-size-step--2);color:var(--muted)}.ufs-day.is-today{background:linear-gradient(180deg,color-mix(in srgb,var(--lime) 9%,transparent),transparent 30%);border-radius:var(--web-radius-lg);margin:-.4rem -.4rem 0;padding:.4rem .4rem 0}.ufs-day.is-today .ufs-dayhead{border-bottom-color:var(--lime)}.ufs-day.is-today .ufs-dayhead .d{color:var(--lime)}.ufs-today-pill{font-family:var(--web-font-family-display);font-weight:800;font-size:var(--web-font-size-step--2);text-transform:uppercase;letter-spacing:.04em;color:var(--k);background:var(--lime);border-radius:var(--web-radius-pill);padding:.05rem .4rem}.ufs-empty-day{padding:.6rem .2rem;font-size:var(--web-font-size-step--2);color:color-mix(in srgb,var(--muted) 70%,transparent)}.ufs-class{display:flex;flex-direction:column;gap:.35rem;padding:.7rem .7rem .75rem;border-radius:0 var(--web-radius-lg) var(--web-radius-lg) 0;background:var(--k2);border:1px solid var(--line);transition:transform .18s cubic-bezier(.2,.7,.2,1),border-color .18s ease}.ufs-class.is-open{border-left:3px solid var(--lime)}.ufs-class.is-not-yet{border-left:3px solid color-mix(in srgb,#e8b84a 65%,var(--line))}.ufs-class.is-open:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--lime) 50%,transparent)}.ufs-class.is-closed,.ufs-class.is-past{opacity:.55}.ufs-class-time{display:flex;align-items:baseline;gap:.4rem}.ufs-class-time .t{font-family:var(--web-font-family-display);font-weight:800;font-stretch:106%;font-size:var(--web-font-size-step-1);color:var(--lime);line-height:1}.ufs-class-time .dur{font-size:var(--web-font-size-step--2);color:var(--muted)}.ufs-class-name{font-family:var(--web-font-family-display);font-weight:700;font-stretch:102%;font-size:var(--web-font-size-step-0);text-transform:uppercase;color:var(--paper);line-height:1.05}.ufs-class-meta{font-size:var(--web-font-size-step--2);color:var(--muted)}.ufs-cap{display:flex;align-items:center;gap:.4rem;margin-top:.1rem}.ufs-cap-bar{flex:1;height:4px;border-radius:2px;background:var(--k3);overflow:hidden}.ufs-cap-fill{height:100%;background:var(--lime);border-radius:2px}.ufs-cap-fill.is-tight{background:#e8b53a}.ufs-cap-fill.is-full{background:#d1544e}.ufs-cap-label{flex:0 0 auto;font-size:var(--web-font-size-step--2);color:var(--muted);font-variant-numeric:tabular-nums}.ufs-soon-flag{align-self:flex-start;margin-top:.3rem;padding:.15rem .5rem;border-radius:var(--web-radius-pill);background:color-mix(in srgb,var(--lime) 18%,transparent);color:var(--lime);font-family:var(--web-font-family-display);font-weight:700;font-size:var(--web-font-size-step--2);text-transform:uppercase;letter-spacing:.03em}.ufs-reg{margin-top:.35rem;display:inline-flex;align-items:center;justify-content:center;gap:.35rem;padding:.42rem .7rem;border:none;border-radius:var(--web-radius-pill);font-family:var(--web-font-family-display);font-weight:700;font-stretch:100%;font-size:var(--web-font-size-step--2);text-transform:uppercase;letter-spacing:.04em;cursor:pointer;background:var(--lime);color:var(--k);transition:filter .18s ease}.ufs-reg:hover{filter:brightness(1.08)}.ufs-reg[disabled]{background:var(--k3);color:var(--muted);cursor:default}.ufs-loading,.ufs-state{grid-column:1 / -1;display:flex;align-items:center;justify-content:center;gap:.6rem;min-height:12rem;color:var(--muted);text-align:center;font-size:var(--web-font-size-step--1)}.ufs-state a{color:var(--lime)}.ufs-spinner{width:1.1rem;height:1.1rem;border-radius:50%;border:2px solid var(--line);border-top-color:var(--lime);animation:ufs-spin .7s linear infinite}@keyframes ufs-spin{to{transform:rotate(360deg)}}.ufs-noscript{color:var(--muted);text-align:center;margin-top:var(--web-space-4)}.ufs-noscript a{color:var(--lime)}.ufs-modal{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:1.2rem}.ufs-modal[hidden]{display:none}.ufs-modal-scrim{position:absolute;inset:0;background:#060704b8;backdrop-filter:blur(3px)}.ufs-modal-card{position:relative;width:min(30rem,100%);background:var(--web-color-white, #fff);color:var(--web-color-ink, #171812);border-radius:var(--web-radius-2xl);padding:clamp(1.4rem,4vw,2rem);box-shadow:var(--web-shadow-float, 0 30px 80px -20px rgba(0, 0, 0, .6));animation:ufs-pop .24s cubic-bezier(.2,.7,.2,1)}@keyframes ufs-pop{0%{opacity:0;transform:translateY(10px) scale(.98)}}.ufs-modal-x{position:absolute;top:.8rem;right:.8rem;display:grid;place-items:center;width:2.1rem;height:2.1rem;border:none;border-radius:50%;background:color-mix(in srgb,var(--web-color-ink, #171812) 6%,transparent);color:var(--web-color-ink, #171812);cursor:pointer}.ufs-modal-x svg{width:1.1rem;height:1.1rem;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round}.ufs-modal-eyebrow{font-family:var(--web-font-family-display);font-weight:700;font-size:var(--web-font-size-step--1);letter-spacing:.14em;text-transform:uppercase;color:var(--web-color-primary-dark, #8ba00f);margin:0 0 .3rem}.ufs-modal-h{font-family:var(--web-font-family-display);font-weight:800;font-stretch:106%;font-size:clamp(1.5rem,1rem + 2vw,2.1rem);text-transform:uppercase;line-height:1;margin:0 0 .6rem}.ufs-modal-list{list-style:none;padding:0;margin:0 0 1.2rem;display:flex;flex-direction:column;gap:.4rem}.ufs-modal-list li{display:flex;justify-content:space-between;gap:1rem;padding:.4rem 0;border-bottom:1px solid color-mix(in srgb,var(--web-color-ink, #171812) 8%,transparent);font-size:var(--web-font-size-step--1)}.ufs-modal-list li span:first-child{color:var(--web-color-text-secondary, #666)}.ufs-modal-list li span:last-child{font-weight:600;text-align:right}.ufs-modal-p{color:var(--web-color-text-secondary, #666);font-size:var(--web-font-size-step--1);margin:0 0 1.2rem}.ufs-modal-cta{display:inline-flex;align-items:center;justify-content:center;width:100%;padding:.9rem 1.4rem;border-radius:var(--web-radius-pill);background:var(--web-color-primary, #bccf17);color:var(--web-color-ink, #171812);font-family:var(--web-font-family-display);font-weight:800;text-transform:uppercase;letter-spacing:.03em;text-decoration:none}@media(max-width:900px){.ufs-daypick{display:flex}.ufs-grid{grid-template-columns:1fr}.ufs-day{display:none}.ufs-day.is-active{display:flex}.ufs-day .ufs-dayhead{display:none}}@media(prefers-reduced-motion:reduce){.ufs-spinner,.ufs-modal-card{animation:none}}
