.npts-vortex-shell { box-sizing: border-box; overflow: hidden; padding: 42px 20px 16px; border-radius: 22px; color: #fff; background: var(--npts-bg); background: radial-gradient(circle at 50% 48%, color-mix(in srgb,var(--npts-bg),#fff 12%),var(--npts-bg) 68%); }
.npts-vortex-heading { position: relative; z-index: 2; max-width: 760px; margin: 0 auto 4px; text-align: center; }
.npts-vortex-heading h2 { margin: 0 0 8px; color: #fff; font-size: clamp(30px,5vw,54px); line-height: 1.05; }.npts-vortex-heading p { margin: 0; color: rgba(255,255,255,.78); font-size: 16px; }
.npts-vortex { position: relative; height: var(--npts-height); perspective: 1100px; touch-action: pan-y; }
.npts-vortex-stage { position: absolute; inset: 0 0 58px; transform-style: preserve-3d; cursor: grab; }.npts-vortex-stage:active { cursor: grabbing; }
.npts-review-card { position: absolute; top: 50%; left: 50%; box-sizing: border-box; width: min(var(--npts-card-width),82vw); min-height: 260px; padding: 27px 26px 23px; overflow: hidden; border: 1px solid rgba(255,255,255,.72); border-radius: 18px; color: #1e293b; background: rgba(255,255,255,.96); box-shadow: 0 20px 55px rgba(0,0,0,.32); transform-origin: center; transition: box-shadow .2s ease; backface-visibility: hidden; will-change: transform,opacity; cursor: pointer; }
.npts-review-card:focus-visible { outline: 4px solid var(--npts-accent); outline-offset: 3px; box-shadow: 0 24px 70px rgba(0,0,0,.45); }
.npts-quote-mark { position: absolute; top: -18px; right: 14px; color: color-mix(in srgb,var(--npts-accent),transparent 80%); font: 120px/1 Georgia,serif; }
.npts-stars { position: relative; color: var(--npts-accent); font-size: 18px; letter-spacing: 2px; }.npts-stars span { color: #cbd5e1; }
.npts-review-card blockquote { position: relative; margin: 18px 0 22px; padding: 0; border: 0; color: #334155; font: 500 16px/1.55 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; }
.npts-review-card footer { display: flex; align-items: center; flex-wrap: wrap; gap: 4px 10px; border: 0; background: transparent; }.npts-review-card footer strong { width: 100%; color: #0f172a; font-size: 16px; }.npts-review-card footer small { color: #64748b; }.npts-review-card footer a { margin-left: auto; color: #475569; font-size: 11px; }.npts-verified { padding: 3px 7px; border-radius: 999px; color: #166534; background: #dcfce7; font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
.npts-card-summary { transition: opacity .2s ease,transform .2s ease; }
.npts-card-full { position: absolute; z-index: 3; inset: 0; box-sizing: border-box; padding: 25px; overflow-y: auto; color: #1e293b; background: rgba(255,255,255,.985); opacity: 0; transform: translateY(8px); transition: opacity .2s ease,transform .2s ease; pointer-events: none; }
.npts-card-full blockquote { margin: 0 0 18px; font-size: 15px; line-height: 1.5; }.npts-card-full>span { color: #64748b; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; }
.npts-review-data { display: none!important; }
@media(hover:hover){.npts-review-card:hover .npts-card-summary,.npts-review-card:focus .npts-card-summary{opacity:0;transform:translateY(-7px)}.npts-review-card:hover .npts-card-full,.npts-review-card:focus .npts-card-full{opacity:1;transform:none;pointer-events:auto}}
.npts-vortex-controls { position: absolute; z-index: 150; right: 0; bottom: 5px; left: 0; display: flex; justify-content: center; gap: 9px; }.npts-vortex-controls button { display: grid; place-items: center; width: 42px; height: 42px; padding: 0; border: 1px solid rgba(255,255,255,.35); border-radius: 50%; color: #fff; background: rgba(255,255,255,.12); font-size: 23px; cursor: pointer; }.npts-vortex-controls button:hover,.npts-vortex-controls button:focus-visible { border-color: var(--npts-accent); background: var(--npts-accent); outline: none; }
.npts-attribution { margin: 0; text-align: center; color: rgba(255,255,255,.58); font-size: 11px; }.npts-attribution a { color: inherit; font-weight: 700; }
.npts-more-reviews { position: relative; z-index: 160; margin: -2px 0 12px; text-align: center; }.npts-more-reviews a { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; box-sizing: border-box; padding: 10px 20px; border: 2px solid var(--npts-accent); border-radius: 999px; color: #fff; background: var(--npts-accent); font-size: 14px; font-weight: 800; line-height: 1.2; text-decoration: none; box-shadow: 0 8px 22px rgba(0,0,0,.2); }.npts-more-reviews a:hover,.npts-more-reviews a:focus-visible { color: var(--npts-accent); background: #fff; outline: 3px solid color-mix(in srgb,var(--npts-accent),transparent 65%); }
.npts-compact { padding: 28px 18px 14px; border-radius: 18px; }.npts-compact .npts-vortex-heading { max-width: 680px; }.npts-compact .npts-vortex-heading h2 { margin-bottom: 5px; font-size: clamp(27px,4vw,42px); }.npts-compact .npts-vortex-heading p { font-size: 14px; }.npts-compact .npts-review-card { min-height: 230px; padding: 22px 23px 19px; border-radius: 15px; }.npts-compact .npts-review-card blockquote { margin: 14px 0 17px; font-size: 15px; }.npts-compact .npts-quote-mark { font-size: 98px; }.npts-compact .npts-vortex-controls button { width: 38px; height: 38px; font-size: 20px; }
.npts-review-modal[hidden] { display: none!important; }.npts-review-modal { position: fixed; z-index: 999999; inset: 0; display: grid; place-items: center; box-sizing: border-box; padding: 20px; }.npts-modal-backdrop { position: absolute; inset: 0; background: rgba(2,6,23,.78); backdrop-filter: blur(5px); }.npts-modal-dialog { position: relative; width: min(640px,100%); max-height: min(760px,calc(100vh - 40px)); box-sizing: border-box; padding: 38px 42px; overflow-y: auto; border: 1px solid rgba(255,255,255,.55); border-radius: 20px; color: #1e293b; background: #fff; box-shadow: 0 30px 90px rgba(0,0,0,.48); }.npts-modal-dialog h2 { margin: 7px 50px 18px 0; color: #0f172a; font-size: clamp(25px,5vw,36px); line-height: 1.1; }.npts-modal-close { position: absolute; top: 14px; right: 14px; display: grid; place-items: center; width: 42px; height: 42px; padding: 0; border: 0; border-radius: 50%; color: #334155; background: #eef2f7; font-size: 30px; line-height: 1; cursor: pointer; }.npts-modal-close:hover,.npts-modal-close:focus-visible { color: #fff; background: var(--npts-accent); outline: 3px solid color-mix(in srgb,var(--npts-accent),transparent 65%); }.npts-modal-stars { color: var(--npts-accent); font-size: 20px; letter-spacing: 2px; }.npts-modal-review { margin: 0 0 25px; padding: 0; border: 0; color: #334155; font: 500 18px/1.65 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; white-space: pre-line; }.npts-modal-person { display: flex; flex-wrap: wrap; gap: 4px 10px; margin: 0 0 15px; }.npts-modal-person strong { width: 100%; color: #0f172a; }.npts-modal-person span { color: #64748b; }.npts-modal-source { color: #475569; font-size: 13px; font-weight: 700; }.npts-modal-open { overflow: hidden!important; }
.npts-static .npts-vortex-stage { display: flex; gap: 15px; overflow-x: auto; padding: 28px 4px; scroll-snap-type: x mandatory; transform: none; }.npts-static .npts-review-card { position: relative; top: auto; left: auto; flex: 0 0 min(var(--npts-card-width),82vw); opacity: 1!important; filter: none!important; transform: none!important; scroll-snap-align: center; }.npts-static .npts-vortex-controls { display: none; }
.npts-review-form-wrap { box-sizing: border-box; max-width: 860px; margin: 30px auto; padding: 30px; border: 1px solid #dbe2ea; border-radius: 16px; background: #fff; box-shadow: 0 12px 36px rgba(15,23,42,.08); }.npts-review-form-wrap h2 { margin-top: 0; }.npts-form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }.npts-form-grid label span { display: block; margin-bottom: 6px; font-weight: 700; }.npts-form-grid input,.npts-form-grid select,.npts-form-grid textarea { box-sizing: border-box; width: 100%; padding: 10px 12px; border: 1px solid #bdc7d4; border-radius: 7px; }.npts-form-wide { grid-column: 1/-1; }.npts-consent { display: block; margin: 16px 0; }.npts-review-form button { padding: 12px 20px; border: 0; border-radius: 7px; color: #fff; background: #10203a; font-weight: 700; cursor: pointer; }.npts-hp { position: absolute!important; left: -99999px!important; width: 1px!important; height: 1px!important; overflow: hidden!important; }.npts-form-success { padding: 15px; border-left: 4px solid #16a34a; background: #f0fdf4; }.npts-form-error { margin-bottom: 16px; padding: 15px; border-left: 4px solid #dc2626; background: #fef2f2; }.npts-empty { padding: 14px; border-left: 4px solid #f0932b; background: #fff7ed; }
@media(max-width:720px){.npts-vortex-shell{padding:30px 10px 12px;border-radius:14px}.npts-vortex{height:max(520px,calc(var(--npts-height)*.82))}.npts-vortex-stage{bottom:54px}.npts-review-card{min-height:250px;padding:23px 21px}.npts-compact{padding-top:24px}.npts-compact .npts-vortex{height:max(460px,calc(var(--npts-height)*.86))}.npts-compact .npts-review-card{min-height:230px}.npts-modal-dialog{max-height:calc(100dvh - 24px);padding:32px 23px 27px;border-radius:16px}.npts-modal-review{font-size:16px}.npts-form-grid{grid-template-columns:1fr}.npts-form-wide{grid-column:auto}.npts-review-form-wrap{padding:22px 18px}}
@media(prefers-reduced-motion:reduce){.npts-review-card{transition:none}}
