/* Loomency: soft entrances, precise icons, useful feedback. */
:root{--motion-ease:cubic-bezier(.22,1,.36,1)}
.motion-icon,.link-arrow{width:20px;height:20px;flex:none;vertical-align:middle}.link-arrow{transition:transform .35s var(--motion-ease)}
.btn:hover .link-arrow,.text-link:hover .link-arrow{transform:translate(3px,-3px)}
.text-link{position:relative}.text-link:after{content:'';position:absolute;left:0;bottom:-5px;right:30px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .35s var(--motion-ease)}.text-link:hover:after{transform:scaleX(1)}
.btn{position:relative;overflow:hidden;transition:background .25s,transform .35s var(--motion-ease),box-shadow .35s}.btn:after{content:'';pointer-events:none;position:absolute;inset:0;background:linear-gradient(110deg,transparent 15%,#ffffff20 50%,transparent 85%);transform:translateX(-130%);transition:transform .65s var(--motion-ease)}.btn:hover:after{transform:translateX(130%)}.btn-primary:hover{box-shadow:0 8px 24px #22321c1c}.btn:active{transform:translateY(0) scale(.98)}
.nav-shell{position:sticky;top:0;z-index:40;background:#f7f8f3e8;border-bottom:1px solid transparent;transition:background .3s,border-color .3s,box-shadow .3s;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}.nav-shell.is-scrolled{background:#f7f8f3f2;border-color:#dce3d699;box-shadow:0 8px 30px #20301b08}
.site-nav{height:84px;transition:height .3s var(--motion-ease)}.is-scrolled .site-nav{height:70px}.scroll-progress{height:2px;position:absolute;top:0;left:0;right:0;background:linear-gradient(90deg,#829d4c,#c3e86d);transform:scaleX(0);transform-origin:left;pointer-events:none}
.nav-links a{position:relative;transition:color .2s}.nav-links a:after{content:'';position:absolute;bottom:-8px;left:0;right:0;height:2px;border-radius:2px;background:#8aa658;transform:scaleX(0);transform-origin:left;transition:transform .3s var(--motion-ease)}.nav-links a:hover:after,.nav-links a[aria-current]:after{transform:scaleX(1)}
.brand img{transition:transform .45s var(--motion-ease)}.brand:hover img{transform:rotate(-8deg) scale(1.08)}
.mobile-toggle{width:36px;height:40px;position:relative;padding:8px}.mobile-toggle span{position:absolute;width:20px;height:1.6px;background:var(--ink);left:8px;top:16px;transition:transform .3s,top .3s}.mobile-toggle span+span{top:23px}.mobile-toggle[aria-expanded=true] span{top:20px;transform:rotate(45deg)}.mobile-toggle[aria-expanded=true] span+span{transform:rotate(-45deg)}
.headline-line{display:block}.hero h1 em{position:relative;display:inline-block}.hero h1 em:after{content:'';position:absolute;left:1%;right:1%;bottom:-.04em;height:.08em;background:#c4da9e80;border-radius:100%;transform:scaleX(0);transform-origin:left;animation:headline-mark 1s .65s var(--motion-ease) forwards}
.motion-ready .reveal{transition:opacity .8s var(--motion-ease) var(--reveal-delay,0ms),translate .8s var(--motion-ease) var(--reveal-delay,0ms)}.motion-ready .reveal:not(.is-visible){opacity:0;translate:0 25px}.reveal.is-visible{opacity:1;translate:0 0}
.hero-visual{height:550px;isolation:isolate;perspective:900px;background:linear-gradient(135deg,#e9eedf,#dfe8d4 65%,#e9efdc)}
.visual-glow{position:absolute;inset:10% -25% -15%;border-radius:50%;background:radial-gradient(ellipse at 50% 60%,#d4f195a6,transparent 64%);animation:glow-drift 12s ease-in-out infinite alternate;pointer-events:none}
.field-art{animation:field-drift 14s ease-in-out infinite alternate;transform-origin:50% 50%}.field-art g{stroke-dasharray:1400;stroke-dashoffset:1400;animation:line-draw 2.2s .3s var(--motion-ease) forwards}
.orbit{position:absolute;width:9px;height:9px;border-radius:50%;background:#a0bd66;box-shadow:0 0 0 7px #a9c57b1f;z-index:1;pointer-events:none}.orbit-one{top:18%;left:21%;animation:orbit-float 8s ease-in-out infinite}.orbit-two{bottom:16%;left:12%;width:6px;height:6px;background:#6e9149;animation:orbit-float 10s -3s ease-in-out infinite reverse}
.visual-label{z-index:2;right:65px;font-size:9px;letter-spacing:1.6px}.visual-label span{animation:dot-breathe 3s ease-in-out infinite}
.motion-toggle{position:absolute;z-index:5;top:15px;right:15px;width:40px;height:40px;border:1px solid #a8b99655;border-radius:50%;background:#f7f9f07d;color:#63764b;display:grid;place-items:center;transition:background .2s,transform .3s}.motion-toggle .motion-icon{width:15px;height:15px}.motion-toggle:hover{background:#ffffffbc;transform:scale(1.05)}.motion-toggle[aria-pressed=true]{background:#fff9}.motion-toggle:disabled{opacity:.65}
.demo-card{z-index:3;transform:translate3d(var(--drift-x,0px),var(--drift-y,0px),0) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg)) rotate(-3deg);transition:transform .7s var(--motion-ease),box-shadow .6s;animation:card-arrive 1.2s var(--motion-ease) backwards;top:90px;overflow:hidden}.hero-visual:hover .demo-card{box-shadow:0 30px 75px #35412d2c}
.demo-card:after{content:'';pointer-events:none;position:absolute;left:0;right:0;top:0;height:70px;background:linear-gradient(transparent,#d7f99c77,transparent);opacity:0;transform:translateY(-100%)}[data-demo-state=cleaning] .demo-card:after{animation:scan-sweep .85s linear both}
.demo-table{table-layout:fixed}.demo-table th:nth-child(1){width:29%}.demo-table th:nth-child(2){width:43%}.demo-table th:nth-child(3){width:28%}.demo-table td{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;transition:padding .55s var(--motion-ease),height .55s var(--motion-ease),line-height .55s,font-size .55s,opacity .4s,background .5s}
.demo-duplicate{height:44px;transition:height .55s var(--motion-ease),opacity .3s}[data-demo-state=cleaning] .demo-duplicate td{background:#faf0db80}[data-demo-state=clean] .demo-duplicate{height:0;opacity:0;visibility:hidden}[data-demo-state=clean] .demo-duplicate td{padding-top:0;padding-bottom:0;height:0;line-height:0;font-size:0;border-top-width:0}[data-demo-state=clean] .demo-duplicate td span{font-size:0;padding:0;line-height:0}[data-demo-state=clean] .demo-table tr:not(.demo-duplicate) td{background:#f5faed}
.demo-card-bottom{align-items:center;gap:8px;padding:11px 14px;min-height:51px}.demo-card-bottom>span{font-size:9px}.demo-run{min-height:30px;display:inline-flex;align-items:center;gap:5px;flex:none;border:1px solid #dbe8c7;border-radius:6px;padding:5px 8px;background:#edf5e0;color:#526b30;font-size:9px;font-weight:600;transition:background .25s,transform .25s}.demo-run:hover{background:#def0c3;transform:translateY(-1px)}.demo-run .motion-icon{width:12px;height:12px}.demo-run:disabled{opacity:.7}
.success-card{z-index:4;animation:success-arrive 1s .45s var(--motion-ease) backwards;transition:transform .6s var(--motion-ease),box-shadow .6s;right:21px;bottom:55px}.success-card .check .motion-icon{width:17px;height:17px}.success-card .check{transition:transform .5s var(--motion-ease),box-shadow .5s}[data-demo-state=clean] .success-card{transform:rotate(0) translateY(-7px);box-shadow:0 18px 40px #20301b40}[data-demo-state=clean] .success-card .check{transform:rotate(360deg);box-shadow:0 0 0 5px #d6fb661a}
.principles>div{transition:color .3s}.principles>div:hover{color:#678f32}.principles svg{transition:transform .4s var(--motion-ease)}.principles>div:hover svg{transform:translateY(-3px) rotate(-5deg)}
.product-main{transition:border-color .4s,box-shadow .4s,transform .4s var(--motion-ease)}.product-main:hover{border-color:#bccda3;box-shadow:0 18px 40px #3343260c;transform:translateY(-4px)}
.mini-chart i{transform-origin:bottom;transition:background .3s}.motion-ready .product-main:not(.is-visible) .mini-chart i{transform:scaleY(.06)}.product-main.is-visible .mini-chart i{animation:bar-grow .9s var(--motion-ease) both}.mini-chart i:nth-child(3n+1){animation-delay:.12s}.mini-chart i:nth-child(3n+2){animation-delay:.24s}.mini-chart i:nth-child(3n){animation-delay:.36s}
.step-num{display:flex;flex-direction:column;align-items:center;gap:8px;margin-top:0;flex:none;font-size:9px}.step-icon{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:#e2e9d6;border:1px solid #d4dec6;color:#668442;transition:background .3s,transform .4s var(--motion-ease),box-shadow .4s}.step:hover .step-icon{background:#d6ebae;transform:rotate(-7deg) translateY(-2px);box-shadow:0 5px 14px #6f87451a}.step-icon .motion-icon{width:21px;height:21px}.step{align-items:flex-start;transition:padding-left .35s var(--motion-ease)}.step:hover{padding-left:5px}
.why:before{content:'';pointer-events:none;position:absolute;width:520px;height:520px;top:-220px;left:-200px;border-radius:50%;border:1px solid #b8d77a16;box-shadow:0 0 0 36px #b8d77a08,0 0 0 72px #b8d77a05;animation:why-drift 14s ease-in-out infinite alternate}.why-inner{position:relative}.why-item{transition:border-color .3s}.why-item:hover{border-color:#9fb67d80}.why-item>svg{transition:transform .4s var(--motion-ease)}.why-item:hover>svg{transform:scale(1.15) rotate(-5deg)}
.faq summary{transition:color .25s}.faq summary:hover{color:#668442}.faq summary:after{content:'+'!important;display:grid;place-items:center;width:24px;height:24px;border-radius:50%;border:1px solid #dce4d1;flex:none;transition:transform .35s var(--motion-ease),background .3s}.faq details[open]:not([data-expanded=false]) summary:after{transform:rotate(45deg);background:#e9efdd}
.final-cta{position:relative;isolation:isolate;overflow:hidden;border:1px solid #dbe4cd}.final-cta:before{content:'';position:absolute;z-index:-1;right:-80px;top:-115px;width:400px;height:400px;border-radius:50%;background:repeating-radial-gradient(circle,transparent 0 23px,#8eab5f24 24px 25px);transition:transform 1s var(--motion-ease)}.final-cta:hover:before{transform:translate(-20px,10px) rotate(12deg)}
/* App feedback retains actual data values and native controls. */
.side-link{transition:background .25s,color .25s,transform .25s}.side-link:hover{transform:translateX(3px)}.side-link svg{transition:transform .3s}.side-link:hover svg{transform:scale(1.08)}
.stat-card,.quality-tile,.column-card{transition:transform .3s var(--motion-ease),border-color .3s,box-shadow .3s}.stat-card:hover,.quality-tile:hover,.column-card:hover{transform:translateY(-3px);border-color:#c4d3ad;box-shadow:0 8px 22px #22321c09}
.tab-panel:not([hidden]){animation:panel-enter .45s var(--motion-ease) both}#loaded-workspace:not([hidden]){animation:panel-enter .55s var(--motion-ease) both}
.data-table tbody tr{animation:table-row-enter .4s var(--motion-ease) backwards}.data-table tbody tr:nth-child(2){animation-delay:30ms}.data-table tbody tr:nth-child(3){animation-delay:60ms}.data-table tbody tr:nth-child(4){animation-delay:90ms}.data-table tbody tr:nth-child(5){animation-delay:120ms}.data-table tbody tr:nth-child(6){animation-delay:150ms}.data-table tbody tr:nth-child(7){animation-delay:180ms}.data-table tbody tr:hover{transition:background .2s}.score-track-fill,.completeness-track i{transition:width .8s var(--motion-ease)}
.dropzone{transition:border-color .3s,background .3s,box-shadow .3s,transform .3s}.dropzone:hover,.dropzone.dragover{box-shadow:0 8px 30px #77934010;transform:translateY(-2px)}.toast:not([hidden]){animation:toast-enter .35s var(--motion-ease) both}
dialog{opacity:0;translate:0 10px;transition:opacity .22s,translate .3s var(--motion-ease),display .3s allow-discrete,overlay .3s allow-discrete}dialog[open]{opacity:1;translate:0 0}dialog::backdrop{opacity:0;transition:opacity .25s,display .3s allow-discrete,overlay .3s allow-discrete}dialog[open]::backdrop{opacity:1}
@starting-style{dialog[open]{opacity:0;translate:0 12px}dialog[open]::backdrop{opacity:0}}
@keyframes headline-mark{to{transform:scaleX(1)}}
@keyframes glow-drift{from{transform:translate(-8px,8px) scale(.94)}to{transform:translate(15px,-20px) scale(1.08)}}
@keyframes field-drift{from{transform:scale(1) rotate(-1deg)}to{transform:scale(1.05) rotate(1deg)}}
@keyframes line-draw{to{stroke-dashoffset:0}}
@keyframes orbit-float{0%,100%{transform:translate(0,0)}50%{transform:translate(20px,-14px)}}
@keyframes dot-breathe{0%,100%{box-shadow:0 0 0 0 #50644018}50%{box-shadow:0 0 0 5px #50644000}}
@keyframes card-arrive{from{opacity:0;transform:translate3d(0,35px,0) rotate(-7deg)}to{opacity:1;transform:translate3d(0,0,0) rotate(-3deg)}}
@keyframes success-arrive{from{opacity:0;transform:translateY(22px) rotate(6deg)}to{opacity:1;transform:translateY(0) rotate(3deg)}}
@keyframes scan-sweep{0%{opacity:0;transform:translateY(-100%)}20%{opacity:1}80%{opacity:1}100%{opacity:0;transform:translateY(380px)}}
@keyframes bar-grow{from{transform:scaleY(.08)}to{transform:scaleY(1)}}
@keyframes why-drift{to{transform:translate(30px,25px)}}
@keyframes panel-enter{from{opacity:.35;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@keyframes table-row-enter{from{opacity:0}to{opacity:1}}
@keyframes toast-enter{from{opacity:0;translate:0 12px}to{opacity:1;translate:0 0}}
@media(prefers-reduced-motion:no-preference){@view-transition{navigation:auto}::view-transition-old(root){animation:.2s ease-out both page-out}::view-transition-new(root){animation:.4s var(--motion-ease) both page-in}}
@keyframes page-out{to{opacity:0;transform:translateY(-6px)}}@keyframes page-in{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:translateY(0)}}
.motion-paused *,.motion-paused *:before,.motion-paused *:after,.motion-reduced *,.motion-reduced *:before,.motion-reduced *:after{animation:none!important;transition:none!important}.motion-paused .reveal,.motion-reduced .reveal{opacity:1!important;translate:none!important}.motion-paused .field-art g,.motion-reduced .field-art g{stroke-dashoffset:0}.motion-paused .hero h1 em:after,.motion-reduced .hero h1 em:after{transform:scaleX(1)}
.page-hidden *,.page-hidden *:before,.page-hidden *:after{animation-play-state:paused!important}
@media(max-width:1000px){.demo-card{top:89px}.success-card{right:16px;bottom:51px;padding:17px 20px}.visual-label{font-size:8px;letter-spacing:1.3px}}
@media(max-width:720px){.site-nav{height:76px}.is-scrolled .site-nav{height:66px}.nav-links{top:calc(100% - 5px);left:20px;right:20px;z-index:50}.nav-links.open{animation:panel-enter .3s var(--motion-ease)}.nav-links a:after{bottom:-3px}.hero-visual{height:510px}.demo-card{top:82px;left:6%;right:6%}.demo-table td,.demo-table th{font-size:9px;padding:11px 9px}.demo-table .flag,.demo-table .clean{font-size:8px}.demo-card-bottom{padding:9px 11px}.success-card{right:17px;bottom:48px;padding:15px 19px;gap:10px}.success-card strong{font-size:12px}.success-card small{font-size:9px}.success-card .check{width:30px;height:30px}.visual-foot{font-size:7px;left:20px;right:20px;letter-spacing:1.2px}.hero h1{font-size:clamp(44px,12.5vw,63px);letter-spacing:-3.4px}.step-icon{width:38px;height:38px;border-radius:10px}.product-main:hover{transform:none}}
@media(max-width:370px){.hero-visual{height:480px}.demo-card{top:72px;left:4%;right:4%}.demo-table td,.demo-table th{font-size:8px;padding:9px 7px}.success-card{bottom:43px;right:12px;padding:13px 15px}.visual-label{left:18px;max-width:210px;font-size:7px}.motion-toggle{top:12px;right:12px;width:34px;height:34px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.reveal{opacity:1!important;translate:none!important}.field-art g{stroke-dashoffset:0}.hero h1 em:after{transform:scaleX(1)}.demo-card{transform:rotate(-3deg)!important}::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}}
