html.method-panel-open{overflow:hidden}.fixture-action,.method-action{border:1px solid var(--line-strong);cursor:pointer;min-height:3.2rem;font:650 .68rem/1 var(--mono);letter-spacing:.07em;text-transform:uppercase;background:#090b0c6b;justify-content:space-between;align-items:center;gap:1.5rem;padding:.5rem .75rem .5rem 1rem;transition:border-color .18s,background .18s,color .18s,transform .18s;display:inline-flex}button.fixture-action{border:1px solid var(--accent);min-width:13.5rem;color:var(--ink)}.fixture-action:after{content:"FIXTURE";color:var(--accent);letter-spacing:.12em;font-size:.58rem}button.method-action{min-width:9.5rem;color:var(--muted);border:1px solid #f4eee585}.method-action:after{content:"ALGO";color:var(--accent);letter-spacing:.12em;font-size:.58rem}.fixture-action:hover:not(:disabled),.fixture-action:focus-visible,.method-action:hover,.method-action:focus-visible{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, #0b0e0f);color:var(--ink);transform:translateY(-2px)}.fixture-action:disabled,.method-action:disabled{cursor:not-allowed;opacity:.45}.method-panel{width:min(48rem,100%);max-width:none;height:100svh;max-height:none;color:var(--ink);background:#101314;border:0;margin:0 0 0 auto;padding:0;inset:0 0 0 auto;overflow:hidden}.method-panel::backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#020303b8}.method-panel[open]{animation:.26s cubic-bezier(.22,1,.36,1) method-panel-enter}.method-panel__content{height:100%;overflow-y:auto}.method-panel__header{z-index:1;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#101314f0;justify-content:space-between;align-items:flex-start;gap:1.5rem;min-height:7rem;padding:1.5rem clamp(1.25rem,4vw,3rem);display:flex;position:sticky;top:0}.method-panel__header p{color:var(--accent);font:650 .64rem/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;margin:0}.method-panel__header h2{letter-spacing:-.075em;margin:.65rem 0 0;font-size:clamp(2.5rem,6vw,4.75rem);font-weight:560;line-height:.88}.method-panel__close{min-width:5rem;min-height:2.75rem;color:var(--muted);font:650 .66rem/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;background:0 0;padding:0}.method-panel__close:hover,.method-panel__close:focus-visible{color:var(--accent)}.method-panel__body{align-content:start;gap:3.5rem;padding:clamp(1.25rem,4vw,3rem);display:grid}.method-intro{max-width:38rem;color:var(--muted);margin:0;font-size:clamp(1rem,1.5vw,1.22rem);line-height:1.6}.method-block{gap:1.2rem;display:grid}.method-block__heading{border-bottom:1px solid var(--line);grid-template-columns:2.4rem 1fr;gap:.75rem;padding-bottom:.85rem;display:grid}.method-block__heading span{color:var(--accent);font:650 .64rem/1.5 var(--mono)}.method-block h3{letter-spacing:-.045em;margin:0;font-size:clamp(1.35rem,2.6vw,2.1rem);font-weight:560}.method-block p,.method-block li{color:var(--muted);font-size:.94rem;line-height:1.6}.method-block p{margin:0}.method-block ul{gap:.6rem;margin:0;padding:0;list-style:none;display:grid}.method-block li{border-left:1px solid color-mix(in srgb, var(--accent) 62%, transparent);padding-left:1rem}.method-figure{border:1px solid var(--line);background-color:#0b0e0f;background-image:linear-gradient(90deg,#f4eee50a 1px,#0000 1px),linear-gradient(#f4eee50a 1px,#0000 1px),none;background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:2rem 2rem;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;min-height:11rem;position:relative;overflow:hidden}.method-flow{grid-template-columns:1fr auto 1fr auto 1fr;align-items:center;gap:.75rem;height:100%;padding:2rem;display:grid}.method-flow__node{border:1px solid var(--line);min-height:4.7rem;color:var(--ink);font:650 .64rem/1.3 var(--mono);letter-spacing:.05em;text-align:center;text-transform:uppercase;background:#080b0cdb;place-items:center;padding:.8rem;display:grid}.method-flow__node small{color:var(--muted);font:.56rem/1.3 var(--mono);letter-spacing:.03em;text-transform:none}.method-flow__arrow{background:var(--accent);width:1.25rem;height:1px}.method-flow__pulse{background:var(--accent);width:.44rem;height:.44rem;box-shadow:0 0 1rem color-mix(in srgb, var(--accent) 72%, transparent);border-radius:50%;position:absolute;top:calc(50% - .22rem);left:2rem}.method-score-map{gap:.55rem;padding:1.25rem;display:grid}.method-score-map div{grid-template-columns:7rem 1fr auto;align-items:center;gap:.8rem;display:grid}.method-score-map span,.method-score-map b{font:.62rem/1 var(--mono);letter-spacing:.06em;text-transform:uppercase}.method-score-map span{color:var(--muted)}.method-score-map b{color:var(--accent)}.method-score-map i{background:color-mix(in srgb, var(--accent) 36%, transparent);height:.28rem;transform:scaleX(var(--score));transform-origin:0;display:block}.method-topology{place-items:center;min-height:13rem;padding:1.25rem;display:grid}.method-topology svg{width:min(100%,27rem);height:auto;overflow:visible}.method-topology path{fill:color-mix(in srgb, var(--accent) 16%, transparent);stroke:var(--accent);stroke-width:2px;stroke-dasharray:340;stroke-dashoffset:340px}.method-topology circle{fill:#101314;stroke:var(--accent);stroke-width:2px}.method-topology text{fill:var(--muted);font:10px var(--mono);letter-spacing:.08em}.method-code{border-left:2px solid var(--accent);color:#d9d4cc;font:.72rem/1.6 var(--mono);background:#090a0b;margin:0;padding:1rem 1.15rem;overflow-x:auto}.method-map{border-top:1px solid var(--line);display:grid}.method-map div{border-bottom:1px solid var(--line);grid-template-columns:minmax(10rem,.9fr) 1.5fr;align-items:center;gap:1rem;min-height:3.8rem;padding:.8rem 0;display:grid}.method-map code{color:var(--ink);font:.67rem/1.35 var(--mono);overflow-wrap:anywhere}.method-map p{font-size:.78rem}.method-panel[open] .method-flow__pulse{animation:1s cubic-bezier(.22,1,.36,1) .13s both method-pulse}.method-panel[open] .method-score-map i{animation:.42s cubic-bezier(.22,1,.36,1) both method-score-enter}.method-panel[open] .method-score-map div:nth-child(2) i{animation-delay:70ms}.method-panel[open] .method-score-map div:nth-child(3) i{animation-delay:.14s}.method-panel[open] .method-score-map div:nth-child(4) i{animation-delay:.21s}.method-panel[open] .method-topology path{animation:.65s cubic-bezier(.22,1,.36,1) .12s both method-path-enter}@keyframes method-panel-enter{0%{opacity:0;transform:translate(1.5rem)}}@keyframes method-pulse{0%{opacity:0;transform:translate(0)scale(.7)}to{opacity:1;transform:translate(calc(min(48rem,100vw) - 4rem))scale(1)}}@keyframes method-score-enter{0%{transform:scaleX(0)}to{transform:scaleX(var(--score))}}@keyframes method-path-enter{to{stroke-dashoffset:0}}@media (width<=680px){.method-panel__header{gap:.75rem;min-height:0;padding:1.25rem}.method-panel__header h2{font-size:clamp(2.1rem,10vw,2.5rem);line-height:.92}.method-flow{grid-template-columns:1fr;padding:1rem}.method-flow__arrow{justify-self:center;width:1px;height:1rem}.method-flow__pulse{display:none}.method-score-map div,.method-map div{grid-template-columns:1fr;gap:.5rem}}@media (prefers-reduced-motion:reduce){.method-panel[open],.method-panel[open] .method-flow__pulse,.method-panel[open] .method-score-map i,.method-panel[open] .method-topology path{animation:none}}
