  :root{ --accent:#2fa36b; --b0:#2fa36b; --b1:#d98a2b; --b2:#a05fc0; --cv:#a05fc0; }
  [data-theme="dark"]{
    --bg:#0a0d13; --panel:#111621; --panel2:#171e2b; --line:#273040;
    --ink:#e8ecf3; --ink2:#97a2b4; --accent:#5b9bd5;
    --b0:#5b9bd5; --b1:#e0a34a; --b2:#c98bd8; --cv:#c98bd8; --hero:#161d2b; --hero2:#0f141d;
    --warn-bg:#33262a; --warn-ink:#e79aa2; --warn-line:#54383f;
    --ok-bg:#16273a; --ok-ink:#7fc4ea; --ok-line:#2c4763; --shadow:rgba(0,0,0,.55);
  }
  [data-theme="light"]{
    --bg:#f4f7f2; --panel:#ffffff; --panel2:#eef3ec; --line:#d9e3d6;
    --ink:#1c2a22; --ink2:#5d6f63; --accent:#2fa36b;
    --b0:#2fa36b; --b1:#c47d1f; --b2:#8f4fb0; --cv:#8f4fb0; --hero:#cfe3d4; --hero2:#eef3ec;
    --warn-bg:#fbe9e9; --warn-ink:#a13b3b; --warn-line:#e6c2c2;
    --ok-bg:#e4f4ea; --ok-ink:#1f7a4d; --ok-line:#bfe3cd; --shadow:rgba(30,50,40,.12);
  }
  *{box-sizing:border-box}
  html,body{margin:0;height:100%}
  body{background:var(--bg);color:var(--ink);font-family:-apple-system,"Hiragino Sans","Noto Sans JP",system-ui,sans-serif;font-size:15px;line-height:1.6;transition:background .25s,color .25s}
  a{color:var(--accent)}
  header{position:sticky;top:0;z-index:20;background:var(--panel);border-bottom:1px solid var(--line);padding:11px 18px;display:flex;gap:14px;align-items:center;flex-wrap:wrap}
  .brand{display:flex;align-items:baseline;gap:10px;white-space:nowrap}
  .brand .logo{font-size:20px;font-weight:800;letter-spacing:.01em;color:var(--accent);cursor:pointer;text-decoration:none}
  .brand .jp{font-size:14px;color:var(--ink2)}
  .brand .tag{font-size:11px;color:var(--ink2);border-left:1px solid var(--line);padding-left:10px}
  .grow{flex:1}
  .controls{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
  input[type=search]{background:var(--panel2);border:1px solid var(--line);color:var(--ink);border-radius:8px;padding:7px 10px;font-size:14px;min-width:190px}
  .btn{background:var(--panel2);border:1px solid var(--line);color:var(--ink);border-radius:8px;padding:6px 11px;font-size:13px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;user-select:none}
  .btn:hover{border-color:var(--accent)}
  .toggle input{accent-color:var(--accent)}
  .btn.nav{text-decoration:none}
  .btn.nav.on{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600}
  [data-theme="dark"] .btn.nav.on{color:#04121f}
  .layout{max-width:1440px;margin:0 auto;padding:16px}
  /* ===== 擬似ページ（#/feed, #/links, #/about） ===== */
  .page{max-width:1080px}
  .page .pagehead{margin:4px 0 18px}
  .page .pagehead h1{font-size:26px;margin:0 0 6px;font-weight:800}
  .page .pagehead p{color:var(--ink2);font-size:13px;margin:0;max-width:70ch}
  .page .back{display:inline-block;margin-bottom:14px;font-size:13px;text-decoration:none}
  .page .section:first-of-type{margin-top:0}
  /* フィード */
  .feedbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:0 0 16px}
  .feedgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:14px;align-items:start}
  .fcard{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:14px 15px;box-shadow:0 1px 3px var(--shadow);display:flex;flex-direction:column;gap:8px}
  .fcard .fhead{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
  .fcard .fby{font-weight:600;font-size:14px}
  .fcard .fplat{font-size:10px;padding:2px 7px;border-radius:999px;background:var(--panel2);border:1px solid var(--line);color:var(--ink2)}
  .fcard .fkind{font-size:10px;padding:2px 8px;border-radius:999px;background:var(--ok-bg);color:var(--ok-ink);border:1px solid var(--ok-line)}
  .fcard .fnote{font-size:13px;color:var(--ink2);margin:0}
  .fcard .fact{display:flex;gap:12px;flex-wrap:wrap;font-size:12px;margin-top:auto;padding-top:2px}
  .fcard .fembed{margin-top:4px}
  .fcard .fembed blockquote{margin:0 !important}
  .feedgrid .fcard.wide{grid-column:1/-1}
  @media(max-width:640px){ .feedgrid{grid-template-columns:1fr} }
  .filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px;align-items:center}
  .chip{border:1px solid var(--line);background:var(--panel);color:var(--ink2);border-radius:999px;padding:5px 12px;font-size:13px;cursor:pointer}
  .chip.on{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600}
  [data-theme="dark"] .chip.on{color:#04121f}
  .count{color:var(--ink2);font-size:13px;margin-left:auto}
  .grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(215px,1fr));gap:14px}
  .card{background:var(--panel);border:1px solid var(--line);border-radius:14px;overflow:hidden;cursor:pointer;transition:.15s;display:flex;flex-direction:column;box-shadow:0 1px 3px var(--shadow)}
  .card:hover{border-color:var(--accent);transform:translateY(-2px)}
  .thumb{height:150px;background:linear-gradient(135deg,var(--hero),var(--hero2));display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}
  .thumb img,.thumb svg{width:100%;height:100%;object-fit:cover;display:block}
  .imgfail{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font-size:30px;color:var(--ink2)}
  .imgfail span{font-size:11px}
  .rankbadge{position:absolute;z-index:3;top:8px;left:8px;font-size:11px;padding:2px 8px;border-radius:999px;font-weight:600;color:#fff}
  .privtag{position:absolute;top:8px;right:8px;font-size:10px;padding:2px 7px;border-radius:999px;background:var(--warn-bg);color:var(--warn-ink);border:1px solid var(--warn-line)}
  .varcount{position:absolute;bottom:8px;right:8px;font-size:10px;padding:2px 8px;border-radius:999px;background:rgba(0,0,0,.55);color:#fff}
  .credit-mini{position:absolute;bottom:6px;left:8px;font-size:9px;color:rgba(255,255,255,.85);text-shadow:0 1px 2px #000;max-width:70%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
  .card .body{padding:10px 12px}
  .card .nm{font-style:italic;font-size:14px;line-height:1.35}
  .card .cm{color:var(--ink2);font-size:12px;margin-top:2px}
  .card .cross{color:var(--ink2);font-size:11px;margin-top:6px;font-style:italic;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .modal{position:fixed;inset:0;background:rgba(4,8,6,.72);z-index:50;display:none;align-items:flex-start;justify-content:center;padding:24px;overflow:auto}
  .modal.open{display:flex}
  .sheet{background:var(--panel);border:1px solid var(--line);border-radius:16px;max-width:860px;width:100%;overflow:hidden;box-shadow:0 20px 60px var(--shadow)}
  /* ヒーロー画像：写真は切り取らず全体を見せ、背景は同じ写真をぼかして敷く（レターボックスの黒帯を避ける） */
  .sheet .hero{height:clamp(230px,46vh,440px);position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden;background:linear-gradient(135deg,var(--hero),var(--hero2))}
  .sheet .hero .herobg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:blur(26px) saturate(1.1) brightness(.62);transform:scale(1.14);z-index:0}
  .sheet .hero .herofg{position:relative;z-index:1;max-width:100%;max-height:100%;width:auto;height:100%;object-fit:contain;display:block;box-shadow:0 6px 26px rgba(0,0,0,.34)}
  .sheet .hero svg{position:relative;z-index:1;width:100%;height:100%;object-fit:cover}
  .sheet .hero .imgfail{position:relative;z-index:1}
  @media(max-width:640px){ .sheet .hero{height:clamp(200px,38vh,300px)} }
  .close{position:absolute;top:12px;right:14px;background:rgba(0,0,0,.45);border:1px solid rgba(255,255,255,.2);color:#fff;border-radius:8px;padding:5px 11px;cursor:pointer;font-size:16px;z-index:3}
  .hero .credit{position:absolute;z-index:3;bottom:8px;left:12px;font-size:11px;color:#fff;background:rgba(0,0,0,.5);padding:3px 9px;border-radius:6px}
  .sheet .content{padding:18px 22px 26px}
  .sheet h2{margin:.1em 0;font-style:italic;font-size:23px}
  .sheet .common{color:var(--ink2);font-size:14px;margin-bottom:8px}
  .metarow{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}
  .tag{background:var(--panel2);border:1px solid var(--line);border-radius:999px;padding:3px 10px;font-size:12px;color:var(--ink2)}
  .codebadge{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.02em;padding:2px 8px;border-radius:6px;background:var(--panel2);border:1px solid var(--line);color:var(--accent);text-decoration:none;margin-right:4px}
  .card .codes{margin-top:5px}
  .card .codebadge{font-size:10px;padding:1px 6px}
  /* 登録状況バッジ。シングルクォートは登録の印ではないので、登録の有無はここだけで示す。 */
  .regbadge{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.02em;padding:2px 8px;border-radius:6px;color:#fff;white-space:nowrap;cursor:help}
  .card .regbadge{font-size:10px;padding:1px 6px;font-weight:600}
  .regnote{background:var(--panel2);border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:8px;padding:9px 12px;margin:10px 0 0;font-size:13px;line-height:1.65;color:var(--ink2)}
  .regnote b{color:var(--ink)}
  .regnote-foot{margin-top:6px;font-size:11.5px;line-height:1.6;color:var(--ink2);opacity:.85}
  .regnote-foot a{color:var(--accent)}
  .section{margin-top:20px}
  .section h3{font-size:13px;text-transform:uppercase;letter-spacing:.08em;color:var(--accent);margin:0 0 10px;border-bottom:1px solid var(--line);padding-bottom:5px}
  .varchips{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}
  .varchip{border:1px solid var(--line);background:var(--panel2);color:var(--ink2);border-radius:999px;padding:4px 11px;font-size:12px;cursor:pointer}
  .varchip.on{background:var(--accent);color:#fff;border-color:var(--accent)}
  [data-theme="dark"] .varchip.on{color:#04121f}
  /* --- 特徴（形質） --- */
  .tpanel{border:1px solid var(--line);background:var(--panel);border-radius:12px;padding:14px 16px;margin-bottom:14px}
  .tpanel h4{margin:0 0 4px;font-size:13px}
  .tpanel .hint{font-size:12px;color:var(--ink2);margin-bottom:10px;line-height:1.6}
  .tgroup{margin-bottom:10px}
  .tgroup .gname{font-size:11px;color:var(--ink2);letter-spacing:.06em;margin-bottom:5px}
  .tgroup .row{display:flex;gap:6px;flex-wrap:wrap}
  .tchip{border:1px solid var(--line);background:var(--panel2);color:var(--ink2);border-radius:999px;padding:4px 11px;font-size:12px;cursor:pointer;user-select:none}
  .tchip.on{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600}
  [data-theme="dark"] .tchip.on{color:#04121f}
  .tchip .lv{font-weight:700;margin-left:4px}
  .tchip.empty{opacity:.4}
  .flist{display:flex;gap:7px;flex-wrap:wrap}
  .fchip{border:1px solid var(--accent);color:var(--accent);background:transparent;border-radius:999px;padding:4px 12px;font-size:12px;font-weight:600;cursor:pointer;user-select:none}
  .fchip:hover{background:var(--accent);color:#fff}
  [data-theme="dark"] .fchip:hover{color:#04121f}
  .fchip.neg{border-color:var(--ink2);color:var(--ink2)}
  .fchip.neg:hover{background:var(--ink2);color:var(--panel)}
  #traitMid{margin-top:10px;padding-top:10px;border-top:1px dashed var(--line);opacity:.75}
  .linkcard{display:block;border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin-bottom:8px;text-decoration:none;color:inherit;background:var(--panel2)}
  .linkcard:hover{border-color:var(--accent)}
  .linkcard .lt{font-size:13px;font-weight:600}
  .linkcard .lu{font-size:11px;color:var(--ink2);margin-top:3px;word-break:break-all}
  .gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
  .gtile{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--panel2);cursor:pointer;transition:.15s}
  .gtile:hover{border-color:var(--accent)}
  .gtile .pic{height:120px;background:linear-gradient(135deg,var(--hero),var(--hero2));position:relative;overflow:hidden}
  .gtile .pic img,.gtile .pic svg{width:100%;height:100%;object-fit:cover}
  .gtile .cap{padding:7px 9px}
  .gtile .vlabel{font-size:12px;font-weight:600}
  .gtile .vloc{font-size:11px;color:var(--ink2);margin-top:1px}
  .gtile .credit{font-size:10px;color:var(--ink2);margin-top:5px;display:flex;align-items:center;gap:5px;flex-wrap:wrap}
  .lic{display:inline-block;font-size:10px;padding:1px 6px;border-radius:999px;border:1px solid var(--line)}
  .lic.ok{background:var(--ok-bg);color:var(--ok-ink);border-color:var(--ok-line)}
  .lic.warn{background:var(--warn-bg);color:var(--warn-ink);border-color:var(--warn-line)}
  .clr{position:absolute;top:6px;left:6px;font-size:9px;padding:1px 6px;border-radius:999px;border:1px solid}
  .clr.ok{background:var(--ok-bg);color:var(--ok-ink);border-color:var(--ok-line)}
  .clr.warn{background:var(--warn-bg);color:var(--warn-ink);border-color:var(--warn-line)}
  .hidnote{margin-top:10px;font-size:12px;background:var(--warn-bg);color:var(--warn-ink);border:1px solid var(--warn-line);border-radius:8px;padding:8px 10px}
  .notation{font-style:italic;font-size:15px;background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:10px 12px;line-height:1.8;word-break:break-word}
  .notation .g0{color:var(--b0)} .notation .g1{color:var(--b1)} .notation .g2{color:var(--b2)}
  .tree{font-size:13px}
  .tnode{padding:3px 0}
  .tnode .row{display:inline-flex;align-items:center;gap:6px;padding:3px 9px;border-radius:8px;border:1px solid var(--line);background:var(--panel2);cursor:pointer}
  .tnode .row:hover{border-color:var(--accent)}
  .tnode .role{font-size:11px;opacity:.8}
  .tchildren{margin-left:18px;border-left:1px dashed var(--line);padding-left:14px;margin-top:3px}
  .src{border:1px solid var(--line);border-radius:10px;padding:9px 12px;margin-bottom:8px;background:var(--panel2)}
  .src .t{font-weight:600;font-size:14px}
  .src .meta{font-size:12px;color:var(--ink2);margin-top:2px}
  .note{background:var(--panel2);border:1px dashed var(--line);border-radius:10px;padding:10px 12px;font-size:13px}
  .desc{font-size:14px}
  .about p{font-size:14px;line-height:1.7}
  .empty{color:var(--ink2);text-align:center;padding:60px 0}
  footer{max-width:1440px;margin:0 auto;padding:20px 18px 50px;color:var(--ink2);font-size:12px}
  .banner{max-width:1440px;margin:12px auto 0;padding:10px 16px;background:var(--panel2);border:1px solid var(--line);border-radius:10px;color:var(--ink2);font-size:13px}
  .lb{position:fixed;inset:0;background:rgba(0,0,0,.86);z-index:80;display:none;align-items:center;justify-content:center;padding:24px;flex-direction:column;gap:12px}
  .lb.open{display:flex}
  .lb .frame{max-width:820px;width:100%;background:var(--panel);border:1px solid var(--line);border-radius:14px;overflow:hidden}
  .lb .big{height:min(74vh,640px);background:linear-gradient(135deg,var(--hero),var(--hero2));display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative;touch-action:none}
  .lb .big img,.lb .big svg{width:100%;height:100%;object-fit:contain;will-change:transform;user-select:none;-webkit-user-drag:none}
  .lb .zoombar{display:flex;gap:8px;align-items:center;padding:8px 14px;border-top:1px solid var(--line);background:var(--panel2)}
  .lb .zoombar .zb{width:30px;height:30px;border-radius:7px;border:1px solid var(--line);background:var(--panel);color:var(--ink);font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center}
  .lb .zoombar .hint{font-size:11px;color:var(--ink2);margin-left:auto}
  .lb .info{padding:14px 18px}
  .lb .info h4{margin:0 0 4px;font-size:16px}
  .lb .attrib{margin-top:10px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--panel2);font-size:13px}
  .lb .attrib .k{color:var(--ink2);font-size:11px;text-transform:uppercase;letter-spacing:.05em}
  .lb .lbclose{position:absolute;top:18px;right:22px;color:#fff;font-size:26px;cursor:pointer;background:none;border:none;z-index:2}

/* Editorial field guide. Pico CSS 2 supplies the base typography and controls. */
[data-theme="light"]{--bg:#f8f7f3;--panel:#fff;--panel2:#eeeee8;--line:#d9dcd3;--ink:#252e28;--ink2:#616c63;--accent:#355c47;--hero:#e6e8df;--hero2:#e6e8df;--shadow:transparent;--pico-font-size:100%;--pico-border-radius:3px;--pico-primary:#355c47;--pico-primary-background:#355c47}
body{font-size:15px;line-height:1.7}
header{position:static;max-width:1280px;margin:auto;padding:28px 32px 18px;background:none;gap:18px;border-bottom:1px solid var(--line)}
.brand .logo{font-family:Georgia,"Times New Roman",serif;font-weight:400;font-size:34px;letter-spacing:-1px;color:var(--ink)}
.brand .jp{font-size:12px}.brand .tag{display:none}
.controls{width:100%;gap:8px;align-items:center}.controls input{margin:0 auto 0 0;width:240px;height:38px;min-width:0}
.btn{margin:0;width:auto;border-radius:2px;font-weight:400;box-shadow:none}.btn.nav{background:none;border-color:transparent;border-bottom:2px solid transparent;padding:7px 10px}
.btn.nav.on{background:none;color:var(--accent);border-color:transparent;border-bottom-color:var(--accent)}
#themeBtn{margin-left:auto}#themeIcon{display:none}.banner{display:none}
.layout{max-width:1216px;padding:32px}.page{max-width:1216px;min-height:60vh}
.catalog-head{padding:6px 0 30px}.catalog-head h1,.page .pagehead h1{font-family:Georgia,"Yu Mincho",serif;font-weight:500;font-size:clamp(27px,3vw,38px);margin:0 0 10px}
.catalog-head p,.pagehead p{color:var(--ink2);margin:0}.eyebrow{font-size:11px;letter-spacing:.15em;font-weight:600;color:var(--accent);margin:0 0 12px!important}
.grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:28px 22px}
.card{border:0;border-bottom:1px solid var(--line);border-radius:0;background:none;box-shadow:none;text-decoration:none;color:var(--ink)}
.card:hover{transform:none;box-shadow:none;border-color:var(--accent)}.card:focus-visible{outline:3px solid var(--accent);outline-offset:5px}
.thumb{height:205px;background:var(--panel2)}.card .body{padding:14px 0 18px}.card .nm{font-family:Georgia,serif;font-size:18px;overflow-wrap:anywhere}.card .cross{font-size:12px}
.rankbadge,.regbadge,.codebadge,.varcount{border-radius:2px!important;box-shadow:none}.rankbadge{background:#344d40!important;font-weight:400}
.chip,.tchip,.fchip{border-radius:3px;box-shadow:none;width:auto;margin:0;font-size:13px}.filters{padding-bottom:18px;border-bottom:1px solid var(--line);margin-bottom:25px}
.tpanel{border-radius:0;background:var(--panel);box-shadow:none;margin-bottom:28px}.tpanel .row{display:flex;gap:8px;flex-wrap:wrap}
.fcard,.src,.linkcard,.gtile,.notation,.tnode{box-shadow:none;border-radius:3px}
footer{max-width:1152px;margin:50px auto 0;padding:24px 0;border-top:1px solid var(--line);font-size:12px}
.modal.entry-page{position:static;inset:auto;padding:32px;background:none;overflow:visible;max-width:1120px;margin:auto}
.entry-page .sheet{border:0;border-radius:0;max-width:none;box-shadow:none;background:none}
.entry-page .hero{height:400px;background:var(--panel2)}.entry-page .herobg{display:none}.entry-page .content{padding:32px 0}.entry-page .content h2{font-family:Georgia,serif;font-weight:400}
.entry-page .close{display:none}.entry-page .section{margin-top:32px;border-top:1px solid var(--line);padding-top:24px}
.atlas-layout{display:grid;grid-template-columns:250px minmax(0,1fr);gap:28px}.atlas-sidebar{border-right:1px solid var(--line);padding-right:22px}
#habitat-map{height:440px;border:1px solid var(--line);background:#e8eee9;z-index:0}
.place-button{display:block;width:100%;text-align:left;background:none;color:var(--ink);border:0;border-bottom:1px solid var(--line);border-radius:0;padding:15px 10px;margin:0;box-shadow:none;font-size:14px}
.place-button small{display:block;color:var(--ink2);font-size:11px}.place-button.selected{background:var(--panel2);border-left:3px solid var(--accent)}
.atlas-note,.atlas-source,#map-status{font-size:12px;color:var(--ink2);margin-top:18px}.place-heading{padding-top:28px}.place-heading h2{font-size:26px;margin:0}.place-heading p{margin:0 0 15px}
.place-link{display:inline-block;margin:8px 20px 8px 0}.contact{font-family:monospace}
.skip-link{position:absolute;left:-9999px}.skip-link:focus{left:16px;top:8px;z-index:200;background:white;padding:10px}
@media(max-width:760px){header{padding:20px 18px 10px}.brand .logo{font-size:30px}.controls{gap:4px}.controls input{width:100%;order:2}.btn.nav{font-size:12px;padding:7px 6px}.layout{padding:24px 18px}.grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 14px}.thumb{height:165px}.card .nm{font-size:16px}.atlas-layout{grid-template-columns:1fr}.atlas-sidebar{border:0;padding:0}#place-list{display:flex;overflow-x:auto} .place-button{min-width:170px;width:170px}#habitat-map{height:340px}.modal.entry-page{padding:24px 18px}.entry-page .hero{height:300px}footer{margin:30px 18px 0}.feedgrid{grid-template-columns:1fr}}

.photo-placeholder{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:24px;gap:14px;width:100%;height:100%;color:var(--ink2);background:var(--panel2)}
.photo-placeholder>span{font-size:10px;letter-spacing:.2em}.photo-placeholder em{font:italic 20px Georgia,serif;overflow-wrap:anywhere;line-height:1.35;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.photo-placeholder small{font-size:11px}
.entry-page .hero.no-photo{height:120px}.entry-page .content h1{font-family:Georgia,serif;font-size:clamp(25px,3vw,36px);font-style:italic;overflow-wrap:anywhere}
.tchip{display:inline-flex;align-items:center;padding:7px 11px}.atlas-layout .grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}


/* Shared control tokens follow the selected theme. */
:root{--pico-font-size:100%;--pico-border-radius:3px}
[data-theme="dark"]{color-scheme:dark;--bg:#171c19;--panel:#202722;--panel2:#28312a;--line:#465249;--ink:#e9eee8;--ink2:#b4c0b6;--accent:#a3cfb1;--hero:#28312a;--hero2:#28312a;--shadow:transparent;--b0:#a3cfb1;--b1:#e4b86e;--b2:#d2a4db;--cv:#d2a4db}
[data-theme="light"]{color-scheme:light}
html[data-theme]{--pico-background-color:var(--bg);--pico-color:var(--ink);--pico-muted-color:var(--ink2);--pico-primary:var(--accent);--pico-primary-hover:var(--accent);--pico-h1-color:var(--ink);--pico-h2-color:var(--ink);--pico-h3-color:var(--ink);--pico-h4-color:var(--ink);--pico-form-element-background-color:var(--panel2);--pico-form-element-color:var(--ink);--pico-form-element-border-color:var(--line)}
h1,h2,h3,h4,h5,h6{color:var(--ink)}
[data-theme="dark"] .btn.nav.on{color:var(--accent)}
.btn:focus-visible,.place-button:focus-visible,.tchip:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.skip-link:focus{background:var(--panel);color:var(--ink)}
/* Keep Pico's generic link, button and form rules out of Leaflet controls. */
#habitat-map .leaflet-control-zoom a{display:block;box-sizing:content-box;width:32px;height:32px;padding:0;margin:0;border:0;border-radius:0;line-height:32px;text-align:center;font:bold 22px/32px Arial,sans-serif;text-decoration:none;color:#25332a;background:#fff;box-shadow:none}
#habitat-map .leaflet-control-zoom a:first-child{border-bottom:1px solid #bbb}
#habitat-map .leaflet-control-zoom a:hover{background:#e8eee9}
#habitat-map .leaflet-control-zoom a.leaflet-disabled{color:#aaa}
#habitat-map .leaflet-control-zoom a span{display:inline;font:inherit;line-height:inherit}
#habitat-map .leaflet-popup-content-wrapper,#habitat-map .leaflet-popup-tip{background:var(--panel);color:var(--ink)}
#habitat-map .leaflet-popup-close-button{padding:0;margin:0;line-height:24px;box-shadow:none}
#habitat-map .leaflet-control-attribution{background:rgba(255,255,255,.9);color:#25332a;font-size:10px}
#habitat-map .leaflet-control-attribution a{color:#28573c;font-size:inherit;padding:0}
.map-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.map-toolbar label{font-size:13px;margin:0}.map-toolbar select{font-size:13px;width:auto;max-width:100%;margin:0;padding:6px 34px 6px 10px}
.map-key{font-size:12px;color:var(--ink2);margin:10px 0}.map-key a{color:inherit}
.feedgrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.feedgrid .fcard.wide{grid-column:auto}.fcard{min-width:0;padding:14px;border-radius:3px}
.fcard .fembed{order:-1;margin:0;min-width:0}.fembed iframe{display:block;width:100%;border:0;background:white;border-radius:2px}
.fcard .fnote{font-size:13px}.fcard .fact{gap:12px}.feed-title{font:italic 17px Georgia,serif;margin:0;color:var(--ink)}
@media(max-width:760px){.feedgrid{grid-template-columns:1fr}.fcard{padding:10px}.atlas-layout .grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

.instagram-post{display:block;width:100%;max-width:540px;min-width:0;height:640px;margin:0 auto;border:1px solid var(--line);background:#fff}.feedbar .tchip{gap:6px}

.hero .credit a{color:inherit;text-decoration:underline}.environment-note{font-size:13px;color:var(--ink2)}
