@font-face{font-family:Bricolage;src:url("/camera-canta/assets/Bricolage.413e7357809d.ttf") format("truetype");font-display:swap;font-weight:100 900}
@font-face{font-family:Newsreader;src:url("/camera-canta/assets/Newsreader.8a08d13f8a6c.ttf") format("truetype");font-display:swap;font-weight:200 800}
@font-face{font-family:PlexMono;src:url("/camera-canta/assets/PlexMono.a9b4c49bb299.ttf") format("truetype");font-display:swap;font-weight:100 700}
:root{--ink:#142225;--plaster:#dbe7e5;--red:#e4513f;--blue:#078b9a;--node:#f4c65b;--paper:#f7faf8;--muted:#607071;--line:rgba(20,34,37,.2);--mono:PlexMono,ui-monospace,monospace;--display:Bricolage,Arial,sans-serif;--body:Newsreader,Georgia,serif;color-scheme:light}
*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--ink)}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);font-size:18px;line-height:1.45;overflow-x:hidden}
button,input,summary,a{font:inherit}
a{color:inherit;text-decoration-thickness:1px;text-underline-offset:.18em}
a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid var(--node);outline-offset:4px}
.skip{position:fixed;z-index:20;left:1rem;top:1rem;padding:.7rem 1rem;background:var(--ink);color:white;transform:translateY(-180%);font-family:var(--mono);font-size:.72rem;text-transform:uppercase;letter-spacing:.08em}
.skip:focus{transform:none}
body.has-js .top-link{display:none}
body.has-js .top-link.is-visible{display:inline-flex}
body.has-js .top-link.is-fixed{position:fixed;right:max(1rem,env(safe-area-inset-right));bottom:max(1rem,env(safe-area-inset-bottom));z-index:30;width:auto;min-width:44px;min-height:44px;padding:.65rem .8rem;background:var(--node);color:var(--ink);text-decoration:none;border:1px solid var(--ink);box-shadow:0 4px 20px rgba(20,34,37,.24)}
main{min-height:100vh}
.masthead{display:flex;justify-content:space-between;align-items:center;padding:1.2rem clamp(1rem,3vw,3rem);border-bottom:1px solid var(--line)}
.mark,.language{font:700 .72rem/1 var(--mono);letter-spacing:.12em;text-decoration:none;text-transform:uppercase}
.mark{display:grid;place-items:center;width:2.2rem;height:2.2rem;border:1px solid currentColor;border-radius:50%}
.opening{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(16rem,1fr);column-gap:clamp(2rem,7vw,8rem);align-items:end;padding:clamp(2.4rem,7vw,7rem) clamp(1rem,5vw,5rem) clamp(2rem,4vw,4rem)}
.eyebrow{margin:0 0 .75rem;font:600 .68rem/1.2 var(--mono);letter-spacing:.13em;text-transform:uppercase}
.opening .eyebrow{grid-column:1/-1}
h1{grid-column:1;font:650 clamp(4rem,11.5vw,10.7rem)/.8 var(--display);letter-spacing:-.07em;margin:0;max-width:10ch;text-wrap:balance}
.deck{grid-column:2;grid-row:2;font:400 clamp(1.35rem,2.1vw,2.15rem)/1.1 var(--body);letter-spacing:-.02em;margin:0 0 .35rem;max-width:25ch}
.gesture{grid-column:2;margin:1.8rem 0 0;font:500 .75rem/1.35 var(--mono);text-transform:uppercase;letter-spacing:.07em;max-width:34ch}
.gesture span{color:var(--red)}
.instrument{background:var(--plaster);border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);display:grid;grid-template-columns:minmax(0,2.15fr) minmax(17rem,.85fr);position:relative}
.room-stage{min-width:0;min-height:clamp(34rem,70vw,52rem);position:relative;background:var(--ink);overflow:hidden;border-right:1px solid var(--ink)}
#room-canvas{display:block;width:100%;height:100%;position:absolute;inset:0;cursor:crosshair;touch-action:none}
.canvas-description{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.room-readout{position:absolute;left:clamp(1rem,3vw,2.5rem);top:clamp(1rem,3vw,2.5rem);display:grid;color:white;font-family:var(--mono);text-transform:uppercase;letter-spacing:.08em;pointer-events:none}
.room-readout>span{font-size:.64rem;opacity:.72}
.room-readout strong{font-size:clamp(2.8rem,7vw,6.5rem);line-height:.9;letter-spacing:-.08em;font-weight:500}
.room-readout small{font-size:.22em;letter-spacing:0}
.pressure-key{position:absolute;left:clamp(1rem,3vw,2.5rem);bottom:clamp(1rem,3vw,2.5rem);display:flex;align-items:center;gap:.55rem;color:white;font:500 .6rem/1 var(--mono);text-transform:uppercase;letter-spacing:.08em;padding:.7rem .8rem;background:rgba(20,34,37,.72);backdrop-filter:blur(8px);pointer-events:none}
.pressure-key span:first-child,.pressure-key span:last-child{width:1.15rem;height:.42rem;border-radius:999px}.key-negative{background:var(--blue)}.key-positive{background:var(--red)}
.console{display:flex;flex-direction:column;padding:clamp(1.4rem,3vw,2.7rem);border-bottom:1px solid var(--ink);background:var(--paper)}
fieldset{border:0;padding:0;margin:0 0 2.3rem}
legend{font:650 clamp(1.45rem,2.2vw,2.15rem)/1 var(--display);letter-spacing:-.035em;margin-bottom:2rem}
.console label{display:grid;grid-template-columns:1fr auto;gap:.3rem 1rem;margin:0 0 1.45rem;font:600 .72rem/1.2 var(--mono);text-transform:uppercase;letter-spacing:.08em}
.console output{font-weight:400;font-variant-numeric:tabular-nums}
.position-controls{border-top:1px solid var(--line);padding-top:1.35rem;margin-bottom:1rem}.position-controls legend{font:600 .67rem/1.2 var(--mono);text-transform:uppercase;letter-spacing:.1em;margin-bottom:1.15rem}.position-controls label{margin-bottom:.8rem;font-size:.61rem}.position-controls input[type=range]{height:.85rem}
input[type=range]{grid-column:1/-1;appearance:none;width:100%;height:1.25rem;background:transparent;margin:.15rem 0 0}
input[type=range]::-webkit-slider-runnable-track{height:2px;background:var(--ink)}input[type=range]::-moz-range-track{height:2px;background:var(--ink)}
input[type=range]::-webkit-slider-thumb{appearance:none;width:1.05rem;height:1.05rem;border-radius:50%;background:var(--node);border:2px solid var(--ink);margin-top:-.47rem}input[type=range]::-moz-range-thumb{width:1.05rem;height:1.05rem;border-radius:50%;background:var(--node);border:2px solid var(--ink)}
.spot-card{margin-top:auto;border-top:1px solid var(--ink);padding:1.2rem 0;display:grid;grid-template-columns:1fr auto;align-items:end}
.spot-card>span{font:600 .67rem/1.2 var(--mono);text-transform:uppercase;letter-spacing:.1em}.spot-card strong{font:500 3.1rem/.85 var(--mono);letter-spacing:-.09em}.spot-card small{grid-column:1/-1;margin-top:.55rem;color:var(--muted);font:400 .68rem/1.45 var(--mono)}
.listen{border:1px solid var(--ink);background:var(--ink);color:white;min-height:3.3rem;padding:.8rem 1rem;display:flex;align-items:center;justify-content:center;gap:.7rem;cursor:pointer;font:600 .75rem/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;transition:background .15s,color .15s}
.listen:hover{background:var(--red)}.listen[aria-pressed=false] [data-stop],.listen[aria-pressed=true] [data-play]{display:none}.speaker{font-size:1.2rem;color:var(--node)}
.audio-note{margin:.65rem 0 0;color:var(--muted);font:400 .6rem/1.4 var(--mono)}
.mode-score{grid-column:1/-1;display:grid;grid-template-columns:minmax(16rem,.55fr) minmax(0,1.45fr);gap:clamp(2rem,5vw,6rem);padding:clamp(2rem,5vw,5rem);background:var(--plaster)}
.mode-score h2,.formula-strip h2,.sources h2{font:650 clamp(2.3rem,5vw,5.4rem)/.88 var(--display);letter-spacing:-.055em;margin:0 0 1rem}
.mode-score>div>p:last-child{max-width:38ch;margin:0;color:#3c5051}
.frequency-rail{position:relative;min-height:15rem;border-bottom:1px solid var(--ink);background:repeating-linear-gradient(90deg,transparent 0,transparent calc(11.111% - 1px),rgba(20,34,37,.13) calc(11.111% - 1px),rgba(20,34,37,.13) 11.111%)}
.frequency-rail:before{content:"20";position:absolute;left:0;bottom:-1.5rem;font:500 .6rem var(--mono)}.frequency-rail:after{content:"200 Hz";position:absolute;right:0;bottom:-1.5rem;font:500 .6rem var(--mono)}
.mode-mark{position:absolute;bottom:0;transform:translateX(-50%);width:1.55rem;height:var(--h);min-height:2.8rem;border:0;border-left:2px solid var(--ink);background:transparent;padding:0;cursor:pointer;color:var(--ink)}
.mode-mark:before{content:"";position:absolute;left:-.38rem;top:-.1rem;width:.62rem;height:.62rem;border-radius:50%;background:var(--paper);border:2px solid var(--ink)}
.mode-mark span{position:absolute;left:.45rem;top:-.1rem;font:500 .58rem/1 var(--mono);white-space:nowrap;transform:rotate(-55deg);transform-origin:left center;opacity:0;transition:opacity .12s}
.mode-mark:hover span,.mode-mark:focus-visible span,.mode-mark[aria-pressed=true] span{opacity:1}.mode-mark[aria-pressed=true]{border-color:var(--red);z-index:2}.mode-mark[aria-pressed=true]:before{background:var(--node);border-color:var(--red);transform:scale(1.35)}
.live-summary{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.formula-strip{display:grid;grid-template-columns:minmax(0,1fr) minmax(20rem,.85fr);gap:clamp(2rem,7vw,8rem);align-items:center;padding:clamp(3rem,7vw,8rem) clamp(1rem,5vw,5rem);background:var(--paper)}
.formula-strip p:last-child{max-width:54ch}.formula-strip code{font:500 clamp(1rem,2vw,1.55rem)/1.6 var(--mono);background:var(--ink);color:var(--paper);padding:clamp(1.4rem,3vw,2.6rem);overflow:auto;border-left:.6rem solid var(--node)}
.sources{border-top:1px solid var(--ink);background:var(--paper)}
.sources summary{list-style:none;cursor:pointer;padding:1.35rem clamp(1rem,5vw,5rem);display:flex;justify-content:space-between;font:600 .75rem/1 var(--mono);letter-spacing:.08em;text-transform:uppercase}.sources summary::-webkit-details-marker{display:none}.sources[open] summary span{transform:rotate(45deg)}
.sources-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(18rem,.9fr);gap:clamp(2rem,7vw,8rem);padding:clamp(2rem,5vw,5rem);border-top:1px solid var(--ink)}
.sources-body>div>p{max-width:57ch}.updated{font:500 .65rem/1.5 var(--mono);color:var(--muted);margin-top:2rem}
.sources ol{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}.sources li a{display:grid;text-decoration:none;padding:1rem 0;border-bottom:1px solid var(--line)}.sources li span{font:500 .58rem/1.3 var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--blue)}.sources li strong{font:600 1.05rem/1.2 var(--display);margin:.2rem 0}.sources li small{color:var(--muted)}
.static-fallback{padding:2rem;max-width:50rem;margin:auto}.static-fallback li{font-family:var(--mono)}
footer{min-height:8rem;background:var(--ink);color:var(--paper);display:grid;grid-template-columns:1fr auto 1fr;gap:1rem;align-items:center;padding:1.5rem clamp(1rem,5vw,5rem);font:500 .65rem/1.4 var(--mono);letter-spacing:.04em}footer p{text-align:center}footer>a:last-child{text-align:right}.top-link{display:inline-flex;align-items:center;gap:.55rem;min-width:44px;min-height:44px}
@media(max-width:850px){
  .opening{grid-template-columns:1fr;padding-top:3.6rem}.opening .eyebrow,h1,.deck,.gesture{grid-column:1;grid-row:auto}.deck{margin-top:2.2rem;max-width:32ch}.gesture{margin-top:1.2rem}
  h1{font-size:clamp(4rem,18vw,7.5rem)}
  .instrument{grid-template-columns:1fr}.room-stage{min-height:min(118vw,42rem);border-right:0}.console{border-top:1px solid var(--ink)}
  .mode-score,.formula-strip,.sources-body{grid-template-columns:1fr}.frequency-rail{margin:1rem .8rem 2rem;min-height:13rem}
}
@media(max-width:540px){body{font-size:16px}.masthead{padding:1rem}.opening{padding-left:1rem;padding-right:1rem}.opening h1{font-size:clamp(3.8rem,20vw,6.2rem);line-height:.83}.deck{font-size:1.35rem}.room-stage{min-height:30rem}.room-readout strong{font-size:3.1rem}.pressure-key{max-width:calc(100% - 2rem);font-size:.52rem}.console,.mode-score,.formula-strip,.sources-body{padding:1.4rem 1rem}.frequency-rail{min-height:12rem}.formula-strip code{font-size:.82rem;padding:1rem}.sources h2,.mode-score h2,.formula-strip h2{font-size:2.55rem}footer{grid-template-columns:1fr auto;align-items:start}footer p{grid-column:1/-1;grid-row:2;text-align:left;margin:0}footer>a:last-child{text-align:right}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
