/*
 * Nur Khitan — "Cahaya Subuh" (dawn light, modern Islamic).
 * A dawn sky (deep indigo → violet → coral → warm amber) alternating with warm peach-cream light sections.
 * Ornaments are thin glowing lines of light (pointed-arch outlines, a crescent, eight-point star outlines),
 * soft light rays and a sun rising behind a dome-and-minaret skyline (inline SVG in sections/_defs).
 * Type: Outfit (headings, labels, text), Fraunces italic (accent words), Amiri (Arabic).
 * Colours from the variant: --inv-primary (violet), --inv-accent (amber light), --inv-coral (the dawn),
 * --inv-peach (soft light tint), --inv-background (warm cream), --inv-text, --inv-deep (the night).
 * All classes start with "nur-khitan-".
 */

:root {
    --inv-primary: #5a2a8c;
    --inv-accent: #ffb547;
    --inv-background: #fff3e6;
    --inv-text: #2a1b40;
    --inv-deep: #1b1452;
    --inv-coral: #ff6a5c;
    --inv-peach: #ffd9bf;
    --inv-radius: 18px;

    --nk-w: 460px;
    --nk-sans: 'Outfit', 'Segoe UI', system-ui, sans-serif;
    --nk-serif: 'Fraunces', Georgia, serif;
    --nk-arabic: 'Amiri', 'Traditional Arabic', 'Scheherazade New', serif;

    --nk-white: #fff8f1;
    --nk-light: color-mix(in srgb, var(--inv-accent) 55%, #fff);
    /* the dawn colour that stays readable as small text on cream */
    --nk-ink: color-mix(in srgb, var(--inv-coral) 50%, var(--inv-text));
    --nk-violet: color-mix(in srgb, var(--inv-primary) 82%, var(--inv-deep));
    --nk-sunrise: linear-gradient(100deg, var(--inv-accent), color-mix(in srgb, var(--inv-accent) 45%, var(--inv-coral)) 55%, var(--inv-coral));
    --nk-dawn-block: linear-gradient(160deg, var(--inv-primary) 0%, color-mix(in srgb, var(--inv-primary) 45%, var(--inv-coral)) 55%, var(--inv-accent) 100%);
    --nk-paper: color-mix(in srgb, #fff 70%, var(--inv-background));

    /* an eight-point star outline, used as a mask for the large watermark in light sections */
    --nk-star-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-52 -52 104 104'%3E%3Cpath fill='none' stroke='%23000' stroke-width='1.2' d='M-35.36-35.36h70.72v70.72h-70.72Z M0-50 50 0 0 50-50 0Z'/%3E%3Ccircle r='20' fill='none' stroke='%23000' stroke-width='.8'/%3E%3C/svg%3E");

    --nk-star-solid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-50 -50 100 100'%3E%3Cpolygon points='50,0 35.36,14.64 35.36,35.36 14.64,35.36 0,50 -14.64,35.36 -35.36,35.36 -35.36,14.64 -50,0 -35.36,-14.64 -35.36,-35.36 -14.64,-35.36 0,-50 14.64,-35.36 35.36,-35.36 35.36,-14.64'/%3E%3C/svg%3E");

    /* context tokens: light by default, redefined in the dawn sections */
    --nk-fg: var(--inv-text);
    --nk-muted: color-mix(in srgb, var(--inv-text) 82%, transparent);
    --nk-head: var(--inv-primary);
    --nk-em: var(--nk-ink);
    --nk-label: var(--nk-ink);
    --nk-line: var(--inv-coral);
}

*, *::before, *::after { box-sizing: border-box; }

html { background: var(--inv-deep); scroll-behavior: smooth; }

body.nur-khitan-body {
    margin: 0;
    background: var(--inv-deep);
    color: var(--inv-text);
    font: 300 1.06rem/1.7 var(--nk-sans);
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

img { max-width: 100%; }
p, figure, blockquote { margin: 0; }
h1, h2, h3 { margin: 0; font-weight: inherit; }
a { color: inherit; }

.nur-khitan-defs { position: absolute; width: 0; height: 0; overflow: hidden; }
.nur-khitan-icon { width: 1.15em; height: 1.15em; flex: none; }
.nur-khitan-arabic { font-family: var(--nk-arabic); direction: rtl; }

/* the dawn: dark context */
.nur-khitan-cover, .nur-khitan-section--dark {
    --nk-fg: var(--nk-white);
    --nk-muted: color-mix(in srgb, var(--nk-white) 84%, transparent);
    --nk-head: var(--nk-white);
    --nk-em: var(--nk-light);
    --nk-label: var(--nk-light);
    --nk-line: var(--inv-accent);
}

/* ---------- backdrop (wide screens) and the column ---------- */

.nur-khitan-backdrop {
    position: fixed; inset: 0; z-index: 0;
    background:
        radial-gradient(ellipse 60% 40% at 50% 105%, color-mix(in srgb, var(--inv-coral) 55%, transparent), transparent 70%),
        linear-gradient(180deg, var(--inv-deep), var(--nk-violet) 70%, color-mix(in srgb, var(--inv-primary) 60%, var(--inv-coral)));
}
.nur-khitan-page {
    position: relative; z-index: 1;
    width: min(100%, var(--nk-w)); min-height: 100vh; margin: 0 auto;
    background: var(--inv-background);
    overflow-x: clip;
}
@media (min-width: 520px) {
    .nur-khitan-page { box-shadow: 0 0 0 1px rgb(255 255 255 / .12), 0 30px 90px rgb(0 0 0 / .55); }
}
@media (max-width: 519px) {
    .nur-khitan-backdrop { display: none; }
}

.nur-khitan-preview {
    position: fixed; z-index: 60; top: 0; left: 0; right: 0;
    width: min(100%, var(--nk-w)); margin: 0 auto; padding: .35rem .75rem;
    background: var(--inv-accent); color: #23140a;
    font: 500 .72rem/1.3 var(--nk-sans); text-align: center; letter-spacing: .04em;
}

/* ---------- small pieces: heading, divider, glass, lead, pill, buttons ---------- */

.nur-khitan-heading { margin: 0 auto 2.4rem; }
.nur-khitan-heading__label {
    font: 500 .72rem/1.4 var(--nk-sans); letter-spacing: .32em; text-transform: uppercase; color: var(--nk-label);
}
.nur-khitan-heading__title {
    margin-top: .55rem;
    font: 300 clamp(2.15rem, 9.6vw, 2.6rem)/1.12 var(--nk-sans); letter-spacing: -.01em; color: var(--nk-head);
}
.nur-khitan-heading__title em, .nur-khitan-closing__thanks em {
    font: italic 400 1.04em/1 var(--nk-serif); letter-spacing: 0; color: var(--nk-em);
}
.nur-khitan-section--dark .nur-khitan-heading__title em { text-shadow: 0 0 22px color-mix(in srgb, var(--inv-accent) 55%, transparent); }
.nur-khitan-heading--start { text-align: left; }
.nur-khitan-heading--start .nur-khitan-divider { margin-left: -.4rem; }

.nur-khitan-divider { display: block; width: 11rem; max-width: 70%; height: auto; aspect-ratio: 200 / 24; margin: 1rem auto 0; overflow: visible; color: var(--nk-line); }
.nur-khitan-divider__line { fill: none; stroke: currentColor; stroke-width: 1.3; stroke-linecap: round; stroke-dasharray: 1; }
.nur-khitan-section--dark .nur-khitan-divider, .nur-khitan-cover .nur-khitan-divider { filter: drop-shadow(0 0 4px color-mix(in srgb, var(--inv-accent) 80%, transparent)); }

.nur-khitan-glass {
    position: relative; max-width: 25rem; margin: 0 auto; padding: 1.5rem 1.3rem;
    border-radius: 24px;
    background: linear-gradient(160deg, rgb(255 255 255 / .16), rgb(255 255 255 / .05));
    box-shadow: inset 0 0 0 1px rgb(255 255 255 / .2), inset 0 1px 0 rgb(255 255 255 / .28), 0 24px 50px -28px rgb(0 0 0 / .6);
    -webkit-backdrop-filter: blur(16px) saturate(1.25); backdrop-filter: blur(16px) saturate(1.25);
}

.nur-khitan-lead { max-width: 24rem; margin: -1rem auto 1.8rem; color: var(--nk-muted); }

.nur-khitan-amp { display: inline-block; margin: 0 .2em; font: italic 300 .8em/1 var(--nk-serif); color: var(--nk-em); }

.nur-khitan-pill {
    display: inline-flex; align-items: center; gap: .4rem; margin-top: .8rem; padding: .45rem 1rem; min-height: 2.75rem;
    border-radius: 999px; text-decoration: none; font: 400 .9rem/1.2 var(--nk-sans);
    color: var(--inv-primary); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--inv-primary) 35%, transparent);
    background: rgb(255 255 255 / .6);
}
.nur-khitan-pill:focus-visible { outline: 2px solid var(--inv-coral); outline-offset: 2px; }

.inv-button {
    min-height: 2.9rem; padding: .75rem 1.5rem;
    background: var(--inv-primary); color: #fff;
    font: 500 .88rem/1.2 var(--nk-sans); letter-spacing: .06em;
    box-shadow: 0 12px 24px -14px color-mix(in srgb, var(--inv-primary) 80%, transparent);
}
.inv-button--outline { background: transparent; color: var(--inv-primary); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--inv-primary) 55%, transparent); }
.inv-button:focus-visible { outline: 2px solid var(--inv-coral); outline-offset: 3px; }
:is(.nur-khitan-section--dark, .nur-khitan-cover) .inv-button:not(.inv-button--outline) {
    background: var(--nk-sunrise); color: #2a1206;
    box-shadow: 0 0 24px -6px color-mix(in srgb, var(--inv-accent) 85%, transparent), 0 12px 24px -14px rgb(0 0 0 / .6);
}
.nur-khitan-section--dark .inv-button--outline { color: var(--nk-white); box-shadow: inset 0 0 0 1px rgb(255 255 255 / .45); }

/* soft light: rays falling from the top, and coloured glows in a corner (all static) */
.nur-khitan-rays {
    position: absolute; left: -20%; right: -20%; top: 0; height: 32rem; z-index: -1; pointer-events: none;
    background: repeating-conic-gradient(from 168deg at 50% -6%, color-mix(in srgb, var(--inv-accent) 22%, transparent) 0deg 2.2deg, transparent 2.2deg 7deg);
    -webkit-mask: radial-gradient(ellipse 50% 100% at 50% 0, #000, transparent 85%);
    mask: radial-gradient(ellipse 50% 100% at 50% 0, #000, transparent 85%);
    opacity: .55;
}
.nur-khitan-glow { position: absolute; z-index: -1; width: 22rem; aspect-ratio: 1; border-radius: 50%; pointer-events: none; filter: blur(10px); }
.nur-khitan-glow--tl { left: -9rem; top: -6rem; background: radial-gradient(circle, color-mix(in srgb, var(--inv-coral) 38%, transparent), transparent 65%); }
.nur-khitan-glow--br { right: -9rem; bottom: -5rem; background: radial-gradient(circle, color-mix(in srgb, var(--inv-accent) 30%, transparent), transparent 65%); }

/* ---------- cover: the child full-screen like a film poster ---------- */

.nur-khitan-cover {
    position: fixed; inset: 0; z-index: 50; isolation: isolate;
    width: min(100%, var(--nk-w)); margin: 0 auto;
    overflow: hidden auto; overscroll-behavior: contain;
    background:
        radial-gradient(ellipse 80% 30% at 50% 100%, color-mix(in srgb, var(--inv-coral) 45%, transparent), transparent 75%),
        linear-gradient(180deg, var(--inv-deep) 0%, var(--inv-deep) 74%, color-mix(in srgb, var(--inv-deep) 70%, var(--inv-primary)));
    color: var(--nk-fg);
}
.nur-khitan-cover__media { position: absolute; top: 0; left: 0; right: 0; height: 68svh; z-index: -2; overflow: hidden; }
.nur-khitan-cover__photo { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 18%; }
/* the photo keeps its natural colours; only the top (behind the crescent) is tinted and the lower part fades into the night under the text */
.nur-khitan-cover__media::after {
    content: ''; position: absolute; inset: 0; z-index: 2;
    background:
        linear-gradient(180deg, color-mix(in srgb, var(--inv-deep) 72%, transparent) 0%, color-mix(in srgb, var(--inv-primary) 30%, transparent) 9%, transparent 17%, transparent 58%,
            color-mix(in srgb, var(--inv-deep) 45%, transparent) 70%, color-mix(in srgb, var(--inv-deep) 88%, transparent) 84%, var(--inv-deep) 96%);
}
/* without a photo: a dawn sky and the child's initial glowing inside the arch */
.nur-khitan-cover:not(.nur-khitan-cover--photo) .nur-khitan-cover__media {
    background:
        radial-gradient(ellipse 70% 45% at 50% 82%, color-mix(in srgb, var(--inv-coral) 70%, transparent), transparent 70%),
        linear-gradient(180deg, var(--inv-deep), var(--inv-primary) 60%, color-mix(in srgb, var(--inv-primary) 50%, var(--inv-coral)));
}
.nur-khitan-cover__initial {
    position: absolute; z-index: 3; left: 50%; top: 34%; translate: -50% -50%;
    font: italic 300 min(46vw, 13rem)/1 var(--nk-serif); color: var(--nk-light);
    text-shadow: 0 0 40px color-mix(in srgb, var(--inv-accent) 70%, transparent);
    opacity: .9;
}

.nur-khitan-cover__light { position: absolute; top: 0; left: 0; right: 0; height: 80svh; z-index: -1; pointer-events: none; }
.nur-khitan-cover__rays {
    position: absolute; inset: 0 -30% 30%;
    background: repeating-conic-gradient(from 160deg at 50% -4%, rgb(255 236 200 / .16) 0deg 2.4deg, transparent 2.4deg 8deg);
    -webkit-mask: radial-gradient(ellipse 50% 100% at 50% 0, #000, transparent 80%);
    mask: radial-gradient(ellipse 50% 100% at 50% 0, #000, transparent 80%);
    mix-blend-mode: screen;
}
.nur-khitan-cover__arch {
    position: absolute; left: 14px; right: 14px; top: 3.4svh; width: calc(100% - 28px); height: 72svh; overflow: visible;
    fill: none;
    -webkit-mask: linear-gradient(180deg, #000 70%, transparent 98%); mask: linear-gradient(180deg, #000 70%, transparent 98%);
}
.nur-khitan-cover__arch-line {
    vector-effect: non-scaling-stroke; stroke: var(--inv-accent); stroke-width: 1.8;
    filter: drop-shadow(0 0 1px color-mix(in srgb, var(--inv-deep) 70%, transparent)) drop-shadow(0 0 6px color-mix(in srgb, var(--inv-accent) 90%, transparent)) drop-shadow(0 0 14px color-mix(in srgb, var(--inv-coral) 60%, transparent));
}
.nur-khitan-cover__arch-line--inner { stroke: var(--nk-white); stroke-width: .8; opacity: .7; filter: drop-shadow(0 0 1px color-mix(in srgb, var(--inv-deep) 60%, transparent)); }
.nur-khitan-cover__moon {
    position: absolute; left: 50%; top: calc(3.4svh - .2rem); width: 1.9rem; height: auto; aspect-ratio: 1; translate: -50% -55%;
    color: var(--nk-light); overflow: visible;
    filter: drop-shadow(0 0 6px var(--inv-accent)) drop-shadow(0 0 16px color-mix(in srgb, var(--inv-coral) 70%, transparent));
}

.nur-khitan-cover__inner {
    position: relative; min-height: 100svh;
    display: flex; flex-direction: column; justify-content: flex-end; align-items: center;
    padding: 6svh 1.4rem calc(2.4rem + env(safe-area-inset-bottom));
    text-align: center;
}
.nur-khitan-cover__text { position: relative; width: 100%; display: flex; flex-direction: column; align-items: center; gap: 1.2svh; }

/* the sun rising behind the skyline, sitting just above the name */
.nur-khitan-cover__horizon {
    position: absolute; left: 50%; bottom: calc(100% - 3.3rem); z-index: -1; width: calc(100% + 2.8rem); height: 6.4rem; translate: -50% 0;
    overflow: hidden; pointer-events: none;
    -webkit-mask: linear-gradient(180deg, transparent, #000 45%, #000 62%, transparent); mask: linear-gradient(180deg, transparent, #000 45%, #000 62%, transparent);
}
.nur-khitan-cover__sun {
    position: absolute; left: 50%; bottom: -3.4rem; width: 9.5rem; aspect-ratio: 1; translate: -50% 0; border-radius: 50%;
    background: radial-gradient(circle, #fffaf0 0%, color-mix(in srgb, var(--inv-accent) 75%, #fff) 18%, color-mix(in srgb, var(--inv-accent) 80%, transparent) 34%, color-mix(in srgb, var(--inv-coral) 45%, transparent) 52%, transparent 70%);
    opacity: .55;
}
.nur-khitan-cover__skyline { position: absolute; left: 0; right: 0; bottom: 0; width: 100%; height: 2.6rem; color: color-mix(in srgb, var(--inv-primary) 70%, var(--inv-coral)); opacity: .75; }

.nur-khitan-cover__kicker {
    font: 500 .74rem/1.4 var(--nk-sans); letter-spacing: .38em; text-transform: uppercase; color: var(--nk-light);
    text-shadow: 0 1px 10px rgb(0 0 0 / .45);
}
.nur-khitan-cover__names {
    display: flex; flex-wrap: wrap; justify-content: center; align-items: baseline; column-gap: .1em;
    font: 300 clamp(3rem, 16vw, 4.3rem)/1.02 var(--nk-sans); letter-spacing: -.01em;
    filter: drop-shadow(0 0 18px color-mix(in srgb, var(--inv-accent) 55%, transparent)) drop-shadow(0 2px 10px rgb(0 0 0 / .35));
}
.nur-khitan-cover__name {
    background: linear-gradient(180deg, #fff 20%, color-mix(in srgb, var(--inv-accent) 40%, #fff) 60%, var(--inv-accent) 100%);
    -webkit-background-clip: text; background-clip: text; color: transparent;
    overflow-wrap: anywhere;
}
.nur-khitan-cover__names:has(.nur-khitan-amp) { font-size: clamp(2.4rem, 12vw, 3.2rem); }
.nur-khitan-cover .nur-khitan-amp { color: var(--nk-light); }
.nur-khitan-cover__date { font: 400 .8rem/1.4 var(--nk-sans); letter-spacing: .26em; text-transform: uppercase; color: var(--nk-white); }
.nur-khitan-cover__quote { max-width: 21rem; font: italic 300 1rem/1.45 var(--nk-serif); color: var(--nk-muted); }
.nur-khitan-cover__guest {
    min-width: 13rem; max-width: 21rem; margin-top: .4svh; padding: .5rem 1.4rem .6rem; border-radius: 18px;
    background: rgb(255 255 255 / .1); box-shadow: inset 0 0 0 1px rgb(255 255 255 / .22);
    -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
}
.nur-khitan-cover__guest-label { font: 500 .64rem/1.4 var(--nk-sans); letter-spacing: .28em; text-transform: uppercase; color: var(--nk-light); }
.nur-khitan-cover__guest-name { margin-top: .1rem; font: 400 1.18rem/1.3 var(--nk-sans); color: var(--nk-white); overflow-wrap: anywhere; }
.nur-khitan-open { flex: none; margin-top: .4svh; padding: .85rem 1.9rem; font-size: .95rem; gap: .55rem; }
.nur-khitan-open .nur-khitan-icon { width: 1.3em; height: 1.3em; }

/* opening moment (≤ 2.5 s): the photo fades in with a slight zoom, the arch line draws, the sun rises */
html.inv-anim .nur-khitan-cover__media { animation: nk-photo-in 1.8s cubic-bezier(.2, .7, .2, 1) both; }
html.inv-anim .nur-khitan-cover__arch { animation: nk-rise-line 1.9s cubic-bezier(.45, 0, .25, 1) .3s both; }
@keyframes nk-rise-line { from { clip-path: inset(100% -5% -5% -5%); } to { clip-path: inset(-5% -5% -5% -5%); } }
html.inv-anim .nur-khitan-cover__moon { animation: nk-glow-in 1s ease-out 1.4s both; }
html.inv-anim .nur-khitan-cover__sun { animation: nk-sunrise 2s cubic-bezier(.2, .7, .2, 1) .2s both; }
html.inv-anim .nur-khitan-cover__rays { animation: nk-fade-in 2s ease-out .3s both; }
@keyframes nk-photo-in { from { opacity: 0; transform: scale(1.06); } to { opacity: 1; transform: none; } }
@keyframes nk-draw { from { stroke-dashoffset: 1; } to { stroke-dashoffset: 0; } }
@keyframes nk-glow-in { from { opacity: 0; transform: scale(.6); } to { opacity: 1; transform: none; } }
@keyframes nk-sunrise { from { opacity: 0; transform: translateY(2.6rem); } to { opacity: .55; transform: none; } }
@keyframes nk-fade-in { from { opacity: 0; } to { opacity: 1; } }

/* leaving: the cover brightens a little and fades */
.nur-khitan-cover--leave { transition: opacity .6s ease, filter .6s ease; }
.nur-khitan-cover--gone { opacity: 0; filter: brightness(1.35); }

@media (max-height: 760px) {
    .nur-khitan-cover__text { gap: 1svh; }
    .nur-khitan-cover__names { font-size: clamp(2.8rem, 14.5vw, 3.6rem); }
    .nur-khitan-cover__quote { font-size: .95rem; line-height: 1.38; }
}
@media (max-height: 660px) {
    .nur-khitan-cover__inner { padding-bottom: calc(2.1rem + env(safe-area-inset-bottom)); }
    .nur-khitan-cover__text { gap: .8svh; }
    .nur-khitan-cover__kicker { font-size: .66rem; }
    .nur-khitan-cover__names { font-size: clamp(2.5rem, 13vw, 3rem); }
    .nur-khitan-cover__date { font-size: .72rem; }
    .nur-khitan-cover__quote { font-size: .88rem; line-height: 1.32; max-width: 20rem; }
    .nur-khitan-cover__guest { padding: .35rem 1.2rem .45rem; }
    .nur-khitan-cover__guest-name { font-size: 1.05rem; }
    .nur-khitan-open { padding: .7rem 1.6rem; min-height: 2.75rem; }
    .nur-khitan-cover__horizon { height: 4rem; }
    .nur-khitan-cover__skyline { height: 2.8rem; }
}
@media (max-height: 590px) {
    .nur-khitan-cover__horizon { display: none; }
    .nur-khitan-cover__quote { font-size: .84rem; }
}

/* ---------- a photo in a pointed arch (child, story) ---------- */

.nur-khitan-arch { position: relative; isolation: isolate; aspect-ratio: 3 / 4; margin: 0 auto; }
.nur-khitan-arch__window {
    position: absolute; inset: 0; overflow: hidden;
    border-radius: 50% 50% 18px 18px / 30% 30% 18px 18px;
    background: var(--inv-deep);
    box-shadow: 0 26px 40px -24px color-mix(in srgb, var(--inv-deep) 80%, transparent);
}
.nur-khitan-arch__photo { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 22%; }
.nur-khitan-arch__block {
    position: absolute; inset: 9% 12% -6% -9%; z-index: -1;
    border-radius: 50% 50% 18px 18px / 30% 30% 18px 18px;
    background: var(--nk-dawn-block); opacity: .9;
}
.nur-khitan-arch__line {
    position: absolute; z-index: -1; inset: -5% -6% 7% 8%; width: 98%; height: 98%; overflow: visible; fill: none; pointer-events: none;
}
.nur-khitan-arch__line path { vector-effect: non-scaling-stroke; stroke: var(--inv-coral); stroke-width: 1.4; }

/* a small dawn: the fallback for missing photos */
.nur-khitan-dawn {
    position: absolute; inset: 0; overflow: hidden;
    background:
        radial-gradient(ellipse 80% 45% at 50% 88%, color-mix(in srgb, var(--inv-coral) 75%, transparent), transparent 70%),
        linear-gradient(180deg, var(--inv-deep), var(--inv-primary) 62%, color-mix(in srgb, var(--inv-primary) 45%, var(--inv-coral)));
}
.nur-khitan-dawn__sun {
    position: absolute; left: 50%; bottom: -14%; width: 64%; aspect-ratio: 1; translate: -50% 0; border-radius: 50%;
    background: radial-gradient(circle, #fffaf0, color-mix(in srgb, var(--inv-accent) 70%, #fff) 30%, var(--inv-accent) 52%, color-mix(in srgb, var(--inv-coral) 70%, transparent) 64%, transparent 72%);
}
.nur-khitan-dawn__skyline { position: absolute; left: 0; right: 0; bottom: 0; width: 100%; height: 30%; color: var(--inv-deep); }
.nur-khitan-dawn__initial {
    position: absolute; left: 50%; top: 38%; translate: -50% -50%;
    font: italic 300 clamp(3rem, 30cqw, 7rem)/1 var(--nk-serif); color: var(--nk-light);
    text-shadow: 0 0 30px color-mix(in srgb, var(--inv-accent) 70%, transparent);
}
.nur-khitan-arch { container-type: inline-size; }
.nur-khitan-arch .nur-khitan-dawn__initial { font-size: 42cqw; }

/* ---------- sections ---------- */

.nur-khitan-section {
    position: relative; isolation: isolate;
    padding: 5rem 1.5rem;
    text-align: center; color: var(--nk-fg);
    background:
        radial-gradient(ellipse 75% 18rem at 100% 0, color-mix(in srgb, var(--inv-peach) 85%, transparent), transparent 75%),
        radial-gradient(ellipse 60% 14rem at 0 100%, color-mix(in srgb, var(--inv-peach) 55%, transparent), transparent 75%),
        var(--inv-background);
}
/* light sections: a large eight-point star outline as a faint watermark in a corner */
.nur-khitan-section:not(.nur-khitan-section--dark)::before {
    content: ''; position: absolute; z-index: -1; pointer-events: none;
    top: -3rem; right: -5rem; width: 17rem; aspect-ratio: 1;
    background: var(--inv-coral); opacity: .14;
    -webkit-mask: var(--nk-star-mask) center / contain no-repeat; mask: var(--nk-star-mask) center / contain no-repeat;
}
.nur-khitan-section:not(.nur-khitan-section--dark):nth-child(even)::before { right: auto; left: -5rem; top: auto; bottom: -3rem; }
.nur-khitan-section--tint {
    background:
        radial-gradient(ellipse 75% 16rem at 50% 0, rgb(255 255 255 / .55), transparent 75%),
        color-mix(in srgb, var(--inv-peach) 55%, var(--inv-background));
}
.nur-khitan-section--dark {
    background:
        linear-gradient(180deg, var(--inv-deep) 0%, var(--nk-violet) 62%, color-mix(in srgb, var(--inv-primary) 72%, var(--inv-coral)) 100%);
}
/* a thin horizon of light where a dawn section meets a light one */
.nur-khitan-section--dark::after {
    content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 2px; pointer-events: none;
    background: linear-gradient(90deg, transparent, var(--inv-accent) 30%, #fff8e8 50%, var(--inv-accent) 70%, transparent);
    box-shadow: 0 0 14px 1px color-mix(in srgb, var(--inv-accent) 70%, transparent);
}
.nur-khitan-section--dark:has(+ .nur-khitan-section--dark)::after { content: none; }
.nur-khitan-section--dark:has(+ .nur-khitan-section--dark) { background: linear-gradient(180deg, var(--inv-deep), var(--nk-violet) 70%, var(--inv-deep)); }

/* a client photo under a strong dawn gradient (opening, countdown, wishes) */
.nur-khitan-bgphoto { position: absolute; inset: 0; z-index: -2; overflow: hidden; }
.nur-khitan-bgphoto img { display: block; width: 100%; height: calc(100% + 80px); margin-top: -40px; object-fit: cover; object-position: center 35%; opacity: .75; --inv-parallax: 40px; }
.nur-khitan-bgphoto::after {
    content: ''; position: absolute; inset: 0;
    background: linear-gradient(180deg, color-mix(in srgb, var(--inv-deep) 92%, transparent) 0%, color-mix(in srgb, var(--nk-violet) 78%, transparent) 55%, color-mix(in srgb, var(--inv-primary) 78%, var(--inv-coral)) 100%);
    opacity: .86;
}

/* ---------- opening ---------- */

.nur-khitan-opening { padding-top: 6rem; padding-bottom: 5rem; overflow-x: clip; }
.nur-khitan-opening__moon {
    display: block; width: 2.6rem; height: auto; aspect-ratio: 1; margin: 0 auto 1.4rem; overflow: visible;
    color: var(--nk-light); filter: drop-shadow(0 0 6px var(--inv-accent)) drop-shadow(0 0 18px color-mix(in srgb, var(--inv-coral) 60%, transparent));
}
.nur-khitan-opening__basmalah {
    font-size: clamp(1.9rem, 8.6vw, 2.3rem); line-height: 1.9; color: var(--nk-light);
    text-shadow: 0 0 24px color-mix(in srgb, var(--inv-accent) 65%, transparent);
}
.nur-khitan-opening__greeting { margin-top: .6rem; font: italic 400 1.22rem/1.5 var(--nk-serif); color: var(--nk-white); }
.nur-khitan-opening .nur-khitan-divider { margin: 1.3rem auto 1.8rem; }
.nur-khitan-opening__message { font-size: 1.04rem; line-height: 1.75; color: var(--nk-white); }

/* ---------- child ---------- */

.nur-khitan-kids { display: grid; gap: 3rem 1.2rem; justify-items: center; align-items: start; }
.nur-khitan-kids--2, .nur-khitan-kids--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.nur-khitan-kids--3 .nur-khitan-kid:last-child { grid-column: 1 / -1; width: calc(50% - .6rem); }
.nur-khitan-kid { width: 100%; display: flex; flex-direction: column; align-items: center; }
.nur-khitan-kids--1 .nur-khitan-kid__arch { width: min(74%, 290px); }
.nur-khitan-kid__arch { width: 86%; margin-bottom: .8rem; }
.nur-khitan-kid__nick {
    margin-top: 1.4rem;
    font: italic 400 clamp(3rem, 15vw, 3.8rem)/1 var(--nk-serif);
    background: linear-gradient(100deg, var(--inv-primary), color-mix(in srgb, var(--inv-primary) 40%, var(--inv-coral)) 60%, var(--inv-coral));
    -webkit-background-clip: text; background-clip: text; color: transparent;
    padding: 0 .1em .08em;
}
.nur-khitan-kid__name { margin-top: .5rem; font: 400 1.12rem/1.4 var(--nk-sans); color: var(--inv-text); }
.nur-khitan-kid__order { margin-top: .4rem; font: 500 .74rem/1.4 var(--nk-sans); letter-spacing: .24em; text-transform: uppercase; color: var(--nk-ink); }
.nur-khitan-kid__born { margin-top: .1rem; font-size: .98rem; color: var(--nk-muted); }
.nur-khitan-kids--2 .nur-khitan-kid__nick, .nur-khitan-kids--3 .nur-khitan-kid__nick { font-size: 2.3rem; }
.nur-khitan-kids--2 .nur-khitan-kid__name, .nur-khitan-kids--3 .nur-khitan-kid__name { font-size: .95rem; }
.nur-khitan-kids--2 .nur-khitan-pill, .nur-khitan-kids--3 .nur-khitan-pill { font-size: .76rem; padding: .35rem .7rem; max-width: 100%; }
.nur-khitan-pill span { overflow-wrap: anywhere; }

/* the parents on a full-width dawn band */
.nur-khitan-parents {
    position: relative; overflow: hidden; margin: 3rem -1.5rem -5rem; padding: 2.4rem 1.5rem 2.6rem;
    background:
        radial-gradient(ellipse 60% 70% at 50% 120%, color-mix(in srgb, var(--inv-coral) 55%, transparent), transparent 70%),
        linear-gradient(180deg, var(--inv-deep), var(--nk-violet));
    color: var(--nk-white);
}
.nur-khitan-parents::before {
    content: ''; position: absolute; left: 0; right: 0; top: 0; height: 2px;
    background: linear-gradient(90deg, transparent, var(--inv-accent) 30%, #fff8e8 50%, var(--inv-accent) 70%, transparent);
    box-shadow: 0 0 14px 1px color-mix(in srgb, var(--inv-accent) 70%, transparent);
}
.nur-khitan-parents__label { font: 500 .72rem/1.4 var(--nk-sans); letter-spacing: .32em; text-transform: uppercase; color: var(--nk-light); }
.nur-khitan-parents__names { display: grid; justify-items: center; gap: .3rem; margin-top: .6rem; font: 300 1.35rem/1.35 var(--nk-sans); }
.nur-khitan-parents__star { width: .7rem; height: .7rem; color: var(--inv-accent); filter: drop-shadow(0 0 6px var(--inv-accent)); }
.nur-khitan-parents__address { display: flex; justify-content: center; gap: .45rem; margin: 1.1rem auto 0; max-width: 21rem; font-size: .98rem; line-height: 1.55; color: color-mix(in srgb, var(--nk-white) 86%, transparent); }
.nur-khitan-parents__address .nur-khitan-icon { margin-top: .25rem; color: var(--nk-light); }

/* ---------- message: a letter hung on a line of light ---------- */

.nur-khitan-message { overflow: hidden; }
.nur-khitan-letter { position: relative; max-width: 24rem; margin: 0 auto; padding: .4rem 0 .2rem 1.6rem; text-align: left; }
.nur-khitan-letter::before {
    content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 2px; border-radius: 2px;
    background: linear-gradient(180deg, transparent, var(--inv-accent) 18%, #fff7e6 50%, var(--inv-coral) 85%, transparent);
    box-shadow: 0 0 12px 1px color-mix(in srgb, var(--inv-accent) 70%, transparent);
}
.nur-khitan-letter__mark {
    position: absolute; left: 1rem; top: -2.6rem; font: italic 400 6rem/1 var(--nk-serif); color: var(--inv-accent); opacity: .5;
}
.nur-khitan-letter__text { position: relative; margin: 0; font: italic 300 1.32rem/1.6 var(--nk-serif); color: var(--nk-white); }
.nur-khitan-letter__from { margin-top: 1.3rem; font: 500 .76rem/1.4 var(--nk-sans); letter-spacing: .28em; text-transform: uppercase; color: var(--nk-light); }

/* ---------- events ---------- */

.nur-khitan-events__list { display: grid; gap: 2.8rem; max-width: 25rem; margin: 0 auto; }
.nur-khitan-event {
    position: relative; border-radius: 26px; overflow: hidden; text-align: left;
    background: #fff; box-shadow: 0 30px 50px -34px color-mix(in srgb, var(--inv-deep) 70%, transparent), 0 0 0 1px color-mix(in srgb, var(--inv-primary) 8%, transparent);
}
.nur-khitan-event__media { position: relative; aspect-ratio: 4 / 3; overflow: hidden; border-radius: 50% 50% 0 0 / 22% 22% 0 0; margin: .7rem .7rem 0; }
.nur-khitan-event__media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.nur-khitan-event__media::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 50%, color-mix(in srgb, var(--inv-deep) 70%, transparent)); }
.nur-khitan-event__num {
    position: absolute; right: .9rem; bottom: .4rem; z-index: 1;
    font: 200 4.2rem/1 var(--nk-sans); color: transparent; -webkit-text-stroke: 1.2px rgb(255 255 255 / .85);
}
.nur-khitan-event__date {
    position: absolute; left: .9rem; bottom: .9rem; z-index: 1; display: grid; justify-items: center; min-width: 4.4rem;
    padding: .5rem .7rem .55rem; border-radius: 16px; background: var(--nk-sunrise); color: #2a1206;
    box-shadow: 0 0 22px -4px color-mix(in srgb, var(--inv-accent) 80%, transparent);
}
.nur-khitan-event__date b { font: 300 2.1rem/1 var(--nk-sans); }
.nur-khitan-event__date small { font: 500 .66rem/1.3 var(--nk-sans); letter-spacing: .14em; text-transform: uppercase; }
.nur-khitan-event__body { padding: 1.3rem 1.3rem 1.5rem; }
.nur-khitan-event__name { font: 300 1.8rem/1.2 var(--nk-sans); color: var(--inv-primary); }
.nur-khitan-event__rows { list-style: none; margin: 1rem 0 0; padding: 0; display: grid; gap: .7rem; }
.nur-khitan-event__rows li { display: grid; grid-template-columns: 2.2rem minmax(0, 1fr); gap: .75rem; align-items: start; font-size: 1rem; line-height: 1.5; color: var(--inv-text); font-weight: 400; }
.nur-khitan-event__rows .nur-khitan-icon {
    width: 2.2rem; height: 2.2rem; padding: .48rem; border-radius: 50%;
    background: color-mix(in srgb, var(--inv-peach) 65%, #fff); color: var(--nk-ink);
}
.nur-khitan-event__rows li > span { padding-top: .3rem; }
.nur-khitan-event__venue { display: block; font-weight: 500; }
.nur-khitan-event__address { display: block; color: var(--nk-muted); font-weight: 300; }
.nur-khitan-event__maps { display: grid; gap: .8rem; margin-top: 1.2rem; }
.nur-khitan-event__maps .inv-button { justify-self: start; }
.nur-khitan-event .inv-maps__frame { height: 190px; margin: 0; border-radius: 16px; }

/* ---------- countdown ---------- */

.nur-khitan-count .inv-countdown { gap: .55rem; flex-wrap: nowrap; }
.nur-khitan-count .inv-countdown__item {
    flex: 1 1 0; min-width: 0; max-width: 5.4rem; padding: .95rem .2rem .8rem; border-radius: 20px;
    background: linear-gradient(160deg, rgb(255 255 255 / .18), rgb(255 255 255 / .05));
    box-shadow: inset 0 0 0 1px rgb(255 255 255 / .22), inset 0 1px 0 rgb(255 255 255 / .3);
    -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
}
.nur-khitan-count .inv-countdown__value { font: 200 2.4rem/1 var(--nk-sans); color: #fff; text-shadow: 0 0 18px color-mix(in srgb, var(--inv-accent) 80%, transparent); }
.nur-khitan-count .inv-countdown__label { margin-top: .4rem; font: 500 .6rem/1 var(--nk-sans); letter-spacing: .2em; text-transform: uppercase; color: var(--nk-light); opacity: 1; }
.nur-khitan-count .inv-countdown__actions { margin-top: 1.8rem; gap: .6rem; }
.nur-khitan-count .inv-countdown__actions .inv-button { font-size: .8rem; padding: .7rem 1.1rem; }
.nur-khitan-count .inv-countdown__done { color: var(--nk-white); font-size: 1.2rem; }
.nur-khitan-cal.inv-cal {
    --inv-cal-bg: rgb(255 255 255 / .1); --inv-cal-text: var(--nk-white); --inv-cal-mark: var(--inv-accent);
    max-width: 21rem; margin: 2.2rem auto 0; padding: 1.2rem 1.1rem 1rem; border-radius: 22px;
    background: linear-gradient(160deg, rgb(255 255 255 / .14), rgb(255 255 255 / .04));
    box-shadow: inset 0 0 0 1px rgb(255 255 255 / .2);
    -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
    color: var(--nk-white); font-family: var(--nk-sans);
}
.nur-khitan-cal .inv-cal__month { font: italic 400 1.6rem/1.2 var(--nk-serif); color: var(--nk-light); }
.nur-khitan-cal .inv-cal__year { font-family: var(--nk-sans); font-weight: 500; }
.nur-khitan-cal .inv-cal__day { font-weight: 400; }
.nur-khitan-cal .inv-cal__day--mark { color: #fff; }

/* ---------- prayer: an arch drawn in light ---------- */

.nur-khitan-mihrab { position: relative; max-width: 24rem; margin: 0 auto; padding: 5.2rem 1.6rem 2.6rem; isolation: isolate; }
.nur-khitan-mihrab__line { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; fill: none; pointer-events: none; }
.nur-khitan-mihrab__line path { vector-effect: non-scaling-stroke; stroke: url(#nk-g-line); stroke-width: 1.6; }
.nur-khitan-mihrab__glow {
    position: absolute; inset: 0; z-index: -1;
    border-radius: 50% 50% 0 0 / 14% 14% 0 0;
    background:
        radial-gradient(ellipse 80% 40% at 50% 100%, color-mix(in srgb, var(--inv-accent) 30%, transparent), transparent 75%),
        linear-gradient(180deg, rgb(255 255 255 / .75), rgb(255 255 255 / .35));
}
.nur-khitan-mihrab__star { position: absolute; left: 50%; top: 1.5rem; width: 1.8rem; height: 1.8rem; translate: -50% 0; color: var(--inv-coral); overflow: visible; }
.nur-khitan-mihrab__arabic { margin-top: 1rem; font-size: clamp(1.6rem, 7.2vw, 1.95rem); line-height: 2.05; color: var(--inv-primary); }
.nur-khitan-mihrab .nur-khitan-divider { margin: 1rem auto 1.2rem; }
.nur-khitan-mihrab__text { margin: 0; }
.nur-khitan-mihrab__text p { font: italic 300 1.14rem/1.65 var(--nk-serif); color: var(--inv-text); }
.nur-khitan-mihrab__text cite { display: block; margin-top: 1rem; font: normal 500 .76rem/1.4 var(--nk-sans); letter-spacing: .2em; text-transform: uppercase; color: var(--nk-ink); }

/* ---------- rundown: a glowing timeline ---------- */

.nur-khitan-rundown { overflow: hidden; }
.nur-khitan-timeline { position: relative; max-width: 25rem; margin: 0 auto; text-align: left; }
.nur-khitan-timeline__line {
    position: absolute; left: .95rem; top: .4rem; bottom: .4rem; width: 2px; border-radius: 2px;
    background: linear-gradient(180deg, #fff7e6, var(--inv-accent) 35%, var(--inv-coral));
    box-shadow: 0 0 12px 1px color-mix(in srgb, var(--inv-accent) 65%, transparent);
}
.nur-khitan-timeline__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 1.6rem; }
.nur-khitan-timeline__item { position: relative; display: grid; grid-template-columns: 2rem 4.3rem minmax(0, 1fr); gap: 0 .6rem; align-items: start; }
.nur-khitan-timeline__node {
    width: 1.3rem; height: 1.3rem; margin: .45rem 0 0 .3rem; color: var(--nk-light); overflow: visible;
    filter: drop-shadow(0 0 5px var(--inv-accent));
}
.nur-khitan-timeline__node { background: radial-gradient(circle, var(--inv-deep) 55%, transparent 56%); }
.nur-khitan-timeline__time { font: 200 1.65rem/1.25 var(--nk-sans); color: #fff; letter-spacing: -.01em; }
.nur-khitan-timeline__text h3 { padding-top: .25rem; font: 400 1.12rem/1.35 var(--nk-sans); color: var(--nk-white); }
.nur-khitan-timeline__text p { margin-top: .15rem; font-size: .98rem; line-height: 1.5; color: var(--nk-muted); }

/* ---------- story ---------- */

.nur-khitan-moments { list-style: none; margin: 0 auto; padding: 0; max-width: 25rem; display: grid; gap: 3rem; }
.nur-khitan-moment { display: grid; grid-template-columns: 42% minmax(0, 1fr); gap: 1.4rem; align-items: center; text-align: left; }
.nur-khitan-moment--flip { grid-template-columns: minmax(0, 1fr) 42%; text-align: right; }
.nur-khitan-moment--flip .nur-khitan-moment__arch { order: 2; }
.nur-khitan-moment--flip .nur-khitan-arch__block { inset: 9% -9% -6% 12%; }
.nur-khitan-moment--flip .nur-khitan-arch__line { inset: -5% 8% 7% -6%; }
.nur-khitan-moment__arch { width: 100%; }
.nur-khitan-moment__num { display: block; font: 200 2.6rem/1 var(--nk-sans); color: transparent; -webkit-text-stroke: 1px var(--inv-coral); }
.nur-khitan-moment__date {
    display: inline-block; margin-top: .5rem; padding: .25rem .75rem; border-radius: 999px;
    font: 500 .7rem/1.4 var(--nk-sans); letter-spacing: .16em; text-transform: uppercase;
    background: color-mix(in srgb, var(--inv-peach) 70%, #fff); color: var(--nk-ink);
}
.nur-khitan-moment h3 { margin-top: .45rem; font: 400 1.3rem/1.3 var(--nk-sans); color: var(--inv-primary); }
.nur-khitan-moment p { margin-top: .35rem; font-size: .98rem; line-height: 1.55; color: var(--nk-muted); }

/* ---------- gallery ---------- */

.nur-khitan-gallery { overflow: hidden; }
.nur-khitan-gallery .inv-gallery { gap: .65rem; max-width: 26rem; margin: 0 auto; }
.nur-khitan-gallery .inv-gallery__item { border-radius: 16px; box-shadow: 0 0 0 1px rgb(255 255 255 / .15), 0 18px 30px -20px rgb(0 0 0 / .7); }
.nur-khitan-gallery .inv-gallery__item:first-child { grid-column: 1 / -1; aspect-ratio: 4 / 5; border-radius: 50% 50% 18px 18px / 28% 28% 18px 18px; }
.nur-khitan-gallery .inv-gallery__item:nth-child(4n + 1):not(:first-child) { grid-column: 1 / -1; aspect-ratio: 16 / 10; }
.nur-khitan-gallery .inv-gallery__item:first-child img { object-position: 50% 25%; }

/* ---------- live streaming: a full-width band ---------- */

.nur-khitan-stream { padding: 0; }
.nur-khitan-stream__band {
    display: grid; justify-items: center; gap: .9rem; padding: 3rem 1.5rem;
    background:
        radial-gradient(ellipse 60% 80% at 100% 0, color-mix(in srgb, var(--inv-accent) 40%, transparent), transparent 70%),
        linear-gradient(120deg, color-mix(in srgb, var(--inv-primary) 85%, var(--inv-deep)), color-mix(in srgb, var(--inv-primary) 45%, var(--inv-coral)));
}
.nur-khitan-stream__play {
    display: grid; place-items: center; width: 4rem; aspect-ratio: 1; border-radius: 50%;
    background: var(--nk-sunrise); color: #2a1206; box-shadow: 0 0 0 8px rgb(255 255 255 / .12), 0 0 30px -4px var(--inv-accent);
}
.nur-khitan-stream__play .nur-khitan-icon { width: 1.4rem; height: 1.4rem; fill: currentColor; margin-left: .2rem; }
.nur-khitan-stream__text { color: var(--nk-muted); }
.nur-khitan-stream__text .nur-khitan-heading__label { margin-bottom: .3rem; }
.nur-khitan-stream__note { margin-top: .3rem; font-style: italic; color: var(--nk-white); }

/* ---------- cards with forms (RSVP light, wishes glass) ---------- */

.nur-khitan-card {
    position: relative; max-width: 25rem; margin: 0 auto; padding: 1.9rem 1.3rem 1.6rem; overflow: hidden;
    border-radius: 26px; background: #fff; color: var(--inv-text); text-align: left;
    box-shadow: 0 30px 50px -34px color-mix(in srgb, var(--inv-deep) 70%, transparent), 0 0 0 1px color-mix(in srgb, var(--inv-primary) 8%, transparent);
    transition: box-shadow .6s ease;
}
.nur-khitan-card::before { content: ''; position: absolute; left: 0; right: 0; top: 0; height: 5px; background: var(--nk-sunrise); }
.nur-khitan-card.is-sent, .nur-khitan-glass.is-sent { box-shadow: 0 0 0 2px var(--inv-accent), 0 0 46px 4px color-mix(in srgb, var(--inv-accent) 55%, transparent); }
.nur-khitan-glass { transition: box-shadow .6s ease; }
.nur-khitan-wishes__card { text-align: left; color: var(--nk-white); }

.nur-khitan-form .inv-form { gap: 1.05rem; }
.nur-khitan-form .inv-form label,
.nur-khitan-form .inv-form__choices legend {
    gap: .45rem; font: 500 .72rem/1.3 var(--nk-sans); letter-spacing: .18em; text-transform: uppercase; color: var(--nk-ink);
}
.nur-khitan-glass.nur-khitan-form .inv-form label { color: var(--nk-light); }
.nur-khitan-form .inv-form input:not([type=radio]):not([type=checkbox]),
.nur-khitan-form .inv-form select,
.nur-khitan-form .inv-form textarea {
    min-height: 3rem; padding: .7rem .95rem;
    border: 1px solid color-mix(in srgb, var(--inv-primary) 22%, transparent); border-radius: 14px;
    background: color-mix(in srgb, var(--inv-background) 55%, #fff); color: var(--inv-text);
    font: 400 1.04rem/1.35 var(--nk-sans); letter-spacing: 0; text-transform: none;
    transition: border-color .2s ease, box-shadow .2s ease;
}
.nur-khitan-glass.nur-khitan-form .inv-form :is(input:not([type=radio]):not([type=checkbox]), textarea) {
    border-color: rgb(255 255 255 / .28); background: rgb(255 255 255 / .92);
}
.nur-khitan-form .inv-form textarea { min-height: 6.5rem; resize: vertical; }
.nur-khitan-form .inv-form :is(input, select, textarea):focus { outline: none; border-color: var(--inv-primary); box-shadow: 0 0 0 3px color-mix(in srgb, var(--inv-accent) 50%, transparent); }
.nur-khitan-form .inv-form > .inv-button { justify-self: center; min-width: 12rem; margin-top: .3rem; }
.nur-khitan-card .inv-form > .inv-button { background: var(--nk-sunrise); color: #2a1206; box-shadow: 0 0 22px -6px color-mix(in srgb, var(--inv-accent) 85%, transparent); }
.nur-khitan-form .inv-form__notice { background: color-mix(in srgb, var(--inv-peach) 55%, #fff); color: var(--inv-text); font-size: .98rem; border-radius: 14px; }
.nur-khitan-form .inv-rsvp__done { justify-items: center; text-align: center; }
.inv-rsvp__deadline { margin-bottom: 1rem; text-align: center; font-style: italic; color: color-mix(in srgb, var(--inv-text) 80%, transparent); }

/* attendance: three tiles; the chosen one fills with dawn light */
.nur-khitan-form .inv-form__choices { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .5rem; }
.nur-khitan-form .inv-form__choices legend { margin-bottom: .55rem; padding: 0; }
.nur-khitan-form .inv-form__choices label {
    position: relative; display: grid; justify-items: center; gap: .35rem; padding: .85rem .3rem .75rem; min-height: 4.6rem;
    border-radius: 16px; cursor: pointer; text-align: center;
    font: 400 .9rem/1.2 var(--nk-sans); letter-spacing: 0; text-transform: none; color: var(--inv-text);
    background: color-mix(in srgb, var(--inv-background) 60%, #fff); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--inv-primary) 18%, transparent);
    transition: background .3s ease, box-shadow .3s ease, color .3s ease, transform .2s ease;
}
.nur-khitan-form .inv-form__choices label::before {
    content: ''; width: 1.15rem; height: 1.15rem; background: color-mix(in srgb, var(--inv-coral) 55%, transparent);
    -webkit-mask: var(--nk-star-solid) center / contain no-repeat; mask: var(--nk-star-solid) center / contain no-repeat;
}
.nur-khitan-form .inv-form__choices input { position: absolute; opacity: 0; width: 1px; height: 1px; margin: 0; pointer-events: none; }
.nur-khitan-form .inv-form__choices label:has(input:checked) {
    background: var(--nk-dawn-block); color: #fff; font-weight: 500;
    box-shadow: 0 0 22px -6px color-mix(in srgb, var(--inv-coral) 80%, transparent);
}
.nur-khitan-form .inv-form__choices label:has(input:checked)::before { background: #fff; }
.nur-khitan-form .inv-form__choices label:has(input:focus-visible) { outline: 2px solid var(--inv-coral); outline-offset: 3px; }
.nur-khitan-form .inv-form__choices label:active { transform: scale(.97); }

/* round − / + around the guest count (js/nur-khitan.js) */
.nur-khitan-pax { display: grid; grid-template-columns: 3rem minmax(0, 1fr) 3rem; align-items: center; gap: .6rem; }
.nur-khitan-pax__btn {
    width: 3rem; height: 3rem; border: 0; border-radius: 50%; cursor: pointer;
    background: var(--inv-primary); color: #fff; font: 300 1.5rem/1 var(--nk-sans);
    transition: transform .15s ease, opacity .2s ease;
}
.nur-khitan-pax__btn:active { transform: scale(.92); }
.nur-khitan-pax__btn:focus-visible { outline: 2px solid var(--inv-coral); outline-offset: 2px; }
.nur-khitan-pax__btn:disabled { opacity: .35; cursor: default; }
.nur-khitan-form .nur-khitan-pax select { text-align: center; text-align-last: center; }

/* wishes */
.nur-khitan-wishes .inv-wishes__list { margin-top: 1.5rem; gap: .7rem; }
.nur-khitan-wishes .inv-wish {
    position: relative; padding: .85rem 1rem .8rem 2.4rem; border-radius: 16px;
    background: rgb(255 255 255 / .1); box-shadow: inset 0 0 0 1px rgb(255 255 255 / .16); color: var(--nk-white);
    font-size: .98rem;
}
.nur-khitan-wishes .inv-wish::before {
    content: ''; position: absolute; left: .85rem; top: 1.05rem; width: .95rem; aspect-ratio: 1; background: var(--inv-accent);
    -webkit-mask: var(--nk-star-solid) center / contain no-repeat; mask: var(--nk-star-solid) center / contain no-repeat;
    filter: drop-shadow(0 0 4px var(--inv-accent));
}
.nur-khitan-wishes .inv-wish__name { font: 500 .98rem/1.3 var(--nk-sans); color: var(--nk-light); }
.nur-khitan-wishes .inv-wish__time { font-size: .72rem; opacity: .75; }
.nur-khitan-wishes .inv-wishes__empty { font-style: italic; text-align: center; color: var(--nk-muted); opacity: 1; }
.nur-khitan-wishes .inv-wish__reply { border-left-color: var(--inv-accent); background: rgb(255 255 255 / .08); }
.nur-khitan-wishes .inv-wishes__page-button { color: var(--nk-white); border-color: rgb(255 255 255 / .35); }
.nur-khitan-wishes .inv-form__notice { background: rgb(255 255 255 / .9); }

/* ---------- gift ---------- */

.nur-khitan-envelopes { max-width: 25rem; margin: 0 auto; }
.nur-khitan-envelopes .inv-gift__accounts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; }
.nur-khitan-envelopes .inv-gift__account {
    position: relative; overflow: hidden; padding: 1.5rem .85rem 1rem; border-radius: 20px; text-align: center;
    background: #fff; box-shadow: 0 24px 40px -30px color-mix(in srgb, var(--inv-deep) 70%, transparent), 0 0 0 1px color-mix(in srgb, var(--inv-primary) 8%, transparent);
}
.nur-khitan-envelopes .inv-gift__account::before { content: ''; position: absolute; left: 0; right: 0; top: 0; height: 5px; background: var(--nk-sunrise); }
.nur-khitan-envelopes .inv-gift__account + .inv-gift__account { margin-top: 0; }
.nur-khitan-envelopes .inv-gift__accounts .inv-gift__account:only-child { grid-column: 1 / -1; }
.nur-khitan-envelopes .inv-gift__bank { margin-top: .2rem; font: 500 .95rem/1.3 var(--nk-sans); color: var(--inv-primary); }
.nur-khitan-envelopes .inv-gift__logo { height: 2rem; }
.nur-khitan-envelopes .inv-gift__number { margin-top: .5rem; font: 400 1.08rem/1.3 var(--nk-sans); letter-spacing: .04em; overflow-wrap: anywhere; color: var(--inv-text); }
.nur-khitan-envelopes .inv-gift__holder { margin-top: .15rem; font-size: .94rem; line-height: 1.35; color: var(--nk-muted); overflow-wrap: anywhere; }
.nur-khitan-envelopes .inv-gift__account .inv-button { width: 100%; margin-top: .8rem; padding: .6rem .5rem; font-size: .78rem; min-height: 2.75rem; }
.nur-khitan-envelopes .inv-gift__address { margin-top: .8rem; }
.nur-khitan-envelopes .inv-gift__address p:not(.inv-gift__bank):not(.inv-gift__holder) { font-size: .98rem; line-height: 1.5; color: var(--nk-muted); margin-top: .2rem; }
.nur-khitan-envelopes .inv-gift__address .inv-button { width: auto; padding-inline: 1.4rem; }

/* ---------- co-hosts, contacts, protocol, vendors ---------- */

.nur-khitan-cohosts { overflow: hidden; }
.nur-khitan-cohosts__list { list-style: none; margin: 0 auto; padding: 0; max-width: 23rem; display: grid; gap: .8rem; }
.nur-khitan-cohosts__list li { display: flex; justify-content: center; align-items: baseline; gap: .55rem; font: 300 1.14rem/1.4 var(--nk-sans); color: var(--nk-white); }
.nur-khitan-cohosts__list svg { flex: none; width: .6rem; height: .6rem; color: var(--inv-accent); transform: translateY(-.1rem); filter: drop-shadow(0 0 4px var(--inv-accent)); }

.nur-khitan-contacts__list { display: grid; gap: .8rem; max-width: 25rem; margin: 0 auto; }
.nur-khitan-contact {
    display: grid; grid-template-columns: 3rem minmax(0, 1fr) auto; gap: .8rem; align-items: center;
    padding: .85rem .9rem; border-radius: 20px; text-align: left;
    background: #fff; box-shadow: 0 20px 34px -28px color-mix(in srgb, var(--inv-deep) 70%, transparent), 0 0 0 1px color-mix(in srgb, var(--inv-primary) 8%, transparent);
}
.nur-khitan-contact__initial {
    display: grid; place-items: center; width: 3rem; height: 3rem; border-radius: 50%;
    background: var(--nk-dawn-block); color: #fff; font: italic 400 1.4rem/1 var(--nk-serif);
}
.nur-khitan-contact__name { font: 500 1.05rem/1.3 var(--nk-sans); overflow-wrap: anywhere; }
.nur-khitan-contact__role { font-size: .92rem; color: var(--nk-muted); }
.nur-khitan-contact__wa { padding: .55rem .9rem; font-size: .76rem; min-height: 2.75rem; }
.nur-khitan-contact__phone { font-size: .92rem; font-weight: 400; }

.nur-khitan-protocol__list { list-style: none; margin: 0 auto 1.2rem; padding: 0; max-width: 25rem; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .7rem; }
.nur-khitan-protocol__list li { display: flex; align-items: center; gap: .6rem; padding: .75rem; border-radius: 16px; background: #fff; box-shadow: 0 0 0 1px color-mix(in srgb, var(--inv-primary) 8%, transparent); text-align: left; font-size: .96rem; line-height: 1.3; font-weight: 400; }
.nur-khitan-protocol__check { flex: none; display: grid; place-items: center; width: 2rem; height: 2rem; border-radius: 50%; background: var(--nk-dawn-block); color: #fff; }
.nur-khitan-protocol__check .nur-khitan-icon { width: 1.1rem; height: 1.1rem; }
.nur-khitan-protocol .nur-khitan-lead { margin-top: 0; }

.nur-khitan-vendors__list { list-style: none; margin: 0 auto; padding: 0; max-width: 25rem; display: grid; gap: .95rem; }
.nur-khitan-vendors__list li { display: flex; align-items: baseline; gap: .5rem; text-align: left; }
.nur-khitan-vendors__role { flex: none; font: 500 .72rem/1.3 var(--nk-sans); letter-spacing: .16em; text-transform: uppercase; color: var(--nk-ink); }
.nur-khitan-vendors__dots { flex: 1 1 1rem; min-width: 1rem; height: 1px; background: linear-gradient(90deg, var(--inv-coral), transparent); opacity: .6; transform: translateY(-.25rem); }
.nur-khitan-vendors__name { display: grid; justify-items: end; text-align: right; font: 400 1.05rem/1.3 var(--nk-sans); }
.nur-khitan-vendors__name a { font: 400 .82rem/1.6 var(--nk-sans); color: var(--nk-ink); text-decoration: none; padding: .35rem 0; }

/* ---------- closing: a full photo fading into the night ---------- */

.nur-khitan-closing { padding-top: 4.2rem; padding-bottom: 2.6rem; overflow-x: clip; }
.nur-khitan-closing::after { content: none; }
.nur-khitan-closing.nur-khitan-section--dark { background: var(--inv-deep); }
.nur-khitan-closing--photo { padding-top: 15rem; }
.nur-khitan-closing__bg { position: absolute; top: 0; left: 0; right: 0; z-index: -2; height: min(60svh, 460px); overflow: hidden; }
.nur-khitan-closing__bg img { display: block; width: 100%; height: calc(100% + 60px); margin-top: -30px; object-fit: cover; object-position: center 25%; --inv-parallax: 30px; }
.nur-khitan-closing__bg::after {
    content: ''; position: absolute; inset: 0;
    background: linear-gradient(180deg, color-mix(in srgb, var(--inv-deep) 20%, transparent) 0%, transparent 18%,
        color-mix(in srgb, var(--inv-primary) 45%, transparent) 45%, color-mix(in srgb, var(--inv-deep) 85%, transparent) 70%, var(--inv-deep) 92%);
}
.nur-khitan-closing__dawn {
    position: absolute; top: 0; left: 0; right: 0; z-index: -2; height: 20rem; overflow: hidden;
    background:
        radial-gradient(ellipse 80% 40% at 50% 60%, color-mix(in srgb, var(--inv-coral) 60%, transparent), transparent 70%),
        linear-gradient(180deg, var(--nk-violet), color-mix(in srgb, var(--inv-primary) 55%, var(--inv-coral)) 55%, var(--inv-deep) 100%);
}
.nur-khitan-closing__dawn .nur-khitan-dawn__sun { bottom: 34%; width: 8rem; }
.nur-khitan-closing__dawn .nur-khitan-dawn__skyline { bottom: 30%; height: 3.4rem; }
.nur-khitan-closing__dawn::after { content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 32%; background: var(--inv-deep); }
.nur-khitan-closing:not(.nur-khitan-closing--photo) { padding-top: 16rem; }
.nur-khitan-closing__body { position: relative; }
.nur-khitan-closing__moon {
    display: block; width: 1.8rem; height: auto; aspect-ratio: 1; margin: 0 auto .55rem; overflow: visible;
    color: var(--nk-light); filter: drop-shadow(0 0 6px var(--inv-accent)) drop-shadow(0 0 16px color-mix(in srgb, var(--inv-coral) 70%, transparent));
}
.nur-khitan-closing__thanks {
    margin-bottom: .7rem;
    font: 300 clamp(1.9rem, 8.5vw, 2.4rem)/1.1 var(--nk-sans); color: #fff;
    text-shadow: 0 0 26px color-mix(in srgb, var(--inv-accent) 55%, transparent), 0 2px 12px rgb(0 0 0 / .35);
}
.nur-khitan-closing__message { max-width: 24rem; margin: 0 auto; font: italic 300 1rem/1.6 var(--nk-serif); color: var(--nk-white); }
.nur-khitan-closing__salam { margin-top: 1rem; font: 400 .92rem/1.5 var(--nk-sans); color: var(--nk-light); }
.nur-khitan-closing .nur-khitan-divider { margin: .9rem auto; }
.nur-khitan-closing__signature { color: var(--nk-muted); font-size: .9rem; }
.nur-khitan-closing__names {
    display: flex; flex-wrap: wrap; justify-content: center; align-items: baseline; margin-top: .35rem;
    font: 300 clamp(2.1rem, 9.5vw, 2.5rem)/1.2 var(--nk-sans);
    filter: drop-shadow(0 0 16px color-mix(in srgb, var(--inv-accent) 55%, transparent));
}
.nur-khitan-closing__names > span:not(.nur-khitan-amp) {
    background: linear-gradient(180deg, #fff 20%, color-mix(in srgb, var(--inv-accent) 40%, #fff) 60%, var(--inv-accent));
    -webkit-background-clip: text; background-clip: text; color: transparent;
}

/* ---------- branding, menu, music, ambient ---------- */

.nur-khitan-page > .inv-checkin { margin: 0 auto; padding-top: 1.5rem; }
.nur-khitan-page:has(> .inv-checkin) { background: var(--inv-deep); }
.nur-khitan-branding { font-family: var(--nk-sans); }
.nur-khitan-page > .inv-music__space { background: var(--inv-deep); }

body .nur-khitan-nav {
    --inv-nav-bg: color-mix(in srgb, var(--inv-deep) 82%, transparent);
    --inv-nav-text: color-mix(in srgb, var(--nk-white) 80%, transparent);
    --inv-nav-active: var(--inv-accent);
    border-color: rgb(255 255 255 / .16);
    font-family: var(--nk-sans);
}
.nur-khitan-nav .inv-nav__item.is-active { background: var(--nk-sunrise); color: #2a1206; }

.inv-music__button { background: var(--nk-dawn-block); color: #fff; box-shadow: inset 0 0 0 1px rgb(255 255 255 / .35), 0 0 18px -2px color-mix(in srgb, var(--inv-accent) 60%, transparent), 0 4px 14px rgb(0 0 0 / .3); }
.inv-autoscroll { color: var(--inv-primary); font-family: var(--nk-sans); }

.inv-ambient { --inv-ambient-1: var(--inv-accent); --inv-ambient-2: var(--inv-coral); }

/* ---------- scroll-drawn lines (the finished drawing is the default) ---------- */

@supports (animation-timeline: view()) {
    html.inv-anim .nur-khitan-divider__line {
        animation: nk-draw linear both; animation-timeline: view(); animation-range: entry 0% cover 25%;
    }
    html.inv-anim .nur-khitan-divider__star {
        transform-box: fill-box; transform-origin: center;
        animation: nk-star-in linear both; animation-timeline: view(); animation-range: entry 0% cover 25%;
    }
    html.inv-anim :is(.nur-khitan-mihrab__line, .nur-khitan-arch__line) {
        animation: nk-rise-line linear both; animation-timeline: view(); animation-range: entry 5% cover 45%;
    }
    html.inv-anim .nur-khitan-timeline__line {
        animation: nk-line linear both; animation-timeline: view(); animation-range: entry 0% cover 60%;
    }
    html.inv-anim .nur-khitan-closing :is(.nur-khitan-divider__line, .nur-khitan-divider__star) { animation: none; }
    @keyframes nk-star-in { from { transform: rotate(-90deg) scale(.4); opacity: 0; } to { transform: none; opacity: 1; } }
    @keyframes nk-line { from { clip-path: inset(0 0 100% 0); } to { clip-path: inset(0 0 0 0); } }
}

/* the open button breathes with a warm ring */
@keyframes inv-pulse {
    0% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--inv-accent) 60%, transparent), 0 0 24px -6px var(--inv-accent); }
    70% { box-shadow: 0 0 0 14px transparent, 0 0 24px -6px var(--inv-accent); }
    100% { box-shadow: 0 0 0 0 transparent, 0 0 24px -6px var(--inv-accent); }
}

@media (prefers-reduced-motion: reduce) {
    .nur-khitan-card, .nur-khitan-glass, .nur-khitan-cover--leave { transition: none; }
    .nur-khitan-cover__media, .nur-khitan-cover__arch, .nur-khitan-cover__moon, .nur-khitan-cover__sun,
    .nur-khitan-cover__rays, .nur-khitan-divider__line, .nur-khitan-divider__star,
    .nur-khitan-mihrab__line, .nur-khitan-arch__line, .nur-khitan-timeline__line { animation: none !important; }
}

/* ---------- intro scene "Subuh Menyingsing" (scene.json + sections/_scene; the intro lives in <body>) ---------- */
/* the camera rises with the dawn: the starry night warms into coral and amber, two dome-and-minaret skylines lift
   from the bottom, the sun climbs behind them and throws soft rays, the light-line arch draws itself upward from both
   feet, eight-point star outlines turn in from the edges, the crescent settles at the arch's apex, then the name
   glows on a pointed-arch window of night glass */
.inv-scene__art > .nur-khitan-scene-sun, .inv-scene__art > .nur-khitan-scene-rays { display: block; width: 100%; height: 100%; }
.nur-khitan-scene-sun {
    background: radial-gradient(circle closest-side, #fffaf0 0%, color-mix(in srgb, var(--inv-accent) 70%, #fff) 26%, var(--inv-accent) 46%, color-mix(in srgb, var(--inv-coral) 55%, transparent) 66%, transparent 100%);
}
.nur-khitan-scene-rays {
    background: repeating-conic-gradient(from -90deg at 50% 100%, rgb(255 236 200 / .2) 0deg 2.6deg, transparent 2.6deg 9deg);
    -webkit-mask: radial-gradient(ellipse 50% 100% at 50% 100%, #000 10%, transparent 78%); mask: radial-gradient(ellipse 50% 100% at 50% 100%, #000 10%, transparent 78%);
}
.inv-scene__layer:has(> .inv-scene__art > .nur-khitan-scene-rays) { mix-blend-mode: screen; }
.nur-khitan-scene-skyline--far { color: color-mix(in srgb, var(--inv-primary) 60%, var(--inv-coral)); opacity: .7; }
.nur-khitan-scene-skyline--near { color: var(--inv-deep); filter: drop-shadow(0 -1px 0 color-mix(in srgb, var(--inv-accent) 70%, transparent)); }
.nur-khitan-scene-arch { overflow: visible; fill: none; clip-path: inset(100% -5% -5% -5%); }
.nur-khitan-scene-arch path {
    vector-effect: non-scaling-stroke; stroke: var(--inv-accent); stroke-width: 1.8;
    filter: drop-shadow(0 0 6px color-mix(in srgb, var(--inv-accent) 90%, transparent)) drop-shadow(0 0 14px color-mix(in srgb, var(--inv-coral) 60%, transparent));
}
.nur-khitan-scene-arch path.nur-khitan-scene-arch__inner { stroke: var(--nk-white); stroke-width: .8; opacity: .65; filter: none; }
.inv-intro--scene.is-playing .nur-khitan-scene-arch { animation: nk-rise-line 2.4s cubic-bezier(.45, 0, .25, 1) .7s both; }
.nur-khitan-scene-crescent, .nur-khitan-scene-star { overflow: visible; }
.nur-khitan-scene-crescent { color: var(--nk-light); filter: drop-shadow(0 0 6px var(--inv-accent)) drop-shadow(0 0 16px color-mix(in srgb, var(--inv-coral) 70%, transparent)); }
.nur-khitan-scene-star { color: var(--nk-light); filter: drop-shadow(0 0 5px color-mix(in srgb, var(--inv-accent) 80%, transparent)); }
/* the card: a pointed-arch window of night glass with a thin line of light around it */
body.nur-khitan-body .inv-intro--scene .inv-scene__card {
    top: 45%; width: min(72vw, 19rem); aspect-ratio: 5 / 6.2; max-height: 54svh; padding: 4.2rem 1.4rem 1.8rem; isolation: isolate;
    color: var(--nk-white);
    background: linear-gradient(180deg, color-mix(in srgb, var(--inv-deep) 72%, transparent), color-mix(in srgb, var(--inv-primary) 55%, transparent));
    --nk-scene-arch: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpath d='M0 100V36C0 20 22 9 50 0c28 9 50 20 50 36v64Z'/%3E%3C/svg%3E");
    -webkit-mask: var(--nk-scene-arch) center / 100% 100% no-repeat; mask: var(--nk-scene-arch) center / 100% 100% no-repeat;
}
body.nur-khitan-body .inv-intro--scene .inv-scene__card::before {
    content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none;
    background: linear-gradient(180deg, var(--nk-light), var(--inv-accent) 45%, var(--inv-coral));
    -webkit-mask: var(--nk-scene-arch) center / 100% 100% no-repeat, var(--nk-scene-arch) center / calc(100% - 5px) calc(100% - 5px) no-repeat;
    -webkit-mask-composite: xor;
    mask: var(--nk-scene-arch) center / 100% 100% no-repeat exclude, var(--nk-scene-arch) center / calc(100% - 5px) calc(100% - 5px) no-repeat;
}
body.nur-khitan-body .inv-scene__card .inv-intro__label { margin-bottom: .5rem; font: 500 clamp(.6rem, 2.8vw, .7rem)/1.5 var(--nk-sans) !important; letter-spacing: .32em; text-transform: uppercase; color: var(--nk-light); }
body.nur-khitan-body .inv-scene__card .inv-intro__names {
    font: italic 400 clamp(2.5rem, 12vw, 3.3rem)/1.02 var(--nk-serif) !important; color: var(--nk-white); overflow-wrap: anywhere;
    text-shadow: 0 0 22px color-mix(in srgb, var(--inv-accent) 75%, transparent);
}
body.nur-khitan-body .inv-scene__card .inv-intro__rule {
    width: 6rem; height: 1px; margin: .9rem auto .8rem;
    background: linear-gradient(90deg, transparent, var(--inv-accent), transparent); box-shadow: 0 0 8px var(--inv-accent);
}
body.nur-khitan-body .inv-scene__card .inv-intro__date { font: 400 clamp(.62rem, 2.9vw, .74rem)/1.5 var(--nk-sans) !important; letter-spacing: .24em; text-transform: uppercase; color: var(--nk-white); }
body.nur-khitan-body .inv-intro--scene .inv-intro__skip { background: color-mix(in srgb, var(--inv-deep) 55%, transparent); border-color: color-mix(in srgb, var(--inv-accent) 60%, transparent); color: var(--nk-white); }
@media (prefers-reduced-motion: reduce) {
    .nur-khitan-scene-arch { clip-path: none; animation: none !important; }
}
