body,html{width:100%;height:100%;overscroll-behavior:none}body{overflow:hidden}#app{height:100vh;height:100dvh;display:flex;flex-direction:column}.menu{--gutter:clamp(20px, 3.4vw, 44px);--gap:24px;flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);background-image:radial-gradient(ellipse at 100% 0,#e5d9bd77,transparent 55%)}.menu-page{width:100%;max-width:1320px;min-height:100%;margin:0 auto;padding:26px var(--gutter) 18px;display:grid;grid-template-rows:auto .5fr auto 1fr auto 1fr auto}.masthead{grid-row:1;display:flex;align-items:center;justify-content:space-between;gap:var(--gap);padding-bottom:18px;border-bottom:1px solid var(--line)}.invitation{grid-row:3;padding:30px 0 18px}.game-grid{grid-row:5}.brand{display:block;height:72px;width:auto;mix-blend-mode:multiply}.cap-label{margin:0;font-family:var(--display);line-height:1;position:relative;top:.14em}.event-mark{font-size:15px}.event-dot{display:inline-block;width:7px;height:7px;margin-right:10px;background:var(--wax);border-radius:50%;vertical-align:calc(.34em - 3.5px)}.invitation .eyebrow{color:var(--wax);margin:0 0 12px}.invitation h1{font-family:var(--display);font-size:clamp(34px, 4.2vw, 58px);font-weight:400;line-height:1.06;letter-spacing:-.045em;margin:0 0 0 -2px}.invitation h1 em{color:var(--wax);font-style:normal}.narrow-break{display:none}.menu-hint{color:var(--muted);font-size:17px;line-height:1.5;margin:12px 0 0}.game-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap);align-content:center;padding-bottom:36px}.game-card{display:grid;grid-template-rows:auto 1fr;min-width:0;border:1px solid #c9bfab;border-radius:6px;overflow:hidden;color:var(--ink);background:var(--paper-bright);text-decoration:none;box-shadow:0 5px 0 -2px #e6ddcd;transition:transform .15s,box-shadow .15s}.game-card:hover{box-shadow:0 7px 0 -2px #ddd1bb}.game-card:active{transform:translateY(3px);box-shadow:0 2px 0 -1px #e6ddcd}.game-card:focus-visible{outline-offset:4px}.card-art{display:block;aspect-ratio:9/4;background:#e8e4d5;border-bottom:1px solid var(--line);overflow:hidden}.card-art img{display:block;width:100%;height:100%;object-fit:cover}.card-copy{display:flex;flex-direction:column;min-width:0;padding:18px 22px 16px}.card-copy h2{font-family:var(--display);font-size:26px;font-weight:400;line-height:1.15;margin:0 0 8px;overflow-wrap:anywhere}.card-copy p{font-size:15.5px;line-height:1.45;color:var(--muted);margin:0 0 14px}.card-best{margin-top:auto;padding-top:10px;font-family:var(--display);font-size:14px;color:var(--muted)}.card-best-title{display:block;margin-bottom:4px;font-family:var(--body);font-size:11px;font-weight:750;letter-spacing:.15em;text-transform:uppercase;color:var(--wax)}.card-board{list-style:none;margin:0;padding:0}.card-board .board-row{height:26px;grid-template-columns:1.6em 1fr auto;font-size:16px;color:var(--ink)}.card-board .board-row.is-empty{color:#b3a893}.card-board .board-rank{text-align:left}.card-best:not([hidden])+.card-play{margin-top:10px}.card-best[hidden]{display:none}.card-play{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:auto;padding-top:12px;border-top:1px dashed var(--line);font-size:15px;font-weight:700;color:var(--wax)}.card-arrow{font-size:22px;line-height:1;transition:transform .15s}.game-card:hover .card-arrow{transform:translateX(3px)}.menu-footer{grid-row:7;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px var(--gap);padding-top:16px;border-top:1px solid var(--line)}.footer-note{color:var(--muted);font-size:14px}.note-mark{width:1.1em;height:1.1em;margin:-1em 10px 0 0;vertical-align:calc(.34em - .55em);overflow:visible;fill:none;stroke:var(--brass);stroke-width:1.5;stroke-linecap:round}.menu-controls{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:stretch;gap:10px;margin-left:auto}.control{display:flex;align-items:center;justify-content:center;gap:12px;height:60px;min-width:60px;padding:0 18px;border:1px solid var(--line);border-radius:6px;background:#fffdf780;color:var(--ink);font:inherit;font-size:15px}.control svg{width:20px;height:20px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.6}.sound-toggle[aria-pressed=true]{background:#e3e7d9;border-color:#8e9c79}.switch{position:relative;flex-shrink:0;width:36px;height:22px;border-radius:11px;background:#c9c1af;transition:background .15s}.switch::after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fffdf7;box-shadow:0 1px 2px #282b2755;transition:transform .15s}[aria-pressed=true]>.switch{background:#5e7a46}[aria-pressed=true]>.switch::after{transform:translateX(14px)}.sound-toggle[aria-pressed=true] .sound-slash{display:none}.sound-volume{color:var(--muted);transition:opacity .15s}.sound-volume input{width:120px;height:60px;margin:-1px 0;accent-color:var(--wax);cursor:pointer}.sound-volume.is-off{opacity:.5}.sound-volume.is-off input{cursor:not-allowed}.stage{position:relative;flex:1;min-height:0;overflow:hidden}.game-mount,.game-mount iframe{width:100%;height:100%;border:0;display:block}.stage-status{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:28px;background:var(--paper);z-index:1;overflow-y:auto}.stage-status h1{font-family:var(--display);font-size:clamp(30px, 4vw, 48px);font-weight:400;margin-bottom:14px}.stage-status p{line-height:1.5}.stage-actions{display:flex;gap:12px;margin-top:16px}dialog{max-width:min(92vw,460px);padding:36px;border:1px solid #b4a78e;border-radius:8px;background:var(--paper);color:var(--ink);box-shadow:0 20px 90px #0004;text-align:center}dialog::backdrop{background:#282b2780}dialog h2{font-family:var(--display);font-size:32px;font-weight:400;line-height:1.2}dialog p{line-height:1.6}dialog .button{width:100%}.initials-dialog{max-width:min(92vw,480px);padding:28px 32px;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.initials-dialog button,.letter{touch-action:manipulation}.board-step,.sign-step{display:grid;gap:18px}.initials-dialog h2,.initials-dialog p{margin:0}.initials-dialog .eyebrow{color:var(--wax);margin-bottom:6px}.initials-dialog h2{margin-bottom:4px}.initials-dialog .initials-hint{margin-top:2px;font-size:13px;color:var(--muted);line-height:1.4}.initials{display:flex;justify-content:center;gap:14px}.letter-slot{display:grid;justify-items:center;gap:4px}.letter-step{width:72px;height:60px;display:grid;place-items:center;border:1px solid var(--line);border-radius:6px;background:var(--paper-bright);color:var(--ink)}.letter-step:active{background:#e8dfcc}.letter-step svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.letter{display:block;box-sizing:content-box;width:72px;height:1em;padding:.38em 0 .1em;font-family:var(--display);font-size:48px;line-height:1;text-align:center;color:var(--wax);border-radius:4px}.letter.is-blank{background:linear-gradient(var(--muted),var(--muted)) 50% 1.04em/.5em 3px no-repeat}.initials-actions{display:grid;grid-template-columns:1fr auto;gap:10px}.initials-dialog .button{min-height:60px}.initials-dialog .button:disabled{opacity:.45}.board-row{display:grid;grid-template-columns:2.2em 1fr auto;align-items:center;gap:8px;box-sizing:border-box;font-family:var(--display);line-height:1;padding-top:.28em}.board-rank{text-align:right;color:var(--muted)}.board-rank::after{content:"."}.board-score{text-align:right}.board-row.is-empty{color:#a99e88}.board-row.is-unsigned .board-name{color:var(--muted)}.board-list{list-style:none;margin:0;padding:0;position:relative;max-height:220px;overflow-y:auto;overscroll-behavior:contain;border-block:1px solid var(--line);text-align:left}.board-list .board-row{height:44px;padding-inline:14px 18px;font-size:21px}.board-list .board-row+.board-row{border-top:1px dashed var(--line)}.board-list .is-you{background:#f1dcd2;color:var(--wax)}.board-list .is-you .board-rank{color:inherit}.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);z-index:4;padding:14px 22px;max-width:90vw;background:var(--ink);color:var(--paper);border-radius:6px;font-size:15px;text-align:center}.noscript{position:fixed;bottom:0;left:0;right:0;margin:0;padding:24px;background:var(--wax);color:#fff;text-align:center}@media (min-width:1530px) and (min-height:1024px){.menu-page,.stage-status,.toast,dialog{zoom:1.125}}@media (min-width:1700px) and (min-height:1138px){.menu-page,.stage-status,.toast,dialog{zoom:1.25}}@media (min-width:2040px) and (min-height:1365px){.menu-page,.stage-status,.toast,dialog{zoom:1.5}}@media (min-width:2380px) and (min-height:1593px){.menu-page,.stage-status,.toast,dialog{zoom:1.75}}@media (min-width:2720px) and (min-height:1820px){.menu-page,.stage-status,.toast,dialog{zoom:2}}@media (min-width:3400px) and (min-height:2275px){.menu-page,.stage-status,.toast,dialog{zoom:2.5}}@media (orientation:landscape) and (max-height:760px){.menu-page{padding-top:18px}.brand{height:58px}.masthead{padding-bottom:14px}.invitation{padding:20px 0 12px}.invitation h1{font-size:clamp(32px, 3.6vw, 46px)}.menu-hint{font-size:16px;margin-top:8px}.game-grid{padding-bottom:28px}.card-copy{padding:16px 20px 14px}.card-copy h2{font-size:24px}}@media (orientation:landscape) and (min-height:561px) and (max-height:860px){.menu-page{padding-top:16px;padding-bottom:12px}.brand{height:60px}.masthead{padding-bottom:12px}.invitation{padding:18px 0 10px}.invitation .eyebrow{margin-bottom:8px}.menu-hint{margin-top:6px}.game-grid{padding-bottom:22px}.card-copy{padding:14px 22px 12px}.card-copy p{margin-bottom:8px}.card-best{padding-top:4px}.card-best:not([hidden])+.card-play{margin-top:8px}.card-play,.menu-footer{padding-top:10px}}@media (orientation:landscape) and (min-height:561px) and (max-height:780px){.menu-page{padding-top:10px;padding-bottom:8px}.brand{height:48px}.masthead{padding-bottom:10px}.invitation{padding:12px 0 8px}.invitation .eyebrow{margin-bottom:6px}.menu-hint{margin-top:4px}.game-grid{padding-bottom:16px}.card-copy{padding:12px 20px 10px}.card-copy h2{margin-bottom:4px}.card-copy p{margin-bottom:6px}.card-board .board-row{height:24px}.card-play{padding-top:8px}.card-best:not([hidden])+.card-play{margin-top:6px}.menu-footer{padding-top:8px}}@media (orientation:portrait) and (min-width:601px){.game-grid{grid-template-columns:minmax(0,1fr);gap:18px}.game-card{grid-template-columns:minmax(0,50%) minmax(0,1fr);grid-template-rows:none}.card-art{aspect-ratio:auto;min-height:100%;border-bottom:0;border-right:1px solid var(--line)}.invitation h1{font-size:clamp(40px, 6vw, 52px)}.menu-hint{font-size:18px}.card-copy{padding:22px 26px 18px}.card-copy h2{font-size:28px}.card-copy p{font-size:16.5px}.menu-footer{flex-direction:column;align-items:stretch}.menu-controls{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);margin-left:0}.sound-volume input{flex:1;width:auto;min-width:0}}@media (max-width:600px){.menu{--gutter:18px;--gap:16px}.menu-page{padding-top:16px}.masthead{padding-bottom:12px}.brand{height:50px}.event-mark{font-size:12px;text-align:right}.event-dot{margin-right:8px}.invitation{padding:20px 0 18px}.invitation .eyebrow{font-size:11px;margin-bottom:8px}.invitation h1{font-size:32px}.narrow-break{display:inline}.menu-hint{font-size:15px;margin-top:8px}.game-grid{grid-template-columns:minmax(0,1fr);align-content:start;padding-bottom:20px}.card-copy{padding:14px 18px 12px}.card-copy h2{font-size:23px;margin-bottom:6px}.card-copy p{font-size:15px;margin-bottom:12px}.menu-footer{flex-direction:column;align-items:stretch;gap:12px}.footer-note{font-size:13px}.menu-controls{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin-left:0}.control{padding:0 10px;gap:8px;font-size:14px}.sound-volume{grid-column:1/-1;grid-row:2}.sound-volume input{flex:1;width:auto}.fullscreen-button{grid-column:3;grid-row:1}[data-mode=web] .menu-controls{grid-template-columns:1fr 1fr}[data-mode=web] .fullscreen-button{grid-column:2}}@media (orientation:landscape) and (max-height:560px){.menu{--gutter:20px;--gap:14px}.menu-page{padding-top:10px;padding-bottom:8px}.masthead{padding-bottom:8px}.brand{height:36px}.event-mark{font-size:12px}.invitation{padding:10px 0 12px}.invitation .eyebrow,.menu-hint{display:none}.invitation h1{font-size:24px}.game-grid{padding-bottom:12px}.card-copy{flex-direction:row;align-items:center;gap:8px;padding:9px 14px}.card-copy h2{flex:1;font-size:18px;margin:0}.card-copy p{display:none}.card-play{margin:0;padding:0;border:0;font-size:0}.card-best{display:none}.card-best:not([hidden])+.card-play{margin-top:0}.card-arrow{font-size:20px}.menu-footer{padding-top:8px}.control{padding:0 14px;gap:10px;font-size:14px}.sound-volume input{width:96px}}@media (max-height:560px){.initials-dialog{max-width:min(94vw,640px);padding:16px 20px}.sign-step{grid-template-columns:1fr auto;grid-template-areas:"copy letters" "actions letters";align-items:center;gap:10px 22px;text-align:left}.initials-copy{grid-area:copy}.initials{grid-area:letters;gap:8px}.initials-actions{grid-area:actions;grid-template-columns:1fr;gap:8px}.initials-hint{display:none}.board-step{grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);grid-template-areas:"copy list" "done list";align-items:center;gap:10px 22px;text-align:left}.board-copy{grid-area:copy}.board-list{grid-area:list;max-height:176px}.board-done{grid-area:done}.initials-dialog h2{font-size:26px}.letter-step{width:64px}.letter{width:64px;font-size:38px}}@media (orientation:landscape) and (max-height:560px) and (max-width:820px){.footer-note{display:none}.menu-footer{justify-content:flex-end}}