@property --glow-x{syntax: "<length-percentage>"; inherits: false; initial-value: 50%;}@property --glow-y{syntax: "<length-percentage>"; inherits: false; initial-value: 30%;}:root{--ground: #0b1116;--ground-raised: #121c23;--ground-sunk: #080d11;--bone: #efe8d8;--ink-muted: #9fadb0;--line: rgba(239, 232, 216, .14);--apricot: #ffb27a;--apricot-soft: rgba(255, 178, 122, .22);--sea-glass: #8fd6c8;--sea-glass-soft: rgba(143, 214, 200, .2);--lilac: #b9a6e0;--lilac-soft: rgba(185, 166, 224, .2);--focus: #ffd9b8;--font-display: "Bricolage Grotesque", "Avenir Next", "Gill Sans", "Trebuchet MS", sans-serif;--font-body: "Newsreader", Georgia, "Iowan Old Style", "Palatino Linotype", serif;--step--1: .8125rem;--step-0: 1.125rem;--step-1: 1.3125rem;--step-2: clamp(1.5rem, 1.2rem + 1.4vw, 1.9rem);--step-3: clamp(2rem, 1.5rem + 2.4vw, 3rem);--step-4: clamp(2.6rem, 1.6rem + 4.6vw, 4.9rem);--space-1: .5rem;--space-2: 1rem;--space-3: 1.5rem;--space-4: 2.5rem;--space-5: clamp(3.5rem, 8vw, 7rem);--radius: 999px;--radius-card: 1.25rem;--ease-out: cubic-bezier(.22, 1, .36, 1);--header-h: 4.25rem}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;overflow-x:clip}body{margin:0;min-height:100vh;background:var(--ground);color:var(--bone);font-family:var(--font-body);font-size:var(--step-0);line-height:1.6;overflow-x:clip;-webkit-font-smoothing:antialiased}img,svg{display:block;max-width:100%}h1,h2,h3,h4,p{margin:0}h1,h2,h3,h4,button,input,select,textarea,.eyebrow,.brand__name,.tab-bar__item{font-family:var(--font-display)}a{color:inherit}:focus-visible{outline:3px solid var(--focus);outline-offset:3px;border-radius:6px}.app{min-height:100vh;padding-bottom:calc(5rem + env(safe-area-inset-bottom))}.reading-progress{position:fixed;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--sea-glass),var(--apricot));transform-origin:0 50%;transform:scaleX(0);z-index:60}@supports (animation-timeline: view()){.reading-progress{transform:none;animation:grow-progress linear both;animation-timeline:scroll(root)}@keyframes grow-progress{0%{transform:scaleX(0)}to{transform:scaleX(1)}}}.site-header{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);min-height:var(--header-h);padding:env(safe-area-inset-top) max(1rem,env(safe-area-inset-right)) 0 max(1rem,env(safe-area-inset-left));background:linear-gradient(to bottom,#0b1116f0,#0b1116b3);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}.brand{display:inline-flex;align-items:center;gap:.6rem;min-height:44px;text-decoration:none}.brand__mark{width:1.5rem;height:1.5rem;border-radius:50%;background:radial-gradient(circle at 50% 40%,#ffc79a 0%,var(--apricot) 55%,#b8583e 100%);box-shadow:0 0 18px var(--apricot-soft)}.brand__name{font-weight:650;font-size:var(--step-1);letter-spacing:-.01em}.site-nav{display:none;gap:.25rem}.site-nav a{display:inline-flex;align-items:center;min-height:44px;padding:0 .85rem;border-radius:var(--radius);text-decoration:none;color:var(--ink-muted);font-family:var(--font-display);font-size:var(--step--1);letter-spacing:.04em;text-transform:uppercase}.site-nav a:hover{color:var(--bone)}main{display:block}section{scroll-margin-top:calc(var(--header-h) + .5rem)}.eyebrow,.panel__index{font-family:var(--font-display);font-size:var(--step--1);font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--apricot)}.section-title{font-family:var(--font-display);font-size:var(--step-3);font-weight:620;line-height:1.05;letter-spacing:-.025em;margin-top:var(--space-1);text-wrap:balance}.section-body{margin-top:var(--space-2);max-width:36rem;color:var(--ink-muted);font-size:var(--step-0)}.split-word{display:inline-block;will-change:transform,opacity}.button{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:48px;padding:.75rem 1.4rem;border-radius:var(--radius);border:1px solid transparent;font-family:var(--font-display);font-size:1rem;font-weight:600;text-decoration:none;cursor:pointer;transition:transform .3s var(--ease-out),background-color .3s,border-color .3s,box-shadow .3s}.button:active{transform:translateY(1px)}.button--primary{background:var(--apricot);color:var(--ground-sunk);box-shadow:0 0 0 0 var(--apricot-soft)}.button--primary:hover{box-shadow:0 0 28px 4px var(--apricot-soft)}.button--ghost{background:transparent;color:var(--bone);border-color:var(--line)}.button--ghost:hover{border-color:var(--apricot);color:var(--apricot)}.button--small{min-height:44px;padding:.5rem 1rem}.button--block{width:100%}.checklist{margin:0;padding:0;list-style:none;display:grid;gap:.75rem}.checklist li{position:relative;padding-left:1.4rem;color:var(--ink-muted)}.checklist li:before{content:"";position:absolute;left:0;top:.6em;width:.55rem;height:.55rem;border-radius:50%;background:var(--sea-glass)}.hero{position:relative;display:grid;gap:var(--space-3);min-height:100svh;padding:calc(var(--header-h) + 2.5rem + env(safe-area-inset-top)) max(1.25rem,env(safe-area-inset-right)) 3rem max(1.25rem,env(safe-area-inset-left));align-content:end;overflow:hidden}.hero__copy{position:relative;z-index:1;display:grid;gap:var(--space-2)}.hero__title{font-family:var(--font-display);font-size:var(--step-4);font-weight:700;line-height:.98;letter-spacing:-.035em;text-wrap:balance;max-width:11ch}.hero__lede{max-width:30rem;color:var(--ink-muted);font-size:var(--step-1);line-height:1.5}.hero__actions{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-2)}.hero__horizon{position:relative;height:38vh;min-height:220px;margin:0 calc(-1*max(1.25rem,env(safe-area-inset-right))) 0 calc(-1*max(1.25rem,env(safe-area-inset-left)))}.hero__sun{position:absolute;left:50%;bottom:42%;width:min(62vw,300px);aspect-ratio:1;transform:translate(-50%);border-radius:50%;background:radial-gradient(circle at 50% 45%,#ffd3ab 0%,var(--apricot) 42%,#c9674a 72%,transparent 73%);box-shadow:0 0 80px 20px var(--apricot-soft);opacity:.95}.hero__water{position:absolute;left:0;right:0;bottom:0;height:42%;background:repeating-linear-gradient(to bottom,transparent 0 14px,rgba(143,214,200,.22) 14px 16px,transparent 16px 30px),linear-gradient(to bottom,rgba(11,17,22,0),var(--ground) 90%);-webkit-mask-image:linear-gradient(to bottom,transparent,#000 40%);mask-image:linear-gradient(to bottom,transparent,#000 40%)}.journey{position:relative;height:380vh}.journey__sticky{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden;display:flex;align-items:stretch}.journey__track{display:flex;width:400%;height:100%;will-change:transform}.panel{flex:0 0 25%;width:25%;height:100%;display:flex;flex-direction:column;justify-content:center;gap:var(--space-2);padding:calc(var(--header-h) + 1rem) max(1.25rem,env(safe-area-inset-right)) calc(5rem + env(safe-area-inset-bottom)) max(1.25rem,env(safe-area-inset-left));overflow-y:auto;border-right:1px solid var(--line);background:radial-gradient(120% 70% at 100% 0%,var(--lilac-soft),transparent 60%),var(--ground)}.panel:nth-child(2){background:radial-gradient(90% 60% at 0% 100%,var(--sea-glass-soft),transparent 60%),var(--ground-raised)}.panel:nth-child(3){background:radial-gradient(100% 70% at 100% 100%,var(--apricot-soft),transparent 60%),var(--ground)}.panel:nth-child(4){background:radial-gradient(90% 60% at 0% 0%,var(--lilac-soft),transparent 60%),var(--ground-sunk)}.panel__title{font-family:var(--font-display);font-size:var(--step-3);font-weight:620;line-height:1.05;letter-spacing:-.025em;text-wrap:balance;max-width:14ch}.panel__body{max-width:34rem;color:var(--ink-muted)}.panel__body--small{font-size:var(--step--1)}.panel__hint{margin-top:var(--space-2);font-family:var(--font-display);font-size:var(--step--1);color:var(--sea-glass);letter-spacing:.02em}.class-grid{display:grid;gap:var(--space-2);max-width:34rem}.class-card{display:grid;gap:.35rem;width:100%;min-height:44px;padding:var(--space-2) var(--space-3);text-align:left;color:var(--bone);background:#efe8d80a;border:1px solid var(--line);border-radius:var(--radius-card);cursor:pointer;transition:border-color .3s,background-color .3s}.class-card:hover{border-color:var(--sea-glass);background:#8fd6c812}.class-card__meta{font-family:var(--font-display);font-size:var(--step--1);letter-spacing:.06em;text-transform:uppercase;color:var(--sea-glass)}.class-card__title{font-family:var(--font-display);font-size:var(--step-2);font-weight:600;line-height:1.15}.class-card__summary{color:var(--ink-muted);font-size:1rem}.class-card__cta{margin-top:.25rem;font-family:var(--font-display);font-size:var(--step--1);color:var(--apricot)}.class-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;display:flex;align-items:flex-end;justify-content:center;background:#080d11b8;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.class-detail{position:relative;width:100%;max-height:92svh;overflow-y:auto;padding:var(--space-3) max(1.25rem,env(safe-area-inset-right)) calc(var(--space-3) + env(safe-area-inset-bottom)) max(1.25rem,env(safe-area-inset-left));background:var(--ground-raised);border:1px solid var(--line);border-radius:1.5rem 1.5rem 0 0;display:grid;gap:var(--space-2);align-content:start}.class-detail__top{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.class-detail__title{font-family:var(--font-display);font-size:var(--step-3);font-weight:650;line-height:1.05;letter-spacing:-.02em}.class-detail__summary{font-size:var(--step-1);line-height:1.45}.class-detail__body{color:var(--ink-muted)}.class-detail__subhead{font-family:var(--font-display);font-size:var(--step-1);margin-top:var(--space-1)}.class-detail__note{font-size:var(--step--1);color:var(--ink-muted)}.compare-section{display:grid;gap:var(--space-3);padding:var(--space-5) max(1.25rem,env(safe-area-inset-right)) var(--space-5) max(1.25rem,env(safe-area-inset-left));background:var(--ground-sunk);border-top:1px solid var(--line)}.compare{position:relative;aspect-ratio:3 / 4;width:100%;max-width:420px;justify-self:center;border-radius:1.5rem;overflow:hidden;background:var(--ground-raised);border:1px solid var(--line);touch-action:pan-y;user-select:none;-webkit-user-select:none;cursor:ew-resize;--line: rgba(239, 232, 216, .14)}.compare__layer{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;color:var(--apricot)}.compare__layer--before{color:var(--ink-muted)}.compare__figure{width:78%;height:auto;max-height:84%}.compare__label{position:absolute;top:1rem;font-family:var(--font-display);font-size:var(--step--1);letter-spacing:.06em;text-transform:uppercase;padding:.35rem .7rem;border-radius:var(--radius);background:#080d11b3;color:var(--bone)}.compare__label--left{left:1rem}.compare__label--right{right:1rem}.compare__handle{position:absolute;top:0;bottom:0;width:44px;margin-left:-22px;display:flex;align-items:center;justify-content:center;cursor:ew-resize}.compare__handle:before{content:"";position:absolute;top:0;bottom:0;left:50%;width:2px;margin-left:-1px;background:var(--bone);box-shadow:0 0 16px var(--apricot)}.compare__grip{position:relative;display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;background:var(--bone);color:var(--ground-sunk);font-family:var(--font-display);font-weight:700;letter-spacing:.1em;box-shadow:0 0 24px var(--apricot-soft)}.compare__hint{justify-self:center;font-size:var(--step--1);color:var(--ink-muted)}.pace{--glow-color: var(--apricot-soft);--glow-x: 50%;--glow-y: 30%;position:relative;display:grid;gap:var(--space-3);padding:var(--space-5) max(1.25rem,env(safe-area-inset-right)) var(--space-5) max(1.25rem,env(safe-area-inset-left));overflow:hidden;isolation:isolate;background:var(--ground)}.pace:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;background:radial-gradient(circle at var(--glow-x) var(--glow-y),var(--glow-color) 0%,transparent 38%);transition:--glow-x .6s var(--ease-out),--glow-y .6s var(--ease-out),background-color .6s;opacity:.9}.pace--scattered{--glow-color: var(--apricot-soft)}.pace--steady{--glow-color: var(--sea-glass-soft)}.pace--heavy{--glow-color: var(--lilac-soft)}.pace__group{border:0;margin:0;padding:0;min-width:0;display:grid;gap:var(--space-2)}.pace__group legend{padding:0;margin-bottom:var(--space-1);font-family:var(--font-display);font-size:var(--step--1);letter-spacing:.12em;text-transform:uppercase;color:var(--sea-glass)}.pace__options{display:grid;gap:.6rem}.pace__option{display:grid;gap:.2rem;width:100%;min-height:56px;padding:var(--space-2);text-align:left;color:var(--bone);background:#080d118c;border:1px solid var(--line);border-radius:var(--radius-card);cursor:pointer;transition:border-color .3s,background-color .3s,transform .3s var(--ease-out)}.pace__option:active{transform:scale(.99)}.pace__option[aria-pressed=true]{border-color:var(--apricot);background:#ffb27a1a}.pace__option-name{font-family:var(--font-display);font-size:var(--step-1);font-weight:600}.pace__option-desc{font-size:var(--step--1);color:var(--ink-muted)}.pace__chips{display:flex;flex-wrap:wrap;gap:.5rem}.pace__chip,.day-tab{min-height:44px;padding:.5rem 1rem;border-radius:var(--radius);border:1px solid var(--line);background:transparent;color:var(--bone);font-family:var(--font-display);font-size:var(--step--1);font-weight:600;cursor:pointer;transition:border-color .3s,background-color .3s,color .3s}.pace__chip[aria-pressed=true],.day-tab[aria-pressed=true]{background:var(--bone);border-color:var(--bone);color:var(--ground-sunk)}.pace__result{display:grid;gap:var(--space-3);justify-items:center;padding:var(--space-3);border:1px solid var(--line);border-radius:1.5rem;background:#121c23b3;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.pace__breath{position:relative;width:min(60vw,220px);aspect-ratio:1;display:grid;place-items:center}.pace__ring{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;background:radial-gradient(circle,var(--glow-color) 0%,var(--apricot) 62%,transparent 70%);box-shadow:0 0 40px var(--glow-color)}.pace__count{position:relative;font-family:var(--font-display);font-size:var(--step-1);font-weight:600;text-align:center;line-height:1.2;color:var(--ground-sunk)}.pace__verdict{display:grid;gap:.4rem;width:100%}.pace__kicker{font-family:var(--font-display);font-size:var(--step--1);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-muted)}.pace__class{font-family:var(--font-display);font-size:var(--step-2);font-weight:620;line-height:1.1}.pace__meta,.pace__next{color:var(--sea-glass);font-size:var(--step--1)}.pace__why{color:var(--ink-muted)}.pace__verdict .button{margin-top:var(--space-1);justify-self:start}.schedule{display:grid;gap:var(--space-3);padding:var(--space-5) max(1.25rem,env(safe-area-inset-right)) var(--space-5) max(1.25rem,env(safe-area-inset-left))}.day-tabs{display:flex;gap:.5rem;overflow-x:auto;padding-bottom:.25rem;scrollbar-width:none}.day-tabs::-webkit-scrollbar{display:none}.timetable{list-style:none;margin:0;padding:0;display:grid;border-top:1px solid var(--line)}.timetable__row{display:grid;grid-template-columns:1fr auto;gap:.25rem var(--space-2);padding:var(--space-2) 0;border-bottom:1px solid var(--line)}.timetable__day{grid-column:1 / -1;font-family:var(--font-display);font-size:var(--step--1);letter-spacing:.1em;text-transform:uppercase;color:var(--apricot)}.timetable__time{font-family:var(--font-display);font-size:var(--step-2);font-weight:600;font-variant-numeric:tabular-nums;align-self:start}.timetable__info{grid-column:1 / -1}.timetable__title{font-family:var(--font-display);font-size:var(--step-1);font-weight:600}.timetable__meta{font-size:var(--step--1);color:var(--ink-muted)}.state{display:grid;gap:var(--space-2);justify-items:start;padding:var(--space-3);border:1px dashed var(--line);border-radius:var(--radius-card);color:var(--ink-muted)}.state--error{border-color:#ff8c7880;color:var(--bone)}.state__pulse{width:.75rem;height:.75rem;border-radius:50%;background:var(--sea-glass);animation:pulse 1.4s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.3;transform:scale(.8)}50%{opacity:1;transform:scale(1.1)}}.visit{display:grid;gap:var(--space-4);padding:var(--space-5) max(1.25rem,env(safe-area-inset-right)) var(--space-5) max(1.25rem,env(safe-area-inset-left));background:var(--ground-raised);border-top:1px solid var(--line)}.visit__facts{margin:var(--space-3) 0 0;display:grid;gap:var(--space-2)}.visit__facts dt{font-family:var(--font-display);font-size:var(--step--1);letter-spacing:.1em;text-transform:uppercase;color:var(--sea-glass)}.visit__facts dd{margin:0}.form{display:grid;gap:var(--space-2)}.field{display:grid;gap:.4rem}.field label{font-family:var(--font-display);font-size:var(--step--1);font-weight:600;letter-spacing:.04em}.field input,.field select,.field textarea{width:100%;min-height:48px;padding:.7rem .9rem;border-radius:.9rem;border:1px solid var(--line);background:var(--ground-sunk);color:var(--bone);font-family:var(--font-body);font-size:1.0625rem}.field textarea{resize:vertical;min-height:7rem}.field input:focus-visible,.field select:focus-visible,.field textarea:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-color:var(--apricot)}.field input[aria-invalid=true],.field textarea[aria-invalid=true]{border-color:#ff8c78}.field__error{font-size:var(--step--1);color:#ffb3a4}.form__status{font-size:var(--step--1);padding:var(--space-2);border-radius:.9rem}.form__status--ok{background:var(--sea-glass-soft);color:var(--bone)}.form__status--error{background:#ff8c7826;color:var(--bone)}.site-footer{display:grid;gap:var(--space-3);padding:var(--space-4) max(1.25rem,env(safe-area-inset-right)) var(--space-4) max(1.25rem,env(safe-area-inset-left));border-top:1px solid var(--line);color:var(--ink-muted);font-size:var(--step--1);background:var(--ground-sunk)}.site-footer__name{font-family:var(--font-display);font-size:var(--step-1);font-weight:600;color:var(--bone)}.site-footer a{display:inline-flex;align-items:center;min-height:44px;color:var(--sea-glass)}.site-footer__legal{max-width:40rem}.offline-banner{position:fixed;top:calc(var(--header-h) + env(safe-area-inset-top));left:0;right:0;z-index:55;padding:.75rem 1.25rem;background:#3a2a22;color:var(--bone);font-size:var(--step--1);border-bottom:1px solid rgba(255,178,122,.4)}.tab-bar{position:fixed;left:0;right:0;bottom:0;z-index:50;display:grid;grid-template-columns:repeat(4,1fr);padding:.25rem max(.5rem,env(safe-area-inset-right)) calc(.25rem + env(safe-area-inset-bottom)) max(.5rem,env(safe-area-inset-left));background:#0b1116f0;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-top:1px solid var(--line)}.tab-bar__item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.1rem;min-height:56px;color:var(--ink-muted);text-decoration:none;font-size:.75rem;letter-spacing:.04em}.tab-bar__item:hover,.tab-bar__item:focus-visible{color:var(--bone)}@media (min-width: 760px){.site-nav{display:flex}.tab-bar{display:none}.app{padding-bottom:0}.hero{grid-template-columns:1.2fr 1fr;align-items:end;padding-left:max(2.5rem,env(safe-area-inset-left));padding-right:max(2.5rem,env(safe-area-inset-right))}.hero__horizon{height:70vh;margin:0}.hero__sun{width:min(34vw,380px)}.journey{height:340vh}.panel{padding-left:5rem;padding-right:5rem}.class-grid{grid-template-columns:1fr 1fr;max-width:52rem}.class-detail{max-width:640px;max-height:86vh;border-radius:1.5rem;margin-bottom:4vh}.class-overlay{align-items:center}.compare-section,.pace,.schedule,.visit{grid-template-columns:1fr 1fr;align-items:start;padding-left:2.5rem;padding-right:2.5rem}.pace__controls{display:grid;gap:var(--space-3)}.pace__options{grid-template-columns:repeat(3,1fr)}.pace__result{grid-column:1 / -1;grid-template-columns:auto 1fr;justify-items:start;align-items:center}.compare-section__copy,.pace__intro,.schedule__head,.visit__copy{grid-column:1 / -1}.compare-section{grid-template-columns:1fr 1fr}.compare-section__copy{grid-column:1}.compare{grid-column:2;grid-row:1 / span 2}.compare__hint{grid-column:1 / -1}.timetable{grid-column:1 / -1;grid-template-columns:1fr 1fr;column-gap:var(--space-4)}.schedule .state,.schedule .day-tabs{grid-column:1 / -1}.timetable__row{grid-template-columns:5rem 5.5rem 1fr;align-items:baseline}.timetable__day,.timetable__info{grid-column:auto}.visit{grid-template-columns:1fr 1fr}}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}.journey{height:auto}.journey__sticky{position:static;height:auto;overflow:visible}.journey__track{flex-direction:column;width:100%;height:auto}.panel{flex:none;width:100%;height:auto;min-height:80vh;overflow:visible}.pace:before{transition:none}}
