.gn-lab { padding-top:8.5rem; padding-bottom:3rem; }
.gn-intro { margin-bottom:2.5rem; }
.gn-intro > div { display:flex; align-items:end; justify-content:space-between; gap:2rem; }
.gn-intro h1 { margin:0; font:normal clamp(3rem,6vw,5.8rem)/1 var(--font-display); letter-spacing:-.05em; }
.gn-intro h1 em { color:var(--accent); }
.gn-intro nav { display:flex; flex-wrap:wrap; gap:.5rem; }
.gn-intro nav a { min-height:44px; display:flex; align-items:center; padding:.65rem 1rem; border:1px solid var(--line); border-radius:6px; text-decoration:none; font-size:.8rem; }
.gn-intro nav [aria-current] { background:var(--forest); color:white; }
.gn-intro > p:last-child { margin:1.25rem 0 0; font-size:.85rem; color:var(--muted); }
.gn-workspace { display:grid; grid-template-columns:1fr 1fr; gap:2.5rem; align-items:start; }
.gn-navigation { min-width:0; }
.gn-overline { display:flex; justify-content:space-between; gap:1rem; font-size:.65rem; text-transform:uppercase; letter-spacing:.08em; padding-bottom:1rem; }
.gn-categories { display:grid; }
.gn-category { position:relative; display:flex; align-items:center; gap:.8rem; min-width:0; min-height:90px; border-top:1px solid var(--line); color:var(--forest); text-decoration:none; overflow:hidden; }
.gn-number { font-size:.7rem; opacity:.55; }
.gn-label { font:normal clamp(1.4rem,2.5vw,2.3rem)/1.08 var(--font-display); letter-spacing:-.025em; }
.gn-count { align-self:flex-start; padding-top:1.3rem; font-size:.7rem; }
.gn-arrow { margin-left:auto; font-size:1.6rem; padding-right:.6rem; }
.gn-category[aria-current] { color:var(--accent); }
.gn-a .gn-category[aria-current] .gn-label { font-style:italic; }
.gn-a .gn-cover { display:none; }
.gn-flow { position:absolute; inset:0; display:flex; align-items:center; background:var(--forest); color:var(--cream); transform:translateY(101%); pointer-events:none; }
.gn-flow-track { display:flex; width:max-content; }
.gn-flow-track > span { display:flex; align-items:center; gap:1.4rem; padding-right:1.4rem; white-space:nowrap; font:italic 2.5rem var(--font-display); }
.gn-flow img { width:80px; height:48px; object-fit:cover; border-radius:30px; }
.gn-techniques { margin-top:1rem; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.gn-techniques summary { display:flex; justify-content:space-between; align-items:center; min-height:56px; cursor:pointer; font-size:.9rem; list-style:none; }
.gn-techniques summary::-webkit-details-marker { display:none; }
.gn-techniques summary span { font-size:.65rem; color:var(--muted); }
.gn-techniques nav { display:grid; grid-template-columns:1fr 1fr; gap:.5rem; padding-bottom:1rem; }
.gn-techniques a { display:flex; justify-content:space-between; align-items:center; gap:.6rem; min-height:48px; padding:.5rem .7rem; border:1px solid var(--line); border-radius:6px; font-size:.75rem; text-decoration:none; }
.gn-techniques a[aria-current] { background:var(--forest); color:white; }
.gn-techniques a span { flex-shrink:0; }
.gn-results { min-width:0; border-radius:16px; padding:1.5rem; background:#e7e5dc; }
.gn-result-heading { display:flex; justify-content:space-between; align-items:center; gap:1rem; }
.gn-result-heading h2 { font:normal 2.25rem/1.1 var(--font-display); margin:0; }
.gn-result-heading .eyebrow { font-size:.6rem; margin:0 0 .5rem; }
.gn-result-heading > span { font:italic 3.5rem/1 var(--font-display); color:#9b4a2d; }
.gn-preview-note { font-size:.7rem; color:var(--muted); margin:1rem 0; }
.gn-samples { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem .7rem; }
.gn-samples article { min-width:0; }
.gn-samples a { position:relative; display:block; border-radius:8px; overflow:hidden; background:white; }
.gn-samples img, .gn-samples video { display:block; width:100%; height:auto; aspect-ratio:1; object-fit:contain; padding:.4rem; }
.gn-samples a > span { position:absolute; right:.3rem; bottom:.3rem; width:24px; height:24px; display:grid; place-items:center; background:var(--forest); color:white; border-radius:50%; }
.gn-samples h3 { margin:.5rem 0 0; font:500 .72rem/1.4 var(--font-sans); }
.gn-view-all { display:flex; justify-content:space-between; align-items:center; min-height:52px; padding:.8rem 1rem; margin-top:1.5rem; background:var(--forest); color:white; text-decoration:none; border-radius:8px; font-size:.85rem; }
.gn-document-note { padding:.75rem; background:var(--cream); font-size:.8rem; }
.gn-notes { margin-top:2rem; padding-top:1rem; border-top:1px solid var(--line); font-size:.8rem; color:var(--muted); }
.gn-b .gn-workspace { grid-template-columns:1fr; gap:1.5rem; }
.gn-b .gn-navigation { padding:1.5rem; border-radius:20px; background:var(--forest); color:var(--cream); }
.gn-b .gn-categories { grid-template-columns:repeat(3,minmax(0,1fr)); gap:.8rem; }
.gn-b .gn-category { display:grid; grid-template-columns:1fr auto; align-content:end; gap:.35rem; min-height:210px; padding:1rem; border:1px solid #ffffff30; border-radius:12px; color:white; background:#223d33; isolation:isolate; }
.gn-b .gn-category::before { content:''; position:absolute; inset:0; pointer-events:none; z-index:-1; background:radial-gradient(220px circle at var(--mouse-x,50%) var(--mouse-y,50%),#e8a08360,transparent 75%); }
.gn-b .gn-cover { position:absolute; right:1rem; top:.8rem; width:44%; height:110px; object-fit:cover; border-radius:8px; transform:rotate(-5deg); z-index:-1; }
.gn-b .gn-number { position:absolute; left:1rem; top:1rem; }
.gn-b .gn-label { grid-column:1; font-size:1.7rem; padding-top:112px; }
.gn-b .gn-count { grid-column:1; padding:0; font:400 .7rem var(--font-sans); }
.gn-b .gn-count::after { content:' items'; }
.gn-b .gn-arrow { grid-column:2; grid-row:1/3; align-self:end; padding:0; }
.gn-b .gn-category[aria-current] { background:#f0ddc2; color:var(--forest); border-color:#f0ddc2; }
.gn-b .gn-category[aria-current] .gn-cover { transform:rotate(0deg); }
.gn-b .gn-techniques { border-color:#ffffff30; }
.gn-b .gn-techniques summary span { color:#cad1c9; }
.gn-b .gn-techniques a { border-color:#ffffff40; }
.gn-b .gn-techniques a[aria-current] { background:var(--cream); color:var(--forest); }
.gn-b .gn-samples { grid-template-columns:repeat(6,minmax(0,1fr)); }
.gn-category:focus-visible { outline:3px solid var(--accent); outline-offset:3px; }
@media(max-width:760px) {
 .gn-lab { padding-top:6.5rem; }
 .gn-intro { margin-bottom:1.5rem; }
 .gn-intro > div { align-items:start; flex-direction:column; gap:1rem; }
 .gn-intro h1 { font-size:3rem; }
 .gn-intro nav { width:100%; }
 .gn-intro nav a { flex:1; justify-content:center; font-size:.75rem; padding:.6rem; }
 .gn-intro > p:last-child { font-size:.8rem; }
 .gn-workspace { grid-template-columns:1fr; gap:1.25rem; }
 .gn-overline { font-size:.58rem; }
 .gn-category { min-height:62px; gap:.65rem; }
 .gn-label { font-size:1.55rem; }
 .gn-count { padding-top:.7rem; }
 .gn-techniques nav { grid-template-columns:1fr; }
 .gn-results { padding:1rem; }
 .gn-samples, .gn-b .gn-samples { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .gn-result-heading h2 { font-size:1.9rem; }
 .gn-result-heading > span { font-size:2.8rem; }
 .gn-b .gn-navigation { padding:1rem; }
 .gn-b .gn-categories { grid-template-columns:repeat(2,minmax(0,1fr)); gap:.6rem; }
 .gn-b .gn-category { min-height:174px; padding:.75rem; }
 .gn-b .gn-cover { width:55%; height:70px; top:.65rem; right:.65rem; }
 .gn-b .gn-number { top:.7rem; left:.7rem; font-size:.6rem; }
 .gn-b .gn-label { font-size:1.1rem; padding-top:80px; }
 .gn-b .gn-arrow { font-size:1.2rem; }
}

.gn-jump { display:flex; align-items:center; justify-content:space-between; min-height:44px; padding:.6rem 0; font-size:.8rem; text-underline-offset:4px; }
.gn-results { scroll-margin-top:7rem; }
