.scene-loading-screen {
  position:fixed; inset:0; z-index:1000; display:grid; place-items:center;
  overflow:auto; padding:28px 22px; background:#143d42; color:#fff0ce;
  background-image:radial-gradient(ellipse at 50% 40%,#37645b 0,transparent 65%),repeating-linear-gradient(135deg,#ffffff03 0 1px,transparent 1px 5px);
  text-align:center; font:15px/1.5 'Trebuchet MS',sans-serif;
}
.lucky-arrival { width:min(100%,360px); margin:auto; }
.arrival-kicker { display:block; font-size:10px; font-weight:bold; letter-spacing:3px; margin-bottom:22px; color:#f2ca81; }
.arrival-ticket { position:relative; background:#fff0ce; color:#23464a; padding:18px 26px 16px; border:1px solid #b3834c; border-radius:80px 80px 8px 8px; box-shadow:6px 8px 0 #08292c66; }
.arrival-ticket:before,.arrival-ticket:after { content:''; position:absolute; bottom:49px; width:20px; height:20px; border-radius:50%; background:#204b4b; }
.arrival-ticket:before { left:-11px; }.arrival-ticket:after { right:-11px; }
.arrival-ticket-top { display:flex; justify-content:space-between; gap:12px; padding:25px 0 10px; border-bottom:1px solid #ad916044; font-size:8px; font-weight:bold; letter-spacing:1px; }
.arrival-emblem { position:relative; width:150px; height:144px; margin:15px auto 0; border:1px solid #b08b49; border-radius:80px 80px 10px 10px; background:repeating-linear-gradient(0deg,transparent 0 9px,#ae93500c 9px 10px); }
.arrival-seven { display:block; font:italic 138px/1 Georgia,serif; color:#b85b3d; text-shadow:3px 3px 0 #ebc888; }
.arrival-heart { position:absolute; bottom:13px; right:18px; color:#224b4b; font-size:24px; transform:rotate(-15deg); }
.arrival-spark { position:absolute; font-size:24px; color:#a4722a; }.spark-one { top:10px; left:12px; }.spark-two { right:9px; top:20px; }
.scene-loading-screen h1 { position:static; margin:18px 0 15px; font:normal 32px/1.1 Georgia,serif; color:#23464a; letter-spacing:-.7px; text-transform:none; }
.scene-loading-screen h1 em { font:italic 32px/1.1 Georgia,serif; color:#b85b3d; }
.arrival-lights { display:flex; justify-content:center; gap:12px; margin:18px 0; }
.arrival-lights i { font-style:normal; color:#bba984; transition:color .3s,text-shadow .3s; }
.arrival-lights i.is-lit { color:#a34c2d; text-shadow:0 0 9px #d6aa49aa; }
.scene-loading-screen p { min-height:3em; max-width:28ch; margin:0 auto 15px; font-size:14px; }
.scene-loading-screen progress { display:block; width:100%; height:5px; margin:0 auto 22px; appearance:none; border:0; border-radius:8px; background:#d9c9a7; accent-color:#b85b3d; }
.scene-loading-screen progress::-webkit-progress-bar { background:#d9c9a7; border-radius:8px; }.scene-loading-screen progress::-webkit-progress-value { background:#b85b3d; border-radius:8px; }.scene-loading-screen progress::-moz-progress-bar { background:#b85b3d; border-radius:8px; }
.arrival-ticket-bottom { display:flex; justify-content:space-between; gap:10px; border-top:1px dashed #ad9160; padding-top:12px; font:700 9px/1.4 'Trebuchet MS',sans-serif; letter-spacing:1px; }
.arrival-aside { display:block; margin:20px auto 0; font:italic 18px Georgia,serif; color:#efd59f; }
.scene-loading-screen button { min-height:48px; margin-top:18px; padding:10px 24px; border:1px solid #efc977; border-radius:8px; background:#efc977; color:#233d43; }
.scene-loading-screen button:focus-visible { outline:3px solid white; outline-offset:4px; }
.scene-loading-screen[hidden], .scene-loading-screen button[hidden] { display:none; }
html:not(.scene-loading) .scene-loading-screen { display:none; }
html.scene-loading { overflow:hidden; }
.scene-loading .plaza-world, .scene-loading header, .scene-loading .town-settings { visibility:hidden; }
@media(max-height:620px) { .scene-loading-screen { padding-block:16px; }.arrival-emblem { width:90px; height:90px; margin-top:8px; }.arrival-seven { font-size:85px; }.arrival-heart { font-size:17px; bottom:4px; right:8px; }.arrival-kicker { margin-bottom:10px; }.scene-loading-screen h1,.scene-loading-screen h1 em { font-size:26px; }.arrival-ticket-top { padding-top:10px; }.arrival-lights { margin:10px 0; }.arrival-aside { margin-top:12px; } }
@media(prefers-reduced-motion:reduce) { .arrival-lights i { transition:none; } }
.plaza-world .world-caption {
  width: 1px; height: 1px; padding: 0; overflow: hidden;
  clip-path: inset(50%); pointer-events: none;
}
.town-discoveries { position: absolute; inset: 0; z-index: 4; pointer-events: none; }
.town-discoveries > button {
  position: absolute; translate: -50% -50%; min-width: 48px; min-height: 48px;
  padding: 0; border: 0; background: none; pointer-events: auto;
}
.town-discoveries > button:focus-visible { outline: 2px dashed #ffe4a2; outline-offset: 4px; }
.town-discovery { border-radius: 10px; }
.town-noticeboard img, .painted-jukebox img { display: block; width: 100%; height: auto; }
.town-noticeboard { filter: drop-shadow(1px 3px 2px #3c2d2455); }
.town-discoveries .painted-jukebox {
  rotate: 0deg; max-width: 80px; filter: drop-shadow(1px 3px 2px #3c2d2455);
}
.painted-jukebox::after { display: none; }
.poster-dialog .resident-portrait { position: relative; }
.resident-portrait .board-poster-target {
  left: 74%; top: 39%; width: 17%; height: 22%; min-width: 48px; min-height: 48px;
  translate: -50% -50%; transform: none; rotate: 0deg; filter: none;
}
.board-poster-target::before, .board-poster-target::after { display: none; }
.board-poster-target:focus-visible { outline: 2px dashed #775a38; outline-offset: 2px; }
.resident-portrait .board-luneros-target {
  position: absolute; left: 49%; top: 48%; width: 27%; height: 38%;
  min-width: 48px; min-height: 48px; translate: -50% -50%;
  background: none; border: 0; padding: 0;
}
.board-luneros-target:focus-visible { outline: 2px dashed #775a38; outline-offset: 2px; }
.resident-line { white-space: pre-line; }
.poster-dialog .resident-portrait img { max-height: 50dvh; object-fit: contain; }
.kygo-track-link{display:inline-flex;align-items:center;min-height:48px;padding:8px 12px;color:inherit;text-underline-offset:3px}
.resident.grounded-resident { translate: -50% -100%; }
.video-dialog iframe { min-height: 200px; }
.video-watch { display: inline-flex; align-items: center; min-height: 44px; font-size: 13px; text-decoration: underline; }
.town-discoveries .pose-resident {
  aspect-ratio: 1; max-width: none; translate: -50% -100%;
  filter: drop-shadow(1px 2px 1px #392e2b44);
}
.pose-frame { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; }
.pose-frame.is-current { opacity: 1; }
.world-egg.painted-cat {
  left: 27%; top: 44.8%; bottom: auto; translate: -50% -100%;
  width: 48px; height: 48px; aspect-ratio: auto;
  padding: 0; background: none; border: 0; transform: none;
}
.painted-cat img {
  position: absolute; bottom: 0; left: 50%; translate: -50% 0;
  display: block; width: clamp(16px, 5vw, 26px); height: auto; transform-origin: 50% 90%;
  animation: cat-glance 9s ease-in-out infinite;
}
body[data-lighting="night"] :is(.town-discoveries, .painted-cat) { filter: brightness(.58) saturate(.78); }
body[data-lighting="twilight"] :is(.town-discoveries, .painted-cat) { filter: brightness(.78) saturate(1.05); }
@keyframes jukebox-glimmer { from { opacity: .2; } to { opacity: .8; box-shadow: 0 0 8px #ffda7c88; } }
@keyframes cat-glance { 0%, 70%, 100% { transform: rotate(0); } 78%, 85% { transform: rotate(4deg); } }
@media (prefers-reduced-motion: reduce) {
  .painted-cat img, .painted-jukebox::after { animation: none; }
}

.modal-close-button { display:block; width:100%; min-height:48px; margin-top:20px; padding:12px 16px; border:2px solid #765139; border-radius:10px; background:#91613b; color:#fff0ca; font:700 15px 'Trebuchet MS',sans-serif; cursor:pointer; }
.modal-close-button:focus-visible { outline:3px solid #eab967; outline-offset:3px; }
#surprise #back.modal-close-button { color:#fff0ca; }

.private-gallery-form { margin:24px 0 6px; text-align:left; }.private-gallery-form label { display:grid; gap:8px; font:700 15px/1.4 'Trebuchet MS',sans-serif; }.private-gallery-form input { display:block; width:100%; min-height:48px; padding:12px; font:18px 'Trebuchet MS',sans-serif; border:1px solid #8f6b49; border-radius:6px; background:#fff8e8; color:#382438; }.private-gallery-form button { display:block; width:100%; min-height:48px; margin:14px 0; padding:12px; border:1px solid #59334b; border-radius:7px; background:#59334b; color:#fff0cd; font:700 16px 'Trebuchet MS',sans-serif; }.private-gallery-form button:disabled { opacity:.6; cursor:default; }.private-gallery-form p { font:14px/1.5 'Trebuchet MS',sans-serif; }.private-gallery-form[hidden] { display:none; }.private-gallery-media figure { margin:20px 0; }.private-gallery-media :is(img,video) { display:block; max-width:100%; max-height:65dvh; margin:auto; object-fit:contain; }.private-gallery-media figcaption { margin-top:8px; font:14px/1.4 'Trebuchet MS',sans-serif; }
.record-music-button{display:block;width:100%;min-height:48px;margin:16px 0 8px;border:1px solid #a08055;border-radius:8px;background:#2d5d5b;color:#fff2d6;font:650 15px system-ui,sans-serif;cursor:pointer}.record-music-button:focus-visible{outline:3px solid #edbb58;outline-offset:3px}.record-credits{margin:10px 0;color:#6c685d;font:12px/1.6 system-ui,sans-serif}.record-credits summary{cursor:pointer;min-height:32px;padding:8px 0}.record-credits p{margin:6px 0}.record-credits a{color:#3a655e}
.noticeboard-memories{display:block;position:relative;min-height:48px;width:100%;margin-top:12px;padding:12px;border:2px solid #15558a;border-radius:8px;background:#ffc956;color:#153e60;font:18px 'Lilita One',sans-serif}
.town-office-links{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 10px;margin:9px 0 0}
.town-office-links button{min-height:48px;padding:6px 8px;border:0;border-bottom:1px solid #8a5f4766;background:transparent;color:#37564a;font:700 14px/1.2 Georgia,serif;cursor:pointer}
.town-office-links button:hover{background:#ead9b575}
