:root{
  --bg:#0e0d11; --bg-2:#141319; --surface:#1a1922; --surface-2:#23222d;
  --line:rgba(255,255,255,.08); --line-2:rgba(255,255,255,.14);
  --text:#f3eee7; --muted:#a39d95; --faint:#6f6a64;
  --accent:#ff6a2b; --accent-2:#ffb02e; --glow:rgba(255,106,43,.45);
  --good:#46d39a; --danger:#ff5d5d;
  --r:14px; --r-lg:22px; --r-sm:10px;
  --maxw:1200px;
}
::selection{background:rgba(255,106,43,.35);color:var(--text)}
html{scrollbar-color:var(--surface-2) var(--bg)}
::-webkit-scrollbar{width:12px;height:12px}
::-webkit-scrollbar-track{background:var(--bg)}
::-webkit-scrollbar-thumb{background:var(--surface-2);border-radius:8px;border:3px solid var(--bg)}
::-webkit-scrollbar-thumb:hover{background:#2e2d3a}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;overflow-x:clip}
body{
  background:var(--bg); color:var(--text);
  font-family:'Sora',system-ui,sans-serif; font-weight:300;
  line-height:1.6; -webkit-font-smoothing:antialiased;
  overflow-x:clip; max-width:100%;
}
body::before{
  content:""; position:fixed; inset:0; z-index:0; pointer-events:none;
  background:
    radial-gradient(900px 500px at 80% -10%, rgba(255,106,43,.10), transparent 60%),
    radial-gradient(700px 600px at -10% 110%, rgba(255,176,46,.06), transparent 60%),
    linear-gradient(rgba(255,255,255,.022) 1px, transparent 1px) 0 0/44px 44px,
    linear-gradient(90deg, rgba(255,255,255,.022) 1px, transparent 1px) 0 0/44px 44px;
}
/* Cursor aura: glow + grid highlight trailing the mouse (driven by app.js).
   Sits above the static body::before background, below all content (.wrap is z:1). */
.cursor-aura{
  position:fixed; left:0; top:0; width:920px; height:920px; z-index:0;
  pointer-events:none; opacity:0; transition:opacity .5s ease;
  transform:translate3d(-9999px,-9999px,0); will-change:transform;
}
.cursor-aura::before{
  content:""; position:absolute; inset:0;
  background:radial-gradient(closest-side, rgba(255,106,43,.09), rgba(255,140,46,.035) 45%, transparent 72%);
}
.cursor-aura::after{
  content:""; position:absolute; inset:0;
  background:
    linear-gradient(rgba(255,150,80,.13) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,150,80,.13) 1px, transparent 1px);
  background-size:44px 44px;
  background-position:var(--grid-x,0px) var(--grid-y,0px);
  -webkit-mask-image:radial-gradient(closest-side, #000, transparent 66%);
  mask-image:radial-gradient(closest-side, #000, transparent 66%);
}
.cursor-aura.on{opacity:1}
@media (prefers-reduced-motion: reduce), (pointer: coarse){
  .cursor-aura{display:none}
}
h1,h2,h3,h4,.mono{font-family:'Chakra Petch',monospace}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 22px;position:relative;z-index:1}
.eyebrow{font-family:'Chakra Petch';letter-spacing:.28em;text-transform:uppercase;font-size:.72rem;color:var(--accent);font-weight:600}
.btn{
  display:inline-flex;align-items:center;gap:.5rem;font-family:'Chakra Petch';font-weight:600;
  letter-spacing:.04em;padding:.8rem 1.4rem;border-radius:999px;transition:.18s ease;font-size:.92rem;
}
.btn-primary{background:linear-gradient(120deg,var(--accent),var(--accent-2));color:#1a0f06;box-shadow:0 8px 28px -8px var(--glow)}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 14px 34px -8px var(--glow)}
.btn-primary:active{transform:translateY(0);box-shadow:0 6px 20px -10px var(--glow)}
.btn-ghost{border:1px solid var(--line-2);color:var(--text)}
.btn-ghost:hover{border-color:var(--accent);color:var(--accent);background:rgba(255,106,43,.06)}
.btn-ghost:active{background:rgba(255,106,43,.12)}
.btn-sm{padding:.55rem 1rem;font-size:.82rem}
.btn:disabled{opacity:.45;cursor:not-allowed;transform:none!important;box-shadow:none}

header{position:sticky;top:0;z-index:50;backdrop-filter:blur(14px) saturate(1.4);-webkit-backdrop-filter:blur(14px) saturate(1.4);background:rgba(14,13,17,.72);border-bottom:1px solid var(--line)}
.nav{display:flex;align-items:center;justify-content:space-between;height:68px}
.brand{display:flex;align-items:center;gap:.6rem;font-family:'Chakra Petch';font-weight:700;font-size:1.15rem;letter-spacing:.02em;cursor:pointer}
.brand-logo{width:30px;height:30px;display:block;border-radius:8px;box-shadow:0 4px 12px -2px var(--glow)}
.brand small{font-size:inherit;color:var(--accent)}
.nav-links{display:flex;align-items:center;gap:1.6rem}
.nav-links a{font-size:.92rem;color:var(--muted);transition:.15s;position:relative;font-weight:400;cursor:pointer}
.nav-links a::after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:2px;border-radius:2px;background:linear-gradient(90deg,var(--accent),var(--accent-2));transform:scaleX(0);transform-origin:left;transition:transform .22s ease}
.nav-links a:hover{color:var(--text)}
.nav-links a:hover::after,.nav-links a.active::after{transform:scaleX(1)}
.nav-links a.active{color:var(--text)}
.nav-actions{display:flex;align-items:center;gap:.4rem}
.icon-btn{width:42px;height:42px;border-radius:11px;display:grid;place-items:center;color:var(--muted);transition:.15s;border:1px solid transparent;position:relative}
.icon-btn:hover{color:var(--text);background:var(--surface);border-color:var(--line)}
.cart-count{position:absolute;top:3px;right:3px;background:var(--accent);color:#1a0f06;font-size:.62rem;font-weight:700;font-family:'Chakra Petch';min-width:17px;height:17px;border-radius:9px;display:grid;place-items:center;padding:0 4px}
.burger{display:none}
@media(max-width:860px){
  .nav-links{display:none}
  .burger{display:grid}
}

.view{display:none;animation:fade .4s ease}
.view.active{display:block}
@keyframes fade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
section{padding:114px 0}
.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:32px;flex-wrap:wrap}
.section-head h2{font-size:clamp(1.5rem,3vw,2.2rem);font-weight:600;letter-spacing:.01em}
.section-head p{color:var(--muted);max-width:520px}

.hero {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: center;
  min-height: calc(100vh - 120px);
  padding: 110px 0 160px;
}
.hero h1 {
  font-size: clamp(2.8rem, 6.5vw, 4.5rem);
  line-height: 1.02;
  font-weight: 700;
  letter-spacing: -.01em;
}
.hero h1 span {
  background: linear-gradient(120deg, var(--accent), var(--accent-2));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.hero p {
  color: var(--muted);
  font-size: 1.15rem;
  margin: 24px 0 32px;
  max-width: 540px;
  line-height: 1.6;
}
.hero-cta {
  display: flex;
  gap: .8rem;
  flex-wrap: wrap;
}
.hero-stats {
  display: flex;
  gap: 36px;
  margin-top: 48px;
}
.hero-stats div b {
  font-family: 'Chakra Petch';
  font-size: 1.65rem;
  color: var(--text);
  display: block;
}
.hero-stats div span {
  color: var(--faint);
  font-size: .85rem;
}
.hero-viewer {
  height: 520px;
  border-radius: var(--r-lg);
  border: 1px solid var(--line);
  background: radial-gradient(120% 120% at 50% 0%, #1c1b24, #100f15 70%);
  position: relative;
  overflow: hidden;
  touch-action: none;
  box-shadow: 0 40px 90px -50px var(--glow), 0 24px 60px -30px rgba(0,0,0,.6);
}
.hero-viewer .tag {
  position: absolute;
  top: 14px;
  left: 14px;
  z-index: 2;
  font-family: 'Chakra Petch';
  font-size: .7rem;
  letter-spacing: .2em;
  color: var(--accent);
  text-transform: uppercase;
}
@media(max-width:860px){
  .hero {
    grid-template-columns: 1fr;
    min-height: auto;
    padding: 24px 0;
    gap: 32px;
  }
  .hero-viewer {
    height: 360px;
    order: -1;
  }
}

.grid{display:grid;gap:20px}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-4{grid-template-columns:repeat(4,1fr)}
@media(max-width:980px){.grid-3,.grid-4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.grid-3,.grid-4{grid-template-columns:1fr}}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease;cursor:pointer;display:flex;flex-direction:column}
.card:hover{transform:translateY(-5px);border-color:rgba(255,106,43,.35);box-shadow:0 18px 40px -22px rgba(0,0,0,.8),0 0 0 1px rgba(255,106,43,.12),0 14px 44px -26px var(--glow)}
.card-thumb{aspect-ratio:1/1;background:radial-gradient(120% 120% at 50% 20%, #20202b, #131218);position:relative;display:grid;place-items:center;overflow:hidden}
.card-thumb img{width:100%;height:100%;object-fit:contain;display:block;opacity:0;transition:opacity .35s ease,transform .35s ease}
.card:hover .card-thumb img.ready{transform:scale(1.045)}
.card-thumb img.ready{opacity:1}
.card-thumb .thumb-spin{position:absolute;inset:0;display:grid;place-items:center;color:var(--faint);font-family:'Chakra Petch';font-size:.72rem;letter-spacing:.08em}
.card-thumb .badge{position:absolute;top:10px;right:10px;font-family:'Chakra Petch';font-size:.65rem;letter-spacing:.1em;text-transform:uppercase;padding:.25rem .55rem;border-radius:999px;background:rgba(0,0,0,.5);border:1px solid var(--line-2);color:var(--accent-2);z-index:2}
.card-body{padding:16px;display:flex;flex-direction:column;gap:6px;flex:1}
.card-body h3{font-size:1.02rem;font-weight:600}
.card-body .cat{font-size:.74rem;color:var(--faint);text-transform:uppercase;letter-spacing:.12em;font-family:'Chakra Petch'}
.card-foot{display:flex;align-items:center;justify-content:space-between;margin-top:auto;padding-top:10px}
.price{font-family:'Chakra Petch';font-weight:700;font-size:1.15rem;color:var(--text)}
.price small{color:var(--faint);font-weight:400;font-size:.7rem}
.chips{display:flex;gap:4px}
.chip-color{width:15px;height:15px;border-radius:50%;border:1.5px solid rgba(255,255,255,.25)}

.searchbar{display:flex;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:.7rem 1.1rem;margin-bottom:8px}
.searchbar input{flex:1;background:none;border:none;outline:none;color:var(--text);font-family:inherit;font-size:.96rem}
.searchbar input::placeholder{color:var(--faint)}
.filters{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0 26px}
.filter-pill{font-family:'Chakra Petch';font-size:.8rem;padding:.45rem .95rem;border-radius:999px;border:1px solid var(--line);color:var(--muted);transition:.15s}
.filter-pill.active,.filter-pill:hover{border-color:var(--accent);color:var(--accent);background:rgba(255,106,43,.07)}

.pd{display:grid;grid-template-columns:1.15fr .85fr;gap:36px;align-items:start}
@media(max-width:880px){.pd{grid-template-columns:1fr}}
.pd-media-container{height:480px;border-radius:var(--r-lg);border:1px solid var(--line);background:radial-gradient(120% 120% at 50% 0%, #1d1c25, #0f0e14 72%);position:relative;overflow:hidden}
.viewer-stage{height:480px;border-radius:var(--r-lg);border:1px solid var(--line);background:radial-gradient(120% 120% at 50% 0%, #1d1c25, #0f0e14 72%);position:relative;overflow:hidden;touch-action:none}
.viewer-stage canvas{display:block}
.pd-gallery{margin-top:12px;display:flex;gap:8px;overflow-x:auto;padding-bottom:4px}
.pd-gallery-thumb{width:64px;height:64px;border-radius:var(--r-sm);border:2px solid var(--line);background:var(--surface-2);cursor:pointer;flex-shrink:0;overflow:hidden;transition:all .2s ease;display:flex;align-items:center;justify-content:center}
.pd-gallery-thumb.sel{border-color:var(--accent);box-shadow:0 0 10px rgba(255,106,43,0.3)}
.pd-gallery-thumb img{width:100%;height:100%;object-fit:cover}
.pd-gallery-thumb svg{color:var(--faint);transition:color .2s ease}
.pd-gallery-thumb.sel svg{color:var(--accent)}
.viewer-hint{position:absolute;bottom:12px;left:50%;transform:translateX(-50%);font-size:.72rem;color:var(--faint);font-family:'Chakra Petch';letter-spacing:.1em;pointer-events:none}
.viewer-loading{position:absolute;inset:0;display:grid;place-items:center;text-align:center;color:var(--faint);font-family:'Chakra Petch';font-size:.85rem;padding:20px;line-height:1.7}
.viewer-loading .err{color:var(--accent-2)}
.pd-info h1{font-size:clamp(1.6rem,3.4vw,2.4rem);font-weight:700;line-height:1.05}
.pd-info .cat{font-family:'Chakra Petch';color:var(--accent);letter-spacing:.16em;text-transform:uppercase;font-size:.76rem;margin-bottom:8px}
.pd-price{font-family:'Chakra Petch';font-size:2rem;font-weight:700;margin:14px 0}
.pd-desc{color:var(--muted);margin-bottom:8px}
.pd-meta{display:flex;gap:18px;flex-wrap:wrap;font-size:.8rem;color:var(--faint);font-family:'Chakra Petch';margin-top:6px}
.pd-meta b{color:var(--muted);font-weight:500}

.customizer{margin:22px 0;border-top:1px solid var(--line);padding-top:20px}
.customizer h4{font-size:.85rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:14px;display:flex;align-items:center;gap:8px}
.part-row{margin-bottom:16px}
.part-row .plabel{display:flex;align-items:center;justify-content:space-between;font-size:.85rem;margin-bottom:8px}
.part-row .plabel b{font-family:'Chakra Petch';font-weight:500}
.part-row .plabel .cname{color:var(--accent-2);font-size:.78rem}
.swatches{display:flex;flex-wrap:wrap;gap:8px}
.swatch{width:30px;height:30px;border-radius:9px;border:2px solid transparent;transition:.12s;position:relative;cursor:pointer}
.swatch:hover{transform:scale(1.1)}
.swatch.sel{border-color:var(--text);box-shadow:0 0 0 2px var(--bg),0 0 0 4px var(--accent)}
.swatch.nonstock::after{content:"+";position:absolute;top:-5px;right:-5px;width:14px;height:14px;border-radius:50%;background:var(--accent-2);color:#1a0f06;font-size:.62rem;font-weight:800;line-height:14px;text-align:center;font-family:'Chakra Petch';box-shadow:0 0 0 2px var(--bg)}
.nonstock-notice{display:flex;gap:10px;align-items:flex-start;background:linear-gradient(180deg,rgba(255,176,46,.12),rgba(255,176,46,.05));border:1px solid rgba(255,176,46,.35);border-radius:12px;padding:12px 14px;margin-bottom:14px;font-size:.85rem;color:var(--text);line-height:1.45}
.nonstock-notice .ns-ico{color:var(--accent-2);font-size:1rem;line-height:1.4;flex-shrink:0}
.multicolor-waste-notice{display:flex;gap:10px;align-items:flex-start;background:linear-gradient(180deg,rgba(255,60,0,.12),rgba(255,60,0,.05));border:1px solid rgba(255,60,0,.35);border-radius:12px;padding:12px 14px;margin-bottom:14px;font-size:.85rem;color:var(--text);line-height:1.45}
.multicolor-waste-notice .ns-ico{color:var(--accent);font-size:1rem;line-height:1.4;flex-shrink:0}
.finish-row{display:flex;gap:8px;margin-top:6px}
.finish-pill{font-family:'Chakra Petch';font-size:.78rem;padding:.4rem .9rem;border-radius:8px;border:1px solid var(--line);color:var(--muted)}
.finish-pill.active{border-color:var(--accent);color:var(--accent);background:rgba(255,106,43,.08)}
.qty{display:flex;align-items:center;gap:0;border:1px solid var(--line-2);border-radius:10px;overflow:hidden;width:fit-content}
.qty button{width:38px;height:40px;font-size:1.2rem;color:var(--muted)}
.qty button:hover{color:var(--accent);background:var(--surface)}
.qty span{width:44px;text-align:center;font-family:'Chakra Petch';font-weight:600}
.pd-actions{display:flex;gap:10px;margin-top:22px;flex-wrap:wrap}

.overlay{position:fixed;inset:0;background:rgba(0,0,0,.6);backdrop-filter:blur(3px);z-index:80;opacity:0;pointer-events:none;transition:.25s}
.overlay.open{opacity:1;pointer-events:auto}
.drawer{position:fixed;top:0;right:0;height:100%;width:min(420px,100%);background:var(--bg-2);border-left:1px solid var(--line);z-index:90;transform:translateX(100%);transition:.32s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column}
.drawer.open{transform:none}
.drawer-head{display:flex;align-items:center;justify-content:space-between;padding:20px;border-bottom:1px solid var(--line)}
.drawer-head h3{font-size:1.1rem}
.drawer-body{flex:1;overflow:auto;padding:20px}
.drawer-foot{padding:20px;border-top:1px solid var(--line)}
.close-x{width:36px;height:36px;border-radius:9px;display:grid;place-items:center;color:var(--muted)}
.close-x:hover{background:var(--surface);color:var(--text)}
.cart-item{display:flex;gap:12px;padding:14px 0;border-bottom:1px solid var(--line)}
.cart-item .ci-thumb{width:58px;height:58px;border-radius:10px;flex-shrink:0;border:1px solid var(--line);object-fit:contain;background:radial-gradient(120% 120% at 50% 20%, #20202b, #131218)}
.cart-item .ci-info{flex:1;font-size:.9rem}
.cart-item .ci-info b{font-family:'Chakra Petch';font-weight:600;display:block}
.cart-item .ci-info small{color:var(--faint)}
.cart-item .ci-x{color:var(--faint);font-size:.8rem;align-self:flex-start}
.cart-item .ci-x:hover{color:var(--danger)}
.total-row{display:flex;justify-content:space-between;font-size:.95rem;margin-bottom:8px;color:var(--muted)}
.total-row.big{font-family:'Chakra Petch';font-size:1.3rem;color:var(--text);font-weight:700;margin:14px 0}

.modal{position:fixed;inset:0;z-index:100;display:none;place-items:center;padding:20px}
.modal.open{display:grid}
.modal-card{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r-lg);width:min(460px,100%);padding:30px;position:relative;z-index:2;max-height:90vh;overflow:auto}
.modal-card.wide{width:min(620px,100%)}
.modal-card h2{font-size:1.4rem;margin-bottom:4px}
.modal-card .sub{color:var(--muted);font-size:.9rem;margin-bottom:22px}
.field{margin-bottom:14px}
.field label{display:block;font-size:.8rem;color:var(--muted);margin-bottom:6px;font-family:'Chakra Petch';letter-spacing:.04em}
.field input,.field textarea,.field select{width:100%;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:.8rem .95rem;color:var(--text);font-family:inherit;font-size:.95rem;outline:none;transition:.15s}
.field input:focus,.field textarea:focus{border-color:var(--accent)}
.field textarea{resize:vertical;min-height:120px}
.tabs{display:flex;gap:6px;background:var(--surface);padding:5px;border-radius:11px;margin-bottom:22px}
.tabs button{flex:1;padding:.6rem;border-radius:8px;font-family:'Chakra Petch';font-weight:500;font-size:.88rem;color:var(--muted);transition:.15s}
.tabs button.active{background:var(--surface-2);color:var(--text)}
.note{font-size:.78rem;color:var(--faint);margin-top:10px;line-height:1.5}
.banner{padding:.7rem 1rem;border-radius:10px;font-size:.85rem;margin-bottom:14px;border:1px solid}
.banner.warn{background:rgba(255,176,46,.08);border-color:rgba(255,176,46,.3);color:var(--accent-2)}
.banner.info{background:rgba(70,211,154,.08);border-color:rgba(70,211,154,.3);color:var(--good)}
.banner.danger{background:rgba(255,93,93,.08);border-color:rgba(255,93,93,.3);color:var(--danger)}

.acct-grid{display:grid;grid-template-columns:300px 1fr;gap:28px;align-items:start}
@media(max-width:760px){.acct-grid{grid-template-columns:1fr}}
.acct-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:24px}
.credit-box{background:linear-gradient(135deg,rgba(255,106,43,.14),rgba(255,176,46,.06));border:1px solid rgba(255,106,43,.3);border-radius:var(--r);padding:22px;margin-top:16px}
.credit-box .num{font-family:'Chakra Petch';font-size:2.4rem;font-weight:700;line-height:1;color:var(--accent-2)}
.credit-bar{height:8px;background:var(--surface-2);border-radius:6px;overflow:hidden;margin:12px 0 6px}
.credit-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--accent),var(--accent-2))}
.order{border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:12px;background:var(--surface)}
.order .otop{display:flex;justify-content:space-between;font-family:'Chakra Petch';font-size:.85rem;margin-bottom:8px}
.order .ostatus{color:var(--good);font-size:.78rem}
.order .oitems{font-size:.85rem;color:var(--muted)}

.feat{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
@media(max-width:760px){.feat{grid-template-columns:1fr}}
.feat .f{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:26px}
.feat .f .fn{font-family:'Chakra Petch';font-size:1.6rem;color:var(--accent);font-weight:700}
.feat .f h4{margin:10px 0 6px;font-size:1.1rem}
.feat .f p{color:var(--muted);font-size:.92rem}

.legal{max-width:780px;margin:0 auto}
.legal h2{font-size:1.8rem;margin-bottom:6px}
.legal .updated{color:var(--faint);font-size:.82rem;margin-bottom:8px}
.legal h3{margin:26px 0 8px;font-size:1.1rem;color:var(--accent-2)}
.legal p,.legal li{color:var(--muted);font-size:.94rem;margin-bottom:10px}
.legal ul{padding-left:20px}
.legal-tabs{display:flex;gap:8px;justify-content:center;margin-bottom:30px;flex-wrap:wrap}

.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:34px;align-items:start}
@media(max-width:760px){.contact-grid{grid-template-columns:1fr}}
.contact-info .ci{display:flex;gap:14px;margin-bottom:20px}
.contact-info .ci .ico{width:42px;height:42px;border-radius:11px;background:var(--surface);border:1px solid var(--line);display:grid;place-items:center;color:var(--accent);flex-shrink:0}
.contact-info .ci b{font-family:'Chakra Petch';display:block;font-size:.95rem}
.contact-info .ci span{color:var(--muted);font-size:.88rem}

.empty{text-align:center;color:var(--faint);padding:50px 0;font-family:'Chakra Petch'}

.owner-grid{display:grid;gap:12px;margin-top:8px}
.owner-stat{display:flex;justify-content:space-between;align-items:center;background:var(--surface);border-radius:var(--r);padding:14px 18px;font-size:.9rem}
.owner-stat b{font-family:'Chakra Petch';color:var(--accent-2)}
.owner-list{max-height:420px;overflow:auto;background:var(--surface);border-radius:var(--r);padding:4px 0}
.owner-list .row{display:flex;justify-content:space-between;gap:10px;padding:10px 12px;border-bottom:1px solid var(--line);font-size:.84rem}
.owner-list .row:last-child{border-bottom:none}
.owner-list .row small{color:var(--faint)}
.order-card{padding:12px 14px;border-bottom:1px solid var(--line)}
.order-card:last-child{border-bottom:none}
.order-top{display:flex;justify-content:space-between;gap:10px;align-items:baseline}
.order-top b{font-family:'Chakra Petch';font-size:.9rem}
.order-top small{color:var(--faint);font-size:.78rem;white-space:nowrap}
.order-items{color:var(--muted);font-size:.82rem;margin:4px 0 8px;line-height:1.4}
.order-toggles{display:flex;flex-wrap:wrap;gap:6px}
.otoggle{cursor:pointer;border:1px solid var(--line-2);background:var(--surface-2);color:var(--muted);border-radius:999px;padding:.32rem .7rem;font-size:.74rem;font-weight:600;font-family:inherit;display:inline-flex;align-items:center;gap:5px;transition:border-color .15s,color .15s,background .15s}
.otoggle::before{content:"";width:12px;height:12px;border-radius:4px;border:1.5px solid var(--faint);display:inline-block;flex-shrink:0}
.otoggle:hover{border-color:var(--accent);color:var(--text)}
.otoggle.on{background:rgba(70,211,154,.14);border-color:var(--good);color:var(--good)}
.otoggle.on::before{background:var(--good);border-color:var(--good)}
.otoggle.done.on{background:rgba(255,106,43,.16);border-color:var(--accent);color:var(--accent-2)}
.otoggle.done.on::before{background:var(--accent);border-color:var(--accent)}
.otag{font-size:.74rem;color:var(--faint);font-style:italic}
.admin-pager{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:12px}
.admin-pager .btn:disabled{opacity:.4;cursor:not-allowed;border-color:var(--line);color:var(--muted)}
.admin-pager .note{margin:0}
#ownerModal .modal-card.wide{width:min(1200px,96vw);max-height:92vh}
#ownerModal .owner-list{max-height:550px}
@media(max-width:600px){
  .pd-media-container, .viewer-stage{height:320px}
}
.mystl-list{display:grid;gap:10px;margin-top:8px}
.mystl-card{display:flex;justify-content:space-between;align-items:center;gap:12px;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:14px 16px}
.mystl-info{display:flex;flex-direction:column;gap:2px;min-width:0}
.mystl-info b{font-size:.92rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mystl-info small{color:var(--faint);font-size:.76rem}
/* Reviews */
.reviews-section{margin-top:10px}
.star{color:var(--line-2);font-size:1rem;letter-spacing:1px}
.star.on{color:var(--accent-2)}
.reviews-avg{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:.9rem;margin-top:6px}
.reviews-avg b{color:var(--text);font-family:'Chakra Petch'}
.reviews-empty{text-align:center;padding:34px 20px;background:var(--surface);border:1px solid var(--line);border-radius:16px}
.reviews-empty .re-stars{font-size:1.4rem;margin-bottom:10px}
.reviews-empty h3{font-family:'Chakra Petch';margin-bottom:6px}
.reviews-empty p{color:var(--muted);font-size:.9rem;margin-bottom:16px}
.reviews-filters{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}
.rfilter{background:var(--surface);border:1px solid var(--line);color:var(--muted);border-radius:999px;padding:.4rem .85rem;font-size:.8rem;font-weight:600;font-family:inherit;cursor:pointer;transition:.15s}
.rfilter:hover{border-color:var(--accent);color:var(--text)}
.rfilter.active{background:var(--accent);border-color:var(--accent);color:#1a0f06}
.review-card{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:22px 24px;min-height:120px}
.rc-stars{font-size:1.1rem;letter-spacing:2px;margin-bottom:10px}
.rc-comment{font-size:1.05rem;line-height:1.5;color:var(--text);margin-bottom:12px}
.rc-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}
.rc-tag{background:var(--surface-2);border:1px solid var(--line);border-radius:999px;padding:.25rem .65rem;font-size:.74rem;color:var(--muted)}
.rc-author{font-size:.85rem;color:var(--faint);font-family:'Chakra Petch'}
.review-nav{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:14px}
.rnav{width:40px;height:40px;border-radius:50%;background:var(--surface);border:1px solid var(--line-2);color:var(--text);font-size:1.1rem;cursor:pointer;transition:.15s}
.rnav:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}
.rnav:disabled{opacity:.35;cursor:not-allowed}
/* Review form */
.rstars{display:flex;gap:6px}
.rstar{background:none;border:none;font-size:1.9rem;color:var(--line-2);cursor:pointer;transition:.12s;line-height:1;padding:0}
.rstar:hover,.rstar.on{color:var(--accent-2);transform:scale(1.08)}
.rtags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}
.rtag{background:var(--surface-2);border:1px solid var(--line-2);color:var(--muted);border-radius:999px;padding:.35rem .8rem;font-size:.78rem;font-weight:600;font-family:inherit;cursor:pointer;transition:.15s}
.rtag:hover{border-color:var(--accent);color:var(--text)}
.rtag.on{background:rgba(255,106,43,.16);border-color:var(--accent);color:var(--accent-2)}
.rtag-add{display:flex;gap:8px}
.rtag-add input{flex:1;background:var(--surface-2);border:1px solid var(--line);border-radius:10px;padding:.5rem .7rem;color:var(--text);font-family:inherit;font-size:.85rem}
.lock-attempts{font-size:.76rem;color:var(--danger);margin-top:8px;min-height:1em}

footer{border-top:1px solid var(--line);padding:50px 0 30px;margin-top:40px;position:relative;z-index:1}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:30px;margin-bottom:34px}
@media(max-width:760px){.foot-grid{grid-template-columns:1fr 1fr}}
.foot-grid h5{font-family:'Chakra Petch';font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-bottom:14px}
.foot-grid a{display:block;color:var(--faint);font-size:.9rem;margin-bottom:9px;transition:.15s;cursor:pointer}
.foot-grid a:hover{color:var(--accent)}
.foot-bottom{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:22px;color:var(--faint);font-size:.82rem;flex-wrap:wrap;gap:10px}
.owner-link{color:var(--faint);font-size:.7rem;cursor:pointer;user-select:none}
.owner-link:hover{color:var(--accent)}

.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(160%);background:var(--surface-2);border:1px solid var(--line-2);border-left:3px solid var(--accent);color:var(--text);padding:.9rem 1.4rem;border-radius:12px;z-index:200;font-size:.9rem;font-family:'Chakra Petch';transition:.3s;box-shadow:0 12px 40px -12px rgba(0,0,0,.8);max-width:90vw;text-align:center;opacity:0;visibility:hidden;pointer-events:none}
.toast.show{transform:translateX(-50%) translateY(0);opacity:1;visibility:visible}

@media (prefers-reduced-motion: reduce){
  *{animation-duration:.001ms!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
}

.makerpass-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:6px;font-size:.7rem;font-family:'Chakra Petch';font-weight:600;letter-spacing:.05em;background:rgba(255,176,46,.15);color:var(--accent-2);border:1px solid rgba(255,176,46,.3)}
.makerpass-banner{background:linear-gradient(135deg,rgba(255,106,43,.1),rgba(255,176,46,.04));border:1px solid rgba(255,106,43,.25);border-radius:var(--r);padding:20px;margin-bottom:30px;display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}
.makerpass-banner-text h3{font-size:1.15rem;color:var(--accent-2);margin-bottom:4px}
.makerpass-banner-text p{font-size:.88rem;color:var(--muted);max-width:540px}
.cooldown-text{color:var(--danger);font-family:'Chakra Petch';font-weight:600;font-size:.78rem;margin-top:6px;letter-spacing:.02em}
.dl-btn{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:6px;background:var(--surface-2);border:1px solid var(--line);font-size:.76rem;font-family:'Chakra Petch';cursor:pointer;color:var(--accent-2);transition:.15s}
.dl-btn:hover{background:var(--accent);color:#1a0f06;border-color:var(--accent)}

.pagination{display:flex;justify-content:center;align-items:center;gap:12px;margin-top:30px}
.pagination-btn{font-family:'Chakra Petch';font-size:.85rem;padding:.45rem .85rem;border-radius:6px;border:1px solid var(--line);background:var(--surface);color:var(--text);transition:.15s;cursor:pointer}
.pagination-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}
.pagination-btn:disabled{opacity:.4;cursor:not-allowed}
.pagination-num{font-family:'Chakra Petch';font-size:.9rem;color:var(--faint)}

.auth-sep{display:flex;align-items:center;text-align:center;margin:1.2rem 0;color:var(--muted);font-size:.8rem;text-transform:uppercase;letter-spacing:.05em}
.auth-sep::before,.auth-sep::after{content:'';flex:1;border-bottom:1px solid var(--line)}
.auth-sep::before{margin-right:.8rem}
.auth-sep::after{margin-left:.8rem}

/* Redesigned Profile Section */
.profile-header {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 24px;
}
.profile-avatar {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--accent), var(--accent-2));
  color: #0c0703;
  display: grid;
  place-items: center;
  font-family: 'Chakra Petch';
  font-weight: 700;
  font-size: 1.5rem;
  flex-shrink: 0;
}
.profile-meta h2 {
  font-size: 1.4rem;
  margin: 0;
  line-height: 1.2;
}
.profile-meta p {
  font-size: .88rem;
  color: var(--muted);
  margin: 4px 0 0 0;
}
.profile-card {
  background: var(--surface);
  border-radius: var(--r);
  padding: 24px;
  margin-bottom: 24px;
}
.profile-card-header {
  margin-bottom: 18px;
}
.profile-card-header h3 {
  font-family: 'Chakra Petch';
  font-size: 1.1rem;
  color: var(--accent-2);
  margin: 0;
}
.profile-settings-list {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.profile-setting-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--line);
  gap: 16px;
}
.profile-setting-item:last-child {
  border-bottom: none;
  padding-bottom: 0;
}
.setting-info {
  display: flex;
  flex-direction: column;
  gap: 4px;
  flex-grow: 1;
}
.setting-label {
  font-size: .72rem;
  color: var(--faint);
  text-transform: uppercase;
  letter-spacing: .05em;
  font-family: 'Chakra Petch';
  font-weight: 600;
}
.setting-value {
  font-size: .95rem;
  color: var(--text);
}
.setting-edit-box {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 4px;
  max-width: 320px;
  width: 100%;
}
.setting-input {
  background: var(--bg);
  border: 1px solid var(--line-2);
  border-radius: 6px;
  color: var(--text);
  padding: 8px 12px;
  font-size: .9rem;
  font-family: inherit;
  width: 100%;
}
.setting-input:focus {
  outline: none;
  border-color: var(--accent);
}
.setting-edit-actions {
  display: flex;
  gap: 8px;
}
.edit-btn {
  flex-shrink: 0;
}
#menuDrawer a {
  transition: color 0.15s, padding-left 0.15s;
}
#menuDrawer a:hover {
  color: var(--accent) !important;
  padding-left: 4px;
}

/* Auto-spin toggle overlay button */
.viewer-spin-toggle {
  position: absolute;
  top: 14px;
  right: 14px;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(30, 27, 43, 0.65);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border: 1px solid rgba(255, 255, 255, 0.12);
  color: var(--accent);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  z-index: 10;
  transition: all 0.22s cubic-bezier(0.16, 1, 0.3, 1);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
}
.viewer-spin-toggle:hover {
  background: var(--accent);
  color: var(--bg);
  border-color: var(--accent);
  transform: scale(1.06);
}
.viewer-spin-toggle.paused {
  color: var(--faint);
}
.viewer-spin-toggle.paused:hover {
  background: var(--accent);
  color: var(--bg);
  border-color: var(--accent);
}
.viewer-spin-toggle .spin-icon {
  transition: transform 0.25s ease;
}
.viewer-spin-toggle:not(.paused) .spin-icon {
  animation: viewerSpinRotate 4s linear infinite;
}
@keyframes viewerSpinRotate {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

/* Scroll Reveal animations */
.scroll-reveal {
  opacity: 0;
  transform: translateY(36px);
  transition: opacity 1s cubic-bezier(0.16, 1, 0.3, 1), transform 1s cubic-bezier(0.16, 1, 0.3, 1) !important;
}
.scroll-reveal.visible {
  opacity: 1;
  transform: translateY(0);
}
#shopGrid .card.scroll-reveal {
  transition: opacity .7s cubic-bezier(0.16, 1, 0.3, 1), transform .7s cubic-bezier(0.16, 1, 0.3, 1) !important;
}
.hero-text.scroll-reveal, .hero-viewer.scroll-reveal {
  transition: opacity 1.6s cubic-bezier(0.16, 1, 0.3, 1), transform 1.6s cubic-bezier(0.16, 1, 0.3, 1) !important;
}

/* FAQ accordion section */
.faq-grid {
  display: flex;
  flex-direction: column;
  gap: 12px;
  max-width: 820px;
  margin: 0;
}
.faq-card {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--r);
  overflow: hidden;
  transition: all 0.28s cubic-bezier(0.16, 1, 0.3, 1);
}
.faq-card:hover {
  border-color: var(--line-2);
  background: var(--surface-2);
}
.faq-card.open {
  border-color: rgba(255, 106, 43, 0.25);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
}
.faq-question {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px 24px;
  cursor: pointer;
  user-select: none;
}
.faq-question h4 {
  font-size: 1.04rem;
  font-weight: 600;
  margin: 0;
  color: var(--text);
  transition: color 0.15s;
}
.faq-card:hover .faq-question h4 {
  color: var(--accent);
}
.faq-icon {
  font-family: 'Chakra Petch';
  font-size: 1.3rem;
  font-weight: 600;
  color: var(--muted);
  width: 24px;
  text-align: center;
}
.faq-answer {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.32s cubic-bezier(0.16, 1, 0.3, 1);
  padding: 0 24px;
}
.faq-card.open .faq-answer {
  max-height: 200px;
  padding-bottom: 22px;
}
.faq-answer p {
  color: var(--muted);
  font-size: 0.94rem;
  line-height: 1.5;
  margin: 0;
}

/* Maintenance mode: hidden by default; config.js adds .maintenance-on to <html>
   when APP_CONFIG.isMaintenance is true, which hides the entire site and shows
   only this screen. */
.maintenance-container { display: none; }
html.maintenance-on { overflow: hidden; }
html.maintenance-on body { overflow: hidden; }
html.maintenance-on body > :not(.maintenance-container) { display: none !important; }
html.maintenance-on .maintenance-container {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 100vh;
  background: radial-gradient(120% 120% at 50% 10%, #171219, #080509 70%);
  padding: 24px;
  color: var(--text);
  font-family: 'Sora', system-ui, sans-serif;
  text-align: center;
}
.maintenance-content {
  max-width: 600px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
}
.maintenance-content .logo {
  font-size: 4rem;
  margin-bottom: 8px;
  filter: drop-shadow(0 0 16px rgba(255, 106, 43, 0.4));
}
.maintenance-content h1 {
  font-family: 'Chakra Petch', sans-serif;
  font-size: 2.8rem;
  font-weight: 700;
  margin: 0;
  letter-spacing: -0.01em;
  text-transform: uppercase;
  background: linear-gradient(120deg, var(--accent), var(--accent-2));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.maintenance-content p {
  color: var(--muted);
  line-height: 1.6;
  font-size: 1.15rem;
  margin: 0;
}
.maintenance-content .contact {
  margin-top: 24px;
  font-size: 0.95rem;
  color: var(--faint);
}
.maintenance-content .contact a {
  color: var(--accent);
  text-decoration: none;
  font-weight: 500;
}
.maintenance-content .contact a:hover {
  text-decoration: underline;
}
