:root {
  --do-shell-bg: #000;
  --do-shell-fg: #fff;
  --do-shell-muted: rgba(255, 255, 255, .58);
  --do-shell-line: rgba(255, 255, 255, .22);
  --do-shell-accent: #e11a91;
  --do-z-backdrop: 500;
  --do-z-dialog: 600;
  scrollbar-color: rgba(225, 26, 145, .72) #050505;
  scrollbar-width: thin;
}

* {
  scrollbar-color: rgba(225, 26, 145, .72) #050505;
  scrollbar-width: thin;
}

*::-webkit-scrollbar { width: 10px; height: 10px; }
*::-webkit-scrollbar-track { background: #050505; }
*::-webkit-scrollbar-thumb { background: rgba(225, 26, 145, .72); border: 2px solid #050505; }
*::-webkit-scrollbar-thumb:hover { background: #e11a91; }

do-site-header,
do-site-footer,
do-section-index,
do-grant-contact-dialog { display: contents; }

do-page-transition#route-curtain {
  position: fixed;
  inset: 0;
  z-index: 99999;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 1rem;
  background: #000;
  pointer-events: none;
  will-change: transform;
}

do-page-transition#route-curtain > img {
  width: min(240px, 46vw);
  height: auto;
  filter: drop-shadow(0 0 20px rgba(220, 30, 140, .34));
}

do-page-transition#route-curtain > span {
  color: rgba(255, 255, 255, .64);
  font: 400 .75rem/1.4 "JetBrains Mono", monospace;
  letter-spacing: .28em;
  text-align: center;
  text-transform: uppercase;
}

.do-site-footer {
  position: relative;
  z-index: 6;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 2rem;
  width: 100%;
  box-sizing: border-box;
  padding: 2rem clamp(1.25rem, 3.2vw, 3.5rem);
  border-top: 1px solid var(--do-shell-line);
  color: var(--do-shell-muted);
  background: var(--do-shell-bg);
  font: 400 .68rem/1.6 "JetBrains Mono", monospace;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.do-site-footer > span:first-child { display: grid; gap: .25rem; color: var(--do-shell-fg); }
.do-site-footer small { color: var(--do-shell-muted); font: inherit; }
.do-site-footer__links,
.footer__links { display: flex; flex-wrap: wrap; gap: .7rem 1.35rem; }
.do-site-footer a,
.do-site-footer__links a,
.footer__links a { color: inherit; text-decoration: none; }
.do-site-footer a:hover,
.do-site-footer__links a:hover,
.footer__links a:hover { color: var(--do-shell-accent); }

.detail-footer .do-site-footer__links { display: inline-flex; margin-top: .5rem; }
.bandi-footer .do-site-footer__links { display: inline-flex; margin-top: .35rem; }
.bandi-footer .do-site-footer__links a { color: inherit; }

.do-placeholder-header { position: relative; z-index: 5; }

html.do-dialog-open { overflow: hidden; }

.do-grant-dialog {
  width: min(760px, calc(100vw - 2rem));
  max-width: none;
  max-height: min(820px, calc(100dvh - 2rem));
  box-sizing: border-box;
  margin: auto;
  padding: 0;
  overflow: auto;
  border: 1px solid rgba(255, 255, 255, .28);
  border-radius: 0;
  color: var(--do-shell-fg);
  background: #050505;
  box-shadow: 0 28px 100px rgba(0, 0, 0, .74), 0 0 70px rgba(225, 26, 145, .12);
  isolation: isolate;
  z-index: var(--do-z-dialog);
}

.do-grant-dialog::backdrop {
  background: rgba(0, 0, 0, .78);
  backdrop-filter: blur(10px);
  z-index: var(--do-z-backdrop);
}

.do-grant-dialog__form {
  display: grid;
  gap: 1.25rem;
  padding: clamp(1.5rem, 4vw, 3.25rem);
}

.do-grant-dialog__close {
  position: absolute;
  top: 1rem;
  right: 1rem;
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 1px solid var(--do-shell-line);
  color: var(--do-shell-fg);
  background: #050505;
  font: 300 1.8rem/1 "Inter Tight", sans-serif;
  cursor: pointer;
}

.do-grant-dialog__close:hover { color: var(--do-shell-accent); border-color: var(--do-shell-accent); }
.do-grant-dialog__heading { display: grid; gap: .55rem; padding-right: 3.5rem; }
.do-grant-dialog__eyebrow {
  color: var(--do-shell-accent);
  font: 500 .67rem/1.3 "JetBrains Mono", monospace;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.do-grant-dialog__heading h2 {
  max-width: 12ch;
  margin: 0;
  font: 800 clamp(2.25rem, 6vw, 4.6rem)/.86 "Inter Tight", sans-serif;
  letter-spacing: -.055em;
}

.do-grant-dialog__heading p {
  max-width: 62ch;
  margin: .35rem 0 0;
  color: rgba(255, 255, 255, .7);
  font: 400 1rem/1.45 "Inter Tight", sans-serif;
}

.do-grant-dialog__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.do-grant-dialog__grid .do-grant-dialog__field:last-child { grid-column: 1 / -1; }
.do-grant-dialog__field { display: grid; gap: .45rem; }
.do-grant-dialog__field > span {
  color: rgba(255, 255, 255, .7);
  font: 500 .65rem/1.3 "JetBrains Mono", monospace;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.do-grant-dialog :where(input[type="text"], input[type="email"], textarea) {
  width: 100%;
  box-sizing: border-box;
  min-height: 50px;
  padding: .8rem .9rem;
  border: 1px solid rgba(255, 255, 255, .28);
  border-radius: 0;
  color: var(--do-shell-fg);
  background: #090909;
  font: 400 1rem/1.35 "Inter Tight", sans-serif;
}

.do-grant-dialog textarea { min-height: 126px; resize: none; }
.do-grant-dialog :where(input, textarea)::placeholder { color: rgba(255, 255, 255, .35); }
.do-grant-dialog :where(input, textarea):focus { border-color: var(--do-shell-accent); }
.do-grant-dialog :where(input, textarea)[aria-invalid="true"] { border-color: #ff6a8c; }
.do-grant-dialog__error { color: #ff89a3; font: 400 .72rem/1.35 "JetBrains Mono", monospace; }
.do-grant-dialog__error[hidden] { display: none; }

.do-grant-dialog__consent {
  display: grid;
  grid-template-columns: 20px minmax(0, 1fr);
  gap: .7rem;
  align-items: start;
  color: rgba(255, 255, 255, .62);
  font: 400 .73rem/1.5 "JetBrains Mono", monospace;
}

.do-grant-dialog__consent input { width: 18px; height: 18px; margin: .05rem 0 0; accent-color: var(--do-shell-accent); }
.do-grant-dialog__consent a { color: var(--do-shell-fg); }
.do-grant-dialog__consent .do-grant-dialog__error { grid-column: 2; }
.do-grant-dialog__trap { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.do-grant-dialog__status {
  min-height: 1.2em;
  margin: 0;
  color: var(--do-shell-muted);
  font: 400 .72rem/1.45 "JetBrains Mono", monospace;
}
.do-grant-dialog__status.is-success { color: #70e0ad; }
.do-grant-dialog__status.is-error { color: #ff89a3; }

.do-grant-dialog__actions { display: flex; justify-content: flex-end; gap: .75rem; }
.do-grant-dialog__actions button {
  min-height: 52px;
  padding: .85rem 1.15rem;
  border: 1px solid rgba(255, 255, 255, .3);
  border-radius: 0;
  color: var(--do-shell-fg);
  background: transparent;
  font: 500 .68rem/1 "JetBrains Mono", monospace;
  letter-spacing: .1em;
  text-transform: uppercase;
  cursor: pointer;
}
.do-grant-dialog__actions button:hover { border-color: var(--do-shell-accent); }
.do-grant-dialog__actions button:disabled { cursor: wait; opacity: .66; }
.do-grant-dialog__actions .do-grant-dialog__submit {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 2rem;
  min-width: 230px;
  border-color: var(--do-shell-accent);
  background: var(--do-shell-accent);
}
.do-grant-dialog__actions .do-grant-dialog__submit:hover { color: #000; background: #fff; border-color: #fff; }
.do-grant-dialog__submit i { font-style: normal; }

:where(a, button, input, select, textarea, summary):focus-visible {
  outline: 2px solid var(--do-shell-accent);
  outline-offset: 4px;
}

@media (max-width: 720px) {
  do-page-transition#route-curtain > img { width: min(190px, 52vw); }
  do-page-transition#route-curtain > span { max-width: 82vw; font-size: .625rem; letter-spacing: .2em; }
  .do-site-footer { align-items: flex-start; flex-direction: column; gap: 1rem; padding-block: 1.5rem; }
  .do-grant-dialog { width: calc(100vw - 1rem); max-height: calc(100dvh - 1rem); }
  .do-grant-dialog__form { gap: 1rem; padding: 1.35rem 1rem 1rem; }
  .do-grant-dialog__heading { padding-right: 2.8rem; }
  .do-grant-dialog__heading h2 { font-size: clamp(2.15rem, 12vw, 3.25rem); }
  .do-grant-dialog__grid { grid-template-columns: 1fr; }
  .do-grant-dialog__grid .do-grant-dialog__field:last-child { grid-column: auto; }
  .do-grant-dialog__actions { flex-direction: column-reverse; }
  .do-grant-dialog__actions button,
  .do-grant-dialog__actions .do-grant-dialog__submit { width: 100%; min-width: 0; }
}

@media (prefers-reduced-motion: reduce) {
  do-page-transition#route-curtain { will-change: auto; }
  .do-grant-dialog, .do-grant-dialog::backdrop { animation: none; transition: none; }
}

@media (forced-colors: active) {
  :root, * { scrollbar-color: auto; }
  *::-webkit-scrollbar-thumb { background: ButtonText; border-color: Canvas; }
}
