@charset "UTF-8";
:root{--paper:#f6f5ee;--ink:#203c32;--muted:#53645a;--line:#cdd3c7;--lime:#d4ef85;--white:#fffef8;--dark:#162b24;--max:1200px;font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none;line-height:1.6;scroll-behavior:smooth}
*{box-sizing:border-box}body{margin:0}a{color:inherit;text-underline-offset:.23em}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}button{cursor:pointer}a:hover{text-decoration-thickness:2px}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #82621b;outline-offset:5px}h1,h2,h3,p{margin-top:0}h1,h2,h3{line-height:1.08;letter-spacing:-.045em;font-weight:500}h1{font-size:clamp(3rem,6.5vw,6.2rem);max-width:950px;margin-bottom:28px}h2{font-size:clamp(2.2rem,4vw,3.8rem);margin-bottom:24px}h3{font-size:1.7rem}p{max-width:68ch}img,svg{max-width:100%}img{height:auto}ul{padding-left:1.2rem}.wrap{width:min(calc(100% - 80px),var(--max));margin-inline:auto}.skip{position:fixed;top:8px;left:8px;z-index:100;transform:translateY(-180%);background:var(--lime);padding:12px}.skip:focus{transform:none}.preview{font-size:.75rem;background:var(--ink);color:var(--paper);text-align:center;padding:6px 16px;letter-spacing:.04em}.header{display:flex;align-items:center;justify-content:space-between;min-height:100px;gap:25px;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:11px;text-decoration:none;font-size:1.65rem;letter-spacing:-.07em;font-weight:700;white-space:nowrap}.brand img{width:38px;height:38px}.brand small{font-size:.65rem;letter-spacing:.05em;font-weight:400;align-self:end;margin-bottom:6px}.nav{display:flex;gap:28px;align-items:center}.nav a{text-decoration:none;font-size:.9rem}.nav a[aria-current=page]{text-decoration:underline;text-decoration-thickness:2px}.nav .nav-contact{border:1px solid var(--ink);padding:10px 18px}.menu{display:none}.eyebrow{font-family:Consolas,'Courier New',monospace;font-size:.76rem;letter-spacing:.12em;text-transform:uppercase;margin-bottom:24px;display:flex;gap:12px;align-items:center}.eyebrow:before{content:'';width:7px;height:7px;background:currentColor;display:inline-block}.hero{padding:74px 0 52px;display:grid;grid-template-columns:1.15fr .85fr;gap:55px;align-items:center}.hero h1{font-size:clamp(3.7rem,6.5vw,6rem)}.hero h1 em{font-family:Georgia,serif;font-weight:400;letter-spacing:-.07em}.lead{font-size:1.15rem;line-height:1.7;color:var(--muted)}.actions{display:flex;flex-wrap:wrap;align-items:center;gap:22px;margin-top:30px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:28px;text-decoration:none;background:var(--ink);color:var(--white);padding:14px 22px;border:1px solid var(--ink);font-size:.92rem}.button:hover{background:var(--dark)}.button.light{background:var(--lime);color:var(--ink);border-color:var(--lime)}.button.outline{background:transparent;color:var(--ink)}.text-link{font-size:.9rem}.diagram{background:var(--ink);color:var(--paper);padding:28px;position:relative;overflow:hidden;min-height:440px;display:flex;flex-direction:column;justify-content:space-between}.diagram:before{content:'';position:absolute;inset:0;background-image:linear-gradient(#ffffff09 1px,transparent 1px),linear-gradient(90deg,#ffffff09 1px,transparent 1px);background-size:24px 24px;pointer-events:none}.diagram>*{position:relative}.diagram-title{display:flex;justify-content:space-between;font: .68rem Consolas,monospace;color:var(--lime);letter-spacing:.1em}.diagram-stack{padding:32px 0 24px;position:relative}.diagram-stack:before{content:'';position:absolute;left:50%;top:10px;bottom:10px;border-left:1px dashed #b9cf9d}.system-node{position:relative;width:85%;margin:0 auto;background:#2e493d;border:1px solid #829774;display:flex;align-items:center;justify-content:space-between;padding:16px 20px}.system-node+.system-node{margin-top:26px}.system-node span{font-size:.9rem}.system-node small{color:#e3e9d9;font: .68rem Consolas,monospace}.system-node b{font-weight:400;font-size:.7rem;color:var(--lime);border:1px solid #7d9565;padding:2px 6px}.diagram-caption{border-top:1px solid #71806b;padding-top:17px;font-size:.78rem;color:#e0e7d8;display:flex;justify-content:space-between;gap:15px}.stack-strip{border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:22px 0;gap:20px}.stack-strip span{font:.72rem Consolas,monospace;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.stack-strip strong{font-weight:500;font-size:1.15rem}.section{padding:90px 0}.section-heading{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:end;margin-bottom:35px}.section-heading p{color:var(--muted);margin-bottom:20px}.service-list{border-top:1px solid var(--line)}.service-row{display:grid;grid-template-columns:70px 1fr 1fr 28px;gap:25px;padding:28px 0;border-bottom:1px solid var(--line);align-items:start;text-decoration:none}.service-row:hover .row-title{text-decoration:underline;text-underline-offset:6px}.service-row .number{font:.8rem Consolas,monospace;padding-top:6px}.service-row .row-title{font-size:1.55rem;line-height:1.2;letter-spacing:-.035em}.service-row .row-description{font-size:.95rem;color:var(--muted);line-height:1.65}.arrow{font-size:1.4rem}.dark-section{background:var(--ink);color:var(--paper)}.dark-section .lead{color:#d3dec9}.split{display:grid;grid-template-columns:1fr 1fr;gap:100px}.principles{margin:0}.principle{border-top:1px solid #637961;padding:22px 0}.principle dt{font-size:1.15rem;margin-bottom:8px}.principle dd{color:#d3dec9;margin:0;font-size:.95rem}.process{display:grid;grid-template-columns:repeat(3,1fr);gap:34px}.process article{border-top:1px solid var(--ink);padding-top:22px}.process .number{font: .8rem Consolas,monospace}.process h3{font-size:1.5rem;margin-top:30px;margin-bottom:16px}.process p{font-size:.96rem;color:var(--muted)}.cta{background:var(--lime);padding:48px;display:flex;align-items:center;justify-content:space-between;gap:35px}.cta h2{font-size:2.6rem;margin-bottom:14px}.cta p{margin:0}.footer{padding:55px 0 30px}.footer-top{display:flex;justify-content:space-between;gap:35px;margin-bottom:40px}.footer-links{display:flex;gap:24px;font-size:.88rem}.legal{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);padding-top:22px;font-size:.76rem;color:var(--muted);gap:25px}.legal p{margin-bottom:8px}.legal address{font-style:normal}.page-intro{padding:75px 0 55px;border-bottom:1px solid var(--line)}.page-intro .lead{max-width:720px}.service-detail{display:grid;grid-template-columns:80px 1fr 1fr;gap:35px;padding:55px 0;border-bottom:1px solid var(--line);scroll-margin-top:20px}.service-detail h2{font-size:2.3rem}.service-detail h3{font-size:1rem;letter-spacing:0;margin-top:25px}.service-detail ul{color:var(--muted);font-size:.95rem}.service-detail li{margin-bottom:9px}.label{font: .72rem Consolas,monospace;text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}.deliverable{background:#e8ecdf;padding:22px;margin-top:20px}.deliverable p{margin:8px 0 0;font-size:.92rem}.note{border-left:3px solid #6a792d;padding:16px 22px;background:#e8ecdf;font-size:.92rem}.about-mark{background:var(--lime);min-height:310px;display:flex;align-items:center;justify-content:center}.about-mark img{width:130px;height:130px}.facts{display:grid;grid-template-columns:repeat(2,1fr);gap:25px;margin:35px 0}.facts dt{font: .72rem Consolas,monospace;color:var(--muted);text-transform:uppercase}.facts dd{margin:5px 0 0}.contact-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:90px}.contact-method{padding:22px 0;border-bottom:1px solid var(--line)}.contact-method p{margin-bottom:6px}.contact-method a{font-size:1.1rem;overflow-wrap:anywhere}.contact-method small{display:block;color:var(--muted);margin-top:6px}.inquiry{background:#e8ecdf;padding:35px}.inquiry h2{font-size:2rem}.field{margin-bottom:20px}.field label{display:block;font-size:.85rem;margin-bottom:8px}.field input,.field textarea,.field select{width:100%;border:1px solid #819080;background:var(--white);border-radius:0;padding:11px;color:var(--ink)}.field textarea{resize:vertical;min-height:135px}.inquiry small{display:block;line-height:1.5;color:var(--muted);margin:15px 0}.status{font-size:.9rem;margin-top:15px}.inquiry [hidden]{display:none}.resume{max-width:850px}.resume-head{display:flex;justify-content:space-between;gap:25px;align-items:center}.resume-head h2{margin-bottom:10px}.resume-section{padding:30px 0;border-bottom:1px solid var(--line)}.resume-section h3{font-size:1.3rem}.resume-section .date{font: .8rem Consolas,monospace;color:var(--muted)}.resume-section li{margin-bottom:8px}.badge{display:inline-block;font: .7rem Consolas,monospace;background:var(--lime);padding:4px 8px;margin-bottom:16px}details{border-bottom:1px solid var(--line);padding:20px 0}summary{cursor:pointer;font-size:1.1rem}details p{margin:15px 0 0;color:var(--muted)}.error-page{min-height:50vh;padding-block:90px}
@media(min-width:1400px){.hero{gap:80px}}
@media(max-width:950px){.wrap{width:calc(100% - 48px)}.hero{gap:28px}.hero h1{font-size:4rem}.diagram{padding:22px;min-height:400px}.system-node{width:100%;padding:14px}.system-node span{font-size:.82rem}.nav{gap:18px}.split,.contact-grid{gap:45px}.section-heading{gap:35px}.service-row{grid-template-columns:40px 1fr 1fr 20px}.service-detail{grid-template-columns:35px 1fr 1fr;gap:25px}.cta{padding:35px}.cta h2{font-size:2.2rem}}
@media(max-width:700px){.wrap{width:calc(100% - 36px)}.header{min-height:82px;position:relative;flex-wrap:wrap;gap:0}.brand{font-size:1.5rem}.brand small{display:none}.menu{display:block;background:transparent;border:1px solid var(--ink);padding:7px 12px;font-size:.85rem}.nav{width:100%;display:flex;flex-wrap:wrap;gap:15px;padding-bottom:20px}.js .nav{display:none}.js .nav.is-open{display:flex;flex-direction:column;align-items:stretch}.js .nav.is-open a{padding:10px}.hero{grid-template-columns:1fr;padding:50px 0 30px;gap:35px}.hero h1{font-size:clamp(3.35rem,13vw,5rem)}.hero .lead{font-size:1.05rem}.diagram{min-height:360px}.diagram-stack{padding:25px 0}.stack-strip{flex-wrap:wrap;justify-content:flex-start;gap:18px 25px}.stack-strip span{width:100%}.stack-strip strong{font-size:1rem}.section{padding:55px 0}.section-heading,.split,.contact-grid{grid-template-columns:1fr;gap:30px}.section-heading{margin-bottom:20px}.service-row{grid-template-columns:25px 1fr 20px;gap:12px;padding:24px 0}.service-row .row-title{font-size:1.4rem}.service-row .row-description{grid-column:2;grid-row:2}.service-row .arrow{grid-column:3;grid-row:1}.process{grid-template-columns:1fr;gap:25px}.process h3{margin-top:20px}.cta{padding:28px;flex-direction:column;align-items:start}.footer-top{flex-direction:column;gap:25px}.footer-links{flex-wrap:wrap;gap:15px 24px}.legal{grid-template-columns:1fr;gap:10px}.page-intro{padding:50px 0 35px}.service-detail{grid-template-columns:25px 1fr;gap:15px;padding:35px 0}.service-detail>div:last-child{grid-column:2}.service-detail h2{font-size:2rem}.inquiry{padding:24px}.resume-head{flex-direction:column;align-items:start}.about-mark{min-height:240px}.facts{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){:root{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}
@media print{.preview,.header,.footer,.no-print,.cta{display:none!important}body{background:#fff;color:#000;font-size:10pt}.wrap{width:100%;max-width:none}.page-intro{padding:0 0 15px}.page-intro h1{font-size:30pt}.page-intro .eyebrow{display:none}.page-intro .lead{font-size:11pt}.section{padding:20px 0}.resume{max-width:none}.resume-section{padding:15px 0;break-inside:avoid}.resume-section h3{font-size:14pt}a{color:#000}h2{font-size:22pt}.note{background:#fff;border-color:#000}.badge{border:1px solid #000;background:#fff}.resume-head{display:block}.resume-head h2{font-size:22pt}@page{size:A4;margin:18mm}}
/* Platform and work */
.case-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-bottom:28px}.case-card{position:relative;display:flex;flex-direction:column;gap:12px;padding:26px 26px 22px;border:1px solid var(--line);background:var(--white);text-decoration:none;min-height:100%}.case-card:hover{border-color:var(--ink)}.case-card h3{font-size:1.45rem;margin:0}.case-card p{color:var(--muted);margin:0;font-size:.95rem}.case-card .number{font-family:Consolas,'Courier New',monospace;font-size:.8rem;color:var(--accent)}.case-card .arrow{position:absolute;top:22px;right:24px}.case-card[hidden]{display:none}
.topic-list{display:flex;flex-wrap:wrap;gap:6px;list-style:none;padding:0;margin:auto 0 0}.topic-list li{font-family:Consolas,'Courier New',monospace;font-size:.72rem;letter-spacing:.04em;border:1px solid var(--line);padding:2px 8px;color:var(--muted)}
.topic-filter{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;margin-bottom:28px}.topic-filter div{display:flex;flex-wrap:wrap;gap:6px}.topic-filter button{border:1px solid var(--line);background:transparent;color:var(--ink);padding:5px 12px;font-size:.82rem}.topic-filter button[aria-pressed="true"]{background:var(--ink);color:var(--paper);border-color:var(--ink)}.filter-empty{color:var(--muted)}
.tier-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-bottom:24px}.tier{display:flex;flex-direction:column;gap:10px;padding:30px 28px;border:1px solid var(--line);background:var(--white);text-decoration:none}.tier h2,.tier h3{margin:0}.tier h2{font-size:2.2rem}.tier p{color:var(--muted);margin:0}.tier ul{margin:6px 0 10px;padding-left:1.1rem}.tier li{margin:6px 0}.tier>a{margin-top:auto}.tier-accent{border-color:var(--accent);box-shadow:inset 0 3px 0 var(--accent)}a.tier:hover{border-color:var(--ink)}.tier-grid.compact .tier{padding:24px}
.case-intro .topic-list{margin:6px 0 28px}.case-meta{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:0;max-width:980px}.case-meta dt{font-family:Consolas,'Courier New',monospace;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.case-meta dd{margin:4px 0 0}
.case-figure{margin:0 0 10px;padding:24px;border:1px solid var(--line);background:var(--white);overflow-x:auto}.case-figure svg{display:block;width:100%;min-width:640px;height:auto}
.case-body{max-width:800px}.case-body h2{font-size:clamp(1.6rem,2.6vw,2.2rem);margin:40px 0 14px}.case-body h2:first-child{margin-top:0}.case-body .note{margin-top:40px}
.fig-box rect,.fig-group rect{fill:var(--panel);stroke:var(--line);stroke-width:1.4}.fig-group rect{fill:none;stroke-dasharray:5 4}.fig-box.accent rect{stroke:var(--accent);stroke-width:2}.fig-title{fill:var(--ink);font:600 15px Arial,Helvetica,sans-serif}.fig-sub{fill:var(--muted);font:12.5px Arial,Helvetica,sans-serif}.fig-label{fill:var(--muted);font:11px Consolas,'Courier New',monospace;letter-spacing:.1em}.fig-arrow line,.fig-path{stroke:var(--muted);stroke-width:1.6;fill:none}.fig-arrow.accent line{stroke:var(--accent);stroke-width:2}.fig-head{fill:var(--muted)}.fig-head-accent{fill:var(--accent)}.fig-path.deny{stroke:#b5473a;stroke-dasharray:6 4}.fig-deny{stroke:#b5473a;stroke-width:2;fill:none}.deny-text{fill:#b5473a}
:root[data-theme="glacier"] .fig-path.deny,:root[data-theme="glacier"] .fig-deny{stroke:#f08a7e}:root[data-theme="glacier"] .deny-text{fill:#f08a7e}
@media(max-width:1000px){.case-grid,.tier-grid{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.case-grid,.tier-grid,.case-meta{grid-template-columns:1fr}.case-figure{padding:14px}}
@media print{.case-figure{border:0;padding:0}.topic-filter{display:none}}
/* Case reader */
.reader{width:min(960px,calc(100% - 32px));max-height:calc(100% - 40px);padding:0;border:1px solid var(--line);background:var(--paper);color:var(--ink)}.reader::backdrop{background:rgba(10,18,32,.55)}.reader-bar{position:sticky;top:0;z-index:1;display:flex;gap:10px;align-items:center;padding:12px 20px;border-bottom:1px solid var(--line);background:var(--paper)}.reader-nav,.reader-close{border:1px solid var(--line);background:transparent;color:var(--ink);padding:6px 12px;font-size:.85rem}.reader-nav:disabled{opacity:.4;cursor:default}.reader-full{margin-left:auto;font-size:.85rem}.reader-close{padding:6px 10px}.reader-body{padding:34px 40px 48px}.reader-body:focus{outline:none}.reader-title{font-size:clamp(2rem,4vw,3.2rem)}.reader-body .case-figure{margin:28px 0}.reader-body .case-body h2{font-size:1.6rem}
.case-card[data-case]{cursor:pointer}
@media(max-width:700px){.reader{width:100%;max-width:100%;max-height:100%;height:100%;margin:0}.reader-body{padding:24px 18px 40px}.reader-bar{padding:10px 14px;flex-wrap:wrap}}
.reader{overflow-x:hidden}.reader-body{min-width:0;max-width:100%}.reader-body>*{max-width:100%}.reader-body .case-figure{max-width:100%;overflow-x:auto}.reader-title{overflow-wrap:anywhere}
.inquiry .actions{margin-bottom:20px}
/* Notes */
.note-body ul,.note-body ol{max-width:68ch;margin:0 0 18px;padding-left:1.3rem}.note-body li{margin:8px 0}.note-body p code,.note-body li code{font:.88em Consolas,'Courier New',monospace;background:var(--panel);padding:1px 5px}.note-body a{color:var(--accent)}
pre.code{max-width:820px;margin:8px 0 24px;padding:16px 18px;background:var(--panel);border:1px solid var(--line);overflow-x:auto;font:13px/1.55 Consolas,'Courier New',monospace;color:var(--ink)}pre.code code{background:none;padding:0;font:inherit}
.reader-body .topic-list,.case-intro .topic-list{margin-bottom:28px}.note-body>h2:first-child{margin-top:8px}
