@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2)format("woff2"),url(/assets/ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BqneJy0T.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BIfNGwUT.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-500-normal-Bq9vWWag.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-500-normal-Ael50iVv.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-vietnamese-500-normal-DZ4AoWbu.woff2)format("woff2"),url(/assets/ibm-plex-mono-vietnamese-500-normal-C8zxqsMH.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-ext-500-normal-CAhNIIs5.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-ext-500-normal-CZ70TYgx.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:General Sans;src:url(/fonts/general-sans-400.woff2)format("woff2");font-weight:400;font-display:swap}@font-face{font-family:General Sans;src:url(/fonts/general-sans-500.woff2)format("woff2");font-weight:500;font-display:swap}@font-face{font-family:General Sans;src:url(/fonts/general-sans-600.woff2)format("woff2");font-weight:600;font-display:swap}@font-face{font-family:General Sans;src:url(/fonts/general-sans-700.woff2)format("woff2");font-weight:700;font-display:swap}:root{--paper:#f1f0ec;--paper-2:#e6e4de;--studio:#cbc7bf;--ink:#141414;--ink-2:#4f4d48;--ink-3:#66645d;--rule:#14141429;--rule-strong:#14141466;--accent:#e2461d;--accent-ink:#b0311a;--sans:"General Sans", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--mono:"IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;--step-small:clamp(.8125rem, .79rem + .1vw, .875rem);--step-body:clamp(1.0625rem, 1rem + .25vw, 1.1875rem);--step-lead:clamp(1.1875rem, 1.05rem + .55vw, 1.5rem);--step-head:clamp(2rem, 1.3rem + 2.6vw, 3.75rem);--step-display:clamp(2.5rem, 1.5rem + 2.9vw, 4.5rem);--margin:32px;--gap:24px;--bar-h:56px;--deck-h:108px;--ease-out:cubic-bezier(.23, 1, .32, 1);--ease-in-out:cubic-bezier(.77, 0, .175, 1);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--bar-h) + 16px)}body{background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:var(--step-body);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;padding-bottom:calc(var(--deck-h) + env(safe-area-inset-bottom));margin:0;font-weight:400;line-height:1.5}h1,h2,h3{letter-spacing:-.02em;text-wrap:balance;margin:0;font-weight:600}p{text-wrap:pretty;margin:0}button{font:inherit;color:inherit}.num,output{font-family:var(--mono);font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1, "zero" 0}.show-narrow{display:none}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;overflow:hidden;position:absolute!important}.skip{z-index:100;background:var(--ink);color:var(--paper);padding:8px 12px;position:absolute;top:-100px;left:8px}.skip:focus{top:8px}:focus-visible{outline:2px solid var(--ink);outline-offset:3px}::selection{background:var(--ink);color:var(--paper)}.bar{z-index:30;height:var(--bar-h);padding:0 var(--margin);background:var(--paper);border-bottom:1px solid var(--rule);justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.wordmark{letter-spacing:-.01em;color:var(--ink);align-items:center;gap:10px;font-size:1.125rem;font-weight:600;text-decoration:none;display:inline-flex}.wordmark-mark{width:22px;height:22px;color:var(--ink)}.bar-links{gap:28px;display:flex}.bar-links a{color:var(--ink);padding:6px 0;font-size:.9375rem;font-weight:500;text-decoration:none;position:relative}.bar-links a:after{content:"";transform-origin:0;height:1.5px;transition:transform .22s var(--ease-out);background:currentColor;position:absolute;bottom:2px;left:0;right:0;transform:scaleX(0)}@media (hover:hover) and (pointer:fine){.bar-links a:hover:after{transform:scaleX(1)}}.hero{gap:0 var(--margin);padding:20px var(--margin) 0;height:calc(100svh - var(--bar-h) - var(--deck-h));grid-template-columns:minmax(0,1fr) clamp(340px,27vw,420px);min-height:600px;display:grid}.stage{background:var(--studio);min-height:0;position:relative;overflow:hidden}#stage-canvas{touch-action:none;cursor:grab;width:100%;height:100%;display:block;position:absolute;inset:0}#stage-canvas.is-dragging{cursor:grabbing}.stage-labels{pointer-events:none;position:absolute;inset:0;overflow:hidden}.tag{color:var(--ink);white-space:nowrap;text-shadow: 0 0 2px var(--studio), 0 0 5px var(--studio);font-size:.8125rem;font-weight:500;line-height:1.25;transition:opacity .2s;position:absolute;top:0;left:0}.leaders{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.leaders g{transition:opacity .2s}.leaders line{stroke:var(--ink);stroke-width:1px;stroke-opacity:.55}.leaders circle{fill:var(--ink)}.leaders g.is-sharp line{stroke:var(--accent-ink);stroke-opacity:.85}.leaders g.is-sharp circle{fill:var(--accent)}.tag .num{color:var(--ink-2);margin-left:4px;font-size:.8125rem}.tag-blur{display:block;color:var(--ink)!important;margin:2px 0 0!important}.tag.is-sharp,.tag.is-sharp .num{color:var(--accent-ink)}.tag.part{text-align:center;font-size:.8125rem}.tag.part small{font-family:var(--mono);color:var(--ink-2);font-size:.8125rem;font-weight:400;display:block}.tag[hidden]{display:none}.stage-tools{pointer-events:none;justify-content:space-between;gap:12px;display:flex;position:absolute;top:14px;left:14px;right:14px}.seg{pointer-events:auto;gap:2px;display:flex}.seg button,.deck-presets button,.note-action{appearance:none;background:var(--paper);color:var(--ink);cursor:pointer;transition:transform .14s var(--ease-out), background-color .16s ease, color .16s ease;border:0;padding:10px 13px;font-size:.875rem;font-weight:500;line-height:1}.seg button:active,.deck-presets button:active,.note-action:active{transform:scale(.97)}.seg button[aria-pressed=true]{background:var(--ink);color:var(--paper)}@media (hover:hover) and (pointer:fine){.seg button[aria-pressed=false]:hover,.deck-presets button:hover{background:#fbfaf7}}.stage-hint{font-size:var(--step-small);color:var(--ink-2);pointer-events:none;transition:opacity .4s;position:absolute;top:62px;left:16px}.stage-fallback{max-width:44ch;font-size:var(--step-body);display:none;position:absolute;inset:auto 24px 50%}.stage.is-failed .stage-fallback{display:block}.stage.is-failed .stage-tools,.stage.is-failed .stage-hint,.stage.is-failed .sensor{display:none}#stage-canvas{opacity:0;transition:opacity .5s}.stage.is-ready #stage-canvas{opacity:1}.stage-hint.is-gone{opacity:0}.sensor{background:var(--paper);flex-direction:column;width:clamp(250px,33%,420px);margin:0;padding:8px 8px 10px;display:flex;position:absolute;bottom:14px;left:14px}@media (min-width:901px){.stage.is-exploded .sensor{opacity:0;pointer-events:none;transform:translateY(8px)}}.tag.part.is-compact small{display:none}.sensor{transition:opacity .26s ease, transform .26s var(--ease-out)}.sensor.is-large{width:auto;top:64px;right:14px}.sensor.is-large .sensor-frame{aspect-ratio:3/2;flex:1;width:auto;max-width:100%;min-height:0;margin:0 auto}.sensor-head{justify-content:space-between;align-items:baseline;gap:12px;margin-top:8px;display:flex}.sensor-toggle{appearance:none;color:var(--ink);cursor:pointer;text-underline-offset:3px;background:0 0;border:0;flex:none;padding:2px 0;font-size:.8125rem;font-weight:600;text-decoration:underline;text-decoration-thickness:1px}.sensor-frame{aspect-ratio:3/2;background:#2a2927;position:relative}#sensor-canvas{width:100%;height:100%;display:block;position:absolute;inset:0}.sensor figcaption{color:var(--ink-2);font-size:.8125rem;line-height:1.35}.side{flex-direction:column;min-height:0;padding-top:4px;display:flex}.side h1{font-size:var(--step-display);letter-spacing:-.035em;font-weight:600;line-height:.95}.lede{font-size:var(--step-lead);max-width:30ch;margin-top:18px;line-height:1.35}.readouts{grid-template-columns:1fr 1fr;column-gap:20px;margin:auto 0 0;padding-top:22px;display:grid}.ro{border-top:1px solid var(--rule);grid-template-columns:1fr auto;align-items:baseline;gap:2px 10px;padding:6px 0;display:grid}.ro dt{font-size:var(--step-small);color:var(--ink-2)}.ro dd{text-align:right;white-space:nowrap;margin:0;font-size:.9375rem}.ro .ro-sub{font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--ink-3);text-align:right;grid-column:1/-1;font-size:.8125rem}.ro[data-key=aperture],.ro[data-key=efl],.ro[data-key=travel]{grid-column:span 1}.ro-coc-head{border-top:1px solid var(--rule-strong);grid-column:1/-1;justify-content:space-between;align-items:baseline;margin-top:14px;padding:6px 0 4px;display:flex}.ro-coc-head dt{font-size:var(--step-small);font-weight:600}.ro-coc-head dd{font-size:.8125rem;font-family:var(--mono);color:var(--ink-3);margin:0}.ro-coc{grid-column:1/-1;transition:background-color .16s}.ro-coc dt{color:var(--ink);font-weight:500}.ro-coc dt .dim{color:var(--ink-3);margin-left:6px;font-size:.8125rem;font-weight:400}.ro-coc dd{align-items:center;gap:10px;display:inline-flex}.ro-coc .disc{width:18px;height:18px;display:inline-block;position:relative}.ro-coc .disc:after{content:"";width:var(--d,4px);height:var(--d,4px);background:var(--ink);opacity:.85;border-radius:50%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.ro-coc.is-sharp dd,.ro-coc.is-sharp dt{color:var(--accent-ink)}.ro-coc.is-sharp .disc:after{background:var(--accent)}.ro-coc{margin-inline:-8px;padding-inline:8px}.ro-coc.is-active{background:var(--paper-2)}.inside{gap:0 calc(var(--margin) * 2);padding:140px var(--margin) 0;grid-template-columns:minmax(0,1fr) clamp(320px,30vw,440px);display:grid}.inside-figure h2{font-size:var(--step-head);line-height:1}.inside-sticky{top:calc(var(--bar-h) + 16px);height:calc(100svh - var(--bar-h) - var(--deck-h) - 32px);flex-direction:column;min-height:420px;display:flex;position:sticky}.xsec-wrap{flex:1;min-height:0;margin-top:12px;position:relative}#xsec{display:block;position:absolute;inset:0}.xsec-legend{border-top:1px solid var(--rule);font-size:var(--step-small);flex-wrap:wrap;gap:8px 24px;padding-top:10px;display:flex}.check{cursor:pointer;color:var(--ink);align-items:center;gap:8px;display:inline-flex}.check input{appearance:none;border:1.5px solid var(--ink);background:var(--paper);cursor:pointer;place-content:center;width:16px;height:16px;margin:0;display:grid}.check input:after{content:"";background:var(--ink);opacity:0;width:8px;height:8px;transition:transform .14s var(--ease-out), opacity .14s ease;transform:scale(.5)}.check input:checked:after{opacity:1;transform:scale(1)}.notes{padding:22vh 0 30vh}.note{min-height:62vh;color:var(--ink-3);padding:20px 0;transition:color .28s}.note.is-current{color:var(--ink)}.note h3{margin-bottom:18px;font-size:clamp(1.5rem,1.2rem + .9vw,2rem);line-height:1.08}.note p{max-width:60ch}.note p+p{margin-top:12px}.note-action{background:var(--ink);color:var(--paper);margin-top:22px;padding:12px 16px}.note .note-action{background:var(--ink-3)}.note.is-current .note-action{background:var(--ink)}@media (hover:hover) and (pointer:fine){.note .note-action:hover{background:var(--accent-ink)}}.prescription{padding:160px var(--margin) 0;gap:0 var(--gap);grid-template-columns:repeat(12,minmax(0,1fr));display:grid}.rx-head{grid-column:1/span 5}.rx-head h2{font-size:var(--step-head);line-height:1}.rx-head p{max-width:44ch;margin-top:20px}.rx-switch{margin-top:16px;display:block}.rx-switch a{color:var(--ink);text-underline-offset:3px;font-weight:600;text-decoration-thickness:1px}.rx-table-wrap{grid-column:6/-1;overflow-x:auto}.rx{border-collapse:collapse;width:100%;font-size:.875rem}.rx th,.rx td{text-align:right;border-bottom:1px solid var(--rule);white-space:nowrap;padding:8px 10px}.rx th{color:var(--ink-2);border-bottom-color:var(--rule-strong);vertical-align:bottom;font-weight:500}.rx td{font-family:var(--mono);font-variant-numeric:tabular-nums}.rx th:first-child,.rx td:first-child,.rx td.txt,.rx th.txt{text-align:left}.rx td.txt{font-family:var(--sans)}.rx tr.is-stop td{color:var(--accent-ink)}.method{gap:40px var(--margin);grid-column:1/-1;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:96px;display:grid}.method h3{margin-bottom:12px;font-size:1.25rem;line-height:1.2}.method p{color:var(--ink);max-width:62ch;font-size:1rem}.method p+p{margin-top:10px}.foot{padding:48px var(--margin) 64px;background:var(--ink);color:var(--paper);grid-template-columns:auto 1fr;align-items:end;gap:8px 40px;margin-top:180px;display:grid}.foot-mark{aspect-ratio:1;width:clamp(120px,18vw,280px);height:auto;color:var(--accent);grid-row:span 2}.foot-name{letter-spacing:-.045em;font-size:clamp(3.5rem,2rem + 8vw,11rem);font-weight:600;line-height:.85}.foot-note{color:#cfcdc6;max-width:52ch;font-size:1rem}.deck{z-index:40;height:calc(var(--deck-h) + env(safe-area-inset-bottom));padding:12px var(--margin) calc(14px + env(safe-area-inset-bottom));background:var(--paper);border-top:1px solid var(--rule-strong);grid-template-columns:minmax(0,1fr) auto clamp(260px,22vw,340px);align-items:end;gap:0 28px;display:grid;position:fixed;bottom:0;left:0;right:0}.deck-label{justify-content:space-between;align-items:baseline;margin-bottom:7px;display:flex}.deck-name{font-size:var(--step-small);font-weight:600}.deck-value{font-size:.9375rem}.ring{cursor:ew-resize;touch-action:none;-webkit-user-select:none;user-select:none;height:62px;position:relative}.ring canvas{display:block;position:absolute;inset:0}.ring:focus-visible{outline-offset:2px}.ring-small{height:62px}.deck[data-note=group] .deck-focus .deck-name,.deck[data-note=point] .deck-focus .deck-name,.deck[data-note=hyperfocal] .deck-focus .deck-name,.deck[data-note=aperture] .deck-aperture .deck-name,.deck[data-note=coc] .deck-aperture .deck-name{color:var(--accent-ink)}.deck-name{transition:color .2s}.deck-presets{gap:2px;padding-bottom:0;display:flex}.deck-presets button{background:var(--paper-2);align-items:center;gap:8px;height:62px;padding:0 16px;display:inline-flex}.deck-presets kbd{font-family:var(--mono);color:var(--ink-3);font-size:.8125rem}@media (max-width:900px){:root{--margin:18px;--bar-h:52px;--deck-h:166px}.bar-links{gap:18px}.bar-links a:first-child{display:none}.hero{flex-direction:column;gap:0;height:auto;min-height:0;padding-top:22px;display:flex}.side{display:contents}.side h1{order:0;font-size:clamp(2.5rem,10.5vw,3.5rem)}.lede{order:1;margin-top:14px;font-size:1.125rem}.stage{margin:22px calc(var(--margin) * -1) 0;background:var(--paper);flex-direction:column;order:2;display:flex}.stage-viewport{position:relative}#stage-canvas{background:var(--studio);height:min(62vh,420px);position:relative}.stage-labels{height:min(62vh,420px);bottom:auto}.stage-tools{gap:6px;top:8px;left:8px;right:8px}.seg button{padding:9px;font-size:.8125rem}.hide-narrow{display:none}.show-narrow{display:inline}.stage-hint{display:none}.sensor{width:auto;margin:0 var(--margin);padding:12px 0 0;position:static}.sensor-toggle{display:none}.readouts{order:3;margin:18px 0 0;padding-top:0}.inside{padding-top:96px;display:block}.inside-figure{display:contents}.inside-figure h2{margin-bottom:8px;font-size:2rem}.inside-sticky{top:var(--bar-h);background:var(--paper);z-index:5;border-bottom:1px solid var(--rule);height:auto;min-height:0;padding-top:6px}.xsec-wrap{height:268px;margin:0 calc(var(--margin) * -1);flex:none}.xsec-legend{gap:6px 16px;padding-bottom:8px;font-size:.8125rem}.notes{padding:24px 0 0}.note{min-height:0;color:var(--ink);padding:28px 0 36px}.note .note-action{background:var(--ink)}.note h3{font-size:1.5rem}.prescription{padding-top:120px;display:block}.rx-table-wrap{margin-top:28px}.rx{font-size:.8125rem}.rx th,.rx td{padding:7px 4px}.rx .col-el,.rx .col-cell{display:none}.method{margin-top:64px;display:block}.method>div+div{margin-top:36px}.foot{grid-template-columns:1fr;margin-top:120px}.foot-mark{grid-row:auto;width:96px}.deck{padding-top:8px;padding-bottom:calc(10px + env(safe-area-inset-bottom));grid-template-rows:auto auto;grid-template-columns:1fr auto;align-content:start;gap:8px 10px}.deck-focus{grid-column:1/-1}.deck-aperture{grid-area:2/1}.deck[data-note=group] .deck-focus .deck-name,.deck[data-note=point] .deck-focus .deck-name,.deck[data-note=hyperfocal] .deck-focus .deck-name,.deck[data-note=aperture] .deck-aperture .deck-name,.deck[data-note=coc] .deck-aperture .deck-name{color:var(--accent-ink)}.deck-name{transition:color .2s}.deck-presets{grid-area:2/2;align-self:end}.ring{height:54px}.ring-small{height:42px}.deck-presets button{height:42px;padding:0 12px;font-size:.8125rem}.deck-name,.deck-value{font-size:.8125rem}.deck-presets kbd{display:none}.deck-label{margin-bottom:3px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.seg button:active,.deck-presets button:active,.note-action:active{transform:none}}.js [data-reveal]{opacity:0;transition:opacity .52s ease, transform .64s var(--ease-out);transition-delay:calc(var(--i,0) * 70ms);transform:translateY(18px)}.js [data-reveal].is-in{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){.js [data-reveal]{transition:opacity .3s;transform:none}}
