.section--companions{background:var(--surface-raised);padding:clamp(120px,16vh,180px) 0;position:relative}.section--companions:before{content:"";position:absolute;inset:auto -10% -20% auto;width:60%;height:70%;background:radial-gradient(60% 60% at 80% 80%,rgba(232,145,45,.1) 0%,rgba(232,145,45,.04) 35%,transparent 70%);pointer-events:none;z-index:0}.section--companions .container{position:relative;z-index:1}.companions__card{--card-radius: 24px;position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:clamp(32px,5vw,64px);align-items:center;padding:clamp(44px,6vw,80px) clamp(32px,5vw,72px);border-radius:var(--card-radius);background:linear-gradient(160deg,color-mix(in oklab,var(--surface-panel) 92%,var(--amber) 8%),color-mix(in oklab,var(--surface-base) 96%,var(--amber) 4%));box-shadow:var(--elevation-3),var(--bevel-top),inset 0 0 0 1px #e8912d1a;overflow:hidden;isolation:isolate;transform:translateY(12px) scale(.985);opacity:0;transition:opacity .9s var(--ease-cinematic),transform .9s var(--ease-cinematic)}.companions__card.in-view{opacity:1;transform:translateY(0) scale(1)}.companions__ambient{position:absolute;inset:-20% -10% auto auto;width:70%;height:70%;background:radial-gradient(55% 55% at 70% 30%,rgba(245,197,99,.1) 0%,rgba(232,145,45,.05) 40%,transparent 75%);pointer-events:none;z-index:-1}.companions__fireflies{position:absolute;inset:0;pointer-events:none;z-index:0}.companions__fireflies .firefly{position:absolute;width:2.5px;height:2.5px;border-radius:50%;background:#ffe4a8f2;box-shadow:0 0 4px 1px #f5c5638c,0 0 10px 3px #e8912d47;opacity:0;will-change:transform,opacity}.companions__fireflies .firefly:nth-child(1){animation:companions-firefly-a 17s var(--ease-in-out) .5s infinite}.companions__fireflies .firefly:nth-child(2){animation:companions-firefly-b 20s var(--ease-in-out) 2s infinite reverse}.companions__fireflies .firefly:nth-child(3){animation:companions-firefly-c 15s var(--ease-in-out) 3.6s infinite}.companions__fireflies .firefly:nth-child(4){animation:companions-firefly-a 22s var(--ease-in-out) 5s infinite reverse}.companions__fireflies .firefly:nth-child(5){animation:companions-firefly-b 18s var(--ease-in-out) 1.4s infinite}.companions__fireflies .firefly:nth-child(6){animation:companions-firefly-c 24s var(--ease-in-out) 6.8s infinite reverse}.companions__fireflies .firefly:nth-child(7){animation:companions-firefly-a 16s var(--ease-in-out) 4.2s infinite reverse}@keyframes companions-firefly-a{0%,to{transform:translate(0);opacity:0}10%{opacity:.8}28%{transform:translate(24px,-18px);opacity:.3}50%{transform:translate(-14px,-42px);opacity:.85}72%{transform:translate(28px,-10px);opacity:.25}90%{transform:translate(8px,-48px);opacity:.6}}@keyframes companions-firefly-b{0%,to{transform:translate(0);opacity:0}12%{opacity:.75}32%{transform:translate(-20px,18px);opacity:.3}54%{transform:translate(18px,-28px);opacity:.9}74%{transform:translate(-12px,22px);opacity:.2}92%{transform:translate(10px,-24px);opacity:.55}}@keyframes companions-firefly-c{0%,to{transform:translate(0);opacity:0}14%{opacity:.85}34%{transform:translate(20px,14px);opacity:.25}56%{transform:translate(-26px,-14px);opacity:.8}74%{transform:translate(14px,24px);opacity:.3}92%{transform:translate(-8px,-18px);opacity:.65}}@media(prefers-reduced-motion:reduce){.companions__fireflies .firefly{animation:none;opacity:0}}.companions__copy{min-width:0;position:relative;z-index:1}.section--companions .section__eyebrow{color:var(--text-accent)}.companions__title{font-family:var(--font-display);font-weight:400;font-variation-settings:"opsz" 60;font-size:clamp(34px,4.4vw,56px);line-height:1.05;letter-spacing:var(--track-tight);color:var(--cream);margin:var(--s-3) 0 var(--s-5);max-width:16ch;opacity:0;transform:translateY(10px);transition:opacity .9s var(--ease-cinematic) 80ms,transform .9s var(--ease-cinematic) 80ms}.companions__title em{font-style:italic;color:color-mix(in oklab,var(--cream) 88%,var(--amber) 12%)}.companions__card.in-view .companions__title{opacity:1;transform:none}.companions__lede{font-size:17px;line-height:1.65;color:var(--text-secondary);max-width:38ch;margin:0 0 var(--s-6);opacity:0;transform:translateY(8px);transition:opacity .9s var(--ease-cinematic) .2s,transform .9s var(--ease-cinematic) .2s}.companions__card.in-view .companions__lede{opacity:1;transform:none}.companions__status{display:inline-flex;align-items:center;gap:10px;font-family:var(--font-mono);font-size:11px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--text-accent);margin-bottom:var(--s-5);opacity:0;transform:translateY(6px);transition:opacity .7s var(--ease-cinematic) .28s,transform .7s var(--ease-cinematic) .28s}.companions__status-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--amber);box-shadow:0 0 #e8912d8c;animation:companions-pulse 2.4s var(--ease-cinematic) infinite;flex-shrink:0}.companions__status-lead{color:var(--text-accent)}.companions__status-year{color:var(--cream);font-weight:600}.companions__status-rule{display:inline-block;width:24px;height:1px;background:#e8912d8c;margin:0 2px}.companions__status-platforms{color:var(--text-secondary);letter-spacing:.14em}.companions__card.in-view .companions__status{opacity:1;transform:none}@keyframes companions-pulse{0%{box-shadow:0 0 #e8912d8c}70%{box-shadow:0 0 0 8px #e8912d00}to{box-shadow:0 0 #e8912d00}}.companions__badges{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:var(--s-6);opacity:0;transform:translateY(8px);transition:opacity .9s var(--ease-cinematic) .36s,transform .9s var(--ease-cinematic) .36s}.companions__card.in-view .companions__badges{opacity:1;transform:none}.store-badge{position:relative;display:inline-flex;align-items:center;gap:10px;min-width:0;width:100%;padding:12px 20px 12px 12px;border-radius:14px;background:#080a18bf;color:var(--cream);border:1px dashed rgba(247,244,239,.18);cursor:not-allowed;text-align:left;overflow:visible;opacity:.78;transition:transform .32s var(--ease-out-soft),border-color .32s var(--ease-out-soft),border-style 0ms linear .32s,background .32s var(--ease-out-soft),box-shadow .48s var(--ease-cinematic),opacity .32s var(--ease-out-soft)}.store-badge:hover,.store-badge:focus-visible{transform:translateY(-1px);border-style:solid;border-color:#e8912d8c;background:#080a18f2;opacity:1;box-shadow:inset 0 0 0 1px #e8912d33,0 18px 44px -18px #e8912d73;outline:none;transition:transform .32s var(--ease-out-soft),border-color .32s var(--ease-out-soft),border-style 0ms linear 0ms,background .32s var(--ease-out-soft),box-shadow .48s var(--ease-cinematic),opacity .32s var(--ease-out-soft)}.store-badge:focus-visible{outline:2px solid var(--amber);outline-offset:3px}.store-badge__glyph{display:inline-flex;align-items:center;gap:3px;color:var(--cream);flex-shrink:0;padding-right:8px;border-right:1px solid rgba(247,244,239,.16);height:28px}.store-badge__apple{flex-shrink:0;width:16px;height:16px}.store-badge__platform{font-family:var(--font-body);font-weight:600;font-size:12px;letter-spacing:-.015em;color:var(--cream);line-height:1;transform:translateY(.5px);white-space:nowrap}.store-badge__lockup{display:inline-flex;flex-direction:column;line-height:1.05;gap:2px;min-width:0}.store-badge__topline{font-family:var(--font-mono);font-size:8.5px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--text-secondary);white-space:nowrap}.store-badge__store{font-family:var(--font-display);font-weight:500;font-variation-settings:"opsz" 36;font-size:clamp(14px,1.25vw,17px);letter-spacing:-.012em;color:var(--cream);white-space:nowrap}.store-badge__caption{position:relative;display:inline-block;margin-top:4px;font-family:var(--font-mono);font-size:8.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);white-space:nowrap;line-height:1.2}.store-badge__caption-rest,.store-badge__caption-hover{display:inline-block;transition:opacity .24s var(--ease-out-soft)}.store-badge__caption-hover{position:absolute;inset:0;opacity:0;color:var(--amber)}.store-badge:hover .store-badge__caption-rest,.store-badge:focus-visible .store-badge__caption-rest{opacity:0}.store-badge:hover .store-badge__caption-hover,.store-badge:focus-visible .store-badge__caption-hover{opacity:1}@keyframes badge-wiggle{0%{transform:translateY(-1px) translate(0)}25%{transform:translateY(-1px) translate(-3px)}55%{transform:translateY(-1px) translate(3px)}to{transform:translateY(-1px) translate(0)}}.store-badge.is-wiggle{animation:badge-wiggle .32s var(--ease-spring)}.companions__notify{display:inline-flex;align-items:center;gap:8px;padding-top:var(--s-5);margin-top:var(--s-3);border-top:1px solid rgba(255,255,255,.08);font-family:var(--font-mono);font-size:11.5px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--cream);opacity:0;transform:translateY(6px);transition:opacity .9s var(--ease-cinematic) .52s,transform .9s var(--ease-cinematic) .52s,color .24s var(--ease-out-soft)}.companions__card.in-view .companions__notify{opacity:1;transform:none}.companions__notify svg{transition:transform .24s var(--ease-out-soft)}.companions__notify:hover{color:var(--amber)}.companions__notify:hover svg{transform:translate(3px)}.companions__notify:focus-visible{outline:2px solid var(--amber);outline-offset:4px;border-radius:2px}.companions__device{position:relative;z-index:1;margin:0;aspect-ratio:1.05 / 1;width:100%}.companions__device:before,.companions__device:after{content:"";position:absolute;pointer-events:none;z-index:0;opacity:0;filter:blur(18px);transition:opacity 1.4s var(--ease-cinematic)}.companions__device:before{top:-14%;left:-4%;width:80%;height:56%;background:radial-gradient(50% 78% at 50% 100%,#f5c5638c,#e8912d52 22%,#e8912d1f 48%,#e8912d00 78%),linear-gradient(180deg,#e8912d00,#e8912d1a 60%,#e8912d00)}.companions__card.in-view .companions__device:before{opacity:1;transition-delay:1.1s}.companions__device:after{top:20%;right:-6%;width:36%;height:42%;background:radial-gradient(50% 80% at 50% 100%,#f5c5638c,#e8912d4d 25%,#e8912d1a 55%,#e8912d00 82%),linear-gradient(180deg,#e8912d00,#e8912d14 60%,#e8912d00);filter:blur(14px)}.companions__card.in-view .companions__device:after{opacity:1;transition-delay:1.3s}.device{position:absolute;color:var(--cream)}.device--mac{top:6%;left:0;width:92%;filter:drop-shadow(0 24px 48px rgba(0,0,0,.45))}.device--phone{bottom:-2%;right:0;width:32%;filter:drop-shadow(0 18px 32px rgba(0,0,0,.55))}.device__shell{stroke:#f7f4ef8c;stroke-width:1.2}.device__bevel{fill:none;stroke:#f7f4ef1a;stroke-width:.8}.device__screen{stroke:#e8912d29;stroke-width:.6}.device__screen-grid,.device__screen-glow{pointer-events:none}.device__menubar{fill:#f7f4ef0f;stroke:#f7f4ef24;stroke-width:.5}.device__title{font-family:var(--font-mono);font-size:8.5px;letter-spacing:.06em;fill:#f7f4ef8c}.mac-light--r{fill:#e85a4a}.mac-light--y{fill:#f5b53c}.mac-light--g{fill:#57c558}.device__hinge{fill:#f7f4ef2e}.device__hinge-cut{fill:#0000008c}.device__notch{fill:#000000eb}.phone-time{font-family:var(--font-display);font-weight:600;font-size:9px;fill:var(--cream)}.phone-status rect{fill:#f7f4efd9}.phone-status .phone-battery__shell{fill:none;stroke:#f7f4ef8c;stroke-width:.6}.phone-status .phone-battery__fill{fill:#f7f4efd9}.phone-status .phone-battery__cap{fill:#f7f4ef8c}.phone-eyebrow{font-family:var(--font-mono);font-size:7.5px;letter-spacing:.18em;fill:var(--amber)}.phone-rule{fill:var(--amber);opacity:.7}.phone-nav rect{fill:#f7f4ef0d;stroke:#f7f4ef1f;stroke-width:.6}.phone-nav circle{fill:#f7f4ef66}.phone-nav__active{fill:var(--amber)!important;filter:drop-shadow(0 0 4px rgba(232,145,45,.6))}.phone-home{fill:#f7f4ef8c}.canvas-card>rect:first-child{fill:#1b1f3bf5;stroke:#f7f4ef1a;stroke-width:.6}.canvas-card__tag{fill:var(--amber)}.canvas-card__avatar{fill:#e8912d2e;stroke:#e8912d8c;stroke-width:.8}.canvas-card__name{fill:var(--cream)}.canvas-card__meta{fill:#f7f4ef6b}.canvas-card__chip{fill:#f7f4ef0f;stroke:#f7f4ef2e;stroke-width:.5}.canvas-card__chip--alt{fill:#e8912d1f;stroke:#e8912d73}.canvas-card--char .canvas-card__tag{fill:var(--node-character)}.canvas-card--loc .canvas-card__tag{fill:var(--node-location)}.canvas-card--event .canvas-card__tag{fill:var(--node-event)}.canvas-card--chap .canvas-card__tag{fill:var(--node-chapter)}.canvas-card--char>rect:first-child{stroke:#e8912dd9;stroke-width:1;filter:drop-shadow(0 0 6px rgba(232,145,45,.45))}.canvas-inspector>rect{fill:#151830f5;stroke:#f7f4ef29;stroke-width:.6}.canvas-inspector__rule{stroke:#e8912db3;stroke-width:.8}.canvas-inspector__row{fill:#f7f4ef94}.canvas-inspector__row--em{fill:var(--cream)}.canvas-minimap>rect{fill:#080a18eb;stroke:#f7f4ef1a;stroke-width:.6}.canvas-minimap__viewport{fill:#e8912d1a!important;stroke:#e8912db3!important;stroke-width:.6}.canvas-minimap circle{fill:#f5c563b3}.c-edge{fill:none;stroke:#e8912dd9;stroke-width:1;opacity:0;transition:opacity .7s var(--ease-cinematic)}.c-ember{fill:var(--amber);filter:drop-shadow(0 0 5px rgba(232,145,45,.85));opacity:0;transition:opacity .6s var(--ease-cinematic)}.device{opacity:0;transition:opacity .8s var(--ease-cinematic)}.companions__card.in-view .device--mac{opacity:1;transition-delay:.5s}.companions__card.in-view .device--phone{opacity:1;transition-delay:.72s}.canvas-card,.canvas-inspector,.canvas-minimap,.phone-nav,.phone-status,.phone-time,.phone-eyebrow,.phone-rule,.phone-home{opacity:0;transform:translateY(4px);transform-box:fill-box;transform-origin:center;transition:opacity .7s var(--ease-cinematic),transform .7s var(--ease-cinematic)}.companions__card.in-view .canvas-card,.companions__card.in-view .canvas-inspector,.companions__card.in-view .canvas-minimap,.companions__card.in-view .phone-nav,.companions__card.in-view .phone-status,.companions__card.in-view .phone-time,.companions__card.in-view .phone-eyebrow,.companions__card.in-view .phone-rule,.companions__card.in-view .phone-home{opacity:1;transform:none}.companions__card.in-view .device--mac .canvas-inspector{transition-delay:.9s}.companions__card.in-view .device--mac .canvas-minimap{transition-delay:1s}.companions__card.in-view .device--mac .canvas-card--char{transition-delay:1.1s}.companions__card.in-view .device--mac .canvas-card--loc{transition-delay:1.2s}.companions__card.in-view .device--mac .canvas-card--event{transition-delay:1.28s}.companions__card.in-view .device--mac .canvas-card--chap{transition-delay:1.34s}.companions__card.in-view .device--mac .c-edge{opacity:1}.companions__card.in-view .device--mac .c-edge--1{transition-delay:1.95s}.companions__card.in-view .device--mac .c-edge--2{transition-delay:2.08s}.companions__card.in-view .device--mac .c-edge--3{transition-delay:2.16s}.companions__card.in-view .device--mac .c-ember{opacity:1;transition-delay:2.7s;animation:ember-orbit-mac 6s linear infinite}.companions__card.in-view .device--phone .phone-time,.companions__card.in-view .device--phone .phone-status{transition-delay:1s}.companions__card.in-view .device--phone .phone-eyebrow,.companions__card.in-view .device--phone .phone-rule{transition-delay:1.06s}.companions__card.in-view .device--phone .phone-nav{transition-delay:1.14s}.companions__card.in-view .device--phone .phone-home{transition-delay:1.2s}.companions__card.in-view .device--phone .canvas-card--char{transition-delay:1.32s}.companions__card.in-view .device--phone .canvas-card--loc{transition-delay:1.44s}.companions__card.in-view .device--phone .c-edge{opacity:1}.companions__card.in-view .device--phone .c-edge--1{transition-delay:2.08s}.companions__card.in-view .device--phone .c-edge--2{transition-delay:2.2s}.companions__card.in-view .device--phone .c-ember{opacity:1;transition-delay:2.8s;animation:ember-orbit-phone 5.5s linear infinite}@keyframes ember-orbit-mac{0%{offset-distance:0%;opacity:0}8%{opacity:1}92%{opacity:1}to{offset-distance:100%;opacity:0}}@keyframes ember-orbit-phone{0%{offset-distance:0%;opacity:0}10%{opacity:1}90%{opacity:1}to{offset-distance:100%;opacity:0}}.device--mac .c-ember{offset-path:path("M 162 110 C 230 80, 290 70, 380 96")}.device--phone .c-ember{offset-path:path("M 110 156 C 124 196, 86 222, 110 254")}@media(max-width:880px){.companions__card{grid-template-columns:1fr;gap:var(--s-7);padding:clamp(36px,7vw,52px) clamp(24px,6vw,40px)}.companions__title{max-width:none}.companions__device{order:-1;aspect-ratio:1.4 / 1;max-width:480px;margin-inline:auto}.device--mac{width:88%}.device--phone{width:30%;bottom:-4%;right:4%}.companions__badges{gap:12px}}@media(max-width:480px){.companions__badges{grid-template-columns:1fr}.companions__year{font-size:10.5px}}@media(prefers-reduced-motion:reduce){.companions__card,.companions__title,.companions__lede,.companions__status,.companions__status-dot,.companions__badges,.companions__notify,.device,.canvas-card,.canvas-inspector,.canvas-minimap,.phone-nav,.phone-status,.phone-time,.phone-eyebrow,.phone-rule,.phone-home,.c-edge,.c-ember,.store-badge,.store-badge__caption-rest,.store-badge__caption-hover{transition:none!important;transform:none!important;animation:none!important}.companions__status-dot{box-shadow:none!important}.store-badge{opacity:.85!important}.companions__card.in-view,.companions__card.in-view .companions__title,.companions__card.in-view .companions__lede,.companions__card.in-view .companions__status,.companions__card.in-view .companions__badges,.companions__card.in-view .companions__notify,.companions__card.in-view .device,.companions__card.in-view .canvas-card,.companions__card.in-view .canvas-inspector,.companions__card.in-view .canvas-minimap,.companions__card.in-view .phone-nav,.companions__card.in-view .phone-status,.companions__card.in-view .phone-time,.companions__card.in-view .phone-eyebrow,.companions__card.in-view .phone-rule,.companions__card.in-view .phone-home,.companions__card.in-view .c-edge{opacity:1}.companions__card.in-view .c-ember{opacity:.9}.companions__device:before,.companions__device:after{transition:none!important}.companions__card.in-view .companions__device:before,.companions__card.in-view .companions__device:after{opacity:1}}
