.oi-overlay{position:fixed;inset:0;z-index:2147483000;background:#ebe6dc;display:flex;align-items:center;justify-content:center;color:#384735;font-family:Georgia,serif}
.oi-overlay [hidden]{display:none!important}
.oi-stage{position:relative;max-width:100vw;max-height:100dvh}
.oi-stage video{display:block;width:100%;height:100%;object-fit:contain}
.oi-paper{position:absolute;transform:translate(-50%,-50%) rotate(var(--oi-angle,0deg));text-align:center;white-space:pre-wrap;line-height:1.35;overflow-wrap:anywhere;animation:oi-reveal 1.6s ease both;text-shadow:0 1px 1px #ffffff40}
.oi-welcome{position:absolute;inset:0;background:#f4f0e8ed;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:24px}
.oi-welcome h1{font:normal clamp(30px,6vw,54px)/1.2 Georgia,serif;color:#384735;margin:12px 0 32px}
.oi-welcome p{font-size:16px;letter-spacing:.07em}
.oi-actions{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}
.oi-overlay button,.oi-music{font:16px/1.3 Georgia,serif;border:1px solid #53664a;border-radius:5px;padding:13px 20px;background:#384735;color:#fff;cursor:pointer}
.oi-overlay button:focus-visible,.oi-music:focus-visible{outline:2px solid #53664a;outline-offset:3px;box-shadow:none}
.oi-overlay .oi-silent{background:transparent;color:#384735}
.oi-overlay .oi-skip{position:absolute;right:16px;top:16px;background:#f4f0e8ed;color:#384735;font-size:14px;padding:9px 12px}
.oi-overlay .oi-enter{position:absolute;bottom:max(24px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%)}
.oi-status{position:absolute;bottom:85px;left:10%;width:80%;text-align:center;background:#f4f0e8ed;font-size:15px}
.oi-status:empty{display:none}
.oi-music{position:fixed;bottom:18px;left:18px;z-index:99999;font-size:14px}
@keyframes oi-reveal{from{opacity:0;transform:translate(-50%,-45%) rotate(var(--oi-angle,0deg))}to{opacity:1;transform:translate(-50%,-50%) rotate(var(--oi-angle,0deg))}}
@media(prefers-reduced-motion:reduce){.oi-paper{animation:none}}

.oi-overlay{height:100vh;height:100dvh;box-sizing:border-box}.oi-welcome{box-sizing:border-box}.oi-stage{flex:none}.oi-overlay .oi-skip{top:max(16px,env(safe-area-inset-top));right:max(16px,env(safe-area-inset-right))}@media(max-width:767px){.oi-actions{flex-direction:column;width:min(100%,300px)}.oi-actions button{width:100%;min-height:46px}.oi-overlay .oi-skip{font-size:13px;padding:10px 12px}.oi-overlay .oi-enter{min-height:46px;max-width:calc(100% - 32px);white-space:nowrap}.oi-welcome p{font-size:14px}.oi-status{font-size:14px}}

/* Opening screen: cover the viewport independently of the video's aspect ratio. */
.oi-opening .oi-stage{position:absolute;inset:0;width:100%!important;height:100%!important;max-width:none;max-height:none}
.oi-opening .oi-stage video{width:100%;height:100%;object-fit:cover;object-position:center}
.oi-welcome{inset:0;width:100%;height:100%;min-width:0;padding:max(80px,calc(env(safe-area-inset-top) + 64px)) max(20px,env(safe-area-inset-right)) max(40px,calc(env(safe-area-inset-bottom) + 24px)) max(20px,env(safe-area-inset-left));background:rgba(244,240,232,.85);overflow:auto;overscroll-behavior:contain;justify-content:flex-start}
.oi-welcome-content{box-sizing:border-box;flex:none;width:min(100%,760px);min-width:0;margin:auto;text-align:center}
.oi-welcome h1{box-sizing:border-box;width:100%;max-width:100%;font-size:clamp(28px,min(6.5vw,9vh),64px);font-size:clamp(28px,min(6.5vw,9dvh),64px);line-height:1.12;letter-spacing:normal;overflow-wrap:anywhere;text-wrap:balance;margin:clamp(12px,3vh,24px) 0 clamp(22px,5vh,40px)}
.oi-welcome p{font-size:clamp(14px,2.6vw,19px);line-height:1.6;letter-spacing:.045em;max-width:100%;overflow-wrap:anywhere;text-wrap:balance;margin:0}
.oi-actions{max-width:100%;margin-inline:auto;align-items:stretch}
.oi-actions button{box-sizing:border-box;max-width:100%;min-height:48px;white-space:normal;overflow-wrap:anywhere;font-size:clamp(15px,2.3vw,18px)}
@media(max-width:767px){.oi-welcome-content{max-width:440px}.oi-welcome h1{font-size:clamp(28px,8.5vw,46px)}.oi-actions{width:min(100%,320px)}}
@media(max-height:480px) and (min-width:480px){.oi-welcome{padding-top:max(64px,calc(env(safe-area-inset-top) + 52px));padding-bottom:20px}.oi-welcome h1{font-size:clamp(26px,7vh,38px);margin:8px 0 16px}.oi-welcome p{font-size:14px}.oi-actions{flex-direction:row;width:auto}.oi-actions button{width:auto;min-height:44px;padding:10px 18px}}

.oi-paper.oi-typing{animation:none}

/* Cover keeps text anchored to the same coordinates on the cropped video. */
.oi-overlay{overflow:hidden}.oi-stage{max-width:none;max-height:none;flex-shrink:0}.oi-stage video{object-fit:cover}

.oi-music,.oi-overlay .oi-music{display:flex;align-items:center;justify-content:center;width:48px;height:48px;min-width:48px;min-height:48px;padding:0;border-radius:50%;background:#384735;color:#fff;border:1px solid #f4f0e880;box-shadow:0 2px 12px #0002;position:fixed;left:max(18px,env(safe-area-inset-left));bottom:max(18px,env(safe-area-inset-bottom));z-index:2147483001}
.oi-music[hidden]{display:none!important}
.oi-music svg{display:block;pointer-events:none}

/* Borderless buttons using the invitation palette. */
.oi-overlay button,.oi-music,.oi-overlay .oi-music,.oi-overlay .oi-skip{
 border:0!important;outline:0!important;box-shadow:none!important;
 background:var(--color-content-primary,#7D8972);color:#fff;
}
.oi-overlay button:hover,.oi-overlay button:focus-visible,.oi-music:hover,.oi-music:focus-visible,.oi-overlay .oi-music:hover,.oi-overlay .oi-music:focus-visible,.oi-overlay .oi-skip:hover,.oi-overlay .oi-skip:focus-visible{
 border:0!important;outline:0!important;box-shadow:none!important;
 background:var(--color-content-link-hover,#56644E);color:#fff;
}
