/*
 * Kaizora v3.0 — Surreal commerce layer
 * A light, CSS-first spatial layer that keeps product pages and checkout usable.
 */

:root{
  --kz-pointer-x:50%;
  --kz-pointer-y:50%;
  --kz-portal-rotate-x:0deg;
  --kz-portal-rotate-y:0deg;
  --kz-portal-shift-x:0px;
  --kz-portal-shift-y:0px;
}

body.kaizora-theme{min-height:100%;}
body.kaizora-theme::before{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:1;opacity:.48;
  background:radial-gradient(460px circle at var(--kz-pointer-x) var(--kz-pointer-y),rgba(213,173,103,.055),transparent 68%);
  transition:background .18s linear;
}

/* A focused cursor feels more physical than a glow alone. */
.kaizora-cursor-core{
  position:fixed;z-index:95;width:10px;height:10px;border-radius:50%;pointer-events:none;
  transform:translate3d(-50%,-50%,0);left:-30px;top:-30px;
  border:1px solid rgba(239,214,160,.85);background:rgba(8,10,10,.44);
  box-shadow:0 0 0 5px rgba(213,173,103,.06),0 0 22px rgba(213,173,103,.22);
  transition:width .22s var(--ed-ease),height .22s var(--ed-ease),background .22s,border-color .22s,opacity .22s;
}
body.kaizora-pointer-active .kaizora-cursor-core{width:38px;height:38px;background:rgba(213,173,103,.08);border-color:rgba(239,214,160,.45)}

/* A soft frame is used for page changes; it never blocks the normal WordPress route. */
.kaizora-page-transition{position:fixed;inset:0;z-index:9998;pointer-events:none;visibility:hidden;overflow:hidden}
.kaizora-page-transition::before,.kaizora-page-transition::after,.kaizora-page-transition span{
  content:"";position:absolute;inset:-12%;transform:translateY(112%) rotate(-6deg);background:#050706;
}
.kaizora-page-transition::before{background:linear-gradient(135deg,#061c18,#070908 48%,#261b0a);transition:transform .74s var(--ed-ease)}
.kaizora-page-transition::after{inset:-12%;background:radial-gradient(circle at 50% 45%,rgba(213,173,103,.18),transparent 22%),radial-gradient(circle at 50% 45%,rgba(8,113,93,.18),transparent 42%);opacity:.85;transition:transform .74s .07s var(--ed-ease)}
.kaizora-page-transition span:first-child{inset:auto -10% -45%;height:48%;border-radius:50%;background:transparent;border:1px solid rgba(239,214,160,.25);transition:transform .78s .12s var(--ed-ease)}
.kaizora-page-transition span:last-child{inset:0;background:linear-gradient(90deg,transparent,rgba(239,214,160,.09),transparent);mix-blend-mode:screen;transform:translateX(-120%) skewX(-18deg);transition:transform .82s .2s var(--ed-ease)}
body.kaizora-is-leaving .kaizora-page-transition{visibility:visible}
body.kaizora-is-leaving .kaizora-page-transition::before,body.kaizora-is-leaving .kaizora-page-transition::after,body.kaizora-is-leaving .kaizora-page-transition span:first-child{transform:translateY(0) rotate(-6deg)}
body.kaizora-is-leaving .kaizora-page-transition span:last-child{transform:translateX(120%) skewX(-18deg)}

/* The home portal is made entirely from light, depth and rings: no heavy 3D model is required. */
.hero{isolation:isolate}
.kaizora-portal{
  --portal-size:min(54vw,760px);position:absolute;z-index:2;right:clamp(-210px,-7vw,-50px);top:49%;width:var(--portal-size);aspect-ratio:1;
  pointer-events:none;transform:translate3d(var(--kz-portal-shift-x),calc(-50% + var(--kz-portal-shift-y)),0) perspective(1200px) rotateX(var(--kz-portal-rotate-x)) rotateY(var(--kz-portal-rotate-y));
  transform-style:preserve-3d;transition:transform .48s cubic-bezier(.18,.72,.22,1);will-change:transform;
}
.kaizora-portal-field{position:absolute;inset:0;border-radius:50%;background:radial-gradient(circle at 50% 50%,rgba(239,214,160,.17) 0 2%,rgba(8,113,93,.16) 14%,transparent 42%),conic-gradient(from 10deg,transparent 0 10%,rgba(213,173,103,.08) 18%,transparent 32%,rgba(87,179,156,.08) 51%,transparent 68%,rgba(213,173,103,.07) 84%,transparent);filter:blur(.2px);animation:kaizoraPortalField 18s linear infinite}
.kaizora-portal-field::before{content:"";position:absolute;inset:8%;border-radius:50%;background:repeating-radial-gradient(circle,rgba(239,214,160,.08) 0 1px,transparent 1px 26px);mask-image:radial-gradient(circle,transparent 0 22%,#000 23% 72%,transparent 73%);opacity:.75}
.kaizora-portal-grid{position:absolute;inset:5%;border-radius:50%;background:linear-gradient(90deg,rgba(239,214,160,.08) 1px,transparent 1px),linear-gradient(rgba(87,179,156,.07) 1px,transparent 1px);background-size:30px 30px;mask-image:radial-gradient(circle,transparent 0 24%,#000 26% 68%,transparent 74%);opacity:.34;transform:translateZ(-18px) rotate(23deg);animation:kaizoraPortalGrid 13s linear infinite}
.kaizora-portal-ring{position:absolute;border-radius:50%;border:1px solid rgba(239,214,160,.36);box-shadow:inset 0 0 34px rgba(8,113,93,.13),0 0 34px rgba(213,173,103,.08);transform-style:preserve-3d}
.kaizora-portal-ring-one{inset:5%;animation:kaizoraPortalRingA 9s cubic-bezier(.4,0,.2,1) infinite}
.kaizora-portal-ring-two{inset:20%;border-color:rgba(87,179,156,.34);animation:kaizoraPortalRingB 7s cubic-bezier(.4,0,.2,1) infinite reverse}
.kaizora-portal-ring-three{inset:35%;border-color:rgba(239,214,160,.44);animation:kaizoraPortalRingA 5.6s ease-in-out infinite reverse}
.kaizora-portal-core{position:absolute;inset:43%;border-radius:48% 52% 52% 48%;background:radial-gradient(circle at 30% 28%,#fff7df,rgba(239,214,160,.82) 8%,rgba(8,113,93,.62) 25%,rgba(4,8,7,.95) 68%);box-shadow:0 0 18px rgba(239,214,160,.35),0 0 90px rgba(8,113,93,.28),inset -15px -10px 35px rgba(0,0,0,.65);animation:kaizoraCoreMorph 6.5s ease-in-out infinite alternate}
.kaizora-portal-core::after{content:"";position:absolute;inset:-25%;border-radius:50%;border:1px solid rgba(239,214,160,.24);filter:blur(.2px);transform:rotateX(65deg)}
.kaizora-portal-satellite{position:absolute;width:13px;height:13px;border-radius:50%;background:#efd6a0;box-shadow:0 0 18px 4px rgba(213,173,103,.5);animation:kaizoraSatellite 7s linear infinite}
.kaizora-portal-satellite-one{left:22%;top:20%}.kaizora-portal-satellite-two{right:18%;bottom:24%;width:9px;height:9px;background:#57b39c;box-shadow:0 0 16px 4px rgba(87,179,156,.45);animation-delay:-3.5s}
@keyframes kaizoraPortalField{to{transform:rotate(1turn)}}
@keyframes kaizoraPortalGrid{to{transform:translateZ(-18px) rotate(-337deg)}}
@keyframes kaizoraPortalRingA{0%,100%{transform:rotateX(55deg) rotateZ(0) scale(.94);opacity:.42}50%{transform:rotateX(74deg) rotateZ(180deg) scale(1.06);opacity:.96}}
@keyframes kaizoraPortalRingB{0%,100%{transform:rotateY(58deg) rotateZ(0) scale(.94);opacity:.38}50%{transform:rotateY(78deg) rotateZ(180deg) scale(1.07);opacity:.85}}
@keyframes kaizoraCoreMorph{0%{transform:rotate(0) scale(.92);border-radius:48% 52% 52% 48%}100%{transform:rotate(95deg) scale(1.12);border-radius:61% 39% 43% 57%}}
@keyframes kaizoraSatellite{to{transform:rotate(1turn) translateX(86px) rotate(-1turn)}}

/* A continuous editorial ribbon connects the home sections as one world. */
.kaizora-dimension-ribbon{position:relative;z-index:4;overflow:hidden;display:flex;align-items:center;height:54px;margin-top:46px;border-top:1px solid rgba(239,214,160,.12);border-bottom:1px solid rgba(239,214,160,.12);background:linear-gradient(90deg,rgba(8,113,93,.18),rgba(8,10,10,.42) 42%,rgba(201,155,74,.12));box-shadow:inset 0 1px rgba(255,255,255,.03)}
.kaizora-dimension-ribbon::before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,var(--ink),transparent 12%,transparent 88%,var(--ink));z-index:2}
.kaizora-dimension-ribbon-track{display:flex;align-items:center;width:max-content;white-space:nowrap;animation:kaizoraRibbon 26s linear infinite}
.kaizora-dimension-ribbon-track span{display:inline-flex;align-items:center;gap:27px;min-width:max-content;padding-right:58px;color:rgba(244,238,226,.78);font-size:9px;font-weight:700;letter-spacing:.26em;text-transform:uppercase}
.kaizora-dimension-ribbon-track i{color:var(--gold-light);font-style:normal;font-size:12px}
@keyframes kaizoraRibbon{to{transform:translateX(-50%)}}

/* The card surface now responds as a small optical lens. */
body.kaizora-theme .home-product-card,body.kaizora-theme .woocommerce ul.products li.product,body.kaizora-theme .wc-block-product,body.kaizora-theme .wc-block-grid__product,body.kaizora-theme .kaizora-category-card{overflow:visible}
body.kaizora-theme .home-product-card::after,body.kaizora-theme .woocommerce ul.products li.product::after,body.kaizora-theme .wc-block-product::after,body.kaizora-theme .wc-block-grid__product::after,body.kaizora-theme .kaizora-category-card::after{background:radial-gradient(circle at var(--pointer-x,50%) var(--pointer-y,50%),rgba(239,214,160,.16) 0,rgba(87,179,156,.07) 20%,transparent 51%)}
body.kaizora-theme .home-product-card .product-image::before{content:"";position:absolute;z-index:2;inset:-10% 48% -10% -35%;pointer-events:none;background:linear-gradient(115deg,transparent,rgba(255,255,255,.22),transparent);transform:translateX(-135%) rotate(10deg);opacity:0}
body.kaizora-theme .home-product-card:hover .product-image::before{opacity:.84;transform:translateX(220%) rotate(10deg);transition:transform 1s var(--ed-ease),opacity .4s}

/* The mini-cart has its own spatial treatment but remains a regular WooCommerce cart underneath. */
body.kaizora-cart-open{overflow:hidden}
.kaizora-cart-drawer{position:fixed;inset:0;z-index:9100;pointer-events:none;visibility:hidden}
.kaizora-cart-drawer.is-open{visibility:visible;pointer-events:auto}
.kaizora-cart-backdrop{position:absolute;inset:0;width:100%;border:0;background:rgba(2,4,3,.72);backdrop-filter:blur(7px);opacity:0;cursor:default;transition:opacity .45s var(--ed-ease)}
.kaizora-cart-drawer.is-open .kaizora-cart-backdrop{opacity:1}
.kaizora-cart-panel{position:absolute;top:0;right:0;display:flex;flex-direction:column;width:min(100%,520px);height:100%;padding:clamp(24px,4vw,48px);overflow:hidden;background:linear-gradient(145deg,rgba(16,29,25,.985),rgba(5,7,6,.99) 60%,rgba(31,20,8,.99));border-left:1px solid rgba(239,214,160,.19);box-shadow:-35px 0 120px rgba(0,0,0,.48);transform:translateX(108%);transition:transform .66s var(--ed-ease)}
.kaizora-cart-panel::before{content:"";position:absolute;z-index:-1;right:-30%;top:3%;width:420px;aspect-ratio:1;border:1px solid rgba(239,214,160,.18);border-radius:50%;box-shadow:0 0 0 55px rgba(8,113,93,.035),0 0 100px rgba(213,173,103,.10);animation:kaizoraPortalField 20s linear infinite}
.kaizora-cart-panel::after{content:"海空";position:absolute;z-index:-1;left:-8%;bottom:-8%;font:500 clamp(170px,24vw,300px)/1 "Noto Serif JP",serif;color:rgba(239,214,160,.028)}
.kaizora-cart-drawer.is-open .kaizora-cart-panel{transform:translateX(0)}
.kaizora-cart-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:22px;padding-bottom:22px;border-bottom:1px solid rgba(255,255,255,.1)}
.kaizora-cart-panel-head .eyebrow{margin-bottom:8px}.kaizora-cart-panel-head h2{font-size:clamp(2rem,5vw,3.4rem)}
.kaizora-cart-close{display:grid;place-items:center;flex:0 0 42px;width:42px;height:42px;border:1px solid rgba(239,214,160,.24);border-radius:50%;background:rgba(255,255,255,.025);color:var(--ivory);font-size:28px;line-height:1;cursor:pointer;transition:transform .3s var(--ed-ease),background .3s}
.kaizora-cart-close:hover{transform:rotate(90deg);background:rgba(213,173,103,.13)}
.kaizora-mini-cart-body{position:relative;flex:1;min-height:0;padding:24px 1px;overflow:auto}
.kaizora-mini-cart-body .woocommerce-mini-cart{margin:0;padding:0;list-style:none}.kaizora-mini-cart-body .woocommerce-mini-cart-item{display:grid;grid-template-columns:76px 1fr auto;gap:15px;align-items:start;padding:0 0 17px!important;margin:0 0 17px!important;border-bottom:1px solid rgba(255,255,255,.09)}
.kaizora-mini-cart-body .woocommerce-mini-cart-item img{grid-column:1;width:76px;height:92px;object-fit:cover;margin:0!important;border:1px solid rgba(239,214,160,.13)}
.kaizora-mini-cart-body .woocommerce-mini-cart-item a:not(.remove){grid-column:2;color:var(--ivory);font:600 1rem/1.3 var(--display)}
.kaizora-mini-cart-body .woocommerce-mini-cart-item .quantity{grid-column:2;color:var(--gold-light);font-size:.75rem}.kaizora-mini-cart-body .woocommerce-mini-cart-item .remove{grid-column:3;grid-row:1;color:var(--muted)!important;font-size:1.25rem!important}
.kaizora-mini-cart-body .woocommerce-mini-cart__total{display:flex;justify-content:space-between;gap:16px;margin:0;padding:20px 0;color:var(--ivory);border-top:1px solid rgba(255,255,255,.13);font-size:.78rem;letter-spacing:.08em;text-transform:uppercase}.kaizora-mini-cart-body .woocommerce-mini-cart__total strong{font-weight:600}.kaizora-mini-cart-body .woocommerce-mini-cart__total .woocommerce-Price-amount{color:var(--gold-light);font-size:1.05rem}
.kaizora-mini-cart-body .woocommerce-mini-cart__buttons{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin:0}.kaizora-mini-cart-body .woocommerce-mini-cart__buttons .button{width:100%;min-height:48px;margin:0!important;padding-inline:12px!important}.kaizora-mini-cart-body .woocommerce-mini-cart__buttons .checkout{background:linear-gradient(135deg,#e0b966,#b7822f);color:#151109}
.kaizora-mini-cart-body .woocommerce-mini-cart__empty-message{padding:36px 0;color:var(--muted)}

/* Product pages stay cinematic instead of reverting to the default WooCommerce surface. */
body.single-product.kaizora-theme .site-main{isolation:isolate;background:radial-gradient(circle at 77% 26%,rgba(8,113,93,.18),transparent 23%),radial-gradient(circle at 14% 62%,rgba(213,173,103,.08),transparent 25%),rgba(8,10,10,.92)}
body.single-product.kaizora-theme .site-main::before{content:"";position:absolute;z-index:-1;left:-14vw;top:12%;width:54vw;aspect-ratio:1;border-radius:50%;border:1px solid rgba(213,173,103,.14);box-shadow:0 0 0 48px rgba(213,173,103,.018),0 0 110px rgba(8,113,93,.09);animation:kaizoraPortalField 26s linear infinite}
body.single-product.kaizora-theme div.product{max-width:1240px;margin:0 auto;padding:clamp(145px,14vw,210px) clamp(18px,4vw,48px) clamp(80px,10vw,150px)}
body.single-product.kaizora-theme div.product .woocommerce-product-gallery{position:relative;border:1px solid rgba(239,214,160,.16);box-shadow:0 34px 90px rgba(0,0,0,.42),0 0 0 1px rgba(213,173,103,.03)}
body.single-product.kaizora-theme div.product .summary{position:relative;padding:clamp(24px,4vw,48px);border:1px solid rgba(239,214,160,.12);background:linear-gradient(145deg,rgba(255,255,255,.035),rgba(255,255,255,.008));box-shadow:0 26px 70px rgba(0,0,0,.26)}

@media(max-width:900px){
  .kaizora-cursor-core{display:none}.hero .kaizora-portal{right:-46vw;width:112vw;opacity:.47;transform:translateY(-50%)!important}.kaizora-dimension-ribbon{height:48px;margin-top:30px}.kaizora-dimension-ribbon-track span{font-size:8px;gap:18px;padding-right:36px}.kaizora-cart-panel{width:min(100%,470px)}
}
@media(max-width:520px){
  .hero .kaizora-portal{right:-60vw;width:135vw;opacity:.31}.kaizora-cart-panel{padding:24px 18px}.kaizora-mini-cart-body .woocommerce-mini-cart__buttons{grid-template-columns:1fr}.kaizora-cart-panel-head h2{font-size:2.25rem}
}
@media(prefers-reduced-motion:reduce){
  body.kaizora-theme::before,.kaizora-cursor-core,.kaizora-page-transition,.kaizora-portal,.kaizora-dimension-ribbon{display:none!important}
  body.single-product.kaizora-theme .site-main::before{animation:none!important}
}
