.joystick-page-shell{width:min(100% - 2rem,76rem);margin:clamp(1.25rem,4vw,3.5rem) auto 4rem;overflow-x:clip}.joystick-tester-tool{position:relative;overflow:hidden;border:1px solid rgb(var(--color-border));border-radius:1.9rem;background:radial-gradient(circle at 8% 0%,rgba(var(--color-accent),.16),transparent 30%),radial-gradient(circle at 92% 100%,rgba(var(--color-positive),.1),transparent 28%),rgb(var(--color-card));box-shadow:var(--shadow-card)}.joystick-tester-tool:before{position:absolute;top:0;right:8%;width:15rem;height:1px;background:linear-gradient(90deg,transparent,rgba(var(--color-accent),.75),transparent);content:""}.joystick-tool-header,.joystick-tool-actions,.joystick-device-row,.joystick-card-heading,.joystick-panel-heading,.joystick-tool-footer,.joystick-trace-intro{display:flex;align-items:center;justify-content:space-between;gap:1rem}.joystick-tool-header{position:relative;z-index:1;align-items:flex-start;padding:clamp(1.2rem,3vw,2.25rem);border-bottom:1px solid rgb(var(--color-border))}.joystick-eyebrow,.joystick-panel-kicker,.joystick-guide-eyebrow{margin:0 0 .4rem;color:rgb(var(--color-accent));font-family:var(--font-mono);font-size:.7rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase}.joystick-tool-header h1{margin:0;font-size:clamp(2rem,5vw,3.8rem);letter-spacing:-.06em}.joystick-tool-lead{max-width:34rem;margin:.75rem 0 0;color:rgb(var(--color-text-muted));font-size:clamp(1rem,1.8vw,1.1rem)}.joystick-tool-actions{flex:0 0 auto;align-items:flex-end;flex-direction:column}.joystick-connection{display:flex;align-items:center;gap:.7rem;min-width:14rem;padding:.7rem .85rem;border:1px solid rgb(var(--color-border));border-radius:.9rem;background:rgba(var(--color-fill),.42)}.joystick-connection strong,.joystick-connection span{display:block}.joystick-connection strong{color:rgb(var(--color-text-base));font-size:.85rem}.joystick-connection [data-controller-name]{max-width:15rem;overflow-wrap:anywhere;color:rgb(var(--color-text-muted));font-family:var(--font-mono);font-size:.67rem}.joystick-status-dot,.joystick-tool-footer i{display:inline-block;flex:0 0 auto;width:.65rem;height:.65rem;border-radius:50%;background:rgb(var(--color-warning));box-shadow:0 0 .8rem rgba(var(--color-warning),.55)}.joystick-status-dot.is-connected{background:rgb(var(--color-positive));box-shadow:0 0 .8rem rgba(var(--color-positive),.6)}.joystick-data-toggle,.joystick-device-slot,.joystick-clear-button{min-height:2.75rem;border:1px solid rgb(var(--color-border));border-radius:999px;background:rgb(var(--color-card-muted));color:rgb(var(--color-text-muted));cursor:pointer;font-size:.78rem;font-weight:700;transition:border-color .16s ease,color .16s ease,background .16s ease}.joystick-data-toggle{padding:.55rem .85rem}.joystick-data-toggle:hover,.joystick-data-toggle[aria-pressed=true],.joystick-device-slot:hover,.joystick-device-slot.is-active,.joystick-clear-button:hover:not(:disabled){border-color:rgb(var(--color-accent));background:rgba(var(--color-accent),.14);color:rgb(var(--color-accent))}.joystick-device-row{justify-content:flex-start;flex-wrap:wrap;padding:.8rem clamp(1.2rem,3vw,2.25rem);border-bottom:1px solid rgb(var(--color-border));background:rgba(var(--color-fill),.24)}.joystick-device-label,.joystick-device-help{color:rgb(var(--color-text-muted));font-family:var(--font-mono);font-size:.64rem;letter-spacing:.08em;text-transform:uppercase}.joystick-device-help{margin-left:auto;letter-spacing:0;text-transform:none}.joystick-device-slot{min-width:3rem;padding:.4rem .75rem}.joystick-device-slot:not([data-connected]){opacity:.55}.joystick-tester-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(20rem,26rem)}.joystick-tester-tool.is-data-only .joystick-trace-column,.joystick-tester-tool.is-auto-data-only .joystick-trace-column{display:none}.joystick-tester-tool.is-data-only .joystick-tester-layout,.joystick-tester-tool.is-auto-data-only .joystick-tester-layout{grid-template-columns:1fr}.joystick-trace-column{min-width:0;padding:clamp(1rem,3vw,2.25rem);background:rgba(var(--color-fill),.16)}.joystick-trace-intro{align-items:flex-start;margin-bottom:1rem}.joystick-trace-intro h2{margin:0;font-size:clamp(1.35rem,3vw,2rem);letter-spacing:-.04em}.joystick-trace-badge,.joystick-trace-label{padding:.35rem .55rem;border:1px solid rgba(var(--color-positive),.45);border-radius:999px;color:rgb(var(--color-positive));font-family:var(--font-mono);font-size:.62rem;letter-spacing:.08em}.joystick-trace-note{display:flex;align-items:flex-start;gap:.7rem;margin-top:1rem;padding:.8rem .95rem;border:1px solid rgba(var(--color-accent),.24);border-radius:.9rem;background:rgba(var(--color-accent),.06)}.joystick-trace-note span{color:rgb(var(--color-accent));font-size:1.2rem;line-height:1.3}.joystick-trace-note p{margin:0;color:rgb(var(--color-text-muted));font-size:.8rem}.joystick-telemetry-column{min-width:0;border-left:1px solid rgb(var(--color-border));background:rgba(var(--color-card),.7)}.joystick-telemetry-card{min-width:0;padding:1rem;border-bottom:1px solid rgb(var(--color-border))}.joystick-telemetry-card:last-child{border-bottom:0}.joystick-card-heading{align-items:flex-start;margin-bottom:.8rem}.joystick-card-heading h2{margin:0;font-size:1rem;letter-spacing:-.02em}.joystick-card-count,.joystick-card-icon{display:inline-flex;align-items:center;justify-content:center;min-width:2rem;height:2rem;border-radius:.65rem;background:rgba(var(--color-accent),.12);color:rgb(var(--color-accent));font-family:var(--font-mono);font-size:.7rem}.joystick-card-icon.is-purple{background:#c084fc21;color:#d8b4fe;font-size:1.2rem}.joystick-tool-footer{align-items:flex-start;flex-wrap:wrap;padding:.9rem clamp(1rem,3vw,2.25rem);border-top:1px solid rgb(var(--color-border));color:rgb(var(--color-text-muted));font-family:var(--font-mono);font-size:.65rem;letter-spacing:.04em;text-transform:uppercase}.joystick-tool-footer span{display:inline-flex;align-items:center;gap:.45rem}@media (prefers-reduced-motion: reduce){.joystick-page-shell *,.joystick-page-shell *:before,.joystick-page-shell *:after{scroll-behavior:auto;transition:none}}.joystick-trace-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.joystick-trace-panel{min-width:0;padding:1rem;border:1px solid rgba(var(--color-accent),.25);border-radius:1.25rem;background:linear-gradient(145deg,rgba(var(--color-accent),.09),rgba(var(--color-fill),.48)),rgb(var(--color-fill))}.joystick-trace-panel.is-coral{border-color:#fb718545;background:linear-gradient(145deg,#fb718514,rgba(var(--color-fill),.48)),rgb(var(--color-fill))}.joystick-panel-heading{align-items:flex-start}.joystick-panel-heading h3{margin:0;font-size:1.1rem;letter-spacing:-.03em}.joystick-panel-kicker{margin-bottom:.25rem;color:rgb(var(--color-text-muted));font-size:.62rem}.joystick-trace-label{border-color:rgba(var(--color-accent),.4);color:rgb(var(--color-accent))}.is-coral .joystick-trace-label{border-color:#fb718573;color:#fb7185}.joystick-trace-plot{display:block;width:min(100%,19rem);aspect-ratio:1;margin:1rem auto;overflow:visible;border-radius:50%;background:radial-gradient(circle at center,rgba(var(--color-accent),.12) 0 1px,transparent 1.5px),repeating-radial-gradient(circle at center,transparent 0 19.5%,rgba(var(--color-border),.3) 20% 20.4%)}.joystick-plot-ring,.joystick-plot-axis{fill:none;stroke:rgb(var(--color-border))}.joystick-plot-ring{stroke-dasharray:1.2 2.4;stroke-width:.7}.joystick-plot-ring.is-inner{stroke-dasharray:1 3;opacity:.6}.joystick-plot-axis{stroke-width:.35;opacity:.8}.joystick-trace-path{fill:none;stroke:rgb(var(--color-accent));stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8;filter:drop-shadow(0 0 .45rem rgba(var(--color-accent),.4))}.joystick-trace-path.is-coral{stroke:#fb7185;filter:drop-shadow(0 0 .45rem rgba(251,113,133,.4))}.joystick-trace-pointer{fill:rgb(var(--color-positive));stroke:rgb(var(--color-card));stroke-width:1.5}.joystick-trace-pointer.is-coral{fill:#fb7185}.joystick-axis-readout{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem;color:rgb(var(--color-text-muted));font-family:var(--font-mono);font-size:.67rem}.joystick-axis-readout span{padding:.4rem .45rem;border:1px solid rgba(var(--color-border),.8);border-radius:.5rem;background:rgba(var(--color-card),.5)}.joystick-axis-readout output{color:rgb(var(--color-text-base));font-weight:600}.joystick-button-matrix{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.35rem;min-height:4.5rem;padding:.55rem;border:1px solid rgb(var(--color-border));border-radius:.85rem;background:rgba(var(--color-fill),.48);color:rgb(var(--color-text-muted));font-size:.7rem;text-align:center}.joystick-button-cell,.joystick-raw-button-cell{display:inline-flex;align-items:center;justify-content:center;min-width:0;min-height:2.1rem;padding:.25rem;overflow:hidden;border:1px solid rgb(var(--color-border));border-radius:.5rem;background:rgba(var(--color-card),.75);color:rgb(var(--color-text-muted));font-family:var(--font-mono);font-size:.65rem;text-overflow:ellipsis;white-space:nowrap}.joystick-button-cell.is-pressed,.joystick-raw-button-cell.is-pressed{border-color:rgb(var(--color-positive));background:rgba(var(--color-positive),.2);box-shadow:inset 0 0 0 2px rgba(var(--color-positive),.25);color:rgb(var(--color-text-base));font-weight:700}.joystick-button-cell.is-pressed:before{width:.35rem;height:.35rem;margin-right:.25rem;border-radius:50%;background:rgb(var(--color-positive));content:""}.joystick-button-cell[data-touched]:not(.is-pressed){border-style:dashed}.joystick-raw-block+.joystick-raw-block{margin-top:.95rem}.joystick-raw-label{margin-bottom:.45rem;color:rgb(var(--color-text-muted));font-family:var(--font-mono);font-size:.65rem;letter-spacing:.08em;text-transform:uppercase}.joystick-raw-axes{display:grid;gap:.45rem}.joystick-axis-row{display:grid;grid-template-columns:1.25rem minmax(0,1fr) 3.9rem;align-items:center;gap:.45rem;color:rgb(var(--color-text-muted));font-family:var(--font-mono);font-size:.65rem}.joystick-axis-row output{color:rgb(var(--color-text-base));text-align:right}.joystick-axis-meter{position:relative;display:block;height:.45rem;overflow:hidden;border-radius:999px;background:linear-gradient(90deg,#fb71852e 0 49.5%,rgb(var(--color-border)) 49.5% 50.5%,rgba(var(--color-accent),.18) 50.5%)}.joystick-axis-fill{position:absolute;top:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,rgb(var(--color-accent)),rgb(var(--color-positive)))}.joystick-raw-buttons{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.3rem}.joystick-raw-button-cell{min-height:1.8rem;font-size:.6rem}.joystick-raw-status{margin:.8rem 0 0;color:rgb(var(--color-text-muted));font-family:var(--font-mono);font-size:.62rem}.joystick-clear-button{min-height:2.25rem;padding:.35rem .65rem;font-size:.65rem}.joystick-clear-button:disabled{cursor:not-allowed;opacity:.42}.joystick-event-log{min-height:8.5rem;max-height:13rem;overflow:auto;padding:.75rem;border:1px solid rgb(var(--color-border));border-radius:.85rem;background:rgba(var(--color-fill),.7);color:rgb(var(--color-text-muted));font-family:var(--font-mono);font-size:.64rem;line-height:1.65;white-space:pre-line}.joystick-telemetry-column::-webkit-scrollbar,.joystick-event-log::-webkit-scrollbar{width:.45rem}.joystick-telemetry-column::-webkit-scrollbar-thumb,.joystick-event-log::-webkit-scrollbar-thumb{border-radius:999px;background:rgb(var(--color-border))}.joystick-guide{width:100%;max-width:none;margin:clamp(2rem,6vw,5rem) auto 0}.joystick-page-shell>.joystick-guide{width:100%;max-width:none}.joystick-guide-card{width:100%;max-width:none;margin:0 0 1.25rem;padding:clamp(1.2rem,4vw,2.4rem);border:1px solid rgb(var(--color-border));border-radius:1.5rem;background:linear-gradient(145deg,rgba(var(--color-card-muted),.5),rgba(var(--color-card),.92)),rgb(var(--color-card))}.joystick-guide-card h2{margin:0;color:rgb(var(--color-text-base));font-size:clamp(1.55rem,3vw,2.45rem);letter-spacing:-.045em}.joystick-guide-card h3{margin:1.8rem 0 .65rem;color:rgb(var(--color-text-base));font-size:clamp(1.1rem,2vw,1.35rem);letter-spacing:-.025em}.joystick-guide-card p,.joystick-guide-card li{color:rgb(var(--color-text-muted));font-size:1rem;line-height:1.75}.joystick-guide-card p{margin:1rem 0 0}.joystick-guide-card .joystick-guide-lead{margin-top:1rem;color:rgb(var(--color-text-base));font-size:clamp(1.05rem,2vw,1.18rem);line-height:1.7}.joystick-guide-card a{color:rgb(var(--color-accent));font-weight:600}.joystick-guide-card blockquote{margin:1.5rem 0 0;padding:.8rem 1rem;border-left:3px solid rgb(var(--color-accent));background:rgba(var(--color-accent),.07);color:rgb(var(--color-text-base));font-size:1rem;font-style:italic}.joystick-step-list{display:grid;gap:.75rem;margin:1.2rem 0 0;padding-left:1.35rem}.joystick-step-list li::marker{color:rgb(var(--color-accent));font-family:var(--font-mono);font-weight:700}.joystick-step-list strong,.joystick-guide-card strong{color:rgb(var(--color-text-base))}.joystick-device-list,.joystick-concept-grid,.joystick-use-case-grid,.joystick-advanced-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.85rem;margin-top:1.2rem}.joystick-device-list article,.joystick-concept-grid article,.joystick-use-case-grid article,.joystick-advanced-grid article{padding:1rem;border:1px solid rgb(var(--color-border));border-radius:1rem;background:rgba(var(--color-fill),.35)}.joystick-device-list h3,.joystick-concept-grid h3,.joystick-use-case-grid h3,.joystick-advanced-grid h3{margin:0;font-size:1rem}.joystick-device-list p,.joystick-concept-grid p,.joystick-use-case-grid p,.joystick-advanced-grid p{margin-top:.5rem;font-size:.9rem;line-height:1.6}.joystick-concept-grid,.joystick-advanced-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.joystick-use-case-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.joystick-use-case-grid ul{margin:.8rem 0 0;padding-left:1.2rem}.joystick-use-case-grid li{font-size:.9rem}.joystick-table-wrap{margin-top:1.35rem;overflow-x:auto;border:1px solid rgb(var(--color-border));border-radius:1rem}.joystick-guide-card table{width:100%;min-width:42rem;border-collapse:collapse;background:rgba(var(--color-fill),.25)}.joystick-guide-card th,.joystick-guide-card td{padding:.75rem .85rem;border-bottom:1px solid rgb(var(--color-border));color:rgb(var(--color-text-muted));font-size:.9rem;line-height:1.5;text-align:left;vertical-align:top}.joystick-guide-card th{background:rgba(var(--color-card-muted),.72);color:rgb(var(--color-text-base));font-family:var(--font-mono);font-size:.7rem;letter-spacing:.04em;text-transform:uppercase}.joystick-guide-card tr:last-child td{border-bottom:0}.joystick-faq-section details{margin-top:.7rem;padding:.95rem 1rem;border:1px solid rgb(var(--color-border));border-radius:.95rem;background:rgba(var(--color-fill),.3)}.joystick-faq-section summary{cursor:pointer;color:rgb(var(--color-text-base));font-weight:700}.joystick-faq-section summary::marker{color:rgb(var(--color-accent))}.joystick-faq-section details p{margin-top:.75rem;font-size:.95rem}@media (max-width: 920px){.joystick-tool-header{flex-direction:column}.joystick-tool-actions{width:100%;align-items:stretch;flex-direction:row}.joystick-connection{flex:1}.joystick-data-toggle{flex:0 0 auto}.joystick-tester-layout{grid-template-columns:1fr}.joystick-telemetry-column{border-top:1px solid rgb(var(--color-border));border-left:0}}@media (max-width: 720px){.joystick-page-shell{width:calc(100% - 1rem);margin-top:1rem;overflow-x:hidden}.joystick-tester-tool{border-radius:1.25rem}.joystick-tool-header,.joystick-trace-column,.joystick-telemetry-card{padding:1rem}.joystick-tool-header h1{font-size:2.35rem}.joystick-tool-actions{align-items:stretch;flex-direction:column}.joystick-data-toggle{width:100%}.joystick-device-row{align-items:flex-start;padding:.75rem 1rem}.joystick-device-help{width:100%;margin-left:0}.joystick-trace-grid{grid-template-columns:1fr}.joystick-trace-plot{width:min(100%,18rem)}.joystick-button-matrix{grid-template-columns:repeat(4,minmax(0,1fr))}.joystick-raw-buttons{grid-template-columns:repeat(6,minmax(0,1fr))}.joystick-tool-footer{align-items:flex-start;flex-direction:column;padding-inline:1rem}.joystick-guide-card{padding:1.1rem;border-radius:1.15rem}.joystick-guide-card h2{font-size:1.55rem}.joystick-device-list,.joystick-concept-grid,.joystick-advanced-grid,.joystick-use-case-grid{grid-template-columns:1fr}.joystick-guide-card table{min-width:36rem}}@media (max-width: 420px){.joystick-connection{min-width:0}.joystick-connection [data-controller-name]{max-width:12rem}.joystick-axis-readout{grid-template-columns:1fr}.joystick-card-heading{gap:.5rem}.joystick-raw-button-cell{min-height:1.65rem}.joystick-guide-card table{min-width:31rem}}
