/* Innobox — editorial direction and original software factory. */
:root{--editorial-paper:#faf9fc;--editorial-rule:#ded9e8}
html{scroll-padding-top:100px}.header .brand img{border-radius:7px;background:var(--night);padding:2px}
.factory-hero{background:linear-gradient(180deg,#fff,#faf9fc);overflow:clip}
.factory-hero .experience-grid{max-width:1480px;grid-template-columns:.86fr 1.24fr;gap:35px;min-height:650px;padding-top:12px;padding-bottom:45px}
.factory-hero .experience-copy h1{font-size:clamp(50px,4.6vw,76px);line-height:1.05;letter-spacing:-.06em;margin-block:25px}
.factory-hero .experience-copy .lead{font-size:17px;line-height:1.85;max-width:470px}
.factory-hero .experience-copy .eyebrow{font-size:10px}.factory-hero .experience-visual{padding:15px 0 0}
.factory-hero .hero-chips>span{border:0;border-radius:0;padding:0 14px 0 0;background:none;display:flex;align-items:center;gap:7px;color:#685f80;font:10px var(--body)}
.factory-hero .hero-chips>span:before{content:'';width:3px;height:3px;border-radius:50%;background:var(--cyan-ink)}
.factory-hero .hero-bottom{max-width:1480px;background:transparent}.factory-hero .experience-copy .actions{gap:25px}
.software-factory{margin:0;position:relative;--carrier-x:850px;color:var(--ink);min-width:0}
.factory-topline{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:0 12px 10px;color:#685f80}
.factory-topline>span{font:9px var(--mono);letter-spacing:.06em;display:flex;align-items:center;gap:9px}.factory-topline i{display:block;width:5px;height:5px;border-radius:50%;background:var(--cyan-ink)}
.factory-topline button{border:1px solid #140a2b20;background:white;border-radius:20px;padding:7px 12px;font:10px var(--body);color:#463d5f;cursor:pointer;flex-shrink:0}
.factory-drawing{display:block;width:100%;height:auto;overflow:visible;padding-top:15px}
.factory-carrier{transform:translateX(var(--carrier-x));transition:transform 1.15s var(--ease-io);will-change:transform}
.factory-drawing .station-name{font:13px var(--mono);fill:#685f80}.station-light{fill:#b8b0ca;transition:fill .4s}.station-underline{stroke:#d8d1e4;stroke-width:1.5;transition:stroke .4s,stroke-width .4s}
.factory-station.is-current .station-light{fill:var(--cyan-ink)}.factory-station.is-current .station-name{fill:#140a2b}.factory-station.is-current .station-underline{stroke:var(--cyan-ink);stroke-width:3}
.factory-station:last-of-type.is-current .station-underline{stroke:var(--magenta-ink)}
.unit-part,.output-part{opacity:1;transition:opacity .55s,transform .55s var(--ease)}.unit-part.is-pending,.output-part.is-pending{opacity:.08}
.output-outline{transition:stroke .5s}.software-factory[data-stage="4"] .output-outline{stroke:#a8128f55}.output-ready{opacity:0;transition:opacity .5s}.software-factory[data-stage="4"] .output-ready{opacity:1}
.factory-controls{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));padding-top:8px;border-bottom:1px solid var(--editorial-rule)}
.factory-controls>button{display:flex;flex-direction:column;gap:8px;border:0;background:none;padding:12px 3px 15px;position:relative;cursor:pointer;text-align:left;color:#685f80}
.factory-controls>button span{font:9px var(--mono)}.factory-controls>button strong{font:500 11px var(--body)}
.factory-controls>button:after{content:'';position:absolute;inset:auto 0 -1px;height:2px;background:var(--cyan-ink);transform:scaleX(0);transform-origin:left;transition:transform .35s}
.factory-controls>button[aria-pressed=true]{color:var(--ink)}.factory-controls>button[aria-pressed=true]:after,.factory-controls>button:hover:after{transform:scaleX(.9)}.factory-controls>button:last-child:after{background:var(--magenta-ink)}
.factory-story{display:grid;grid-template-columns:45px 1fr;gap:16px;padding:22px 0 14px;min-height:111px}
.factory-story>span{font:9px var(--mono);color:var(--cyan-ink);padding-top:5px}.factory-story strong{font:500 17px var(--display);letter-spacing:-.035em;display:block;color:var(--ink)}.factory-story p{font:12px/1.8 var(--body);color:#685f80;margin-top:8px;max-width:500px}
.software-factory figcaption{font:9px/1.8 var(--body);color:#685f80;border-top:1px solid #140a2b0c;padding-top:12px}
.software-factory.is-running .factory-station.is-current .robot-upper{animation:robot-turn 2.8s var(--ease-io) infinite}.software-factory.is-running .factory-station.is-current .robot-lower{animation:robot-turn 2.8s var(--ease-io) .2s infinite alternate}
.software-factory.is-running .factory-station.is-current .scan-line{animation:factory-scan 2.2s var(--ease-io) infinite}.software-factory.is-running .conveyor-signal{animation:conveyor-flow 2s linear infinite}.software-factory.is-running .data-packet{animation:factory-data 5s linear infinite}.software-factory.is-running[data-stage="4"] .publish-trace{animation:conveyor-flow 2s linear infinite reverse}
@keyframes robot-turn{0%,25%,100%{transform:rotate(0deg)}55%,75%{transform:rotate(var(--arm-angle))}}
@keyframes factory-scan{0%,100%{transform:translateY(-14px);opacity:.1}50%{transform:translateY(30px);opacity:1}}
@keyframes conveyor-flow{to{stroke-dashoffset:-48}}
@keyframes factory-data{0%{transform:translateX(0);opacity:0}10%{opacity:1}90%{opacity:1}100%{transform:translateX(540px);opacity:0}}
/* A commercial sequence: need -> work -> people -> products -> conversation. */
.outcomes-section{background:var(--editorial-paper);border-top:1px solid var(--editorial-rule)}
.outcomes-layout{display:grid;grid-template-columns:1fr 1.3fr;gap:95px;align-items:start}
.outcomes-intro{position:sticky;top:125px}.outcomes-intro h2{font-size:clamp(36px,3.9vw,58px);line-height:1.1}.outcomes-intro>p{font-size:15px;line-height:1.85;color:#685f80;margin-top:28px;max-width:370px}
.editorial-note{display:block;font:10px/1.8 var(--mono);color:#685f80;border-top:1px solid var(--editorial-rule);padding-top:20px;margin-top:30px;max-width:370px}
.outcome-row{display:grid;grid-template-columns:28px 1fr 24px;gap:20px;padding:29px 0 33px;border-top:1px solid #140a2b26;transition:background .3s}
.outcome-row:first-child{padding-top:0;border:0}.outcome-row:hover h3{color:var(--cyan-ink)}.outcome-row:hover .outcome-arrow{transform:translate(3px,-3px)}
.outcome-number{font:10px var(--mono);color:#857a9c;padding-top:4px}.outcome-service{font:10px var(--mono);color:#685f80;display:block;margin-bottom:12px}
.outcome-row h3{font:500 26px/1.25 var(--display);letter-spacing:-.045em;transition:color .3s;max-width:500px}.outcome-row p{font-size:14px;line-height:1.8;margin-top:14px;color:#685f80;max-width:480px}.outcome-price{display:block;font-size:11px;color:#463d5f;margin-top:20px}.outcome-arrow{align-self:center;transition:transform .3s;color:#463d5f}
.proof-section{background:#fff;color:var(--ink)}.proof-section .section-head{align-items:start}.proof-section .section-head h2{font-size:clamp(38px,4.1vw,62px)}.proof-section .eyebrow,.proof-section .section-head p{color:#685f80}.proof-section .eyebrow:before{background:var(--cyan-ink)}.proof-section .section-head>div:last-child{max-width:330px}.proof-section .section-head p{font-size:15px;line-height:1.85}.proof-section .text-link{margin-top:25px}
.proof-section .project-grid{display:grid;grid-template-columns:1.25fr 1fr;column-gap:40px;row-gap:30px}.proof-section .project:first-child{grid-row:span 2}.proof-section .project:first-child .project-visual{aspect-ratio:.98}.proof-section .project:first-child .project-visual>img{object-fit:cover;object-position:top;min-height:100%}.proof-section .project:not(:first-child) .project-visual{aspect-ratio:2.55}.proof-section .project-caption>span{color:#685f80}.proof-section .project-summary{color:#685f80}.proof-section .project-visual{border-radius:13px;box-shadow:0 25px 50px -40px #140a2b66}.proof-section .project-visual>img{object-position:top}.proof-section .project-caption h3{font-size:23px}.proof-note{font-size:11px;line-height:1.8;color:#685f80;margin-top:30px;max-width:700px}
.human-section{background:var(--night-900);color:var(--paper);position:relative}.human-heading{display:grid;grid-template-columns:1.5fr 1fr;gap:20px 80px;align-items:end}.human-heading .eyebrow{grid-column:1/-1;margin-bottom:0}.human-heading h2{font-size:clamp(38px,4.2vw,62px);line-height:1.1}.human-heading h2>span{color:var(--lilac)}.human-heading>p{font-size:15px;line-height:1.9;max-width:360px}.human-layout{display:grid;grid-template-columns:1fr 1fr;gap:100px;margin-top:65px;align-items:center}
.review-composition{position:relative;padding:0 20px 15px 0}.review-page{position:relative;background:#f6f4fb;color:var(--ink);padding:36px 40px 30px;border-radius:4px 22px 4px 4px;box-shadow:12px 12px 0 0 #ffffff08;transform:rotate(-2deg)}
.review-kicker{font:8px var(--mono);color:#685f80}.review-page h3{font-size:34px;line-height:1.14;margin-top:23px;letter-spacing:-.05em}.review-page ul{padding:0;list-style:none;margin:25px 0 0}.review-page li{display:flex;gap:15px;align-items:center;font-size:12px;color:#463d5f;padding:12px 0;border-bottom:1px solid #140a2b12}.review-page li>span{font:9px var(--mono);color:var(--cyan-ink)}
.review-signature{display:flex;align-items:center;gap:10px;margin-top:25px;font-size:11px;color:#463d5f}.review-check{width:24px;height:24px;display:grid;place-items:center;border-radius:50%;background:#a8128f0d;color:var(--magenta-ink);border:1px solid #a8128f25}
.review-roles{position:relative;display:flex;justify-content:end;gap:7px;margin-top:-20px;margin-right:-30px;transform:rotate(1deg)}.review-roles>span{padding:12px 15px;border:1px solid #8f84f055;border-radius:25px;background:#24133f;color:var(--paper);font-size:10px;box-shadow:0 8px 20px #0b051833}.review-roles>span:first-child{border-color:#2bdfff55}.review-caption{font-size:9px!important;line-height:1.8!important;margin:25px 0 0;text-align:center;color:var(--secondary)}
.method-accordions details{border-top:1px solid var(--line);padding:24px 0}.method-accordions details:last-child{border-bottom:1px solid var(--line)}.method-accordions summary{display:block;cursor:pointer;list-style:none;font:500 23px/1.35 var(--display);letter-spacing:-.04em;padding-right:25px;position:relative}.method-accordions summary::-webkit-details-marker{display:none}.method-accordions summary:after{content:'+';position:absolute;right:0;top:15px;color:var(--lilac);font:20px var(--body)}.method-accordions details[open] summary:after{content:'−'}.method-accordions summary>span{display:block;font:9px var(--mono);letter-spacing:.03em;color:var(--secondary);margin-bottom:12px}.method-accordions p{font-size:14px;line-height:1.9;margin-top:20px;color:var(--secondary);max-width:420px}
.ecosystem-section{background:#faf9fc}.ecosystem-section .section-head h2{font-size:clamp(36px,3.7vw,55px)}.ecosystem-editorial{display:grid;grid-template-columns:1fr 1fr;gap:50px}.ecosystem-editorial>a{position:relative;padding:35px 0 0;border-top:1px solid #140a2b33;display:flex;flex-direction:column;align-items:start;transition:border-color .3s}.ecosystem-editorial>a:hover{border-color:var(--cyan-ink)}.ecosystem-label{font:10px var(--mono);letter-spacing:.06em;color:#685f80}.ecosystem-editorial h3{font-size:29px;line-height:1.18;margin:23px 0 20px;letter-spacing:-.045em}.ecosystem-editorial p{font-size:14px;line-height:1.85;color:#685f80;max-width:450px}.product-name-line{display:flex;flex-wrap:wrap;gap:0;margin-top:28px;font:10px var(--mono);color:#463d5f}.product-name-line>span{padding:4px 14px 4px 0;margin-right:14px;border-right:1px solid #140a2b22}.product-name-line>span:last-child{border:0;padding-right:0;margin-right:0}.brand-cycle{display:flex;align-items:center;gap:13px;margin-top:30px;color:#463d5f;font:10px var(--mono)}.brand-cycle>i{display:block;width:20px;height:1px;background:#a8128f55}.ecosystem-link{display:flex;gap:20px;align-items:center;font-size:12px;margin-top:auto;padding-top:35px;padding-bottom:5px}.ecosystem-link .arrow-icon{color:var(--cyan-ink)}
/* Align shared demos as a single component, with readable controls in normal flow. */
.live-scene:before,.live-scene:after{display:none}.live-scene{border-radius:14px;box-shadow:0 28px 65px -40px #1f0d4144;overflow:visible}
.live-scene .scene-footer{display:flex;align-items:center;gap:15px;min-height:50px;padding:13px 17px;font:11px var(--body);color:#463d5f;flex-wrap:wrap;background:#fff}.live-scene .scene-footer [data-scene-status]{flex:1}.live-scene .scene-progress{display:none}
.scene-pause{position:static;inset:auto;display:inline-block;transform:none;margin:0;font:10px var(--body);padding:6px 9px;text-decoration:none;border:1px solid #140a2b22;background:white;border-radius:20px;color:#463d5f;flex-shrink:0}
.live-scene .scene-controls{margin:0;padding:12px 14px;transform:none;gap:8px;background:#f6f4fb;border-top:1px solid #140a2b10}.live-scene .scene-controls>button{font:10px/1.5 var(--body);padding:9px 10px;min-height:46px;background:transparent;border-color:transparent;border-radius:7px;gap:7px}.live-scene .scene-controls>button>span{font-size:8px}.live-scene .scene-controls>button[aria-pressed=true]{border-color:#08718c44;background:white}.live-scene .demo-caption{transform:none;margin:0;padding:0 16px 14px;background:#f6f4fb;font:9px/1.7 var(--body);text-align:left;border-radius:0 0 14px 14px;color:#685f80}
.live-scene .delivery-note{right:14px;top:-25px}.process-section{background:#f6f4fb;color:var(--ink)}.process-section .eyebrow,.process-section .section-head>p,.process-step p,.process-number{color:#685f80}.process-section .eyebrow:before{background:var(--cyan-ink)}.process-step{opacity:1}.process-track{background:#140a2b22}.process-track>i{transform:scaleX(1);background:#08718c66}.process-step:last-child .process-track>i{background:#a8128f66}
.contact{padding-block:90px;background:var(--night-950)}.contact:before{display:none}.contact h2{font-size:clamp(38px,4vw,60px);line-height:1.1}.contact-grid{grid-template-columns:1.15fr 1fr;gap:100px;align-items:start}.contact-grid>div:first-child>p{max-width:470px;margin-top:25px;font-size:15px}.contact-label{font:9px var(--mono);color:var(--secondary);letter-spacing:.05em}.contact-next{padding-top:7px}.contact-next ol{list-style:decimal;padding-left:18px;margin:22px 0 27px;color:var(--secondary);font-size:14px;line-height:1.9}.contact-next li{padding-left:8px;margin-bottom:8px}.contact-next .button{margin-top:0}.contact small{font-size:10px;line-height:1.8;max-width:370px}
@media(min-width:1500px){.factory-hero .experience-grid{min-height:700px}.factory-hero .experience-copy h1{font-size:78px}}
@media(max-width:1100px){.factory-hero .experience-grid{grid-template-columns:1fr 1.15fr;gap:25px}.factory-hero .experience-copy h1{font-size:52px}.factory-hero .experience-copy .lead{font-size:15px}.factory-story strong{font-size:15px}.factory-topline>span{font-size:7px}.factory-story p{font-size:11px}.factory-controls>button strong{font-size:10px}.outcomes-layout{gap:50px}.human-layout{gap:60px}.review-page{padding:30px}.review-roles{margin-right:-15px}.outcome-row{gap:15px}.outcome-row h3{font-size:23px}.human-heading{gap:25px 50px}}
@media(max-width:999px){.factory-hero .experience-grid{grid-template-columns:1fr;padding-top:0}.factory-hero .experience-copy{max-width:700px}.factory-hero .experience-copy h1{font-size:65px}.factory-hero .experience-copy .lead{max-width:580px;font-size:17px}.factory-hero .experience-visual{max-width:760px;width:100%;margin:auto}.factory-story{min-height:106px}.factory-topline>span{font-size:9px}.factory-controls>button strong{font-size:12px}.outcomes-layout{grid-template-columns:1fr;gap:50px}.outcomes-intro{position:static}.outcomes-intro h2 br{display:none}.outcomes-intro>p{max-width:650px}.editorial-note{max-width:650px}.human-heading{grid-template-columns:1fr}.human-heading>p{max-width:600px}.human-layout{gap:50px}.review-page{padding:27px}.review-page h3{font-size:29px}.method-accordions summary{font-size:21px}.contact-grid{gap:50px}}
@media(max-width:760px){
 .factory-hero{padding-top:35px}.factory-hero .experience-grid{gap:30px;padding-bottom:35px}.factory-hero .experience-copy h1{font-size:clamp(38px,10.3vw,60px);margin-block:22px}.factory-hero .experience-copy .lead{font-size:15px;line-height:1.85}.factory-hero .experience-copy .eyebrow{font-size:9px}.factory-hero .experience-copy .actions{gap:20px;margin-top:25px}.factory-hero .experience-copy .button{font-size:12px}.factory-hero .experience-copy .hero-chips{margin-top:25px;gap:10px}.factory-hero .hero-chips>span{font-size:9px;padding-right:5px}.factory-hero .experience-visual{padding:0}.factory-hero .hero-bottom .mono{font-size:7px}
 .factory-topline{padding-inline:0;gap:8px}.factory-topline>span{font-size:6px;letter-spacing:.02em;gap:6px}.factory-topline i{width:4px;height:4px}.factory-topline button{font-size:9px;padding:6px 10px}
 .factory-drawing{padding-top:5px}.factory-controls{padding-top:0}.factory-controls>button{padding:11px 2px 12px;gap:6px}.factory-controls>button strong{font-size:9px}.factory-controls>button span{font-size:8px}.factory-story{grid-template-columns:32px 1fr;gap:10px;min-height:118px;padding-top:19px}.factory-story>span{font-size:8px}.factory-story strong{font-size:15px;line-height:1.4}.factory-story p{font-size:11px;line-height:1.8}.software-factory figcaption{font-size:8px}
 .outcomes-layout{gap:32px}.outcomes-intro h2{font-size:35px;line-height:1.12}.outcomes-intro>p{font-size:14px;margin-top:23px}.editorial-note{font-size:9px;margin-top:23px;padding-top:17px}.outcome-row{grid-template-columns:20px 1fr 16px;gap:12px;padding:25px 0}.outcome-row h3{font-size:23px;line-height:1.25}.outcome-row p{font-size:13px;line-height:1.85}.outcome-service{font-size:9px;margin-bottom:10px}.outcome-number{font-size:9px}.outcome-price{font-size:10px;margin-top:15px}.outcome-arrow .arrow-icon{width:13px;height:13px}
 .proof-section .section-head{display:block}.proof-section .section-head>div:last-child{max-width:100%;margin-top:24px}.proof-section .section-head h2{font-size:37px}.proof-section .section-head p{font-size:14px}.proof-section .text-link{margin-top:20px}.proof-section .project-grid{grid-template-columns:1fr;gap:32px}.proof-section .project:first-child{grid-row:auto}.proof-section .project:first-child .project-visual,.proof-section .project:not(:first-child) .project-visual{aspect-ratio:1.5}.proof-section .project-caption h3{font-size:22px}.proof-note{font-size:10px;margin-top:25px}
 .human-heading{gap:22px}.human-heading h2{font-size:37px}.human-heading>p{font-size:14px;line-height:1.9}.human-layout{grid-template-columns:1fr;margin-top:40px;gap:38px}.review-composition{padding-right:15px}.review-page{padding:28px}.review-page h3{font-size:33px}.review-kicker{font-size:7px}.review-page li{font-size:11px}.review-roles{margin-right:-10px;gap:5px}.review-roles>span{padding:10px 12px;font-size:9px}.review-caption{margin-top:20px}.method-accordions details{padding:22px 0}.method-accordions summary{font-size:23px}.method-accordions p{font-size:13px;line-height:1.9}
 .ecosystem-editorial{grid-template-columns:1fr;gap:40px}.ecosystem-section .section-head h2{font-size:35px}.ecosystem-editorial>a{padding-top:25px}.ecosystem-editorial h3{font-size:27px;margin-top:20px}.ecosystem-editorial p{font-size:13px}.product-name-line{font-size:9px;line-height:1.7;gap:5px 0}.brand-cycle{gap:10px;font-size:9px}.brand-cycle>i{width:16px}.ecosystem-link{padding-top:25px;font-size:11px}
 .live-scene .scene-footer{font-size:10px;padding:12px}.live-scene .scene-controls{padding:9px;gap:4px}.live-scene .scene-controls>button{font-size:9px;padding:7px 5px;gap:5px;min-height:48px}.live-scene .scene-controls>button>span{display:none}.live-scene .demo-caption{font-size:8px;padding-inline:12px}.scene-pause{font-size:9px;padding:6px 8px}.process-track>i{transform:scaleY(1)}.live-scene .delivery-note{top:-22px;right:10px}
 .contact{padding-block:75px}.contact-grid{grid-template-columns:1fr;gap:30px}.contact h2{font-size:37px}.contact-grid>div:first-child>p{font-size:14px;margin-top:22px}.contact-label{font-size:8px}.contact-next ol{font-size:13px;line-height:1.9}.contact small{font-size:9px}
}
@media(prefers-reduced-motion:reduce){.software-factory *,.software-factory *:before{animation:none!important;transition:none!important}.factory-carrier{will-change:auto}}
.factory-reset .factory-carrier{transition:none!important}.factory-story{height:124px}.factory-controls[hidden]{display:none!important}
@media(max-width:760px){.factory-story{height:164px}}
@media(min-width:761px){.proof-section .project-grid:has(>.project:nth-child(3):last-child){grid-template-columns:1.25fr 1fr}}
.proof-section .project:first-child .project-visual>img{object-position:left top}
@media(max-width:760px){.proof-section .project-grid:has(>.project:nth-child(3):last-child){grid-template-columns:1fr}}
.factory-story{height:110px}.factory-story>span{white-space:nowrap}
@media(max-width:760px){.factory-story{height:140px;grid-template-columns:42px 1fr}}
@media(max-width:360px){.factory-story{height:160px}}
/* Keep a paused machine in its current pose instead of snapping it back. */
.software-factory .robot-upper{animation:robot-turn 2.8s var(--ease-io) infinite;animation-play-state:paused}
.software-factory .robot-lower{animation:robot-turn 2.8s var(--ease-io) .2s infinite alternate;animation-play-state:paused}
.software-factory .scan-line{animation:factory-scan 2.2s var(--ease-io) infinite;animation-play-state:paused}
.software-factory .conveyor-signal{animation:conveyor-flow 2s linear infinite;animation-play-state:paused}
.software-factory .data-packet{animation:factory-data 5s linear infinite;animation-play-state:paused}
.software-factory .publish-trace{animation:conveyor-flow 2s linear infinite reverse;animation-play-state:paused}
.software-factory.is-running .factory-station.is-current .robot-upper,.software-factory.is-running .factory-station.is-current .robot-lower,.software-factory.is-running .factory-station.is-current .scan-line,.software-factory.is-running .conveyor-signal,.software-factory.is-running .data-packet,.software-factory.is-running[data-stage="4"] .publish-trace{animation-play-state:running}
.method-accordions summary:focus-visible{outline:2px solid var(--cyan);outline-offset:6px;border-radius:3px}
