:root{--stage: #161310;--paper: #f3efe6;--ink: #1c1915;--ink-soft: #5c564e;--line: rgba(28, 25, 21, .12);--accent: #9a3f12;--ease-out: cubic-bezier(.23, 1, .32, 1);font:100%/1.5 system-ui,Segoe UI,Roboto,Helvetica,Arial,sans-serif;color:var(--paper);background:var(--stage);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html,body,#root{margin:0;min-width:320px;min-height:100%;background:var(--stage)}body{min-height:100svh}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;background:none;border:none;padding:0;cursor:pointer}::selection{background:var(--paper);color:var(--stage)}:focus{outline:none}:focus-visible{outline:2px solid var(--paper);outline-offset:3px}.viewfinder :focus-visible{outline-color:var(--ink)}.app{position:relative;min-height:100svh}.grain{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;pointer-events:none;opacity:.05;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}.skip-link{position:absolute;left:1rem;top:-4rem;z-index:50;padding:.55rem .8rem;background:var(--paper);color:var(--stage);border-radius:.4rem}.skip-link:focus{top:.75rem}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.stage{min-height:100svh;display:grid;place-items:center;padding:3.25rem 1.25rem 2rem}.lens{position:relative;width:min(78vmin,40rem);aspect-ratio:1;border-radius:50%;touch-action:none;-webkit-user-select:none;user-select:none;cursor:grab;outline:none}.lens:focus-visible{box-shadow:0 0 0 3px var(--stage),0 0 0 5px var(--paper)}.lens[data-dragging=true]{cursor:grabbing}.glass-art,.barrel-svg,.index-mark{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}.barrel{position:absolute;top:0;right:0;bottom:0;left:0;transform-origin:50% 50%;pointer-events:none;will-change:transform}.barrel-knurl line{stroke:#0a0b0c80;stroke-width:.55}.tick{stroke-linecap:butt}.tick-minor{stroke:#7d7264;stroke-width:.3}.tick-major{stroke:#d9d1c0;stroke-width:.6}.stop-mark{pointer-events:auto;fill:#b9ae9d;cursor:pointer;text-decoration:none}.stop-hit{fill:transparent}.stop-mm,.stop-label{font-family:system-ui,Segoe UI,Roboto,Helvetica,Arial,sans-serif;fill:inherit}.stop-mm{font-weight:700}.stop-label{font-weight:600;letter-spacing:.16em}.stop-mark.is-live{fill:var(--paper)}.stop-mark:focus-visible .stop-hit{fill:#f3efe614;stroke:var(--paper);stroke-width:.3}.index-mark{z-index:5}.index-window{fill:none;stroke:#f3efe6b3;stroke-width:.45}.index-dot{fill:var(--paper)}.glass-art,.iris-art{object-fit:contain}.glass-art{mix-blend-mode:screen;opacity:.55;pointer-events:none;-webkit-mask-image:radial-gradient(circle closest-side,transparent 0 var(--rim-mask-inner),#000 var(--rim-mask-inner) var(--rim-mask-outer),transparent var(--rim-mask-outer));mask-image:radial-gradient(circle closest-side,transparent 0 var(--rim-mask-inner),#000 var(--rim-mask-inner) var(--rim-mask-outer),transparent var(--rim-mask-outer))}.viewfinder{position:absolute;inset:var(--hole-inset, 22.9%);z-index:2;overflow:hidden;border-radius:50%;background:var(--paper);color:var(--ink);box-shadow:inset 0 0 0 1px #1c191529;cursor:auto;touch-action:pan-y}.viewfinder-panel{position:absolute;top:var(--panel-inset);left:var(--panel-inset);width:var(--panel-size);height:var(--panel-size);overflow:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 5%,#000 95%,transparent 100%);mask-image:linear-gradient(to bottom,transparent 0,#000 5%,#000 95%,transparent 100%)}.viewfinder-panel::-webkit-scrollbar{display:none}.iris{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;pointer-events:none;display:grid;place-items:center;background:#0d0c0b;clip-path:circle(0% at 50% 50%);transition:clip-path .22s var(--ease-out)}.iris[data-closed=true]{clip-path:circle(52% at 50% 50%)}.iris-blades,.iris-art{width:100%;height:100%}.iris-blade{fill:#161311;stroke:#3a332c;stroke-width:.4}.finder-rest,.finder-copy{min-height:100%;display:flex;flex-direction:column;justify-content:center}.finder-rest h1{margin:0 0 .55rem;font-size:clamp(1.7rem,6vmin,3.4rem);font-weight:600;letter-spacing:-.05em;line-height:.88}.finder-rest h1 span{display:block}.lede{margin:0;font-size:clamp(.92rem,2.2vmin,1.15rem);font-weight:600;letter-spacing:-.03em;color:var(--ink-soft)}.finder-copy h2{margin:0 0 .7rem;font-size:clamp(1.05rem,3.2vmin,1.55rem);font-weight:600;letter-spacing:-.035em;line-height:1.15}.finder-copy p{margin:0;color:var(--ink-soft);font-size:clamp(.82rem,2vmin,.98rem);line-height:1.45}.finder-list,.finder-photos{margin:0;padding:0;list-style:none}.finder-list li{padding:.45rem 0;border-top:1px solid var(--line)}.finder-list li:last-child,.finder-photos li:last-child{padding-bottom:0}.finder-link{display:inline-flex;align-items:center;gap:.25rem;font-weight:600;letter-spacing:-.03em;transition:color .16s ease,transform .16s var(--ease-out)}.finder-link:after{content:"↗";font-size:.78em}.finder-link:active,.finder-email:active{transform:scale(.97)}.finder-list p,.finder-photos p{margin-top:.15rem}.finder-photos li{display:grid;grid-template-columns:2.4rem 1fr;gap:.65rem;align-items:center;padding:.4rem 0}.finder-photos h3{margin:0;font-size:.92rem;font-weight:600;letter-spacing:-.03em}.photo-chip{width:2.4rem;height:2.4rem;border-radius:.45rem}.tone-japan{background:linear-gradient(165deg,#1c2740,#9a3f12)}.tone-southwest{background:linear-gradient(160deg,#c4783a,#3d2116)}.tone-acadia{background:linear-gradient(170deg,#1e3a32,#8ba3b0)}.finder-email{margin-top:.9rem;font-size:clamp(.95rem,2.8vmin,1.25rem);font-weight:600;letter-spacing:-.04em;word-break:break-word;transition:opacity .16s ease,transform .16s var(--ease-out)}.finder-foot{margin-top:.8rem;font-size:.75rem}@media (hover: hover) and (pointer: fine){.stop-mark:hover{fill:var(--paper)}.finder-link:hover,.finder-email:hover{color:var(--accent)}}@media (max-width: 640px){.stage{padding:.6rem}.lens{width:min(94vmin,40rem)}.stop-mm{font-size:4.1px}.stop-label{font-size:2.7px;letter-spacing:.12em}.tick-minor{stroke-width:.4}.tick-major{stroke-width:.8}}@media (prefers-reduced-motion: reduce){.iris{transition:none}}@media (prefers-reduced-transparency: reduce){.glass-art{mix-blend-mode:normal;opacity:1}}
