/* v1.7.4 — scoped to the public calendar; only one scene is mounted. */
#ncl-background { position:fixed; inset:0; z-index:0; overflow:hidden; pointer-events:none; }
#ncl-background .ncl-scene { position:absolute; inset:0; overflow:hidden; pointer-events:none; }
#ncl-background .ncl-scene-x { background:linear-gradient(115deg,#e4f4f5,#edf0ef 55%,#f9e8e6); }
#ncl-background .wave { animation:ncl-color-drift 14.4s ease-in-out infinite alternate; }
#ncl-background .wave1 { animation-duration:11.2s; }
#ncl-background .wave2 { animation-duration:14.4s; animation-delay:-6s; }
#ncl-background .wave3 { animation-duration:17.6s; animation-delay:-12s; }
#ncl-background .wave4 { animation-duration:16s; animation-delay:-8s; }
#ncl-background .wave5 { animation-duration:12.8s; animation-delay:-3s; }
#ncl-background .sheen { animation:ncl-sheen 16s ease-in-out infinite alternate; }
.ncl-water { position:absolute; inset:0; width:100%; height:100%; opacity:.45; }
.ncl-water path { fill:none; stroke:#fff; stroke-width:8; }
.ncl-water path:nth-child(2n) { stroke-width:3; opacity:.6; }
@keyframes ncl-color-drift { from { transform:translate(-3%,-2%) rotate(-3deg) scale(1); } to { transform:translate(6%,5%) rotate(7deg) scale(1.12); } }
@keyframes ncl-sheen { from { transform:translateX(-9%) rotate(-3deg); } to { transform:translateX(9%) rotate(4deg); } }
.ncl-scene-v2-c { background:radial-gradient(ellipse at 3% 20%,#e2f2f5,transparent 34%),radial-gradient(ellipse at 96% 86%,#fbebd5,transparent 35%),#fffefa; }
.ncl-window { position:absolute; width:27vw; height:43vh; border:1px solid rgba(255,255,255,.92); }
.ncl-window-send { left:-3vw; top:-8vh; transform:rotate(-8deg); background:linear-gradient(145deg,#d9eff366,#efe0ea33); box-shadow:inset 0 0 30px #fff9,0 0 70px #d0edf033; animation:ncl-window-send 12s ease-in-out infinite; }
.ncl-window-receive { right:-3vw; bottom:-7vh; transform:rotate(5deg); background:linear-gradient(145deg,#e5f4f677,#f8dcab55); box-shadow:inset 0 0 35px #fff9; }
.ncl-window-receive::after { content:""; position:absolute; inset:-35%; background:radial-gradient(ellipse,#ffd88d88,transparent 67%); opacity:.2; animation:ncl-window-warm 12s ease-in-out infinite; }
.ncl-vtl-paths { position:absolute; width:100%; height:100%; inset:0; overflow:visible; }
.ncl-vtl-trails { fill:none; stroke-width:1.1; opacity:.3; }
.ncl-vtl-signal { fill:none; stroke:#ffeba5; stroke-width:2.2; stroke-linecap:round; stroke-dasharray:5 100; stroke-dashoffset:5; opacity:0; filter:drop-shadow(0 0 3px #e9b94c); animation:ncl-signal 12s linear infinite; }
@keyframes ncl-window-send { 0%,10%,100% {opacity:.65} 18%,30% {opacity:1} 60% {opacity:.72} }
@keyframes ncl-window-warm { 0%,48%,100% {opacity:.12} 67%,77% {opacity:.95} }
@keyframes ncl-signal { 0%,14% {stroke-dashoffset:5;opacity:0} 18% {opacity:.9} 65% {stroke-dashoffset:-100;opacity:.9} 69%,100% {stroke-dashoffset:-100;opacity:0} }
.ncl-scene-f { background:#f8efd8 url('../backgrounds/hurrah.jpg') center / cover no-repeat; }
body.ncl-bg-f .ncl-app .ncl-card { background:rgba(255,255,255,.95); }
body.ncl-bg-f .ncl-app .ncl-header { padding:16px; margin-bottom:16px; border-radius:14px; background:rgba(255,255,255,.94); }
body.ncl-bg-f .ncl-admin-link { background:#fffffff2; border-radius:12px; padding:7px 12px; }
.ncl-scene-c { background:radial-gradient(ellipse at 8% 12%,#ccebf1,transparent 48%),radial-gradient(ellipse at 94% 90%,#eee0f7,transparent 45%),#fafcff; }
.ncl-glass-field { position:absolute; inset:0; width:100%; height:100%; }
.ncl-glass-orb { position:absolute; width:clamp(200px,34vw,580px); aspect-ratio:1; border-radius:50%; overflow:hidden; animation:ncl-orb-one 17.5s ease-in-out infinite alternate; }
.ncl-glass-orb-one { left:-3vw; top:5vh; }
.ncl-glass-orb-two { right:-4vw; bottom:-8vh; width:clamp(190px,33vw,540px); animation-name:ncl-orb-two; animation-duration:20.625s; animation-delay:-4s; }
.ncl-glass-orb canvas { width:100%; height:100%; display:block; }
.ncl-glass-orb::after { content:""; position:absolute; inset:0; border-radius:50%; background:radial-gradient(ellipse at 26% 35%,#fff 0%,#ffffffa0 2%,#ffffff00 8%),radial-gradient(ellipse at 50% 92%,#ffffffb0 0%,#ffffff00 23%); box-shadow:inset 3px 5px 8px #ffffffa8,inset -1px -2px 5px #ffffff50; }
.ncl-glass-light { position:absolute; width:45%; height:150%; top:-25%; right:5%; background:linear-gradient(112deg,transparent 46%,#ffffff88 49%,#ffffff25 50%,transparent 53%); animation:ncl-glass-light 16.25s ease-in-out infinite alternate; }
@keyframes ncl-orb-one { from {transform:translate(0,0)} to {transform:translate(4vw,4vh)} }
@keyframes ncl-orb-two { from {transform:translate(0,0)} to {transform:translate(-4vw,-5vh)} }
@keyframes ncl-glass-light { from {transform:translateX(-10%) rotate(-4deg)} to {transform:translateX(12%) rotate(7deg)} }
#ncl-background.ncl-motion-paused *, #ncl-background.ncl-motion-paused *::after { animation-play-state:paused !important; }
.ncl-app .ncl-background-toolbar { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px; margin:0 4px 16px; }
.ncl-app .ncl-background-toolbar .ncl-admin-link { margin:0 0 0 auto; }
.ncl-app .ncl-background-picker { position:relative; font-size:13px; z-index:10; }
.ncl-app .ncl-background-picker[hidden], .ncl-app .ncl-background-panel[hidden] { display:none; }
.ncl-app .ncl-background-toggle { display:flex; align-items:center; gap:8px; min-height:40px; padding:8px 13px; border:1px solid #d9dfe5; border-radius:999px; background:#fffffff0; color:#34414b; cursor:pointer; box-shadow:0 2px 12px #30435809; }
.ncl-background-dot { width:15px; height:15px; border-radius:50%; background:conic-gradient(#a7e7f2,#cec5f6,#f5b9d2,#fce4a8,#a7e7f2); }
.ncl-background-current { color:#65707a; font-size:12px; }
.ncl-app .ncl-background-panel { position:absolute; top:calc(100% + 8px); left:0; width:280px; max-width:calc(100vw - 40px); padding:15px; border:1px solid #dce2e7; border-radius:16px; background:#fffffff7; box-shadow:0 12px 40px #19384b22; }
.ncl-app .ncl-background-heading { font-size:13px; font-weight:700; margin:0 0 10px; }
.ncl-background-options { display:grid; gap:5px; }
.ncl-app .ncl-background-options button { display:flex; gap:10px; align-items:center; text-align:left; min-height:44px; padding:7px 10px; border:1px solid transparent; border-radius:9px; background:transparent; color:#34414b; cursor:pointer; }
.ncl-app .ncl-background-options button:hover { background:#f1f5f8; }
.ncl-app .ncl-background-options button[aria-pressed=true] { border-color:#8eaebd; background:#edf5f7; }
.ncl-app .ncl-background-options button[aria-pressed=true]::after { content:"✓"; margin-left:auto; color:#287483; }
.ncl-background-swatch { flex:0 0 34px; height:27px; border-radius:6px; border:1px solid #00000008; }
.ncl-swatch-x { background:linear-gradient(125deg,#c5eff4,#e4e7f7,#f7dfdf); }
.ncl-swatch-v2-c { background:linear-gradient(135deg,#d4edf3,#fff 55%,#f5dfb9); }
.ncl-swatch-f { background:linear-gradient(90deg,#69d5b0,#62cce4,#b48ce0,#f78674,#f6de6c); }
.ncl-swatch-c { background:radial-gradient(circle at 30% 35%,#fff,#d3eaf3 35%,#f4effb 38%,#e5d6f3); }
.ncl-app .ncl-background-random,.ncl-app .ncl-background-pause { width:100%; min-height:40px; margin-top:8px; border:1px solid #dce2e7; border-radius:9px; background:white; color:#34414b; cursor:pointer; }
.ncl-app .ncl-background-pause:disabled { color:#65707a; cursor:default; background:#f6f7f8; }
.ncl-app .ncl-background-help { margin:10px 0 0; font-size:11px; color:#667480; line-height:1.6; }
.ncl-app .ncl-background-picker button:focus-visible { outline:3px solid #286f8d; outline-offset:2px; }
.ncl-background-announcement { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
@media(max-width:600px) {
  .ncl-window { width:39vw; height:32vh; }
  .ncl-window-send { top:2vh; left:-6vw; }
  .ncl-window-receive { bottom:2vh; right:-8vw; }
  .ncl-glass-orb { width:64vw; }
  .ncl-glass-orb-one { left:-18vw; top:14vh; }
  .ncl-glass-orb-two { right:-20vw; bottom:10vh; width:67vw; }
  .ncl-scene-f { background-position:48% center; }
  .ncl-app .ncl-background-toolbar { margin:0 0 14px; }
  .ncl-app .ncl-background-toggle { padding:7px 10px; gap:6px; }
  .ncl-background-current { max-width:100px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
}
@media(prefers-reduced-motion:reduce) {
  #ncl-background *,#ncl-background *::after { animation:none !important; }
  .ncl-window-receive::after { opacity:.5; }
}
