@font-face{font-family:Geist Pixel Circle;src:url(/fonts/geist-pixel/GeistPixel-Circle.woff2)format("woff2");font-display:swap}@font-face{font-family:Geist Pixel Square;src:url(/fonts/geist-pixel/GeistPixel-Square.woff2)format("woff2");font-display:swap}@font-face{font-family:Geist Pixel Line;src:url(/fonts/geist-pixel/GeistPixel-Line.woff2)format("woff2");font-display:swap}:root{--raster-pitch-md:8px;--raster-pitch-lg:12px;--raster-dot-min:2px;--raster-mono-2:#2e2e2e;--raster-mono-4:#9a9a9a;--raster-mono-6:#ededed;--frame-line:1px solid var(--border-2);--frame-node:7px;--frame-draw:.24s;--frame-index-width:280px;--frame-number-rail:72px;--font-pixel-circle:"Geist Pixel Circle",var(--family-mono);--font-pixel-square:"Geist Pixel Square",var(--family-mono);--font-pixel-line:"Geist Pixel Line",var(--family-mono);--ease-out-strong:cubic-bezier(.23,1,.32,1)}.raster-type{letter-spacing:0;font-weight:400;line-height:1}.raster-type--circle{font-family:var(--font-pixel-circle)}.raster-type--square{font-family:var(--font-pixel-square)}.raster-type--line{font-family:var(--font-pixel-line)}.principle-heading{color:var(--text-1);font-family:var(--family-heading);letter-spacing:-.03em;overflow-wrap:anywhere;text-wrap:balance;scroll-margin-top:96px;font-size:clamp(1.375rem,1.2rem + .8vw,1.75rem);font-weight:600;line-height:1.2}.principle-prose p{max-width:68ch;color:var(--text-2);overflow-wrap:anywhere;font-size:clamp(1rem,.96rem + .2vw,1.0625rem);line-height:1.75}.principle-prose p+p{margin-top:1.25em}.principle-meta{color:var(--text-3);font-family:var(--family-mono);letter-spacing:.02em;font-size:12px;line-height:16px}.archive-matrix{--pitch:var(--raster-pitch-md);--dot:4px;grid-auto-columns:var(--pitch);grid-auto-flow:column;width:max-content;max-width:100%;display:grid}.archive-matrix__week{flex-direction:column-reverse;display:flex}.archive-matrix__dot{width:var(--pitch);height:var(--pitch);place-items:center;display:grid}.archive-matrix__dot:before{content:"";width:var(--raster-dot-min);height:var(--raster-dot-min);background:var(--raster-mono-2);border-radius:9999px}.archive-matrix__dot[data-lit]:before{width:var(--dot);height:var(--dot);background:var(--raster-mono-6)}.archive-matrix__week[data-older],.archive-matrix__caption [data-window=full]{display:none}@media (min-width:640px){.archive-matrix__week[data-older]{display:flex}.archive-matrix__caption [data-window=full]{display:inline}.archive-matrix__caption [data-window=recent]{display:none}}@media (min-width:1280px){.archive-matrix--large{--pitch:10px;--dot:5px}}@media (forced-colors:active){.archive-matrix__dot:before{background:graytext}.archive-matrix__dot[data-lit]:before{background:canvastext}}.frame-page{background-color:var(--bg-1);overflow-x:clip}.frame{border-inline:var(--frame-line);background:var(--bg-1);margin-inline:16px;position:relative}@media (min-width:768px){.frame{margin-inline:32px}}@media (min-width:1200px){.frame{max-width:1120px;margin-inline:auto}}.frame-rule{height:0;position:relative}.frame-rule:before{content:"";border-top:var(--frame-line);transform-origin:0;animation:frame-rule-draw var(--frame-draw)var(--ease-out-strong)both;animation-delay:calc(var(--rule-order,0)*40ms);position:absolute;top:0;left:-100vw;right:-100vw}.frame-rule--local:before{left:0;right:0}@keyframes frame-rule-draw{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.frame-node{z-index:1;width:var(--frame-node);height:var(--frame-node);border:1px solid var(--border-3);background:var(--bg-1);position:absolute;top:.5px;translate:-50% -50%}.frame-node--start{left:-.5px}.frame-node--end{left:calc(100% + .5px)}.frame-node--number-rail{left:calc(var(--frame-number-rail) - .5px);display:none}@media (min-width:768px){.frame-node--number-rail{display:block}}.frame-cell{padding:24px 20px}@media (min-width:768px){.frame-cell{padding:32px}}.frame-cells{background:var(--border-2);gap:1px;display:grid}.frame-cells>*{background:var(--bg-1)}.frame-hero{grid-template-columns:1fr}@media (min-width:960px){.frame-hero{grid-template-columns:minmax(0,1fr) auto}}.frame-ledger{grid-template-columns:repeat(2,minmax(0,1fr))}@media (min-width:768px){.frame-ledger{grid-template-columns:repeat(4,minmax(0,1fr))}}.frame-ledger__value{color:var(--text-1);font-family:var(--font-pixel-square);font-variant-numeric:tabular-nums;margin-top:8px;font-size:20px;line-height:1.2}.frame-body{grid-template-columns:1fr;display:grid}@media (min-width:1024px){.frame-body{grid-template-columns:var(--frame-index-width)minmax(0,1fr)}}.frame-index{display:none}@media (min-width:1024px){.frame-index{border-right:var(--frame-line);display:block}.frame-index__sticky{padding-block:32px;position:sticky;top:96px}}.section-sampler{aspect-ratio:1;width:calc(100% - 64px);margin:0 32px 24px;display:block}@media (forced-colors:active){.section-sampler{display:none}}.frame-index__link{min-height:44px;color:var(--text-3);font-family:var(--family-mono);align-items:center;gap:12px;padding-inline:32px 24px;font-size:13px;line-height:18px;text-decoration:none;transition:color .16s;display:flex;position:relative}.frame-index__link:after{content:"";width:var(--frame-node);height:var(--frame-node);border:1px solid var(--border-3);background:var(--bg-1);transition:background-color .16s,border-color .16s;position:absolute;top:50%;right:-.5px;translate:50% -50%}.frame-index__link:hover,.frame-index__link[aria-current]{color:var(--text-1)}.frame-index__link[aria-current]:after{border-color:var(--accent);background:var(--accent)}.frame-index__link:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}@media (forced-colors:active){.frame-index__link[aria-current]:after{background:highlight;border-color:highlight}}.frame-section{grid-template-columns:1fr;display:grid}.frame-section__number{color:var(--text-3);padding:24px 20px 0;font-size:32px}@media (min-width:768px){.frame-section{grid-template-columns:var(--frame-number-rail)minmax(0,1fr)}.frame-section__number{border-right:var(--frame-line);text-align:center;padding:32px 0 0}}@media (min-width:1024px){.frame-section__number .raster-type{font-family:var(--family-mono);letter-spacing:.02em;font-size:12px;line-height:16px}}.frame-items{border-block:var(--frame-line);grid-template-columns:1fr;margin-top:24px}@media (min-width:640px){.frame-items{grid-template-columns:repeat(2,minmax(0,1fr))}}.frame-items>li{color:var(--text-1);grid-template-columns:2.5ch minmax(0,1fr);gap:12px;padding:20px 0;line-height:1.6;display:grid}@media (min-width:640px){.frame-items>li{padding:20px}.frame-items>li:nth-child(odd){padding-left:0}}.frame-items>li .principle-meta{line-height:1.6rem}.mockup-figure{border-block:var(--frame-line);margin:32px -20px 0}@media (min-width:768px){.mockup-figure{margin-inline:-32px}}.mockup-figure+.mockup-figure{margin-top:-1px}.mockup-stage{isolation:isolate;aspect-ratio:16/10;position:relative;overflow:hidden}.mockup-stage:after{content:"";z-index:2;pointer-events:none;opacity:.05;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:absolute;inset:0}.mockup-stage__halftone{width:100%;height:100%;fill:var(--raster-mono-4);position:absolute;inset:0}.mockup-stage__halftone--fine{display:none}@media (min-width:768px){.mockup-stage__halftone--fine{display:block}.mockup-stage__halftone--coarse{display:none}}.mockup-stage__specimen{z-index:1;position:absolute}.mockup-stage__media{object-fit:contain;border:1px solid var(--border-2);background:var(--bg-1);border-radius:10px;width:100%;height:100%;display:block;box-shadow:0 24px 48px -24px #000000e6}@media (forced-colors:active),(prefers-reduced-transparency:reduce){.mockup-stage{background:var(--bg-1)!important}.mockup-stage:after,.mockup-stage__halftone{display:none!important}}.mockup-video{width:100%;height:100%;position:relative}.mockup-video video{cursor:pointer}.mockup-video__toggle{border:1px solid var(--border-2);min-height:44px;color:var(--text-1);font-family:var(--family-mono);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transition:border-color .16s ease,transform .12s var(--ease-out-strong);background:#000000b8;border-radius:9999px;align-items:center;gap:10px;padding:0 16px 0 14px;font-size:12px;display:inline-flex;position:absolute;bottom:12px;left:12px}.mockup-video__toggle:hover{border-color:var(--border-3)}.mockup-video__toggle:active{transform:scale(.97)}.mockup-video__toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.mockup-video__icon{width:10px;height:12px;position:relative}.mockup-video__icon[data-state=paused]{background:var(--text-1);clip-path:polygon(0 0,100% 50%,0 100%)}.mockup-video__icon[data-state=playing]{border-inline:3px solid var(--text-1)}@media (max-width:479px){.mockup-video__label{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.mockup-video__toggle{justify-content:center;width:44px;padding:0}}.mockup-figure__caption{border-top:var(--frame-line);gap:6px;padding:20px;display:grid}@media (min-width:768px){.mockup-figure__caption{padding:20px 32px 24px}}.mockup-figure__title{color:var(--text-1);font-family:var(--family-mono);letter-spacing:.02em;font-size:12px;line-height:18px}.mockup-figure__description{max-width:68ch;color:var(--text-2);font-size:15px;line-height:1.65}.principle-prose+.mockup-figure,.principle-links+.mockup-figure,.mockup-figure+.principle-prose,.mockup-figure+.frame-items{margin-top:32px}.frame-cell>.mockup-figure:last-child{border-bottom:0;margin-bottom:-24px}@media (min-width:768px){.frame-cell>.mockup-figure:last-child{margin-bottom:-32px}}.principle-links{flex-wrap:wrap;gap:4px 24px;margin-top:16px;display:flex}.principle-links a{min-height:44px;color:var(--text-1);font-family:var(--family-mono);text-decoration:underline;-webkit-text-decoration-color:var(--border-3);text-decoration-color:var(--border-3);text-underline-offset:4px;align-items:center;font-size:13px;transition:text-decoration-color .16s;display:inline-flex}.principle-links a:hover{-webkit-text-decoration-color:var(--text-1);text-decoration-color:var(--text-1)}.principle-links a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.type-showcase{border-block:var(--frame-line);grid-template-columns:1fr;margin:32px -20px 0}@media (min-width:768px){.type-showcase{margin-inline:-32px}}.type-showcase__face{gap:20px;padding:28px 20px 24px;display:grid}@media (min-width:768px){.type-showcase__face{grid-template-rows:auto auto;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:end;column-gap:32px;padding:32px}.type-showcase__sample{grid-row:1/3}.type-showcase__ramp,.type-showcase__caption{grid-column:2}}.type-showcase__sample{color:var(--text-1);font-size:clamp(3.5rem,8vw,5.5rem);font-weight:var(--weight-rest);letter-spacing:-.03em;transition:font-weight .32s var(--ease-out-strong);line-height:1}@media (hover:hover){.type-showcase__face:hover .type-showcase__sample{font-weight:var(--weight-max)}}.type-showcase__ramp{border-top:var(--frame-line);color:var(--text-2);justify-content:space-between;gap:8px;padding-top:16px;font-size:22px;line-height:1;display:flex}.type-showcase__caption{gap:4px;display:grid}.type-showcase__name{color:var(--text-1);font-family:var(--family-mono);font-size:13px}.type-showcase+.mockup-figure,.type-showcase+.principle-links,.principle-links+.type-showcase{margin-top:32px}@media (prefers-reduced-motion:reduce){.type-showcase__sample{transition-duration:0s}}.frame-conclusion{grid-template-columns:1fr}@media (min-width:960px){.frame-conclusion{grid-template-columns:minmax(0,1fr) 320px}}.frame-conclusion__links{align-items:flex-end;display:flex}.frame-conclusion__links ul{border-top:var(--frame-line);width:100%}.frame-conclusion__link{border-bottom:var(--frame-line);min-height:52px;color:var(--text-1);font-family:var(--family-mono);transition:color .16s ease,padding-left .2s var(--ease-out-strong);justify-content:space-between;align-items:center;gap:16px;font-size:13px;text-decoration:none;display:flex}.frame-conclusion__link span:last-child{color:var(--text-3);transition:color .16s}@media (hover:hover){.frame-conclusion__link:hover{padding-left:6px}.frame-conclusion__link:hover span:last-child{color:var(--text-1)}}.frame-conclusion__link:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}@media (prefers-reduced-motion:reduce){.frame-rule:before{animation-name:frame-rule-fade;animation-duration:.16s}.frame-index__link,.frame-index__link:after{transition-duration:0s}}@keyframes frame-rule-fade{0%{opacity:0}to{opacity:1}}
