
:root{--paper:#f7f5ef;--card:#fffdf8;--ink:#1c1b17;--text:#3d3a33;--muted:#6b665c;--rule:#d9d4c7;--teal:#0f5f59;--teal2:#127a72;--mint:#e3efe9}
*,*::before,*::after{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--text);font:16px/1.65 "IBM Plex Sans",system-ui,sans-serif}
img{max-width:100%;height:auto;display:block}
a{color:var(--teal)}
h1,h2,h3{color:var(--ink);font-weight:600;line-height:1.2;margin:0 0 .5em;letter-spacing:-.01em}
h1{font-size:clamp(30px,3.8vw,48px)}
h2{font-size:clamp(24px,2.6vw,32px)}
h3{font-size:17px}
p{margin:0 0 1em}
.cg-mono,.cg-spec td,.cg-cert td{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:14px}
.cg-wrap{width:min(100% - 40px,1180px);margin-inline:auto}
.cg-sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.cg-skip{position:absolute;left:-999px}.cg-skip:focus{left:8px;top:8px;background:#fff;padding:8px;z-index:9}
:focus-visible{outline:2px solid var(--teal);outline-offset:2px}
.cg-btn,.cg-btn-ghost{display:inline-flex;align-items:center;gap:8px;min-height:46px;padding:11px 20px;font-weight:600;text-decoration:none;border:1.5px solid var(--teal)}
.cg-btn{background:var(--teal);color:#fff}.cg-btn:hover{background:var(--teal2)}
.cg-btn-ghost{color:var(--teal);background:transparent}.cg-btn-ghost:hover{background:var(--mint)}
.cg-strip{background:var(--ink);color:#cfc9b8;font-size:12.5px}
.cg-strip-in{display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:34px}
.cg-lang{display:flex;gap:2px}.cg-lang a{color:#cfc9b8;text-decoration:none;padding:4px 8px;font-family:"IBM Plex Mono",monospace}
.cg-lang a[aria-current]{color:#fff;background:#3b3a33}
.cg-header{background:var(--card);border-bottom:1px solid var(--rule);position:sticky;top:0;z-index:30}
.cg-header-in{display:flex;align-items:center;justify-content:space-between;min-height:68px;gap:20px}
.cg-logo{display:flex;align-items:center;gap:8px;text-decoration:none;color:var(--ink)}
.cg-stamp{border:2px solid var(--teal);color:var(--teal);font:700 15px/1 "IBM Plex Mono",monospace;padding:5px 7px;letter-spacing:.06em;transform:rotate(-4deg)}
.cg-logo-text{font-size:24px;font-weight:600;letter-spacing:-.02em}
.cg-nav{display:flex;align-items:center;gap:22px}
.cg-nav a{color:var(--text);text-decoration:none;font-size:15px;padding-block:6px;border-bottom:2px solid transparent}
.cg-nav a:hover,.cg-nav a[aria-current]{color:var(--ink);border-bottom-color:var(--teal)}
.cg-nav-wa{display:inline-flex!important;align-items:center;gap:6px;color:var(--teal)!important;font-weight:600}
.cg-burger{display:none;font-size:26px;background:none;border:1px solid var(--rule);width:44px;height:44px}
/* hero */
.cg-hero{border-bottom:1px solid var(--rule);background:linear-gradient(90deg,transparent 49.95%,var(--rule) 50%,transparent 50.05%) 0 0/48px 48px,linear-gradient(transparent 49.95%,var(--rule) 50%,transparent 50.05%) 0 0/48px 48px;background-color:var(--paper)}
.cg-hero-in{display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:center;padding-block:64px}
.cg-hero-text{background:var(--paper);padding:10px 0}
.cg-kicker{font:600 13px/1 "IBM Plex Mono",monospace;letter-spacing:.12em;text-transform:uppercase;color:var(--teal);margin-bottom:18px}
.cg-lead{font-size:18px;max-width:58ch}
.cg-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}
.cg-cert{margin:0;background:var(--card);border:1px solid var(--rule);box-shadow:8px 8px 0 var(--mint);padding:22px 24px}
.cg-cert-head{display:flex;justify-content:space-between;border-bottom:2px solid var(--ink);padding-bottom:8px;font:600 12px/1 "IBM Plex Mono",monospace;text-transform:uppercase;letter-spacing:.1em}
.cg-cert-head b{color:#b45309;border:1.5px solid #b45309;padding:3px 6px;transform:rotate(3deg)}
.cg-cert-name{font-size:24px;font-weight:600;color:var(--ink);margin:14px 0 8px}
.cg-cert table{width:100%;border-collapse:collapse;margin-bottom:12px}
.cg-cert th,.cg-cert td{padding:7px 0;border-bottom:1px dashed var(--rule);text-align:start;font-size:14px}
.cg-cert th{color:var(--muted);font-weight:500;width:46%}
.cg-chrom{width:100%;height:auto;background:#fff;border:1px solid var(--rule)}
.cg-cert figcaption{margin-top:8px;font-size:12.5px;color:var(--muted)}
/* sections */
.cg-sec{padding-block:72px;border-bottom:1px solid var(--rule)}
.cg-sec h2{padding-bottom:12px;border-bottom:1px solid var(--ink);display:inline-block}
.cg-intro{max-width:66ch;color:var(--muted);font-size:17px}
.cg-split{display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:center}
.cg-split-art{margin:0;border:1px solid var(--rule);background:#fff;padding:18px}
.cg-ticks{list-style:none;padding:0;margin:16px 0}
.cg-ticks li{padding-inline-start:26px;position:relative;margin-bottom:8px}
.cg-ticks li::before{content:"✓";position:absolute;inset-inline-start:0;color:var(--teal);font-weight:700}
.cg-timeline{list-style:none;padding:0;margin:24px 0 0;border-inline-start:2px solid var(--teal)}
.cg-timeline li{display:flex;gap:18px;padding:0 0 24px 22px;position:relative}
.cg-timeline li::before{content:"";position:absolute;inset-inline-start:-7px;top:4px;width:12px;height:12px;background:var(--card);border:2px solid var(--teal);border-radius:50%}
.cg-step-n{font:600 13px/1.8 "IBM Plex Mono",monospace;color:var(--teal)}
.cg-timeline p{margin:0;color:var(--muted)}
.cg-feats{list-style:none;padding:0;margin:24px 0 0;display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid var(--rule)}
.cg-feat{padding:22px 22px 22px 0;border-bottom:1px solid var(--rule)}
.cg-table-wrap{overflow-x:auto;border:1px solid var(--rule);background:var(--card);margin-top:22px}
.cg-table,.cg-rows{width:100%;border-collapse:collapse;min-width:640px}
.cg-table th,.cg-table td,.cg-rows th,.cg-rows td{padding:12px 14px;border-bottom:1px solid var(--rule);text-align:start;vertical-align:middle}
.cg-table thead th,.cg-rows thead th{font:600 12px/1.3 "IBM Plex Mono",monospace;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);background:#f1eee5}
.cg-rows tbody th a{color:var(--ink);font-weight:600;text-decoration:none;font-size:16px}
.cg-rows tbody th span{display:block;font-weight:400;font-size:12.5px;color:var(--muted)}
.cg-row-img{width:76px}.cg-row-img img{width:56px;height:56px;border:1px solid var(--rule);background:#fff}
.cg-sheet{white-space:nowrap;font-weight:600;text-decoration:none}
.cg-rows tbody tr:hover{background:#fbf9f3}
.cg-more{margin-top:18px}
.cg-sec-cta{background:var(--ink);color:#d8d2c2;border:0}
.cg-cta h2{color:#fff;border-color:#fff}
.cg-cta .cg-btn{background:#fff;color:var(--ink);border-color:#fff}
.cg-faq details{border-bottom:1px solid var(--rule);padding:16px 0}
.cg-faq summary{cursor:pointer;font-weight:600;color:var(--ink)}
.cg-faq summary::marker{color:var(--teal)}
.cg-faq p{margin:10px 0 0}
/* pages */
.cg-page{padding-block:44px 80px}
.cg-page-head{border-bottom:2px solid var(--ink);padding-bottom:18px;margin-bottom:26px;max-width:900px}
.cg-filters{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.cg-search input{min-height:44px;width:min(300px,100%);padding:8px 12px;border:1px solid var(--rule);background:var(--card);font:inherit}
.cg-chips{display:flex;flex-wrap:wrap;gap:6px}
.cg-chips button{min-height:38px;padding:6px 12px;border:1px solid var(--rule);background:var(--card);font:500 13px/1 "IBM Plex Mono",monospace;cursor:pointer;color:var(--text)}
.cg-chips button[aria-pressed=true]{background:var(--teal);color:#fff;border-color:var(--teal)}
.cg-empty{padding:24px;color:var(--muted)}
.cg-prose-wrap{max-width:800px}
.cg-prose-sec{border-top:1px solid var(--rule);padding-top:20px;margin-top:20px}
.cg-prose-sec h2{font-size:22px;border:0;padding:0}
.cg-page .cg-steps{list-style:none;padding:0;margin:30px 0 0;display:grid;gap:12px;max-width:800px}
.cg-step{background:var(--card);border:1px solid var(--rule);padding:18px 20px}
.cg-step p{margin:0;color:var(--muted)}
.cg-page-cta{margin-top:40px;max-width:800px;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;padding:20px 22px;border:1px solid var(--teal);background:var(--mint)}
.cg-page-cta p{margin:0;font-weight:600;color:var(--ink)}
.cg-crumbs ol{list-style:none;display:flex;gap:6px;flex-wrap:wrap;padding:0;margin:0 0 20px;font:13px/1.4 "IBM Plex Mono",monospace;color:var(--muted)}
.cg-crumbs li+li::before{content:"/ "}
.cg-crumbs a{color:var(--muted)}
.cg-sheet-head{border-bottom:2px solid var(--ink);padding-bottom:16px}
.cg-label{font:600 12px/1 "IBM Plex Mono",monospace;text-transform:uppercase;letter-spacing:.12em;color:var(--teal)}
.cg-sheet-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:36px;margin-top:28px;align-items:start}
.cg-spec{width:100%;border-collapse:collapse;background:var(--card);border:1px solid var(--rule)}
.cg-spec th,.cg-spec td{padding:13px 16px;border-bottom:1px solid var(--rule);text-align:start}
.cg-spec th{width:40%;color:var(--muted);font-weight:500;background:#f4f1e8}
.cg-sheet-img{margin:0;border:1px solid var(--rule);background:#fff;padding:14px}
.cg-sheet-img figcaption{font:600 12px/1 "IBM Plex Mono",monospace;text-transform:uppercase;letter-spacing:.1em;color:#b45309;margin-top:10px}
.cg-sheet-body{display:grid;grid-template-columns:1.3fr .7fr;gap:36px;margin-top:40px}
.cg-prose p{max-width:70ch}
.cg-related{margin-top:56px}
.cg-contact-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:24px}
.cg-contact-card{border:1px solid var(--rule);background:var(--card);padding:24px}
.cg-qr{width:190px;margin:18px 0 8px;border:1px solid var(--rule);padding:8px;background:#fff}
.cg-qr-note{font-size:14px;color:var(--muted)}
.cg-form{border:1px solid var(--rule);background:var(--card);padding:24px;display:grid;gap:12px}
.cg-form h2{border:0;padding:0;font-size:22px}
.cg-field{display:grid;gap:4px;font:500 13px/1.3 "IBM Plex Mono",monospace;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.cg-field input,.cg-field textarea{font:16px/1.5 "IBM Plex Sans",sans-serif;text-transform:none;letter-spacing:0;padding:10px 12px;border:1px solid var(--rule);background:#fff;min-height:46px;color:var(--ink)}
.cg-form-note{font-size:13px;color:var(--muted);margin:0}
.cg-form-status{margin:0;font-weight:600;color:var(--teal)}
.cg-nf{padding-block:100px}
.cg-footer{background:var(--card);border-top:2px solid var(--ink)}
.cg-footer-in{display:grid;grid-template-columns:1.3fr 1fr auto;gap:36px;padding-block:44px 24px}
.cg-footer-brand{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.cg-footer-brand p{flex-basis:100%;color:var(--muted);font-size:14.5px;margin-top:10px}
.cg-footer-nav{display:grid;grid-template-columns:repeat(2,auto);gap:8px 24px;align-content:start}
.cg-footer-nav a{color:var(--text);text-decoration:none}
.cg-footer-legal{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;border-top:1px solid var(--rule);padding-block:16px 24px;font:12.5px/1.5 "IBM Plex Mono",monospace;color:var(--muted)}
.cg-footer-legal p{margin:0}
@media (max-width:980px){
 .cg-nav{display:none}.cg-burger{display:block}
 .cg-header.is-open .cg-nav{display:flex;flex-direction:column;align-items:flex-start;position:absolute;left:0;right:0;top:100%;background:var(--card);padding:12px 20px;border-bottom:1px solid var(--rule)}
 .cg-hero-in,.cg-split,.cg-sheet-grid,.cg-sheet-body,.cg-contact-grid,.cg-footer-in{grid-template-columns:1fr}
 .cg-feats{grid-template-columns:1fr}
 .cg-strip-in span{display:none}
}

.cg-spec th,.cg-spec td,.cg-spec dd{overflow-wrap:anywhere}
.cg-main{overflow-x:clip}
[hidden]{display:none!important}
