/* Tema Neo Brutal: kertas grid, huruf besar tegas, kotak garis hitam tebal & bayangan keras, warna stabilo,
   stiker "SAH!" berputar, judul bernomor, tiket acara berbarcode. Gambar: brutal/*.svg (digambar sendiri). */
:root{--page-bg:#111;--bg:#f5f2ea;--surface:#fff;--ink:#111;--muted:#4b4b4b;--accent:#3b5bff;--accent-ink:#fff;--line:#111;--radius:0;
--nb-lime:#d4ff3a;--nb-pink:#ff9bd2;--nb-oren:#ff8a3d;--nb-bayang:6px 6px 0 #111;--nb-garis:3px solid #111;
--nb-ledak:url(brutal/ledak.svg);--nb-panah:url(brutal/panah.svg);--nb-bintang:url(brutal/bintang.svg);
--nb-grid:linear-gradient(rgba(17,17,17,.07) 1px,transparent 1px) 0 0/24px 24px,linear-gradient(90deg,rgba(17,17,17,.07) 1px,transparent 1px) 0 0/24px 24px;
--cover-bg:var(--nb-grid),var(--nb-lime)}
.theme-brutal{counter-reset:nb nbt}
.theme-brutal .nk-main{position:relative;overflow:hidden;padding-bottom:86px;background:var(--nb-grid),var(--bg);border-inline:3px solid #111}

/* Huruf */
.theme-brutal .nk-script{font-weight:400;color:var(--ink);text-transform:uppercase;letter-spacing:-.02em;line-height:.95}
.theme-brutal .nk-script span{display:inline-block;font-size:.6em;opacity:1;color:var(--accent-ink);background:var(--accent);border:3px solid #111;padding:0 10px;margin:6px 0;rotate:-4deg;box-shadow:3px 3px 0 #111}
.theme-brutal .nk-eyebrow{display:inline-block;font:700 .72rem/1 'Space Mono',monospace;letter-spacing:.12em;color:#111;background:#fff;border:2px solid #111;padding:6px 10px}
.theme-brutal .nk-heading{counter-increment:nb;display:block;text-align:left;font:700 2.1rem/1 var(--font-display);text-transform:uppercase;letter-spacing:-.03em;color:#111;margin:0 0 26px;padding-bottom:12px;border-bottom:3px solid #111}
.theme-brutal .nk-heading::before{content:counter(nb,decimal-leading-zero) " /";display:block;font:700 .8rem/1 'Space Mono',monospace;letter-spacing:.1em;color:var(--accent);margin-bottom:8px}
.theme-brutal .nk-text{color:#111;font-size:1rem;text-align:left;margin-left:0}
.theme-brutal .nk-closing .nk-text{text-align:center;margin:0 auto 20px}
.theme-brutal .nk-section{padding:52px 22px}

/* Tombol: kotak tegas */
.theme-brutal .nk-btn{border-radius:0;border:3px solid #111;box-shadow:5px 5px 0 #111;font:700 .9rem/1 var(--font-display);text-transform:uppercase;letter-spacing:.06em;transition:translate .1s,box-shadow .1s}
.theme-brutal .nk-btn:hover{translate:-2px -2px;box-shadow:7px 7px 0 #111}
.theme-brutal .nk-btn:active{translate:4px 4px;box-shadow:1px 1px 0 #111;transform:none}
.theme-brutal .nk-btn-ghost{background:var(--nb-lime);color:#111}

/* Sampul */
.theme-brutal .nk-cover{overflow:hidden}
.theme-brutal .nk-cover::before{content:"SAVE THE DATE \2605 SAVE THE DATE \2605 SAVE THE DATE \2605 SAVE THE DATE \2605 ";position:absolute;top:24px;left:-20px;white-space:pre;width:max-content;background:#111;color:var(--nb-lime);font:700 .85rem/1 'Space Mono',monospace;padding:10px 0;rotate:-4deg;animation:nb-jalan 12s linear infinite}
.theme-brutal .nk-cover::after{content:"SAH!";position:absolute;right:14px;bottom:70px;width:110px;height:110px;display:grid;place-items:center;color:#111;font:400 1.5rem/1 'Archivo Black',sans-serif;background:var(--nb-pink);-webkit-mask:var(--nb-ledak) center/contain no-repeat;mask:var(--nb-ledak) center/contain no-repeat;animation:nb-putar 10s linear infinite}
.theme-brutal .nk-cover-inner{position:relative;z-index:1;width:100%;background:#fff;border:var(--nb-garis);box-shadow:10px 10px 0 #111;padding:28px 20px 26px;text-align:left}
.theme-brutal .nk-cover h1{font-size:3.6rem;margin:16px 0 14px}
.theme-brutal .nk-date{display:inline-block;font:700 .95rem/1 'Space Mono',monospace;background:var(--nb-lime);border:2px solid #111;padding:8px 10px;letter-spacing:0}
.theme-brutal .nk-to{border:2px dashed #111;padding:12px 14px;background:var(--bg)}
.theme-brutal .nk-to p{color:#111}
.theme-brutal .nk-to .nk-guest{font:700 1.4rem/1.2 var(--font-display);text-transform:uppercase}
.theme-brutal #openBtn{width:100%}
.theme-brutal #openBtn::after{content:" \2192"}

/* Beranda */
.theme-brutal .nk-hero{position:relative;text-align:left}
.theme-brutal .nk-hero::before{content:"";position:absolute;top:30px;right:16px;width:76px;height:76px;background:var(--nb-oren);-webkit-mask:var(--nb-bintang) center/contain no-repeat;mask:var(--nb-bintang) center/contain no-repeat;animation:nb-putar 8s linear infinite}
.theme-brutal .nk-hero-photo{width:100%;max-width:330px;height:360px;margin:0 0 26px;border-radius:0;border:var(--nb-garis);box-shadow:var(--nb-bayang);position:relative;overflow:visible;rotate:-2deg}
.theme-brutal .nk-hero-photo::after{content:"BEST DAY EVER";position:absolute;left:-8px;bottom:18px;background:var(--nb-lime);border:2px solid #111;padding:6px 10px;font:700 .75rem/1 'Space Mono',monospace;rotate:-4deg}
.theme-brutal .nk-hero .nk-eyebrow{align-self:flex-start}
.theme-brutal .nk-big{font-size:3.4rem;margin-top:12px}
.theme-brutal .nk-hero:not(:has(.nk-hero-photo)) .nk-big::after{content:"";display:block;width:120px;height:44px;margin-top:14px;background:#111;-webkit-mask:var(--nb-panah) left center/contain no-repeat;mask:var(--nb-panah) left center/contain no-repeat}
.theme-brutal .nk-countdown{justify-content:flex-start;gap:0}
.theme-brutal .nk-countdown div{text-align:center;width:25%;max-width:82px;border-radius:0;border:3px solid #111;margin-left:-3px;padding:12px 0;background:#fff}
.theme-brutal .nk-countdown div:first-child{margin-left:0;background:var(--nb-lime)}
.theme-brutal .nk-countdown div:nth-child(3){background:var(--nb-pink)}
.theme-brutal .nk-countdown b{font:400 1.7rem/1 'Archivo Black',sans-serif;color:#111}
.theme-brutal .nk-countdown small{font:700 .6rem/1 'Space Mono',monospace;color:#111}

/* Save the date */
.theme-brutal .nk-savedate{background:var(--accent);border-block:3px solid #111}
.theme-brutal .nk-savedate .nk-heading{color:var(--accent-ink);border-color:var(--accent-ink)}
.theme-brutal .nk-savedate .nk-heading::before{color:var(--accent-ink)}
.theme-brutal .nk-bunting{display:none}
.theme-brutal .nk-calendar{max-width:340px;margin:0 auto;background:#fff;border:var(--nb-garis);box-shadow:8px 8px 0 #111}
.theme-brutal .nk-cal-month{font:400 1.3rem/1 'Archivo Black',sans-serif;text-transform:uppercase;background:var(--nb-lime);border-bottom:3px solid #111;padding:12px;margin:0}
.theme-brutal .nk-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);padding:10px;color:#111;font:700 .95rem/1 var(--font-body)}
.theme-brutal .nk-cal-grid b{font:700 .62rem/2.2 'Space Mono',monospace}
.theme-brutal .nk-cal-grid span{line-height:36px;position:relative;z-index:0}
.theme-brutal .nk-cal-sun{color:#e0245e}
.theme-brutal .nk-cal-day{color:#111!important}
.theme-brutal .nk-cal-day::before{content:"";position:absolute;inset:-6px;z-index:-1;background:var(--nb-pink);-webkit-mask:var(--nb-ledak) center/contain no-repeat;mask:var(--nb-ledak) center/contain no-repeat;animation:nb-putar 6s linear infinite}

/* Mempelai */
.theme-brutal .nk-ornament{display:none}
.theme-brutal #mempelai .nk-text{text-align:left}
.theme-brutal .nk-couple{gap:0}
.theme-brutal .nk-person{background:#fff;border:var(--nb-garis);box-shadow:var(--nb-bayang);padding:22px 18px;text-align:left}
.theme-brutal .nk-person:last-child{background:var(--nb-pink)}
.theme-brutal .nk-person h3{font-size:1.9rem}
.theme-brutal .nk-person p{color:#111;font-weight:600}
.theme-brutal .nk-amp{font:400 3.4rem/1 'Archivo Black',sans-serif;color:var(--accent);-webkit-text-stroke:2px #111;margin:-8px 0;position:relative;z-index:1}

/* Kartu acara = tiket berbarcode */
.theme-brutal .nk-card{counter-increment:nbt;position:relative;border-radius:0;border:var(--nb-garis);box-shadow:var(--nb-bayang);text-align:left;padding:22px 20px 70px;background:#fff}
.theme-brutal .nk-card::after{content:"";position:absolute;left:20px;right:20px;bottom:16px;height:36px;background:repeating-linear-gradient(90deg,#111 0 2px,transparent 2px 4px,#111 4px 7px,transparent 7px 9px,#111 9px 10px,transparent 10px 13px)}
.theme-brutal .nk-card::before{content:"TIKET \2116 0" counter(nbt);position:absolute;top:-14px;right:14px;background:var(--nb-lime);border:2px solid #111;padding:4px 8px;font:700 .68rem/1 'Space Mono',monospace}
.theme-brutal .nk-card h3{font:400 1.5rem/1.1 'Archivo Black',sans-serif;text-transform:uppercase;color:var(--accent);margin-bottom:12px}
.theme-brutal .nk-card .nk-actions{justify-content:flex-start}
.theme-brutal .nk-gift{padding-bottom:22px;background:var(--nb-lime)}
.theme-brutal .nk-gift::after{display:none}
.theme-brutal .nk-gift::before{content:"CASHLESS OK"}
.theme-brutal .nk-number{font:700 1.4rem/1 'Space Mono',monospace!important}
.theme-brutal .nk-yt{border-radius:0;border:var(--nb-garis);box-shadow:var(--nb-bayang)}

/* Galeri */
.theme-brutal .nk-gallery{gap:10px}
.theme-brutal .nk-photo{border-radius:0;border:var(--nb-garis);box-shadow:4px 4px 0 #111}

/* Form & ucapan */
.theme-brutal .nk-form input,.theme-brutal .nk-form select,.theme-brutal .nk-form textarea{border-radius:0;border:3px solid #111;box-shadow:4px 4px 0 #111;font-weight:600}
.theme-brutal .nk-form input:focus,.theme-brutal .nk-form select:focus,.theme-brutal .nk-form textarea:focus{outline:0;background:var(--nb-lime)}
.theme-brutal .nk-msg{border-radius:0;border:3px solid #111;box-shadow:4px 4px 0 #111}
.theme-brutal .nk-msg:nth-child(odd){background:#fff}.theme-brutal .nk-msg:nth-child(even){background:var(--nb-pink)}
.theme-brutal .nk-msg small{color:#111;background:var(--nb-lime);border:1.5px solid #111;padding:1px 5px}

/* Penutup & kaki */
.theme-brutal .nk-closing{background:#111;color:#fff}
.theme-brutal .nk-closing .nk-text{color:#fff}
.theme-brutal .nk-closing .nk-eyebrow{background:var(--nb-lime)}
.theme-brutal .nk-closing .nk-script{color:#fff}
.theme-brutal .nk-closing .nk-script span{border-color:#fff}
.theme-brutal .nk-footer{color:#111;font-family:'Space Mono',monospace}
.theme-brutal .nk-footer a{color:#111;background:var(--nb-lime);padding:2px 4px}

/* Pemutar lagu */
.theme-brutal .nk-player{display:flex;align-items:center;gap:12px;width:100%;max-width:320px;margin:26px 0 0;padding:10px;cursor:pointer;text-align:left;background:#fff;border:3px solid #111;box-shadow:5px 5px 0 #111;font:inherit;color:#111}
.theme-brutal .nk-player-icon{flex:none;width:42px;height:42px;background:var(--nb-lime);border:2px solid #111;position:relative}
.theme-brutal .nk-player-icon::before{content:"";position:absolute;left:14px;top:10px;border-style:solid;border-width:9px 0 9px 14px;border-color:transparent transparent transparent #111}
.theme-brutal:has(.nk-music.nk-playing) .nk-player-icon::before{left:12px;top:11px;width:5px;height:16px;border:0;background:#111;box-shadow:9px 0 0 #111}
.theme-brutal .nk-player-text{flex:1;display:flex;flex-direction:column}
.theme-brutal .nk-player-text b{font:700 1rem/1.2 var(--font-display);text-transform:uppercase}
.theme-brutal .nk-player-text small{font:700 .65rem/1.4 'Space Mono',monospace}
.theme-brutal .nk-player-wave{display:flex;align-items:flex-end;gap:2px;height:24px}
.theme-brutal .nk-player-wave i{width:5px;height:12px;background:#111}
.theme-brutal:has(.nk-music.nk-playing) .nk-player-wave i{animation:nb-eq .6s steps(3) infinite alternate}
.theme-brutal .nk-player-wave i:nth-child(2){height:20px;animation-delay:.2s!important}.theme-brutal .nk-player-wave i:nth-child(3){height:8px;animation-delay:.4s!important}.theme-brutal .nk-player-wave i:nth-child(4){height:16px;animation-delay:.1s!important}

/* Musik & menu bawah */
.theme-brutal .nk-music{border-radius:0;border:3px solid #111;box-shadow:3px 3px 0 #111;bottom:88px;background:var(--nb-lime);color:#111}
.theme-brutal:not(.nk-locked) .nk-nav{display:flex}
.theme-brutal .nk-nav{border-radius:0;background:#fff;border:3px solid #111;box-shadow:5px 5px 0 #111;backdrop-filter:none}
.theme-brutal .nk-nav a{border-radius:0;color:#111;font-family:'Space Mono',monospace;text-transform:uppercase;font-size:.55rem}
.theme-brutal .nk-nav a:hover,.theme-brutal .nk-nav a:focus-visible{background:var(--nb-lime);color:#111}

@keyframes nb-jalan{to{translate:-50% 0}}
@keyframes nb-putar{to{rotate:360deg}}
@keyframes nb-eq{from{scale:1 .3}to{scale:1 1}}
@media (prefers-reduced-motion:reduce){.theme-brutal *,.theme-brutal *::before,.theme-brutal *::after{animation:none!important}}
