@font-face{font-family:Pixel;src:url('./assets/press-start-2p.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
:root{--ink:#49334b;--cream:#fff3cf;--gold:#f2ce72;--gold-ink:#654326;font-family:Pixel,'Courier New',monospace;color:var(--ink);font-synthesis:none;color-scheme:light}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}body{background:#38243f}button{font:inherit;color:inherit;cursor:pointer;border:0;border-radius:0;-webkit-tap-highlight-color:transparent}button:disabled{opacity:.5;cursor:default}button:not(:disabled):active{translate:0 2px}button:focus-visible,[tabindex]:focus-visible{outline:3px dashed #bf6085;outline-offset:5px}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
#world{position:relative;width:100%;height:100%;height:100dvh;isolation:isolate}#world-canvas{position:absolute;inset:0;display:block;width:100%;height:100%;image-rendering:pixelated;touch-action:none;outline-offset:-6px;cursor:pointer}#world-canvas[inert]{cursor:default}#world-canvas:focus-visible{outline:none}
.invitation-screen{position:absolute;inset:0;z-index:50;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;padding:26px 24px;overflow:auto;background:radial-gradient(ellipse at 50% 40%,#604150 0,#39273f 52%,#271e35 100%);transition:opacity .9s ease;opacity:1}
.invitation-screen.leaving{opacity:0;pointer-events:none}
.golden-ticket{position:relative;flex-shrink:0;isolation:isolate;width:min(820px,100%);padding:29px 54px 23px;text-align:center;color:var(--gold-ink);background:linear-gradient(115deg,#ba8436 0,#ebbd54 5%,#f5d77f 19%,#ffeba5 40%,#f0c360 66%,#ddb052 89%,#b77a30 100%);border:4px solid #be8b3c;box-shadow:inset 0 0 0 3px #ffec9e,0 12px 0 #1d162852;clip-path:polygon(0 0,100% 0,100% 40%,98% 40%,98% 43%,96% 43%,96% 57%,98% 57%,98% 60%,100% 60%,100% 100%,0 100%,0 60%,2% 60%,2% 57%,4% 57%,4% 43%,2% 43%,2% 40%,0 40%)}
.golden-ticket:before{content:'';position:absolute;inset:12px;border:2px solid #a87330;box-shadow:inset 0 0 0 2px #fff0a775;pointer-events:none;z-index:-1}
.golden-ticket:after{content:'';position:absolute;inset:0;pointer-events:none;z-index:-1;opacity:.15;background:repeating-linear-gradient(90deg,transparent 0 6px,#fff0a7 6px 7px,transparent 7px 12px)}
.ticket-topline,.ticket-bottomline{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:6px;line-height:1.8;letter-spacing:1px;color:#81562b}.ticket-topline>span:first-child{font:700 18px Georgia,serif;letter-spacing:3px}.ticket-topline>span:nth-child(2){font-size:7px;letter-spacing:2px}.ticket-rule{display:flex;align-items:center;gap:13px;margin:12px 0 22px;color:#a77530;font-size:14px}.ticket-rule i{height:2px;background:#b48738;flex:1;box-shadow:0 2px #ffeca2}
.golden-ticket p{margin:0}.ticket-opening{font-size:9px;line-height:2.1;max-width:610px;margin:0 auto 19px!important}.ticket-invitation{font-size:8px;line-height:2}.ticket-occasion{font-size:11px;line-height:1.9;margin:11px 0 9px!important}.ticket-bridge{font-size:7px;line-height:2;color:#8a622e}.golden-ticket h1{font-size:clamp(25px,4.4vw,45px);line-height:1.4;text-transform:uppercase;letter-spacing:-1.7px;margin:16px 0 18px;color:#714923;text-shadow:3px 3px 0 #ffefa2,5px 5px 0 #bf8a38}.ticket-challenge{font-size:8px;line-height:2.05;max-width:570px;margin:0 auto 20px!important;color:#7e542a}.ticket-privacy{font-size:8px;line-height:2;color:#784223}.ticket-signature{font-size:8px;line-height:2.2;margin:20px 0 0!important}.ticket-bottomline{border-top:2px dashed #b08339;margin-top:23px;padding-top:15px;font-size:5px;letter-spacing:.5px}.ticket-barcode{width:83px;height:20px;opacity:.8;background:repeating-linear-gradient(90deg,#825a2c 0 2px,transparent 2px 4px,#825a2c 4px 5px,transparent 5px 8px,#825a2c 8px 12px,transparent 12px 15px,#825a2c 15px 16px,transparent 16px 19px)}
.invitation-entry{position:relative;z-index:2;display:flex;align-items:center;flex-direction:column;gap:12px;text-align:center;flex-shrink:0}.invitation-entry button{min-height:36px;color:#f3d184;background:transparent;font-size:9px;padding:8px 10px}.invitation-entry button span{margin-left:14px;font-size:14px}.invitation-entry button:hover{color:#fff1b6}.invitation-entry button:focus-visible{outline-color:#f2d27a}.invitation-status{font-size:6px;line-height:1.7;color:#b59aac}.invitation-progress{height:3px;width:140px;background:#75606c}.invitation-progress i{display:block;height:100%;background:#efd17c;transform:scaleX(0);transform-origin:left}
.ticket-sparkles{position:absolute;inset:0;overflow:hidden;pointer-events:none}.ticket-sparkles i{position:absolute;width:4px;height:4px;background:#deb85e;box-shadow:4px 0 #deb85e,-4px 0 #deb85e,0 4px #deb85e,0 -4px #deb85e;animation:twinkle 3.5s steps(2) infinite;opacity:.6}.ticket-sparkles i:nth-child(1){left:9%;top:19%}.ticket-sparkles i:nth-child(2){left:89%;top:13%;animation-delay:1.5s}.ticket-sparkles i:nth-child(3){left:6%;top:67%;animation-delay:2s}.ticket-sparkles i:nth-child(4){left:94%;top:75%;animation-delay:.7s}.ticket-sparkles i:nth-child(5){left:21%;top:91%;animation-delay:2.3s}.ticket-sparkles i:nth-child(6){left:76%;top:89%;animation-delay:1.1s}.ticket-sparkles i:nth-child(7){left:30%;top:5%;animation-delay:.3s}.ticket-sparkles i:nth-child(8){left:65%;top:6%;animation-delay:1.9s}@keyframes twinkle{50%{opacity:.15}}
.character-gate{position:absolute;z-index:10;top:44%;left:50%;transform:translate(-50%,-50%);width:370px;max-width:calc(100vw - 36px);max-height:calc(100dvh - 48px);overflow:auto;padding:31px 25px 25px;background:var(--cream);border:3px solid var(--ink);box-shadow:6px 6px 0 var(--ink);text-align:center}.character-gate:before{content:'';position:absolute;left:0;right:0;top:0;height:7px;border-bottom:2px solid #b77a91;background:repeating-linear-gradient(90deg,#e69bad 0 11px,#fff3cf 11px 22px)}.character-heading{font-size:8px;line-height:1.8;margin:0 0 13px;color:#985a75}.character-gate h2{font-size:21px;line-height:1.4;margin:0 0 25px;font-weight:400;letter-spacing:-.6px}.picker{text-align:left}.character-trigger{display:flex;align-items:center;gap:14px;width:100%;min-height:64px;padding:10px 13px;background:#f0b8c8;border:2px solid #aa6887;box-shadow:inset 0 3px 0 #ffe4d5,3px 3px 0 #ce969f}.character-trigger:hover{background:#fac7d4}.selected-avatar{width:40px;height:40px;flex-shrink:0;display:grid;place-items:center;font-size:23px;color:#a96281}.selected-avatar svg,.option-face svg,.board-avatar svg{width:100%;height:100%;display:block;image-rendering:pixelated;shape-rendering:crispEdges}.character-trigger strong{font-size:12px;font-weight:400}.character-trigger>svg{width:12px;height:8px;fill:var(--ink);margin-left:auto;flex-shrink:0}.character-trigger[aria-expanded=true]>svg{rotate:180deg}.character-options{margin:10px 0 0;list-style:none;padding:5px;background:#fff7dc;border:2px solid var(--ink);max-height:min(408px,calc(100dvh - 260px));overflow:auto;overscroll-behavior:contain}.character-option{display:flex;align-items:center;gap:17px;min-height:45px;padding:7px 10px;cursor:pointer;font-size:11px;border-bottom:1px solid #ecd1b6;outline-offset:-3px!important}.character-option:last-child{border-bottom:0}.character-option:hover,.character-option:focus-visible{background:#f4d399}.character-option[aria-selected=true]{background:#f2c1cb}.option-face{width:30px;height:30px;flex-shrink:0}
.game-hud{position:absolute;top:24px;left:24px;right:24px;z-index:5;display:flex;justify-content:center;pointer-events:none}.score-hud{display:flex;align-items:center;gap:22px;color:#fff3d5;text-shadow:2px 2px 0 #49334b,2px -2px 0 #49334b,-2px 2px 0 #49334b,-2px -2px 0 #49334b}.score-hud>div{min-width:45px;text-align:center}.score-hud span{display:block;font-size:7px}.score-hud strong{display:block;font-size:28px;line-height:1.2;margin-top:9px;font-weight:400}.score-hud i{height:28px;width:2px;background:#fff4cd80}.leaderboard-button{position:absolute;right:0;top:0;display:grid;place-items:center;width:42px;height:42px;border:2px solid var(--ink);box-shadow:3px 3px 0 var(--ink);background:var(--cream);pointer-events:auto}.leaderboard-button:hover{background:#ffdf94}.leaderboard-button svg{width:23px;height:23px;fill:#9e6840;shape-rendering:crispEdges}.takeoff-hint{position:absolute;bottom:14%;left:50%;transform:translateX(-50%);background:var(--cream);padding:14px 18px;border:2px solid var(--ink);box-shadow:3px 3px 0 var(--ink);font-size:8px;line-height:1.8;text-align:center;max-width:calc(100vw - 40px);white-space:nowrap;pointer-events:none}
.continue-panel{position:absolute;top:48%;left:50%;transform:translate(-50%,-50%);z-index:10}.ticket-button{display:flex;align-items:center;justify-content:center;gap:16px;min-height:48px;padding:13px 19px;line-height:1.6;border:3px solid var(--ink);background:#edc475;box-shadow:inset 0 3px 0 #fff1b9,4px 4px 0 var(--ink);font-size:10px}.ticket-button:hover{background:#ffdb91}.continue-panel .ticket-button{white-space:nowrap;background:var(--cream)}.result-panel,.world-error{position:absolute;z-index:15;top:48%;left:50%;transform:translate(-50%,-50%);width:370px;max-width:calc(100vw - 36px);max-height:calc(100dvh - 120px);overflow:auto;padding:28px;background:var(--cream);border:3px solid var(--ink);box-shadow:6px 6px 0 var(--ink);text-align:center}.eyebrow{font-size:7px;line-height:1.8;color:#aa617e;margin:0 0 12px}.result-panel h2,.world-error h2{font-size:20px;line-height:1.5;font-weight:400;margin:15px 0 22px}.result-numbers{display:flex;justify-content:center;gap:45px;padding:20px 0;border-block:2px dashed #d3a890}.result-numbers span{display:block;font-size:7px}.result-numbers strong{display:block;font-size:30px;font-weight:400;margin-top:15px;color:#ae4f78}.save-note{font-size:7px;line-height:1.9;margin:19px 0;color:#916c75}.result-panel .ticket-button{width:100%;margin-top:16px}.result-links{display:flex;justify-content:space-between;gap:10px;margin-top:18px}.result-links button{background:transparent;padding:8px 0;font-size:7px;line-height:1.8;color:#a34d74}.result-links button:hover{text-decoration:underline;text-underline-offset:4px}.world-error p{font-size:9px;line-height:1.9}.world-error{z-index:100}.world-error .ticket-button{margin:20px auto 0}
.leaderboard-dialog{width:min(530px,calc(100vw - 32px));max-height:85dvh;overflow:auto;padding:27px;border:4px solid var(--ink);background:var(--cream);color:var(--ink);box-shadow:7px 7px 0 #251c31}.leaderboard-dialog::backdrop{background:#33243ca8}.dialog-header{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:19px}.dialog-header h2{font-size:20px;line-height:1.6;font-weight:400;margin:0}.dialog-header .eyebrow{font-size:6px}.dialog-header button{width:36px;height:36px;flex-shrink:0;font-size:20px;border:2px solid var(--ink);background:#efb4c3;box-shadow:2px 2px 0 var(--ink)}.leaderboard-scope{font-size:7px;line-height:1.9;color:#956f7d;margin:0 0 17px}.score-list{list-style:none;padding:0;margin:0}.score-list li{display:flex;align-items:center;gap:13px;padding:12px 6px;border-bottom:2px dotted #d7af9d}.rank{width:26px;font-size:11px;color:#9c727a}.score-list li:first-child .rank{color:#aa772e}.board-avatar{width:35px;height:35px;flex-shrink:0;display:grid;place-items:center;color:#b78d41}.board-player{font-size:10px;line-height:1.8;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.board-score{font-size:21px;margin-left:auto;color:#a84975}.score-list .current-player{background:#f4d1d1}.empty-board{font-size:9px;line-height:1.9;text-align:center;padding:25px 0}.storage-note{font-size:7px;line-height:2;text-align:center;color:#997480;margin:24px 0 0}
@media(min-width:1400px) and (min-height:850px){.golden-ticket{padding:38px 65px 30px;width:880px}.ticket-opening{font-size:10px}.ticket-invitation{font-size:9px}.ticket-occasion{font-size:12px}.golden-ticket h1{font-size:49px;margin:24px 0}.ticket-challenge{font-size:9px}.ticket-signature{margin-top:26px!important}.ticket-rule{margin-bottom:28px}}
@media(max-width:650px){.invitation-screen{padding:22px 14px;gap:18px}.golden-ticket{padding:22px 22px 19px;border-width:3px}.golden-ticket:before{inset:8px;border-width:1px}.ticket-topline{font-size:4px;gap:8px;letter-spacing:0}.ticket-topline>span:first-child{font-size:14px;letter-spacing:2px}.ticket-topline>span:nth-child(2){font-size:5px;letter-spacing:.5px}.ticket-rule{margin:12px 0 18px;gap:8px;font-size:11px}.ticket-opening{font-size:7px;line-height:2.1;margin-bottom:17px!important;max-width:290px}.ticket-invitation{font-size:6px;line-height:2;max-width:280px;margin:auto!important}.ticket-occasion{font-size:7px;line-height:2;margin:12px 0 10px!important}.ticket-bridge{font-size:6px}.golden-ticket h1{font-size:25px;line-height:1.45;letter-spacing:-1px;margin:17px 0 20px;text-shadow:2px 2px 0 #ffefa2,4px 4px 0 #bf8a38}.ticket-challenge{font-size:6px;line-height:2.1;max-width:280px;margin-bottom:20px!important}.ticket-privacy{font-size:6px;line-height:2}.ticket-signature{font-size:6px;line-height:2.1;max-width:280px;margin:19px auto 0!important}.ticket-bottomline{font-size:4px;letter-spacing:0;gap:8px;margin-top:20px;padding-top:12px}.ticket-barcode{width:44px;height:17px;flex-shrink:0}.ticket-bottomline>span:first-child{max-width:95px;line-height:2}.invitation-entry{gap:9px}.invitation-entry button{font-size:8px;min-height:35px}.invitation-status{font-size:5px}.invitation-progress{width:112px;height:2px}.ticket-sparkles i{width:3px;height:3px}
.character-gate{width:344px;padding:29px 20px 20px;top:46%;max-height:calc(100dvh - 40px)}.character-heading{font-size:7px}.character-gate h2{font-size:19px;margin-bottom:23px}.character-trigger{min-height:62px;padding:10px 12px}.character-trigger strong{font-size:10px}.character-option{min-height:44px;font-size:10px}.character-options{max-height:calc(100dvh - 265px)}.game-hud{top:22px;left:20px;right:20px}.score-hud{gap:17px}.score-hud strong{font-size:26px}.score-hud span{font-size:6px}.leaderboard-button{width:36px;height:36px}.leaderboard-button svg{width:20px;height:20px}.takeoff-hint{font-size:7px;padding:12px 14px;bottom:14%}.ticket-button{font-size:9px}.result-panel{padding:25px 21px}.result-panel h2{font-size:18px}.result-numbers strong{font-size:28px}.result-numbers{gap:35px}.result-links button{font-size:6px}.save-note{font-size:6px}.leaderboard-dialog{padding:22px 16px}.dialog-header h2{font-size:16px}.dialog-header .eyebrow{font-size:5px}.leaderboard-scope{font-size:6px}.board-player{font-size:8px}.board-score{font-size:19px}.storage-note{font-size:6px}.rank{font-size:10px;width:22px}.score-list li{gap:10px}}
@media(max-height:690px){.invitation-screen{padding-top:17px;padding-bottom:17px;gap:14px}.golden-ticket{padding-top:20px;padding-bottom:17px}.ticket-rule{margin-top:8px;margin-bottom:14px}.ticket-opening{font-size:8px;line-height:1.9;margin-bottom:12px!important}.ticket-invitation{font-size:7px}.ticket-occasion{font-size:9px;margin:8px 0!important}.golden-ticket h1{font-size:33px;margin:12px 0}.ticket-challenge{font-size:7px;line-height:1.9;margin-bottom:14px!important}.ticket-privacy{font-size:7px}.ticket-signature{font-size:7px;margin-top:14px!important}.ticket-bottomline{margin-top:17px;padding-top:11px}.invitation-entry{gap:8px}.invitation-entry button{min-height:30px}.character-gate{top:50%}}
@media(max-height:690px) and (max-width:650px){.invitation-screen{padding:14px 12px;gap:12px}.golden-ticket{padding:17px 19px 16px}.ticket-rule{margin:8px 0 13px}.ticket-opening{font-size:6px;line-height:1.9;margin-bottom:12px!important}.ticket-invitation{font-size:5px;line-height:2}.ticket-occasion{font-size:6px;line-height:1.9;margin:9px 0!important}.ticket-bridge{font-size:5px}.golden-ticket h1{font-size:23px;margin:13px 0 15px}.ticket-challenge{font-size:5px;line-height:2.1;margin-bottom:15px!important}.ticket-privacy{font-size:5px}.ticket-signature{font-size:5px;margin-top:14px!important;line-height:2}.ticket-bottomline{margin-top:15px;font-size:4px;padding-top:11px}.ticket-topline>span:nth-child(2){font-size:4px}.invitation-entry button{font-size:7px}.invitation-status{font-size:4px}.result-panel{padding:20px}.result-panel h2{font-size:17px}.result-numbers{padding:16px 0}}
@media(max-width:350px){.golden-ticket h1{font-size:22px}.ticket-topline>span:last-child{font-size:3px}.ticket-bottomline>span:last-child{font-size:3px}.ticket-opening{font-size:6px}.ticket-occasion{font-size:6px}.character-gate h2{font-size:17px}.character-heading{font-size:6px}.character-trigger strong{font-size:10px}.game-hud{left:15px;right:15px}.takeoff-hint{font-size:6px}.dialog-header h2{font-size:13px}.board-player{font-size:7px}.score-list li{gap:8px}.board-avatar{width:30px;height:30px}}
@media(max-height:480px){.invitation-screen{justify-content:flex-start}.golden-ticket{width:min(760px,100%);padding-top:18px;padding-bottom:18px}.ticket-topline,.ticket-bottomline{display:none}.ticket-rule{margin-top:0}.ticket-opening{font-size:7px;line-height:1.8;margin-bottom:7px!important}.ticket-invitation{font-size:6px}.ticket-occasion{font-size:8px;margin:5px 0!important}.ticket-bridge{font-size:5px}.golden-ticket h1{font-size:28px;margin:8px 0}.ticket-challenge{font-size:6px;margin-bottom:8px!important}.ticket-privacy,.ticket-signature{font-size:6px}.ticket-signature{margin-top:8px!important}.invitation-entry{gap:5px}.invitation-status{display:none}.character-gate{padding:22px 20px 16px}.character-gate h2{font-size:17px;margin-bottom:16px}.character-heading{font-size:6px;margin-bottom:8px}.character-options{max-height:calc(100dvh - 220px)}.result-panel h2{margin:8px 0 14px;font-size:16px}.result-numbers{padding:10px 0}.result-numbers strong{font-size:21px}.save-note{margin:12px 0}.result-panel{padding:18px;max-height:calc(100dvh - 80px)}.result-panel .ticket-button{margin-top:10px;min-height:40px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}

/* The physical invitation: concave corners, pink candy type, and its own crest. */
body{background:#edbdcf}
.invitation-screen{background:transparent;gap:23px;padding:28px 24px}
.golden-ticket{
  width:min(840px,100%);padding:27px 50px 34px;border:3px solid #ba862f;clip-path:none;
  background:linear-gradient(112deg,#ca9537 0%,#f2c957 12%,#ffec9f 29%,#f4cd61 43%,#edbb42 57%,#fff1b4 76%,#dba940 100%);
  mask:radial-gradient(circle at 0 0,transparent 25px,#000 26px) top left/51% 51% no-repeat,
    radial-gradient(circle at 100% 0,transparent 25px,#000 26px) top right/51% 51% no-repeat,
    radial-gradient(circle at 0 100%,transparent 25px,#000 26px) bottom left/51% 51% no-repeat,
    radial-gradient(circle at 100% 100%,transparent 25px,#000 26px) bottom right/51% 51% no-repeat;
  box-shadow:inset 0 0 0 3px #ffe9a2,inset 0 0 30px #9862144d;
}
.golden-ticket:before{inset:17px;border:2px solid #b8892b;border-radius:28px;box-shadow:inset 0 0 0 2px #ffe69e80}
.golden-ticket:after{opacity:.12;background:repeating-linear-gradient(0deg,transparent 0 3px,#fff 3px 4px)}
.ticket-crest{display:block;width:75px;height:90px;object-fit:contain;margin:0 auto 9px;mix-blend-mode:multiply}
.ticket-rule{margin:10px 0 21px;font-size:10px;gap:14px}
.golden-ticket h1{
  font-size:clamp(28px,5vw,57px);line-height:1.5;letter-spacing:-2px;margin:4px 0 21px;
  color:#ed599a;background:repeating-linear-gradient(130deg,#ffdef0 0 3px,#f477b0 3px 7px,#de408b 7px 12px,#ffadc8 12px 15px);
  background-clip:text;-webkit-text-fill-color:transparent;-webkit-text-stroke:1px #b82f72;
  filter:drop-shadow(3px 4px 0 #a43a6166);text-shadow:none;
}
.ticket-date{font-size:15px;line-height:1.7;text-transform:uppercase;letter-spacing:1px;border-bottom:2px solid #b8892b;padding:0 0 24px}
.ticket-host{padding:24px 0 23px;font-size:16px;line-height:1.8}
.ticket-formerly{font-size:7px;line-height:2;margin-top:9px!important;color:#99702e}
.ticket-challenge{font-size:12px;line-height:2;margin:0 auto 16px!important;max-width:640px;color:#674321}
.ticket-privacy{font-size:11px;line-height:2;color:#674321}
.invitation-entry{padding:10px 18px 12px;background:#fff2dbe8;border:2px solid #b87d8f;box-shadow:4px 4px 0 #ad738a;gap:8px}
.invitation-entry button{color:#924566;font-size:8px;min-height:30px;padding:4px 8px}
.invitation-entry button:hover{color:#c33376}.invitation-status{color:#946877;font-size:5px}
.invitation-progress{background:#ecd2c8}.invitation-progress i{background:#c45b8b}
.ticket-sparkles i{background:#fff2c6;box-shadow:4px 0 #fff2c6,-4px 0 #fff2c6,0 4px #fff2c6,0 -4px #fff2c6}
.character-gate h2{font-size:18px;line-height:1.55}
.name-gate{width:410px}.name-gate h2{font-size:23px}
#name-form label{display:block;text-align:center;font-size:18px;line-height:1.6;margin:0 0 24px}
#guest-name{width:100%;font:inherit;font-size:11px;line-height:1.8;background:#fffaf0;color:var(--ink);padding:16px 12px;border:2px solid #b17b90;border-radius:0;outline-offset:3px}
#guest-name::placeholder{color:#ae8790;font-size:9px}#guest-name:focus-visible{outline:3px dashed #b95785}
#name-privacy{font-size:7px;line-height:2.1;margin:17px 0 22px;color:#95677c}
#name-form .ticket-button{width:100%;font-size:8px;background:#f0b8c8;margin-top:24px}
.form-status{font-size:7px;line-height:2;color:#a34d74;margin:18px 0 0}.form-status:empty{display:none}
.quiet-link{display:block;margin:18px auto 0;padding:8px;background:transparent;font-size:7px;line-height:1.9;color:#a34d74;text-decoration:underline;text-underline-offset:4px}
.photo-head{display:block;width:100%;height:100%;object-fit:contain;image-rendering:auto}
.photo-head[src$="hamlin-photo.png"],.photo-sprite[src$="hamlin-photo.png"]{border-radius:18%}
.character-gate:has(.character-options:not([hidden])){top:50%}
.photo-sprite{position:absolute;top:0;left:0;z-index:1;object-fit:contain;image-rendering:auto;pointer-events:none;user-select:none;will-change:transform;filter:none}
.option-face:has(.photo-head){width:42px;height:46px}.board-avatar:has(.photo-head){width:45px;height:49px}
.sound-button{right:auto;left:0}.mute-slash{display:none}.sound-button[aria-pressed=true] .mute-slash{display:block}
.speed-badge{position:absolute;top:69px;font-size:7px;padding:8px 11px;line-height:1.6;background:#fff3cf;color:#a34d74;border:2px solid #aa6887;box-shadow:2px 2px 0 #aa6887}
.audio-note{position:absolute;top:108px;font-size:6px;line-height:1.8;background:#fff3cf;padding:6px 10px;max-width:90%;text-align:center}
.board-avatar:has(.photo-head){height:43px}
.anonymous-name{display:inline-block;filter:blur(3px);user-select:none;opacity:.6;letter-spacing:1px}
.your-rank{font-size:8px;line-height:2.1;padding:14px 12px;background:#f4d1d1;border:2px dashed #c68699}
.takeoff-hint{white-space:normal;width:max-content}
@media(max-width:650px){
  .invitation-screen{padding:20px 14px;gap:20px}.golden-ticket{padding:25px 23px 27px}
  .golden-ticket:before{inset:12px;border-radius:23px}.ticket-crest{height:76px;width:63px;margin-bottom:10px}
  .ticket-rule{margin:8px 0 19px}.golden-ticket h1{font-size:clamp(22px,7.1vw,42px);letter-spacing:-1.3px;margin:8px 0 22px;-webkit-text-stroke:.65px #b82f72}
  .ticket-date{font-size:10px;letter-spacing:0;padding-bottom:22px}.ticket-host{font-size:11px;padding:23px 0}
  .ticket-formerly{font-size:6px;margin-top:10px!important}.ticket-challenge{font-size:9px;max-width:320px;line-height:2.2;margin-bottom:16px!important}
  .ticket-privacy{font-size:8px;line-height:2.2}.name-gate h2{font-size:21px}.character-gate h2{font-size:17px}
  #guest-name{font-size:16px;line-height:1.5}#name-form .ticket-button{font-size:7px}.your-rank{font-size:7px}.rank{min-width:24px;width:auto}
}
@media(max-height:620px){.invitation-screen{justify-content:flex-start;gap:14px;padding-top:18px}.ticket-crest{height:56px;width:47px}.golden-ticket{padding-top:20px;padding-bottom:24px}.ticket-rule{margin-bottom:12px}.golden-ticket h1{margin:6px 0 14px}.ticket-date{padding-bottom:15px}.ticket-host{padding:15px 0}.ticket-challenge{margin-bottom:10px!important}.character-gate{top:50%}}

/* Chunky paint falls in staggered pixel columns; every crash gets the arcade sting. */
:root{--paint-base:#dd5c91;--paint-highlight:#f47dac8c}
.game-over-screen{position:absolute;inset:0;z-index:40;overflow:hidden;display:grid;place-items:center;text-align:center}
.drip-curtain{position:absolute;inset:0;display:flex;filter:drop-shadow(0 8px 0 #863254)}
.drip-curtain i{position:relative;flex:1;height:115%;background:var(--paint-base);transform:translateY(-115%);animation:pixel-drip 1.1s steps(14,end) var(--delay,0s) forwards}
.drip-curtain i:before{content:'';position:absolute;inset:0 20% 10%;background:var(--paint-highlight)}
.drip-curtain i:after{content:'';position:absolute;top:calc(100% - 1px);left:0;width:100%;height:var(--tail,60px);background:var(--paint-base);clip-path:polygon(0 0,100% 0,100% 55%,80% 55%,80% 82%,60% 82%,60% 100%,20% 100%,20% 78%,0 78%)}
@keyframes pixel-drip{to{transform:translateY(0)}}
.game-over-copy{position:relative;padding:24px;max-width:100%;color:#fff3cf;opacity:0;animation:crash-copy .2s steps(2,end) .65s forwards}
@keyframes crash-copy{to{opacity:1}}
.game-over-copy .eyebrow{color:#79304f;font-size:9px;letter-spacing:3px}
.game-over-copy h2{font-size:clamp(46px,10vw,104px);line-height:1.3;letter-spacing:-4px;font-weight:400;margin:20px 0;text-shadow:5px 0 #79304f,-5px 0 #79304f,0 -5px #79304f,0 5px #79304f,8px 10px #9e3e68;outline:none}
.crash-points{font-size:17px;line-height:1.7;margin:24px 0 15px}.crash-next{font-size:8px;line-height:2}
.first-board-controls{margin-top:20px;padding-top:15px;border-top:2px dashed #c68699;text-align:center}.first-board-controls .ticket-button{width:100%}.first-board-controls .save-note{margin:0 0 10px}.sequence-caption{font-size:7px;line-height:2.1;text-align:center;color:#95677c}
.crash-video-dialog{width:min(850px,calc(100vw - 28px));max-height:92dvh;overflow:auto;border:4px solid var(--ink);padding:24px;background:var(--cream);color:var(--ink);box-shadow:7px 7px 0 #251c31}
.crash-video-dialog::backdrop{background:#49334bed}.crash-video-dialog .dialog-header h2{font-size:17px}.crash-video-dialog>.ticket-button{margin:18px auto}.crash-video-stage{position:relative;background:#241b2e;border:3px solid var(--ink);aspect-ratio:16/9;min-height:160px}
.crash-video-stage video{display:block;width:100%;height:100%;max-height:55dvh;object-fit:contain}.crash-video-play{position:absolute;inset:0;display:grid;place-items:center;background:#49334be8;color:var(--cream);font-size:13px}
@media(max-width:650px){.game-over-copy h2{letter-spacing:-2px}.game-over-copy .eyebrow{font-size:7px}.crash-points{font-size:13px}.crash-next{font-size:6px}.crash-video-dialog{padding:17px 12px}.crash-video-dialog .dialog-header h2{font-size:12px}.crash-video-dialog .ticket-button{font-size:7px}.sequence-caption{font-size:6px}}
@media(prefers-reduced-motion:reduce){.drip-curtain i{transform:none}.game-over-copy{opacity:1}}

/* Nine choices form three complete rows on desktop and mobile. */
#character-gate{top:50%;width:580px;max-width:calc(100vw - 32px);max-height:calc(100dvh - 32px);padding:26px 22px 15px;display:flex;flex-direction:column;overflow:hidden}
#character-gate .character-heading{flex:none;margin-bottom:8px}
#character-gate h2{flex:none;font-size:18px;margin:0 0 20px}
.character-help{flex:none;font-size:7px;line-height:1.8;color:#985a75;margin:0 0 15px}
.character-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;min-height:0;overflow:auto;overscroll-behavior:contain;touch-action:pan-y;padding:5px 5px 8px;scroll-padding:7px;scrollbar-color:#bf7896 #f7dfcf}
.character-card{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-width:0;min-height:112px;padding:8px;background:#ffe3dc;border:2px solid #bb8195;box-shadow:2px 2px 0 #d9a1ac;transition:background .12s,transform .12s}
.character-card:nth-child(3n+2){background:#f5e5b4}.character-card:nth-child(3n){background:#d6eae0}
.character-card:hover{background:#ffd0e1;transform:translateY(-2px)}
.character-card:focus-visible{outline:3px solid #883d6b;outline-offset:1px;z-index:1;background:#ffd0e1}
.character-card[aria-pressed=true]{border-color:#883d6b;box-shadow:inset 0 0 0 1px #883d6b,2px 2px 0 #883d6b}
.character-face{display:block;width:60px;height:60px;flex:none}.character-face img{width:100%;height:100%;object-fit:contain;image-rendering:auto}
.character-name{font-size:8px;line-height:1.65;min-height:22px;display:flex;align-items:center;justify-content:center;max-width:100%;overflow-wrap:anywhere}
#character-gate #edit-name{flex:none;margin-top:12px;padding:7px}
@media(max-width:650px){
  #character-gate{max-width:calc(100vw - 24px);max-height:calc(100dvh - 28px);padding:22px 12px 12px}
  #character-gate h2{font-size:15px;line-height:1.7}.character-help{font-size:6px;margin-bottom:11px}
  .character-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.character-card{min-height:104px;padding:9px 4px}
  .character-name{font-size:7px;min-height:25px}.character-face{width:48px;height:52px}
}
@media(max-width:350px){#character-gate h2{font-size:13px}.character-name{font-size:6px}.character-grid{gap:6px}.character-card{min-height:96px}.character-face{width:44px;height:48px}}
@media(max-height:480px){#character-gate{padding-top:17px;max-height:calc(100dvh - 20px)}#character-gate h2{font-size:14px}.character-help{display:none}#character-gate #edit-name{margin-top:6px}.character-card{min-height:86px;padding:5px}.character-face{height:43px;width:43px}}

/* The same 28-column pink paint texture as GAME OVER, static before takeoff. */
.welcome-world{display:none;position:absolute;inset:0;pointer-events:none;background-color:var(--paint-base);background-image:linear-gradient(90deg,transparent 20%,var(--paint-highlight) 20% 80%,transparent 80%);background-size:calc(100% / 28) 100%}
#world:is([data-state="intro"],[data-state="name"],[data-state="ready"]) .welcome-world{display:block}
#world:is([data-state="intro"],[data-state="name"],[data-state="ready"]) :is(#world-canvas,#photo-sprite){visibility:hidden}
#world:is([data-state="first-board"],[data-state="video"]) .game-over-copy{visibility:hidden}
#game-over-title:focus-visible{outline:none}
body:has(#world[data-state="first-board"]) .leaderboard-dialog::backdrop{background:transparent}
.leaderboard-dialog .dialog-header{justify-content:flex-end;margin-bottom:8px}
.leaderboard-dialog .dialog-header button{width:40px;height:40px}
.board-identity{display:flex;flex-direction:column;gap:6px;min-width:0}
.board-character{font-size:7px;line-height:1.7;color:#95677c}
.storage-note:empty,.save-note:empty{display:none}
.storage-note{margin-top:14px}
.first-board-controls{margin-top:14px;padding-top:14px}
.sequence-actions{display:flex;justify-content:center;align-items:center;gap:16px}
.icon-control{width:44px;height:44px;display:grid;place-items:center;padding:10px;border:2px solid var(--ink);background:#f0b8c8;color:var(--ink);box-shadow:2px 2px 0 var(--ink);font-size:20px}
.icon-control:hover{background:#ffe2d9}
.icon-control svg{width:20px;height:20px;fill:currentColor}
#board-stay .play-icon,#board-stay[aria-pressed=true] .pause-icon{display:none}
#board-stay[aria-pressed=true] .play-icon{display:block}
.crash-video-dialog{padding:0;overflow:hidden;background:#241b2e;width:min(850px,calc(100vw - 28px));max-height:92dvh}
.crash-video-stage{border:0;min-height:0;aspect-ratio:16/9}
.crash-video-stage video{height:100%;max-height:calc(92dvh - 80px);cursor:pointer}
.crash-video-dialog .sequence-actions{padding:14px;background:#241b2e}
.video-close{position:absolute;right:12px;top:12px;z-index:2}
.crash-video-play{background:#241b2e88}
.crash-video-play svg{width:58px;height:58px;fill:var(--cream);filter:drop-shadow(4px 4px 0 #79304f)}
#crash-video-sound[aria-pressed=true] .video-mute-slash{display:none}
@media(max-height:480px){.crash-video-stage{height:calc(92dvh - 80px);aspect-ratio:auto}}
