.nc-slide { position: relative; overflow: hidden; background: #000; }
.nc-bg, .nc-elements { position: absolute; inset: 0; }
.nc-bg-media { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
.nc-bg-overlay { position: absolute; inset: 0; }
.nc-el { position: absolute; box-sizing: border-box; transform-origin: center; }
.nc-body { position: absolute; inset: 0; overflow: hidden; box-sizing: border-box; }
.nc-body > img, .nc-body > video, .nc-body > iframe { width: 100%; height: 100%; display: block; border: 0; }
.nc-text {
  width: 100%; height: 100%; box-sizing: border-box;
  display: flex; flex-direction: column;
  white-space: pre-wrap; overflow-wrap: break-word;
}
.nc-placeholder {
  width: 100%; height: 100%; box-sizing: border-box;
  display: flex; align-items: center; justify-content: center; text-align: center;
  white-space: pre-line; font: 600 36px/1.3 Inter, system-ui, sans-serif;
  color: rgba(255,255,255,.75); background: rgba(148,163,184,.25);
  border: 4px dashed rgba(255,255,255,.45);
}

.nc-anim { animation-fill-mode: both; animation-timing-function: cubic-bezier(.2,.8,.2,1); }
.nc-anim-fade-in { animation-name: nc-fade-in; }
.nc-anim-slide-up { animation-name: nc-slide-up; }
.nc-anim-slide-down { animation-name: nc-slide-down; }
.nc-anim-slide-left { animation-name: nc-slide-left; }
.nc-anim-slide-right { animation-name: nc-slide-right; }
.nc-anim-zoom-in { animation-name: nc-zoom-in; }
.nc-anim-pop { animation-name: nc-pop; }

@keyframes nc-fade-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes nc-slide-up { from { opacity: 0; transform: translateY(80px); } to { opacity: 1; transform: none; } }
@keyframes nc-slide-down { from { opacity: 0; transform: translateY(-80px); } to { opacity: 1; transform: none; } }
@keyframes nc-slide-left { from { opacity: 0; transform: translateX(140px); } to { opacity: 1; transform: none; } }
@keyframes nc-slide-right { from { opacity: 0; transform: translateX(-140px); } to { opacity: 1; transform: none; } }
@keyframes nc-zoom-in { from { opacity: 0; transform: scale(.8); } to { opacity: 1; transform: none; } }
@keyframes nc-pop { 0% { opacity: 0; transform: scale(.5); } 70% { opacity: 1; transform: scale(1.06); } 100% { transform: none; } }

.nc-kenburns { animation: nc-kenburns 24s ease-out both; }
@keyframes nc-kenburns { from { transform: scale(1); } to { transform: scale(1.14) translate(-1.5%, -1%); } }

/* ---------------------------------------------------------------- widgets */
.nc-widget { width: 100%; height: 100%; box-sizing: border-box; overflow: hidden; display: flex; flex-direction: column; }
.nc-widget > * { flex: 1; min-height: 0; }
.nw-note { display: flex; align-items: center; justify-content: center; text-align: center; opacity: .6; font-size: .6em; }
.nw-meta { font-size: .62em; opacity: .7; font-weight: 400; }
.nw-header { font-size: .8em; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; opacity: .75; margin-bottom: .6em; flex: none; }

.nw-icon { display: inline-block; width: 1em; height: 1em; flex: none; }
.nw-weather { display: flex; flex-direction: column; justify-content: center; gap: .6em; }
.nw-now { display: flex; align-items: center; gap: .5em; }
.nw-now .nw-icon { width: 3em; height: 3em; }
.nw-now-text { display: flex; flex-direction: column; }
.nw-temp { font-size: 2.6em; font-weight: 800; line-height: 1; font-variant-numeric: tabular-nums; }
.nw-desc { font-size: .9em; font-weight: 600; margin-top: .2em; }
.nw-place { font-size: .65em; opacity: .7; }
.nw-details { font-size: .55em; opacity: .7; margin-top: .3em; }
.nw-compact { flex-direction: row; align-items: center; justify-content: center; gap: .3em; }
.nw-compact .nw-icon { width: 1.6em; height: 1.6em; }
.nw-compact .nw-temp { font-size: 1.3em; }
.nw-days { display: flex; gap: .4em; }
.nw-day { flex: 1; display: flex; flex-direction: column; align-items: center; gap: .2em; padding: .45em .2em; border-radius: .4em; background: rgba(127,127,127,.14); }
.nw-day .nw-icon { width: 1.7em; height: 1.7em; }
.nw-day-name { font-size: .6em; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; opacity: .8; }
.nw-day-temp { font-size: .7em; display: flex; gap: .45em; font-variant-numeric: tabular-nums; }
.nw-day-temp span { opacity: .6; }
.nw-attrib { font-size: .32em; opacity: .5; text-align: right; flex: none; }

.nw-list { display: flex; flex-direction: column; }
.nw-item { display: flex; gap: .6em; align-items: center; padding: .45em 0; border-top: 1px solid rgba(127,127,127,.3); }
.nw-item:first-of-type { border-top: 0; }
.nw-item-title { font-weight: 600; line-height: 1.25; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.nw-thumb { width: 3.2em; height: 2.2em; border-radius: .25em; background: center / cover rgba(127,127,127,.3); flex: none; }
.nw-card { position: relative; }
.nw-card-inner { display: flex; gap: .9em; height: 100%; animation: nc-fade-in .6s ease both; }
.nw-card-img { flex: 0 0 45%; border-radius: .35em; background: center / cover rgba(127,127,127,.3); }
.nw-card-text { flex: 1; display: flex; flex-direction: column; justify-content: center; gap: .35em; min-width: 0; }
.nw-card-title { font-size: 1.25em; font-weight: 800; line-height: 1.12; display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
.nw-card-summary { font-size: .7em; line-height: 1.4; opacity: .85; display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
.nw-dots { display: flex; gap: .3em; margin-top: .4em; }
.nw-dots i { width: .35em; height: .35em; border-radius: 50%; background: currentColor; opacity: .3; }
.nw-dots i.on { opacity: 1; }
.nw-ticker { overflow: hidden; display: flex; align-items: center; }
.nw-ticker-track { display: flex; white-space: nowrap; animation: nw-ticker linear infinite; }
.nw-ticker-track span { padding-right: 3em; }
@keyframes nw-ticker { from { transform: translateX(0); } to { transform: translateX(-50%); } }

.nw-agenda { display: flex; flex-direction: column; }
.nw-day-head { font-size: .62em; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; opacity: .65; margin: .7em 0 .2em; }
.nw-day-head:first-child, .nw-header + .nw-day-head { margin-top: 0; }
.nw-event { display: flex; gap: .8em; align-items: baseline; padding: .3em 0; }
.nw-time { flex: 0 0 5.8em; font-size: .75em; font-weight: 700; font-variant-numeric: tabular-nums; opacity: .85; }
.nw-event-title { font-weight: 600; line-height: 1.25; }
.nw-event.running .nw-time { color: #22c55e; opacity: 1; }
.nw-empty { opacity: .6; }
.nw-agenda-today .nw-event { padding: .45em 0; border-top: 1px solid rgba(127,127,127,.3); }
.nw-agenda-today .nw-event:first-of-type { border-top: 0; }
.nw-quote b { font-weight: 800; margin-right: .15em; }
.nw-quote em { font-style: normal; font-weight: 700; }
.nw-quote.up em { color: #22c55e; }
.nw-quote.down em { color: #f87171; }
.nc-yt-play { position: absolute; left: 50%; top: 50%; width: 120px; height: 84px; transform: translate(-50%, -50%); border-radius: 24px; background: rgba(255,0,0,.9); }
.nc-yt-play::after { content: ''; position: absolute; left: 48px; top: 24px; border-left: 34px solid #fff; border-top: 18px solid transparent; border-bottom: 18px solid transparent; }

.nw-celebrate { display: flex; flex-direction: column; }
.nw-celebrate-list { display: flex; flex-direction: column; gap: .5em; }
.nw-celebrate-cards .nw-celebrate-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(8em, 1fr)); gap: .6em; }
.nw-celebrate-cards .nw-person { flex-direction: column; text-align: center; padding: .7em .5em; background: rgba(127,127,127,.12); border-radius: .5em; }
.nw-celebrate-cards .nw-person-what { justify-content: center; }
.nw-person { display: flex; align-items: center; gap: .6em; }
.nw-avatar { width: 2.4em; height: 2.4em; border-radius: 50%; flex: none; background: center / cover rgba(127,127,127,.25); display: flex; align-items: center; justify-content: center; font-weight: 800; font-size: .8em; }
.nw-celebrate-cards .nw-avatar { width: 3em; height: 3em; }
.nw-person-name { font-weight: 700; line-height: 1.15; }
.nw-person-what { display: flex; align-items: center; gap: .3em; font-size: .62em; opacity: .85; margin-top: .15em; }
.nw-celebrate-icon { width: 1.3em; height: 1.3em; display: inline-flex; flex: none; }
.nw-celebrate-icon.birthday { color: #f472b6; }
.nw-celebrate-icon.jubilee { color: #fbbf24; }

.nw-room { display: flex; flex-direction: column; gap: .5em; }
.nw-room-name { font-size: .7em; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; opacity: .75; }
.nw-room-status { border-radius: .4em; padding: .6em .8em; color: #fff; }
.nw-room-status.free { background: #16a34a; }
.nw-room-status.busy { background: #dc2626; }
.nw-room-state { font-size: 2.2em; font-weight: 900; line-height: 1; }
.nw-room-until { font-size: .9em; font-weight: 600; opacity: .95; margin-top: .15em; }
.nw-room-title { font-size: .75em; margin-top: .35em; opacity: .95; }
.nw-room .nw-time, .nw-agenda .nw-time { flex-basis: auto; min-width: 5.8em; white-space: nowrap; }

/* Meertalig: zachte overgang bij het wisselen van taal. */
.nc-text[data-i18n] { transition: opacity .35s ease; }
.nc-text.nc-lang-out { opacity: 0; }
