.tap-page{-webkit-tap-highlight-color:transparent;touch-action:manipulation}.tap-shell{padding-left:max(1.25rem,env(safe-area-inset-left));padding-right:max(1.25rem,env(safe-area-inset-right))}.tap-topbar{padding-top:max(1.5rem,env(safe-area-inset-top))}.tap-progress{position:fixed;top:0;left:0;right:0;height:2px;background:var(--color-ox);transform-origin:0 50%;transform:scaleX(0);z-index:70;pointer-events:none}@supports (animation-timeline:scroll()){.tap-progress{animation:tap-grow linear both;animation-timeline:scroll(root)}}@keyframes tap-grow{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes tap-rise{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}.tap-enter{animation:tap-rise .65s var(--ease-out) both;animation-delay:var(--d,0s)}@keyframes tap-materialize{0%{opacity:0;transform:perspective(1100px) translateY(26px) rotateX(7deg) scale(.985)}to{opacity:1;transform:none}}.tap-card-scene{perspective:1200px;animation:tap-materialize .85s var(--ease-out) both;animation-delay:.06s}.tap-shine{position:absolute;inset:0;overflow:hidden;border-radius:inherit;pointer-events:none}.tap-shine:before{content:"";position:absolute;top:-20%;bottom:-20%;width:46%;left:0;background:linear-gradient(100deg,transparent,rgba(244,241,234,.07) 42%,rgba(244,241,234,.15) 50%,rgba(244,241,234,.07) 58%,transparent);transform:translateX(-140%) skewX(-12deg);animation:tap-sweep 1.15s var(--ease-out) .5s both}@keyframes tap-sweep{0%{transform:translateX(-140%) skewX(-12deg)}to{transform:translateX(360%) skewX(-12deg)}}.tap-card-3d{position:relative;transform-style:preserve-3d;transform:rotateY(calc(var(--flip, 0deg) + var(--tx, 0deg))) rotateX(var(--ty,0deg));transition:transform .65s var(--ease-out)}.tap-card-3d.is-tilting{transition:none}.tap-card-3d.is-flipped{--flip:180deg}.tap-face{backface-visibility:hidden;-webkit-backface-visibility:hidden;border-radius:4px}.tap-face.tap-face-front{position:relative;z-index:1}.tap-face.tap-face-back{transform:rotateY(180deg);display:flex;flex-direction:column}.tap-face.tap-face-back,.tap-glare{position:absolute;inset:0;overflow:hidden}.tap-glare{border-radius:inherit;pointer-events:none}.tap-glare:before{content:"";position:absolute;top:0;left:0;width:280px;height:280px;margin:-140px 0 0 -140px;border-radius:50%;background:radial-gradient(circle,rgba(244,241,234,.13),transparent 62%);transform:translate(var(--gx,-999px),var(--gy,-999px));opacity:var(--glare-o,0);transition:opacity .35s var(--ease-out)}.tap-card{background:var(--color-exhibit-bg);border:1px solid var(--color-exhibit-border);border-radius:4px;color:var(--color-exhibit-ink);position:relative}.tap-ticks{--tk:rgba(232,228,216,0.4);background-image:linear-gradient(var(--tk),var(--tk)),linear-gradient(var(--tk),var(--tk)),linear-gradient(var(--tk),var(--tk)),linear-gradient(var(--tk),var(--tk)),linear-gradient(var(--tk),var(--tk)),linear-gradient(var(--tk),var(--tk)),linear-gradient(var(--tk),var(--tk)),linear-gradient(var(--tk),var(--tk));background-size:14px 1px,1px 14px,14px 1px,1px 14px,14px 1px,1px 14px,14px 1px,1px 14px;background-position:6px 6px,6px 6px,calc(100% - 6px) 6px,calc(100% - 6px) 6px,6px calc(100% - 6px),6px calc(100% - 6px),calc(100% - 6px) calc(100% - 6px),calc(100% - 6px) calc(100% - 6px);background-repeat:no-repeat}.tap-dot{position:relative;width:7px;height:7px;border-radius:50%;background:var(--color-ox-bright);flex:none}.tap-dot:after{content:"";position:absolute;inset:-4px;border-radius:50%;border:1px solid var(--color-ox-bright);opacity:0;animation:tap-ping 2.6s var(--ease-out) infinite}@keyframes tap-ping{0%{transform:scale(.4);opacity:.8}70%,to{transform:scale(1.5);opacity:0}}.tap-name{font-family:var(--font-grotesque);font-weight:700;font-size:clamp(3.2rem,18.5vw,5.4rem);line-height:.88;letter-spacing:-.045em;text-transform:uppercase;color:var(--color-exhibit-ink)}@media (min-width:1024px){.tap-name{font-size:clamp(3.6rem,4.6vw,5rem)}}.tap-back-mark{font-family:var(--font-serif);font-weight:600;font-size:clamp(4.6rem,26vw,7rem);line-height:1;color:var(--color-exhibit-ink)}.tap-back-rules{height:34px;background:repeating-linear-gradient(90deg,rgba(232,228,216,.55) 0 2px,transparent 2px 5px,rgba(232,228,216,.55) 5px 6px,transparent 6px 11px,rgba(232,228,216,.55) 11px 14px,transparent 14px 18px);opacity:.5}.tap-flip-chip{display:inline-flex;align-items:center;gap:.4rem;border:1px solid var(--color-exhibit-border);border-radius:2px;padding:.45rem .7rem;font-family:var(--font-mono);font-size:.56rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--color-exhibit-ink-2);transition:color .2s,border-color .2s,transform .12s var(--ease-out)}.tap-flip-chip:active{transform:scale(.94)}.tap-flip-chip:hover{color:var(--color-exhibit-ink);border-color:var(--color-ox-bright)}@supports (animation-timeline:view()){[data-reveal]{animation:tap-view-in 1ms var(--ease-out) both;animation-timeline:view();animation-range:entry 5% entry 60%}.tap-fig{animation:tap-stamp 1ms var(--ease-out) both;animation-timeline:view();animation-range:entry 15% entry 55%}}@keyframes tap-view-in{0%{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}@keyframes tap-stamp{0%{opacity:0;transform:scale(1.14) rotate(-1.4deg)}60%{opacity:1}to{opacity:1;transform:none}}.tap-reveal{opacity:0;transform:translateY(18px);transition:opacity .6s var(--ease-out),transform .6s var(--ease-out);transition-delay:var(--d,0s)}.tap-reveal.is-in{opacity:1;transform:none}.tap-btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;font-family:var(--font-mono);font-weight:700;font-size:.78rem;letter-spacing:.09em;text-transform:uppercase;border-radius:2px;min-height:54px;padding:0 1.1rem;transition:transform .12s var(--ease-out),background .2s,border-color .2s,color .2s;-webkit-tap-highlight-color:transparent;user-select:none}.tap-btn:active{transform:scale(.975)}.tap-btn-primary{background:var(--color-ox);color:#f4f1ea}.tap-btn-primary:hover{background:var(--color-ox-bright)}.tap-btn-dark{border:1px solid var(--color-exhibit-border);color:var(--color-exhibit-ink);background:transparent}.tap-btn-dark:hover{border-color:var(--color-ox-bright);color:#fff}.tap-btn-paper{border:1px solid var(--color-border);color:var(--color-ink);background:var(--color-bg-card)}.tap-btn-paper:hover{border-color:var(--color-border-h)}.tap-btn-inverse{background:var(--color-bg);color:var(--color-ox)}.tap-save .tap-save-sent,.tap-save.is-sent .tap-save-default{display:none}.tap-save.is-sent .tap-save-sent{display:inline-flex;align-items:center;gap:.5rem}.tap-save.is-sent{animation:tap-pop .3s var(--ease-out)}@keyframes tap-pop{0%{transform:scale(1)}40%{transform:scale(1.03)}to{transform:scale(1)}}.tap-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;min-height:54px;border-bottom:1px solid var(--color-border);font-family:var(--font-mono);font-size:.82rem;-webkit-tap-highlight-color:transparent}.tap-row:first-child{border-top:1px solid var(--color-border)}a.tap-row:hover .tap-row-label{color:var(--color-ox)}a.tap-row:active{background:var(--color-bg-1)}.tap-fig-value{font-family:var(--font-mono);font-weight:700;font-size:clamp(1.9rem,8.4vw,2.5rem);line-height:1.05;letter-spacing:-.02em;color:var(--color-ink);border-bottom:2px solid var(--color-ox);display:inline-block;padding-bottom:.2rem}.tap-rail-wrap{position:relative;timeline-scope:--tap-railx}.tap-rail{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;padding:4px 20px 10px;margin:0 -20px;scrollbar-width:none;overscroll-behavior-x:contain;scroll-timeline:--tap-railx x}.tap-rail::-webkit-scrollbar{display:none}.tap-rail>*{scroll-snap-align:center;flex:0 0 min(78vw,330px)}.tap-rail-hint{position:absolute;top:-1.9rem;right:0;display:inline-flex;align-items:center;gap:.35rem;font-family:var(--font-mono);font-size:.6rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--color-ox);pointer-events:none;animation:tap-nudge 1.5s ease-in-out infinite,tap-hint-timeout .4s var(--ease-out) 6s both}@supports (animation-timeline:scroll()){.tap-rail-hint{animation:tap-nudge 1.5s ease-in-out infinite,tap-hint-timeout .4s var(--ease-out) 6s both,tap-hint-swipe linear both;animation-timeline:auto,auto,--tap-railx;animation-range:normal,normal,0 70px}}@keyframes tap-nudge{0%,to{transform:translateX(0)}50%{transform:translateX(-5px)}}@keyframes tap-hint-timeout{to{opacity:0;visibility:hidden}}@keyframes tap-hint-swipe{to{opacity:0;visibility:hidden}}@media (min-width:1024px){.tap-rail{display:grid;grid-template-columns:1fr 1fr;overflow:visible;margin:0;padding:0}.tap-rail>*{flex:none}.tap-rail-hint{display:none}}.tap-work-card{display:block;border:1px solid var(--color-border);border-radius:4px;background:var(--color-bg-card);overflow:hidden;transition:transform .25s var(--ease-out),border-color .2s;-webkit-tap-highlight-color:transparent}.tap-work-card:hover{border-color:var(--color-border-h);transform:translateY(-2px)}.tap-work-card:active{transform:scale(.98)}.tap-qr-dialog{border:1px solid var(--color-rule);border-radius:4px;background:var(--color-bg-card);padding:0;width:min(88vw,360px);margin:auto}.tap-qr-dialog::backdrop{background:rgba(26,26,26,.6)}.tap-qr-dialog[open]{transition:opacity .22s var(--ease-out),transform .22s var(--ease-out)}.tap-qr-dialog[open]::backdrop{transition:opacity .22s var(--ease-out)}@starting-style{.tap-qr-dialog[open]{opacity:0;transform:translateY(14px) scale(.97)}.tap-qr-dialog[open]::backdrop{opacity:0}}.tap-dock{position:fixed;left:0;right:0;bottom:0;z-index:60;transform:translateY(110%);transition:transform .4s var(--ease-out);background:var(--color-bg-card);border-top:1px solid var(--color-rule);padding:10px max(12px,env(safe-area-inset-right)) calc(10px + env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))}.tap-dock.is-on{transform:none}@media (min-width:1024px){.tap-dock{display:none}}.tap-toast{position:fixed;left:50%;bottom:calc(88px + env(safe-area-inset-bottom));transform:translate(-50%,8px);z-index:80;background:var(--color-exhibit-bg);color:var(--color-exhibit-ink);border:1px solid var(--color-exhibit-border);border-radius:3px;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.05em;padding:.6rem 1rem;opacity:0;pointer-events:none;transition:opacity .25s var(--ease-out),transform .25s var(--ease-out);white-space:nowrap}.tap-toast.is-on{opacity:1;transform:translate(-50%)}@media (prefers-reduced-motion:reduce){.tap-card-scene,.tap-enter,.tap-fig,.tap-progress,.tap-rail-hint,.tap-shine:before,[data-reveal]{animation:none}.tap-reveal{opacity:1;transform:none}.tap-card-3d,.tap-reveal{transition:none}.tap-dot:after{animation:none}}