/* Keep the root canvas and full-width header continuous during mobile overscroll. */
html,body{overscroll-behavior-y:none;background:var(--paper)}
.masthead{left:0;right:0;padding-inline:var(--page-gutter);border-bottom:0}
.masthead:after{content:'';position:absolute;left:var(--page-gutter);right:var(--page-gutter);bottom:0;border-bottom:1px solid var(--line);pointer-events:none}
.viewer-bar{height:auto;min-height:52px;flex-wrap:wrap;gap:4px 16px}
.image-tools{gap:18px;flex-wrap:wrap;justify-content:flex-end}
#viewer-fullscreen{white-space:nowrap}
.page-scrubber{width:100%;border-top:1px solid var(--line);padding:12px 0 0;font-size:var(--label-size);letter-spacing:var(--label-tracking)}
.scrubber-meta{display:flex;justify-content:space-between;color:var(--muted);line-height:1.5}
#page-range{display:block;width:100%;height:32px;margin:0;appearance:none;-webkit-appearance:none;background:transparent;cursor:ew-resize;touch-action:pan-y;--progress:0%}
#page-range::-webkit-slider-runnable-track{height:2px;background:linear-gradient(to right,var(--accent) var(--progress),var(--line) var(--progress))}
#page-range::-moz-range-track{height:2px;background:var(--line)}
#page-range::-moz-range-progress{height:2px;background:var(--accent)}
#page-range::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:12px;height:12px;margin-top:-5px;background:var(--ink);border:2px solid var(--paper);border-radius:0}
#page-range::-moz-range-thumb{width:8px;height:8px;background:var(--ink);border:2px solid var(--paper);border-radius:0}
#page-range:focus-visible{outline:1px solid var(--accent);outline-offset:2px}
.page-nodes{display:flex;justify-content:space-between;gap:12px}
.page-nodes button{min-height:28px;font-size:inherit;color:var(--muted);position:relative}
.page-nodes button:before{content:'';position:absolute;top:0;left:50%;height:4px;width:1px;background:var(--line)}
.page-nodes button[aria-current=true]{color:var(--accent)}
#workspace .stage-wrap.has-scrubber{max-width:min(100%,calc((100svh - var(--header-height) - var(--footer-height) - 214px)*16/9))!important}
.fullscreen-viewer{position:fixed;inset:0;box-sizing:border-box;width:100%;height:100%;max-width:none;max-height:none;margin:0;padding:16px;background:var(--paper);color:var(--ink);border:0;overflow:auto}
.fullscreen-viewer::backdrop{background:var(--paper)}
.fullscreen-viewer[open]{display:flex;align-items:center;justify-content:center}
.fullscreen-viewer .stage-wrap{width:min(100%,calc((100dvh - 120px)*16/9))!important;max-width:none!important;height:auto;max-height:none;flex:none;transform:none!important;animation:none!important;opacity:1!important}
.fullscreen-viewer .stage-wrap.has-scrubber{width:min(100%,calc((100dvh - 200px)*16/9))!important}
.fullscreen-viewer .stage{width:100%;height:auto;min-height:0;flex:none;aspect-ratio:16/9}
.fullscreen-viewer .stage-bottom,.fullscreen-viewer .corner{display:none}
.viewer-expanded{overflow:hidden}.viewer-expanded #cursor{display:none!important}
@media(max-width:900px){
 .experience{display:flex;flex-direction:column;gap:28px}
 .experience-intro{position:static;margin:0;width:100%}
 .resume-main,.experience>.resume-contact{width:100%;max-width:none}
 .experience>.resume-contact{display:flex;flex-direction:column;margin:0;gap:0;font-size:12px}
 .experience>.resume-contact a{display:flex;justify-content:space-between;align-items:center;min-height:57px;width:100%;border-top:1px solid var(--line);padding:12px 0}
 .experience>.resume-contact a:last-child{border-bottom:1px solid var(--line)}
}
@media(max-width:700px){
 html{scrollbar-gutter:auto}
 .masthead{margin:0;top:0;padding-top:env(safe-area-inset-top);height:calc(var(--header-height) + env(safe-area-inset-top))}
 #workspace.project-detail,.directory,.experience{padding-top:calc(var(--header-height) + var(--content-gap) + env(safe-area-inset-top))}
 #workspace .stage-wrap.has-scrubber{max-width:100%!important}
 .viewer-bar{align-items:center}.image-tools{gap:14px}.viewer-bar button{min-height:44px}
 .fullscreen-viewer{padding:max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))}
 .fullscreen-viewer .stage-wrap{width:min(100%,calc((100dvh - 128px)*16/9))!important}
 .fullscreen-viewer .stage-wrap.has-scrubber{width:min(100%,calc((100dvh - 208px)*16/9))!important}
 .fullscreen-viewer .mode-switch{display:none}
 .fullscreen-viewer .viewer-bar{justify-content:flex-end}
}

.fullscreen-viewer #mode-model{display:none!important}

/* A single toolbar, an edge-mounted scrubber, and one quiet page count. */
.stage-wrap>.viewer-bar{order:0;min-height:44px;height:auto;margin:0 0 12px;padding:0;align-items:center;border:0}
.stage-wrap>.stage{order:1}
.stage-wrap>.page-scrubber{order:2;padding:0;border:0;height:12px;position:relative;z-index:8;flex:none}
.stage-wrap>.project-media-heading{order:3;margin:8px 0 0;min-height:18px;justify-content:flex-end}
.page-scrubber .scrubber-meta,.page-scrubber .page-nodes{display:none}
#page-range{height:24px;position:absolute;left:0;top:-12px;cursor:pointer}
#page-range::-webkit-slider-thumb{width:8px;height:8px;margin-top:-3px;border:0;background:var(--accent)}
#page-range::-moz-range-thumb{width:8px;height:8px;border:0;background:var(--accent)}
#workspace .stage-wrap.has-scrubber{max-width:min(100%,calc((100svh - var(--header-height) - var(--footer-height) - 132px)*16/9))!important}
.fullscreen-viewer .stage-wrap.has-scrubber{width:min(100%,calc((100dvh - 120px)*16/9))!important}
html.custom-cursor #image-host,html.custom-cursor #image-host *{cursor:default!important}
.stage:has(#image-host:not([hidden])) .stage-bottom{display:none}
@media(max-width:700px){
 #workspace .stage-wrap.has-scrubber{max-width:100%!important}
 .stage-wrap>.viewer-bar{gap:0 12px;margin-bottom:8px}
 .stage-wrap>.viewer-bar .mode-switch{gap:12px}
 .stage-wrap>.viewer-bar .image-tools{margin-left:auto;gap:12px}
 .fullscreen-viewer .stage-wrap.has-scrubber{width:min(100%,calc((100dvh - 128px)*16/9))!important}
 .fullscreen-viewer .mode-switch{display:flex}
}

.showcase-caption h2{margin-top:0}
.showcase-bottom{justify-content:flex-end}
@media(max-width:700px){
 .directory-showcase{order:1}
 .directory-list{order:2}
 .directory .showcase-image{aspect-ratio:16/10;height:auto;min-height:0}
 .directory .showcase-caption{margin-top:14px}
 .directory .showcase-bottom{margin-top:10px}
}

/* Separate immutable image layers let direct entry-to-entry movement crossfade. */
.intro-composition .intro-identity #intro-title{color:var(--ink);background:none;filter:none;-webkit-text-stroke:0;transition:none}
.intro-composition .intro-identity .title-texture-layer{position:absolute;inset:0;pointer-events:none;z-index:2;margin:0;color:transparent;-webkit-text-stroke:.2px var(--ink);filter:grayscale(1);background-image:linear-gradient(rgba(255,255,255,.24),rgba(255,255,255,.24)),var(--layer-image);background-size:cover;background-position:center;background-clip:text;-webkit-background-clip:text;opacity:0;transition:opacity .4s ease;}
.texture-archive{--layer-image:url('/assets/entry-automotive.jpg')}
.texture-experience{--layer-image:url('/assets/entry-form.jpg')}
.intro-composition:has(#enter-archive:is(:hover,:focus-visible)) .texture-archive,.intro-composition:has(#enter-experience:is(:hover,:focus-visible)) .texture-experience{opacity:1}
:root[data-theme=light] .intro-composition .title-texture-layer{background-image:linear-gradient(rgba(0,0,0,.18),rgba(0,0,0,.18)),var(--layer-image)}
@media(prefers-reduced-motion:reduce){.intro-composition .intro-identity .title-texture-layer{transition:none}}

/* Continuous travel; the page changes independently of the thumb position. */
html #page-range,html.custom-cursor #page-range{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='24' viewBox='0 0 28 24'%3E%3Cpath d='m8 8-4 4 4 4m12-8 4 4-4 4M4 12h20' fill='none' stroke='%23141414' stroke-width='3'/%3E%3Cpath d='m8 8-4 4 4 4m12-8 4 4-4 4M4 12h20' fill='none' stroke='%23eeeeea' stroke-width='1'/%3E%3C/svg%3E") 14 12,ew-resize!important;touch-action:pan-y}
#page-range::-webkit-slider-thumb{width:3px;height:12px;margin-top:-5px;border-radius:0}
#page-range::-moz-range-thumb{width:3px;height:12px;border-radius:0}

/* Project name and viewing controls start on one common top line. */
.project-copy h1{margin:0 0 14px}
.project-copy .project-context{margin:0 0 18px}
@media(min-width:701px){
 #workspace .stage-wrap>.viewer-bar{align-items:flex-start}
 #workspace .viewer-bar .mode-switch,#workspace .viewer-bar .image-tools,#workspace .viewer-bar .model-tools{align-items:flex-start}
 #workspace .viewer-bar button{display:inline-flex;align-items:flex-start;padding-top:5px;line-height:1.5;min-height:38px}
}
