:root.vvsw-no-scroll { overflow: hidden; }
.vvsw-root { --vvsw-accent:#b89a68; --vvsw-surface:#fbf8f2; --vvsw-ink:#24211d; --vvsw-muted:#746e65; font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; color:var(--vvsw-ink); box-sizing:border-box; }
.vvsw-root *, .vvsw-root *::before, .vvsw-root *::after { box-sizing:border-box; }
.vvsw-mode-popup { position:fixed; inset:0; z-index:999999; display:grid; place-items:center; padding:24px; opacity:0; transition:opacity .18s ease; }
.vvsw-mode-popup.is-open { opacity:1; }
.vvsw-mode-popup[hidden] { display:none !important; }
.vvsw-backdrop { position:absolute; inset:0; background:rgba(18,16,13,.68); backdrop-filter:blur(9px); -webkit-backdrop-filter:blur(9px); }
.vvsw-panel { position:relative; width:min(720px, 100%); max-height:calc(100vh - 40px); overflow:auto; overscroll-behavior:contain; background:linear-gradient(145deg,#fff 0%,var(--vvsw-surface) 100%); border:1px solid rgba(184,154,104,.42); border-radius:24px; padding:42px 46px 38px; box-shadow:0 30px 90px rgba(0,0,0,.28); text-align:center; }
.vvsw-mode-inline .vvsw-panel { max-height:none; margin:30px auto; box-shadow:0 20px 50px rgba(31,26,20,.12); }
.vvsw-panel::before { content:""; position:absolute; inset:11px; pointer-events:none; border:1px solid rgba(184,154,104,.18); border-radius:17px; }
.vvsw-close { position:absolute; right:15px; top:12px; z-index:3; border:0; background:transparent; color:#59544d; width:38px; height:38px; border-radius:50%; font-size:28px; line-height:1; cursor:pointer; }
.vvsw-close:hover { background:rgba(0,0,0,.05); }
.vvsw-brand-mark { width:58px; height:58px; margin:0 auto 12px; border:1px solid var(--vvsw-accent); border-radius:50%; display:grid; place-items:center; font:400 33px/1 Georgia,serif; color:var(--vvsw-accent); }
.vvsw-kicker, .vvsw-win-kicker { margin:0 0 14px; font-size:10px; letter-spacing:.24em; font-weight:700; color:#8a7550; }
.vvsw-root h2 { font:400 clamp(29px,5vw,43px)/1.08 Georgia, "Times New Roman", serif; margin:0 auto 13px; max-width:580px; color:#25211d; }
.vvsw-subhead { max-width:560px; margin:0 auto 25px; color:var(--vvsw-muted); font-size:15px; line-height:1.65; }
.vvsw-form { text-align:left; max-width:590px; margin:0 auto; }
.vvsw-field-row { margin-bottom:14px; }
.vvsw-grid-2 { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.vvsw-form label:not(.vvsw-check):not(.vvsw-hp) { display:block; font-size:12px; font-weight:700; letter-spacing:.03em; color:#504a43; }
.vvsw-form label span { color:#9e7540; }
.vvsw-form input[type="text"], .vvsw-form input[type="email"], .vvsw-form input[type="tel"], .vvsw-form select { width:100%; margin-top:7px; border:1px solid #d9d1c4; border-radius:10px; background:rgba(255,255,255,.9); color:#26221e; padding:12px 13px; font-size:15px; outline:none; transition:border-color .18s, box-shadow .18s; }
.vvsw-form input:focus, .vvsw-form select:focus { border-color:var(--vvsw-accent); box-shadow:0 0 0 3px rgba(184,154,104,.14); }
.vvsw-interest-label { display:block; margin:0 0 14px; font-size:12px; font-weight:700; letter-spacing:.03em; color:#504a43; }
.vvsw-interest-label select { display:block; }
.vvsw-check { display:flex; align-items:flex-start; gap:9px; font-size:11px; line-height:1.45; color:#625d55; margin:11px 2px; cursor:pointer; }
.vvsw-check input { margin-top:3px; accent-color:#8f744b; }
.vvsw-check span { color:inherit !important; }
.vvsw-hp { position:absolute !important; left:-99999px !important; opacity:0 !important; pointer-events:none !important; }
.vvsw-primary, .vvsw-secondary { appearance:none; border:0; text-decoration:none; cursor:pointer; display:inline-flex; align-items:center; justify-content:center; min-height:48px; padding:0 23px; border-radius:999px; font-weight:700; font-size:13px; letter-spacing:.02em; transition:transform .16s ease, opacity .16s ease, box-shadow .16s ease; }
.vvsw-primary { width:100%; margin-top:12px; background:#211f1c; color:#fff !important; box-shadow:0 9px 24px rgba(31,28,24,.16); }
.vvsw-primary:hover { transform:translateY(-1px); box-shadow:0 12px 26px rgba(31,28,24,.22); }
.vvsw-primary:disabled { opacity:.58; cursor:wait; transform:none; }
.vvsw-primary.is-loading::after { content:""; width:14px; height:14px; margin-left:9px; border:2px solid rgba(255,255,255,.4); border-top-color:#fff; border-radius:50%; animation:vvsw-spin .7s linear infinite; }
@keyframes vvsw-spin { to { transform:rotate(360deg); } }
.vvsw-secondary { background:transparent; border:1px solid #cfc4b3; color:#35302a; width:auto; }
.vvsw-form-message, .vvsw-card-message { min-height:20px; margin-top:10px; text-align:center; font-size:12px; color:#7e4c3b; }
.vvsw-legal { margin:13px auto 0; max-width:560px; font-size:9.5px; line-height:1.5; color:#89827a; text-align:center; }
.vvsw-legal a { color:#635743; text-decoration:underline; text-underline-offset:2px; }
.vvsw-step[hidden] { display:none !important; }
.vvsw-step.is-active { animation:vvsw-step-in .35s ease both; }
@keyframes vvsw-step-in { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:translateY(0); } }
.vvsw-cards { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin:25px 0 10px; }
.vvsw-card { min-height:205px; border:1px solid rgba(116,91,54,.3); border-radius:15px; background:linear-gradient(135deg,#e7dbc5 0%,#b99b6b 48%,#e9dfce 100%); color:#fff; position:relative; overflow:hidden; cursor:pointer; padding:18px 12px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; box-shadow:inset 0 0 0 4px rgba(255,255,255,.18),0 12px 22px rgba(65,52,34,.11); transition:transform .2s ease, opacity .2s ease, filter .2s ease; }
.vvsw-card::before { content:""; position:absolute; inset:-60%; background:linear-gradient(110deg,transparent 40%,rgba(255,255,255,.35) 50%,transparent 60%); transform:translateX(-40%); transition:transform .6s ease; }
.vvsw-card:hover { transform:translateY(-5px) rotate(-.5deg); }
.vvsw-card:hover::before { transform:translateX(40%); }
.vvsw-card:disabled:not(.is-selected) { opacity:.45; filter:grayscale(.25); transform:scale(.97); }
.vvsw-card.is-selected { outline:3px solid rgba(184,154,104,.28); outline-offset:3px; transform:translateY(-4px) scale(1.025); }
.vvsw-card.is-thinking .vvsw-card-label::after { content:" …"; }
.vvsw-card-v { position:relative; font:400 54px/1 Georgia,serif; text-shadow:0 2px 10px rgba(0,0,0,.12); }
.vvsw-card-label { position:relative; font-size:11px; letter-spacing:.19em; font-weight:800; }
.vvsw-card-small { position:relative; font:italic 13px Georgia,serif; opacity:.92; }
.vvsw-scratch-wrap { width:min(560px,100%); min-height:245px; margin:25px auto 9px; position:relative; border-radius:18px; overflow:hidden; border:1px solid rgba(184,154,104,.35); box-shadow:0 14px 35px rgba(48,38,25,.12); background:#fff; }
.vvsw-prize-underlay { position:absolute; inset:0; padding:30px 28px; display:flex; flex-direction:column; align-items:center; justify-content:center; background:radial-gradient(circle at 50% 0%,#fff 0%,var(--vvsw-surface) 70%); }
.vvsw-prize-icon { color:var(--vvsw-accent); font-size:25px; margin-bottom:4px; }
.vvsw-prize-underlay h3 { margin:0 0 9px; font:400 clamp(25px,4vw,34px)/1.08 Georgia,serif; color:#2d2924; }
.vvsw-prize-underlay p { margin:0 auto 12px; max-width:450px; font-size:13px; line-height:1.5; color:#6c655c; }
.vvsw-code-line { padding:8px 14px; border:1px dashed #c7b18c; border-radius:8px; font-size:12px; color:#675a46; background:rgba(255,255,255,.75); }
.vvsw-code-line strong { letter-spacing:.08em; color:#2a251f; }
.vvsw-expiry { margin-top:7px; font-size:10px; color:#8a8178; }
.vvsw-scratch-canvas { position:absolute; inset:0; width:100%; height:100%; cursor:crosshair; touch-action:none; transition:opacity .2s ease; }
.vvsw-scratch-canvas.is-cleared { pointer-events:none; opacity:0; }
.vvsw-scratch-help { margin:8px auto 0; font-size:11px; color:#756e65; }
.vvsw-reveal-accessible { border:0; background:transparent; color:#756044; font-size:10px; text-decoration:underline; cursor:pointer; margin-top:6px; }
.vvsw-after-reveal { margin-top:18px; display:flex; flex-wrap:wrap; gap:9px; justify-content:center; align-items:center; animation:vvsw-step-in .4s ease both; }
.vvsw-after-reveal[hidden] { display:none !important; }
.vvsw-after-reveal .vvsw-primary { width:auto; margin:0; }
.vvsw-email-note { flex:1 0 100%; margin:3px 0 0; font-size:10px; color:#857e74; }
@media (max-width:640px) {
    .vvsw-mode-popup { padding:10px; align-items:end; }
    .vvsw-panel { padding:34px 19px 25px; border-radius:22px 22px 12px 12px; max-height:92vh; }
    .vvsw-brand-mark { width:49px; height:49px; font-size:29px; }
    .vvsw-grid-2 { grid-template-columns:1fr; gap:0; }
    .vvsw-grid-2 label + label { margin-top:14px; }
    .vvsw-cards { gap:7px; }
    .vvsw-card { min-height:154px; padding:10px 5px; border-radius:11px; }
    .vvsw-card-v { font-size:40px; }
    .vvsw-card-label { font-size:9px; letter-spacing:.11em; }
    .vvsw-card-small { font-size:10px; }
    .vvsw-scratch-wrap { min-height:230px; }
    .vvsw-prize-underlay { padding:22px 18px; }
    .vvsw-after-reveal { flex-direction:column; }
    .vvsw-after-reveal .vvsw-primary, .vvsw-after-reveal .vvsw-secondary { width:100%; }
}
@media (prefers-reduced-motion: reduce) {
    .vvsw-root *, .vvsw-root *::before, .vvsw-root *::after { animation:none !important; transition:none !important; }
}
