:root {
  --ink: #171714;
  --paper: #f7f3eb;
  --stone: #d9d0c4;
  --cream: #fffdf8;
  --line: rgba(23, 23, 20, 0.18);
  --serif: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;
  --sans: "Helvetica Neue", Helvetica, Arial, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--sans);
  font-size: 16px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
button, input, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button { color: inherit; }
a { color: inherit; text-decoration: none; }
img { display: block; width: 100%; }

.site-frame {
  width: 100%;
  margin: 0;
  overflow: hidden;
  background: var(--paper);
}

.hero { min-height: 650px; position: relative; color: #fff; isolation: isolate; }
.hero-image { position: absolute; inset: 0; height: 100%; object-fit: cover; object-position: center; z-index: -2; }
.hero-shade { position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(12,12,10,.66) 0%, rgba(12,12,10,.22) 57%, rgba(12,12,10,.06) 100%); }
.hero-topline { display: flex; align-items: center; padding: 30px 52px; }
.wordmark { font-size: 14px; font-weight: 700; letter-spacing: .22em; }
.social-links { display: flex; align-items: center; gap: 11px; }
.social-links a { width: 35px; height: 35px; display: grid; place-items: center; border: 1px solid currentColor; border-radius: 50%; transition: background .2s, color .2s, transform .2s; }
.social-links a:hover { transform: translateY(-2px); }
.social-links svg { width: 17px; height: 17px; }
.hero-socials { margin-left: auto; color: #fff; }
.hero-socials a { border-color: rgba(255,255,255,.58); background: rgba(17,17,15,.08); }
.hero-socials a:hover { background: #fff; color: var(--ink); }
.menu-button { display: none; border: 1px solid rgba(255,255,255,.7); background: rgba(0,0,0,.12); color: #fff; border-radius: 999px; padding: 9px 16px; font-size: 13px; text-transform: uppercase; letter-spacing: .12em; }
.hero-copy { width: min(650px, 70%); padding: 104px 52px 70px; }
.eyebrow { margin: 0 0 18px; font-size: 12px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; }
.eyebrow.light { color: rgba(255,255,255,.82); }
h1, h2, h3, p { margin-top: 0; }
h1, h2 { font-family: var(--serif); font-weight: 400; letter-spacing: -.035em; line-height: .96; }
h1 { font-size: clamp(50px, 6vw, 78px); margin-bottom: 24px; }
h1 em, h2 em { font-weight: 400; }
.hero-intro { max-width: 470px; font-size: 18px; line-height: 1.55; margin-bottom: 34px; color: rgba(255,255,255,.9); }
.button { display: inline-flex; align-items: center; gap: 28px; min-height: 48px; padding: 0 20px; border: 1px solid currentColor; font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; transition: background .2s, color .2s; }
.button-light { background: #fff; color: var(--ink); border-color: #fff; }
.button-light:hover { background: transparent; color: #fff; }

.main-nav { min-height: 66px; display: flex; align-items: center; justify-content: space-evenly; gap: 28px; border-bottom: 1px solid var(--line); background: var(--cream); }
.main-nav a { font-size: 12px; text-transform: uppercase; font-weight: 700; letter-spacing: .13em; position: relative; }
.main-nav a::after { content: ""; position: absolute; left: 0; right: 100%; bottom: -7px; height: 1px; background: var(--ink); transition: right .2s; }
.main-nav a:hover::after { right: 0; }

.section-pad { padding: 112px 8%; }
.about { display: grid; grid-template-columns: minmax(0, .92fr) minmax(340px, .72fr); align-items: center; gap: 9%; background: var(--cream); }
.about-copy { max-width: 550px; }
.about h2, .section-heading h2, .journey-heading h2, .letters h2 { font-size: clamp(42px, 4.8vw, 62px); margin-bottom: 30px; }
.about .lead { font-family: var(--serif); font-size: 24px; line-height: 1.4; margin-bottom: 20px; }
.about-copy > p:not(.eyebrow):not(.lead) { max-width: 530px; color: #514c45; }
.about-photo { margin: 0; }
.about-photo img { aspect-ratio: 4 / 5; object-fit: cover; }
.about-photo figcaption { margin-top: 10px; font-size: 12px; text-transform: uppercase; letter-spacing: .12em; }
.text-link { width: fit-content; display: inline-flex; gap: 32px; align-items: center; margin-top: 18px; padding: 7px 0; background: none; border: 0; border-bottom: 1px solid var(--ink); font-family: var(--serif); font-size: 17px; font-style: italic; cursor: pointer; }
.text-link span { transition: transform .2s; }
.text-link:hover span { transform: translate(3px, -3px); }

.manifesto { padding: 64px 7%; background: var(--stone); text-align: center; }
.manifesto > p { max-width: 880px; margin: 0 auto 34px; font-family: var(--serif); font-size: clamp(27px, 3.2vw, 39px); line-height: 1.2; font-style: italic; }
.place-row { display: flex; justify-content: center; flex-wrap: wrap; gap: 14px 56px; }
.place-row span { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .16em; }

.journey-lab { min-height: 780px; background: #e8e1d7; position: relative; overflow: hidden; padding: 105px 7%; display: grid; grid-template-columns: 42% 27% 31%; align-items: center; }
.journey-heading { max-width: 450px; align-self: start; padding-top: 70px; }
.journey-heading p:last-child { max-width: 390px; color: #514c45; }
.phone { border: 9px solid #111; border-radius: 40px; background: #111; box-shadow: 0 24px 50px rgba(28,23,18,.25); overflow: hidden; position: relative; }
.phone-notch { position: absolute; z-index: 4; top: 0; left: 50%; width: 42%; height: 24px; transform: translateX(-50%); background: #111; border-radius: 0 0 16px 16px; }
.phone-screen { height: 100%; background: var(--cream); border-radius: 31px; overflow: hidden; }
.phone-main { width: 310px; height: 635px; transform: rotate(-3deg); justify-self: center; }
.phone-feed { padding: 42px 22px 22px; }
.mini-brand { font-size: 12px; font-weight: 800; letter-spacing: .16em; margin-bottom: 18px; }
.mini-hero { height: 210px; position: relative; margin-bottom: 22px; }
.mini-hero img { height: 100%; object-fit: cover; }
.mini-hero span { position: absolute; left: 0; bottom: 0; background: var(--cream); padding: 7px 11px 5px 0; font-size: 12px; text-transform: uppercase; letter-spacing: .1em; }
.phone-feed h3 { font-family: var(--serif); font-size: 29px; line-height: 1; font-weight: 400; margin-bottom: 12px; }
.phone-feed p { font-size: 13px; line-height: 1.55; color: #565149; }
.mini-list { margin-top: 18px; border-top: 1px solid var(--line); }
.mini-list span { display: block; padding: 10px 0; border-bottom: 1px solid var(--line); font-size: 12px; }
.phone-pair { height: 610px; position: relative; }
.phone-small { position: absolute; width: 220px; height: 455px; left: 0; top: 0; transform: rotate(3deg); }
.phone-lower { left: 120px; top: 190px; transform: rotate(-2deg); }
.image-screen { position: relative; }
.image-screen > img { height: 100%; object-fit: cover; }
.screen-caption { position: absolute; left: 12px; right: 12px; bottom: 12px; padding: 12px; background: rgba(247,243,235,.92); }
.screen-caption span { display: block; font-size: 12px; text-transform: uppercase; letter-spacing: .12em; }
.screen-caption strong { display: block; margin-top: 3px; font-family: var(--serif); font-size: 18px; font-weight: 400; }

.posts { background: var(--cream); }
.section-heading { display: grid; grid-template-columns: 1.2fr .7fr; align-items: end; gap: 10%; margin-bottom: 68px; }
.section-heading h2 { margin-bottom: 0; }
.section-heading > p { max-width: 390px; margin-bottom: 8px; color: #514c45; }
.post-grid { display: grid; grid-template-columns: repeat(12, 1fr); gap: 70px 30px; align-items: start; }
.post-card { grid-column: span 4; }
.post-2 { margin-top: 86px; }
.post-image-button { display: block; padding: 0; width: 100%; border: 0; background: none; cursor: pointer; position: relative; overflow: hidden; }
.post-image-button img { aspect-ratio: 4 / 5; object-fit: cover; transition: transform .5s; }
.post-image-button:hover img { transform: scale(1.025); }
.collaboration-badge { position: absolute; z-index: 2; left: 12px; top: 12px; padding: 7px 10px; background: var(--cream); color: var(--ink); font-size: 12px; font-weight: 700; letter-spacing: .11em; line-height: 1; text-transform: uppercase; box-shadow: 0 5px 16px rgba(24,22,19,.12); }
.post-meta { display: flex; justify-content: space-between; gap: 16px; margin: 16px 0 12px; font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.post-card h3 { font-family: var(--serif); font-size: clamp(26px, 2.35vw, 33px); line-height: 1.08; font-weight: 400; margin-bottom: 14px; }
.post-card h3 a:hover, .post-list-copy h4 a:hover { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; }
.post-card > p { color: #5b554c; font-size: 15px; }
.more-posts { margin-top: 112px; padding-top: 66px; border-top: 1px solid var(--line); }
.more-posts-heading { display: flex; align-items: end; justify-content: space-between; gap: 40px; margin-bottom: 38px; }
.more-posts-heading .eyebrow { margin-bottom: 8px; }
.more-posts-heading h3 { margin: 0; font-family: var(--serif); font-size: clamp(34px, 3.4vw, 46px); font-weight: 400; line-height: 1; letter-spacing: -.025em; }
.archive-link { display: inline-flex; align-items: center; gap: 22px; padding: 9px 0; border-bottom: 1px solid currentColor; font-family: var(--serif); font-size: 17px; font-style: italic; white-space: nowrap; }
.archive-link span { transition: transform .2s; }
.archive-link:hover span { transform: translate(3px, -3px); }
.post-list-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.post-list-card { min-width: 0; display: grid; grid-template-columns: 155px minmax(0, 1fr); gap: 22px; padding: 18px; background: var(--paper); }
.post-list-image { position: relative; width: 100%; border: 0; padding: 0; background: none; overflow: hidden; cursor: pointer; }
.post-list-image img { height: 100%; min-height: 205px; object-fit: cover; transition: transform .45s; }
.post-list-image:hover img { transform: scale(1.03); }
.post-list-copy { min-width: 0; align-self: center; }
.post-list-copy .post-meta { margin: 0 0 9px; }
.post-list-copy h4 { margin: 0 0 10px; font-family: var(--serif); font-size: 25px; font-weight: 400; line-height: 1.08; }
.post-list-copy > p { margin-bottom: 14px; color: #5b554c; font-size: 14px; line-height: 1.5; }
.post-list-link { display: inline-block; padding: 0 0 3px; border: 0; border-bottom: 1px solid currentColor; background: none; font-family: var(--serif); font-size: 15px; font-style: italic; cursor: pointer; }
.pagination { margin-top: 42px; display: flex; align-items: center; justify-content: space-between; gap: 28px; }
.pagination > p { margin: 0; color: #686158; font-size: 12px; font-weight: 700; letter-spacing: .11em; text-transform: uppercase; }
.pagination-controls { display: flex; align-items: center; gap: 7px; }
.pagination-controls button { min-width: 38px; min-height: 38px; padding: 0 10px; border: 0; background: transparent; font-size: 13px; cursor: pointer; }
.pagination-controls button:first-child, .pagination-controls button:last-child { padding: 0 12px; font-weight: 700; }
.pagination-controls button.is-current { background: var(--ink); color: var(--cream); }
.pagination-controls button:hover:not(:disabled):not(.is-current) { background: var(--paper); }
.pagination-controls button:disabled { opacity: .35; cursor: default; }

.letters { min-height: 620px; display: grid; grid-template-columns: 1fr 1fr; background: #252522; color: #fff; }
.letters-image { overflow: hidden; }
.letters-image img { height: 100%; object-fit: cover; filter: saturate(.7); }
.letters-copy { padding: 90px 9%; align-self: center; }
.letters-copy > p:not(.eyebrow) { max-width: 480px; color: rgba(255,255,255,.75); }
.letters form { margin-top: 34px; }
.letters label { display: block; font-size: 12px; text-transform: uppercase; letter-spacing: .14em; margin-bottom: 8px; }
.email-row { display: flex; border-bottom: 1px solid rgba(255,255,255,.75); }
.email-row input { flex: 1; min-width: 0; border: 0; background: transparent; color: #fff; padding: 13px 0; outline: none; font-family: var(--serif); font-size: 18px; }
.email-row input::placeholder { color: rgba(255,255,255,.5); }
.email-row button { border: 0; background: transparent; color: #fff; padding: 13px 0 13px 20px; font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; cursor: pointer; }
.success-message { margin-top: 28px; border: 1px solid rgba(255,255,255,.55); padding: 18px; max-width: 480px; }

.contact { display: grid; grid-template-columns: .75fr 1.25fr; gap: 10%; background: var(--stone); }
.contact-copy { max-width: 430px; }
.contact h2 { margin: 0 0 24px; font-size: clamp(42px, 4.8vw, 62px); }
.contact-copy > p:last-child { color: #4f4942; }
.contact-copy strong { font-weight: 700; }
.contact-form label { display: block; margin-bottom: 25px; font-size: 12px; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.contact-form input, .contact-form textarea { display: block; width: 100%; margin-top: 8px; padding: 12px 0; border: 0; border-bottom: 1px solid rgba(23,23,20,.5); border-radius: 0; outline: none; background: transparent; color: var(--ink); font-family: var(--serif); font-size: 18px; line-height: 1.45; resize: vertical; }
.contact-form input:focus, .contact-form textarea:focus { border-bottom-color: var(--ink); box-shadow: 0 1px 0 var(--ink); }
.form-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; }
.contact-submit { margin-top: 4px; background: var(--ink); color: #fff; border-color: var(--ink); cursor: pointer; }
.contact-submit:hover { background: transparent; color: var(--ink); }
.contact-success { align-self: center; min-height: 290px; padding: 52px; background: var(--cream); }
.contact-success h3 { margin: 0 0 14px; font-family: var(--serif); font-size: 38px; font-weight: 400; }

footer { background: var(--cream); padding: 60px 7% 28px; display: grid; grid-template-columns: 1fr 1fr; gap: 48px; }
.footer-brand > span { font-size: 20px; font-weight: 800; letter-spacing: .16em; }
.footer-brand p { max-width: 350px; margin: 10px 0 0; color: #625b52; font-family: var(--serif); font-size: 18px; }
.footer-socials { margin-top: 24px; }
.footer-socials a { border-color: var(--line); }
.footer-socials a:hover { background: var(--ink); color: var(--cream); border-color: var(--ink); }
.footer-links { display: flex; flex-wrap: wrap; justify-content: flex-end; align-items: flex-start; gap: 16px 28px; }
.footer-links a, .footer-links button, .footer-links span { border: 0; background: none; padding: 0; font-size: 12px; text-transform: uppercase; letter-spacing: .1em; cursor: pointer; }
.footer-links a:hover, .footer-links button:hover { text-decoration: underline; }
.copyright { grid-column: 1 / -1; border-top: 1px solid var(--line); margin: 10px 0 0; padding-top: 18px; font-size: 12px; }

.back-to-top { position: fixed; z-index: 29; right: 24px; bottom: 24px; width: 66px; height: 66px; padding: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1px; border: 1px solid rgba(255,255,255,.28); border-radius: 50%; background: var(--ink); color: #fff; box-shadow: 0 10px 28px rgba(18,18,16,.22); opacity: 0; pointer-events: none; transform: translateY(12px); transition: opacity .22s, transform .22s, background .2s; cursor: pointer; }
.back-to-top.is-visible { opacity: 1; pointer-events: auto; transform: translateY(0); }
.back-to-top:hover { background: #3a3934; }
.back-to-top > span { font-size: 20px; line-height: 1; }
.back-to-top > small { font-size: 12px; line-height: 1.2; text-transform: uppercase; letter-spacing: .08em; }
.cookie-note { position: fixed; z-index: 30; left: 24px; bottom: 24px; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 26px; width: min(650px, calc(100vw - 48px)); padding: 22px 24px; background: #1e1e1c; color: #fff; box-shadow: 0 12px 30px rgba(0,0,0,.25); }
.cookie-note strong { display: block; margin-bottom: 5px; font-family: var(--serif); font-size: 20px; font-weight: 400; }
.cookie-note p { max-width: 390px; margin: 0; color: rgba(255,255,255,.78); font-size: 12px; line-height: 1.5; }
.cookie-note button { border: 1px solid rgba(255,255,255,.6); background: transparent; color: #fff; padding: 9px 11px; font-size: 12px; cursor: pointer; }
.cookie-note .cookie-details { margin-top: 8px; padding: 0 0 2px; border: 0; border-bottom: 1px solid rgba(255,255,255,.58); }
.cookie-actions { display: flex; flex-direction: column; gap: 8px; }
.cookie-actions .cookie-accept { background: #fff; color: var(--ink); border-color: #fff; }

.modal-backdrop { position: fixed; z-index: 50; inset: 0; background: rgba(20,19,17,.82); padding: 40px 20px; overflow-y: auto; }
.privacy-modal { width: min(880px, 100%); margin: 0 auto; background: var(--cream); position: relative; box-shadow: 0 30px 80px rgba(0,0,0,.35); }
.modal-content { padding: 54px 8% 70px; }
.modal-content h2, .privacy-modal h2 { font-size: clamp(37px, 4.5vw, 54px); margin-bottom: 24px; }
.modal-content > p { max-width: 680px; margin-left: auto; margin-right: auto; }
.modal-lead { font-family: var(--serif); font-size: 22px; line-height: 1.45; }
.modal-content > a { display: inline-block; margin-top: 14px; border-bottom: 1px solid; font-family: var(--serif); font-style: italic; font-size: 17px; }
.modal-close { position: absolute; z-index: 3; right: 16px; top: 16px; width: 42px; height: 42px; border: 0; border-radius: 50%; background: var(--cream); font-size: 28px; line-height: 1; cursor: pointer; box-shadow: 0 4px 16px rgba(0,0,0,.15); }
.privacy-modal { margin-top: 2vh; max-height: 88vh; overflow-y: auto; padding: 64px 7%; }
.privacy-modal a { text-decoration: underline; }
.privacy-contact-link { padding: 0; border: 0; border-bottom: 1px solid currentColor; background: transparent; font: inherit; color: inherit; cursor: pointer; }
.privacy-intro { max-width: 660px; font-family: var(--serif); font-size: 20px; line-height: 1.5; }
.privacy-sections { display: grid; grid-template-columns: 1fr 1fr; gap: 26px 40px; margin-top: 36px; }
.privacy-sections h3 { margin: 0 0 8px; font-family: var(--serif); font-size: 23px; font-weight: 400; }
.privacy-sections p { margin: 0; color: #514c45; font-size: 14px; line-height: 1.65; }

.article-shell { min-height: 100vh; background: var(--cream); }
.article-topbar { min-height: 82px; display: flex; align-items: center; justify-content: space-between; gap: 30px; padding: 0 6%; border-bottom: 1px solid var(--line); }
.article-topbar .wordmark { color: var(--ink); }
.article-back { font-size: 12px; font-weight: 700; letter-spacing: .11em; text-transform: uppercase; }
.article-back span { margin-right: 8px; }
.article-page { padding: 92px 6% 110px; }
.article-intro { width: min(870px, 100%); margin: 0 auto 55px; text-align: center; }
.article-intro > .article-back { display: inline-block; margin-bottom: 26px; }
.article-collaboration-badge { display: table; margin: 0 auto 18px; padding: 8px 11px; background: var(--ink); color: #fff; font-size: 12px; font-weight: 700; letter-spacing: .12em; line-height: 1; text-transform: uppercase; }
.article-intro .post-meta { justify-content: center; gap: 28px; margin: 0 0 25px; }
.article-intro h1 { margin-bottom: 26px; color: var(--ink); font-size: clamp(46px, 6vw, 76px); line-height: 1.02; }
.article-intro > p { max-width: 690px; margin: 0 auto; color: #514c45; font-family: var(--serif); font-size: 22px; line-height: 1.45; }
.article-hero { width: min(1180px, 100%); margin: 0 auto 72px; }
.article-hero img { max-height: 720px; aspect-ratio: 16 / 9; object-fit: cover; }
.article-body { width: min(700px, 100%); margin: 0 auto; }
.article-body > p { margin-bottom: 27px; color: #38342f; font-family: var(--serif); font-size: 19px; line-height: 1.75; }
.article-body > p:first-of-type::first-letter { float: left; margin: 8px 9px 0 0; font-size: 67px; line-height: .72; }
.collaboration-disclosure { margin: 0 0 40px; padding: 24px 27px; background: var(--stone); }
.collaboration-disclosure strong { display: block; margin-bottom: 6px; font-size: 12px; letter-spacing: .12em; text-transform: uppercase; }
.collaboration-disclosure p { margin: 0; color: #4d4841; font-size: 14px; line-height: 1.6; }
.article-contact { margin-top: 55px; padding: 34px 38px; background: var(--paper); }
.article-contact p { margin-bottom: 4px; font-family: var(--serif); font-size: 20px; }
.next-post { padding: 58px 7%; background: var(--stone); text-align: center; }
.next-post > span { display: block; margin-bottom: 13px; font-size: 12px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.next-post a { font-family: var(--serif); font-size: clamp(28px, 3.8vw, 45px); line-height: 1.2; }
.next-post a span { margin-left: 13px; }
.article-footer { padding: 30px 6%; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.article-footer > span { font-size: 14px; font-weight: 800; letter-spacing: .16em; }
.article-footer a, .article-footer small { font-size: 12px; letter-spacing: .08em; text-transform: uppercase; }

.subpage-shell { min-height: 100vh; background: var(--cream); }
.subpage-header { min-height: 84px; display: flex; align-items: center; justify-content: space-between; gap: 40px; padding: 0 6%; background: var(--cream); border-bottom: 1px solid var(--line); }
.subpage-header .wordmark { color: var(--ink); }
.subpage-nav { display: flex; align-items: center; gap: 34px; }
.subpage-nav a { position: relative; padding: 8px 0; font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.subpage-nav a::after { content: ""; position: absolute; left: 0; right: 100%; bottom: 2px; height: 1px; background: var(--ink); transition: right .2s; }
.subpage-nav a:hover::after, .subpage-nav a[aria-current="page"]::after { right: 0; }

.archive-hero { display: grid; grid-template-columns: 1.1fr .75fr; align-items: end; gap: 9%; padding: 100px 7% 90px; background: var(--stone); }
.archive-hero .eyebrow { grid-column: 1 / -1; margin-bottom: -18px; }
.archive-hero h1 { margin: 0; color: var(--ink); font-size: clamp(45px, 5.4vw, 68px); }
.archive-hero h1 em { font-weight: 400; }
.archive-hero > p:last-child { max-width: 480px; margin-bottom: 8px; color: #4f4942; font-size: 17px; line-height: 1.7; }
.archive-section { padding: 80px 7% 110px; }
.archive-count { display: flex; justify-content: space-between; gap: 30px; margin-bottom: 34px; color: #655e55; font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.archive-categories { display: flex; align-items: center; justify-content: space-between; gap: 34px; margin-bottom: 34px; }
.archive-categories > p { margin: 0; font-family: var(--serif); font-size: 18px; font-style: italic; white-space: nowrap; }
.archive-category-buttons { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 8px; }
.archive-category-buttons button { min-height: 42px; padding: 0 15px; border: 0; background: var(--paper); color: #4e4942; font-size: 13px; cursor: pointer; transition: background .2s, color .2s; }
.archive-category-buttons button:hover { background: var(--stone); color: var(--ink); }
.archive-category-buttons button.is-active { background: var(--ink); color: #fff; }
.archive-category-buttons button span { margin-left: 7px; font-size: 12px; opacity: .65; }
.archive-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 30px; }
.archive-card { min-width: 0; display: grid; grid-template-columns: minmax(180px, .78fr) minmax(0, 1fr); background: var(--paper); }
.archive-image { position: relative; min-height: 330px; overflow: hidden; }
.archive-image img { height: 100%; object-fit: cover; transition: transform .45s; }
.archive-image:hover img { transform: scale(1.025); }
.archive-card-copy { align-self: center; padding: 30px; }
.archive-card-copy .post-meta { margin: 0 0 13px; }
.archive-card-copy h2 { margin: 0 0 14px; font-family: var(--serif); font-size: clamp(25px, 2.2vw, 32px); font-weight: 400; line-height: 1.08; letter-spacing: -.02em; }
.archive-card-copy h2 a:hover { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; }
.archive-card-copy > p { margin-bottom: 18px; color: #595249; font-size: 14px; line-height: 1.55; }
.archive-pagination { margin-top: 48px; }

.about-page-hero { display: grid; grid-template-columns: 1fr minmax(360px, .72fr); align-items: center; gap: 10%; padding: 90px 8% 105px; }
.about-page-hero > div { max-width: 640px; }
.about-page-hero h1 { color: var(--ink); font-size: clamp(46px, 5.5vw, 70px); }
.about-page-hero h1 em { font-weight: 400; }
.about-page-lead { max-width: 590px; color: #4f4942; font-family: var(--serif); font-size: 23px; line-height: 1.5; }
.about-page-hero figure { margin: 0; }
.about-page-hero figure img { aspect-ratio: 4 / 5; object-fit: cover; }
.about-page-hero figcaption { margin-top: 10px; font-size: 12px; letter-spacing: .11em; text-transform: uppercase; }
.about-page-story { display: grid; grid-template-columns: .8fr 1.2fr; gap: 10%; padding: 90px 9%; background: var(--paper); }
.about-page-story h2 { margin: 0; font-size: clamp(39px, 4vw, 55px); }
.about-page-text { max-width: 680px; }
.about-page-text p { margin-bottom: 24px; color: #423d37; font-family: var(--serif); font-size: 18px; line-height: 1.75; }
.about-page-notes { display: grid; grid-template-columns: repeat(3, 1fr); gap: 7%; padding: 76px 8%; background: var(--stone); }
.about-page-notes h3 { margin: 0 0 13px; font-family: var(--serif); font-size: 27px; font-weight: 400; }
.about-page-notes p { margin: 0; color: #514b44; font-size: 14px; line-height: 1.65; }
.about-page-cta { display: flex; align-items: center; justify-content: space-between; gap: 40px; padding: 65px 8%; }
.about-page-cta p { max-width: 580px; margin: 0; font-family: var(--serif); font-size: 25px; line-height: 1.35; }

.contact-page { display: grid; grid-template-columns: .72fr 1.28fr; gap: 10%; padding: 100px 8% 115px; background: var(--stone); }
.contact-page-copy { max-width: 470px; }
.contact-page-copy h1 { color: var(--ink); font-size: clamp(47px, 5.2vw, 67px); }
.contact-page-copy > p:not(.eyebrow) { color: #4f4942; font-size: 17px; line-height: 1.7; }
.contact-page-copy dl { margin: 44px 0 0; }
.contact-page-copy dl > div { margin-bottom: 20px; }
.contact-page-copy dt { margin-bottom: 3px; font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.contact-page-copy dd { margin: 0; font-family: var(--serif); font-size: 19px; }
.contact-page-form { padding: 48px 52px; background: var(--cream); }
.contact-page-success { min-height: 430px; }

.privacy-page { padding: 95px 8% 110px; }
.privacy-page > header { max-width: 820px; margin-bottom: 64px; }
.privacy-page h1 { margin-bottom: 25px; color: var(--ink); font-size: clamp(44px, 5vw, 64px); }
.privacy-page > header > p:last-child { max-width: 700px; color: #514b44; font-family: var(--serif); font-size: 21px; line-height: 1.55; }
.privacy-page-sections { display: grid; grid-template-columns: 1fr 1fr; gap: 30px 7%; padding: 58px 6%; background: var(--paper); }
.privacy-page-sections section { max-width: 540px; }
.privacy-page-sections h2 { margin: 0 0 12px; font-size: 27px; letter-spacing: -.02em; }
.privacy-page-sections p { margin: 0; color: #514b44; font-size: 14px; line-height: 1.7; }
.privacy-page-sections a { border-bottom: 1px solid currentColor; }

.subpage-footer { padding: 55px 7% 27px; display: grid; grid-template-columns: 1fr 1fr; gap: 35px; background: var(--ink); color: #fff; }
.subpage-footer > div > span { font-size: 18px; font-weight: 800; letter-spacing: .16em; }
.subpage-footer > div p { max-width: 360px; margin: 8px 0 0; color: rgba(255,255,255,.68); font-family: var(--serif); font-size: 17px; }
.subpage-socials { margin-top: 20px; color: #fff; }
.subpage-socials a { border-color: rgba(255,255,255,.3); }
.subpage-socials a:hover { background: #fff; color: var(--ink); border-color: #fff; }
.subpage-footer nav { display: flex; justify-content: flex-end; align-items: flex-start; flex-wrap: wrap; gap: 18px 30px; }
.subpage-footer nav a { font-size: 12px; font-weight: 700; letter-spacing: .11em; text-transform: uppercase; }
.subpage-footer nav a:hover { text-decoration: underline; }
.subpage-footer small { grid-column: 1 / -1; padding-top: 18px; border-top: 1px solid rgba(255,255,255,.18); color: rgba(255,255,255,.58); font-size: 12px; }

@media (max-width: 1050px) {
  .hero { min-height: 590px; }
  .journey-lab { grid-template-columns: 1fr 1fr; gap: 50px; }
  .journey-heading { grid-column: 1 / -1; padding-top: 0; max-width: 620px; }
  .phone-main { justify-self: end; }
  .phone-pair { width: 360px; }
}

@media (max-width: 760px) {
  .hero { min-height: 650px; }
  .hero-image { object-position: 60% center; }
  .hero-shade { background: linear-gradient(90deg, rgba(12,12,10,.72) 0%, rgba(12,12,10,.28) 100%); }
  .hero-topline { padding: 24px 22px; }
  .hero-socials { display: none; }
  .menu-button { display: block; }
  .hero-copy { width: 100%; padding: 130px 22px 52px; }
  h1 { font-size: clamp(47px, 13vw, 58px); }
  .hero-intro { font-size: 16px; max-width: 330px; }
  .main-nav { display: none; position: absolute; z-index: 12; left: 0; right: 0; min-height: unset; padding: 16px 22px 24px; flex-direction: column; align-items: stretch; background: var(--cream); gap: 0; box-shadow: 0 18px 28px rgba(0,0,0,.18); }
  .main-nav.is-open { display: flex; }
  .main-nav a { padding: 13px 0; border-bottom: 1px solid var(--line); }
  .section-pad { padding: 76px 22px; }
  .about { grid-template-columns: 1fr; gap: 48px; }
  .about h2, .section-heading h2, .journey-heading h2, .letters h2 { font-size: 40px; }
  .about .lead { font-size: 21px; }
  .about-photo { width: 88%; justify-self: end; }
  .manifesto { padding: 50px 22px; }
  .manifesto > p { font-size: 29px; }
  .place-row { gap: 12px 25px; }
  .journey-lab { min-height: 1050px; padding: 76px 22px 0; display: block; }
  .journey-heading { margin-bottom: 54px; }
  .phone-main { width: 255px; height: 535px; margin-left: -20px; }
  .phone-feed { padding: 38px 17px 18px; }
  .mini-hero { height: 160px; }
  .phone-feed h3 { font-size: 24px; }
  .phone-pair { position: absolute; width: 270px; height: 450px; right: -74px; bottom: -32px; }
  .phone-small { width: 172px; height: 355px; border-width: 7px; border-radius: 32px; }
  .phone-screen { border-radius: 25px; }
  .phone-lower { left: 90px; top: 125px; }
  .screen-caption strong { font-size: 15px; }
  .section-heading { grid-template-columns: 1fr; gap: 25px; margin-bottom: 46px; }
  .post-grid { display: block; }
  .post-card { margin: 0 0 60px; }
  .post-2 { margin-left: 12%; }
  .post-3 { margin-right: 12%; }
  .post-card h3 { font-size: 31px; }
  .more-posts { margin-top: 70px; padding-top: 48px; }
  .more-posts-heading { display: block; margin-bottom: 28px; }
  .more-posts-heading h3 { font-size: 36px; }
  .archive-link { margin-top: 22px; }
  .post-list-grid { grid-template-columns: 1fr; }
  .post-list-card { grid-template-columns: 122px minmax(0, 1fr); gap: 17px; padding: 14px; }
  .post-list-image img { min-height: 180px; }
  .post-list-copy h4 { font-size: 22px; }
  .post-list-copy > p { display: none; }
  .pagination { align-items: flex-start; flex-direction: column; gap: 18px; }
  .pagination-controls { width: 100%; justify-content: space-between; }
  .pagination-controls button { min-width: 36px; padding: 0 7px; }
  .letters { grid-template-columns: 1fr; }
  .letters-image { height: 360px; }
  .letters-copy { padding: 64px 22px 72px; }
  .contact { grid-template-columns: 1fr; gap: 44px; }
  .form-pair { grid-template-columns: 1fr; gap: 0; }
  .contact-success { min-height: 0; padding: 36px 26px; }
  footer { grid-template-columns: 1fr; padding: 50px 22px 24px; gap: 34px; }
  .footer-links { justify-content: flex-start; }
  .copyright { grid-column: 1; }
  .back-to-top { right: 16px; bottom: 88px; width: 60px; height: 60px; }
  .cookie-note { left: 12px; right: 12px; bottom: 12px; width: auto; grid-template-columns: 1fr; gap: 18px; padding: 19px; }
  .cookie-actions { flex-direction: row; flex-wrap: wrap; }
  .modal-backdrop { padding: 0; }
  .privacy-modal { min-height: 100%; max-height: none; }
  .modal-content { padding: 42px 22px 60px; }
  .privacy-modal { margin: 0; padding: 90px 22px; }
  .privacy-sections { grid-template-columns: 1fr; gap: 28px; }
  .article-topbar { min-height: 68px; padding: 0 22px; }
  .article-page { padding: 64px 22px 78px; }
  .article-intro { margin-bottom: 38px; text-align: left; }
  .article-intro .post-meta { justify-content: space-between; gap: 15px; }
  .article-intro h1 { font-size: 45px; }
  .article-intro > p { font-size: 19px; }
  .article-hero { margin-bottom: 48px; }
  .article-hero img { aspect-ratio: 4 / 5; }
  .article-body > p { font-size: 18px; }
  .article-contact { padding: 28px 24px; }
  .next-post { padding: 48px 22px; text-align: left; }
  .article-footer { padding: 27px 22px; flex-wrap: wrap; }
  .subpage-header { min-height: 0; padding: 21px 22px 17px; flex-direction: column; align-items: flex-start; gap: 13px; }
  .subpage-nav { width: 100%; justify-content: space-between; gap: 13px; overflow-x: auto; }
  .subpage-nav a { white-space: nowrap; }
  .archive-hero { grid-template-columns: 1fr; gap: 23px; padding: 67px 22px 60px; }
  .archive-hero .eyebrow { grid-column: 1; margin-bottom: 0; }
  .archive-hero h1 { font-size: 46px; }
  .archive-section { padding: 56px 22px 78px; }
  .archive-categories { align-items: flex-start; flex-direction: column; gap: 16px; }
  .archive-category-buttons { justify-content: flex-start; }
  .archive-grid { grid-template-columns: 1fr; }
  .archive-card { grid-template-columns: 128px minmax(0, 1fr); }
  .archive-image { min-height: 230px; }
  .archive-card-copy { padding: 22px 18px; }
  .archive-card-copy h2 { font-size: 24px; }
  .archive-card-copy > p { display: none; }
  .about-page-hero { grid-template-columns: 1fr; gap: 48px; padding: 65px 22px 75px; }
  .about-page-hero h1 { font-size: 47px; }
  .about-page-hero figure { width: 88%; justify-self: end; }
  .about-page-story { grid-template-columns: 1fr; gap: 35px; padding: 66px 22px; }
  .about-page-notes { grid-template-columns: 1fr; gap: 35px; padding: 60px 22px; }
  .about-page-cta { padding: 54px 22px; align-items: flex-start; flex-direction: column; }
  .contact-page { grid-template-columns: 1fr; gap: 44px; padding: 66px 22px 75px; }
  .contact-page-copy h1 { font-size: 47px; }
  .contact-page-form { padding: 34px 22px; }
  .privacy-page { padding: 66px 22px 76px; }
  .privacy-page h1 { font-size: 44px; }
  .privacy-page > header { margin-bottom: 42px; }
  .privacy-page-sections { grid-template-columns: 1fr; gap: 34px; padding: 42px 22px; }
  .subpage-footer { grid-template-columns: 1fr; padding: 46px 22px 24px; }
  .subpage-footer nav { justify-content: flex-start; }
  .subpage-footer small { grid-column: 1; }
}

@media (max-width: 420px) {
  .post-list-card { grid-template-columns: 104px minmax(0, 1fr); padding: 10px; gap: 14px; }
  .post-list-image img { min-height: 158px; }
  .post-list-copy h4 { font-size: 20px; }
  .post-list-copy .post-meta { flex-direction: column; gap: 1px; }
}

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

/* Täiendused */
.site-header-menu-button {
  display: none;
  border: 1px solid var(--ink);
  border-radius: 999px;
  background: transparent;
  padding: 8px 14px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  cursor: pointer;
}

.article-intro h1 { font-size: clamp(42px, 5vw, 66px); }
.hero-topline .site-header-menu-button {
  margin-left: auto;
  border-color: rgba(255,255,255,.72);
  color: #fff;
  background: rgba(0,0,0,.12);
}

.hero-nav-wrap { position: relative; z-index: 10; }
.social-links a[data-placeholder="true"] { cursor: default; }
.footer-privacy-button { font: inherit; }
.subpage-footer nav button {
  border: 0;
  background: transparent;
  color: inherit;
  padding: 0;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .11em;
  text-transform: uppercase;
  cursor: pointer;
}
.subpage-footer nav button:hover { text-decoration: underline; }
.cookie-note[hidden], .back-to-top[hidden], .form-success[hidden] { display: none !important; }
.form-success { padding: 24px; background: var(--paper); }
.form-success strong { display: block; margin-bottom: 6px; font-family: var(--serif); font-size: 25px; font-weight: 400; }
.form-success p { margin: 0; color: #514c45; }
.contact-form .privacy-check {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 13px;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1.5;
  text-transform: none;
}
.contact-form .privacy-check input {
  flex: 0 0 auto;
  width: 18px;
  height: 18px;
  margin: 2px 0 0;
  padding: 0;
  border: 1px solid var(--ink);
}
.contact-form .privacy-check a { border-bottom: 1px solid currentColor; }

.archive-card[hidden] { display: none; }
.archive-empty { padding: 36px; background: var(--paper); font-family: var(--serif); font-size: 20px; }
.archive-empty[hidden] { display: none; }
.archive-pagination[hidden] { display: none; }

.article-body h2 {
  margin: 52px 0 19px;
  font-size: clamp(31px, 3vw, 42px);
  line-height: 1.12;
}
.article-body h3 {
  margin: 38px 0 13px;
  font-family: var(--serif);
  font-size: 27px;
  font-weight: 400;
  line-height: 1.2;
}
.article-body ul, .article-body ol {
  margin: 0 0 30px;
  padding-left: 24px;
  color: #38342f;
  font-family: var(--serif);
  font-size: 19px;
  line-height: 1.7;
}
.article-body li + li { margin-top: 8px; }
.article-body blockquote {
  margin: 46px 0;
  padding: 30px 34px;
  background: var(--stone);
  font-family: var(--serif);
  font-size: 25px;
  font-style: italic;
  line-height: 1.45;
}
.article-body figure { margin: 48px 0; }
.article-body figure img { max-height: 640px; object-fit: cover; }
.article-body figcaption {
  margin-top: 10px;
  color: #655e55;
  font-size: 12px;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.practical-box {
  margin: 42px 0;
  padding: 30px 34px;
  background: var(--paper);
}
.practical-box h3 { margin-top: 0; }
.practical-box dl { margin: 0; }
.practical-box dl > div {
  display: grid;
  grid-template-columns: 145px 1fr;
  gap: 24px;
  padding: 12px 0;
  border-top: 1px solid var(--line);
}
.practical-box dt {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.practical-box dd { margin: 0; font-family: var(--serif); font-size: 17px; }
.post-share {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 45px;
  padding-top: 28px;
  border-top: 1px solid var(--line);
}
.post-share > span { margin-right: 8px; font-size: 12px; font-weight: 700; letter-spacing: .11em; text-transform: uppercase; }
.post-share a { padding: 9px 12px; background: var(--paper); font-size: 12px; font-weight: 700; text-transform: uppercase; }
.related-posts { padding: 82px 7%; background: var(--paper); }
.related-posts h2 { margin-bottom: 32px; font-size: clamp(33px, 3.5vw, 47px); }
.related-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
.related-grid article img { aspect-ratio: 4 / 3; object-fit: cover; }
.related-grid h3 { margin: 14px 0 0; font-family: var(--serif); font-size: 23px; font-weight: 400; line-height: 1.15; }

.privacy-page-sections.wide { grid-template-columns: 1fr 1fr; }
.privacy-page-sections .full-width { grid-column: 1 / -1; max-width: none; }
.cookie-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.cookie-table th, .cookie-table td { padding: 13px 12px; border-top: 1px solid var(--line); text-align: left; vertical-align: top; }
.cookie-table th { font-size: 12px; letter-spacing: .1em; text-transform: uppercase; }

.not-found-page {
  min-height: calc(100vh - 84px);
  display: grid;
  grid-template-columns: 1fr minmax(340px, .72fr);
  align-items: center;
  gap: 9%;
  padding: 80px 8%;
}
.not-found-page h1 { color: var(--ink); font-size: clamp(48px, 6vw, 74px); }
.not-found-page p { max-width: 520px; color: #514c45; font-family: var(--serif); font-size: 21px; }
.not-found-page img { aspect-ratio: 4 / 5; object-fit: cover; }

@media (max-width: 760px) {
  .site-header-menu-button { display: block; }
  .subpage-header { flex-direction: row; align-items: center; justify-content: space-between; padding: 19px 22px; }
  .subpage-nav {
    display: none;
    position: absolute;
    z-index: 30;
    top: 70px;
    left: 0;
    right: 0;
    width: auto;
    padding: 13px 22px 22px;
    background: var(--cream);
    box-shadow: 0 18px 28px rgba(0,0,0,.16);
    overflow: visible;
  }
  .subpage-nav.is-open { display: flex; flex-direction: column; align-items: stretch; }
  .subpage-nav a { padding: 12px 0; border-bottom: 1px solid var(--line); }
  .hero-nav-wrap .main-nav { top: 0; }
  .article-intro h1 { font-size: 41px; }
  .article-body h2 { font-size: 32px; }
  .article-body h3 { font-size: 24px; }
  .article-body ul, .article-body ol { font-size: 18px; }
  .article-body blockquote { padding: 25px 22px; font-size: 22px; }
  .practical-box { padding: 26px 22px; }
  .practical-box dl > div { grid-template-columns: 1fr; gap: 3px; }
  .related-grid { grid-template-columns: 1fr; }
  .privacy-page-sections.wide { grid-template-columns: 1fr; }
  .privacy-page-sections .full-width { grid-column: 1; overflow-x: auto; }
  .not-found-page { grid-template-columns: 1fr; padding: 60px 22px; }
  .not-found-page img { width: 82%; justify-self: end; }
}
