/*
Theme Name: TwistedNET
Theme URI: https://twistednet.org
Description: Premium champagne/platinum theme for the TwistedNET IRC network. Child of Twenty Twenty-Five.
Author: TwistedNET
Template: twentytwentyfive
Version: 1.6.4
Text Domain: twistednet
*/

/* ---------- Self-hosted fonts ---------- */
@font-face{font-family:'Space Grotesk';font-style:normal;font-weight:300;font-display:swap;src:url('assets/fonts/spacegrotesk-300.woff2') format('woff2');}
@font-face{font-family:'Space Grotesk';font-style:normal;font-weight:500;font-display:swap;src:url('assets/fonts/spacegrotesk-500.woff2') format('woff2');}
@font-face{font-family:'Space Grotesk';font-style:normal;font-weight:700;font-display:swap;src:url('assets/fonts/spacegrotesk-700.woff2') format('woff2');}
@font-face{font-family:'Roboto Mono';font-style:normal;font-weight:400;font-display:swap;src:url('assets/fonts/robotomono-400.woff2') format('woff2');}
@font-face{font-family:'Roboto Mono';font-style:normal;font-weight:700;font-display:swap;src:url('assets/fonts/robotomono-700.woff2') format('woff2');}

/* ---------- Brand tokens (champagne / platinum, matched to the logo) ---------- */
:root{
  --tn-bg:#0a0a0b;
  --tn-surface:#151517;
  --tn-surface-2:#1d1d20;
  --tn-cream:#ffffff;
  --tn-champagne:#e6e6ea;
  --tn-gold:#e10600;
  --tn-bronze:#a30400;
  --tn-text:#f4f4f6;
  --tn-muted:#9a9aa1;
  --tn-border:rgba(255,255,255,.13);
  --tn-grad:linear-gradient(120deg,#ffffff 0%,#e6e6ea 45%,#e10600 100%);
}

/* ---------- Aurora backdrop (warm metallic glows) ---------- */
html{scroll-behavior:smooth;}
body{background-color:var(--tn-bg);position:relative;overflow-x:hidden;}
body::before{
  content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;
  background:
    radial-gradient(60vw 60vw at 12% -10%, rgba(225,6,0,.20), transparent 60%),
    radial-gradient(50vw 50vw at 100% 0%, rgba(255,255,255,.14), transparent 55%),
    radial-gradient(55vw 55vw at 80% 100%, rgba(140,0,0,.12), transparent 60%);
}
body::after{
  content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.035;
  background-image:linear-gradient(var(--tn-champagne) 1px,transparent 1px),linear-gradient(90deg,var(--tn-champagne) 1px,transparent 1px);
  background-size:46px 46px;
  -webkit-mask-image:radial-gradient(circle at 50% 0%, #000 0%, transparent 70%);
  mask-image:radial-gradient(circle at 50% 0%, #000 0%, transparent 70%);
}

::selection{background:#e10600;color:#fff;}

/* ---------- Gradient headline ---------- */
h1.wp-block-heading,
.wp-block-heading.is-style-tn-gradient{
  background:var(--tn-grad);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
}

/* eyebrow / mono label */
.tn-eyebrow{
  font-family:'Roboto Mono',ui-monospace,monospace;
  letter-spacing:.28em;text-transform:uppercase;font-size:.76rem;color:var(--tn-gold);
}

/* ---------- Buttons ---------- */
.wp-block-button__link{
  font-family:'Roboto Mono',ui-monospace,monospace;font-weight:700;letter-spacing:.02em;
  border-radius:12px;padding:.85em 1.6em;
  transition:transform .18s ease, box-shadow .18s ease, filter .18s ease;will-change:transform;
}
.wp-block-button:not(.is-style-outline) .wp-block-button__link{
  background:var(--tn-gold);color:#ffffff;
  box-shadow:0 10px 34px -10px rgba(225,6,0,.6);
}
.wp-block-button.is-style-outline .wp-block-button__link{
  border:1px solid var(--tn-border);background:rgba(255,255,255,.03);color:var(--tn-text);
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
}
.wp-block-button__link:hover{transform:translateY(-3px);box-shadow:0 16px 44px -10px rgba(225,6,0,.7);filter:brightness(1.05);}

/* ---------- Glass cards ---------- */
.tn-card{
  background:linear-gradient(180deg,rgba(255,255,255,.06),rgba(255,255,255,.018));
  border:1px solid var(--tn-border);border-radius:18px;
  padding:clamp(1.4rem,3vw,2.1rem)!important;
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  box-shadow:0 1px 0 rgba(255,255,255,.05) inset, 0 20px 50px -30px rgba(0,0,0,.85);
  transition:transform .25s ease, border-color .25s ease, box-shadow .25s ease;height:100%;
}
.tn-card:hover{transform:translateY(-6px);border-color:rgba(255,255,255,.55);box-shadow:0 30px 60px -30px rgba(225,6,0,.4);}
.tn-card h3{font-size:1.18rem;margin:.1rem 0 .5rem;color:var(--tn-cream);}
.tn-card p{color:var(--tn-muted);font-size:.97rem;margin:0;}
/* breathing room between stacked lines (e.g. Server / TLS / Plaintext in the connect cards) */
.tn-card p + p{margin-top:.6rem;}

/* CSS-mask icons (replace emoji; render identically everywhere) */
.tn-card.tn-ico::before{
  content:"";display:block;width:42px;height:42px;margin:0 0 1rem;
  background:var(--tn-grad);
  -webkit-mask:var(--ico) center/contain no-repeat;mask:var(--ico) center/contain no-repeat;
  filter:drop-shadow(0 0 12px rgba(225,6,0,.45));
}
.tn-ico--lock{--ico:url(assets/icons/lock.svg);}
.tn-ico--tor{--ico:url(assets/icons/tor.svg);}
.tn-ico--shield{--ico:url(assets/icons/shield.svg);}
.tn-ico--users{--ico:url(assets/icons/users.svg);}
.tn-ico--globe{--ico:url(assets/icons/globe.svg);}

/* ---------- Connect chips ---------- */
.tn-chip{
  font-family:'Roboto Mono',ui-monospace,monospace;
  background:rgba(255,255,255,.10);border:1px solid var(--tn-border);border-radius:10px;
  padding:.55em .8em;color:var(--tn-champagne);word-break:break-all;display:inline-block;max-width:100%;
  margin:.18rem .3rem .18rem 0;vertical-align:middle;
}

/* ---------- Links ---------- */
.wp-block-post-content a:not(.wp-block-button__link):not(.tn-lcard__cta):not(.tn-chan-pill),
.entry-content a:not(.wp-block-button__link):not(.tn-lcard__cta):not(.tn-chan-pill){
  color:var(--tn-gold);text-decoration:none;
  background-image:linear-gradient(var(--tn-gold),var(--tn-gold));
  background-size:0% 1px;background-position:0 100%;background-repeat:no-repeat;
  transition:background-size .25s ease;
}
.wp-block-post-content a:not(.wp-block-button__link):not(.tn-lcard__cta):not(.tn-chan-pill):hover,
.entry-content a:not(.wp-block-button__link):not(.tn-lcard__cta):not(.tn-chan-pill):hover{background-size:100% 1px;}

/* ---------- Logo glow ---------- */
.wp-block-site-logo img{filter:drop-shadow(0 0 22px rgba(255,255,255,.3));transition:filter .3s ease;}
.wp-block-site-logo img:hover{filter:drop-shadow(0 0 32px rgba(255,255,255,.55));}
.tn-hero-logo img{filter:drop-shadow(0 6px 26px rgba(225,6,0,.3));}

.tn-rule{height:1px;border:0;background:linear-gradient(90deg,transparent,var(--tn-champagne),transparent);opacity:.45;}

/* ---------- Header polish ---------- */
.wp-block-template-part header{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);}

/* ---------- Site title (header) ---------- */
.wp-block-site-title a{color:var(--tn-cream)!important;text-decoration:none;
  font-family:'Space Grotesk',sans-serif;letter-spacing:-.01em;}
.wp-block-site-title a:hover{color:var(--tn-gold)!important;}

/* ---------- Mobile navigation overlay (full-screen, centered, premium) ---------- */
.wp-block-navigation__responsive-container-open,
.wp-block-navigation__responsive-container-close{color:var(--tn-champagne)!important;}
.wp-block-navigation__responsive-container-open svg,
.wp-block-navigation__responsive-container-close svg{fill:currentColor;width:30px;height:30px;}
.wp-block-navigation__responsive-container.is-menu-open{
  background:radial-gradient(135% 95% at 50% -5%, rgba(18,18,20,1) 0%, rgba(8,8,9,1) 70%)!important;
  -webkit-backdrop-filter:blur(22px) saturate(1.1);backdrop-filter:blur(22px) saturate(1.1);
  padding:1.5rem!important;
  animation:tn-overlay-in .42s cubic-bezier(.22,1,.36,1) both;
}
@keyframes tn-overlay-in{from{opacity:0;}to{opacity:1;}}
/* close (X) as a clean circle, top-right */
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close{
  top:1.4rem!important;right:1.4rem!important;
  width:46px;height:46px;border:1px solid var(--tn-border);border-radius:50%;
  display:flex;align-items:center;justify-content:center;
}
/* vertically + horizontally centered menu */
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content{
  width:100%!important;min-height:82vh;display:flex!important;flex-direction:column!important;
  justify-content:center!important;align-items:center!important;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container{
  flex-direction:column!important;justify-content:center!important;align-items:center!important;
  gap:.4rem!important;width:100%!important;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item{
  display:flex!important;flex-direction:column!important;justify-content:center!important;align-items:center!important;
  width:100%;text-align:center;padding:0;border:0;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content{
  font-family:'Space Grotesk',ui-sans-serif,sans-serif!important;
  font-size:1.95rem!important;font-weight:300;color:rgba(244,244,246,.93)!important;letter-spacing:.012em;text-align:center;
  padding:.85rem 2rem!important;border-radius:14px;transition:color .25s ease,letter-spacing .25s ease,opacity .25s ease;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content:hover{
  color:var(--tn-cream)!important;letter-spacing:.04em;background:transparent;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content:focus:not(:focus-visible){outline:none;box-shadow:none;}

/* ===== Mobile nav: the premium treatment ===== */
/* decorative top + bottom labels inside the overlay */
.wp-block-navigation__responsive-container.is-menu-open{position:fixed;}
.wp-block-navigation__responsive-container.is-menu-open::before{
  content:"navigate";position:absolute;top:2.3rem;left:0;right:0;text-align:center;
  font-family:'Roboto Mono',ui-monospace,monospace;font-size:.66rem;letter-spacing:.42em;
  text-transform:uppercase;color:var(--tn-muted);opacity:.55;
  animation:tn-nav-in .5s .05s both;
}
.wp-block-navigation__responsive-container.is-menu-open::after{
  content:"irc.twistednet.org · est. 2007";position:absolute;bottom:2.2rem;left:0;right:0;text-align:center;
  font-family:'Roboto Mono',ui-monospace,monospace;font-size:.72rem;letter-spacing:.18em;
  text-transform:uppercase;color:var(--tn-muted);
  animation:tn-nav-in .5s .35s both;
}
/* clean, centered, staggered items with a hover underline */
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item{
  opacity:0;animation:tn-nav-in .6s cubic-bezier(.22,1,.36,1) both;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item:nth-child(1){animation-delay:.08s;}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item:nth-child(2){animation-delay:.14s;}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item:nth-child(3){animation-delay:.20s;}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item:nth-child(4){animation-delay:.26s;}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item:nth-child(5){animation-delay:.32s;}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item:nth-child(6){animation-delay:.38s;}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item:nth-child(7){animation-delay:.44s;}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content{
  position:relative;font-size:1.95rem!important;padding:.7rem 1.5rem 1rem!important;
}
/* animated underline */
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content::after{
  content:"";position:absolute;left:50%;bottom:.45rem;width:0;height:2px;border-radius:2px;
  background:var(--tn-grad);transform:translateX(-50%);transition:width .28s ease;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content:hover,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content:focus-visible{
  background:transparent!important;
  background-image:var(--tn-grad)!important;-webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent!important;color:transparent!important;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content:hover::after,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content:focus-visible::after{width:38px;}
@keyframes tn-nav-in{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:translateY(0);}}
/* hamburger: subtle bordered tap target */
.wp-block-navigation__responsive-container-open{
  border:1px solid var(--tn-border);border-radius:12px;padding:.5rem!important;
  transition:border-color .2s ease,background .2s ease;
}
.wp-block-navigation__responsive-container-open:hover{border-color:rgba(255,255,255,.5);background:rgba(255,255,255,.05);}

/* ---------- Footer ---------- */
.tn-footer{border-top:1px solid var(--tn-border);}
.tn-footer .tn-foot-links{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:.15rem .1rem;}
.tn-footer .tn-foot-links a{color:var(--tn-champagne);text-decoration:none;margin:0 .15rem;white-space:nowrap;transition:color .2s ease;}
.tn-footer .tn-foot-links a:hover{color:var(--tn-gold);}
.tn-footer .tn-foot-sep{color:var(--tn-muted);margin:0 .4rem;}

/* ---------- Mobile (the important part) ---------- */
@media (max-width:781px){
  /* tighter side gutters + compressed vertical rhythm via preset overrides */
  body{
    --wp--style--root--padding-left:1.2rem;
    --wp--style--root--padding-right:1.2rem;
    --wp--preset--spacing--70:3.75rem;
    --wp--preset--spacing--60:2.75rem;
    --wp--preset--spacing--50:2rem;
    --wp--preset--spacing--40:1.4rem;
  }

  /* Hero: tighter, logo scaled, headline reined in */
  .tn-hero-logo img{width:230px!important;}
  h1.wp-block-heading{line-height:1.08;}

  /* Section headings get a centered champagne underline accent */
  .wp-block-heading.has-text-align-center{position:relative;}

  /* Cards become a clean icon-left list — feels designed, not stacked boxes */
  .wp-block-columns.is-layout-flex{gap:.9rem!important;}
  .tn-card{padding:1.25rem 1.25rem 1.25rem 4.4rem!important;position:relative;border-radius:16px;}
  .tn-card.tn-ico::before{
    position:absolute;left:1.15rem;top:1.4rem;width:34px;height:34px;margin:0;
  }
  .tn-card h3{font-size:1.08rem;margin-top:0;}
  .tn-card p{font-size:.93rem;line-height:1.6;}
  /* connect cards: chips go full-width & tappable */
  .tn-chip{display:block;margin-top:.35rem;padding:.7em .85em;font-size:.86rem;}
  .tn-card p br{display:none;}

  /* Buttons: full-width, stacked, easy thumb targets */
  .wp-block-buttons.is-layout-flex{flex-direction:column;align-items:stretch!important;gap:.75rem!important;}
  .wp-block-buttons.is-layout-flex .wp-block-button{width:100%;}
  .wp-block-button__link{display:block;text-align:center;padding:1em 1.4em;}
}
@media (max-width:480px){
  .tn-eyebrow{font-size:.7rem;letter-spacing:.22em;}
}

/* ================================================================
   ARTISTIC LAYER — custom premium polish across the whole site
   ================================================================ */

/* Custom scrollbar */
*{scrollbar-width:thin;scrollbar-color:var(--tn-bronze) transparent;}
::-webkit-scrollbar{width:10px;height:10px;}
::-webkit-scrollbar-track{background:#0c0a08;}
::-webkit-scrollbar-thumb{background:linear-gradient(var(--tn-bronze),var(--tn-gold));border-radius:8px;border:2px solid #0c0a08;}
::-webkit-scrollbar-thumb:hover{background:var(--tn-champagne);}

/* Fine film-grain texture for a tactile, custom feel */
.wp-site-blocks::after{
  content:"";position:fixed;inset:0;z-index:1;pointer-events:none;opacity:.035;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* Section heading accent — a short champagne bar under centered H2s */
.wp-block-heading.has-text-align-center:not(h1){padding-bottom:.7rem;}
h2.wp-block-heading.has-text-align-center::after{
  content:"";display:block;width:54px;height:3px;margin:.8rem auto 0;border-radius:3px;
  background:var(--tn-grad);box-shadow:0 0 16px rgba(225,6,0,.5);
}

/* Buttons get a moving light sheen */
.wp-block-button:not(.is-style-outline) .wp-block-button__link{position:relative;overflow:hidden;isolation:isolate;}
.wp-block-button:not(.is-style-outline) .wp-block-button__link::after{
  content:"";position:absolute;inset:0;z-index:-1;transform:translateX(-120%);
  background:linear-gradient(110deg,transparent 20%,rgba(255,255,255,.55) 50%,transparent 80%);
}
.wp-block-button:not(.is-style-outline) .wp-block-button__link:hover::after{
  transform:translateX(120%);transition:transform .7s ease;
}

/* Cards: gradient top-edge that lights on hover */
.tn-card{position:relative;overflow:hidden;}
.tn-card::after{
  content:"";position:absolute;top:0;left:0;right:0;height:2px;
  background:var(--tn-grad);opacity:0;transition:opacity .3s ease;
}
.tn-card:hover::after{opacity:.9;}

/* Eyebrow gets an animated leading tick */
.tn-eyebrow::before{content:"";display:inline-block;width:18px;height:1px;vertical-align:middle;
  margin-right:.55rem;background:var(--tn-gold);opacity:.7;}

/* Channel pills (homepage teaser) */
.tn-chan-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.9rem;max-width:1180px;margin:2rem auto 0;}
.tn-chan-pill{
  display:flex;flex-direction:column;gap:.25rem;text-decoration:none;padding:1.3rem 1.2rem;border-radius:16px;
  background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.015));
  border:1px solid var(--tn-border);transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease;
}
.tn-chan-pill:hover{transform:translateY(-5px);border-color:rgba(255,255,255,.5);box-shadow:0 24px 50px -30px rgba(225,6,0,.45);}
.tn-chan-name{font-family:'Roboto Mono',ui-monospace,monospace;font-weight:700;font-size:1.25rem;
  background:var(--tn-grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;}
.tn-chan-desc{color:var(--tn-muted);font-size:.86rem;}

/* Breadcrumbs */
.tn-crumbs{max-width:1180px;margin:0 auto;padding:1.4rem 0 .2rem;}
.tn-crumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:.45rem;align-items:center;margin:0;padding:0;
  font-family:'Roboto Mono',ui-monospace,monospace;font-size:.78rem;}
.tn-crumbs a{color:var(--tn-muted);text-decoration:none;transition:color .2s ease;}
.tn-crumbs a:hover{color:var(--tn-champagne);}
.tn-crumbs .tn-crumb-sep{color:var(--tn-bronze);opacity:.6;}
.tn-crumbs [aria-current="page"]{color:var(--tn-champagne);}

/* FAQ accordion */
.tn-faq{max-width:760px;margin:0 auto;display:flex;flex-direction:column;gap:.8rem;}
.tn-faq-item{
  border:1px solid var(--tn-border);border-radius:14px;overflow:hidden;
  background:linear-gradient(180deg,rgba(255,255,255,.04),rgba(255,255,255,.012));transition:border-color .25s ease;
}
.tn-faq-item[open]{border-color:rgba(255,255,255,.4);}
.tn-faq-item summary{
  cursor:pointer;list-style:none;padding:1.1rem 1.3rem;font-family:'Space Grotesk',sans-serif;
  font-size:1.08rem;color:var(--tn-cream);display:flex;justify-content:space-between;align-items:center;gap:1rem;
}
.tn-faq-item summary::-webkit-details-marker{display:none;}
.tn-faq-item summary::after{content:"+";color:var(--tn-gold);font-size:1.4rem;line-height:1;transition:transform .25s ease;}
.tn-faq-item[open] summary::after{transform:rotate(45deg);}
.tn-faq-a{padding:0 1.3rem 1.2rem;color:var(--tn-muted);line-height:1.65;}

/* Scroll-reveal (progressive enhancement; JS adds .tn-in) */
.tn-reveal{opacity:0;transform:translateY(22px);transition:opacity .6s ease,transform .6s ease;}
.tn-reveal.tn-in{opacity:1;transform:none;}

@media (max-width:781px){
  .tn-chan-grid{grid-template-columns:repeat(2,1fr);gap:.7rem;}
  h2.wp-block-heading.has-text-align-center::after{width:44px;}
}

/* ================================================================
   ARTSY LISTINGS — channel cards + client cards
   ================================================================ */
.tn-listing{display:grid;grid-template-columns:repeat(2,1fr);gap:1.1rem;max-width:1100px;margin:0 auto;}
.tn-lcard{
  --accent:#e10600;position:relative;overflow:hidden;border-radius:20px;padding:1.7rem 1.6rem;isolation:isolate;
  background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.012));
  border:1px solid var(--tn-border);
  transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease;
}
.tn-lcard::before{ /* accent top bar */
  content:"";position:absolute;top:0;left:0;right:0;height:3px;
  background:linear-gradient(90deg,transparent,var(--accent),transparent);opacity:.85;
}
.tn-lcard::after{ /* huge ghost glyph (set per-card via .g-* class) */
  content:"";position:absolute;right:-.2em;bottom:-.35em;z-index:-1;
  font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:8rem;line-height:1;
  color:var(--accent);opacity:.07;pointer-events:none;
}
.tn-lcard.g-hash::after{content:"#";}
.tn-lcard.g-term::after{content:"›_";font-family:'Roboto Mono',ui-monospace,monospace;font-size:6rem;}
.tn-lcard:hover{transform:translateY(-6px);border-color:color-mix(in srgb,var(--accent) 55%,transparent);
  box-shadow:0 30px 60px -34px var(--accent);}
/* sci-fi corner ticks */
.tn-lcard .tn-corner{position:absolute;width:14px;height:14px;opacity:.5;}
.tn-lcard .tn-corner.tl{top:10px;left:10px;border-top:1.5px solid var(--accent);border-left:1.5px solid var(--accent);}
.tn-lcard .tn-corner.br{bottom:10px;right:10px;border-bottom:1.5px solid var(--accent);border-right:1.5px solid var(--accent);}

.tn-lcard__status{display:flex;align-items:center;gap:.5rem;font-family:'Roboto Mono',ui-monospace,monospace;
  font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;color:var(--tn-muted);margin-bottom:.7rem;}
.tn-lcard__live{width:8px;height:8px;border-radius:50%;background:var(--accent);
  box-shadow:0 0 0 0 var(--accent);animation:tn-pulse 2s infinite;}
.tn-lcard__name{font-family:'Roboto Mono',ui-monospace,monospace;font-weight:700;
  font-size:1.85rem;line-height:1;margin:0 0 .55rem;
  background:linear-gradient(120deg,var(--tn-cream),var(--accent));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;}
.tn-lcard__topic{color:var(--tn-muted);font-size:.97rem;line-height:1.55;margin:0 0 1rem;}
.tn-lcard__tags{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:1.2rem;}
.tn-lcard__tags span{font-family:'Roboto Mono',ui-monospace,monospace;font-size:.68rem;letter-spacing:.06em;
  text-transform:uppercase;color:var(--tn-champagne);padding:.28em .6em;border:1px solid var(--tn-border);border-radius:7px;
  background:rgba(255,255,255,.05);}
.tn-lcard__cta{display:inline-flex;align-items:center;gap:.5rem;text-decoration:none;
  font-family:'Roboto Mono',ui-monospace,monospace;font-weight:700;font-size:.92rem;
  color:#ffffff;background:var(--tn-gold);
  padding:.7em 1.2em;border-radius:11px;transition:transform .18s ease,box-shadow .18s ease;
  box-shadow:0 8px 26px -10px var(--accent);}
.tn-lcard__cta:hover{transform:translateY(-2px);box-shadow:0 14px 34px -10px var(--accent);}
.tn-lcard__cta.is-ghost{background:transparent;color:var(--tn-text);border:1px solid var(--tn-border);box-shadow:none;}
.tn-lcard__cta.is-ghost:hover{border-color:var(--accent);}

/* featured full-width card (e.g. CryptIRC) */
.tn-lcard--wide{grid-column:1/-1;}
.tn-lcard__ctas{display:flex;flex-wrap:wrap;gap:.7rem;}
.tn-lcard__badge{display:inline-block;font-family:'Roboto Mono',ui-monospace,monospace;font-size:.64rem;
  letter-spacing:.16em;text-transform:uppercase;color:#ffffff;background:var(--accent);
  padding:.25em .6em;border-radius:6px;margin-left:.6rem;vertical-align:middle;}

/* per-card accents */
.tn-a-gold{--accent:#e10600;}
.tn-a-champ{--accent:#e6e6ea;}
.tn-a-bronze{--accent:#a30400;}
.tn-a-cream{--accent:#ffffff;}

@media (max-width:781px){
  .tn-listing{grid-template-columns:1fr;gap:.9rem;}
  .tn-lcard{padding:1.4rem 1.3rem;}
  .tn-lcard__name{font-size:1.6rem;}
  .tn-lcard::after{font-size:6rem;}
}

/* ================================================================
   CryptIRC — featured client band + feature points
   ================================================================ */
.tn-cryptirc{
  position:relative;overflow:hidden;border-radius:24px;
  padding:clamp(2rem,5vw,3.5rem)!important;
  background:linear-gradient(180deg,rgba(255,255,255,.06),rgba(255,255,255,.015));
  border:1px solid var(--tn-border);
}
.tn-cryptirc::before{ /* accent top bar */
  content:"";position:absolute;top:0;left:0;right:0;height:3px;
  background:var(--tn-grad);opacity:.85;
}
.tn-cryptirc::after{ /* ghost glyph */
  content:"⌁";position:absolute;right:.1em;bottom:-.25em;z-index:0;pointer-events:none;
  font-family:'Roboto Mono',ui-monospace,monospace;font-weight:700;font-size:11rem;line-height:1;
  color:var(--tn-gold);opacity:.06;
}
.tn-cryptirc > *{position:relative;z-index:1;}
.tn-feat-points{display:flex;flex-wrap:wrap;justify-content:center;gap:.55rem;margin:1.4rem auto 0;max-width:680px;}
.tn-feat-points span{
  font-family:'Roboto Mono',ui-monospace,monospace;font-size:.78rem;letter-spacing:.03em;
  color:var(--tn-champagne);border:1px solid var(--tn-border);border-radius:999px;
  padding:.42em .95em;background:rgba(255,255,255,.05);
}
.tn-feat-points span::before{content:"✓ ";color:var(--tn-gold);}
@media (max-width:781px){
  .tn-cryptirc::after{font-size:7rem;}
  .tn-feat-points{gap:.4rem;}
  .tn-feat-points span{font-size:.72rem;}
}

/* ================================================================
   AUDIT FIXES — a11y focus, tap targets, tablet nav
   ================================================================ */
/* Visible keyboard focus (WCAG 2.4.7) — the browser default was ~invisible on dark bg */
:where(a,button,input,textarea,select,summary,[tabindex]):focus-visible,
.wp-block-button__link:focus-visible,.wp-element-button:focus-visible,
.tn-lcard__cta:focus-visible,.tn-chan-pill:focus-visible,.tn-chip:focus-visible{
  outline:2px solid var(--tn-gold)!important;outline-offset:3px;border-radius:4px;
}

/* Footer: bigger tap targets + real spacing between rows (was ~3px apart) */
.tn-footer .tn-foot-links{gap:.55rem .15rem;line-height:1.2;}
.tn-footer .tn-foot-links a{display:inline-block;padding:.45rem .4rem;}
.tn-footer .tn-foot-sep{align-self:center;}

/* Breadcrumb: taller tap area on the links */
.tn-crumbs a{display:inline-block;padding:.3rem 0;}

/* Tablet nav: collapse the 7-item bar to the hamburger up to 820px
   (WP's overlayMenu:mobile only collapses below 600px, leaving 600–810px wrapping) */
@media (max-width:820px){
  .tn-header .wp-block-navigation__responsive-container:not(.is-menu-open){display:none!important;}
  .tn-header .wp-block-navigation__responsive-container-open{display:flex!important;}
}

/* ---------- Global overflow safety (no horizontal scroll on any device) ---------- */
.wp-block-post-content,.entry-content{overflow-wrap:break-word;word-wrap:break-word;}
.wp-block-post-content p,.wp-block-post-content li,.wp-block-post-content h1,.wp-block-post-content h2,.wp-block-post-content h3{overflow-wrap:anywhere;}
.wp-block-columns{flex-wrap:wrap;}

/* ---------- Live stats band ---------- */
.tn-stats{max-width:1180px;margin:0 auto;}
.tn-stats-head{
  font-family:'Roboto Mono',ui-monospace,monospace;text-transform:uppercase;letter-spacing:.24em;
  font-size:.72rem;color:var(--tn-muted);text-align:center;margin-bottom:1.6rem;
  display:flex;align-items:center;justify-content:center;gap:.6rem;
}
.tn-live{width:9px;height:9px;border-radius:50%;background:var(--tn-gold);
  box-shadow:0 0 0 0 rgba(225,6,0,.7);animation:tn-pulse 2s infinite;}
@keyframes tn-pulse{0%{box-shadow:0 0 0 0 rgba(225,6,0,.6);}70%{box-shadow:0 0 0 10px rgba(225,6,0,0);}100%{box-shadow:0 0 0 0 rgba(225,6,0,0);}}
.tn-stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;}
.tn-stat{
  text-align:center;padding:1.4rem .75rem;border-radius:16px;
  background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.015));
  border:1px solid var(--tn-border);transition:transform .25s ease,border-color .25s ease;
}
.tn-stat:hover{transform:translateY(-4px);border-color:rgba(255,255,255,.45);}
.tn-stat-num{
  display:block;font-family:'Space Grotesk',sans-serif;font-weight:700;line-height:1;
  font-size:clamp(1.9rem,6vw,2.9rem);
  background:var(--tn-grad);-webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
}
.tn-stat-label{
  display:block;margin-top:.55rem;font-family:'Roboto Mono',ui-monospace,monospace;
  font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;color:var(--tn-muted);
}

/* ---------- Artistic: glow ring behind hero logo + headline shimmer ---------- */
.tn-hero-logo{position:relative;}
.tn-hero-logo::before{
  content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  width:min(420px,85vw);height:220px;z-index:-1;pointer-events:none;
  background:radial-gradient(ellipse at center,rgba(225,6,0,.22),transparent 70%);
  filter:blur(8px);
}
h1.wp-block-heading{
  background-size:200% auto;animation:tn-shimmer 8s linear infinite;
}
@keyframes tn-shimmer{0%{background-position:0% center;}100%{background-position:200% center;}}

/* thin top accent bar — small designed detail */
.wp-site-blocks::before{
  content:"";position:fixed;top:0;left:0;right:0;height:2px;z-index:99;
  background:linear-gradient(90deg,var(--tn-cream),var(--tn-gold),var(--tn-champagne),var(--tn-gold),var(--tn-cream));
  background-size:200% auto;animation:tn-shimmer 6s linear infinite;opacity:.85;
}

@media (max-width:781px){
  .tn-stats-grid{grid-template-columns:repeat(2,1fr);gap:.7rem;}
  .tn-stat{padding:1.15rem .5rem;}
}

/* ================================================================
   ART v2 — ambient motion, terminal detailing, ticker, 3D tilt
   ================================================================ */

/* Drifting aurora — the backdrop slowly breathes */
@keyframes tn-aurora{
  0%{transform:translate3d(0,0,0) scale(1);}
  50%{transform:translate3d(-3%,2%,0) scale(1.08);}
  100%{transform:translate3d(0,0,0) scale(1);}
}
body::before{animation:tn-aurora 26s ease-in-out infinite;will-change:transform;}

/* Glow ring behind the hero logo — the GRADIENT spins, the box stays put
   (a rotating square box would sweep its corners past the viewport edge). */
@property --tn-angle{syntax:'<angle>';initial-value:0deg;inherits:false;}
.tn-hero-logo::before{
  background:conic-gradient(from var(--tn-angle),
    transparent 0deg, rgba(225,6,0,.30) 60deg, transparent 130deg,
    rgba(255,255,255,.22) 220deg, transparent 300deg) !important;
  border-radius:50%;filter:blur(16px) !important;
  width:min(320px,72vw) !important;height:min(320px,72vw) !important;
  animation:tn-ring 20s linear infinite;
}
@keyframes tn-ring{to{--tn-angle:360deg;}}

/* Terminal caret on the hero eyebrow only */
.wp-block-post-content > .wp-block-group:first-child .tn-eyebrow::after{
  content:"";display:inline-block;width:.5em;height:1.05em;margin-left:.5rem;vertical-align:-2px;
  background:var(--tn-gold);animation:tn-blink 1.15s steps(1) infinite;
}
@keyframes tn-blink{0%,50%{opacity:1;}51%,100%{opacity:0;}}

/* Shimmer on the live stat numbers */
.tn-stat-num{background-size:200% auto;animation:tn-shimmer 7s linear infinite;}

/* Sci-fi corner brackets on stat tiles + channel pills */
.tn-stat,.tn-chan-pill{position:relative;}
.tn-stat::before,.tn-stat::after,
.tn-chan-pill::before,.tn-chan-pill::after{
  content:"";position:absolute;width:13px;height:13px;opacity:.4;pointer-events:none;
  transition:opacity .25s ease,width .25s ease,height .25s ease;
}
.tn-stat::before,.tn-chan-pill::before{top:9px;left:9px;border-top:1.5px solid var(--tn-gold);border-left:1.5px solid var(--tn-gold);}
.tn-stat::after,.tn-chan-pill::after{bottom:9px;right:9px;border-bottom:1.5px solid var(--tn-gold);border-right:1.5px solid var(--tn-gold);}
.tn-stat:hover::before,.tn-stat:hover::after,
.tn-chan-pill:hover::before,.tn-chan-pill:hover::after{opacity:.95;width:18px;height:18px;}

/* Live scrolling status ticker (theme footer — every page) */
.tn-ticker{position:relative;overflow:hidden;height:2.9rem;width:100%;max-width:100%;
  border-top:1px solid var(--tn-border);border-bottom:1px solid var(--tn-border);
  background:rgba(0,0,0,.28);-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);}
.tn-ticker__track{position:absolute;top:0;left:0;height:100%;display:flex;align-items:center;
  white-space:nowrap;will-change:transform;animation:tn-marquee 34s linear infinite;}
.tn-ticker:hover .tn-ticker__track{animation-play-state:paused;}
.tn-ticker__item{font-family:'Roboto Mono',ui-monospace,monospace;font-size:.78rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--tn-muted);}
.tn-ticker__item b{color:var(--tn-champagne);font-weight:700;}
/* the live count reuses .tn-stat-num (huge gradient) — shrink it to ticker size here */
.tn-ticker .tn-stat-num{font:inherit!important;letter-spacing:inherit!important;display:inline!important;line-height:inherit!important;background:none!important;-webkit-text-fill-color:currentColor!important;color:inherit!important;animation:none!important;}
.tn-ticker__dot{color:var(--tn-gold);margin:0 1.15rem;opacity:.8;}
@keyframes tn-marquee{from{transform:translateX(0);}to{transform:translateX(-50%);}}

/* tilt.js sets inline transforms; keep transitions smooth */
.tn-card,.tn-chan-pill,.tn-stat{transition:transform .18s ease,border-color .25s ease,box-shadow .25s ease;}

@media (prefers-reduced-motion:reduce){
  *{transition:none!important;scroll-behavior:auto!important;animation:none!important;}
  .tn-ticker__track{transform:none!important;}
}

/* ===== Mobile nav: fit all items on SHORT iPhones (SE/mini/Safari-with-toolbars) ===== */
/* Always allow scrolling so the last item can never be cut off */
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content{overflow-y:auto;}
@media (max-height:800px){
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content{
    min-height:100%!important;justify-content:flex-start!important;padding:4.25rem 0 2rem!important;
  }
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content{
    font-size:1.5rem!important;padding:.5rem 1.5rem!important;
  }
  .wp-block-navigation__responsive-container.is-menu-open::before{top:1.6rem!important;}
  .wp-block-navigation__responsive-container.is-menu-open::after{display:none!important;} /* drop bottom label that collided */
}

/* ===== Mobile nav: size to the VISIBLE viewport (iOS Safari's top/bottom bars eat space) =====
   Using dvh means the menu fits the area you can actually see, so no item hides behind a toolbar. */
.wp-block-navigation__responsive-container.is-menu-open{height:100dvh!important;max-height:100dvh!important;}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content{
  height:100dvh!important;min-height:0!important;justify-content:safe center!important;
  overflow-y:auto;padding:4rem 1.5rem 2.5rem!important;
}
/* drop the bottom "est. 2007" label — it overlapped the last menu items */
.wp-block-navigation__responsive-container.is-menu-open::after{display:none!important;}
