/* Public editorial system: paper, serif display type, and real product imagery. */
.public-site{--editorial:Georgia,'Times New Roman',serif}
.public-site .wrap{max-width:1440px}
.public-header{min-height:100px;gap:28px}
.public-header .wordmark{font-size:32px}
.public-nav{gap:32px;font-size:15px;flex-wrap:nowrap}
.public-nav a{min-height:44px;white-space:nowrap}
.public-nav a[aria-current=page]{text-decoration:underline;text-underline-offset:7px}
.footer-search{background:none;border:0;padding:8px 0;color:inherit;font:12px/1.5 var(--sans);text-decoration:underline;text-underline-offset:.28em;min-height:44px}
.home-intro{display:grid;grid-template-columns:minmax(0,2fr) minmax(250px,.8fr);gap:60px;align-items:end;padding-top:40px;padding-bottom:60px}
.home-intro h1{font:400 clamp(60px,8.7vw,120px)/1.04 var(--editorial);letter-spacing:-.065em;margin:0}
.home-intro h1 em{font-weight:400;white-space:nowrap}
.intro-line{font-size:17px;line-height:1.65;color:var(--muted);max-width:360px}
.intro-line a{color:var(--ink);text-decoration:none}
.intro-line a:hover{text-decoration:underline}
.simple-link{display:inline-flex;gap:16px;align-items:center;min-height:44px;font-size:14px;margin-top:20px;text-underline-offset:4px}
.home-section{padding-bottom:84px}
.home-section-heading{display:flex;justify-content:space-between;align-items:baseline;gap:24px;padding-top:26px;border-top:1px solid var(--line);margin-bottom:26px}
.home-section-heading h2{font:400 40px/1.2 var(--editorial);letter-spacing:-.045em}
.home-section-heading>a{display:inline-flex;gap:10px;align-items:center;min-height:44px;font-size:14px;color:var(--moss);text-decoration:none;white-space:nowrap}
.home-section-heading>a:hover{text-decoration:underline}
.work-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:54px 34px}
.work-piece{min-width:0}
.work-piece-lead,.work-piece-wide{grid-column:1/-1}
.work-art{display:flex;align-items:center;justify-content:center;gap:28px;width:100%;aspect-ratio:1.5;padding:30px;overflow:hidden;background:#e6e5df;border-radius:4px;text-decoration:none}
.work-art img{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}
.work-piece-lead .work-art{aspect-ratio:auto;height:clamp(480px,51vw,640px);padding:32px;gap:60px}
.art-voxora{background:#dce2d3}
.art-voxora img{width:auto;height:100%;max-width:calc(50% - 30px);border-radius:7px;filter:drop-shadow(0 3px 5px #22251f20)}
.art-jnc{background:#e7e6e1}
.art-jnc img{width:100%;border-radius:3px;box-shadow:0 8px 24px #22251f0d}
.art-alter{background:#dce5d0;gap:24px;padding:24px}
.art-alter img{width:calc(50% - 12px);height:100%}
.art-flightdetector{background:#dfe4e4;padding:26px}
.art-flightdetector img{width:100%}
.art-kalamna{background:#eee2ef}
.art-timestop{background:#e1e5ed}
.art-kalamna img,.art-timestop img{height:100%;max-width:85%}
.art-mail{background:#e1e3e5}
.art-cli{background:#e0e1d7}
.work-piece-wide .work-art{aspect-ratio:2.6;padding:32px 80px}
.art-mail img,.art-cli img{width:100%;height:100%}
.work-caption{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px;padding-top:23px}
.work-caption h3{font:400 34px/1.08 var(--editorial);letter-spacing:-.045em}
.work-caption h3 a{text-decoration:none}
.work-caption h3 a:hover{text-decoration:underline;text-decoration-thickness:1px}
.work-piece-lead .work-caption h3{font-size:48px}
.work-kind{font:10px/1.65 var(--mono);letter-spacing:.09em;text-transform:uppercase;color:var(--muted);margin-top:12px}
.work-description p{font-size:15px;line-height:1.6;color:var(--muted);max-width:390px}
.work-link{display:inline-flex;gap:8px;align-items:center;min-height:44px;font-size:13px;color:var(--moss);margin-top:4px}
.work-source{font:11px/1.6 var(--sans);color:var(--muted);margin-top:10px}
.work-piece-lead{padding-bottom:4px}
.work-piece-lead .work-caption{grid-template-columns:1fr 1fr}
.recent-notes{display:grid;grid-template-columns:1fr 1fr;gap:64px}
.recent-notes .note,.recent-notes .note+.note{border:0;padding:4px 0}
.recent-notes .note-category{font-size:10px;letter-spacing:.09em}
.recent-notes .note h3{font:400 34px/1.18 var(--editorial);letter-spacing:-.035em;margin-top:18px;max-width:530px}
.recent-notes .note-summary{font:17px/1.65 var(--sans);margin-top:20px;max-width:520px}
.recent-notes .text-link{font:14px/1.5 var(--sans);border:0;margin-top:20px;min-height:44px}
.recent-notes .text-link:hover{text-decoration:underline}
.writing-aside{font-size:14px;line-height:1.6;color:var(--muted);margin-top:28px}
.home-about{display:grid;grid-template-columns:200px 1fr;gap:56px;align-items:center;padding-top:0;padding-bottom:60px}
.home-about img{width:200px;height:240px;object-fit:cover;object-position:50% 20%;border-radius:4px}
.home-about h2{font:400 46px/1.1 var(--editorial);letter-spacing:-.045em}
.home-about p{font-size:18px;line-height:1.7;color:var(--muted);max-width:780px;margin-top:24px}
.profile-links{display:flex;flex-wrap:wrap;gap:8px 24px;margin-top:20px;font-size:14px}
.profile-links a{display:inline-flex;align-items:center;min-height:44px;text-decoration:none;color:var(--moss)}
.profile-links a:hover{text-decoration:underline}
.home-contact{padding-bottom:40px}
.home-contact h2{font:400 58px/1.15 var(--editorial);letter-spacing:-.045em;border-top:1px solid var(--line);padding-top:34px}
.home-contact>a{display:inline-flex;gap:16px;align-items:center;font-size:32px;letter-spacing:-.03em;min-height:44px;margin-top:14px;text-decoration:none;color:var(--moss)}
.home-contact>a:hover{text-decoration:underline}
.public-site .small-contact{background:var(--paper);color:var(--ink);padding-block:0 22px}
.public-site .site-footer{gap:26px;padding-top:22px;padding-bottom:12px;position:relative;font-family:var(--sans)}
.public-site .site-footer::before{content:'';position:absolute;height:1px;left:var(--gutter);right:var(--gutter);top:0;background:var(--line)}
.public-site .footer-rule{background:transparent}
.public-site .site-footer .wordmark{font-weight:650;font-size:27px}
.public-site .site-footer .wordmark span{color:var(--moss)}
.public-site .footer-credit{color:var(--muted);gap:22px}
.public-site .small-contact a:hover{color:var(--moss)}
.public-site .small-contact a:focus-visible{outline-color:var(--moss)}
.collection-intro{display:flex;align-items:end;justify-content:space-between;gap:50px;padding-top:56px;padding-bottom:64px}
.collection-intro h1{font:400 88px/1.05 var(--editorial);letter-spacing:-.055em}
.collection-intro p{font-size:18px;line-height:1.65;color:var(--muted);max-width:360px;margin-bottom:5px}
.collection-intro a{display:inline-flex;align-items:center;min-height:44px;font-size:14px;margin-top:14px;color:var(--moss)}
.projects-page .work-gallery{margin-bottom:60px}
.project-more{font:14px/1.7 var(--sans);margin-top:0;margin-bottom:40px}
.screens-library{border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:72px}
.screens-library>summary{display:flex;align-items:center;justify-content:space-between;gap:30px;cursor:pointer;padding-block:26px;font:400 30px/1.25 var(--editorial);letter-spacing:-.025em;list-style:none}
.screens-library>summary::-webkit-details-marker{display:none}
.screens-library>summary span{font:24px/1 var(--sans);transition:transform .2s}
.screens-library[open]>summary span{transform:rotate(45deg)}
.projects-page .feature{border:0;margin:0;padding-top:12px;padding-bottom:36px}
.projects-page .feature-heading h2{font:400 38px/1.15 var(--editorial);letter-spacing:-.03em}
.projects-page .feature-copy h3{font:400 36px/1.15 var(--editorial);letter-spacing:-.03em}
.projects-page .feature-description{font-size:18px}
.projects-page .feature .section-label{font-size:11px}
.writing-tabs{display:flex;gap:28px;border-bottom:1px solid var(--line);margin-bottom:32px}
.writing-tabs a{display:inline-flex;align-items:center;min-height:48px;font-size:15px;text-decoration:none;color:var(--muted);border-bottom:2px solid transparent}
.writing-tabs a[aria-current=page]{border-color:var(--ink);color:var(--ink)}
.public-site .desk-title,.public-site .lab-intro h1,.public-site .article-title{font:400 clamp(48px,5.6vw,80px)/1.08 var(--editorial);letter-spacing:-.045em}
.public-site .public-post h2{font:400 clamp(28px,3vw,40px)/1.17 var(--editorial);letter-spacing:-.035em}
.public-site .public-index-heading{padding-bottom:42px}
.public-site .lab-page{padding-top:52px}
.public-site .lab-intro{padding-bottom:42px}
.public-site .lab-deck{font-size:20px;max-width:580px;margin-top:24px}
.public-site .lab-experiment-intro h2{font-family:var(--editorial);font-weight:400;letter-spacing:-.04em}
@media(max-width:1000px){
  .home-intro{grid-template-columns:1fr;gap:26px;padding-top:42px;padding-bottom:52px}
  .home-intro h1{font-size:clamp(58px,9vw,90px)}
  .intro-aside{display:flex;align-items:end;justify-content:space-between;gap:30px}
  .intro-line{max-width:480px}
  .simple-link{white-space:nowrap;margin-top:0}
  .work-gallery{gap:42px 26px}
  .work-art{padding:20px}
  .work-piece-lead .work-art{gap:32px;padding:28px;aspect-ratio:2}
  .art-alter{gap:14px;padding:18px}
  .work-caption{grid-template-columns:1fr;gap:16px}
  .work-piece-lead .work-caption{grid-template-columns:1fr 1fr}
  .recent-notes{gap:40px}
  .collection-intro h1{font-size:72px}
  .collection-intro{gap:30px;padding-top:42px;padding-bottom:46px}
}
@media(max-width:700px){
  .public-header{padding-top:24px;padding-bottom:12px;gap:17px;align-items:flex-start;min-height:0}
  .public-header .wordmark{font-size:29px}
  .public-nav{width:100%;gap:0;justify-content:space-between;font-size:14px;flex-wrap:nowrap}
  .public-nav a{min-height:44px}
  .home-intro{padding-top:36px;padding-bottom:38px;gap:24px}
  .home-intro h1{font-size:clamp(38px,10.7vw,70px);letter-spacing:-.06em;line-height:1.08}
  .intro-aside{display:block}
  .intro-line{font-size:16px;line-height:1.65;max-width:400px}
  .simple-link{margin-top:14px;font-size:13px}
  .home-section{padding-bottom:50px}
  .home-section-heading{gap:12px;padding-top:20px;margin-bottom:18px}
  .home-section-heading h2{font-size:29px}
  .home-section-heading>a{font-size:12px;gap:5px}
  .work-gallery{grid-template-columns:1fr;gap:36px}
  .work-piece-lead,.work-piece-wide{grid-column:auto}
  .work-art{aspect-ratio:1.2;padding:22px}
  .work-piece-lead .work-art{aspect-ratio:1.15;height:auto;padding:20px;gap:18px}
  .art-voxora img{width:calc(50% - 9px);max-width:calc(50% - 9px);height:100%;border-radius:3px}
  .art-alter{padding:18px;gap:14px}
  .work-caption,.work-piece-lead .work-caption{grid-template-columns:1fr;gap:13px;padding-top:18px}
  .work-caption h3,.work-piece-lead .work-caption h3{font-size:34px}
  .work-kind{font-size:9px;letter-spacing:.06em;margin-top:8px}
  .work-description p{font-size:15px;max-width:400px}
  .work-link{font-size:13px;margin-top:2px}
  .work-source{font-size:10px;margin-top:4px}
  .work-piece-wide .work-art{aspect-ratio:1.25;padding:20px}
  .recent-notes{grid-template-columns:1fr;gap:28px}
  .recent-notes .note+.note{border-top:1px solid var(--line);padding-top:28px}
  .recent-notes .note h3{font-size:30px}
  .recent-notes .note-summary{font-size:16px;margin-top:16px}
  .writing-aside{margin-top:22px;font-size:13px}
  .home-about{grid-template-columns:1fr;gap:25px;padding-bottom:44px}
  .home-about img{width:132px;height:160px}
  .home-about h2{font-size:35px}
  .home-about p{font-size:16px;margin-top:16px}
  .profile-links{gap:0 20px;font-size:12px;margin-top:12px}
  .home-contact{padding-bottom:26px}
  .home-contact h2{font-size:38px;padding-top:25px}
  .home-contact>a{font-size:26px;margin-top:10px}
  .public-site .footer-credit{justify-content:flex-start;gap:4px 20px}
  .public-site .footer-credit>span{flex-basis:100%}
  .public-site .footer-search{font-size:11px}
  .collection-intro{display:block;padding-top:32px;padding-bottom:36px}
  .collection-intro h1{font-size:56px}
  .collection-intro p{font-size:16px;margin-top:22px}
  .projects-page .work-gallery{margin-bottom:40px}
  .screens-library{margin-bottom:44px}
  .screens-library>summary{font-size:26px;padding-block:23px}
  .projects-page .feature-heading h2{font-size:31px}
  .projects-page .feature-copy h3{font-size:30px}
  .public-site .lab-page{padding-top:32px}
  .public-site .lab-intro h1{font-size:51px}
  .public-site .lab-deck{font-size:18px}
  .public-site .lab-jump{gap:6px 25px;font-size:13px;margin-top:24px}
  .public-site .lab-local{font-size:12px}
}
@media(prefers-reduced-motion:reduce){.screens-library>summary span{transition:none}}

/* Illustrated build logs inherit the site's paper, ink, and editorial type. */
.article-body .article-figure{margin:40px 0;max-width:100%}
.article-body .article-figure>a{display:block;line-height:0}
.article-body img{display:block;max-width:100%;height:auto;border:1px solid var(--line);border-radius:4px}
.article-body figcaption{font:13px/1.65 var(--sans);letter-spacing:0;color:var(--muted);margin-top:12px}
.article-body .article-figure-phone{max-width:340px;margin-inline:auto}
.article-body .article-figure-diagram img{background:#fff}
.public-site .article-body h2{font:400 34px/1.2 var(--editorial);letter-spacing:-.035em;margin-top:52px}
.article-body table{font-size:17px;line-height:1.55;margin-block:26px}
.home-build-log .log-teasers{border-top:0}
.home-build-log .log-teaser:first-child{padding-top:8px}
.home-build-log .log-teaser h3{font:400 30px/1.2 var(--editorial);letter-spacing:-.03em}
.home-build-log .log-teaser p{font-size:16px}
.art-youtogether{background:#e4e1d9;padding:20px;aspect-ratio:1.2}
.art-youtogether img{max-height:100%;border-radius:4px}
@media(max-width:700px){.article-body .article-figure{margin-block:30px}.article-body figcaption{font-size:12px}.public-site .article-body h2{font-size:29px;margin-top:38px}.article-body table{font-size:15px}.home-build-log .log-teaser h3{font-size:28px}}
