.ib-page{--ib-bg:#0b0a09;--ib-fg:#efe9df;--ib-muted:#efe9dfa8;--ib-line:#efe9df21;--ib-stencil:#a293ff;--ib-paper:#ece6dc;--color-accent:#a293ff;--color-accent-hover:#b5a9ff;--color-accent-text:#a293ff;--color-accent-contrast:#0b0a09;--color-accent-soft:#a293ff1f;--color-glow:#2a2150;background:var(--ib-bg);color:var(--ib-fg)}.ib-page ::selection{background:var(--ib-stencil);color:var(--ib-bg)}.ib-page :focus-visible{outline:2px solid var(--ib-stencil);outline-offset:3px}.ib-page:after{content:"";z-index:60;pointer-events:none;opacity:.05;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");position:fixed;inset:0}.ib-grain{opacity:.08;mix-blend-mode:overlay;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='3' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>")}.ib-ghost{border:1px solid var(--ib-line);min-height:3rem;color:var(--ib-fg);border-radius:999px;justify-content:center;align-items:center;gap:.5rem;padding:0 1.4rem;font-size:.875rem;font-weight:700;transition:border-color .2s,background-color .2s;display:inline-flex}.ib-ghost:hover{background:#efe9df0a;border-color:#efe9df66}.ib-chip{border:1px solid var(--ib-line);min-height:3rem;color:var(--ib-muted);border-radius:999px;align-items:center;gap:.5rem;padding:0 1.1rem;font-size:.875rem;font-weight:700;transition:all .2s;display:inline-flex}.ib-chip:hover{color:var(--ib-fg);border-color:#efe9df59}.ib-chip-on{color:var(--ib-fg);border-color:var(--ib-stencil);background:color-mix(in srgb, var(--ib-stencil) 14%, transparent)}.ib-field{border:1px solid var(--ib-line);color:var(--ib-fg);background:#efe9df08;border-radius:1rem;padding:.85rem 1rem;font-size:1rem}.ib-field::placeholder{color:#efe9df73}.ib-field:focus{outline:2px solid var(--ib-stencil);outline-offset:1px;border-color:#0000}.ib-range{appearance:none;cursor:pointer;background:0 0}.ib-range::-webkit-slider-runnable-track{background:linear-gradient(90deg, var(--ib-stencil), var(--ib-fg));border-radius:2px;height:2px}.ib-range::-moz-range-track{background:linear-gradient(90deg, var(--ib-stencil), var(--ib-fg));height:2px}.ib-range::-webkit-slider-thumb{appearance:none;background:var(--ib-fg);border:6px solid var(--ib-bg);width:24px;height:24px;box-shadow:0 0 0 1px var(--ib-line);border-radius:999px;margin-top:-11px}.ib-range::-moz-range-thumb{background:var(--ib-fg);border:6px solid var(--ib-bg);border-radius:999px;width:14px;height:14px}.ib-ink-mask{-webkit-mask-image:url(/media/tattoo-ink-front.png);mask-image:url(/media/tattoo-ink-front.png);-webkit-mask-size:100% 300%;mask-size:100% 300%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:0 calc((.85 - .7 * var(--ink,1)) * 100%);-webkit-mask-position:0 calc((.85 - .7 * var(--ink,1)) * 100%);mask-position:0 calc((.85 - .7 * var(--ink,1)) * 100%)}.ib-needle{top:calc((1.4 * var(--ink,1) - .2) * 100%);opacity:calc(1 - abs(var(--ink,1) * 2 - 1) * 1.15);background:linear-gradient(90deg,#0000,#a293ffd9,#0000);box-shadow:0 0 18px 2px #a293ff59}@supports not (opacity:abs(1)){.ib-needle{display:none}}.ib-parallax{transform:translate3d(calc(var(--px,0) * -7px), calc(var(--py,0) * -7px), 0) scale(1.035);transition:transform .6s cubic-bezier(.22,1,.36,1)}@media (prefers-reduced-motion:no-preference){.ib-line-in{animation:.9s cubic-bezier(.22,1,.36,1) both ib-line-in;animation-delay:var(--d,0s)}@keyframes ib-line-in{0%{clip-path:inset(0 0 100%);transform:translateY(.35em)}to{clip-path:inset(0 0 -.2em);transform:none}}@supports (animation-timeline:view()){.ib-img-in{animation:linear both ib-img-in;animation-timeline:view();animation-range:entry entry 70%}@keyframes ib-img-in{0%{filter:blur(10px)saturate(.6);clip-path:inset(8% 0 0)}to{filter:none;clip-path:inset(0)}}}.ib-step-in{animation:.45s cubic-bezier(.22,1,.36,1) both ib-step-in}@keyframes ib-step-in{0%{filter:blur(4px);transform:translate(14px)}to{filter:none;transform:none}}::view-transition-group(*){animation-duration:.45s;animation-timing-function:cubic-bezier(.22,1,.36,1)}}@media (prefers-reduced-motion:reduce){.ib-parallax{transition:none;transform:none}}
