/* Progressive enhancement: all content stays readable before this script runs. */
html{scrollbar-gutter:stable;scroll-padding-top:112px}
html.has-motion-dialog{overflow:hidden}
.main-nav a{position:relative;transition:color 400ms}
.main-nav a:not(.nav-cta){border-bottom-color:transparent}
.main-nav a:not(.nav-cta)::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--accent);opacity:0;transition:opacity 300ms}
.main-nav a:not(.nav-cta):hover::after,.main-nav a:not(.nav-cta):focus-visible::after,.main-nav a:not(.nav-cta)[aria-current]::after{opacity:1}
.main-nav a:not(.nav-cta):hover,.main-nav a:not(.nav-cta)[aria-current]{border-bottom-color:transparent}
.product-image .form-diagram{transition:transform 400ms ease}
@media(hover:hover){.motion-enabled .product-image:hover .form-diagram{transform:scale(1.035)}}
.motion-enabled .product-image:focus-visible .form-diagram{transform:scale(1.035)}

.carousel-viewport{overflow:hidden;isolation:isolate;touch-action:pan-y}
.carousel-track{display:flex;width:100%;height:100%;transform:translate3d(0,0,0)}
.hero-photo.carousel-viewport>.carousel-track{position:absolute;inset:0}
.carousel-slide{flex:0 0 100%;min-width:0;width:100%;height:100%;position:relative;overflow:hidden}
.carousel-viewport .carousel-slide img{width:100%;height:100%;min-height:0;object-fit:cover}
.motion-enabled [data-carousel].is-moving .carousel-track{transition:transform 500ms ease}
.carousel-controls{display:flex;align-items:center;gap:8px;margin-top:15px}
.carousel-pagination{display:flex;align-items:center;gap:1px}
.carousel-controls button{min-width:42px;min-height:42px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);background:transparent;color:var(--ink);padding:8px 12px;font-size:12px}
.carousel-controls [data-carousel-dot]{min-width:32px;min-height:42px;padding:8px;border:0}
[data-carousel-dot]::before{content:"";display:block;width:7px;height:7px;border:1px solid currentColor;border-radius:50%;background:transparent;transition:background-color 160ms}
[data-carousel-dot][aria-current]::before{background:var(--accent);border-color:var(--accent)}
.carousel-controls [data-carousel-pause]{margin-left:auto;min-width:94px}
.carousel-controls button:hover{color:var(--accent);border-color:var(--accent)}
.carousel-controls button:disabled{opacity:.55;cursor:default}
[data-carousel]:focus-visible{outline:2px solid var(--accent);outline-offset:7px}
[data-motion-switch]{color:inherit;background:transparent;border:0;border-bottom:1px solid currentColor;padding:8px 0;font-size:11px;line-height:1.5;text-align:left}
[data-motion-switch]:disabled{opacity:.65;cursor:default}

.parallax-window{position:relative;overflow:hidden}
.motion-enabled [data-parallax]{backface-visibility:hidden}
[data-reveal]{opacity:1}
.motion-enabled [data-reveal="up"].reveal-running{animation:workshop-reveal-up 1000ms cubic-bezier(.22,.61,.36,1) both}
.motion-enabled [data-reveal="down"].reveal-running{animation:workshop-reveal-down 1000ms cubic-bezier(.22,.61,.36,1) both}
@keyframes workshop-reveal-up{from{opacity:0;transform:translate3d(0,45px,0)}to{opacity:1;transform:translate3d(0,0,0)}}
@keyframes workshop-reveal-down{from{opacity:0;transform:translate3d(0,-45px,0)}to{opacity:1;transform:translate3d(0,0,0)}}

.request-drawer,.image-lightbox{position:fixed;inset:0;width:100vw;max-width:none;height:100vh;height:100dvh;max-height:none;margin:0;padding:0;border:0;color:var(--ink);overscroll-behavior:contain}
.request-drawer:not([open]),.image-lightbox:not([open]){display:none}
.request-drawer::backdrop,.image-lightbox::backdrop{background:transparent}
.request-drawer[open]{display:flex;justify-content:flex-end;align-items:stretch;background:rgb(0 0 0 / 0)}
.request-drawer.is-active{background:rgb(0 0 0 / .4)}
.drawer-panel{width:min(520px,100%);padding:36px;overflow-y:auto;background:var(--paper);transform:translate3d(100%,0,0);overscroll-behavior:contain}
.request-drawer.is-active .drawer-panel{transform:translate3d(0,0,0)}
.motion-enabled .request-drawer{transition:background-color 400ms ease}
.motion-enabled .drawer-panel{transition:transform 300ms ease}
.dialog-close{display:flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;margin-left:auto;padding:8px 12px;background:transparent;color:inherit;border:1px solid var(--line);font-size:12px}
.drawer-panel h2{font-size:44px;line-height:1.08;letter-spacing:-.045em;margin:36px 0 22px}
.drawer-panel p{font-size:14px;line-height:1.8;color:var(--muted);margin-bottom:18px}
.drawer-panel .button{width:100%;margin-top:18px}
.drawer-panel .drawer-note{font-size:11px;margin-top:24px}
.image-lightbox[open]{display:flex;align-items:center;justify-content:center;padding:24px;background:rgb(24 27 23 / .9);opacity:0;color:var(--paper)}
.image-lightbox.is-active{opacity:1}
.lightbox-inner{width:min(1080px,100%);max-height:calc(100dvh - 48px);transform:scale(.97);min-width:0}
.image-lightbox.is-active .lightbox-inner{transform:scale(1)}
.motion-enabled .image-lightbox{transition:opacity 333ms cubic-bezier(.4,0,.22,1)}
.motion-enabled .lightbox-inner{transition:transform 333ms cubic-bezier(.4,0,.22,1)}
.lightbox-toolbar{display:flex;gap:12px;justify-content:flex-end;align-items:center;margin-bottom:12px}
.lightbox-toolbar button{min-height:44px;min-width:44px;padding:8px 15px;background:transparent;border:1px solid #a6aa9e;color:inherit;font-size:12px}
.lightbox-toolbar .dialog-close{margin-left:0}
[data-lightbox-zoom]{min-height:44px;min-width:44px;padding:8px 15px;margin-bottom:12px;background:transparent;border:1px solid #a6aa9e;color:inherit;font-size:12px}
[data-lightbox-content]{max-height:calc(100dvh - 190px);overflow:auto;overscroll-behavior:contain;background:var(--soft);text-align:center}
.lightbox-media{display:block;width:auto;height:auto;max-width:100%;max-height:calc(100dvh - 190px);margin-inline:auto}
svg.lightbox-media{width:100%;min-height:300px;padding:24px;color:#776749;background:var(--soft)}
.image-lightbox.is-zoomed .lightbox-media{width:150%;max-width:none;max-height:none;height:auto;margin:0}
[data-lightbox-caption]{margin-top:12px;font-size:12px;line-height:1.5;color:#e0e3d9}
[data-lightbox-src],[data-lightbox-template]{cursor:zoom-in}

details[data-accordion]{border-bottom:1px solid var(--line)}
details[data-accordion]>summary{cursor:pointer;min-height:54px;padding-block:18px;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:22px;font-size:18px;line-height:1.4;letter-spacing:-.02em}
details[data-accordion]>summary::-webkit-details-marker{display:none}
details[data-accordion]>summary::after{content:"+";font-size:24px;line-height:1;font-weight:400;flex-shrink:0}
details[data-accordion][open]>summary::after{content:"−"}
details[data-accordion]>summary:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
[data-accordion-content]{padding-bottom:22px;font-size:14px;color:var(--muted);line-height:1.8}
[data-accordion-content] p+p{margin-top:12px}

@media(max-width:780px){
  .site-header{position:sticky;top:0;z-index:50;background:var(--paper)}
  .site-header::before{content:"";position:absolute;z-index:-1;inset:0 -20px;background:var(--paper)}
  .js .main-nav,.js .main-nav.is-open{display:flex}
  .js .main-nav{max-height:0;opacity:0;transform:scaleY(.94);transform-origin:top;overflow:hidden;visibility:hidden;pointer-events:none;padding-block:0;transition:max-height 300ms ease,opacity 300ms ease,transform 300ms ease,padding 300ms ease,visibility 0s linear 300ms}
  .js .main-nav.is-open{max-height:440px;opacity:1;transform:scaleY(1);visibility:visible;pointer-events:auto;padding-block:18px 26px;transition:max-height 300ms ease,opacity 300ms ease,transform 300ms ease,padding 300ms ease,visibility 0s}
  .drawer-panel{padding:24px}
  .drawer-panel h2{font-size:37px}
  .image-lightbox[open]{padding:16px}
  .lightbox-inner{max-height:calc(100dvh - 32px)}
  svg.lightbox-media{min-height:220px;padding:10px}
  .carousel-controls{gap:4px}
  .carousel-controls button{padding-inline:9px}
}
@media(max-width:390px){.site-header::before{inset-inline:-16px}}
html.motion-paused,html.motion-reduced{scroll-behavior:auto}
html.motion-paused *,html.motion-paused *::before,html.motion-paused *::after,html.motion-reduced *,html.motion-reduced *::before,html.motion-reduced *::after{animation:none!important;transition:none!important}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}

/* Keep slideshow controls legible on all three original panels. */
.carousel-controls{display:none;position:absolute;z-index:3;left:16px;right:16px;bottom:16px;margin:0;color:#fff}
.carousel-ready .carousel-controls{display:flex}
.carousel-controls button{color:#fff;background:rgb(30 29 24 / .68);border-color:rgb(255 255 255 / .65)}
.carousel-controls button:hover{color:#fff;background:rgb(30 29 24 / .9);border-color:#fff}
.carousel-controls [data-carousel-dot]{background:rgb(30 29 24 / .68)}
.carousel-controls [data-carousel-dot][aria-current]::before{background:#fff;border-color:#fff}
.carousel-viewport .image-stamp{bottom:82px}
.carousel-slide--drawing{background:var(--soft)}
.carousel-slide--drawing>.form-diagram{padding:50px 20px 90px}
.faq-list summary>span{display:none}
@media(max-width:390px){.carousel-controls{left:10px;right:10px;gap:2px}.carousel-controls button{min-width:34px;padding-inline:7px}.carousel-controls [data-carousel-dot]{min-width:27px;padding:7px}.carousel-controls [data-carousel-pause]{min-width:80px;font-size:11px}}

.drawing-open{display:none}.motion-enabled .drawing-open,.motion-reduced .drawing-open,.motion-paused .drawing-open{display:block}

/* Keep keyboard focus inside closely spaced controls and animated clipping boxes. */
.carousel-controls button:focus-visible{outline:2px solid currentColor;outline-offset:-4px}
.carousel-controls{flex-wrap:wrap;row-gap:8px}
.carousel-controls button{flex-shrink:0}
details[data-accordion]>summary{padding-inline:8px}
details[data-accordion]>summary:focus-visible{outline-offset:-2px}
@media(max-width:780px){.hero-photo{min-height:280px}.carousel-viewport .image-stamp{top:16px;bottom:auto}}

/* Light moves inside the still image; the camera, hands and glass outline stay fixed. */
.carousel-slide--process img{object-position:20% 50%}
.process-motion{position:absolute;pointer-events:none;max-width:none;opacity:0;mix-blend-mode:screen}
.motion-enabled .frame-playing .process-motion{opacity:1}
.motion-enabled .frame-playing .furnace-flicker{animation:furnace-light 2400ms ease-in-out infinite}
.motion-enabled .frame-playing .furnace-flame{transform-origin:190px 338px;animation:furnace-flame 1700ms ease-in-out infinite alternate}
.motion-enabled .frame-playing .glass-heat{animation:glass-warmth 3600ms ease-in-out infinite}
.motion-enabled .frame-playing .glass-sheen{animation:glass-reflection 5200ms ease-in-out infinite}
.motion-enabled .frame-playing .glass-glint{animation:glass-glint 3100ms ease-in-out infinite alternate}
@keyframes furnace-light{0%,100%{opacity:.48}27%{opacity:.84}56%{opacity:.58}78%{opacity:.92}}
@keyframes furnace-flame{from{transform:translateY(8px) scale(.94,.88);opacity:.22}to{transform:translateY(-5px) scale(1.04,1.04);opacity:.5}}
@keyframes glass-warmth{0%,100%{opacity:.4}50%{opacity:.9}}
@keyframes glass-reflection{0%,100%{transform:translateX(-30px);opacity:.1}50%{transform:translateX(42px);opacity:.48}}
@keyframes glass-glint{from{opacity:.14;transform:translateY(2px)}to{opacity:.52;transform:translateY(-2px)}}
