:root{--ink:#0a0a0a;--white:#fafafa;--blood:#e10600}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--white);color:var(--ink);font-family:'Fraunces',Georgia,serif;overflow-x:hidden}
body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:100;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence baseFrequency='0.9'/></filter><rect width='100%25' height='100%25' filter='url(%23n)' opacity='0.35'/></svg>");opacity:.08;mix-blend-mode:multiply}

/* NAV */
nav{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;justify-content:space-between;align-items:center;padding:1rem 2rem;background:var(--white);border-bottom:3px solid var(--ink);font-family:'JetBrains Mono',monospace;text-transform:uppercase;font-size:.78rem;font-weight:700}
nav .logo{display:flex;align-items:center;gap:.7rem;font-family:'Rubik Mono One',sans-serif;font-size:.95rem;letter-spacing:-.02em;text-decoration:none;color:var(--ink)}
nav .logo img{height:36px;width:auto}
nav .logo span{color:var(--blood)}
nav ul{display:flex;gap:1.8rem;list-style:none}
nav a{color:var(--ink);text-decoration:none;position:relative;padding:.3rem 0}
nav a:hover{color:var(--blood)}
nav a::after{content:"";position:absolute;left:0;bottom:0;width:0;height:2px;background:var(--blood);transition:width .3s}
nav a:hover::after,nav a.active::after{width:100%}
nav a.active{color:var(--blood)}

/* HAMBURGER BUTTON — hidden on desktop, shown on mobile via media query */
.nav-toggle{display:none;background:none;border:3px solid var(--ink);padding:.5rem .7rem;cursor:pointer;width:46px;height:42px;flex-direction:column;justify-content:space-between;align-items:stretch;box-sizing:border-box}
.nav-toggle span{display:block;height:3px;background:var(--ink);transition:transform .25s,opacity .2s}
.nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(9px) rotate(45deg)}
.nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-9px) rotate(-45deg)}

/* BUTTONS */
.btn{display:inline-block;padding:1.1rem 2rem;font-family:'JetBrains Mono',monospace;font-weight:700;text-transform:uppercase;font-size:.85rem;letter-spacing:.1em;text-decoration:none;border:3px solid var(--ink);transition:all .2s;cursor:pointer}
.btn-primary{background:var(--blood);color:var(--white)}
.btn-primary:hover{background:var(--ink);color:var(--white);transform:translate(-3px,-3px);box-shadow:6px 6px 0 var(--blood)}
.btn-ghost{background:transparent;color:var(--ink)}
.btn-ghost:hover{background:var(--ink);color:var(--white);transform:translate(-3px,-3px);box-shadow:6px 6px 0 var(--blood)}

/* HERO */
header.hero{min-height:100vh;padding:8rem 2rem 4rem;position:relative;display:flex;flex-direction:column;justify-content:center;border-bottom:3px solid var(--ink);overflow:hidden}
.hero .tag{font-family:'JetBrains Mono',monospace;font-size:.8rem;text-transform:uppercase;letter-spacing:.3em;display:inline-block;padding:.5rem 1rem;background:var(--ink);color:var(--white);margin-bottom:2rem;width:fit-content;transform:rotate(-1deg)}
.hero h1{font-family:'Rubik Mono One',sans-serif;font-size:clamp(3rem,12vw,11rem);line-height:.85;letter-spacing:-.04em;text-transform:uppercase;position:relative;z-index:2}
.hero h1 .red{color:var(--blood);font-style:italic;font-family:'Fraunces',serif;font-weight:700}
.hero h1 .stroke{-webkit-text-stroke:3px var(--ink);color:transparent}
.hero .sub{margin-top:2rem;max-width:620px;font-size:1.25rem;line-height:1.5;position:relative;z-index:2}
.hero .cta-row{margin-top:3rem;display:flex;gap:1rem;flex-wrap:wrap;position:relative;z-index:2}
.hero .anchor-bg{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:min(120vw,1400px);z-index:1;pointer-events:none;animation:spin 18s linear infinite;transform-origin:center center}
@keyframes spin{from{transform:translate(-50%,-50%) rotate(0deg)}to{transform:translate(-50%,-50%) rotate(360deg)}}

/* PAGE HEADER (for non-home pages) */
.page-header{padding:10rem 2rem 5rem;border-bottom:3px solid var(--ink);position:relative;overflow:hidden}
.page-header .section-label{font-family:'JetBrains Mono',monospace;font-size:.75rem;text-transform:uppercase;letter-spacing:.3em;margin-bottom:1rem;color:var(--blood)}
.page-header h1{font-family:'Rubik Mono One',sans-serif;font-size:clamp(2.5rem,9vw,7rem);line-height:.9;text-transform:uppercase;letter-spacing:-.03em;max-width:1200px}
.page-header h1 .red{color:var(--blood);font-style:italic;font-family:'Fraunces',serif;font-weight:700}
.page-header h1 .stroke{-webkit-text-stroke:3px var(--ink);color:transparent}
.page-header .intro{max-width:700px;margin-top:2rem;font-size:1.2rem;line-height:1.5}

/* MARQUEE */
.marquee{border-top:3px solid var(--ink);border-bottom:3px solid var(--ink);background:var(--ink);color:var(--white);overflow:hidden;white-space:nowrap;font-family:'Rubik Mono One',sans-serif;font-size:2.5rem;padding:1rem 0}
.marquee-track{display:inline-block;animation:scroll 25s linear infinite}
.marquee-track span{margin:0 2rem}
.marquee-track span:nth-child(even){color:var(--blood)}
.marquee-track img{height:2.2rem;vertical-align:middle;margin:0 1rem}
@keyframes scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* SECTIONS */
section{padding:6rem 2rem;border-bottom:3px solid var(--ink);position:relative}
.section-label{font-family:'JetBrains Mono',monospace;font-size:.75rem;text-transform:uppercase;letter-spacing:.3em;margin-bottom:1rem;color:var(--blood)}
.section-title{font-family:'Rubik Mono One',sans-serif;font-size:clamp(2.5rem,7vw,5.5rem);line-height:.9;text-transform:uppercase;margin-bottom:3rem;letter-spacing:-.03em}

/* ABOUT */
#about .wrap{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:start}
#about p{font-size:1.2rem;line-height:1.6;margin-bottom:1.2rem}
#about .drop::first-letter{font-family:'Rubik Mono One',sans-serif;font-size:5rem;float:left;line-height:.8;padding:.4rem .6rem 0 0;color:var(--blood)}
.stats{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin-top:2rem}
.stat{border:3px solid var(--ink);padding:1.5rem;background:var(--white);transition:all .2s}
.stat:hover{background:var(--ink);color:var(--white);transform:rotate(-2deg)}
.stat .num{font-family:'Rubik Mono One',sans-serif;font-size:3rem;line-height:1;color:var(--blood)}
.stat .lbl{font-family:'JetBrains Mono',monospace;font-size:.75rem;text-transform:uppercase;margin-top:.5rem}

/* COUNTER (total raised) */
#counter{background:var(--blood);color:var(--white);text-align:center;padding:5rem 2rem}
#counter .section-label{color:var(--ink)}
#counter .big-num{font-family:'Rubik Mono One',sans-serif;font-size:clamp(4rem,18vw,14rem);line-height:.85;letter-spacing:-.04em;margin:1rem 0}
#counter .big-num .pound{font-size:.6em;vertical-align:top;margin-right:.05em}
#counter .counter-sub{font-family:'JetBrains Mono',monospace;font-size:.9rem;text-transform:uppercase;letter-spacing:.25em;max-width:600px;margin:1rem auto 0;line-height:1.8}
#counter .counter-cta{margin-top:2.5rem}
#counter .counter-cta .btn{border-color:var(--white);background:var(--ink);color:var(--white)}
#counter .counter-cta .btn:hover{background:var(--white);color:var(--blood);box-shadow:6px 6px 0 var(--ink)}

/* EVENTS */
#events,.events-page{background:var(--ink);color:var(--white)}
#events .section-label,.events-page .section-label{color:var(--blood)}
#events .section-title .stroke,.events-page .page-header h1 .stroke{-webkit-text-stroke:3px var(--white);color:transparent}
.events-page{padding:10rem 2rem 6rem}
.events-page .page-header{border-bottom:none;padding:0 0 4rem}
.events-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:2rem;max-width:1200px;margin:0 auto}
.event{border:3px solid var(--white);padding:2rem;background:var(--ink);transition:all .3s;position:relative;cursor:pointer;text-decoration:none;color:var(--white);display:block}
.event .more{margin-top:1rem;font-family:'JetBrains Mono',monospace;font-size:.75rem;text-transform:uppercase;letter-spacing:.1em;color:var(--blood);font-weight:700}
.event:hover .more{color:var(--white)}
.event:hover{background:var(--blood);transform:translate(-4px,-4px);box-shadow:8px 8px 0 var(--white)}
.event .date{font-family:'JetBrains Mono',monospace;font-size:.8rem;color:var(--blood);text-transform:uppercase;letter-spacing:.1em}
.event:hover .date{color:var(--white)}
.event h3{font-family:'Archivo Black',sans-serif;font-size:1.6rem;margin:.8rem 0;text-transform:uppercase;line-height:1.1}
.event p{font-size:1rem;line-height:1.5;opacity:.85}
.event .loc{margin-top:1rem;font-family:'JetBrains Mono',monospace;font-size:.75rem;text-transform:uppercase}

/* MODAL */
.modal{position:fixed;inset:0;background:rgba(10,10,10,0.92);z-index:200;display:none;align-items:center;justify-content:center;padding:2rem;overflow-y:auto}
.modal.open{display:flex}
.modal-inner{background:var(--white);color:var(--ink);max-width:680px;width:100%;border:4px solid var(--ink);padding:3rem;position:relative;box-shadow:12px 12px 0 var(--blood)}
.modal-close{position:absolute;top:.5rem;right:1rem;background:none;border:none;font-size:3rem;cursor:pointer;color:var(--ink);font-family:'Archivo Black',sans-serif;line-height:1;padding:0}
.modal-close:hover{color:var(--blood)}
.modal-date{font-family:'JetBrains Mono',monospace;font-size:.75rem;text-transform:uppercase;letter-spacing:.2em;color:var(--blood);margin-bottom:.8rem}
.modal-inner h2{font-family:'Rubik Mono One',sans-serif;font-size:clamp(1.8rem,5vw,3rem);line-height:.95;text-transform:uppercase;margin-bottom:1.5rem;letter-spacing:-.02em}
.modal-inner p{font-size:1.1rem;line-height:1.55;margin-bottom:1rem}
.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.6rem;margin-top:1rem}
.gallery-grid img{width:100%;aspect-ratio:1;object-fit:cover;border:2px solid var(--ink);cursor:pointer;transition:transform .2s}
.gallery-grid img:hover{transform:scale(1.04)}
.donator-list{list-style:none;padding:0;margin:1.5rem 0;max-height:50vh;overflow-y:auto;border-top:2px solid var(--ink);border-bottom:2px solid var(--ink)}
.donator-list li{display:flex;justify-content:space-between;align-items:center;padding:.7rem .3rem;border-bottom:1px solid rgba(10,10,10,.12);font-family:'JetBrains Mono',monospace;font-size:.85rem;gap:1rem}
.donator-list li:last-child{border-bottom:none}
.donator-list li:nth-child(odd){background:rgba(225,6,0,.04)}
.donator-list .dn{font-weight:700;text-transform:uppercase;letter-spacing:.05em}
.donator-list .da{color:var(--blood);font-weight:700;white-space:nowrap;text-align:right}

/* GALLERY TILES */
.gallery{display:grid;grid-template-columns:repeat(12,1fr);gap:1rem;max-width:1300px;margin:0 auto}
.tile{border:3px solid var(--ink);aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-family:'Rubik Mono One',sans-serif;font-size:1.8rem;text-transform:uppercase;text-align:center;padding:1rem;transition:all .3s;cursor:pointer;overflow:hidden;position:relative}
.tile:hover{transform:scale(1.03) rotate(-1deg);z-index:2}
.t1{grid-column:span 5;background:var(--blood);color:var(--white);aspect-ratio:auto;min-height:300px}
.t2{grid-column:span 4;background:var(--ink);color:var(--white)}
.t3{grid-column:span 3;background:var(--white);color:var(--ink)}
.t4{grid-column:span 3;background:var(--ink);color:var(--blood)}
.t5{grid-column:span 5;background:var(--white);color:var(--ink);aspect-ratio:auto;min-height:240px}
.t6{grid-column:span 4;background:var(--blood);color:var(--white)}
.t7{grid-column:span 4;background:var(--white);color:var(--blood)}
.t8{grid-column:span 4;background:var(--ink);color:var(--white)}
.t9{grid-column:span 4;background:var(--blood);color:var(--ink)}

/* CONTACT */
#contact,.contact-page{background:var(--blood);color:var(--white)}
.contact-page{padding:10rem 2rem 6rem;min-height:100vh}
#contact .section-label,.contact-page .section-label{color:var(--ink)}
#contact .section-title .stroke,.contact-page .page-header h1 .stroke{-webkit-text-stroke:3px var(--white);color:transparent}
.contact-page .page-header{border-bottom:none;padding:0 0 4rem;max-width:1100px;margin:0 auto}
.contact-wrap{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:4rem}
.contact-info p{font-size:1.2rem;line-height:1.6;margin-bottom:1.5rem}
.contact-info a{color:var(--white);text-decoration:underline;text-decoration-thickness:3px;text-underline-offset:4px}
.contact-info a:hover{color:var(--ink)}
form{display:flex;flex-direction:column;gap:1rem}
form input,form textarea{background:transparent;border:3px solid var(--white);padding:1rem;color:var(--white);font-family:'JetBrains Mono',monospace;font-size:.95rem}
form input::placeholder,form textarea::placeholder{color:rgba(250,250,250,.6)}
form textarea{min-height:140px;resize:vertical}
form button{background:var(--ink);color:var(--white);border:3px solid var(--ink);padding:1.1rem;font-family:'JetBrains Mono',monospace;font-weight:700;text-transform:uppercase;letter-spacing:.1em;cursor:pointer;transition:all .2s}
form button:hover{background:var(--white);color:var(--blood);border-color:var(--white)}
.form-status{font-family:'JetBrains Mono',monospace;font-size:.85rem;text-transform:uppercase;letter-spacing:.1em;margin-top:1rem;min-height:1.2em}

/* GALLERY PAGE */
.gallery-page{padding:10rem 2rem 6rem}
.gallery-page .page-header{border-bottom:none;padding:0 0 4rem;max-width:1300px;margin:0 auto}

/* EVENT DETAIL PAGE */
.event-page{padding:10rem 2rem 4rem;max-width:900px;margin:0 auto}
.event-page .back{font-family:'JetBrains Mono',monospace;font-size:.8rem;text-transform:uppercase;letter-spacing:.2em;color:var(--ink);text-decoration:none;display:inline-block;margin-bottom:2rem;padding:.5rem 0;border-bottom:2px solid var(--ink)}
.event-page .back:hover{color:var(--blood);border-color:var(--blood)}
.event-page .status{font-family:'JetBrains Mono',monospace;font-size:.8rem;text-transform:uppercase;letter-spacing:.3em;display:inline-block;padding:.5rem 1rem;background:var(--ink);color:var(--white);margin-bottom:1.5rem}
.event-page .status.complete{background:var(--blood)}
.event-page h1{font-family:'Rubik Mono One',sans-serif;font-size:clamp(2.5rem,8vw,6rem);line-height:.88;text-transform:uppercase;letter-spacing:-.03em;margin-bottom:2rem}
.event-page .lead{font-size:1.35rem;line-height:1.5;margin-bottom:2rem;font-family:'Fraunces',serif;font-style:italic}
.event-page .body p{font-size:1.15rem;line-height:1.7;margin-bottom:1.3rem}
.event-page .raised-box{border:3px solid var(--ink);padding:2rem;margin:3rem 0;display:grid;grid-template-columns:1fr 1fr;gap:1rem;background:var(--white)}
.event-page .raised-box .num{font-family:'Rubik Mono One',sans-serif;font-size:3rem;line-height:1;color:var(--blood)}
.event-page .raised-box .lbl{font-family:'JetBrains Mono',monospace;font-size:.75rem;text-transform:uppercase;letter-spacing:.1em;margin-top:.5rem}
.event-page .event-gallery{margin:3rem 0}
.event-page .event-gallery h2{font-family:'Rubik Mono One',sans-serif;font-size:2rem;text-transform:uppercase;margin-bottom:1rem}
.event-page .event-gallery .grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.8rem}
.event-page .event-gallery img{width:100%;aspect-ratio:1;object-fit:cover;border:3px solid var(--ink);cursor:pointer;transition:transform .2s}
.event-page .event-gallery img:hover{transform:scale(1.03)}
.event-page .no-photos{font-family:'JetBrains Mono',monospace;font-size:.85rem;text-transform:uppercase;opacity:.6}
.event-page .next-prev{display:flex;justify-content:space-between;gap:1rem;margin-top:4rem;padding-top:2rem;border-top:3px solid var(--ink);font-family:'JetBrains Mono',monospace;font-size:.8rem;text-transform:uppercase;letter-spacing:.15em}
.event-page .next-prev a{color:var(--ink);text-decoration:none;padding:.5rem 0;border-bottom:2px solid transparent}
.event-page .next-prev a:hover{color:var(--blood);border-color:var(--blood)}

/* FOOTER */
footer{background:var(--ink);color:var(--white);padding:3rem 2rem;text-align:center;font-family:'JetBrains Mono',monospace;font-size:.8rem;text-transform:uppercase;letter-spacing:.15em}
footer .anchor{height:70px;margin-bottom:1rem}
footer .big{font-family:'Rubik Mono One',sans-serif;font-size:clamp(2rem,8vw,6rem);color:var(--blood);line-height:1;margin-bottom:1rem;letter-spacing:-.03em}
footer a{color:var(--blood);text-decoration:none}
footer a:hover{color:var(--white)}

/* ================================================================ */
/* STORE PAGE                                                         */
/* ================================================================ */

.store-body{background:var(--white)}

/* HERO */
.store-hero{position:relative;min-height:85vh;padding:9rem 2rem 3rem;display:flex;flex-direction:column;justify-content:center;overflow:hidden;border-bottom:3px solid var(--ink);background:
  repeating-linear-gradient(45deg,transparent 0 40px,rgba(10,10,10,.04) 40px 41px),
  var(--white)}
.store-hero-tag{font-family:'JetBrains Mono',monospace;font-size:.75rem;text-transform:uppercase;letter-spacing:.4em;padding:.6rem 1.1rem;background:var(--ink);color:var(--white);width:fit-content;margin-bottom:2rem;transform:rotate(-1.5deg)}

/* Massive layered STORE wordmark */
.store-wordmark{position:relative;line-height:.78;letter-spacing:-.06em;margin-bottom:2rem}
.store-wordmark span{display:block;font-family:'Rubik Mono One',sans-serif;font-size:clamp(5rem,22vw,22rem);text-transform:uppercase;position:relative}
.store-wordmark .w1{color:var(--ink)}
.store-wordmark .w2{position:absolute;top:0;left:0;color:var(--blood);transform:translate(.04em,.04em);-webkit-text-stroke:3px var(--blood);z-index:-1;opacity:.85;mix-blend-mode:multiply}
.store-hero-sub{font-family:'Fraunces',serif;font-size:clamp(1.1rem,2vw,1.5rem);line-height:1.4;max-width:640px;margin-bottom:2rem}
.store-hero-sub em{font-style:italic;color:var(--blood);font-weight:700}
.store-hero-stamp{position:absolute;top:18%;right:3%;font-family:'Rubik Mono One',sans-serif;font-size:clamp(.9rem,1.6vw,1.3rem);text-transform:uppercase;color:var(--blood);border:4px double var(--blood);padding:1.2rem 1.5rem;transform:rotate(8deg);letter-spacing:.15em;background:rgba(250,250,250,.5);white-space:nowrap}
.store-hero-stamp::before,.store-hero-stamp::after{content:"";position:absolute;left:-8px;right:-8px;border-top:2px dashed var(--blood);opacity:.5}
.store-hero-stamp::before{top:6px}
.store-hero-stamp::after{bottom:6px}

/* PROFIT RIBBON */
.profit-ribbon{background:var(--blood);color:var(--white);overflow:hidden;white-space:nowrap;border-top:3px solid var(--ink);border-bottom:3px solid var(--ink);padding:1rem 0;font-family:'Rubik Mono One',sans-serif;font-size:clamp(1.4rem,3vw,2.4rem)}
.ribbon-track{display:inline-block;animation:ribbon-scroll 32s linear infinite}
.ribbon-track span{margin:0 1.5rem;display:inline-block}
.ribbon-track i{display:inline-block;margin:0 .5rem;font-style:normal;color:var(--ink);transform:scale(1.3)}
@keyframes ribbon-scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* CATEGORY STRIP */
.cat-strip{display:flex;justify-content:center;gap:2rem;flex-wrap:wrap;padding:2rem;background:var(--white);border-bottom:3px solid var(--ink);font-family:'JetBrains Mono',monospace;font-size:.85rem;text-transform:uppercase;letter-spacing:.15em;font-weight:700;position:sticky;top:73px;z-index:30}
.cat-strip a{color:var(--ink);text-decoration:none;padding:.4rem .8rem;border:2px solid transparent;transition:all .15s}
.cat-strip a:hover{color:var(--blood);border-color:var(--ink);transform:translate(-2px,-2px);box-shadow:3px 3px 0 var(--blood)}

/* STORE SECTIONS */
.store-section{padding:4rem 2rem 6rem;position:relative}
.store-section.dark{background:var(--ink);color:var(--white)}
.store-section.dark .section-divider .section-num,
.store-section.dark .section-divider .section-count{color:var(--white)}
.store-section.dark .section-divider .section-name{color:var(--blood)}
.store-section.dark .section-divider::before{background:var(--white)}

.section-divider{display:grid;grid-template-columns:auto 1fr auto;gap:2rem;align-items:baseline;margin-bottom:3rem;max-width:1400px;margin-left:auto;margin-right:auto;position:relative;padding-bottom:1.5rem}
.section-divider::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--ink)}
.store-section.dark .section-divider::after{background:var(--white)}
.section-num{font-family:'JetBrains Mono',monospace;font-size:.8rem;letter-spacing:.3em;color:var(--blood);text-transform:uppercase}
.section-name{font-family:'Rubik Mono One',sans-serif;font-size:clamp(2.5rem,6vw,5rem);text-transform:uppercase;line-height:.9;letter-spacing:-.03em}
.section-count{font-family:'JetBrains Mono',monospace;font-size:.75rem;letter-spacing:.2em;text-transform:uppercase;opacity:.6}

/* PRODUCT GRID */
.product-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:2.5rem 2rem;max-width:1400px;margin:0 auto}

.product{transform:rotate(var(--tilt,0deg));transition:transform .3s cubic-bezier(.2,.7,.2,1),filter .3s}
.product:hover{transform:rotate(0deg) translateY(-6px);z-index:5;filter:drop-shadow(8px 8px 0 rgba(225,6,0,.9))}
.product-inner{background:var(--card-bg);color:var(--card-ink);border:3px solid var(--ink);display:flex;flex-direction:column;height:100%}
.store-section.dark .product-inner{border-color:var(--white)}

.product-media{position:relative;aspect-ratio:1;background:var(--card-bg);border-bottom:3px solid var(--ink);overflow:hidden;display:flex;align-items:center;justify-content:center}
.store-section.dark .product-media{border-bottom-color:var(--white)}
.product-media svg{width:85%;height:85%;filter:drop-shadow(4px 4px 0 rgba(10,10,10,.1))}

/* Coming soon stamp over the product */
.coming-stamp{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) rotate(-14deg);font-family:'Rubik Mono One',sans-serif;font-size:1.6rem;text-align:center;line-height:.95;color:var(--blood);border:4px double var(--blood);padding:.8rem 1.2rem;background:rgba(250,250,250,.88);letter-spacing:.08em;text-transform:uppercase;pointer-events:none;box-shadow:0 0 0 2px rgba(225,6,0,.15)}
.back-tag{position:absolute;bottom:10px;left:10px;font-family:'JetBrains Mono',monospace;font-size:.6rem;text-transform:uppercase;letter-spacing:.1em;background:var(--ink);color:var(--white);padding:.3rem .5rem}

.product-meta{padding:1.1rem 1.3rem .4rem;display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}
.product-name{font-family:'Archivo Black',sans-serif;font-size:.95rem;text-transform:uppercase;line-height:1.15;letter-spacing:-.005em;flex:1}
.product-price{font-family:'Rubik Mono One',sans-serif;font-size:1.15rem;color:var(--blood);white-space:nowrap}

.product-btn{display:block;margin:.8rem 1.3rem 1.3rem;padding:.85rem 1rem;font-family:'JetBrains Mono',monospace;font-size:.7rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;background:transparent;color:inherit;border:2px dashed currentColor;cursor:not-allowed;opacity:.75;text-align:center}

/* EMAIL SIGNUP */
.store-signup{background:var(--blood);color:var(--white);padding:5rem 2rem;border-top:3px solid var(--ink);position:relative;overflow:hidden}
.store-signup::before{content:"★";position:absolute;font-family:'Rubik Mono One',sans-serif;font-size:40rem;line-height:.7;top:50%;right:-4rem;transform:translateY(-50%);color:rgba(10,10,10,.08);pointer-events:none}
.signup-inner{max-width:700px;margin:0 auto;position:relative;text-align:center}
.signup-label{font-family:'JetBrains Mono',monospace;font-size:.75rem;text-transform:uppercase;letter-spacing:.35em;color:var(--ink);margin-bottom:1rem}
.store-signup h2{font-family:'Rubik Mono One',sans-serif;font-size:clamp(2.5rem,7vw,5.5rem);text-transform:uppercase;line-height:.9;letter-spacing:-.03em;margin-bottom:1.2rem}
.store-signup p{font-family:'Fraunces',serif;font-size:1.15rem;line-height:1.5;margin-bottom:2rem;max-width:500px;margin-left:auto;margin-right:auto}
.store-signup form{display:grid;grid-template-columns:1fr auto;gap:.8rem;max-width:520px;margin:0 auto}
.store-signup input{background:var(--white);color:var(--ink);border:3px solid var(--ink);padding:1.1rem;font-family:'JetBrains Mono',monospace;font-size:.9rem}
.store-signup input::placeholder{color:rgba(10,10,10,.5)}
.store-signup button{background:var(--ink);color:var(--white);border:3px solid var(--ink);padding:1.1rem 1.8rem;font-family:'JetBrains Mono',monospace;font-weight:700;text-transform:uppercase;letter-spacing:.1em;cursor:pointer;white-space:nowrap;transition:all .15s}
.store-signup button:hover{background:var(--white);color:var(--blood);transform:translate(-2px,-2px);box-shadow:4px 4px 0 var(--ink)}
.store-signup .form-status{margin-top:1.2rem;font-family:'JetBrains Mono',monospace;font-size:.8rem;text-transform:uppercase;letter-spacing:.1em;color:var(--ink)}
.signup-footnote{margin-top:2rem;font-family:'JetBrains Mono',monospace;font-size:.7rem;letter-spacing:.3em;text-transform:uppercase;opacity:.85}

/* RESPONSIVE */
@media (max-width:780px){
  /* HERO */
  .store-hero{min-height:auto;padding:6.5rem 1.2rem 2.5rem}
  .store-hero-tag{font-size:.6rem;letter-spacing:.2em;padding:.4rem .7rem;margin-bottom:1.2rem}
  .store-wordmark{margin-bottom:1.2rem}
  .store-wordmark span{font-size:clamp(3.5rem,19vw,7rem);letter-spacing:-.055em}
  .store-wordmark .w2{-webkit-text-stroke:2px var(--blood)}
  .store-hero-sub{font-size:.95rem;line-height:1.45;margin-bottom:1.2rem}
  /* "100% TO CHARITY" stamp: move below the title instead of pinned to the corner */
  .store-hero-stamp{position:static;transform:rotate(-2deg);font-size:.7rem;padding:.7rem 1rem;margin-top:1.2rem;align-self:flex-start}
  .store-hero-stamp::before,.store-hero-stamp::after{display:none}
  /* PROFIT RIBBON */
  .profit-ribbon{font-size:1.2rem;padding:.7rem 0}
  /* CATEGORY STRIP */
  .cat-strip{gap:.5rem;font-size:.65rem;padding:1rem .8rem;top:69px;letter-spacing:.1em}
  .cat-strip a{padding:.3rem .5rem}
  /* SECTIONS */
  .store-section{padding:2.5rem 1.2rem 3.5rem}
  .section-divider{grid-template-columns:auto 1fr;gap:.8rem 1rem;margin-bottom:1.8rem;padding-bottom:1rem}
  .section-num{font-size:.65rem;letter-spacing:.2em}
  .section-name{font-size:clamp(1.6rem,7vw,2.4rem)}
  .section-count{font-size:.6rem;grid-column:1/-1;margin-top:-.3rem}
  /* PRODUCT CARDS — stack 2-up on mobile */
  .product-grid{grid-template-columns:repeat(2,1fr);gap:1.5rem .9rem}
  .product{transform:rotate(var(--tilt,0deg)) scale(.98)}
  .product-inner{border-width:2px}
  .product-media{border-bottom-width:2px}
  .product-name{font-size:.75rem;line-height:1.1}
  .product-price{font-size:.9rem}
  .product-meta{padding:.7rem .7rem .2rem;gap:.4rem}
  .product-btn{margin:.5rem .7rem .8rem;padding:.6rem .5rem;font-size:.55rem;letter-spacing:.12em}
  .coming-stamp{font-size:.85rem;padding:.35rem .55rem;border-width:3px}
  .back-tag{font-size:.5rem;padding:.2rem .4rem}
  /* EMAIL SIGNUP */
  .store-signup{padding:3.5rem 1.2rem}
  .store-signup::before{font-size:20rem;right:-2rem}
  .signup-label{font-size:.6rem;letter-spacing:.2em}
  .store-signup h2{font-size:clamp(2rem,9vw,3.5rem);margin-bottom:.8rem}
  .store-signup p{font-size:1rem;margin-bottom:1.5rem}
  .store-signup form{grid-template-columns:1fr;gap:.6rem}
  .store-signup input,.store-signup button{padding:.95rem;font-size:.8rem}
  .signup-footnote{margin-top:1.5rem;font-size:.6rem;letter-spacing:.2em}
}


.holidays-page{padding:10rem 2rem 6rem;max-width:1300px;margin:0 auto}
.holidays-page .page-header{border-bottom:none;padding:0 0 3rem}
.holidays-page .page-header h1 .red{color:var(--blood);font-style:italic;font-family:'Fraunces',serif;font-weight:700}

.map-wrap{border:3px solid var(--ink);background:var(--white);margin-bottom:1.5rem;position:relative;box-shadow:8px 8px 0 var(--blood)}
#world-map{width:100%;height:min(70vh,650px);min-height:380px}
.jvm-tooltip{background:var(--ink) !important;color:var(--white) !important;font-family:'JetBrains Mono',monospace !important;font-size:.8rem !important;text-transform:uppercase !important;letter-spacing:.05em !important;padding:.6rem 1rem !important;border:2px solid var(--blood) !important;border-radius:0 !important}
.jvm-zoom-btn{background:var(--ink) !important;color:var(--white) !important;border:2px solid var(--white) !important;border-radius:0 !important;font-family:'Archivo Black',sans-serif !important}

.map-legend{display:flex;gap:2rem;flex-wrap:wrap;align-items:center;margin-bottom:3rem;font-family:'JetBrains Mono',monospace;font-size:.8rem;text-transform:uppercase;letter-spacing:.1em}
.map-legend .legend-item{display:flex;align-items:center;gap:.6rem}
.map-legend .swatch{width:22px;height:22px;border:2px solid var(--ink);display:inline-block}
.map-legend .swatch.visited{background:var(--blood)}
.map-legend .swatch.planned{background:#ffed00}
.map-legend .swatch.none{background:var(--ink)}

.holidays-layout{display:grid;grid-template-columns:1.2fr 1fr;gap:2rem;margin-bottom:4rem;align-items:start}
.country-detail{border:3px solid var(--ink);padding:2rem;background:var(--white);box-shadow:8px 8px 0 var(--blood);min-height:240px}
.country-detail .detail-label{font-family:'JetBrains Mono',monospace;font-size:.75rem;text-transform:uppercase;letter-spacing:.2em;color:var(--blood);margin-bottom:.8rem}
.country-detail h2{font-family:'Rubik Mono One',sans-serif;font-size:clamp(1.8rem,4vw,2.5rem);line-height:.95;text-transform:uppercase;margin-bottom:1rem;letter-spacing:-.02em}
.country-detail p{font-size:1.1rem;line-height:1.5}

.country-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-top:2rem;margin-bottom:4rem}
.stat-card{border:3px solid var(--ink);padding:1.5rem;background:var(--white);transition:all .2s}
.stat-card:hover{background:var(--ink);color:var(--white);transform:rotate(-1deg)}
.stat-card .num{font-family:'Rubik Mono One',sans-serif;font-size:2.6rem;line-height:1;color:var(--blood)}
.stat-card .lbl{font-family:'JetBrains Mono',monospace;font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;margin-top:.5rem}

.legend-hint{margin-left:auto;opacity:.65}

/* COUNTRY MODAL CONTENT */
.country-modal-inner{max-height:85vh;overflow-y:auto}
.modal-body .country-note{font-style:italic;font-family:'Fraunces',serif;font-size:1.15rem;line-height:1.5;margin:0 0 1.5rem;padding-bottom:1.5rem;border-bottom:2px solid var(--ink)}
.mini-heading{font-family:'JetBrains Mono',monospace;font-size:.75rem;text-transform:uppercase;letter-spacing:.25em;color:var(--blood);margin:2rem 0 1rem;padding-bottom:.5rem;border-bottom:2px solid rgba(10,10,10,.2)}
.country-facts{list-style:none;counter-reset:fact;padding:0;margin:0}
.country-facts li{counter-increment:fact;padding:.9rem 0 .9rem 3.2rem;position:relative;font-size:1rem;line-height:1.5;border-bottom:1px solid rgba(10,10,10,.1);margin-bottom:0}
.country-facts li:last-child{border-bottom:none}
.country-facts li::before{content:counter(fact,decimal-leading-zero);position:absolute;left:0;top:.9rem;font-family:'Rubik Mono One',sans-serif;font-size:1.4rem;color:var(--blood);line-height:1}
.country-dish{border:3px solid var(--ink);padding:1.5rem;background:rgba(225,6,0,.05);margin-bottom:.5rem}
.country-dish strong{display:block;font-family:'Archivo Black',sans-serif;font-size:1.3rem;text-transform:uppercase;color:var(--blood);margin-bottom:.6rem;letter-spacing:.02em}
.country-dish p{font-size:1rem;line-height:1.5;margin:0}

.country-places{list-style:none;padding:0;margin:0 0 .5rem;border:3px solid var(--ink);background:var(--white)}
.country-places li{padding:.9rem 1.2rem;border-bottom:1px solid rgba(10,10,10,.12);display:flex;flex-direction:column;gap:.2rem}
.country-places li:last-child{border-bottom:none}
.country-places li:nth-child(odd){background:rgba(225,6,0,.04)}
.country-places li strong{font-family:'Archivo Black',sans-serif;font-size:1rem;text-transform:uppercase;letter-spacing:.03em;color:var(--ink)}
.country-places li span{font-family:'Fraunces',serif;font-size:.9rem;font-style:italic;opacity:.75;line-height:1.4}
.country-photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:.6rem}
.country-photos img{width:100%;aspect-ratio:1;object-fit:cover;border:2px solid var(--ink);cursor:pointer;transition:transform .2s}
.country-photos img:hover{transform:scale(1.04)}
.no-photos{font-family:'JetBrains Mono',monospace;font-size:.8rem;line-height:1.5;opacity:.65;padding:.5rem 0}

.country-lists{display:grid;grid-template-columns:1fr 1fr;gap:3rem;margin-top:2rem}
.country-lists .list-title{font-family:'Rubik Mono One',sans-serif;font-size:1.8rem;text-transform:uppercase;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:3px solid var(--ink);letter-spacing:-.02em}
.country-lists ul{list-style:none;padding:0}
.country-lists li{padding:1rem 0;border-bottom:1px solid rgba(10,10,10,.12);cursor:pointer;transition:all .2s;display:flex;flex-direction:column;gap:.3rem}
.country-lists li:hover{padding-left:.8rem;border-bottom-color:var(--blood)}
.country-lists li strong{font-family:'Archivo Black',sans-serif;font-size:1.1rem;text-transform:uppercase;letter-spacing:.02em}
.country-lists li span{font-family:'Fraunces',serif;font-size:.95rem;opacity:.75;line-height:1.4}
.country-lists li:empty,.country-lists ul:empty::after{content:"// nothing here yet";display:block;font-family:'JetBrains Mono',monospace;font-size:.8rem;opacity:.5;padding:1rem 0}

/* Make tile links behave exactly like tile divs */
a.tile{text-decoration:none}

/* RESPONSIVE */
@media (max-width:780px){
  nav{padding:.9rem 1.2rem}
  nav .logo{font-size:.85rem;gap:.5rem}
  nav .logo img{height:32px}
  nav .logo span{display:inline}
  .nav-toggle{display:flex}
  nav ul{position:fixed;top:70px;left:0;right:0;background:var(--white);flex-direction:column;align-items:center;justify-content:flex-start;gap:0;padding:2rem 1.5rem 3rem;border-bottom:3px solid var(--ink);max-height:calc(100vh - 70px);overflow-y:auto;transform:translateY(-120%);opacity:0;pointer-events:none;transition:transform .3s cubic-bezier(.2,.7,.2,1),opacity .2s}
  nav ul.open{transform:translateY(0);opacity:1;pointer-events:auto}
  nav ul li{width:100%;text-align:center;border-bottom:2px solid rgba(10,10,10,.1)}
  nav ul li:last-child{border-bottom:none}
  nav ul a{display:block;padding:1.3rem 0;font-size:1.1rem;letter-spacing:.15em}
  nav ul a::after{display:none}
  nav ul a.active{background:var(--blood);color:var(--white)}
  /* Hero — much smaller on phones so title always fits */
  header.hero{padding:7rem 1rem 3rem;min-height:auto}
  .hero h1{font-size:clamp(1.6rem,11vw,4.5rem);line-height:.92;letter-spacing:-.05em}
  .hero h1 .stroke{-webkit-text-stroke:2px var(--ink)}
  .hero .tag{font-size:.65rem;letter-spacing:.15em;padding:.4rem .7rem}
  .hero .sub{font-size:.95rem;margin-top:1.2rem;line-height:1.45}
  .hero .cta-row{margin-top:1.8rem;gap:.6rem}
  .hero .cta-row .btn{padding:.85rem 1.2rem;font-size:.7rem}
  .hero .anchor-bg{width:70vw;opacity:.5}
  /* Sections tighten up */
  section{padding:3.5rem 1.2rem}
  .section-title{font-size:clamp(1.8rem,8vw,3rem);margin-bottom:2rem}
  .section-label{font-size:.65rem;letter-spacing:.2em}
  #about .wrap,.contact-wrap{grid-template-columns:1fr;gap:2rem}
  #about{padding:3.5rem 1.2rem}
  #about p{font-size:.92rem;line-height:1.55;margin-bottom:1rem}
  #about .drop::first-letter{font-size:2.4rem;padding:.2rem .4rem 0 0}
  /* Stat cards — shrink aggressively on mobile */
  .stats{grid-template-columns:1fr 1fr;gap:.7rem;margin-top:1.5rem}
  .stat{padding:1rem .8rem}
  .stat .num{font-size:1.8rem}
  .stat .lbl{font-size:.6rem;letter-spacing:.05em;margin-top:.3rem;line-height:1.3}
  .gallery{grid-template-columns:repeat(6,1fr)}
  .tile{grid-column:span 3 !important;font-size:1.2rem}
  .t1,.t5{grid-column:span 6 !important}
  #counter{padding:4rem 1.2rem}
  #counter .big-num{font-size:clamp(2.2rem,14vw,6rem);word-break:normal}
  #counter .counter-sub{font-size:.75rem;letter-spacing:.15em;padding:0 .4rem}
  .marquee{font-size:1.3rem;padding:.8rem 0}
  .marquee-track img{height:1.6rem}
  footer{padding:2.5rem 1.2rem}
  footer .big{font-size:clamp(1.8rem,10vw,3.5rem)}
  #world-map{height:55vh;min-height:320px}
  .map-legend{gap:1rem;font-size:.7rem}
  .legend-hint{display:none}
  /* GENERIC PAGE HEADER — applies to gallery, events, contact headers */
  .page-header{padding:7rem 1.2rem 2.5rem}
  .page-header h1{font-size:clamp(2.2rem,10vw,4rem);line-height:.9}
  .page-header .intro{font-size:.92rem;line-height:1.55;margin-top:1.2rem}
  .page-header .section-label{font-size:.65rem;letter-spacing:.2em}
  /* GALLERY PAGE */
  .gallery-page{padding:0 0 3rem}
  .gallery-page .page-header{padding:7rem 1.2rem 2rem}
  .gallery{padding:0 1.2rem;gap:.6rem}
  .tile{font-size:.95rem;padding:.6rem;border-width:2px}
  /* CONTACT PAGE */
  .contact-page{padding:0 0 3rem;min-height:auto}
  .contact-page .page-header{padding:7rem 1.2rem 2rem}
  .contact-wrap{padding:0 1.2rem;gap:2rem}
  .contact-info p{font-size:.95rem;line-height:1.55;margin-bottom:1rem}
  .contact-info a{text-decoration-thickness:2px}
  form{gap:.8rem}
  form input,form textarea{padding:.85rem;font-size:.85rem;border-width:2px}
  form textarea{min-height:110px}
  form button{padding:.95rem;font-size:.75rem;letter-spacing:.15em;border-width:2px}
  .form-status{font-size:.7rem;margin-top:.8rem}
  /* EVENTS LIST PAGE */
  .events-page{padding:7rem 1.2rem 3rem}
  .events-page .page-header{padding:0 0 2rem}
  .events-grid{gap:1rem}
  .event{padding:1.3rem}
  .event .date{font-size:.7rem}
  .event h3{font-size:1.3rem}
  .event p{font-size:.9rem;line-height:1.5}
  /* EVENT DETAIL PAGE */
  .event-page{padding:7rem 1.2rem 3rem}
  .event-page .back{font-size:.7rem;letter-spacing:.15em;margin-bottom:1.2rem}
  .event-page .status{font-size:.65rem;letter-spacing:.2em;padding:.4rem .8rem;margin-bottom:1rem}
  .event-page h1{font-size:clamp(2rem,9vw,3.5rem);margin-bottom:1.2rem;line-height:.9}
  .event-page .lead{font-size:1.05rem;line-height:1.45;margin-bottom:1.3rem}
  .event-page .body p{font-size:.92rem;line-height:1.6;margin-bottom:1rem}
  .event-page .raised-box{grid-template-columns:1fr;padding:1.3rem;margin:2rem 0;gap:1.2rem}
  .event-page .raised-box .num{font-size:2rem}
  .event-page .raised-box .lbl{font-size:.65rem}
  .event-page .event-gallery{margin:2rem 0}
  .event-page .event-gallery h2{font-size:1.3rem;margin-bottom:.8rem}
  .event-page .event-gallery .grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:.5rem}
  .event-page .no-photos{font-size:.75rem;line-height:1.5}
  .event-page .next-prev{flex-direction:column;gap:.6rem;margin-top:2.5rem;padding-top:1.5rem;font-size:.65rem;letter-spacing:.1em;text-align:center}
  .event-page .next-prev a{padding:.4rem 0}
  /* HOLIDAYS PAGE */
  .holidays-page{padding:7rem 1.2rem 3rem}
  .holidays-page .page-header{padding:0 0 2rem}
  .holidays-page .page-header h1{font-size:clamp(2.2rem,10vw,4rem);line-height:.9}
  .holidays-page .intro{font-size:.92rem;line-height:1.55;margin-top:1.2rem}
  .map-wrap{box-shadow:4px 4px 0 var(--blood);margin-bottom:1rem}
  .country-stats{grid-template-columns:1fr 1fr;gap:.7rem;margin-top:1.2rem;margin-bottom:2.5rem}
  .stat-card{padding:1rem .8rem}
  .stat-card .num{font-size:1.8rem}
  .stat-card .lbl{font-size:.6rem;letter-spacing:.05em;margin-top:.3rem;line-height:1.3}
  .country-lists{grid-template-columns:1fr;gap:2rem;margin-top:1.5rem}
  .country-lists .list-title{font-size:1.3rem;margin-bottom:.8rem;padding-bottom:.4rem}
  .country-lists li{padding:.8rem 0}
  .country-lists li strong{font-size:.9rem}
  .country-lists li span{font-size:.8rem}
  .country-dish strong{font-size:1rem}
  .country-dish p{font-size:.9rem}
  .country-modal-inner .modal-body p{font-size:.95rem;line-height:1.5}
  .country-modal-inner .country-note{font-size:1rem}
  .mini-heading{font-size:.65rem;letter-spacing:.2em;margin:1.5rem 0 .8rem}
  .country-facts li{font-size:.9rem;padding:.7rem 0 .7rem 2.4rem}
  .country-facts li::before{font-size:1.2rem;top:.7rem}
  .country-places li strong{font-size:.85rem}
  .country-places li span{font-size:.8rem}
  /* Modals — reduce padding so content actually fits on narrow screens */
  .modal{padding:1rem}
  .modal-inner{padding:1.5rem 1.2rem;box-shadow:6px 6px 0 var(--blood);max-width:calc(100vw - 2rem)}
  .modal-inner h2{font-size:clamp(1.4rem,6vw,2rem)}
  .modal-close{top:.2rem;right:.6rem;font-size:2.5rem}
  /* Donator list — stack name above amount on narrow screens */
  .donator-list li{flex-direction:column;align-items:flex-start;gap:.15rem;padding:.6rem .4rem;font-size:.75rem}
  .donator-list .da{text-align:left}
}

/* ================================================================ */
/* GLOBAL HORIZONTAL OVERFLOW SAFETY NET                              */
/* Prevents any single rogue element from breaking the page layout   */
/* ================================================================ */
html,body{max-width:100vw;overflow-x:hidden}
