
:root{--paper:#f5f4ed;--white:#fffef9;--ink:#142f28;--muted:#52635c;--line:#ced5ca;--green:#163f35;--lime:#cff06a;--soft:#e7eadd;--orange:#c35b32;--max:1180px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:"Segoe UI",Arial,sans-serif;font-size:17px;line-height:1.65}img{max-width:100%;height:auto;display:block}a{color:inherit;text-underline-offset:5px}a:hover{text-decoration-thickness:2px}a:focus-visible,summary:focus-visible{outline:3px solid #bb532b;outline-offset:5px;border-radius:2px}h1,h2,h3,p{margin-top:0}h1,h2,h3{line-height:1.08;font-weight:600;letter-spacing:-.05em}h1{font-size:clamp(43px,6vw,78px);max-width:920px;margin-bottom:25px}h2{font-size:clamp(32px,4vw,48px);margin-bottom:23px}h3{font-size:26px;margin-bottom:14px}p{margin-bottom:22px}.wrap{max-width:var(--max);margin:auto;padding:0 30px}.preview-bar{background:var(--green);color:#e4eadb;font-size:11px;letter-spacing:.15em;padding:7px 20px;text-align:center;text-transform:uppercase}.header{border-bottom:1px solid var(--line);background:var(--paper)}.header-inner{min-height:101px;display:flex;align-items:center;justify-content:space-between;gap:25px}.brand{display:block;width:190px;flex-shrink:0}.brand img{width:100%}.nav{display:flex;align-items:center;gap:27px;font-size:14px;font-weight:600;flex-wrap:wrap}.nav a{text-decoration:none;padding:12px 0}.nav a[aria-current=page]{box-shadow:0 2px var(--ink)}.nav .contact-link{background:var(--green);color:white;padding:10px 18px;border-radius:3px}.skip{position:absolute;top:-80px;background:white;padding:10px;z-index:20}.skip:focus{top:8px}.eyebrow{font-family:Consolas,monospace;text-transform:uppercase;font-size:12px;letter-spacing:.14em;color:var(--muted);margin-bottom:24px}.eyebrow .dot{display:inline-block;width:7px;height:7px;background:#658124;border-radius:50%;margin-right:10px}.hero{display:grid;grid-template-columns:1.2fr .8fr;gap:60px;padding-top:72px;padding-bottom:62px;align-items:center}.hero h1{font-size:clamp(52px,6.4vw,84px);line-height:1.015;letter-spacing:-.065em;margin-bottom:25px}.hero h1 .accent{color:#4c6c37}.lead{font-size:21px;line-height:1.55;max-width:740px;color:var(--muted)}.hero .lead{max-width:565px}.actions{display:flex;gap:15px;align-items:center;flex-wrap:wrap;margin-top:30px}.button{display:inline-flex;justify-content:center;align-items:center;gap:32px;text-decoration:none;background:var(--green);color:white;font-size:14px;font-weight:600;padding:14px 21px;border:1px solid var(--green);border-radius:3px}.button:after{content:'↗';font-size:19px}.button.secondary{background:transparent;color:var(--ink);border-color:var(--line)}.button:hover{background:#245448;color:white}.hero-art{min-height:444px;background:var(--green);color:white;position:relative;padding:35px;overflow:hidden;border-radius:3px;display:flex;flex-direction:column;justify-content:space-between}.art-top,.art-bottom{font-family:Consolas,monospace;font-size:11px;letter-spacing:.12em;display:flex;justify-content:space-between;color:#c4d4c7}.art-symbol{width:65%;margin:10px auto 18px;filter:none}.art-caption{font-size:32px;font-weight:500;letter-spacing:-.04em;line-height:1.15;max-width:280px;margin:15px 0 30px}.art-grid{position:absolute;inset:0;background-image:linear-gradient(#ffffff08 1px,transparent 1px),linear-gradient(90deg,#ffffff08 1px,transparent 1px);background-size:45px 45px;pointer-events:none}.hero-art>*:not(.art-grid){position:relative}.signal{width:7px;height:7px;background:var(--lime);display:inline-block;border-radius:50%;margin-right:8px}.sector-strip{border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:20px;padding:23px 0;font-size:13px;color:var(--muted);flex-wrap:wrap}.sector-strip strong{font-weight:600;color:var(--ink)}.section{padding-top:78px;padding-bottom:78px}.section+.section{border-top:1px solid var(--line)}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:36px}.section-heading p{margin:0;max-width:385px;color:var(--muted);font-size:15px}.section-heading h2{margin:0;max-width:620px}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.grid.two{grid-template-columns:repeat(2,1fr)}.card{border-top:1px solid var(--ink);padding:26px 0 12px}.card p{color:var(--muted);font-size:16px}.card .num{font:12px Consolas,monospace;color:var(--muted);display:block;margin-bottom:34px}.small-link{font-size:14px;font-weight:600}.tag{display:inline-block;border:1px solid var(--line);padding:4px 9px;margin:0 5px 6px 0;font:11px Consolas,monospace;letter-spacing:.025em;border-radius:2px}.project-card{background:var(--white);border:1px solid var(--line);border-radius:3px;overflow:hidden;display:flex;flex-direction:column}.project-card .content{padding:27px;display:flex;flex-direction:column;flex:1}.project-card p{color:var(--muted);font-size:15px}.project-card .small-link{margin-top:auto}.project-art{height:205px;display:flex;align-items:center;justify-content:center;overflow:hidden;background:var(--soft);position:relative;border-bottom:1px solid var(--line)}.project-art img{width:100%;height:100%;object-fit:cover}.project-art.ocr{background:#e1e9d8;gap:26px}.receipt{width:98px;background:#fffefb;padding:18px 14px;box-shadow:8px 8px 0 #aaba9640;transform:rotate(-7deg)}.receipt b{font:10px Consolas,monospace;display:block;border-bottom:1px dashed #789076;padding-bottom:7px;margin-bottom:7px}.receipt i{display:block;height:3px;background:#a2ad98;margin:9px 0}.receipt i:nth-of-type(2){width:75%}.ocr-result{font-family:Consolas,monospace;line-height:2;font-size:13px}.ocr-result b{color:#436125}.project-art.tools{background:#e9e3d7;gap:12px}.app-tile{background:var(--paper);width:67px;height:88px;border:1px solid #b7b8aa;border-radius:12px;display:flex;align-items:center;justify-content:center;font:28px Consolas,monospace;box-shadow:4px 5px 0 #162f2810}.app-tile:nth-child(2){transform:translateY(-12px);color:var(--green)}.panel{padding:48px;background:var(--green);color:var(--paper);border-radius:3px}.panel .eyebrow,.panel p{color:#d0ddcf}.panel .button{background:var(--lime);color:var(--ink);border-color:var(--lime)}.panel .tag{border-color:#6a8578}.split{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start}.split.wide-left{grid-template-columns:1.6fr 1fr}.check-list{padding:0;list-style:none}.check-list li{border-top:1px solid var(--line);padding:18px 0 18px 27px;position:relative}.check-list li:before{content:'↳';position:absolute;left:0;color:#597737}.check-list strong{display:block;margin-bottom:5px}.check-list p{font-size:15px;color:var(--muted);margin:0}.page-head{padding-top:65px;padding-bottom:43px}.breadcrumb{font-size:12px;color:var(--muted);margin-bottom:35px}.breadcrumb a{text-decoration:none}.body-copy{max-width:750px}.body-copy h2{font-size:32px;margin-top:48px;letter-spacing:-.035em}.body-copy h3{font-size:23px;letter-spacing:-.02em;margin-top:32px}.body-copy p,.body-copy li{color:var(--muted)}.body-copy ul{padding-left:22px}.meta-grid{display:grid;grid-template-columns:repeat(3,1fr);border-block:1px solid var(--line);margin-top:34px}.meta-grid div{padding:19px 20px 19px 0}.meta-grid dt{font:11px Consolas,monospace;letter-spacing:.06em;color:var(--muted);text-transform:uppercase}.meta-grid dd{margin:5px 0 0;font-size:15px;font-weight:600}.note{padding:20px 25px;background:#e8ecdf;border-left:3px solid #658124;font-size:14px;margin:25px 0;color:var(--ink)}.note p:last-child{margin-bottom:0}.proof{background:var(--white);border:1px solid var(--line);padding:26px;margin-top:22px}.proof strong.big{font-size:42px;letter-spacing:-.04em;display:block;line-height:1.2;margin-bottom:8px}.proof small{color:var(--muted);line-height:1.6;display:block}.figure{margin:32px 0}.figure img{border:1px solid var(--line);border-radius:3px}.figure figcaption{font-size:12px;color:var(--muted);margin-top:12px}.steps{counter-reset:steps;list-style:none;padding:0}.steps li{counter-increment:steps;border-top:1px solid var(--line);padding:25px 0 25px 58px;position:relative}.steps li:before{content:'0' counter(steps);font:15px Consolas,monospace;position:absolute;left:0;top:28px;color:#66833d}.steps h3{font-size:24px;margin-bottom:8px}.steps p{margin:0;color:var(--muted)}.timeline{padding-left:25px;border-left:1px solid #aab9a5}.timeline article{margin-bottom:34px;position:relative}.timeline article:before{content:'';position:absolute;left:-30px;top:7px;background:var(--green);width:9px;height:9px;border-radius:50%}.timeline h3{font-size:22px;margin:7px 0}.timeline p{font-size:15px;color:var(--muted)}.timeline time{font:12px Consolas,monospace;color:var(--muted)}.contact-block{border-bottom:1px solid var(--line);padding:25px 0}.contact-block .label{font:12px Consolas,monospace;letter-spacing:.06em;color:var(--muted);display:block;margin-bottom:10px}.contact-block a{font-size:clamp(17px,2.3vw,26px);word-break:break-word}.legal-table{width:100%;border-collapse:collapse;font-size:15px;margin:30px 0}.legal-table th,.legal-table td{text-align:left;padding:14px 10px;border-bottom:1px solid var(--line);vertical-align:top}.legal-table th{width:34%;font-weight:500;color:var(--muted)}.source-list li{margin-bottom:16px}.footer{border-top:1px solid var(--line);padding:38px 0;margin-top:36px;color:var(--muted);font-size:12px}.footer-grid{display:flex;justify-content:space-between;gap:30px;flex-wrap:wrap}.footer strong{display:block;color:var(--ink);font-size:17px;margin-bottom:6px}.footer-links{display:flex;gap:20px;flex-wrap:wrap}.footer .legal-small{margin-top:22px;max-width:850px;font-size:11px}.mono{font-family:Consolas,monospace}.muted{color:var(--muted)}.logo-board{background:white;border:1px solid var(--line);padding:42px;margin:20px 0;min-height:155px;display:flex;align-items:center;justify-content:center}.logo-board img{width:390px}.logo-board.dark{background:var(--green)}.swatches{display:flex;gap:14px;flex-wrap:wrap}.swatch{padding:20px 24px;min-width:160px;border:1px solid var(--line)}.swatch.green{background:#163f35;color:white}.swatch.lime{background:#cff06a}.swatch.paper{background:#f5f4ed}.invoice{background:white;border:1px solid #ccd0c7;padding:40px;margin-top:25px;font-size:13px}.invoice-top{display:flex;justify-content:space-between;gap:30px}.invoice img{width:190px}.invoice h3{font-size:20px;letter-spacing:0}.invoice .legal-table{font-size:12px}.invoice-demo{text-transform:uppercase;font:11px Consolas,monospace;letter-spacing:.1em;color:#9a4a28}.tree{white-space:pre-wrap;overflow-wrap:anywhere;background:#e8ecdf;padding:25px;font:13px/1.85 Consolas,monospace}.docs-nav{display:flex;flex-wrap:wrap;gap:20px;border-block:1px solid var(--line);padding:18px 0;font-size:14px}.status-ok{color:#345f2d}.status-pending{color:#9b4827}.footer a,.source-list a{overflow-wrap:anywhere}details{border-block:1px solid var(--line);padding:16px 0;margin:20px 0}summary{cursor:pointer;font-weight:600}details p{margin-top:15px}code{font-family:Consolas,monospace;font-size:.88em;overflow-wrap:anywhere}.full-width{max-width:none}.small{font-size:13px}.download-row{display:flex;gap:20px;flex-wrap:wrap;font-size:14px;margin-top:14px}
@media(max-width:1000px){.nav{gap:18px}.hero{gap:32px}.hero-art{padding:25px;min-height:410px}.brand{width:166px}.split{gap:35px}.hero h1{font-size:64px}.art-caption{font-size:29px}}
@media(max-width:740px){body{font-size:16px}.wrap{padding:0 21px}.header-inner{align-items:flex-start;padding-top:21px;padding-bottom:19px;gap:18px;flex-direction:column}.brand{width:176px}.nav{width:100%;gap:8px 20px;font-size:13px}.nav a{padding:6px 0}.nav .contact-link{padding:6px 12px}.hero{grid-template-columns:1fr;padding-top:42px;padding-bottom:42px;gap:35px}.hero h1{font-size:clamp(49px,12vw,74px)}.hero-art{min-height:310px;max-width:100%}.hero-art .art-symbol{position:absolute;width:43%;right:12px;bottom:25px;opacity:.85}.art-caption{max-width:52%;margin-top:60px;font-size:30px}.art-top,.art-bottom{font-size:10px}.lead{font-size:19px}.sector-strip{gap:12px 20px;font-size:12px}.section{padding-block:48px}.section-heading{align-items:start;flex-direction:column;gap:18px}.grid,.grid.two,.split,.split.wide-left{grid-template-columns:1fr;gap:28px}.panel{padding:30px}.card .num{margin-bottom:18px}.page-head{padding-top:36px}.meta-grid{grid-template-columns:1fr}.meta-grid div{border-bottom:1px solid var(--line);padding-block:13px}.meta-grid div:last-child{border:0}.body-copy h2{font-size:29px}.legal-table th,.legal-table td{padding:12px 5px;font-size:13px}.legal-table th{width:37%}.logo-board{padding:25px}.invoice{padding:20px}.invoice-top{flex-direction:column}.footer{margin-top:20px}.footer-grid{gap:20px}.footer-links{gap:12px}.project-art{height:205px}.tree{font-size:11px;padding:17px}.preview-bar{font-size:10px;letter-spacing:.08em}.button{padding:12px 16px;gap:18px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
@media print{body{background:white;color:#111;font-size:11pt}.preview-bar,.header,.footer,.actions,.docs-nav,.skip{display:none}.wrap{max-width:none;padding:0}.hero,.split,.split.wide-left,.grid{display:block}.hero-art{display:none}.page-head,.section{padding:20px 0}.card,.project-card,.proof,.invoice{break-inside:avoid}.panel{background:#eee;color:#111}.panel p{color:#111}a{color:#111}h1{font-size:34pt}h2{font-size:24pt}.logo-board{padding:15px}.invoice{border:none}.invoice-demo{color:#111}}

/* CV et portrait : ressource locale intacte, découpe circulaire par CSS. */
.profile-photo{display:block;width:216px;height:216px;max-width:none;aspect-ratio:1;border-radius:50%;object-fit:cover;object-position:center;border:6px solid var(--paper);outline:1px solid #789478;box-shadow:0 8px 25px #0c30201a}
.consultant-card{align-items:center;text-align:center;padding:31px 27px 28px;min-height:496px;gap:21px}
.consultant-card .eyebrow{color:#d1ddcb;margin:0;font-size:11px}
.consultant-card .profile-photo{width:202px;height:202px;border-color:#f5f4ed;outline:1px solid #8db285;flex-shrink:0}
.consultant-identity h2{font-size:31px;margin:0 0 10px;letter-spacing:-.035em;color:var(--paper)}
.consultant-identity p{font-size:14px;line-height:1.6;color:#d1ddcb;margin:0}
.cv-actions{display:flex;align-items:flex-start;gap:11px;flex-direction:column;margin-top:23px}
.cv-details{font-size:12px;color:var(--muted);display:block;letter-spacing:.01em}
.cv-download:after{content:'↓'}
.consultant-card .cv-actions{margin-top:0;align-items:center;width:100%}
.consultant-card .button{background:var(--lime);border-color:var(--lime);color:var(--ink);padding:12px 20px;gap:32px}
.consultant-card .button:hover{background:#e1fa95}
.consultant-card .cv-details{color:#d1ddcb}
.profile-head{display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:58px;align-items:center}
.profile-head h1{font-size:clamp(40px,5.2vw,68px)}
.profile-head .lead{font-size:20px}
.profile-head-portrait{display:flex;align-items:center;flex-direction:column;text-align:center;padding-top:16px}
.profile-head-portrait p{font-size:16px;font-weight:600;margin:23px 0 0}
.profile-head-portrait span{font-size:13px;font-weight:400;color:var(--muted)}
.contact-profile{display:flex;align-items:center;gap:22px;margin-bottom:27px}
.contact-profile .profile-photo{width:100px;height:100px;border-width:4px}
.contact-profile h2{font-size:28px;margin:0 0 8px}
.contact-profile p{font-size:14px;line-height:1.5;margin:0;color:var(--muted)}
.contact-cv{display:flex;align-items:flex-start;flex-direction:column;gap:10px;margin-bottom:17px}
@media(max-width:740px){.consultant-card{min-height:0;gap:20px;padding:28px 23px}.consultant-card .profile-photo{width:186px;height:186px}.profile-head{grid-template-columns:1fr;gap:32px}.profile-head-portrait{grid-row:1;align-items:flex-start;text-align:left;padding:0}.profile-head-portrait .profile-photo{width:158px;height:158px}.profile-head-portrait p{display:none}.profile-head h1{font-size:clamp(40px,10.6vw,58px)}.contact-profile{gap:16px}.contact-profile .profile-photo{width:84px;height:84px}.contact-profile h2{font-size:24px}.contact-profile p{font-size:13px}}
@media print{.cv-actions,.contact-cv{display:none}.profile-head{display:block}.profile-head-portrait{display:none}.contact-profile .profile-photo{width:70px;height:70px}}

/* SEO v1.1 */
.language-link{font-family:Consolas,monospace;border:1px solid var(--line);padding:5px 9px!important;border-radius:3px}.nav{flex-wrap:wrap}.seo-table-wrap{overflow-x:auto;margin:25px 0}.seo-table{width:100%;border-collapse:collapse;font-size:14px}.seo-table th,.seo-table td{text-align:left;padding:14px 12px;border-bottom:1px solid var(--line);vertical-align:top}.seo-table th{color:var(--ink);font-weight:600}.seo-table td{min-width:145px}.seo-table td:last-child{min-width:240px}.seo-report h2{margin-top:42px}.seo-report li{margin-bottom:12px}.search-preview{padding:24px;border:1px solid var(--line);background:white;border-radius:4px;max-width:680px;margin:22px 0}.search-preview small{color:#52635c}.search-preview strong{display:block;font-size:21px;line-height:1.4;letter-spacing:0;color:#1a0dab;margin:7px 0}.search-preview p{font-size:14px;margin-bottom:0}.seo-report .source-list{font-size:14px;overflow-wrap:anywhere}.hero .lead{max-width:650px}@media(max-width:1000px) and (min-width:741px){.header-inner{gap:20px}.nav{gap:10px 14px;font-size:12px}.hero h1{font-size:clamp(42px,5.2vw,64px)}}@media(max-width:740px){.seo-table{font-size:13px}.search-preview{padding:18px}}

/* Projets v1.2 : diagrammes d’analyse (BPMN 2.0 / UML 2), fiches projet et catalogue. */
.diagram{margin:0;background:var(--white);border:1px solid var(--line);border-radius:3px}
.diagram-head{display:flex;justify-content:space-between;align-items:baseline;gap:20px;flex-wrap:wrap;padding:18px 24px;border-bottom:1px solid var(--line)}
.diagram-head h3{font-size:20px;letter-spacing:-.02em;margin:0}
.diagram-head .notation{font:11px Consolas,monospace;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.diagram-scroll{overflow-x:auto;padding:22px 24px;-webkit-overflow-scrolling:touch}
.diagram svg{display:block;width:100%;height:auto;font-family:"Segoe UI",Arial,sans-serif}
.diagram figcaption{padding:14px 24px 18px;border-top:1px solid var(--line);font-size:13px;color:var(--muted)}
.diagram + .diagram{margin-top:28px}
.scroll-hint{display:none;font:11px Consolas,monospace;color:var(--muted);padding:0 24px 12px}
.dg-t{font-size:12.5px;fill:var(--ink)}.dg-t.b{font-weight:600}
.dg-s{font-size:11px;fill:var(--muted)}.dg-s.lbl{fill:#3c4f47}
.dg-mono{font:11.5px Consolas,monospace;fill:var(--ink)}
.dg-lane-t{font:600 11px Consolas,monospace;letter-spacing:.08em;fill:var(--ink);text-transform:uppercase}.dg-lane-t.small{font-size:10px}
.dg-pool{fill:none;stroke:var(--ink);stroke-width:1.2}
.dg-pool-head{fill:#dfe5d4;stroke:var(--ink);stroke-width:1.2}
.dg-lane{fill:#fbfaf4;stroke:#b9c3b4;stroke-width:1}
.dg-lane-head{fill:#eef1e6;stroke:#b9c3b4;stroke-width:1}
.dg-task{fill:#fffef9;stroke:var(--green);stroke-width:1.5}
.dg-task.hl{fill:#eef7cf}
.dg-task.exc,.dg-state.exc{fill:#fbefe8;stroke:#a64d2a}
.dg-ico{fill:none;stroke:var(--green);stroke-width:1.2}.dg-ico.fill rect{fill:var(--green)}.dg-ico .env{stroke:#fffef9}
.dg-ev{fill:#fffef9;stroke:var(--ink);stroke-width:1.6}.dg-ev.end{stroke-width:3.6}
.dg-env{fill:none;stroke:var(--ink);stroke-width:1.1}.dg-env-fill{fill:var(--ink)}.dg-env-line-w{fill:none;stroke:#fffef9;stroke-width:1.1}
.dg-gw{fill:#fffef9;stroke:var(--ink);stroke-width:1.5}
.dg-mark{stroke:var(--ink);stroke-width:2.6;fill:none;stroke-linecap:round}
.dg-store{fill:#fffef9;stroke:var(--ink);stroke-width:1.3}
.dg-line{fill:none;stroke:var(--ink);stroke-width:1.2}
.dg-solid{fill:var(--ink);stroke:none}
.dg-flow{fill:none;stroke:var(--ink);stroke-width:1.35;stroke-linejoin:round}
.dg-flow.msg{stroke-dasharray:6 4}.dg-flow.assoc{stroke-dasharray:2 3}.dg-flow.dep,.dg-flow.ret{stroke-dasharray:6 4}
.dg-flow.exc{stroke:#a64d2a}
.dg-arrowhead{fill:var(--ink)}.dg-arrowhead.exc{fill:#a64d2a}
.dg-arrowopen{fill:none;stroke:var(--ink);stroke-width:1.4}
.dg-markc{fill:#fffef9;stroke:var(--ink);stroke-width:1.2}
.dg-actor{fill:#fffef9;stroke:var(--ink);stroke-width:1.5;stroke-linecap:round}
.dg-boundary{fill:#fbfaf4;stroke:var(--ink);stroke-width:1.2}
.dg-uc{fill:#fffef9;stroke:var(--green);stroke-width:1.5}
.dg-state{fill:#fffef9;stroke:var(--green);stroke-width:1.5}.dg-state.hl{fill:#eef7cf}
.dg-class{fill:#fffef9;stroke:var(--ink);stroke-width:1.3}
.dg-class-head{fill:#e7eadd;stroke:var(--ink);stroke-width:1.3}.dg-class-head.hl{fill:#d9eaa4}
.dg-note{fill:#f6f1df;stroke:#8f8a6c;stroke-width:1.1}
.dg-life{fill:none;stroke:#7f8f88;stroke-width:1.1;stroke-dasharray:5 4}
.dg-act{fill:#e7eadd;stroke:var(--ink);stroke-width:1.1}
.dg-frag{fill:none;stroke:#7f8f88;stroke-width:1.1}
.dg-frag-tab{fill:#eef1e6;stroke:#7f8f88;stroke-width:1.1}
.rules{list-style:none;padding:0;margin:0 0 10px;counter-reset:none}
.rules li{display:grid;grid-template-columns:62px 1fr;gap:14px;border-top:1px solid var(--line);padding:14px 0;font-size:15px;color:var(--muted)}
.rules li b{font:600 12px Consolas,monospace;color:var(--green);padding-top:3px}
.rules li strong{color:var(--ink);font-weight:600}
.roles{list-style:none;padding:0;margin:0}
.roles li{border-top:1px solid var(--line);padding:13px 0;font-size:14px;color:var(--muted)}
.roles li span{display:block;font:11px Consolas,monospace;letter-spacing:.06em;text-transform:uppercase;color:var(--ink);margin-bottom:3px}
.project-nav{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;border-block:1px solid var(--line);padding:20px 0;font-size:14px;font-weight:600}
.project-nav a{text-decoration:none}.project-nav small{display:block;font:11px Consolas,monospace;font-weight:400;color:var(--muted);letter-spacing:.06em;text-transform:uppercase}
.project-nav .next{text-align:right;margin-left:auto}
.family{padding-top:62px;padding-bottom:62px}
.family+.family{border-top:1px solid var(--line)}
.family-head{display:grid;grid-template-columns:1fr 1.1fr;gap:64px;align-items:end;margin-bottom:34px}
.family-head h2{margin:0}.family-head p{margin:0;color:var(--muted);font-size:16px}
.grid.four{grid-template-columns:repeat(4,1fr)}
.catalogue .card{display:flex;flex-direction:column}
.catalogue .card h3{font-size:23px;letter-spacing:-.03em}
.catalogue .card .small-link{margin-top:auto}
.card-meta{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:22px}
.chip{font:11px Consolas,monospace;letter-spacing:.03em;padding:3px 8px;border:1px solid var(--line);border-radius:2px;color:var(--ink)}
.chip.notation{background:var(--green);border-color:var(--green);color:#f5f4ed}
.chip.state-live{background:#e3efc3;border-color:#c8db97}
.chip.state-proto{background:#f1ebdb;border-color:#ddd2b6}
.chip.state-spec{background:#f5e6dc;border-color:#e3c6b3}
.notation-table{width:100%;border-collapse:collapse;font-size:15px;margin-top:10px}
.notation-table th,.notation-table td{text-align:left;padding:14px 12px 14px 0;border-top:1px solid var(--line);vertical-align:top}
.notation-table th{font:600 12px Consolas,monospace;letter-spacing:.05em;white-space:nowrap;color:var(--ink)}
.notation-table td{color:var(--muted)}
.notation-table td:last-child{font-size:14px}
@media(max-width:1000px){.grid.four{grid-template-columns:repeat(2,1fr)}}
@media(max-width:740px){.diagram svg{min-width:880px!important}.diagram-scroll{padding:16px}.scroll-hint{display:block}.diagram-head{padding:16px}.diagram figcaption{padding:12px 16px 16px}.rules li{grid-template-columns:52px 1fr;gap:10px;font-size:14px}.family{padding-block:44px}.family-head{grid-template-columns:1fr;gap:16px}.grid.four{grid-template-columns:1fr}.notation-table th{white-space:normal}.project-nav .next{text-align:left;margin-left:0}}
@media print{.diagram{break-inside:avoid}.diagram-scroll{overflow:visible}.diagram svg{min-width:0!important}.scroll-hint,.project-nav{display:none}}
.dg-task.plan,.dg-state.plan{stroke-dasharray:5 4}
.dg-region{fill:none;stroke:#7f8f88;stroke-width:1.2;stroke-dasharray:7 5}
.dg-accept{fill:#fffef9;stroke:var(--green);stroke-width:1.5}
.dg-annot{fill:none;stroke:var(--ink);stroke-width:1.2}
.split>.body-copy>h2:first-child{margin-top:0}
