/* White museum canvas, floating cutouts and cartographic category contours. */
:root{--paper:#fff;--canvas:#fff;--ink:#242424;--muted:#818181;--line:#e8e8e8;--sidebar:218px;--green:#555}
body,.masthead,.filters,.explorer,#viewport,#gallery,#detail,.detail-topbar,dialog{background:#fff}
.masthead{height:79px;padding:0 28px}.wordmark{font-size:46px}.header-note{margin-left:34px}.app{min-height:calc(100vh - 79px)}.filters{padding:24px 18px;gap:18px}.explorer{padding:0 26px}
.intro{padding:23px 0 21px;align-items:center}.intro h1{font-size:32px;letter-spacing:-1.4px;margin-top:10px;line-height:1.1}.intro h1 br{display:none}.intro>p{font-size:11px;line-height:1.6}.eyebrow{font-size:8px;letter-spacing:1.7px}.intro .eyebrow span{margin-left:12px}
.category-button{color:#707070}.category-button.active{background:#f3f3f3}.filter-section select{background:#fff}.view-switch{background:#f3f3f3;border:1px solid #eee}.view-switch button.active{box-shadow:none;background:#fff}.view-switch button{color:#777}.pilot-label{border-color:#e4e4e4}
#viewport{background:#fff;background-image:none;border:0;border-top:1px solid #eee;border-bottom:1px solid #eee;border-radius:0;height:calc(100dvh - 290px);min-height:650px;max-height:none}
#regions{position:absolute;overflow:visible;width:1px;height:1px;pointer-events:none;transition:opacity .2s}#regions.hidden-regions{opacity:0}.region-outer{fill:#f7f7f6;stroke:#ededec;stroke-width:1.2;vector-effect:non-scaling-stroke}.region-middle{fill:#f0f0ef}.region-inner{fill:#e9eae8;opacity:.72}
.cluster-label{font-size:14px;letter-spacing:2.4px;color:#949690;font-weight:500;transform:translateX(-50%);padding:5px 8px;background:#fff;pointer-events:none;z-index:1}.cluster-label span{font-size:10px;margin-left:8px;color:#aaa}
.object-node{width:120px;text-align:center;z-index:2;border-radius:0}.node-image{height:107px;padding:4px;background:transparent!important;border:0!important;border-radius:0;box-shadow:none!important;transition:transform .18s}.node-image img{mix-blend-mode:normal;filter:drop-shadow(0 2px 1px #0000000a);transition:transform .18s}.node-number{display:none}
.object-node .node-name{font-size:var(--label-size,12px);font-weight:500;line-height:1.15;max-width:150px;margin:4px -15px 0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-shadow:0 1px 3px #fff,0 -1px 3px #fff}
.object-node .node-year{font-size:var(--year-size,10px);color:#999;line-height:1.5;display:block}.object-node:hover .node-image,.object-node:focus-visible .node-image{transform:translateY(-4px) scale(1.09)}.object-node.selected .node-image{transform:scale(1.08)}.object-node.dim{opacity:.17;filter:grayscale(.6)}
.edge{stroke:#9b9e99;stroke-width:.75;opacity:.58}.edge.shared_designer{stroke:#b4775a;stroke-width:1}.edge.shared_organization{stroke:#8a9ba5;stroke-dasharray:3 4;stroke-width:.9}.edge.active{stroke:var(--orange);stroke-width:1.6;opacity:.95}.edge.dim{opacity:.065}.edge:hover{stroke-width:2;opacity:1}
.canvas-topline{top:15px;left:0;right:0}.canvas-topline>span{color:#90928c;background:#fff;font-size:8px}.canvas-discovery{display:flex;gap:6px}.canvas-topline button{border-color:#e5e5e5;background:#fff;border-radius:20px;font-size:9px;padding:8px 11px}.canvas-topline button[aria-pressed=true]{background:#f3f3f3;color:#333}
.canvas-bottom{left:0;right:0;bottom:13px}.canvas-hint{color:#92958f;background:#fff}.zoom-controls{border-color:#e8e8e8;box-shadow:none;border-radius:25px;padding:2px}.zoom-controls button{height:29px}.collection-footer{color:#969996}
#gallery{gap:28px 22px}.gallery-photo{background:#fff;border:0;border-bottom:1px solid #eee;border-radius:0;padding:22px}.gallery-photo img,.detail-photo img{mix-blend-mode:normal}.gallery-tag{color:#aaa}.detail-photo{background:#fff;border-radius:0}.related-item img{background:transparent!important;mix-blend-mode:normal!important}.close-button{background:#f3f3f3}.description,.image-caption,.object-meta dt,.meta-role,.relation-note,dialog p{color:#777}.thumbnail-missing{height:90px;display:grid;place-items:center;font-size:10px;color:#aaa}
.gallery-card p{display:flex;gap:10px;justify-content:space-between;line-height:1.5}.gallery-card p span{flex-shrink:0}
/* Three shallow planes; the camera itself stays flat and labels stay upright. */
#nodes,#cluster-labels{position:absolute;left:0;top:0;width:1px;height:1px;overflow:visible}
#regions{z-index:0}#edges{z-index:1}#cluster-labels{z-index:2;pointer-events:none}#nodes{z-index:3}
.depth-enabled #regions{filter:drop-shadow(0 3px 4px #24242408)}
.depth-enabled .node-image img{filter:drop-shadow(0 7px 5px #2424241a)}
#viewport.dragging.depth-enabled #regions,#viewport.dragging.depth-enabled #edges,#viewport.dragging.depth-enabled #nodes,#viewport.dragging.depth-enabled #cluster-labels{will-change:transform}
#depth-toggle:before{content:'◇';display:inline-block;margin-right:5px;font-size:12px;line-height:8px}
#depth-toggle[aria-pressed=true]:before{color:var(--orange)}#depth-toggle:disabled{opacity:.45;cursor:default}
.canvas-discovery{flex-wrap:wrap;justify-content:flex-end}.canvas-topline{gap:12px}
@media(prefers-reduced-motion:reduce){.depth-enabled #regions,.depth-enabled .node-image img{filter:none}}
@media(min-width:1500px){:root{--sidebar:238px}.explorer{padding:0 36px}#viewport{height:calc(100dvh - 290px)}}
@media(max-width:1100px){:root{--sidebar:194px}.explorer{padding:0 20px}.intro h1{font-size:28px}.intro>p{font-size:10px}.header-note{margin-left:10px}}
@media(max-width:800px){.masthead{height:73px;padding:0 20px}.app{min-height:calc(100vh - 73px)}.app.filters-open .filters{top:73px;background:#fff}.intro{padding:22px 0 19px}.intro h1{font-size:30px}.intro>p{display:none}.canvas-topline>span{display:none}.canvas-discovery{width:100%;justify-content:flex-end}.canvas-topline button{padding:7px 9px;font-size:9px}#viewport{height:calc(100dvh - 252px);min-height:560px}.canvas-hint{max-width:145px}.result-summary b:last-child{display:inline}.gallery-photo{height:185px}.collection-footer>span:last-child{display:none}}
@media(max-width:480px){.masthead{padding:0 16px}.explorer{padding:0 15px}.intro h1{font-size:27px}#viewport{min-height:540px}.canvas-hint{font-size:8px}.canvas-discovery{gap:4px}.canvas-topline button{font-size:8px;padding:7px 8px}.view-toolbar{gap:6px}.view-switch button{padding:7px 6px}.result-summary{max-width:75px}.gallery-photo{height:170px}}

/* Chronological arrangement keeps the year ruler readable while panning. */
#year-axis{position:absolute;left:0;right:0;bottom:65px;height:44px;background:#fffffff5;z-index:5;pointer-events:none}
#year-axis svg{display:block;width:100%;height:44px;overflow:hidden}
#year-axis line{stroke:#d6d6d6;stroke-width:1}.axis-baseline{stroke:#b8b8b8!important}
#year-ticks text{font-size:10px;fill:#737373;text-anchor:middle;font-variant-numeric:tabular-nums}
#year-ticks .minor{stroke:#e2e2e2}#year-axis .axis-caption{font-size:7px;letter-spacing:1.2px;fill:#999}
#arrange:before{content:'↔';margin-right:5px}#arrange[aria-pressed=true]{color:var(--orange);border-color:#e5c2b4;background:#fff7f2}
#landscape-toggle:disabled{opacity:.4;cursor:default}.timeline-layout .object-node{cursor:ns-resize}
.timeline-layout .edge:not(.active):not(:hover){opacity:.3}.timeline-layout .edge.dim{opacity:.06}
@media(max-width:480px){.canvas-discovery{justify-content:flex-start}.timeline-layout .node-name{font-size:min(var(--label-size),38px)}.timeline-layout .node-year{font-size:min(var(--year-size),32px)}}

#year-guides{position:absolute;left:0;top:70px;width:100%;height:calc(100% - 179px);pointer-events:none;overflow:hidden;z-index:0}
#year-guides line{stroke:#ededed;stroke-width:1;stroke-dasharray:2 5}
#world{z-index:1}.canvas-topline,.canvas-bottom{z-index:6}

/* Connection semantics: editorial observations remain distinct from history. */
.line-key.visual,.edge.visual_similarity{border-color:#81978b;stroke:#81978b}
.line-key.function,.edge.shared_function{border-color:#8994ad;stroke:#8994ad}
.line-key.theme,.edge.shared_theme{border-color:#aa98af;stroke:#aa98af}
.line-key.movement,.edge.shared_movement{border-color:#a28b65;stroke:#a28b65}
.line-key.influence,.edge.influenced_by{border-color:#a77058;stroke:#a77058}
.edge.active,.edge:hover{stroke:var(--orange)}
.connections-filter label:has(input:disabled){opacity:.4;cursor:default}
.connection-help{font-size:10px;line-height:1.6;color:var(--muted);margin:14px 0 0}
