@font-face {
  font-family: 'InputMonoCondensedRegular';
  src: url('../../assets/fonts/InputMonoCondensedRegular.ttf') format('truetype');
  font-weight: normal;
  font-style: normal;
}

:root {
  /* Backgrounds */
  --bg: #000000;
  --bg-soft: #0b0c10;
  --bg-glow: rgba(96, 145, 255, 0.055);

  /* Main text */
  --text: #d7d9de;
  --text-strong: #ffffff;
  --muted: #767982;

  /* Structural elements */
  --border: #24262d;
  --border-mid: #3a3d47;
  --dots: #464a55;
  --tree: #c1c4cb;

  /* Logo */
  --logo: #FF8EB2;

  /* Electric blue */
  --cyan: #6f9eff;
  --cyan-soft: #9abbff;
  --blue: #5f8ff5;

  /* Mint green */
  --green: #7eddb0;

  /* Raspberry pink */
  --violet: #F08FB3;
  --amber: #E982A8;
  --orange: #D9759B;
  --red: #FF6F9F;

  /* Interactive states */
  --selection-bg: rgba(111, 158, 255, 0.25);
  --target-cyan-bg: rgba(111, 158, 255, 0.09);
  --target-amber-bg: rgba(240, 143, 179, 0.09);

  /* Layout / typography */
  --content-width: 1040px;
  --mono: "InputMonoCondensedRegular", "SFMono-Regular", "SF Mono", "IBM Plex Mono", "Menlo", "Monaco", "Cascadia Mono", "Roboto Mono", "Courier New", monospace;
}

* { box-sizing: border-box; }
html { background: var(--bg); color-scheme: dark; scroll-behavior: smooth; }
body {
  margin: 0; min-width: 320px;
  background: radial-gradient(circle at 50% -20%, var(--bg-glow), transparent 42rem), var(--bg);
  color: var(--text); font-family: var(--mono); font-size: 16px; line-height: 1.58;
  font-variant-ligatures: none; -webkit-font-smoothing: antialiased;
}
::selection { background: var(--selection-bg); color: var(--text-strong); }

.terminal { width: min(calc(100% - 36px), var(--content-width)); margin-inline: auto; padding: 52px 0 96px; }
.login,.output,.output-block,.ls-output,.ls-list,.tree,.ascii-logo { color: var(--text); }
.muted { color: var(--muted); }
.command-line { margin: 1.25rem 0 .38rem; white-space: pre-wrap; overflow-wrap: anywhere; }
.prompt { white-space: nowrap; }
.prompt-user { color: var(--green); }
.prompt-at { color: var(--muted); }
.prompt-host { color: var(--cyan); }
.prompt-path { color: var(--blue); }
.prompt-symbol { color: var(--muted); }
.command { color: var(--text-strong); }
.option { color: var(--violet); }

.multiline-command { display: grid; grid-template-columns: max-content 1fr; column-gap: .65ch; align-items: baseline; }
.multiline-command .command-indent { grid-column: 2; color: var(--text-strong); padding-left: 2ch; }
.multiline-command > .command { grid-column: 2; }
.output-block { margin: .15rem 0 .9rem; }
.status-line,.runtime-line { display: grid; grid-template-columns: max-content minmax(2ch, 1fr) max-content; align-items: baseline; width: min(100%, 57ch); column-gap: .35ch; }
.status-line > :first-child,.runtime-line > :first-child,.status-line > :last-child,.runtime-line > :last-child { white-space: nowrap; }
.dots { min-width: 2ch; overflow: hidden; white-space: nowrap; }
.dots::before { content: "................................................................................................"; color: var(--dots); }
.status { font-weight: 650; }
.status-ok,.success-text,.status-ready { color: var(--green); }
.error-text,.critical { color: var(--red); }
.warning { color: var(--amber); }
.runtime,.ping-time { color: var(--cyan-soft); }
.brew { color: var(--amber); }

.manpage { margin: .45rem 0 1.75rem; max-width: 64ch; }
.man-header { display: grid; grid-template-columns: 1fr auto 1fr; gap: 1.5ch; color: var(--text-strong); margin-bottom: .35rem; }
.man-header span:last-child { text-align: right; }
.man-body { margin: 0; }
.man-body dt { margin-top: .42rem; color: var(--amber); font-weight: 700; }
.man-body dd { margin: 0 0 0 4ch; }
.man-gap { display: inline-block; margin-left: 5ch; }

.ascii-logo,.tree,.ls-list { margin: .6rem 0 1rem; padding: 0; background: transparent; border: 0; font: inherit; line-height: 1.42; white-space: pre; overflow-x: auto; scrollbar-width: thin; }
.ascii-logo { color: var(--logo); font-weight: 650; font-size: clamp(11px, 1.55vw, 16px); }
.tree { color: var(--tree); }
.tree::first-line { color: var(--cyan-soft); }

.day { margin-top: 1.5rem; scroll-margin-top: 2rem; }
.day-stamp { position: relative; margin: .45rem 0 1.35rem; padding: .25rem 3.1rem .35rem 1.05rem; border-left: 2px solid var(--amber); }
.day-date { color: var(--amber); font-size: 1.18rem; font-weight: 700; letter-spacing: .01em; }
.day-subtitle { color: var(--muted); margin-top: .05rem; }
.day-toggle { position: absolute; right: 0; top: .2rem; min-width: 2.5rem; min-height: 2.2rem; padding: .1rem .35rem; border: 0; background: transparent; color: var(--muted); font: inherit; cursor: pointer; }
.day-toggle:hover,.day-toggle:focus-visible { color: var(--cyan-soft); outline: 1px solid var(--border-mid); outline-offset: 2px; }
.day.is-collapsed > *:not(.day-stamp) { display: none; }

.ls-list { color: var(--text); }
.ls-list .time { color: var(--amber); }
.event-block,.keynote,.session { margin: .45rem 0 1.25rem; }
.event-heading { margin-bottom: .28rem; color: var(--text-strong); font-weight: 650; }
.label { color: var(--cyan); font-weight: 750; }
.event-title { color: var(--text-strong); }
.event-description { max-width: 78ch; color: var(--text); }
.meta-line { margin-top: .18rem; color: var(--muted); }
.meta-key { color: var(--blue); }
.range { width: min(100%, 61ch); display: grid; grid-template-columns: max-content 1fr max-content; align-items: center; gap: .8ch; margin: .18rem 0 .36rem; }
.time { color: var(--amber); font-variant-numeric: tabular-nums; white-space: nowrap; }
.range-line { height: 1px; background: linear-gradient(90deg, var(--border), var(--border-mid), var(--border)); }
.terminal-rule { height: 1px; width: min(100%, 61ch); background: var(--border); margin: .25rem 0 .5rem; }
.talk { margin: .55rem 0 .7rem; max-width: 82ch; }
.talk-head { display: flex; flex-wrap: wrap; align-items: baseline; column-gap: 1.15rem; }
.speaker { color: var(--green); font-weight: 650; }
.talk-title { color: var(--text); margin-top: .05rem; }
.keynote-speaker { margin-top: .45rem; }
.keynote-title { max-width: 78ch; color: var(--text-strong); }
.keynote .event-heading,.closing .event-heading { margin-bottom: .2rem; }
.git-status { max-width: 78ch; }
.git-branch { color: var(--cyan-soft); }
.git-indent { padding-left: 8ch; }
.infinity-time { color: var(--amber); font-size: 1.03rem; margin: .22rem 0; }
.info-line { display: flex; flex-wrap: wrap; gap: 1.1rem; }
.cursor { display: inline-block; color: var(--cyan); font-weight: 700; margin-top: .3rem; }

/* Navigation */
.tree a,.ls-link,.command-nav,.live-status a,.search-result,.shell-response a { color: inherit; text-decoration: none; border-bottom: 1px solid transparent; transition: color .15s ease, border-color .15s ease; }
.tree a:hover,.tree a:focus-visible,.ls-link:hover,.ls-link:focus-visible,.command-nav:hover,.command-nav:focus-visible,.live-status a:hover,.live-status a:focus-visible,.shell-response a:hover,.shell-response a:focus-visible { color: var(--cyan-soft); border-bottom-color: currentColor; outline: none; }
.command-nav { color: var(--text-strong); }
.command-line[id],.day[id],.talk[id],.keynote[id],.event-block[id],#program-tree,#program-tools,#interactive-shell { scroll-margin-top: 28px; }
.command-line[id]:target,.talk[id]:target,.keynote[id]:target,.event-block[id]:target { margin-left: -.65rem; padding-left: .5rem; border-left: 2px solid var(--cyan); background: linear-gradient(90deg, var(--target-cyan-bg), transparent 72%); }
.day[id]:target > .day-stamp { background: linear-gradient(90deg, var(--target-amber-bg), transparent 72%); }

/* Live NOW / NEXT */
.live-badge { margin-left: auto; white-space: nowrap; font-weight: 750; letter-spacing: .02em; }
.now-badge { color: var(--green); }
.next-badge { color: var(--cyan-soft); }
.talk.is-now,.keynote.is-now,.event-block.is-now { margin-left: -.8rem; padding-left: .65rem; border-left: 2px solid var(--green); background: linear-gradient(90deg, var(--target-cyan-bg), transparent 66%); }
.talk.is-next,.keynote.is-next,.event-block.is-next { margin-left: -.8rem; padding-left: .65rem; border-left: 1px solid var(--cyan); }
.event-heading { display: flex; flex-wrap: wrap; gap: .45rem; align-items: baseline; }

/* Interactive tools */
.program-tools { margin: 1.2rem 0 2.2rem; padding: .9rem 0 1rem; border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); }
.live-status { margin-bottom: .85rem; line-height: 1.5; }
.search-line,.shell-line { display: flex; flex-wrap: wrap; align-items: baseline; gap: .55ch; }
.terminal-input { min-width: 15ch; flex: 1 1 20rem; max-width: 40rem; border: 0; border-bottom: 1px solid var(--border-mid); border-radius: 0; padding: .15rem .25rem; background: transparent; color: var(--text-strong); font: inherit; font-size: 16px; line-height: inherit; outline: none; caret-color: var(--cyan-soft); }
.terminal-input:focus { border-bottom-color: var(--cyan); background: var(--target-cyan-bg); }
.terminal-input::placeholder { color: var(--muted); opacity: .8; }
.search-results { display: none; margin-top: .7rem; max-width: 82ch; }
.search-results.has-results { display: block; }
.search-count { margin-bottom: .35rem; }
.search-result { display: grid; grid-template-columns: minmax(9.5rem, max-content) 1fr; column-gap: 1rem; row-gap: .05rem; padding: .38rem .35rem; border-bottom: 0; }
.search-result:hover,.search-result:focus-visible { background: var(--target-cyan-bg); color: var(--text-strong); outline: none; }
.search-meta { color: var(--amber); white-space: nowrap; }
.search-primary { color: var(--green); font-weight: 650; }
.search-secondary { grid-column: 2; color: var(--text); }

/* Interactive terminal */
.interactive-shell { margin: 2rem 0 1.5rem; padding-top: 1rem; border-top: 1px solid var(--border); }
.shell-hint { margin-bottom: .65rem; }
.shell-history { margin: .65rem 0; }
.shell-response { padding-left: 2ch; max-width: 82ch; }
.shell-list { color: var(--cyan-soft); }
.shell-form { margin-top: .45rem; }
.shell-input { flex-basis: 14rem; }

@media (max-width: 700px) {
  body { font-size: 13.5px; line-height: 1.56; }
  .terminal { width: min(calc(100% - 28px), var(--content-width)); padding-top: 28px; padding-bottom: 64px; }
  .man-header { grid-template-columns: 1fr 1fr; }
  .man-header span:nth-child(2) { display: none; }
  .man-body dd { margin-left: 2ch; }
  .man-gap { margin-left: 2ch; }
  .desktop-break { display: none; }
  .multiline-command { grid-template-columns: 1fr; }
  .multiline-command .prompt,.multiline-command > .command,.multiline-command .command-indent { grid-column: 1; }
  .multiline-command > .command { margin-top: .1rem; }
  .multiline-command .command-indent { padding-left: 2ch; }
  .status-line,.runtime-line { width: 100%; max-width: 57ch; }
  .status-line .dots,.runtime-line .dots { min-width: .8ch; }
  .day-date { font-size: 1.05rem; }
  .talk-head { column-gap: .8rem; }
  .terminal-input { font-size: 16px; width: 100%; flex-basis: 100%; margin-top: .15rem; }
  .search-result { grid-template-columns: 1fr; row-gap: 0; }
  .search-secondary { grid-column: 1; }
  .search-meta { white-space: normal; }
  .live-badge { margin-left: 0; }
}

@media (max-width: 430px) {
  .ascii-logo { font-size: 8.2px; }
  .git-indent { padding-left: 2ch; }
  .range { gap: .45ch; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  * { transition: none !important; }
}
