/* Isolated visual preview only. Original application sources are untouched. */
html[data-season="halloween"], html[data-season="halloween"] .dark {
  --primary: 27 100% 55%;
  --accent: 27 100% 55%;
  --ring: 27 100% 55%;
  --sidebar-primary: 27 100% 55%;
  --sidebar-ring: 27 100% 55%;
  --background: 25 16% 5%;
  --card: 25 13% 10%;
  --popover: 25 13% 10%;
  --border: 27 19% 22%;
}
html[data-season="halloween"] body {
  background-color: hsl(var(--background));
  background-image: linear-gradient(90deg,rgba(16,12,9,.85),rgba(16,12,9,.91)),url('/assets/halloween-header.png');
  background-size: cover;
  background-repeat: no-repeat;
}
html[data-season="halloween"] header,
html[data-season="halloween"] .season-staff-header {
  background-image: linear-gradient(90deg,rgba(16,12,9,.5),rgba(16,12,9,.24)),url('/assets/halloween-header.png');
  background-position: center right;
  background-size: cover;
}
html[data-season="halloween"] .season-staff-header header {
  background: transparent;
}
html[data-season="halloween"] .guest-order-header {
  background-image: linear-gradient(90deg,rgba(16,12,9,.8),rgba(16,12,9,.56)),url('/assets/halloween-header.png');
  background-position: right center;
  background-size: cover;
  border-radius: 12px;
}
html[data-season="halloween"] .bg-card {
  background-image: linear-gradient(135deg,rgba(255,134,27,.045),transparent 65%);
}
html[data-season="halloween"] .season-mark::after {
  content: ' 🎃';
  font-family: sans-serif;
  font-size: .85em;
}
/* Theme stays on the document across routes. No theme transition or JS delay. */
  position: fixed; bottom: 10px; left: 50%; transform: translateX(-50%);
  z-index: 99999; display: flex; gap: 9px; align-items: center;
  background: #161310; color: #f8e7d0; border: 1px solid #9d5c28;
  border-radius: 14px; padding: 9px 14px; box-shadow: 0 8px 30px #0008;
  font: 12px/1.4 Inter,system-ui,sans-serif; max-width: calc(100vw - 20px);
}


html[data-season="halloween"] .season-staff-header {background-size:auto 100%;background-repeat:no-repeat;background-color:#100d0a}
html[data-season="halloween"] .guest-order-header {background-size:auto 100%;background-repeat:no-repeat;background-color:#100d0a}

.season-splash{display:none;position:absolute;inset:0;pointer-events:none;overflow:hidden}
html[data-season="halloween"] .season-splash{display:block}
.season-scene{position:absolute;inset:0;background-size:cover;background-position:center;opacity:.75}
.scene-house{background-image:url('/assets/halloween-header.png')}
.scene-garden{background-image:url('/assets/halloween-garden.png');animation:season-crossfade 24s ease-in-out infinite;opacity:0}
.season-splash::after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at center,#100b07dc 0%,#100b0780 37%,transparent 85%)}
.season-light{position:absolute;display:block;border-radius:50%;background:radial-gradient(ellipse,#ffc36899,#ff850033 45%,transparent 70%);mix-blend-mode:screen;animation:season-glow 5s ease-in-out infinite alternate}
.moon-light{width:15%;height:26%;right:13%;top:4%;animation-duration:7s}
.window-light{width:18%;height:65%;right:0;top:5%;animation:season-window 9s ease-in-out infinite}
.pumpkin-light{width:26%;height:30%;right:0;bottom:0;animation-duration:3.4s}
@keyframes season-glow{from{opacity:.18;transform:scale(.94)}to{opacity:.95;transform:scale(1.04)}}
@keyframes season-window{0%,100%{opacity:.25}35%,55%{opacity:.85}40%{opacity:.42}70%{opacity:.18}}
@keyframes season-crossfade{0%,40%,100%{opacity:0}50%,90%{opacity:.8}}
html[data-season-motion="off"] .season-splash *{animation:none!important}
@media(prefers-reduced-motion:reduce){.season-splash *{animation:none!important}}
#season-characters{position:fixed;right:12px;top:125px;width:62px;height:88px;pointer-events:none!important;z-index:40;contain:layout style}
#season-characters *{pointer-events:none!important}
.season-character{width:62px;filter:drop-shadow(0 3px 8px #0008);animation:season-visit 9s ease-in-out both}
.season-character svg{display:block;width:100%;height:85px}
@keyframes season-visit{0%{opacity:0;transform:translateY(-16px) rotate(-8deg)}18%{opacity:.85;transform:translateY(0) rotate(4deg)}50%{opacity:.85;transform:translateY(9px) rotate(-4deg)}78%{opacity:.85;transform:translateY(0) rotate(4deg)}100%{opacity:0;transform:translateY(-15px) rotate(-8deg)}}
html:not([data-season="halloween"]) #season-characters,html[data-season-motion="off"] #season-characters{display:none}
@media(max-width:600px){#season-characters{right:5px;top:110px;width:38px;height:54px}.season-character{width:38px}.season-character svg{height:54px}}
@media(prefers-reduced-motion:reduce){#season-characters{display:none}}
#season-characters .season-character{width:var(--visitor-width,62px)}
#season-characters .season-character svg{height:var(--visitor-height,88px)}
/* Product-card skin: no layout, content or interaction changes. */
html[data-season="halloween"] .season-product-card{border-color:#92501f;background:#201610;box-shadow:0 2px 12px #0003;background-image:none}
html[data-season="halloween"] .season-product-card .season-product-info{background:radial-gradient(ellipse at 100% 0%,#6b351a40,transparent 65%),linear-gradient(135deg,#251a14,#1a141c);border-top:1px solid #b961284d}
html[data-season="halloween"] .season-product-card .season-product-info::before{content:'';position:absolute;bottom:0;left:12px;right:12px;height:2px;background:linear-gradient(90deg,transparent,#f68b27aa,transparent);pointer-events:none}
html[data-season="halloween"] .season-product-card[data-season-selected="true"]{border-color:#ff9b38;box-shadow:0 0 0 1px #ff9b384d,0 3px 16px #ff710022}
@media(hover:hover){html[data-season="halloween"] .season-product-card:hover{border-color:#dd853b;box-shadow:0 3px 16px #f8791426}}
/* Sparse corner ornaments; decorative and non-interactive. */
html[data-season="halloween"] .season-product-card:nth-child(5n+1)::after{content:'';position:absolute;left:0;top:0;width:48px;height:48px;pointer-events:none;opacity:.62;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 60'%3E%3Cg fill='none' stroke='%23f5e2c4' stroke-width='1'%3E%3Cpath d='M0 0L58 12M0 0L45 43M0 0L12 58M0 0V60M0 0H60M0 13Q10 12 13 0M0 27Q20 25 27 0M0 42Q31 38 42 0M0 57Q43 52 57 0M13 3Q13 10 10 10Q8 14 3 13M27 6Q27 20 20 20Q19 27 6 27M42 9Q41 31 31 31Q30 41 9 42M57 12Q55 43 43 43Q42 55 12 57'/%3E%3C/g%3E%3C/svg%3E")}
html[data-season="halloween"] .season-product-card:nth-child(5n+3) .season-product-info{background:linear-gradient(171deg,transparent 0 13%,#d9c7a516 13% 19%,#6c584312 19% 20%,transparent 20% 100%),linear-gradient(8deg,transparent 0 80%,#e2d1b31a 80% 86%,transparent 86%),radial-gradient(ellipse at 100% 0%,#6b351a40,transparent 65%),linear-gradient(135deg,#251a14,#1a141c)}
@media(max-width:600px){html[data-season="halloween"] .season-product-card:nth-child(5n+1)::after{width:34px;height:34px;opacity:.45}}
/* Mummy-wrap example: ivory fabric beneath opaque text/control backing. */
html[data-season="halloween"] .season-product-card:nth-child(5n+2) .season-product-info{position:relative;isolation:isolate;background:#211713}
html[data-season="halloween"] .season-product-card:nth-child(5n+2) .season-product-info::after{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 240 110' preserveAspectRatio='none'%3E%3Cg fill='none' stroke-linecap='round'%3E%3Cpath d='M108 -12C119 20 111 39 89 49S26 68 -15 78M153 -10C119 27 151 44 126 60S54 83 13 96' stroke='%23c3ad88' stroke-width='11'/%3E%3Cpath d='M108 -12C119 20 111 39 89 49S26 68 -15 78M153 -10C119 27 151 44 126 60S54 83 13 96' stroke='%23f1e5cc' stroke-width='7'/%3E%3Cpath d='M108 -12C119 20 111 39 89 49S26 68 -15 78M153 -10C119 27 151 44 126 60S54 83 13 96' stroke='%23bda886' stroke-width='.7' stroke-dasharray='2 5'/%3E%3C/g%3E%3C/svg%3E") center/100% 100% no-repeat}
html[data-season="halloween"] .season-product-card:nth-child(5n+2) .season-product-info>p{position:relative;background:#211713;border-radius:3px;width:fit-content;max-width:100%;box-shadow:3px 0 #211713,-3px 0 #211713}
html[data-season="halloween"] .season-product-card:nth-child(5n+2) .season-product-info>div>div{background:#211713;border-radius:8px;box-shadow:3px 0 #211713,-3px 0 #211713}
/* Textured linen replaces the earlier drawn-line placeholder. */
html[data-season="halloween"] .season-product-card:nth-child(5n+2) .season-product-info::after{background-image:url('/assets/mummy-linen.svg');background-size:100% 100%;opacity:.85}
/* Soft text protection instead of hard rectangular cut-outs. */
html[data-season="halloween"] .season-product-card:nth-child(5n+2) .season-product-info>p{background:transparent;box-shadow:none;text-shadow:0 1px 3px #100b08,0 0 6px #100b08}
html[data-season="halloween"] .season-product-card:nth-child(5n+2) .season-product-info>div>div{background:transparent;box-shadow:none;text-shadow:0 1px 3px #100b08}
html[data-season="halloween"] .season-product-card:nth-child(5n+2) .season-product-info::after{mask-image:linear-gradient(90deg,transparent 0%,#0002 32%,#0009 50%,#000 72%);-webkit-mask-image:linear-gradient(90deg,transparent 0%,#0002 32%,#0009 50%,#000 72%)}
/* Badge stays above the cobweb, with an opaque, softly edged backing. */
html[data-season="halloween"] .season-product-card:nth-child(5n+1)>div:first-child>.absolute.top-2.left-2{z-index:2;background:#171310;box-shadow:0 0 5px 3px #171310bb;color:#fff6e8}
html[data-season="halloween"] .season-product-card:nth-child(5n+1)::after{opacity:.5;mask-image:radial-gradient(ellipse 22px 15px at 25px 17px,transparent 65%,#000 100%);-webkit-mask-image:radial-gradient(ellipse 22px 15px at 25px 17px,transparent 65%,#000 100%)}
/* Cobweb detail-panel treatment mirrors the linen skin's readable fade. */
html[data-season="halloween"] .season-product-card:nth-child(5n+1) .season-product-info{position:relative;isolation:isolate;background:#211713}
html[data-season="halloween"] .season-product-card:nth-child(5n+1) .season-product-info::after{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background:url('/assets/card-cobweb.svg') center/100% 100% no-repeat;opacity:.75;mask-image:linear-gradient(90deg,transparent 0%,#0002 32%,#0009 50%,#000 72%);-webkit-mask-image:linear-gradient(90deg,transparent 0%,#0002 32%,#0009 50%,#000 72%)}
html[data-season="halloween"] .season-product-card:nth-child(5n+1) .season-product-info>p{position:relative;text-shadow:0 1px 3px #100b08,0 0 6px #100b08}
html[data-season="halloween"] .season-product-card:nth-child(5n+1) .season-product-info>div>div{text-shadow:0 1px 3px #100b08}
.season-card-spider,.season-staff-greeting,.season-empty-ghost,.season-empty-state{display:none}
html[data-season="halloween"] .season-product-card:nth-child(5n+1) .season-card-spider{display:block;position:absolute;right:17px;top:0;width:18px;height:57px;pointer-events:none;transform-origin:50% 0;animation:season-spider-sway 7s ease-in-out infinite alternate;z-index:1;border-left:1px solid #e6d7b47a}
.season-card-spider i{position:absolute;bottom:0;left:-7px;width:13px;height:16px;border-radius:50%;background:#765581;box-shadow:-5px -2px 0 -3px #c4a4d1,5px -2px 0 -3px #c4a4d1,-6px 3px 0 -3px #c4a4d1,6px 3px 0 -3px #c4a4d1}
.season-card-spider i::after{content:'••';position:absolute;top:0;left:3px;color:#fff0b5;font:9px sans-serif;letter-spacing:1px}
html[data-season="halloween"] .season-staff-greeting{display:flex;justify-content:center;align-items:center;gap:12px;padding:5px 12px;font-size:11px;letter-spacing:.06em;color:#f8ba76;background:linear-gradient(90deg,#251221,#392212,#251221);border-block:1px solid #f78b2525;pointer-events:none}
html[data-season="halloween"] .season-empty-ghost{display:block;font-size:36px;line-height:1.4;margin-bottom:8px;pointer-events:none;animation:season-ghost-bob 5s ease-in-out infinite alternate}
html[data-season="halloween"] .season-empty-state{display:block;text-align:center;color:#cdbfae;font-size:13px;padding:12px}
@keyframes season-spider-sway{from{transform:rotate(-7deg)}to{transform:rotate(7deg)}}
@keyframes season-ghost-bob{from{transform:translateY(0)}to{transform:translateY(-5px)}}
html[data-season-motion="off"] .season-card-spider,html[data-season-motion="off"] .season-empty-ghost{animation:none}
@media(prefers-reduced-motion:reduce){.season-card-spider,.season-empty-ghost{animation:none!important}}
#season-staff-mascots{display:none;pointer-events:none!important}
#season-staff-mascots *{pointer-events:none!important}
@media(min-width:1500px) and (min-height:650px){
 html[data-season="halloween"] body:has(.season-staff-header) #season-staff-mascots{display:block}
 .staff-mascot{position:fixed;bottom:110px;width:clamp(130px,11vw,210px);opacity:.7;z-index:0;filter:drop-shadow(0 8px 18px #0006);animation:season-ghost-bob 6s ease-in-out infinite alternate}
 .staff-mascot-left{left:max(18px,calc((100vw - 1024px)/4 - 105px))}
 .staff-mascot-right{right:max(18px,calc((100vw - 1024px)/4 - 105px));animation-delay:-3s}
 .staff-mascot svg{display:block;width:100%;height:auto}
 body:has([role="dialog"]) #season-staff-mascots,body:has([role="menu"]) #season-staff-mascots{visibility:hidden}
}
html[data-season-motion="off"] .staff-mascot{animation:none}
@media(prefers-reduced-motion:reduce){.staff-mascot{animation:none!important}}
html[data-season="halloween"] .season-table-card{position:relative;isolation:isolate;overflow:hidden}
html[data-season="halloween"] .season-table-card::before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background-position:right center;background-repeat:no-repeat;background-size:100% 100%;opacity:.18;mask-image:linear-gradient(90deg,transparent 15%,#0003 55%,#000 100%)}
html[data-season="halloween"] .season-table-card[data-season-ornament="linen"]::before{background-image:url('/assets/mummy-linen.svg')}
html[data-season="halloween"] .season-table-card[data-season-ornament="web"]::before{background-image:url('/assets/card-cobweb.svg');opacity:.28}


/* Staff ornaments retain their artwork aspect ratio, independent of card height. */
html[data-season="halloween"] .season-table-card::before{inset:0;background-size:260px 119px;background-position:right top;mask-image:linear-gradient(90deg,transparent 5%,#0005 60%,#000 100%);-webkit-mask-image:linear-gradient(90deg,transparent 5%,#0005 60%,#000 100%)}
html[data-season="halloween"] .season-table-card[data-season-ornament="web"]::before{background-size:240px 110px;background-position:right top;opacity:.24}
html[data-season="halloween"] .season-table-card[data-season-ornament="linen"]::before{background-size:260px 119px;background-position:right 70px;opacity:.20}
/* Real gauze: square artwork scales uniformly, never stretches with the card. */
html[data-season="halloween"] .season-table-card[data-season-ornament="linen"]::before{
 background-image:url('/assets/mummy-linen-real-v2.png');background-size:210px auto;background-position:right bottom;opacity:.48;
 mask-image:linear-gradient(90deg,transparent 12%,#0004 55%,#000 100%);-webkit-mask-image:linear-gradient(90deg,transparent 12%,#0004 55%,#000 100%);
}
html[data-season="halloween"] .season-product-card:nth-child(5n+2) .season-product-info::after{
 background-image:url('/assets/mummy-linen-real-v2.png');background-size:150px auto;background-position:right bottom;opacity:.70;
 mask-image:linear-gradient(90deg,transparent 15%,#0003 48%,#000 85%);-webkit-mask-image:linear-gradient(90deg,transparent 15%,#0003 48%,#000 85%);
}
html[data-season="halloween"] .season-table-card[data-season-ornament="linen"] button{position:relative;background-color:#110d0bf5}
@media(max-width:600px){
 html[data-season="halloween"] .season-table-card[data-season-ornament="linen"]::before{background-size:180px auto}
 html[data-season="halloween"] .season-product-card:nth-child(5n+2) .season-product-info::after{background-size:120px auto;opacity:.60}
}
/* Finishing touches are seasonal paint only. */
.season-welcome{display:none}
html[data-season="halloween"] .season-welcome{display:block;margin-top:10px;font-size:16px;color:#ffc18a;letter-spacing:.03em}
.season-bill-ghost{display:inline-flex;align-items:center;gap:6px;color:#ffd5a5}
.season-bill-ghost>span{display:inline-block;animation:season-ghost-bob 3s ease-in-out infinite alternate}
html[data-season="halloween"] .season-product-card:has(button:active){box-shadow:0 0 0 2px #ff9b38,0 0 20px #ff790070}
html[data-season="halloween"] .season-product-card:nth-child(5n+1) .season-card-spider{animation:season-spider-visit 22s ease-in-out infinite;transform-origin:top center}
@keyframes season-spider-visit{0%,15%,95%,100%{transform:translateY(-60px);opacity:0}25%,70%{transform:translateY(0) rotate(3deg);opacity:.8}45%{transform:translateY(5px) rotate(-3deg);opacity:.8}}
html[data-season-motion="off"] .season-bill-ghost>span,html[data-season-motion="off"] .season-card-spider{animation:none!important}
@media(prefers-reduced-motion:reduce){.season-bill-ghost>span,.season-card-spider{animation:none!important}}
/* Home uses a photo banner rather than the shared header component. */
html[data-season="halloween"] div:has(>img[src="/media/kyoto-hero.png"]){background:#100d0a url('/assets/halloween-header.png') center/cover no-repeat;isolation:isolate}
html[data-season="halloween"] img[src="/media/kyoto-hero.png"]{opacity:0}
html[data-season="halloween"] div:has(>img[src="/media/kyoto-hero.png"])::before{content:'';position:absolute;inset:0;pointer-events:none;background:url('/assets/halloween-garden.png') center/cover no-repeat;animation:season-crossfade 24s ease-in-out infinite;opacity:0;z-index:-1}
html[data-season="halloween"] div:has(>img[src="/media/kyoto-hero.png"])::after{content:'';position:absolute;right:0;top:0;width:25%;height:100%;pointer-events:none;background:radial-gradient(ellipse,#ffac4433,transparent 70%);animation:season-glow 6s ease-in-out infinite alternate}
@media(prefers-reduced-motion:reduce){html[data-season="halloween"] div:has(>img[src="/media/kyoto-hero.png"])::before,html[data-season="halloween"] div:has(>img[src="/media/kyoto-hero.png"])::after{animation:none}}
