.sheet-backdrop{z-index:30;background:color-mix(in srgb, var(--chocolate) 45%, transparent);align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{width:100%;padding:16px var(--gutter) calc(env(safe-area-inset-bottom) + 20px);background:var(--cream);border-radius:20px 20px 0 0;flex-direction:column;gap:12px;display:flex}.sheet-head{justify-content:space-between;align-items:flex-start;gap:8px;margin-right:-12px;display:flex}.sheet-when{color:var(--accent);margin:4px 0 2px;font-size:12px}.sheet-title{font-family:var(--font-header);font-size:30px;line-height:1.1}.sheet-meta{color:var(--text-muted);margin:4px 0 0;font-size:15px}.sheet-note a{color:var(--accent);font-weight:600}.sheet-note,.sheet-policy{margin:0;font-size:15px}.sheet-policy{border-radius:var(--radius);background:var(--surface);padding:12px 14px}.sheet-policy p{margin:0}.sheet-policy p+p{margin-top:8px}.sheet-policy.late{background:color-mix(in srgb, var(--highlight) 45%, var(--cream))}.sheet-booked{color:var(--surface-strong);margin:0;font-size:13px}.sheet-primary{min-height:var(--tap-lg);border-radius:var(--radius);background:var(--accent);color:var(--cream);border:none;justify-content:center;align-items:center;gap:8px;font-size:16px;text-decoration:none;display:flex}.sheet-primary svg{width:22px;height:22px}.sheet-calendar{background:var(--surface-strong)}.sheet-secondary{min-height:var(--tap);color:var(--text-muted);text-underline-offset:3px;background:0 0;border:none;font-weight:600;text-decoration:underline}.sheet-link{min-height:var(--tap);color:var(--accent);text-underline-offset:3px;background:0 0;border:none;align-self:flex-start;margin:-8px 0 -4px;padding:0;font-size:15px;font-weight:600;text-decoration:underline}.sheet-choices{border:none;flex-direction:column;gap:6px;margin:0;padding:0;display:flex}.sheet-choice{min-height:var(--tap-lg);border:2px solid var(--line);border-radius:var(--radius);align-items:center;gap:12px;padding:8px 12px;font-weight:600;display:flex}.sheet-choice.selected{border-color:var(--surface-strong)}.sheet-choice input{width:20px;height:20px;accent-color:var(--surface-strong)}.sheet-choice-meta{color:var(--text-muted);font-size:14px;font-weight:400;display:block}.credit-line{color:var(--text-muted);margin:2px 0 0;font-size:15px}.credit-nudge{border-radius:var(--radius);background:color-mix(in srgb, var(--highlight) 45%, var(--cream));justify-content:space-between;align-items:center;gap:12px;margin-top:8px;padding:6px 6px 6px 14px;display:flex}.credit-nudge.calm{background:color-mix(in srgb, var(--cream) 55%, var(--surface))}.credit-nudge-text{margin:0;font-size:15px;font-weight:600}.credit-buy{min-height:var(--tap);border-radius:var(--radius-sm);background:var(--accent);color:var(--cream);border:none;flex:none;padding:0 14px;font-size:12px}.schedule{padding:0 var(--gutter) 24px;overflow-y:auto}.schedule-header{padding:16px 0 4px}.schedule-logo{width:auto;height:48px;margin:-4px 0 4px -14px;display:block}.schedule-location{color:var(--accent);margin:2px 0 0;font-size:12px}.schedule-title{font-family:var(--font-header);font-size:34px;line-height:1.1}.schedule-section{margin-top:20px}.schedule-heading{color:var(--accent);margin-bottom:10px;font-size:13px}.schedule-empty{color:var(--text-muted);margin:0}.upcoming{flex-direction:column;gap:8px;display:flex}.upcoming-card{border-radius:var(--radius);background:var(--accent);color:var(--cream);text-align:left;border:none;flex-direction:column;align-items:flex-start;gap:0;padding:10px 14px;display:flex}.upcoming-when{color:color-mix(in srgb, var(--cream) 80%, var(--accent));font-size:12px}.upcoming-name{font-family:var(--font-header);font-size:21px;line-height:1.15}.upcoming-meta{opacity:.9;font-size:15px}.agenda-day+.agenda-day{margin-top:8px}.agenda-date{z-index:1;background:var(--cream);font-family:var(--font-header);border-bottom:2px solid var(--chocolate);padding:10px 0 6px;font-size:20px;position:sticky;top:0}.agenda-row{border-bottom:1px solid var(--line);align-items:center;gap:8px;min-height:64px;display:flex}.agenda-open{text-align:left;background:0 0;border:none;flex:1;grid-template-columns:78px 1fr;align-items:center;gap:8px;min-width:0;padding:8px 0;display:grid}.agenda-time{font-size:16px;font-weight:700}.agenda-info{flex-direction:column;min-width:0;display:flex}.agenda-name{align-items:center;gap:6px;font-weight:600;display:flex}.agenda-tag{background:var(--highlight);border-radius:4px;padding:3px 6px 2px;font-size:9px}.agenda-meta{color:var(--text-muted);font-size:14px}.agenda-book{min-width:76px;min-height:var(--tap);background:var(--accent);color:var(--cream);border:none;border-radius:999px;flex:none;padding:0 16px;font-size:13px}.agenda-book:not(:disabled):active{background:var(--accent-pressed)}.agenda-booked{min-height:var(--tap);border:2px solid var(--accent);color:var(--accent);background:0 0;border-radius:999px;flex:none;align-items:center;gap:4px;padding:0 12px;font-size:14px;font-weight:600;display:flex}.agenda-booked svg{width:16px;height:16px}.agenda-spots{color:var(--accent);font-size:13px;font-weight:600}.agenda-waitlist{min-width:76px;min-height:var(--tap);border:2px solid var(--accent);color:var(--accent);background:0 0;border-radius:999px;flex:none;padding:0 14px;font-size:12px}.agenda-full{text-align:center;min-width:76px;color:var(--text-muted);flex:none;font-size:14px}.agenda-row.full .agenda-open{opacity:.5}.you{padding:16px var(--gutter) 24px;flex-direction:column;gap:14px;display:flex;overflow-y:auto}.you-title{font-family:var(--font-header);font-size:34px;line-height:1.1}.you-card{border-radius:var(--radius);padding:16px}.you-classes{background:var(--surface)}.you-attendance{background:var(--surface-strong);color:var(--cream)}.you-heading{font-size:13px}.you-big{font-family:var(--font-header);margin:4px 0 0;font-size:56px;line-height:1}.you-caption{opacity:.85;margin:2px 0 0;font-size:15px}.you-counting{margin-top:6px;font-style:italic}.you-packs{color:var(--text-muted);margin:6px 0 0;padding:0;font-size:15px;list-style:none}.you-buddy{color:var(--surface-strong);margin:8px 0 0;font-size:15px;font-weight:600}.milestone-bar{background:color-mix(in srgb, var(--cream) 20%, var(--surface-strong));border-radius:999px;height:10px;margin-top:16px;overflow:hidden}.milestone-fill{background:var(--highlight);border-radius:999px;height:100%}.milestone-next{margin:8px 0 0;font-weight:600}.milestones{gap:6px;margin:14px 0 8px;padding:0;list-style:none;display:flex}.milestone{border:1.5px solid color-mix(in srgb, var(--cream) 35%, var(--surface-strong));border-radius:999px;flex:1;justify-content:center;align-items:center;gap:2px;min-height:36px;font-size:13px;font-weight:600;display:flex}.milestone svg{width:12px;height:12px}.milestone.reached{border-color:var(--highlight);background:var(--highlight);color:var(--chocolate)}.milestone.next{border-color:var(--highlight)}.you-studio .you-heading{margin-bottom:8px}.segmented{border-radius:var(--radius);background:var(--surface);gap:4px;padding:4px;display:flex}.segmented button{min-height:var(--tap);border-radius:var(--radius-sm);background:0 0;border:none;flex:1;font-weight:600}.segmented button.selected{background:var(--surface-strong);color:var(--cream)}.you-hint{color:var(--text-muted);margin:6px 0 0;font-size:14px}.rewards{margin-top:4px}.rewards-list{flex-direction:column;gap:6px;margin:10px 0 0;padding:0;list-style:none;display:flex}.rewards-list li{align-items:center;gap:10px;display:flex}.rewards-at{background:color-mix(in srgb, var(--cream) 18%, var(--surface-strong));text-align:center;border-radius:999px;min-width:44px;padding:2px 0;font-size:13px;font-weight:700}.you-account{border-top:1px solid var(--line);flex-direction:column;align-items:center;gap:4px;margin-top:8px;padding-top:16px;display:flex}.you-account-email{color:var(--text-muted);text-align:center;word-break:break-all;margin:0;font-size:14px}.you-sign-out{min-height:var(--tap);border:2px solid var(--line);background:0 0;border-radius:999px;padding:0 20px;font-weight:600}.you-delete-link{min-height:var(--tap);color:var(--text-muted);text-underline-offset:3px;background:0 0;border:none;margin-top:4px;font-size:14px;text-decoration:underline}.you-delete{border-radius:var(--radius);background:color-mix(in srgb, var(--highlight) 35%, var(--cream));margin-top:8px;padding:14px;font-size:15px}.you-delete p{margin:0 0 8px}.you-delete a{color:var(--accent);font-weight:600}.you-delete-error{font-weight:600}.you-delete-actions{justify-content:flex-end;gap:8px;display:flex}.you-delete-confirm{min-height:var(--tap);background:var(--accent);color:var(--cream);border:none;border-radius:999px;padding:0 20px;font-weight:600}.history{margin-top:12px}.history-toggle{min-height:var(--tap);color:var(--highlight);text-underline-offset:3px;background:0 0;border:none;align-items:center;gap:6px;padding:0;font-weight:700;text-decoration:underline;display:inline-flex}.history-caret{transition:transform .15s;display:inline-block}.history-caret.open{transform:rotate(180deg)}.history-note{opacity:.85;margin:4px 0;font-size:14px}.history-list{margin:4px 0 0;padding:0;list-style:none}.history-month{color:var(--highlight);margin:14px 0 4px;font-size:12px}.history-row{border-bottom:1px solid color-mix(in srgb, var(--cream) 18%, transparent);align-items:center;gap:10px;padding:8px 0;display:flex}.history-n{opacity:.75;flex:none;min-width:44px;font-size:13px;font-weight:700}.history-info{flex-direction:column;flex:1;min-width:0;display:flex}.history-when{font-size:15px;font-weight:600}.history-what{opacity:.85;font-size:14px}.history-milestone{background:var(--highlight);color:var(--chocolate);border-radius:999px;flex:none;padding:3px 8px 2px;font-size:10px}.history-more{min-height:var(--tap);border:1.5px solid color-mix(in srgb, var(--cream) 45%, transparent);color:var(--cream);background:0 0;border-radius:999px;margin-top:6px;padding:0 16px;font-weight:600}.tab-bar{padding-bottom:env(safe-area-inset-bottom);background:var(--panel);color:color-mix(in srgb, var(--cream) 60%, var(--panel));flex:none;display:grid}.tab{background:0 0;border:none;flex-direction:column;justify-content:center;align-items:center;gap:2px;min-height:52px;display:flex}.tab svg{width:24px;height:24px}.tab-label{font-size:12px;font-weight:600}.tab.current{color:var(--highlight)}.toast{top:calc(env(safe-area-inset-top) + 8px);left:var(--gutter);right:var(--gutter);z-index:40;min-height:var(--tap-lg);border-radius:var(--radius);background:var(--surface-strong);color:var(--cream);box-shadow:0 6px 20px color-mix(in srgb, var(--chocolate) 30%, transparent);justify-content:space-between;align-items:center;gap:12px;padding:4px 4px 4px 16px;display:flex;position:fixed}.toast-action{min-height:var(--tap);border-radius:var(--radius-sm);background:var(--surface);color:var(--chocolate);border:none;padding:0 16px;font-size:14px}.install-hint{margin:8px var(--gutter) 0;border-radius:var(--radius);background:var(--surface);flex:none;align-items:center;gap:8px;padding:6px 4px 6px 14px;display:flex}.install-hint-text{flex:1;margin:0;font-size:15px;line-height:1.35}.install-hint-share{vertical-align:-3px;width:18px;height:18px}.install-hint-button{min-height:var(--tap);background:var(--surface-strong);color:var(--cream);border:none;border-radius:999px;flex:none;padding:0 16px;font-size:13px}.install-hint-close{flex:none}.install-hint-close svg{width:20px;height:20px}.location-picker{padding:24px var(--gutter);flex-direction:column;justify-content:center;display:flex}.location-logo{align-self:center;width:auto;height:96px;margin-bottom:24px}.location-title{font-family:var(--font-header);text-align:center;font-size:30px;line-height:1.15}.location-help{color:var(--text-muted);text-align:center;margin:8px 0 24px}.location-options{flex-direction:column;gap:12px;display:flex}.location-option{border-radius:var(--radius);background:var(--surface-strong);min-height:72px;color:var(--cream);font-family:var(--font-header);border:none;font-size:26px}.location-option:active{transform:scale(.99)}.sign-in{padding:32px var(--gutter) 24px;flex-direction:column;display:flex;overflow-y:auto}.sign-in-logo{align-self:center;width:auto;height:88px;margin-bottom:16px}.sign-in-form{flex-direction:column;display:flex}.sign-in-title{font-family:var(--font-header);font-size:32px;line-height:1.1}.sign-in-help{color:var(--text-muted);margin:8px 0 20px}.sign-in-help strong{color:var(--text);overflow-wrap:anywhere}.sign-in-label{margin-bottom:6px;font-size:12px}.sign-in-input{min-height:var(--tap-lg);border:2px solid color-mix(in srgb, var(--surface-strong) 35%, transparent);border-radius:var(--radius);background:color-mix(in srgb, var(--surface) 25%, var(--cream));padding:0 14px;font-size:18px}.sign-in-input:focus{border-color:var(--surface-strong);outline:none}.sign-in-code{letter-spacing:.4em;text-align:center;font-size:30px}.sign-in-error{border-radius:var(--radius);background:color-mix(in srgb, var(--highlight) 45%, var(--cream));margin:12px 0 0;padding:12px 14px;font-size:15px}.sign-in-button{min-height:var(--tap-lg);border-radius:var(--radius);background:var(--accent);color:var(--cream);border:none;margin-top:16px;font-size:16px}.sign-in-links{justify-content:space-between;gap:8px;margin-top:8px;display:flex}.sign-in-link{min-height:var(--tap);color:var(--text-muted);text-underline-offset:3px;background:0 0;border:none;padding:0;font-weight:600;text-decoration:underline}.sign-in-trouble{min-height:var(--tap);color:var(--accent);align-self:center;align-items:center;margin-top:20px;font-weight:600;display:inline-flex}.sign-in-legal{color:var(--text-muted);text-align:center;margin:8px 0 0;font-size:13px}.sign-in-legal a{color:inherit}.app{padding-top:env(safe-area-inset-top);flex-direction:column;display:flex;position:fixed;inset:0}.app-screen{flex-direction:column;flex:1;min-height:0;display:flex}.app-screen>*{flex:1;min-height:0}@font-face{font-family:KK Topo;src:url(/assets/KK-Topo-Regular-9wxh8U4h.woff2)format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Trio Grotesk;src:url(/assets/TrioGrotesk-Bold-CgZrkyoY.woff2)format("woff2");font-weight:700;font-display:swap}@font-face{font-family:Epilogue;src:url(/assets/Epilogue-VariableFont_wght-rvYp1KWp.ttf)format("truetype");font-weight:100 900;font-display:swap}:root{--mint:#c0caaf;--forest:#485c3d;--terracotta:#b64726;--chocolate:#352222;--cream:#ffe5c8;--sage:#86a37a;--burgundy:#762826;--peach:#e59d6d;--bg:var(--cream);--text:var(--chocolate);--text-muted:color-mix(in srgb, var(--chocolate) 72%, var(--cream));--line:color-mix(in srgb, var(--chocolate) 18%, transparent);--font-header:"KK Topo", "Epilogue", system-ui, sans-serif;--font-sub:"Trio Grotesk", "Epilogue", system-ui, sans-serif;--font-body:"Epilogue", system-ui, sans-serif;--tap:48px;--tap-lg:56px;--radius:12px;--radius-sm:8px;--gutter:16px;--surface:var(--mint);--surface-pressed:var(--sage);--surface-strong:var(--forest);--accent:var(--terracotta);--accent-pressed:var(--burgundy);--highlight:var(--peach);--panel:var(--chocolate);--on-panel:var(--cream)}*,:before,:after{box-sizing:border-box}html{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;-webkit-text-size-adjust:100%;height:100%}html,body{overflow:hidden}body{background:var(--bg);height:100%;color:var(--text);font-family:var(--font-body);-webkit-tap-highlight-color:transparent;overscroll-behavior-y:none;margin:0;font-size:17px;line-height:1.4}button,input{font:inherit;color:inherit}button{cursor:pointer;touch-action:manipulation}button:disabled{cursor:default;opacity:.45}:focus-visible{outline:3px solid var(--accent);outline-offset:2px}h1,h2,h3{margin:0;font-weight:400}.sub{font-family:var(--font-sub);text-transform:uppercase;letter-spacing:.12em;font-weight:700}.num{font-variant-numeric:tabular-nums}.icon-button{min-width:var(--tap);min-height:var(--tap);background:0 0;border:none;border-radius:50%;place-items:center;padding:0;display:inline-grid}.icon-button svg{width:26px;height:26px}.load-error{border-radius:var(--radius);background:color-mix(in srgb, var(--highlight) 45%, var(--cream));margin:24px 0;padding:14px 16px;font-size:15px}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}
