@font-face{font-family:"Source Serif 4";src:url("fonts/source-serif-4-latin-600-normal.woff2") format("woff2");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:"Libre Franklin";src:url("fonts/libre-franklin-latin-400-normal.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:"Libre Franklin";src:url("fonts/libre-franklin-latin-400-italic.woff2") format("woff2");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:"Libre Franklin";src:url("fonts/libre-franklin-latin-500-normal.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:"Libre Franklin";src:url("fonts/libre-franklin-latin-600-normal.woff2") format("woff2");font-weight:600;font-style:normal;font-display:swap}*,*::before,*::after{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{margin:0;background:#000;color:#f2f2f2;font-family:"Libre Franklin",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;font-size:1.0625rem;line-height:1.65;-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:"Source Serif 4",Georgia,"Times New Roman",serif;font-weight:600;line-height:1.2;margin:0;text-wrap:balance}h1{font-size:clamp(2.25rem,5.5vw,3.5rem);line-height:1.1;letter-spacing:-.015em}h2{font-size:clamp(1.6rem,3vw,2rem);letter-spacing:-.01em;margin-bottom:1.75rem}h3{font-size:1.25rem;margin-bottom:.5rem}p{margin:0 0 1em}p:last-child{margin-bottom:0}ul{padding-left:1.2rem;margin:0}li{margin:.4rem 0}a{color:#f2f2f2;text-underline-offset:.18em;text-decoration-thickness:1px;text-decoration-color:#a3a3a3;transition:color .15s ease,text-decoration-color .15s ease,text-decoration-thickness .15s ease}a:hover{text-decoration-color:#f2f2f2;text-decoration-thickness:2px}a:focus-visible{outline:2px solid #f2f2f2;outline-offset:3px;border-radius:2px}code,pre{font-family:ui-monospace,"JetBrains Mono",Consolas,monospace;font-size:.9em}pre{background:#111;padding:1rem 1.25rem;overflow-x:auto;border:1px solid #2a2a2a;border-radius:4px}.muted{color:#a3a3a3}.wrap{max-width:68rem;margin:0 auto;padding:0 clamp(1.25rem,5vw,3rem)}.narrow>*{max-width:42rem}.site-header{border-bottom:1px solid #2a2a2a}.site-header .wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem 2rem;padding-top:1.1rem;padding-bottom:1.1rem}.site-header nav{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem 1.75rem;font-size:.95rem;font-weight:500}.site-header nav a{color:#f2f2f2;text-decoration:none}.site-header nav a:hover{text-decoration:underline}.site-header nav a[aria-current=page]{color:#f2f2f2;text-decoration:underline}.site-header .lang a{color:#a3a3a3;font-weight:400}@media (max-width: 48rem){.site-header .wrap{gap:.65rem 1.25rem}.site-header nav{gap:.25rem 1.15rem}}@media (max-width: 34rem){.site-header .wrap{padding-top:.9rem;padding-bottom:.9rem}.site-header nav{width:100%;justify-content:space-between;gap:.4rem .75rem;font-size:.9rem}}.brand{color:#f2f2f2;font-weight:600;font-size:1.05rem;letter-spacing:.01em;text-decoration:none;display:inline-flex;align-items:center;gap:.55rem}.brand .logo{width:1.4rem;height:1.4rem;margin:0}.brand:hover{color:#f2f2f2}.hero{padding:calc(clamp(3.5rem,7vw,5rem) * 1.25) 0 clamp(3.5rem,7vw,5rem)}.hero h1{max-width:18ch}.hero .lead{margin-top:1.75rem}.home-hero .wrap{display:grid;grid-template-columns:minmax(0, 1fr) auto;column-gap:clamp(3rem,6vw,6rem);align-items:start}.home-hero .wrap>*{grid-column:1}.home-hero .wrap .hero-mark{grid-column:2;grid-row:1/span 3;padding-top:.6rem}.home-hero .wrap .logo{display:block;width:clamp(9rem,15vw,12.5rem);height:auto}@media (max-width: 52rem){.home-hero .wrap{grid-template-columns:1fr}.home-hero .wrap .hero-mark{grid-column:1;grid-row:auto;padding-top:0;margin-bottom:2.5rem}.home-hero .wrap .logo{width:6.5rem}}.page-head time{display:block;color:#a3a3a3;margin-bottom:1rem}.lead{max-width:42rem;font-size:clamp(1.125rem,2vw,1.3rem);line-height:1.6;color:#a3a3a3}.lead p{margin-bottom:.75em}.actions{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.75rem;margin-top:2.5rem;font-weight:500}.button{display:inline-block;padding:.85rem 1.5rem;background:#f2f2f2;color:#000;border:1px solid #f2f2f2;border-radius:8px;text-decoration:none;transition:background-color .15s ease,color .15s ease,border-color .15s ease}.button:hover{background:#a3a3a3;color:#000;border-color:#a3a3a3}.section{padding:clamp(3.5rem,7vw,5rem) 0}.tinted{background:#111}.hero+.section:not(.tinted),.section:not(.tinted)+.section:not(.tinted){border-top:1px solid #2a2a2a}.section.tinted+.section.tinted{border-top:1px solid #343434}.features{display:grid;grid-template-columns:repeat(auto-fit, minmax(min(100%,19rem), 1fr));gap:2.5rem 3.5rem}.features p{color:#a3a3a3}.credits{margin-top:3rem;max-width:42rem;color:#a3a3a3;font-size:.9rem}.credits p{margin:0 0 .5rem}.credits ul{margin:0;padding-left:1.1rem}.credits a{color:inherit}.entries{list-style:none;margin:0;padding:0}.entries li{display:grid;grid-template-columns:8rem minmax(0, 42rem);gap:.25rem 2.5rem;margin:0;padding:1.4rem 0}.entries li+li{border-top:1px solid #2a2a2a}.entries li:first-child{padding-top:0}.entries li:last-child{padding-bottom:0}.entries .period,.entries time{color:#a3a3a3;font-variant-numeric:tabular-nums;padding-top:.15rem}.entries h3{font-size:1.15rem}.entries h3 a{color:#f2f2f2;text-decoration:none}.entries h3 a:hover{text-decoration:underline}.entries p{color:#a3a3a3}@media (max-width: 36rem){.entries li{grid-template-columns:1fr}}.tinted .entries li+li{border-top-color:#343434}.pagination{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:2.5rem}.pagination a:only-child{margin-left:auto}.prose h2{font-size:1.6rem;margin:2.5rem 0 1rem}.prose h3{margin-top:2rem}.prose li{margin:.3rem 0}.prose blockquote{margin:1.5rem 0;padding-left:1.25rem;border-left:3px solid #a3a3a3;color:#a3a3a3;font-style:normal}.contact{background:#f2f2f2;color:#000;padding:clamp(3.5rem,7vw,5rem) 0}.contact h2{max-width:20ch;margin-bottom:1.25rem}.contact p{margin-bottom:1rem}.contact p:last-child{margin-bottom:0}.contact a{color:#000;font-size:clamp(1.25rem,3vw,1.6rem);font-weight:500;text-decoration-color:rgba(0,0,0,.4)}.contact a:hover{color:#000;text-decoration-color:#000}.contact a:has(.icon){display:inline-flex;align-items:center;gap:.6em;text-decoration:none}.contact a:has(.icon) span{text-decoration:underline;text-decoration-color:rgba(0,0,0,.4)}.contact a:has(.icon):hover span{text-decoration-color:#000}.contact .icon{width:1.1em;height:1.1em;margin:0;color:currentColor;flex:none}.contact a:focus-visible{outline-color:#000}.site-footer{color:#a3a3a3;font-size:.9rem}.site-footer .wrap{display:flex;flex-wrap:wrap;gap:.25rem 2.5rem;padding-top:1.75rem;padding-bottom:1.75rem}.site-footer p{margin:0}.site-footer a{color:#a3a3a3}.site-footer .feed{margin-left:auto;display:flex;gap:1.5rem}.site-footer .feed a{display:inline-flex;align-items:center;gap:.45em;text-decoration:none}.site-footer .feed a span{text-decoration:underline 1px #a3a3a3}.site-footer .feed a:hover span{text-decoration-thickness:2px}.site-footer .icon{width:1.25em;height:1.25em;margin:0;color:currentColor;transition:none}.product .button{background:var(--ink);color:var(--ground)}.product .button:hover{background:#f2f2f2;color:var(--ground)}.product-hero{background:var(--ground);color:var(--ink);padding:calc(clamp(3.5rem,7vw,5rem) * .9) 0 calc(clamp(3.5rem,7vw,5rem) * 1.1)}.product-hero a{color:var(--ink);text-decoration-color:color-mix(in srgb, var(--ink) 50%, rgba(0,0,0,0))}.product-hero a:hover{text-decoration-color:var(--ink)}.product-hero a:focus-visible{outline-color:var(--ink)}.product-hero .crumb a{color:color-mix(in srgb, var(--ink) 75%, rgba(0,0,0,0))}.product-hero h1{max-width:15ch;font-size:clamp(2.75rem,7vw,5.25rem);line-height:1.02;letter-spacing:-.03em}.product-hero .lead{color:color-mix(in srgb, var(--ink) 85%, rgba(0,0,0,0));margin-top:1.75rem;max-width:52ch}.product-hero .note{color:color-mix(in srgb, var(--ink) 75%, rgba(0,0,0,0));margin-top:1rem}.product-hero .actions{margin-top:2.25rem}.product-name{display:flex;align-items:center;gap:1rem;margin-bottom:1.75rem;font-family:"Source Serif 4",Georgia,"Times New Roman",serif;font-weight:600;font-size:1.6rem}.product-name img{width:4rem;height:4rem;border-radius:12px}.product-name .icon{width:2.5rem;height:2.5rem;margin:0;color:var(--ink)}.product-shot{background:linear-gradient(var(--ground) 50%, #000 50%)}.product-shot img{display:block;width:100%;height:auto;border:1px solid #343434;border-radius:10px;box-shadow:0 24px 80px rgba(0,0,0,.45)}.highlights .wrap{display:grid;gap:clamp(4rem,9vw,7rem)}.highlight{display:grid;grid-template-columns:minmax(0, 5fr) minmax(0, 7fr);gap:2rem clamp(2rem,5vw,4.5rem);align-items:center}.highlight h2{font-size:clamp(1.75rem,3.5vw,2.4rem);margin-bottom:1rem}.highlight p{color:#a3a3a3;font-size:1.125rem}.highlight img{display:block;width:100%;height:auto;border:1px solid #2a2a2a;border-radius:10px}.highlight:nth-child(even){grid-template-columns:minmax(0, 7fr) minmax(0, 5fr)}.highlight:nth-child(even) .highlight-text{order:2}@media (max-width: 52rem){.highlight,.highlight:nth-child(even){grid-template-columns:1fr}.highlight:nth-child(even) .highlight-text{order:0}}.product-install{background:var(--ground);color:var(--ink);padding:clamp(3.5rem,7vw,5rem) 0 calc(clamp(3.5rem,7vw,5rem) * 1.25)}.product-install h2{font-size:clamp(2.25rem,5vw,3.5rem);line-height:1.05;letter-spacing:-.02em;margin-bottom:1.25rem}.product-install .requires,.product-install .install-way p,.product-install .install-note{color:color-mix(in srgb, var(--ink) 80%, rgba(0,0,0,0))}.product-install .install-way{margin-top:2.75rem}.product-install .install-note{margin-top:2.75rem}.product-install a{color:var(--ink);text-decoration-color:color-mix(in srgb, var(--ink) 50%, rgba(0,0,0,0))}.product-install a:hover{text-decoration-color:var(--ink)}.product-install a:focus-visible{outline-color:var(--ink)}.product-install pre{position:relative;margin:1rem 0 0;padding:1.1rem 6rem 1.1rem 1.25rem;background:color-mix(in srgb, var(--ground), #000 45%);color:#f2f2f2;line-height:1.7;white-space:pre-wrap;overflow-wrap:anywhere}.product-install .copy{color:var(--ink);border-color:color-mix(in srgb, var(--ink) 40%, rgba(0,0,0,0))}.product-install .copy:hover{border-color:var(--ink)}.product-install .copy:focus-visible{outline-color:var(--ink)}.copy{position:absolute;top:.75rem;right:.75rem;padding:.3rem .75rem;font:500 .85rem "Libre Franklin",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:#f2f2f2;background:rgba(0,0,0,0);border:1px solid #2a2a2a;border-radius:6px;cursor:pointer;transition:border-color .15s ease}.copy:hover{border-color:#a3a3a3}.copy:focus-visible{outline:2px solid #f2f2f2;outline-offset:2px}.stack-title{margin-top:2.5rem}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}}.intro{color:#a3a3a3;max-width:42rem;margin:-.75rem 0 2.5rem}.note{color:#a3a3a3;font-size:.9rem;font-style:italic;margin-bottom:.35rem}.crumb{margin-bottom:1.25rem;font-size:.95rem}.crumb a{color:#a3a3a3}.more{margin-top:.75rem}.features h3 a{text-decoration-color:#a3a3a3}.icon{display:block;width:1.5rem;height:1.5rem;margin-bottom:.85rem;color:#a3a3a3;transition:color .2s ease}.features>div:hover .icon{color:#f2f2f2}.icon .cut{fill:#000}.home-hero{position:relative;overflow:clip;background:radial-gradient(60rem 40rem at 85% -10%, rgba(255,255,255,.06), rgba(0,0,0,0) 60%)}.home-hero .hero-watermark{position:absolute;top:-14%;right:-14%;width:min(46rem,70%);opacity:.07;pointer-events:none;z-index:0}.home-hero .hero-watermark .logo{display:block;width:100%;height:auto}.home-hero .wrap{position:relative;z-index:1}@media (max-width: 52rem){.home-hero .hero-watermark{display:none}}@media (prefers-reduced-motion: no-preference){@supports (animation-timeline: view()){.home-hero .hero-watermark{animation:drift linear both;animation-timeline:scroll(root);animation-range:0 90vh}.section>.wrap>*,.contact>.wrap>*{animation:rise linear both;animation-timeline:view();animation-range:entry 10% entry 45%}}}@keyframes drift{to{transform:translate3d(0, 18%, 0)}}@keyframes rise{from{opacity:0;transform:translate3d(0, .75rem, 0)}}