.nwr-opening:not([open]) { display: none; }
.nwr-opening[open],
.nwr-opening::backdrop {
    --nwr-opening-exit-time: .46s cubic-bezier(.35, .05, .3, 1) 3.59s both;
    animation: nwr-opening-exit var(--nwr-opening-exit-time);
}
.nwr-opening[open] {
    position: fixed;
    inset: 0;
    display: grid;
    place-items: center;
    box-sizing: border-box;
    width: 100%;
    max-width: none;
    height: 100%;
    max-height: none;
    margin: 0;
    padding: 1rem;
    border: 0;
    overflow: clip;
    background:
        radial-gradient(ellipse at 50% 41%, #82714555, transparent 53%),
        radial-gradient(ellipse at 50% 35%, #3f4b38, #222e25 64%, #17231c);
    color: #fff9e8;
    text-align: center;
    font-family: var(--nwr-sans, system-ui, sans-serif);
}
.nwr-opening::backdrop { background: #17231c; }
.nwr-opening-content {
    display: grid;
    justify-items: center;
    gap: clamp(.65rem, 2.6vh, 1.45rem);
}
.nwr-opening-emblem {
    position: relative;
    display: grid;
    place-items: center;
    width: clamp(5rem, 28vh, 11rem);
    aspect-ratio: 1;
    perspective: 900px;
    isolation: isolate;
}
.nwr-opening-emblem::before,
.nwr-opening-emblem::after {
    position: absolute;
    inset: 0;
    z-index: -1;
    border: 1px solid #ebc887;
    border-radius: 50%;
    box-shadow: 0 0 20px #f4cb7060, inset 0 0 16px #f4cb7038;
    content: "";
    opacity: 0;
    animation: nwr-opening-halo .95s ease-out .42s both;
}
.nwr-opening-emblem::after {
    animation-duration: 1.02s;
    animation-delay: .72s;
}
.nwr-opening-medallion {
    position: relative;
    display: grid;
    place-items: center;
    box-sizing: border-box;
    width: 100%;
    aspect-ratio: 1;
    border: 3px solid #e3bb76;
    border-radius: 50%;
    overflow: hidden;
    background: linear-gradient(145deg, #fff3c9, #d3a55d 42%, #885229);
    box-shadow: 0 4px 0 #936035, 0 8px 0 #624022, 0 13px 25px #121c15b0, 0 0 38px #eac78345, inset 0 0 0 4px #c99250;
    animation: nwr-opening-heartbeat 1.58s ease-in-out both;
}
.nwr-opening-medallion img {
    display: block;
    width: calc(100% - 9px);
    height: auto;
    border-radius: 50%;
}
.nwr-opening-medallion::after {
    position: absolute;
    inset: 0;
    background: linear-gradient(108deg, transparent 31%, #ffedc55e 43%, #fff8e8d6 50%, #ffe5ac4d 56%, transparent 69%);
    content: "";
    pointer-events: none;
    opacity: 0;
    animation: nwr-opening-glint .7s ease-out .7s both;
}
.nwr-opening-name { margin: 0; font: 400 clamp(1.55rem, 5vw, 2.25rem)/1.06 Georgia, serif; }
.nwr-opening-name span { display: block; margin-top: .38rem; color: #ecd5a5; font: 650 .62rem/1.2 system-ui,sans-serif; letter-spacing: .26em; text-transform: uppercase; }
.nwr-opening-slogan {
    display: grid;
    max-width: 100%;
    margin: 0;
    color: #f2d79e;
    font: italic 400 clamp(1rem, 5vw, 1.85rem)/1.2 Georgia, serif;
    text-align: start;
    text-shadow: 0 2px 12px #121c1599;
}
.nwr-opening-slogan > span { grid-area: 1 / 1; }
.nwr-opening-slogan[data-typing] [data-nwr-opening-phrase] { opacity: 0; }
.nwr-opening-slogan[data-typing] [data-nwr-opening-type]::after {
    display: inline-block;
    width: .055em;
    height: .83em;
    margin-left: .12em;
    background: currentColor;
    content: "";
    animation: nwr-opening-cursor .74s step-end infinite;
}
@keyframes nwr-opening-cursor { 50% { opacity: .25; } }
@media (max-height: 420px) {
    .nwr-opening-content { gap: .55rem; }
    .nwr-opening-emblem { width: clamp(4rem, 24vh, 7rem); }
    .nwr-opening-slogan { font-size: clamp(1rem, 4.4vh, 1.5rem); }
}
.nwr-opening-controls { display: flex; flex-wrap: wrap; justify-content: center; gap: .45rem; }
.nwr-opening-controls button,
.nwr-design .nwr-opening-footer {
    box-sizing: border-box;
    min-height: 44px;
    padding: .35rem .8rem;
    border: 1px solid #d9c196;
    border-radius: 999px;
    background: #fff5e2;
    color: #503537;
    font: 600 .82rem/1.2 system-ui,sans-serif;
    cursor: pointer;
}
.nwr-opening-controls button[aria-pressed="true"],
.nwr-design .nwr-opening-footer[aria-pressed="true"] { background: #e9d1a5; }
.nwr-opening-controls button:focus-visible { outline: 2px solid #fff9e8; outline-offset: 3px; }
.nwr-design .nwr-opening-footer { display: block; margin-top: .75rem; }
.nwr-design .nwr-opening-footer[hidden] { display: none; }
@keyframes nwr-opening-heartbeat {
    0% { transform: rotateX(15deg) rotateY(-28deg) scale(.77); opacity: .56; }
    18% { transform: rotateX(3deg) rotateY(-7deg) scale(.97); opacity: 1; }
    32% { transform: rotateX(0) rotateY(3deg) scale(1.095); }
    43% { transform: rotateX(0) rotateY(1deg) scale(.98); }
    52% { transform: rotateX(0) rotateY(-2deg) scale(1.065); }
    71%, 100% { transform: rotateX(0) rotateY(0) scale(1); }
}
@keyframes nwr-opening-halo {
    0% { transform: scale(.94); opacity: 0; }
    20% { opacity: .59; }
    100% { transform: scale(1.76); opacity: 0; }
}
@keyframes nwr-opening-glint {
    0% { transform: translateX(-94%); opacity: 0; }
    25%, 64% { opacity: .85; }
    100% { transform: translateX(94%); opacity: 0; }
}
@keyframes nwr-opening-exit { to { opacity: 0; } }
@media (prefers-reduced-motion: reduce) {
    .nwr-opening[open], .nwr-opening::backdrop, .nwr-opening-medallion,
    .nwr-opening-emblem::before, .nwr-opening-emblem::after, .nwr-opening-medallion::after,
    .nwr-opening-slogan[data-typing] [data-nwr-opening-type]::after { animation: none; }
}
