 :root{
    --ai-green: #2F4A38;       /* cedar green dye */
    --ai-green-deep: #1C2E22;
    --washi: #F4EFE3;           /* paper */
    --washi-warm: #ECE3D0;
    --sumi: #1B1A17;            /* ink black */
    --hanko: #AD3B26;           /* seal red */
    --gold: #C7A75B;            /* metallic pigment */
    --green-soft: #74916F;
  }

  *{ box-sizing:border-box; }

  body{
    background-color: var(--washi);
    color: var(--sumi);
    font-family: "Source Serif 4", Georgia, serif;
    font-weight: 300;
    line-height: 1.7;
  }

  h1,h2,h3,h4,.font-display{
    font-family: "Shippori Mincho", serif;
    letter-spacing: .01em;
  }

  .eyebrow{
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-size: .72rem;
    letter-spacing: .28em;
    text-transform: uppercase;
    color: var(--hanko);
    font-weight: 500;
  }

  a{ color: var(--ai-green); }
  a:hover{ color: var(--hanko); }

  /* ============ NAVBAR ============ */
  .navbar{
    transition: background-color .45s ease, box-shadow .45s ease, padding .35s ease;
    padding-top: 1.1rem;
    padding-bottom: 1.1rem;
    background-color: transparent;
  }
  .navbar.nav-solid-dark{
    background-color: var(--ai-green-deep);
  }
  .navbar.nav-light{
    background-color: var(--washi);
    box-shadow: 0 2px 18px rgba(27,26,23,.08);
    padding-top: .6rem;
    padding-bottom: .6rem;
  }

  .navbar .navbar-brand{
    font-family: "Shippori Mincho", serif;
    font-weight: 600;
    font-size: 1.35rem;
    color: var(--washi);
    letter-spacing: .04em;
  }
  .navbar .navbar-brand .brand-sub{
    display:block;
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-size: .6rem;
    letter-spacing: .3em;
    font-weight: 400;
    color: var(--gold);
    text-transform: uppercase;
    margin-top: 1px;
  }
  .navbar.nav-light .navbar-brand{ color: var(--ai-green); }
  .navbar.nav-light .navbar-brand .brand-sub{ color: var(--hanko); }

  .navbar .nav-link{
    color: rgba(244,239,227,.82);
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-size: .82rem;
    letter-spacing: .12em;
    text-transform: uppercase;
    padding: .5rem 1rem;
    transition: color .3s ease;
  }
  .navbar .nav-link:hover, .navbar .nav-link.active{ color: var(--gold); }
  .navbar.nav-light .nav-link{ color: var(--ai-green); }
  .navbar.nav-light .nav-link:hover, .navbar.nav-light .nav-link.active{ color: var(--hanko); }

  .navbar-toggler{ border-color: rgba(244,239,227,.4); }
  .navbar.nav-light .navbar-toggler{ border-color: rgba(34,58,94,.3); }
  .navbar-toggler-icon{
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='%23F4EFE3' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e") !important;
  }
  .navbar.nav-light .navbar-toggler-icon{
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='%23223A5E' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e") !important;
  }

  /* ============ HERO ============ */
  .hero{
    background: linear-gradient(160deg, var(--ai-green-deep) 0%, var(--ai-green) 58%, var(--green-soft) 100%);
    color: var(--washi);
    min-height: 100vh;
    position: relative;
    overflow: hidden;
    display:flex;
    align-items:center;
  }

  /* faint woodgrain / paper texture overlay */
  .hero::before{
    content:"";
    position:absolute; inset:0;
    background-image:
      repeating-linear-gradient(115deg, rgba(244,239,227,.025) 0px, rgba(244,239,227,.025) 2px, transparent 2px, transparent 7px);
    pointer-events:none;
  }

  /* Mt. Nikko silhouette layers, drawn in SVG */
  .hero-scene{
    position:absolute;
    right: -8%;
    bottom: -4%;
    width: min(62vw, 760px);
    opacity: .9;
  }

  /* the moon disc */
  .moon{
    position:absolute;
    top: 8%;
    right: 14%;
    width: clamp(180px, 22vw, 320px);
    height: clamp(180px, 22vw, 320px);
    border-radius: 50%;
    background: radial-gradient(circle at 38% 35%, #F7EFD8 0%, var(--gold) 55%, rgba(199,167,91,.15) 100%);
    box-shadow: 0 0 90px rgba(199,167,91,.35);
  }

  /* vertical scroll / tanzaku strip with the print's title */
  .tanzaku{
    position:absolute;
    top: 0; bottom: 0;
    right: 4%;
    width: 64px;
    display:flex;
    align-items:center;
    justify-content:center;
  }
  .tanzaku-inner{
    writing-mode: vertical-rl;
    text-orientation: upright;
    font-family: "Shippori Mincho", serif;
    font-weight: 500;
    font-size: 1.55rem;
    letter-spacing: .55em;
    color: rgba(244,239,227,.55);
    border-left: 1px solid rgba(199,167,91,.35);
    padding-left: 1.1rem;
    height: 78%;
  }

  .hero-content{ position:relative; z-index:2; padding-top: 6rem; }

  .hero-kicker{
    font-family:"Zen Kaku Gothic New", sans-serif;
    letter-spacing:.32em;
    text-transform:uppercase;
    font-size:.78rem;
    color: var(--gold);
    display:flex; align-items:center; gap:.85rem;
  }
  .hero-kicker .line{ display:inline-block; width:64px; height:1px; background:var(--gold); }

  .hero h1{
    font-size: clamp(3rem, 8vw, 6.2rem);
    font-weight: 800;
    line-height: 1.02;
    margin: 1.1rem 0 .6rem;
  }
  .hero h1 .en{ display:block; }
  
  .hero h1 .jp{
    display:block;
    font-size: .34em;
    letter-spacing:.5em;
    font-weight:500;
    color: rgba(244,239,227,.55);
    margin-top: .6rem;
  }

  .hero h1 .line{ display:inline-block; width:256px; height:1px; background:rgba(244,239,227,.55); margin-top: 1.1rem; }

  .hero-lede{
    max-width: 32rem;
    font-size: 1.08rem;
    color: rgba(244,239,227,.85);
    font-weight: 300;
  }

  .btn-hanko{
    background-color: var(--hanko);
    border: 1px solid var(--hanko);
    color: var(--washi);
    font-family:"Zen Kaku Gothic New", sans-serif;
    letter-spacing:.18em;
    text-transform:uppercase;
    font-size:.78rem;
    padding: .85rem 2.1rem;
    border-radius: 2px;
    transition: all .3s ease;
  }
  .btn-hanko:hover{ background-color: transparent; color: var(--washi); border-color: var(--washi); }

  .btn-outline-washi{
    border:1px solid rgba(244,239,227,.45);
    color: var(--washi);
    font-family:"Zen Kaku Gothic New", sans-serif;
    letter-spacing:.18em;
    text-transform:uppercase;
    font-size:.78rem;
    padding: .85rem 2.1rem;
    border-radius: 2px;
    transition: all .3s ease;
  }
  .btn-outline-washi:hover{ border-color: var(--gold); color: var(--gold); }

  .scroll-cue{
    position:absolute;
    bottom: 2.4rem; left: 50%; transform: translateX(-50%);
    font-family:"Zen Kaku Gothic New", sans-serif;
    font-size:.68rem; letter-spacing:.3em; text-transform:uppercase;
    color: rgba(244,239,227,.5);
    display:flex; flex-direction:column; align-items:center; gap:.5rem;
    z-index:2;
  }
  .scroll-cue::after{
    content:"";
    width:1px; height:38px;
    background: linear-gradient(to bottom, rgba(244,239,227,.5), transparent);
    animation: dropline 2.6s ease-in-out infinite;
  }
  @keyframes dropline{
    0%{ transform: scaleY(0); transform-origin:top; opacity:.2;}
    50%{ transform: scaleY(1); transform-origin:top; opacity:1;}
    100%{ transform: scaleY(0); transform-origin:bottom; opacity:.2;}
  }

  /* ============ SECTION GENERAL ============ */
  section{ padding: 6.5rem 0; }
  .section-tight{ padding: 4.5rem 0; }

  .section-head{ margin-bottom: 3.2rem; }
  .section-head h2{
    font-size: clamp(1.9rem, 3.4vw, 2.7rem);
    font-weight: 600;
    color: var(--ai-green);
    margin-top:.5rem;
  }
  .section-head .jp-sub{
    font-family:"Shippori Mincho", serif;
    color: var(--green-soft);
    font-size: 1rem;
    letter-spacing:.2em;
  }

  /* ============ INTRO / ABOUT TEASER ============ */
  .intro-section{
    background-color: var(--washi);
    position:relative;
  }
  .intro-figure{
    position:relative;
    border-radius: 4px;
    overflow:hidden;
    aspect-ratio: 4/5;
    background: linear-gradient(150deg, var(--ai-green) 0%, var(--green-soft) 100%);
    display:flex; align-items:center; justify-content:center;
  }
  .intro-figure .seal{
    width: 30%;
    opacity:.9;
  }
  .intro-text p{ color:#3a3733; }
  .intro-text .lede{
    font-size: 1.25rem;
    font-weight: 400;
    color: var(--sumi);
  }

  /* ============ FEATURED COLLECTION ============ */
  .collection-section{
    background-color: var(--washi-warm);
    border-top: 1px solid rgba(34,58,94,.08);
    border-bottom: 1px solid rgba(34,58,94,.08);
  }

  .print-card{
    background: var(--washi);
    border: 1px solid rgba(34,58,94,.1);
    transition: transform .35s ease, box-shadow .35s ease;
    text-decoration:none;
    color: inherit;
    display:block;
    height:100%;
  }
  .print-card:hover{
    transform: translateY(-6px);
    box-shadow: 0 18px 38px rgba(27,26,23,.12);
  }
  .print-card .img-wrap{
    aspect-ratio: 3/4;
    overflow:hidden;
    background: linear-gradient(140deg,#4F6E55,#2F4A38);
    position:relative;
  }
  .print-card .img-wrap img{
    width:100%; height:100%; object-fit:cover;
    transition: transform .6s ease;
  }
  .print-card:hover .img-wrap img{ transform: scale(1.06); }
  .print-card .img-wrap .tag{
    position:absolute; top:.75rem; left:.75rem;
    background: var(--hanko);
    color:var(--washi);
    font-family:"Zen Kaku Gothic New", sans-serif;
    font-size:.65rem; letter-spacing:.2em; text-transform:uppercase;
    padding: .3rem .65rem;
    border-radius:1px;
  }
  .print-card .card-body{ padding: 1.15rem 1.25rem 1.4rem; }
  .print-card .card-body h3{
    font-size: 1.08rem; font-weight:600; color:var(--ai-green);
    margin-bottom:.2rem;
  }
  .print-card .card-body .artist{
    font-family:"Zen Kaku Gothic New", sans-serif;
    font-size:.78rem; letter-spacing:.06em; color: var(--hanko);
    text-transform:uppercase;
  }
  .print-card .card-body .meta{
    font-size:.85rem; color:#6b6760; margin-top:.4rem; margin-bottom:0;
  }

  .view-all-link{
    font-family:"Zen Kaku Gothic New", sans-serif;
    font-size:.8rem; letter-spacing:.18em; text-transform:uppercase;
    color: var(--ai-green);
    text-decoration:none;
    display:inline-flex; align-items:center; gap:.6rem;
  }
  .view-all-link:hover{ color: var(--hanko); }
  .view-all-link i{ transition: transform .3s ease; }
  .view-all-link:hover i{ transform: translateX(4px); }

  /* ============ FEATURED ARTIST ============ */
  .artist-section{ background-color: var(--washi); }
  .artist-portrait{
    aspect-ratio: 1/1;
    border-radius:50%;
    background: radial-gradient(circle at 35% 30%, var(--green-soft), var(--ai-green-deep));
    border: 1px solid var(--gold);
    display:flex; align-items:center; justify-content:center;
    color: rgba(244,239,227,.65);
    font-family:"Shippori Mincho", serif;
    font-size:3rem;
  }
  .artist-card-text .eyebrow{ margin-bottom:.6rem; }
  .artist-card-text h3{
    font-size: 2rem; color: var(--ai-green); font-weight:600; margin-bottom:.3rem;
  }
  .artist-card-text .years{
    font-family:"Zen Kaku Gothic New", sans-serif;
    color:#857f74; font-size:.85rem; letter-spacing:.1em; margin-bottom:1rem;
  }

  /* ============ JOURNAL / ARTICLES ============ */
  .journal-section{ background-color: var(--ai-green-deep); color: var(--washi); }
  .journal-section .section-head h2{ color: var(--washi); }
  .journal-section .section-head .jp-sub{ color: var(--gold); }
  .article-card{
    border-top: 1px solid rgba(244,239,227,.18);
    padding-top: 1.6rem;
    height:100%;
    text-decoration:none;
    color: var(--washi);
    display:block;
  }
  .article-card:hover .a-title{ color: var(--gold); }
  .article-card .a-date{
    font-family:"Zen Kaku Gothic New", sans-serif;
    font-size:.72rem; letter-spacing:.22em; text-transform:uppercase;
    color: rgba(244,239,227,.45);
  }
  .article-card .a-title{
    font-family:"Shippori Mincho", serif;
    font-size:1.35rem; font-weight:600; margin: .6rem 0 .7rem;
    transition: color .3s ease;
  }
  .article-card .a-excerpt{ color: rgba(244,239,227,.7); font-size:.95rem; }

  /* ============ CTA STRIP ============ */
  .cta-strip{
    background-color: var(--washi);
    border-top: 1px solid rgba(34,58,94,.1);
  }
  .cta-card{
    border: 1px solid rgba(34,58,94,.15);
    padding: 2.4rem 2rem;
    height:100%;
    text-decoration:none;
    color:inherit;
    display:flex; flex-direction:column; gap:.9rem;
    transition: border-color .3s ease, background-color .3s ease;
  }
  .cta-card:hover{ border-color: var(--hanko); background-color: var(--washi-warm); }
  .cta-card i{ font-size:1.7rem; color: var(--hanko); }
  .cta-card h3{ font-size:1.25rem; color:var(--ai-green); font-weight:600; margin:0; }
  .cta-card p{ color:#6b6760; font-size:.92rem; margin:0; }

  /* ============ FOOTER ============ */
  footer{
    background-color: var(--sumi);
    color: rgba(244,239,227,.65);
    padding: 1.6rem 0;
    font-family:"Zen Kaku Gothic New", sans-serif;
    font-size:.78rem;
    letter-spacing:.05em;
  }
  footer a{ color: rgba(244,239,227,.65); text-decoration:none; }
  footer a:hover{ color: var(--gold); }
  footer .divider{ color: rgba(244,239,227,.25); }

  @media (max-width: 991px){
    .tanzaku{ display:none; }
    .hero-scene{ opacity:.5; }
  }