.page,.site-footer{--site-ink:#0a0a0a;--site-soft:#444444;--site-faint:#8a8a8a;--site-hair:#ececec}.site-footer{font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:300;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:clamp(36px,8vh,80px) clamp(24px,5vw,56px) clamp(32px,6vh,56px);background:#ffffff;font-size:.8rem;letter-spacing:.01em;color:var(--site-faint)}.site-nav{display:flex;gap:clamp(22px,2.6vw,40px)}.site-footer a{color:var(--site-faint);text-decoration:none;transition:color var(--dur-micro) var(--ease)}.site-footer a:hover{color:var(--site-ink)}@media (max-width:600px){.site-footer{justify-content:center;gap:0;font-size:.74rem;letter-spacing:0}.site-copy{display:none}.site-nav{gap:clamp(13px,4vw,22px)}}.page .site-footer{position:fixed;left:0;right:0;bottom:0;z-index:20;background:transparent;pointer-events:none;padding:0 24px clamp(22px,4vh,34px)}.page .site-footer>*{pointer-events:auto}.page .site-footer:before{content:"";position:absolute;inset:auto 0 0 0;height:clamp(100px,16vh,150px);background:linear-gradient(0deg,#ffffff 0,#ffffff 42%,rgba(255,255,255,0));z-index:-1;pointer-events:none}.page{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;background:#ffffff;color:var(--site-ink);font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:300;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}.page-head{position:fixed;top:0;left:0;right:0;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:20px 24px;background:transparent;pointer-events:none}.page-head:after{content:"";position:absolute;inset:0 0 auto 0;height:clamp(104px,17vh,150px);background:linear-gradient(180deg,#ffffff 0,#ffffff 42%,rgba(255,255,255,0));z-index:-1;pointer-events:none}.page-head>*{pointer-events:auto}.page-login{font-size:.85rem;font-weight:300;color:var(--site-faint);text-decoration:none;transition:color var(--dur-micro) var(--ease)}.page-login:hover,.wordmark{color:var(--site-ink)}.wordmark{font-size:1.05rem;font-weight:300;letter-spacing:-.033em;text-decoration:none}.page-main{flex:1 1;padding:clamp(92px,14vh,120px) 24px clamp(96px,14vh,130px)}.page-center{display:flex;flex-direction:column;justify-content:center}.statement{max-width:62rem;margin:0;text-align:left}.statement p{margin:0;font-size:clamp(1.35rem,2.5vw,1.9rem);line-height:1.45;letter-spacing:-.01em;text-wrap:pretty;animation:statement-rise var(--dur-reveal) var(--ease) both}.statement p+p{margin-top:.7em}.statement p:nth-of-type(2){animation-delay:.32s}.statement p:nth-of-type(3){animation-delay:.64s}.statement p:nth-of-type(4){animation-delay:.96s}.statement .statement-coda{margin-top:1.4em;font-size:clamp(1rem,1.5vw,1.18rem);line-height:1.55;color:var(--site-soft);animation-delay:1.28s}@keyframes statement-rise{0%{opacity:0;transform:translateY(16px);filter:blur(8px)}to{opacity:1;transform:none;filter:blur(0)}}@media (prefers-reduced-motion:reduce){.statement .statement-coda,.statement p{animation:none}}.contact{max-width:40rem;width:100%;margin:0;animation:doc-in var(--dur-reveal) var(--ease) both}.contact-title{margin:0 0 clamp(24px,5vh,40px)}.contact-done,.contact-title{font-size:clamp(1.5rem,3vw,2rem);font-weight:300;letter-spacing:-.01em}.contact-done{margin:0;color:var(--site-ink);animation:contact-confirm .7s var(--ease) both}.contact-form{display:grid;grid-gap:clamp(18px,3vh,26px);gap:clamp(18px,3vh,26px)}.contact-field{position:relative;display:block;width:100%;border-bottom:1px solid var(--site-hair)}.contact-field:after{content:"";position:absolute;left:0;bottom:-1px;width:100%;height:1px;background:var(--site-ink);transform:scaleX(0);transform-origin:left;transition:transform .45s var(--ease)}.contact-field:focus-within:after{transform:scaleX(1)}.contact-field.is-invalid{border-bottom-color:#b3261e}.contact-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:block;width:100%;box-sizing:border-box;border:0;background:transparent;padding:8px 0;font-family:inherit;font-weight:300;font-size:1rem;line-height:1.65;color:var(--site-ink);outline:none}.contact-input::placeholder{color:var(--site-faint)}.contact-textarea{min-height:132px;resize:none}.contact-submit{justify-self:start;position:relative;display:inline-block;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:none;padding:6px 0 3px;font-family:inherit;font-weight:300;font-size:1rem;color:var(--site-ink);cursor:pointer}.contact-submit:after{content:"";position:absolute;left:0;bottom:-1px;width:100%;height:1px;background:var(--site-ink);transform:scaleX(0);transform-origin:left;transition:transform .45s var(--ease)}.contact-submit:focus-visible:after,.contact-submit:hover:after{transform:scaleX(1)}.contact-submit:disabled{opacity:.5;cursor:default}.contact-submit.is-sending{cursor:default;animation:contact-pulse 1.1s ease-in-out infinite}@keyframes contact-pulse{0%,to{opacity:.4}50%{opacity:1}}.contact-note{margin:0;font-size:1rem;font-weight:300;color:var(--site-soft);animation:contact-confirm .7s var(--ease) both}.contact-alt{margin:clamp(24px,5vh,36px) 0 0;font-size:.9rem;font-weight:300;color:var(--site-faint)}.contact-alt a{color:var(--site-soft);text-decoration:none;transition:color var(--dur-micro) var(--ease)}.contact-alt a:hover{color:var(--site-ink)}@keyframes contact-confirm{0%{opacity:0;transform:translateY(10px);filter:blur(6px)}to{opacity:1;transform:none;filter:blur(0)}}@media (prefers-reduced-motion:reduce){.contact,.contact-done,.contact-note,.contact-submit.is-sending{animation:none}.contact-field:after,.contact-submit:after{transition:none}}.doc{max-width:66ch;width:100%;margin:0;text-align:left;animation:doc-in var(--dur-reveal) var(--ease) both}@keyframes doc-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.doc{animation:none}}.doc h1{font-size:clamp(1.5rem,3vw,2rem);font-weight:300;letter-spacing:-.01em;margin:0 0 .3em}.doc-updated{font-size:.85rem;color:var(--site-faint);margin:0 0 2.6em}.doc-lede{font-size:1.1rem;line-height:1.6;margin:0 0 2.2em}.doc h2,.doc-lede{color:var(--site-ink)}.doc h2{font-size:1rem;font-weight:300;letter-spacing:0;margin:2.2em 0 .5em}.doc p{font-size:1rem;line-height:1.65;color:var(--site-soft);margin:0 0 1em}.doc a{text-decoration:underline;text-underline-offset:2px;text-decoration-thickness:1px}.doc a,.doc h3{color:var(--site-ink)}.doc h3{font-size:1rem;font-weight:300;letter-spacing:0;margin:1.8em 0 .4em}.doc strong{font-weight:300;color:inherit}.doc em{font-style:normal}.doc ul{margin:0 0 1em;padding-left:1.2em;list-style:none}.doc li{position:relative;font-size:1rem;line-height:1.65;color:var(--site-soft);margin:0 0 .45em}.doc li:before{content:"—";position:absolute;left:-1.2em;color:var(--site-faint)}.doc table{width:100%;border-collapse:collapse;margin:.6em 0 1.8em;font-size:.9rem}.doc td,.doc th{text-align:left;vertical-align:top;padding:.7em .9em;border:1px solid #e6e6e2;line-height:1.55;color:var(--site-soft)}.doc th{font-weight:300;color:var(--site-ink)}.doc thead th{border-bottom-width:1px;white-space:nowrap}.pricing{width:100%;animation:doc-in var(--dur-reveal) var(--ease) both}.pricing-title{font-size:clamp(1.5rem,3vw,2rem);font-weight:300;letter-spacing:-.01em;margin:0 0 clamp(28px,5vh,44px)}.pricing-error,.pricing-notice{margin:0 0 22px;font-size:.9rem}.pricing-notice{color:var(--site-ink)}.pricing-error{color:#b91c1c}.pricing-toggle{display:flex;gap:26px;margin-bottom:clamp(28px,4vh,40px);font-size:.9rem}.pricing-toggle-opt{position:relative;color:var(--site-faint);cursor:pointer;transition:color .25s var(--ease)}.pricing-toggle-opt:hover{color:var(--site-ink)}.pricing-toggle-opt:after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .25s var(--ease)}.pricing-toggle-opt.on{color:var(--site-ink)}.pricing-toggle-opt.on:after{transform:scaleX(1)}.pricing-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:clamp(40px,4.5vw,72px);gap:clamp(40px,4.5vw,72px);width:min(100%,70rem)}@media (max-width:760px){.pricing-grid{grid-template-columns:1fr;gap:44px}}.pricing-card{display:flex;flex-direction:column;min-width:0;transition:opacity .46s cubic-bezier(.22,1,.36,1)}@media (hover:hover){.pricing-grid:has(.pricing-card:hover) .pricing-card:not(:hover){opacity:.4}.pricing-grid .pricing-card:hover{opacity:1}}.pricing-grid:not(:has(.pricing-card:hover)):has(.pricing-card:focus-within) .pricing-card:not(:focus-within){opacity:.4}.pricing-card-head{display:flex;flex-direction:column;align-items:flex-start;gap:0}.pricing-card-head h2{margin:0;font-size:clamp(1.45rem,2vw,1.7rem);font-weight:300;letter-spacing:-.015em}.pricing-price{display:flex;align-items:baseline;gap:7px;min-height:2.8em;margin-top:20px;font-weight:300;color:var(--site-ink);white-space:nowrap;animation:price-roll .22s var(--ease) both}.pricing-price-amount{font-size:1.6rem;line-height:1;letter-spacing:-.02em}.pricing-price-custom{font-size:1.45rem;letter-spacing:-.015em}.pricing-price-period{font-size:.8rem;line-height:1;color:var(--site-faint)}@keyframes price-roll{0%{opacity:0;transform:translateY(.14em)}to{opacity:1;transform:none}}.pricing-tagline{max-width:16.5rem;margin:7px 0 0;font-size:.92rem;line-height:1.55;color:var(--site-soft);min-height:2.5em}.pricing-includes{width:100%;box-sizing:border-box;margin:0 0 10px;font-size:.8rem;color:var(--site-faint)}.pricing-feats{width:100%;max-width:16.5rem;list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;font-size:.92rem;color:var(--site-ink);flex:1 1}.pricing-feats li{display:grid;grid-template-columns:14px minmax(0,1fr);grid-gap:8px;gap:8px;align-items:start}.pricing-check{width:15px;height:15px;margin-top:1px;fill:none;stroke:currentColor;stroke-width:1.35;stroke-linecap:round;stroke-linejoin:round}.pricing-action{position:relative;display:inline-block;align-self:flex-start;margin:12px 0 18px;font-size:.9rem;color:var(--site-ink);text-decoration:none;cursor:pointer}.pricing-action:after{content:"";position:absolute;left:0;right:0;bottom:-3px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .2s var(--ease)}.pricing-action:hover:after{transform:scaleX(1)}.pricing-current{align-self:flex-start;margin:12px 0 18px;font-size:.9rem;color:var(--site-faint)}.pricing-card-soon .pricing-feats,.pricing-card-soon .pricing-tagline{color:var(--site-soft)}.pricing-student-access{position:relative;align-self:flex-start;margin-top:18px;font-size:.9rem}.pricing-student-toggle{position:relative;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;border-radius:0;padding:0;background:none;font:inherit;font-weight:300;color:var(--site-faint);cursor:pointer}.pricing-student-toggle:after{content:"";position:absolute;left:0;right:0;bottom:-3px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .2s var(--ease)}.pricing-student-toggle:focus-visible:after,.pricing-student-toggle:hover:after{transform:scaleX(1)}.pricing-student-detail{display:flex;flex-direction:column;align-items:flex-start;gap:10px;margin-top:12px;animation:student-detail-in .28s var(--ease) both}@media (min-width:761px){.pricing-student-detail{position:absolute;top:100%;left:0;width:max-content;max-width:16.5rem}}@keyframes student-detail-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.pricing-student-line{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 12px;margin:0}.pricing-student-promise{margin:0;color:var(--site-soft)}.pricing-student-price{display:inline-flex;align-items:baseline;gap:4px;color:var(--site-ink);animation:price-roll .22s var(--ease) both}.pricing-student-amount{font-size:1rem}.pricing-student-period{color:var(--site-faint);font-size:.78rem}.pricing-student-detail .pricing-action,.pricing-student-detail .pricing-current{margin:4px 0 0}@media (prefers-reduced-motion:reduce){.pricing-price,.pricing-student-detail,.pricing-student-price{animation:none}.pricing-grid .pricing-card:hover{transform:none}}.student-verify{max-width:40rem;width:100%;animation:doc-in var(--dur-reveal) var(--ease) both}.student-verify-title{font-size:clamp(1.5rem,3vw,2rem);font-weight:300;letter-spacing:-.01em;margin:0 0 14px}.student-verify-body{margin:0 0 clamp(22px,4vh,34px);font-size:.95rem;line-height:1.6;color:var(--site-soft)}.student-verify-form{display:flex;flex-direction:column;gap:22px}.student-verify-field{display:flex;flex-direction:column;gap:6px;font-size:.85rem}.student-verify-field span{color:var(--site-faint)}.student-verify-field input{border:0;border-bottom:1px solid var(--site-hair);border-radius:0;background:transparent;padding:4px 0 7px;font:inherit;font-size:.95rem;color:var(--site-ink);outline:none;transition:border-color var(--dur-micro) var(--ease)}.student-verify-field input:focus{border-bottom-color:var(--site-ink)}.student-verify-error{margin:0;font-size:.85rem;color:#b91c1c}.student-verify-send{position:relative;align-self:flex-start;font-size:.95rem;color:var(--site-ink);cursor:pointer}.student-verify-send.busy{color:var(--site-faint);cursor:default}.student-verify-send:after{content:"";position:absolute;left:0;right:0;bottom:-3px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .18s ease}.student-verify-send:hover:after{transform:scaleX(1)}.admin-reviews{max-width:52rem;width:100%;animation:doc-in var(--dur-reveal) var(--ease) both}.admin-reviews-title{font-size:clamp(1.5rem,3vw,2rem);font-weight:300;letter-spacing:-.01em;margin:0 0 clamp(20px,4vh,32px)}.admin-reviews-empty{font-size:.9rem;color:var(--site-faint)}.admin-reviews-list{border-top:1px solid var(--site-hair)}.admin-review-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 0;border-bottom:1px solid var(--site-hair)}.admin-review-who{display:flex;flex-direction:column;gap:3px;min-width:0}.admin-review-email{font-size:.92rem;color:var(--site-ink);overflow-wrap:anywhere}.admin-review-meta{font-size:.8rem;color:var(--site-faint)}.admin-review-actions{display:flex;gap:16px;flex-shrink:0}.admin-review-actions .pricing-action{margin-top:0}.admin-review-reject{color:#b91c1c}