@font-face {
  font-family:"DM Sans";
  src:url("/assets/fonts/dm-sans.woff2") format("woff2");
  font-style:normal;
  font-weight:400 800;
  font-display:swap;
}

@font-face {
  font-family:"Instrument Serif";
  src:url("/assets/fonts/instrument-serif.woff2") format("woff2");
  font-style:normal;
  font-weight:400;
  font-display:swap;
}

@font-face {
  font-family:"Instrument Serif";
  src:url("/assets/fonts/instrument-serif-italic.woff2") format("woff2");
  font-style:italic;
  font-weight:400;
  font-display:swap;
}

:root {
  --paper:#faf9f6;
  --ink:#172f35;
  --muted:#556668;
  --line:#d9ddd6;
  --blue:#006cae;
  --forest:#173b3c;
  --serif:"Instrument Serif",Georgia,serif;
  --sans:"DM Sans",Arial,sans-serif;
  --radius:5px;
  color-scheme:light;
}

* {
  box-sizing:border-box;
}

html {
  scroll-behavior:smooth;
  scroll-padding-top:20px;
}

body {
  margin:0;
  color:var(--ink);
  background:var(--paper);
  font:16px/1.55 var(--sans);
  -webkit-font-smoothing:antialiased;
}

a {
  color:inherit;
  text-decoration:none;
}

a:hover {
  text-decoration:underline;
  text-underline-offset:.22em;
}

a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible {
  outline:3px solid #df8c28;
  outline-offset:4px;
}

button,input {
  font:inherit;
}

button {
  cursor:pointer;
}

img {
  max-width:100%;
  display:block;
}

[hidden] {
  display:none!important;
}

h1,h2,h3,p,figure {
  margin:0;
}

h1,h2,h3 {
  font-weight:400;
}

.shell {
  width:min(1248px,calc(100% - clamp(48px,11vw,184px)));
  margin-inline:auto;
}

.skip {
  position:absolute;
  left:12px;
  top:-90px;
  padding:10px 16px;
  background:white;
  color:var(--ink);
  z-index:12;
}

.skip:focus {
  top:8px;
}

header.site {
  background:#fff;
  border-bottom:1px solid #e4e6df;
  position:relative;
  z-index:4;
}

.headbar {
  height:74px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:28px;
}

.brand {
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-size:29px;
  font-weight:800;
  letter-spacing:-1.75px;
  line-height:1;
  color:#17343c;
}

.brand:hover {
  text-decoration:none;
}

.brand img {
  width:37px;
  height:37px;
  object-fit:contain;
}

.navset,.site-nav {
  display:flex;
  align-items:center;
  gap:32px;
}

.site-nav a {
  font-size:14px;
  font-weight:600;
  white-space:nowrap;
}

.site-nav a[aria-current=page] {
  color:var(--blue);
}

.btn,.store-top {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  min-height:47px;
  padding:11px 19px;
  border:1px solid transparent;
  border-radius:var(--radius);
  font-size:14px;
  font-weight:700;
  line-height:1.25;
  transition:background .18s;
}

.btn:hover,.store-top:hover {
  text-decoration:none;
}

.store-top {
  min-height:38px;
  background:var(--ink);
  color:#fff;
  padding:8px 15px;
  gap:10px;
  font-size:13px;
}

.store-top:hover,.btn.dark:hover {
  background:#315456;
}

.btn.light {
  background:#fff;
  color:#172f35;
}

.btn.light:hover {
  background:#eaece5;
}

.btn.dark {
  background:var(--ink);
  color:white;
}

.btn.line {
  border-color:#bcc5c1;
  color:var(--ink);
}

.ico {
  display:inline-block;
  width:1.06em;
  height:1.06em;
  vertical-align:-.15em;
  flex:none;
}

.btn .apple {
  height:1.22em;
  width:1.22em;
}

.mobile-menu {
  display:none;
}

.hero {
  position:relative;
  background:#344244;
  color:white;
  isolation:isolate;
  overflow:hidden;
}

.hero-slide {
  position:relative;
  min-height:clamp(500px,39vw,598px);
  display:flex;
  align-items:center;
  padding:62px 0 95px;
}

.hero-image,.hero-shade {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 47%;
  z-index:-2;
}

.hero-shade {
  z-index:-1;
  background:linear-gradient(90deg,rgba(13,28,30,.88) 0%,rgba(16,29,30,.64) 28%,rgba(18,30,30,.19) 56%,rgba(14,26,26,.02) 82%),linear-gradient(0deg,rgba(14,30,30,.55),transparent 25%);
}

.hero-copy {
  max-width:640px;
}

.label,.meta,.eyebrow {
  font-size:11px;
  font-weight:750;
  letter-spacing:.15em;
  text-transform:uppercase;
  line-height:1.4;
}

.eyebrow {
  display:flex;
  align-items:center;
  gap:10px;
  color:#f5d097;
}

.eyebrow::before {
  content:"";
  height:2px;
  width:29px;
  background:#f0af5c;
}

.hero h1,.hero .feature-title {
  font-family:var(--serif);
  font-size:clamp(72px,7.7vw,118px);
  line-height:.94;
  letter-spacing:-.034em;
  margin:17px 0 18px;
  font-weight:400;
}

.feature-title em,.hero h1 em {
  font-weight:400;
}

.hero-copy p {
  max-width:440px;
  font-size:clamp(15px,1.12vw,18px);
  line-height:1.5;
  color:#f1f2eb;
  text-wrap:pretty;
}

.hero-actions {
  display:flex;
  align-items:center;
  gap:24px;
  margin-top:22px;
}

.sub-link {
  display:inline-flex;
  align-items:center;
  gap:7px;
  font-weight:650;
  font-size:14px;
}

.sub-link:hover {
  color:var(--blue);
}

.hero .sub-link:hover {
  color:#fff;
}

.hero-base {
  position:absolute;
  bottom:23px;
  left:0;
  right:0;
  display:flex;
  justify-content:space-between;
  align-items:center;
  pointer-events:none;
}

.place-label {
  display:flex;
  align-items:center;
  gap:7px;
  color:#fff;
  font-weight:600;
  font-size:12px;
}

.place-label .ico {
  width:15px;
  height:15px;
}

.place-label .coords {
  font-size:11px;
  letter-spacing:.045em;
  padding-left:10px;
  margin-left:4px;
  border-left:1px solid #ffffff70;
  color:#f2f0ea;
  font-variant-numeric:tabular-nums;
}

.slide-tools {
  display:flex;
  gap:9px;
  align-items:center;
  pointer-events:auto;
}

.slide-count {
  font-variant-numeric:tabular-nums;
  font-size:12px;
  letter-spacing:.12em;
  margin-right:5px;
}

.round {
  width:38px;
  height:38px;
  border:1px solid #ffffff80;
  color:#fff;
  background:#23323344;
  display:grid;
  place-items:center;
  border-radius:50%;
}

.round:hover {
  background:#ffffff2b;
}

.section {
  padding:58px 0 64px;
}

.section-head {
  display:flex;
  justify-content:space-between;
  gap:20px;
  align-items:baseline;
  margin-bottom:22px;
}

.display {
  font-family:var(--serif);
  font-size:clamp(43px,4.2vw,64px);
  line-height:1.02;
  letter-spacing:-.035em;
}

.section-head .sub-link {
  margin-left:auto;
}

.filters {
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  margin:0 0 24px;
}

.filter {
  border-radius:50px;
  border:1px solid #d3d9d3;
  color:#3e5353;
  background:transparent;
  padding:7px 15px;
  min-height:36px;
  font-size:13px;
  font-weight:600;
  display:inline-flex;
  align-items:center;
}

.filter:hover {
  background:#eff0e9;
  text-decoration:none;
}

.filter[aria-pressed=true] {
  border-color:var(--forest);
  background:var(--forest);
  color:white;
}

.app-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:32px 23px;
}

.app-card {
  min-width:0;
}

.card-pic {
  position:relative;
  display:block;
  overflow:hidden;
  border-radius:var(--radius);
  background:#d9ded2;
  aspect-ratio:1.85;
}

.card-pic img {
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .45s ease;
}

.card-pic:hover img {
  transform:scale(1.035);
}

.card-caption {
  padding:15px 0 0;
}

.app-summary {
  margin-top:8px;
  color:var(--muted);
  font-size:14px;
  line-height:1.5;
}

.meta {
  display:flex;
  align-items:center;
  gap:8px;
  font-size:10px;
  color:#426164;
  letter-spacing:.12em;
}

.dot {
  width:3px;
  height:3px;
  background:#788e8c;
  border-radius:50%;
}

.app-title {
  display:flex;
  align-items:baseline;
  gap:10px;
  justify-content:space-between;
  margin-top:5px;
}

.app-card h3,.read-card h3 {
  font-family:var(--serif);
  font-size:clamp(26px,2.2vw,35px);
  line-height:1.13;
  letter-spacing:-.02em;
}

.app-title>a {
  padding:0 2px;
  font-size:16px;
}

.journal-band {
  background:#ecede5;
  border-block:1px solid #e1e3d8;
}

.journal-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:24px;
}

.read-card .card-pic {
  aspect-ratio:1.94;
}

.read-card .meta {
  margin:14px 0 7px;
}

footer {
  background:var(--forest);
  color:#edf1e9;
  padding:44px 0 25px;
}

.footer-main,.footer-bottom {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:20px;
}

footer .brand {
  color:white;
  font-size:26px;
}

footer .brand img {
  border-radius:5px;
  width:31px;
  height:31px;
}

.footer-links {
  display:flex;
  flex-wrap:wrap;
  gap:12px 22px;
  font-size:14px;
}

.footer-bottom {
  margin-top:28px;
  border-top:1px solid #ffffff36;
  padding-top:18px;
  align-items:center;
  font-size:12px;
  color:#d0dbd3;
}

.footer-bottom .footer-links {
  font-size:12px;
}

.inner-hero {
  padding:50px 0 26px;
}

.crumb {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:8px;
  margin-bottom:24px;
  color:#556b6c;
  font-size:12px;
  font-weight:600;
}

.crumb .ico {
  height:11px;
  width:11px;
}

.inner-hero h1,.page-title {
  font:400 clamp(52px,5.8vw,87px)/1.01 var(--serif);
  letter-spacing:-.035em;
}

.lead {
  font-size:18px;
  color:var(--muted);
  max-width:650px;
  line-height:1.55;
  margin:15px 0 0;
}

.catalog-page {
  padding:8px 0 65px;
}

.detail-grid {
  display:grid;
  grid-template-columns:1.03fr 1fr;
  gap:clamp(30px,5vw,80px);
  align-items:center;
  padding-bottom:43px;
}

.detail-grid .main-img {
  aspect-ratio:1.36;
  object-fit:cover;
  width:100%;
  border-radius:var(--radius);
}

.detail-grid h1 {
  font-size:clamp(50px,5vw,76px);
}

.detail-grid .btn {
  margin-top:22px;
}

.detail-tag {
  display:flex;
  align-items:center;
  gap:12px;
  margin-bottom:17px;
}

.app-icon {
  width:45px;
  height:45px;
  border-radius:10px;
}

.detail-text {
  padding:30px 0 45px;
  border-top:1px solid var(--line);
  display:grid;
  grid-template-columns:.75fr 1.25fr;
  gap:45px;
}

.detail-text h2,.archive-head {
  font:400 38px/1.08 var(--serif);
  letter-spacing:-.02em;
}

.detail-text ul,.detail-text p {
  margin:0;
}

.detail-text ul {
  padding-left:1.25em;
}

.detail-text li+li {
  margin-top:8px;
}

.app-story {
  max-width:68ch;
  line-height:1.72;
}

.app-story p + p {
  margin-top:1em;
}

.journal-list {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  column-gap:36px;
}

.journal-row {
  display:grid;
  grid-template-columns:1fr auto;
  gap:12px;
  align-items:center;
  border-top:1px solid var(--line);
  padding:20px 0;
}

.journal-row h2 {
  font:400 clamp(23px,2.3vw,34px)/1.08 var(--serif);
  letter-spacing:-.015em;
  margin-top:5px;
}

.journal-row p {
  color:var(--muted);
  font-size:14px;
  margin-top:7px;
}

.journal-row .row-pic {
  width:89px;
  height:72px;
  object-fit:cover;
  border-radius:3px;
}

.journal-controls {
  display:flex;
  justify-content:space-between;
  gap:25px;
  align-items:flex-start;
  flex-wrap:wrap;
  margin:0 0 15px;
}

.journal-controls .filters {
  margin-bottom:0;
}

.searchbox {
  display:flex;
  align-items:center;
  border:1px solid #bbc6be;
  border-radius:4px;
  padding:2px 11px;
  gap:8px;
  min-height:36px;
  background:white;
}

.searchbox input {
  border:0;
  width:160px;
  background:transparent;
  color:var(--ink);
  font-size:14px;
}

.result-note {
  font-size:14px;
  color:var(--muted);
  margin:14px 0;
}

.reader {
  width:min(760px,calc(100% - 48px));
  margin:0 auto;
  padding:43px 0 68px;
}

.reader h1 {
  margin-bottom:25px;
}

.reader .meta {
  margin-bottom:10px;
  color:var(--blue);
}

.prose {
  font:17px/1.7 var(--sans);
  color:#273f42;
  overflow-wrap:anywhere;
}

.prose h1,.prose h2,.prose h3,.prose h4 {
  font:400 37px/1.13 var(--serif);
  letter-spacing:-.015em;
  margin:1em 0 .4em;
  color:var(--ink);
}

.prose h3,.prose h4 {
  font-size:29px;
}

.prose h4 {
  font-size:23px;
}

.prose p,.prose ul,.prose ol,.prose figure,.prose table,.prose blockquote {
  margin:0 0 1.1em;
}

.prose p:empty {
  display:none;
}

.prose a,.context-links a {
  color:#00669d;
  text-decoration:underline;
  text-underline-offset:.15em;
}

.prose img,.prose video,.prose iframe {
  max-width:100%;
  height:auto;
}

.prose iframe {
  width:100%;
  aspect-ratio:16/9;
  border:0;
}

.prose audio {
  max-width:100%;
}

.prose hr {
  border:0;
  border-top:1px solid var(--line);
  margin:24px 0;
}

.prose figcaption {
  font-size:13px;
  color:var(--muted);
  margin:.4em 0;
}

.prose blockquote {
  border-left:3px solid #83a49c;
  padding-left:18px;
}

.prose table {
  display:block;
  max-width:100%;
  overflow:auto;
  border-collapse:collapse;
}

.prose th,.prose td {
  border:1px solid var(--line);
  padding:6px 8px;
}

.prose ul,.prose ol {
  padding-left:1.4em;
}

.context-links {
  display:flex;
  flex-wrap:wrap;
  gap:16px;
  margin:16px 0 22px;
  font-size:14px;
}

.nojs-only {
  margin-top:12px;
}

@media(min-width:1600px) {
  .hero-slide {
    min-height:610px;
  }
}

@media(max-width:840px) {
  .shell {
    width:calc(100% - 48px);
  }
  .navset,.site-nav {
    gap:18px;
  }
  .hero-slide {
    min-height:485px;
  }
  .app-grid,.journal-grid {
    gap:25px 17px;
  }
  .detail-grid {
    grid-template-columns:1fr 1fr;
    gap:25px;
  }
  .footer-links {
    gap:10px 15px;
  }
  .section {
    padding:46px 0;
  }
  .hero-shade {
    background:linear-gradient(90deg,#0d2023d4,#10202399 42%,#192a2a22 85%),linear-gradient(0deg,#10242270,transparent 25%);
  }
}

@media(max-width:670px) {
  .shell {
    width:calc(100% - 36px);
  }
  .headbar {
    height:62px;
    gap:12px;
  }
  .brand {
    font-size:25px;
    gap:6px;
  }
  .brand img {
    width:31px;
    height:31px;
  }
  .mobile-menu {
    display:inline-flex;
    border:0;
    background:transparent;
    color:var(--ink);
    padding:9px;
    font-size:20px;
  }
  .navset {
    gap:4px;
  }
  .store-top {
    font-size:12px;
    min-height:34px;
    padding:7px 11px;
  }
  .site-nav {
    display:none;
    position:absolute;
    left:0;
    right:0;
    top:100%;
    background:#fff;
    padding:15px 22px;
    border-bottom:1px solid var(--line);
    box-shadow:0 5px 8px #1c35340c;
  }
  .site-nav.is-open {
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:0;
  }
  .site-nav.is-open a {
    padding:10px 0;
  }
  .hero-slide {
    min-height:492px;
    padding:47px 0 90px;
  }
  .hero-image {
    object-position:58% center;
  }
  .hero h1,.hero .feature-title {
    font-size:clamp(69px,15vw,90px);
  }
  .hero-copy p {
    max-width:350px;
    font-size:15px;
  }
  .hero-actions {
    gap:17px;
  }
  .hero-actions .btn {
    padding:11px 14px;
  }
  .hero-base {
    bottom:18px;
  }
  .place-label {
    font-size:11px;
  }
  .place-label .coords {
    display:none;
  }
  .round {
    width:33px;
    height:33px;
  }
  .slide-count {
    font-size:10px;
    margin:0;
  }
  .slide-tools {
    gap:5px;
  }
  .hero-shade {
    background:linear-gradient(90deg,#102026c9 0%,#1020268a 59%,#10202644),linear-gradient(0deg,#10202670,transparent 32%);
  }
  .app-grid,.journal-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:23px 14px;
  }
  .section {
    padding:36px 0 43px;
  }
  .section-head {
    gap:8px;
    margin-bottom:17px;
  }
  .section-head .sub-link {
    font-size:12px;
  }
  .display {
    font-size:41px;
  }
  .filters {
    gap:6px;
    margin:0 0 17px;
  }
  .filter {
    font-size:12px;
    min-height:32px;
    padding:6px 12px;
  }
  .card-pic {
    aspect-ratio:1.45;
  }
  .card-caption {
    padding-top:10px;
  }
  .meta {
    font-size:9px;
    letter-spacing:.08em;
    gap:5px;
  }
  .app-card h3,.read-card h3 {
    font-size:26px;
  }
  .app-title>a {
    display:none;
  }
  .journal-grid {
    grid-template-columns:1fr;
  }
  .read-card {
    display:grid;
    grid-template-columns:34% 1fr;
    gap:14px;
    align-items:center;
  }
  .read-card .card-pic {
    aspect-ratio:1.4;
  }
  .read-card .meta {
    margin:0 0 4px;
  }
  .footer-main,.footer-bottom {
    flex-direction:column;
    align-items:flex-start;
  }
  .footer-main {
    gap:21px;
  }
  .footer-bottom {
    gap:12px;
  }
  .inner-hero {
    padding:29px 0 22px;
  }
  .detail-grid,.detail-text,.journal-list {
    grid-template-columns:1fr;
  }
  .detail-grid {
    gap:23px;
    padding-bottom:18px;
  }
  .detail-grid .main-img {
    aspect-ratio:1.8;
  }
  .detail-text {
    padding:24px 0;
    gap:15px;
  }
  .journal-controls {
    gap:12px;
  }
  .journal-row .row-pic {
    width:72px;
    height:61px;
  }
  .reader {
    width:calc(100% - 36px);
    padding-top:27px;
  }
  .prose {
    font-size:16px;
  }
  .lead {
    font-size:16px;
  }
  .row-pic {
    width:75px;
  }
}

@media(max-width:380px) {
  .app-grid {
    grid-template-columns:1fr;
  }
  .card-pic {
    aspect-ratio:1.85;
  }
  .section-head {
    align-items:center;
  }
  .display {
    font-size:36px;
  }
  .hero-actions {
    gap:12px;
  }
  .sub-link {
    font-size:13px;
  }
}

@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto;
  }
  *,*::before,*::after {
    transition:none!important;
    animation:none!important;
  }
}

.sr-only {
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}

.prose .gallery,.prose .wp-block-columns {
  display:flex;
  flex-wrap:wrap;
  gap:16px;
  align-items:flex-start;
  margin:1em 0;
}

.prose .gallery-item,.prose .wp-block-column {
  flex:1 1 175px;
  min-width:0;
}

.prose .wp-block-column img {
  margin-inline:auto;
}

@media(max-width:670px) {
  .section-head .display {
    font-size:clamp(31px,8.9vw,40px);
  }
  .section-head .sub-link {
    white-space:nowrap;
  }
  .section-head {
    align-items:center;
  }
  .app-title h3 {
    overflow-wrap:break-word;
  }
}

@media(min-width:841px) {
  .hero-slide {
    min-height:clamp(450px,36vw,550px);
    padding:43px 0 76px;
  }
  .section:has(.app-grid) {
    padding-top:42px;
  }
}


.detail-text .guide-links {
  list-style: none;
  padding-left: 0;
}
.guide-links a {
  color: var(--blue);
  text-decoration: underline;
  text-underline-offset: .15em;
}
.guide-links p {
  color: var(--muted);
  font-size: 14px;
  margin-top: 3px;
}
.guide-links li + li {
  margin-top: 15px;
}
.article-apps {
  margin-top: 30px;
  padding-top: 6px;
  border-top: 1px solid var(--line);
}
