body[data-theme=tech]{--js-bg:#f6f8f8;--js-surface:#fff;--js-ink:#17252b;--js-muted:#5c6c74;--js-line:#d6dfe2;--js-accent:#006f79;--js-tint:#e4f0ef;--js-graphic:#14838b;--accent:var(--js-accent);--ink:var(--js-ink);--paper:var(--js-surface);--line:var(--js-line);color-scheme:light;background:var(--js-bg);color:var(--js-ink);-webkit-font-smoothing:antialiased;min-height:100vh;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}@media (prefers-color-scheme:dark){body[data-theme=tech]{--js-bg:#0c1015;--js-surface:#131920;--js-ink:#ecf1f3;--js-muted:#9caeb7;--js-line:#2a343c;--js-accent:#73e0d0;--js-tint:#182c30;--js-graphic:#69d9cf;color-scheme:dark}}body[data-theme=tech] ::selection{background:var(--js-accent);color:var(--js-bg)}body[data-theme=tech] a:focus-visible,body[data-theme=tech] summary:focus-visible,body[data-theme=tech] button:focus-visible,body[data-theme=tech] input:focus-visible,body[data-theme=tech] textarea:focus-visible{outline:2px solid var(--js-accent);outline-offset:5px}body[data-theme=tech] main{max-width:1280px;padding:0 48px}body[data-theme=tech] .js-header{border-bottom:1px solid var(--js-line);justify-content:space-between;align-items:center;gap:32px;max-width:1376px;min-height:110px;margin:auto;padding:26px 48px;display:flex}body[data-theme=tech] .js-brand{letter-spacing:.13em;white-space:nowrap;align-items:center;gap:18px;font-size:12px;font-weight:750;text-decoration:none;display:flex}body[data-theme=tech] .js-monogram{letter-spacing:-.14em;font-size:42px;font-weight:800;line-height:1}body[data-theme=tech] .js-monogram>span{font-weight:350}body[data-theme=tech] .js-monogram i{color:var(--js-accent);margin-left:4px;font-style:normal}body[data-theme=tech] .js-brand-sub{letter-spacing:.08em;color:var(--js-muted);margin-top:7px;font:8px ui-monospace,SFMono-Regular,Consolas,monospace;display:block}body[data-theme=tech] .js-nav{align-items:center;gap:30px;font-size:12px;font-weight:550;display:flex}body[data-theme=tech] .js-nav>a{padding:10px 0;text-decoration:none}body[data-theme=tech] .js-nav>a:hover{color:var(--js-accent)}body[data-theme=tech] .js-search-link{border-left:1px solid var(--js-line);display:flex;padding-left:24px!important}body[data-theme=tech] .js-more{position:relative}body[data-theme=tech] .js-more summary{cursor:pointer;align-items:center;gap:10px;padding:10px 0;list-style:none;display:flex}body[data-theme=tech] .js-more summary::-webkit-details-marker{display:none}body[data-theme=tech] .js-more[open] summary>span{transform:rotate(45deg)}body[data-theme=tech] .js-more-links{z-index:30;background:var(--js-surface);border:1px solid var(--js-line);width:235px;padding:12px;position:absolute;top:42px;right:0;box-shadow:0 18px 50px #0002}body[data-theme=tech] .js-more-links a{letter-spacing:0;justify-content:space-between;gap:20px;padding:12px;font-size:12px;text-decoration:none;display:flex}body[data-theme=tech] .js-more-links a:hover{background:var(--js-tint);color:var(--js-accent)}body[data-theme=tech] .js-skip{z-index:100;background:var(--js-ink);color:var(--js-bg);padding:12px 20px;position:fixed;top:12px;left:12px;transform:translateY(-160%)}body[data-theme=tech] .js-skip:focus{transform:none}body[data-theme=tech] .justin-hero{grid-template-columns:1.15fr 1fr;align-items:center;gap:30px 50px;padding:80px 0 0;display:grid}body[data-theme=tech] .js-kicker{letter-spacing:.1em;color:var(--js-muted);align-items:center;gap:10px;margin:0 0 24px;font:9px/1.6 ui-monospace,SFMono-Regular,Consolas,monospace;display:flex}body[data-theme=tech] .js-kicker>span{color:var(--js-accent);font-size:18px}body[data-theme=tech] .justin-intro h1{letter-spacing:-.075em;margin:0 0 27px;font-size:clamp(64px,7.8vw,108px);font-weight:650;line-height:.99}body[data-theme=tech] .justin-intro h1>span{color:var(--js-accent)}body[data-theme=tech] .justin-description{color:var(--js-muted);max-width:400px;margin:0 0 30px;font-size:17px;line-height:1.75}body[data-theme=tech] .justin-actions{flex-wrap:wrap;align-items:center;gap:25px;display:flex}body[data-theme=tech] .js-button{background:var(--js-ink);color:var(--js-bg);border-radius:2px;align-items:center;gap:34px;padding:16px 20px;font-size:11px;font-weight:650;text-decoration:none;transition:background .2s,color .2s;display:inline-flex}body[data-theme=tech] .js-button:hover{background:var(--js-accent);color:var(--js-bg)}body[data-theme=tech] .js-button>span{font-size:18px;line-height:1}body[data-theme=tech] .js-text-link{align-items:center;gap:14px;font-size:11px;font-weight:600;text-decoration:none;display:inline-flex}body[data-theme=tech] .js-text-link:hover{color:var(--js-accent)}body[data-theme=tech] .justin-graphic{color:var(--js-graphic);justify-self:end;width:100%;max-width:440px;position:relative}body[data-theme=tech] .graphic-label{letter-spacing:.1em;color:var(--js-muted);border-top:1px solid var(--js-line);justify-content:space-between;gap:12px;padding:12px 0;font:8px ui-monospace,SFMono-Regular,Consolas,monospace;display:flex}body[data-theme=tech] .graphic-label:last-child{border-top:0;border-bottom:1px solid var(--js-line)}body[data-theme=tech] .curiosity-orbit{width:100%;height:auto;display:block;overflow:visible}body[data-theme=tech] .orbit-guide{opacity:.45}body[data-theme=tech] .orbit-wire{opacity:.8}body[data-theme=tech] .justin-topics{border-top:1px solid var(--js-line);border-bottom:1px solid var(--js-line);grid-column:1/-1;align-items:center;gap:36px;margin-top:45px;padding:21px 0;display:flex}body[data-theme=tech] .justin-topics>span{letter-spacing:.1em;color:var(--js-muted);margin-right:auto;font:8px ui-monospace,SFMono-Regular,Consolas,monospace}body[data-theme=tech] .justin-topics>a{align-items:center;gap:30px;font-size:11px;text-decoration:none;display:flex}body[data-theme=tech] .justin-topics>a>span{color:var(--js-accent)}body[data-theme=tech] .listing{padding:0 0 80px}body[data-theme=tech] .section-label{border-top:0;align-items:baseline;padding:45px 0 25px}body[data-theme=tech] .section-label h2{letter-spacing:-.05em;font-size:27px;font-weight:600}body[data-theme=tech] .section-label>span{color:var(--js-muted);font:9px ui-monospace,SFMono-Regular,Consolas,monospace}body[data-theme=tech] .cards{align-items:stretch;gap:24px}body[data-theme=tech] .card{background:var(--js-surface);border:1px solid var(--js-line);border-radius:3px;transition:border-color .2s,transform .2s;position:relative;overflow:hidden}body[data-theme=tech] .card:hover{border-color:var(--js-accent);transform:translateY(-3px)}body[data-theme=tech] .card-image{aspect-ratio:1.8;border-bottom:1px solid var(--js-line);background:var(--js-tint)}body[data-theme=tech] .card-image img{object-fit:contain;padding:20px}body[data-theme=tech] .typographic{background:radial-gradient(ellipse at 50% 125%,transparent 35%,color-mix(in srgb,var(--js-accent) 15%,transparent) 35.5%,transparent 36%,transparent 47%,color-mix(in srgb,var(--js-accent) 13%,transparent) 47.5%,transparent 48%,transparent 60%,color-mix(in srgb,var(--js-accent) 13%,transparent) 60.5%,transparent 61%),var(--js-tint);color:var(--js-accent);font:64px ui-monospace,SFMono-Regular,Consolas,monospace}body[data-theme=tech] .typographic>span{opacity:.7;letter-spacing:-.15em;transform:rotate(-8deg)}body[data-theme=tech] .card-body{flex-direction:column;align-items:flex-start;min-height:240px;padding:26px;display:flex}body[data-theme=tech] .eyebrow{letter-spacing:.07em;color:var(--js-accent);margin:0 0 10px;font:9px/1.7 ui-monospace,SFMono-Regular,Consolas,monospace}body[data-theme=tech] .card h2{letter-spacing:-.045em;margin:0 0 20px;font-size:24px;font-weight:600;line-height:1.22}body[data-theme=tech] .card-body>p:not(.eyebrow,.meta){color:var(--js-muted);font-size:13px;line-height:1.7}body[data-theme=tech] .meta{color:var(--js-muted);font:9px/1.7 ui-monospace,SFMono-Regular,Consolas,monospace}body[data-theme=tech] .card .meta{justify-content:space-between;align-items:center;gap:12px;width:100%;margin-top:auto;padding-top:15px;display:flex}body[data-theme=tech] .card .meta>span{color:var(--js-accent);font-size:18px}body[data-theme=tech] .js-home-cards>.card:first-child{grid-column:span 2;grid-template-columns:1fr 1fr;display:grid}body[data-theme=tech] .js-home-cards>.card:first-child .card-image{aspect-ratio:auto;border-bottom:0;border-right:1px solid var(--js-line);min-height:320px}body[data-theme=tech] .js-home-cards>.card:first-child .card-body{justify-content:center;padding:32px}body[data-theme=tech] .js-home-cards>.card:first-child h2{letter-spacing:-.055em;font-size:35px}body[data-theme=tech] .js-home-cards>.card:first-child .meta{margin-top:20px}body[data-theme=tech] .pagination{border-top:1px solid var(--js-line);gap:5px;padding-top:25px}body[data-theme=tech] .pagination a{border:0;border-radius:3px;font:11px ui-monospace,SFMono-Regular,Consolas,monospace}body[data-theme=tech] .pagination a:hover{background:var(--js-tint)}body[data-theme=tech] .pagination [aria-current]{background:var(--js-ink);color:var(--js-bg)}body[data-theme=tech] .article{max-width:800px;margin:65px auto 100px}body[data-theme=tech] .article-header{border-bottom:1px solid var(--js-line);margin-bottom:40px;padding-bottom:35px}body[data-theme=tech] .article-header h1{letter-spacing:-.055em;margin:15px 0 25px;font-size:clamp(38px,5vw,62px);font-weight:600;line-height:1.08}body[data-theme=tech] .article-cover{object-fit:contain;background:var(--js-tint);border:1px solid var(--js-line);max-height:400px;padding:25px}body[data-theme=tech] .prose{color:var(--js-ink);font:17px/1.9 ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}body[data-theme=tech] .prose h2,body[data-theme=tech] .prose h3{letter-spacing:-.04em;scroll-margin-top:30px;font-family:inherit;font-weight:600}body[data-theme=tech] .prose h2{font-size:30px}body[data-theme=tech] .prose a{text-decoration-color:color-mix(in srgb,var(--js-accent) 40%,transparent)}body[data-theme=tech] .prose blockquote{border-left:2px solid var(--js-accent);color:var(--js-muted);margin:30px 0;padding:5px 25px}body[data-theme=tech] .prose :not(pre)>code{background:var(--js-tint);border:1px solid var(--js-line);border-radius:3px;padding:2px 5px;font-size:.84em}body[data-theme=tech] pre{color:#e3edf2;background:#101922;border:1px solid #2a3b49;border-radius:5px;margin:30px 0;padding:48px 24px 25px;font-size:12px;line-height:1.85}body[data-theme=tech] pre:before{content:"";background:#79a6a5;border-radius:100%;width:6px;height:6px;position:absolute;top:18px;left:18px;box-shadow:12px 0 #5d747e,24px 0 #3b515d}body[data-theme=tech] .copy-code{color:#cce5e6;background:#1d303d;border:1px solid #334956;border-radius:3px;font:10px ui-monospace,SFMono-Regular,Consolas,monospace;top:10px}body[data-theme=tech] .tags{flex-wrap:wrap;gap:8px}body[data-theme=tech] .tags>a{background:var(--js-tint);border:1px solid var(--js-line);border-radius:3px;padding:6px 10px;font:10px/1.6 ui-monospace,SFMono-Regular,Consolas,monospace;text-decoration:none}body[data-theme=tech] .comment,body[data-theme=tech] .comment header{font-family:inherit}body[data-theme=tech] .comment header a,body[data-theme=tech] .comments h2 span{color:var(--js-muted)}body[data-theme=tech] .listing-header{padding:65px 0 15px}body[data-theme=tech] .listing-header h1{letter-spacing:-.06em;font-size:clamp(40px,6vw,70px);font-weight:600}body[data-theme=tech] input,body[data-theme=tech] textarea{border-radius:3px}body[data-theme=tech] .contact button{background:var(--js-ink);color:var(--js-bg);border-radius:3px}body[data-theme=tech] .js-footer{border-top:1px solid var(--js-line);max-width:1280px;color:var(--js-ink);margin:auto;padding:45px 48px 35px;display:block}body[data-theme=tech] .js-footer-heading{justify-content:space-between;align-items:center;gap:25px;padding-bottom:42px;display:flex}body[data-theme=tech] .js-footer-wordmark{letter-spacing:-.055em;font-size:clamp(30px,4vw,48px);font-weight:600;text-decoration:none}body[data-theme=tech] .js-footer-wordmark>span{color:var(--js-accent)}body[data-theme=tech] .js-footer-bottom{border-top:1px solid var(--js-line);justify-content:space-between;align-items:center;gap:30px;padding-top:25px;display:flex}body[data-theme=tech] .js-footer-bottom p{color:var(--js-muted);margin:0;font-size:10px;line-height:1.8}body[data-theme=tech] .js-footer-bottom p>span{display:block}body[data-theme=tech] .js-footer-bottom nav{flex-wrap:wrap;gap:22px;display:flex}body[data-theme=tech] .js-footer-bottom nav a{color:var(--js-muted);font-size:10px;text-decoration:none}body[data-theme=tech] .js-footer-bottom nav a:hover{color:var(--js-accent)}@media (width>=1400px){body[data-theme=tech] .justin-hero{padding-top:100px}}@media (width<=1050px){body[data-theme=tech] .js-header{padding:25px 30px}body[data-theme=tech] .js-nav{gap:20px}body[data-theme=tech] main,body[data-theme=tech] .js-footer{padding-left:30px;padding-right:30px}body[data-theme=tech] .justin-hero{gap:30px;padding-top:60px}body[data-theme=tech] .justin-intro h1{font-size:78px}body[data-theme=tech] .js-home-cards>.card:first-child{display:block}body[data-theme=tech] .js-home-cards>.card:first-child .card-image{aspect-ratio:2.3;border-right:0;border-bottom:1px solid var(--js-line);min-height:0}body[data-theme=tech] .js-home-cards>.card:first-child .card-body{padding:26px}body[data-theme=tech] .js-home-cards>.card:first-child h2{font-size:30px}}@media (width<=760px){body[data-theme=tech] .js-header{flex-wrap:wrap;gap:22px;min-height:0;padding:22px 24px}body[data-theme=tech] .js-brand{gap:12px;font-size:10px}body[data-theme=tech] .js-monogram{font-size:36px}body[data-theme=tech] .js-brand-sub{font-size:7px}body[data-theme=tech] .js-nav{border-top:1px solid var(--js-line);justify-content:space-between;gap:14px;width:100%;padding-top:10px;font-size:11px}body[data-theme=tech] .js-search-link{padding-left:16px!important}body[data-theme=tech] main,body[data-theme=tech] .js-footer{padding-left:24px;padding-right:24px}body[data-theme=tech] .justin-hero{grid-template-columns:1fr;gap:35px;padding-top:45px}body[data-theme=tech] .justin-intro h1{font-size:clamp(62px,13vw,85px)}body[data-theme=tech] .justin-description{font-size:16px}body[data-theme=tech] .justin-actions{gap:22px}body[data-theme=tech] .justin-graphic{justify-self:center;max-width:340px}body[data-theme=tech] .justin-topics{flex-wrap:wrap;justify-content:space-between;gap:18px;margin-top:0}body[data-theme=tech] .justin-topics>span{flex-basis:100%;margin-bottom:2px}body[data-theme=tech] .justin-topics>a{gap:16px;font-size:10px}body[data-theme=tech] .cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}body[data-theme=tech] .card-body{min-height:215px;padding:20px}body[data-theme=tech] .card h2{font-size:22px}body[data-theme=tech] .js-home-cards>.card:first-child{grid-column:1/-1;grid-template-columns:1fr 1fr;display:grid}body[data-theme=tech] .js-home-cards>.card:first-child .card-image{aspect-ratio:auto;border-bottom:0;border-right:1px solid var(--js-line);min-height:220px}body[data-theme=tech] .js-home-cards>.card:first-child .card-body{padding:22px}body[data-theme=tech] .js-home-cards>.card:first-child h2{font-size:27px}body[data-theme=tech] .section-label h2{font-size:25px}body[data-theme=tech] .article{margin-top:45px}body[data-theme=tech] .js-footer-bottom{flex-direction:column;align-items:flex-start;gap:20px}}@media (width<=480px){body[data-theme=tech] .cards{grid-template-columns:1fr;gap:20px}body[data-theme=tech] .js-home-cards>.card:first-child{display:block}body[data-theme=tech] .js-home-cards>.card:first-child .card-image{aspect-ratio:2;border-right:0;border-bottom:1px solid var(--js-line);min-height:0}body[data-theme=tech] .card-body{min-height:0;padding:24px}body[data-theme=tech] .card h2{font-size:26px}body[data-theme=tech] .js-kicker{letter-spacing:.025em;gap:8px;font-size:8px}body[data-theme=tech] .justin-actions{gap:18px}body[data-theme=tech] .js-button{gap:25px;padding:15px 17px;font-size:10px}body[data-theme=tech] .js-text-link{gap:8px;font-size:10px}body[data-theme=tech] .js-footer-heading{flex-direction:column;align-items:flex-start;gap:20px;padding-bottom:30px}body[data-theme=tech] .js-footer-bottom nav{gap:15px}body[data-theme=tech] .section-label{padding-top:35px}body[data-theme=tech] .section-label>span{font-size:8px}}@media (prefers-reduced-motion:reduce){body[data-theme=tech] *,body[data-theme=tech] :before{scroll-behavior:auto!important;transition:none!important}body[data-theme=tech] .card:hover{transform:none}}body[data-site=doublesharp][data-theme=tech] .justin-intro h1{letter-spacing:-.06em;font-size:clamp(50px,5.65vw,78px)}@media (width<=760px){body[data-site=doublesharp][data-theme=tech] .justin-intro h1{font-size:clamp(42px,8.5vw,60px)}}
