:root{
    --white:#FAFAF8;
    --off:#F0EFEA;
    --black:#141414;
    --grey:#6B6B68;
    --line:rgba(20,20,20,0.15);
    --side-w:250px;

    /* one consistent type scale, used everywhere */
    --fs-eyebrow:11px;
    --fs-nav:12.5px;
    --fs-body:14.5px;
    --fs-caption:11.5px;
    --fs-h1:40px;
    --fs-h2:28px;
    --fs-h3:17px;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    background:var(--white);
    color:var(--black);
    font-family:'Work Sans', sans-serif;
    font-weight:400;
    font-size:var(--fs-body);
    line-height:1.7;
    -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3,.display{
    font-family:'Fraunces', serif;
    font-weight:500;
    margin:0;
    letter-spacing:-0.01em;
    color:var(--black);
  }
  h1{font-size:var(--fs-h1);}
  h2{font-size:var(--fs-h2);}
  h3{font-size:var(--fs-h3);font-weight:500;}
  em{font-style:italic;}
  a{color:inherit;text-decoration:none;}
  img{width:100%;height:100%;object-fit:cover;display:block;}

  /* ---- monochrome woven divider (signature element, no color) ---- */
  .tibeb{width:100%;height:14px;display:block;}

  /* ---- Sidebar ---- */
  .sidebar{
    position:fixed;top:0;left:0;bottom:0;width:var(--side-w);
    border-right:1px solid var(--line);
    background:var(--white);
    padding:34px 30px;
    display:flex;flex-direction:column;
    z-index:20;
    overflow-y:auto;
  }
  .brand{margin-bottom:44px;}
  .brand .display{font-size:19px;letter-spacing:0.08em;text-transform:uppercase;}
  .brand .sub{font-size:var(--fs-caption);letter-spacing:0.08em;text-transform:uppercase;color:var(--grey);margin-top:8px;display:block;}
  .catlabel{
    font-size:var(--fs-eyebrow);letter-spacing:0.14em;text-transform:uppercase;color:var(--grey);
    margin-bottom:18px;
  }
  .catnav{list-style:none;margin:0;padding:0;flex:1;}
  .catnav li{border-top:1px solid var(--line);}
  .catnav li:last-child{border-bottom:1px solid var(--line);}
  .catnav a{
    display:flex;align-items:center;gap:10px;
    padding:13px 2px;
    font-size:var(--fs-nav);letter-spacing:0.06em;text-transform:uppercase;
    color:var(--grey);
    transition:color .2s ease, padding-left .2s ease;
  }
  .catnav a .n{font-family:'Fraunces',serif;font-style:italic;font-size:12px;width:18px;color:var(--grey);}
  .catnav a:hover{color:var(--black);padding-left:6px;}
  .catnav a.active{color:var(--black);font-weight:600;padding-left:6px;}
  .catnav a.active .n{color:var(--black);}
  .sidebar-foot{font-size:var(--fs-caption);color:var(--grey);border-top:1px solid var(--line);padding-top:18px;margin-top:24px;}

  /* ---- Main ---- */
  main{margin-left:var(--side-w);}
  section{border-bottom:1px solid var(--line);scroll-margin-top:24px;}
  .pad{padding:70px 56px;}
  .kicker{font-size:var(--fs-eyebrow);letter-spacing:0.16em;text-transform:uppercase;color:var(--grey);margin-bottom:16px;}

  /* ---- Home ---- */
  #home .hero{display:grid;grid-template-columns:1.15fr 1fr;min-height:80vh;align-items:stretch;}
  .hero-photo{position:relative;align-self:start;aspect-ratio:1538/2048;overflow:hidden;}
  .hero-photo img{object-fit:cover;}
  .hero-photo .cap{
    position:absolute;left:0;bottom:0;right:0;padding:20px 26px;
    font-size:var(--fs-caption);letter-spacing:0.08em;text-transform:uppercase;color:#fff;
    background:linear-gradient(to top, rgba(0,0,0,0.55), transparent);
  }
  .hero-text{display:flex;flex-direction:column;justify-content:center;padding:64px;}
  .hero-text h1 em{font-style:italic;}
  .greet-row{margin-top:18px;display:flex;flex-direction:column;gap:6px;}
  .hero-text .amharic{
    display:flex;align-items:baseline;gap:10px;
    font-family:'Fraunces',serif;font-style:italic;font-size:var(--fs-h3);
    color:var(--black);
  }
  .hero-text .amharic .lang{
    font-family:'Work Sans',sans-serif;font-style:normal;font-size:var(--fs-caption);
    letter-spacing:0.08em;text-transform:uppercase;color:var(--grey);
  }
  .hero-text p.lede{margin-top:18px;color:var(--grey);max-width:52ch;font-size:var(--fs-body);}
  .verse{
    margin:28px 0 0;padding-left:22px;border-left:2px solid var(--black);
    font-family:'Fraunces',serif;font-style:italic;font-size:var(--fs-h3);
    color:var(--black);max-width:48ch;
  }
  .verse cite{
    display:block;margin-top:10px;font-family:'Work Sans',sans-serif;font-style:normal;
    font-size:var(--fs-caption);letter-spacing:0.06em;text-transform:uppercase;color:var(--grey);
  }
  .badge-row{display:flex;gap:0;margin-top:36px;border-top:1px solid var(--line);max-width:440px;}
  .badge-row div{flex:1;padding:16px 14px 0;border-right:1px solid var(--line);}
  .badge-row div:last-child{border-right:none;}
  .badge-row b{display:block;font-family:'Fraunces',serif;font-weight:500;font-size:var(--fs-h3);}
  .badge-row span{font-size:var(--fs-caption);letter-spacing:0.06em;text-transform:uppercase;color:var(--grey);}

  /* ---- generic split section ---- */
  .split{display:grid;grid-template-columns:1fr 1fr;}
  .split .photo{min-height:520px;position:relative;}
  .split .photo .cap{
    position:absolute;left:0;bottom:0;right:0;padding:18px 22px;
    font-size:var(--fs-caption);letter-spacing:0.08em;text-transform:uppercase;color:#fff;
    background:linear-gradient(to top, rgba(0,0,0,0.55), transparent);
  }
  .split .text{padding:64px;display:flex;flex-direction:column;justify-content:center;}
  .split .text p{color:var(--grey);max-width:46ch;}
  .split .text p + p{margin-top:14px;}
  .split .text p.subtitle{
    font-family:'Fraunces',serif;font-style:italic;font-size:var(--fs-h3);
    color:var(--black);margin-top:16px;
  }
  .split .text p.subtitle + p{margin-top:16px;}

  /* ---- gallery grid ---- */
  .gallery-head{padding:70px 56px 0;}
  .gallery-head p{color:var(--grey);max-width:56ch;margin-top:14px;}
  .grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);margin:44px 0 0;}
  .grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);margin:44px 0 0;}
  .grid4 figure,.grid3 figure{margin:0;background:var(--white);position:relative;aspect-ratio:3/4;}
  .grid4 figcaption,.grid3 figcaption{
    position:absolute;left:0;bottom:0;right:0;padding:14px 16px;
    font-size:var(--fs-caption);letter-spacing:0.06em;text-transform:uppercase;color:#fff;
    background:linear-gradient(to top, rgba(0,0,0,0.6), transparent);
  }
  .gallery-foot{padding:0 56px 70px;}

  /* ---- lightbox (click any photo to enlarge) ---- */
  .grid4 figure, .grid3 figure, .split .photo, .hero-photo{cursor:zoom-in;}
  .lightbox{
    position:fixed;inset:0;z-index:100;background:rgba(20,20,20,0.92);
    display:none;align-items:center;justify-content:center;padding:40px;
    cursor:zoom-out;
  }
  .lightbox.open{display:flex;}
  .lightbox img{
    width:auto;height:auto;max-width:90vw;max-height:88vh;object-fit:contain;
    box-shadow:0 20px 60px rgba(0,0,0,0.5);
  }
  .lightbox-close{
    position:absolute;top:24px;right:32px;color:#fff;font-size:28px;
    font-family:'Fraunces',serif;font-style:italic;background:none;border:none;cursor:pointer;
    line-height:1;
  }
  @media (max-width:980px){
    .lightbox{padding:16px;}
    .lightbox-close{top:14px;right:18px;}
  }

  /* ---- text-only sections (interviews / fun fact / guestbook) ---- */
  .text-section{padding:70px 56px;}
  .text-section .intro-copy{color:var(--grey);max-width:60ch;margin-top:14px;}

  .quote-list{margin-top:44px;display:grid;gap:0;border-top:1px solid var(--line);}
  .quote-item{padding:26px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:220px 1fr;gap:30px;}
  .quote-item .who{font-family:'Fraunces',serif;font-size:var(--fs-h3);}
  .quote-item .role{font-size:var(--fs-caption);letter-spacing:0.06em;text-transform:uppercase;color:var(--grey);margin-top:4px;}
  .quote-item p{color:var(--black);margin:0;max-width:60ch;}

  .fact-grid{margin-top:28px;display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--line);border-left:1px solid var(--line);}
  .fact-card{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:18px 20px;}
  .fact-card .num{font-family:'Fraunces',serif;font-style:italic;font-size:18px;color:var(--grey);}
  .fact-card h3{margin-top:6px;font-size:15px;}
  .fact-card p{margin-top:6px;color:var(--black);font-size:13.5px;line-height:1.5;}

  .guest-wrap{margin-top:44px;display:grid;grid-template-columns:1fr 1fr;gap:60px;}
  .guest-form{display:flex;flex-direction:column;gap:16px;}
  .guest-form label{font-size:var(--fs-caption);letter-spacing:0.08em;text-transform:uppercase;color:var(--grey);}
  .guest-form input, .guest-form textarea{
    font-family:'Work Sans',sans-serif;font-size:var(--fs-body);
    border:none;border-bottom:1px solid var(--line);background:transparent;
    padding:10px 2px;outline:none;color:var(--black);
  }
  .guest-form textarea{resize:vertical;min-height:90px;}
  .guest-form button{
    margin-top:10px;align-self:flex-start;
    padding:13px 30px;background:var(--black);color:var(--white);
    font-size:var(--fs-caption);letter-spacing:0.08em;text-transform:uppercase;
    border:none;cursor:pointer;
  }
  .guest-form button:hover{background:var(--grey);}
  .guest-entries{border-left:1px solid var(--line);padding-left:40px;}
  .guest-photo{aspect-ratio:4/3;margin-bottom:20px;overflow:hidden;}
  .guest-entries .entry{padding:16px 0;border-bottom:1px solid var(--line);}
  .guest-entries .entry b{font-family:'Fraunces',serif;font-weight:500;}
  .guest-entries .entry span{display:block;font-size:var(--fs-caption);color:var(--grey);margin-top:2px;}
  .guest-note{font-size:var(--fs-caption);color:var(--grey);margin-top:18px;}

  /* ---- footer ---- */
  footer{padding:36px 56px;display:flex;justify-content:space-between;align-items:center;color:var(--grey);font-size:var(--fs-caption);letter-spacing:0.04em;}

  /* ---- mobile ---- */
  .menu-btn{display:none;}
  @media (max-width:980px){
    :root{--fs-h1:32px;--fs-h2:24px;}
    .sidebar{
      position:fixed;top:0;left:0;right:0;bottom:auto;width:100%;height:64px;
      flex-direction:row;align-items:center;justify-content:space-between;
      padding:0 20px;overflow:visible;
    }
    .brand{margin:0;}
    .catlabel{display:none;}
    .catnav{
      position:fixed;top:64px;left:0;right:0;bottom:0;background:var(--white);
      display:none;flex-direction:column;overflow-y:auto;padding:10px 20px 40px;
    }
    .catnav.open{display:flex;}
    .sidebar-foot{display:none;}
    .menu-btn{
      display:block;background:none;border:1px solid var(--line);
      padding:9px 14px;font-size:var(--fs-caption);letter-spacing:0.08em;text-transform:uppercase;cursor:pointer;
    }
    main{margin-left:0;margin-top:64px;}
    section{scroll-margin-top:80px;}
    #home .hero{grid-template-columns:1fr;min-height:auto;}
    .hero-text{padding:44px 26px;}
    .split{grid-template-columns:1fr;}
    .split .photo{min-height:320px;}
    .grid4{grid-template-columns:repeat(2,1fr);}
    .grid3{grid-template-columns:repeat(2,1fr);}
    .quote-item{grid-template-columns:1fr;gap:8px;}
    .fact-grid{grid-template-columns:1fr;}
    .guest-wrap{grid-template-columns:1fr;}
    .guest-entries{border-left:none;padding-left:0;border-top:1px solid var(--line);padding-top:24px;}
  }
  @media (prefers-reduced-motion: reduce){html{scroll-scroll-behavior:auto;}}

  /* ---- category reveal / pop-in effect ---- */
  section .kicker,
  section h1, section h2, section h3,
  section p, section .amharic, section .verse, section .badge-row,
  section .hero-photo, section .photo, section figure,
  section .quote-item, section .fact-card, section .guest-wrap{
    opacity:0;
    transform:translateY(26px);
    transition:opacity .7s cubic-bezier(.22,.68,.35,1), transform .7s cubic-bezier(.22,.68,.35,1);
  }
  section.in-view .kicker,
  section.in-view h1, section.in-view h2, section.in-view h3,
  section.in-view p, section.in-view .amharic, section.in-view .verse, section.in-view .badge-row,
  section.in-view .hero-photo, section.in-view .photo, section.in-view figure,
  section.in-view .quote-item, section.in-view .fact-card, section.in-view .guest-wrap{
    opacity:1;
    transform:translateY(0);
  }
  section.in-view .kicker{transition-delay:.02s;}
  section.in-view h1, section.in-view h2{transition-delay:.08s;}
  section.in-view h3{transition-delay:.1s;}
  section.in-view .amharic{transition-delay:.14s;}
  section.in-view p{transition-delay:.18s;}
  section.in-view .verse{transition-delay:.22s;}
  section.in-view .badge-row{transition-delay:.26s;}
  section.in-view .quote-item:nth-of-type(1), section.in-view .fact-card:nth-of-type(1){transition-delay:.2s;}
  section.in-view .quote-item:nth-of-type(2), section.in-view .fact-card:nth-of-type(2){transition-delay:.28s;}
  section.in-view .quote-item:nth-of-type(3), section.in-view .fact-card:nth-of-type(3){transition-delay:.36s;}
  section.in-view .fact-card:nth-of-type(4){transition-delay:.42s;}
  section.in-view .fact-card:nth-of-type(5){transition-delay:.48s;}
  section.in-view .fact-card:nth-of-type(6){transition-delay:.54s;}
  section.in-view figure:nth-of-type(1){transition-delay:.04s;}
  section.in-view figure:nth-of-type(2){transition-delay:.1s;}
  section.in-view figure:nth-of-type(3){transition-delay:.16s;}
  section.in-view figure:nth-of-type(4){transition-delay:.22s;}
  section.in-view figure:nth-of-type(5){transition-delay:.28s;}
  section.in-view figure:nth-of-type(6){transition-delay:.34s;}
  section.in-view figure:nth-of-type(7){transition-delay:.4s;}
  section.in-view figure:nth-of-type(8){transition-delay:.46s;}
  section.in-view figure:nth-of-type(9){transition-delay:.52s;}
  section.in-view figure:nth-of-type(10){transition-delay:.58s;}
  section.in-view figure:nth-of-type(11){transition-delay:.64s;}
  @media (prefers-reduced-motion: reduce){
    section *{transition:none !important; opacity:1 !important; transform:none !important;}
  }
