
/* Layout: one site, seven pages. Left aligned, 12 columns, max 1320. Three line colours code agents (red), open standards (blue), city graph (green). */
:root{
  --sabkha:#E7EBE3; --chart:#F6F8F3; --ink:#12303A; --ink-2:#4A6068; --rule:#C3CCC1; --white:#FFFFFF;
  --graph:#1F6B45; --agent:#D8392B; --protocol:#2459A6; --on-ink:#E9EFE8;
  --code-k:#9CC7A9; --code-s:#F2A493; --code-c:#8FA3AA;
  --display:"Overpass","Helvetica Neue",Arial,sans-serif;
  --read:"Literata",Georgia,serif;
  --arabic:"Tajawal","Overpass",sans-serif;
  --code:"Overpass Mono",ui-monospace,Menlo,monospace;
  --max:1320px; --gutter:40px;
  --r-control:999px; --r-field:10px; --r-panel:14px; --r-code:4px;
  color-scheme:light;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--sabkha);color:var(--ink);font-family:var(--read);font-size:18px;line-height:1.62;-webkit-font-smoothing:antialiased}
@media (max-width:720px){body{font-size:17px}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
:root{
  --sabkha:#E7EBE3; --chart:#F6F8F3; --ink:#12303A; --ink-2:#4A6068; --rule:#C3CCC1;
  --graph:#1F6B45; --agent:#D8392B; --protocol:#2459A6; --on-ink:#E9EFE8;
  --display:"Overpass","Helvetica Neue",Arial,sans-serif;
  --read:"Literata",Georgia,serif;
  --arabic:"Tajawal","Overpass",sans-serif;
  --code:"Overpass Mono",ui-monospace,Menlo,monospace;
  --max:1320px; --gutter:40px;
  --r-control:999px; --r-field:10px; --r-panel:14px; --r-code:4px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--sabkha);color:var(--ink);font-family:var(--read);font-size:18px;line-height:1.62;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
.p-site h1,.p-site h2,.p-site h3{font-family:var(--display);margin:0;color:var(--ink);text-wrap:balance}
.p-site p{margin:0}
.p-site a{color:var(--protocol);text-decoration-thickness:1.5px;text-underline-offset:3px}
.p-site a:hover{color:var(--ink)}
.p-site :focus-visible{outline:3px solid var(--protocol);outline-offset:3px;border-radius:4px}
.p-site code{font-family:var(--code);font-size:.86em;background:rgba(18,48,58,.07);padding:1px 5px;border-radius:var(--r-code)}
.p-site .wrap{max-width:var(--max);margin:0 auto;padding-inline:var(--gutter)}
.p-site .skip{position:absolute;left:-999px;top:8px;background:var(--ink);color:var(--on-ink);padding:8px 14px;border-radius:var(--r-control);font-family:var(--display);z-index:50}
.p-site .skip:focus{left:12px}
.p-site .btn{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:13px 26px 11px;border-radius:var(--r-control);font-family:var(--display);font-weight:700;font-size:16px;line-height:1.2;text-decoration:none;border:2px solid var(--ink);cursor:pointer;transition:background-color .15s,color .15s}
.p-site .btn-primary{background:var(--ink);color:var(--on-ink)}
.p-site .btn-primary:hover{background:var(--protocol);border-color:var(--protocol);color:#fff}
.p-site .btn-secondary{background:transparent;color:var(--ink)}
.p-site .btn-secondary:hover{background:var(--chart);color:var(--ink)}
.p-site .nav{position:sticky;top:0;z-index:30;background:rgba(231,235,227,.93);backdrop-filter:saturate(1.2) blur(8px);border-bottom:1px solid transparent;transition:border-color .2s}
.p-site .nav.scrolled{border-bottom-color:var(--rule)}
.p-site .nav .wrap{display:flex;align-items:center;justify-content:space-between;height:76px;gap:24px}
.p-site .brand{display:inline-flex;align-items:flex-end;gap:3px;text-decoration:none;color:var(--ink)}
.p-site .wm{height:24px;width:auto;display:block}
.p-site .brand b{font-family:var(--display);font-weight:800;font-size:21px;line-height:1;letter-spacing:-.01em;transform:translateY(1px)}
.p-site .links{display:flex;align-items:center;gap:30px}
.p-site .links a{font-family:var(--display);font-weight:600;font-size:16px;color:var(--ink-2);text-decoration:none;padding:6px 0;border-bottom:2px solid transparent}
.p-site .links a:hover{color:var(--ink)}
.p-site .links a[data-line="graph"]:hover{border-color:var(--graph)}
.p-site .links a[data-line="agent"]:hover{border-color:var(--agent)}
.p-site .links a[data-line="protocol"]:hover{border-color:var(--protocol)}
.p-site .links a.btn{color:var(--on-ink);padding:11px 22px 9px;min-height:44px;border-bottom:2px solid var(--ink)}
.p-site .links a.btn:hover{color:#fff;border-color:var(--protocol)}
.p-site .menu-btn{display:none;font-family:var(--display);font-weight:700;font-size:16px;background:none;border:2px solid var(--ink);color:var(--ink);border-radius:var(--r-control);padding:9px 18px 7px;cursor:pointer}
.p-site .hero{padding-block:44px 0}
.p-site .hero-grid{display:grid;grid-template-columns:7fr 5fr;gap:48px;align-items:end}
.p-site .hero h1{font-size:72px;line-height:.97;font-weight:800;letter-spacing:-.028em;max-width:13ch}
.p-site .hero .lede{font-size:21px;line-height:1.55;color:var(--ink);max-width:31em}
.p-site .hero .lede + .actions{margin-top:28px}
.p-site .actions{display:flex;flex-wrap:wrap;gap:12px}
.p-site .mapframe{margin:20px 0 0;position:relative}
.p-site .linemap{display:block;width:100%;height:auto}
.p-site .linemap .ln{fill:none;stroke-width:12;stroke-linecap:round;stroke-linejoin:round}
.p-site .linemap .g{stroke:var(--graph)}
.p-site .linemap .r{stroke:var(--agent)}
.p-site .linemap .b{stroke:var(--protocol)}
.p-site .linemap .tk{stroke-width:6;stroke-linecap:butt}
.p-site .linemap .term{stroke-width:7;stroke-linecap:round}
.p-site .linemap .ix{fill:#fff;stroke:var(--ink);stroke-width:4.5}
.p-site .linemap text{font-family:var(--display);font-size:16px;font-weight:700;fill:var(--ink)}
.p-site .linemap text.s{font-size:14px;font-weight:400;fill:var(--ink-2)}
.p-site .linemap text.big{font-size:19px;font-weight:800}
.p-site .maphint{display:none;font-family:var(--display);font-size:14px;color:var(--ink-2);margin-top:6px}
@media (prefers-reduced-motion:no-preference){.js .p-site .linemap .ln{stroke-dasharray:1;stroke-dashoffset:1;animation:draw 1.1s cubic-bezier(.6,.05,.3,1) forwards}
.js .p-site .linemap .ln.r{animation-delay:.45s}
.js .p-site .linemap .ln.b{animation-delay:.9s}
.js .p-site .linemap .stn{opacity:0;animation:appear .5s ease-out 1.6s forwards}}
@keyframes draw{to{stroke-dashoffset:0}}
@keyframes appear{to{opacity:1}}
.p-site .sec{padding-block:120px 0}
.p-site .sec-head{display:flex;align-items:center;gap:18px;margin-bottom:22px}
.p-site .sw{flex:none;width:44px;height:12px;border-radius:6px;position:relative}
.p-site .sw::after{content:"";position:absolute;right:9px;top:-5px;width:5px;height:22px;background:inherit;border-radius:1px}
.p-site .sw.graph{background:var(--graph)}
.p-site .sw.agent{background:var(--agent)}
.p-site .sw.protocol{background:var(--protocol)}
.p-site .sec h2{font-size:50px;line-height:1.03;font-weight:800;letter-spacing:-.022em;max-width:20ch}
.p-site .sec .intro{font-size:21px;line-height:1.55;max-width:36em;color:var(--ink)}
.p-site .cols{display:grid;grid-template-columns:repeat(12,1fr);gap:48px 40px}
.p-site .prose p + p{margin-top:1em}
.p-site .prose{max-width:36em}
.p-site .about .cols{align-items:start}
.p-site .about .left{grid-column:1 / span 5}
.p-site .about .right{grid-column:7 / span 6}
.p-site .key{list-style:none;margin:40px 0 0;padding:0}
.p-site .key li{display:grid;grid-template-columns:64px 1fr;gap:4px 16px;padding:22px 0;border-top:1px solid var(--rule)}
.p-site .key li:last-child{border-bottom:1px solid var(--rule)}
.p-site .key .sw{grid-row:1 / span 2;margin-top:10px}
.p-site .key h3{font-size:22px;font-weight:700;line-height:1.3}
.p-site .key p{font-size:17px;color:var(--ink-2)}
.p-site .fig{overflow:hidden;margin:0;background:var(--chart);border-radius:var(--r-panel);padding:24px}
.p-site .fig figcaption{font-family:var(--display);font-size:14px;line-height:1.5;color:var(--ink-2);margin-top:16px;max-width:92ch}
.p-site .fig figcaption b{color:var(--ink);font-weight:700}
.p-site .legend{display:flex;flex-wrap:wrap;gap:8px 22px;font-family:var(--display);font-size:14px;color:var(--ink);margin-top:14px;padding-top:14px;border-top:1px solid var(--rule)}
.p-site .legend span{display:inline-flex;align-items:center;gap:8px}
.p-site .legend i{display:inline-block;flex:none}
.p-site .lg-road{width:22px;height:3px;background:var(--ink);border-radius:2px}
.p-site .lg-stop{width:8px;height:8px;border-radius:50%;background:var(--graph)}
.p-site .lg-cell{width:11px;height:11px;background:var(--agent);opacity:.75}
.p-site .lg-ring{width:14px;height:14px;border-radius:50%;border:2.5px solid var(--agent)}
.p-site .dmap{display:block;width:100%;height:auto;max-height:760px}
.p-site .dmap .roads path{stroke:var(--ink)}
.p-site .dmap .cells rect{fill:var(--agent)}
.p-site .dmap .stops circle{fill:var(--graph);fill-opacity:.9}
.p-site .dmap .rings circle{fill:none;stroke:var(--agent);stroke-width:3}
.p-site .dmap .callout path{fill:none;stroke:var(--ink);stroke-width:1.6}
.p-site .dmap .callout text{font-family:var(--display);font-weight:800;font-size:30px;fill:var(--ink);paint-order:stroke;stroke:var(--chart);stroke-width:6px;stroke-linejoin:round}
.p-site .dmap .callout text.sub{font-weight:600;font-size:22px;fill:var(--ink-2)}
.p-site .dmap .pl circle{fill:var(--chart);stroke:var(--ink);stroke-width:2.5}
.p-site .dmap .pl text{font-family:var(--display);font-weight:700;font-size:27px;fill:var(--ink);paint-order:stroke;stroke:var(--chart);stroke-width:7px;stroke-linejoin:round}
.p-site .dmap .pl text.ar{font-family:var(--arabic);font-weight:500;font-size:24px;fill:var(--ink-2)}
.p-site .dig .cols{align-items:start}
.p-site .dig .figcol{grid-column:1 / span 8}
.p-site .dig .side{grid-column:9 / span 4;padding-top:6px}
.p-site .findings{margin:28px 0 0;padding:0}
.p-site .findings div{padding:18px 0;border-top:1px solid var(--rule)}
.p-site .findings dt{font-family:var(--display);font-weight:800;font-size:23px;line-height:1.25;font-variant-numeric:tabular-nums}
.p-site .findings dd{margin:6px 0 0;font-size:16.5px;line-height:1.55;color:var(--ink-2)}
.p-site .side .btn{margin-top:26px}
.p-site .a2a .left{grid-column:1 / span 6}
.p-site .a2a .right{grid-column:7 / span 6}
.p-site .route{list-style:none;margin:36px 0 0;padding:0;position:relative}
.p-site .route::before{content:"";position:absolute;left:9px;top:12px;bottom:12px;width:8px;border-radius:4px;background:var(--agent)}
.p-site .route li{position:relative;padding:0 0 26px 48px}
.p-site .route li::before{content:"";position:absolute;left:5px;top:6px;width:16px;height:16px;border-radius:50%;background:#fff;border:4px solid var(--ink)}
.p-site .route li:last-child{padding-bottom:0}
.p-site .route h3{font-size:19px;font-weight:700;line-height:1.35}
.p-site .route p{font-size:16.5px;color:var(--ink-2);line-height:1.55;margin-top:2px}
.p-site .route .who{font-family:var(--display);font-weight:600;color:var(--ink-2);font-size:14px}
.p-site .code{background:var(--ink);color:var(--on-ink);border-radius:var(--r-panel);padding:24px 26px;font-family:var(--code);font-size:14px;line-height:1.65;overflow-x:auto;margin:0}
.p-site .code .k{color:#9CC7A9}
.p-site .code .s{color:#F2A493}
.p-site .code .c{color:#8FA3AA}
.p-site .code-cap{font-family:var(--display);font-size:14px;color:var(--ink-2);margin-top:12px}
.p-site .skills{width:100%;border-collapse:collapse;margin-top:40px;font-size:16px}
.p-site .skills th{font-family:var(--display);font-weight:700;font-size:15px;text-align:left;padding:0 16px 10px 0;border-bottom:2px solid var(--ink)}
.p-site .skills td{padding:14px 16px 14px 0;border-bottom:1px solid var(--rule);vertical-align:top;line-height:1.5}
.p-site .skills td:first-child{font-family:var(--display);font-weight:700;white-space:nowrap;padding-right:28px}
.p-site .skills td:last-child{color:var(--ink-2);font-size:15px}
.p-site .mcp .left{grid-column:1 / span 5}
.p-site .mcp .right{grid-column:6 / span 7}
.p-site .tools{width:100%;border-collapse:collapse;font-size:16px;background:var(--chart);border-radius:var(--r-panel);overflow:hidden}
.p-site .tools th{font-family:var(--display);font-weight:700;font-size:15px;text-align:left;padding:16px 18px 12px;border-bottom:2px solid var(--ink)}
.p-site .tools td{padding:13px 18px;border-bottom:1px solid var(--rule);vertical-align:top;line-height:1.5}
.p-site .tools tr:last-child td{border-bottom:0}
.p-site .tools td:first-child{font-family:var(--display);font-weight:700;white-space:nowrap}
.p-site .tools td:nth-child(2){font-size:14.5px}
.p-site .tools td:nth-child(2) code{background:none;padding:0;color:var(--ink)}
.p-site .tools td:last-child{font-family:var(--display);color:var(--ink-2);white-space:nowrap}
.p-site .session{margin-top:32px}
.p-site .session .turn{display:grid;grid-template-columns:100px minmax(0,1fr);gap:12px;font-family:var(--display);font-size:16px;line-height:1.5;padding:14px 0;border-top:1px solid var(--rule)}
.p-site .session .turn span{min-width:0;overflow-wrap:anywhere}
.p-site .session .turn b{color:var(--ink-2);font-weight:600}
.p-site .session .turn.tool{font-family:var(--code);font-size:14px;color:var(--protocol)}
.p-site .session .turn.tool b{font-family:var(--display);font-size:16px}
.p-site .tt{list-style:none;margin:36px 0 0;padding:0}
.p-site .tt li{display:grid;grid-template-columns:130px 64px minmax(0,1fr) 200px;gap:0 20px;align-items:baseline;padding:22px 0;border-top:1px solid var(--rule)}
.p-site .tt li:last-child{border-bottom:1px solid var(--rule)}
.p-site .tt .date{font-family:var(--display);font-weight:600;font-size:16px;font-variant-numeric:tabular-nums;color:var(--ink-2)}
.p-site .tt .sw{width:44px;height:8px;align-self:start;margin-top:11px}
.p-site .tt .sw::after{display:none}
.p-site .tt h3{font-size:22px;font-weight:700;line-height:1.3}
.p-site .tt h3 a{color:var(--ink);text-decoration:none}
.p-site .tt h3 a:hover{text-decoration:underline;text-decoration-color:var(--protocol)}
.p-site .tt p{font-size:16.5px;color:var(--ink-2);margin-top:4px;max-width:60ch}
.p-site .tt .status{font-family:var(--display);font-weight:600;font-size:15px;text-align:right}
.p-site .tt .status.later{color:var(--ink-2);font-weight:400}
.p-site .demo-panel{background:var(--chart);border-radius:var(--r-panel);padding:56px;display:grid;grid-template-columns:5fr 7fr;gap:56px}
.p-site .demo-panel h2{font-size:46px}
.p-site .demo-panel .prose{margin-top:18px}
.p-site form{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.p-site .field{display:flex;flex-direction:column;gap:7px}
.p-site .field.full,.p-site fieldset,.p-site .submit-row{grid-column:1 / -1}
.p-site label,.p-site legend{font-family:var(--display);font-weight:600;font-size:15px;color:var(--ink)}
.p-site input[type=text],.p-site input[type=email],.p-site textarea{font-family:var(--display);font-size:17px;color:var(--ink);background:#fff;border:1.5px solid var(--rule);border-radius:var(--r-field);height:50px;padding:12px 14px 10px}
.p-site textarea{height:96px;resize:vertical;line-height:1.45}
.p-site input:focus,.p-site textarea:focus{outline:3px solid var(--protocol);outline-offset:0;border-color:var(--protocol)}
.p-site fieldset{border:0;margin:0;padding:0}
.p-site legend{padding:0;margin-bottom:10px}
.p-site .chips{display:flex;flex-wrap:wrap;gap:10px}
.p-site .chip{position:relative}
.p-site .chip input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.p-site .chip span{display:inline-block;font-family:var(--display);font-weight:600;font-size:15px;padding:10px 18px 8px;border:2px solid var(--ink);border-radius:var(--r-control);color:var(--ink);background:#fff}
.p-site .chip input:checked + span{background:var(--ink);color:var(--on-ink)}
.p-site .chip input:focus-visible + span{outline:3px solid var(--protocol);outline-offset:3px}
.p-site .submit-row{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin-top:4px}
.p-site .submit-row small{font-family:var(--display);font-size:14px;color:var(--ink-2)}
.p-site .err{grid-column:1 / -1;font-family:var(--display);font-size:15px;color:#A8261B;display:none}
.p-site .err.on{display:block}
.p-site .sent{display:none}
.p-site .sent h3{font-size:30px;font-weight:800}
.p-site .sent p{margin-top:10px;max-width:32em}
.p-site .demo-panel.done form{display:none}
.p-site .demo-panel.done .sent{display:block}
.p-site footer{margin-top:120px;border-top:1px solid var(--rule);padding-block:48px 56px;font-family:var(--display);font-size:15px;color:var(--ink-2)}
.p-site .foot{display:grid;grid-template-columns:5fr 3fr 4fr;gap:40px}
.p-site .foot p{max-width:34em;line-height:1.55}
.p-site .foot .brand{margin-bottom:14px}
.p-site .foot ul{list-style:none;margin:0;padding:0}
.p-site .foot li{padding:3px 0}
.p-site .foot a{color:var(--ink);text-decoration:none;font-weight:600}
.p-site .foot a:hover{text-decoration:underline}
.p-site .foot h3{font-size:15px;font-weight:700;margin-bottom:8px;color:var(--ink-2)}
.p-site .legal{margin-top:40px;font-size:13.5px}
@media (max-width:1100px){.p-site .hero h1{font-size:62px}
.p-site .dig .figcol,.p-site .dig .side{grid-column:1 / -1}
.p-site .dig .side{display:grid;grid-template-columns:1fr 1fr;gap:0 40px}
.p-site .dig .side .findings{margin-top:0}
.p-site .a2a .left,.p-site .a2a .right,.p-site .mcp .left,.p-site .mcp .right{grid-column:1 / -1}}
@media (max-width:900px){.p-site .links a:not(.btn){display:none}
.p-site .menu-btn{display:inline-block}
.p-site .links.open{position:absolute;top:76px;left:0;right:0;flex-direction:column;align-items:stretch;gap:0;background:var(--sabkha);border-bottom:1px solid var(--rule);padding:8px var(--gutter) 20px}
.p-site .links.open a:not(.btn){display:block;padding:14px 0;border-bottom:1px solid var(--rule);font-size:18px;color:var(--ink)}
.p-site .links.open a.btn{margin-top:16px}
.p-site .hero-grid{grid-template-columns:1fr;gap:24px}
.p-site .cols{grid-template-columns:minmax(0,1fr);gap:32px}
.p-site .cols > *{grid-column:1 / -1 !important}
.p-site .demo-panel{grid-template-columns:1fr;padding:32px}
.p-site .foot{grid-template-columns:1fr 1fr}
.p-site .foot > div:first-child{grid-column:1 / -1}
.p-site .tt li{grid-template-columns:64px minmax(0,1fr);gap:4px 16px}
.p-site .tt .date{grid-column:2;order:-1}
.p-site .tt .sw{grid-row:1 / span 3;grid-column:1}
.p-site .tt li > div{grid-column:2}
.p-site .tt .status{grid-column:2;text-align:left}}
@media (max-width:720px){:root{--gutter:20px}
body{font-size:17px}
.p-site .nav .wrap{height:64px}
.p-site .links.open{top:64px}
.p-site .links > a.btn{display:none}
.p-site .links.open > a.btn{display:inline-flex}
.p-site .hero{padding-top:32px}
.p-site .hero h1{font-size:44px;line-height:1.02}
.p-site .hero .lede{font-size:19px}
.p-site .mapframe{overflow-x:auto;margin:32px calc(-1 * var(--gutter)) 0;padding:0 var(--gutter) 4px;-webkit-overflow-scrolling:touch}
.p-site .linemap{width:1000px;max-width:none}
.p-site .maphint{display:block}
.p-site .sec{padding-top:80px}
.p-site .sec h2{font-size:34px;line-height:1.08}
.p-site .sec .intro{font-size:19px}
.p-site .fig{padding:14px}
.p-site .dig .side{display:block}
.p-site .dig .side .findings{margin-top:24px}
.p-site .skills td:first-child{white-space:normal;padding-right:14px}
.p-site .skills th:last-child,.p-site .skills td:last-child{display:none}
.p-site .sec-head{flex-direction:column;align-items:flex-start;gap:14px}
.p-site .tools{display:block;overflow-x:auto}
.p-site .tools td:first-child{white-space:normal;min-width:120px}
.p-site .demo-panel{padding:24px 20px}
.p-site .demo-panel h2{font-size:34px}
.p-site form{grid-template-columns:1fr}
.p-site .foot{grid-template-columns:1fr}
.p-site footer{margin-top:80px}}
.p-site .studio .skills{margin-top:56px}
.p-site .studio .route::before{background:var(--protocol)}
.p-site .studio .left{grid-column:1 / span 6}
.p-site .studio .right{grid-column:7 / span 6}
.p-site .status-note{font-family:var(--display);font-size:15px;line-height:1.5;color:var(--ink-2);margin-top:28px;padding:14px 18px;background:var(--chart);border-radius:var(--r-field);max-width:36em}
.p-site .status-note b{color:var(--ink);font-weight:700}
.p-site .axes{display:grid;grid-template-columns:1fr 1fr;gap:0 40px;margin-top:56px;border-top:2px solid var(--ink)}
.p-site .axes div{padding:20px 0 0}
.p-site .axes h3{font-size:22px;font-weight:700;line-height:1.3}
.p-site .axes p{font-size:17px;color:var(--ink-2);margin-top:6px;max-width:34em}
.p-site .caps{list-style:none;margin:44px 0 0;padding:0}
.p-site .caps li{display:grid;grid-template-columns:3fr 5fr 4fr;gap:8px 40px;padding:30px 0;border-top:1px solid var(--rule);align-items:start}
.p-site .caps li:last-child{border-bottom:1px solid var(--rule)}
.p-site .caps h3{font-size:28px;font-weight:800;line-height:1.15;letter-spacing:-.012em}
.p-site .caps .by{font-family:var(--display);font-size:15px;color:var(--ink-2);margin-top:8px;line-height:1.4}
.p-site .caps .what{font-size:17.5px;line-height:1.6}
.p-site .caps .ask{font-family:var(--display);font-size:17px;line-height:1.45;font-weight:600;background:var(--chart);border-radius:var(--r-panel);padding:16px 20px 14px}
.p-site .caps .ask small{display:block;font-size:14px;font-weight:400;color:var(--ink-2);margin-bottom:4px}
.p-site .credit{font-family:var(--display);font-size:15px;line-height:1.5;color:var(--ink-2);margin-top:22px}
@media (max-width:1100px){.p-site .studio .left,.p-site .studio .right{grid-column:1 / -1}
.p-site .caps li{grid-template-columns:1fr 1fr}
.p-site .caps li > div:first-child{grid-column:1 / -1}}
@media (max-width:720px){.p-site .caps li{grid-template-columns:minmax(0,1fr);padding:24px 0}
.p-site .caps li > *{grid-column:1 / -1}
.p-site .caps h3{font-size:24px}
.p-site .axes{grid-template-columns:1fr}}
.p-site .linemap .ix.hub{stroke-width:7}
.p-site .linemap .hubdot{fill:var(--ink)}
.p-site .linemap text.hubt{font-size:25px;font-weight:800}
.p-site .linemap .hublink:hover .hubdot{fill:var(--agent)}
.p-site .plat h2{max-width:22ch}
.p-site .family{list-style:none;margin:48px 0 0;padding:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.9fr) minmax(0,1fr) minmax(0,1fr);gap:24px;align-items:center;position:relative}
.p-site .family::before{content:"";position:absolute;left:0;right:0;top:50%;height:10px;margin-top:-5px;border-radius:5px;background:var(--ink)}
.p-site .family li{position:relative;border-radius:var(--r-panel);padding:22px 20px 20px;font-family:var(--display)}
.p-site .family .soon{background:var(--sabkha);border:2px dashed var(--ink-2)}
.p-site .family .hub{background:var(--ink);padding:38px 34px 36px}
.p-site .family h3{font-size:21px;font-weight:800;line-height:1.2}
.p-site .family .hub h3{font-size:36px;color:var(--on-ink);letter-spacing:-.018em;line-height:1.06}
.p-site .family p{font-size:15.5px;line-height:1.45;color:var(--ink-2);margin-top:6px}
.p-site .family .hub p{font-size:17px;line-height:1.5;color:var(--on-ink);margin-top:14px}
.p-site .family .state{display:block;font-size:14px;font-weight:600;color:var(--ink-2);margin-top:12px}
.p-site .family .hub .state{margin:0 0 12px;color:var(--code-k,#9CC7A9)}
.p-site .family .hub .btn{margin-top:24px;background:var(--chart);border-color:var(--chart);color:var(--ink)}
.p-site .family .hub .btn:hover{background:#fff;border-color:#fff;color:var(--ink)}
.p-site .posts{list-style:none;margin:40px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.p-site .posts li{background:var(--chart);border-radius:var(--r-panel);padding:26px 26px 24px;display:flex;flex-direction:column}
.p-site .posts li[hidden]{display:none}
.p-site .posts .topic{display:flex;align-items:center;gap:12px;font-family:var(--display);font-weight:600;font-size:15px;color:var(--ink-2)}
.p-site .posts .topic .sw{width:28px;height:8px}
.p-site .posts .topic .sw::after{display:none}
.p-site .posts h3{font-size:24px;font-weight:800;line-height:1.18;letter-spacing:-.01em;margin-top:14px}
.p-site .posts h3 a{color:var(--ink);text-decoration:none}
.p-site .posts h3 a:hover{text-decoration:underline;text-decoration-color:var(--protocol)}
.p-site .posts p{font-size:16.5px;line-height:1.55;color:var(--ink-2);margin-top:10px}
.p-site .posts .meta{font-family:var(--display);font-size:14px;margin-top:auto;padding-top:18px}
.p-site .blog-more{margin-top:28px}
@media (max-width:1100px){.p-site .family{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}
.p-site .family::before{display:none}
.p-site .family .hub{grid-column:1 / -1;order:-1}
.p-site .posts{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:720px){.p-site .family .hub{padding:28px 22px}
.p-site .family .hub h3{font-size:29px}
.p-site .posts{grid-template-columns:minmax(0,1fr)}}
:root{
  --sabkha:#E7EBE3; --chart:#F6F8F3; --ink:#12303A; --ink-2:#4A6068; --rule:#C3CCC1; --white:#FFFFFF;
  --graph:#1F6B45; --agent:#D8392B; --protocol:#2459A6; --on-ink:#E9EFE8;
  --code-k:#9CC7A9; --code-s:#F2A493; --code-c:#8FA3AA;
  --display:"Overpass","Helvetica Neue",Arial,sans-serif;
  --read:"Literata",Georgia,serif;
  --arabic:"Tajawal","Overpass",sans-serif;
  --code:"Overpass Mono",ui-monospace,Menlo,monospace;
  --max:1320px; --gutter:40px;
  --r-control:999px; --r-field:10px; --r-panel:14px; --r-code:4px;
  color-scheme:light;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--sabkha);color:var(--ink);font-family:var(--read);font-size:18px;line-height:1.62;-webkit-font-smoothing:antialiased}
.p-d2g h1,.p-d2g h2,.p-d2g h3{font-family:var(--display);margin:0;color:var(--ink);text-wrap:balance}
.p-d2g p{margin:0}
.p-d2g a{color:var(--protocol);text-decoration-thickness:1.5px;text-underline-offset:3px}
.p-d2g a:hover{color:var(--ink)}
.p-d2g :focus-visible{outline:3px solid var(--protocol);outline-offset:3px;border-radius:4px}
.p-d2g code{font-family:var(--code);font-size:.86em;background:rgba(18,48,58,.07);padding:1px 5px;border-radius:var(--r-code)}
.p-d2g .wrap{max-width:var(--max);margin:0 auto;padding-inline:var(--gutter)}
.p-d2g .btn{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:13px 26px 11px;border-radius:var(--r-control);font-family:var(--display);font-weight:700;font-size:16px;line-height:1.2;text-decoration:none;border:2px solid var(--ink);cursor:pointer}
.p-d2g .btn-primary{background:var(--ink);color:var(--on-ink)}
.p-d2g .btn-primary:hover{background:var(--protocol);border-color:var(--protocol);color:var(--white)}
.p-d2g .nav{position:sticky;top:env(safe-area-inset-top,0px);z-index:30;background:rgba(231,235,227,.94);backdrop-filter:blur(8px);border-bottom:1px solid var(--rule)}
.p-d2g .nav .wrap{display:flex;align-items:center;justify-content:space-between;min-height:72px;gap:24px}
.p-d2g .brand{display:inline-flex;align-items:flex-end;gap:3px;text-decoration:none;color:var(--ink)}
.p-d2g .wm{height:24px;width:auto;display:block}
.p-d2g .brand b{font-family:var(--display);font-weight:800;font-size:21px;line-height:1;transform:translateY(1px)}
.p-d2g .links{display:flex;align-items:center;gap:28px;flex-wrap:wrap}
.p-d2g .links a{font-family:var(--display);font-weight:600;font-size:16px;color:var(--ink-2);text-decoration:none;padding:6px 0;border-bottom:2px solid transparent}
.p-d2g .links a:hover{color:var(--ink);border-color:var(--graph)}
.p-d2g .hero{padding-block:48px 0}
.p-d2g .hero-grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:48px;align-items:end}
.p-d2g .hero h1{font-size:72px;line-height:.97;font-weight:800;letter-spacing:-.028em;max-width:12ch}
.p-d2g .hero .lede{font-size:21px;line-height:1.55;max-width:31em}
.p-d2g .crumb{font-family:var(--display);font-size:15px;color:var(--ink-2);margin-bottom:18px}
.p-d2g .crumb a{color:var(--ink-2)}
.p-d2g .explorer{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:32px;margin-top:44px;align-items:start}
.p-d2g .qs{display:flex;flex-direction:column;gap:0;min-width:0}
.p-d2g .qs h2{font-size:24px;font-weight:800;line-height:1.2;margin-bottom:6px}
.p-d2g .qs .hint{font-family:var(--display);font-size:15px;color:var(--ink-2);line-height:1.45;margin-bottom:14px}
.p-d2g .q{display:block;width:100%;text-align:left;font-family:var(--display);font-weight:600;font-size:18px;line-height:1.3;color:var(--ink);background:transparent;border:0;border-top:1px solid var(--rule);padding:15px 14px 13px 30px;cursor:pointer;position:relative}
.p-d2g .q:last-of-type{border-bottom:1px solid var(--rule)}
.p-d2g .q::before{content:"";position:absolute;left:4px;top:19px;width:12px;height:12px;border-radius:50%;border:3px solid var(--ink);background:var(--sabkha)}
.p-d2g .q:hover{background:var(--chart)}
.p-d2g .q[aria-pressed="true"]{background:var(--ink);color:var(--on-ink);border-top-color:var(--ink);border-radius:var(--r-field)}
.p-d2g .q[aria-pressed="true"]::before{background:var(--agent);border-color:var(--on-ink)}
.p-d2g .q[aria-pressed="true"] + .q{border-top-color:transparent}
.p-d2g .panel{background:var(--chart);border-radius:var(--r-panel);padding:24px;min-width:0}
.p-d2g .dmap{display:block;width:100%;height:auto;max-height:720px}
.p-d2g .dmap .roads path{stroke:var(--ink)}
.p-d2g .dmap .pl circle{fill:var(--chart);stroke:var(--ink);stroke-width:2.5}
.p-d2g .dmap .pl text{font-family:var(--display);font-weight:700;font-size:26px;fill:var(--ink);paint-order:stroke;stroke:var(--chart);stroke-width:7px;stroke-linejoin:round}
.p-d2g .dmap .pl text.ar{font-family:var(--arabic);font-weight:500;font-size:23px;fill:var(--ink-2)}
.p-d2g .ans{border-top:1px solid var(--rule);margin-top:18px;padding-top:18px;display:grid;grid-template-columns:5fr 7fr;gap:8px 32px}
.p-d2g .ans h3{font-size:28px;font-weight:800;line-height:1.15;letter-spacing:-.012em;font-variant-numeric:tabular-nums}
.p-d2g .ans .why{font-size:17px;line-height:1.55}
.p-d2g .ans .legend,.p-d2g .ans .how{grid-column:1 / -1}
.p-d2g .legend{display:flex;flex-wrap:wrap;gap:8px 20px;font-family:var(--display);font-size:14px;color:var(--ink);margin-top:10px}
.p-d2g .legend span{display:inline-flex;align-items:center;gap:8px}
.p-d2g .legend i{display:inline-block;flex:none;width:12px;height:12px;border-radius:50%}
.p-d2g .legend i.sq{border-radius:2px}
.p-d2g .legend i.ln{width:22px;height:3px;border-radius:2px}
.p-d2g .legend i.ring{background:transparent;border:2.5px solid var(--agent);width:14px;height:14px}
.p-d2g .how{font-family:var(--display);font-size:14px;line-height:1.5;color:var(--ink-2);max-width:92ch}
.p-d2g .how b{color:var(--ink);font-weight:700}
.p-d2g .sec{padding-block:112px 0}
.p-d2g .sec-head{display:flex;align-items:center;gap:18px;margin-bottom:22px}
.p-d2g .sw{flex:none;width:44px;height:12px;border-radius:6px;position:relative;background:var(--graph)}
.p-d2g .sw::after{content:"";position:absolute;right:9px;top:-5px;width:5px;height:22px;background:inherit;border-radius:1px}
.p-d2g .sec h2{font-size:50px;line-height:1.03;font-weight:800;letter-spacing:-.022em;max-width:20ch}
.p-d2g .intro{font-size:21px;line-height:1.55;max-width:36em}
.p-d2g .cols{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:48px 40px}
.p-d2g .vs{width:100%;border-collapse:collapse;margin-top:40px;table-layout:fixed}
.p-d2g .vs th{font-family:var(--display);font-weight:700;font-size:16px;text-align:left;padding:0 24px 12px 0;border-bottom:2px solid var(--ink);width:50%}
.p-d2g .vs td{padding:18px 24px 18px 0;border-bottom:1px solid var(--rule);vertical-align:top;font-size:18px;line-height:1.5}
.p-d2g .vs td:first-child{color:var(--ink-2)}
.p-d2g .vs td:last-child{font-family:var(--display);font-weight:700;font-size:19px}
.p-d2g .steps{list-style:none;margin:0;padding:0;position:relative}
.p-d2g .steps::before{content:"";position:absolute;left:9px;top:12px;bottom:12px;width:8px;border-radius:4px;background:var(--graph)}
.p-d2g .steps li{position:relative;padding:0 0 28px 48px}
.p-d2g .steps li::before{content:"";position:absolute;left:5px;top:6px;width:16px;height:16px;border-radius:50%;background:var(--white);border:4px solid var(--ink)}
.p-d2g .steps li:last-child{padding-bottom:0}
.p-d2g .steps h3{font-size:21px;font-weight:700;line-height:1.3}
.p-d2g .steps p{font-size:17px;color:var(--ink-2);line-height:1.55;margin-top:4px}
.p-d2g .build .left{grid-column:1 / span 5;min-width:0}
.p-d2g .cols > *{min-width:0}
.p-d2g .build .right{grid-column:6 / span 7;min-width:0}
.p-d2g .fig{margin:0;background:var(--chart);border-radius:var(--r-panel);padding:24px;overflow:hidden}
.p-d2g .fab{display:block;width:100%;height:auto;aspect-ratio:16 / 10}
.p-d2g .fig figcaption{font-family:var(--display);font-size:14px;line-height:1.5;color:var(--ink-2);margin-top:14px;max-width:92ch}
.p-d2g .fig figcaption b{color:var(--ink);font-weight:700}
.p-d2g .codebox{overflow-x:auto;background:var(--ink);border-radius:var(--r-panel);margin-top:32px}
.p-d2g .codebox pre{margin:0;padding:24px 26px;color:var(--on-ink);font-family:var(--code);font-size:14px;line-height:1.65}
.p-d2g .codebox .k{color:var(--code-k)}
.p-d2g .codebox .s{color:var(--code-s)}
.p-d2g .codebox .c{color:var(--code-c)}
.p-d2g .cap{font-family:var(--display);font-size:14px;color:var(--ink-2);margin-top:12px}
.p-d2g .tblwrap{overflow-x:auto;margin-top:40px}
.p-d2g .tbl{width:100%;border-collapse:collapse;font-size:16.5px;min-width:640px}
.p-d2g .tbl th{font-family:var(--display);font-weight:700;font-size:15px;text-align:left;padding:0 20px 10px 0;border-bottom:2px solid var(--ink)}
.p-d2g .tbl td{padding:14px 20px 14px 0;border-bottom:1px solid var(--rule);vertical-align:top;line-height:1.5}
.p-d2g .tbl td:first-child{font-family:var(--display);font-weight:700}
.p-d2g .tbl td.num{font-family:var(--display);font-variant-numeric:tabular-nums}
.p-d2g .st{font-family:var(--display);font-weight:700;font-size:14px;display:inline-block;padding:4px 12px 2px;border-radius:var(--r-control);white-space:nowrap}
.p-d2g .st.in{background:var(--graph);color:var(--on-ink)}
.p-d2g .st.next{background:transparent;color:var(--ink);border:2px solid var(--ink);padding:2px 10px 0}
.p-d2g .st.req{background:transparent;color:var(--ink-2);border:2px dashed var(--ink-2);padding:2px 10px 0}
.p-d2g .limits{list-style:none;margin:36px 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:0 48px}
.p-d2g .limits li{padding:18px 0;border-top:1px solid var(--rule)}
.p-d2g .limits h3{font-size:19px;font-weight:700;line-height:1.3}
.p-d2g .limits p{font-size:16.5px;color:var(--ink-2);line-height:1.55;margin-top:4px}
.p-d2g .close{background:var(--chart);border-radius:var(--r-panel);padding:48px;display:grid;grid-template-columns:7fr 5fr;gap:40px;align-items:center}
.p-d2g .close h2{font-size:40px}
.p-d2g .close p{margin-top:14px;max-width:34em}
.p-d2g .close .contact{font-family:var(--display);font-size:17px;line-height:1.6}
.p-d2g .close .contact b{display:block;font-size:22px;font-weight:800;user-select:all}
.p-d2g footer{margin-top:96px;border-top:1px solid var(--rule);padding-block:36px 48px;font-family:var(--display);font-size:13.5px;color:var(--ink-2);line-height:1.6}
.p-d2g footer p + p{margin-top:8px}
@media (max-width:1100px){.p-d2g .hero h1{font-size:60px}
.p-d2g .explorer{grid-template-columns:minmax(0,1fr)}
.p-d2g .qs .list{display:flex;gap:10px;overflow-x:auto;padding-bottom:8px}
.p-d2g .q,.p-d2g .q:last-of-type{flex:none;width:auto;max-width:260px;border:2px solid var(--ink);border-radius:var(--r-field);padding:10px 14px 8px;font-size:16px}
.p-d2g .q::before{display:none}
.p-d2g .q[aria-pressed="true"] + .q{border-top-color:var(--ink)}
.p-d2g .cols{grid-template-columns:minmax(0,1fr);gap:32px}
.p-d2g .build .left,.p-d2g .build .right{grid-column:1 / -1}}
@media (max-width:760px){:root{--gutter:18px}
body{font-size:17px}
.p-d2g .links a:not(.keep){display:none}
.p-d2g .hero{padding-block:32px 0}
.p-d2g .hero-grid{grid-template-columns:minmax(0,1fr);gap:20px}
.p-d2g .hero h1{font-size:44px;line-height:1.02}
.p-d2g .hero .lede{font-size:19px}
.p-d2g .panel,.p-d2g .fig{padding:14px}
.p-d2g .ans{grid-template-columns:minmax(0,1fr)}
.p-d2g .ans h3{font-size:24px}
.p-d2g .sec{padding-block:72px 0}
.p-d2g .sec h2{font-size:34px;line-height:1.08}
.p-d2g .sec-head{flex-direction:column;align-items:flex-start;gap:14px}
.p-d2g .intro{font-size:19px}
.p-d2g .vs td,.p-d2g .vs th{padding-right:12px;font-size:16px}
.p-d2g .vs td:last-child{font-size:16.5px}
.p-d2g .limits{grid-template-columns:minmax(0,1fr)}
.p-d2g .close{grid-template-columns:minmax(0,1fr);padding:28px 20px}
.p-d2g .close h2{font-size:30px}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.p-site .nav{top:env(safe-area-inset-top,0px)}
.p-site .links a.cur{color:var(--ink);border-bottom-color:var(--ink)}
.p-site .caps h3 a.caplink{color:var(--ink);text-decoration-thickness:2px;text-underline-offset:5px;text-decoration-color:var(--agent)}
.p-site .caps h3 a.caplink:hover{color:var(--agent)}
.p-site .cols > *{min-width:0}
.p-site .plat-pill{display:inline-flex;align-items:center;gap:10px;font-family:var(--display);font-weight:800;font-size:16px;line-height:1.2;color:var(--ink);text-decoration:none;border:2px solid var(--ink);border-radius:var(--r-control);padding:10px 20px 8px 14px;background:var(--chart);white-space:nowrap}
.p-site .plat-pill i{width:16px;height:16px;border-radius:50%;border:4px solid var(--ink);background:var(--white);flex:none;transform:translateY(-1px)}
.p-site .plat-pill:hover{background:var(--ink);color:var(--on-ink)}
.p-site .plat-pill:hover i{border-color:var(--on-ink);background:var(--ink)}
.p-site .links a.plat-m{display:none}
.p-site .plat-band{display:flex;align-items:center;justify-content:space-between;gap:20px 40px;flex-wrap:wrap;margin-top:120px;background:var(--ink);color:var(--on-ink);border-radius:var(--r-panel);padding:34px 40px;text-decoration:none;font-family:var(--display);font-size:17px;line-height:1.5}
.p-site .plat-band b{display:block;font-size:30px;font-weight:800;line-height:1.15;letter-spacing:-.014em;margin-bottom:4px}
.p-site .plat-band .go{flex:none;font-weight:700;background:var(--chart);color:var(--ink);border-radius:var(--r-control);padding:13px 26px 11px}
.p-site .plat-band:hover{color:var(--on-ink)}
.p-site .plat-band:hover .go{background:var(--white)}
.p-site footer{margin-top:56px}
@media (max-width:1240px){.p-site .links{gap:22px}}
@media (max-width:1140px){
.p-site .links a:not(.btn){display:none}
.p-site .menu-btn{display:inline-block}
.p-site .links.open{position:absolute;top:76px;left:0;right:0;flex-direction:column;align-items:stretch;gap:0;background:var(--sabkha);border-bottom:1px solid var(--rule);padding:8px var(--gutter) 20px}
.p-site .links.open a:not(.btn){display:block;padding:14px 0;border-bottom:1px solid var(--rule);font-size:18px;color:var(--ink)}
.p-site .links.open a.btn{margin-top:16px}
.p-site .nav .wrap{gap:14px}
.p-site .plat-pill{margin-left:auto}
}
@media (max-width:720px){
.p-site .links.open{top:64px}
.p-site .plat-pill{font-size:14px;padding:8px 13px 6px 10px;gap:7px}
.p-site .plat-pill i{width:13px;height:13px;border-width:3px}
.p-site .plat-pill .l{display:none}
.p-site .wm{height:20px}
.p-site .brand b{font-size:18px}
.p-site .menu-btn{font-size:14px;padding:8px 13px 6px}
.p-site .plat-band{margin-top:80px;padding:26px 22px}
.p-site .plat-band b{font-size:25px}
.p-site footer{margin-top:44px}
}
@media (max-width:380px){
.p-site .nav .wrap{gap:8px}
.p-site .plat-pill{font-size:13px;padding:7px 10px 5px 8px;gap:6px}
.p-site .wm{height:18px}
.p-site .brand b{font-size:16px}
.p-site .menu-btn{padding:7px 10px 5px;font-size:13px}
}
.p-site .code{max-width:100%}
.p-d2g .d2g-method{margin-top:96px;font-family:var(--display);font-size:13.5px;color:var(--ink-2);line-height:1.6}
.p-d2g .d2g-method p + p{margin-top:8px}

.p-x .crumb{font-family:var(--display);font-size:15px;color:var(--ink-2);margin-bottom:18px}
.p-x .crumb a{color:var(--ink-2)}
.p-x .hero h1{max-width:15ch}
.p-x .subnav{display:flex;flex-wrap:wrap;gap:10px;margin-top:40px}
.p-x .subnav a{font-family:var(--display);font-weight:600;font-size:15px;color:var(--ink);text-decoration:none;border:2px solid var(--ink);border-radius:var(--r-control);padding:8px 16px 6px}
.p-x .subnav a:hover{background:var(--chart)}
.p-x .subnav a.on{background:var(--ink);color:var(--on-ink)}
.p-x .rows{list-style:none;margin:44px 0 0;padding:0}
.p-x .rows li{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:8px 40px;padding:26px 0;border-top:1px solid var(--rule)}
.p-x .rows li:last-child{border-bottom:1px solid var(--rule)}
.p-x .rows h3{font-size:24px;font-weight:800;line-height:1.2;letter-spacing:-.01em}
.p-x .rows p{font-size:17.5px;line-height:1.6;max-width:38em}
.p-x .two{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:48px;margin-top:44px;align-items:start}
.p-x .two.flip{grid-template-columns:minmax(0,7fr) minmax(0,5fr)}
.p-x .session{margin-top:0;background:var(--chart);border-radius:var(--r-panel);padding:8px 24px}
.p-x .session .turn:first-child{border-top:0}
.p-x .ex{font-family:var(--display);font-size:14px;color:var(--ink-2);margin-top:12px}
.p-x .plain{list-style:none;margin:20px 0 0;padding:0}
.p-x .plain li{padding:14px 0;border-top:1px solid var(--rule);font-size:17px;line-height:1.55}
.p-x .plain li b{font-family:var(--display);font-weight:700}
.p-x .pfig{display:block;width:100%;height:auto;max-height:620px}
.p-x .pfig .roads path{stroke:var(--ink)}
.p-x .pfig text{font-family:var(--display);font-weight:800;font-size:14px;fill:var(--on-ink)}
.p-x .hub{display:block;width:100%;height:auto}
.p-x .hub text{font-family:var(--display);font-size:17px;font-weight:700;fill:var(--ink)}
.p-x .hub text.s{font-size:14px;font-weight:400;fill:var(--ink-2)}
.p-x .hub .ix{fill:var(--white);stroke:var(--ink);stroke-width:4.5}
.p-x .scorebar{display:flex;gap:4px;margin-top:8px}
.p-x .scorebar div{height:44px;border-radius:6px;background:var(--ink);display:flex;align-items:center;justify-content:center;color:var(--on-ink);font-family:var(--display);font-weight:800;font-size:16px;min-width:0}
.p-x .scorekey{list-style:none;margin:16px 0 0;padding:0;font-family:var(--display);font-size:15px;line-height:1.45}
.p-x .scorekey li{display:flex;gap:12px;padding:7px 0;border-top:1px solid var(--rule)}
.p-x .scorekey b{flex:none;width:44px;font-variant-numeric:tabular-nums}
.p-x .tl{display:block;width:100%;height:auto}
.p-x .tl text{font-family:var(--display);font-size:15px;font-weight:700;fill:var(--ink)}
.p-x .tl text.s{font-size:13.5px;font-weight:400;fill:var(--ink-2)}
.p-x .faq{margin-top:36px;border-top:1px solid var(--rule)}
.p-x .faq details{border-bottom:1px solid var(--rule)}
.p-x .faq summary{font-family:var(--display);font-weight:700;font-size:20px;line-height:1.3;padding:18px 0 16px;cursor:pointer}
.p-x .faq p{font-size:17px;line-height:1.6;max-width:44em;padding:0 0 20px}
.p-x .next{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:40px;align-items:center;background:var(--chart);border-radius:var(--r-panel);padding:44px}
.p-x .next h2{font-size:38px}
.p-x .next p{margin-top:12px;max-width:32em}
.p-x .next .actions{justify-content:flex-start}
.p-x .hist{list-style:none;margin:36px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 32px;border-top:8px solid var(--protocol);border-radius:4px}
.p-x .hist li{padding:18px 0 0;position:relative}
.p-x .hist li::before{content:"";position:absolute;left:0;top:-15px;width:6px;height:22px;background:var(--protocol);border-radius:1px}
.p-x .hist b{font-family:var(--display);font-weight:800;font-size:22px;display:block;font-variant-numeric:tabular-nums}
.p-x .hist span{font-size:17px;line-height:1.5;color:var(--ink-2);display:block;margin-top:4px}
.p-x .anat{list-style:none;margin:36px 0 0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0 24px}
.p-x .anat li{border-top:2px solid var(--ink);padding:14px 0 0}
.p-x .anat h3{font-size:19px;font-weight:800}
.p-x .anat p{font-size:16px;line-height:1.5;color:var(--ink-2);margin-top:4px}
.p-x .filters{display:flex;flex-wrap:wrap;gap:10px;margin-top:40px}
.p-x .filters button{font-family:var(--display);font-weight:600;font-size:15px;color:var(--ink);background:transparent;border:2px solid var(--ink);border-radius:var(--r-control);padding:8px 16px 6px;cursor:pointer}
.p-x .filters button:hover{background:var(--chart)}
.p-x .filters button[aria-pressed="true"]{background:var(--ink);color:var(--on-ink)}
.p-x .bloglist{padding-block:8px 0}
.p-x .art{max-width:1000px}
.p-x .art .topic{display:flex;align-items:center;gap:12px;font-family:var(--display);font-weight:600;font-size:15px;color:var(--ink-2);margin-bottom:18px}
.p-x .art .topic .sw{width:28px;height:8px}
.p-x .art .topic .sw::after{display:none}
.p-x .art h1{font-size:56px;line-height:1.02;font-weight:800;letter-spacing:-.024em;max-width:19ch}
.p-x .art .by{font-family:var(--display);font-size:15px;color:var(--ink-2);margin-top:20px}
.p-x .art .stand{font-size:22px;line-height:1.5;max-width:32em;margin-top:28px}
.p-x .art .body{max-width:36em;margin-top:36px}
.p-x .art .body p + p{margin-top:1.1em}
.p-x .art .body h2{font-size:28px;font-weight:800;line-height:1.2;letter-spacing:-.012em;margin:44px 0 12px;max-width:none}
.p-x .art .fig{margin:40px 0}
@media (max-width:720px){
  .p-x .art h1{font-size:36px;line-height:1.06}
  .p-x .art .stand{font-size:19px}
  .p-x .art .body h2{font-size:24px}
}
@media (max-width:1100px){
  .p-x .two,.p-x .two.flip{grid-template-columns:minmax(0,1fr)}
  .p-x .anat{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 24px}
}
@media (max-width:720px){
  .p-x .rows li{grid-template-columns:minmax(0,1fr)}
  .p-x .hist{grid-template-columns:minmax(0,1fr);border-top:0;border-left:8px solid var(--protocol);padding-left:20px}
  .p-x .hist li{padding:0 0 18px}
  .p-x .hist li::before{display:none}
  .p-x .next{grid-template-columns:minmax(0,1fr);padding:28px 20px}
  .p-x .next h2{font-size:30px}
  .p-x .session{padding:4px 16px}
  .p-x .session .turn{grid-template-columns:minmax(0,1fr);gap:2px}
}


.p-site .family.solo{grid-template-columns:minmax(0,1fr)}
.p-site .family.solo::before{display:none}
.p-site .family.solo .hub{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:8px 48px;align-items:center;padding:44px 48px}
.p-site .family.solo .hub .state{grid-column:1 / -1}
.p-site .family.solo .hub h3{font-size:44px}
.p-site .family.solo .hub p{margin-top:0;font-size:19px}
.p-site .family.solo .hub .btn{grid-column:2;justify-self:start;margin-top:14px}
.p-site .posts.n1{grid-template-columns:minmax(0,640px)}
.p-site .posts.n2{grid-template-columns:repeat(2,minmax(0,1fr))}
.p-site .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.p-site .submit-row .btn[disabled]{opacity:.55;cursor:default}
.p-site .linkbtn{font:inherit;color:var(--protocol);background:none;border:0;padding:0;text-decoration:underline;cursor:pointer}
.skip{position:absolute;left:-999px;top:8px;background:var(--ink);color:var(--on-ink);padding:8px 14px;border-radius:999px;font-family:var(--display);z-index:50}
.skip:focus{left:12px}
.consent{position:fixed;left:16px;right:16px;bottom:16px;z-index:60;max-width:560px;margin:0 auto;background:var(--ink);color:var(--on-ink);border-radius:var(--r-panel);padding:18px 20px;font-family:var(--display);font-size:15px;line-height:1.45;display:flex;gap:14px 18px;align-items:center;flex-wrap:wrap;box-shadow:0 10px 30px rgba(18,48,58,.25)}
.consent p{margin:0;flex:1 1 260px}
.consent a{color:var(--on-ink)}
.consent button{font-family:var(--display);font-weight:700;font-size:15px;border-radius:999px;padding:9px 18px 7px;cursor:pointer;border:2px solid var(--on-ink);background:transparent;color:var(--on-ink)}
.consent button.yes{background:var(--chart);color:var(--ink);border-color:var(--chart)}
.consent[hidden]{display:none}
@media (max-width:900px){
.p-site .family.solo .hub{grid-template-columns:minmax(0,1fr);padding:30px 24px}
.p-site .family.solo .hub h3{font-size:32px}
.p-site .family.solo .hub .btn{grid-column:1}
}
