/* VNLIKE holiday coat v1. All storefront rules are opt-in and scoped. */
body[data-vnl-holiday]{background-color:var(--vnl-bg);background-image:linear-gradient(color-mix(in srgb,var(--vnl-a) 5%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--vnl-a) 5%,transparent) 1px,transparent 1px)}
body[data-vnl-holiday]>.top,body[data-vnl-holiday]>section,body[data-vnl-holiday]>.site-footer{position:relative;z-index:1}
body[data-vnl-holiday]>header{border-bottom-color:color-mix(in srgb,var(--vnl-a) 28%,transparent);background:color-mix(in srgb,var(--vnl-bg) 90%,transparent)}
body[data-vnl-holiday]>.hero .pill{color:var(--vnl-a);border-color:color-mix(in srgb,var(--vnl-a) 30%,transparent);background:color-mix(in srgb,var(--vnl-a) 8%,transparent)}
body[data-vnl-holiday]>.hero .actions>.btn:not(.ghost),body[data-vnl-holiday]>.store .btn:not(.ghost):not(.danger){background:linear-gradient(120deg,color-mix(in srgb,var(--vnl-a) 50%,#35201c),color-mix(in srgb,var(--vnl-b) 45%,#261a3a));border:1px solid color-mix(in srgb,var(--vnl-a) 35%,transparent)}
body[data-vnl-holiday]>.store .product,body[data-vnl-holiday]>.store .pcard{border-color:color-mix(in srgb,var(--vnl-a) 24%,transparent)}
body[data-vnl-holiday]>.site-footer{border-top-color:color-mix(in srgb,var(--vnl-a) 25%,transparent)}
.vnl-world{position:fixed;inset:0;z-index:0;overflow:hidden;pointer-events:none!important;contain:strict;isolation:isolate}
.vnl-world *{pointer-events:none!important}
.vnl-world.vnl-preview-world{position:absolute}
.vnl-atmosphere{position:absolute;inset:0;background:radial-gradient(ellipse at 85% 13%,color-mix(in srgb,var(--vnl-a) 15%,transparent),transparent 36%),radial-gradient(ellipse at 3% 80%,color-mix(in srgb,var(--vnl-b) 12%,transparent),transparent 40%),linear-gradient(155deg,transparent 40%,color-mix(in srgb,var(--vnl-b) 5%,transparent));opacity:.9}
.vnl-scenery{position:absolute;inset:0;width:100%;height:100%;overflow:hidden}
.vnl-particles{position:absolute;inset:0;width:100%;height:100%;opacity:.82}
.vnl-orbit{transform-origin:1180px 185px;animation:vnl-orbit 90s linear infinite}
.vnl-sway{transform-box:fill-box;transform-origin:50% 0%;animation:vnl-sway 6s ease-in-out infinite alternate}
.vnl-drift{animation:vnl-drift 9s ease-in-out infinite alternate}
.vnl-glow{animation:vnl-glow 5s ease-in-out infinite alternate}
.vnl-world[data-paused="true"] *, .vnl-world[data-motion="false"] *{animation-play-state:paused!important}
.vnl-greeting{position:absolute;top:14px;left:50%;transform:translateX(-50%);max-width:90%;padding:7px 16px;border:1px solid color-mix(in srgb,var(--vnl-a) 25%,transparent);border-radius:100px;color:var(--vnl-a);background:color-mix(in srgb,var(--vnl-bg) 86%,transparent);font-size:11px;letter-spacing:.07em;text-align:center;pointer-events:none;white-space:normal}
@keyframes vnl-orbit{to{transform:rotate(360deg)}}
@keyframes vnl-sway{from{transform:rotate(-4deg)}to{transform:rotate(4deg)}}
@keyframes vnl-drift{to{transform:translate(0,-16px)}}
@keyframes vnl-glow{from{opacity:.5}to{opacity:1}}
/* Appearance studio */
#admin-appearance{--studio-line:#26334a;--studio-muted:#a2aec3;color:#edf1fb;max-width:1440px;margin:auto}
.vnl-studio-head{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:4px 0 24px}
.vnl-eyebrow{display:block;color:#9eb5de;font-size:10px;font-weight:800;letter-spacing:.18em;margin-bottom:10px}
.vnl-studio-head h1{font-size:32px;letter-spacing:-1px;margin:0 0 8px}
#admin-appearance p{font-size:12px;line-height:1.65;color:var(--studio-muted);margin:6px 0}
.vnl-live-status{padding:10px 14px;border:1px solid #344330;border-radius:99px;background:#18231e;color:#b5e8bd;font-size:11px;white-space:nowrap}
.vnl-studio-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.85fr);gap:22px;align-items:start}
.vnl-preview-box{position:relative;overflow:hidden;border-radius:20px;border:1px solid #334059;background:#101728;min-height:350px;isolation:isolate}
.vnl-preview-bar{position:relative;z-index:2;display:flex;justify-content:space-between;padding:15px 18px;border-bottom:1px solid #ffffff12;font-size:10px;letter-spacing:.13em;color:#c1cadd;background:#080f1866}
.vnl-preview-bar b{color:var(--vnl-a,#b3c0ef)}
.vnl-demo{position:relative;z-index:1;padding:50px 30px 24px;min-height:300px;pointer-events:none}
.vnl-demo small{font-size:9px;letter-spacing:.17em;color:var(--vnl-a,#a0b1ee)}
.vnl-demo h2{font-size:40px;letter-spacing:-2px;margin:10px 0;color:#fff}
#admin-appearance .vnl-demo p{color:#d0d8e6;max-width:65%;font-size:11px;min-height:35px}
.vnl-demo-button{display:inline-block;padding:10px 14px;border-radius:8px;background:linear-gradient(100deg,var(--vnl-a,#b1b7ff),var(--vnl-b,#b5a6ff));color:#182034;font-weight:800;font-size:10px;margin-top:10px}
.vnl-demo-products{display:flex;gap:8px;margin-top:22px;max-width:86%}
.vnl-demo-products i{width:32%;height:40px;border:1px solid color-mix(in srgb,var(--vnl-a,#b7bcff) 23%,transparent);background:#10192dd9;border-radius:9px}
.vnl-preview-caption{display:flex;align-items:center;justify-content:space-between;padding:14px 3px;gap:10px;font-size:11px;color:var(--studio-muted)}
.vnl-preview-caption strong{display:block;color:#fff;font-size:15px;margin-bottom:4px}
.vnl-preview-caption button{border:1px solid #35415c;background:#131d30;border-radius:9px;color:#cbd6ee;padding:10px 12px;font-size:11px}
.vnl-controls{border:1px solid var(--studio-line);border-radius:18px;background:linear-gradient(145deg,#141f32,#0e1728);padding:21px}
.vnl-controls h3{font-size:15px;margin:0 0 17px}
.vnl-switch-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 0;border-bottom:1px solid #ffffff0c;cursor:pointer}
.vnl-switch-row strong{font-size:12px;display:block}.vnl-switch-row small{font-size:10px;line-height:1.5;color:var(--studio-muted);display:block;margin-top:4px}
.vnl-toggle{appearance:none;-webkit-appearance:none;width:42px;min-width:42px;height:24px;border-radius:30px;background:#36415a;position:relative;border:0;cursor:pointer;transition:background .2s}
.vnl-toggle:before{content:"";position:absolute;left:3px;top:3px;width:18px;height:18px;background:white;border-radius:50%;transition:transform .2s}
.vnl-toggle:checked{background:#758afa}.vnl-toggle:checked:before{transform:translateX(18px)}
.vnl-toggle:focus-visible{outline:2px solid #c4d0ff;outline-offset:3px}
.vnl-field{display:block;margin-top:17px;font-size:11px;color:#c9d5ea}.vnl-field select{margin-top:8px;width:100%;height:40px;border-radius:9px;padding:0 10px;background:#0e1628;color:#e1e8f6;border:1px solid #34415b;font-size:11px}
.vnl-save-row{display:flex;gap:10px;margin-top:20px}.vnl-save-row .btn{font-size:12px;flex:1}.vnl-save-row .btn.ghost{flex:0;white-space:nowrap}
#vnlThemeMessage{min-height:22px;font-size:11px;line-height:1.6;margin-top:12px;color:#b9c9e5}
#vnlThemeMessage[data-error="true"]{color:#ffafb6}
.vnl-library-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:28px 0 16px}.vnl-library-heading h2{font-size:18px;margin:0}.vnl-library-heading span{font-size:11px;color:var(--studio-muted)}
.vnl-theme-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.vnl-theme-card{appearance:none;position:relative;overflow:hidden;text-align:left;border:1px solid #2a354a;border-radius:14px;background:#111b2c;padding:0;color:#edf2ff;transition:border-color .2s,transform .2s;min-width:0}
.vnl-theme-card:hover{transform:translateY(-3px);border-color:var(--vnl-a)}
.vnl-theme-card[aria-pressed="true"]{border-color:var(--vnl-a);box-shadow:0 0 0 2px color-mix(in srgb,var(--vnl-a) 20%,transparent)}
.vnl-theme-art{height:96px;position:relative;overflow:hidden;background:radial-gradient(ellipse at 80% 25%,color-mix(in srgb,var(--vnl-a) 22%,transparent),transparent 65%),var(--vnl-bg)}
.vnl-theme-art svg{width:100%;height:100%;opacity:.9}
.vnl-theme-copy{padding:12px}.vnl-theme-copy strong{display:block;font-size:12px;margin-bottom:5px}.vnl-theme-copy small{font-size:10px;color:#9aaac2}
.vnl-theme-card[aria-pressed="true"]:after{content:"✓";position:absolute;top:9px;right:9px;border-radius:50%;width:21px;height:21px;display:grid;place-items:center;background:var(--vnl-a);color:#151c2a;font-size:12px;font-weight:900}
#adminPanel .sidenav{max-height:calc(100dvh - 155px);overflow-y:auto;scrollbar-width:thin}
@media(min-width:1450px){.vnl-theme-grid{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media(max-width:1100px){.vnl-studio-layout{grid-template-columns:1fr}.vnl-theme-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:650px){.vnl-studio-head{align-items:flex-start;flex-direction:column;gap:10px}.vnl-studio-head h1{font-size:26px}.vnl-theme-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.vnl-theme-copy{padding:10px}.vnl-theme-copy strong{font-size:11px}.vnl-controls{padding:15px}.vnl-preview-box{min-height:300px}.vnl-demo{padding:38px 20px 18px;min-height:265px}.vnl-demo h2{font-size:32px}.vnl-library-heading{align-items:flex-start;flex-direction:column;gap:5px}.vnl-greeting{top:4px;font-size:8px;padding:4px 10px;letter-spacing:0;max-width:95%;white-space:nowrap}.vnl-world:not(.vnl-preview-world) .vnl-scenery{opacity:.65}.vnl-preview-caption{font-size:10px}.vnl-theme-art{height:82px}.vnl-orbit{animation:none}}
@media(prefers-reduced-motion:reduce){.vnl-world *{animation:none!important}.vnl-theme-card,.vnl-toggle,.vnl-toggle:before{transition:none!important}}
/* Keep preview below the sticky admin header; avoid inherited full-width buttons. */
#vnlThemePreview{scroll-margin-top:88px}
#admin-appearance .vnl-save-row{display:grid;grid-template-columns:minmax(0,1fr) auto}
#admin-appearance .vnl-save-row>.btn{width:auto!important;min-width:0;max-width:100%;padding:11px 13px}
/* DIMENSIONAL COLLECTION v2: decorative materials and motion only. */
.vnl-world{perspective:1100px}
.vnl-stage{transform:translate(var(--vnl-depth-x,0px),var(--vnl-depth-y,0px));transform-origin:86% 28%}
.vnl-satellites{transform:translate(calc(var(--vnl-depth-x,0px) * -0.5),calc(var(--vnl-depth-y,0px) * -0.5))}
.vnl-float-3d{transform-box:fill-box;transform-origin:50% 55%;animation:vnl-dimension-float 8s ease-in-out infinite alternate}
.vnl-flag{transform-box:fill-box;transform-origin:0 50%;animation:vnl-satin-wave 6s ease-in-out infinite alternate}
.vnl-silk{transform-box:fill-box;transform-origin:50% 50%;animation:vnl-silk-drift 12s ease-in-out infinite alternate}
.vnl-gear-turn{transform-box:fill-box;transform-origin:center;animation:vnl-gear-revolve 75s linear infinite}
.vnl-flame{transform-box:fill-box;transform-origin:50% 100%;animation:vnl-candle 2.8s ease-in-out infinite alternate}
.vnl-glint{animation:vnl-glint 5.2s ease-in-out infinite;transform-box:fill-box}
.vnl-glint:nth-last-child(3n){animation-delay:-2.3s}.vnl-glint:nth-last-child(2n){animation-delay:-4.1s}
.vnl-mist{animation:vnl-mist 15s ease-in-out infinite alternate}
.vnl-world .vnl-atmosphere:after{content:"";position:absolute;inset:-15%;background:conic-gradient(from 210deg at 86% 17%,transparent 0 14deg,color-mix(in srgb,var(--vnl-a) 7%,transparent) 20deg,transparent 28deg 42deg,color-mix(in srgb,var(--vnl-b) 5%,transparent) 50deg,transparent 62deg);animation:vnl-studio-light 18s ease-in-out infinite alternate}
.vnl-world[data-theme="christmas"] .vnl-atmosphere{background:radial-gradient(ellipse at 90% 18%,#65c7a22c,transparent 39%),radial-gradient(ellipse at 8% 55%,#cf53531a,transparent 40%),linear-gradient(155deg,#102c3819,transparent)}
.vnl-world[data-theme="midautumn"] .vnl-atmosphere{background:radial-gradient(ellipse at 87% 16%,#f2d28d29,transparent 38%),radial-gradient(ellipse at 10% 63%,#5677e42b,transparent 50%)}
.vnl-world[data-theme="tet"] .vnl-atmosphere{background:radial-gradient(ellipse at 85% 20%,#da832e33,transparent 43%),radial-gradient(ellipse at 5% 60%,#bd264025,transparent 45%)}
.vnl-world[data-theme="halloween"] .vnl-atmosphere{background:radial-gradient(ellipse at 89% 25%,#e597402b,transparent 37%),radial-gradient(ellipse at 3% 65%,#7250ac29,transparent 43%)}
.vnl-world[data-paused="true"] *:after,.vnl-world[data-motion="false"] *:after{animation-play-state:paused!important}
.vnl-world[data-motion="false"] .vnl-stage,.vnl-world[data-motion="false"] .vnl-satellites{transform:none}
.vnl-theme-art{height:134px;background:radial-gradient(ellipse at 68% 38%,color-mix(in srgb,var(--vnl-a) 24%,transparent),transparent 63%),linear-gradient(120deg,#ffffff04,transparent),var(--vnl-bg)}
.vnl-theme-art:before{content:"";position:absolute;inset:12px;border:1px solid color-mix(in srgb,var(--vnl-a) 12%,transparent);border-radius:50% 50% 10px 10px;pointer-events:none}
.vnl-theme-art svg{opacity:1;filter:none}
.vnl-preview-box{box-shadow:0 22px 50px #00000029,inset 0 1px 0 #ffffff12}
.vnl-preview-bar{backdrop-filter:blur(8px)}
.vnl-greeting{box-shadow:0 5px 20px #00000022,inset 0 1px 0 #fff1}
@keyframes vnl-dimension-float{0%{transform:translateY(0) rotate(-1deg)}100%{transform:translateY(-9px) rotate(1.3deg)}}
@keyframes vnl-satin-wave{0%{transform:skewY(-1.2deg) scaleX(1)}100%{transform:skewY(1.8deg) scaleX(.96)}}
@keyframes vnl-silk-drift{from{transform:translateX(-4px) rotate(-1deg)}to{transform:translateX(5px) rotate(1.5deg)}}
@keyframes vnl-gear-revolve{to{transform:rotate(360deg)}}
@keyframes vnl-candle{from{transform:scale(.93,1.04) rotate(-3deg);opacity:.78}to{transform:scale(1.05,.94) rotate(4deg);opacity:1}}
@keyframes vnl-glint{0%,100%{opacity:.24}48%{opacity:.9}65%{opacity:.44}}
@keyframes vnl-mist{from{transform:translate(-12px,9px);opacity:.65}to{transform:translate(14px,-6px);opacity:1}}
@keyframes vnl-studio-light{from{transform:rotate(-3deg);opacity:.55}to{transform:rotate(3deg);opacity:1}}
@media(max-width:700px){
 .vnl-world:not(.vnl-preview-world) .vnl-scenery{opacity:.9}
 .vnl-stage{filter:none!important;transform:none!important}
 .vnl-satellites{transform:none!important}
 .vnl-world .vnl-atmosphere:after,.vnl-mist,.vnl-silk,.vnl-gear-turn{animation:none!important}
 .vnl-theme-art{height:118px}
 .vnl-preview-bar{backdrop-filter:none}
}
@media(prefers-reduced-motion:reduce){.vnl-world *,.vnl-world *:after{animation:none!important}.vnl-stage,.vnl-satellites{transform:none!important}}
@media(max-width:700px){
 /* Keep the mobile reading column calm; retain full material detail at the right edge. */
 .vnl-world:not(.vnl-preview-world) .vnl-scenery-3d{-webkit-mask-image:linear-gradient(90deg,#0002 0%,#0005 46%,#000 88%);mask-image:linear-gradient(90deg,#0002 0%,#0005 46%,#000 88%)}
}
/* v3: laptop budget. Keep 3D materials; eliminate expensive filtered repaint in balanced mode. */
.vnl-world[data-eco="true"] .vnl-stage{filter:none!important;transform:none!important}
.vnl-world[data-eco="true"] .vnl-satellites{transform:none!important}
.vnl-world[data-eco="true"] .vnl-silk,.vnl-world[data-eco="true"] .vnl-mist,.vnl-world[data-eco="true"] .vnl-gear-turn,.vnl-world[data-eco="true"] .vnl-atmosphere:after{animation:none!important}
html.vnl-page-hidden *,html.vnl-page-hidden *:before,html.vnl-page-hidden *:after{animation-play-state:paused!important}
#vnlViewStore{margin-top:10px;font-size:11px;width:100%}
#vnlThemeMessage[data-error="true"]{background:#311825;border:1px solid #843c50;padding:10px;border-radius:9px}

/* Mobile energy budget: no continuously running holiday SVG/decor animations.
 * Status messages and interactive controls are deliberately unaffected. */
@media (max-width:700px), (hover:none) and (pointer:coarse){
 .vnl-world .vnl-float-3d,.vnl-world .vnl-flag,.vnl-world .vnl-silk,
 .vnl-world .vnl-scenery *, .vnl-world .vnl-satellites *,
 .vnl-world .vnl-float-3d:before,.vnl-world .vnl-float-3d:after,
 .vnl-world .vnl-stage:before,.vnl-world .vnl-stage:after{
  animation:none!important;
 }
 .vnl-world:not(.vnl-preview-world){--vnl-depth-x:0px;--vnl-depth-y:0px}
}
