/*
Theme Name: ParaWaste Planet
Theme URI: https://parawaste.com/
Author: Nikolay Chotrov
Author URI: https://parawaste.com/
Description: An immersive, Gutenberg-first WordPress theme for ParaWaste with a scroll-reactive Three.js planet, circular-material storytelling, B2B marketplace layouts and full-width responsive design.
Version: 2.0.3
Requires at least: 6.5
Tested up to: 6.8
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: parawaste-circular
Tags: block-patterns, custom-logo, custom-menu, editor-style, full-width-template, accessibility-ready, featured-images, translation-ready
*/

:root {
  --pw-ink: #06111f;
  --pw-ink-soft: #0b1f35;
  --pw-night: #02070d;
  --pw-paper: #f3f8f7;
  --pw-white: #ffffff;
  --pw-muted: #6b7a86;
  --pw-line: rgba(6, 17, 31, .12);
  --pw-line-light: rgba(255, 255, 255, .13);
  --pw-mint: #22d6a2;
  --pw-aqua: #2ec4c7;
  --pw-blue: #4d9fe6;
  --pw-indigo: #6257e7;
  --pw-lime: #c8ff46;
  --pw-coral: #ff7d6e;
  --pw-gradient: linear-gradient(125deg, var(--pw-mint) 0%, var(--pw-blue) 50%, var(--pw-indigo) 100%);
  --pw-gradient-soft: linear-gradient(135deg, #ddfff4 0%, #e6f4ff 48%, #eee9ff 100%);
  --pw-gradient-night: radial-gradient(circle at 75% 15%, rgba(98,87,231,.27), transparent 34%), radial-gradient(circle at 16% 72%, rgba(34,214,162,.18), transparent 31%), #02070d;
  --pw-shadow: 0 32px 90px rgba(2, 7, 13, .17);
  --pw-shadow-dark: 0 28px 90px rgba(0, 0, 0, .34);
  --pw-radius-xl: clamp(28px, 4vw, 64px);
  --pw-radius-lg: clamp(22px, 2.7vw, 42px);
  --pw-radius-md: 20px;
  --pw-gutter: clamp(18px, 4.2vw, 78px);
  --pw-section: clamp(92px, 12vw, 190px);
  --pw-story-progress: 0;
  --pw-scroll: 0;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; text-size-adjust: 100%; background: var(--pw-night); }
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
.lenis.lenis-smooth [data-lenis-prevent] { overscroll-behavior: contain; }
.lenis.lenis-stopped { overflow: hidden; }

body {
  margin: 0;
  color: var(--pw-ink);
  background: var(--pw-paper);
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: clamp(16px, 1.06vw, 19px);
  line-height: 1.65;
  overflow-x: clip;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
body.menu-open { overflow: hidden; }
::selection { color: var(--pw-ink); background: var(--pw-lime); }
img, svg, video, canvas { max-width: 100%; }
img { height: auto; }
a { color: inherit; }
button, input, textarea, select { font: inherit; }

.screen-reader-text {
  position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}
.screen-reader-text:focus {
  clip: auto !important; width: auto; height: auto; left: 18px; top: 18px; z-index: 100000;
  padding: 12px 18px; color: #000; background: #fff; border-radius: 10px; box-shadow: var(--pw-shadow);
}

.pw-site { position: relative; isolation: isolate; }
.pw-page-main { position: relative; z-index: 2; min-height: 65vh; }
#pw-webgl {
  position: fixed; inset: 0; display: block; width: 100%; height: 100%; z-index: 0; pointer-events: none;
  opacity: 0; transition: opacity .5s ease; contain: strict;
}
.pw-scene-painted #pw-webgl { opacity: 1; }
.pw-scene-fallback #pw-webgl { filter: saturate(1.05) contrast(1.02); }
.pw-webgl-fade {
  position: fixed; inset: 0; z-index: 1; pointer-events: none;
  background: radial-gradient(circle at 50% 50%, transparent 10%, rgba(2,7,13,.12) 68%, rgba(2,7,13,.34) 100%);
  opacity: 0;
}
.pw-front-page .pw-webgl-fade { opacity: 1; }
.pw-cursor {
  position: fixed; width: 15px; height: 15px; margin: -7.5px 0 0 -7.5px;
  border: 1px solid rgba(255,255,255,.78); background: rgba(200,255,70,.16); border-radius: 999px;
  pointer-events: none; z-index: 9999; mix-blend-mode: difference; opacity: 0;
  transition: width .24s ease, height .24s ease, opacity .2s ease, background .24s ease;
}
.pw-cursor.is-visible { opacity: 1; }
.pw-cursor.is-link { width: 54px; height: 54px; margin: -27px 0 0 -27px; background: rgba(255,255,255,.18); }

/* Full-width Gutenberg foundation */
.pw-section,
.alignfull.pw-section,
.pw-section.wp-block-group,
.pw-section > .wp-block-group__inner-container {
  position: relative; width: 100%; max-width: none; margin: 0; padding-inline: var(--pw-gutter);
}
.pw-section { padding-block: var(--pw-section); }
.pw-section > * { max-width: none; }
.pw-section > .pw-copy,
.pw-section > .pw-lead,
.pw-split-layout__content .pw-copy,
.pw-split-layout__content .pw-lead { max-width: 50rem; }

.pw-theme-light { background: rgba(243,248,247,.98); }
.pw-theme-mint { background: var(--pw-gradient-soft); }
.pw-theme-dark { color: #f7fbff; background: var(--pw-gradient-night); }
.pw-theme-gradient { color: #fff; background: var(--pw-gradient); }

.pw-kicker {
  display: inline-flex; align-items: center; gap: 12px; margin: 0 0 24px;
  color: var(--pw-mint); font-size: .72rem; font-weight: 850; letter-spacing: .18em; line-height: 1.2; text-transform: uppercase;
}
.pw-kicker::before { content: ""; width: 34px; height: 1px; background: currentColor; }
.pw-theme-dark .pw-kicker, .pw-theme-gradient .pw-kicker { color: var(--pw-lime); }

.pw-display, .pw-heading, .entry-title {
  margin: 0; font-weight: 780; letter-spacing: -.065em; line-height: .92; text-wrap: balance;
}
.pw-display { max-width: 13ch; font-size: clamp(4.2rem, 11.4vw, 11.5rem); }
.pw-heading { max-width: 16ch; font-size: clamp(2.8rem, 6.8vw, 7.6rem); }
.pw-policy-heading { margin: 58px 0 15px; font-size: clamp(1.4rem, 2.4vw, 2.2rem); line-height: 1.12; }
.pw-copy, .pw-lead { color: var(--pw-muted); }
.pw-theme-dark .pw-copy, .pw-theme-dark .pw-lead, .pw-theme-gradient .pw-copy, .pw-theme-gradient .pw-lead { color: rgba(255,255,255,.72); }
.pw-lead { max-width: 54rem; margin: 30px 0 0; font-size: clamp(1.12rem, 1.8vw, 1.58rem); line-height: 1.55; }
.pw-copy { max-width: 47rem; margin: 25px 0 0; }
.pw-policy-copy { max-width: 66rem; color: var(--pw-muted); }

.pw-buttons { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 38px; }
.wp-block-button__link, .pw-button, button[type="submit"] {
  position: relative; display: inline-flex; align-items: center; justify-content: center; min-height: 56px;
  padding: 14px 26px; overflow: hidden; color: var(--pw-ink); background: var(--pw-lime);
  border: 1px solid var(--pw-lime); border-radius: 999px; font-size: .86rem; font-weight: 850;
  letter-spacing: .02em; text-decoration: none; cursor: pointer;
  box-shadow: 0 0 0 rgba(200,255,70,0); transition: transform .3s ease, box-shadow .3s ease, background .3s ease, color .3s ease;
}
.wp-block-button__link::after, .pw-button::after, button[type="submit"]::after {
  content: "↗"; margin-left: 11px; font-size: 1.05em; transition: transform .3s ease;
}
.wp-block-button__link:hover, .pw-button:hover, button[type="submit"]:hover {
  transform: translateY(-4px); box-shadow: 0 18px 48px rgba(200,255,70,.25);
}
.wp-block-button__link:hover::after, .pw-button:hover::after, button[type="submit"]:hover::after { transform: translate(3px,-3px); }
.is-style-outline .wp-block-button__link { color: currentColor; background: transparent; border-color: currentColor; }
.is-style-outline .wp-block-button__link:hover { color: var(--pw-ink); background: #fff; }

/* Floating navigation */
.pw-header {
  position: fixed; top: 0; left: 0; right: 0; z-index: 1000; padding: 16px var(--pw-gutter);
  transition: transform .38s ease, padding .3s ease;
}
.admin-bar .pw-header { top: 32px; }
.pw-header.is-hidden { transform: translateY(-130%); }
.pw-header__inner {
  display: flex; align-items: center; justify-content: space-between; gap: 26px; width: 100%;
  padding: 10px 12px 10px 14px; color: #fff; background: rgba(4,13,23,.62);
  border: 1px solid rgba(255,255,255,.14); border-radius: 999px; box-shadow: 0 14px 55px rgba(0,0,0,.2);
  backdrop-filter: blur(22px) saturate(150%); transition: background .3s ease, border-color .3s ease;
}
.pw-header.is-scrolled .pw-header__inner { background: rgba(4,13,23,.82); border-color: rgba(255,255,255,.2); }
.pw-brand { display: inline-flex; align-items: center; gap: 11px; color: #fff; font-size: 1rem; font-weight: 850; text-decoration: none; letter-spacing: -.03em; }
.pw-brand__mark { width: 44px; height: 44px; display: grid; place-items: center; padding: 5px; border-radius: 50%; background: rgba(255,255,255,.96); }
.pw-brand__mark img { width: 100%; height: 100%; object-fit: contain; }
.pw-brand__text small { display: block; color: rgba(255,255,255,.58); font-size: .54rem; font-weight: 700; letter-spacing: .11em; text-transform: uppercase; }
.pw-nav-wrap { display: flex; align-items: center; gap: 20px; }
.pw-nav ul { display: flex; align-items: center; gap: clamp(12px, 1.5vw, 25px); margin: 0; padding: 0; list-style: none; }
.pw-nav a { position: relative; color: rgba(255,255,255,.86); font-size: .77rem; font-weight: 730; text-decoration: none; }
.pw-nav a::after { content: ""; position: absolute; left: 0; right: 100%; bottom: -7px; height: 2px; background: var(--pw-lime); transition: right .25s ease; }
.pw-nav a:hover::after, .pw-nav .current-menu-item > a::after { right: 0; }
.pw-header__cta { min-height: 44px; padding: 9px 18px; font-size: .75rem; }
.pw-menu-toggle { display: none; width: 46px; height: 46px; border: 0; border-radius: 50%; color: var(--pw-ink); background: var(--pw-lime); cursor: pointer; }
.pw-menu-toggle span, .pw-menu-toggle::before, .pw-menu-toggle::after { content: ""; display: block; width: 20px; height: 2px; margin: 4px auto; background: currentColor; transition: .25s; }
.pw-menu-toggle[aria-expanded="true"] span { opacity: 0; }
.pw-menu-toggle[aria-expanded="true"]::before { transform: translateY(6px) rotate(45deg); }
.pw-menu-toggle[aria-expanded="true"]::after { transform: translateY(-6px) rotate(-45deg); }

/* Planet storytelling homepage */
.pw-front-page { background: var(--pw-night); }
.pw-front-page::before {
  content: ""; position: fixed; z-index: 0; pointer-events: none; width: min(46vw, 690px); aspect-ratio: 1; right: 4vw; top: 50%;
  border-radius: 50%; transform: translateY(-50%); opacity: .72; transition: opacity .45s ease;
  background:
    radial-gradient(circle at 34% 25%, rgba(255,255,255,.65), transparent 4%),
    radial-gradient(ellipse at 63% 35%, #2bbf79 0 8%, transparent 9%),
    radial-gradient(ellipse at 37% 55%, #2bbf79 0 12%, transparent 13%),
    radial-gradient(ellipse at 70% 68%, #2bbf79 0 9%, transparent 10%),
    radial-gradient(circle at 34% 30%, #42b8e8, #12618d 57%, #061d31 75%);
  box-shadow: inset -45px -35px 90px rgba(0,0,0,.55), inset 20px 15px 45px rgba(255,255,255,.18), 0 0 80px rgba(46,196,199,.22);
}
.pw-scene-painted.pw-front-page::before { opacity: 0; }
.pw-front-page .pw-page-main {
  /*
   * The fixed WebGL canvas sits below the content layer. An opaque background
   * here covered the planet as soon as the stylesheet finished loading, which
   * caused the visible one-second flash. The body already supplies the dark
   * background, so the homepage main layer must remain transparent.
   */
  background: transparent;
}
.pw-planet-story { position: relative; z-index: 3; width: 100%; color: #fff; background: transparent; }
.pw-planet-story::before {
  content: ""; position: fixed; inset: 0; z-index: -1; pointer-events: none;
  background: radial-gradient(circle at 50% 42%, rgba(54,108,155,.10), transparent 35%), linear-gradient(180deg, rgba(2,7,13,.15), rgba(2,7,13,.72));
}
.pw-planet-chapter {
  position: relative; display: flex; align-items: center; width: 100%; min-height: 105svh;
  padding: clamp(130px, 17vh, 210px) var(--pw-gutter) clamp(70px, 10vh, 120px);
}
.pw-planet-chapter:nth-child(2n) { justify-content: flex-end; }
.pw-chapter-copy { position: relative; z-index: 5; width: min(100%, 48rem); }
.pw-planet-chapter:nth-child(2n) .pw-chapter-copy { width: min(100%, 44rem); }
.pw-chapter-index { display: flex; align-items: center; gap: 14px; margin-bottom: 24px; color: var(--pw-lime); font-size: .72rem; font-weight: 850; letter-spacing: .16em; text-transform: uppercase; }
.pw-chapter-index::before { content: ""; width: 42px; height: 1px; background: currentColor; }
.pw-planet-chapter h1, .pw-planet-chapter h2 { margin: 0; font-weight: 790; letter-spacing: -.072em; line-height: .9; text-wrap: balance; }
.pw-planet-chapter h1 { max-width: 9.5ch; font-size: clamp(4.4rem, 11vw, 12rem); }
.pw-planet-chapter h2 { max-width: 11ch; font-size: clamp(3.4rem, 8.3vw, 8.8rem); }
.pw-planet-chapter p { max-width: 43rem; margin: 28px 0 0; color: rgba(255,255,255,.71); font-size: clamp(1.08rem, 1.7vw, 1.45rem); }
.pw-planet-chapter strong { color: #fff; }
.pw-planet-chapter--center { justify-content: center !important; text-align: center; }
.pw-planet-chapter--center .pw-chapter-copy { width: min(100%, 75rem) !important; }
.pw-planet-chapter--center h2, .pw-planet-chapter--center p, .pw-planet-chapter--center .pw-buttons { margin-inline: auto; justify-content: center; }
.pw-planet-chapter--center h2 { max-width: 14ch; }
.pw-planet-chapter .wp-block-buttons { margin-top: 36px; }
.pw-scroll-cue { display: flex; align-items: center; gap: 13px; margin-top: 48px; color: rgba(255,255,255,.56); font-size: .7rem; font-weight: 750; letter-spacing: .13em; text-transform: uppercase; }
.pw-scroll-cue::before { content: ""; width: 1px; height: 55px; background: linear-gradient(180deg, var(--pw-lime), transparent); animation: pw-scroll-pulse 1.7s ease-in-out infinite; }
@keyframes pw-scroll-pulse { 0%,100%{transform:scaleY(.55);transform-origin:top;opacity:.45} 50%{transform:scaleY(1);opacity:1} }

.pw-story-progress {
  position: fixed; right: clamp(14px, 2vw, 32px); top: 50%; z-index: 30; display: grid; gap: 9px;
  transform: translateY(-50%); opacity: 0; transition: opacity .3s ease;
}
.pw-story-progress.is-visible { opacity: 1; }
.pw-story-progress span { width: 5px; height: 34px; overflow: hidden; border-radius: 999px; background: rgba(255,255,255,.16); }
.pw-story-progress span::after { content: ""; display: block; width: 100%; height: 100%; background: var(--pw-lime); transform: scaleY(0); transform-origin: bottom; transition: transform .35s ease; }
.pw-story-progress span.is-active::after { transform: scaleY(1); }

.pw-material-scan {
  display: grid; gap: 10px; width: min(100%, 31rem); margin-top: 38px; padding: 18px;
  border: 1px solid rgba(255,255,255,.15); border-radius: 26px; background: rgba(4,13,23,.42); backdrop-filter: blur(15px);
}
.pw-material-scan > div { position: relative; display: grid; grid-template-columns: 1fr auto; gap: 14px; overflow: hidden; padding: 13px 15px; border-radius: 15px; background: rgba(255,255,255,.07); }
.pw-material-scan > div::before { content: ""; position: absolute; inset: 0; width: var(--w); background: linear-gradient(90deg, rgba(34,214,162,.22), rgba(98,87,231,.18)); }
.pw-material-scan span, .pw-material-scan b { position: relative; z-index: 1; }
.pw-material-scan b { color: var(--pw-lime); }

.pw-cycle-route { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 38px; }
.pw-cycle-route span { padding: 11px 16px; border: 1px solid rgba(255,255,255,.15); border-radius: 999px; background: rgba(255,255,255,.07); font-size: .82rem; font-weight: 760; backdrop-filter: blur(10px); }
.pw-cycle-route i { color: var(--pw-lime); font-style: normal; }

/* Marquee bridge */
.pw-marquee { position: relative; z-index: 4; width: 100%; overflow: hidden; padding: 22px 0; color: var(--pw-ink); background: var(--pw-lime); border-block: 1px solid rgba(6,17,31,.15); }
.pw-marquee__track { display: flex; width: max-content; animation: pw-marquee 24s linear infinite; }
.pw-marquee__track span { padding-right: 3vw; font-size: clamp(2rem, 5vw, 5rem); font-weight: 860; letter-spacing: -.05em; white-space: nowrap; }
@keyframes pw-marquee { to { transform: translateX(-50%); } }

/* Conventional page heroes */
.pw-hero { min-height: 100svh; display: flex; flex-direction: column; justify-content: flex-end; padding-top: clamp(160px, 22vh, 250px); overflow: hidden; }
.pw-hero-compact {
  min-height: 82svh; display: flex; flex-direction: column; justify-content: flex-end; overflow: hidden;
  padding-top: clamp(165px, 22vh, 245px); padding-bottom: clamp(70px, 10vh, 120px);
  background: radial-gradient(circle at 78% 18%, rgba(98,87,231,.24), transparent 34%), linear-gradient(135deg, rgba(2,7,13,.95), rgba(4,17,29,.76));
}
.pw-hero-compact::before {
  content: ""; position: absolute; width: clamp(300px, 48vw, 780px); aspect-ratio: 1; right: -10vw; top: 8%; border-radius: 50%;
  background: radial-gradient(circle at 36% 30%, rgba(255,255,255,.22), transparent 12%), radial-gradient(circle, rgba(46,196,199,.35), rgba(98,87,231,.10) 54%, transparent 70%);
  filter: blur(2px); transform: translateY(calc(var(--pw-scroll) * -80px));
}
.pw-hero-compact::after { content: ""; position: absolute; inset: auto 0 0; height: 1px; background: linear-gradient(90deg, transparent, rgba(255,255,255,.35), transparent); }
.pw-hero-compact > * { position: relative; z-index: 2; }
.pw-hero-compact .pw-display { max-width: 12ch; }

/* Reveal and word motion */
.pw-reveal { opacity: 0; transform: translateY(48px); filter: blur(10px); transition: opacity .9s cubic-bezier(.16,1,.3,1), transform .9s cubic-bezier(.16,1,.3,1), filter .9s ease; }
.pw-reveal.is-visible { opacity: 1; transform: none; filter: none; }
.pw-word { display: inline-block; opacity: 0; transform: translateY(105%) rotate(3deg); transition: opacity .75s ease, transform .9s cubic-bezier(.16,1,.3,1); transition-delay: calc(var(--i) * 42ms); }
.pw-split.is-visible .pw-word { opacity: 1; transform: none; }

/* Full-width bento cards */
.pw-card-grid { display: grid; gap: clamp(14px, 1.5vw, 24px); width: 100%; margin-top: clamp(46px, 6vw, 78px); }
.pw-grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.pw-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.pw-card {
  position: relative; min-height: clamp(280px, 32vw, 450px); padding: clamp(28px, 3vw, 48px); overflow: hidden;
  border: 1px solid var(--pw-line); border-radius: var(--pw-radius-lg); background: rgba(255,255,255,.76);
  box-shadow: 0 1px 0 rgba(255,255,255,.7) inset, var(--pw-shadow); backdrop-filter: blur(18px);
  transform-style: preserve-3d; transition: transform .45s cubic-bezier(.16,1,.3,1), border-color .35s ease, background .35s ease, color .35s ease;
}
.pw-card::before { content: ""; position: absolute; width: 260px; aspect-ratio: 1; right: -120px; bottom: -140px; border-radius: 50%; background: var(--pw-gradient); opacity: .10; filter: blur(8px); transition: .45s ease; }
.pw-card:hover { z-index: 2; color: #fff; border-color: rgba(255,255,255,.12); background: var(--pw-ink); }
.pw-card:hover::before { opacity: .45; transform: scale(1.2); }
.pw-card__icon { position: relative; z-index: 1; display: grid; place-items: center; width: 58px; height: 58px; border-radius: 18px; color: var(--pw-ink); background: var(--pw-lime); font-weight: 880; box-shadow: 0 14px 32px rgba(200,255,70,.24); }
.pw-card h3 { position: relative; z-index: 1; max-width: 15ch; margin: clamp(55px, 8vw, 108px) 0 14px; font-size: clamp(1.65rem, 2.55vw, 3.2rem); letter-spacing: -.05em; line-height: 1.02; }
.pw-card p { position: relative; z-index: 1; max-width: 34rem; margin: 0; color: var(--pw-muted); }
.pw-card:hover p { color: rgba(255,255,255,.7); }
.pw-grid-3 .pw-card:nth-child(1), .pw-grid-3 .pw-card:nth-child(5) { grid-column: span 2; }

/* Split visual sections */
.pw-split-layout { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(340px, .95fr); align-items: center; gap: clamp(40px, 7vw, 130px); width: 100%; }
.pw-split-layout__visual { min-width: 0; }
.pw-split-section:nth-of-type(even) .pw-split-layout__visual { order: -1; }

/* Process list */
.pw-step-list { display: grid; gap: 0; width: 100%; margin-top: 70px; border-top: 1px solid var(--pw-line-light); }
.pw-step { display: grid; grid-template-columns: minmax(85px, .28fr) minmax(0, 1.72fr); align-items: start; gap: 28px; padding: clamp(28px, 4vw, 54px) 0; border-bottom: 1px solid var(--pw-line-light); }
.pw-step__number { color: var(--pw-lime); font-size: clamp(1.5rem, 3.7vw, 4.6rem); font-weight: 850; letter-spacing: -.05em; line-height: .9; }
.pw-step h3 { margin: 0 0 11px; font-size: clamp(1.7rem, 3.7vw, 4.5rem); letter-spacing: -.055em; line-height: 1; }
.pw-step p { max-width: 60rem; margin: 0; color: rgba(255,255,255,.64); }

/* Stats */
.pw-stat-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 1px; width: 100%; background: rgba(255,255,255,.24); }
.pw-stat { min-height: 300px; display: flex; flex-direction: column; justify-content: flex-end; padding: clamp(26px, 3.5vw, 54px); background: rgba(14,29,50,.18); backdrop-filter: blur(15px); }
.pw-stat strong { font-size: clamp(2.2rem, 4.7vw, 6rem); letter-spacing: -.065em; line-height: .9; }
.pw-stat span { margin-top: 15px; color: rgba(255,255,255,.72); }

/* Visual widgets */
.pw-orbit-diagram { position: relative; width: min(78vw, 650px); aspect-ratio: 1; margin-inline: auto; border: 1px solid rgba(6,17,31,.12); border-radius: 50%; background: radial-gradient(circle, #fff 0 20%, transparent 21%), conic-gradient(from 40deg, rgba(34,214,162,.12), rgba(77,159,230,.18), rgba(98,87,231,.14), rgba(34,214,162,.12)); box-shadow: inset 0 0 70px rgba(77,159,230,.12); animation: pw-orbit-ring 18s linear infinite; }
.pw-orbit-diagram::before, .pw-orbit-diagram::after { content: ""; position: absolute; inset: 13%; border: 1px dashed rgba(6,17,31,.15); border-radius: 50%; }
.pw-orbit-diagram::after { inset: 28%; }
@keyframes pw-orbit-ring { to { transform: rotate(360deg); } }
.pw-orbit-diagram__core { position: absolute; inset: 34%; display: grid; place-items: center; color: #fff; background: var(--pw-gradient); border-radius: 50%; font-size: clamp(.8rem,1.7vw,1.2rem); font-weight: 850; line-height: 1.2; text-align: center; box-shadow: var(--pw-shadow); animation: pw-orbit-counter 18s linear infinite; }
@keyframes pw-orbit-counter { to { transform: rotate(-360deg); } }
.pw-orbit-diagram > span { position: absolute; left: 50%; top: 50%; padding: 9px 14px; border: 1px solid rgba(6,17,31,.10); border-radius: 999px; background: rgba(255,255,255,.9); box-shadow: var(--pw-shadow); font-size: .72rem; font-weight: 800; transform: rotate(calc(var(--i) * 60deg)) translateX(clamp(140px,23vw,270px)) rotate(calc(var(--i) * -60deg)); animation: pw-orbit-counter 18s linear infinite; }

.pw-material-chart { display: grid; grid-template-columns: minmax(230px,.9fr) minmax(220px,1.1fr); align-items: center; gap: 34px; padding: clamp(25px,4vw,52px); border: 1px solid var(--pw-line); border-radius: var(--pw-radius-xl); background: rgba(255,255,255,.78); box-shadow: var(--pw-shadow); backdrop-filter: blur(15px); }
.pw-material-chart__ring { position: relative; aspect-ratio: 1; border-radius: 50%; background: conic-gradient(var(--pw-mint) 0 56%, var(--pw-blue) 56% 76%, var(--pw-indigo) 76% 86%, #d8e2e6 86%); box-shadow: 0 25px 60px rgba(77,159,230,.18); }
.pw-material-chart__ring::after { content: "1,000 kg"; position: absolute; inset: 23%; display: grid; place-items: center; border-radius: 50%; color: var(--pw-ink); background: #fff; font-size: clamp(1.1rem,2vw,1.75rem); font-weight: 850; }
.pw-material-chart__legend { display: grid; gap: 12px; }
.pw-material-chart__legend span { display: flex; align-items: center; gap: 11px; padding: 12px 14px; border-radius: 15px; color: var(--pw-muted); background: rgba(6,17,31,.035); }
.pw-material-chart__legend i { width: 10px; height: 10px; border-radius: 50%; background: #d7e1e6; }
.pw-material-chart__legend .is-plastic { background: var(--pw-mint); }
.pw-material-chart__legend .is-glass { background: var(--pw-blue); }
.pw-material-chart__legend .is-metal { background: var(--pw-indigo); }

.pw-word-stack { display: grid; gap: 3px; font-size: clamp(3.2rem, 8vw, 9rem); font-weight: 840; letter-spacing: -.07em; line-height: .88; }
.pw-word-stack span:nth-child(1) { color: #a8b2b8; text-decoration: line-through; }
.pw-word-stack span:nth-child(2) { color: var(--pw-mint); }
.pw-word-stack span:nth-child(3) { color: var(--pw-blue); }
.pw-word-stack span:nth-child(4) { color: var(--pw-indigo); }

/* Product mockups */
.pw-dashboard-card, .pw-listing-card, .pw-capacity-meter {
  padding: clamp(25px, 3.5vw, 46px); border: 1px solid var(--pw-line); border-radius: var(--pw-radius-xl);
  background: rgba(255,255,255,.86); box-shadow: var(--pw-shadow); backdrop-filter: blur(20px);
}
.pw-dashboard-card__header, .pw-listing-card__top { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding-bottom: 18px; border-bottom: 1px solid var(--pw-line); }
.pw-dashboard-card__header b, .pw-listing-card__top b { color: var(--pw-mint); }
.pw-bars { display: grid; gap: 13px; margin: 30px 0; }
.pw-bars span { position: relative; display: flex; justify-content: space-between; overflow: hidden; padding: 13px 15px; border-radius: 14px; background: rgba(6,17,31,.05); }
.pw-bars span::before { content: ""; position: absolute; inset: 0; width: var(--w); background: linear-gradient(90deg, rgba(34,214,162,.25), rgba(98,87,231,.12)); }
.pw-bars i, .pw-bars b { position: relative; z-index: 1; font-style: normal; }
.pw-mini-metrics { display: grid; grid-template-columns: repeat(3,1fr); gap: 10px; }
.pw-mini-metrics > div { padding: 17px; border-radius: 15px; background: rgba(6,17,31,.04); }
.pw-mini-metrics strong, .pw-mini-metrics span { display: block; }
.pw-mini-metrics strong { font-size: 1.5rem; letter-spacing: -.04em; }
.pw-mini-metrics span { color: var(--pw-muted); font-size: .75rem; }

.pw-notification-stack { display: grid; gap: 12px; }
.pw-notification-stack > div { padding: 22px 24px; border: 1px solid var(--pw-line); border-radius: 18px; background: rgba(255,255,255,.88); box-shadow: var(--pw-shadow); backdrop-filter: blur(15px); }
.pw-notification-stack strong, .pw-notification-stack span, .pw-notification-stack em { display: block; }
.pw-notification-stack span { margin-top: 7px; font-size: 1.45rem; font-weight: 830; letter-spacing: -.04em; }
.pw-notification-stack em { margin-top: 4px; color: var(--pw-muted); font-style: normal; font-size: .8rem; }
.pw-notification-stack .is-highlight { color: #fff; border-color: transparent; background: var(--pw-gradient); }
.pw-notification-stack .is-highlight em { color: rgba(255,255,255,.7); }

.pw-chip-cloud { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 45px; }
.pw-chip-cloud a { padding: 12px 18px; border: 1px solid var(--pw-line); border-radius: 999px; background: rgba(255,255,255,.7); text-decoration: none; font-size: .84rem; font-weight: 760; transition: .25s; }
.pw-chip-cloud a:hover { color: #fff; background: var(--pw-ink); transform: translateY(-3px); }

.pw-listing-card h3 { margin: 28px 0; font-size: clamp(1.9rem,3vw,3.6rem); line-height: .98; letter-spacing: -.055em; }
.pw-listing-card dl { margin: 0; }
.pw-listing-card dl > div { display: flex; justify-content: space-between; gap: 20px; padding: 13px 0; border-bottom: 1px solid var(--pw-line); }
.pw-listing-card dt { color: var(--pw-muted); }
.pw-listing-card dd { margin: 0; font-weight: 760; text-align: right; }

.pw-cycle-mini { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; padding: 30px; border: 1px solid rgba(255,255,255,.2); border-radius: var(--pw-radius-xl); background: rgba(255,255,255,.055); backdrop-filter: blur(15px); }
.pw-cycle-mini span { padding: 12px 16px; border: 1px solid rgba(255,255,255,.08); border-radius: 999px; background: rgba(255,255,255,.1); font-weight: 760; }
.pw-cycle-mini strong { width: 100%; margin-top: 18px; font-size: 1.45rem; }

.pw-capacity-meter meter { width: 100%; height: 28px; margin: 22px 0; accent-color: var(--pw-mint); }
.pw-capacity-meter > div { display: flex; justify-content: space-between; font-weight: 800; }
.pw-capacity-meter b { color: var(--pw-indigo); font-size: 2rem; }
.pw-capacity-meter p { color: var(--pw-muted); }

.pw-industry-loop { position: relative; display: grid; grid-template-columns: repeat(2,1fr); gap: 14px; padding: 30px; }
.pw-industry-loop span { padding: 20px; border: 1px solid rgba(255,255,255,.15); border-radius: 18px; background: rgba(255,255,255,.06); }
.pw-industry-loop strong { grid-column: 1/-1; padding: 22px; border-radius: 18px; color: var(--pw-ink); background: var(--pw-lime); text-align: center; }
.pw-report-stack { display: grid; gap: 10px; }
.pw-report-stack div { display: grid; grid-template-columns: 105px 1fr; gap: 20px; padding: 22px; border: 1px solid rgba(255,255,255,.1); border-radius: 16px; background: rgba(255,255,255,.07); }
.pw-report-stack span { color: var(--pw-lime); font-size: .7rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }

/* People, role and resource cards */
.pw-leadership-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; width: 100%; margin-top: 54px; }
.pw-person { position: relative; min-height: 430px; padding: clamp(30px,4vw,54px); overflow: hidden; border: 1px solid var(--pw-line); border-radius: var(--pw-radius-xl); background: rgba(255,255,255,.84); box-shadow: var(--pw-shadow); }
.pw-person::after { content: ""; position: absolute; width: 310px; aspect-ratio: 1; right: -120px; bottom: -160px; border-radius: 50%; background: var(--pw-gradient); opacity: .15; }
.pw-person__avatar { position: relative; z-index: 1; width: 92px; height: 92px; display: grid; place-items: center; margin-bottom: 70px; border-radius: 50%; color: #fff; background: var(--pw-gradient); font-size: 1.55rem; font-weight: 900; box-shadow: var(--pw-shadow); }
.pw-person h3 { position: relative; z-index: 1; margin: 0; font-size: clamp(2rem,3.4vw,4rem); letter-spacing: -.055em; line-height: 1; }
.pw-person p { position: relative; z-index: 1; }
.pw-person__role { color: var(--pw-indigo) !important; font-weight: 760; }
.pw-role-grid, .pw-resource-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; width: 100%; margin-top: 52px; }
.pw-role-card, .pw-resource-card { position: relative; min-height: 340px; padding: clamp(30px,4vw,50px); overflow: hidden; border: 1px solid var(--pw-line); border-radius: var(--pw-radius-xl); background: rgba(255,255,255,.82); text-decoration: none; box-shadow: var(--pw-shadow); transition: .4s cubic-bezier(.16,1,.3,1); }
.pw-role-card::before, .pw-resource-card::before { content: "↗"; position: absolute; right: 30px; top: 25px; width: 48px; height: 48px; display: grid; place-items: center; border-radius: 50%; color: var(--pw-ink); background: var(--pw-lime); }
.pw-role-card:hover, .pw-resource-card:hover { color: #fff; background: var(--pw-ink); transform: translateY(-8px); }
.pw-role-card > span, .pw-resource-card > span { color: var(--pw-mint); font-size: .72rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.pw-role-card h3, .pw-resource-card h3 { max-width: 15ch; margin: 100px 0 12px; font-size: clamp(2rem,3vw,3.5rem); line-height: 1; letter-spacing: -.05em; }
.pw-role-card p, .pw-resource-card p { margin: 0; color: var(--pw-muted); }
.pw-role-card:hover p, .pw-resource-card:hover p { color: rgba(255,255,255,.7); }

/* Quote */
.pw-quote-section { min-height: 86svh; display: flex; align-items: center; }
.pw-big-quote { margin: 0; }
.pw-big-quote p { max-width: 18ch; margin: 0; font-size: clamp(3rem, 7.8vw, 9rem); font-weight: 790; letter-spacing: -.068em; line-height: .93; }
.pw-big-quote cite { display: block; margin-top: 30px; color: var(--pw-lime); font-style: normal; font-size: .75rem; font-weight: 820; letter-spacing: .12em; text-transform: uppercase; }

/* FAQ */
.pw-faq-item { border-top: 1px solid var(--pw-line); }
.pw-faq-item:last-child { border-bottom: 1px solid var(--pw-line); }
.pw-faq-item summary { position: relative; padding: 28px 60px 28px 0; cursor: pointer; font-size: clamp(1.2rem,2.25vw,2rem); font-weight: 790; letter-spacing: -.03em; list-style: none; }
.pw-faq-item summary::-webkit-details-marker { display: none; }
.pw-faq-item summary::after { content: "+"; position: absolute; right: 0; top: 25px; width: 34px; height: 34px; display: grid; place-items: center; border-radius: 50%; color: #fff; background: var(--pw-ink); transition: transform .25s ease; }
.pw-faq-item[open] summary::after { transform: rotate(45deg); }
.pw-faq-item > p { max-width: 57rem; padding: 0 58px 30px 0; color: var(--pw-muted); }

/* CTA */
.pw-cta { min-height: 82svh; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; overflow: hidden; }
.pw-cta::before { content: ""; position: absolute; width: 58vw; aspect-ratio: 1; left: -18vw; top: -24vw; border: 1px solid rgba(255,255,255,.18); border-radius: 50%; }
.pw-cta .pw-heading, .pw-cta .pw-lead, .pw-cta .pw-buttons { margin-inline: auto; justify-content: center; }
.pw-cta .pw-heading { max-width: 13ch; }
.pw-cta .pw-lead { max-width: 44rem; }

/* Blog and policy shell */
.pw-article-header { padding: 180px var(--pw-gutter) 85px; color: #fff; background: var(--pw-gradient-night); }
.pw-article-header > * { width: 100%; max-width: 76rem; margin-inline: 0; }
.entry-title { max-width: 13ch; font-size: clamp(3.3rem,8.5vw,9rem); }
.pw-entry-meta { margin-top: 22px; color: rgba(255,255,255,.6); }
.pw-entry-content { width: 100%; margin: 0; padding: 80px var(--pw-gutter) 140px; }
.pw-entry-content > * { max-width: 62rem; }
.pw-entry-content h2, .pw-entry-content h3 { margin-top: 2.2em; line-height: 1.05; letter-spacing: -.04em; }
.pw-entry-content a { color: var(--pw-indigo); text-decoration-thickness: 2px; text-underline-offset: 3px; }
.pw-entry-content blockquote { margin: 50px 0; padding: 30px 36px; border-left: 5px solid var(--pw-mint); background: #fff; box-shadow: var(--pw-shadow); }
.pw-post-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 20px; width: 100%; margin-top: 50px; }
.pw-post-card { overflow: hidden; border: 1px solid var(--pw-line); border-radius: var(--pw-radius-lg); background: #fff; box-shadow: var(--pw-shadow); }
.pw-post-card__image { display: block; aspect-ratio: 16/10; overflow: hidden; background: var(--pw-gradient-soft); }
.pw-post-card__image img { width: 100%; height: 100%; object-fit: cover; transition: transform .45s ease; }
.pw-post-card:hover img { transform: scale(1.05); }
.pw-post-card__content { padding: 26px; }
.pw-post-card__content h2 { margin: 0; font-size: 1.45rem; line-height: 1.1; letter-spacing: -.035em; }
.pw-post-card__content h2 a { text-decoration: none; }

/* Form */
.pw-form { display: grid; gap: 18px; width: 100%; }
.pw-form-row { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; }
.pw-form label { display: grid; gap: 8px; font-size: .8rem; font-weight: 780; }
.pw-form input, .pw-form textarea, .pw-form select { width: 100%; padding: 16px 18px; color: var(--pw-ink); background: rgba(255,255,255,.9); border: 1px solid var(--pw-line); border-radius: 15px; outline: none; transition: border .2s ease, box-shadow .2s ease; }
.pw-form input:focus, .pw-form textarea:focus, .pw-form select:focus { border-color: var(--pw-mint); box-shadow: 0 0 0 4px rgba(34,214,162,.12); }
.pw-form textarea { min-height: 170px; resize: vertical; }
.pw-form-notice { padding: 15px 18px; border-radius: 14px; background: #fff; }

/* Footer */
.pw-footer { position: relative; z-index: 4; color: #fff; background: #02070d; border-top: 1px solid rgba(255,255,255,.1); }
.pw-footer__inner { width: 100%; padding: clamp(70px,9vw,130px) var(--pw-gutter) 28px; }
.pw-footer__top { display: grid; grid-template-columns: minmax(280px,.9fr) minmax(520px,1.1fr); gap: clamp(50px,8vw,140px); }
.pw-footer__brand img { width: 74px; }
.pw-footer__brand h2 { margin: 24px 0 10px; font-size: clamp(3rem,6vw,7rem); letter-spacing: -.065em; line-height: .9; }
.pw-footer__brand p { max-width: 32rem; color: rgba(255,255,255,.58); }
.pw-footer__menus { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 30px; }
.pw-footer__menus h3 { margin: 0 0 20px; color: var(--pw-lime); font-size: .7rem; letter-spacing: .12em; text-transform: uppercase; }
.pw-footer__menus ul { margin: 0; padding: 0; list-style: none; }
.pw-footer__menus li { margin: 0 0 11px; }
.pw-footer__menus a { color: rgba(255,255,255,.72); text-decoration: none; }
.pw-footer__menus a:hover { color: #fff; }
.pw-footer__bottom { display: flex; align-items: center; justify-content: space-between; gap: 25px; margin-top: 80px; padding-top: 24px; border-top: 1px solid rgba(255,255,255,.1); color: rgba(255,255,255,.48); font-size: .76rem; }
.pw-footer__legal-list { display: flex; flex-wrap: wrap; gap: 18px; margin: 0; padding: 0; list-style: none; }
.pw-footer__legal-list a { color: inherit; text-decoration: none; }

/* WordPress utility */
.alignwide, .alignfull { max-width: none; }
.wp-block-image img { border-radius: var(--pw-radius-lg); }
.wp-block-separator { border-color: var(--pw-line); }

/* Tablet */
@media (max-width: 1100px) {
  .pw-nav { position: fixed; inset: 0; display: grid; align-content: center; padding: 110px var(--pw-gutter) 50px; background: rgba(2,7,13,.96); backdrop-filter: blur(20px); opacity: 0; visibility: hidden; transform: translateY(-15px); transition: .3s ease; }
  .pw-nav.is-open { opacity: 1; visibility: visible; transform: none; }
  .pw-nav ul { display: grid; gap: 12px; }
  .pw-nav a { font-size: clamp(2rem,7vw,4.8rem); font-weight: 790; letter-spacing: -.055em; }
  .pw-header__cta { display: none; }
  .pw-menu-toggle { position: relative; z-index: 3; display: block; }
  .pw-grid-3 { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .pw-grid-3 .pw-card:nth-child(1), .pw-grid-3 .pw-card:nth-child(5) { grid-column: auto; }
  .pw-stat-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .pw-footer__top { grid-template-columns: 1fr; }
}

/* Mobile */
@media (max-width: 760px) {
  .pw-front-page::before { width: min(78vw, 500px); right: 11vw; top: 34%; opacity: .55; }
  :root { --pw-gutter: 18px; --pw-section: 88px; }
  .admin-bar .pw-header { top: 46px; }
  .pw-header { padding: 10px; }
  .pw-header__inner { padding: 7px 8px 7px 10px; }
  .pw-brand__mark { width: 40px; height: 40px; }
  .pw-brand__text small { display: none; }
  .pw-planet-chapter { min-height: 100svh; align-items: flex-end; padding: 125px 18px 65px; }
  .pw-planet-chapter:nth-child(2n) { justify-content: flex-start; }
  .pw-chapter-copy, .pw-planet-chapter:nth-child(2n) .pw-chapter-copy { width: 100%; padding: 22px; border: 1px solid rgba(255,255,255,.12); border-radius: 28px; background: rgba(2,7,13,.46); backdrop-filter: blur(15px); }
  .pw-planet-chapter--center .pw-chapter-copy { padding: 26px 20px; }
  .pw-planet-chapter h1 { font-size: clamp(3.3rem, 16vw, 5.8rem); }
  .pw-planet-chapter h2 { font-size: clamp(2.8rem, 13.8vw, 5.2rem); }
  .pw-planet-chapter p { font-size: 1rem; }
  .pw-story-progress { display: none; }
  .pw-material-scan { padding: 10px; }
  .pw-cycle-route { gap: 7px; }
  .pw-cycle-route span { padding: 8px 11px; font-size: .7rem; }
  .pw-marquee__track span { font-size: 2.8rem; }
  .pw-display { font-size: clamp(3.4rem,16vw,6.2rem); }
  .pw-heading { font-size: clamp(2.65rem,13vw,5.2rem); }
  .pw-grid-2, .pw-grid-3, .pw-split-layout, .pw-leadership-grid, .pw-role-grid, .pw-resource-grid, .pw-post-grid, .pw-form-row { grid-template-columns: 1fr; }
  .pw-split-layout { gap: 45px; }
  .pw-split-section:nth-of-type(even) .pw-split-layout__visual { order: initial; }
  .pw-card { min-height: 310px; }
  .pw-card h3 { margin-top: 65px; }
  .pw-step { grid-template-columns: 62px 1fr; gap: 15px; }
  .pw-stat-grid { grid-template-columns: 1fr; }
  .pw-stat { min-height: 220px; }
  .pw-material-chart { grid-template-columns: 1fr; }
  .pw-orbit-diagram { width: min(88vw,460px); }
  .pw-orbit-diagram > span { transform: rotate(calc(var(--i) * 60deg)) translateX(clamp(115px,34vw,165px)) rotate(calc(var(--i) * -60deg)); font-size: .6rem; padding: 7px 10px; }
  .pw-mini-metrics { grid-template-columns: 1fr; }
  .pw-report-stack div { grid-template-columns: 1fr; gap: 6px; }
  .pw-footer__menus { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .pw-footer__bottom { align-items: flex-start; flex-direction: column; }
  .pw-footer__legal-list { gap: 10px 15px; }
  .pw-cursor { display: none; }
}

@media (max-width: 460px) {
  .pw-footer__menus { grid-template-columns: 1fr; }
  .pw-buttons { flex-direction: column; align-items: stretch; }
  .wp-block-button, .wp-block-button__link { width: 100%; }
  .pw-material-scan > div { padding: 10px; font-size: .84rem; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; }
  .pw-scene-painted #pw-webgl { opacity: .35; }
  .pw-reveal, .pw-word { opacity: 1 !important; transform: none !important; filter: none !important; }
}
