.controller-visual{aspect-ratio:441/383;background:rgb(var(--color-card));border-radius:1.2rem;width:100%;margin-top:.8rem;position:relative;overflow:hidden}.controller-svg{width:100%;height:100%;display:block}.controller-body{fill:rgb(var(--controller-body));stroke:rgb(var(--controller-stroke));stroke-width:3px}.controller-detail{fill:rgb(var(--controller-detail));stroke:rgb(var(--controller-stroke));stroke-width:2px}.controller-detail>path:not(:first-child):not(:nth-child(2)),.controller-detail>rect,.controller-detail>circle{stroke-linejoin:round}.controller-detail .controller-divider{fill:none;stroke:rgb(var(--controller-stroke))}.controller-detail .stick-cap{fill:rgb(var(--controller-cap));stroke:rgb(var(--controller-cap-stroke));stroke-width:2px}.controller-detail .face-cap,.controller-detail .dpad-shape{fill:rgb(var(--controller-cap));stroke:none}.controller-icon{fill:rgb(var(--controller-icon));stroke:rgb(var(--controller-icon));stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;font-family:var(--font-mono);pointer-events:none;font-size:12px;font-weight:700}.controller-controls{z-index:2;position:absolute;inset:0}.controller-control{top:var(--control-y);left:var(--control-x);cursor:pointer;place-items:center;display:grid;position:absolute;transform:translate(-50%,-50%)}.face-control{border:1px solid rgb(var(--controller-cap-stroke));background:rgb(var(--controller-cap));color:rgb(var(--controller-icon));font-family:var(--font-mono);border-radius:50%;width:5.9%;height:6.8%;font-size:clamp(.5rem,1.15vw,.75rem);font-weight:700}.face-y{--control-x:74.83%;--control-y:36.55%}.face-x{--control-x:70.29%;--control-y:42.3%}.face-b{--control-x:78.91%;--control-y:42.04%}.face-a{--control-x:74.83%;--control-y:47.26%}.shoulder-control{border:1px solid rgb(var(--controller-cap-stroke));background:rgb(var(--controller-cap));color:rgb(var(--controller-icon));font-family:var(--font-mono);border-radius:.4rem;width:9.82%;height:4.44%;font-size:clamp(.5rem,1.15vw,.75rem);font-weight:700}.shoulder-left{--control-x:31.52%;--control-y:19.7%}.shoulder-right{--control-x:68.59%;--control-y:19.7%}.invisible-control{color:#0000;pointer-events:auto;background:0 0;border:0}.invisible-control:focus-visible{outline:3px solid rgb(var(--color-accent));outline-offset:2px}.invisible-control.is-pressed{border:2px solid rgb(var(--color-accent));background:rgba(var(--color-accent),.22);box-shadow:0 0 1rem rgba(var(--color-accent),.32);border-radius:.55rem}.dpad-up,.dpad-down,.dpad-left,.dpad-right{width:1.7rem;height:1.7rem}.dpad-up{--control-x:37.64%;--control-y:56.92%}.dpad-down{--control-x:37.64%;--control-y:66.32%}.dpad-left{--control-x:33.79%;--control-y:62.14%}.dpad-right{--control-x:41.5%;--control-y:62.14%}.stick-click-left,.stick-click-right{border-radius:50%;width:clamp(3rem,14vw,4.7rem);height:clamp(3rem,14vw,4.7rem)}.stick-click-left{--control-x:25.62%;--control-y:41.78%}.stick-click-right{--control-x:63.04%;--control-y:62.14%}.menu-view,.menu-menu,.system-share{border-radius:50%;width:1.65rem;height:1.65rem}.menu-view{--control-x:42.63%;--control-y:42.3%}.menu-menu{--control-x:57.37%;--control-y:42.3%}.system-share{--control-x:50%;--control-y:42.3%}.system-home{--control-x:50%;--control-y:32.64%;border-radius:50%;width:2.35rem;height:2.35rem}.controller-visual [data-button-index].is-pressed{border-color:rgb(var(--color-accent));background:rgb(var(--color-accent));color:rgb(var(--color-fill));box-shadow:0 0 1rem rgba(var(--color-accent),.5)}.controller-legend{color:rgb(var(--color-text-muted));flex-wrap:wrap;align-items:center;gap:.8rem 1.3rem;margin-top:1rem;font-size:.8rem;display:flex}.controller-legend span{align-items:center;gap:.4rem;display:inline-flex}.controller-legend i{border-radius:50%;width:.55rem;height:.55rem}.legend-pressed{background:rgb(var(--color-accent))}.legend-waiting{background:rgb(var(--color-text-muted))}@media (prefers-reduced-motion:reduce){.controller-control,.face-control{transition:none}}.stick-readouts{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;display:grid}.stick-readout{text-align:center;min-width:0}.stick-plot{aspect-ratio:1;border:1px solid rgb(var(--color-border));background:radial-gradient(circle,rgba(var(--color-positive),.1),transparent 62%),rgb(var(--color-card-muted));border-radius:50%;margin-bottom:.65rem;position:relative;overflow:hidden}.plot-ring{border:1px dashed rgba(var(--color-text-muted),.55);border-radius:50%;position:absolute;inset:18%}.plot-pointer{top:var(--point-y,50%);left:var(--point-x,50%);z-index:1;border:2px solid rgb(var(--color-card-muted));background:rgb(var(--color-positive));box-shadow:0 0 .65rem rgba(var(--color-positive),.6);border-radius:50%;width:.72rem;height:.72rem;transition:top 80ms linear,left 80ms linear;position:absolute;transform:translate(-50%,-50%)}.plot-crosshair{background:rgba(var(--color-text-muted),.3);position:absolute}.plot-crosshair.horizontal{width:100%;height:1px;top:50%;left:0}.plot-crosshair.vertical{width:1px;height:100%;top:0;left:50%}.stick-readout strong,.trigger-readout strong{color:rgb(var(--color-text-base));font-family:var(--font-mono);letter-spacing:.04em;font-size:.7rem;display:block}.axis-values,.stick-readout small,.trigger-readout output{font-family:var(--font-mono);display:block}.axis-values{color:rgb(var(--color-text-base));font-size:.72rem}.stick-readout small{color:rgb(var(--color-text-muted));font-size:.68rem}.trigger-readouts{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;min-height:12rem;display:grid}.trigger-readout{flex-direction:column;align-items:center;display:flex}.trigger-track{border:1px solid rgb(var(--color-border));background:rgb(var(--color-card-muted));border-radius:1rem;width:3rem;height:9rem;position:relative;overflow:hidden}.trigger-track span{background:linear-gradient(180deg,rgb(var(--color-accent)),rgb(var(--color-accent-strong)));height:0;transition:height .12s;position:absolute;bottom:0;left:0;right:0}.trigger-readout output{color:rgb(var(--color-text-base));margin-top:.55rem;font-size:.8rem}.trigger-readout strong{margin-top:.35rem}@media (prefers-reduced-motion:reduce){.plot-pointer{transition:none}}.raw-card,.vibration-card{flex-direction:column;align-self:start;min-width:0;display:flex}.data-card-heading{align-items:flex-start;margin-bottom:.75rem}.data-card-title{min-width:0}.data-card-title h3{color:rgb(var(--color-text-base));margin:.25rem 0 0;font-size:clamp(1.1rem,2.2vw,1.4rem);line-height:1.1}.data-card-subtitle{color:rgb(var(--color-text-muted));font-family:var(--font-mono);text-overflow:ellipsis;white-space:nowrap;margin-top:.35rem;font-size:.62rem;line-height:1;display:block;overflow:hidden}.data-card-icon{background:rgba(var(--color-accent),.12);border-radius:.55rem;flex:none;place-items:center;width:1.8rem;height:1.8rem;display:grid}.data-card-icon.icon-orange{background:rgba(var(--color-warning),.14)}.data-card-icon svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;width:1.1rem;height:1.1rem}.raw-content{flex-direction:column;flex:1;gap:.55rem;min-height:0;display:flex;overflow:hidden}.raw-group{margin-top:0}.raw-group>strong{color:rgb(var(--color-text-muted));font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;font-size:.58rem;display:block}.raw-list{color:rgb(var(--color-text-muted));font-family:var(--font-mono);margin-top:.3rem}.raw-axes-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:.3rem .7rem;display:grid}.raw-axis-row{grid-template-columns:.8rem minmax(0,1fr) 2.7rem;align-items:center;gap:.35rem;min-width:0;line-height:1;display:grid}.raw-index,.raw-axis-row output{color:rgb(var(--color-text-muted));white-space:nowrap;font-size:.58rem;overflow:hidden}.raw-axis-row output{text-align:right}.raw-axis-meter{background:rgb(var(--color-card-muted));border-radius:999px;height:.35rem;position:relative;overflow:hidden}.raw-axis-meter:before{background:rgba(var(--color-text-muted),.42);content:"";width:1px;position:absolute;top:0;bottom:0;left:50%}.raw-axis-meter i{border-radius:inherit;background:rgb(var(--color-accent));width:0;transition:left .12s,width .12s;position:absolute;top:0;bottom:0;left:50%}.raw-buttons-group{flex:1;min-height:0}.raw-buttons{grid-template-columns:repeat(auto-fill,minmax(2rem,1fr));gap:3px;display:grid}.raw-button-cell{border:1px dashed rgb(var(--color-border));color:rgb(var(--color-text-muted));border-radius:.4rem;justify-content:center;align-items:center;height:1.375rem;font-size:.58rem;font-weight:700;display:flex;overflow:hidden}.raw-button-cell.is-pressed{border-style:solid;border-color:rgb(var(--color-accent));background:rgb(var(--color-accent));color:rgb(var(--color-fill))}.raw-status{color:rgb(var(--color-text-muted));font-family:var(--font-mono);letter-spacing:.08em;text-align:center;text-transform:uppercase;margin-top:.6rem;font-size:.62rem;font-weight:700;line-height:1}.haptics-card-heading{margin-bottom:.5rem}.vibration-display{flex:1;justify-content:center;align-items:center;gap:1.5rem;min-height:6.3rem;display:flex}.vibration-motor{background:rgb(var(--color-card-muted));border-radius:999px;width:.375rem;height:4rem;position:relative;overflow:hidden}.vibration-motor span{background:currentColor;height:0;transition:height .12s;position:absolute;bottom:0;left:0;right:0}.vibration-motor-left{color:rgb(var(--color-warning))}.vibration-motor-right{color:rgb(var(--color-accent))}.vibration-orb{background:rgb(var(--color-card-muted));color:rgb(var(--color-text-muted));border-radius:50%;place-items:center;width:5rem;height:5rem;display:grid}.vibration-orb svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;width:2rem;height:2rem}.vibration-controls{grid-template-columns:repeat(2,minmax(0,1fr));gap:.4rem;width:100%;margin-top:.8rem;display:grid}.vibration-controls button{background:rgb(var(--color-card-muted));color:rgb(var(--color-text-muted));font-family:var(--font-mono);text-transform:uppercase;border:1px solid #0000;border-radius:.75rem;flex-direction:column;align-items:center;gap:.3rem;min-width:0;padding:.45rem .35rem;font-size:.63rem;font-weight:700;line-height:1;display:flex}.vibration-controls button:hover,.vibration-controls button:focus-visible{border-color:rgba(var(--color-warning),.45);background:rgba(var(--color-warning),.14);color:rgb(var(--color-warning))}.preset-meter{opacity:.32;background:currentColor;border-radius:999px;width:2rem;height:.25rem;display:block}.preset-meter:after{border-radius:inherit;content:"";background:currentColor;height:100%;display:block}.preset-heavy{color:rgb(var(--color-warning))}.preset-heavy:after,.preset-light:after{width:75%}.preset-light{color:rgb(var(--color-accent))}.preset-burst{color:#aa70ff}.preset-burst:after{width:100%}.preset-pulse{color:#f45c7d}.preset-pulse:after{width:25%}.vibration-status{margin:.7rem 0 0;font-size:.72rem;display:none}.vibration-status.is-visible{display:block}.gamepad-tool{border:1px solid rgb(var(--color-border));background:radial-gradient(circle at 15% 0%,rgba(var(--color-accent),.1),transparent 34rem),rgb(var(--color-fill));box-shadow:var(--shadow-card);border-radius:2rem;width:100%;margin:2rem auto 0;padding:clamp(1rem,2vw,1.35rem)}.tool-topbar,.card-heading,.player-switcher{align-items:center;display:flex}.tool-topbar{justify-content:space-between;gap:1rem;padding:.55rem .55rem 1.15rem}.tool-kicker,.card-kicker{color:rgb(var(--color-accent));font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:.78rem;font-weight:600}.tool-topbar h2,.card-heading h3{margin:.25rem 0 0}.tool-topbar h2{font-size:clamp(1.6rem,3vw,2.2rem)}.tool-status,.controller-name,.card-description,.vibration-status{color:rgb(var(--color-text-muted));font-size:1rem}.tool-status{margin:.35rem 0 0}.player-switcher{border:1px solid rgb(var(--color-border));background:rgb(var(--color-card));border-radius:999px;gap:.2rem;padding:.25rem}.player-switcher button{color:rgb(var(--color-text-muted));cursor:pointer;background:0 0;border:0;border-radius:999px;min-width:2.5rem;padding:.55rem .7rem;font-size:.82rem;font-weight:700}.player-switcher button:hover,.player-switcher button.active,.player-switcher button[aria-pressed=true]{background:rgb(var(--color-card-muted));color:rgb(var(--color-text-base))}.player-help{color:rgb(var(--color-text-muted));text-align:right;margin:-.7rem 0 .85rem;font-size:.78rem}.tool-grid{grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);gap:1rem;display:grid}.controller-card,.telemetry-card{border:1px solid rgb(var(--color-border));background:rgb(var(--color-card));border-radius:1.6rem;min-width:0}.controller-card{align-self:start;padding:clamp(1rem,2.2vw,1.5rem)}.telemetry-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.telemetry-card{padding:1.25rem}.card-heading{justify-content:space-between;gap:.8rem}.card-heading h3{font-size:clamp(1.1rem,2.2vw,1.4rem)}.card-description{margin:.45rem 0 1rem;line-height:1.35}.connection-dot{background:rgb(var(--color-text-muted));box-shadow:0 0 0 .3rem rgba(var(--color-text-muted),.12);border-radius:50%;flex:none;width:.8rem;height:.8rem}.connection-dot.is-connected{background:rgb(var(--color-positive));box-shadow:0 0 0 .3rem rgba(var(--color-positive),.14)}.controller-name{font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;min-height:1.65rem;margin:.75rem 0 0;font-size:.8rem}@media (max-width:900px){.tool-grid{grid-template-columns:1fr}}@media (max-width:560px){.gamepad-tool{border-radius:1.35rem;width:min(100% - 1rem,76rem);padding:.65rem}.tool-topbar{flex-direction:column;align-items:flex-start}.player-switcher{justify-content:space-between;align-self:stretch}.player-switcher button{flex:1}.controller-card,.telemetry-card{border-radius:1.1rem}.telemetry-grid{grid-template-columns:1fr}}.homepage{width:min(100% - 2rem,76rem);margin:0 auto}.homepage-content{gap:1.15rem;padding-bottom:2rem;display:grid}.home-hero{border:1px solid rgb(var(--color-border));background:radial-gradient(circle at 12% 10%,rgba(var(--color-accent),.14),transparent 34%),linear-gradient(135deg,rgba(var(--color-card),.96),rgba(var(--color-fill),.9));box-shadow:var(--shadow-card);text-align:center;border-radius:1.75rem;width:100%;margin:clamp(1rem,2vw,2rem) auto 1.25rem;padding:clamp(2rem,5vw,4rem) clamp(1.25rem,4vw,3rem);position:relative;overflow:hidden}.home-hero:after{border:1px solid rgba(var(--color-accent),.14);content:"";pointer-events:none;border-radius:50%;width:17rem;height:17rem;position:absolute;bottom:-7rem;right:-6rem}.eyebrow{color:rgb(var(--color-accent));font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:.78rem;font-weight:600}.home-hero h1{z-index:1;letter-spacing:-.045em;max-width:54rem;margin:.8rem auto 1rem;font-size:clamp(2.25rem,6vw,4.2rem);line-height:1.03;position:relative}.lead{z-index:1;color:rgb(var(--color-text-muted));max-width:48rem;margin:0 auto;font-size:clamp(1.05rem,2vw,1.3rem);position:relative}.home-section{border:1px solid rgb(var(--color-border));background:linear-gradient(145deg,rgba(var(--color-card),.98),rgba(var(--color-card),.72)),rgb(var(--color-card));box-shadow:var(--shadow-card);border-radius:1.5rem;margin:2rem 0 0;padding:clamp(1.5rem,4vw,2.75rem);position:relative;overflow:hidden}.home-section:before{background:linear-gradient(90deg,rgb(var(--color-accent)),transparent 72%);content:"";opacity:.7;height:2px;position:absolute;top:0;left:0;right:0}.section-heading{margin-bottom:1.35rem;display:block}.section-heading h2{letter-spacing:-.035em;max-width:52rem;margin:.45rem 0 0;font-size:clamp(1.8rem,4vw,2.8rem)}.home-section>h3,.text-section h3{color:rgb(var(--color-text-base));letter-spacing:-.02em;margin:1.8rem 0 .7rem;font-size:1.35rem}.home-section p,.home-section li,.home-section td,.home-section th,.home-section summary{color:rgb(var(--color-text-muted));font-size:16px;line-height:1.72}.home-section p{max-width:64rem}.home-section p a,.home-section li a,.home-section td a,.home-section summary a{color:rgb(var(--color-accent));text-underline-offset:.2em;font-weight:600}.feature-grid,.glossary-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem;margin-top:1.5rem;display:grid}.feature-card,.glossary-grid article{border:1px solid rgb(var(--color-border));background:rgba(var(--color-card),.82);border-radius:1.2rem;padding:1.35rem;position:relative}.feature-card-link{color:inherit;text-decoration:none;transition:border-color .18s,transform .18s,background .18s;display:block}.feature-card-link:after{color:rgb(var(--color-text-muted));content:"↗";font-size:1rem;position:absolute;top:1.15rem;right:1.2rem}.feature-card-link:hover{border-color:rgb(var(--color-accent));background:rgb(var(--color-card-muted));transform:translateY(-.18rem)}.feature-card:focus-visible{outline:3px solid rgb(var(--color-accent));outline-offset:4px}.feature-card h3,.glossary-grid h3{color:rgb(var(--color-text-base));letter-spacing:-.015em;margin:.7rem 0 0;font-size:1.15rem}.glossary-grid h3 a{color:inherit;text-decoration:none}.glossary-grid h3 a:hover{color:rgb(var(--color-accent))}.feature-card p,.glossary-grid p{margin:.55rem 0 0}.feature-number{background:rgb(var(--color-card-muted));color:rgb(var(--color-text-muted));font-family:var(--font-mono);border-radius:.55rem;place-items:center;min-width:1.75rem;min-height:1.75rem;padding:0 .35rem;font-size:.78rem;font-weight:600;display:inline-grid}.feature-blue{box-shadow:inset 0 3px rgb(var(--color-accent))}.feature-green{box-shadow:inset 0 3px rgb(var(--color-positive))}.feature-orange{box-shadow:inset 0 3px rgb(var(--color-warning))}.feature-purple{box-shadow:inset 0 3px #ad8cff}.home-related-tools{border-top:1px solid rgb(var(--color-border));flex-wrap:wrap;gap:.55rem;margin-top:1.35rem;padding-top:1rem;display:flex}.home-related-tools a{border:1px solid rgb(var(--color-border));background:rgba(var(--color-card-muted),.48);color:rgb(var(--color-text-muted));border-radius:999px;padding:.5rem .75rem;font-size:.86rem;text-decoration:none;transition:border-color .18s,color .18s,background .18s}.home-related-tools a:hover,.home-related-tools a:focus-visible{border-color:rgb(var(--color-accent));background:rgb(var(--color-card-muted));color:rgb(var(--color-text-base))}.step-list,.check-list{padding:0;list-style:none}.step-list{counter-reset:homepage-step;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin:1.5rem 0;display:grid}.step-list li{border:1px solid rgb(var(--color-border));background:rgba(var(--color-card-muted),.38);counter-increment:homepage-step;border-radius:1rem;min-height:4.5rem;padding:1rem 1rem 1rem 3.35rem;position:relative}.step-list li:before{background:rgb(var(--color-card-muted));color:rgb(var(--color-accent));content:counter(homepage-step,decimal-leading-zero);font-family:var(--font-mono);border-radius:.55rem;place-items:center;width:1.7rem;height:1.7rem;font-size:.75rem;font-weight:600;display:grid;position:absolute;top:.9rem;left:1rem}.step-list strong,.check-list strong{color:rgb(var(--color-text-base))}.check-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;margin:1.35rem 0;display:grid}.check-list li{border-left:3px solid rgb(var(--color-accent));background:rgba(var(--color-card-muted),.35);border-radius:0 .75rem .75rem 0;padding:.8rem .9rem}.home-section table{border:1px solid rgb(var(--color-border));border-spacing:0;border-collapse:separate;background:rgba(var(--color-card-muted),.22);border-radius:1rem;width:100%;margin-top:1.4rem;overflow:hidden}.home-section th,.home-section td{border-bottom:1px solid rgb(var(--color-border));text-align:left;vertical-align:top;padding:.9rem 1rem}.home-section th{background:rgb(var(--color-card-muted));color:rgb(var(--color-text-base));font-weight:700}.home-section tbody tr:last-child td{border-bottom:0}.glossary-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.faq-section details{border:1px solid rgb(var(--color-border));background:rgba(var(--color-card-muted),.3);border-radius:1rem;margin:.75rem 0;padding:1rem 1.2rem;transition:border-color .18s,background .18s}.faq-section details[open]{border-color:rgb(var(--color-accent));background:rgba(var(--color-card-muted),.58)}.faq-section summary{color:rgb(var(--color-text-base));cursor:pointer;font-weight:700;list-style-position:outside}.faq-section details p{margin:.8rem 0 0}@media (max-width:900px){.step-list,.check-list,.glossary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:640px){.homepage{width:min(100% - 1rem,76rem)}.home-hero{border-radius:1.25rem;margin-top:2.5rem}.home-section{border-radius:1.2rem;padding:1.25rem}.feature-grid,.step-list,.check-list,.glossary-grid{grid-template-columns:1fr}.home-section table{white-space:nowrap;display:block;overflow-x:auto}}@media (prefers-reduced-motion:reduce){.feature-card-link,.home-related-tools a,.faq-section details{transition:none}}