/* aisrobotech.com — shared styles for index.html and mini-vmc.html */
*{box-sizing:border-box}
[hidden]{display:none !important}
body{margin:0;background:#ffffff;font-family:'Open Sans',system-ui,sans-serif;color:#1d1d1f;overflow-x:clip}
html{scroll-behavior:smooth;scroll-snap-type:y mandatory}
img{max-width:100%}
a{color:#c2410c}a:hover{color:#9a3412}
.wrap{max-width:1180px;width:100%;margin:0 auto;padding:0 24px}
.page{min-height:100vh;min-height:100svh;scroll-snap-align:start;scroll-snap-stop:always;display:flex;flex-direction:column;justify-content:center;padding:96px 0 72px;position:relative;overflow:hidden}
@media (max-width:860px){html{scroll-snap-type:y proximity}.page{padding:88px 0 64px}}
.h-display{font-family:'Montserrat',sans-serif;font-weight:800;letter-spacing:-0.035em;line-height:1.03;margin:0}
.eyebrow{font-family:'Montserrat',sans-serif;font-weight:700;font-size:13px;letter-spacing:0.14em;text-transform:uppercase}
.btn{white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 26px;border-radius:999px;font-family:'Montserrat',sans-serif;font-weight:700;font-size:15px;text-decoration:none;border:0;cursor:pointer;transition:transform .25s ease,background .25s ease,box-shadow .25s ease}
.btn:hover{transform:translateY(-2px)}
.btn-primary{background:#e04f00;color:#ffffff;box-shadow:0 10px 30px -10px rgba(248,91,6,.7)}
.btn-primary:hover{background:#c2410c;color:#ffffff}
.btn-outline{background:transparent;color:#c2410c;box-shadow:inset 0 0 0 1.5px #e04f00}
.btn-outline:hover{color:#9a3412;background:#fff3ec}
.btn-ghost{background:transparent;color:#ffffff;box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.45)}
.btn-ghost:hover{color:#ffffff;box-shadow:inset 0 0 0 1.5px #ffffff}
.btn-link{font-family:'Montserrat',sans-serif;font-weight:700;font-size:16px;color:#c2410c;text-decoration:none;background:none;border:0;cursor:pointer;padding:0}
.btn-link:hover{color:#9a3412;text-decoration:underline}

/* nav */
.nav{position:sticky;top:0;z-index:60;height:0}
.nav-bar{background:rgba(255,255,255,.8);backdrop-filter:saturate(180%) blur(18px);-webkit-backdrop-filter:saturate(180%) blur(18px);border-bottom:1px solid rgba(0,0,0,.07)}
.nav-dark .nav-bar{background:rgba(0,0,0,.72);border-bottom-color:rgba(255,255,255,.08)}
.nav-inner{display:flex;align-items:center;justify-content:space-between;height:60px;gap:16px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:#1d1d1f}
.nav-dark .brand{color:#ffffff}
.brand img{height:38px;width:auto;display:block}
.brand span{white-space:nowrap;font-family:'Montserrat',sans-serif;font-weight:800;font-size:18px;letter-spacing:-0.02em}
.brand b{color:#e04f00;font-weight:800}
.nav-links{display:flex;gap:28px;align-items:center}
.nav-links a{font-family:'Montserrat',sans-serif;font-weight:600;font-size:14px;color:#1d1d1f;text-decoration:none;transition:color .2s ease}
.nav-dark .nav-links a{color:#c7c7cc}
.nav-links a:hover{color:#e04f00}
.menu-btn{display:none;width:44px;height:44px;border:0;background:transparent;border-radius:10px;cursor:pointer;align-items:center;justify-content:center;color:#1d1d1f}
.mobile-menu{padding-bottom:20px}
.mobile-menu a{display:block;padding:14px 0;font-family:'Montserrat',sans-serif;font-weight:700;font-size:20px;color:#1d1d1f;text-decoration:none;border-bottom:1px solid #ededed}
@media (max-width:900px){.nav-links{display:none}.menu-btn{display:inline-flex}.nav-cta{display:none}}

/* page dots */
.dots{position:fixed;right:22px;top:50%;transform:translateY(-50%);z-index:55;display:flex;flex-direction:column;gap:6px}
.dot{width:28px;height:28px;display:flex;align-items:center;justify-content:center;text-decoration:none}
.dot span{width:8px;height:8px;border-radius:99px;background:rgba(120,120,128,.45);transition:all .35s cubic-bezier(.2,.8,.2,1)}
.dot:hover span{background:#8e8e93}
.dot.on span{height:24px;background:#f85b06}
@media (max-width:900px){.dots{display:none}}

/* layout pieces */
.grid-auto{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:20px}
.card{background:#ffffff;border-radius:24px;padding:30px;box-shadow:0 1px 2px rgba(0,0,0,.04),0 12px 40px -18px rgba(0,0,0,.18);transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s ease}
.card:hover{box-shadow:0 1px 2px rgba(0,0,0,.04),0 28px 60px -24px rgba(0,0,0,.28)}
.dark-card{background:#161618;border-radius:26px;padding:30px;display:flex;flex-direction:column;gap:14px}
.dark-card p{margin:0;color:#a1a1a6;font-size:16px;line-height:1.55}
.tabs{display:flex;gap:4px;flex-wrap:wrap;justify-content:center;margin-top:18px;background:#e7e7ea;padding:5px;border-radius:999px}
.tab{min-height:52px;padding:0 24px;border-radius:999px;border:0;cursor:pointer;font-family:'Montserrat',sans-serif;font-weight:700;font-size:16px;background:transparent;color:#3a3a3c;transition:background .35s ease,color .35s ease}
.tab:hover{color:#1d1d1f}
.tab.on{background:#ffffff;color:#1d1d1f;box-shadow:0 4px 14px -6px rgba(0,0,0,.25)}
.pill{min-height:44px;padding:0 18px;border-radius:999px;border:1.5px solid #d6d6d9;background:#ffffff;color:#3a3a3c;font-family:'Open Sans',sans-serif;font-weight:600;font-size:14px;cursor:pointer;transition:all .2s ease}
.pill.on{border-color:#e04f00;background:#fff3ec;color:#9a3412}
.step{flex:1 1 150px;min-height:64px;text-align:left;padding:14px 16px;border:0;border-radius:16px;background:transparent;cursor:pointer;color:#8e8e93;font-family:'Montserrat',sans-serif;transition:background .3s ease,color .3s ease}
.step:hover{background:rgba(255,255,255,.06);color:#d1d1d6}
.step.on{background:rgba(248,91,6,.16);color:#ffffff}
.step small{display:block;font-size:13px;font-weight:700;letter-spacing:.1em}
.step strong{display:block;font-size:18px;font-weight:700;margin-top:2px}
.field{display:flex;flex-direction:column;gap:6px}
.field label{font-family:'Montserrat',sans-serif;font-weight:600;font-size:13px;color:#3a3a3c}
.field input,.field textarea{font:inherit;font-size:16px;padding:12px 16px;border-radius:14px;border:1.5px solid #d6d6d9;background:#fbfbfd;color:#1d1d1f;outline:none;transition:border-color .2s ease,box-shadow .2s ease}
.field input:focus,.field textarea:focus{border-color:#e04f00;box-shadow:0 0 0 4px rgba(248,91,6,.15)}
.points{margin:8px 0 0;padding:0;list-style:none;display:flex;flex-direction:column}
.points li{display:flex;gap:14px;align-items:center;padding:14px 0;border-bottom:1px solid #ededed;font-size:17px;font-weight:600}
.points li::before{content:"";width:8px;height:8px;border-radius:99px;background:#f85b06;flex:none}
.specs{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:8px;flex-grow:1}
.specs li{display:flex;justify-content:space-between;gap:12px;font-size:14px;border-bottom:1px solid #f0f0f0;padding-bottom:8px}
.specs li span:first-child{color:#6e6e73}
.specs li span:last-child{font-weight:600;text-align:right}
.machine-photo{width:100%;aspect-ratio:4/3;object-fit:contain;background:#f5f5f7;border-radius:16px}
.tile{background:#161618;border-radius:22px;padding:26px 22px;display:flex;flex-direction:column;gap:6px;min-height:130px;justify-content:flex-end}
.tile .big{font-size:38px;font-variant-numeric:tabular-nums;background:linear-gradient(90deg,#ffffff,#ffd2b8);-webkit-background-clip:text;background-clip:text;color:transparent}
.tile .lbl{font-size:15px;color:#a1a1a6}
.list-item{padding:14px 0;border-bottom:1px solid #ededed}
.list-item p{margin:4px 0 0;color:#515154;font-size:16px;line-height:1.5}
.info{display:flex;flex-direction:column;gap:4px}
.info .eyebrow{color:#a1a1a6;font-size:11px}
.info div:last-child{font-size:16px;line-height:1.5}
.info a{color:#ffffff}

/* entry animations: run when a page comes into view (JS adds anim-on + is-in) */
.anim-on .page .ani{opacity:0;transform:translateY(56px);transition:opacity 1s cubic-bezier(.2,.8,.2,1),transform 1s cubic-bezier(.2,.8,.2,1)}
.anim-on .page .ani.zoom{transform:scale(.86)}
.anim-on .page .ani.from-left{transform:translateX(-80px)}
.anim-on .page .ani.from-right{transform:translateX(80px)}
.anim-on .page .ani.t1{transition-delay:.08s}.anim-on .page .ani.t2{transition-delay:.18s}.anim-on .page .ani.t3{transition-delay:.28s}.anim-on .page .ani.t4{transition-delay:.38s}.anim-on .page .ani.t5{transition-delay:.48s}.anim-on .page .ani.t6{transition-delay:.58s}.anim-on .page .ani.t7{transition-delay:.68s}.anim-on .page .ani.t8{transition-delay:.78s}
.anim-on .page.is-in .ani{opacity:1;transform:none}
.word{transition:color .7s ease}
.anim-on .page .word{color:#d2d2d7}
.anim-on .page.is-in .word{color:#1d1d1f}
.anim-on .page.is-in .word.hl{color:#e04f00}
.word.w2{transition-delay:.45s}.word.w3{transition-delay:.9s}.word.w4{transition-delay:1.35s}

/* panel switch animations */
.panel-in{animation:panelIn .7s cubic-bezier(.2,.8,.2,1) both}
.panel-in .points li{animation:itemIn .6s cubic-bezier(.2,.8,.2,1) both}
.panel-in .points li:nth-child(1){animation-delay:.15s}.panel-in .points li:nth-child(2){animation-delay:.25s}.panel-in .points li:nth-child(3){animation-delay:.35s}.panel-in .points li:nth-child(4){animation-delay:.45s}
.art-in{animation:artIn .9s cubic-bezier(.2,.8,.2,1) both}
@keyframes panelIn{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
@keyframes itemIn{from{opacity:0;transform:translateX(-24px)}to{opacity:1;transform:none}}
@keyframes artIn{from{opacity:0;transform:scale(.85) rotate(-4deg)}to{opacity:1;transform:none}}

/* drawings */
@keyframes drawIn{to{stroke-dashoffset:0}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes spindle{0%,100%{transform:translateY(0)}50%{transform:translateY(14px)}}
@keyframes blink{0%,100%{opacity:.25}50%{opacity:1}}
@keyframes typeLine{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes loopDraw{0%{stroke-dashoffset:1}70%,100%{stroke-dashoffset:0}}
@keyframes bounce{0%,100%{transform:translateY(0)}50%{transform:translateY(8px)}}
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes heroIn{from{opacity:0;transform:translateY(40px)}to{opacity:1;transform:none}}
.hero-in{animation:heroIn 1.1s cubic-bezier(.2,.8,.2,1) both}
.d1{animation-delay:.12s}.d2{animation-delay:.24s}.d3{animation-delay:.36s}.d4{animation-delay:.5s}
.draw{stroke-dasharray:1;stroke-dashoffset:1;animation:drawIn 2.2s cubic-bezier(.6,0,.2,1) .5s forwards}
.draw.late{animation-delay:1.3s}
.spindle{animation:spindle 2.4s ease-in-out infinite}
.gear-cw{transform-box:fill-box;transform-origin:center;animation:spin 9s linear infinite}
.gear-ccw{transform-box:fill-box;transform-origin:center;animation:spin 6.3s linear infinite reverse}
.atc{transform-box:fill-box;transform-origin:center;animation:spin 14s linear infinite}
.led{animation:blink 1.4s ease-in-out infinite}
.led.l2{animation-delay:.45s}.led.l3{animation-delay:.9s}
.trace{stroke-dasharray:1;stroke-dashoffset:1;animation:drawIn 1.4s cubic-bezier(.6,0,.2,1) forwards}
.trace.r2{animation-delay:.25s}.trace.r3{animation-delay:.5s}.trace.r4{animation-delay:.75s}.trace.r5{animation-delay:1s}.trace.r6{animation-delay:1.25s}
.code{transform-box:fill-box;transform-origin:left center;transform:scaleX(0);animation:typeLine .5s ease-out forwards}
.code.c2{animation-delay:.35s}.code.c3{animation-delay:.7s}.code.c4{animation-delay:1.05s}.code.c5{animation-delay:1.4s}.code.c6{animation-delay:1.75s}
.cursor{animation:blink 1s steps(1) infinite}
.toolpath{stroke-dasharray:1;animation:loopDraw 5s ease-in-out infinite}
.hint{animation:bounce 1.8s ease-in-out infinite}
.marquee{display:flex;width:max-content;animation:marquee 34s linear infinite;gap:48px;font-family:'Montserrat',sans-serif;font-weight:700;font-size:14px;letter-spacing:.12em;text-transform:uppercase;color:#8e8e93}
.marquee i{color:#f85b06;font-style:normal}
@media (prefers-reduced-motion: reduce){
html{scroll-behavior:auto}
.hero-in,.draw,.spindle,.gear-cw,.gear-ccw,.atc,.led,.trace,.code,.cursor,.toolpath,.hint,.marquee,.panel-in,.panel-in .points li,.art-in{animation:none}
.draw,.trace{stroke-dashoffset:0}.code{transform:none}
.anim-on .page .ani{opacity:1;transform:none;transition:none}
.anim-on .page .word{color:#1d1d1f}
.anim-on .page.is-in .word.hl{color:#e04f00}
}
