@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400 500;font-display:swap;src:url(/fonts/ibm-plex-sans-var.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Newsreader;font-style:normal;font-weight:400 500;font-display:swap;src:url(/fonts/newsreader-var.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-mono-400.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/ibm-plex-mono-500.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--paper:#fbf9f5;--paper-2:#f4f0e9;--paper-3:#ede7dd;--ink:#16181a;--ink-2:#2b2f33;--graphite:#55595e;--rule:#dfd8cc;--rule-strong:#c9c0b1;--brass:#82591f;--brass-bright:#c8a05a;--brass-wash:#f0e7d6;--slate:#1c2226;--slate-2:#2a3237;--focus:#2f6f8f;--font-display:"Newsreader", "Iowan Old Style", "Palatino Linotype", "Source Serif 4", Georgia, serif;--font-body:"IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--step--2:clamp(.72rem, .7rem + .1vw, .78rem);--step--1:clamp(.84rem, .81rem + .14vw, .92rem);--step-0:clamp(1rem, .96rem + .18vw, 1.09rem);--step-1:clamp(1.19rem, 1.12rem + .32vw, 1.38rem);--step-2:clamp(1.41rem, 1.3rem + .53vw, 1.74rem);--step-3:clamp(1.68rem, 1.5rem + .83vw, 2.2rem);--step-4:clamp(2rem, 1.72rem + 1.25vw, 2.78rem);--step-5:clamp(2.37rem, 1.95rem + 1.86vw, 3.5rem);--step-6:clamp(2.82rem, 2.19rem + 2.75vw, 4.42rem);--leading-tight:1.06;--leading-snug:1.22;--leading-normal:1.55;--leading-relaxed:1.68;--tracking-tight:-.021em;--tracking-snug:-.012em;--tracking-normal:0;--tracking-label:.1em;--space-3xs:.25rem;--space-2xs:.5rem;--space-xs:.75rem;--space-s:1rem;--space-m:1.5rem;--space-l:2rem;--space-xl:3rem;--space-2xl:4rem;--space-3xl:6rem;--section-y:clamp(2.5rem, 1.75rem + 2.6vw, 3.75rem);--measure:66ch;--measure-tight:46ch;--width-page:74rem;--width-text:42rem;--gutter:clamp(1.25rem, .9rem + 1.6vw, 2.5rem);--flag-h:1.6rem;--radius-sm:2px;--radius:3px;--radius-lg:4px;--shadow-sm:0 1px 2px #16181a0d;--shadow:0 2px 8px #16181a0f, 0 1px 2px #16181a0a;--transition:.16s cubic-bezier(.2, 0, .2, 1)}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}body{background:var(--paper);color:var(--ink-2);font-family:var(--font-body);font-size:var(--step-0);line-height:var(--leading-normal);font-feature-settings:"kern" 1, "liga" 1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;margin:0}h1,h2,h3,h4{font-family:var(--font-display);color:var(--ink);font-weight:400;line-height:var(--leading-tight);letter-spacing:var(--tracking-tight);text-wrap:balance;margin:0}p{text-wrap:pretty;margin:0}a{color:inherit;text-underline-offset:.18em;text-decoration-thickness:1px}img,svg,video{max-width:100%;height:auto;display:block}ul,ol{margin:0;padding:0}:focus-visible{outline:2px solid var(--focus);outline-offset:3px;border-radius:var(--radius-sm)}:focus:not(:focus-visible){outline:none}::selection{background:var(--brass-wash);color:var(--ink)}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{top:0;left:var(--gutter);z-index:100;padding:var(--space-2xs) var(--space-s);background:var(--ink);color:var(--paper);font-size:var(--step--1);transition:transform var(--transition);text-decoration:none;position:absolute;transform:translateY(-120%)}.skip-link:focus{transform:translateY(0)}.shell{width:100%;max-width:var(--width-page);padding-inline:var(--gutter);margin-inline:auto}.section{padding-block:var(--section-y)}.section--dark,.section--feature{background:var(--slate);color:#dcd8d1}.section--dark h1,.section--dark h2,.section--dark h3,.section--feature h1,.section--feature h2,.section--feature h3{color:var(--paper)}.section--tint{background:var(--paper-2)}.section--ruled{border-top:1px solid var(--rule)}.num{font-family:var(--font-mono);font-feature-settings:"tnum" 1, "zero" 1;font-variant-numeric:tabular-nums slashed-zero;letter-spacing:-.02em}.label{font-family:var(--font-body);font-size:var(--step--2);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--graphite);margin:0;font-weight:500}.section--dark .label,.section--feature .label{color:var(--brass-bright)}.lede{font-size:var(--step-1);line-height:var(--leading-relaxed);color:var(--ink-2);max-width:var(--measure)}.section--dark .lede,.section--feature .lede{color:#c8c4bd}.prose{max-width:var(--measure)}.prose>*+*{margin-top:var(--space-s)}.legal-updated{margin-top:var(--space-s);font-size:var(--step--1);color:var(--graphite)}.legal{max-width:40rem}.legal__section+.legal__section{margin-top:var(--space-xl)}.legal__section h2{font-size:var(--step-2);line-height:var(--leading-snug);margin-bottom:var(--space-s)}.legal__number{color:var(--brass);margin-right:var(--space-2xs)}@media (width>=60rem){.legal__number{margin-left:-2.5rem;margin-right:0;position:absolute}.legal__section h2{position:relative}}.legal__section p,.legal__list li{color:var(--ink-2);line-height:var(--leading-relaxed)}.legal__section p+p{margin-top:var(--space-s)}.legal__list{margin-top:var(--space-s);padding-left:var(--space-m)}.legal__list li+li{margin-top:var(--space-2xs)}.legal__list li::marker{color:var(--brass)}.btn{text-align:center;border-radius:var(--radius);font-family:var(--font-body);font-size:var(--step-0);cursor:pointer;transition:background var(--transition), color var(--transition), border-color var(--transition), transform var(--transition);border:1px solid #0000;padding:.82em 1.5em;font-weight:500;line-height:1.2;text-decoration:none;display:inline-block}.btn:active{transform:translateY(1px)}.btn--primary{background:var(--ink);color:var(--paper);border-color:var(--ink)}.btn--primary:hover{background:#000;border-color:#000}.btn--secondary{color:var(--ink);border-color:var(--rule-strong);background:0 0}.btn--secondary:hover{border-color:var(--ink);background:var(--paper-2)}.section--dark .btn--primary,.section--feature .btn--primary{background:var(--paper);color:var(--ink);border-color:var(--paper)}.section--dark .btn--primary:hover,.section--feature .btn--primary:hover{background:#fff;border-color:#fff}.section--dark .btn--secondary,.section--feature .btn--secondary{color:var(--paper);border-color:#fbf9f573}.section--dark .btn--secondary:hover,.section--feature .btn--secondary:hover{border-color:var(--paper);background:#fbf9f50f}.btn-row{gap:var(--space-xs);flex-wrap:wrap;align-items:center;display:flex}.link-brass{color:var(--ink);border-bottom:1px solid var(--brass);transition:border-color var(--transition), border-width var(--transition);padding-bottom:1px;font-weight:500;text-decoration:none}.link-brass:hover{border-bottom-width:2px}.link-inline{border:0;border-bottom:1px solid var(--brass);cursor:pointer;font:inherit;color:var(--ink);transition:border-width var(--transition);background:0 0;padding:0 0 1px;font-weight:500}.link-inline:hover{border-bottom-width:2px}.link-inline:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.section--dark .link-brass,.section--feature .link-brass{color:var(--paper);border-color:var(--brass-bright)}.site-header{border-bottom:1px solid var(--rule-strong);background:var(--paper-2);position:relative}.site-header__inner{justify-content:space-between;align-items:center;gap:var(--space-m);min-height:4.5rem;padding-block:var(--space-xs);display:flex}.wordmark{color:var(--ink);text-decoration:none;display:inline-block}.wordmark__mark{width:clamp(9.5rem,6.5rem + 8vw,12.5rem);height:auto;display:block}.wordmark span{font-family:var(--font-body);font-size:var(--step--2);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--graphite);margin-top:.5em;font-weight:400;display:block}.site-nav{display:none}.site-nav>ul{align-items:center;gap:var(--space-m);list-style:none;display:flex}.site-nav a{font-size:var(--step--1);color:var(--ink-2);padding-block:var(--space-2xs);transition:border-color var(--transition), color var(--transition);border-bottom:1px solid #0000;font-weight:500;text-decoration:none;display:inline-block}.site-nav a:hover{color:var(--ink);border-bottom-color:var(--brass)}.site-nav .subjects{position:relative}.site-nav .subjects>summary{cursor:pointer;font-size:var(--step--1);color:var(--ink-2);padding-block:var(--space-2xs);transition:border-color var(--transition), color var(--transition);border-bottom:1px solid #0000;font-weight:500;list-style:none;display:inline-block}.site-nav .subjects>summary::-webkit-details-marker{display:none}.site-nav .subjects>summary::marker{content:""}.site-nav .subjects>summary:hover,.site-nav .subjects[open]>summary{color:var(--ink)}.site-nav .subjects>summary:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.subjects__panel{top:calc(100% + var(--space-2xs));z-index:30;gap:var(--space-m);padding:var(--space-m);background:var(--paper);border:1px solid var(--rule-strong);border-radius:var(--radius);box-shadow:var(--shadow);min-width:15rem;display:grid;position:absolute;left:50%;transform:translate(-50%)}.subjects__heading{font-size:var(--step--2);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--brass);margin-bottom:var(--space-2xs);font-weight:500}.subjects__panel ul{list-style:none}.subjects__panel a{padding-block:var(--space-3xs);font-size:var(--step--1);color:var(--ink-2);white-space:nowrap;transition:color var(--transition);text-decoration:none;display:block}.subjects__panel a:hover{color:var(--brass)}.subjects__panel a[aria-current=page]{color:var(--ink);font-weight:500}.nav-menu__group{padding-block:var(--space-s)}.nav-menu__group>ul{list-style:none}.nav-menu__heading{font-size:var(--step--2);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--graphite);font-weight:500}.nav-menu__group>ul a{padding-left:var(--space-s)}.site-nav a[aria-current=page]:not([href=\/]),.site-nav .subjects>summary[aria-current=page]{color:var(--ink);border-bottom-color:var(--brass)}.nav-menu a[aria-current=page]:not([href=\/]){color:var(--ink);box-shadow:inset 2px 0 0 var(--brass);padding-left:var(--space-s)}.site-header .btn{font-size:var(--step--1);white-space:nowrap;padding:.6em 1.1em}.site-header__actions{align-items:center;gap:var(--space-s);display:flex}.nav-toggle>summary{justify-content:flex-end;align-items:center;gap:var(--space-2xs);cursor:pointer;min-height:2.75rem;font-family:var(--font-body);font-size:var(--step--2);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--graphite);transition:color var(--transition);padding:.55em .2em;font-weight:500;list-style:none;display:flex}.nav-toggle>summary::-webkit-details-marker{display:none}.nav-toggle>summary::marker{content:""}.nav-toggle>summary:hover{color:var(--ink)}.nav-toggle>summary:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.nav-toggle__bars{flex:none;width:1.1rem;height:.75rem;position:relative}.nav-toggle__bars:before,.nav-toggle__bars:after{content:"";background:var(--ink);height:1.5px;transition:transform var(--transition), top var(--transition);position:absolute;left:0;right:0}.nav-toggle__bars:before{top:.0625rem}.nav-toggle__bars:after{top:.625rem}.nav-toggle[open] .nav-toggle__bars:before,.nav-toggle[open] .nav-toggle__bars:after{top:.34375rem}.nav-toggle[open] .nav-toggle__bars:before{transform:rotate(45deg)}.nav-toggle[open] .nav-toggle__bars:after{transform:rotate(-45deg)}.nav-menu{z-index:20;background:var(--paper-2);border-bottom:1px solid var(--rule-strong);box-shadow:var(--shadow);position:absolute;top:100%;left:0;right:0}.nav-menu ul{padding:var(--space-2xs) var(--gutter) var(--space-s);max-width:var(--width-page);margin-inline:auto;list-style:none}.nav-menu li+li{border-top:1px solid var(--rule)}.nav-menu a{padding-block:var(--space-s);font-size:var(--step-0);color:var(--ink-2);transition:color var(--transition);font-weight:500;text-decoration:none;display:block}.nav-menu a:hover{color:var(--brass)}@media (width<=29.999rem){.nav-toggle__label{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}}@media (width>=60rem){.site-nav{display:block}.nav-toggle{display:none}}.hero{padding-block:clamp(2rem, 1.4rem + 2.6vw, 3.5rem) var(--section-y)}.hero__grid{gap:var(--space-xl);align-items:start;display:grid}.hero h1{letter-spacing:var(--tracking-tight);margin-block:var(--space-s) 0;text-wrap:pretty;font-size:clamp(2.3rem,1.55rem + 3.2vw,4.42rem)}.hero h1 .num{font-size:.94em}.hero__lede{font-size:var(--step-1);line-height:var(--leading-relaxed);color:var(--ink-2);max-width:34ch;margin-top:var(--space-m)}.hero__cta{margin-top:var(--space-l)}.hero__note{margin-top:var(--space-s);font-size:var(--step--1);color:var(--graphite)}.hero__portrait{justify-self:center;max-width:26rem;margin:0}.hero__portrait img{border-radius:var(--radius-lg);width:100%;height:auto;box-shadow:0 0 0 1px var(--rule), 0 12px 28px #16181a1a}@media (width>=56rem){.hero__portrait{justify-self:stretch;max-width:none}}.photo-slot{aspect-ratio:4/5;border:1px dashed var(--rule-strong);background:repeating-linear-gradient(135deg, transparent 0 11px, #8a62240d 11px 12px), var(--paper-2);border-radius:var(--radius);text-align:center;padding:var(--space-m);place-content:center;gap:var(--space-2xs);display:grid;position:relative}.photo-slot__tag{font-family:var(--font-mono);font-size:var(--step--2);letter-spacing:.06em;text-transform:uppercase;color:var(--brass)}.photo-slot__desc{font-size:var(--step--1);color:var(--graphite);max-width:26ch;margin:0 auto}@media (width>=56rem){.hero__grid{gap:var(--space-3xl);grid-template-columns:1.35fr .9fr;align-items:center}}.creds{border-block:1px solid var(--rule);background:var(--paper-2)}.creds__list{grid-template-columns:repeat(2,1fr);list-style:none;display:grid}.creds__item{padding:var(--space-m) var(--space-s);border-bottom:1px solid var(--rule)}.creds__item:nth-child(odd){border-right:1px solid var(--rule)}.creds__item:nth-last-child(-n+2){border-bottom:none}.creds__fig{font-family:var(--font-mono);font-variant-numeric:tabular-nums slashed-zero;font-size:var(--step-3);color:var(--ink);letter-spacing:-.03em;font-weight:500;line-height:1;display:block}.creds__desc{margin-top:var(--space-2xs);font-size:var(--step--1);color:var(--graphite);line-height:var(--leading-snug);display:block}@media (width>=48rem){.creds__list{grid-template-columns:repeat(4,1fr)}.creds__item{border-bottom:none;border-right:1px solid var(--rule);padding:var(--space-l) var(--space-m)}.creds__item:first-child{padding-left:0}.creds__item:last-child{border-right:none}}.section-head{max-width:var(--measure);margin-bottom:var(--space-xl)}.section-outro{margin-top:var(--space-l)}.section-head h2{font-size:var(--step-4);margin-top:var(--space-xs)}.section-head p{margin-top:var(--space-s);color:var(--graphite)}.section--dark .section-head p,.section--feature .section-head p{color:#aba69e}.subject-grid{background:var(--rule);border:1px solid var(--rule);border-radius:var(--radius);gap:1px;display:grid;overflow:hidden}@media (width>=40rem){.subject-grid{grid-template-columns:repeat(2,1fr)}}@media (width>=64rem){.subject-grid{grid-template-columns:repeat(3,1fr)}}.subject{gap:var(--space-2xs);padding:var(--space-m);background:var(--paper);transition:background var(--transition);flex-direction:column;text-decoration:none;display:flex}.subject:hover{background:var(--paper-2)}.subject__code{font-family:var(--font-mono);font-size:var(--step--2);letter-spacing:.04em;color:var(--brass);text-transform:uppercase}.subject__name{font-family:var(--font-display);font-size:var(--step-2);color:var(--ink);line-height:var(--leading-snug);letter-spacing:var(--tracking-snug);text-wrap:balance}.subject__meta{font-size:var(--step--1);color:var(--graphite);padding-top:var(--space-xs);margin-top:auto}.subject__arrow{font-size:var(--step--1);color:var(--ink);border-bottom:1px solid var(--brass);align-self:flex-start;padding-bottom:1px;font-weight:500}.price-grid{gap:var(--space-m);display:grid}@media (width>=52rem){.price-grid{grid-template-columns:repeat(3,1fr)}}.price-card{padding:var(--space-l);background:var(--paper);border:1px solid var(--rule);border-radius:var(--radius);flex-direction:column;display:flex}.price-card--featured{border-color:var(--ink);box-shadow:var(--shadow)}.price-card__name{font-family:var(--font-display);font-size:var(--step-2);color:var(--ink);letter-spacing:var(--tracking-snug)}.price-card__flag{height:var(--flag-h);margin-bottom:var(--space-s);background:var(--brass-wash);color:var(--brass);font-size:var(--step--2);letter-spacing:var(--tracking-label);text-transform:uppercase;border-radius:999px;align-self:flex-start;align-items:center;padding-inline:.7em;font-weight:500;display:inline-flex}@media (width>=52rem){.price-card:not(.price-card--featured) .price-card__name:before{content:"";height:var(--flag-h);margin-bottom:var(--space-s);display:block}}.price-card__amount{margin-top:var(--space-m);align-items:baseline;gap:.3em;display:flex}.price-card__figure{font-family:var(--font-mono);font-variant-numeric:tabular-nums slashed-zero;font-size:var(--step-5);color:var(--ink);letter-spacing:-.045em;font-weight:500;line-height:1}.price-card__unit{font-size:var(--step--1);color:var(--graphite)}.price-card__sub{margin-top:var(--space-2xs);font-size:var(--step--1);color:var(--graphite)}.price-card__sub .num{color:var(--ink-2);font-weight:500}.price-card__list{margin:var(--space-m) 0 var(--space-l);padding-top:var(--space-m);border-top:1px solid var(--rule);gap:var(--space-2xs);font-size:var(--step--1);color:var(--ink-2);list-style:none;display:grid}.price-card__list li{gap:var(--space-2xs);line-height:var(--leading-snug);grid-template-columns:1.1em 1fr;display:grid}.price-card__list li:before{content:"—";color:var(--brass);font-family:var(--font-mono)}.price-card .btn{width:100%;margin-top:auto}.price-notes{margin-top:var(--space-l);padding-top:var(--space-m);border-top:1px solid var(--rule);font-size:var(--step--1);color:var(--graphite);max-width:var(--measure)}.price-policies{margin-top:var(--space-2xs);font-size:var(--step--1);color:var(--graphite)}.price-policies a{color:var(--graphite);text-decoration-color:var(--rule-strong);text-underline-offset:.2em}.price-policies a:hover{color:var(--ink);text-decoration-color:var(--brass)}.review-grid{gap:var(--space-m);display:grid}@media (width>=46rem){.review-grid{grid-template-columns:repeat(2,1fr)}}@media (width>=70rem){.review-grid{grid-template-columns:repeat(3,1fr)}}.review{--review-bg:var(--slate-2);--review-border:#fbf9f514;--review-quote:var(--paper);--review-name:#dcd8d1;--review-meta:#a29d95;--review-accent:var(--brass-bright);--review-rule:#fbf9f51a;--review-star:var(--brass-bright);padding:var(--space-l);background:var(--review-bg);border-radius:var(--radius);border:1px solid var(--review-border);transition:background var(--transition), border-color var(--transition), transform var(--transition), box-shadow var(--transition);flex-direction:column;display:flex}.review__outcome{font-family:var(--font-mono);font-variant-numeric:tabular-nums slashed-zero;font-size:var(--step--1);letter-spacing:.01em;color:var(--review-accent);margin-bottom:var(--space-s);padding-bottom:var(--space-s);border-bottom:1px solid var(--review-rule);font-weight:500}.review blockquote{font-family:var(--font-display);font-size:var(--step-1);line-height:var(--leading-snug);letter-spacing:var(--tracking-snug);color:var(--review-quote);margin:0}.review__attr{margin-top:var(--space-m);padding-top:var(--space-s);font-size:var(--step--1)}.review__name{color:var(--review-name);font-weight:500}.review__meta{color:var(--review-meta);margin-top:2px;display:block}.review__meta .num{letter-spacing:0}.review--paper,.review.is-active{--review-bg:var(--paper);--review-border:var(--rule);--review-quote:var(--ink);--review-name:var(--ink);--review-meta:var(--graphite);--review-accent:var(--brass);--review-rule:var(--rule);--review-star:var(--brass)}.review-grid .review:hover{transform:translateY(-3px);box-shadow:0 12px 30px #00000059}.review-list .review:hover,.review-list .review:focus-within{border-color:var(--ink);box-shadow:var(--shadow)}.review-list{column-gap:var(--space-m);list-style:none}@media (width>=52rem){.review-list{columns:2}}.review-list>li{-webkit-column-break-inside:avoid;break-inside:avoid;margin-bottom:var(--space-s)}.review--full blockquote{font-size:var(--step-0);line-height:var(--leading-relaxed);letter-spacing:var(--tracking-normal)}.review__head{justify-content:space-between;align-items:baseline;gap:var(--space-2xs);margin-bottom:var(--space-s);padding-bottom:var(--space-s);border-bottom:1px solid var(--rule);flex-wrap:wrap;display:flex}.review__head .review__outcome{border-bottom:none;margin:0;padding:0}.stars{flex-shrink:0;gap:.12em;line-height:1;display:inline-flex}.stars__star{width:1em;height:1em;fill:var(--rule-strong)}.stars__star.is-filled{fill:var(--brass)}.stars--sm{font-size:var(--step--1)}.stars--lg{font-size:var(--step-1)}.section--dark .stars__star,.section--feature .stars__star{fill:#fbf9f540}.section--dark .stars__star.is-filled,.section--feature .stars__star.is-filled{fill:var(--brass-bright)}.review .stars__star.is-filled{fill:var(--review-star)}.page-head{padding-bottom:var(--space-l)}.page-head h1{font-size:var(--step-5);margin-top:var(--space-xs);max-width:18ch}.page-head .lede{margin-top:var(--space-m)}.rating-summary{align-items:center;gap:var(--space-m);margin-top:var(--space-l);padding:var(--space-s) var(--space-m);background:var(--paper-2);border:1px solid var(--rule);border-radius:var(--radius);flex-wrap:wrap;width:fit-content;max-width:100%;display:flex}.rating-summary__score{align-items:baseline;gap:var(--space-2xs);display:flex}.rating-summary__score .num{font-size:var(--step-4);color:var(--ink);letter-spacing:-.04em;font-weight:500;line-height:1}.rating-summary__meta{gap:var(--space-2xs);display:grid}.rating-summary__meta p{font-size:var(--step--1);color:var(--graphite);max-width:34ch}.cal-durations__label{font-size:var(--step--1);color:var(--graphite);margin-bottom:var(--space-2xs)}.cal-durations__switch{margin-bottom:var(--space-m);background:var(--paper);border:1px solid var(--rule);border-radius:var(--radius);padding:3px;display:inline-flex}.cal-durations__option{border-radius:var(--radius-sm);cursor:pointer;font-family:var(--font-body);font-size:var(--step--1);color:var(--graphite);transition:background var(--transition), color var(--transition);background:0 0;border:0;padding:.55em 1.1em;font-weight:500}.cal-durations__option:hover{color:var(--ink)}.cal-durations__option[aria-selected=true]{background:var(--ink);color:var(--paper)}.cal-durations__option:focus-visible{outline:2px solid var(--focus);outline-offset:2px}@media (width<=28rem){.cal-durations__switch{flex-wrap:wrap;display:flex}.cal-durations__option{flex:1 0 auto}}.section[id]{scroll-margin-top:var(--space-l)}.cal-embed{width:100%;min-height:46rem}@media (width>=40rem){.cal-embed{min-height:64rem}}@media (width>=64rem){.cal-embed{min-height:50rem}}.price-card__action{margin-top:auto}.price-card__action .btn{width:100%}.cal-fallback{margin-top:var(--space-m);font-size:var(--step--1);color:var(--graphite);text-align:center}.booking-facts{gap:var(--space-m);margin:var(--space-l) 0 0;padding-top:var(--space-m);border-top:1px solid var(--rule);display:grid}@media (width>=40rem){.booking-facts{grid-template-columns:repeat(2,1fr)}}@media (width>=64rem){.booking-facts{grid-template-columns:repeat(4,1fr)}}.booking-facts dt{font-size:var(--step--2);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--graphite);font-weight:500}.booking-facts dd{margin:var(--space-3xs) 0 0;font-size:var(--step-0);color:var(--ink);line-height:var(--leading-snug)}.notice{max-width:var(--measure);padding:var(--space-l);background:var(--paper);border:1px solid var(--rule-strong);border-left:3px solid var(--brass);border-radius:var(--radius)}.notice__tag{font-size:var(--step--2);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--brass);margin-bottom:var(--space-2xs);font-weight:500}.notice p{color:var(--ink-2)}.notice__list{margin:var(--space-s) 0;padding-left:var(--space-m);font-size:var(--step--1);color:var(--ink-2);gap:var(--space-3xs);display:grid}.notice__todo{margin-top:var(--space-s);font-size:var(--step--1)}.notice code{font-family:var(--font-mono);background:var(--paper-2);border-radius:var(--radius-sm);padding:.1em .35em;font-size:.92em}.about-intro{gap:var(--space-l);padding-bottom:var(--section-y);display:grid}@media (width>=56rem){.about-intro{gap:var(--space-3xl);grid-template-columns:22rem 1fr;align-items:start}}.about-portrait{max-width:22rem;margin:0}.about-portrait img{border-radius:var(--radius-lg);width:100%;height:auto;box-shadow:0 0 0 1px var(--rule), 0 12px 28px #16181a1a}.about-quals h2{font-family:var(--font-body);font-size:var(--step--2);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--graphite);margin-bottom:var(--space-m);font-weight:500}.qual-list{gap:var(--space-m);margin:0;display:grid}.qual-list>div{gap:var(--space-3xs);padding-bottom:var(--space-m);border-bottom:1px solid var(--rule);display:grid}.qual-list>div:last-child{border-bottom:none;padding-bottom:0}.qual-list dt{font-size:var(--step--2);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--brass);margin-bottom:var(--space-2xs)}.qual-list dd{font-size:var(--step-0);color:var(--ink-2);line-height:var(--leading-snug);margin:0}.qual-list dd+dd{margin-top:var(--space-2xs)}.about-story{gap:var(--space-xl);display:grid}@media (width>=60rem){.about-story{gap:var(--space-3xl);grid-template-columns:1fr 18rem;align-items:start}}.about-story .prose>h2{font-size:var(--step-3);margin-top:var(--space-xl)}.about-story .prose>h2:first-child{margin-top:0}.about-story .prose>h2+p{margin-top:var(--space-s)}.about-aside{padding:var(--space-l);background:var(--paper-2);border:1px solid var(--rule);border-radius:var(--radius)}@media (width>=60rem){.about-aside{top:var(--space-l);position:sticky}}.about-facts{gap:var(--space-2xs);margin:var(--space-s) 0 var(--space-l);font-size:var(--step--1);color:var(--ink-2);list-style:none;display:grid}.about-facts li{gap:var(--space-2xs);line-height:var(--leading-snug);grid-template-columns:1.1em 1fr;display:grid}.about-facts li:before{content:"—";color:var(--brass);font-family:var(--font-mono)}.about-aside .btn{width:100%}.faq{gap:var(--space-2xl);display:grid}.faq-group__title{font-family:var(--font-body);font-size:var(--step--2);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--graphite);padding-bottom:var(--space-xs);margin-bottom:var(--space-s);border-bottom:1px solid var(--rule-strong);font-weight:500}.faq-list{display:grid}.faq-item{border-bottom:1px solid var(--rule)}.faq-item summary{justify-content:space-between;align-items:baseline;gap:var(--space-m);padding-block:var(--space-m);cursor:pointer;transition:color var(--transition);list-style:none;display:flex}.faq-item summary::-webkit-details-marker{display:none}.faq-item summary::marker{content:""}.faq-item summary:hover .faq-item__q{color:var(--brass)}.faq-item summary:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.faq-item__q{font-family:var(--font-display);font-size:var(--step-1);line-height:var(--leading-snug);letter-spacing:var(--tracking-snug);color:var(--ink);text-wrap:pretty}.faq-item__marker{flex:none;width:.85rem;height:.85rem;margin-top:.35em;position:relative}.faq-item__marker:before,.faq-item__marker:after{content:"";background:var(--brass);height:1px;transition:transform var(--transition);position:absolute;inset:50% 0 auto}.faq-item__marker:after{transform:rotate(90deg)}.faq-item[open] .faq-item__marker:after{transform:rotate(0)}.faq-item__a{padding-bottom:var(--space-m);max-width:var(--measure)}.faq-item__a p{color:var(--ink-2);line-height:var(--leading-relaxed)}@media (prefers-reduced-motion:no-preference){.faq-item[open] .faq-item__a{animation:.18s cubic-bezier(.2,0,.2,1) faq-open}}@keyframes faq-open{0%{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:none}}.post-list{gap:0;list-style:none;display:grid}.post-card{padding-block:var(--space-l);border-bottom:1px solid var(--rule)}.post-list>li:first-child .post-card{padding-top:0}.post-list>li:last-child .post-card{border-bottom:none;padding-bottom:0}.post-card__meta{align-items:baseline;gap:var(--space-2xs) var(--space-s);font-size:var(--step--2);color:var(--graphite);flex-wrap:wrap;display:flex}.post-card__topic{letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--brass);font-weight:500}.post-card__title{font-size:var(--step-3);margin-top:var(--space-2xs);letter-spacing:var(--tracking-snug);max-width:26ch}.post-card__title a{color:var(--ink);transition:color var(--transition);text-decoration:none}.post-card__title a:hover{color:var(--brass)}.post-card__desc{margin-top:var(--space-2xs);color:var(--graphite);max-width:var(--measure)}.post-card__more{margin-top:var(--space-s);font-size:var(--step--1);color:var(--ink);border-bottom:1px solid var(--brass);padding-bottom:1px;font-weight:500;display:inline-block}.post-head h1{max-width:20ch}.post-head .post-card__meta{margin-bottom:var(--space-xs)}.post-body{padding-bottom:var(--section-y)}.prose--article{max-width:38rem}.prose--article>*+*{margin-top:var(--space-m)}.prose--article h2{font-size:var(--step-3);margin-top:var(--space-xl);letter-spacing:var(--tracking-snug)}.prose--article h3{font-size:var(--step-2);margin-top:var(--space-l);letter-spacing:var(--tracking-snug)}.prose--article h2+*,.prose--article h3+*{margin-top:var(--space-s)}.prose--article p{line-height:var(--leading-relaxed)}.prose--article a{color:var(--ink);text-decoration-color:var(--brass)}.prose--article ul,.prose--article ol{gap:var(--space-2xs);padding-left:1.15em;display:grid}.prose--article li{line-height:var(--leading-relaxed)}.prose--article li::marker{color:var(--brass)}.prose--article blockquote{margin:var(--space-l) 0;padding-left:var(--space-m);border-left:2px solid var(--brass);font-family:var(--font-display);font-size:var(--step-1);line-height:var(--leading-snug);color:var(--ink)}.prose--article blockquote p{line-height:inherit}.prose--article code{font-family:var(--font-mono);background:var(--paper-2);border:1px solid var(--rule);border-radius:var(--radius-sm);padding:.1em .35em;font-size:.9em}.prose--article pre{padding:var(--space-m);background:var(--slate);border-radius:var(--radius);overflow-x:auto}.prose--article pre code{color:var(--paper);background:0 0;border:none;padding:0}.steps{gap:var(--space-l);counter-reset:step;list-style:none;display:grid}@media (width>=52rem){.steps{gap:var(--space-xl);grid-template-columns:repeat(3,1fr)}}.step{counter-increment:step}.step:before{content:counter(step, decimal-leading-zero);font-family:var(--font-mono);font-variant-numeric:tabular-nums slashed-zero;font-size:var(--step--1);color:var(--brass);padding-bottom:var(--space-xs);margin-bottom:var(--space-xs);border-bottom:1px solid var(--rule);display:block}.step h3{font-size:var(--step-2);letter-spacing:var(--tracking-snug)}.step p{margin-top:var(--space-2xs);font-size:var(--step-0);color:var(--graphite)}.cta-band{text-align:left}.cta-band h2{font-size:var(--step-5);max-width:18ch;margin-top:var(--space-xs)}.cta-band .lede{margin-top:var(--space-m);max-width:48ch}.cta-band .btn-row{margin-top:var(--space-l)}.course-head{padding-bottom:var(--space-l)}.course-head h1{font-size:var(--step-5);margin-top:var(--space-xs)}.course-head .lede{margin-top:var(--space-m);max-width:52ch}.whiteboard{margin:var(--space-xl) 0 0}.whiteboard img{border:1px solid var(--rule);border-radius:var(--radius);width:100%;height:auto;display:block}.whiteboard__pending{aspect-ratio:16/9;padding:var(--space-l);text-align:center;background:var(--paper-2);border:1px dashed var(--rule-strong);border-radius:var(--radius);place-items:center;display:grid}.whiteboard figcaption{margin-top:var(--space-s);font-size:var(--step--1);color:var(--graphite);max-width:var(--measure)}.hard-list{gap:var(--space-l);counter-reset:hard;list-style:none;display:grid}@media (width>=46rem){.hard-list{grid-template-columns:repeat(2,1fr)}}@media (width>=72rem){.hard-list{grid-template-columns:repeat(3,1fr)}}.hard{padding-top:var(--space-s);border-top:1px solid var(--rule-strong)}.hard__topic{font-family:var(--font-body);font-size:var(--step--2);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--brass);font-weight:500}.hard__name{margin-top:var(--space-2xs);font-size:var(--step-2);line-height:var(--leading-snug);letter-spacing:var(--tracking-snug)}.hard__why{margin-top:var(--space-2xs);font-size:var(--step--1);color:var(--ink-2);line-height:var(--leading-relaxed)}.pull-quote{max-width:44rem}.pull-quote .stars{margin-top:var(--space-s)}.pull-quote blockquote{margin:var(--space-m) 0 0;font-family:var(--font-display);font-size:var(--step-3);line-height:var(--leading-snug);letter-spacing:var(--tracking-snug);color:var(--ink);text-wrap:pretty}.pull-quote figcaption{margin-top:var(--space-m);font-size:var(--step--1)}.pull-quote__name{color:var(--ink);font-weight:500}.pull-quote__meta{color:var(--graphite);margin-top:2px;display:block}.notfound-links{gap:var(--space-s) var(--space-m);margin-top:var(--space-m);flex-wrap:wrap;list-style:none;display:flex}.notfound-courses-heading{margin-top:var(--space-l);font-size:var(--step--1);color:var(--graphite)}.notfound-cta{margin-top:var(--space-xl)}.thanks-arrival{text-align:center;padding-top:clamp(3rem,1.5rem + 7vw,6.5rem);padding-bottom:clamp(var(--space-2xl), 1rem + 9vw, var(--space-3xl));justify-items:center;display:grid}.thanks-arrival h1{font-size:var(--step-5);max-width:19ch;margin-top:var(--space-xs)}.thanks-arrival__rule{width:3.5rem;height:2px;margin:var(--space-l) 0;background:var(--brass);border:0}.thanks-arrival__lede{max-width:44ch}.thanks-arrival__note{margin-top:var(--space-m);max-width:46ch;font-size:var(--step--1);color:var(--graphite)}.thanks-arrival__cta{margin-top:var(--space-xl)}.thanks-calendar{padding-top:0}.thanks-calendar .section-head{text-align:center;margin-inline:auto}.thanks-calendar .section-head h2{font-size:var(--step-3)}.thanks-calendar .cal-fallback{text-align:center}.site-footer{border-top:1px solid var(--rule);padding-block:var(--space-xl) var(--space-l);font-size:var(--step--1)}.footer-grid{gap:var(--space-l);display:grid}@media (width>=46rem){.footer-grid{gap:var(--space-l) var(--space-xl);grid-template-columns:repeat(2,1fr)}}@media (width>=64rem){.footer-grid{gap:var(--space-xl);grid-template-columns:1.5fr 1fr 1fr 1fr}}.site-footer h2{font-family:var(--font-body);font-size:var(--step--2);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--graphite);margin-bottom:var(--space-s);font-weight:500}.site-footer__blurb{margin-top:var(--space-s);color:var(--graphite);max-width:34ch}.footer-list{gap:var(--space-2xs);list-style:none;display:grid}.footer-list a{color:var(--ink-2);text-decoration:none}.footer-list a:hover{color:var(--ink);text-decoration:underline;text-decoration-color:var(--brass)}.footer-legal{margin-top:var(--space-xl);padding-top:var(--space-m);border-top:1px solid var(--rule);gap:var(--space-xs) var(--space-m);color:var(--graphite);flex-wrap:wrap;justify-content:space-between;display:flex}.todo{border:1px dashed var(--brass);border-radius:var(--radius-sm);background:var(--brass-wash);color:var(--brass);font-family:var(--font-mono);letter-spacing:.02em;padding:.1em .5em;font-size:.85em;display:inline-block}
