.comparison {
  width: var(--page);
  margin: 0 auto;
  padding: clamp(110px, 13vw, 220px) 0 clamp(90px, 10vw, 170px);
  position: relative;
  z-index: 2;
}

.comparison__heading {
  display: grid;
  grid-template-columns: .7fr 1.3fr;
  gap: 70px;
  align-items: start;
  margin-bottom: 68px;
}

.comparison__heading .eyebrow { padding-top: 15px; }
.comparison__heading > div { display: grid; grid-template-columns: 1.25fr .75fr; gap: 45px; align-items: end; }
.comparison__heading h2 { margin: 0; font-size: clamp(54px, 5.8vw, 100px); line-height: .9; letter-spacing: -.07em; font-weight: 600; }
.comparison__heading > div > p { max-width: 340px; margin: 0 0 7px; color: #676b71; font-size: 13px; line-height: 1.72; }

.comparison-stage { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;padding:0;background:transparent;border:1px solid var(--line); }
.comparison-panel { min-width:0;padding:22px;background:var(--paper);border:0; }
.comparison-panel + .comparison-panel { border-left:1px solid var(--line); }
.panel-head { height: 46px; display: flex; align-items: flex-start; justify-content: space-between; color: #74787d; font: 400 8px "IBM Plex Mono", monospace; text-transform: uppercase; letter-spacing: .09em; }
.panel-head div { display: flex; align-items: center; gap: 9px; color: var(--ink); }
.panel-head div i { width: 5px; height: 5px; border-radius: 50%; background: #999ca1; box-shadow: 0 0 0 4px rgba(20,23,27,.05); }
.comparison-panel--qi .panel-head div i { background: #5d7162; animation: breathe 2.4s infinite; }

.builder { height: clamp(430px, 41vw, 650px); overflow: hidden; position: relative; background: #e8eaec; border: 1px solid rgba(255,255,255,.74); }
.builder-chrome { height: 35px; padding: 0 11px; display: flex; align-items: center; gap: 5px; color: #85898e; border-bottom: 1px solid rgba(22,25,29,.1); background: rgba(244,245,246,.54); font: 400 7px "IBM Plex Mono", monospace; text-transform: uppercase; letter-spacing: .06em; position: relative; z-index: 10; }
.builder-chrome > span { width: 5px; height: 5px; border-radius: 50%; background: #b6b8bb; }
.builder-chrome b { position: absolute; left: 50%; transform: translateX(-50%); font-weight: 400; }
.builder-chrome > i { margin-left: auto; font-style: normal; color: #5d6166; }
.builder-status { height: 31px; padding: 0 12px; position: absolute; left: 0; right: 0; bottom: 0; z-index: 12; display: flex; align-items: center; justify-content: space-between; border-top: 1px solid rgba(22,25,29,.09); background: rgba(240,241,242,.88); backdrop-filter: blur(7px); color: #797d82; font: 400 7px "IBM Plex Mono", monospace; text-transform: uppercase; letter-spacing: .05em; }
.builder-status span:first-child { color: #78615e; }.builder-status i { display: inline-block; width: 4px; height: 4px; margin-right: 6px; border-radius: 50%; background: #9e6f69; }
.comparison-panel--qi .builder-status span:first-child { color: #526355; }.comparison-panel--qi .builder-status i { background: #5d7a63; box-shadow: 0 0 0 3px rgba(93,122,99,.12); }

.legacy-canvas, .qi-canvas { position: absolute; inset: 35px 0 31px; overflow: hidden; }
.legacy-canvas { background-image: linear-gradient(rgba(23,26,30,.045) 1px, transparent 1px), linear-gradient(90deg,rgba(23,26,30,.045) 1px,transparent 1px); background-size: 24px 24px; }
.legacy-template { position: absolute; inset: 11% 10%; padding: 7%; overflow: hidden; background: rgba(246,246,246,.62); border: 1px dashed rgba(24,27,31,.18); opacity: .75; }
.template-nav,.template-title,.template-line { display: block; height: 5px; margin-bottom: 18%; background: #cfd2d5; }
.template-nav { width: 100%; height: 3px; margin-bottom: 24%; }.template-title { width: 55%; height: 13px; margin-bottom: 8%; }.template-line { width: 78%; height: 4px; margin-bottom: 3%; }.template-line--short { width: 47%; }
.template-slots { margin-top: 22%; display: grid; grid-template-columns: repeat(3,1fr); gap: 5%; }.template-slots i { aspect-ratio: .8; border: 1px dashed rgba(24,27,31,.13); }

.loose-block { position: absolute; z-index: 5; background: #edeef0; border: 1px solid rgba(255,255,255,.9); box-shadow: -4px -4px 10px rgba(255,255,255,.8), 7px 9px 16px rgba(24,27,31,.14); font-family: "IBM Plex Mono", monospace; will-change: transform, opacity; animation-duration: 4.9s; animation-timing-function: var(--smooth); animation-iteration-count: 1; animation-fill-mode: forwards; animation-play-state: paused; }
.loose-block--nav { width: 73%; height: 41px; top: 14%; left: -48%; padding: 0 13px; display: flex; align-items: center; gap: 10px; animation-name: rejectNav; }
.loose-block--nav span { margin-right: auto; font-size: 6px; color: #73777c; }.loose-block--nav i { width: 8%; height: 2px; background: #777b80; }
.loose-block--hero { width: 67%; height: 36%; top: 29%; right: -49%; padding: 18px; animation-name: rejectHero; animation-delay: .38s; }
.loose-block--hero small { color: #8b8e92; font-size: 6px; text-transform: uppercase; }.loose-block--hero b { display: block; margin-top: 17px; font: 500 clamp(15px, 1.8vw, 28px)/.95 "Archivo"; letter-spacing: -.05em; }.loose-block--hero i { display: block; width: 52%; height: 5px; margin-top: 20px; background: #c7c9cc; }
.loose-block--card { width: 28%; height: 31%; bottom: -20%; left: 17%; padding: 12px; animation-name: rejectCard; animation-delay: .66s; }.loose-block--card span { display: block; height: 34%; margin-bottom: 10px; background: #d5d7d9; }.loose-block--card span:nth-child(2) { height: 4px; width: 65%; }.loose-block--card small { font-size: 6px; color: #85898e; }
.loose-block--cta { width: 37%; height: 47px; right: 12%; bottom: 9%; padding: 0 13px; display: flex; align-items: center; justify-content: space-between; transform: rotate(7deg); animation-name: rejectCta; animation-delay: .82s; }.loose-block--cta span { font-size: 6px; }.loose-block--cta b { font-size: 15px; font-weight: 300; }
.legacy-template { animation-play-state: paused; }
.comparison-stage.is-visible .legacy-template { animation: templateStress 4.9s ease-in-out forwards; }
.collision { position: absolute; z-index: 7; padding: 5px 7px; color: #8a5550; background: #eee7e6; border: 1px solid rgba(138,85,80,.18); opacity: 0; font: 400 6px "IBM Plex Mono"; text-transform: uppercase; animation: collision 4.9s ease forwards; animation-play-state: paused; }
.collision--one { top: 23%; right: 7%; }.collision--two { bottom: 27%; left: 8%; animation-delay: .62s; }
.comparison-stage.is-visible .loose-block,
.comparison-stage.is-visible .collision { animation-play-state: running; }

@keyframes rejectNav { 0%{transform:translateX(0) rotate(-3deg);opacity:.88} 12%{transform:translateX(0) rotate(-3deg);opacity:1} 42%{transform:translateX(65%) rotate(0);opacity:1} 56%{transform:translateX(61%) rotate(.8deg)} 66%{transform:translateX(68%) rotate(-1.4deg)} 78%{transform:translateX(37%) rotate(-4deg);opacity:.9} 100%{transform:translateX(37%) rotate(-4deg);opacity:.78} }
@keyframes rejectHero { 0%{transform:translateX(0) rotate(4deg);opacity:.88} 14%{transform:translateX(0) rotate(4deg);opacity:1} 44%{transform:translateX(-62%) rotate(0);opacity:1} 57%{transform:translateX(-58%) rotate(-.8deg)} 67%{transform:translateX(-65%) rotate(1.5deg)} 80%{transform:translateX(-33%) rotate(5deg);opacity:.9} 100%{transform:translateX(-33%) rotate(5deg);opacity:.78} }
@keyframes rejectCard { 0%{transform:translateY(0) rotate(-6deg);opacity:.84} 16%{transform:translateY(0) rotate(-6deg);opacity:1} 46%{transform:translateY(-76%) rotate(0);opacity:1} 58%{transform:translateY(-70%) rotate(1.2deg)} 68%{transform:translateY(-81%) rotate(-2deg)} 82%{transform:translateY(-38%) rotate(-7deg);opacity:.88} 100%{transform:translateY(-38%) rotate(-7deg);opacity:.76} }
@keyframes rejectCta { 0%{transform:translateX(0) rotate(7deg);opacity:.86} 18%{transform:translateX(0) rotate(7deg);opacity:1} 48%{transform:translateX(-34%) rotate(0);opacity:1} 59%{transform:translateX(-29%) rotate(1deg)} 69%{transform:translateX(-38%) rotate(-1.8deg)} 83%{transform:translateX(-13%) rotate(8deg);opacity:.9} 100%{transform:translateX(-13%) rotate(8deg);opacity:.78} }
@keyframes collision { 0%,35%{opacity:0;transform:translateY(8px) scale(.86)} 50%,68%{opacity:1;transform:translateY(0) scale(1)} 74%{opacity:.55;transform:translateY(-2px) scale(.96)} 100%{opacity:.42;transform:translateY(0) scale(.94)} }
@keyframes templateStress { 0%,32%{transform:none;border-color:rgba(24,27,31,.18);opacity:.75} 53%,70%{transform:translate(2px,-1px) skewX(-.7deg);border-color:rgba(138,85,80,.34);opacity:.9} 76%{transform:translate(-2px,1px) skewX(.6deg)} 100%{transform:translate(1px,0) skewX(-.25deg);border-color:rgba(138,85,80,.28);opacity:.84} }

.qi-canvas { background: radial-gradient(circle at 64% 42%,rgba(255,255,255,.92),transparent 42%), #e6e8ea; perspective: 1000px; }
.qi-grid { position: absolute; inset: 0; background-image: linear-gradient(rgba(23,26,30,.05) 1px, transparent 1px),linear-gradient(90deg,rgba(23,26,30,.05) 1px,transparent 1px);background-size:32px 32px;mask-image:linear-gradient(to bottom,transparent,#000 20%,#000 80%,transparent); opacity: .7; }
.assembly-origin { position: absolute; left: 50%; top: 50%; z-index: 8; width: 46px; height: 46px; margin: -23px; border: 1px solid rgba(55,62,70,.2); border-radius: 50%; opacity: 0; transform: scale(.25); }
.assembly-origin::before,.assembly-origin::after { content:"";position:absolute;inset:8px;border:1px solid rgba(55,62,70,.16);border-radius:50% }.assembly-origin::after{inset:17px;background:#555d66;border:0;box-shadow:0 0 0 7px rgba(85,93,102,.08)}
.assembly-origin i,.assembly-origin span { position:absolute;left:50%;top:-18px;width:1px;height:80px;background:linear-gradient(transparent,rgba(55,62,70,.22),transparent);transform-origin:50% 41px }.assembly-origin span{transform:rotate(90deg)}
.assembly-path { position:absolute;z-index:7;pointer-events:none;opacity:0; }
.assembly-path--x { left:7%;right:7%;top:50%;height:1px;background:linear-gradient(90deg,transparent,rgba(61,68,76,.28),transparent);transform:scaleX(.05) }
.assembly-path--y { top:7%;bottom:7%;left:50%;width:1px;background:linear-gradient(transparent,rgba(61,68,76,.28),transparent);transform:scaleY(.05) }
.qi-page { position: absolute; inset: 8% 9%; padding: 4%; overflow: hidden; background: rgba(246,247,247,.78); border: 1px solid rgba(255,255,255,.92); box-shadow: -7px -7px 18px rgba(255,255,255,.82), 11px 16px 25px rgba(27,30,35,.11); transform-origin: center; }
.qi-page::after { content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(112deg,transparent 35%,rgba(255,255,255,.72) 48%,transparent 61%);transform:translateX(-130%);opacity:0; }
.qi-nav { height: 10%; display: flex; align-items: center; gap: 7%; border-bottom: 1px solid rgba(22,25,29,.1); opacity: 0; transform: translate3d(-42%, -190%, 90px) rotate(-7deg) scale(.78); transform-origin:left center; }.qi-mark { width: 15px; height: 15px; border: 1px solid #404348; border-radius: 50%; margin-right: auto; }.qi-nav i { width: 8%; height: 2px; background: #aeb1b5; }.qi-nav b { width: 16%; height: 16px; border-radius: 3px; background: #303338; }
.qi-hero { height: 63%; display: grid; grid-template-columns: 1.05fr .95fr; gap: 5%; align-items: center; }.qi-hero > div:first-child > * { opacity: 0; }.qi-hero small { display: block; margin-bottom: 9%; color: #777b80; font: 400 5px "IBM Plex Mono"; letter-spacing: .1em; transform:translate3d(-110px,-52px,50px) rotate(-5deg); }.qi-hero strong { display: block; font-size: clamp(15px,2vw,31px); line-height: .9; letter-spacing: -.06em; transform:translate3d(-150px,18px,80px) rotate(-8deg) scale(.8);transform-origin:left center }.qi-hero strong em { font-weight:400; }.qi-hero > div:first-child > span { display:block;width:74%;height:3px;margin-top:8%;background:#c9cccf;transform:translate3d(-90px,40px,30px) scaleX(.25);transform-origin:left}.qi-hero > div:first-child > span + span{width:49%;margin-top:3%;transform:translate3d(100px,55px,30px) scaleX(.25)}.qi-hero button{width:42%;height:21px;margin-top:10%;padding:0 6px;border:0;border-radius:3px;background:#32353a;color:white;font:400 5px "IBM Plex Mono";display:flex;align-items:center;justify-content:space-between;transform:translate3d(-90px,120px,90px) rotate(-13deg) scale(.72)}.qi-hero button i{font-style:normal}
.qi-object { aspect-ratio:1;position:relative;display:grid;place-items:center;opacity:0;transform:translate3d(130px,-90px,130px) scale(.35) rotate(38deg); }.qi-object > i{position:absolute;border:1px solid rgba(31,34,39,.16);border-radius:50%}.qi-object > i:nth-child(1){inset:5%}.qi-object > i:nth-child(2){inset:18%;border-style:dashed}.qi-object > i:nth-child(3){inset:31%;background:rgba(232,234,236,.65);box-shadow:inset 5px 5px 10px rgba(30,33,38,.08),inset -5px -5px 10px white}.qi-object span{width:12%;aspect-ratio:1;border-radius:50%;background:#4f555d;box-shadow:0 0 0 7px rgba(79,85,93,.08)}
.qi-cards { height: 22%; display:grid;grid-template-columns:repeat(3,1fr);gap:3%; perspective:500px }.qi-cards i { border:1px solid rgba(24,27,31,.1);background:rgba(236,238,239,.8);opacity:0; }.qi-cards i:nth-child(1){transform:translate3d(-100px,100px,70px) rotate(-14deg) scale(.72)}.qi-cards i:nth-child(2){transform:translate3d(0,140px,100px) rotate(8deg) scale(.65)}.qi-cards i:nth-child(3){transform:translate3d(110px,80px,70px) rotate(15deg) scale(.72)}
.generation-beam { position:absolute;left:9%;right:9%;height:1px;top:9%;z-index:4;background:linear-gradient(90deg,transparent,#525a63,transparent);box-shadow:0 0 12px white;opacity:0; }
.assembly-cursor { position:absolute;z-index:11;left:50%;top:50%;display:flex;align-items:center;gap:7px;color:#626970;font:400 6px "IBM Plex Mono";text-transform:uppercase;letter-spacing:.08em;opacity:0;transform:translate(-50%,-50%) }.assembly-cursor i{width:6px;height:6px;border-radius:50%;background:#5c6e61;box-shadow:0 0 0 5px rgba(92,110,97,.1)}
.intent-chip { position:absolute;z-index:6;padding:5px 7px;border:1px solid rgba(255,255,255,.82);border-radius:3px;background:rgba(240,242,243,.76);backdrop-filter:blur(5px);color:#6b6f74;font:400 6px "IBM Plex Mono";text-transform:uppercase;box-shadow:3px 5px 11px rgba(25,28,33,.08);opacity:0; }.intent-chip i{display:inline-block;width:3px;height:3px;margin-right:5px;border-radius:50%;background:#65776a}.intent-chip--a{top:15%;left:5%}.intent-chip--b{top:45%;right:4%}.intent-chip--c{bottom:14%;left:7%}

.comparison-stage.is-visible .qi-page { animation: pageBorn 4.8s var(--smooth) .25s both; }
.comparison-stage.is-visible .qi-page::after { animation: surfacePolish 1.2s var(--smooth) 3.25s both; }
.comparison-stage.is-visible .generation-beam { animation: generateBeam 4.8s var(--smooth) .25s both; }
.comparison-stage.is-visible .assembly-origin { animation: originPulse 1.25s var(--spring) .48s both; }
.comparison-stage.is-visible .assembly-path--x { animation: pathX 1.25s var(--smooth) .58s both; }.comparison-stage.is-visible .assembly-path--y { animation: pathY 1.25s var(--smooth) .58s both; }
.comparison-stage.is-visible .assembly-cursor { animation: cursorCompose 3.4s var(--smooth) .62s both; }
.comparison-stage.is-visible .qi-nav { animation: navSettle 1.05s var(--spring) 1.05s forwards; }
.comparison-stage.is-visible .qi-hero > div:first-child > * { animation: componentSettle 1.05s var(--spring) forwards; }.comparison-stage.is-visible .qi-hero small{animation-delay:1.26s}.comparison-stage.is-visible .qi-hero strong{animation-delay:1.38s}.comparison-stage.is-visible .qi-hero span:nth-of-type(1){animation-delay:1.56s}.comparison-stage.is-visible .qi-hero span:nth-of-type(2){animation-delay:1.68s}.comparison-stage.is-visible .qi-hero button{animation-delay:1.88s}
.comparison-stage.is-visible .qi-object { animation: objectBorn 1.45s var(--spring) 1.32s forwards, objectLive 8s ease-in-out 3.4s infinite; }
.comparison-stage.is-visible .qi-cards i { animation: cardSettle 1.15s var(--spring) forwards; }.comparison-stage.is-visible .qi-cards i:nth-child(1){animation-delay:1.95s}.comparison-stage.is-visible .qi-cards i:nth-child(2){animation-delay:2.1s}.comparison-stage.is-visible .qi-cards i:nth-child(3){animation-delay:2.25s}
.comparison-stage.is-visible .intent-chip { animation: chipBorn .7s var(--spring) forwards; }.comparison-stage.is-visible .intent-chip--a{animation-delay:2.45s}.comparison-stage.is-visible .intent-chip--b{animation-delay:2.58s}.comparison-stage.is-visible .intent-chip--c{animation-delay:2.71s}
@keyframes pageBorn { 0%{clip-path:inset(50% 50% 50% 50%);transform:scale(.8) translateZ(-80px);filter:blur(8px)} 28%{clip-path:inset(0);transform:scale(1.025) translateZ(0);filter:blur(0)} 38%,100%{clip-path:inset(0);transform:scale(1) translateZ(0);filter:blur(0)} }
@keyframes generateBeam { 0%,7%{top:9%;opacity:0} 12%{opacity:1} 55%{top:88%;opacity:.8} 61%,100%{top:88%;opacity:0} }
@keyframes originPulse { 0%{opacity:0;transform:scale(.2) rotate(0)} 45%{opacity:1;transform:scale(1.25) rotate(80deg)} 72%{opacity:.7;transform:scale(.85) rotate(130deg)} 100%{opacity:0;transform:scale(2) rotate(180deg)} }
@keyframes pathX { 0%{opacity:0;transform:scaleX(.05)} 35%{opacity:1;transform:scaleX(1)} 75%{opacity:.45;transform:scaleX(1)} 100%{opacity:0;transform:scaleX(1)} }
@keyframes pathY { 0%{opacity:0;transform:scaleY(.05)} 35%{opacity:1;transform:scaleY(1)} 75%{opacity:.45;transform:scaleY(1)} 100%{opacity:0;transform:scaleY(1)} }
@keyframes cursorCompose { 0%{opacity:0;transform:translate(-50%,-50%) scale(.7)} 12%{opacity:1} 32%{transform:translate(115%,-310%) scale(1)} 54%{transform:translate(-280%,90%) scale(1)} 76%{transform:translate(150%,300%) scale(1)} 91%{opacity:1} 100%{opacity:0;transform:translate(-50%,-50%) scale(.7)} }
@keyframes navSettle { 0%{opacity:0;transform:translate3d(-42%,-190%,90px) rotate(-7deg) scale(.78)} 68%{opacity:1;transform:translate3d(2%,5%,0) rotate(.7deg) scale(1.015)} 100%{opacity:1;transform:translate3d(0,0,0) rotate(0) scale(1)} }
@keyframes componentSettle { 0%{opacity:0} 68%{opacity:1;transform:translate3d(2px,-2px,0) rotate(.5deg) scale(1.015)} 100%{opacity:1;transform:translate3d(0,0,0) rotate(0) scale(1)} }
@keyframes cardSettle { 0%{opacity:0} 65%{opacity:1;transform:translate3d(0,-5px,0) rotate(-.7deg) scale(1.025)} 100%{opacity:1;transform:translate3d(0,0,0) rotate(0) scale(1)} }
@keyframes objectBorn { 0%{opacity:0;transform:translate3d(130px,-90px,130px) scale(.35) rotate(38deg)} 70%{opacity:1;transform:translate3d(-4px,4px,0) scale(1.04) rotate(-3deg)} 100%{opacity:1;transform:translate3d(0,0,0) scale(1) rotate(0)} }
@keyframes objectLive { 0%,100%{transform:translate3d(0,0,0) rotate(0)} 50%{transform:translate3d(0,-4px,0) rotate(2deg)} }
@keyframes surfacePolish { 0%{opacity:0;transform:translateX(-130%)} 35%{opacity:.75} 100%{opacity:0;transform:translateX(130%)} }
@keyframes chipBorn { from{opacity:0;transform:scale(.7) translateY(9px)} to{opacity:1;transform:scale(1) translateY(0)} }

.panel-copy { min-height: 170px; padding-top: 27px; display: block; }
.panel-copy h3 { margin: 0 0 10px; font-size: clamp(21px,1.8vw,30px); font-weight: 500; letter-spacing: -.04em; }.panel-copy p { max-width: 470px; margin: 0; color: #70747a; font-size: 11px; line-height: 1.7; }
.comparison-verdict { margin-top: 34px; display: grid; grid-template-columns: auto 1fr auto; gap: 23px; align-items: center; color: #8a8d92; font: 400 8px "IBM Plex Mono"; text-transform: uppercase; letter-spacing: .09em; }.comparison-verdict i { height: 1px; overflow: hidden; position: relative; background: var(--line); }.comparison-verdict i::after { content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,#34383d,transparent);transform:translateX(-100%);animation:verdictLine 3.2s ease-in-out infinite}.comparison-verdict strong{color:var(--ink);font-weight:500}@keyframes verdictLine{to{transform:translateX(100%)}}

@media (max-width: 1000px) {
  .comparison__heading { grid-template-columns: 1fr; gap: 32px; }.comparison__heading > div { grid-template-columns: 1.2fr .8fr; }
  .builder { height: 520px; }
}

@media (max-width: 760px) {
  .comparison__heading > div { grid-template-columns: 1fr; }.comparison__heading > div > p { max-width: 90%; }
  .comparison-stage { grid-template-columns:1fr;gap:0;background:transparent;padding:0;border:1px solid var(--line); }.comparison-panel { border:0;padding:14px; }.comparison-panel + .comparison-panel{border-left:0;border-top:1px solid var(--line)}
  .builder { height: min(126vw, 570px); }.panel-copy { min-height: 150px; }.panel-tag { display: none; }
  .loose-block--hero b { font-size: clamp(17px,6vw,29px); }.qi-hero strong { font-size: clamp(17px,6vw,29px); }
}

@media (prefers-reduced-motion: reduce) {
  .loose-block { animation: none; }.loose-block--nav{transform:translateX(66%)}.loose-block--hero{transform:translateX(-62%)}.loose-block--card{transform:translateY(-76%)}
  .qi-nav,.qi-hero > div:first-child > *,.qi-object,.qi-cards i,.intent-chip{opacity:1;transform:none}.generation-beam{display:none}
  .assembly-origin,.assembly-path,.assembly-cursor{display:none}
}
