:root{--bg:#f4f3ee;--ink:#20221f;--muted:#62665e;--line:#d5d8cf;--accent:#365b24;--paper:#fafaf6}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:2rem}body{margin:0;background:var(--bg);color:var(--ink);font-family:Arial,Helvetica,sans-serif;line-height:1.65}a{color:inherit;text-underline-offset:5px;text-decoration-thickness:1px}a:hover{color:var(--accent)}a:focus-visible{outline:3px solid #62854c;outline-offset:5px}h1,h2,h3,p,figure{margin:0}p+p{margin-top:1rem}h1,h2,h3{line-height:1.08;letter-spacing:-.045em;font-weight:500}h1{font-size:clamp(2.8rem,6.8vw,6.2rem);max-width:1100px}h1 span{color:var(--muted)}h2{font-size:clamp(2rem,4.2vw,3.8rem);margin-bottom:1.6rem}h3{font-size:1.55rem;margin-bottom:1rem}p{color:var(--muted)}.wrap{width:min(1240px,calc(100% - 96px));margin-inline:auto}.site-header{display:flex;align-items:center;justify-content:space-between;gap:2rem;padding-block:30px;border-bottom:1px solid var(--line)}.brand{font-size:1.15rem;font-weight:600;letter-spacing:-.03em;text-decoration:none;color:var(--ink)}.brand-mark{display:inline-block;color:var(--accent);margin-right:12px;font-family:monospace;font-size:1.6rem}.site-header nav{display:flex;gap:1.6rem;flex-wrap:wrap;font-size:.9rem}.site-header nav a{text-decoration:none;padding-block:8px}.site-header nav a[aria-current]{box-shadow:0 2px var(--accent);color:var(--accent)}.skip{position:absolute;top:-100px;left:16px;background:var(--ink);color:white;padding:12px;z-index:10}.skip:focus{top:12px}.hero{padding-block:90px 32px}.eyebrow{text-transform:uppercase;font-family:monospace;letter-spacing:.12em;font-size:.75rem;color:var(--accent);display:block;margin-bottom:22px}.hero-bottom{display:flex;align-items:flex-end;justify-content:space-between;gap:48px;margin-block:36px 70px}.lead{font-size:1.22rem;line-height:1.6;max-width:660px;margin-bottom:28px}.hero-bottom .lead{margin:0;max-width:660px}.button{display:inline-flex;gap:28px;align-items:center;justify-content:center;background:var(--ink);color:var(--paper);border:1px solid var(--ink);padding:13px 20px;text-decoration:none;font-size:.9rem;flex-shrink:0}.button:hover{background:var(--accent);color:white;border-color:var(--accent)}.hero-index{display:grid;grid-template-columns:repeat(3,1fr);padding-top:22px;border-top:1px solid var(--line);font-family:monospace;font-size:.8rem;color:var(--muted)}.section{padding-block:80px;border-bottom:1px solid var(--line)}.section-heading{max-width:820px;margin-bottom:40px}.system-grid{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line)}.system-card{padding:30px;display:flex;flex-direction:column;align-items:flex-start}.system-card+.system-card{border-left:1px solid var(--line)}.status{font: .72rem/1.6 monospace;color:var(--accent);margin-bottom:28px}.status:before{content:'●';margin-right:7px}.system-card p{margin-bottom:28px}.system-card a{font-size:.9rem}.system-card a:first-of-type{margin-top:auto}.system-card .secondary{margin-top:12px;color:var(--muted)}.dark-section{background:#22251f;color:var(--paper)}.dark-section .section{border:0}.dark-section p{color:#c4c9bf}.dark-section .eyebrow,.dark-section .evolution span{color:#a9c398}.dark-section a:hover{color:#bed5ac}.evolution{display:grid;grid-template-columns:repeat(3,1fr);gap:50px;margin-top:50px}.evolution span{font-family:monospace;display:block;margin-bottom:28px}.split{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:start}.split p{max-width:600px}.actions{display:flex;align-items:center;flex-wrap:wrap;gap:24px;margin-top:30px}.actions .status{margin:0}.catalogue-preview{background:#e6e7df;border:1px solid var(--line);padding:28px;margin-top:20px}.preview-top{display:flex;justify-content:space-between;gap:20px;font-family:monospace;font-size:.75rem}.preview-top strong{font-size:1.3rem;font-family:Georgia,serif;font-weight:normal}.catalogue-object{display:flex;align-items:center;justify-content:center;gap:22px;height:270px}.catalogue-object div{width:94px;height:172px;background:#343731;position:relative;border:8px solid #4b4e47}.catalogue-object div:before,.catalogue-object div:after{content:'';position:absolute;border-radius:50%;background:#20231e;border:3px solid #666a61;left:50%;transform:translateX(-50%)}.catalogue-object div:before{width:30px;height:30px;top:18px}.catalogue-object div:after{width:54px;height:54px;bottom:18px}figcaption{font-size:.75rem;color:var(--muted);margin-top:20px;line-height:1.5}.publication-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.publication{border:1px solid var(--line);background:var(--paper)}.publication-preview{padding:20px;background:#e7e9e1;min-height:210px;display:flex;flex-direction:column;justify-content:space-between}.publication-preview>span,.publication-preview small{font: .65rem monospace;color:var(--muted)}.publication-preview strong{font:1.6rem Georgia,serif;margin-block:18px}.preview-rule{height:1px;background:#b1b7a8}.preview-columns{display:flex;gap:6px;margin-block:15px}.preview-columns i{display:block;height:35px;flex:1;background:#c9cebf}.publication-body{padding:24px 20px}.publication-body h3{font-size:1.35rem}.publication-body p{font-size:.85rem;margin-bottom:20px;min-height:2.8em}.publication-body a{font-size:.85rem}.architecture{border:1px solid var(--line);padding:24px;background:var(--paper)}.architecture .eyebrow{margin-bottom:12px;font-size:.65rem}.architecture h3{font-size:1.25rem}.architecture p{font-size:.85rem}.source-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.flow-arrow{text-align:center;color:var(--accent);font-size:1.5rem;padding:8px}.semantic-core{text-align:center;background:#e7ecdf;padding:22px;border:1px solid #c6d1ba}.region-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding-top:20px}.region-grid strong,.region-grid span,.api-layer span{display:block}.region-grid strong{font-size:.8rem}.region-grid span{font-size:.7rem;color:var(--muted);margin-top:5px}.api-layer{text-align:center;border-top:1px solid var(--line);padding-top:15px;font-size:.9rem}.api-layer span{color:var(--muted);font-size:.8rem}.closing{padding-block:85px}.closing .lead{max-width:720px}.site-footer{padding-block:35px;display:flex;justify-content:space-between;gap:40px;border-top:1px solid var(--line);font-size:.8rem}.site-footer .eyebrow{margin-bottom:10px}.site-footer .brand{font-size:1rem}.site-footer p{margin-top:10px}.detail-hero{padding-bottom:70px;border-bottom:1px solid var(--line)}.detail-hero .lead{margin-top:30px}.note-panel{background:#e7ecdf;padding:36px}.walkthrough{list-style:none;padding:0;margin:40px 0;display:grid;grid-template-columns:repeat(4,1fr);gap:30px}.walkthrough li{border-top:1px solid #555e4b;padding-top:20px}.walkthrough h3{font-size:1.3rem}.walkthrough p{font-size:.9rem}.light{border-color:var(--paper);background:var(--paper);color:var(--ink)}.code-panel{background:#242820;color:#e3e9db;padding:26px;min-width:0}.code-panel pre{overflow:auto;font-size:.9rem;line-height:1.9;margin-block:25px;tab-size:2}.code-panel figcaption{color:#b6bfad}
@media(min-width:1600px){.hero{padding-top:110px}}@media(max-width:1000px){.wrap{width:calc(100% - 56px)}.split{gap:35px}.publication-grid{grid-template-columns:repeat(2,1fr)}.hero-bottom{align-items:start}.system-card{padding:22px}.evolution{gap:28px}.walkthrough{grid-template-columns:repeat(2,1fr)}}@media(max-width:700px){.wrap{width:calc(100% - 36px)}.site-header{align-items:start;flex-direction:column;gap:12px;padding-block:20px}.site-header nav{gap:18px;font-size:.8rem}.hero{padding-top:55px}.hero-bottom{flex-direction:column;gap:26px;margin-bottom:40px}.hero-index{font-size:.65rem;gap:10px}.section{padding-block:52px}.system-grid,.split,.evolution{grid-template-columns:1fr}.system-card+.system-card{border-left:0;border-top:1px solid var(--line)}.system-card{padding:26px}.system-card .status{margin-bottom:18px}.evolution{gap:35px}.evolution span{margin-bottom:12px}.split{gap:35px}.publication-grid{gap:12px}.publication-preview{padding:14px;min-height:180px}.publication-preview strong{font-size:1.3rem}.publication-body{padding:18px 14px}.publication-body h3{font-size:1.2rem}.publication-body a{font-size:.78rem}.site-footer{flex-direction:column;gap:22px}.closing{padding-block:55px}.architecture{padding:18px}.source-grid{gap:15px}.region-grid{gap:8px}.walkthrough{gap:22px}.lead{font-size:1.1rem}.button{font-size:.85rem}.detail-hero{padding-bottom:45px}}@media(max-width:380px){.publication-grid,.walkthrough{grid-template-columns:1fr}.hero-index{grid-template-columns:1fr;gap:6px}.region-grid{grid-template-columns:1fr}.source-grid{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Portfolio additions preserve the existing palette, type and spacing. */
.site-screenshot{display:block;width:100%;height:auto;aspect-ratio:1265/712;object-fit:cover;object-position:top;border-bottom:1px solid var(--line)}.wide-screenshot{display:block;width:100%;height:auto;border:1px solid var(--line)}.language-switch{white-space:nowrap}.site-header nav{align-items:center;gap:1.1rem}.dark-section .status{color:#a9c398}.hero h1{overflow-wrap:break-word}@media(max-width:700px){.site-header nav{gap:1rem}.publication-grid{grid-template-columns:1fr 1fr}}

/* Single-page portfolio refinements. */
.publication-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.footer-contact{display:flex;flex-direction:column;align-items:flex-start;gap:10px}#services h3:not(:first-of-type){margin-top:28px}.language-switch a[aria-current]{color:var(--accent);font-weight:700}@media(max-width:700px){.publication-grid{grid-template-columns:1fr}.site-header{flex-direction:row;align-items:center}}

/* Keep publication examples readable and contained on every screen. */
img{max-width:100%;height:auto}.publication-grid{grid-template-columns:minmax(0,1fr);gap:32px;max-width:900px}.publication,.publication>a,.split>*,.system-card{min-width:0}.publication>a{display:block}.site-screenshot{width:100%;max-width:100%;height:auto;aspect-ratio:auto;object-fit:contain}.publication-body p{min-height:0}.publication-body{padding:24px}.site-footer>div{min-width:0}.footer-contact a{overflow-wrap:anywhere}@media(max-width:700px){.publication-grid{gap:24px}.publication-body{padding:18px}.hero h1{font-size:clamp(2.2rem,9vw,3.6rem)}.eyebrow{overflow-wrap:anywhere}}
.semantic-snapshot{margin-top:32px}.semantic-snapshot pre{white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word}.draft-note{padding:16px;border:1px solid var(--line);background:#e7ecdf;max-width:720px}.api-layer h3{margin-bottom:12px}
