/* A warm field for the living canopy, with an editorial serif for the protocol. */
@font-face{font-family:'Grubbit Serif';src:url('/assets/Fraunces-normal.ttf') format('truetype');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:'Grubbit Serif';src:url('/assets/Fraunces-italic.ttf') format('truetype');font-weight:500;font-style:italic;font-display:swap}
body{--bg:#f6f3e9;--paper:#fffcf4;--ink:#193b2b;--muted:#5a6d5e;--line:#d1d7c5;--soft:#eaeedd;--priors:#b24e22;--priors-soft:#f1e3d2;--priors-line:#d5b18c;font-feature-settings:'ss01' on;text-rendering:optimizeLegibility}
body.dark{--bg:#10251d;--paper:#172e23;--ink:#edf1df;--muted:#abbca6;--line:#344c39;--soft:#1c3527;--priors:#eea06a;--priors-soft:#322c22;--priors-line:#74543a}
.specimen{--bg:inherit;--paper:inherit;--ink:inherit;--muted:inherit;--line:inherit;--soft:inherit}
::selection{background:#e7b389;color:#173a2b}
body .priors-word,body.dark .priors-word{color:var(--priors)}
.home-page h1,.home-page h2,.home-page h3,.app-dialog h2,.docs-page .docs-article>h1,.docs-page .docs-article>h2,.docs-page .doc-lab h2{font-family:'Grubbit Serif',Georgia,serif;font-weight:500;letter-spacing:-.045em;text-wrap:balance}
.home-page .hero h1{font-size:clamp(60px,5.4vw,84px);line-height:1.04;letter-spacing:-.055em;margin:28px 0}
.hero h1 em{font-family:'Grubbit Serif',Georgia,serif;font-style:italic;font-weight:500;letter-spacing:-.04em}
.hero-description{font-size:16px;line-height:1.85}.hero-note{line-height:1.7}.hero .eyebrow{color:var(--muted);font-size:13px;letter-spacing:.01em}
.home-page h2{font-size:clamp(38px,3.7vw,56px);line-height:1.14}.home-page .closing h2{font-size:36px;line-height:1.2}
.section-kicker{font-weight:500;font-size:14px}.section-kicker>.mono{color:var(--priors)}
.definition p{font-size:18px;line-height:1.85}.definition p.quiet{font-size:15px}.section-head>p{font-size:15px;line-height:1.85}
.relationship-label{font-weight:600}.relationship p{font-size:14px;line-height:1.85}.relationship .external-circle{color:var(--priors);border-color:var(--priors-line)}
.layer-top>span:nth-child(2),.layer-bottom>span:nth-child(2){font-family:'Grubbit Serif',Georgia,serif;font-weight:500;font-size:25px;letter-spacing:-.035em}.layer-bottom>span:nth-child(2){color:var(--priors)}
.principles p{font-size:14px;line-height:1.6}.principles>div{position:relative;border-left:0}.principles>div:before{content:'';position:absolute;left:0;top:0;bottom:0;width:1px;background:var(--line);transform:scaleY(0);transform-origin:top;transition:transform .7s cubic-bezier(.2,.65,.3,1) var(--reveal-delay,0ms)}.principles>div.motion-entered:before,.site-motion-off .principles>div:before{transform:scaleY(1)}
.home-page .service-description h3{font-size:34px;line-height:1.2}.service-description p{font-size:15px;line-height:1.85}.service-description dl{font-size:13px}.registration-notes p{font-size:13px;line-height:1.85}.registration-notes strong{font-size:14px}.directory-empty h3{font-size:27px}.directory-empty p{font-size:14px}
.process-panel h3{font-family:'Grubbit Serif',Georgia,serif;font-weight:500;font-size:35px;line-height:1.2}.process-panel p,.settlement-copy{font-size:15px;line-height:1.85}.equation p{font-size:19px;line-height:1.65}
.knowledge-links h3{font-size:30px;line-height:1.2}.knowledge-links p{font-size:14px;line-height:1.8}.knowledge-links>a{transition:background .25s,padding .3s,border-color .3s}.knowledge-links>a:hover{background:var(--soft);padding-left:15px;padding-right:15px;border-color:var(--priors-line)}.knowledge-links>a:hover h3{color:var(--priors)}.knowledge-links>a:hover .arrow{transform:translate(4px,-3px);color:var(--priors)}
.site-header nav a,.footer-links a,.text-link{position:relative;transition:color .2s,border-color .2s}.site-header nav a:after,.footer-links a:after{content:'';position:absolute;left:0;right:0;bottom:-5px;height:1px;background:var(--priors);transform:scaleX(0);transform-origin:left;transition:transform .25s ease}.site-header nav a:hover:after,.site-header nav a:focus-visible:after,.footer-links a:hover:after,.footer-links a:focus-visible:after{transform:scaleX(1)}.text-link:hover{color:var(--priors);border-color:var(--priors)}
.button{transition:background .2s,border-color .2s,transform .2s}.button:hover{transform:translateY(-2px)}.button:active{transform:translateY(0)}.button span{display:inline-block;transition:transform .2s}.button:hover span{transform:translateX(3px)}
.site-footer p{font-size:13px;line-height:1.8}.footer-links{font-size:13px}.footer-bottom{line-height:1.7}
/* Entrance motion extends through the page, with short, bounded staggering. */
.motion-ready .motion-reveal{opacity:0;transform:translateY(14px);transition:opacity .6s ease var(--reveal-delay,0ms),transform .65s cubic-bezier(.2,.65,.3,1) var(--reveal-delay,0ms)}
.motion-ready .motion-reveal.motion-entered{opacity:1;transform:translateY(0)}
.workstation-tools[open] .habitat-actions{animation:canopy-unfold .25s ease both}@keyframes canopy-unfold{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}
/* The same typographic hierarchy carries into the scientific documentation. */
.docs-page .docs-article>h1{font-size:clamp(44px,4.5vw,66px);line-height:1.1;letter-spacing:-.05em}.docs-page .docs-article>h2{font-size:34px;line-height:1.25}.docs-page .doc-lab h2{font-size:30px;line-height:1.2}.docs-page .docs-article>.lead{font-size:18px;line-height:1.8;max-width:680px}
.docs-page .docs-article>p,.docs-page .docs-article>ul,.docs-page .docs-article>ol{font-size:15px;line-height:1.9}.docs-page .doc-lab .lab-intro,.docs-page .doc-lab .lab-explanation{font-size:13px;line-height:1.85}.docs-page .docs-sidebar a{font-size:13px;transition:background .2s,color .2s,padding-left .25s}.docs-page .docs-sidebar a:hover{padding-left:15px}.docs-page #docs-toc a{transition:color .2s,transform .2s}.docs-page #docs-toc a:hover{transform:translateX(3px)}
.docs-page .docs-pagination strong{font-family:'Grubbit Serif',Georgia,serif;font-size:23px;font-weight:500;letter-spacing:-.025em}.docs-page .docs-pagination>a{transition:background .25s,border-color .25s,transform .25s}.docs-page .docs-pagination>a:hover{transform:translateY(-3px);border-color:var(--priors-line);background:var(--priors-soft)}
.docs-page .heading-anchor{transition:opacity .2s,transform .2s;color:var(--priors)}.docs-page h2:hover .heading-anchor{transform:translateX(3px)}.docs-page .doc-code-block{transition:border-color .2s}.docs-page .doc-code-block:hover{border-color:var(--priors-line)}
.docs-page .atlas-priors strong{color:#eea06a}.docs-page .atlas-priors[aria-pressed=true]{border-color:#eea06a}
@media(max-width:1200px){.home-page .hero h1{font-size:64px}.hero-description{font-size:15px}.home-page h2{font-size:45px}}
@media(max-width:1000px){.home-page .hero h1{font-size:76px}.hero-description{max-width:520px}.hero-copy{padding-bottom:12px}.home-page h2{font-size:43px}}
@media(max-width:600px){.home-page .hero h1{font-size:clamp(48px,12.6vw,66px)!important;line-height:1.06;letter-spacing:-.055em;margin:23px 0}.hero-description{font-size:15px}.home-page h2{font-size:37px}.home-page .closing h2{font-size:32px}.definition p{font-size:17px}.definition p.quiet{font-size:14px}.section-head>p{font-size:14px}.home-page .service-description h3,.process-panel h3{font-size:31px}.service-description p,.process-panel p,.settlement-copy{font-size:14px}.knowledge-links h3{font-size:29px}.knowledge-links p{font-size:13px}.knowledge-links>a:hover{padding-left:0;padding-right:0}.docs-page .docs-article>h1{font-size:43px!important}.docs-page .docs-article>h2{font-size:30px}.docs-page .doc-lab h2{font-size:27px}.docs-page .docs-article>.lead{font-size:16px}.docs-page .docs-article>p,.docs-page .docs-article>ul,.docs-page .docs-article>ol{font-size:14px}.docs-page .docs-pagination strong{font-size:20px}}
.site-motion-off .motion-reveal,.docs-motion-off .doc-reveal{opacity:1!important;transform:none!important;transition:none!important}.site-motion-off *, .site-motion-off :before,.site-motion-off :after{animation:none!important}
@media(prefers-reduced-motion:reduce){.motion-ready .motion-reveal{opacity:1;transform:none}.principles>div:before{transform:scaleY(1)}*,*:before,*:after{animation:none!important;transition:none!important}}
@media print{.motion-ready .motion-reveal,.doc-reveal{opacity:1!important;transform:none!important}.principles>div:before{transform:scaleY(1)}}

/* The new transparent wordless mark keeps its full silhouette in both themes. */
.site-header .brand img,.site-footer .brand img{width:44px;height:44px;flex:0 0 44px;object-fit:contain;mix-blend-mode:normal;border-radius:0;filter:none}
.site-header .brand,.site-footer .brand{gap:9px}
.specimen .worm-fallback{object-fit:contain;mix-blend-mode:normal;border-radius:0}
@media(max-width:600px){.site-header .brand img{width:36px;height:36px;flex-basis:36px}.site-header .brand{gap:6px}}
@media(max-width:370px){.site-header .brand img{width:30px;height:30px;flex-basis:30px}}

.habitat-cycle-label{color:var(--priors);font-weight:500}.dark .habitat-cycle-label{color:#a8c5d6}

/* Public links and directory recovery stay available on narrow screens. */
.header-social{display:inline-flex;align-items:center;justify-content:center;flex:0 0 32px;width:32px;height:34px;border:1px solid var(--line);border-radius:4px;color:var(--ink);transition:color .2s,background .2s,border-color .2s}.header-social:hover{color:var(--priors);background:var(--soft);border-color:var(--priors)}.header-social:focus-visible,#directory-retry:focus-visible{outline:2px solid var(--priors);outline-offset:4px}
#directory-retry{flex:none;margin-left:auto;border:1px solid var(--line);border-radius:4px;padding:6px 10px;background:transparent;color:var(--ink);font:inherit;cursor:pointer}#directory-retry:hover{background:var(--soft)}#directory-retry:disabled{opacity:.55;cursor:wait}.directory-footer{gap:12px;flex-wrap:wrap}.directory-footer>span:first-child{min-width:0;overflow-wrap:anywhere}.directory-noscript{padding:16px 24px;font-size:12px;color:var(--muted)}
@media(max-width:600px){.header-actions{gap:6px}.header-social{flex-basis:30px;width:30px;height:32px}.header-actions .site-motion-button>span:last-child{display:none}.header-actions .site-motion-button{min-width:28px;padding:7px}.directory-footer>span:first-child{flex:1 1 65%}#directory-count{width:100%}}
@media(max-width:480px){.site-header .brand>span{display:none}.site-header .brand{flex-shrink:0;margin-right:auto}.site-header{gap:8px}.header-actions>.small{white-space:nowrap}.docs-header .header-actions>.small{font-size:10px;padding:8px}.header-actions{flex-shrink:0}}

/* GRUB contract — explicit address, keyboard-copyable and motion-aware. */
.grub-contract-bar{display:flex;justify-content:center;padding:9px 20px 12px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--bg)}
.grub-contract{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:14px;max-width:100%;min-height:38px;padding:8px 15px;border:1px solid #55b652;border-radius:5px;background:#e5f7d5;color:#174c26;box-shadow:0 0 14px #00c80525,inset 0 0 12px #00c8050a;animation:grub-contract-glow 3.8s ease-in-out infinite;transition:background .2s,border-color .2s}
.grub-contract strong{font-size:12px;letter-spacing:.07em;font-weight:700}.grub-contract code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:11px;line-height:1.5;white-space:nowrap}.contract-copy{font-size:17px;line-height:1}.contract-feedback:empty{display:none}.contract-feedback{font-size:10px;position:absolute;right:0;top:100%;padding:2px 6px;background:var(--paper);color:var(--ink);border:1px solid var(--line);border-radius:3px;z-index:12;white-space:nowrap}
.dark .grub-contract{background:#112c19;color:#afff77;border-color:#3fa74b;text-shadow:0 0 12px #65ff4838}.grub-contract:hover{border-color:#00c805;background:#d5f4bf}.dark .grub-contract:hover{background:#173c21;border-color:#7deb56}.grub-contract:focus-visible{outline:2px solid #00c805;outline-offset:4px}
@keyframes grub-contract-glow{0%,100%{box-shadow:0 0 12px #00c80525,inset 0 0 12px #00c8050a}50%{box-shadow:0 0 22px #00c80548,inset 0 0 16px #00c80518}}
.site-motion-off .grub-contract{animation:none}
@media(prefers-reduced-motion:reduce){.grub-contract{animation:none;transition:none}}
@media(max-width:600px){.grub-contract-bar{padding:8px 12px 10px}.grub-contract{gap:8px;padding:8px 10px}.grub-contract strong{font-size:10px}.grub-contract code{font-size:clamp(8px,2.2vw,10px)}.contract-copy{font-size:13px}}
