.vilyash-page { --vilyash-surface:#eee3d2; --vilyash-brown:#9d432c; }
.vilyash-page ::selection { background:#e5b9a9; color:#20382d; }
.vilyash-intro { padding-top:48px; padding-bottom:30px; }
.vilyash-intro h1 { max-width:12ch; margin:0 0 18px; font-size:clamp(42px,6vw,78px); line-height:1.04; letter-spacing:-.035em; text-wrap:balance; }
.vilyash-intro > p { max-width:52ch; margin:0; font-size:clamp(18px,2.1vw,24px); line-height:1.5; }
.vilyash-product { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(280px,.85fr); gap:clamp(26px,5vw,72px); align-items:start; }
.vilyash-viewer-wrap { min-width:0; }
.vilyash-stage { position:relative; width:100%; height:540px; overflow:hidden; border-radius:22px; background:var(--vilyash-surface); isolation:isolate; }
.vilyash-canvas { position:absolute; inset:0; width:100%; height:100%; display:block; touch-action:none; cursor:grab; z-index:1; }
.is-grabbing .vilyash-canvas { cursor:grabbing; }
.vilyash-poster { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; mix-blend-mode:multiply; pointer-events:none; }
.vilyash-poster img { width:100%; height:100%; object-fit:contain; display:block; }
.vilyash-stage.is-ready .vilyash-poster { opacity:0; }
.vilyash-status { position:absolute; z-index:2; top:20px; left:22px; right:22px; margin:0; max-width:44ch; color:#20382d; font-size:14px; line-height:1.5; pointer-events:none; }
.vilyash-controls { position:absolute; z-index:3; bottom:18px; left:18px; right:18px; display:flex; gap:9px; flex-wrap:wrap; align-items:center; }
.vilyash-controls button { min-height:46px; border:1px solid #20382d; padding:11px 16px; border-radius:999px; background:#fffdf7; color:#20382d; font:700 14px/1.25 Manrope,sans-serif; cursor:pointer; }
.vilyash-controls [data-wiggle] { position:relative; overflow:hidden; background:#20382d; color:#fffdf7; border-color:#20382d; min-width:150px; }
.vilyash-controls [data-wiggle]::after { content:""; position:absolute; inset:-50% -60%; background:linear-gradient(110deg,transparent 44%,#ffffff35 50%,transparent 56%); transform:translateX(-60%); opacity:0; pointer-events:none; }
.vilyash-stage.is-wiggling [data-wiggle]::after { opacity:1; animation:vilyash-button-light .9s ease-in-out 1; }
@keyframes vilyash-button-light { from { transform:translateX(-60%); } to { transform:translateX(60%); } }
.vilyash-controls button:hover { background:#f3e7d6; }
.vilyash-controls [data-wiggle]:hover { background:#315243; }
.vilyash-controls button:disabled { opacity:.62; cursor:wait; }
.vilyash-page :focus-visible { outline:3px solid #9d432c; outline-offset:4px; }
.vilyash-views { display:flex; flex-wrap:wrap; gap:6px; margin:15px 0 0; }
.vilyash-views button { min-height:44px; padding:9px 12px; background:transparent; border:1px solid #b6beb4; border-radius:12px; color:#20382d; font:600 14px Manrope,sans-serif; cursor:pointer; }
.vilyash-views button[aria-pressed="true"] { background:#20382d; border-color:#20382d; color:#fffdf7; }
.vilyash-views button:hover { border-color:#20382d; }
.vilyash-render-note { margin:13px 0 0; font-size:13px; line-height:1.55; color:#4d5c4f; max-width:66ch; }
.vilyash-buy { padding-top:5px; }
.vilyash-availability { display:inline-flex; gap:9px; align-items:center; margin:0 0 20px; font-weight:700; color:#20382d; }
.vilyash-availability::before { content:""; width:8px; height:8px; border-radius:50%; background:#376149; }
.vilyash-buy h2 { margin:0 0 14px; font-size:clamp(23px,2.6vw,34px); line-height:1.18; letter-spacing:-.025em; }
.vilyash-buy > p { line-height:1.6; font-size:16px; }
.vilyash-facts { display:grid; gap:0; margin:24px 0; }
.vilyash-facts > div { padding:12px 0; border-bottom:1px solid #cdd2c5; display:grid; grid-template-columns:1fr 1.35fr; gap:18px; font-size:14px; line-height:1.5; }
.vilyash-facts dt { color:#4d5c4f; }
.vilyash-facts dd { margin:0; font-weight:650; }
.vilyash-price { display:flex; align-items:baseline; gap:12px; margin:26px 0 15px; }
.vilyash-price strong { font-size:34px; font-weight:750; letter-spacing:-.02em; }
.vilyash-price span { color:#4d5c4f; font-size:14px; }
.vilyash-buy .button { min-height:48px; }
.vilyash-buy > .button.primary { width:100%; justify-content:center; }
.vilyash-buy > .button.primary { color:#14251c; }
.vilyash-buy > .button.primary:hover { background:#f06a46; color:#14251c; }
.vilyash-buy-links { display:flex; flex-direction:column; align-items:flex-start; gap:17px; margin:23px 0; }
.vilyash-buy-links .text-link { font-size:14px; }
.vilyash-delivery { font-size:14px; color:#4d5c4f; margin-top:20px; }
.vilyash-delivery a { color:#20382d; text-underline-offset:3px; }
.vilyash-section { margin-top:80px; }
.vilyash-section h2 { margin:0 0 16px; font-size:clamp(28px,4vw,46px); line-height:1.15; letter-spacing:-.03em; text-wrap:balance; }
.vilyash-section > p { max-width:70ch; line-height:1.7; margin:0 0 22px; }
.vilyash-photos { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; }
.vilyash-photos figure { margin:0; min-width:0; }
.vilyash-photos img { width:100%; height:auto; aspect-ratio:1; object-fit:contain; background:#f8f6ef; border-radius:16px; display:block; }
.vilyash-photos figcaption { display:flex; align-items:baseline; justify-content:space-between; gap:10px; margin-top:11px; font-size:14px; line-height:1.4; }
.vilyash-photos figcaption span { color:#4d5c4f; font-size:12px; }
.vilyash-gallery-link { margin-top:24px; }
.vilyash-construction { display:grid; grid-template-columns:.85fr 1.15fr; gap:50px; padding-top:35px; border-top:1px solid #cdd2c5; }
.vilyash-construction p { max-width:65ch; margin:0 0 17px; line-height:1.7; }
.vilyash-story { display:grid; grid-template-columns:1.25fr .75fr; gap:60px; padding-bottom:70px; }
.vilyash-story p { line-height:1.7; max-width:68ch; }
.vilyash-story .game-note { background:#e3efe5; padding:28px; border-radius:16px; }
.vilyash-story h3 { margin:0 0 15px; font-size:22px; letter-spacing:-.015em; }
.vilyash-gallery .vilyash-intro > p { max-width:70ch; }
.vilyash-gallery .vilyash-section { margin-top:55px; }
.vilyash-gallery .vilyash-photos { grid-template-columns:repeat(4,minmax(0,1fr)); }
.vilyash-gallery .vilyash-photos figcaption { display:block; }
.vilyash-gallery .vilyash-photos figcaption span { display:block; margin-top:4px; }
.vilyash-gallery-bottom { padding:55px 0 75px; }
.vilyash-home-announcement { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:60px; align-items:center; margin-top:70px; margin-bottom:70px; }
.vilyash-home-announcement img { width:100%; height:auto; display:block; border-radius:16px; }
.vilyash-home-announcement h2 { font-size:clamp(28px,4vw,48px); line-height:1.15; letter-spacing:-.03em; margin:0 0 20px; text-wrap:balance; }
.vilyash-home-announcement p { max-width:45ch; line-height:1.65; }
.vilyash-hold-cue { position:absolute; z-index:4; width:44px; height:44px; transform:translate(-50%,-50%); opacity:0; pointer-events:none; }
.vilyash-hold-cue.is-visible { opacity:1; }
.vilyash-hold-cue circle { fill:#fffdf7bb; stroke:#20382d; stroke-width:3; stroke-dasharray:107; stroke-dashoffset:calc(107 * (1 - var(--hold,0))); transform-origin:center; transform:rotate(-90deg); }
@media(max-width:1000px) { .vilyash-stage { height:535px; } .vilyash-product { gap:30px; grid-template-columns:1.15fr 1fr; } .vilyash-gallery .vilyash-photos { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media(max-width:760px) {
  .vilyash-home-announcement { grid-template-columns:1fr; gap:24px; margin-top:50px; margin-bottom:50px; }
  .vilyash-intro { padding-top:30px; padding-bottom:24px; }
  .vilyash-intro h1 { font-size:48px; }
  .vilyash-intro > p { font-size:19px; }
  .vilyash-product { grid-template-columns:1fr; gap:30px; }
  .vilyash-stage { height:450px; border-radius:16px; }
  .vilyash-status { top:17px; left:18px; right:18px; font-size:13px; }
  .vilyash-controls { left:12px; right:12px; bottom:13px; gap:7px; }
  .vilyash-controls button { font-size:13px; padding:10px 13px; min-height:44px; }
  .vilyash-controls [data-wiggle] { min-width:145px; }
  .vilyash-controls [data-haptics] { font-size:12px; }
  .vilyash-buy { padding-top:5px; }
  .vilyash-buy h2 { max-width:20ch; font-size:28px; }
  .vilyash-section { margin-top:58px; }
  .vilyash-photos { grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px 14px; }
  .vilyash-photos figcaption { display:block; font-size:13px; }
  .vilyash-photos figcaption span { display:block; margin-top:3px; }
  .vilyash-construction,.vilyash-story { grid-template-columns:1fr; gap:20px; }
  .vilyash-gallery .vilyash-photos { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:400px) { .vilyash-intro h1 { font-size:42px; } .vilyash-stage { height:440px; } .vilyash-controls [data-haptics] { padding:8px 11px; } }
@media(max-width:560px) {
  .vilyash-page .header-inner { gap:10px; }
  .vilyash-page .nav-actions { gap:6px; }
  .vilyash-page .social-nav-link { display:none; }
  .vilyash-page .cart-nav > span:not(.count) { display:none; }
  .vilyash-page .collection-link,.vilyash-page .cart-nav,.vilyash-page .menu-toggle { min-height:44px; }
  .vilyash-page .menu-toggle { min-width:44px; }
}
@media(prefers-reduced-motion:reduce) { .vilyash-stage.is-wiggling [data-wiggle]::after { animation:none; opacity:0; } }
