/* Same brand blue in every variant. No white, grey or desaturated light texture. */
[data-edge-style="hairline"]{--edge-line-offset:0px;--edge-width:1px;--edge-aura-display:none;--edge-texture:#0040f7;--edge-texture-motion:none;--edge-halo-motion:none;--edge-base-border:#0040f7}
[data-edge-style="offset"]{--edge-line-offset:6px;--edge-width:1px;--edge-aura-display:none;--edge-texture:#0040f7;--edge-texture-motion:none;--edge-halo-motion:none;--edge-base-border:#0040f7}
[data-edge-style="breathe"]{--edge-line-offset:0px;--edge-width:1px;--edge-aura-display:block;--edge-texture:#0040f7;--edge-texture-motion:none;--edge-halo-motion:brand-halo-breathe 4.8s ease-in-out infinite alternate;--edge-base-border:#0040f7}
[data-edge-style="flow"]{--edge-line-offset:0px;--edge-width:1px;--edge-aura-display:block;--edge-texture:conic-gradient(#0040f7 0deg,#0040f780 60deg,#0040f7 120deg,#0040f780 180deg,#0040f7 240deg,#0040f780 300deg,#0040f7 360deg);--edge-texture-motion:light-texture-turn 10s linear infinite;--edge-halo-motion:none;--edge-base-border:#0040f7}
.has-edge{border-color:var(--edge-base-border,#0040f7)}
.has-edge>.edge-light{inset:calc(-1px - var(--edge-line-offset,0px));padding:var(--edge-width,1px);border-radius:calc(var(--edge-radius) + var(--edge-line-offset,0px));opacity:1}
.has-edge>.edge-aura{display:var(--edge-aura-display,none);opacity:.65;animation:var(--edge-halo-motion,none);animation-play-state:paused}
.has-edge .edge-light-spin{background:var(--edge-texture,#0040f7);animation:var(--edge-texture-motion,none);animation-play-state:paused;will-change:auto}
.has-edge.is-inview .edge-light-spin,.has-edge.is-inview>.edge-aura{animation-play-state:running}
[data-edge-style="flow"] .has-edge.is-inview .edge-light-spin{will-change:transform}
.has-edge:hover>.edge-light,.has-edge:focus-visible>.edge-light{opacity:1}
.has-edge:hover>.edge-aura,.has-edge:focus-visible>.edge-aura{opacity:.85}
@keyframes brand-halo-breathe{from{opacity:.18}to{opacity:.8}}
@media(prefers-reduced-motion:reduce){.has-edge .edge-light-spin,.has-edge>.edge-aura{animation:none!important;will-change:auto!important}.has-edge>.edge-aura{opacity:.35}}
.motion-paused .has-edge>.edge-aura{animation-play-state:paused!important}

/* Round two: timing and spread studies for screenshot frames only. */
[data-edge-style^="breathe-"],[data-edge-style="flow-breathe"]{--edge-line-offset:0px;--edge-width:1px;--edge-aura-display:block;--edge-texture:#0040f7;--edge-texture-motion:none;--edge-halo-motion:brand-halo-breathe calc(var(--edge-cycle,12s)/2) ease-in-out infinite alternate;--edge-base-border:#0040f7}
[data-edge-style^="flow-"]{--edge-line-offset:0px;--edge-width:1px;--edge-aura-display:block;--edge-texture:conic-gradient(#0040f7 0deg,#0040f780 60deg,#0040f7 120deg,#0040f780 180deg,#0040f7 240deg,#0040f780 300deg,#0040f7 360deg);--edge-texture-motion:light-texture-turn var(--edge-cycle,10s) linear infinite;--edge-halo-motion:none;--edge-base-border:#0040f7}
[data-edge-style="breathe-slow"]{--edge-cycle:12s}[data-edge-style="breathe-steady"]{--edge-cycle:7s}[data-edge-style="breathe-quick"]{--edge-cycle:3.5s}[data-edge-style="breathe-wide"]{--edge-cycle:7s}
[data-edge-style="flow-slow"]{--edge-cycle:20s}[data-edge-style="flow-steady"]{--edge-cycle:10s}[data-edge-style="flow-quick"]{--edge-cycle:5s}[data-edge-style="flow-breathe"]{--edge-cycle:12s;--edge-halo-motion:brand-halo-breathe calc(var(--edge-cycle,12s)/2) ease-in-out infinite alternate}
[data-edge-style="breathe-wide"] .has-edge>.edge-aura{inset:-12px;border-radius:calc(var(--edge-radius) + 12px);filter:blur(8px)}
[data-edge-style="breathe-wide"] .has-edge .edge-mask{padding:13px}
[data-edge-style^="flow-"] .has-edge.is-inview .edge-light-spin{will-change:transform}
.study-motion-paused .edge-light-spin,.study-motion-paused .has-edge>.edge-aura{animation-play-state:paused!important;will-change:auto!important}
.study-timing{display:flex;align-items:center;gap:18px;margin:22px 0 18px;color:#c7c9c1;font-size:12px}.study-timing label{white-space:nowrap}.study-timing input{min-width:0;flex:1;accent-color:#0040f7;cursor:pointer;height:24px}.study-timing output{font-variant-numeric:tabular-nums;min-width:45px;color:#f6f5f0;text-align:right}
.study-nav button{background:none;border:0;border-bottom:1px solid #0040f7;color:#f6f5f0;padding:0 0 3px;font-size:12px;cursor:pointer}.study-option .screen-open{margin-bottom:20px}.study-option>.study-description{min-height:45px}.study-description strong{font-weight:400;color:#f6f5f0}.study-speed-tag{display:inline-block;margin-top:13px;font-size:11px;line-height:1.5;color:#bfc4bd;letter-spacing:.03em}
@media(prefers-reduced-motion:reduce){.has-edge .edge-light-spin,.has-edge>.edge-aura{animation:none!important;will-change:auto!important}}

/* Comparison page only: four real compositions with the same content. */
.border-study{--blue:#0040f7;background:#161715;color:#f6f5f0}
.study-nav,.study-intro,.study-grid,.study-note{max-width:1240px;margin:auto;padding-left:32px;padding-right:32px}
.study-nav{padding-top:28px;padding-bottom:24px;border-bottom:1px solid #484a43;display:flex;justify-content:space-between;gap:24px;font-size:12px}
.study-nav a{color:#f6f5f0}.study-nav>a:last-child{border-bottom:2px solid #0040f7;padding-bottom:3px}
.study-intro{padding-top:65px;padding-bottom:45px}.study-intro .eyebrow{color:#bfc4cd}.study-intro h1{font-size:64px;line-height:1.02;letter-spacing:-.055em;margin:22px 0}.study-intro p:not(.eyebrow){font-size:17px;line-height:1.65;color:#c7c9c1;max-width:740px}
.study-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px 54px;padding-top:12px;padding-bottom:70px}.study-option{min-width:0}.study-option>h2{font-size:29px;letter-spacing:-.035em;line-height:1.12;margin-bottom:13px}.study-option>.study-description{font-size:14px;line-height:1.6;color:#bfc4bd;margin-bottom:30px;min-height:45px;max-width:510px}
.study-option .screen-open{margin-bottom:30px}.study-option .study-panel{border:1px solid #484a43;border-radius:5px;background:#161715;padding:23px;margin-bottom:26px;--edge-radius:5px}.study-panel h3{font-size:24px;letter-spacing:-.03em;margin-bottom:10px}.study-panel p{font-size:14px;line-height:1.6;color:#c7c9c1}.study-actions{display:flex;align-items:center;gap:24px;flex-wrap:wrap;padding:8px 0}.study-action{background:#0040f7;color:white;min-height:46px;border-radius:4px;border:1px solid #0040f7;padding:11px 23px;font-size:13px}.study-try{font-size:12px;color:#f6f5f0;border-bottom:1px solid #0040f7;padding-bottom:4px}.study-note{padding-top:28px;padding-bottom:45px;border-top:1px solid #484a43;color:#bfc4bd;font-size:13px}
@media(max-width:760px){.study-nav,.study-intro,.study-grid,.study-note{padding-left:24px;padding-right:24px}.study-intro{padding-top:40px;padding-bottom:34px}.study-intro h1{font-size:44px}.study-grid{grid-template-columns:1fr;gap:56px}.study-option>h2{font-size:28px}.study-option>.study-description{min-height:0}.study-actions{gap:20px}.study-action{font-size:12px}.study-option .study-panel{padding:21px}}

/* Static textures do not need compositor promotion. */
.has-edge.is-inview .edge-light-spin{will-change:auto}
[data-edge-style="flow"] .has-edge.is-inview .edge-light-spin,[data-edge-style^="flow-"] .has-edge.is-inview .edge-light-spin{will-change:transform}
@media(prefers-reduced-motion:reduce){.has-edge.is-inview .edge-light-spin{will-change:auto!important}}

/* Owner selection: a steady blue edge; halo appears only on hover/focus.
   The separate comparison page retains its experimental animation controls. */
body:not(.border-study) .has-edge>.edge-light{inset:-1px;padding:1px;opacity:1}
body:not(.border-study) .has-edge .edge-light-spin{background:#0040f7;animation:none!important;will-change:auto!important}
body:not(.border-study) .has-edge>.edge-aura{display:block;opacity:0;animation:none!important;transition:opacity .25s ease}
body:not(.border-study) .has-edge:focus-visible>.edge-aura{opacity:.35}
@media(hover:hover){body:not(.border-study) .has-edge:hover>.edge-aura{opacity:.35}}
@media(prefers-reduced-motion:reduce){body:not(.border-study) .has-edge>.edge-aura{transition:none}}

/* Narrower, quieter hover halo; the cobalt edge stays unchanged. */
body:not(.border-study) .has-edge>.edge-aura{inset:-7px;border-radius:calc(var(--edge-radius) + 7px);filter:blur(5px)}
body:not(.border-study) .has-edge>.edge-aura .edge-mask{padding:8px}
