.technical-engine-grid{background-image:linear-gradient(to right, color-mix(in oklab, var(--line,var(--border)) 55%, transparent) 1px, transparent 1px), linear-gradient(to bottom, color-mix(in oklab, var(--line,var(--border)) 55%, transparent) 1px, transparent 1px);background-size:40px 40px;-webkit-mask-image:radial-gradient(circle,#000,#0000 88%);mask-image:radial-gradient(circle,#000,#0000 88%)}.triangle-stage{--node-distance:0px;aspect-ratio:1.16;width:clamp(250px,42vw,440px);transform:translate(-50%, -48%) perspective(900px) rotateX(var(--tilt-y)) rotateY(var(--tilt-x));transition:transform .7s cubic-bezier(.32,.72,0,1);position:absolute;top:50%;left:50%}.triangle-stage.is-legacy{transform:translate(-50%,-48%)scale(1.025)}.triangle-stage.is-irontri{--node-distance:16px;transform:translate(-50%,-48%)scale(1.08)}.triangle-svg{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.triangle-ghost,.triangle-side,.triangle-inner{fill:none;vector-effect:non-scaling-stroke}.triangle-ghost{stroke:var(--line,var(--border));stroke-width:22px;opacity:.24}.triangle-side{stroke:var(--primary);stroke-width:1.5px;stroke-linecap:round;opacity:.28;transition:opacity .5s,stroke-width .5s,filter .5s}.triangle-inner{stroke:color-mix(in oklab, var(--primary) 42%, transparent);stroke-width:1px;transition:opacity .5s}.mode-zero .triangle-side,.mode-zero .triangle-inner{opacity:.18}.is-legacy .side-speed-quality,.is-legacy .side-speed-cost{opacity:1;stroke-width:2.4px;filter:drop-shadow(0 0 8px color-mix(in oklab, var(--primary) 55%, transparent))}.is-legacy .side-quality-cost{opacity:.14}.is-legacy .triangle-inner{opacity:.18}.is-irontri .triangle-side{opacity:1;stroke-width:2.5px;filter:drop-shadow(0 0 16px color-mix(in oklab, var(--primary) 72%, transparent));animation:.9s both side-pulse}.is-irontri .triangle-inner{opacity:.55}.orbit{border:1px dashed var(--line,var(--border));border-radius:50%;transition:all .7s cubic-bezier(.32,.72,0,1);position:absolute;inset:1%}.orbit-two{opacity:.35;inset:20%}.is-irontri .orbit-one{border-color:color-mix(in oklab, var(--primary) 65%, transparent);inset:-4%;transform:rotate(45deg)}.is-irontri .orbit-two{border-color:color-mix(in oklab, var(--primary) 55%, transparent);inset:14%;transform:rotate(-45deg)}.node{z-index:2;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.16em;flex-direction:column;gap:2px;transition:transform .7s cubic-bezier(.32,.72,0,1),color .3s;display:flex;position:absolute}.node b{color:var(--foreground);font-size:10px;font-weight:600}.node small{color:var(--muted-foreground);font-size:7px}.node-speed{transform:translate(-50%, calc(-115% - var(--node-distance)));align-items:center;top:0;left:50%}.node-quality{transform:translate(calc(72% + var(--node-distance)), calc(82% + var(--node-distance)));align-items:flex-start;bottom:0;right:0}.node-cost{transform:translate(calc(-72% - var(--node-distance)), calc(82% + var(--node-distance)));align-items:flex-end;bottom:0;left:0}.core{aspect-ratio:1;border:1px solid color-mix(in oklab, var(--primary) 45%, transparent);background:var(--card);text-align:center;width:78px;box-shadow:0 0 38px color-mix(in oklab, var(--primary) 18%, transparent);border-radius:50%;place-content:center;transition:all .6s;display:grid;position:absolute;top:62%;left:50%;transform:translate(-50%,-50%)}.core span{font-family:var(--font-display);color:var(--primary);font-size:20px;font-weight:600}.core small{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.12em;color:var(--muted-foreground);font-size:6px}.is-legacy .core{transform:translate(-50%,-50%)scale(1.04)}.is-irontri .core{background:var(--primary);border-color:var(--primary);box-shadow:0 0 58px color-mix(in oklab, var(--primary) 45%, transparent);transform:translate(-50%,-50%)scale(1.12)}.is-irontri .core span,.is-irontri .core small{color:var(--primary-foreground)}.model-selector{z-index:5;border:1px solid var(--border);width:clamp(84px,13vw,156px);height:auto;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.12em;border-radius:2px;flex-direction:column;gap:5px;padding:18px 12px;transition:border-color .3s,background-color .3s,color .3s,transform .3s;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.model-selector span{font-size:clamp(10px,1vw,13px);font-weight:650}.model-selector small{font-family:var(--font-mono);color:var(--muted-foreground);letter-spacing:.1em;font-size:7px}.model-selector-legacy{left:clamp(16px,3vw,42px)}.model-selector-irontri{right:clamp(16px,3vw,42px)}.mode-legacy .model-selector-legacy,.mode-irontri .model-selector-irontri{border-color:var(--primary);color:var(--primary);background:color-mix(in oklab, var(--primary) 8%, var(--card));transform:translateY(-50%)scale(1.04)}@keyframes side-pulse{0%{opacity:.35}to{opacity:1}}@media (width<=640px){.triangle-stage{width:min(64vw,280px);transform:translate(-50%,-54%)}.triangle-stage.is-irontri{--node-distance:4px;transform:translate(-50%,-54%)scale(1.03)}.triangle-stage.is-legacy{transform:translate(-50%,-54%)scale(1.01)}.triangle-side{stroke-width:2px}.is-irontri .triangle-side{stroke-width:3px}.node b{font-size:11px}.node small{letter-spacing:.1em;font-size:7px}.node-speed{transform:translate(-50%, calc(-108% - var(--node-distance)))}.node-quality{transform:translate(calc(18% + var(--node-distance)), 96%)}.node-cost{transform:translate(calc(-18% - var(--node-distance)), 96%)}.core{width:68px;top:58%}.core span{font-size:18px}.model-selector{width:calc(50% - 24px);padding:12px 8px;top:auto;bottom:16px;transform:none}.model-selector span{font-size:12px}.model-selector{touch-action:manipulation;-webkit-tap-highlight-color:transparent}.model-selector:active{border-color:var(--primary);transform:scale(.97)}.mode-legacy .model-selector-legacy:active,.mode-irontri .model-selector-irontri:active{transform:scale(.99)}.model-selector-legacy{left:16px}.model-selector-irontri{right:16px}.mode-legacy .model-selector-legacy,.mode-irontri .model-selector-irontri{transform:scale(1.02)}}@media (prefers-reduced-motion:reduce){.triangle-stage,.triangle-side,.triangle-inner,.orbit,.node,.core,.model-selector{transition-duration:.01ms!important;animation-duration:.01ms!important}}
