/* Small glass surfaces only: static highlights, no displacement filters or
   pointer-driven blur. The page and its portal keep their existing paint path. */
.side-nav,.contact-dock,.portal-controls{
 border:1px solid #ffffff2e;
 background:linear-gradient(145deg,#ffffff1f,#ffffff03 45%,#ffffff0c),#101010b8;
 box-shadow:inset 0 1px 0 #ffffff38,inset 0 -1px 0 #ffffff12,0 5px 18px #0005;
 -webkit-backdrop-filter:blur(8px) saturate(0);
 backdrop-filter:blur(8px) saturate(0);
}
.side-nav:after,.contact-dock:after,.portal-controls:after{
 content:'';position:absolute;inset:1px;border-radius:inherit;pointer-events:none;
 border:1px solid transparent;border-top-color:#ffffff12;border-bottom-color:#ffffff08;
 background:linear-gradient(125deg,#ffffff0b,transparent 32%,transparent 72%,#ffffff08);
}
.side-nav a,.contact-dock>a,.contact-dock>button{color:#c5c5c5}
.side-nav a:hover,.side-nav a[aria-current],.contact-dock>:hover{
 background:linear-gradient(150deg,#ffffff29,#ffffff0b);color:#fff;
 box-shadow:inset 0 1px 0 #ffffff2e,inset 0 -1px 0 #ffffff0c;
}
.side-nav a:focus-visible,.contact-dock>:focus-visible,.portal-toggle:focus-visible,.portal-mode:focus-visible{
 outline:2px solid #fff;outline-offset:4px;
}
.nav-label,[data-tooltip]:before,.copy-status{
 border-color:#ffffff30;background:linear-gradient(135deg,#ffffff16,#ffffff04),#171717f2;
 box-shadow:inset 0 1px 0 #ffffff24,0 8px 22px #0005;color:#eee;
}
.portal-controls{
 position:fixed;left:20px;bottom:25px;z-index:50;display:flex;align-items:center;gap:3px;
 padding:6px;border-radius:32px;
}
.portal-controls[hidden]{display:none}
.portal-controls{transition:opacity .22s ease,visibility .22s ease}
.portal-controls.is-context-hidden{opacity:0;visibility:hidden;pointer-events:none}
@media(prefers-reduced-motion:reduce){.portal-controls{transition:none}}
.portal-mode,.portal-toggle{position:relative;width:42px;height:42px;display:grid;place-items:center;border:0;border-radius:50%;padding:0;background:transparent;color:#888;cursor:pointer;touch-action:manipulation}
.portal-mode:hover,.portal-toggle:hover{background:#ffffff0d;color:#eee}
.portal-mode[aria-pressed=true]{color:#fff;background:linear-gradient(150deg,#ffffff29,#ffffff0b);box-shadow:inset 0 1px 0 #ffffff2e,inset 0 -1px 0 #ffffff0c}
.portal-controls[data-enabled=false] .portal-mode{opacity:.5}
.portal-control-divider{width:1px;height:19px;background:linear-gradient(transparent,#ffffff2d,transparent);margin:0 2px}
.portal-pixels-icon{width:26px;height:26px;fill:currentColor}
.portal-toggle-icon{width:25px;height:25px;flex:none;fill:none;stroke:currentColor;stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round;transition:opacity .2s}
.portal-toggle-track{width:30px;height:18px;flex:none;border-radius:12px;background:#ffffff1d;border:1px solid #ffffff22;box-shadow:inset 0 1px 3px #0004;position:relative;transition:background .2s}
.portal-toggle-track>span{position:absolute;left:2px;top:2px;width:12px;height:12px;border-radius:50%;background:linear-gradient(#fff,#bcbcbc);box-shadow:0 1px 3px #0006,inset 0 1px 0 #fff;transform:translateX(12px);transition:transform .22s,opacity .22s}
.portal-toggle[aria-checked=false] .portal-toggle-track{background:#0003}
.portal-toggle[aria-checked=false] .portal-toggle-track>span{transform:none;opacity:.6}
.portal-controls [data-tooltip]:before{left:0;bottom:54px;white-space:nowrap;font-size:13px}
body[data-portal-mode=off] .portal-lit,body[data-portal-mode=off] .portal-global-outline,body[data-portal-mode=off] .hold-cursor{display:none!important}
/* Reading-area bars use the same specular edges with zero backdrop sampling. */
.case-filters,.process-mode,.gallery-controls{
 width:fit-content;max-width:calc(100% - 24px);margin-left:auto;margin-right:auto;
 padding:6px;border:1px solid #ffffff1c;border-radius:32px;
 background:linear-gradient(160deg,#ffffff0e,#ffffff02 65%),#101319c9;
 box-shadow:inset 0 1px 0 #ffffff1c,inset 0 -1px 0 #ffffff07,0 5px 18px #0002;
}
.case-filters,.process-mode{gap:4px}
.case-filters button,.process-mode button{border-color:transparent}
.case-filters button[aria-pressed=true]{box-shadow:inset 0 1px 0 #ffffff2b,0 2px 10px rgba(var(--filter-rgb),.12)}
.process-mode button[aria-pressed=true]{box-shadow:inset 0 1px 0 #ffffff2b}
.gallery-controls{gap:24px}
.gallery-controls .round-button{background:linear-gradient(150deg,#ffffff14,#ffffff03);border-color:#ffffff24;box-shadow:inset 0 1px 0 #ffffff22}
@media(max-width:760px){
 .portal-controls{left:12px;bottom:78px;padding:5px}.portal-mode,.portal-toggle{width:38px;height:38px}
 .portal-toggle-icon{width:23px;height:23px}
 .case-filters,.process-mode{gap:3px;padding:5px;border-radius:29px}
 .gallery-controls{gap:20px}
}
@media(hover:none) and (pointer:coarse){
 .portal-controls{display:none!important}
 .side-nav,.contact-dock{-webkit-backdrop-filter:none;backdrop-filter:none;background:linear-gradient(145deg,#ffffff1d,#ffffff04),#171717f0}
}
@media(prefers-reduced-motion:reduce){.portal-toggle-icon,.portal-toggle-track,.portal-toggle-track>span{transition:none}}
@media(prefers-reduced-transparency:reduce){
 .side-nav,.contact-dock,.portal-controls{-webkit-backdrop-filter:none;backdrop-filter:none;background:#202020}
}

/* A disabled portal keeps its user's preference and explains the automatic
   decision. Context hiding still applies to the whole panel. */
.portal-controls[data-available=false] .portal-mode,.portal-controls[data-available=false] .portal-toggle{color:#986769;border-color:rgba(154,81,88,.25);background:rgba(62,29,33,.22);cursor:help;opacity:.65}
.portal-controls[data-available=false] .portal-mode:after,.portal-controls[data-available=false] .portal-toggle:after{content:"";position:absolute;left:9px;right:9px;top:50%;height:1px;background:currentColor;transform:rotate(-45deg);pointer-events:none}
body[data-graphics-level="1"] .side-nav,body[data-graphics-level="1"] .contact-dock,body[data-graphics-level="1"] .portal-controls,body[data-graphics-level="3"] .side-nav,body[data-graphics-level="3"] .contact-dock,body[data-graphics-level="3"] .portal-controls{backdrop-filter:none;-webkit-backdrop-filter:none}
body[data-graphics-level="1"] main *,body[data-graphics-level="1"] footer *{animation:none!important;transition-duration:0s!important;scroll-behavior:auto!important}
