@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@300;400;500&family=Manrope:wght@400;500;600&family=Newsreader:opsz,wght@6..72,400;6..72,500&display=swap');

:root {
  --ink:#13221d; --ink-soft:#4f615a; --paper:#f4f1e9; --paper-deep:#e8e2d4;
  --line:rgba(19,34,29,.17); --line-strong:rgba(19,34,29,.34);
  --moss:#398366; --moss-deep:#245a46; --gold:#b5812f; --ochre:#bd713b;
  --white:#fffdf7; --display:'Newsreader',Georgia,serif; --body:'Manrope',sans-serif;
  --mono:'DM Mono',monospace; --max:1220px;
}
*{box-sizing:border-box} html{scroll-behavior:smooth} body{margin:0;color:var(--ink);background:radial-gradient(circle at 10% 8%,rgba(57,131,102,.09),transparent 28rem),radial-gradient(circle at 92% 28%,rgba(181,129,47,.08),transparent 25rem),var(--paper);font-family:var(--body);line-height:1.7;text-rendering:optimizeLegibility;overflow-x:hidden}
body:before{content:'';position:fixed;inset:0;z-index:-1;opacity:.2;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.13'/%3E%3C/svg%3E")}
a{color:inherit} img{max-width:100%} ::selection{background:var(--ink);color:var(--paper)}
.skip-link{position:absolute;left:-999px;top:1rem}.skip-link:focus{left:1rem;z-index:100;background:var(--ink);color:#fff;padding:.7rem 1rem}
.container{width:min(calc(100% - 2rem),var(--max));margin-inline:auto}
.site-header{width:min(calc(100% - 2rem),var(--max));margin:auto;min-height:92px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);position:relative;z-index:30}
.brand{display:flex;align-items:center;gap:.72rem;text-decoration:none;font-weight:600}.brand-mark{width:29px;height:29px;border:1px solid currentColor;border-radius:50%;display:grid;place-items:center}.brand-mark:after{content:'';width:7px;height:7px;border-radius:50%;background:currentColor;box-shadow:7px 0 var(--moss),-7px 0 var(--gold),0 7px var(--ochre)}.brand-copy{display:grid;line-height:1.05}.brand-copy small{font:500 .54rem var(--mono);text-transform:uppercase;letter-spacing:.1em;color:var(--ink-soft);margin-top:.28rem}
.site-nav{display:flex;align-items:center;gap:clamp(1rem,2.4vw,2.4rem)}.site-nav a{text-decoration:none;font-size:.86rem;position:relative}.site-nav a:after{content:'';position:absolute;height:1px;left:0;right:100%;bottom:-.38rem;background:currentColor;transition:right .25s}.site-nav a:hover:after,.site-nav a[aria-current=page]:after{right:0}.origin-link{font:500 .65rem var(--mono)!important;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft)}.menu-toggle{display:none;border:1px solid var(--line-strong);border-radius:999px;background:transparent;color:var(--ink);padding:.55rem .8rem;font:500 .65rem var(--mono);text-transform:uppercase;letter-spacing:.08em}
.eyebrow{font:500 .7rem/1.4 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft)}
.hero{padding:clamp(4.5rem,9vw,8rem) 0 clamp(5rem,10vw,9rem);border-bottom:1px solid var(--line);text-align:center}.hero h1,.page-hero h1{font:400 clamp(2.65rem,5.2vw,3.4375rem)/.96 var(--display);letter-spacing:-.045em;margin:1.35rem auto 0;max-width:1040px}.hero h1 em,.page-hero h1 em{font-weight:400;color:var(--moss)}.hero .lead,.page-hero .lead{font-size:clamp(1.05rem,1.7vw,1.3rem);color:var(--ink-soft);max-width:820px;margin:1.7rem auto 0}.hero-actions{display:flex;justify-content:center;gap:.8rem;flex-wrap:wrap;margin-top:2.3rem}.button{display:inline-flex;align-items:center;gap:.7rem;border:1px solid var(--ink);border-radius:999px;padding:.8rem 1.15rem;text-decoration:none;font-size:.84rem;transition:.2s}.button:after{content:'↗'}.button:hover{background:var(--ink);color:var(--paper);transform:translateY(-2px)}.button--plain:after{content:'→'}.hero-meta{display:flex;justify-content:center;gap:clamp(1rem,4vw,3rem);flex-wrap:wrap;margin-top:3.5rem;font:.65rem var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft)}
.page-hero{padding:clamp(4rem,8vw,7rem) 0 clamp(4rem,8vw,7rem);text-align:center;border-bottom:1px solid var(--line)}
.section{padding:clamp(5rem,10vw,9rem) 0;border-bottom:1px solid var(--line)}.section--compact{padding:clamp(3.8rem,7vw,6rem) 0}.section--dark{background:var(--ink);color:var(--paper)}.section--deep{background:var(--paper-deep)}.section-head{text-align:center;max-width:920px;margin:0 auto clamp(3rem,6vw,5rem)}.section-head h2{font:400 clamp(2.35rem,4.8vw,3.4375rem)/.98 var(--display);letter-spacing:-.04em;margin:1rem 0}.section-head p{max-width:760px;margin:0 auto;color:var(--ink-soft);font-size:1.05rem}.section--dark .section-head p,.section--dark .eyebrow{color:#adbbb5}
.thesis{max-width:1050px;margin:auto;text-align:center;font:400 clamp(2.1rem,4.2vw,3.25rem)/1.02 var(--display);letter-spacing:-.035em}.thesis em{font-weight:400;color:var(--moss)}
.fact-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}.fact{min-height:205px;padding:1.6rem;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.fact small{font:.62rem var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft)}.fact strong{display:block;font:400 1.7rem/1.05 var(--display);margin:2.4rem 0 .55rem}.fact p{margin:0;color:var(--ink-soft);font-size:.9rem}
.two-col{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(2.5rem,7vw,7rem);align-items:start}.sticky{position:sticky;top:2rem}.prose{max-width:790px}.prose h2{font:400 clamp(2.35rem,4.4vw,3.4375rem)/1 var(--display);letter-spacing:-.035em;margin:0 0 1.8rem}.prose h3{font:500 1.22rem var(--body);margin:2.7rem 0 .8rem}.prose p,.prose li{color:var(--ink-soft);font-size:1.02rem}.prose p:first-of-type{font-size:1.2rem;color:var(--ink)}.prose ul{padding-left:1.2rem}.prose li+li{margin-top:.55rem}
.media-frame{margin:0;border:1px solid var(--line);background:#e5ddca;overflow:hidden}.media-frame img{display:block;width:100%;height:auto;max-height:680px;object-fit:contain}.media-frame figcaption{display:flex;justify-content:space-between;gap:1rem;padding:.85rem 1rem;background:var(--paper);border-top:1px solid var(--line);font:.58rem/1.5 var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft)}.media-frame--portrait{max-width:560px;margin-inline:auto}.media-frame--portrait img{max-height:660px}
.card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.card{border:1px solid var(--line);padding:1.6rem;background:rgba(255,255,255,.2);min-height:230px}.card .index{font:.62rem var(--mono);color:var(--moss);letter-spacing:.08em}.card h3{font:400 clamp(1.55rem,2.5vw,2.15rem)/1.05 var(--display);margin:2.1rem 0 .75rem}.card p{color:var(--ink-soft);font-size:.91rem;margin:0}.status{display:inline-flex;border:1px solid var(--line-strong);border-radius:999px;padding:.25rem .6rem;font:500 .55rem var(--mono);text-transform:uppercase;letter-spacing:.07em}.status--built{background:#dce8d7;color:#29493c;border-color:#9caf94}.status--plan{background:#eee1c6;color:#614c20;border-color:#c4a96f}.status--research{background:#dfe7ea;color:#294551;border-color:#9aafb7}
.system-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.system-card{border-top:1px solid var(--line);padding:2rem 0 0;min-height:220px}.system-card small{font:.62rem var(--mono);color:var(--moss);text-transform:uppercase}.system-card h3{font:400 2rem/1.04 var(--display);margin:1rem 0}.system-card p{color:var(--ink-soft);font-size:.95rem}
.table-wrap{overflow-x:auto;border:1px solid var(--line)}table{border-collapse:collapse;width:100%;min-width:760px;background:rgba(255,255,255,.18)}th,td{text-align:left;vertical-align:top;padding:1rem;border-bottom:1px solid var(--line);font-size:.88rem}th{font:.62rem var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft)}td:first-child{font-weight:600}tr:last-child td{border-bottom:0}
.version-grid{display:grid;gap:1.2rem}.version{display:grid;grid-template-columns:minmax(280px,.9fr) minmax(0,1.1fr);border:1px solid var(--line);background:rgba(255,255,255,.18)}.version img{width:100%;height:100%;max-height:430px;object-fit:contain;background:#eee8dc}.version-copy{padding:clamp(1.5rem,3vw,2.6rem)}.version-copy h3{font:400 clamp(2rem,3.5vw,2.8rem)/1 var(--display);margin:.7rem 0 1rem}.version-copy p{color:var(--ink-soft)}
.gallery{display:grid;grid-template-columns:1.2fr .8fr .8fr;gap:1rem}.gallery figure{margin:0;position:relative;overflow:hidden;border:1px solid var(--line);background:#e5ddca}.gallery figure:first-child{grid-row:span 2}.gallery img{display:block;width:100%;height:100%;min-height:250px;object-fit:cover}.gallery figcaption{position:absolute;left:.65rem;right:.65rem;bottom:.65rem;background:rgba(19,34,29,.84);color:#fff;padding:.62rem .72rem;font:.56rem var(--mono);text-transform:uppercase;letter-spacing:.05em;backdrop-filter:blur(8px)}
.callout{padding:1.35rem 1.5rem;border-left:3px solid var(--gold);background:#eee5d2;color:var(--ink-soft);font-size:.92rem}.callout strong{color:var(--ink)}.callout--dark{background:rgba(255,255,255,.07);border-color:#94bda8;color:#c1cbc7}
.swarm-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.swarm-card{border:1px solid rgba(255,255,255,.18);padding:1.5rem}.swarm-card small{font:.58rem var(--mono);text-transform:uppercase;color:#9eb2a9}.swarm-card h3{font:400 1.7rem/1.05 var(--display);margin:1.2rem 0 .7rem}.swarm-card p{color:#b8c4bf;font-size:.9rem;margin:0}.download-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.download{border:1px solid var(--line);padding:1.5rem;text-decoration:none;display:flex;justify-content:space-between;gap:1rem;transition:.2s}.download:hover{background:var(--paper-deep)}.download strong{display:block}.download small{display:block;color:var(--ink-soft);margin-top:.4rem}.download span{font-size:1.3rem}
.references{display:grid;gap:.7rem;counter-reset:ref}.reference{display:grid;grid-template-columns:48px 1fr;gap:1rem;padding:1rem 0;border-top:1px solid var(--line);text-decoration:none}.reference:before{counter-increment:ref;content:counter(ref,decimal-leading-zero);font:.62rem var(--mono);color:var(--ink-soft)}.reference strong{display:block}.reference small{color:var(--ink-soft)}
/* Timeline */
.timeline-shell{position:relative;max-width:1120px;margin:auto}.timeline-shell:before{content:'';position:absolute;left:50%;top:1rem;bottom:1rem;width:1px;background:var(--line-strong)}.timeline-entry{position:relative;width:50%;padding:0 3.4rem clamp(3.8rem,7vw,6rem) 0}.timeline-entry:nth-child(even){margin-left:50%;padding:0 0 clamp(3.8rem,7vw,6rem) 3.4rem}.timeline-dot{position:absolute;right:-7px;top:1.35rem;width:14px;height:14px;border:2px solid var(--moss);background:var(--paper);border-radius:50%;box-shadow:0 0 0 8px var(--paper)}.timeline-entry:nth-child(even) .timeline-dot{right:auto;left:-7px}.timeline-meta{font:.63rem var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--moss);margin-bottom:.8rem}.timeline-card{border:1px solid var(--line);background:rgba(255,255,255,.2)}.timeline-card summary{list-style:none;cursor:pointer;padding:1.3rem 3.3rem 1.3rem 1.3rem;position:relative}.timeline-card summary::-webkit-details-marker{display:none}.timeline-card summary:after{content:'+';position:absolute;right:1.2rem;top:1.05rem;font:300 1.7rem var(--display);transition:transform .2s}.timeline-card[open] summary:after{transform:rotate(45deg)}.timeline-card summary h2{font:400 clamp(1.7rem,3vw,2.35rem)/1.05 var(--display);margin:.45rem 0}.timeline-card summary p{margin:.5rem 0 0;color:var(--ink-soft);font-size:.9rem}.timeline-detail{padding:0 1.3rem 1.5rem;border-top:1px solid var(--line)}.timeline-detail>p{color:var(--ink-soft)}.timeline-detail .media-frame{margin-top:1.4rem}.timeline-tools{display:flex;justify-content:center;gap:.7rem;margin-bottom:4rem}.small-button{border:1px solid var(--line-strong);border-radius:999px;background:transparent;padding:.58rem .85rem;color:var(--ink);font:500 .62rem var(--mono);text-transform:uppercase;letter-spacing:.06em;cursor:pointer}.small-button:hover{background:var(--ink);color:var(--paper)}
.contact-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}.contact-item{padding:clamp(1.5rem,4vw,2.5rem);border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-height:210px}.contact-item small{font:.62rem var(--mono);text-transform:uppercase;color:var(--ink-soft)}.contact-item strong,.contact-item a{display:block;margin-top:2.7rem;font:400 clamp(1.45rem,2.5vw,2rem)/1.1 var(--display);text-decoration:none;overflow-wrap:anywhere}.contact-note{max-width:800px;margin:3rem auto 0;text-align:center;color:var(--ink-soft)}
.site-footer{padding:clamp(4rem,8vw,7rem) 0 2rem;background:var(--ink);color:var(--paper)}.footer-top{display:grid;grid-template-columns:1.2fr .8fr;gap:3rem}.footer-title{font:400 clamp(2.5rem,4.5vw,3.4375rem)/.98 var(--display);margin:0}.footer-nav{display:grid;gap:.6rem;align-content:start}.footer-nav a{width:fit-content;text-decoration:none;color:#c2ccc8}.footer-bottom{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-top:5rem;padding-top:1.2rem;border-top:1px solid rgba(255,255,255,.18);font:.58rem var(--mono);text-transform:uppercase;letter-spacing:.07em;color:#9fada7}
@media(max-width:900px){.fact-grid{grid-template-columns:repeat(2,1fr)}.two-col,.version,.footer-top{grid-template-columns:1fr}.sticky{position:static}.card-grid{grid-template-columns:repeat(2,1fr)}.gallery{grid-template-columns:1fr 1fr}.gallery figure:first-child{grid-row:auto;grid-column:1/-1}.contact-grid{grid-template-columns:1fr}.contact-item{min-height:160px}.contact-item strong,.contact-item a{margin-top:1.5rem}}
@media(max-width:720px){.site-header{min-height:76px}.brand-copy>span{font-size:.88rem}.menu-toggle{display:block}.site-nav{display:none;position:absolute;left:0;right:0;top:calc(100% + 1px);padding:1rem;background:var(--paper);border:1px solid var(--line);box-shadow:0 18px 45px rgba(19,34,29,.12);align-items:stretch}.site-nav.open{display:grid}.site-nav a{padding:.7rem}.hero h1,.page-hero h1{font-size:clamp(2.35rem,10.4vw,2.75rem)}.section-head h2,.prose h2{font-size:clamp(2.2rem,9vw,2.75rem)}.fact-grid,.card-grid,.system-grid,.swarm-grid,.download-grid{grid-template-columns:1fr}.fact{min-height:160px}.card{min-height:190px}.gallery{grid-template-columns:1fr}.gallery figure:first-child{grid-column:auto}.gallery img{height:auto;max-height:500px;object-fit:contain}.media-frame figcaption{flex-direction:column}.timeline-shell:before{left:10px}.timeline-entry,.timeline-entry:nth-child(even){width:100%;margin:0;padding:0 0 3.2rem 2.6rem}.timeline-dot,.timeline-entry:nth-child(even) .timeline-dot{left:4px;right:auto}.timeline-card summary{padding:1.15rem 3rem 1.15rem 1.1rem}.timeline-detail{padding:0 1.1rem 1.3rem}.footer-bottom{flex-direction:column}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
