/* Windows Visual Atlas / field-notebook skin. All functionality stays in atlas.js. */
/* Grid + hatching drawn by CSS. Native screenshot pixels are deliberately untouched. */
:root{
  color-scheme:light;
  --paper:#faf8ef;--paper-warm:#fffdf8;--ink:#22262d;--ink-soft:#3c4b54;
  --grid:#d8d3c5;--grid-fine:#eae6db;--frame:#51565b;
  --yellow:#f7de42;--yellow-shadow:#be9836;
  --blue:#a8d9f5;--blue-ink:#184f85;--pink:#ffc4e1;--green:#b6efc5;
  --violet:#e1d4f4;--coral:#ffc8b0;--white:#fffdf7;
  --round:10px;--tap:46px;
  --paper-grid:linear-gradient(to right,var(--grid-fine) 1px,transparent 1px),
    linear-gradient(to bottom,var(--grid-fine) 1px,transparent 1px),
    linear-gradient(to right,var(--grid) 1px,transparent 1px),
    linear-gradient(to bottom,var(--grid) 1px,transparent 1px);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font:15px/1.42 system-ui,"Segoe UI",Arial,sans-serif;color:var(--ink);
 background-color:var(--paper);background-image:var(--paper-grid);background-size:8px 8px,8px 8px,40px 40px,40px 40px}
button,input,select{font:inherit;color:inherit}
button,input,select,a{touch-action:manipulation}
button,.source-link{min-height:var(--tap);border:1.5px solid var(--ink);border-radius:7px;background:var(--white);padding:10px 12px;cursor:pointer}
button:disabled{opacity:.38;cursor:not-allowed}
button:hover:not(:disabled),a:hover{filter:brightness(.96)}
:focus-visible{outline:3px solid #156bbc;outline-offset:3px}
a{color:var(--blue-ink)}
button.primary,.primary{background:var(--yellow);font-weight:850;box-shadow:2px 3px 0 var(--yellow-shadow)}
.skip{position:absolute;top:-80px;left:8px;padding:11px;background:var(--yellow);z-index:30}.skip:focus{top:5px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.sheet{max-width:1700px;margin:0 auto;min-height:100vh;border-inline:1px solid #b7b4ad80}
.masthead{position:relative;min-height:135px;display:flex;align-items:center;
 padding:16px 16px 14px;overflow:hidden;border-bottom:2px solid var(--ink);
 background:linear-gradient(180deg,#ffffffa3,#ffffff16)}
.identity{position:relative;z-index:1;max-width:75%;min-width:0}
.drawing-kicker{font-size:.63rem;font-weight:800;letter-spacing:.115em;color:var(--ink-soft);margin:0 0 5px}
.reg-mark{display:none}
.logo-line{line-height:.95}
.uniracers-wordmark{display:inline-block;font-style:italic;font-weight:1000;font-stretch:condensed;
 font-family:"Arial Black",Impact,system-ui,sans-serif;letter-spacing:-.075em;
 font-size:clamp(1.85rem,9vw,4.8rem);
 background:linear-gradient(98deg,#3f57b3 5%,#6398f3 20%,#e6adf4 37%,#ffea84 56%,#fd8e4f 79%,#e85439 96%);
 -webkit-background-clip:text;background-clip:text;color:transparent;
 -webkit-text-stroke:.8px #28334e;filter:drop-shadow(1px 2px 0 #1b2137)}
.masthead h1{font-family:"Arial Black",Impact,system-ui,sans-serif;text-transform:uppercase;
 font-size:clamp(1.08rem,4.7vw,2rem);font-weight:950;letter-spacing:.035em;
 line-height:1;margin:4px 0 0;
 text-shadow:1.4px 2px 0 #b8b8af}
.strapline{margin:7px 0 0;font-size:.7rem;letter-spacing:.015em}
.strapline em{font-style:normal;color:var(--blue-ink);font-weight:800}
.tube-hero{position:absolute;right:2px;top:9px;bottom:auto;width:168px;height:auto;opacity:.97}
.header-note{display:none}
.workbench{padding:12px 11px 26px;min-width:0}
.toolbar{display:flex;flex-direction:column;gap:10px;border-bottom:1.5px dashed #777c83;
 padding-bottom:14px}
.search{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1}
.field-label{font-size:.70rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase}
.search input,.filter-grid select,.sort-choice select{appearance:auto;border:1.5px solid var(--ink);
 background-color:#fffef9e8;border-radius:7px;min-height:var(--tap);padding:9px 11px;width:100%}
.search input{font-size:1rem;padding-left:13px;background:#fffef9e8}
.filter-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.filter-grid label{display:flex;flex-direction:column;gap:4px;min-width:0}
.filter-grid select{font-size:.84rem;padding:6px;min-width:0}
.toolstrip{display:flex;justify-content:space-between;align-items:end;gap:8px;margin:13px 0 14px;flex-wrap:wrap}
.toolstrip-info{display:flex;flex-direction:column;min-width:0;gap:2px}
#result-count{font-size:1rem;font-weight:900;letter-spacing:.03em}
.count-note{color:var(--ink-soft);font-size:.71rem}
.toolbar-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}
.text-button{border:0;background:transparent;min-height:44px;padding:8px;font-size:.77rem;text-decoration:underline;text-underline-offset:3px}
.sort-choice select{font-size:.82rem;width:107px;padding:5px;min-height:44px}
.view-toggle{display:flex;gap:3px}
.view-toggle button{font-size:1.25rem;font-weight:900;padding:4px 12px;min-width:44px;min-height:44px}
.toggle.active{background:var(--blue);box-shadow:2px 2px 0 #748ea1}
.gallery{display:grid;gap:11px;align-content:start;min-height:32vh}
.tile{position:relative;display:grid;grid-template-columns:minmax(0,40%) minmax(0,1fr);
 align-items:stretch;gap:0;min-width:0;isolation:isolate;
 border:1.5px solid #444a50;border-radius:8px;background:#fffdf8e3;box-shadow:2px 3px 0 #777e8444}
.tile::after{content:"";position:absolute;right:6px;bottom:6px;width:8px;height:8px;
 border-right:1px solid #757b80;border-bottom:1px solid #757b80;pointer-events:none;opacity:.55}
.preview{display:block;position:relative;min-width:0;min-height:112px;height:100%;
 border:0;border-radius:6px 0 0 6px;border-right:1px solid #555b61;
 padding:0;overflow:hidden;background:#d9e7e6;cursor:zoom-in}
.preview img{display:block;width:100%;height:100%;min-height:112px;object-fit:cover}
.tile[data-status="captured"] .preview img{object-fit:contain;background:#1c2731}
.tile[data-status="planned"] .preview img{filter:grayscale(.65) contrast(.9)}
.status-ribbon{display:inline-flex;align-items:center;font-size:.68rem;line-height:1.1;
 border:1px solid var(--ink);border-radius:3px 7px 3px 3px;
 background:var(--violet);padding:5px 7px;font-weight:900;text-transform:uppercase;letter-spacing:.02em}
.preview .status-ribbon{position:absolute;top:3px;right:3px;max-width:95%;
 box-shadow:1px 2px 0 #3334;pointer-events:none}
.tile[data-status="captured"] .status-ribbon{background:var(--green)}
.tile[data-status="capture_pending"] .status-ribbon{background:var(--yellow)}
.tile[data-status="capture_failed"] .status-ribbon{background:var(--coral)}
.tile[data-status="planned"] .status-ribbon{background:var(--violet)}
.tile-description{display:flex;flex-direction:column;padding:9px 8px 9px 10px;gap:5px;min-width:0}
.tile-top{display:flex;align-items:start;justify-content:space-between;gap:4px}
.tile-id{font-size:.79rem;font-weight:1000;color:#272d39;line-height:1.1;overflow-wrap:anywhere}
.tile h2{font-size:.90rem;font-weight:900;line-height:1.14;margin:0;
 font-family:system-ui,"Segoe UI",sans-serif}
.tile h2 button{border:0;background:transparent;text-align:left;padding:0;min-height:0;font-weight:inherit;font-size:inherit}
.tile h2 button:hover{text-decoration:underline}
.tile-state{font-size:.76rem;line-height:1.18;color:var(--ink-soft);margin:0;display:-webkit-box;
 -webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.tag-group{display:flex;align-items:center;flex-wrap:wrap;gap:3px}
.tag{border:1px solid #454c56;font-size:.66rem;line-height:1.15;font-weight:750;
 border-radius:6px;padding:3px 6px;background:var(--blue)}
.tag.family{background:var(--pink)}.tag.derived{background:var(--violet)}
.tag.qa{background:var(--coral)}
.tile-foot{margin-top:auto;display:flex;align-items:center;gap:5px;flex-wrap:wrap}
.tile-foot button,.tile-foot a{font-size:.72rem;padding:7px 8px;min-height:40px;
 border:1px solid #626a70;border-radius:5px;background:var(--white);text-decoration:none}
.tile-foot .copy-small{background:var(--yellow);font-weight:900}
.card-select{width:44px;height:44px;min-width:44px;min-height:44px;display:flex;align-items:center;
 justify-content:center;cursor:pointer;margin:-6px -7px 0 0}
.card-select input{accent-color:var(--blue-ink);height:20px;width:20px;pointer-events:none}
.evidence-line{margin-top:2px;color:var(--ink-soft);font-size:.65rem;font-weight:800;text-transform:uppercase;letter-spacing:.01em}
.gallery.grid-view{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.grid-view .tile{grid-template-columns:minmax(0,1fr);grid-template-rows:auto 1fr}
.grid-view .preview{aspect-ratio:16/10;height:auto;min-height:88px;border:0;border-bottom:1px solid #555b61;border-radius:6px 6px 0 0}
.grid-view .preview img{height:100%;min-height:88px}
.grid-view .tile-description{padding:8px;gap:5px}
.grid-view .tile-state{display:none}
.grid-view .tile h2{font-size:.79rem}
.grid-view .tile-id{font-size:.71rem}
.grid-view .tag{font-size:.61rem}
.grid-view .tile-foot button{padding:6px;min-height:38px}
.loading{grid-column:1/-1;max-width:700px;color:var(--ink-soft)}
.footnote{padding:16px 14px 22px;border-top:2px solid var(--ink);font-size:.76rem;color:var(--ink-soft);
 background:#fffdf8a6}.footnote strong{display:block;color:var(--ink);letter-spacing:.1em;font-size:.74rem}
.selection-bar[hidden],a[hidden]{display:none!important}
.selection-bar{position:fixed;z-index:20;bottom:0;left:0;right:0;display:flex;
 align-items:center;justify-content:space-between;gap:8px;padding:9px max(12px,env(safe-area-inset-right)) calc(9px + env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));
 border-top:2px solid var(--ink);background:var(--paper);box-shadow:0 -9px 24px #151a2180}
.selection-bar span{font-size:.82rem;font-weight:850}
.selection-bar .primary{font-size:.85rem;min-width:0}
body:has(.selection-bar:not([hidden])) .footnote{padding-bottom:94px}
/* Inspection sheet. The dialog is a real native modal and remains keyboard addressable. */
dialog{border:2px solid var(--ink);padding:0;background:var(--paper);color:var(--ink);
 background-image:var(--paper-grid);background-size:8px 8px,8px 8px,40px 40px,40px 40px;
 width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;margin:0;box-shadow:0 20px 75px #0007}
dialog::backdrop{background:#101922ce}
.detail-top{display:flex;align-items:center;justify-content:space-between;gap:8px;
 min-height:61px;position:sticky;top:0;z-index:4;background:var(--paper);padding:8px 12px;
 border-bottom:2px solid var(--ink)}
.detail-top .back-button{min-height:44px;background:var(--yellow);font-weight:850}
.detail-id{font-weight:900;font-size:.80rem;letter-spacing:.01em;overflow-wrap:anywhere}
.detail-number{font-size:.73rem;color:var(--ink-soft)}
.detail-layout{overflow:auto;height:calc(100dvh - 62px);display:grid;align-content:start;grid-template-columns:minmax(0,1fr)}
.detail-viewer{padding:12px 12px 0;min-width:0}
.detail-labels{display:flex;gap:8px;align-items:center;justify-content:space-between;margin-bottom:8px}
.evidence-pill{font-size:.74rem;font-weight:900;border:1px solid #444a50;background:var(--blue);
 border-radius:5px;padding:5px 9px}
.image-stage{width:100%;background:#25292f;display:flex;align-items:center;justify-content:center;
 overflow:auto;max-height:45dvh;min-height:168px;border:2px solid #222932;
 box-shadow:3px 3px 0 #484b5360}
.image-stage img{width:100%;height:auto;display:block;object-fit:contain}
.image-stage.native{justify-content:flex-start;align-items:flex-start}
.image-stage.native img{width:auto;max-width:none;height:auto}
.image-stage .placeholder{width:100%;position:relative;min-height:160px}
.image-stage .placeholder img{opacity:.85}
.image-stage .placeholder strong{display:block;position:absolute;bottom:0;left:0;right:0;
 text-align:center;background:#fbf8e9ef;color:#2e2c39;font-size:1rem;letter-spacing:.14em;
 font-weight:1000;padding:11px;border-top:2px solid var(--ink)}
.image-controls{display:flex;gap:7px;justify-content:space-between;margin-top:9px}
.image-controls button{font-size:.8rem;padding:8px;flex:1;min-width:0}
.detail-content{min-width:0;padding:12px 15px 32px}
.mini-caption{font-size:.66rem;font-weight:900;letter-spacing:.12em;color:var(--blue-ink)}
.detail-heading h2{font-family:"Arial Black",Impact,system-ui,sans-serif;
 font-weight:950;font-size:clamp(1.25rem,4vw,2rem);line-height:1.13;margin:5px 0}
.detail-heading p{font-size:.85rem;color:var(--ink-soft);margin:5px 0}
.provenance{border-left:4px solid var(--blue-ink);padding:9px 10px;
 background:#fffef7da;color:var(--ink-soft);font-size:.83rem}
.actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:13px 0}
.actions button,.actions a{display:flex;justify-content:center;align-items:center;
 text-align:center;text-decoration:none;min-width:0;font-size:.82rem;font-weight:850}
.actions .primary{grid-column:1/-1}
.feedback{min-height:1.15rem;font-size:.83rem;color:var(--blue-ink);margin:5px 0}
.metadata{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:8px 0 18px}
.metadata div{border:1px solid #73767b;background:#fffdf8cf;border-radius:6px;padding:8px;min-width:0}
.metadata span{display:block;color:var(--ink-soft);font-size:.65rem;text-transform:uppercase;font-weight:900}
.metadata strong{display:block;font-size:.79rem;overflow-wrap:anywhere}
.receipt{background:#fffdf8cb;border:1px solid #676a70;padding:10px;border-radius:6px}
.receipt summary{font-weight:850;min-height:38px;cursor:pointer}
.receipt pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:.69rem;margin:5px 0;
 max-height:25dvh;overflow:auto}
.hand-note{display:none}
@media(min-width:620px){
 .masthead{min-height:166px;padding:20px 28px}
 .identity{max-width:75%}.reg-mark{display:inline;margin-left:8px}
 .tube-hero{right:2vw;top:auto;bottom:0;width:290px}
 .workbench{padding:20px 24px 40px}
 .toolbar{gap:13px}
 .filter-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
 .gallery.list-view{grid-template-columns:repeat(2,minmax(0,1fr))}
 .gallery.grid-view{grid-template-columns:repeat(3,minmax(0,1fr))}
 .tile{grid-template-columns:42% minmax(0,1fr)}
 .selection-bar{justify-content:center}
 .detail-top{padding:8px 20px}
 .image-stage{max-height:55dvh}
 .actions .primary{grid-column:auto}
 .actions{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(min-width:1000px){
 .masthead{min-height:189px}
 .identity{max-width:61%}
 .header-note{display:block;position:absolute;right:340px;top:18px;transform:rotate(7deg);
 font-size:.74rem;line-height:1.3;font-weight:850;color:#38638c;font-style:italic}
 .tube-hero{right:22px;width:340px}
 .toolbar{flex-direction:row;align-items:end}
 .search{flex:1.5}
 .filter-grid{flex:3}
 .gallery.list-view{grid-template-columns:repeat(2,minmax(0,1fr))}
 .gallery.grid-view{grid-template-columns:repeat(4,minmax(0,1fr))}
 .grid-view .tile h2{font-size:1rem}
 .detail-top{padding:10px 25px}
 dialog{width:min(1330px,95vw);max-width:95vw;height:min(920px,96dvh);max-height:96dvh;
 border-radius:12px;margin:auto}
 .detail-layout{height:calc(min(920px,96dvh) - 63px);grid-template-columns:minmax(0,1.55fr) minmax(320px,1fr);
 overflow:auto;gap:0}
 .detail-viewer{padding:18px;align-self:start}
 .detail-content{padding:16px 18px;border-left:2px solid #94968b}
 .image-stage{max-height:60dvh}
 .hand-note{display:block;font-size:.77rem;font-style:italic;font-weight:800;color:var(--blue-ink);
 transform:rotate(-6deg);margin:17px 0}
}
/* Preserve the full wheel-on-tube drawing, or show no drawing at all. */
@media(max-width:379px){.tube-hero{display:none}}
@media(max-width:350px){
 .workbench{padding-inline:7px}
 .tile-description{padding:7px}
 .tile-id{font-size:.70rem}
 .tile h2{font-size:.81rem}
 .gallery.grid-view{grid-template-columns:repeat(2,minmax(0,1fr))}
 .tube-hero{right:-142px}
 .actions button,.actions a{font-size:.74rem}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Related 3D research lives inside this exact site build, not another Pages root. */
.laboratory-link{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:9px 12px;
  border-bottom:1.5px dashed var(--frame);background:#fff9dc}
.laboratory-link a{display:inline-flex;min-height:44px;align-items:center;font-weight:850}
.laboratory-link span{font-size:12px;color:var(--ink-soft)}
