:root{--midnight:#191718;--blossom:#FBF5F3;--solitude:#E9E7DB;--breeze:#D0D1AF;--lush:#45563A;--shore:#6A3C21;--soothe:#B3997E;--endure:#39271D;--dawn:#8E8D79;--solace:#DCDACF;--font-display:"TT Ramillas","Lora",Georgia,serif;--font-body:"Inter",-apple-system,sans-serif}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%}body{background:var(--blossom);color:var(--midnight);font-family:var(--font-body);font-size:1rem;line-height:1.6;-webkit-font-smoothing:antialiased}a{color:var(--lush);text-decoration:underline;text-underline-offset:3px}a:hover{color:var(--endure)}::selection{background:var(--breeze)}.shell{max-width:44rem;margin:0 auto;padding:0 1.25rem 5rem}.topbar{display:flex;align-items:baseline;justify-content:space-between;padding:1.5rem 0 1.25rem;border-bottom:1px solid var(--solace);margin-bottom:2.5rem}.wordmark{font-family:var(--font-display);font-size:1.15rem;letter-spacing:.01em;color:var(--midnight);text-decoration:none}.topbar nav{display:flex;gap:1.25rem;align-items:baseline}.navlink{font-size:.85rem;color:var(--dawn);text-decoration:none}.navlink:hover,.navlink[aria-current=page]{color:var(--lush)}.signout-button{font-size:.85rem;font-family:var(--font-body);color:var(--dawn);background:none;border:none;cursor:pointer;padding:0}.signout-button:hover{color:var(--lush)}h1,h2{font-family:var(--font-display);font-weight:500;line-height:1.25;letter-spacing:-.005em}h1{font-size:clamp(1.75rem,5vw,2.4rem);margin-bottom:.6rem}h2{font-size:1.3rem;margin-bottom:.75rem}.lede{color:var(--midnight);max-width:34rem}.eyebrow{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--dawn);margin-bottom:.5rem}section{margin-top:3rem}.day-group{margin-top:1.75rem}.day-label{font-family:var(--font-display);font-size:1.05rem;color:var(--endure);padding-bottom:.4rem;margin-bottom:.25rem}.day-label,.session{border-bottom:1px solid var(--solace)}.session{display:grid;grid-template-columns:max-content 1fr;grid-gap:1rem;gap:1rem;padding:1rem 0 1rem .9rem;border-left:3px solid var(--space-colour,var(--lush))}.session:last-child{border-bottom:none}.session-time{font-size:.85rem;color:var(--dawn);padding-top:.15rem;white-space:nowrap}.session-title{font-family:var(--font-display);font-size:1.05rem;font-weight:500}.session-meta{font-size:.8rem;color:var(--dawn);margin-top:.2rem}.session-meta .space-name{color:var(--space-colour,var(--lush))}.session-description{font-size:.9rem;margin-top:.35rem;max-width:30rem}.spaces{display:grid;grid-gap:0;gap:0;border-top:1px solid var(--solace)}.space-row{display:flex;align-items:baseline;gap:.9rem;padding:.9rem 0;border-bottom:1px solid var(--solace)}.space-dot{width:.55rem;height:.55rem;border-radius:50%;flex-shrink:0;position:relative;top:-.05rem}.space-title{font-family:var(--font-display);font-size:1rem}.space-line{font-size:.85rem;color:var(--dawn)}.signin{min-height:100vh;display:grid;place-items:center;padding:1.25rem}.signin-card{width:100%;max-width:22rem}.signin-card h1{margin-bottom:.35rem}.signin-card p{color:var(--dawn);font-size:.92rem;margin-bottom:1.75rem}.field label{display:block;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--dawn);margin-bottom:.4rem}.field input{width:100%;font-family:var(--font-body);font-size:1rem;padding:.7rem .85rem;color:var(--midnight);background:#fff;border:1px solid var(--solace);border-radius:2px}.field input:focus{outline:2px solid var(--lush);outline-offset:1px;border-color:var(--lush)}.button{margin-top:1rem;width:100%;font-family:var(--font-body);font-size:.95rem;padding:.75rem;color:var(--blossom);background:var(--lush);border:none;border-radius:2px;cursor:pointer}.button:hover{background:var(--endure)}.button:focus-visible{outline:2px solid var(--midnight);outline-offset:2px}.button:disabled{opacity:.6;cursor:default}.notice{margin-top:1.25rem;font-size:.9rem;color:var(--lush)}.notice.error{color:var(--shore)}.empty{color:var(--dawn);font-size:.95rem;padding:1.5rem 0}@media (max-width:480px){.session{grid-template-columns:1fr;gap:.15rem}.topbar{flex-wrap:wrap;gap:.75rem}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}