.store-hero{position:relative;display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:center;margin-top:16px;padding:72px 64px 96px;overflow:hidden;border-radius:28px;background:var(--dark-surface)}
.store-hero::before{content:"";position:absolute;left:-80px;bottom:-120px;width:280px;height:280px;border:1px solid #ffffff12;border-radius:50%}
.store-hero > *{min-width:0}
.store-copy{position:relative;z-index:1}
.store-copy .eyebrow{color:var(--accent)}
.store-copy h1{color:white;font-size:clamp(2.4rem,4.5vw,4.4rem);margin-top:20px}
.store-copy p{color:var(--on-dark-muted);font-size:1.1rem;max-width:520px}
.store-hero-art{position:relative;z-index:1;min-height:280px;display:flex;align-items:center;justify-content:center;text-align:center;color:var(--on-dark-muted);background:#ffffff0a;border:1px solid #ffffff1f;border-radius:28px 90px 28px 90px;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase}
.store-carousel{min-height:360px;border-radius:28px 90px 28px 90px}
.store-carousel .carousel-track{min-height:360px}
.store-carousel .carousel-slide{background:#efede8;color:var(--muted)}
.store-carousel .carousel-slide.has-photo img{min-height:360px;object-fit:contain;background:#efede8}
.store-carousel .carousel-slide.is-cover img{object-fit:cover}
.store-carousel .carousel-slide.is-contain img{object-fit:contain}
.store-hero:has(.round-carousel){overflow:visible;grid-template-columns:.62fr 1.38fr;gap:20px;align-items:center;padding:40px 36px 64px}
.store-hero:has(.round-carousel) .store-copy h1{font-size:clamp(1.85rem,2.5vw,2.7rem);max-width:12ch;margin-top:12px}
.store-hero:has(.round-carousel) .store-copy p{font-size:.98rem;max-width:34ch}
.round-carousel{position:relative;z-index:1;min-width:0}
.round-stage{position:relative;perspective:1200px;perspective-origin:50% 48%;cursor:grab;touch-action:pan-y;outline:none}
.round-stage:active{cursor:grabbing}
.round-ring{position:absolute;inset:0;transform-style:preserve-3d}
.round-card{position:absolute;left:50%;top:50%;width:var(--card-w);height:var(--card-h);margin-left:calc(var(--card-w)/-2);margin-top:calc(var(--card-h)/-2);transform:rotateY(calc(var(--i)*var(--step))) translateZ(var(--radius));transform-style:preserve-3d;color:inherit;text-decoration:none}
.round-face{position:absolute;inset:0;display:flex;flex-direction:column;overflow:hidden;border-radius:22px;background:#efede8;backface-visibility:hidden;-webkit-backface-visibility:hidden;box-shadow:0 16px 40px #00000055}
.round-photo{position:relative;flex:1;min-height:0;overflow:hidden}
.round-photo img{width:100%;height:100%;object-fit:cover;display:block;pointer-events:none;user-select:none}
.round-caption{flex:0 0 46px;display:flex;align-items:center;justify-content:center;padding:4px 10px;background:#f7f6f3;color:#0c1220;font-family:var(--font-display);font-size:max(11px,calc(var(--card-w) * .052));font-weight:600;line-height:1.15;letter-spacing:-.015em;text-align:center}
.round-face.back{transform:rotateY(180deg)}
.round-face.back .round-photo img{transform:scaleX(-1);filter:brightness(.42)}
.round-face.back .round-caption{color:transparent;background:#ddd9d2}
.round-card-empty{display:grid;place-items:center;height:100%;padding:16px;color:#5d6570;font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;text-align:center}
.carousel-link{position:absolute;inset:0;display:block;color:inherit}
.carousel-link img{width:100%;height:100%}
.carousel-caption{position:absolute;left:0;right:0;bottom:0;z-index:2;margin:0;padding:40px 24px 52px;background:linear-gradient(180deg,transparent,#0a0f17e6 62%);color:white;font-family:var(--font-display);font-size:1.05rem;font-weight:600;letter-spacing:-.01em;text-align:left;pointer-events:none}
.store-strip strong{font-size:1.25rem;letter-spacing:-.02em}
.store-notice{margin:28px 0 0}
.store-catalog{margin-top:56px}
.school-picker{margin-top:8px}
.store-toolbar{padding:14px 16px;background:#ffffffeb;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow-soft);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
.store-toolbar input,.store-toolbar select{min-width:220px;border-radius:999px;border-color:var(--line);background:var(--bg)}
.store-grid{margin-top:12px;gap:28px 22px}
.product-card{overflow:hidden;padding:0;border-radius:20px;border-color:transparent;background:var(--surface);box-shadow:var(--shadow-soft);transition:transform .3s ease,box-shadow .3s ease}
.product-card:hover{transform:translateY(-4px);box-shadow:0 1px 2px #0c12200a,0 22px 48px #0c122016}
.product-card .product-art{position:relative;display:block;height:auto;aspect-ratio:4/5;margin:0;border-radius:0;overflow:hidden;background:#efede8}
.product-card .color-dots{position:absolute;right:12px;bottom:12px;z-index:1;display:flex;align-items:center;gap:4px;padding:5px 7px;border-radius:999px;background:#ffffffe6;box-shadow:0 4px 12px #0c122026}
.color-more{font-size:.7rem;font-weight:600;color:var(--ink);margin-left:1px}
.product-body{padding:22px 22px 24px}
.product-card .eyebrow{display:inline-block;margin-bottom:8px;letter-spacing:.16em}
.product-card h3{font-size:1.2rem;margin:0 0 4px}
.product-card p{margin:0}
.product-price{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:18px 0 6px}
.product-card .price{margin:0;font-size:1.5rem;letter-spacing:-.03em}
.product-card small{color:#2f7a4f;font-weight:600}
.product-card .full{margin-top:10px}
@media(max-width:900px){
  .store-hero{grid-template-columns:1fr;padding:52px 40px 82px}
  .store-hero:has(.round-carousel){grid-template-columns:1fr;padding:28px 22px 56px}
  .store-hero:has(.round-carousel) .round-carousel{order:-1;margin-top:0}
  .store-hero:has(.round-carousel) .store-copy h1{font-size:clamp(1.7rem,7vw,2.15rem);max-width:none}
  .store-hero-art,.store-carousel,.store-carousel .carousel-track,.store-carousel .carousel-slide.has-photo img{min-height:280px}
}
@media(max-width:600px){
  .store-hero{margin-top:0;padding:38px 22px 70px;border-radius:18px}
  .store-hero-art{min-height:180px;border-radius:18px 50px 18px 50px}
  .store-carousel{border-radius:18px 50px 18px 50px}
  .store-carousel,.store-carousel .carousel-track,.store-carousel .carousel-slide.has-photo img{min-height:240px}
  .store-toolbar input,.store-toolbar select{min-width:100%}
}
.page-hero{margin-bottom:28px}
.auth-card{max-width:460px;margin:-28px auto 48px;padding:36px;background:#ffffffeb;border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow-soft);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
.auth-card h2{margin:10px 0 0}
.auth-or{display:flex;align-items:center;gap:12px;margin:18px 0 12px;color:#7d8999;font-size:.8rem}
.auth-or::before,.auth-or::after{content:"";flex:1;height:1px;background:var(--line)}
.google-button{display:flex;justify-content:center;min-height:44px}
.auth-bar{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:28px;padding:16px 20px;background:var(--surface);border:1px solid var(--line);border-radius:16px}
.account-shell,.admin-shell{margin-top:8px}
.account-block{margin:36px 0}
.admin-shell{padding:28px;background:var(--surface);border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow-soft)}
.admin-shell .side button{border-radius:10px}
.admin-shell .stats .panel{border-radius:16px;box-shadow:none}