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

:root {
  --dual-bg: #ffffff;
  --dual-bg-elev: #f4f7fa;
  --dual-fg: #0b1220;
  --dual-muted: #5d6d80;
  --dual-line: #dce5ee;
  --dual-accent: #0070b5;
  --dual-accent-fg: #ffffff;
  --dual-shadow: 0 18px 50px rgba(22, 42, 66, 0.08);
}

html[data-theme='dark'] {
  --dual-bg: #060b17;
  --dual-bg-elev: #0c1426;
  --dual-fg: #e7edf7;
  --dual-muted: #8b9bb4;
  --dual-line: #1b2942;
  --dual-accent: #47a3f5;
  --dual-accent-fg: #04101f;
  --dual-shadow: none;
}

body {
  background: var(--dual-bg) !important;
  color: var(--dual-fg) !important;
  font-family: 'Space Grotesk', ui-sans-serif, system-ui, sans-serif !important;
  -webkit-font-smoothing: antialiased;
}

body a { color: inherit; }

.masthead {
  background: color-mix(in srgb, var(--dual-bg) 92%, transparent) !important;
  border-bottom: 1px solid var(--dual-line) !important;
  backdrop-filter: blur(16px);
  position: sticky;
  top: 0;
  z-index: 50;
}

.masthead__inner-wrap { max-width: 1180px !important; padding: 0 1.5rem !important; }
.greedy-nav { background: transparent !important; min-height: 68px; align-items: center; }
.greedy-nav a {
  color: var(--dual-fg) !important;
  font-family: 'JetBrains Mono', monospace;
  font-size: .78rem !important;
  letter-spacing: .02em;
}
.greedy-nav .masthead__menu-item--lg a {
  font-family: 'Space Grotesk', sans-serif;
  font-weight: 700;
  font-size: 1rem !important;
  letter-spacing: -.02em;
}
.greedy-nav a:hover { color: var(--dual-accent) !important; }
.greedy-nav .visible-links a:before { background: var(--dual-accent) !important; height: 1px !important; }
.greedy-nav button { background: transparent !important; }
.navicon, .navicon:before, .navicon:after { background: var(--dual-fg) !important; }

.dual-theme-toggle {
  margin-left: .4rem;
  border: 1px solid var(--dual-line);
  background: var(--dual-bg-elev);
  color: var(--dual-fg);
  border-radius: 6px;
  font-family: 'JetBrains Mono', monospace;
  font-size: .72rem;
  padding: .45rem .65rem;
  cursor: pointer;
}
.dual-theme-toggle:hover { border-color: var(--dual-accent); color: var(--dual-accent); }

.dual-container { width: min(1120px, calc(100% - 3rem)); margin: 0 auto; }
.dual-hero { border-bottom: 1px solid var(--dual-line); overflow: hidden; }
.dual-hero__grid { display: grid; grid-template-columns: 1.08fr .92fr; gap: 4.5rem; align-items: center; padding: 5.5rem 0; }
.dual-kicker { display: flex; align-items: center; gap: .65rem; margin: 0 0 1.2rem; color: var(--dual-muted); font-family: 'JetBrains Mono', monospace; font-size: .72rem; letter-spacing: .16em; text-transform: uppercase; }
.dual-crosshair { width: 10px; height: 10px; display: inline-block; position: relative; color: var(--dual-accent); flex: 0 0 auto; }
.dual-crosshair:before, .dual-crosshair:after { content: ''; position: absolute; background: currentColor; }
.dual-crosshair:before { width: 1px; height: 100%; left: 50%; top: 0; }
.dual-crosshair:after { height: 1px; width: 100%; left: 0; top: 50%; }
.dual-idline { display: flex; gap: .6rem; color: var(--dual-accent); font-family: 'JetBrains Mono', monospace; font-size: .72rem; margin-bottom: .85rem; }
.dual-hero h1 { margin: 0; font-size: clamp(3.8rem, 8vw, 6.8rem); line-height: .9; letter-spacing: -.065em; font-weight: 700; color: var(--dual-fg); }
.dual-hero__headline { max-width: 720px; margin: 1.8rem 0 0; font-size: clamp(1.65rem, 3vw, 2.5rem); line-height: 1.12; letter-spacing: -.035em; font-weight: 600; color: var(--dual-fg); }
.dual-hero__intro { max-width: 700px; margin: 1.35rem 0 0; color: var(--dual-muted); font-size: 1.05rem; line-height: 1.75; }
.dual-hero__intro strong { color: var(--dual-fg); font-weight: 600; }
.dual-hero__actions { display: flex; flex-wrap: wrap; gap: .7rem; margin-top: 2rem; }
.dual-btn { display: inline-flex; align-items: center; gap: .5rem; border: 1px solid var(--dual-line); border-radius: 6px; padding: .72rem 1rem; font-family: 'JetBrains Mono', monospace; font-size: .8rem; text-decoration: none !important; color: var(--dual-fg) !important; transition: .2s ease; }
.dual-btn:hover { border-color: var(--dual-accent); color: var(--dual-accent) !important; }
.dual-btn--primary { border-color: var(--dual-accent); color: var(--dual-accent) !important; }
.dual-btn--primary:hover { background: var(--dual-accent); color: var(--dual-accent-fg) !important; }
.dual-status { margin-top: 2rem; padding-top: 1.25rem; border-top: 1px solid var(--dual-line); display: grid; grid-template-columns: auto auto 1fr; align-items: center; gap: .7rem; font-family: 'JetBrains Mono', monospace; font-size: .72rem; }
.dual-status__dot { width: 8px; height: 8px; border-radius: 50%; background: var(--dual-accent); box-shadow: 0 0 0 5px color-mix(in srgb, var(--dual-accent) 14%, transparent); }
.dual-status__label { color: var(--dual-muted); letter-spacing: .12em; }
.dual-status__value { color: var(--dual-fg); }

.dual-hero__visual { min-width: 0; }
.dual-terminal { border: 1px solid var(--dual-line); border-radius: 9px; background: var(--dual-bg-elev); box-shadow: var(--dual-shadow); overflow: hidden; position: relative; }
.dual-terminal:after { content: ''; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(120deg, transparent 0 48%, color-mix(in srgb, var(--dual-accent) 5%, transparent) 49% 51%, transparent 52%); }
.dual-terminal__bar { display: flex; justify-content: space-between; gap: 1rem; border-bottom: 1px solid var(--dual-line); padding: .75rem .9rem; color: var(--dual-muted); font-family: 'JetBrains Mono', monospace; font-size: .65rem; letter-spacing: .08em; text-transform: uppercase; }
.dual-terminal__body { display: grid; grid-template-columns: minmax(0, 1fr) 132px; gap: 1rem; padding: 1rem; }
.dual-portrait-frame { aspect-ratio: 4/4.65; border: 1px solid var(--dual-line); position: relative; overflow: hidden; background: var(--dual-bg); }
.dual-portrait-frame img { width: 100%; height: 100%; object-fit: cover; display: block; filter: saturate(.88) contrast(1.03); }
.dual-corner { position: absolute; width: 16px; height: 16px; border-color: var(--dual-accent); border-style: solid; }
.dual-corner--tl { left: 8px; top: 8px; border-width: 1px 0 0 1px; }
.dual-corner--tr { right: 8px; top: 8px; border-width: 1px 1px 0 0; }
.dual-corner--bl { left: 8px; bottom: 8px; border-width: 0 0 1px 1px; }
.dual-corner--br { right: 8px; bottom: 8px; border-width: 0 1px 1px 0; }
.dual-terminal__readout { display: flex; flex-direction: column; justify-content: flex-end; gap: .75rem; color: var(--dual-muted); font-family: 'JetBrains Mono', monospace; font-size: .66rem; text-transform: uppercase; }
.dual-terminal__readout span:not(.dual-terminal__cursor):before { content: '+ '; color: var(--dual-accent); }
.dual-terminal__cursor { color: var(--dual-accent); animation: dual-blink 1.1s steps(1) infinite; }
.dual-hero__caption { margin: 1rem 0 0 auto; max-width: 520px; color: var(--dual-muted); font-size: .88rem; line-height: 1.65; text-align: right; }
@keyframes dual-blink { 50% { opacity: 0; } }

.dual-section { padding: 5rem 0; }
.dual-section--ruled { border-top: 1px solid var(--dual-line); }
.dual-section-heading { margin-bottom: 2rem; }
.dual-section-heading--row { display: flex; align-items: end; justify-content: space-between; gap: 2rem; }
.dual-section-heading h2 { margin: 0; max-width: 760px; font-size: clamp(2rem, 4vw, 3.2rem); line-height: 1.05; letter-spacing: -.04em; color: var(--dual-fg); }
.dual-card-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.dual-card { min-height: 320px; padding: 1.5rem; border: 1px solid var(--dual-line); border-radius: 8px; background: var(--dual-bg-elev); position: relative; overflow: hidden; transition: .25s ease; }
.dual-card:hover { border-color: var(--dual-accent); transform: translateY(-3px); }
.dual-card__index { color: var(--dual-accent); font-family: 'JetBrains Mono', monospace; font-size: .7rem; }
.dual-card h3 { margin: 7.3rem 0 .65rem; font-size: 1.2rem; letter-spacing: -.02em; color: var(--dual-fg); }
.dual-card p { color: var(--dual-muted); font-size: .9rem; line-height: 1.65; }
.dual-card__meta { position: absolute; left: 1.5rem; right: 1.5rem; bottom: 1.35rem; padding-top: .8rem; border-top: 1px solid var(--dual-line); color: var(--dual-muted); font-family: 'JetBrains Mono', monospace; font-size: .63rem; }
.dual-orbit, .dual-rings, .dual-network { position: absolute; right: 1.4rem; top: 1.4rem; width: 92px; height: 92px; opacity: .9; }
.dual-orbit span { position: absolute; inset: 16px; border: 1px solid color-mix(in srgb, var(--dual-accent) 65%, transparent); border-radius: 50%; }
.dual-orbit span:nth-child(2) { inset: 7px 24px; transform: rotate(56deg); }
.dual-orbit span:nth-child(3) { inset: 25px 5px; transform: rotate(-38deg); }
.dual-rings span { position: absolute; border: 1px solid var(--dual-accent); border-radius: 50%; }
.dual-rings span:first-child { inset: 9px; }
.dual-rings span:last-child { inset: 25px; border-style: dashed; }
.dual-network:before, .dual-network:after { content: ''; position: absolute; inset: 20px 8px; border-top: 1px solid var(--dual-accent); transform: rotate(28deg); transform-origin: center; }
.dual-network:after { transform: rotate(-32deg); }
.dual-network i { position: absolute; width: 7px; height: 7px; border: 1px solid var(--dual-accent); border-radius: 50%; background: var(--dual-bg-elev); }
.dual-network i:nth-child(1) { left: 6px; top: 44px; }.dual-network i:nth-child(2) { right: 7px; top: 20px; }.dual-network i:nth-child(3) { right: 14px; bottom: 15px; }.dual-network i:nth-child(4) { left: 38px; top: 12px; }.dual-network i:nth-child(5) { left: 42px; bottom: 10px; }

.dual-link-arrow { color: var(--dual-accent) !important; font-family: 'JetBrains Mono', monospace; font-size: .78rem; text-decoration: none !important; white-space: nowrap; }
.dual-signal-list { border-top: 1px solid var(--dual-line); border-bottom: 1px solid var(--dual-line); }
.dual-signal { display: grid; grid-template-columns: 72px 94px 1fr auto; align-items: center; gap: 1rem; padding: 1.15rem .1rem; border-bottom: 1px solid var(--dual-line); text-decoration: none !important; }
.dual-signal:last-child { border-bottom: 0; }
.dual-signal:hover .dual-signal__title, .dual-signal:hover .dual-signal__arrow { color: var(--dual-accent); }
.dual-signal__year { font-family: 'JetBrains Mono', monospace; color: var(--dual-muted); font-size: .76rem; }
.dual-badge { width: max-content; border: 1px solid color-mix(in srgb, var(--dual-accent) 45%, transparent); border-radius: 999px; padding: .22rem .5rem; background: color-mix(in srgb, var(--dual-accent) 8%, transparent); color: var(--dual-accent); font-family: 'JetBrains Mono', monospace; font-size: .62rem; }
.dual-signal__title { color: var(--dual-fg); font-weight: 500; line-height: 1.4; transition: color .2s ease; }
.dual-signal__arrow { color: var(--dual-accent); font-family: 'JetBrains Mono', monospace; transition: transform .2s ease; }
.dual-signal:hover .dual-signal__arrow { transform: translateX(4px); }

.dual-about__grid { display: grid; grid-template-columns: minmax(0, 1fr) 330px; gap: 3rem; align-items: start; }
.dual-prose { max-width: 720px; color: var(--dual-muted); font-size: 1rem; line-height: 1.8; }
.dual-prose p { margin: 0 0 1.2rem; }
.dual-prose a { color: var(--dual-accent) !important; }
.dual-contact-card { border: 1px solid var(--dual-line); border-radius: 8px; padding: 1.3rem; background: var(--dual-bg-elev); display: flex; flex-direction: column; gap: .85rem; }
.dual-contact-card__label { margin: 0 0 .3rem !important; color: var(--dual-muted); font-family: 'JetBrains Mono', monospace; font-size: .66rem; letter-spacing: .12em; }
.dual-contact-card a { color: var(--dual-fg) !important; font-size: .86rem; text-decoration: none !important; padding-bottom: .8rem; border-bottom: 1px solid var(--dual-line); overflow-wrap: anywhere; }
.dual-contact-card a:hover { color: var(--dual-accent) !important; }
.dual-contact-card__location { margin: .25rem 0 0 !important; color: var(--dual-muted); font-family: 'JetBrains Mono', monospace; font-size: .7rem; line-height: 1.6; }

.page__footer { margin-top: 0 !important; background: var(--dual-bg-elev) !important; color: var(--dual-muted) !important; border-top: 1px solid var(--dual-line); }
.page__footer a { color: var(--dual-fg) !important; }

body:not(.dual-home) #main, #main:not(.dual-home) { color: var(--dual-fg); }
.page__title, .archive__item-title, .page__content h1, .page__content h2, .page__content h3 { color: var(--dual-fg) !important; }
.page__content, .page__content p, .page__content li { color: var(--dual-fg); }
.page__content a { color: var(--dual-accent) !important; }
.sidebar, .author__content, .author__urls-wrapper { color: var(--dual-fg); }
.author__urls { background: var(--dual-bg) !important; border-color: var(--dual-line) !important; }

@media (max-width: 900px) {
  .dual-hero__grid { grid-template-columns: 1fr; gap: 3rem; padding: 4rem 0; }
  .dual-card-grid { grid-template-columns: 1fr; }
  .dual-card { min-height: 260px; }
  .dual-card h3 { margin-top: 5.8rem; }
  .dual-about__grid { grid-template-columns: 1fr; }
  .dual-contact-card { max-width: 520px; }
}

@media (max-width: 640px) {
  .dual-container { width: min(100% - 2rem, 1120px); }
  .dual-hero__grid { padding: 3rem 0; }
  .dual-hero h1 { font-size: 3.8rem; }
  .dual-terminal__body { grid-template-columns: 1fr; }
  .dual-terminal__readout { display: grid; grid-template-columns: 1fr 1fr; }
  .dual-hero__caption { text-align: left; }
  .dual-section { padding: 3.5rem 0; }
  .dual-section-heading--row { align-items: flex-start; flex-direction: column; gap: 1rem; }
  .dual-signal { grid-template-columns: 62px 1fr auto; gap: .7rem; }
  .dual-badge { grid-column: 2; grid-row: 1; }
  .dual-signal__title { grid-column: 1 / 4; grid-row: 2; }
  .dual-signal__arrow { grid-column: 3; grid-row: 1; }
  .dual-status { grid-template-columns: auto 1fr; }
  .dual-status__value { grid-column: 2; }
  .dual-theme-toggle { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}
