.helix-card,.viewer-print{background:linear-gradient(135deg, #ffffff1a, transparent 45%, #3c2d1914), url(/textures/paper.webp) var(--paper-x,0) var(--paper-y,0) / 1600px 1600px, #e4dfd2}.helix-stage{perspective:2600px;touch-action:pan-y;cursor:grab;user-select:none;height:min(460px,70dvh);position:relative;overflow:hidden}.helix-stage.is-dragging{cursor:grabbing}.helix-tilt,.helix{transform-style:preserve-3d;pointer-events:none;position:absolute;inset:0}.helix-card{width:var(--card-width,160px);--frame:calc(var(--card-width,160px) * .06);aspect-ratio:4/5;padding:var(--frame) var(--frame) 0;cursor:pointer;pointer-events:auto;will-change:transform, opacity;border:0;border-radius:2px;align-items:flex-start;display:flex;position:absolute;top:50%;left:50%;overflow:hidden;box-shadow:0 1px 2px #000c,0 14px 28px #000000bf,inset 0 1px #ffffff8c,inset 0 -1px #3c2d194d,inset 0 0 18px #5c482829}.helix-card img{aspect-ratio:1;object-fit:cover;filter:grayscale()sepia(.14)contrast(.96)brightness(1.03);opacity:0;pointer-events:none;width:100%;height:auto;transition:opacity var(--slow) var(--ease), filter var(--mid) var(--ease);-webkit-user-drag:none;background:#16150f;display:block}.helix-card img.is-ready{opacity:1}.helix-card:focus-visible img{filter:none}@media (hover:hover){.helix-card:hover img{filter:none}}.helix-card:after{content:"";top:var(--frame);left:var(--frame);right:var(--frame);aspect-ratio:1;mix-blend-mode:overlay;opacity:.55;pointer-events:none;transition:opacity var(--mid) var(--ease);background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:absolute;box-shadow:inset 0 1px 5px #0000008c}.helix-card:focus-visible:after{opacity:0}@media (hover:hover){.helix-card:hover:after{opacity:0}}.helix-card:focus-visible{outline:2px solid var(--blue-light);outline-offset:3px}@media (pointer:coarse){.helix-stage{perspective:none;touch-action:auto;cursor:auto;height:auto;overflow:visible}.helix-tilt,.helix{transform-style:flat;pointer-events:auto;position:static}.helix{overscroll-behavior-x:contain;scroll-snap-type:x proximity;scrollbar-width:none;gap:18px;padding:16px 16px 32px;display:flex;overflow-x:auto}.helix::-webkit-scrollbar{display:none}.helix-card{--card-width:min(72vw, 300px);scroll-snap-align:center;transform:rotate(var(--turn));will-change:auto;flex:none;position:relative;top:auto;left:auto}}@media (pointer:coarse) and (width<=960px){.helix-stage{margin-inline:-16px}}.helix-readout{justify-content:center;gap:8px;margin:12px 0 0;font-size:13px;font-weight:600;display:flex}.helix-readout span:empty{display:none}.helix-readout small{color:var(--muted);font:inherit;font-weight:400}.viewer{--print-frame:clamp(10px, 1.4vw, 18px);--stage-x:72px;--stage-top:28px;width:100vw;max-width:none;height:100dvh;max-height:none;color:var(--text);background:0 0;border:0;margin:0;padding:0;overflow:hidden}.viewer[open]{grid-template-rows:minmax(0,1fr) auto;place-items:center;display:grid}.viewer::backdrop{background:#050505}.viewer-stage{width:100%;height:100%;min-height:0;padding:var(--stage-top) var(--stage-x) 0;touch-action:pinch-zoom;place-items:center;display:grid}.viewer-print{padding:var(--print-frame) var(--print-frame) calc(var(--print-frame) * 3.2);transform-origin:50%;will-change:transform, opacity;border-radius:2px;position:relative;box-shadow:0 2px 4px #000c,0 30px 70px #000000d9,inset 0 1px #ffffff8c,inset 0 -1px #3c2d194d,inset 0 0 36px #5c482829}.viewer img{--max-width:calc(100vw - var(--stage-x) * 2 - var(--print-frame) * 2);--max-height:calc(100dvh - var(--stage-top) - 56px - var(--print-frame) * 4.2);width:min(var(--max-width), var(--max-height) * var(--ratio,1));max-width:none;aspect-ratio:var(--ratio,1);display:block;box-shadow:0 0 0 1px #281e0f59,0 1px 3px #281e0f66}.viewer p{margin:0;padding:16px;font-weight:600}.viewer small{color:var(--muted);font-variant-numeric:tabular-nums;margin-left:8px;font-weight:400}.viewer button{border:1px solid var(--line-strong);width:44px;height:44px;color:var(--text);font:inherit;cursor:pointer;transition:background var(--fast), transform var(--mid) var(--ease);background:#00000080;border-radius:50%;font-size:18px;position:absolute}.viewer button:hover{background:#ffffff24}.viewer-close{place-items:center;padding:0;display:grid;top:16px;right:16px}.viewer-close:hover{transform:rotate(90deg)}.viewer-prev{top:calc(50% - 22px);left:16px}.viewer-next{top:calc(50% - 22px);right:16px}.viewer-prev:hover{transform:translate(-3px)}.viewer-next:hover{transform:translate(3px)}@media (width<=640px){.viewer{--stage-x:12px;--stage-top:72px}.viewer-prev,.viewer-next{top:auto;bottom:10px}}
