/* Curved panels adapted from the supplied Osmo reference. */
html.page-wipe-pending { background:#1f1f1f; }
html.page-wipe-pending::before { content:""; position:fixed; inset:0; z-index:9999; background:#1f1f1f; pointer-events:none; }
.page-wipe { position:fixed; inset:0; z-index:10000; overflow:hidden; pointer-events:none; visibility:hidden; }
.page-wipe.is-active { visibility:visible; pointer-events:auto; }
.page-wipe__panel { position:absolute; inset:0; background:var(--ink,#1f1f1f); color:var(--ink,#1f1f1f); transform:translateY(100%); }
.page-wipe__curve { position:absolute; left:0; width:100%; height:clamp(90px,15vw,260px); overflow:hidden; transform:scaleY(0); }
.page-wipe__curve::before { content:""; position:absolute; left:-12.5%; width:125%; height:500%; background:currentColor; border-radius:50%; }
.page-wipe__curve--top { bottom:calc(100% - 1px); transform-origin:bottom; }
.page-wipe__curve--bottom { top:calc(100% - 1px); transform-origin:top; }
.page-wipe__curve--bottom::before { bottom:0; }
.page-wipe__panel::after { content:""; position:absolute; inset:0; background:url('../assets/about/grain.svg') repeat; opacity:.13; pointer-events:none; }
.page-wipe__grid { position:absolute; inset:0 1.25rem; display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:1.25rem; }
.page-wipe__grid span { background-size:100% 982px; background-repeat:repeat-y; margin-right:-1px; }
.page-wipe__grid--mobile { display:none; }
.page-wipe__content { position:absolute; inset:0; color:var(--paper,#fafafa); }
.page-wipe__slot { position:absolute; top:52.14%; transform:translateY(-50%); overflow:hidden; }
.page-wipe__slot--name { left:1.25rem; }
.page-wipe__slot--number { right:1.25rem; }
.page-wipe__slot--logo { left:50%; width:228px; transform:translate(-50%,-50%); }
.page-wipe__label,.page-wipe__number { font-size:2.1875rem; line-height:1; letter-spacing:-.01em; }
.page-wipe__logo,.page-wipe__logo img { display:block; }
.page-wipe__reveal { display:block; opacity:0; transform:translateY(110%); }
.page-wipe.is-arriving .page-wipe__panel { transform:translateY(0); }
.page-wipe.is-arriving .page-wipe__reveal { opacity:1; transform:translateY(0); }
@media(max-width:800px) {
 .page-wipe__grid--desktop { display:none; }
 .page-wipe__grid--mobile { display:block; inset:0; }
 .page-wipe__grid--mobile span { position:absolute; top:0; bottom:0; width:13px; background-size:100% 5691px; }
 .page-wipe__grid--mobile span:nth-child(1) { left:12px; width:1px; }
 .page-wipe__grid--mobile span:nth-child(2) { right:12px; width:1px; }
 .page-wipe__grid--mobile span:nth-child(3) { left:calc(20% - 2.6px); }
 .page-wipe__grid--mobile span:nth-child(4) { left:calc(40% - 5.2px); }
 .page-wipe__grid--mobile span:nth-child(5) { left:calc(60% - 6.8px); }
 .page-wipe__grid--mobile span:nth-child(6) { left:calc(80% - 9.4px); }
 .page-wipe__slot--name { top:40px; left:50%; transform:translateX(-50%); }
 .page-wipe__slot--number { top:auto; bottom:41px; right:auto; left:50%; transform:translateX(-50%); }
 .page-wipe__slot--logo { top:50%; left:calc(50% + .5px); width:216px; }
 .page-wipe__label,.page-wipe__number { font-size:25px; line-height:1; letter-spacing:0; }
}
@media(prefers-reduced-motion:reduce) { .page-wipe { display:none; } }
