/* natureloveyou.sg — field notebook / tropical archive */
:root {
  --nly-ink: #183127;
  --nly-paper: #f4f0e4;
  --nly-moss: #295f43;
  --nly-lime: #cadd8b;
  --nly-clay: #bb663f;
  --nly-line: #c8c0aa;
}
html[data-site="natureloveyou"] body { background: var(--nly-paper); color: var(--nly-ink); }
html[data-site="natureloveyou"] main { max-width: none; }
.nly-archive { font-family: Inter, ui-sans-serif, system-ui, sans-serif; }
.nly-archive h1, .nly-archive h2, .nly-archive h3 { font-family: Georgia, "Times New Roman", serif; letter-spacing: -.025em; }
.nly-site-header { display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding: 1rem max(1.25rem, calc((100vw - 1240px) / 2)); border-bottom: 1px solid var(--nly-line); background: var(--nly-paper); }
.nly-wordmark { display: grid; grid-template-columns: 2rem auto; color: var(--nly-ink); text-decoration: none; }
.nly-wordmark > span { grid-row: 1 / 3; align-self: center; width: 1.6rem; height: 1.6rem; color: var(--nly-moss); }
.nly-wordmark svg { display: block; width: 100%; height: 100%; }
.nly-wordmark strong { font-family: Georgia, serif; font-size: 1.12rem; font-weight: 600; }
.nly-wordmark small { color: #64736c; font-size: .62rem; letter-spacing: .1em; text-transform: uppercase; }
.nly-site-header nav { display: flex; gap: 1.25rem; }
.nly-site-header nav a, .nly-site-footer nav a { color: var(--nly-ink); font-size: .77rem; font-weight: 750; text-decoration: none; }
.nly-site-header nav a:hover, .nly-site-header nav a:focus-visible { color: var(--nly-clay); }
.nly-site-footer { display: grid; grid-template-columns: 1fr auto; gap: 2rem; padding: 3rem max(1.25rem, calc((100vw - 1240px) / 2)); border-top: 1px solid var(--nly-line); background: #e8e1cf; }
.nly-site-footer nav { display: flex; max-width: 32rem; flex-wrap: wrap; gap: .8rem 1rem; align-items: start; }
.nly-site-footer p { max-width: 44rem; font-size: .78rem; line-height: 1.55; }
.nly-site-footer__fine { grid-column: 1 / -1; margin: 0; padding-top: 1rem; border-top: 1px solid var(--nly-line); color: #64736c; }
.nly-kicker { margin: 0 0 .75rem; color: var(--nly-clay); font-size: .73rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.nly-deck { max-width: 44rem; font-family: Georgia, serif; font-size: clamp(1.15rem, 2vw, 1.55rem); line-height: 1.45; }
.nly-hero { display: grid; min-height: 72vh; grid-template-columns: minmax(0, 1.15fr) minmax(22rem, .85fr); background: var(--nly-ink); color: #fff; }
.nly-hero__image { position: relative; min-height: 32rem; overflow: hidden; }
.nly-hero__image img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.8) contrast(1.04); }
.nly-credit { position: absolute; left: 1rem; bottom: .75rem; margin: 0; padding: .35rem .55rem; background: rgba(12, 29, 22, .82); color: #fff; font-size: .68rem; }
.nly-credit a { color: #fff; }
.nly-hero__copy { display: flex; flex-direction: column; justify-content: center; padding: clamp(2.25rem, 6vw, 6rem); }
.nly-hero h1 { max-width: 9ch; margin: 0; font-size: clamp(3rem, 6.7vw, 7.5rem); font-weight: 400; line-height: .91; }
.nly-stats { display: flex; gap: 1.5rem; margin-top: 2rem; padding-top: 1.25rem; border-top: 1px solid rgba(255,255,255,.25); }
.nly-stats span { max-width: 8rem; font-size: .78rem; line-height: 1.35; }
.nly-stats strong { display: block; color: var(--nly-lime); font-family: Georgia, serif; font-size: 1.6rem; }
.nly-directory, .nly-featured, .nly-related { padding: clamp(3rem, 7vw, 7rem) max(1.25rem, calc((100vw - 1180px) / 2)); }
.nly-section-head { display: grid; grid-template-columns: minmax(12rem, .7fr) minmax(20rem, 1.3fr); column-gap: 3rem; align-items: end; }
.nly-section-head .nly-kicker { grid-column: 1 / -1; }
.nly-section-head h2 { margin: 0; font-size: clamp(2.3rem, 5vw, 5.4rem); font-weight: 400; line-height: .98; }
.nly-section-head > p:last-child { max-width: 38rem; margin: 0; line-height: 1.7; }
.nly-az { display: grid; grid-template-columns: repeat(13, 1fr); gap: .45rem; margin-top: 3rem; }
.nly-az a { display: grid; aspect-ratio: 1; place-items: center; border: 1px solid var(--nly-line); color: var(--nly-ink); font-family: Georgia, serif; font-size: 1.15rem; text-decoration: none; transition: .18s ease; }
.nly-az a:hover, .nly-az a:focus-visible { background: var(--nly-moss); color: #fff; transform: translateY(-2px); }
.nly-route-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin-top: 2.5rem; }
.nly-route-cards a { min-height: 10rem; padding: 1.5rem; border: 1px solid var(--nly-line); color: inherit; text-decoration: none; }
.nly-route-cards span, .nly-specimen-grid p, .nly-related__grid span { display: block; margin-bottom: .75rem; color: var(--nly-clay); font-size: .7rem; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
.nly-route-cards strong { display: block; max-width: 12ch; font-family: Georgia, serif; font-size: 1.5rem; font-weight: 400; }
.nly-directory--hubs { background: #e8e1cf; }
.nly-hub-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin-top: 3rem; }
.nly-hub-grid a { display: grid; min-height: 14rem; padding: 1.5rem; border: 1px solid var(--nly-line); color: inherit; text-decoration: none; }
.nly-hub-grid strong { align-self: end; margin-top: auto; font-family: Georgia, serif; font-size: 2rem; font-weight: 400; }
.nly-hub-grid small { margin-top: .6rem; line-height: 1.5; }
.nly-directory--dark { background: var(--nly-moss); color: #fff; }
.nly-directory--dark .nly-kicker { color: var(--nly-lime); }
.nly-minibeast-grid { display: grid; grid-template-columns: repeat(2, 1fr); margin-top: 3rem; border-top: 1px solid rgba(255,255,255,.25); }
.nly-minibeast-grid a { display: block; padding: 1rem 0; border-bottom: 1px solid rgba(255,255,255,.25); color: #fff; text-decoration: none; }
.nly-minibeast-grid a:nth-child(odd) { padding-right: 1rem; }
.nly-minibeast-grid a:nth-child(even) { padding-left: 1rem; border-left: 1px solid rgba(255,255,255,.25); }
.nly-info { max-width: 920px; margin: 0 auto; padding: clamp(2rem, 6vw, 6rem) max(1.25rem, 4vw); }
.nly-info h1 { max-width: 12ch; margin: 0 0 2rem; font-size: clamp(3rem, 7vw, 6.5rem); font-weight: 400; line-height: .98; }
.nly-info__body { max-width: 68ch; font-size: 1.05rem; line-height: 1.8; }
.nly-info__body h2 { margin: 2.5rem 0 .7rem; font-size: 1.8rem; font-weight: 400; }
.nly-specimen-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; margin-top: 3rem; background: var(--nly-line); border: 1px solid var(--nly-line); }
.nly-specimen-grid article { min-height: 12rem; padding: 1.5rem; background: var(--nly-paper); }
.nly-specimen-grid h3 { margin: 0 0 1.5rem; font-size: 1.55rem; font-weight: 400; }
.nly-specimen-grid h3 a { color: inherit; }
.nly-specimen-grid article > span { font-size: .75rem; }
.nly-record { max-width: 1240px; margin: 0 auto; padding: clamp(1.5rem, 4vw, 4rem); }
.nly-breadcrumbs { display: flex; flex-wrap: wrap; gap: .55rem; align-items: center; color: #64736c; font-size: .76rem; }
.nly-breadcrumbs a { color: var(--nly-moss); font-weight: 700; text-decoration: none; }
.nly-record__head { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(2rem, 6vw, 6rem); align-items: center; padding: 2rem 0 4rem; border-bottom: 1px solid var(--nly-line); }
.nly-record h1 { margin: 0; font-size: clamp(2.7rem, 6vw, 6.5rem); font-weight: 400; line-height: .98; overflow-wrap: anywhere; }
.nly-record h1 i { font-weight: inherit; }
.nly-record figure { margin: 0; }
.nly-record figure img { width: 100%; max-height: 38rem; object-fit: cover; }
.nly-record figcaption { margin-top: .55rem; font-size: .69rem; color: #51645b; }
.nly-back { display: inline-block; margin-bottom: 4rem; color: var(--nly-moss); font-weight: 700; text-decoration: none; }
.nly-related h2 { margin-top: 0; font-size: clamp(2rem, 4vw, 3.5rem); font-weight: 400; }
.nly-species-note { margin: 0; padding: clamp(2.5rem, 6vw, 5rem) 0; border-bottom: 1px solid var(--nly-line); }
.nly-species-note h2 { max-width: 18ch; margin: 0 0 1.5rem; font-size: clamp(2rem, 4vw, 3.8rem); font-weight: 400; }
.nly-species-note__overview { max-width: 72ch; font-size: 1.05rem; line-height: 1.8; }
.nly-species-note__facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 58rem; margin: 2rem 0 0; border-top: 1px solid var(--nly-line); }
.nly-species-note__facts div { display: grid; grid-template-columns: 10rem 1fr; gap: 1rem; padding: .8rem 1rem .8rem 0; border-bottom: 1px solid var(--nly-line); }
.nly-species-note__facts dt { color: #64736c; font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.nly-species-note__facts dd { margin: 0; }
.nly-species-note__source { margin-top: 1.25rem; color: #64736c; font-size: .76rem; }
.nly-species-note__source a { color: var(--nly-moss); }
.nly-az--small { grid-template-columns: repeat(5, 1fr); gap: .3rem; margin-top: 1rem; }
.nly-az--small a { font-size: .9rem; }
.nly-core-nav { display: grid; gap: .5rem; }
.nly-core-nav a { padding: .8rem 1rem; border: 1px solid var(--nly-line); color: var(--nly-ink); font-weight: 750; text-decoration: none; }
.nly-core-nav a:hover, .nly-core-nav a:focus-visible, .nly-core-nav a[aria-current="page"] { background: var(--nly-moss); color: #fff; }
.nly-child-directory { padding: 4rem 0; border-top: 1px solid var(--nly-line); }
.nly-child-directory h2 { margin: 0 0 2rem; font-size: clamp(2rem, 4vw, 3.5rem); font-weight: 400; }
.nly-directory-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; background: var(--nly-line); border: 1px solid var(--nly-line); }
.nly-directory-list > a { display: grid; gap: .35rem; min-height: 5rem; padding: 1rem; background: var(--nly-paper); color: inherit; text-decoration: none; }
.nly-directory-list > a:hover, .nly-directory-list > a:focus-visible { background: #e8e1cf; }
.nly-directory-list strong { font-family: Georgia, serif; font-size: 1.05rem; font-weight: 400; overflow-wrap: anywhere; }
.nly-directory-list span { color: #64736c; font-size: .68rem; letter-spacing: .06em; text-transform: uppercase; }
.nly-directory-list h3 { grid-column: 1 / -1; margin: 0; padding: 1.4rem 1rem .7rem; background: var(--nly-paper); color: var(--nly-clay); font-size: 1.5rem; }
.nly-neighbours { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; padding: 2rem 0; border-top: 1px solid var(--nly-line); }
.nly-neighbours a { display: grid; gap: .35rem; padding: 1rem; border: 1px solid var(--nly-line); color: inherit; text-decoration: none; }
.nly-neighbours a:last-child { text-align: right; }
.nly-neighbours span { color: var(--nly-clay); font-size: .7rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.nly-hub-page { max-width: 1240px; margin: 0 auto; padding: clamp(1.5rem, 4vw, 4rem); }
.nly-hub-head { padding: clamp(3rem, 7vw, 7rem) 0; }
.nly-hub-head h1 { max-width: 12ch; margin: 0; font-size: clamp(3rem, 7vw, 7rem); font-weight: 400; line-height: .95; }
.nly-hub-head > p:last-child { margin-top: 2rem; color: #64736c; }
.nly-core-nav--wide { grid-template-columns: repeat(3, 1fr); }
.nly-core-nav--wide a { text-align: center; }
.nly-hub-directory { padding: 4rem 0; }
.nly-hub-directory > h2 { font-size: clamp(2rem, 4vw, 3.5rem); font-weight: 400; }
.nly-anchor-nav { display: flex; flex-wrap: wrap; gap: .4rem; margin-bottom: 1.5rem; }
.nly-anchor-nav a { display: grid; width: 2.25rem; height: 2.25rem; place-items: center; border: 1px solid var(--nly-line); color: inherit; text-decoration: none; }
.nly-directory-list--hubs > a { min-height: 8rem; }
.nly-related { margin: 0 calc(clamp(1.5rem, 4vw, 4rem) * -1); border-top: 1px solid var(--nly-line); }
.nly-gallery { padding: 4rem 0; border-top: 1px solid var(--nly-line); }
.nly-gallery h2 { margin: 0 0 2rem; font-size: clamp(2rem, 4vw, 3.5rem); font-weight: 400; }
.nly-gallery__grid { columns: 3 16rem; column-gap: 1rem; }
.nly-gallery__grid figure { break-inside: avoid; margin: 0 0 1rem; padding: .6rem; border: 1px solid var(--nly-line); background: #ebe5d5; }
.nly-gallery__grid img { display: block; width: 100%; height: auto; }
.nly-gallery__grid figcaption { margin-top: .5rem; font-size: .68rem; overflow-wrap: anywhere; }
.nly-related__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: .7rem; margin-top: 2rem; }
.nly-related__grid a { min-height: 7.5rem; padding: 1rem; border: 1px solid var(--nly-line); color: inherit; text-decoration: none; }
.nly-related__grid strong { display: block; font-family: Georgia, serif; font-size: 1.1rem; font-weight: 400; }
@media (max-width: 850px) {
  .nly-site-header { align-items: flex-start; }
  .nly-site-header nav { display: grid; grid-template-columns: 1fr 1fr; }
  .nly-hero, .nly-record__head, .nly-section-head { grid-template-columns: 1fr; }
  .nly-hero__image { min-height: 48vh; }
  .nly-hero__copy { padding: 2.5rem 1.25rem 3.5rem; }
  .nly-az { grid-template-columns: repeat(7, 1fr); }
  .nly-route-cards, .nly-specimen-grid, .nly-related__grid, .nly-hub-grid, .nly-directory-list { grid-template-columns: 1fr 1fr; }
  .nly-section-head > p:last-child { margin-top: 1rem; }
  .nly-back { margin-bottom: 2rem; }
}
@media (max-width: 540px) {
  .nly-site-header, .nly-site-footer { grid-template-columns: 1fr; flex-direction: column; }
  .nly-site-header nav, .nly-site-footer nav { display: flex; flex-wrap: wrap; }
  .nly-stats { flex-wrap: wrap; }
  .nly-minibeast-grid, .nly-route-cards, .nly-specimen-grid, .nly-related__grid, .nly-hub-grid, .nly-directory-list, .nly-core-nav--wide { grid-template-columns: 1fr; }
  .nly-minibeast-grid a:nth-child(even) { padding-left: 0; border-left: 0; }
  .nly-az { grid-template-columns: repeat(5, 1fr); }
  .nly-species-note__facts { grid-template-columns: 1fr; }
  .nly-species-note__facts div { grid-template-columns: 8rem 1fr; }
}
