.bokah-scan-pulse{position:relative;display:block;pointer-events:none}.bokah-scan-pulse__ring{position:absolute;inset:0;border:2px solid var(--color-accent);border-radius:var(--radius-pill);animation:bokah-scan-pulse var(--dur-cinematic) var(--ease-spring-tag) forwards}.bokah-scan-pulse__ring[data-delayed=true]{animation-delay:var(--dur-fast)}@keyframes bokah-scan-pulse{0%{opacity:.9;transform:scale(.2)}to{opacity:0;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.bokah-scan-pulse__ring{animation:bokah-scan-pulse-still var(--dur-base) var(--ease-out-fabric) forwards}.bokah-scan-pulse__ring[data-delayed=true]{display:none}}:root[data-tier="0"] .bokah-scan-pulse__ring{animation:bokah-scan-pulse-still var(--dur-base) var(--ease-out-fabric) forwards}:root[data-tier="0"] .bokah-scan-pulse__ring[data-delayed=true]{display:none}@keyframes bokah-scan-pulse-still{0%{opacity:.9}to{opacity:0}}.tap-word{--tap-word-size:clamp(calc(var(--space-16) + var(--space-2)),8vw,var(--space-24));display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-6);inline-size:100%;box-sizing:border-box;padding:var(--space-6) var(--space-4);background:var(--surface-raised);border:var(--border-hair) solid var(--border-strong);border-radius:var(--radius-lg);transition:border-color var(--dur-surface) var(--ease-out-fabric),box-shadow var(--dur-surface) var(--ease-out-fabric)}.tap-word[data-complete]{border-color:var(--color-accent);box-shadow:0 0 var(--space-12) color-mix(in srgb,var(--color-accent) 28%,transparent)}.tap-word__main{display:grid;gap:var(--space-4);min-inline-size:0;align-content:start}.tap-word__heading{margin:0;font-family:var(--font-mono);font-size:var(--type-lg);font-weight:500;text-transform:uppercase;line-height:var(--leading-caption);letter-spacing:var(--tracking-caps-micro);color:var(--text-muted)}.tap-word__hint{margin:0;font-size:var(--type-sm);line-height:1.5;color:var(--text-muted)}.tap-word__letters{display:flex;align-items:center;gap:var(--space-1)}.tap-word__letter{position:relative;display:grid;place-items:center;flex:1 1 0;min-inline-size:0;padding:0;border:0;background:transparent;cursor:pointer;font-family:var(--font-title);font-size:var(--tap-word-size);font-weight:500;line-height:1;text-transform:uppercase;color:var(--text-muted)}.tap-word__letter:focus-visible{outline:2px solid var(--focus-ring);outline-offset:var(--space-1);border-radius:var(--radius-md)}.tap-word__glyph{display:inline-grid;place-items:center;color:color-mix(in srgb,var(--text) 24%,transparent);transition:color var(--dur-base) var(--ease-out-fabric)}.tap-word__letter[data-lit] .tap-word__glyph{color:var(--color-accent)}.tap-word__glyph[data-punch]{animation:tap-word-punch var(--dur-slow) var(--ease-out-fabric)}@keyframes tap-word-punch{0%{transform:scale(1.15)}to{transform:scale(1)}}.tap-word__pulse{position:absolute;inset-block-start:50%;inset-inline-start:50%;translate:-50% -50%;pointer-events:none}.tap-word[data-complete] .tap-word__glyph{filter:drop-shadow(0 0 var(--space-4) color-mix(in srgb,var(--color-accent) 55%,transparent))}.tap-word__glyph .bo-peek{font-size:.82em;animation:tap-word-peek var(--dur-slow) var(--ease-out-fabric) both}.tap-word__glyph .bo-peek .bo-eyes{transform:scale(2)}@keyframes tap-word-peek{0%{opacity:0;transform:translateY(40%) scale(.7)}to{opacity:1;transform:none}}.tap-word__meta{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-2) var(--space-4)}.tap-word__progress{margin:0;font-family:var(--font-mono);line-height:var(--leading-caption);letter-spacing:var(--tracking-caps-micro)}.tap-word__progress,.tap-word__reset{font-size:var(--type-ui);font-weight:500;text-transform:uppercase;color:var(--text)}.tap-word__reset{padding:var(--space-1) var(--space-3);border:var(--border-hair) solid var(--border-strong);border-radius:var(--radius-pill);background:transparent;cursor:pointer}.tap-word__reset:focus-visible{outline:2px solid var(--focus-ring);outline-offset:var(--space-1)}.tap-word__phone{position:relative;display:grid;align-content:start;justify-items:center;gap:var(--space-2);min-block-size:var(--space-24);padding:var(--space-3);background:var(--surface);border:var(--border-hair) solid var(--border-subtle);border-radius:var(--radius-lg);text-align:center;transition:border-color var(--dur-surface) var(--ease-out-fabric)}.tap-word[data-complete] .tap-word__phone{border-color:var(--color-accent)}.tap-word__island{display:block;inline-size:var(--space-8);block-size:var(--space-2);border-radius:var(--radius-pill);background:var(--surface-sunken)}.tap-word__waiting{margin:0;font-family:var(--font-mono);font-size:var(--type-xs);text-transform:uppercase;letter-spacing:var(--tracking-caps-micro);color:var(--text-muted);transition:opacity var(--dur-base) var(--ease-out-fabric)}.tap-word__waiting[data-hidden]{opacity:0;position:absolute;inset-block-start:50%}.tap-word__screen{display:grid;justify-items:center;gap:var(--space-2);inline-size:100%}.tap-word__piece{display:grid;justify-items:center;min-block-size:var(--space-4);opacity:0;transform:translate3d(0,var(--space-3),0);transition:opacity var(--dur-surface) var(--ease-out-fabric),transform var(--dur-surface) var(--ease-out-fabric)}.tap-word__piece[data-show]{opacity:1;transform:none}.tap-word__crest{display:grid;place-items:center;inline-size:var(--space-8);block-size:var(--space-8);border-radius:var(--radius-pill);background:var(--color-accent);color:var(--color-ink);font-family:var(--font-mono);font-size:var(--type-xs)}.tap-word__crest,.tap-word__title{font-weight:500;text-transform:uppercase}.tap-word__title{font-family:var(--font-title);font-size:var(--type-lg);line-height:var(--leading-heading-sm);color:var(--text)}.tap-word__detail{font-size:var(--type-xs);line-height:1.4;color:var(--text-muted)}.tap-word__action{padding:var(--space-1) var(--space-3);border:var(--border-hair) solid var(--border-strong);border-radius:var(--radius-pill);font-size:var(--type-xs);white-space:nowrap}@media (min-width:64rem){.tap-word{grid-template-columns:minmax(0,1fr) var(--space-32);gap:var(--space-8);padding:var(--space-8)}.tap-word__phone{align-self:stretch;min-block-size:var(--space-32)}}@media (prefers-reduced-motion:reduce){.tap-word,.tap-word__glyph,.tap-word__phone,.tap-word__piece,.tap-word__waiting{transition:none}.tap-word__glyph .bo-peek,.tap-word__glyph[data-punch]{animation:none}.tap-word__piece{transform:none}}:root[data-tier="0"] .tap-word,:root[data-tier="0"] .tap-word__glyph,:root[data-tier="0"] .tap-word__phone,:root[data-tier="0"] .tap-word__piece,:root[data-tier="0"] .tap-word__waiting{transition:none}:root[data-tier="0"] .tap-word__glyph .bo-peek,:root[data-tier="0"] .tap-word__glyph[data-punch]{animation:none}:root[data-tier="0"] .tap-word__piece{transform:none}.tap-demo{--tap-demo-xfade:var(--dur-base);--tap-demo-slide:0%;display:grid;grid-template-columns:minmax(0,1fr);grid-template-areas:"header" "clip" "side" "footer";gap:var(--space-8);inline-size:100%;box-sizing:border-box;max-inline-size:calc(var(--page-max) + 2 * var(--page-gutter));margin-inline:auto;padding:var(--space-12) var(--page-gutter) var(--space-24)}.tap-demo__header{grid-area:header;min-inline-size:0;text-align:start}.tap-demo__eyebrow{margin:0 0 var(--space-4);font-family:var(--font-mono);line-height:var(--leading-caption);letter-spacing:var(--tracking-caps-micro);font-size:var(--type-eyebrow);color:var(--text-muted)}.tap-demo__eyebrow,.tap-demo__heading{font-weight:500;text-transform:uppercase}.tap-demo__heading{margin:0;max-inline-size:var(--page-title-measure);font-family:var(--font-title);font-size:var(--type-2xl);line-height:var(--leading-display);text-wrap:balance;color:var(--text)}.tap-demo__body{margin:var(--space-6) 0 0;max-inline-size:none;font-size:var(--type-body-lg);line-height:1.5;color:var(--text-muted);text-wrap:pretty}.tap-demo[data-mode=qr]{--tap-demo-xfade:var(--dur-surface);--tap-demo-slide:3%}.tap-demo__clip{grid-area:clip;min-inline-size:0;padding:var(--space-3);background:var(--surface-raised);border:var(--border-hair) solid var(--border-strong);border-radius:var(--radius-lg)}.tap-demo__clip .tap-demo__video{inline-size:100%;max-inline-size:none;border-radius:var(--radius-md)}.tap-demo__caption{display:none}.tap-demo__side{grid-area:side;display:grid;gap:var(--space-8);min-inline-size:0}.tap-demo__stage{display:flex;flex-direction:column;align-items:center;gap:var(--space-6);min-inline-size:0;padding:var(--space-6);background:var(--surface-raised);border:var(--border-hair) solid var(--border-subtle);border-radius:var(--radius-lg)}.tap-demo__contextImage{inline-size:100%;overflow:hidden;border-radius:var(--radius-lg)}.tap-demo__contextImage img,.tap-demo__contextImage picture{inline-size:100%;block-size:auto}.tap-demo[data-mode=qr] .tap-demo__contextImage{inline-size:min(100%,20rem);background:#fff}.tap-demo[data-mode=qr] .tap-demo__contextImage img{display:block;aspect-ratio:1;object-fit:contain}.tap-demo__stage .bokah-tap-sim{--tap-sim-stage:22rem;--tap-sim-phone-w:9rem}.tap-demo__phone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);inline-size:100%;min-block-size:9rem;padding:var(--space-4);text-align:center;overflow-wrap:anywhere;background:var(--surface);border:var(--border-hair) solid var(--border-subtle);border-radius:var(--radius-lg)}.tap-demo__phoneHeading{margin:0;font-family:var(--font-title);font-size:var(--type-xl);color:var(--text);font-weight:500;text-transform:uppercase;line-height:var(--leading-heading-sm)}.tap-demo__crest{display:grid;place-items:center;inline-size:var(--space-8);block-size:var(--space-8);border-radius:var(--radius-pill);background:var(--color-accent);font-family:var(--font-mono);font-size:var(--type-xs);font-weight:500;text-transform:uppercase;line-height:var(--leading-caption);letter-spacing:var(--tracking-caps-micro);color:var(--color-ink)}.tap-demo__phoneActions{display:flex;gap:var(--space-1)}.tap-demo__phoneAction{padding:var(--space-1) var(--space-2);border:var(--border-hair) solid var(--border-strong);border-radius:var(--radius-pill);font-size:var(--type-xs)}.tap-demo__idle{font-size:var(--type-xs)}.tap-demo__idle,.tap-demo__simulatedTag{margin:0;font-family:var(--font-mono);color:var(--text-muted);font-weight:500;text-transform:uppercase;line-height:var(--leading-caption);letter-spacing:var(--tracking-caps-micro)}.tap-demo__simulatedTag{font-size:var(--type-eyebrow)}.tap-demo__redirectLabel{margin:var(--space-2) 0 0;font-size:var(--type-ui);color:var(--text-muted);font-weight:500;text-transform:uppercase;line-height:var(--leading-ui)}.tap-demo__steps{min-inline-size:0}.tap-demo__stepsHeading{margin:0 0 var(--space-4);font-family:var(--font-mono);font-size:var(--type-xl);font-weight:500;text-transform:uppercase;line-height:var(--leading-heading-sm);color:var(--text-muted)}.tap-demo__stepList{display:grid;gap:var(--space-4);margin:0;padding:0;list-style:none}.tap-demo__step{border-block-start:var(--border-hair) solid var(--border-subtle)}.tap-demo__stepButton{display:grid;grid-template-columns:var(--space-8) minmax(0,1fr);gap:var(--space-4);inline-size:100%;padding:var(--space-4) var(--space-2);border:0;border-radius:var(--radius-md);background:transparent;color:inherit;text-align:start;cursor:pointer;position:relative;border:var(--border-hair) solid transparent;transition:background-color var(--dur-surface) var(--ease-out-fabric),border-color var(--dur-surface) var(--ease-out-fabric)}@media (hover:hover){.tap-demo__stepButton:hover{background:color-mix(in srgb,var(--color-accent) 8%,transparent);border-color:var(--color-accent)}}.tap-demo__step[data-active] .tap-demo__stepButton{background:var(--surface-raised)}.tap-demo__stepButton:before{content:"";position:absolute;inset-block:var(--space-2);inset-inline-start:0;inline-size:var(--space-1);border-radius:var(--radius-pill);background:var(--color-accent);opacity:0;transform:scaleY(.4);transform-origin:center;transition:opacity var(--dur-surface) var(--ease-out-fabric),transform var(--dur-surface) var(--ease-out-fabric)}.tap-demo__step[data-active] .tap-demo__stepButton:before{opacity:1;transform:scaleY(1)}.tap-demo__stepButton:focus-visible{outline:2px solid var(--focus-ring);outline-offset:3px}.tap-demo__stepBody,.tap-demo__stepTitle{transition:color var(--dur-surface) var(--ease-out-fabric)}.tap-demo__step:not([data-active]) .tap-demo__stepTitle{color:var(--text-muted)}.tap-demo__step[data-active] .tap-demo__stepNumber{background:var(--color-accent);color:var(--color-ink);border-color:var(--color-accent)}.tap-demo__stepText{display:grid;gap:var(--space-1)}.tap-demo__stepNumber{transition:background-color var(--dur-surface) var(--ease-out-fabric),color var(--dur-surface) var(--ease-out-fabric),border-color var(--dur-surface) var(--ease-out-fabric);display:grid;place-items:center;inline-size:var(--space-8);block-size:var(--space-8);border:var(--border-hair) solid var(--border-strong);border-radius:var(--radius-pill);font-family:var(--font-mono);font-size:var(--type-base);color:var(--text);font-weight:500;font-variant-numeric:tabular-nums}.tap-demo__stepTitle{transition:color var(--dur-surface) var(--ease-out-fabric);margin:0;font-family:var(--font-title);font-size:var(--type-xl);font-weight:500;text-transform:uppercase;line-height:var(--leading-heading-sm);color:var(--text)}.tap-demo__stepBody{margin:0;font-weight:400;text-transform:none;font-size:var(--type-base);line-height:1.5;color:var(--text-muted)}.tap-demo__video{position:relative;inline-size:100%;max-inline-size:36rem;overflow:hidden;background:var(--surface-sunken);border:var(--border-hair) solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:0 var(--space-4) var(--space-12) color-mix(in srgb,var(--color-ink) 40%,transparent)}.tap-demo__stage .tap-demo__video{max-inline-size:none;flex:none}.tap-demo__video[data-state=poster]:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,transparent 55%,color-mix(in srgb,var(--color-ink) 40%,transparent))}.tap-demo__videoEl{display:block;inline-size:100%;block-size:100%;object-fit:contain;transition:opacity var(--tap-demo-xfade) var(--ease-out-fabric),transform var(--tap-demo-xfade) var(--ease-out-fabric)}.tap-demo__videoEl[data-fading]{opacity:0;transform:translate3d(calc(var(--tap-demo-slide) * -1),0,0)}.tap-demo__play{position:absolute;inset:0;display:grid;place-items:center;background:none;border:none;cursor:pointer}.tap-demo__playIcon{position:relative;display:block;inline-size:var(--space-16);block-size:var(--space-16);border-radius:var(--radius-pill);background:var(--color-accent)}.tap-demo__playIcon:after{content:"";position:absolute;inset-block-start:50%;inset-inline-start:54%;translate:-50% -50%;border-style:solid;border-width:var(--space-3) 0 var(--space-3) var(--space-4);border-color:transparent transparent transparent var(--color-ink)}.tap-demo__footer{grid-area:footer;display:grid;grid-template-columns:minmax(0,1fr);align-items:center;gap:var(--space-8);padding-block-start:var(--space-8);border-block-start:var(--border-hair) solid var(--border-subtle)}.tap-demo__footerMain{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-4) var(--space-8);min-inline-size:0}.tap-demo__compareNote{margin:0;max-inline-size:60ch;font-size:var(--type-xs);color:var(--text-muted)}@media (min-width:64rem){.tap-demo{grid-template-columns:minmax(0,7fr) minmax(0,5fr);grid-template-areas:"header header" "clip side" "footer footer";column-gap:var(--space-10);align-items:start;padding-block:var(--space-16) var(--space-24)}.tap-demo__stage{padding:var(--space-8)}.tap-demo__footer{grid-template-columns:minmax(0,5fr) minmax(0,7fr);column-gap:var(--space-10)}.tap-demo__footerMain{flex-direction:column;align-items:flex-start}.tap-demo__footer .tap-word{justify-self:end}}@media (max-width:63.999rem){body:has(.tap-demo) .bokah-consent-banner .bokah-anchor{display:inline-flex;align-items:center;min-block-size:var(--space-8)}.tap-demo{gap:var(--space-6);padding-block:var(--space-8) calc(var(--space-16) + env(safe-area-inset-bottom));padding-inline:max(var(--page-gutter),env(safe-area-inset-left)) max(var(--page-gutter),env(safe-area-inset-right))}.tap-demo__eyebrow{margin-block-end:var(--space-3)}.tap-demo__body{margin-block-start:var(--space-4)}.tap-demo__clip{padding:0;border:0;background:transparent}.tap-demo__clip .tap-demo__video{border-radius:var(--radius-lg)}.tap-demo__clip .tap-demo__video[data-state=playing]{--tap-demo-controls-h:var(--space-16);box-sizing:content-box;inline-size:calc(100% - 2 * var(--border-hair));padding-block-end:var(--tap-demo-controls-h)}.tap-demo__video[data-state=playing] .tap-demo__videoEl{block-size:calc(100% + var(--tap-demo-controls-h));object-position:top}.tap-demo__caption{display:block;margin:var(--space-3) 0 0;font-size:var(--type-sm);line-height:1.5;color:var(--text-muted)}.tap-demo__side{gap:var(--space-8)}.tap-demo__stage,.tap-demo__steps{scroll-margin-block-start:calc(var(--header-h) + var(--space-4))}.tap-demo__stepsHeading{margin-block-end:var(--space-3);font-size:var(--type-lg);font-weight:500}.tap-demo__stepList{gap:0}.tap-demo__stepButton{grid-template-columns:var(--space-8) minmax(0,1fr);gap:var(--space-3);padding-block:var(--space-4)}.tap-demo__stepTitle{font-size:var(--type-lg);line-height:var(--leading-sub)}.tap-demo__stage{padding:var(--space-4)}.tap-demo__stage .bokah-tap-sim{--tap-sim-stage:calc(var(--space-24) * 3);--tap-sim-phone-w:calc(var(--space-24) + var(--space-6))}.tap-demo__stage .bokah-tap-sim__art{inset-inline-start:26%}.tap-demo__stage .bokah-tap-sim__phone{inset-inline-start:60%}.tap-demo[data-mode=qr] .bokah-tap-sim__phone{inset-inline-start:73%}.tap-demo[data-mode=qr] .bokah-tap-sim__art img{inline-size:var(--space-32);block-size:var(--space-32)}.tap-demo__phone{min-block-size:var(--space-24)}.tap-demo__idle{font-size:var(--type-base)}.tap-demo__stage .tap-demo__phoneActions{flex-direction:column;align-items:center}.tap-demo__stage .tap-demo__phoneAction{white-space:nowrap}}@media (prefers-reduced-motion:reduce){.tap-demo__stepBody,.tap-demo__stepButton,.tap-demo__stepButton:before,.tap-demo__stepNumber,.tap-demo__stepTitle,.tap-demo__videoEl{transition:none}}:root[data-tier="0"] .tap-demo__stepBody,:root[data-tier="0"] .tap-demo__stepButton,:root[data-tier="0"] .tap-demo__stepButton:before,:root[data-tier="0"] .tap-demo__stepNumber,:root[data-tier="0"] .tap-demo__stepTitle,:root[data-tier="0"] .tap-demo__videoEl{transition:none}