/* Nuevo Vibe-Check , vollständig gekapselt unter #nuevo-vibecheck (kein Leak ins Theme, Theme leakt nicht rein) */

@font-face{font-family:'Neue Montreal';src:url('fonts/NeueMontreal-Light.ttf') format('truetype');font-weight:300;font-display:swap;}
@font-face{font-family:'Neue Montreal';src:url('fonts/NeueMontreal-Regular.ttf') format('truetype');font-weight:400;font-display:swap;}
@font-face{font-family:'Neue Montreal';src:url('fonts/NeueMontreal-Medium.ttf') format('truetype');font-weight:500;font-display:swap;}
@font-face{font-family:'Neue Montreal';src:url('fonts/NeueMontreal-Bold.ttf') format('truetype');font-weight:700;font-display:swap;}

#nuevo-vibecheck{
  --bg:#030303; --surface:#121011; --surface2:#1a1718; --border:#2a2624; --border2:#3a3633;
  --text:#f4f1ef; --muted:#8c847f; --faint:#5f5854; --accent:#C8102E;
  position:relative; overflow:hidden; background:var(--bg); color:var(--text);
  font-family:'Neue Montreal',-apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,sans-serif;
  -webkit-font-smoothing:antialiased; min-height:88vh; font-size:16px; line-height:1.5;
}
#nuevo-vibecheck *{box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
/* Element-Resets, damit Theme-Styles nicht reinbluten */
#nuevo-vibecheck button{margin:0;font:inherit;color:inherit;background:none;border:none;text-align:left;}
#nuevo-vibecheck input{font:inherit;margin:0;}
#nuevo-vibecheck a{color:inherit;text-decoration:none;}
#nuevo-vibecheck p,#nuevo-vibecheck h1,#nuevo-vibecheck h2{margin:0;padding:0;}

/* Themes (per Shortcode: [vibecheck theme="red"] / "light"; Default dunkel) */
#nuevo-vibecheck[data-theme="red"]{--bg:#C8102E;--surface:#a60d26;--surface2:#960c22;--border:rgba(255,255,255,.24);--border2:rgba(255,255,255,.46);--text:#fff;--muted:rgba(255,255,255,.82);--faint:rgba(255,255,255,.6);--accent:#fff;}
#nuevo-vibecheck[data-theme="red"] .btn{background:#fff;color:#C8102E;}
#nuevo-vibecheck[data-theme="red"] .opt.sel{background:rgba(255,255,255,.14);}
#nuevo-vibecheck[data-theme="red"] .card.sel .card-dim{background:linear-gradient(180deg,rgba(255,255,255,.2),rgba(150,12,34,.85));}
#nuevo-vibecheck[data-theme="red"] .res-match{border-left-color:#fff;}
#nuevo-vibecheck[data-theme="light"]{--bg:#f4f1ef;--surface:#ffffff;--surface2:#efeae6;--border:#e3ddd7;--border2:#cdc5bd;--text:#1a1614;--muted:#6b6460;--faint:#9a938d;--accent:#C8102E;}
#nuevo-vibecheck[data-theme="light"] .card-txt{color:#fff;}

#nuevo-vibecheck::before{content:"";position:absolute;inset:0;pointer-events:none;z-index:1;opacity:.05;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");}

#nuevo-vibecheck .vc-top{position:absolute;top:0;left:0;right:0;height:3px;z-index:5;}
#nuevo-vibecheck .vc-bar{height:3px;background:var(--accent);width:0;transition:width .45s cubic-bezier(.2,.8,.2,1);}
#nuevo-vibecheck .vc-wrap{position:relative;z-index:2;max-width:600px;margin:0 auto;padding:54px 22px;
  min-height:88vh;display:flex;flex-direction:column;justify-content:center;}

#nuevo-vibecheck .eyebrow{font-size:10px;letter-spacing:.34em;text-transform:uppercase;color:var(--accent);font-weight:700;margin-bottom:18px;}
#nuevo-vibecheck .idx{font-size:10px;letter-spacing:.2em;color:var(--faint);font-weight:700;margin-bottom:14px;}
#nuevo-vibecheck h1{font-family:'Neue Montreal',sans-serif;text-transform:uppercase;font-size:clamp(32px,8.5vw,50px);font-weight:400;letter-spacing:-.03em;line-height:1.0;margin:0 0 14px;}
#nuevo-vibecheck h1 em{font-style:normal;color:var(--accent);}
#nuevo-vibecheck .q{font-family:'Neue Montreal',sans-serif;text-transform:uppercase;font-size:clamp(27px,7vw,40px);font-weight:400;letter-spacing:-.025em;line-height:1.04;margin:0 0 8px;}
#nuevo-vibecheck .hint{color:var(--muted);font-size:15px;line-height:1.55;margin:0 0 26px;max-width:42ch;}
#nuevo-vibecheck .scene{font-size:14px;color:var(--muted);margin:0 0 22px;}

#nuevo-vibecheck .screen{display:none;animation:nvfade .5s cubic-bezier(.2,.8,.2,1);}
#nuevo-vibecheck .screen.active{display:block;}
@keyframes nvfade{from{opacity:0;transform:translateY(14px);}to{opacity:1;transform:none;}}

/* Auswahl wie im Kennenlernfragebogen: Hairline-Liste + runder Marker, der rot füllt */
#nuevo-vibecheck .opts{display:flex;flex-direction:column;margin-top:18px;border-top:1px solid var(--border);counter-reset:opt;}
#nuevo-vibecheck .opt{display:flex;align-items:center;gap:16px;width:100%;text-align:left;background:none;border:0;border-bottom:1px solid var(--border);padding:17px 4px;color:var(--text);font-family:inherit;font-size:18px;font-weight:500;line-height:1.3;cursor:pointer;transition:padding .18s;}
#nuevo-vibecheck .opt::before{counter-increment:opt;content:counter(opt);width:26px;height:26px;border-radius:50%;border:1.5px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;color:var(--faint);flex:none;transition:background .18s,border-color .18s,color .18s;}
#nuevo-vibecheck .opt:hover{padding-left:12px;}
#nuevo-vibecheck .opt:hover::before{border-color:var(--border2);}
#nuevo-vibecheck .opt.sel::before{background:var(--accent);border-color:var(--accent);color:#fff;}
#nuevo-vibecheck[data-theme="red"] .opt.sel::before{color:#C8102E;}

/* Venue = Bild-Kacheln wie der Vibe-Picker im Kennenlernfragebogen */
#nuevo-vibecheck .vibe-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:18px;}
#nuevo-vibecheck .vibe{position:relative;aspect-ratio:4/3;border-radius:2px;overflow:hidden;border:2px solid transparent;cursor:pointer;background:#15110f;transition:transform .4s cubic-bezier(.16,1,.3,1),box-shadow .4s ease,border-color .3s ease,opacity .45s ease;}
#nuevo-vibecheck .vibe-img{position:absolute;inset:0;background-size:cover;background-position:center;transform:scale(1.04);filter:saturate(.82) brightness(.7);transition:filter .6s ease,transform 1.3s cubic-bezier(.16,1,.3,1);}
#nuevo-vibecheck .vibe .tint{position:absolute;inset:0;background:var(--accent);mix-blend-mode:color;opacity:0;transition:opacity .5s ease;z-index:1;}
#nuevo-vibecheck .vibe::after{content:'';position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(10,8,8,.05) 30%,rgba(10,8,8,.85));}
#nuevo-vibecheck .vibe:hover{transform:translateY(-4px);}
#nuevo-vibecheck .vibe:hover .vibe-img{filter:saturate(1.02) brightness(.92);transform:scale(1.11);}
#nuevo-vibecheck .vibe .lbl{position:absolute;left:14px;right:14px;bottom:12px;z-index:2;color:#fff;}
#nuevo-vibecheck .vibe .lbl b{display:block;font-size:15px;font-weight:600;line-height:1.12;text-shadow:0 1px 8px rgba(0,0,0,.5);}
#nuevo-vibecheck .vibe .lbl span{display:block;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.78);margin-top:4px;}
#nuevo-vibecheck .vibe.sel{border-color:var(--accent);box-shadow:0 14px 34px -12px rgba(200,16,46,.55);}
#nuevo-vibecheck .vibe.sel .vibe-img{filter:saturate(1.12) brightness(1);}
#nuevo-vibecheck .vibe.sel .tint{opacity:.34;}
#nuevo-vibecheck .vibe-grid.has-sel .vibe:not(.sel){opacity:.6;}
#nuevo-vibecheck .vibe .rank{position:absolute;top:8px;left:8px;z-index:3;width:24px;height:24px;border-radius:50%;background:var(--accent);color:#fff;display:none;align-items:center;justify-content:center;font-size:12px;font-weight:700;box-shadow:0 4px 14px rgba(200,16,46,.5);}
#nuevo-vibecheck .vibe.sel .rank{display:flex;}
#nuevo-vibecheck .card-bg{position:absolute;inset:0;background-size:cover;background-position:center;z-index:0;}
#nuevo-vibecheck .card-dim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,10,10,.2),rgba(10,10,10,.82));z-index:1;}
#nuevo-vibecheck .card.sel .card-dim{background:linear-gradient(180deg,rgba(200,16,46,.22),rgba(10,10,10,.88));}
#nuevo-vibecheck .card-txt{position:relative;z-index:2;padding:20px 18px;min-height:104px;display:flex;align-items:flex-end;font-size:15.5px;line-height:1.42;font-weight:600;color:#fff;text-align:left;text-shadow:0 1px 10px rgba(0,0,0,.55);}

#nuevo-vibecheck .field{width:100%;background:var(--surface);border:1px solid var(--border);border-radius:2px;padding:15px 16px;color:var(--text);font-size:16px;font-family:inherit;margin-bottom:11px;}
#nuevo-vibecheck .field:focus{outline:none;border-color:var(--accent);}
#nuevo-vibecheck .field::placeholder{color:var(--faint);}
#nuevo-vibecheck .sub{font-size:12px;color:var(--faint);margin:-4px 2px 14px;}

#nuevo-vibecheck .btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--accent);color:#fff;border:none;border-radius:0;padding:17px 26px;font-size:13px;font-weight:500;text-transform:uppercase;letter-spacing:.05em;cursor:pointer;font-family:inherit;transition:opacity .15s,transform .1s;align-self:flex-start;}
#nuevo-vibecheck .btn:hover{opacity:.92;}
#nuevo-vibecheck .btn:active{transform:scale(.99);}
#nuevo-vibecheck .btn:disabled{opacity:.4;}
#nuevo-vibecheck .btnrow{margin-top:24px;}
#nuevo-vibecheck .back{background:none;border:none;color:var(--faint);font-size:13px;font-family:inherit;cursor:pointer;margin-top:18px;padding:6px 0;letter-spacing:.02em;}
#nuevo-vibecheck .back:hover{color:var(--muted);}

#nuevo-vibecheck .res-eyebrow{font-size:10px;letter-spacing:.34em;text-transform:uppercase;color:var(--muted);font-weight:700;margin-bottom:12px;}
#nuevo-vibecheck .res-name{font-family:'Neue Montreal',sans-serif;font-size:clamp(34px,10vw,56px);font-weight:400;letter-spacing:-.03em;line-height:1.0;color:var(--accent);text-transform:uppercase;margin:0 0 16px;}
#nuevo-vibecheck .res-hit{font-size:19px;font-weight:700;line-height:1.32;margin:0 0 20px;letter-spacing:-.01em;}
#nuevo-vibecheck .res-body{font-size:16px;line-height:1.6;color:var(--text);margin:0 0 16px;}
#nuevo-vibecheck .res-match{font-size:15.5px;line-height:1.55;color:var(--text);border-left:2px solid var(--accent);padding-left:15px;margin:0 0 26px;}
#nuevo-vibecheck .res-match b{color:var(--accent);font-weight:700;}
#nuevo-vibecheck .res-pull{font-size:15px;color:var(--muted);line-height:1.55;margin:0 0 22px;}
#nuevo-vibecheck .res-soft{display:block;text-align:center;margin-top:16px;color:var(--muted);font-size:13px;text-decoration:none;}
#nuevo-vibecheck .res-soft:hover{color:var(--text);}
#nuevo-vibecheck .psych{font-size:11px;color:var(--faint);letter-spacing:.02em;margin-top:30px;line-height:1.5;}
#nuevo-vibecheck .sign{margin-top:30px;color:var(--faint);font-size:11px;letter-spacing:.26em;text-transform:uppercase;text-align:center;}
#nuevo-vibecheck .err{color:var(--accent);font-size:13px;margin-top:10px;min-height:16px;}
