/* Native disclosures provide standard Enter, Space and Tab behavior. */
.nav-group { position:relative; flex-shrink:0; }
.nav-group>summary { display:flex; align-items:center; justify-content:space-between; gap:9px; padding-block:16px; padding-inline-end:4px; cursor:pointer; list-style:none; }
.nav-group>summary::-webkit-details-marker { display:none; }
.nav-group>summary>span { font:16px var(--mono); }
.nav-group[open]>summary>span { transform:rotate(45deg); }
.nav-panel { position:fixed; top:var(--nav-top,80px); left:var(--nav-left,18px); display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); width:720px; max-width:calc(100vw - 36px); padding:12px; border:1px solid var(--line); border-radius:14px; background:var(--bg); color:var(--ink); box-shadow:0 18px 50px #0002; z-index:30; }
.nav-group:not([open])>.nav-panel { display:none; }
.nav-options { display:flex; flex-direction:column; gap:4px; padding:8px; }
.nav-option { display:flex; align-items:center; justify-content:space-between; gap:12px; width:100%; border:0; border-radius:8px; padding:17px 14px; background:transparent; color:var(--ink); font:inherit; font-size:14px; line-height:1.45; text-align:start; text-decoration:none; cursor:pointer; }
.nav-option[data-active="true"] { background:var(--surface,#edf0e5); }
.nav-option:focus-visible { outline:2px solid var(--ink); outline-offset:2px; }
.nav-arrow { width:14px; height:14px; flex-shrink:0; fill:none; stroke:currentColor; stroke-width:1.5; }
.nav-details { min-width:0; padding:22px 26px; border-inline-start:1px solid var(--line); }
.nav-preview[hidden] { display:none; }
.nav-preview h3 { font-size:23px; line-height:1.25; letter-spacing:-.025em; margin:16px 0 12px; }
.nav-preview p { font-size:14px; line-height:1.7; color:var(--muted); margin:0 0 22px; }
.nav-preview .text-link { display:inline-flex; align-items:center; gap:12px; padding:6px 0; font-size:13px; }
.nav-illustration { display:block; width:104px; height:84px; overflow:visible; }
[data-theme="dark"] .nav-panel { border-radius:0; box-shadow:5px 5px 0 #35462c; }
[data-theme="dark"] .nav-option { border-radius:0; }
[data-theme="dark"] .nav-option[data-active="true"] { background:#27321f; }
.nav-illustration img { width:100%; height:100%; object-fit:contain; }
.nav-icon-light { display:block; mix-blend-mode:normal; }
.nav-icon-dark { display:none; }
[data-theme="dark"] .nav-icon-light { display:none; }
[data-theme="dark"] .nav-icon-dark { display:block; mix-blend-mode:normal; image-rendering:pixelated; }
.service-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px; margin-top:32px; }
.service-grid article { border-top:1px solid var(--line); padding-block:24px 8px; }
.service-grid h3 { font-size:25px; line-height:1.3; letter-spacing:-.025em; margin-bottom:16px; }
.service-grid p { max-width:60ch; font-size:14px; line-height:1.8; color:var(--muted); margin-bottom:20px; }
.service-grid .text-link { display:inline-block; }
/* Cube artwork uses matched viewports and theme blending. */
[data-light-art][data-illustration="lab-cube"] { mix-blend-mode:darken; }
.arcade-art[data-illustration="lab-cube"] { mix-blend-mode:lighten; }
#data-collection,#workflow-extraction,.service-grid article { scroll-margin-top:160px; }
@media(min-width:801px) { .entity-grid { grid-template-columns:repeat(6,minmax(0,1fr)); } }
@media(min-width:641px) and (max-width:1100px) {
 .nav-panel { width:680px; }
}
@media(max-width:640px) {
 #navigation { max-height:calc(100dvh - 90px); overflow-y:auto; overscroll-behavior:contain; }
 .nav-group { width:100%; border-bottom:1px solid var(--line); }
 .nav-group>summary { padding-block:14px; font-size:14px; }
 .nav-panel { position:static; width:auto; max-width:none; grid-template-columns:minmax(0,1fr); padding:4px 0 12px; border:0; border-radius:0; box-shadow:none; background:transparent; }
 .nav-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); padding:4px 0 12px; gap:5px; }
 .nav-option { height:100%; padding:12px; font-size:13px; border:1px solid var(--line); }
 .nav-details { padding:18px 12px 8px; border-inline-start:0; border-top:1px solid var(--line); }
 .nav-illustration { width:80px; height:60px; }
 .nav-preview h3 { font-size:21px; margin-top:12px; }
 [data-theme="dark"] .nav-panel { box-shadow:none; }
 .nav-panel>a { padding:11px 12px; }
 .service-grid { grid-template-columns:minmax(0,1fr); gap:12px; }
 .service-grid h3 { font-size:23px; }
}
