[hidden]{display:none!important}.ps-calibration-page{width:100%;padding-bottom:4rem}.ps-calibration-tool{border:1px solid rgb(var(--color-border));background:rgb(var(--color-card));box-shadow:var(--shadow-card);border-radius:2rem;width:min(100% - 2rem,76rem);margin:2rem auto 0;overflow:hidden}.ps-tool-header,.ps-tool-heading,.ps-tool-status-wrap,.ps-stick-title,.ps-stage-actions,.ps-save-row{align-items:center;display:flex}.ps-tool-header{border-bottom:1px solid rgb(var(--color-border));background:rgba(var(--color-fill),.62);justify-content:space-between;gap:1rem;padding:1.15rem clamp(1rem,3vw,2rem)}.ps-tool-heading{gap:.8rem;min-width:0}.ps-tool-heading>a{color:rgb(var(--color-text-muted));border-radius:.8rem;flex:none;place-items:center;width:2.35rem;height:2.35rem;font-size:1.4rem;line-height:1;text-decoration:none;display:grid}.ps-tool-heading>a:hover{background:rgb(var(--color-card-muted));color:rgb(var(--color-accent))}.ps-tool-kicker,.ps-panel-kicker,.ps-phase-label,.ps-connection-pill,.ps-controller-name,.ps-stick-title,.ps-safety-list,.ps-info-stack,.ps-guide-eyebrow{font-family:var(--font-mono)}.ps-tool-kicker,.ps-panel-kicker,.ps-phase-label,.ps-guide-eyebrow{color:rgb(var(--color-accent));letter-spacing:.1em;text-transform:uppercase;margin:0;font-size:.72rem;font-weight:700}.ps-tool-heading h1{margin:.18rem 0 0;font-size:clamp(1.35rem,3vw,2rem);line-height:1.1}.ps-tool-status-wrap{flex-wrap:wrap;justify-content:flex-end;gap:.65rem}.ps-connection-pill{border:1px solid rgb(var(--color-border));color:rgb(var(--color-text-muted));text-transform:uppercase;border-radius:999px;align-items:center;gap:.45rem;padding:.55rem .8rem;font-size:.68rem;font-weight:700;display:inline-flex}.ps-connection-pill:before{background:rgb(var(--color-text-muted));content:"";border-radius:50%;width:.42rem;height:.42rem}.ps-controller-name{color:rgb(var(--color-text-muted));text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap;max-width:16rem;font-size:.68rem;overflow:hidden}.ps-tool-stage{background:radial-gradient(circle at 50% 35%,rgba(var(--color-accent),.09),transparent 45%),rgba(var(--color-fill),.38);min-height:38rem;position:relative;overflow:hidden}.ps-stage-grid{opacity:.32;background-image:linear-gradient(rgba(var(--color-accent),.16)1px,transparent 1px),linear-gradient(90deg,rgba(var(--color-accent),.16)1px,transparent 1px);pointer-events:none;background-size:3rem 3rem;position:absolute;inset:0;-webkit-mask-image:radial-gradient(circle,#000,#0000 78%);mask-image:radial-gradient(circle,#000,#0000 78%)}.ps-stage-content{z-index:1;text-align:center;width:min(100% - 2rem,46rem);margin:0 auto;padding:clamp(2rem,5vw,3.5rem) 0;position:relative}.ps-stage-content h2{margin:.55rem 0 .7rem;font-size:clamp(1.7rem,4vw,2.6rem)}.ps-stage-copy{color:rgb(var(--color-text-muted));max-width:36rem;margin:0 auto}.ps-stage-detail{color:rgb(var(--color-accent));font-family:var(--font-mono);margin:.85rem auto 0;font-size:.72rem}.ps-support-note,.ps-demo-note{color:rgb(var(--color-text-muted));max-width:36rem;margin:.75rem auto 0;font-size:.78rem;line-height:1.5}.ps-demo-note{color:rgb(var(--color-positive))}.ps-stage-progress{background:rgb(var(--color-card-muted));border-radius:999px;width:min(100%,16rem);height:.28rem;margin:1.1rem auto 0;overflow:hidden}.ps-stage-progress span{border-radius:inherit;background:rgb(var(--color-accent));height:100%;transition:width .18s;display:block}.ps-stick-plots{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(1rem,4vw,2.5rem);margin:2rem 0 1.6rem;display:grid}.ps-stick-readout{min-width:0}.ps-stick-title{color:rgb(var(--color-text-base));text-transform:uppercase;justify-content:space-between;gap:.5rem;font-size:.72rem;font-weight:700}.ps-stick-title span:last-child{color:rgb(var(--color-text-muted));font-size:.62rem}.ps-stick-plot{aspect-ratio:1;border:1px solid rgb(var(--color-border));background:radial-gradient(circle,rgba(var(--color-text-base),.08),transparent 62%),rgb(var(--color-card-muted));box-shadow:inset 0 0 0 1px rgba(var(--color-text-base),.05);border-radius:50%;width:min(100%,15rem);margin:.65rem auto 0}.ps-stick-plot svg{width:100%;height:100%}.ps-plot-ring,.ps-plot-deadzone{fill:none;stroke-width:.55px}.ps-plot-ring{stroke:rgba(var(--color-text-muted),.45)}.ps-plot-deadzone{stroke:rgba(var(--color-accent),.8);stroke-dasharray:2 2}.ps-plot-axis{stroke:rgba(var(--color-text-muted),.22);stroke-width:.35px}.ps-plot-pointer{stroke:rgb(var(--color-card));stroke-width:1.2px;transition:cx 90ms linear,cy 90ms linear}.ps-plot-pointer-blue{fill:rgb(var(--color-accent))}.ps-plot-pointer-purple{fill:#b184ff}.ps-stick-readout>p{color:rgb(var(--color-text-muted));margin:.6rem 0 0;font-size:.76rem}.ps-stick-readout output{color:rgb(var(--color-text-base));font-family:var(--font-mono);font-weight:700}.ps-step-nav{border-bottom:1px solid rgb(var(--color-border));background:rgba(var(--color-fill),.4);padding:.85rem clamp(1rem,3vw,2rem)}.ps-step-nav ol{grid-template-columns:repeat(5,minmax(0,1fr));gap:.45rem;max-width:42rem;margin:0 auto;padding:0;list-style:none;display:grid}.ps-step-nav li{color:rgb(var(--color-text-muted));font-family:var(--font-mono);text-transform:uppercase;border-radius:.75rem;justify-content:center;align-items:center;gap:.42rem;min-width:0;padding:.6rem .4rem;font-size:.68rem;font-weight:700;display:flex}.ps-step-nav li.is-active{background:rgba(var(--color-accent),.14);color:rgb(var(--color-accent))}.ps-step-nav li.is-complete{color:rgb(var(--color-positive))}.ps-step-number{color:inherit;opacity:.72}.ps-tool-layout{grid-template-columns:minmax(0,1fr) minmax(17rem,22rem);display:grid}.ps-stage-actions{flex-wrap:wrap;justify-content:center;gap:.7rem}.ps-button{font-family:var(--font-mono);cursor:pointer;border:1px solid #0000;border-radius:.8rem;min-height:2.9rem;padding:.75rem 1.05rem;font-size:.72rem;font-weight:700;transition:border-color .16s,background .16s,transform .16s}.ps-button:not(:disabled):hover{transform:translateY(-1px)}.ps-button:disabled{cursor:not-allowed;opacity:.42}.ps-button-primary{background:rgb(var(--color-text-base));color:rgb(var(--color-fill))}.ps-button-primary:not(:disabled):hover{background:rgb(var(--color-accent))}.ps-button-secondary{border-color:rgb(var(--color-border));background:rgb(var(--color-card-muted));color:rgb(var(--color-text-base))}.ps-button-secondary:not(:disabled):hover{border-color:rgb(var(--color-accent));color:rgb(var(--color-accent))}.ps-button-danger{color:#fff;background:#b4232d}.ps-save-row{flex-wrap:wrap;justify-content:center;gap:.55rem;margin-top:1.2rem}.ps-save-row label{color:rgb(var(--color-text-muted));flex:100%;font-size:.72rem}.ps-save-row input{border:1px solid rgb(var(--color-border));background:rgb(var(--color-card-muted));color:rgb(var(--color-text-base));font-family:var(--font-mono);text-align:center;border-radius:.7rem;min-width:10rem;padding:.72rem .8rem}.ps-tool-error{color:rgb(var(--color-warning));min-height:1.5rem;margin:.8rem 0 0;font-size:.76rem}.ps-safety-panel{border-left:1px solid rgb(var(--color-border));background:rgba(var(--color-card),.9);padding:clamp(1.1rem,3vw,1.6rem)}.ps-panel-heading h2{margin:.35rem 0 1.2rem;font-size:1.45rem}.ps-safety-list{color:rgb(var(--color-text-muted));text-transform:uppercase;gap:.7rem;margin:0;padding:0;font-size:.72rem;font-weight:700;list-style:none;display:grid}.ps-safety-list li{border:1px solid rgb(var(--color-border));border-radius:.8rem;align-items:center;gap:.55rem;padding:.75rem;display:flex}.ps-safety-list li.is-safe{border-color:rgba(var(--color-positive),.38);color:rgb(var(--color-positive))}.ps-safety-list li.is-warning{border-color:rgba(var(--color-warning),.32)}.ps-safety-dot{box-shadow:0 0 0 .2rem rgba(var(--color-text-muted),.12);background:currentColor;border-radius:50%;flex:none;width:.45rem;height:.45rem}.ps-warning-card,.ps-info-stack>div{align-items:flex-start;gap:.65rem;display:flex}.ps-warning-card{border:1px solid rgba(var(--color-warning),.35);background:rgba(var(--color-warning),.08);border-radius:.9rem;margin-top:1rem;padding:.9rem}.ps-warning-card p,.ps-info-stack p{color:rgb(var(--color-text-muted));margin:0;font-size:.78rem;line-height:1.5}.ps-info-stack{color:rgb(var(--color-text-muted));gap:1rem;margin-top:1.4rem;font-size:.72rem;display:grid}.ps-info-stack strong{color:rgb(var(--color-text-base));font-family:var(--font-body);margin-bottom:.15rem;font-size:.82rem;display:block}.ps-info-icon{color:rgb(var(--color-accent));font-size:1rem;line-height:1.2}.ps-device-info{border:1px solid rgb(var(--color-border));background:rgba(var(--color-fill),.35);font-family:var(--font-mono);border-radius:.9rem;gap:.55rem;margin:0 0 1rem;padding:.85rem;font-size:.68rem;display:grid}.ps-device-info div{justify-content:space-between;gap:.8rem;display:flex}.ps-device-info dt{color:rgb(var(--color-text-muted));text-transform:uppercase}.ps-device-info dd{color:rgb(var(--color-text-base));text-overflow:ellipsis;white-space:nowrap;max-width:12rem;margin:0;overflow:hidden}@media (max-width:900px){.ps-tool-layout{grid-template-columns:1fr}.ps-safety-panel{border-top:1px solid rgb(var(--color-border));border-left:0}}@media (max-width:640px){.ps-calibration-tool{border-radius:1.35rem;width:min(100% - 1rem,76rem)}.ps-tool-header{flex-direction:column;align-items:flex-start}.ps-tool-status-wrap{justify-content:flex-start}.ps-step-nav{padding-inline:.65rem}.ps-step-nav li{text-align:center;padding-inline:.2rem;display:block}.ps-step-number{margin-bottom:.15rem;display:block}.ps-tool-stage{min-height:34rem}.ps-stage-content{width:min(100% - 1.4rem,46rem);padding-block:1.75rem 2.5rem}.ps-stick-plots,.ps-guide-grid,.ps-guide-step-grid{grid-template-columns:1fr}.ps-stick-plot{width:min(100%,15rem)}.ps-calibration-guide{width:min(100% - 1rem,64rem);margin-top:3rem}.ps-guide-section{margin-top:3.5rem}}@media (prefers-reduced-motion:reduce){.ps-button,.ps-plot-pointer{transition:none}}.ps-calibration-guide{width:min(100% - 2rem,64rem);margin:4rem auto 0}.ps-guide-section{border-top:1px solid rgb(var(--color-border));margin-top:4.5rem;padding-top:2rem}.ps-guide-section h2{margin:.45rem 0 1rem;font-size:clamp(1.65rem,4vw,2.55rem)}.ps-guide-section h3{margin:2rem 0 .65rem;font-size:1.2rem}.ps-guide-section h4{margin:0;font-size:1rem}.ps-guide-section p,.ps-guide-section li,.ps-guide-section td,.ps-guide-section th,.ps-guide-section summary{color:rgb(var(--color-text-muted));font-size:16px}.ps-guide-section p{max-width:60rem}.ps-guide-section>p+p{margin-top:1.25rem}.ps-guide-section strong{color:rgb(var(--color-text-base))}.ps-guide-lead{color:rgb(var(--color-text-base))!important;font-size:1.14rem!important}.ps-guide-grid,.ps-guide-step-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-top:1.4rem;display:grid}.ps-guide-card,.ps-guide-step,.ps-guide-callout{border:1px solid rgb(var(--color-border));background:rgb(var(--color-card));border-radius:1rem;padding:1rem}.ps-guide-card p,.ps-guide-step p{margin-bottom:0}.ps-guide-step-grid{counter-reset:guide-step}.ps-guide-step h3:before{background:rgba(var(--color-accent),.14);color:rgb(var(--color-accent));content:counter(guide-step);counter-increment:guide-step;font-family:var(--font-mono);border-radius:50%;place-items:center;width:1.6rem;height:1.6rem;margin-right:.45rem;font-size:.72rem;display:inline-grid}.ps-guide-table-wrap{margin-top:1.2rem;overflow-x:auto}.ps-guide-table{border-collapse:collapse;width:100%;min-width:38rem}.ps-guide-table th,.ps-guide-table td{border:1px solid rgb(var(--color-border));text-align:left;padding:.8rem}.ps-guide-table th{background:rgb(var(--color-card-muted));color:rgb(var(--color-text-base))}.ps-guide-callout{border-color:rgba(var(--color-positive),.35);box-shadow:inset 3px 0 rgb(var(--color-positive));margin-top:1.5rem}.ps-guide-callout p{margin:.35rem 0 0}.ps-guide-quote{border-left:3px solid rgb(var(--color-accent));color:rgb(var(--color-text-base));margin:1.5rem 0 0;padding:.9rem 1.1rem}.ps-guide-faq details{border:1px solid rgb(var(--color-border));background:rgb(var(--color-card));border-radius:1rem;margin:.8rem 0;padding:1rem 1.15rem}.ps-guide-faq summary{color:rgb(var(--color-text-base));cursor:pointer;font-weight:700}.ps-guide-faq details p{margin:.75rem 0 0}.ps-guide-links{flex-wrap:wrap;gap:.55rem .9rem;margin-top:1.5rem;font-size:.9rem;display:flex}.ps-guide-source{margin-top:1.5rem;font-size:.9rem!important}@media (max-width:640px){.ps-guide-section>p+p{margin-top:1rem}}