@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Space+Grotesk:wght@400;500;600;700&display=swap');

/* Hide the browser scrollbar while preserving normal page scrolling. */
html {
  scrollbar-width: none;
  -ms-overflow-style: none;
}
html::-webkit-scrollbar,
body::-webkit-scrollbar {
  display: none;
  width: 0;
  height: 0;
}
/* Design tokens and global reset */
:root {
  --ink:#e8eef3;
  --muted:#91a0ad;
  --line:rgba(232,238,243,.14);
  --bg:#0a0e12;
  --panel:#11171d;
  --acid:#d7ff4f;
  --orange:#ff7048;
  --blue:#75c8ff;
}
* {
  box-sizing:border-box;
}
html {
  scroll-behavior:smooth;
}
/* Base page styles and loading screen */
body {
  margin:0;
  color:var(--ink);
  background:var(--bg);
  font-family:'Space Grotesk',sans-serif;
  overflow-x:hidden;
  -webkit-user-select:none;
  user-select:none;
}
.page-loader {
  position:fixed;
  z-index:100;
  inset:0;
  display:grid;
  place-items:center;
  overflow:hidden;
  background:var(--bg);
  transition:opacity .5s ease,visibility .5s ease;
}
.page-loader.is-hidden {
  visibility:hidden;
  opacity:0;
  pointer-events:none;
}
.page-loader-inner {
  display:grid;
  justify-items:center;
  gap:16px;
}
.page-loader-mark {
  width:58px;
  height:58px;
  display:grid;
  place-items:center;
  color:var(--bg);
  background:var(--acid);
  font-weight:700;
  font-size:28px;
  transform:rotate(-8deg);
  animation:loader-mark 1.2s cubic-bezier(.65,0,.35,1) infinite alternate;
}
.page-loader-text {
  color:var(--muted);
  font:11px 'DM Mono',monospace;
  letter-spacing:.18em;
}
.page-loader-line {
  width:132px;
  height:2px;
  overflow:hidden;
  background:var(--line);
}
.page-loader-line span {
  display:block;
  width:0;
  height:100%;
  background:var(--acid);
  transition:width .35s ease;
}
.page-loader-percent {
  color:var(--acid);
  font:11px 'DM Mono',monospace;
  letter-spacing:.12em;
}
body:before {
  content:'';
  position:fixed;
  inset:0;
  pointer-events:none;
  opacity:.25;
  background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);
  background-size:52px 52px;
  mask-image:linear-gradient(to bottom,black,transparent 80%);
}
a {
  color:inherit;
  text-decoration:none;
}
.wrap {
  width:min(1160px,calc(100% - 48px));
  margin:auto;
}
.mono {
  font-family:'DM Mono',monospace;
}
/* Header, navigation, and hero */
nav {
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:28px 0;
  position:relative;
  z-index:10;
}
.brand {
  display:flex;
  align-items:center;
  gap:12px;
  font-weight:700;
  letter-spacing:-.04em;
}
.brand-mark {
  width:30px;
  height:30px;
  display:grid;
  place-items:center;
  color:var(--bg);
  background:var(--acid);
  font-size:15px;
  transform:rotate(-8deg);
}
.nav-links {
  display:flex;
  gap:30px;
  color:var(--muted);
  font-size:14px;
}
.nav-links a:hover {
  color:var(--acid);
}
.nav-cta {
  border:1px solid var(--line);
  padding:10px 15px;
  font-size:13px;
}
.menu-toggle {
  display:none;
}
.hero {
  min-height:680px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:flex-start;
  padding:56px 0 90px;
  position:relative;
  overflow:hidden;
}
.hero:after {
  content:'PLAY / CREATE / REPEAT';
  position:absolute;
  right:-70px;
  top:50%;
  color:rgba(232,238,243,.08);
  font-size:clamp(45px,8vw,110px);
  font-weight:700;
  letter-spacing:-.08em;
  transform:rotate(90deg);
  pointer-events:none;
}
.hero > :not(.hero-orb) {
  position:relative;
  z-index:1;
}
.hero-orb {
  position:absolute;
  border-radius:50%;
  pointer-events:none;
  filter:blur(2px);
  opacity:.25;
}
.hero-orb-one {
  width:260px;
  height:260px;
  right:12%;
  top:16%;
  background:radial-gradient(circle at 35% 35%,var(--acid),transparent 68%);
  animation:float-orb 9s ease-in-out infinite;
}
.hero-orb-two {
  width:180px;
  height:180px;
  right:2%;
  bottom:12%;
  background:radial-gradient(circle at 50% 50%,var(--blue),transparent 68%);
  animation:float-orb 12s ease-in-out -4s infinite reverse;
}
.eyebrow {
  display:flex;
  align-items:center;
  gap:10px;
  color:var(--acid);
  font-size:12px;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.eyebrow span {
  width:28px;
  height:1px;
  background:var(--acid);
}
h1 {
  max-width:850px;
  margin:22px 0 25px;
  font-size:clamp(52px,8vw,104px);
  line-height:.92;
  letter-spacing:-.085em;
  font-weight:600;
}
h1 em,.contact h2 em {
  color:var(--acid);
  font-style:normal;
}
.hero-copy {
  max-width:500px;
  color:var(--muted);
  font-size:17px;
  line-height:1.65;
}
.hero-actions {
  display:flex;
  gap:14px;
  margin-top:34px;
}
.button {
  display:inline-flex;
  align-items:center;
  gap:12px;
  padding:15px 19px;
  background:var(--acid);
  color:var(--bg);
  font-weight:700;
  font-size:14px;
}
.button:hover {
  background:#efffa9;
}
.button.alt {
  background:transparent;
  color:var(--ink);
  border:1px solid var(--line);
}
.button.alt:hover {
  border-color:var(--acid);
  color:var(--acid);
}
.scroll-note {
  position:static;
  margin-top:42px;
  color:var(--muted);
  font-size:11px;
  letter-spacing:.1em;
}
section {
  padding:105px 0;
  border-top:1px solid var(--line);
  position:relative;
}
.section-head {
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:25px;
  margin-bottom:42px;
}
.section-kicker {
  color:var(--orange);
  font-size:12px;
  letter-spacing:.15em;
  text-transform:uppercase;
}
h2 {
  margin:12px 0 0;
  font-size:clamp(34px,5vw,60px);
  line-height:1;
  letter-spacing:-.07em;
  font-weight:600;
}
.section-note {
  max-width:280px;
  color:var(--muted);
  font-size:14px;
  line-height:1.6;
}
/* Project cards, article cards, and video cards */
.projects {
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:20px;
}
.project {
  min-height:370px;
  padding:24px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  border:1px solid var(--line);
  background:var(--panel);
  overflow:hidden;
  position:relative;
}
.project:before {
  content:'';
  position:absolute;
  width:180px;
  height:180px;
  border-radius:50%;
  right:-45px;
  top:-55px;
  background:var(--project-color,var(--blue));
  opacity:.16;
  filter:blur(3px);
}
.project:nth-child(2) {
  --project-color:var(--orange);
}
.project:nth-child(3) {
  --project-color:var(--acid);
}
.project:nth-child(4) {
  --project-color:#b18cff;
}
.project-top {
  display:flex;
  justify-content:space-between;
  color:var(--muted);
  font-size:12px;
}
.project-visual {
  margin:28px 0;
  height:105px;
  display:grid;
  place-items:center;
  position:relative;
}
.project-visual:before,.project-visual:after {
  content:'';
  position:absolute;
  border:1px solid var(--project-color,var(--blue));
  opacity:.65;
}
.project-visual:before {
  width:130px;
  height:75px;
  transform:skewY(-15deg) rotate(-5deg);
}
.project-visual:after {
  width:75px;
  height:75px;
  transform:rotate(45deg);
  background:var(--project-color,var(--blue));
  opacity:.16;
}
.project-icon {
  z-index:1;
  color:var(--project-color,var(--blue));
  font-size:30px;
}
.project h3 {
  margin:0 0 8px;
  font-size:25px;
  letter-spacing:-.05em;
}
.project p {
  margin:0;
  color:var(--muted);
  font-size:14px;
  line-height:1.55;
}
.tags {
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:20px;
}
.tag {
  padding:6px 9px;
  color:var(--muted);
  border:1px solid var(--line);
  font:11px 'DM Mono',monospace;
}
.project-link {
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-top:18px;
  padding-top:14px;
  border-top:1px solid var(--line);
  color:var(--acid);
  font-size:11px;
  letter-spacing:.08em;
}
.project-link span {
  font-size:16px;
}
.project-link:hover {
  color:#efffa9;
}
.project {
  transition:transform .35s ease, border-color .35s ease, box-shadow .35s ease;
}
.project:hover {
  transform:translateY(-8px);
  border-color:var(--project-color,var(--acid));
  box-shadow:0 18px 45px rgba(0,0,0,.3);
}
.project:hover .project-visual:before {
  animation:spin 8s linear infinite;
}
.project:hover .project-icon {
  animation:pulse 1.4s ease-in-out infinite alternate;
}
.project-visual {
  height:auto;
  aspect-ratio:16 / 9;
  margin:20px 0;
  overflow:hidden;
  background:#151e25;
}
.project-cover {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  opacity:1;
  filter:none;
  transition:transform .45s ease;
}
.project-visual:before,.project-visual:after,.project-icon {
  display:none;
}
.project:hover .project-cover {
  transform:scale(1.04);
}
.socials {
  display:flex;
  flex-wrap:wrap;
  gap:20px;
  margin-top:30px;
  color:var(--muted);
  font:13px 'DM Mono',monospace;
}
.socials a:hover,.footer-socials a:hover {
  color:var(--acid);
}
.footer-socials a,.footer-legal a {
  transition:color .2s ease;
}
/* Motion and micro-interactions */
@keyframes spin {
  to {
    transform:skewY(-15deg) rotate(355deg);
  }
}
@keyframes pulse {
  to {
    transform:scale(1.25) rotate(8deg);
  }
}
@keyframes float-orb {
  0%,100% {
    transform:translate3d(0,0,0) scale(1);
  }
  50% {
    transform:translate3d(-28px,22px,0) scale(1.12);
  }
}
@keyframes loader-mark {
  to {
    transform:rotate(8deg) scale(.88);
  }
}
.about-grid {
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:90px;
  align-items:start;
}
.about-text {
  font-size:clamp(22px,3vw,34px);
  line-height:1.2;
  letter-spacing:-.055em;
}
.about-text strong {
  color:var(--acid);
  font-weight:500;
}
.stats {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1px;
  background:var(--line);
  border:1px solid var(--line);
}
.stat {
  padding:24px;
  background:var(--bg);
}
.stat b {
  display:block;
  color:var(--acid);
  font-size:38px;
  letter-spacing:-.06em;
}
.stat span {
  color:var(--muted);
  font-size:12px;
}
.skill-list {
  margin-top:35px;
  border-top:1px solid var(--line);
}
.skill {
  display:flex;
  justify-content:space-between;
  padding:15px 0;
  border-bottom:1px solid var(--line);
  color:var(--muted);
  font-size:14px;
}
.skill b {
  color:var(--ink);
  font-weight:500;
}
.about-profile {
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(360px,.95fr);
  gap:70px;
  align-items:start;
}
.about-story {
  color:var(--muted);
  font-size:16px;
  line-height:1.75;
  text-align:justify;
  text-align-last:left;
  text-justify:inter-word;
  hyphens:auto;
  overflow-wrap:break-word;
}
.about-story p {
  margin:0 0 20px;
}
.about-story .about-text {
  margin-bottom:28px;
  color:var(--ink);
  text-align:left;
  text-align-last:left;
  hyphens:none;
}
.skills-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}
.skill-panel {
  min-height:222px;
  padding:20px;
  border:1px solid var(--line);
  background:linear-gradient(145deg,var(--panel),#0d1217);
}
.skill-panel-wide {
  grid-column:1 / -1;
  min-height:auto;
}
.skill-panel-title {
  color:var(--orange);
  font-size:10px;
  letter-spacing:.1em;
}
.skill-panel ul {
  display:grid;
  gap:10px;
  margin:20px 0 0;
  padding:0;
  list-style:none;
  color:var(--ink);
  font-size:14px;
}
.skill-panel li {
  display:flex;
  justify-content:space-between;
  gap:10px;
  padding-bottom:9px;
  border-bottom:1px solid var(--line);
}
.skill-panel li span {
  color:var(--muted);
  font:10px 'DM Mono',monospace;
  text-align:right;
}
.skill-panel .compact-list {
  grid-template-columns:repeat(2,minmax(0,1fr));
  column-gap:22px;
}
.news-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:20px;
}
.news-card {
  min-height:310px;
  padding:24px;
  display:flex;
  flex-direction:column;
  border:1px solid var(--line);
  background:linear-gradient(145deg,var(--panel),#0d1217);
  transition:transform .35s ease,border-color .35s ease;
}
.news-card:hover {
  transform:translateY(-7px);
  border-color:var(--orange);
}
.news-meta {
  display:flex;
  justify-content:space-between;
  color:var(--orange);
  font-size:11px;
  letter-spacing:.08em;
}
.news-card h3 {
  margin:42px 0 14px;
  font-size:22px;
  line-height:1.08;
  letter-spacing:-.05em;
}
.news-card p {
  margin:0;
  color:var(--muted);
  font-size:14px;
  line-height:1.6;
}
.read-more {
  display:flex;
  justify-content:space-between;
  margin-top:auto;
  padding-top:28px;
  color:var(--acid);
  font-size:11px;
  letter-spacing:.08em;
}
.read-more span {
  font-size:16px;
}
.video-grid {
  display:grid;
  grid-template-columns:1.3fr 1fr 1fr;
  gap:20px;
}
.video-grid.single-video {
  grid-template-columns:minmax(0,460px);
}
.video-grid.two-videos {
  grid-template-columns:repeat(2,minmax(0,1fr));
}
.video-card {
  min-height:100%;
  display:flex;
  flex-direction:column;
  border:1px solid var(--line);
  background:var(--panel);
  overflow:hidden;
  transition:transform .35s ease,border-color .35s ease,box-shadow .35s ease;
}
.video-card:hover {
  transform:translateY(-7px);
  border-color:var(--acid);
  box-shadow:0 18px 45px rgba(0,0,0,.3);
}
.video-thumb {
  aspect-ratio:16/9;
  position:relative;
  overflow:hidden;
  background:#19232b;
}
.video-thumb:after {
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,transparent 45%,rgba(10,14,18,.55));
}
.video-thumb img {
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition:transform .45s ease;
}
.video-card:hover .video-thumb img {
  transform:scale(1.06);
}
.play-button {
  width:48px;
  height:48px;
  display:grid;
  place-items:center;
  position:absolute;
  z-index:1;
  top:50%;
  left:50%;
  transform:translate(-50%,-50%);
  padding-left:3px;
  color:var(--bg);
  background:var(--acid);
  font-size:16px;
}
.video-copy {
  padding:21px;
  display:flex;
  flex:1;
  flex-direction:column;
}
.video-meta {
  display:flex;
  justify-content:space-between;
  gap:10px;
  color:var(--orange);
  font-size:10px;
  letter-spacing:.07em;
}
.video-card h3 {
  margin:22px 0 10px;
  font-size:22px;
  line-height:1.08;
  letter-spacing:-.05em;
}
.video-featured h3 {
  font-size:24px;
}
.video-card p {
  margin:0;
  color:var(--muted);
  font-size:14px;
  line-height:1.55;
}
.contact {
  display:grid;
  grid-template-columns:1fr auto;
  gap:30px;
  align-items:end;
  padding-bottom:120px;
}
.contact h2 {
  max-width:620px;
}
footer {
  display:flex;
  justify-content:space-between;
  padding:20px 0 28px;
  color:var(--muted);
  border-top:1px solid var(--line);
  font-size:12px;
}
.scroll-top {
  width:48px;
  height:48px;
  position:fixed;
  right:28px;
  bottom:28px;
  z-index:5;
  display:grid;
  place-items:center;
  border:1px solid var(--acid);
  color:var(--bg);
  background:var(--acid);
  font:26px/1 'DM Mono',monospace;
  cursor:pointer;
  opacity:0;
  pointer-events:none;
  transform:translateY(12px);
  transition:opacity .25s ease,transform .25s ease,background .2s ease;
}
.scroll-top.is-visible {
  opacity:1;
  pointer-events:auto;
  transform:translateY(0);
}
.scroll-top:hover {
  background:#efffa9;
  transform:translateY(-4px);
}
.reveal {
  opacity:0;
  transform:translateY(18px);
  transition:opacity .7s ease,transform .7s ease;
}
.reveal.is-visible {
  opacity:1;
  transform:none;
}
/* Accessibility and responsive layouts */
@media (prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto;
  }
  *,*:before,*:after {
    animation-duration:.01ms !important;
    transition-duration:.01ms !important;
  }
}
@media (min-width:701px) and (hover:hover) and (pointer:fine) {
  body.custom-cursor-enabled, body.custom-cursor-enabled * { cursor:none !important; }
  .custom-cursor {
    position:fixed;
    z-index:200;
    top:0;
    left:0;
    width:20px;
    height:20px;
    display:block;
    background:url('../icon/cursor-arrow-idle.png') center/contain no-repeat;
    pointer-events:none;
    transform:translate(-3px,-1px);
    filter:brightness(0) invert(1);
    transition:width .16s ease,height .16s ease,filter .16s ease;
  }
  .custom-cursor.is-active {
    width:20px;
    height:20px;
    background-image:url('../icon/cursor-arrow-hover.png');
    filter:brightness(0) invert(1) drop-shadow(0 0 7px rgba(255,255,255,.7));
  }
}
@media (max-width:700px) {
  .wrap {
    width:min(100% - 32px,1160px);
  }
  nav {
    min-height:74px;
  }
  .menu-toggle {
    width:42px;
    height:42px;
    display:grid;
    place-content:center;
    gap:5px;
    margin-left:auto;
    margin-right:10px;
    padding:0;
    border:1px solid var(--line);
    color:var(--ink);
    background:var(--panel);
    cursor:pointer;
  }
  .menu-toggle span {
    display:block;
    width:18px;
    height:1px;
    background:currentColor;
    transition:transform .25s ease,opacity .2s ease;
  }
  .menu-toggle.is-open span:nth-child(1) {
    transform:translateY(6px) rotate(45deg);
  }
  .menu-toggle.is-open span:nth-child(2) {
    opacity:0;
  }
  .menu-toggle.is-open span:nth-child(3) {
    transform:translateY(-6px) rotate(-45deg);
  }
  .nav-links {
    position:absolute;
    z-index:2;
    top:calc(100% - 2px);
    left:0;
    right:0;
    display:grid;
    gap:0;
    padding:8px;
    border:1px solid var(--line);
    background:rgba(17,23,29,.98);
    box-shadow:0 18px 40px rgba(0,0,0,.28);
    opacity:0;
    pointer-events:none;
    transform:translateY(-10px);
    transition:opacity .2s ease,transform .2s ease;
    max-height:calc(100dvh - 86px);
    overflow-y:auto;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
  }
  .nav-links.is-open {
    opacity:1;
    pointer-events:auto;
    transform:translateY(0);
  }
  .nav-links a {
    padding:14px 12px;
    border-bottom:1px solid var(--line);
  }
  .nav-links a:last-child {
    border-bottom:0;
  }
  .nav-cta {
    padding:8px 11px;
  }
  .hero {
    min-height:600px;
    padding-top:55px;
  }
  .hero:after {
    display:none;
  }
  .hero-orb-one {
    width:190px;
    height:190px;
    right:-50px;
    top:10%;
  }
  .hero-orb-two {
    width:130px;
    height:130px;
    right:20%;
    bottom:18%;
  }
  h1 {
    font-size:clamp(51px,16vw,82px);
  }
  .hero-copy {
    font-size:15px;
  }
  .hero-actions {
    flex-wrap:wrap;
  }
  .scroll-note {
    margin-top:26px;
    font-size:10px;
  }
  section {
    padding:75px 0;
  }
  .section-head {
    display:block;
  }
  .section-note {
    margin-top:18px;
  }
  .projects,.news-grid,.video-grid,.about-grid,.about-profile,.contact {
    grid-template-columns:1fr;
    gap:24px;
  }
  .project {
    min-height:340px;
  }
  .contact {
    align-items:start;
    padding-bottom:80px;
  }
  footer {
    display:block;
    line-height:2;
  }
}
@media (max-width:480px) {
  .wrap {
    width:calc(100% - 28px);
  }
  nav {
    padding:18px 0;
  }
  .brand {
    gap:8px;
    font-size:12px;
  }
  .brand-mark {
    width:26px;
    height:26px;
  }
  .nav-cta {
    font-size:10px;
    padding:8px 9px;
  }
  .hero {
    min-height:560px;
    padding:45px 0 80px;
  }
  h1 {
    margin:18px 0 20px;
    font-size:clamp(46px,15vw,68px);
  }
  .eyebrow {
    font-size:10px;
    letter-spacing:.1em;
  }
  .hero-copy {
    font-size:14px;
    line-height:1.55;
  }
  .hero-actions {
    display:grid;
    gap:10px;
  }
  .button {
    justify-content:center;
    width:100%;
  }
  section {
    padding:58px 0;
  }
  h2 {
    font-size:clamp(34px,11vw,48px);
  }
  .section-head {
    margin-bottom:28px;
  }
  .section-kicker {
    font-size:10px;
  }
  .project,.news-card {
    padding:20px;
  }
  .project h3,.news-card h3 {
    font-size:21px;
  }
  .project-visual {
    margin:22px 0;
  }
  .skills-grid {
    grid-template-columns:1fr;
  }
  .skill-panel-wide {
    grid-column:auto;
  }
  .skill-panel .compact-list {
    grid-template-columns:1fr;
  }
  .about-story {
    font-size:15px;
    line-height:1.7;
    hyphens:auto;
  }
  .about-story .about-text {
    font-size:clamp(22px,7.5vw,30px);
    line-height:1.22;
  }
  .stats {
    grid-template-columns:1fr 1fr;
  }
  .stat {
    padding:17px 14px;
  }
  .stat b {
    font-size:31px;
  }
  .stat span {
    font-size:10px;
  }
  .skill {
    gap:15px;
    font-size:12px;
  }
  .skill span {
    text-align:right;
    font-size:10px;
  }
  .socials {
    gap:14px;
    font-size:11px;
  }
  .scroll-top {
    width:44px;
    height:44px;
    right:16px;
    bottom:16px;
  }
  footer {
    font-size:9px;
  }
}
/* Article, legal, license, and privacy-request pages */
.article-page {
  max-width:800px;
  margin:0 auto;
  padding:65px 0 90px;
  position:relative;
}
.article-header {
  padding-bottom:32px;
  border-bottom:1px solid var(--line);
}
.article-header h1 {
  font-size:clamp(36px,6vw,66px);
  line-height:1.08;
  letter-spacing:-.055em;
  overflow-wrap:anywhere;
}
.article-lead {
  color:var(--muted);
  font-size:19px;
  line-height:1.65;
}
.article-meta {
  color:var(--muted);
  font-size:11px;
  line-height:1.8;
}
.article-body {
  font-size:16px;
  line-height:1.85;
  color:var(--muted);
  padding-top:24px;
}
.article-body h2 {
  color:var(--ink);
  font-size:clamp(25px,4vw,32px);
  line-height:1.2;
  letter-spacing:-.035em;
  margin:42px 0 16px;
}
.article-body strong {
  color:var(--ink);
}
.article-body a:not(.button) {
  color:var(--acid);
  text-decoration:underline;
  text-underline-offset:4px;
  overflow-wrap:anywhere;
}
.article-callout {
  margin:28px 0;
  padding:22px 24px;
  border-left:3px solid var(--acid);
  background:var(--panel);
}
.article-callout p {
  margin:8px 0 0;
}
.article-sources {
  border-top:1px solid var(--line);
  margin:40px 0 32px;
}
.article-sources ul {
  padding-left:22px;
}
.legal-page {
  max-width:800px;
  margin:0 auto;
  padding:65px 0 90px;
  position:relative;
}
.legal-header {
  padding-bottom:32px;
  border-bottom:1px solid var(--line);
}
.legal-header h1 {
  font-size:clamp(40px,6vw,68px);
  line-height:1.05;
  letter-spacing:-.06em;
}
.legal-summary {
  color:var(--muted);
  font-size:18px;
  line-height:1.65;
}
.legal-body {
  color:var(--muted);
  font-size:16px;
  line-height:1.8;
}
.legal-body h2 {
  color:var(--ink);
  font-size:clamp(25px,4vw,32px);
  line-height:1.2;
  letter-spacing:-.035em;
  margin:44px 0 14px;
}
.legal-body strong {
  color:var(--ink);
}
.legal-body a {
  display:inline-block;
  color:var(--acid);
  text-decoration:none;
  transition:color .2s ease,transform .2s ease,text-shadow .2s ease;
}
.legal-body a:hover {
  color:#efffa9;
  transform:translateX(4px);
  text-shadow:0 0 16px rgba(215,255,79,.35);
}
.legal-body ul {
  padding-left:22px;
}
.legal-body li {
  margin:9px 0;
}
.privacy-request-page {
  max-width:800px;
  margin:0 auto;
  padding:65px 0 90px;
}
.privacy-request {
  padding:42px 0 0;
  border:0;
}
.privacy-request h2 {
  color:var(--ink);
  font-size:clamp(28px,4vw,38px);
  letter-spacing:-.045em;
}
.privacy-request > p {
  max-width:620px;
  color:var(--muted);
  font-size:16px;
  line-height:1.7;
}
.privacy-request-form {
  display:grid;
  gap:12px;
  margin-top:30px;
  padding:28px;
  border:1px solid var(--line);
  background:var(--panel);
}
.privacy-request-form label {
  color:var(--ink);
  font:12px 'DM Mono',monospace;
  letter-spacing:.04em;
}
.privacy-request-form label span {
  color:var(--muted);
}
.privacy-request-form input,.privacy-request-form select,.privacy-request-form textarea {
  width:100%;
  padding:13px 14px;
  border:1px solid var(--line);
  border-radius:0;
  color:var(--ink);
  background:var(--bg);
  font:15px 'Space Grotesk',sans-serif;
  outline:none;
}
.privacy-request-form textarea {
  resize:vertical;
}
.privacy-request-form input:focus,.privacy-request-form select:focus,.privacy-request-form textarea:focus {
  border-color:var(--acid);
  box-shadow:0 0 0 3px rgba(215,255,79,.12);
}
.privacy-request-form .button {
  width:max-content;
  margin-top:8px;
  border:0;
  cursor:pointer;
}
.custom-select {
  position:relative;
}
.custom-select-trigger {
  width:100%;
  min-height:48px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:13px 14px;
  border:1px solid var(--line);
  color:var(--ink);
  background:var(--bg);
  font:15px 'Space Grotesk',sans-serif;
  text-align:left;
}
.custom-select-trigger span {
  width:9px;
  height:9px;
  flex:0 0 auto;
  border-right:2px solid var(--acid);
  border-bottom:2px solid var(--acid);
  transform:rotate(45deg) translate(-2px,-2px);
  transition:transform .2s ease;
}
.custom-select.is-open .custom-select-trigger {
  border-color:var(--acid);
  box-shadow:0 0 0 3px rgba(215,255,79,.12);
}
.custom-select.is-open .custom-select-trigger span {
  transform:rotate(225deg) translate(-2px,-2px);
}
.custom-select-options {
  position:absolute;
  z-index:30;
  top:calc(100% + 7px);
  right:0;
  left:0;
  display:grid;
  gap:1px;
  padding:6px;
  border:1px solid var(--acid);
  background:var(--panel);
  box-shadow:0 16px 34px rgba(0,0,0,.35);
  opacity:0;
  pointer-events:none;
  transform:translateY(-8px);
  transition:opacity .18s ease,transform .18s ease;
}
.custom-select.is-open .custom-select-options {
  opacity:1;
  pointer-events:auto;
  transform:translateY(0);
}
.custom-select-options button {
  width:100%;
  padding:12px;
  border:0;
  color:var(--muted);
  background:transparent;
  font:14px 'Space Grotesk',sans-serif;
  text-align:left;
}
.custom-select-options button:hover,
.custom-select-options button[aria-selected='true'] {
  color:var(--bg);
  background:var(--acid);
}
.footer-legal {
  display:flex;
  gap:10px;
}
.license-page {
  padding-bottom:90px;
}
.license-hero {
  min-height:440px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  border-top:0;
}
.license-hero h1 {
  margin:18px 0 22px;
}
.license-hero h1 em {
  color:var(--acid);
  font-style:normal;
}
.license-hero p {
  max-width:490px;
  margin:0;
  color:var(--muted);
  font-size:17px;
  line-height:1.65;
}
.certificate-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:20px;
}
.certificate-card {
  min-height:250px;
  padding:28px;
  border:1px solid var(--line);
  background:linear-gradient(145deg,var(--panel),#0d1217);
}
.certificate-empty {
  display:flex;
  align-items:center;
  gap:25px;
  border-style:dashed;
}
.certificate-icon {
  width:68px;
  height:68px;
  flex:0 0 auto;
  display:grid;
  place-items:center;
  border:1px solid var(--acid);
  color:var(--acid);
  font-size:28px;
}
.certificate-card .mono {
  color:var(--orange);
  font-size:11px;
  letter-spacing:.1em;
}
.certificate-card h3 {
  margin:12px 0 10px;
  font-size:25px;
  letter-spacing:-.05em;
}
.certificate-card p {
  margin:0;
  color:var(--muted);
  font-size:14px;
  line-height:1.6;
}
a:focus-visible {
  outline:2px solid var(--acid);
  outline-offset:5px;
}
@media (max-width:360px) {
  .nav-cta {
    font-size:0;
    min-width:38px;
    min-height:38px;
    padding:0;
    display:grid;
    place-items:center;
  }
  .nav-cta:after {
    content:'↗';
    font:16px 'DM Mono',monospace;
  }
  .video-intro {
    padding-top:46px;
  }
}
@media (max-width:700px) {
  .article-page,.legal-page,.privacy-request-page {
    padding:36px 0 60px;
  }
  .article-lead,.legal-summary {
    font-size:17px;
  }
  .legal-header {
    padding-bottom:26px;
  }
  .legal-body h2 {
    margin-top:34px;
  }
  .legal-body ul {
    padding-left:19px;
  }
  footer > span {
    display:block;
  }
  .footer-legal {
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    margin:7px 0;
    gap:7px;
  }
  .footer-legal a {
    padding:7px 0;
  }
  .footer-legal a:last-child {
    flex-basis:100%;
    line-height:1.45;
    overflow-wrap:anywhere;
  }
  .license-hero {
    min-height:350px;
    padding-top:30px;
  }
  .license-hero p {
    font-size:15px;
  }
  .certificate-grid {
    grid-template-columns:1fr;
  }
  .privacy-request {
    padding-top:28px;
  }
  .privacy-request-form {
    padding:20px;
  }
  .privacy-request-form .button {
    width:100%;
    justify-content:center;
    min-height:48px;
  }
}
@media (max-width:480px) {
  .legal-page {
    padding-top:26px;
    padding-bottom:48px;
  }
  .legal-header h1 {
    margin:14px 0 18px;
    font-size:clamp(40px,14vw,58px);
  }
  .legal-summary {
    font-size:15px;
    line-height:1.6;
  }
  .legal-body {
    font-size:15px;
    line-height:1.72;
  }
  .legal-body h2 {
    margin:30px 0 12px;
    font-size:26px;
  }
  .legal-body li {
    margin:7px 0;
  }
  .legal-page + footer {
    padding-top:16px;
  }
}
@media (max-width:700px) {
  .video-grid.two-videos {
    grid-template-columns:1fr;
  }
}
