  :root{--blue:#0000ff;--paper:#f0e7d5;--red:#ff0005}
  *{box-sizing:border-box}
  html,body{min-height:100%;margin:0;background:var(--blue)}
  body{color:var(--paper);font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased}
  .poster{min-height:760px;min-height:max(760px,100svh);display:grid;grid-template-rows:auto minmax(350px,1fr) auto auto;gap:16px;padding:36px clamp(24px,5.5vw,88px) 24px;padding-top:max(36px,env(safe-area-inset-top));padding-bottom:max(24px,env(safe-area-inset-bottom));height:100svh}
  .masthead{display:flex;justify-content:space-between;align-items:flex-start;gap:28px}
  h1{font-size:clamp(20px,1.6vw,26px);font-weight:600;line-height:1.2;letter-spacing:.25em;margin:0 0 18px}
  .brief,.location,.when{font-size:14px;line-height:1.5;letter-spacing:.2em;text-transform:uppercase}
  .brief{margin:0 0 10px}
  .location{margin:0}
  .location strong{font-weight:700}
  .when{text-align:right;flex:none;margin:4px 0 0}
  .when time{display:block}
  .event-meta{display:flex;flex-direction:column;align-items:flex-end;gap:6px}
  .info-button,.info-close{display:grid;place-items:center;width:44px;height:44px;padding:0;border:0;background:transparent;color:var(--paper);cursor:pointer;touch-action:manipulation}
  .info-button svg{width:22px;height:22px}
  .info-button:focus-visible,.info-close:focus-visible{outline:2px solid var(--paper);outline-offset:2px}
  @media (hover:hover) and (pointer:fine){.info-button:hover,.info-close:hover{background:#f0e7d518}}
  .event-information{width:min(460px,calc(100% - 32px));max-height:calc(100svh - 32px);margin:auto;padding:28px;border:1px solid var(--paper);background:var(--blue);color:var(--paper);overflow:auto;overscroll-behavior:contain}
  .event-information::backdrop{background:rgb(0 0 60 / .5)}
  .information-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}
  .information-header h2{margin:0;font-size:18px;letter-spacing:.16em;font-weight:600;text-transform:uppercase}
  .info-close{flex:none;margin:-10px -10px -10px 0}
  .info-close svg{width:20px;height:20px}
  .information-intro{font-size:16px;line-height:1.55;margin:0 0 24px}
  .information-details{margin:0}
  .information-details div{padding:14px 0;border-top:1px solid #f0e7d54d}
  .information-details dt{font-size:11px;letter-spacing:.16em;text-transform:uppercase;margin-bottom:6px}
  .information-details dd{margin:0;font-size:16px;line-height:1.5}
  body:has(.event-information[open]){overflow:hidden}
  /* The original Illustrator paths keep their proportions. Text is independent
     of the drawing scale, so the poster remains legible on a browser viewport. */
  .scene{container-type:size;display:grid;place-items:center;min-height:350px}
  .elevation{position:relative;aspect-ratio:600/965;width:min(62.176cqh,calc(100cqw - 200px));margin:0;container-type:inline-size}
  .architecture{display:block;width:100%;height:auto;overflow:visible;fill:none;stroke:var(--paper);stroke-linecap:square}
  .floor{position:absolute;right:calc(100% + 28px);transform:translateY(-50%);white-space:nowrap;font-size:13px;line-height:1.3;letter-spacing:.2em;font-weight:500}
  .penthouse{top:23.04%}.third{top:39.33%}.second{top:55.76%}.first{top:73.71%}.ground{top:90.99%}
  .spoils{position:absolute;right:12.7%;bottom:72%;margin:0;color:var(--red);font-size:clamp(13px,4.2cqw,23px);line-height:1;letter-spacing:-.045em;text-align:right;font-weight:700}
  .target{position:absolute;left:63.8%;bottom:72%;color:var(--red);font-size:clamp(13px,4.2cqw,23px);line-height:1;font-weight:700}
  .action{display:flex;justify-content:center}
  .apply{display:inline-flex;align-items:center;justify-content:center;min-height:56px;padding:8px 12px;color:var(--paper);font-size:clamp(36px,3.4vw,54px);font-weight:700;line-height:1;letter-spacing:-.035em;text-decoration:none;white-space:nowrap;touch-action:manipulation;-webkit-tap-highlight-color:#f0e7d530}
  /* Two restrained signals draw attention, then settle. The link's hit area
     and position stay fixed throughout. */
  .apply span{animation:signal 2.4s linear 2}
  @keyframes signal{0%,72%,92%,100%{opacity:1}80%,84%{opacity:.65}}
  .apply:focus-visible{outline:2px solid var(--paper);outline-offset:4px}
  .apply:focus-visible span,.apply:active span{animation:none}
  @media (hover:hover) and (pointer:fine){.apply:hover span{animation:none;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:.15em}}
  .credits{display:flex;justify-content:space-between;gap:24px;font-size:12px;line-height:1.5;letter-spacing:.2em;text-transform:uppercase}
  .credit{margin:0}
  .credit:last-child{text-align:right}
  .credit::after{content:"";display:block;width:110px;height:10px;margin-top:16px;background:linear-gradient(var(--paper),var(--paper)) left top/100% 2px no-repeat,linear-gradient(var(--paper),var(--paper)) left bottom/60% 2px no-repeat}
  .credit:last-child::after{width:76px;margin-left:auto;background-position:right top,right bottom}
  @media (max-width:700px){
    .poster{height:auto;min-height:100svh;grid-template-rows:auto minmax(380px,1fr) auto auto;gap:16px;padding:24px 20px;padding-top:max(24px,env(safe-area-inset-top));padding-bottom:max(20px,env(safe-area-inset-bottom))}
    .masthead{display:grid;grid-template-columns:1fr;gap:14px}
    h1{font-size:20px;letter-spacing:.19em;margin-bottom:14px}
    .brief,.location,.when{font-size:12px;letter-spacing:.12em}
    .when{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 16px;text-align:left;margin:0}
    .event-meta{display:grid;grid-template-columns:minmax(0,1fr) 44px;align-items:center;gap:8px}
    .scene{min-height:380px}
    .elevation{width:min(62.176cqh,calc(100cqw - 88px));left:36px}
    .floor{right:calc(100% + 12px);font-size:11px;letter-spacing:.07em}
    .ground{max-width:76px;white-space:normal;text-align:right}
    .apply{font-size:38px}
    .credits{font-size:11px;letter-spacing:.1em;gap:12px}
    .credit{max-width:48%}
    .credit::after{margin-top:12px;width:72px}
    .credit:last-child::after{width:54px}
  }
  @media (max-width:360px){.target{bottom:calc(72% + 1em)}}
  @media (prefers-reduced-motion:reduce){.apply span{animation:none}}
