:root{
  --base:#0a0b10;--base-2:#0d0f16;
  --panel:#17122b;--panel-2:#201a3d;
  --acc-cyan:#00f0c8;--acc-mag:#ff2e97;
  --ink:#e9e6f2;--ink-dim:#8b86a3;--line:#2a2447;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{background:var(--base);color:var(--ink);font-family:'Chakra Petch',sans-serif;overflow-x:hidden;}
::selection{background:var(--acc-mag);color:#0a0b10;}
.glitchfont,h1,h2,h3,.logo{font-family:'Doctor Glitch','Chakra Petch',sans-serif;text-transform:uppercase;}
.mono{font-family:'IBM Plex Mono',monospace;}
a{color:inherit;text-decoration:none;}
body::before{content:"";position:fixed;inset:0;background:repeating-linear-gradient(to bottom,rgba(255,255,255,.02) 0,rgba(255,255,255,.02) 1px,transparent 1px,transparent 3px);pointer-events:none;z-index:999;opacity:.5;}
header{position:sticky;top:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:18px 5vw;background:rgba(10,11,16,.85);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);}
.logo span{color:var(--acc-cyan);}
nav ul{list-style:none;display:flex;gap:34px;}
nav a{font-size:.85rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-dim);}
.nav-cta{padding:9px 20px;border:1px solid var(--acc-mag);color:var(--acc-mag)!important;}
.hero{min-height:88vh;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:0 5vw;position:relative;background:radial-gradient(ellipse 70% 60% at 80% 20%,rgba(255,46,151,.1),transparent),radial-gradient(ellipse 60% 50% at 15% 80%,rgba(0,240,200,.08),transparent);}
.eyebrow{font-family:'IBM Plex Mono',monospace;color:var(--acc-cyan);font-size:.8rem;letter-spacing:.25em;margin-bottom:22px;display:flex;align-items:center;gap:10px;}
.eyebrow::before{content:"";width:8px;height:8px;background:var(--acc-cyan);display:inline-block;animation:pulse 1.6s infinite;}
@keyframes pulse{0%,100%{opacity:1;}50%{opacity:.2;}}
.hero h1{font-family:'Doctor Glitch','Chakra Petch',sans-serif;font-size:clamp(2.6rem,8vw,6.2rem);line-height:.98;color:var(--ink);position:relative;max-width:14ch;}
.hero h1 .glitch-wrap{position:relative;display:inline-block;}
.hero h1 .glitch-wrap::before,.hero h1 .glitch-wrap::after{content:attr(data-text);position:absolute;left:0;top:0;width:100%;overflow:hidden;background:var(--base);}
.hero h1 .glitch-wrap::before{color:var(--acc-mag);animation:glitch1 3.2s infinite linear alternate-reverse;}
.hero h1 .glitch-wrap::after{color:var(--acc-cyan);animation:glitch2 2.6s infinite linear alternate-reverse;}
@keyframes glitch1{0%{clip-path:inset(10% 0 78% 0);transform:translate(-2px,0);}20%{clip-path:inset(60% 0 5% 0);transform:translate(2px,0);}40%{clip-path:inset(30% 0 45% 0);transform:translate(-1px,0);}60%{clip-path:inset(80% 0 2% 0);transform:translate(2px,0);}80%{clip-path:inset(5% 0 85% 0);transform:translate(-2px,0);}100%{clip-path:inset(45% 0 30% 0);transform:translate(1px,0);}}
@keyframes glitch2{0%{clip-path:inset(70% 0 10% 0);transform:translate(2px,0);}25%{clip-path:inset(15% 0 65% 0);transform:translate(-2px,0);}50%{clip-path:inset(50% 0 20% 0);transform:translate(1px,0);}75%{clip-path:inset(5% 0 88% 0);transform:translate(-1px,0);}100%{clip-path:inset(65% 0 15% 0);transform:translate(2px,0);}}
.hero p{margin-top:26px;max-width:46ch;color:var(--ink-dim);font-size:1.05rem;line-height:1.6;}
.hero-ctas{display:flex;gap:16px;margin-top:38px;flex-wrap:wrap;}
.btn{padding:14px 28px;font-size:.85rem;letter-spacing:.14em;text-transform:uppercase;font-weight:600;cursor:pointer;transition:all .2s;border:1px solid transparent;}
.btn-primary{background:var(--acc-cyan);color:#04110e;}
.btn-primary:hover{box-shadow:0 0 24px rgba(0,240,200,.5);}
.btn-ghost{border-color:var(--line);color:var(--ink);}
.btn-ghost:hover{border-color:var(--acc-mag);color:var(--acc-mag);}
.ticker{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--panel);overflow:hidden;white-space:nowrap;padding:12px 0;}
.ticker-track{display:inline-block;font-family:'IBM Plex Mono',monospace;font-size:.78rem;color:var(--ink-dim);letter-spacing:.08em;animation:scroll 26s linear infinite;}
.ticker-track span{color:var(--acc-cyan);margin:0 10px;}
@keyframes scroll{from{transform:translateX(0);}to{transform:translateX(-50%);}}
section{padding:80px 5vw;}
.section-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:52px;flex-wrap:wrap;gap:20px;}
.section-head h2{font-size:clamp(1.8rem,4vw,3rem);}
.section-head p{color:var(--ink-dim);max-width:40ch;font-size:.92rem;}
.tag{font-family:'IBM Plex Mono',monospace;font-size:.75rem;color:var(--acc-mag);letter-spacing:.2em;margin-bottom:14px;display:block;}
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:22px;}
.tile{background:var(--panel);border:1px solid var(--line);overflow:hidden;display:block;transition:transform .25s,border-color .25s;}
.tile:hover{transform:translateY(-6px);border-color:var(--acc-cyan);}
.tile-art{height:230px;overflow:hidden;background:var(--panel-2);position:relative;}
.tile-art::after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(115deg,rgba(255,255,255,.03) 0 2px,transparent 2px 6px);pointer-events:none;}
.tile-art img{width:100%;height:100%;object-fit:cover;display:block;}
.art-1{background:linear-gradient(135deg,#1b0f33,#3a1350 40%,#00f0c8 130%);}
.art-2{background:linear-gradient(160deg,#150c2b,#ff2e97 120%);}
.art-3{background:conic-gradient(from 90deg at 30% 30%,#17122b,#201a3d,#00f0c8,#17122b);}
.art-4{background:linear-gradient(200deg,#0d0f16,#201a3d 50%,#ff2e97 140%);}
.art-5{background:radial-gradient(circle at 70% 30%,#00f0c8,#17122b 60%);}
.art-6{background:linear-gradient(100deg,#201a3d,#0d0f16 40%,#ff2e97 150%);}
.tile-meta{padding:16px 18px;}
.tile-meta .artist{font-size:.72rem;color:var(--ink-dim);letter-spacing:.1em;text-transform:uppercase;}
.tile-meta .title{font-size:1.05rem;margin-top:6px;font-weight:600;}
.tile-meta .stats{display:flex;gap:14px;margin-top:12px;font-family:'IBM Plex Mono',monospace;font-size:.72rem;color:var(--acc-cyan);}
.spotlight{background:var(--panel);border:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;}
.spotlight-art{min-height:380px;background:conic-gradient(from 210deg at 60% 40%,#0a0b10,#201a3d,#ff2e97,#00f0c8,#0a0b10);}
.spotlight-copy{padding:52px;display:flex;flex-direction:column;justify-content:center;}
.spotlight-copy h3{font-size:2rem;margin-bottom:16px;}
.spotlight-copy p{color:var(--ink-dim);line-height:1.7;margin-bottom:24px;}
.spotlight-copy .quote{border-left:2px solid var(--acc-mag);padding-left:16px;font-style:italic;color:var(--ink);margin-bottom:26px;}
.upload-cta{background:linear-gradient(120deg,var(--panel),var(--panel-2));border:1px solid var(--line);padding:70px 5vw;text-align:center;}
.upload-cta h2{font-size:clamp(2rem,5vw,3.4rem);margin-bottom:18px;}
.upload-cta p{color:var(--ink-dim);max-width:50ch;margin:0 auto 34px;}
.upload-form{max-width:480px;margin:0 auto;text-align:left;display:flex;flex-direction:column;gap:6px;}
.upload-form label{font-size:.75rem;color:var(--ink-dim);letter-spacing:.1em;text-transform:uppercase;margin-top:14px;}
.upload-form input,.upload-form select,.upload-form textarea{background:var(--base);border:1px solid var(--line);color:var(--ink);padding:10px 12px;font-family:'Chakra Petch',sans-serif;}
.upload-form button{margin-top:22px;}
.form-errors{color:var(--acc-mag);margin-bottom:20px;font-size:.85rem;}
.flash{background:var(--panel);border-bottom:1px solid var(--acc-cyan);color:var(--acc-cyan);text-align:center;padding:12px;font-family:'IBM Plex Mono',monospace;font-size:.85rem;}
footer{border-top:1px solid var(--line);padding:40px 5vw 30px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:20px;}
.status-panel{font-family:'IBM Plex Mono',monospace;font-size:.78rem;color:var(--ink-dim);line-height:1.9;}
.status-panel .ok{color:var(--acc-cyan);}
.status-panel .pending{color:var(--acc-mag);}
.foot-links{display:flex;gap:24px;}
.foot-links a{font-size:.8rem;color:var(--ink-dim);letter-spacing:.08em;}
@media (max-width:760px){nav ul{display:none;}.spotlight{grid-template-columns:1fr;}footer{flex-direction:column;}}

/* ---------- artwork detail page ---------- */
.artwork-detail{display:grid;grid-template-columns:1.2fr 1fr;gap:0;background:var(--panel);border:1px solid var(--line);}
.artwork-media{min-height:420px;position:relative;overflow:hidden;}
.artwork-media img{width:100%;height:100%;object-fit:cover;display:block;}
.artwork-info{padding:48px;}
.artwork-info h1{font-family:'Doctor Glitch','Chakra Petch',sans-serif;font-size:clamp(1.8rem,4vw,2.6rem);text-transform:uppercase;margin:10px 0 16px;}
.artwork-info .caption{color:var(--ink-dim);line-height:1.7;margin-bottom:20px;}
.artwork-stats{display:flex;gap:18px;font-family:'IBM Plex Mono',monospace;font-size:.8rem;color:var(--acc-cyan);margin-bottom:24px;}
.echo-form{margin-bottom:40px;}
.comments h3{font-family:'Doctor Glitch','Chakra Petch',sans-serif;text-transform:uppercase;font-size:1.2rem;margin-bottom:18px;}
.comment-form{display:flex;flex-direction:column;gap:10px;margin-bottom:28px;}
.comment-form textarea{background:var(--base);border:1px solid var(--line);color:var(--ink);padding:12px;font-family:'Chakra Petch',sans-serif;min-height:80px;resize:vertical;}
.comment{border-top:1px solid var(--line);padding:16px 0;}
.comment-meta{display:flex;gap:12px;font-family:'IBM Plex Mono',monospace;font-size:.72rem;margin-bottom:6px;}
.comment-author{color:var(--acc-cyan);text-transform:uppercase;letter-spacing:.05em;}
.comment-date{color:var(--ink-dim);}
.comment p{color:var(--ink);line-height:1.6;}
.muted{color:var(--ink-dim);font-size:.85rem;}
.muted a{color:var(--acc-cyan);}
.share-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:32px;}
.contact-box{padding:28px;margin-bottom:40px;}
.contact-box h3{font-family:'Doctor Glitch','Chakra Petch',sans-serif;text-transform:uppercase;font-size:1.1rem;margin-bottom:6px;}
.contact-box .comment-form{margin-top:16px;margin-bottom:0;}
.hp-field{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden;}
.contact-page{max-width:600px;margin:0 auto;padding:80px 5vw;}
.contact-page h1{font-family:'Doctor Glitch','Chakra Petch',sans-serif;text-transform:uppercase;font-size:clamp(1.8rem,4vw,2.6rem);margin:12px 0 14px;}
.contact-page .muted{margin-bottom:30px;line-height:1.6;}
.contact-page .muted a{color:var(--acc-cyan);}
.contact-form{padding:32px;display:flex;flex-direction:column;gap:16px;}
.contact-form textarea{background:var(--base);border:1px solid var(--line);color:var(--ink);padding:12px;font-family:'Chakra Petch',sans-serif;min-height:120px;resize:vertical;width:100%;}

/* ---------- nav: logged-in user + logout ---------- */
.nav-user{display:flex;align-items:center;gap:12px;}
.nav-handle{font-family:'IBM Plex Mono',monospace;font-size:0.78rem;color:var(--acc-cyan);text-transform:uppercase;}
.nav-logout-form{display:inline;}
.nav-logout-btn{
  background:none;border:1px solid var(--line);color:var(--ink-dim);
  font-family:'Chakra Petch',sans-serif;font-size:0.78rem;letter-spacing:0.08em;text-transform:uppercase;
  padding:6px 12px;cursor:pointer;
}
.nav-logout-btn:hover{border-color:var(--acc-mag);color:var(--acc-mag);}
.nav-admin-link{color:var(--acc-mag)!important;}

/* ---------- artist directory ---------- */
.artist-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:18px;margin-bottom:30px;}
.artist-card{padding:20px;}
.artist-card-handle{font-family:'Doctor Glitch','Chakra Petch',sans-serif;text-transform:uppercase;font-size:1.1rem;margin-bottom:8px;}
.artist-card-stats{display:flex;gap:14px;font-size:0.75rem;color:var(--acc-cyan);}
.pagination-wrap{margin-top:10px;}
.pagination-wrap nav{color:var(--ink-dim);font-family:'IBM Plex Mono',monospace;font-size:0.82rem;}
.pagination-wrap a{color:var(--acc-cyan);}

/* ---------- premium page ---------- */
.premium-page{max-width:900px;margin:0 auto;padding:80px 5vw;}
.premium-page h1{font-family:'Doctor Glitch','Chakra Petch',sans-serif;text-transform:uppercase;font-size:clamp(1.8rem,4vw,2.6rem);margin:12px 0 14px;}
.premium-page .muted{margin-bottom:30px;line-height:1.6;}
.premium-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px;margin-bottom:34px;}
.premium-card{padding:22px;}
.premium-card h3{font-family:'Doctor Glitch','Chakra Petch',sans-serif;text-transform:uppercase;font-size:1rem;margin-bottom:8px;color:var(--acc-cyan);}
.premium-card p{color:var(--ink-dim);font-size:0.88rem;line-height:1.6;}

/* ---------- admin panel ---------- */
.admin-page{padding:60px 5vw;}
.admin-nav{display:flex;gap:10px;flex-wrap:wrap;}
.stat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px;margin-bottom:36px;}
.stat-card{padding:20px;text-align:center;}
.stat-num{display:block;font-family:'Doctor Glitch','Chakra Petch',sans-serif;font-size:2rem;color:var(--acc-cyan);}
.stat-label{display:block;font-size:0.7rem;color:var(--ink-dim);text-transform:uppercase;letter-spacing:0.08em;margin-top:4px;}
.admin-block{padding:26px;margin-bottom:26px;overflow-x:auto;}
.admin-block h3{font-family:'Doctor Glitch','Chakra Petch',sans-serif;text-transform:uppercase;font-size:1.1rem;margin-bottom:16px;}
.admin-table{width:100%;border-collapse:collapse;font-size:0.85rem;}
.admin-table th{text-align:left;color:var(--ink-dim);font-size:0.72rem;text-transform:uppercase;letter-spacing:0.06em;padding:8px 10px;border-bottom:1px solid var(--line);}
.admin-table td{padding:10px;border-bottom:1px solid var(--line);vertical-align:middle;}
.admin-table a{color:var(--acc-cyan);}
.admin-filters{display:flex;gap:12px;padding:18px;margin-bottom:22px;flex-wrap:wrap;}
.admin-filters select, .admin-filters input{
  background:var(--base);border:1px solid var(--line);color:var(--ink);
  padding:9px 12px;font-family:'Chakra Petch',sans-serif;
}
.admin-filters input{flex:1;min-width:200px;}
.admin-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center;}
.admin-reject-form{display:flex;gap:6px;align-items:center;}
.admin-note-input{
  background:var(--base);border:1px solid var(--line);color:var(--ink);
  padding:6px 8px;font-size:0.78rem;width:140px;
}
.admin-btn-sm{padding:7px 14px;font-size:0.72rem;}
.status-badge{
  font-family:'IBM Plex Mono',monospace;font-size:0.68rem;text-transform:uppercase;
  padding:3px 8px;letter-spacing:0.05em;
}
.status-pending{color:var(--acc-mag);border:1px solid var(--acc-mag);}
.status-approved{color:var(--acc-cyan);border:1px solid var(--acc-cyan);}
.status-rejected{color:var(--ink-dim);border:1px solid var(--line);}
.admin-comment-body{max-width:320px;}
@media (max-width:760px){.artwork-detail{grid-template-columns:1fr;}.artwork-media{min-height:280px;}}

/* ---------- auth pages (login / register / password reset) ---------- */
.auth-shell{
  min-height:100vh;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:34px;
  padding:60px 20px;
  background:
    radial-gradient(ellipse 70% 60% at 80% 20%, rgba(255,46,151,0.10), transparent),
    radial-gradient(ellipse 60% 50% at 15% 80%, rgba(0,240,200,0.08), transparent);
}
.auth-logo{
  font-family:'Doctor Glitch','Chakra Petch',sans-serif;
  font-size:1.8rem;
  text-transform:uppercase;
  color:var(--ink);
}
.auth-logo span{color:var(--acc-cyan);}
.auth-card{
  width:100%; max-width:420px;
  background:var(--panel);
  border:1px solid var(--line);
  padding:40px;
}
/* recreate the vertical rhythm Breeze's Tailwind utility classes (mt-4 etc.) would
   have provided, now that those views render without Tailwind loaded */
.auth-card form > div{margin-top:18px;}
.auth-card form > div:first-child{margin-top:0;}
.auth-label{
  display:block;
  font-size:0.75rem;
  color:var(--ink-dim);
  letter-spacing:0.1em;
  text-transform:uppercase;
  margin-bottom:6px;
}
.auth-input{
  width:100%;
  background:var(--base);
  border:1px solid var(--line);
  color:var(--ink);
  padding:11px 12px;
  font-family:'Chakra Petch',sans-serif;
  font-size:0.95rem;
}
.auth-input:focus{outline:none; border-color:var(--acc-cyan);}
.auth-error{
  list-style:none;
  color:var(--acc-mag);
  font-size:0.8rem;
  margin-top:6px;
}
.auth-status{
  font-family:'IBM Plex Mono',monospace;
  color:var(--acc-cyan);
  font-size:0.82rem;
  margin-bottom:18px;
}
.auth-btn{width:100%; text-align:center; margin-top:8px;}
.auth-checkbox{accent-color:var(--acc-cyan); margin-right:8px;}
.auth-card label:has(.auth-checkbox){
  display:flex; align-items:center;
  font-size:0.85rem; color:var(--ink-dim);
  text-transform:none; letter-spacing:normal;
}
.auth-card a{
  color:var(--acc-cyan);
  font-size:0.82rem;
}
.auth-card a:hover{text-decoration:underline;}
.auth-card .flex.items-center.justify-end,
.auth-card .flex.items-center.justify-between{
  display:flex; align-items:center; justify-content:space-between;
  margin-top:20px; flex-wrap:wrap; gap:12px;
}
.auth-title{
  font-family:'Doctor Glitch','Chakra Petch',sans-serif;
  font-size:1.8rem;
  text-transform:uppercase;
  margin:12px 0 8px;
}
.auth-lede{color:var(--ink-dim); font-size:0.88rem; margin-bottom:22px;}
.auth-hint{color:var(--ink-dim); font-size:0.72rem; margin-top:5px;}
.auth-row{
  display:flex; align-items:center; justify-content:space-between;
  margin-top:16px; flex-wrap:wrap; gap:12px;
}
.auth-checkbox-label{
  display:flex; align-items:center; gap:8px;
  font-size:0.82rem; color:var(--ink-dim);
}
.auth-footnote{
  margin-top:26px;
  text-align:center;
  font-size:0.85rem;
  color:var(--ink-dim);
}

/* ==================================================================
   NEO-PUNK REDESIGN LAYER
   Neumorphic depth on functional chrome (cards/buttons/inputs) +
   punk texture as decoration (torn edges, halftone, spray accents,
   sticker tags). Same palette/fonts as before — this is a skin, not
   a rebuild.
   ================================================================== */

/* ---------- accessibility baseline ---------- */
.skip-link{
  position:absolute; left:-999px; top:auto;
  background:var(--acc-cyan); color:#04110e;
  padding:12px 20px; z-index:1000;
  font-family:'IBM Plex Mono',monospace; font-size:0.85rem;
  text-transform:uppercase; letter-spacing:0.08em;
}
.skip-link:focus{left:16px; top:16px;}

a:focus-visible, button:focus-visible, input:focus-visible,
textarea:focus-visible, select:focus-visible, [tabindex]:focus-visible{
  outline:2px solid var(--acc-cyan);
  outline-offset:3px;
}

@media (prefers-reduced-motion: reduce){
  .glitch-wrap::before, .glitch-wrap::after,
  .eyebrow::before, .ticker-track, .tile, body::before{
    animation:none !important;
    transition:none !important;
  }
}

/* ---------- punk texture primitives ---------- */
.halftone{
  position:relative;
}
.halftone::before{
  content:"";
  position:absolute; inset:0;
  background-image:radial-gradient(rgba(255,255,255,0.10) 1px, transparent 1px);
  background-size:5px 5px;
  opacity:0.5;
  pointer-events:none;
}
.torn-top{
  clip-path:polygon(
    0% 6px, 3% 0%, 7% 8px, 12% 2px, 18% 9px, 24% 1px, 30% 7px, 36% 0%,
    42% 8px, 48% 3px, 54% 9px, 60% 1px, 66% 7px, 72% 0%, 78% 8px, 84% 2px,
    90% 9px, 96% 1px, 100% 6px, 100% 100%, 0% 100%
  );
}
.sticker-tag{
  display:inline-block;
  font-family:'IBM Plex Mono',monospace;
  font-size:0.68rem;
  letter-spacing:0.1em;
  text-transform:uppercase;
  padding:4px 10px;
  border:1px solid var(--acc-mag);
  color:var(--acc-mag);
  transform:rotate(-3deg);
  background:var(--base);
}

/* ---------- neumorphic surfaces ---------- */
/* soft dual-shadow depth: dark shadow bottom-right, faint highlight
   top-left, surface color close to its own background so the shadow
   (not a hard border) reads as the edge */
.neu{
  background:var(--panel);
  border-radius:14px;
  box-shadow:
    8px 8px 18px rgba(0,0,0,0.55),
    -6px -6px 16px rgba(255,255,255,0.025);
  border:1px solid rgba(255,255,255,0.03);
}
.neu-inset{
  background:var(--base);
  border-radius:10px;
  box-shadow:
    inset 4px 4px 10px rgba(0,0,0,0.6),
    inset -4px -4px 10px rgba(255,255,255,0.02);
}
.neu-btn{
  background:var(--panel);
  border-radius:12px;
  border:1px solid rgba(255,255,255,0.04);
  box-shadow:
    5px 5px 12px rgba(0,0,0,0.5),
    -4px -4px 10px rgba(255,255,255,0.02);
  transition:box-shadow .15s, transform .15s;
}
.neu-btn:hover{
  box-shadow:
    2px 2px 6px rgba(0,0,0,0.5),
    -2px -2px 5px rgba(255,255,255,0.02);
  transform:translateY(1px);
}
.neu-btn:active{
  box-shadow:inset 3px 3px 8px rgba(0,0,0,0.6), inset -3px -3px 8px rgba(255,255,255,0.02);
}

/* apply neumorphic treatment to existing components without renaming
   markup everywhere — cards, tiles, inputs, buttons all pick it up */
.tile, .spotlight, .upload-cta, .artwork-detail, .auth-card, .neu{
  border-radius:14px;
  box-shadow:8px 8px 18px rgba(0,0,0,0.55), -6px -6px 16px rgba(255,255,255,0.025);
  border-color:rgba(255,255,255,0.04);
}
.btn, .auth-input, .comment-form textarea, .upload-form input,
.upload-form select, .upload-form textarea{
  border-radius:10px;
}
.btn-primary, .btn-ghost{
  box-shadow:4px 4px 10px rgba(0,0,0,0.45), -3px -3px 8px rgba(255,255,255,0.02);
}
.btn-primary:hover, .btn-ghost:hover{
  box-shadow:2px 2px 6px rgba(0,0,0,0.45), -2px -2px 5px rgba(255,255,255,0.02);
}
.auth-input, .comment-form textarea, .upload-form input,
.upload-form select, .upload-form textarea{
  box-shadow:inset 3px 3px 8px rgba(0,0,0,0.55), inset -3px -3px 8px rgba(255,255,255,0.015);
  border-color:rgba(255,255,255,0.03);
}

/* ---------- punk accents applied to layout ---------- */
.hero{position:relative;}
.hero::after{
  content:"";
  position:absolute; top:8%; right:4vw;
  width:280px; height:280px;
  background:radial-gradient(circle, var(--acc-mag) 0%, transparent 65%);
  opacity:0.12;
  filter:blur(6px);
  pointer-events:none;
}
section#feed, section#artists{border-top:1px solid var(--line);}
.section-head h2::before{
  content:"//";
  color:var(--acc-mag);
  margin-right:10px;
  font-family:'IBM Plex Mono',monospace;
  font-size:0.6em;
  vertical-align:middle;
}
footer{position:relative;}
footer::before{
  content:"";
  position:absolute; top:-1px; left:0; right:0; height:6px;
  background-image:linear-gradient(115deg, var(--acc-cyan) 0 8px, transparent 8px 16px);
  background-size:16px 6px;
  opacity:0.5;
}
