  *{box-sizing:border-box;margin:0;padding:0}
  html,body{height:100%;background:#000;overflow:hidden}
  body{font-family:ui-monospace,"SF Mono",Menlo,Consolas,"Courier New",monospace;color:#ffb3c8;-webkit-tap-highlight-color:transparent}
  canvas{position:fixed;inset:0;width:100%;height:100%;display:block}
  #intro{position:fixed;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;cursor:pointer;z-index:2;transition:opacity .6s}
  #intro.hide{opacity:0;pointer-events:none}
  #intro .l1{font-size:14px;color:#6f6f6f;letter-spacing:.06em}
  #intro .l2{font-size:18px;color:#ffc2d4}
  .cursor{display:inline-block;width:.6em;height:1.05em;background:#ffc2d4;vertical-align:-2px;margin-left:4px;animation:blink 1s steps(1) infinite}
  @keyframes blink{50%{opacity:0}}
  #msg{position:fixed;left:0;right:0;bottom:max(28px,env(safe-area-inset-bottom));text-align:center;z-index:2;pointer-events:none;padding:0 20px}
  #msg .a{font-size:clamp(14px,4vw,17px);color:#ffd0dd;min-height:1.4em;text-shadow:0 0 8px rgba(255,120,160,.55)}
  #msg .b{font-size:13px;color:#a8768a;margin-top:6px;min-height:1.2em}
  #again{position:fixed;top:14px;right:16px;z-index:3;background:none;border:none;color:#555;font:inherit;font-size:12px;cursor:pointer;opacity:0;transition:opacity 1s}
  #again.show{opacity:1}
