/* Smart Factory & Industry 5.0 Expo — concrete, graphite and safety amber. One family: Archivo, width axis 62–125. */
@font-face{font-family:Archivo;src:url('fonts/archivo-latin.woff2') format('woff2');font-weight:100 900;font-stretch:62% 125%;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Archivo;src:url('fonts/archivo-latin-ext.woff2') format('woff2');font-weight:100 900;font-stretch:62% 125%;font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}

:root{
  --concrete:#d8dbda;--paper:#e8eae9;--ink:#1e2428;--panel:#272e33;--steel:#5e6a71;--rule:#b3babc;
  --signal:#ffb000;--signal-deep:#e09a00;--ok:#2e9e68;--alert:#ff6a4d;
  --gutter:clamp(20px,5vw,96px);
  font-family:Archivo,Arial,sans-serif;color:var(--ink);background:var(--concrete);font-synthesis:none;
}
*{box-sizing:border-box}
html{scroll-padding-top:88px}
html.lenis{scroll-behavior:auto}
body{margin:0;font-size:17px;line-height:1.55;background:var(--concrete)}
h1,h2,h3,p,ul,dl,dd,figure{margin:0}
ul{padding:0;list-style:none}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer;color:inherit}
:focus-visible{outline:3px solid var(--ink);outline-offset:3px}
::selection{background:var(--signal);color:var(--ink)}
svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round}
img{display:block;max-width:100%}
h2{font-size:clamp(34px,4.4vw,68px);line-height:1;font-weight:780;font-stretch:118%;letter-spacing:-.018em;text-wrap:balance}
h3{font-size:24px;line-height:1.2;font-weight:680}
.skip{position:fixed;z-index:100;top:-100px;left:16px;background:var(--signal);padding:14px 18px;font-weight:700}
.skip:focus{top:12px}

/* buttons */
.button{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 24px;border-radius:4px;border:2px solid transparent;font-size:16px;font-weight:680;white-space:nowrap;transition:background-color .2s,color .2s,border-color .2s}
.button-signal{background:var(--signal);color:var(--ink)}
.button-signal:hover{background:var(--signal-deep)}
.button-line{border-color:var(--ink);color:var(--ink);background:transparent}
.button-line:hover{background:var(--ink);color:var(--concrete)}
.button-ink{background:var(--ink);color:#fff}
.button-ink:hover{background:#000}

/* nav */
.nav{position:fixed;z-index:50;inset:0 0 auto;height:72px;padding:0 var(--gutter);display:flex;align-items:center;gap:32px;background:#d8dbdaeb;backdrop-filter:blur(14px);border-bottom:1px solid var(--rule)}
.brand{display:flex;align-items:center;gap:12px;line-height:1.05;font-weight:800;font-stretch:125%;font-size:15px;letter-spacing:-.01em}
.brand>span>span{display:block;font-weight:600;font-stretch:100%;font-size:12px;letter-spacing:0;margin-top:3px;color:var(--steel)}
.mark{width:38px;height:38px;flex:none;stroke-width:2.6}
.mark path:first-child{fill:var(--signal)}
.nav nav{display:flex;gap:28px;margin-left:auto;font-size:15px;font-weight:560}
.nav nav a{padding:10px 0;border-bottom:2px solid transparent}
.nav nav a:hover{border-color:var(--signal)}
.nav-cta{min-height:44px;padding:0 18px;font-size:15px}
.menu-toggle{display:none}

/* hero */
.line-scene{position:relative;height:200svh}
.line-sticky{position:sticky;top:0;height:100svh;min-height:620px;overflow:hidden;background:linear-gradient(90deg,#c9cdcc55 1px,transparent 1px) 0 0/80px 80px,var(--concrete)}
.hero-copy{position:relative;z-index:2}
.line-intro{position:relative;z-index:2;padding:calc(72px + clamp(28px,5svh,64px)) var(--gutter) 0;max-width:calc(40ch + 2 * var(--gutter))}
.line-intro p{margin-top:18px;font-size:19px;color:#353d42}
h1{font-size:clamp(34px,min(4.35vw,10svh),96px);line-height:.9;font-weight:820;font-stretch:125%;letter-spacing:-.025em;animation:stretch 1.4s cubic-bezier(.2,.7,.1,1) both}
h1>span{display:block;white-space:nowrap}
.hero-meta{display:flex;flex-wrap:wrap;align-items:flex-end;gap:20px 48px;margin-top:clamp(18px,3svh,34px)}
.hero-sub{font-size:19px;line-height:1.35;max-width:26ch}
.hero-when{font-size:17px;line-height:1.35;color:var(--steel)}
.hero-when strong{display:block;color:var(--ink);font-weight:720;font-size:21px}
.hero-when sup{font-size:.6em}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px;flex-basis:100%}
.line-caption{position:absolute;z-index:2;top:calc(72px + 6svh);left:var(--gutter);max-width:30ch;font-size:clamp(20px,1.9vw,28px);line-height:1.3;font-weight:560;opacity:0}
.hero-rig{position:absolute;z-index:1;bottom:0;left:50%;transform:translateX(-50%);width:min(100%,calc(56svh * 2.5));overflow:visible}
.hero-rig .k{stroke:var(--line-ink,var(--ink));stroke-width:2.6;stroke-dasharray:var(--dash,none);fill:none}
.hero-rig .f{fill:var(--face,var(--concrete))}
.hero-rig .arm{stroke-width:14}
.hero-rig .floor{stroke-width:3}
.hero-rig .beam{fill:var(--signal);fill-opacity:var(--acc,1)}
.hero-rig .spark{fill:var(--signal);opacity:0;fill-opacity:var(--acc,1)}
.hero-rig .weld{stroke:var(--signal);stroke-width:4;stroke-opacity:var(--acc,1)}
.hero-rig .ok rect{fill:var(--ok);fill-opacity:var(--acc,1);stroke:none}
.hero-rig .ok path{stroke:#fff;stroke-width:2.4;stroke-opacity:var(--acc,1)}
.hero-rig .tablet-ok{stroke:var(--ok);stroke-width:3;opacity:0;stroke-opacity:var(--acc,1)}
.hero-rig .meter{fill:var(--signal);fill-opacity:var(--acc,1)}
.hero-rig .trace{stroke:var(--ok);stroke-width:2.6;stroke-opacity:var(--acc,1)}
.hero-rig .belt{stroke:var(--steel);stroke-width:3;stroke-dasharray:16 8;stroke-opacity:var(--acc,1)}
.hero-rig .roller{animation:spin .69s linear infinite;transform-box:fill-box;transform-origin:center}
.hero-rig .twin .arm{stroke-width:5}
.hero-rig .twin{--line-ink:var(--signal-deep);--face:transparent;--dash:7 6;--acc:.25}
.hero-rig .link{stroke:var(--signal-deep);stroke-width:1.6;stroke-dasharray:3 6}
.rig-label{font-family:Archivo,Arial,sans-serif;font-size:18px;font-weight:620;font-stretch:87.5%;fill:var(--steel);stroke:none}
.twin-label{fill:var(--signal-deep);font-size:20px}
.line-static{height:auto}
.line-static .line-sticky{position:relative;height:auto;min-height:0;padding-bottom:calc(min(100vw,140svh) * .4 + 24px)}
.line-static .twin-label{opacity:1}

/* mechanical counter (plan bloku) */
.counter{display:inline-flex}
.reel{display:inline-block;height:1em;overflow:hidden}
.reel>span{display:flex;flex-direction:column;transform:translateY(0);transition:transform 1.8s cubic-bezier(.15,.7,.1,1) calc(var(--i) * 90ms)}
.reel>span>span{height:1em;line-height:1}
.is-on .reel>span{transform:translateY(calc((10 + var(--d)) * -1em))}
.reel-gap{display:inline-block;width:.22em}

/* Industry 5.0 */
.pillars{display:grid;grid-template-columns:5fr 7fr;gap:clamp(32px,6vw,110px);padding:clamp(80px,10vw,140px) var(--gutter);background:var(--paper)}
.pillars-photo{position:sticky;top:110px;align-self:start}
.pillars-photo img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:4px}
.pillars-photo figcaption{margin-top:12px;font-size:14px;color:var(--steel)}
.pillars-lead{margin-top:26px;font-size:19px;max-width:48ch;color:#353d42}
.pillars ul{margin-top:clamp(40px,5vw,70px)}
.pillars li{display:grid;grid-template-columns:56px 1fr;gap:6px 24px;padding:30px 0;border-top:2px solid var(--ink)}
.pillars li svg{grid-row:1/3;width:48px;height:48px;stroke-width:2.6;color:var(--ink)}
.pillars li p{max-width:52ch;color:#353d42}

/* sectors as stations on a line */
.sectors{padding:clamp(80px,10vw,140px) var(--gutter)}
.sectors-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:20px}
.sectors-head p{font-size:19px;color:#353d42}
.track{--a:0;position:relative;display:grid;grid-template-columns:repeat(4,1fr);margin-top:clamp(48px,6vw,80px)}
.track:before,.track:after{content:'';position:absolute;top:13px;left:14px;height:4px;background:var(--rule)}
.track:before{width:75%}
.track:after{width:calc(var(--a) * 25%);background:var(--signal);transition:width .45s cubic-bezier(.4,0,.2,1)}
.track button{position:relative;z-index:1;display:flex;flex-direction:column;align-items:flex-start;gap:16px;padding:0 16px 18px 0;border:0;background:none;text-align:left;font-size:clamp(16px,1.5vw,21px);font-weight:600;color:var(--steel);min-height:44px}
.track .node{width:30px;height:30px;border-radius:50%;border:4px solid var(--ink);background:var(--concrete);transition:background-color .3s,box-shadow .3s}
.track button[aria-selected=true]{color:var(--ink)}
.track button[aria-selected=true] .node{background:var(--signal);box-shadow:0 0 0 6px #ffb00045}
.track button:hover{color:var(--ink)}
.sector-panel{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,4vw,64px);align-items:center;margin-top:24px;padding:clamp(20px,3vw,44px);background:var(--paper);border-radius:6px}
.schematic{background:var(--concrete);border-radius:4px;animation:fade .4s ease both}
.schematic svg{display:block;width:100%;height:auto}
.schematic text{font-size:16px;font-weight:650;fill:var(--ink);stroke:none}
.sector-scope{font-size:15px;color:var(--steel)}
.sector-text h3{font-size:clamp(26px,2.6vw,38px);font-stretch:112%;font-weight:760;margin:8px 0 16px}
.sector-text>p:not(.sector-scope){max-width:46ch;color:#353d42;margin-bottom:28px}
.s-box{fill:#eef0ef;stroke:var(--ink);stroke-width:2.6}
.s-accent{fill:var(--signal)}
.s-wire,.s-axis{stroke:#98a2a7;stroke-width:2.6;fill:none}
.s-packet{stroke:var(--signal-deep);stroke-width:6;fill:none;stroke-dasharray:8 140;animation:packet 1.6s linear infinite}
.s-led{fill:var(--ok);animation:blink 1.6s steps(1) infinite}
.s-dash{fill:none;stroke:var(--signal-deep);stroke-width:2.6;stroke-dasharray:6 6}
.s-gear{transform-box:fill-box;transform-origin:center;animation:spin 9s linear infinite}
.s-gear-real{animation-delay:-.6s}
.s-trace{stroke:var(--signal-deep);stroke-width:4.5;fill:none;stroke-dasharray:100;animation:draw 3.4s ease-in-out infinite}
.s-limit{stroke:var(--alert);stroke-width:2;stroke-dasharray:4 6}
.s-arm{stroke:var(--ink);stroke-width:10;fill:none}
.s-cobot{transform-box:view-box;transform-origin:325px 190px;animation:handover 3.2s ease-in-out infinite alternate}

/* process (Architecture.jsx) */
.factory-process{position:relative;height:330svh;background:var(--ink);color:#eef0ef}
.process-sticky{position:sticky;top:0;min-height:720px;height:100svh;padding:110px var(--gutter) 40px;display:flex;flex-direction:column;justify-content:space-between;gap:24px}
.process-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:30px}
.process-heading>p{font-size:18px;color:#b9c1c4;line-height:1.45}
.process-body{display:grid;grid-template-columns:minmax(260px,1fr) minmax(0,2.3fr);gap:clamp(24px,4vw,64px);align-items:center;flex:1;min-height:0}
.process-count{font-size:22px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--signal)}
.process-count>span{color:#8f999e;font-size:16px}
.process-copy h3{font-size:clamp(26px,2.4vw,38px);font-stretch:112%;font-weight:760;line-height:1.1;margin:14px 0 18px;max-width:15ch;text-wrap:balance}
.process-copy>p{font-size:18px;line-height:1.55;color:#ccd3d5;max-width:36ch;min-height:140px}
.process-technologies{display:block;color:var(--signal);font-size:15px;max-width:34ch;margin-top:18px}
.process-visual{min-width:0}
.process-status{display:flex;gap:12px;align-items:center;font-size:16px;font-weight:600;padding-bottom:14px;border-bottom:1px solid #3b454b}
.process-status>span:last-child{margin-left:auto;font-size:13px;font-weight:400;color:#8f999e}
.process-status-dot{width:10px;height:10px;border-radius:50%;background:var(--signal);flex:none;animation:pulse 1.6s ease-in-out infinite}
.process-drawing{stroke:none;display:block;width:100%;max-height:52svh;overflow:visible}
.process-drawing text{font-family:Archivo,Arial,sans-serif;stroke:none}
.process-label{font-size:16px;font-weight:620;font-stretch:87.5%;fill:#a3adb1}
.process-cyan{fill:var(--signal)}
.process-purple{fill:#f1f3f2}
.process-green{fill:#3fbf7f}
.process-panel-title{font-size:16px;font-weight:700;fill:#f1f3f2}
.process-panel-text{font-size:16px;fill:#e4e8e7}
.process-alert{font-size:16px;font-weight:700;fill:var(--alert)}
.process-approved{font-size:13px;font-weight:800;fill:var(--ink)}
.process-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;border-top:2px solid #3b454b}
.process-steps button{position:relative;display:flex;gap:12px;align-items:center;padding:20px 0;background:none;border:0;text-align:left;color:#a3adb1;font-size:18px;font-weight:600;min-height:64px}
.process-steps button:before{content:'';position:absolute;top:-2px;left:0;right:0;height:4px;background:var(--signal);transform:scaleX(0);transform-origin:left;transition:transform .35s}
.process-steps button[aria-selected=true]{color:#fff}
.process-steps button[aria-selected=true]:before{transform:scaleX(1)}
.process-steps button>span{font-size:15px;color:var(--signal);font-variant-numeric:tabular-nums}
.process-steps button svg{width:20px;height:20px;margin-left:auto;stroke-width:2}
.process-steps button:hover{color:#fff}
.factory-process :focus-visible{outline-color:var(--signal)}
.process-footer{display:flex;align-items:center;justify-content:space-between;gap:24px;font-size:15px;color:#8f999e}
.process-footer a{color:#fff;font-weight:600;border-bottom:2px solid var(--signal);padding-bottom:2px}
.process-manual{height:auto}
.process-manual .process-sticky{position:relative;height:auto;min-height:0}
.process-manual .process-drawing{max-height:540px}

/* venue */
.venue{display:grid;grid-template-columns:5fr 7fr;gap:clamp(32px,5vw,90px);align-items:center;padding:clamp(80px,10vw,140px) var(--gutter)}
.venue-text p{margin:24px 0 32px;font-size:19px;color:#353d42;max-width:36ch}
.venue-photos{display:grid;grid-template-columns:1.4fr 1fr;grid-template-rows:1fr 1fr;gap:12px;aspect-ratio:16/10}
.venue-photos figure{overflow:hidden;border-radius:4px;min-height:0}
.venue-photos img{width:100%;height:100%;object-fit:cover}
.v-a{grid-row:1/3}
.venue-note{grid-column:1/3;font-size:14px;color:var(--steel)}

/* participation */
.join{padding:clamp(80px,10vw,140px) var(--gutter)}
.join-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:clamp(40px,5vw,64px)}
.join-card{position:relative;display:flex;flex-direction:column;align-items:flex-start;padding:clamp(28px,4vw,56px);border-radius:6px;overflow:hidden}
.join-card h3{font-size:clamp(30px,3.2vw,48px);font-stretch:118%;font-weight:800;line-height:1}
.join-card>p{margin:22px 0 10px;font-size:19px}
.join-card ul{align-self:stretch;margin-bottom:36px}
.join-card li{padding:11px 0;border-bottom:1px solid currentColor;border-color:color-mix(in srgb,currentColor 25%,transparent)}
.join-card .button{margin-top:auto}
.join-exhibitor{background:var(--signal);padding-top:calc(clamp(28px,4vw,56px) + 18px)}
.join-exhibitor:before{content:'';position:absolute;inset:0 0 auto;height:18px;background:repeating-linear-gradient(-45deg,var(--ink) 0 14px,var(--signal) 14px 28px)}
.join-visitor{background:var(--ink);color:#eef0ef}
.join-visitor :focus-visible{outline-color:var(--signal)}
.join-form{margin-top:16px;padding:clamp(24px,4vw,56px);background:var(--paper);border-left:6px solid var(--signal);border-radius:4px;outline:none}
.join-form-exhibitor{border-left-color:var(--ink)}
.join-form-head{display:flex;justify-content:space-between;align-items:baseline;gap:16px}
.join-form-head h3{font-size:clamp(26px,2.6vw,40px);font-stretch:118%;font-weight:800;line-height:1}
.join-form-close{background:none;border:0;border-bottom:2px solid currentColor;padding:4px 0;font-weight:650;cursor:pointer}
.join-form form{max-width:900px}
.join-form-intro{margin:16px 0 24px;font-size:19px;max-width:60ch}
.join-fields{display:grid;grid-template-columns:1fr 1fr;gap:18px 20px;margin-bottom:22px}
.jf{display:flex;flex-direction:column;gap:7px;font-size:14px;font-weight:650;letter-spacing:.02em;text-transform:uppercase;color:var(--steel)}
.jf-wide{grid-column:1/-1}
.jf input,.jf select,.jf textarea{width:100%;min-height:52px;padding:12px 14px;border:2px solid var(--rule);border-radius:4px;background:#fff;color:var(--ink);font:inherit;font-size:17px;font-weight:450;letter-spacing:0;text-transform:none}
.jf textarea{resize:vertical;min-height:96px}
.jf input:focus,.jf select:focus,.jf textarea:focus{outline:none;border-color:var(--signal-deep)}
.jf input:user-invalid{border-color:var(--alert)}
.jf-phone{display:flex}
.jf-phone select{width:auto;flex:none;border-right:0;border-radius:4px 0 0 4px}
.jf-phone input{min-width:0;flex:1;border-radius:0 4px 4px 0}
.jf-check{display:flex;align-items:flex-start;gap:12px;margin:0 0 14px;font-size:15px;line-height:1.5;max-width:80ch}
.jf-check input{flex:none;width:20px;height:20px;margin-top:2px;accent-color:var(--ink)}
.jf-check b{color:var(--signal-deep)}
.jf-check small{display:block;margin-top:6px;font-size:14px;color:var(--steel)}
.jf-more{background:none;border:0;padding:0;font:inherit;text-decoration:underline;cursor:pointer;color:inherit}
.jf-notice{margin:6px 0 22px;font-size:13px;line-height:1.5;color:var(--steel);max-width:90ch}
.jf-notice a{text-decoration:underline}
.jf-error{margin:0 0 18px;padding:12px 16px;border-left:4px solid var(--alert);background:#fff;color:#a8321c;font-weight:600}
.join-form button[type=submit][disabled]{opacity:.6;cursor:progress}
.join-form-done{display:flex;flex-direction:column;align-items:flex-start;gap:14px;margin-top:18px}
.join-form-ok{font-size:22px;font-weight:750;color:var(--ok)}

footer{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:24px 48px;padding:44px var(--gutter) 80px;background:var(--ink);color:#eef0ef}
footer .brand>span>span{color:#9aa4a9}
footer p{max-width:70ch;font-size:14px;color:#9aa4a9}
.motion-button{position:fixed;z-index:60;right:16px;bottom:14px;background:var(--ink);color:#eef0ef;border:1px solid #4a555b;border-radius:30px;font-size:13px;padding:9px 16px}
.motion-button:hover{background:#000}
.motion-icon{display:none}
@media (max-width:520px){.motion-icon{display:inline}}
.motion-button:disabled{cursor:default;opacity:.8}
.nojs{padding:120px var(--gutter);min-height:100vh}
.nojs h1{animation:none}
.nojs p{margin-top:20px}

@keyframes stretch{from{font-stretch:62%;opacity:0}to{font-stretch:125%;opacity:1}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes pulse{50%{opacity:.35}}
@keyframes blink{50%{opacity:.2}}
@keyframes packet{from{stroke-dashoffset:8}to{stroke-dashoffset:-100}}
@keyframes draw{0%{stroke-dashoffset:100}55%,100%{stroke-dashoffset:0}}
@keyframes handover{to{transform:rotate(-14deg)}}
@keyframes fade{from{opacity:0}}

.motion-off *,.motion-off *:before,.motion-off *:after{animation-duration:0s!important;animation-iteration-count:1!important;transition-duration:0s!important;transition-delay:0s!important}
.motion-off h1{font-stretch:125%;opacity:1}
@media (prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:0s!important;animation-iteration-count:1!important;transition-duration:0s!important;transition-delay:0s!important}}

@media (max-width:1100px){
  .nav nav{gap:20px;font-size:14px}
  .pillars,.venue{grid-template-columns:1fr}
  .pillars-photo{position:relative;top:0}
  .pillars-photo img{aspect-ratio:16/9}
}
@media (max-width:900px){
  .nav{height:64px;gap:12px}
  html{scroll-padding-top:76px}
  .nav-cta{display:none}
  .menu-toggle{display:grid;place-content:center;gap:7px;margin-left:auto;width:48px;height:48px;background:var(--ink);border:0;border-radius:4px}
  .menu-toggle span{display:block;width:22px;height:2px;background:#fff;transition:transform .2s}
  .menu-toggle[aria-expanded=true] span:first-child{transform:translateY(4.5px) rotate(45deg)}
  .menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-4.5px) rotate(-45deg)}
  .nav nav{display:none;position:fixed;top:64px;left:0;right:0;flex-direction:column;gap:0;padding:8px var(--gutter) 24px;background:var(--concrete);border-bottom:1px solid var(--rule);font-size:20px}
  .nav nav.is-open{display:flex}
  .nav nav a{padding:14px 0;border-bottom:1px solid var(--rule)}
  .line-scene{height:170svh}
  .line-intro{padding-top:88px}
  h1{font-size:11.4vw;font-stretch:87.5%;animation-name:stretch-sm}
  .hero-meta{gap:16px}
  .hero-sub{font-size:17px}
  .hero-rig{width:960px;transform:translateX(calc(-50% + 190px))}
  .line-caption{font-size:20px;top:96px}
  .line-static .line-sticky{padding-bottom:400px}
  .track{grid-template-columns:1fr 1fr;row-gap:16px}
  .track:before,.track:after{display:none}
  .track button{flex-direction:row;align-items:center;padding:8px 0}
  .sector-panel{grid-template-columns:1fr}
  .process-sticky,.process-manual .process-sticky{position:relative;height:auto;min-height:0;padding:84px var(--gutter) 56px}
  .process-heading{flex-wrap:wrap}
  .process-body{display:flex;flex-direction:column-reverse;gap:24px}
  .process-copy>p{min-height:0}
  .process-status>span:last-child{display:none}
  .process-drawing,.process-manual .process-drawing{max-height:none}
  .process-steps{grid-template-columns:1fr 1fr;gap:0 16px}
  .process-steps button{font-size:16px}
  .process-footer{flex-wrap:wrap}
  .join-grid{grid-template-columns:1fr}
  .join-fields{grid-template-columns:1fr}
  .venue-photos{aspect-ratio:auto;grid-template-rows:180px 180px}
}
@media (max-width:520px){
  .track{grid-template-columns:1fr}
  .hero-when strong{font-size:19px}
  .button{padding:0 18px}
  .venue-photos{grid-template-columns:1fr 1fr;grid-template-rows:200px 130px}
  .v-a{grid-row:auto;grid-column:1/3}
  .motion-button{width:44px;height:44px;padding:0;display:grid;place-items:center}
  .motion-label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
}
@keyframes stretch-sm{from{font-stretch:62%;opacity:0}to{font-stretch:87.5%;opacity:1}}

/* fair block logos (shared with the Robotics site) */
.block-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:2px;background:#3b454b;border-radius:6px;overflow:hidden}
.block-strip li{position:relative;display:flex;flex-direction:column;justify-content:space-between;gap:18px;min-height:132px;padding:22px;background:var(--ink)}
.block-strip img{height:38px;width:auto;max-width:100%;object-fit:contain;object-position:left;opacity:.72;transition:opacity .2s}
.block-strip a:hover img,.block-strip .is-current img{opacity:1}
.block-strip li>span{font-size:14px;color:#9aa4a9}
.block-strip .is-current>span{color:var(--signal);font-weight:650}
.block-strip .is-current:before{content:'';position:absolute;inset:0 0 auto;height:4px;background:var(--signal)}
.block-strip :focus-visible{outline-color:var(--signal)}

/* hall: conveyor photo strip */
.hall{position:relative;background:var(--ink);color:#eef0ef}
.hall-sticky{position:sticky;top:0;height:100svh;min-height:640px;display:flex;flex-direction:column;justify-content:center;padding-top:72px;overflow:hidden}
.hall-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px 48px;padding:0 var(--gutter)}
.hall-head h2{max-width:18ch}
.hall-head p{max-width:36ch;font-size:16px;color:#b9c1c4}
.hall-count{display:block;margin-bottom:6px;font-size:18px;font-variant-numeric:tabular-nums;color:#8f999e}
.hall-count b{color:var(--signal)}
.hall-viewport{margin-top:clamp(24px,4svh,48px)}
.hall-track{position:relative;display:flex;gap:24px;width:max-content;padding:0 var(--gutter) 46px;will-change:transform}
.hall-track:after{content:'';position:absolute;left:0;right:0;bottom:0;height:30px;border-top:3px solid #56626a;background:radial-gradient(circle at 20px 14px,transparent 8px,#7d898f 8px 10.5px,transparent 11px) 0 0/40px 30px repeat-x}
.hall-frame{position:relative;display:block;height:min(56svh,540px);aspect-ratio:3/2;padding:0;border:0;border-radius:4px;overflow:hidden;background:#11161a;cursor:zoom-in;color:#fff;text-align:left}
.hall-frame img{position:absolute;top:0;left:-8%;width:116%;height:100%;object-fit:cover}
.hall-frame:focus-visible{outline:3px solid var(--signal);outline-offset:4px}
.hall-detect{position:absolute;inset:14px;opacity:0;transition:opacity .25s;background:linear-gradient(var(--signal),var(--signal)) 0 0/28px 3px,linear-gradient(var(--signal),var(--signal)) 0 0/3px 28px,linear-gradient(var(--signal),var(--signal)) 100% 0/28px 3px,linear-gradient(var(--signal),var(--signal)) 100% 0/3px 28px,linear-gradient(var(--signal),var(--signal)) 0 100%/28px 3px,linear-gradient(var(--signal),var(--signal)) 0 100%/3px 28px,linear-gradient(var(--signal),var(--signal)) 100% 100%/28px 3px,linear-gradient(var(--signal),var(--signal)) 100% 100%/3px 28px;background-repeat:no-repeat}
.hall-frame:hover .hall-detect,.hall-frame:focus-visible .hall-detect{opacity:1}
.hall-plate{position:absolute;left:14px;bottom:14px;max-width:calc(100% - 28px);padding:10px 14px;background:#1e2428e6;border-radius:3px;font-size:15px;line-height:1.35}
.hall-plate b{display:block;color:var(--signal);font-size:13px;font-weight:650}
.hall-flow{height:auto!important}
.hall-flow .hall-sticky{position:relative;height:auto;min-height:0;padding:clamp(72px,10vw,120px) 0}
.hall-flow .hall-viewport{overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:thin}
.hall-flow .hall-track li{scroll-snap-align:start}
.hall-flow .hall-frame{height:auto;width:min(84vw,520px)}

.lightbox{border:0;padding:0;background:transparent;color:#eef0ef;max-width:min(1400px,94vw);max-height:94svh;overflow:visible}
.lightbox::backdrop{background:#0d1114eb}
.lightbox img{max-height:78svh;width:auto;max-width:100%;margin:0 auto;border-radius:4px}
.lightbox figcaption{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 24px;margin-top:12px;font-size:16px}
.lightbox figcaption span:last-child{color:#9aa4a9}
.lightbox-bar{display:flex;align-items:center;gap:12px;margin-top:14px;font-variant-numeric:tabular-nums}
.lightbox-bar button{min-width:48px;min-height:48px;border:2px solid #56626a;border-radius:4px;background:none;font-size:18px}
.lightbox-bar button:hover{border-color:var(--signal)}
.lightbox-bar .lightbox-close{margin-left:auto;padding:0 18px;font-size:16px;font-weight:650;background:var(--signal);border-color:var(--signal);color:var(--ink)}
.lightbox :focus-visible{outline:3px solid var(--signal);outline-offset:2px}

/* reel: film window grows to full screen */
.reel-section{position:relative;height:260svh}
.reel-sticky{position:sticky;top:0;height:100svh;overflow:hidden}
.reel-title{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;justify-content:space-between;padding:calc(72px + 8svh) var(--gutter) 10svh;pointer-events:none;font-size:min(6.4vw,11svh);font-stretch:125%;font-weight:820;line-height:.9}
.reel-title span{display:block;white-space:nowrap}
.reel-r{align-self:flex-end}
.reel-window{position:absolute;inset:0;overflow:hidden;background:var(--ink)}
.reel-window:after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 55%,#1e2428d9);pointer-events:none}
.reel-window video{display:block;width:100%;height:100%;object-fit:cover}
.reel-hud{position:absolute;inset:0;z-index:1;opacity:0}
.reel-corners{position:absolute;inset:calc(72px + 4svh) var(--gutter) 16svh;background:linear-gradient(var(--signal),var(--signal)) 0 0/44px 4px,linear-gradient(var(--signal),var(--signal)) 0 0/4px 44px,linear-gradient(var(--signal),var(--signal)) 100% 0/44px 4px,linear-gradient(var(--signal),var(--signal)) 100% 0/4px 44px,linear-gradient(var(--signal),var(--signal)) 0 100%/44px 4px,linear-gradient(var(--signal),var(--signal)) 0 100%/4px 44px,linear-gradient(var(--signal),var(--signal)) 100% 100%/44px 4px,linear-gradient(var(--signal),var(--signal)) 100% 100%/4px 44px;background-repeat:no-repeat}
.reel-rec{position:absolute;top:calc(72px + 4svh + 20px);left:calc(var(--gutter) + 22px);display:flex;align-items:center;gap:10px;color:#fff;font-size:15px;font-weight:600}
.reel-rec i{width:10px;height:10px;border-radius:50%;background:var(--alert);animation:pulse 1.2s ease-in-out infinite}
.reel-rec b{font-weight:500;color:#cfd5d7;font-variant-numeric:tabular-nums}
.reel-caption{position:absolute;z-index:3;left:var(--gutter);right:var(--gutter);bottom:6svh;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px 32px;color:#fff;opacity:0}
.reel-caption p{max-width:40ch;font-size:clamp(18px,1.5vw,22px)}
.reel-caption span{font-size:14px;color:#cfd5d7}
.reel-flow{height:auto;padding:clamp(72px,10vw,120px) var(--gutter)}
.reel-flow .reel-sticky{position:relative;height:auto;overflow:visible}
.reel-flow .reel-title{position:relative;padding:0;font-size:clamp(30px,7vw,64px)}
.reel-flow .reel-title span{white-space:normal}
.reel-flow .reel-window{position:relative;aspect-ratio:16/9;margin-top:24px;border-radius:4px}
.reel-flow .reel-hud{opacity:1}
.reel-flow .reel-corners{inset:14px}
.reel-flow .reel-rec{top:30px;left:32px;font-size:14px}
.reel-flow .reel-caption{position:relative;left:auto;right:auto;bottom:auto;margin-top:16px;color:var(--ink);opacity:1}
.reel-flow .reel-caption span{color:var(--steel)}

/* conference */
.conference{padding:clamp(80px,10vw,140px) var(--gutter);background:var(--paper)}
.conference-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:20px 48px}
.conference-head p{max-width:44ch;font-size:19px;color:#353d42}
.conference-grid{display:grid;grid-template-columns:5fr 7fr;gap:clamp(32px,5vw,90px);margin-top:clamp(40px,5vw,72px);align-items:start}
.talks li{padding:24px 0;border-top:2px solid var(--ink)}
.talks h3{font-size:clamp(20px,1.7vw,24px)}
.talks p{margin-top:6px;color:var(--steel)}
.talks span{display:inline-block;margin-top:12px;padding:4px 10px;border-radius:3px;background:var(--concrete);font-size:14px;font-weight:600}
.carousel{min-width:0}
.carousel-strip{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;border-radius:4px}
.carousel-strip::-webkit-scrollbar{display:none}
.carousel-strip li{flex:0 0 100%;scroll-snap-align:start}
.carousel-strip img{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:4px}
.carousel-strip figcaption{margin-top:10px;font-size:14px;color:var(--steel)}
.carousel-bar{display:flex;align-items:center;gap:14px;margin-top:14px;font-variant-numeric:tabular-nums}
.carousel-bar button{width:48px;height:48px;border:2px solid var(--ink);border-radius:4px;background:none;font-size:18px}
.carousel-bar button:hover:not(:disabled){background:var(--ink);color:var(--concrete)}
.carousel-bar button:disabled{opacity:.3;cursor:default}

/* venue film */
.venue-photos figure{position:relative}
.venue-photos video{display:block;width:100%;height:100%;object-fit:cover}
.venue-photos figcaption{position:absolute;left:12px;bottom:12px;padding:6px 10px;border-radius:3px;background:#1e2428d9;color:#fff;font-size:14px}

/* faq */
.faq{padding:clamp(80px,10vw,140px) var(--gutter);background:var(--paper)}
.faq-groups{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(24px,4vw,64px);margin-top:clamp(40px,5vw,64px)}
.faq-group h3{font-size:16px;font-weight:650;color:var(--steel);padding-bottom:12px;border-bottom:2px solid var(--ink)}
.faq details{border-bottom:1px solid var(--rule)}
.faq summary{display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:56px;padding:14px 0;list-style:none;cursor:pointer;font-size:18px;font-weight:620;line-height:1.3}
.faq summary::-webkit-details-marker{display:none}
.faq summary span{position:relative;flex:none;width:20px;height:20px}
.faq summary span:before,.faq summary span:after{content:'';position:absolute;left:0;top:9px;width:20px;height:3px;background:var(--signal-deep);transition:transform .25s}
.faq summary span:after{transform:rotate(90deg)}
.faq details[open] summary span:after{transform:rotate(0)}
.faq details p{padding:0 0 18px;color:#353d42;max-width:52ch}

@media (max-width:1100px){.conference-grid{grid-template-columns:1fr}.faq-groups{grid-template-columns:1fr}.block-strip{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.block-strip li{min-height:110px;padding:16px}.block-strip img{height:28px}}

/* hero: fair identity, two screens, fair block */
.hero{position:relative;min-height:100svh;display:flex;flex-direction:column;justify-content:space-between;gap:clamp(24px,4svh,44px);padding:calc(72px + clamp(24px,5svh,56px)) var(--gutter) clamp(20px,4svh,40px);background:linear-gradient(90deg,#c9cdcc55 1px,transparent 1px) 0 0/80px 80px,var(--concrete)}
.hero-grid{flex:1;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(24px,4vw,72px);align-items:center}
.hero-media{position:relative;aspect-ratio:4/3.1;max-height:58svh;width:100%;justify-self:end}
.hero-screen{position:absolute;margin:0;overflow:hidden;border-radius:4px;background:var(--ink);transition:top .6s cubic-bezier(.4,0,.2,1),left .6s cubic-bezier(.4,0,.2,1),right .6s cubic-bezier(.4,0,.2,1),bottom .6s cubic-bezier(.4,0,.2,1)}
.hero-screen.is-main{top:0;left:0;right:14%;bottom:16%;z-index:1}
.hero-screen.is-inset{top:50%;left:54%;right:0;bottom:0;z-index:2;box-shadow:0 0 0 6px var(--concrete)}
.hero-screen video{display:block;width:100%;height:100%;object-fit:cover}
.hero-screen:after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 55%,#1e2428cc);pointer-events:none}
.hero-corners{position:absolute;z-index:1;inset:12px;pointer-events:none;background:linear-gradient(var(--signal),var(--signal)) 0 0/26px 3px,linear-gradient(var(--signal),var(--signal)) 0 0/3px 26px,linear-gradient(var(--signal),var(--signal)) 100% 0/26px 3px,linear-gradient(var(--signal),var(--signal)) 100% 0/3px 26px,linear-gradient(var(--signal),var(--signal)) 0 100%/26px 3px,linear-gradient(var(--signal),var(--signal)) 0 100%/3px 26px,linear-gradient(var(--signal),var(--signal)) 100% 100%/26px 3px,linear-gradient(var(--signal),var(--signal)) 100% 100%/3px 26px;background-repeat:no-repeat}
.is-inset .hero-corners{opacity:0}
.hero-screen figcaption{position:absolute;z-index:2;left:20px;bottom:18px;right:20px;color:#fff;font-size:15px;line-height:1.35}
.hero-screen figcaption b{display:flex;align-items:center;gap:8px;color:var(--signal);font-size:13px;font-weight:650}
.hero-screen figcaption b:before{content:'';width:8px;height:8px;border-radius:50%;background:var(--alert);animation:pulse 1.2s ease-in-out infinite}
.is-inset figcaption{left:12px;bottom:10px;font-size:13px}
.hero-swap{position:absolute;inset:0;z-index:3;border:0;background:transparent;cursor:pointer}
.hero-swap:focus-visible{outline:3px solid var(--signal);outline-offset:-3px}
.hero-swap:hover{background:#ffb0001f}
.hero-block-title{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 24px;margin-bottom:10px;font-size:15px;font-weight:650}
.hero-block-title span{font-weight:400;color:var(--steel)}
.hero .block-strip li{min-height:0;padding:16px 20px;gap:12px}
.hero .block-strip img{height:32px}
@media (max-width:900px){
  .hero{padding-top:88px}
  .hero-grid{grid-template-columns:1fr}
  .hero-media{max-height:none;aspect-ratio:4/3.3}
}

/* official logo (from the kreator assets) */
.brand img{display:block;height:44px;width:auto}
footer .brand img{height:52px}
@media (max-width:900px){.brand img{height:36px}}

/* plan bloku: makieta 3D hal C–F (src/BlockPlan.jsx + src/block-scene.js) */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.plan{padding:0 var(--gutter) clamp(80px,10vw,140px)}
.plan-head{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:22px clamp(32px,5vw,80px);align-items:end;margin-bottom:clamp(28px,3.5vw,48px)}
.plan-head p{max-width:52ch;font-size:19px;color:#353d42}
.plan-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}
.plan-tabs button{min-height:44px;padding:0 16px;border-radius:4px;border:2px solid var(--ink);background:transparent;font-size:15px;font-weight:650;transition:background-color .2s,color .2s}
.plan-tabs button:hover{background:var(--ink);color:var(--concrete)}
.plan-tabs button[aria-pressed=true]{background:var(--signal);border-color:var(--signal);color:var(--ink)}
.plan-stage{position:relative;aspect-ratio:2/1;border-radius:6px;overflow:hidden;background:var(--paper);box-shadow:inset 0 0 0 1px var(--rule)}
.plan-canvas,.plan-overlay{position:absolute;inset:0}
.plan-overlay{pointer-events:none}
.plan-lines{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.plan-lines line{stroke:var(--ink);stroke-width:1.5}
.plan-lines circle{fill:var(--ink);stroke:var(--paper);stroke-width:2}
.plan-lines .is-current line{stroke:var(--signal-deep);stroke-width:2.5}
.plan-lines .is-current circle{fill:var(--signal)}
.plan-label{position:absolute;left:0;top:0;opacity:0}
.plan-label>span{display:block;transform:translate(-50%,-50%);padding:1px 6px;border-radius:3px;background:var(--ink);color:#eef0ef;font-size:12px;font-weight:700;font-stretch:90%;font-variant-numeric:tabular-nums}
.plan-label.is-current>span{background:var(--signal);color:var(--ink)}
.plan-cards{position:absolute;inset:clamp(12px,1.6vw,22px) clamp(12px,1.6vw,22px) auto;display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(8px,1vw,14px)}
.plan-card-wrap{display:block;padding:0;border:0;background:none;text-align:left;opacity:0}
.plan-card{position:relative;display:flex;flex-direction:column;gap:12px;padding:14px 16px 16px;border-radius:5px;background:var(--ink);color:#b9c1c4;box-shadow:0 10px 30px -18px #1e2428;transition:transform .2s}
.plan-card-wrap:hover .plan-card{transform:translateY(-2px)}
.plan-card-wrap[aria-pressed=true] .plan-card{box-shadow:0 0 0 3px var(--signal)}
.plan-card p{font-size:13px;font-weight:600;font-variant-numeric:tabular-nums}
.plan-card b{color:var(--signal);font-weight:700}
.plan-card img{height:30px;width:auto;max-width:100%;object-fit:contain;object-position:left}
.plan-card.is-current:before{content:'';position:absolute;inset:0 0 auto;height:4px;border-radius:5px 5px 0 0;background:var(--signal)}
.plan-card-wrap:focus-visible{outline-color:var(--ink)}
.plan-stage.is-flat{aspect-ratio:auto;padding:16px}
.plan-stage.is-flat .plan-cards{position:static}
.plan-stage.is-flat .plan-card-wrap{opacity:1}
.plan-legend{display:flex;flex-wrap:wrap;gap:8px 24px;margin-top:16px;font-size:14px;color:#4a5358}
.plan-legend span{display:inline-flex;align-items:center;gap:8px}
.plan-legend span:last-child{color:var(--steel)}
.plan-legend i{display:inline-block}
.lg-booth{width:12px;height:10px;background:#f4f5f4;box-shadow:inset 0 0 0 1px var(--steel)}
.lg-person{width:6px;height:12px;border-radius:3px;background:var(--ink)}
.lg-off{width:22px;border-top:2px dashed #9aa3a7}
@media (max-width:1100px){.plan-head{grid-template-columns:1fr}}
@media (max-width:900px){.plan-stage{aspect-ratio:3/4}.plan-cards{grid-template-columns:1fr 1fr}.plan-card{padding:10px 12px 12px;gap:8px}.plan-card p{font-size:11px}.plan-card img{height:20px}.plan-label>span{font-size:10px}}
.plan-stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;margin-bottom:clamp(28px,3.5vw,48px);border-top:2px solid var(--ink)}
.plan-stats>div{display:flex;flex-direction:column-reverse;justify-content:flex-end;gap:6px;padding:16px 16px 0 0}
.plan-stats>div+div{padding-left:16px;border-left:1px solid var(--rule)}
.plan-stats dt{font-size:16px;font-weight:600;color:#353d42}
.plan-stats dt small{display:block;font-size:13px;font-weight:500;color:var(--steel)}
.plan-stats dd{font-size:clamp(44px,5.6vw,92px);line-height:1;font-weight:760;font-stretch:68%;font-variant-numeric:tabular-nums}
@media (max-width:900px){.plan-stats{grid-template-columns:1fr 1fr}.plan-stats>div{padding:14px 12px 14px 0!important;border-left:0!important}.plan-stats>div:nth-child(even){padding-left:12px!important;border-left:1px solid var(--rule)!important}.plan-stats>div:last-child{grid-column:1/-1}}
