@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500&family=Inter:wght@300;400;500&display=swap');

:root{
  --ink:#1A1A1A;
  --gray:#6B6B6B;
  --paper:#FFFFFF;
  --cream:#F8F7F4;
  --hairline:#E8E6E1;
  --accent:#8A6B3F;
  --font-display:'Playfair Display',Georgia,'Times New Roman',serif;
  --font-body:'Inter','Helvetica Neue',Arial,sans-serif;
  --ease:cubic-bezier(.25,.46,.45,.94);
}
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;}
body{font-family:var(--font-body);background:var(--paper);color:var(--ink);line-height:1.7;font-size:16px;letter-spacing:.01em;}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
::selection{background:#EFE7D8;}

/* ---- reading progress ---- */
.reading-progress{position:fixed;top:0;left:0;height:3px;width:0;background:var(--ink);z-index:3000;transition:width .1s linear;}

/* ---- header ---- */
.header{position:sticky;top:0;z-index:2000;background:rgba(255,255,255,.94);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--hairline);}
.header__inner{max-width:1280px;margin:0 auto;padding:0 2rem;height:72px;display:flex;align-items:center;justify-content:space-between;}
.header__brand{font-family:var(--font-display);font-weight:600;font-size:1.02rem;letter-spacing:.18em;text-transform:uppercase;}
.header__nav{display:flex;gap:2.2rem;}
.header__nav a{font-size:.7rem;font-weight:400;letter-spacing:.24em;text-transform:uppercase;color:var(--gray);position:relative;padding:4px 0;transition:color .3s;}
.header__nav a::after{content:'';position:absolute;left:0;bottom:-2px;width:100%;height:1px;background:var(--ink);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease);}
.header__nav a:hover{color:var(--ink);}
.header__nav a:hover::after{transform:scaleX(1);}
.header__toggle{display:none;background:none;border:1px solid var(--hairline);font-size:.62rem;letter-spacing:.2em;padding:.5rem .8rem;cursor:pointer;text-transform:uppercase;}

/* ---- hero ---- */
.hero{display:grid;grid-template-columns:2fr 1fr;min-height:70vh;border-bottom:1px solid var(--hairline);}
.hero__media{position:relative;overflow:hidden;min-height:420px;}
.hero__media img{width:100%;height:100%;object-fit:cover;}
.hero__media .hero__ed{position:absolute;left:1.4rem;bottom:1.2rem;font-size:.58rem;letter-spacing:.3em;text-transform:uppercase;color:#fff;background:rgba(26,26,26,.55);padding:.45rem .9rem;}
.hero__copy{display:flex;flex-direction:column;justify-content:center;padding:3.5rem 2.6rem;background:var(--cream);text-decoration:none;transition:background .3s var(--ease);cursor:pointer;}
.hero__copy:hover{background:#F1EFEA;}
.hero__kicker{font-size:.6rem;letter-spacing:.3em;text-transform:uppercase;color:var(--accent);margin-bottom:1.4rem;}
.hero__quote{font-family:var(--font-display);font-style:italic;font-weight:400;font-size:clamp(1.35rem,2.4vw,1.85rem);line-height:1.5;color:var(--ink);transition:color .3s;}
.hero__copy:hover .hero__quote{color:var(--accent);}
.hero__attr{margin-top:1.6rem;font-size:.62rem;letter-spacing:.26em;text-transform:uppercase;color:var(--gray);display:flex;align-items:center;gap:.9rem;flex-wrap:wrap;}
.hero__read{color:var(--ink);border-bottom:1px solid var(--ink);padding-bottom:.25rem;transition:all .3s;display:inline-flex;align-items:center;gap:.5rem;}
.hero__copy:hover .hero__read{color:var(--accent);border-color:var(--accent);}

/* ---- section framework ---- */
.section{padding:6.5rem 2rem;}
.section__head{max-width:1280px;margin:0 auto 3.4rem;display:flex;align-items:baseline;gap:1.4rem;}
.section__no{font-family:var(--font-display);font-style:italic;font-size:.85rem;color:var(--accent);}
.section__title{font-family:var(--font-display);font-weight:600;font-size:clamp(1.7rem,3vw,2.4rem);letter-spacing:.01em;}
.section__rule{flex:1;height:1px;background:var(--hairline);}
.section__more{margin-left:auto;font-size:.62rem;letter-spacing:.26em;text-transform:uppercase;color:var(--gray);}

/* ---- featured journeys ---- */
.featured{background:var(--paper);}
.feat-grid{max-width:1280px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:3rem;}
.feat-card{display:flex;flex-direction:column;transition:transform .35s var(--ease);}
.feat-card:hover{transform:translateY(-6px);}
.feat-card__img{aspect-ratio:4/3;overflow:hidden;background:var(--cream);}
.feat-card__img img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease);}
.feat-card:hover .feat-card__img img{transform:scale(1.04);}
.feat-card__cat{margin-top:1.5rem;font-size:.58rem;letter-spacing:.3em;text-transform:uppercase;color:var(--accent);}
.feat-card__title{margin-top:.8rem;font-family:var(--font-display);font-weight:600;font-size:1.42rem;line-height:1.35;}
.feat-card__title a:hover{color:var(--accent);}
.feat-card__author{margin-top:.7rem;font-size:.72rem;color:var(--gray);letter-spacing:.06em;}
.feat-card__author strong{font-weight:500;color:var(--ink);}
.feat-card__ex{margin-top:.9rem;font-size:.86rem;line-height:1.75;color:var(--gray);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;}
.feat-card__foot{margin-top:1.1rem;display:flex;justify-content:space-between;font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gray);}
.feat-card__foot .rd{color:var(--ink);}

/* ---- topics ---- */
.topics{background:var(--cream);}
.topic-tabs{max-width:1280px;margin:0 auto 3rem;display:flex;gap:1rem;flex-wrap:wrap;}
.topic-tab{font-size:.66rem;letter-spacing:.24em;text-transform:uppercase;color:var(--gray);padding:.6rem 1.3rem;border:1px solid var(--hairline);background:var(--paper);cursor:pointer;transition:all .3s;}
.topic-tab:hover{border-color:var(--ink);color:var(--ink);}
.topic-tab.is-active{background:var(--ink);color:#fff;border-color:var(--ink);}
.topic-grid{max-width:1280px;margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);gap:1.6rem;}
.topic-card{background:var(--paper);border:1px solid var(--hairline);transition:transform .3s var(--ease),box-shadow .3s var(--ease);cursor:pointer;display:flex;flex-direction:column;overflow:hidden;}
.topic-card:hover{transform:translateY(-4px);box-shadow:0 12px 30px rgba(26,26,26,.07);}
.topic-card__img{aspect-ratio:4/3;overflow:hidden;background:var(--cream);min-height:140px;}
.topic-card__img img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease);color:transparent;font-size:0;text-indent:-9999px;background:var(--cream);}
.topic-card:hover .topic-card__img img{transform:scale(1.05);}
.topic-card__body{padding:1.3rem 1.4rem 1.5rem;flex:1;position:relative;z-index:1;background:var(--paper);}
.topic-card__cat{font-size:.55rem;letter-spacing:.26em;text-transform:uppercase;color:var(--accent);margin-bottom:.6rem;}
.topic-card__title{font-family:var(--font-display);font-weight:500;font-size:1.08rem;line-height:1.4;}
.topic-card__title a:hover{color:var(--accent);}
.topic-card__meta{margin-top:.7rem;font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gray);}

/* ---- editor's pick ---- */
.editor{background:var(--paper);}
.editor__grid{max-width:1280px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:center;}
.editor__text{max-width:520px;}
.editor__cat{font-size:.58rem;letter-spacing:.3em;text-transform:uppercase;color:var(--accent);margin-bottom:1.4rem;}
.editor__title{font-family:var(--font-display);font-weight:600;font-size:clamp(1.9rem,3.4vw,2.7rem);line-height:1.2;margin-bottom:1.5rem;}
.editor__title a:hover{color:var(--accent);}
.editor__ex{font-size:.92rem;line-height:1.85;color:var(--gray);margin-bottom:2rem;}
.editor__ex p:first-of-type::first-letter{font-family:var(--font-display);font-weight:600;float:left;font-size:3.3em;line-height:.82;padding:.08em .12em 0 0;color:var(--ink);}
.editor__quote{margin:0 0 2rem;padding:1.4rem 0 1.4rem 1.6rem;border-left:2px solid var(--accent);font-family:var(--font-display);font-style:italic;font-size:1.2rem;line-height:1.55;color:var(--ink);}
.editor__link{display:inline-block;font-size:.64rem;letter-spacing:.28em;text-transform:uppercase;border-bottom:1px solid var(--ink);padding-bottom:.4rem;transition:all .3s;}
.editor__link:hover{border-color:var(--accent);color:var(--accent);}
.editor__media{position:relative;}
.editor__media img{width:100%;aspect-ratio:4/5;object-fit:cover;}
.editor__media figcaption{position:absolute;left:0;bottom:0;background:var(--paper);padding:.5rem .9rem;font-size:.56rem;letter-spacing:.24em;text-transform:uppercase;color:var(--gray);}

/* ---- about strip ---- */
.about-strip{background:var(--cream);}
.about-strip__grid{max-width:1280px;margin:0 auto;display:grid;grid-template-columns:1.1fr 1fr;gap:4rem;align-items:start;}
.about-strip__copy p{font-size:.92rem;line-height:1.85;color:var(--gray);margin-bottom:1.2rem;}
.about-strip__copy p strong{color:var(--ink);font-weight:500;}
.about-strip__logos{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--hairline);border:1px solid var(--hairline);}
.about-strip__logo{background:var(--paper);display:flex;align-items:center;justify-content:center;padding:1.8rem 1rem;font-family:var(--font-display);font-size:.82rem;letter-spacing:.08em;color:#9a9a9a;text-align:center;transition:color .3s,background .3s;}
.about-strip__logo:hover{color:var(--ink);background:var(--cream);}

/* ---- footer ---- */
.footer{background:var(--ink);color:rgba(255,255,255,.75);padding:5.5rem 2rem 2.5rem;}
.footer__inner{max-width:1280px;margin:0 auto;}
.footer__cta{display:flex;flex-direction:column;align-items:center;text-align:center;padding-bottom:4rem;border-bottom:1px solid rgba(255,255,255,.14);}
.footer__cta-k{font-family:var(--font-display);font-style:italic;font-size:1rem;color:#d9c7a5;margin-bottom:1.2rem;}
.footer__cta-t{font-family:var(--font-display);font-weight:500;font-size:clamp(1.7rem,3.4vw,2.6rem);line-height:1.25;color:#fff;max-width:700px;margin-bottom:2.2rem;}
.footer__btn{display:inline-block;font-size:.68rem;letter-spacing:.3em;text-transform:uppercase;color:#fff;border:1px solid rgba(255,255,255,.45);padding:1rem 2.6rem;transition:all .35s;}
.footer__btn:hover{background:#fff;color:var(--ink);border-color:#fff;}
.footer__bottom{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1.5rem;padding-top:2.5rem;}
.footer__brand{font-family:var(--font-display);font-weight:600;letter-spacing:.16em;text-transform:uppercase;font-size:.95rem;color:#fff;}
.footer__nav{display:flex;gap:1.8rem;flex-wrap:wrap;}
.footer__nav a{font-size:.62rem;letter-spacing:.22em;text-transform:uppercase;color:rgba(255,255,255,.55);transition:color .3s;}
.footer__nav a:hover{color:#fff;}
.footer__social{display:flex;gap:1rem;}
.footer__social a{width:34px;height:34px;border:1px solid rgba(255,255,255,.25);display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.7);transition:all .3s;}
.footer__social a:hover{color:var(--ink);background:#fff;border-color:#fff;}
.footer__copy{margin-top:2rem;font-size:.64rem;letter-spacing:.1em;color:rgba(255,255,255,.38);line-height:2;}
.footer__copy a{color:rgba(255,255,255,.7);}
.footer__copy a:hover{color:#fff;}

/* ---- detail page ---- */
.d-hero{position:relative;min-height:62vh;display:flex;align-items:flex-end;overflow:hidden;}
.d-hero__bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.d-hero__veil{position:absolute;inset:0;background:linear-gradient(180deg,rgba(26,26,26,.05) 0%,rgba(26,26,26,.72) 100%);}
.d-hero__inner{position:relative;z-index:2;max-width:880px;margin:0 auto;width:100%;padding:0 2rem 4rem;}
.d-hero__quote{font-family:var(--font-display);font-style:italic;font-weight:400;font-size:clamp(1.6rem,3.6vw,2.6rem);line-height:1.3;color:#fff;max-width:820px;}
.d-hero__meta{margin-top:1.5rem;display:flex;gap:1rem;align-items:center;font-size:.66rem;letter-spacing:.24em;text-transform:uppercase;color:rgba(255,255,255,.78);}
.d-hero__meta span{color:#d9c7a5;}

.d-body{padding:4.5rem 0 6rem;}
.d-body__inner{max-width:660px;margin:0 auto;padding:0 1.5rem;}
.d-body__kicker{font-size:.6rem;letter-spacing:.3em;text-transform:uppercase;color:var(--accent);margin-bottom:2rem;}
.d-body__text{font-size:1.05rem;line-height:1.9;color:#3d3d3d;margin-bottom:2rem;}
.d-body__text:first-of-type::first-letter{font-family:var(--font-display);font-weight:600;float:left;font-size:3.4em;line-height:.8;padding:.09em .14em 0 0;color:var(--ink);}
.d-body__heading{font-family:var(--font-display);font-weight:600;font-size:1.5rem;margin:3rem 0 1.3rem;line-height:1.3;}
.d-body__list{margin:0 0 2rem 1.2rem;}
.d-body__list li{font-size:1.02rem;line-height:1.85;color:#3d3d3d;margin-bottom:.6rem;}
.d-body__figure{margin:3.2rem -15%;}
.d-body__figure img{width:100%;box-shadow:0 20px 60px rgba(26,26,26,.12);}
.d-body__cap{margin-top:.8rem;text-align:center;font-size:.7rem;font-style:italic;color:var(--gray);}
.d-body__quote{margin:3rem 0;padding:2rem 1.5rem;text-align:center;border-top:1px solid var(--hairline);border-bottom:1px solid var(--hairline);font-family:var(--font-display);font-style:italic;font-size:1.3rem;line-height:1.6;color:var(--ink);}
.d-body__share{margin-top:3.4rem;display:flex;align-items:center;gap:1rem;padding-top:2rem;border-top:1px solid var(--hairline);}
.d-body__share-label{font-size:.6rem;letter-spacing:.3em;text-transform:uppercase;color:var(--gray);}
.share-btn{display:inline-flex;align-items:center;gap:.6rem;font-size:.62rem;letter-spacing:.24em;text-transform:uppercase;color:var(--ink);border:1px solid var(--hairline);padding:.7rem 1.4rem;cursor:pointer;transition:all .3s;background:var(--paper);}
.share-btn:hover{border-color:var(--ink);}
.share-btn:active{transform:scale(.98);}

/* ---- continue reading ---- */
.continue{background:var(--cream);padding:5rem 2rem 6rem;}
.continue__grid{max-width:1280px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:2.4rem;}
.continue__title{max-width:1280px;margin:0 auto 2.8rem;font-family:var(--font-display);font-weight:600;font-size:1.5rem;}

/* ---- info pages ---- */
.page{padding:6rem 2rem 7rem;}
.page__inner{max-width:720px;margin:0 auto;}
.page__kicker{font-size:.6rem;letter-spacing:.3em;text-transform:uppercase;color:var(--accent);margin-bottom:1.2rem;}
.page__title{font-family:var(--font-display);font-weight:600;font-size:clamp(2rem,4vw,2.9rem);line-height:1.2;margin-bottom:2.6rem;}
.page__inner h2{font-family:var(--font-display);font-weight:600;font-size:1.45rem;margin:2.8rem 0 1rem;}
.page__inner p{font-size:.98rem;line-height:1.9;color:#3d3d3d;margin-bottom:1.4rem;}
.page__inner ul{margin:0 0 1.5rem 1.2rem;}
.page__inner ul li{font-size:.96rem;line-height:1.85;color:#3d3d3d;margin-bottom:.5rem;}
.page__inner a{color:var(--accent);border-bottom:1px solid rgba(138,107,63,.35);}
.page__inner a:hover{border-bottom-color:var(--accent);}
.page__email{display:inline-block;margin-top:.6rem;font-family:var(--font-display);font-size:1.2rem;color:var(--ink);border-bottom:2px solid var(--ink);padding-bottom:.3rem;transition:color .3s,border-color .3s;}
.page__email:hover{color:var(--accent);border-color:var(--accent);}

/* ---- reveal ---- */
.reveal{opacity:0;transform:translateY(20px);transition:opacity .7s var(--ease),transform .7s var(--ease);}
.reveal.in-view{opacity:1;transform:translateY(0);}
.reveal--d1{transition-delay:.1s;}
.reveal--d2{transition-delay:.2s;}
.reveal--d3{transition-delay:.3s;}

@media (max-width:1024px){
  .hero{grid-template-columns:1fr;}
  .hero__media{min-height:52vh;}
  .editor__grid{grid-template-columns:1fr;gap:2.5rem;}
  .about-strip__grid{grid-template-columns:1fr;}
  .topic-grid{grid-template-columns:repeat(2,1fr);}
  .continue__grid{grid-template-columns:repeat(2,1fr);}
  .d-body__figure{margin:3rem -8%;}
}
@media (max-width:720px){
  .header__inner{padding:0 1.4rem;}
  .header__nav{display:none;position:absolute;top:72px;left:0;right:0;background:var(--paper);flex-direction:column;padding:1.4rem 1.4rem 1.8rem;gap:1.2rem;border-bottom:1px solid var(--hairline);}
  .header__nav.is-open{display:flex;}
  .header__toggle{display:block;}
  .section{padding:4.5rem 1.25rem;}
  .feat-grid{grid-template-columns:1fr;gap:2.4rem;}
  .topic-grid{grid-template-columns:1fr;}
  .continue__grid{grid-template-columns:1fr;}
  .footer__bottom{flex-direction:column;align-items:flex-start;gap:1.4rem;}
  .d-body__figure{margin:2.5rem -5%;}
  .hero{min-height:auto;}
  .hero__media{min-height:46vh;}
  .hero__copy{padding:2.6rem 1.5rem;}
  .hero__quote{font-size:1.3rem;}
  .section__head{flex-wrap:wrap;gap:1rem;margin-bottom:2.4rem;}
  .section__more{margin-left:0;}
  .topic-tabs{gap:.7rem;}
  .topic-tab{padding:.5rem 1rem;font-size:.6rem;}
  .editor__title{font-size:1.7rem;}
  .editor__ex p{font-size:.9rem;}
  .editor__media img{aspect-ratio:4/3;}
  .about-strip__logos{grid-template-columns:repeat(2,1fr);}
  .footer__cta{padding-bottom:3rem;}
  .footer__cta-t{font-size:1.6rem;}
  .d-hero{min-height:52vh;}
  .d-hero__inner{padding:0 1.5rem 3rem;}
  .d-hero__quote{font-size:1.7rem;}
  .d-hero__meta{flex-wrap:wrap;gap:.5rem .8rem;font-size:.6rem;}
  .d-body__inner{padding:0 1.25rem;}
  .d-body__text{font-size:.98rem;}
  .d-body__heading{font-size:1.3rem;}
  .d-body__quote{font-size:1.15rem;padding:1.6rem 1.1rem;}
  .d-body__share{flex-wrap:wrap;gap:.8rem;}
  .share-btn{padding:.6rem 1.1rem;font-size:.6rem;}
  .continue{padding:4rem 1.25rem 5rem;}
  .continue__title{font-size:1.3rem;}
  .page{padding:4.5rem 1.25rem 6rem;}
  .page__title{font-size:1.8rem;}
}
@media (max-width:420px){
  .hero__media{min-height:38vh;}
  .feat-card__title{font-size:1.25rem;}
  .topic-grid{gap:1.1rem;}
  .about-strip__logo{font-size:.72rem;padding:1.4rem .6rem;}
  .footer__social{flex-wrap:wrap;}
}
