/* ============ TOKENS ============ */
:root {
--bg: #080F1D;
--bg2: #0D1728;
--panel: #142239;
--panel2: #1C2D47;

--ink: #F1F7FF;
--muted: #A5B9D2;
--faint: #7186A3;

--gold: #35D6E8;
--gold-hi: #91F0F5;
--gold-deep: #168FAE;

--line: rgba(53, 214, 232, .22);
--line-soft: rgba(241, 247, 255, .08);

--card-face: #E5EDF7;
--card-face2: #C9D9EB;

--glow: #173E62;

--ok: #62D6A5;
--warn: #F5C15C;
--err: #FF758B;

--r: 10px;
--ease: cubic-bezier(.22, 1, .36, 1);
--spring: cubic-bezier(.34, 1.56, .64, 1);
}

[data-theme="light"] {
--bg: #EDF4FA;
--bg2: #E1EBF5;
--panel: #FFFFFF;
--panel2: #F5F9FD;

--ink: #14243C;
--muted: #526A84;
--faint: #8295AB;

--gold: #087EAA;
--gold-hi: #075E87;
--gold-deep: #126C98;

--line: rgba(8, 126, 170, .23);
--line-soft: rgba(20, 36, 60, .09);

--card-face: #F7FAFD;
--card-face2: #DCE8F3;

--glow: #C8EAF5;
}
* {
box-sizing: border-box
}
html {
scroll-behavior: smooth
}
body {
margin: 0;
background: var(--bg);
color: var(--ink);
font-family: 'Sora', system-ui, sans-serif;
font-weight: 400;
transition: background .6s ease, color .6s ease;
overflow-x: hidden;
-webkit-font-smoothing: antialiased;
}
h1,
h2,
h3,
h4,
.serif {
font-family: 'Fraunces', serif;
font-weight: 500;
letter-spacing: -.015em
}
::selection {
background: var(--gold);
color: #0B110D
}
a {
color: inherit
}
img {
display: block
}
/* ambient background */
.ambient {
position: fixed;
inset: 0;
z-index: -1;
pointer-events: none;
overflow: hidden
}
.ambient::before,
.ambient::after {
content: "";
position: absolute;
width: 58vmax;
height: 58vmax;
border-radius: 50%;
filter: blur(110px);
opacity: .5;
transition: background 1s
}
.ambient::before {
top: -24vmax;
left: -18vmax;
background: var(--glow)
}
.ambient::after {
bottom: -28vmax;
right: -16vmax;
background: var(--glow);
opacity: .35
}
.ambient i {
position: absolute;
inset: 0;
background-image: radial-gradient(var(--line-soft) 1px, transparent 1px);
background-size: 34px 34px;
opacity: .5
}
/* ============ LEFT RAIL NAV ============ */
.rail {
position: fixed;
left: 0;
top: 0;
bottom: 0;
width: 86px;
z-index: 1040;
background: var(--bg2);
border-right: 1px solid var(--line-soft);
display: flex;
flex-direction: column;
align-items: center;
justify-content: space-between;
padding: 22px 0;
transition: background .6s, border-color .6s
}
.rail-brand {
display: flex;
flex-direction: column;
align-items: center;
gap: 8px;
text-decoration: none;
color: var(--ink)
}
.rail-mark {
width: 46px;
height: 46px;
border: 1.5px solid var(--gold);
display: grid;
place-items: center;
font-family: 'Fraunces', serif;
font-size: 22px;
font-style: italic;
color: var(--gold);
transition: .5s var(--spring)
}
.rail-brand:hover .rail-mark {
transform: rotate(-10deg) scale(1.07);
background: var(--gold);
color: var(--bg)
}
.rail-word {
font-size: 9px;
letter-spacing: .34em;
text-transform: uppercase;
color: var(--muted);
writing-mode: vertical-rl
}
.rail-links {
display: flex;
flex-direction: column;
gap: 6px
}
.rail-links a {
position: relative;
width: 52px;
height: 44px;
display: grid;
place-items: center;
color: var(--faint);
text-decoration: none;
transition: color .3s
}
.rail-links a i {
font-size: 17px;
transition: transform .4s var(--spring)
}
.rail-links a:hover,
.rail-links a.on {
color: var(--gold)
}
.rail-links a:hover i,
.rail-links a.on i {
transform: translateY(-2px) scale(1.12)
}
.rail-links a::after {
content: attr(data-label);
position: absolute;
left: 60px;
top: 50%;
transform: translate(-6px, -50%);
background: var(--panel);
border: 1px solid var(--line);
color: var(--ink);
font-size: 11px;
letter-spacing: .14em;
text-transform: uppercase;
padding: 7px 12px;
border-radius: 6px;
white-space: nowrap;
opacity: 0;
pointer-events: none;
transition: .3s var(--ease)
}
.rail-links a:hover::after {
opacity: 1;
transform: translate(0, -50%)
}
.rail-links a.on::before {
content: "";
position: absolute;
left: 0;
top: 12px;
bottom: 12px;
width: 2px;
background: var(--gold)
}
.rail-tools {
display: flex;
flex-direction: column;
gap: 10px;
align-items: center
}
.rtool {
position: relative;
width: 46px;
height: 46px;
border-radius: 50%;
border: 1px solid var(--line-soft);
background: transparent;
color: var(--ink);
display: grid;
place-items: center;
cursor: pointer;
font-size: 16px;
transition: .35s var(--spring)
}
.rtool:hover {
border-color: var(--gold);
color: var(--gold);
transform: translateY(-3px)
}
.rtool .badge-n {
position: absolute;
top: -3px;
right: -3px;
min-width: 18px;
height: 18px;
padding: 0 4px;
border-radius: 99px;
background: var(--gold);
color: #0B110D;
font-size: 10px;
font-weight: 700;
display: grid;
place-items: center;
border: 2px solid var(--bg2)
}
/* mobile bar */
.mbar {
display: none;
position: fixed;
top: 0;
left: 0;
right: 0;
z-index: 1040;
height: 64px;
background: var(--bg2);
border-bottom: 1px solid var(--line-soft);
align-items: center;
justify-content: space-between;
padding: 0 18px;
transition: background .6s
}
.mbar .rail-mark {
width: 38px;
height: 38px;
font-size: 18px
}
.mtools {
display: flex;
gap: 8px
}
.mtools .rtool {
width: 40px;
height: 40px
}
.mmenu {
position: fixed;
inset: 0;
z-index: 1055;
background: var(--bg);
display: flex;
flex-direction: column;
justify-content: center;
padding: 30px 34px;
gap: 4px;
clip-path: inset(0 0 100% 0);
transition: clip-path .55s var(--ease)
}
.mmenu.open {
clip-path: inset(0 0 0 0)
}
.mmenu a {
font-family: 'Fraunces', serif;
font-size: clamp(30px, 8vw, 46px);
color: var(--ink);
text-decoration: none;
padding: 8px 0;
border-bottom: 1px solid var(--line-soft);
display: flex;
justify-content: space-between;
align-items: center
}
.mmenu a span {
font-family: 'Sora';
font-size: 12px;
color: var(--gold)
}
.mmenu .mm-x {
position: absolute;
top: 16px;
right: 18px
}
/* ============ SHARED SECTION BITS ============ */
main {
padding-left: 86px
}
section {
position: relative
}
.sec {
padding: clamp(76px, 9vw, 132px) clamp(20px, 4.5vw, 64px)
}
.wrap {
max-width: 1300px;
margin: 0 auto
}
.kicker {
display: inline-flex;
align-items: center;
gap: 10px;
font-size: 11px;
font-weight: 600;
letter-spacing: .3em;
text-transform: uppercase;
color: var(--gold)
}
.kicker::before {
content: "";
width: 26px;
height: 1px;
background: var(--gold)
}
.sec-no {
position: absolute;
top: clamp(60px, 7vw, 100px);
right: clamp(18px, 4vw, 60px);
font-family: 'Fraunces', serif;
font-style: italic;
font-size: clamp(52px, 7vw, 96px);
color: transparent;
-webkit-text-stroke: 1px var(--line);
line-height: 1;
pointer-events: none;
user-select: none
}
.sec-title {
font-size: clamp(34px, 4.8vw, 64px);
line-height: 1.04;
margin: 16px 0 0
}
.sec-title em {
font-style: italic;
color: var(--gold)
}
.lm {
display: inline-block;
overflow: hidden;
vertical-align: bottom
}
.lm>span {
display: inline-block;
transform: translateY(110%);
transition: transform 1s var(--ease)
}
.in .lm>span {
transform: none
}
.btn {
font-family: 'Sora';
font-weight: 600;
font-size: 14px;
border-radius: var(--r);
cursor: pointer;
transition: .35s var(--spring);
border: 0;
text-decoration: none
}
.btn-gold {
background: var(--gold);
color: #0B110D;
padding: 15px 28px;
display: inline-flex;
gap: 9px;
align-items: center
}
.btn-gold:hover {
background: var(--gold-hi);
transform: translateY(-3px);
box-shadow: 0 16px 30px -18px var(--gold)
}
.btn-line {
background: transparent;
color: var(--ink);
border: 1px solid var(--line);
padding: 14px 26px;
display: inline-flex;
gap: 9px;
align-items: center
}
.btn-line:hover {
border-color: var(--gold);
color: var(--gold);
transform: translateY(-3px)
}
.btn-ghost-s {
background: transparent;
border: 1px solid var(--line);
color: var(--ink);
padding: 9px 16px;
font-size: 12.5px;
border-radius: 8px;
display: inline-flex;
gap: 7px;
align-items: center;
cursor: pointer;
font-family: 'Sora';
font-weight: 600;
transition: .3s var(--spring);
text-decoration: none
}
.btn-ghost-s:hover {
border-color: var(--gold);
color: var(--gold)
}
/* ============ INNER PAGE HERO ============ */
.page-hero {
position: relative;
padding: clamp(64px, 8vw, 110px) clamp(20px, 4.5vw, 64px) clamp(36px, 4vw, 56px);
border-bottom: 1px solid var(--line-soft)
}
.page-hero .crumb {
font-size: 11px;
letter-spacing: .22em;
text-transform: uppercase;
color: var(--faint);
display: flex;
gap: 10px;
align-items: center;
margin-bottom: 20px;
flex-wrap: wrap
}
.page-hero .crumb a {
color: var(--muted);
text-decoration: none;
transition: .3s
}
.page-hero .crumb a:hover {
color: var(--gold)
}
.page-hero .ph-title {
font-size: clamp(36px, 5vw, 68px);
line-height: 1.05;
margin: 16px 0 0;
max-width: 20ch
}
.page-hero .ph-title em {
font-style: italic;
color: var(--gold)
}
.page-hero .ph-sub {
color: var(--muted);
max-width: 62ch;
margin: 18px 0 0;
font-size: 15px;
line-height: 1.75
}
.page-hero .sec-no {
top: clamp(36px, 5vw, 64px)
}
/* ============ HERO ============ */
.hero {
min-height: 100svh;
display: flex;
flex-direction: column;
padding: 84px clamp(18px, 3.5vw, 56px) 0
}
.hero-top {
display: flex;
justify-content: space-between;
align-items: flex-end;
gap: 24px;
flex-wrap: wrap
}
.hero-eyebrow {
font-size: 11px;
letter-spacing: .32em;
text-transform: uppercase;
color: var(--gold);
display: flex;
gap: 12px;
align-items: center;
margin-bottom: 18px
}
.hero-eyebrow::before {
content: "";
width: 34px;
height: 1px;
background: var(--gold)
}
.hero h1 {
font-size: clamp(38px, 5.2vw, 76px);
line-height: 1.02;
margin: 0;
max-width: 14ch
}
.hero h1 em {
font-style: italic;
color: var(--gold)
}
.hero-sub {
max-width: 52ch;
color: var(--muted);
font-size: 15px;
line-height: 1.75;
margin: 20px 0 0
}
.hero-cta {
display: flex;
gap: 12px;
flex-wrap: wrap;
margin-top: 26px
}
.hero-count {
font-family: 'Fraunces', serif;
font-style: italic;
font-size: clamp(28px, 3vw, 40px);
color: var(--muted)
}
.hero-count b {
color: var(--gold);
font-weight: 500
}
.hero-main {
flex: 1;
display: flex;
flex-wrap: wrap;
justify-content: center;
gap: clamp(40px, 8vw, 120px);
align-items: center;
position: relative;
min-height: 520px
}
.deck-zone {
position: relative;
height: min(62vh, 560px);
perspective: 1500px;
width: 100%;
max-width: 480px
}
.deck-glow {
position: absolute;
inset: 8% 12%;
background: radial-gradient(closest-side, var(--glow), transparent 72%);
filter: blur(30px);
opacity: .8;
transition: background 1s
}
.pcard {
position: absolute;
left: 50%;
top: 50%;
width: min(330px, 72%);
aspect-ratio: 3/4.1;
border-radius: 18px;
transform-style: preserve-3d;
will-change: transform, opacity;
transition: transform 1s var(--ease), opacity .8s ease;
box-shadow: 0 40px 70px -40px rgba(0, 0, 0, .8)
}
.pcard .face {
position: absolute;
inset: 0;
border-radius: 18px;
backface-visibility: hidden;
overflow: hidden
}
.pcard .front {
background: var(--card-face)
}
.pcard .front img {
width: 100%;
height: 100%;
object-fit: cover;
mix-blend-mode: multiply;
opacity: .96
}
.pcard .front .tag {
position: absolute;
top: 14px;
left: 14px;
background: rgba(11, 17, 13, .85);
color: var(--gold-hi);
font-size: 10px;
letter-spacing: .18em;
text-transform: uppercase;
padding: 7px 11px;
border-radius: 6px
}
.pcard .back {
transform: rotateY(180deg);
background: linear-gradient(155deg, var(--panel2), var(--panel));
border: 1px solid var(--line);
display: flex;
flex-direction: column;
justify-content: space-between;
padding: 26px
}
.pcard .back .bn {
font-family: 'Fraunces', serif;
font-size: 24px;
line-height: 1.1
}
.pcard .back .bp {
color: var(--gold-hi);
font-family: 'Fraunces', serif;
font-size: 28px
}
.pcard .back small {
color: var(--muted);
font-size: 11px;
letter-spacing: .2em;
text-transform: uppercase
}
.deck-nav {
position: absolute;
bottom: -14px;
left: 50%;
transform: translateX(-50%);
display: flex;
gap: 16px;
align-items: center;
z-index: 200;
background: var(--bg2);
border: 1px solid var(--line-soft);
border-radius: 99px;
padding: 8px 14px;
box-shadow: 0 16px 34px -22px rgba(0, 0, 0, .8)
}
.deck-nav .arrow {
width: 44px;
height: 44px;
border-radius: 50%;
border: 1px solid var(--line);
background: var(--panel);
color: var(--ink);
display: grid;
place-items: center;
cursor: pointer;
transition: .35s var(--spring)
}
.deck-nav .arrow:hover {
border-color: var(--gold);
color: var(--gold);
transform: scale(1.08)
}
.deck-track {
width: 130px;
height: 2px;
background: var(--line-soft);
position: relative
}
.deck-track i {
position: absolute;
left: 0;
top: 0;
bottom: 0;
background: var(--gold);
width: 20%;
transition: width .8s var(--ease)
}
/* glass info card */
.hero-info {
align-self: center;
width: min(340px, 100%);
background: rgba(19, 29, 22, .55);
backdrop-filter: blur(18px) saturate(1.3);
-webkit-backdrop-filter: blur(18px) saturate(1.3);
border: 1px solid rgba(239, 237, 228, .14);
border-radius: 20px;
padding: 30px 28px;
box-shadow: 0 40px 80px -50px rgba(0, 0, 0, .9);
transition: background .6s, border-color .6s
}
[data-theme="light"] .hero-info {
background: rgba(251, 251, 247, .6);
border-color: rgba(18, 32, 25, .12)
}
.hero-info .hcat {
font-size: 10.5px;
letter-spacing: .26em;
text-transform: uppercase;
color: var(--gold)
}
.hero-info h3 {
font-size: clamp(24px, 2.2vw, 30px);
line-height: 1.12;
margin: 12px 0 10px
}
.hero-info p {
color: var(--muted);
font-size: 13.5px;
line-height: 1.65;
margin: 0 0 18px
}
.hero-info .hprice {
font-family: 'Fraunces', serif;
font-size: 32px;
color: var(--gold-hi)
}
.hero-info .hprice small {
font-family: 'Sora';
font-size: 11px;
color: var(--muted);
letter-spacing: .14em;
text-transform: uppercase;
display: block;
margin-top: 2px
}
.info-swap {
animation: infoIn .7s var(--ease)
}
@keyframes infoIn {
from {
opacity: 0;
transform: translateY(16px)
}
to {
opacity: 1;
transform: none
}
}
.hero-foot-strip {
border-top: 1px solid var(--line-soft);
margin-top: 26px
}
.trust {
display: flex;
flex-wrap: wrap;
gap: 10px 0;
justify-content: space-between;
padding: 18px 4px
}
.trust span {
display: inline-flex;
gap: 10px;
align-items: center;
font-size: 12.5px;
letter-spacing: .1em;
text-transform: uppercase;
color: var(--muted);
font-weight: 500
}
.trust span i {
color: var(--gold);
font-size: 15px
}
.trust span+span::before {
content: "";
width: 5px;
height: 5px;
border-radius: 50%;
background: var(--line);
margin-right: 18px
}
.scroll-cue {
position: absolute;
left: 50%;
bottom: 70px;
transform: translateX(-50%);
display: flex;
flex-direction: column;
align-items: center;
gap: 8px;
color: var(--faint);
font-size: 10px;
letter-spacing: .3em;
text-transform: uppercase;
z-index: 5
}
.scroll-cue i {
animation: cue 1.8s ease-in-out infinite
}
@keyframes cue {
0%,
100% {
transform: translateY(0)
}
50% {
transform: translateY(7px)
}
}
/* ============ ABOUT ============ */
.about-grid {
display: grid;
grid-template-columns: 1fr 1.1fr;
gap: clamp(34px, 6vw, 90px)
}
.about-sticky {
position: sticky;
top: 90px;
align-self: start
}
.about-sticky .stat-row {
display: flex;
gap: 34px;
margin-top: 34px;
flex-wrap: wrap
}
.about-sticky .stat b {
font-family: 'Fraunces', serif;
font-size: clamp(30px, 3.4vw, 44px);
color: var(--gold);
display: block;
line-height: 1
}
.about-sticky .stat span {
font-size: 11px;
letter-spacing: .16em;
text-transform: uppercase;
color: var(--muted)
}
.about-copy p {
color: var(--muted);
font-size: 15.5px;
line-height: 1.85;
margin: 0 0 22px
}
.about-copy p strong {
color: var(--ink);
font-weight: 600
}
.about-copy p.pull {
font-family: 'Fraunces', serif;
font-size: clamp(20px, 2.1vw, 27px);
line-height: 1.45;
color: var(--ink);
font-style: italic;
border-left: 2px solid var(--gold);
padding-left: 22px
}
.afeats {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 14px;
margin-top: 10px
}
.afeat {
background: var(--panel);
border: 1px solid var(--line-soft);
border-radius: var(--r);
padding: 22px;
transition: .45s var(--spring);
position: relative;
overflow: hidden
}
.afeat:hover {
transform: translateY(-6px);
border-color: var(--line)
}
.afeat:hover i {
color: var(--gold);
transform: rotate(-8deg) scale(1.1)
}
.afeat i {
font-size: 24px;
color: var(--muted);
transition: .45s var(--spring);
display: block;
margin-bottom: 14px
}
.afeat h4 {
font-size: 17px;
margin: 0 0 6px
}
.afeat p {
font-size: 13px;
color: var(--muted);
margin: 0;
line-height: 1.6
}
/* ============ CATEGORIES (cursor filmstrip) ============ */
.cat-list {
border-top: 1px solid var(--line-soft)
}
.cat-row {
display: grid;
grid-template-columns: 64px 54px 1fr auto 34px;
gap: 22px;
align-items: center;
padding: 26px 8px;
border-bottom: 1px solid var(--line-soft);
cursor: pointer;
position: relative;
transition: padding .4s var(--ease), background .4s
}
.cat-row:hover {
padding-left: 26px;
background: linear-gradient(90deg, rgba(201, 162, 75, .06), transparent 60%)
}
.cat-row .no {
font-family: 'Fraunces', serif;
font-style: italic;
color: var(--faint);
font-size: 15px
}
.cat-row .em {
font-size: 26px;
transition: transform .5s var(--spring)
}
.cat-row:hover .em {
transform: scale(1.25) rotate(-10deg)
}
.cat-row .nm {
font-family: 'Fraunces', serif;
font-size: clamp(22px, 3vw, 38px);
line-height: 1;
transition: color .3s
}
.cat-row:hover .nm {
color: var(--gold)
}
.cat-row .ct {
font-size: 11.5px;
letter-spacing: .18em;
text-transform: uppercase;
color: var(--muted)
}
.cat-row .go {
color: var(--faint);
transition: .4s var(--ease)
}
.cat-row:hover .go {
color: var(--gold);
transform: translateX(6px)
}
#catFloat {
position: fixed;
z-index: 900;
width: 210px;
height: 270px;
border-radius: 14px;
overflow: hidden;
pointer-events: none;
opacity: 0;
transform: scale(.8) rotate(-6deg);
transition: opacity .35s, transform .5s var(--spring);
box-shadow: 0 30px 60px -30px rgba(0, 0, 0, .85);
border: 1px solid var(--line)
}
#catFloat img {
width: 100%;
height: 100%;
object-fit: cover
}
#catFloat.show {
opacity: 1;
transform: scale(1) rotate(3deg)
}
/* ============ FEATURED (tilt) ============ */
.tilt-grid {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 18px
}
.tilt {
perspective: 900px
}
.tilt-in {
background: var(--panel);
border: 1px solid var(--line-soft);
border-radius: 14px;
overflow: hidden;
transform-style: preserve-3d;
transition: transform .25s ease-out, border-color .4s;
height: 100%
}
.tilt:hover .tilt-in {
border-color: var(--line)
}
.tilt-media {
height: 210px;
position: relative;
overflow: hidden;
transform: translateZ(30px)
}
.tilt-media img {
width: 100%;
height: 100%;
object-fit: contain;
transition: transform 1s var(--ease)
}
.tilt:hover .tilt-media img {
transform: scale(1.07)
}
.stamp {
position: absolute;
top: 14px;
right: 14px;
width: 64px;
height: 64px;
border-radius: 50%;
background: var(--gold);
color: #0B110D;
display: grid;
place-items: center;
text-align: center;
font-size: 8.5px;
font-weight: 700;
letter-spacing: .08em;
text-transform: uppercase;
line-height: 1.2;
animation: stampSpin 14s linear infinite
}
@keyframes stampSpin {
to {
transform: rotate(360deg)
}
}
.tilt-body {
padding: 20px;
transform: translateZ(22px)
}
.tilt-body .tc {
font-size: 10px;
letter-spacing: .22em;
text-transform: uppercase;
color: var(--gold)
}
.tilt-body h4 {
font-size: 18px;
margin: 8px 0 4px
}
.tilt-body .tp {
font-family: 'Fraunces', serif;
font-size: 21px;
color: var(--gold-hi)
}
.tilt-foot {
display: flex;
gap: 8px;
margin-top: 14px
}
/* ============ PRODUCT WALL ============ */
.pwall-tools {
display: flex;
gap: 14px;
flex-wrap: wrap;
align-items: center;
justify-content: space-between;
margin-bottom: 32px
}
.chips {
display: flex;
gap: 8px;
flex-wrap: wrap
}
.chip {
background: transparent;
border: 1px solid var(--line-soft);
color: var(--muted);
padding: 10px 17px;
border-radius: 99px;
font-size: 12.5px;
font-weight: 600;
cursor: pointer;
transition: .3s;
font-family: 'Sora'
}
.chip:hover {
color: var(--ink);
border-color: var(--line)
}
.chip.on {
background: var(--gold);
color: #0B110D;
border-color: var(--gold)
}
.pw-fields {
display: flex;
gap: 10px;
flex-wrap: wrap
}
.pw-fields input,
.pw-fields select {
background: var(--panel);
border: 1px solid var(--line-soft);
color: var(--ink);
border-radius: 99px;
padding: 11px 18px;
font-family: 'Sora';
font-size: 13.5px;
outline: 0;
transition: .3s
}
.pw-fields input:focus,
.pw-fields select:focus {
border-color: var(--gold)
}
.pw-fields select option {
background: var(--panel);
color: var(--ink)
}
.pgrid {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 18px
}
.prod {
opacity: 0;
transform: translateY(36px);
transition: opacity .7s ease, transform .8s var(--ease);
transition-delay: calc(var(--i, 0)*60ms)
}
.prod.in {
opacity: 1;
transform: none
}
.prod-in {
background: var(--panel);
border: 1px solid var(--line-soft);
border-radius: 14px;
overflow: hidden;
height: 100%;
display: flex;
flex-direction: column;
transition: border-color .4s, transform .5s var(--spring)
}
.prod-in:hover {
border-color: var(--line);
transform: translateY(-6px)
}
.prod-media {
position: relative;
aspect-ratio: 1/1.02;
overflow: hidden;
background: var(--panel2);
clip-path: polygon(0 0, 100% 0, 100% calc(100% - 24px), calc(100% - 24px) 100%, 0 100%)
}
.prod-media img {
width: 100%;
height: 100%;
object-fit: cover;
transition: transform 1.1s var(--ease)
}
.prod-in:hover .prod-media img {
transform: scale(1.08)
}
.prod-serial {
position: absolute;
left: 14px;
bottom: 12px;
font-family: 'Fraunces', serif;
font-style: italic;
font-size: 13px;
color: var(--gold-hi);
background: rgba(11, 17, 13, .72);
padding: 4px 10px;
border-radius: 6px;
backdrop-filter: blur(4px)
}
.wish-btn {
position: absolute;
top: 12px;
right: 12px;
width: 38px;
height: 38px;
border-radius: 50%;
border: 0;
background: rgba(11, 17, 13, .72);
color: var(--ink);
display: grid;
place-items: center;
cursor: pointer;
backdrop-filter: blur(4px);
transition: .3s var(--spring)
}
.wish-btn:hover {
transform: scale(1.12)
}
.wish-btn.on {
color: #E07070;
animation: wishPop .5s var(--spring)
}
@keyframes wishPop {
40% {
transform: scale(1.35)
}
}
.prod-qv {
position: absolute;
left: 12px;
right: 12px;
bottom: 12px;
opacity: 0;
transform: translateY(12px);
background: var(--gold);
color: #0B110D;
border: 0;
border-radius: 9px;
padding: 11px;
font-weight: 700;
font-size: 12.5px;
cursor: pointer;
display: flex;
justify-content: center;
gap: 8px;
transition: .4s var(--ease);
font-family: 'Sora'
}
.prod-in:hover .prod-qv {
opacity: 1;
transform: none
}
.prod-body {
padding: 18px 18px 20px;
display: flex;
flex-direction: column;
gap: 7px;
flex: 1
}
.prod-body .pc {
font-size: 9.5px;
letter-spacing: .22em;
text-transform: uppercase;
color: var(--gold)
}
.prod-body h3 {
font-size: 17.5px;
line-height: 1.2;
margin: 0
}
.prod-foot {
margin-top: auto;
display: flex;
justify-content: space-between;
align-items: center;
gap: 10px;
padding-top: 12px
}
.prod-foot .pp {
font-family: 'Fraunces', serif;
font-size: 20px;
color: var(--gold-hi)
}
.add-btn {
width: 40px;
height: 40px;
border-radius: 50%;
border: 1px solid var(--line);
background: transparent;
color: var(--ink);
cursor: pointer;
display: grid;
place-items: center;
transition: .35s var(--spring)
}
.add-btn:hover {
background: var(--gold);
border-color: var(--gold);
color: #0B110D;
transform: rotate(90deg)
}
.empty-box {
grid-column: 1/-1;
text-align: center;
padding: 70px 20px;
border: 1px dashed var(--line);
border-radius: 14px
}
/* ============ WHY (bento) ============ */
.bento {
display: grid;
grid-template-columns: repeat(4, 1fr);
grid-auto-rows: 170px;
gap: 16px
}
.btile {
background: var(--panel);
border: 1px solid var(--line-soft);
border-radius: 16px;
padding: 26px;
position: relative;
overflow: hidden;
transition: .45s var(--spring);
display: flex;
flex-direction: column;
justify-content: space-between
}
.btile:hover {
transform: translateY(-6px);
border-color: var(--line)
}
.btile .bi2 {
width: 48px;
height: 48px;
border-radius: 12px;
border: 1px solid var(--line);
display: grid;
place-items: center;
font-size: 20px;
color: var(--gold);
transition: .5s var(--spring)
}
.btile:hover .bi2 {
transform: rotate(-10deg) scale(1.1);
background: var(--gold);
color: #0B110D
}
.btile h4 {
font-size: 19px;
margin: 0 0 6px
}
.btile p {
font-size: 13px;
color: var(--muted);
line-height: 1.6;
margin: 0
}
.btile.big {
grid-column: span 2;
grid-row: span 2;
background: linear-gradient(160deg, var(--panel2), var(--panel));
justify-content: flex-end
}
.btile.big .bignum {
font-family: 'Fraunces', serif;
font-size: clamp(56px, 6vw, 92px);
color: var(--gold);
line-height: .95
}
.btile.big .bignum i {
font-style: italic;
font-size: .5em
}
.btile.wide {
grid-column: span 2
}
/* ============ TESTIMONIAL BAND ============ */
.quotes {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 16px
}
.quote {
background: var(--panel);
border: 1px solid var(--line-soft);
border-radius: 16px;
padding: 28px;
position: relative;
transition: .4s var(--spring)
}
.quote:hover {
transform: translateY(-6px) rotate(-.6deg);
border-color: var(--line)
}
.quote .qmark {
font-family: 'Fraunces', serif;
font-size: 56px;
color: var(--gold);
line-height: .6;
display: block;
margin-bottom: 14px
}
.quote p {
font-size: 14.5px;
line-height: 1.75;
color: var(--ink);
margin: 0 0 18px
}
.quote .who {
display: flex;
align-items: center;
gap: 12px
}
.quote .who img {
width: 40px;
height: 40px;
border-radius: 50%;
object-fit: cover
}
.quote .who b {
display: block;
font-size: 13.5px
}
.quote .who span {
font-size: 11.5px;
color: var(--muted)
}
.quote .stars {
color: var(--gold);
font-size: 11px;
letter-spacing: 2px;
margin-left: auto
}
/* ============ FAQ SPLIT ============ */
.faq-split {
display: grid;
grid-template-columns: .9fr 1.1fr;
gap: clamp(28px, 5vw, 70px);
align-items: start
}
.fq-list {
display: flex;
flex-direction: column
}
.fq-q {
background: none;
border: 0;
border-bottom: 1px solid var(--line-soft);
text-align: left;
cursor: pointer;
padding: 20px 6px;
display: flex;
gap: 16px;
align-items: center;
color: var(--muted);
font-family: 'Fraunces', serif;
font-size: clamp(17px, 1.8vw, 22px);
transition: .3s;
font-weight: 500
}
.fq-q .n {
font-family: 'Sora';
font-size: 11px;
letter-spacing: .1em;
color: var(--faint)
}
.fq-q:hover {
color: var(--ink);
padding-left: 14px
}
.fq-q.on {
color: var(--gold)
}
.fq-q.on .n {
color: var(--gold)
}
.fq-panel {
position: sticky;
top: 100px;
background: var(--panel);
border: 1px solid var(--line-soft);
border-radius: 18px;
padding: clamp(26px, 3.4vw, 44px);
min-height: 300px
}
.fq-panel .fq-cat {
font-size: 10.5px;
letter-spacing: .26em;
text-transform: uppercase;
color: var(--gold)
}
.fq-panel h3 {
font-size: clamp(22px, 2.4vw, 30px);
margin: 14px 0 14px
}
.fq-panel p {
color: var(--muted);
font-size: 15px;
line-height: 1.8;
margin: 0
}
.fq-swap {
animation: infoIn .55s var(--ease)
}
/* ============ NEWSLETTER ============ */
.member {
display: grid;
grid-template-columns: .9fr 1.1fr;
gap: clamp(28px, 5vw, 66px);
align-items: center;
background: var(--panel);
border: 1px solid var(--line-soft);
border-radius: 22px;
padding: clamp(28px, 4.5vw, 58px);
position: relative;
overflow: hidden
}
.member::before {
content: "";
position: absolute;
top: -120px;
right: -120px;
width: 340px;
height: 340px;
border-radius: 50%;
background: radial-gradient(closest-side, var(--glow), transparent 70%)
}
.mcard-wrap {
perspective: 1000px;
position: relative;
z-index: 2
}
.mcard {
aspect-ratio: 1.62/1;
border-radius: 18px;
position: relative;
transform-style: preserve-3d;
transition: transform .3s ease-out;
background: linear-gradient(140deg, #1A2419, #0F1712 55%, #1A2419);
border: 1px solid var(--line);
padding: 26px;
display: flex;
flex-direction: column;
justify-content: space-between;
color: #EFEDE4;
box-shadow: 0 40px 70px -45px rgba(0, 0, 0, .9)
}
[data-theme="light"] .mcard {
background: linear-gradient(140deg, #22301F, #122019 55%, #22301F)
}
.mcard .mtop {
display: flex;
justify-content: space-between;
align-items: flex-start
}
.mcard .mbrand {
font-family: 'Fraunces', serif;
font-style: italic;
font-size: 20px;
color: var(--gold-hi)
}
.mcard .chipico {
width: 44px;
height: 32px;
border-radius: 6px;
background: linear-gradient(135deg, var(--gold-hi), var(--gold-deep))
}
.mcard .mnum {
font-family: 'Sora';
letter-spacing: .24em;
font-size: 15px;
color: rgba(239, 237, 228, .85)
}
.mcard .mbot {
display: flex;
justify-content: space-between;
align-items: flex-end
}
.mcard .mbot small {
display: block;
font-size: 9px;
letter-spacing: .22em;
text-transform: uppercase;
color: rgba(239, 237, 228, .5);
margin-bottom: 4px
}
.mcard .mbot b {
font-size: 13px;
letter-spacing: .06em
}
.mcard .perks {
position: absolute;
right: 22px;
top: 50%;
transform: translateY(-50%);
color: var(--gold);
font-size: 26px;
opacity: .9
}
.member-form {
position: relative;
z-index: 2
}
.member-form .inp {
width: 100%;
background: var(--bg2);
border: 1px solid var(--line-soft);
color: var(--ink);
border-radius: 10px;
padding: 14px 16px;
font-family: 'Sora';
font-size: 14px;
outline: 0;
transition: .3s
}
.member-form .inp:focus {
border-color: var(--gold)
}
.member-form .inp.bad {
border-color: var(--err);
animation: shake .4s
}
@keyframes shake {
25% {
transform: translateX(-6px)
}
75% {
transform: translateX(6px)
}
}
.member-form label {
font-size: 10.5px;
letter-spacing: .2em;
text-transform: uppercase;
color: var(--muted);
font-weight: 600;
display: block;
margin-bottom: 7px
}
.chk {
display: flex;
gap: 11px;
align-items: flex-start;
font-size: 13px;
color: var(--muted);
line-height: 1.6;
margin: 16px 0 20px
}
.chk input {
width: 18px;
height: 18px;
accent-color: var(--gold);
flex: none;
margin-top: 2px
}
/* ============ CONTACT ============ */
.contact-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: clamp(26px, 4vw, 54px)
}
.c-big {
font-family: 'Fraunces', serif;
font-size: clamp(22px, 2.6vw, 32px);
color: var(--ink);
text-decoration: none;
border-bottom: 1px solid var(--line);
display: inline-block;
padding-bottom: 4px;
transition: .3s
}
.c-big:hover {
color: var(--gold);
border-color: var(--gold)
}
.c-table {
margin-top: 34px;
border-top: 1px solid var(--line-soft)
}
.c-table .row {
display: flex;
justify-content: space-between;
gap: 16px;
padding: 15px 4px;
border-bottom: 1px solid var(--line-soft);
font-size: 14px
}
.c-table .row span {
color: var(--muted)
}
.c-table .row b {
font-weight: 600;
text-align: right
}
.cform {
background: var(--panel);
border: 1px solid var(--line-soft);
border-radius: 18px;
padding: clamp(24px, 3vw, 40px)
}
.cform .inp {
width: 100%;
background: transparent;
border: 0;
border-bottom: 1px solid var(--line-soft);
color: var(--ink);
padding: 13px 2px;
font-family: 'Sora';
font-size: 14.5px;
outline: 0;
transition: .3s
}
.cform .inp:focus {
border-color: var(--gold)
}
.cform label {
font-size: 10.5px;
letter-spacing: .2em;
text-transform: uppercase;
color: var(--muted);
font-weight: 600
}
.cmap {
margin-top: 22px;
height: 220px;
border-radius: 16px;
position: relative;
overflow: hidden;
border: 1px solid var(--line-soft);
background: var(--bg2)
}
.cmap .grid-l {
position: absolute;
inset: 0;
background-image: linear-gradient(var(--line-soft) 1px, transparent 1px), linear-gradient(90deg, var(--line-soft) 1px, transparent 1px);
background-size: 44px 44px
}
.cmap .ping {
position: absolute;
left: 56%;
top: 44%;
width: 14px;
height: 14px;
border-radius: 50%;
background: var(--gold)
}
.cmap .ping::after {
content: "";
position: absolute;
inset: -10px;
border-radius: 50%;
border: 2px solid var(--gold);
animation: ping 1.8s ease-out infinite
}
@keyframes ping {
from {
transform: scale(.4);
opacity: .9
}
to {
transform: scale(1.8);
opacity: 0
}
}
.cmap .lbl {
position: absolute;
left: 16px;
bottom: 14px;
font-size: 11px;
letter-spacing: .2em;
text-transform: uppercase;
color: var(--muted)
}
/* ============ FOOTER ============ */
footer {
border-top: 1px solid var(--line);
padding: clamp(56px, 7vw, 96px) clamp(20px, 4.5vw, 64px) 30px;
margin-top: 30px
}
.f-top {
display: grid;
grid-template-columns: 1.4fr 1fr 1fr 1fr 1fr;
gap: 38px
}
.f-line {
font-family: 'Fraunces', serif;
font-style: italic;
font-size: clamp(22px, 2.6vw, 32px);
line-height: 1.3;
max-width: 22ch;
color: var(--ink)
}
.f-line em {
color: var(--gold);
font-style: italic
}
.f-col h6 {
font-size: 10.5px;
letter-spacing: .26em;
text-transform: uppercase;
color: var(--faint);
margin-bottom: 18px;
font-family: 'Sora';
font-weight: 600
}
.f-col a {
display: block;
color: var(--muted);
text-decoration: none;
font-size: 14px;
padding: 5px 0;
transition: .3s;
width: fit-content
}
.f-col a:hover {
color: var(--gold);
transform: translateX(5px)
}
.f-social {
display: flex;
gap: 10px;
margin-top: 22px
}
.f-social a {
width: 42px;
height: 42px;
border-radius: 50%;
border: 1px solid var(--line-soft);
display: grid;
place-items: center;
color: var(--muted);
transition: .4s var(--spring)
}
.f-social a:hover {
background: var(--gold);
color: #0B110D;
border-color: var(--gold);
transform: translateY(-5px) rotate(-8deg)
}
.f-bottom {
display: flex;
justify-content: space-between;
gap: 14px;
flex-wrap: wrap;
border-top: 1px solid var(--line-soft);
margin-top: 48px;
padding-top: 22px;
font-size: 12.5px;
color: var(--faint)
}
/* ============ DRAWERS ============ */
.overlay {
position: fixed;
inset: 0;
background: rgba(5, 8, 6, .62);
backdrop-filter: blur(4px);
opacity: 0;
visibility: hidden;
transition: .4s;
z-index: 1060
}
.overlay.open {
opacity: 1;
visibility: visible
}
.drawer {
position: fixed;
top: 0;
bottom: 0;
width: min(440px, 100%);
background: var(--bg2);
z-index: 1070;
display: flex;
flex-direction: column;
transition: transform .55s var(--ease);
border-left: 1px solid var(--line-soft)
}
.drawer.right {
right: 0;
transform: translateX(103%)
}
.drawer.left {
left: 0;
transform: translateX(-103%);
border-left: 0;
border-right: 1px solid var(--line-soft)
}
.drawer.open {
transform: none
}
.dr-head {
padding: 24px;
border-bottom: 1px solid var(--line-soft);
display: flex;
justify-content: space-between;
align-items: center
}
.dr-head h4 {
font-size: 24px;
margin: 0
}
.dr-body {
flex: 1;
overflow-y: auto;
padding: 18px 24px
}
.dr-foot {
padding: 20px 24px 26px;
border-top: 1px solid var(--line-soft)
}
.dr-line {
display: flex;
gap: 14px;
padding: 14px 0;
border-bottom: 1px solid var(--line-soft);
animation: drIn .5s var(--ease)
}
@keyframes drIn {
from {
opacity: 0;
transform: translateX(24px)
}
}
.dr-line img {
width: 66px;
height: 76px;
border-radius: 10px;
object-fit: cover;
flex: none
}
.qty {
display: inline-flex;
align-items: center;
gap: 4px;
border: 1px solid var(--line-soft);
border-radius: 99px;
padding: 3px
}
.qty button {
width: 26px;
height: 26px;
border-radius: 50%;
border: 0;
background: transparent;
color: var(--ink);
cursor: pointer;
transition: .25s
}
.qty button:hover {
background: var(--gold);
color: #0B110D
}
.qty span {
min-width: 22px;
text-align: center;
font-size: 13px;
font-weight: 600
}
.sum {
display: flex;
justify-content: space-between;
font-size: 14px;
color: var(--muted);
padding: 5px 0
}
.sum.total {
font-family: 'Fraunces', serif;
font-size: 22px;
color: var(--ink);
border-top: 1px solid var(--line-soft);
margin-top: 8px;
padding-top: 12px
}
/* ============ SEARCH OVERLAY ============ */
.sov {
position: fixed;
inset: 0;
z-index: 1080;
background: rgba(8, 12, 9, .9);
backdrop-filter: blur(16px);
display: flex;
flex-direction: column;
opacity: 0;
visibility: hidden;
transition: .4s
}
[data-theme="light"] .sov {
background: rgba(238, 241, 234, .92)
}
.sov.open {
opacity: 1;
visibility: visible
}
.sov-in {
max-width: 840px;
width: 100%;
margin: 0 auto;
padding: 12vh 24px 40px;
display: flex;
flex-direction: column;
flex: 1
}
.sov input {
background: transparent;
border: 0;
border-bottom: 2px solid var(--line);
color: var(--ink);
font-family: 'Fraunces', serif;
font-size: clamp(28px, 4.5vw, 52px);
padding: 18px 4px;
outline: 0;
width: 100%
}
.sov input::placeholder {
color: var(--faint);
font-style: italic
}
.sov-res {
margin-top: 30px;
overflow-y: auto;
flex: 1
}
.sov-row {
display: flex;
gap: 16px;
align-items: center;
padding: 14px 6px;
border-bottom: 1px solid var(--line-soft);
cursor: pointer;
transition: .3s
}
.sov-row:hover {
padding-left: 16px;
background: rgba(201, 162, 75, .05)
}
.sov-row img {
width: 52px;
height: 58px;
border-radius: 8px;
object-fit: cover
}
.sov-row b {
font-family: 'Fraunces', serif;
font-size: 17px;
font-weight: 500
}
.sov-row small {
display: block;
color: var(--muted);
font-size: 11px;
letter-spacing: .14em;
text-transform: uppercase
}
.sov-row .sp {
margin-left: auto;
font-family: 'Fraunces', serif;
color: var(--gold-hi);
font-size: 18px
}
/* ============ MODALS / TOASTS ============ */
.modal-content {
background: var(--bg2);
color: var(--ink);
border: 1px solid var(--line-soft);
border-radius: 18px
}
.modal-header {
border-bottom: 1px solid var(--line-soft)
}
.modal-title {
font-family: 'Fraunces', serif
}
.modal-body h6 {
font-family: 'Fraunces', serif;
font-size: 17px;
display: flex;
gap: 10px;
align-items: center;
margin-bottom: 6px
}
.modal-body h6::before {
content: "";
width: 8px;
height: 8px;
background: var(--gold);
transform: rotate(45deg)
}
.modal-body p {
color: var(--muted);
font-size: 14px;
line-height: 1.75
}
.mi {
width: 100%;
background: var(--panel);
border: 1px solid var(--line-soft);
color: var(--ink);
border-radius: 10px;
padding: 12px 15px;
font-family: 'Sora';
font-size: 14px;
outline: 0;
transition: .3s
}
.mi:focus {
border-color: var(--gold)
}
.ml {
font-size: 10.5px;
letter-spacing: .2em;
text-transform: uppercase;
color: var(--muted);
font-weight: 600;
display: block;
margin-bottom: 7px
}
.qv-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 26px
}
.qv-img {
width: 100%;
height: min(44vh, 380px);
object-fit: cover;
border-radius: 14px
}
.rel-row {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 10px;
margin-top: 22px
}
.rel {
cursor: pointer;
text-align: left
}
.rel img {
width: 100%;
aspect-ratio: 1;
object-fit: cover;
border-radius: 10px;
border: 1px solid var(--line-soft);
transition: .35s var(--spring)
}
.rel:hover img {
transform: translateY(-4px);
border-color: var(--gold)
}
.rel b {
display: block;
font-size: 11.5px;
margin-top: 6px;
font-weight: 500;
line-height: 1.3
}
.rel small {
color: var(--gold);
font-family: 'Fraunces', serif;
font-size: 13px
}
.toast-stack {
position: fixed;
top: 20px;
right: 20px;
z-index: 1300;
display: flex;
flex-direction: column;
gap: 12px;
width: min(360px, calc(100vw - 40px))
}
.tst {
display: flex;
gap: 14px;
align-items: flex-start;
background: var(--panel);
border: 1px solid var(--line-soft);
border-left: 3px solid var(--gold);
border-radius: 12px;
padding: 15px 16px;
box-shadow: 0 30px 60px -34px rgba(0, 0, 0, .8);
transform: translateX(120%);
opacity: 0;
animation: tIn .6s var(--spring) forwards;
position: relative;
overflow: hidden
}
.tst.out {
animation: tOut .45s ease forwards
}
@keyframes tIn {
to {
transform: none;
opacity: 1
}
}
@keyframes tOut {
to {
transform: translateX(120%);
opacity: 0
}
}
.tst .tic {
width: 38px;
height: 38px;
border-radius: 50%;
display: grid;
place-items: center;
flex: none;
color: #0B110D;
animation: tpop .55s .15s var(--spring) backwards
}
@keyframes tpop {
from {
transform: scale(0) rotate(-120deg)
}
}
.tst h6 {
font-family: 'Fraunces', serif;
font-size: 15.5px;
margin: 0 0 3px
}
.tst p {
margin: 0;
font-size: 13px;
color: var(--muted);
line-height: 1.55
}
.tst .tx {
margin-left: auto;
background: none;
border: 0;
color: var(--faint);
cursor: pointer;
font-size: 15px
}
.tst .tbar {
position: absolute;
left: 0;
bottom: 0;
height: 2.5px;
background: var(--gold);
animation: tbar 3.8s linear forwards
}
@keyframes tbar {
from {
width: 100%
}
to {
width: 0
}
}
.tst.success .tic {
background: var(--ok)
}
.tst.warn {
border-left-color: var(--warn)
}
.tst.warn .tic {
background: var(--warn)
}
.tst.warn .tbar {
background: var(--warn)
}
.tst.err {
border-left-color: var(--err)
}
.tst.err .tic {
background: var(--err)
}
.tst.err .tbar {
background: var(--err)
}
.tst.info {
border-left-color: #7FB4D8
}
.tst.info .tic {
background: #7FB4D8
}
.tst.info .tbar {
background: #7FB4D8
}
.back-top {
position: fixed;
right: 22px;
bottom: 22px;
width: 50px;
height: 50px;
border-radius: 50%;
border: 1px solid var(--line);
background: var(--panel);
color: var(--gold);
cursor: pointer;
display: grid;
place-items: center;
z-index: 900;
opacity: 0;
visibility: hidden;
transform: translateY(18px);
transition: .4s var(--spring)
}
.back-top.show {
opacity: 1;
visibility: visible;
transform: none
}
.back-top:hover {
background: var(--gold);
color: #0B110D;
transform: translateY(-5px)
}
[data-theme="dark"] .btn-close {
filter: invert(1) grayscale(1) brightness(1.7)
}
[data-theme="light"] .modal .btn-close {
filter: none
}
/* ============ LEGAL / DOC PAGES ============ */
.doc-panel {
background: var(--panel);
border: 1px solid var(--line-soft);
border-radius: 18px;
padding: clamp(26px, 4vw, 54px)
}
.doc {
max-width: 900px
}
.doc h6 {
font-family: 'Fraunces', serif;
font-size: 19px;
display: flex;
gap: 10px;
align-items: center;
margin: 30px 0 8px
}
.doc h6:first-child {
margin-top: 0
}
.doc h6::before {
content: "";
width: 8px;
height: 8px;
background: var(--gold);
transform: rotate(45deg);
flex: none
}
.doc p {
color: var(--muted);
font-size: 14.5px;
line-height: 1.85;
margin: 0 0 4px
}
/* ============ FORM PANELS (unsubscribe / checkout) ============ */
.form-panel {
background: var(--panel);
border: 1px solid var(--line-soft);
border-radius: 18px;
padding: clamp(24px, 3vw, 44px)
}
.form-panel .mi {
background: var(--bg2)
}
.narrow {
max-width: 640px;
margin: 0 auto
}
.co-grid {
display: grid;
grid-template-columns: 1.15fr .85fr;
gap: clamp(26px, 4vw, 54px);
align-items: start
}
.co-panel {
background: var(--panel);
border: 1px solid var(--line-soft);
border-radius: 18px;
padding: clamp(24px, 3vw, 40px)
}
.co-panel .mi {
background: var(--bg2)
}
.co-note {
border: 1px dashed var(--line);
border-radius: 12px;
padding: 16px;
display: flex;
gap: 14px;
align-items: center;
margin-top: 20px
}
.co-note i {
font-size: 24px;
color: var(--gold)
}
.co-success {
text-align: center;
padding: 40px 20px
}
.co-success .big-ico {
width: 84px;
height: 84px;
border-radius: 50%;
background: var(--ok);
color: #0B110D;
display: grid;
place-items: center;
font-size: 34px;
margin: 0 auto 22px;
animation: tpop .6s var(--spring)
}
/* ============ RESPONSIVE ============ */
@media (max-width:1200px) {
.pgrid,
.tilt-grid {
grid-template-columns: repeat(3, 1fr)
}
.hero-copy {
grid-column: 1/-1
}
.hero-info {
width: min(400px, 100%)
}
.f-top {
grid-template-columns: 1.4fr 1fr 1fr
}
}
@media (max-width:991px) {
.rail {
display: none
}
main {
padding-left: 0;
padding-top: 64px
}
.mbar {
display: flex
}
.hero {
padding-top: 90px
}
.about-grid,
.faq-split,
.contact-grid,
.member,
.co-grid {
grid-template-columns: 1fr
}
.about-sticky,
.fq-panel {
position: static
}
.bento {
grid-template-columns: repeat(2, 1fr)
}
.btile.big {
grid-column: span 2
}
.quotes {
grid-template-columns: 1fr
}
.f-top {
grid-template-columns: 1fr 1fr
}
.pgrid,
.tilt-grid {
grid-template-columns: repeat(2, 1fr)
}
#catFloat {
display: none
}
.cat-row {
grid-template-columns: 40px 1fr auto
}
.cat-row .em,
.cat-row .go {
display: none
}
}
@media (max-width:640px) {
.pgrid,
.tilt-grid,
.bento {
grid-template-columns: 1fr
}
.btile.big,
.btile.wide {
grid-column: span 1
}
.afeats {
grid-template-columns: 1fr
}
.f-top {
grid-template-columns: 1fr
}
.qv-grid {
grid-template-columns: 1fr
}
.rel-row {
grid-template-columns: repeat(2, 1fr)
}
.hero-main {
min-height: auto
}
.deck-zone {
height: 440px
}
}
@media (prefers-reduced-motion:reduce) {
* {
animation-duration: .01ms !important;
transition-duration: .01ms !important
}
html {
scroll-behavior: auto
}
}