:root {
  --paper: #f4f1e8;
  --ink: #11110f;
  --green: #3e7746;
  --lavender: #c8b6e4;
  --violet: #62318a;
  --yellow: #d9ad3d;
}

* { box-sizing: border-box; }

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

html { background: var(--paper); overflow-x:hidden; overflow-x:clip; }

body {
  margin: 0;
  overflow-x: hidden;
  color: var(--ink);
  background:
    radial-gradient(circle at 48% 15%, rgba(255,255,255,.78), transparent 36rem),
    var(--paper);
  font-family: "IBM Plex Mono", ui-monospace, monospace;
  font-size: 1rem;
  line-height: 1.45;
}

a { color: inherit; }

.site-footer {
  width: min(92rem, calc(100% - 3rem));
  margin: 0 auto;
  padding: clamp(1.35rem, 2.6vw, 2.2rem) 0 1.6rem;
  border-top: 2px solid var(--green);
}

.footer-domain {
  display: block;
  margin: 0 0 clamp(1rem, 2vw, 1.6rem);
  font-family: "Public Sans", Arial, sans-serif;
  font-size: clamp(2.5rem, 6.2vw, 5.7rem);
  font-weight: 900;
  line-height: .9;
  letter-spacing: -.045em;
  text-decoration: none;
  overflow-wrap: anywhere;
}

.footer-meta {
  display: grid;
  grid-template-columns: minmax(8rem, 11rem) minmax(14rem, .9fr) minmax(20rem, 1.35fr);
  align-items: end;
  gap: clamp(1rem, 3vw, 3rem);
  font-size: .68rem;
  letter-spacing: .14em;
}

.footer-studio {
  display: inline-flex;
  width: 9rem;
}

.footer-studio img {
  display: block;
  width: 100%;
  height: auto;
}

.site-footer a {
  color: inherit;
  text-decoration: none;
  text-underline-offset: .25em;
}

.site-footer a:hover,
.site-footer a:focus-visible { text-decoration: underline; }

.footer-email {
  line-height: 1.45;
}

.footer-email span {
  font-weight: 600;
}

.footer-library { line-height: 1.5; }
.footer-library strong,
.footer-library span { display: block; }
.footer-library span { font-size: .86em; }

main {
  width: min(92rem, calc(100% - 3rem));
  margin: 0 auto;
}

.event {
  position: relative;
  min-height: 70vh;
  padding: clamp(3rem, 7vw, 7rem) 0 3rem;
}

.title-stage {
  position: relative;
  isolation: isolate;
}

.presenter {
  margin: 0 0 .65rem;
  font-size: clamp(1rem, 2vw, 1.65rem);
  letter-spacing: .06em;
}

.presenter span {
  font-weight: 400;
  font-size: .72em;
  letter-spacing: .14em;
}

.title-lockup {
  position: relative;
  isolation: isolate;
  width: min(100%, 76rem);
  aspect-ratio: 1003 / 512;
  margin: 0;
}

.title-wordmark,
.title-weave {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
}

.title-wordmark { z-index: 1; }

.pegasus-track {
  position: absolute;
  z-index: 2;
  inset: 0;
  overflow: visible;
  pointer-events: none;
}

.title-pegasus {
  position: absolute;
  top: 58%;
  left: -32%;
  display: block;
  width: clamp(9rem, 27%, 20rem);
  height: auto;
  pointer-events: none;
  will-change: left, top, transform;
  animation: title-flight 14s cubic-bezier(.45, 0, .55, 1) infinite;
}

@keyframes title-flight {
  0%   { left: -32%; top: 58%; transform: translate3d(0, 0, 0) rotate(-7deg) scale(.94); }
  18%  { left: -5%;  top: 30%; transform: translate3d(0, -2%, 0) rotate(-2deg) scale(1); }
  36%  { left: 23%;  top: 7%;  transform: translate3d(0, 1%, 0) rotate(4deg) scale(1.04); }
  53%  { left: 49%;  top: 42%; transform: translate3d(0, 0, 0) rotate(-4deg) scale(1); }
  70%  { left: 74%;  top: 60%; transform: translate3d(0, -2%, 0) rotate(-6deg) scale(.98); }
  86%  { left: 98%;  top: 25%; transform: translate3d(0, 1%, 0) rotate(2deg) scale(1.02); }
  100% { left: 124%; top: 5%;  transform: translate3d(0, 0, 0) rotate(6deg) scale(.94); }
}

.title-weave {
  z-index: 3;
  overflow: visible;
  pointer-events: none;
}

.premise {
  margin: 1.5rem 0 2rem;
  font-size: clamp(1.1rem, 2.4vw, 2rem);
  line-height: 1.25;
  letter-spacing: .14em;
}

.rule {
  height: 2px;
  background: var(--green);
}

.details {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
  gap: clamp(2rem, 6vw, 7rem);
  padding: clamp(2rem, 5vw, 4.5rem) 0;
  font-family: "Public Sans", Arial, sans-serif;
  font-size: clamp(1.75rem, 4vw, 4.25rem);
  font-weight: 700;
  line-height: 1.04;
  letter-spacing: -.025em;
}

.details p { margin: 0 0 .75em; }
.admission { align-self: end; }

.venue-note {
  max-width: 58rem;
  margin: -1.25rem 0 clamp(2rem, 4vw, 3.5rem);
  font-size: clamp(.875rem, 1.2vw, 1rem);
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: .08em;
}

.question {
  max-width: 56rem;
  margin: 2rem 0 1.2rem;
  font-weight: 600;
  font-size: clamp(1.1rem, 2vw, 1.65rem);
  letter-spacing: .08em;
}

.invitation,
.refreshments {
  margin: .25rem 0;
  font-size: clamp(1rem, 1.4vw, 1.2rem);
}

.systems-invite {
  max-width: 72rem;
  margin: 1.2rem 0 1rem;
  padding-top: 1rem;
  border-top: 1px solid rgba(17,17,15,.35);
  font-size: clamp(.78rem, 1.15vw, .95rem);
  line-height: 1.55;
  letter-spacing: .08em;
}

.systems-invite p {
  margin: 0 0 .35rem;
}

.systems-invite p:first-child {
  font-weight: 600;
}

.portal-row {
  display: grid;
  grid-template-columns: minmax(10rem, 22%) minmax(0, 1fr);
  align-items: center;
  gap: clamp(1rem, 3vw, 3rem);
  margin: 1rem 0 3rem;
}

.portal-bigfoot {
  display: block;
  width: 100%;
  max-width: 18rem;
  height: auto;
  justify-self: end;
  object-fit: contain;
}

.portal-status {
  min-width: 0;
  margin: 0;
  color: var(--ink);
  border: 2px solid var(--ink);
  background: #ece9de;
}

.form-header {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding: .75rem 1rem;
  color: #fff;
  background: var(--green);
  font-size: .76rem;
  letter-spacing: .18em;
}

.status-grid {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(15rem, 1fr);
}

.status-grid > div {
  min-height: 10rem;
  padding: clamp(1.25rem, 3vw, 2.5rem);
}

.status-grid > div + div { border-left: 1px solid var(--ink); }

.field-label {
  display: block;
  margin: 0 0 .9rem;
  font-size: .72rem;
  letter-spacing: .16em;
}

.portal-status h2 {
  margin: 0;
  font-family: "Public Sans", Arial, sans-serif;
  font-size: clamp(2rem, 5vw, 4.8rem);
  line-height: .96;
  letter-spacing: -.035em;
}

.status-stamp {
  display: inline-block;
  padding: .55rem .7rem;
  color: var(--green);
  border: 4px double var(--green);
  font-size: clamp(1.25rem, 3vw, 2.3rem);
  line-height: 1;
  letter-spacing: .08em;
  transform: rotate(-1deg);
}

.notice-copy {
  margin: 0;
  padding: 1rem clamp(1.25rem, 3vw, 2.5rem);
  border-top: 1px solid var(--ink);
  font-size: .9rem;
}

@media (max-width: 720px) {
  main,
  .site-footer { width: min(100% - 2rem, 92rem); }

  .event { padding-top: 2.6rem; }
  .title-lockup { width: 100%; }
  .title-pegasus {
    width: clamp(7rem, 36%, 10.25rem);
    animation-duration: 11s;
  }
  .premise { font-size: 1rem; }
  .details { grid-template-columns: 1fr; gap: .25rem; font-size: clamp(1.7rem, 8.4vw, 3.05rem); }
  .venue-note { margin-top: -.5rem; }
  .portal-row {
    grid-template-columns: minmax(5.75rem, 29%) minmax(0, 1fr);
    align-items: center;
    gap: .5rem;
    margin-top: 1.5rem;
  }
  .portal-bigfoot { width: 100%; }
  .form-header { flex-direction: column; gap: .35rem; }
  .status-grid { grid-template-columns: 1fr; }
  .status-grid > div { min-height: auto; }
  .status-grid > div + div { border-left: 0; border-top: 1px solid var(--ink); }
  .portal-status h2 { font-size: clamp(1.35rem, 6.4vw, 2rem); }
  .status-stamp { font-size: clamp(1rem, 5vw, 1.4rem); }
  .notice-copy { font-size: .76rem; }
  .site-footer {
    width: min(100% - 2rem, 92rem);
    padding-top: 1.2rem;
  }
  .footer-domain {
    margin-bottom: 1.1rem;
    font-size: clamp(2.25rem, 12vw, 4.5rem);
    line-height: .88;
  }
  .footer-meta {
    grid-template-columns: 1fr;
    align-items: start;
    gap: .8rem;
  }
  .footer-studio { width: 8.5rem; }
  .systems-invite { margin-top: 1rem; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; }
  .title-pegasus {
    left: 71%;
    top: 8%;
    animation: none;
    transform: rotate(-3deg);
  }
}

.portal-actions{display:flex;flex-wrap:wrap;gap:.65rem;padding:1rem clamp(1.25rem,3vw,2.5rem);border-top:1px solid var(--ink)}
.portal-actions a{display:inline-block;padding:.65rem .75rem;border:1px solid var(--ink);font-size:.68rem;font-weight:600;letter-spacing:.08em;text-decoration:none}
.portal-actions a:hover,.portal-actions a:focus-visible{background:var(--ink);color:var(--paper)}
@media(max-width:720px){.portal-actions{display:grid}.portal-actions a{text-align:center}}

/* OCT 3 — project definition / epistemic boundary */
.project-definition{max-width:none;margin:0;padding:18px clamp(1.25rem,3vw,2.5rem);border-top:1px solid currentColor;border-bottom:1px solid currentColor;font-size:clamp(.72rem,1.1vw,.9rem);line-height:1.6;letter-spacing:.04em}
.project-definition p{margin:.25rem 0 1rem}.project-definition p:last-child{margin-bottom:.25rem}
.portal-boundary{max-width:none;line-height:1.55}.portal-action-disabled{display:inline-flex;align-items:center;padding:.65rem .75rem;border:1px dashed currentColor;opacity:.58;font:600 .68rem "IBM Plex Mono",ui-monospace,monospace;letter-spacing:.08em}
@media(max-width:650px){.project-definition{margin-top:18px}.portal-action-disabled{width:100%;justify-content:center;text-align:center}}

/* 05B (2026-10-03): footer wordmark stays on one line; Bigfoot rejoins the Portal box */
.footer-domain{white-space:nowrap;overflow-wrap:normal}
.portal-row{grid-template-columns:minmax(11rem,25%) minmax(0,1fr);align-items:end;gap:0}
.portal-bigfoot{position:relative;z-index:2;max-width:21rem;width:118%;justify-self:end;margin:0 -2.4rem -.6rem 0;pointer-events:none}
.portal-status{position:relative;z-index:1}
@media(max-width:720px){
  .footer-domain{font-size:min(4.5rem,calc((100vw - 2rem) / 12.4));letter-spacing:-.045em;line-height:.95}
  .footer-studio{width:10.5rem}
  .portal-row{grid-template-columns:1fr;align-items:start;margin-top:2.5rem}
  .portal-bigfoot{width:min(64%,15.5rem);max-width:none;justify-self:start;margin:0 0 -3.15rem .4rem}
  .portal-status .form-header{padding-top:3.1rem}
}
.status-grid>div{min-width:0}
@media(min-width:721px){.status-stamp{font-size:clamp(1.1rem,2.1vw,2.3rem)}}


/* 05D (2026-10-03): restore footer Pegasus + desktop Portal spacing */
@media (min-width:721px){
  .status-grid{grid-template-columns:minmax(0,1.72fr) minmax(12.5rem,1fr)}
  .status-grid>div:first-child{padding-right:clamp(2.75rem,4.8vw,4.75rem)}
}
.footer-flight{
  position:relative;
  z-index:4;
  height:0;
  pointer-events:none;
  overflow:visible;
}
.footer-pegasus{
  position:absolute;
  top:clamp(-3.3rem,-4vw,-2.45rem);
  left:-7rem;
  display:block;
  width:clamp(4rem,7.5vw,6.5rem);
  height:auto;
  pointer-events:none;
  will-change:left,transform;
  animation:footer-pegasus-flight 23s linear 6s infinite;
}
@keyframes footer-pegasus-flight{
  0%{left:-7rem;transform:rotate(-5deg) translateY(0)}
  12%{transform:rotate(-2deg) translateY(.25rem)}
  24%{transform:rotate(2deg) translateY(-.15rem)}
  40%{left:calc(100% + 2rem);transform:rotate(4deg) translateY(.2rem)}
  100%{left:calc(100% + 2rem);transform:rotate(4deg) translateY(.2rem)}
}
@media(max-width:720px){
  .footer-pegasus{top:-2.65rem;width:clamp(4rem,16vw,5.4rem)}
}
@media(prefers-reduced-motion:reduce){
  .footer-pegasus{animation:none;left:auto;right:1.5rem;top:-2.55rem;transform:rotate(-3deg)}
}

/* 05E (2026-10-03): mobile Portal notice breathing room */
@media(max-width:720px){
  .project-definition{padding:18px 22px;margin-left:0;margin-right:0}
}
