
:root { --bg:#0a0a0a; --surface:#14120f; --text:#f2f0ed; --muted:rgba(233,228,220,0.65); --dim:rgba(233,228,220,0.4); --red:#e0201c; --line:rgba(233,228,220,0.08); --line2:rgba(233,228,220,0.12); }
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin:0; background:var(--bg); color:var(--text); font-family:'Archivo',sans-serif; -webkit-font-smoothing:antialiased; min-height:100vh; display:flex; flex-direction:column; }
a { color:var(--text); text-decoration:none; transition:color .2s ease, background .2s ease, border-color .2s ease, opacity .2s ease; }
a:hover { color:var(--red); }
::selection { background:var(--red); color:var(--text); }
img { display:block; max-width:100%; }
h1,h2,h3 { font-family:'Anton',sans-serif; font-weight:400; text-transform:uppercase; margin:0; }
.mono { font-family:'Space Mono',monospace; }
.eyebrow { margin:0; font-family:'Space Mono',monospace; font-size:12px; letter-spacing:.3em; color:var(--red); text-transform:uppercase; }
.btn { display:inline-block; padding:16px 36px; font-size:12px; letter-spacing:.2em; text-transform:uppercase; }
.btn-primary { background:var(--red); color:#0a0a0a; font-weight:600; }
.btn-primary:hover { background:var(--text); color:#0a0a0a; }
.btn-outline { border:1px solid rgba(233,228,220,0.3); }
.btn-outline:hover { border-color:var(--red); color:var(--red); }
.btn-red-outline { border:1px solid rgba(224,32,28,0.5); color:var(--red); }
.btn-red-outline:hover { background:var(--red); color:#0a0a0a; }
.btn-row { display:flex; gap:16px; flex-wrap:wrap; }
/* ---- Nav ---- */
nav { position:fixed; top:0; left:0; right:0; z-index:50; display:flex; align-items:center; justify-content:space-between; gap:12px 24px; padding:18px 24px 18px 40px; background:rgba(13,12,11,0.82); backdrop-filter:blur(14px); border-bottom:1px solid var(--line); }
.wordmark { font-family:'Space Mono',monospace; font-size:15px; letter-spacing:.32em; }
.wordmark em { font-style:normal; color:var(--red); }
nav .menu { display:flex; align-items:center; flex-wrap:wrap; gap:12px 22px; margin-left:24px; font-size:11.5px; letter-spacing:.14em; text-transform:uppercase; }
nav .menu > a, nav summary { opacity:.75; }
nav .menu > a:hover, nav summary:hover { opacity:1; color:var(--red); }
nav details { position:relative; }
nav summary { display:flex; align-items:center; gap:6px; cursor:pointer; list-style:none; }
nav summary::-webkit-details-marker { display:none; }
nav summary .caret { font-size:9px; }
nav details > div { position:absolute; top:calc(100% + 14px); left:-16px; z-index:60; display:flex; flex-direction:column; min-width:220px; padding:8px 0; background:var(--surface); border:1px solid var(--line2); box-shadow:0 16px 40px rgba(0,0,0,0.6); }
nav details > div a { padding:10px 16px; font-size:11.5px; letter-spacing:.14em; color:rgba(242,240,237,0.8); }
nav details > div a:hover { color:var(--red); background:rgba(224,32,28,0.08); }
.patreon-btn { padding:9px 18px; border:1px solid var(--red); color:var(--red); letter-spacing:.18em; }
.patreon-btn:hover { background:var(--red); color:#0d0c0b; }
.nav-spacer { height:70px; }
.burger { display:none; background:none; border:none; flex-direction:column; justify-content:center; gap:5px; padding:10px; cursor:pointer; position:relative; z-index:70; }
.burger span { display:block; width:22px; height:2px; background:var(--text); transition:transform .3s ease, opacity .3s ease; }
nav.open .burger span:nth-child(1) { transform:translateY(7px) rotate(45deg); background:var(--red); }
nav.open .burger span:nth-child(2) { opacity:0; }
nav.open .burger span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); background:var(--red); }
/* ---- Sections ---- */
section, header.page, main.page { padding-left:40px; padding-right:40px; }
footer { margin-top:auto; display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px 24px; padding:28px 40px; border-top:1px solid var(--line); font-size:11.5px; color:var(--dim); }
footer .social { display:flex; gap:24px; font-size:11px; letter-spacing:.14em; text-transform:uppercase; }
footer .social a { opacity:.7; } footer .social a:hover { opacity:1; }
/* ---- Hero ---- */
.hero { position:relative; min-height:92vh; display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,0.9fr); overflow:hidden; }
.hero-copy { display:flex; flex-direction:column; justify-content:center; padding:60px 8px 60px 40px; animation:heroIn 1.1s cubic-bezier(.16,1,.3,1) both; }
.hero h1 { font-size:clamp(52px,6.5vw,104px); line-height:1.02; letter-spacing:-.01em; }
.hero h1 em, h2 em, .accent { font-style:normal; color:var(--red); }
.hero-photo { position:relative; margin:40px 40px 40px 0; }
.hero-photo img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.red-frame::after { content:''; position:absolute; bottom:-14px; left:-14px; width:100%; height:100%; border:1px solid rgba(224,32,28,0.35); pointer-events:none; }
@keyframes heroIn { from { opacity:0; transform:translateY(28px); } to { opacity:1; transform:translateY(0); } }
/* ---- Grids / cards ---- */
.grid-3 { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.grid-4 { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px; }
.series-card { position:relative; display:block; overflow:hidden; transition:transform .5s cubic-bezier(.16,1,.3,1); }
.series-card:hover { transform:translateY(-6px); }
.series-card .ph { position:relative; width:100%; aspect-ratio:3/4; }
.series-card img { width:100%; height:100%; object-fit:cover; filter:grayscale(1) contrast(1.08); transition:filter .4s ease; }
.series-card:hover img { filter:none; }
.series-card .veil { position:absolute; inset:0; background:linear-gradient(to top, rgba(13,12,11,0.85) 0%, rgba(13,12,11,0) 32%); pointer-events:none; }
.series-card .label { position:absolute; left:24px; right:24px; bottom:22px; pointer-events:none; }
.product-card { display:flex; flex-direction:column; gap:14px; background:var(--surface); border:1px solid rgba(233,228,220,0.07); padding:14px; }
.product-card:hover { border-color:rgba(224,32,28,0.5); }
.product-card img { width:100%; aspect-ratio:1/1; object-fit:cover; filter:grayscale(1) contrast(1.08); transition:filter .4s ease; }
.product-card:hover img { filter:none; }
.rate-card { display:flex; flex-direction:column; gap:18px; border:1px solid var(--line2); padding:36px 32px; }
.rate-card:hover { border-color:var(--red); }
/* ---- Gallery ---- */
.masonry { columns:3; column-gap:20px; }
.masonry .tile { break-inside:avoid; margin-bottom:20px; overflow:hidden; transition:transform .5s cubic-bezier(.16,1,.3,1); cursor:zoom-in; }
.masonry .tile:hover { transform:translateY(-4px); }
.masonry img { width:100%; height:100%; object-fit:cover; filter:grayscale(1) contrast(1.08); transition:filter .4s ease; }
.masonry .tile:hover img { filter:none; }
/* ---- Forms ---- */
input, select, textarea { padding:15px 16px; background:var(--bg); border:1px solid rgba(233,228,220,0.18); color:var(--text); font-family:'Archivo',sans-serif; font-size:14px; outline:none; border-radius:0; }
input:focus, select:focus, textarea:focus { border-color:var(--red); }
/* ---- Reveal ---- */
[data-reveal] { transition:opacity .9s cubic-bezier(.16,1,.3,1), transform .9s cubic-bezier(.16,1,.3,1); }
[data-reveal].pending { opacity:0; transform:translateY(26px); }
/* ---- Lightbox ---- */
#lightbox { position:fixed; inset:0; z-index:200; display:none; align-items:center; justify-content:center; background:rgba(10,10,10,0.94); opacity:0; transition:opacity .25s ease; }
#lightbox.on { display:flex; }
#lightbox img { max-width:88vw; max-height:88vh; object-fit:contain; box-shadow:0 24px 80px rgba(0,0,0,0.8); transition:opacity .18s ease; }
#lightbox .lb-close { position:absolute; top:20px; right:24px; background:none; border:none; cursor:pointer; color:var(--red); font-size:26px; font-family:'Space Mono',monospace; padding:14px; line-height:1; }
#lightbox .lb-close:hover { color:var(--text); }
#lightbox .lb-prev, #lightbox .lb-next { position:absolute; top:50%; transform:translateY(-50%); background:none; border:none; cursor:pointer; color:rgba(233,228,220,0.75); font-size:52px; font-family:serif; padding:14px; line-height:1; }
#lightbox .lb-prev { left:16px; } #lightbox .lb-next { right:16px; }
#lightbox .lb-prev:hover, #lightbox .lb-next:hover { color:var(--red); }
#lightbox .lb-counter { position:absolute; bottom:26px; left:50%; transform:translateX(-50%); font-family:'Space Mono',monospace; font-size:12px; letter-spacing:.24em; color:rgba(233,228,220,0.6); }
/* ---- Responsive ---- */
@media (max-width: 1024px) {
  .grid-4 { grid-template-columns:repeat(2,1fr); }
}
@media (max-width: 780px) {
  section, header.page, main.page, footer { padding-left:20px !important; padding-right:20px !important; }
  .hero { grid-template-columns:1fr; min-height:auto; }
  .hero-copy { padding:32px 0 0; }
  .hero-photo { margin:24px 0 40px; aspect-ratio:4/5; }
  .grid-3, .two-col { grid-template-columns:1fr !important; gap:32px !important; }
  .masonry { columns:2; }
  footer { flex-direction:column; align-items:flex-start; }
  nav { padding:14px 16px; }
  .burger { display:flex; }
  nav .menu { position:fixed; top:0; right:0; height:100vh; width:min(78vw,340px); flex-direction:column; align-items:flex-start; justify-content:flex-start; flex-wrap:nowrap; padding:96px 32px 40px; margin:0; gap:24px; font-size:14px; background:var(--surface); border-left:1px solid var(--line2); transform:translateX(105%); transition:transform .35s cubic-bezier(.16,1,.3,1); z-index:65; overflow-y:auto; }
  nav.open .menu { transform:translateX(0); box-shadow:-24px 0 60px rgba(0,0,0,0.6); }
  nav details > div { position:static; min-width:0; padding:6px 0 0 14px; background:none; border:none; box-shadow:none; }
}
@media (max-width: 460px) {
  .grid-4 { grid-template-columns:1fr; }
  .masonry { columns:1; }
}
