.haps-btn{border:var(--stroke) solid var(--ink);border-radius:var(--wob-small);background:var(--btn-fill,var(--paper));box-shadow:var(--plate) var(--plate) 0 var(--btn-plate,var(--ink));cursor:pointer;text-align:center;touch-action:manipulation;line-height:1.2;transition:transform 80ms,box-shadow 80ms;display:block;position:relative}.haps-btn:active{transform:translate(var(--plate), var(--plate));box-shadow:0 0 0 var(--btn-plate,var(--ink))}.haps-btn:focus-visible{outline:3px solid var(--ruin);outline-offset:4px}.haps-btn:disabled{cursor:default}.card{border-radius:var(--wob-large);box-shadow:var(--plate) var(--plate) 0 var(--ink);color:var(--ink);touch-action:pan-y;cursor:grab;flex-direction:column;display:flex;position:relative;overflow:hidden}.card:after{content:"";border:var(--heavy) solid var(--ink);border-radius:var(--wob-large);pointer-events:none;position:absolute;inset:0}.card.dragging{cursor:grabbing;transition:none}.card-offer{background:var(--punch);padding:var(--s5);flex-direction:column;flex:1;min-height:0;display:flex}.card-cost{background:var(--ruin);color:var(--paper);border-top:var(--heavy) solid var(--ink);padding:var(--s5)}.card-name{font-family:var(--display);letter-spacing:-.035em;margin-top:var(--s4);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:34px;font-weight:800;line-height:1;display:-webkit-box;overflow:hidden}.card-task{font-family:var(--ui);margin-top:var(--s3);-webkit-line-clamp:4;-webkit-box-orient:vertical;font-size:19px;font-weight:600;line-height:1.3;display:-webkit-box;overflow:hidden}.card-task b{font-family:var(--display);font-weight:800}.tag{font-family:var(--ui);border:var(--hairline) solid var(--ink);border-radius:var(--wob-pill);background:var(--paper);color:var(--ink);padding:3px 12px;font-size:12px;font-weight:600;line-height:1.3;display:inline-block}.tag-ink{background:var(--ink);color:var(--paper)}.badge{align-items:flex-end;gap:var(--s3);display:flex}.badge-figure{font-family:var(--display);letter-spacing:-.05em;color:var(--ink);background:var(--paper);border:var(--heavy) solid var(--ink);border-radius:var(--wob-small);padding:8px 12px 6px;font-size:44px;font-weight:800;line-height:.85}.badge-caption{width:96px;padding-bottom:var(--s2)}.board{flex-wrap:wrap;gap:4px;display:flex}.pl{background:var(--paper);border:2px solid var(--ink);text-align:center;border-radius:14px 16px 14px 17px/17px 14px 16px;flex:1 1 0;min-width:0;padding:5px 4px 6px;position:relative}.pl.turn{background:var(--lager)}.pl.lead{background:var(--punch);color:var(--paper)}.pl.hit{background:var(--ruin);color:var(--paper)}.pl.busy{box-shadow:inset 0 0 0 3px var(--punch)}.pl-nm{white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:10px;font-weight:600;line-height:1;overflow:hidden}.pl-pt{font-family:var(--display);font-size:17px;font-weight:800;line-height:1.1}.pl-bar{background:var(--ink-12);border-radius:3px;height:3px;margin-top:3px;overflow:hidden}.pl-bar i{background:var(--punch);height:100%;transition:width var(--t-count) ease;display:block}.pl.lead .pl-bar i{background:var(--paper)}.pl-cd{background:var(--punch);color:var(--paper);border:2px solid var(--ink);width:18px;height:18px;font-family:var(--display);text-align:center;border-radius:50%;font-size:10px;font-weight:800;line-height:14px;position:absolute;top:-5px;right:-3px}.board.compact .pl{flex:0 0 calc(20% - 3.2px);padding:3px 2px 4px}.board.compact .pl-nm,.board.compact .pl-bar{display:none}.board.compact .pl-pt{font-size:13px}.overlay{text-align:center;padding:var(--s4);border:var(--heavy) solid var(--ink);border-radius:var(--wob-large);background:var(--lager);flex-direction:column;justify-content:center;align-items:center;gap:10px;display:flex;position:absolute;inset:0;overflow:auto}.overlay.ruin{background:var(--ruin);color:var(--paper)}.overlay.punch{background:var(--punch);color:var(--paper)}.overlay.soda{background:var(--soda)}.overlay.ink{background:var(--ink);color:var(--newsprint);border-color:var(--ink)}.overlay h3{font-family:var(--display);letter-spacing:-.04em;margin:0;font-size:34px;font-weight:800;line-height:.95}.overlay p{max-width:26ch;margin:0;font-size:14px}.pick{flex-wrap:wrap;justify-content:center;gap:5px;width:100%;display:flex}.pick button{background:var(--newsprint);border:2px solid var(--ink);cursor:pointer;color:var(--ink);border-radius:11px;flex:0 0 calc(25% - 4px);padding:5px 2px}.pick button span{font-size:9px;font-weight:600;line-height:1.1;display:block}.pick.trio button{flex-basis:calc(33.333% - 4px);padding:8px 3px}.pick.duo button{flex-basis:calc(50% - 4px);padding:10px 4px}.row{align-items:center;gap:var(--s3);background:var(--paper);border:var(--hairline) solid var(--ink);border-radius:var(--wob-small);padding:var(--s2) var(--s3);display:flex}.icon-pill{padding:var(--s1);cursor:pointer;background:0 0;border:0;flex:none;align-items:center;display:inline-flex}.icon-pill:focus-visible{outline:3px solid var(--ruin);outline-offset:2px}.pill-paper{padding:var(--s1) var(--s2);background:var(--paper);border:var(--hairline) solid var(--ink);border-radius:var(--wob-pill);align-items:center;display:inline-flex}.working{align-items:center;display:inline-flex}.working i{background:var(--working,var(--ink));opacity:.3;animation:.78s step-end infinite working-step;display:block}@keyframes working-step{0%{opacity:1}33.34%{opacity:.3}}@media (prefers-reduced-motion:reduce){.working i{animation:none}}.text-link{align-items:center;gap:var(--s2);padding:var(--s3) var(--s2);cursor:pointer;font-family:var(--ui);color:var(--ink-60);background:0 0;border:0;font-size:14px;font-weight:600;line-height:1.2;display:inline-flex}.text-link.on-dark{color:var(--paper)}.text-link:focus-visible{outline:3px solid var(--ruin);outline-offset:2px}.sheet{z-index:50;justify-content:center;display:flex;position:fixed;inset:0;overflow:auto}.sheet.sheet-page{min-height:100dvh;position:relative;inset:auto;overflow:visible}body.sheet-open>:not(.sheet){visibility:hidden}body.page-sheet>:not(.sheet-page){display:none!important}.splash{background:var(--lager);padding:var(--s6);cursor:pointer;flex-direction:column;flex:1;align-items:center;min-height:0;display:flex}.splash-crowd{flex:6 1 0;justify-content:center;align-items:center;width:100%;min-height:0;display:flex;container-type:size}.splash-canvas{aspect-ratio:356/244;width:min(100cqw,356px,145.902cqh);position:relative}.splash-guest{aspect-ratio:1;width:21.3483%;position:absolute}.splash-tile{background:var(--paper);border:var(--stroke) solid var(--ink);border-radius:var(--wob-small);width:100%;height:100%;box-shadow:var(--plate) var(--plate) 0 var(--guest-plate,var(--ink));justify-content:center;align-items:center;display:flex}.splash-tile img{width:63%;height:63%;display:block}.pop-in{animation:pop-in var(--pop-duration,.6s) both;animation-delay:var(--pop-delay,0s);animation-timing-function:cubic-bezier(.34,1.4,.64,1)}@keyframes pop-in{0%{opacity:0;transform:scale(0)}50%{opacity:1}to{opacity:1;transform:scale(1)}}.bob{animation:2.6s ease-in-out infinite bob;animation-delay:var(--bob-delay,0s)}@keyframes bob{0%,to{transform:translateY(0)}25%{transform:translateY(-4px)}75%{transform:translateY(4px)}}@media (prefers-reduced-motion:reduce){.pop-in,.bob{animation:none}}.lobby{background:var(--lager);min-height:0;padding:var(--s5) 0;flex-direction:column;flex:1 1 0;display:flex}.lobby-margin{padding:0 var(--s5)}.lobby-scroll{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;flex:1 1 0;min-height:0;overflow-y:auto}.lobby-scroll-inner{min-height:100%;padding:0 var(--s5);flex-direction:column;align-items:stretch;display:flex}.lobby-scroll-inner.centred{justify-content:center}.lobby-more{height:var(--hairline);background:var(--ink-30);transition:opacity var(--t-spring-back) ease}.step-bar{background:var(--ink-12);border-radius:3px;flex:1;height:6px}.step-bar.reached{background:var(--ink)}.player-row{align-items:center;gap:var(--s3);text-align:left;background:var(--paper);border:var(--hairline) solid var(--ink);border-radius:var(--wob-small);width:100%;padding:var(--s2) var(--s3);margin-bottom:var(--s2);cursor:pointer;color:var(--ink);display:flex}.player-row:focus-visible{outline:3px solid var(--ruin);outline-offset:2px}.player-name{min-width:0;font-family:var(--display);letter-spacing:-.03em;white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:18px;font-weight:800;line-height:1.1;overflow:hidden}.haps-field{background:var(--paper);border:var(--stroke) solid var(--ink);border-radius:var(--wob-small);width:100%;min-width:0;padding:12px var(--s4);font-family:var(--ui);color:var(--ink);caret-color:var(--ink);-webkit-user-select:text;user-select:text;resize:none;-webkit-appearance:none;appearance:none;outline:none;font-size:16px;font-weight:400;line-height:1.55;display:block}.haps-field::placeholder{color:var(--ink-30)}.haps-field.missing{border-color:var(--ruin)}.haps-field.error{border-width:4px}.plate-btn{background:var(--paper);border:var(--stroke) solid var(--ink);border-radius:var(--wob-small);box-shadow:var(--plate) var(--plate) 0 var(--ink);cursor:pointer;color:var(--ink);touch-action:manipulation;flex:none;justify-content:center;align-items:center;transition:transform 80ms,box-shadow 80ms;display:flex}.plate-btn:active{transform:translate(var(--plate), var(--plate));box-shadow:0 0 0 var(--ink)}.plate-btn:focus-visible{outline:3px solid var(--ruin);outline-offset:4px}.preset{align-items:center;gap:var(--s1);cursor:pointer;background:0 0;border:0;flex-direction:column;padding:0;display:flex}.preset-plate{width:72px;padding:var(--s3) 0;text-align:center;background:var(--paper);border:var(--stroke) solid var(--ink);border-radius:var(--wob-small);font-family:var(--display);letter-spacing:-.03em;color:var(--ink);font-size:18px;font-weight:800;line-height:1.1}.preset.selected .preset-plate{background:var(--punch);color:var(--paper);box-shadow:var(--plate) var(--plate) 0 var(--ink)}.freq-tile{text-align:left;align-items:flex-start;gap:var(--s1);padding:var(--s4);background:var(--paper);border:var(--stroke) solid var(--ink);border-radius:var(--wob-small);cursor:pointer;color:var(--ink);flex-direction:column;display:flex}.freq-tile.selected{background:var(--ink);color:var(--paper)}.freq-tile .t-meta{color:var(--ink-60)}.freq-tile.selected .t-meta{color:var(--paper-dim)}.pack-tile{align-items:center;gap:var(--s3);text-align:left;width:100%;padding:var(--s4);background:var(--paper);border:var(--stroke) solid var(--ink);border-radius:var(--wob-large);color:var(--ink);cursor:pointer;display:flex}.pack-tile.selected{background:var(--soda);box-shadow:var(--plate) var(--plate) 0 var(--ink)}.pack-tile.locked{opacity:.55;cursor:default}.pack-tile:focus-visible,.freq-tile:focus-visible,.preset:focus-visible,.kind-tile:focus-visible{outline:3px solid var(--ruin);outline-offset:4px}.buy-pill{align-items:center;gap:var(--s2);padding:var(--s1) var(--s3);background:var(--soda);border:var(--hairline) solid var(--ink);border-radius:var(--wob-pill);white-space:nowrap;display:inline-flex}.coming-pill{padding:var(--s1) var(--s3);background:var(--paper);border:var(--hairline) solid var(--ink-30);border-radius:var(--wob-pill);white-space:nowrap;display:inline-block}.suggest{background:var(--newsprint);padding:var(--s5);flex-direction:column;flex:1;align-items:stretch;display:flex}.kind-tile{text-align:left;align-items:flex-start;gap:var(--s1);padding:var(--s4);background:var(--newsprint);border:var(--hairline) solid var(--ink-30);border-radius:var(--wob-small);cursor:pointer;color:var(--ink-60);flex-direction:column;display:flex}.kind-tile.selected{background:var(--paper);border:var(--heavy) solid var(--ink);box-shadow:var(--plate) var(--plate) 0 var(--ink);color:var(--ink)}.buy-sheet{gap:var(--s4);background:var(--soda);padding:var(--s5) var(--s4);flex-direction:column;flex:1;min-height:100dvh;display:flex}.buy-head{justify-content:space-between;align-items:center;gap:var(--s3);display:flex}.buy-checkout-panel{background:var(--paper);border:var(--heavy) solid var(--ink);border-radius:var(--wob-large);box-shadow:var(--plate) var(--plate) 0 var(--ink);padding:var(--s3);overflow:hidden}.buy-working{justify-content:center;align-items:center;gap:var(--s2);padding:var(--s7) 0;display:flex}.code-field{text-align:center;font-family:var(--display);letter-spacing:.12em;font-size:28px;font-weight:800}.install-hint{align-items:center;gap:var(--s1);width:100%;max-width:300px;padding:var(--s2) var(--s1) var(--s2) var(--s3);color:var(--ink);background:var(--paper);border:var(--hairline) solid var(--ink);border-radius:var(--wob-small);box-shadow:var(--plate) var(--plate) 0 var(--ink);line-height:1.3;display:flex}.install-hint-open{align-items:center;gap:var(--s3);text-align:left;cursor:pointer;background:0 0;border:0;flex:1;padding:0;display:flex}.install-hint-mark{flex:none}.install-hint-open u{text-underline-offset:2px;white-space:nowrap;text-decoration-thickness:1.5px}.install-hint-close{cursor:pointer;background:0 0;border:0;flex:none;place-items:center;width:36px;height:36px;padding:0;display:grid}.install-perks{justify-content:center;gap:var(--s2);margin-top:var(--s4);flex-wrap:wrap;display:flex}.install-now{width:100%;max-width:340px;margin-top:var(--s6)}.install-or{margin-top:var(--s4)}.install-steps{margin:var(--s6) 0 0;gap:var(--s4);text-align:left;flex-direction:column;width:100%;max-width:340px;padding:0;list-style:none;display:flex}.install-step{align-items:center;gap:var(--s3);padding:var(--s3) var(--s3) var(--s3) var(--s3);background:var(--paper);border:var(--hairline) solid var(--ink);border-radius:var(--wob-small);box-shadow:var(--plate) var(--plate) 0 var(--ink);font-size:15px;line-height:1.35;display:flex}.install-step-n{width:32px;height:34px;font-family:var(--display);letter-spacing:-.03em;color:var(--paper);background:var(--ink);border-radius:12px 15px 13px 16px/16px 12px 15px 13px;flex:none;place-items:center;font-size:19px;font-weight:800;display:grid}.install-step-text{flex:1;min-width:0}.install-step-mark{min-width:48px;height:48px;padding:0 var(--s1);background:var(--newsprint);border-radius:14px 17px 15px 18px/18px 14px 17px 15px;flex:none;place-items:center;display:grid}.install-chip{font-family:var(--ui);border:var(--hairline) solid var(--ink);border-radius:var(--wob-pill);background:var(--paper);padding:3px 10px;font-size:13px;font-weight:600}.game{min-height:0;height:calc(100dvh - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));flex-direction:column;flex:1 1 0;display:flex;position:relative;overflow:hidden}.game-stage{flex-direction:column;flex:1 1 0;min-height:0;display:flex}.game-layer{z-index:10;flex-direction:column;animation:.18s ease-out layer-in;display:flex;position:absolute;inset:0}@keyframes layer-in{0%{opacity:0}to{opacity:1}}.corners{top:var(--s2);left:var(--s4);right:var(--s4);align-items:flex-start;gap:var(--s2);pointer-events:none;display:flex;position:absolute}.corners>*{pointer-events:auto}.corners-left{gap:var(--s2);flex-wrap:wrap;flex:1;display:flex}.corner-right{top:var(--s2);right:var(--s4);position:absolute}.handoff{background:var(--lager);min-height:0;color:var(--ink);text-align:center;padding:var(--s6);flex-direction:column;flex:1 1 0;justify-content:center;align-items:center;display:flex;position:relative;overflow:auto}.handoff-face{animation:handoff-face-in .62s var(--spring) both}.handoff-face-idle{animation:1.6s ease-in-out .62s infinite handoff-beckon}@keyframes handoff-face-in{0%{opacity:0;transform:translateY(46px)scale(.7)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes handoff-beckon{0%{transform:translateY(0)rotate(0)}25%{transform:translateY(-7px)rotate(2.9deg)}50%{transform:translateY(0)rotate(0)}75%{transform:translateY(-7px)rotate(-2.9deg)}to{transform:translateY(0)rotate(0)}}.reveal{animation:reveal-up var(--reveal-ms,.4s) ease-out var(--reveal-delay,0s) both}@keyframes reveal-up{0%{opacity:0;transform:translateY(35%)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.handoff-face,.handoff-face-idle,.reveal{animation:none}}.card-stage{min-height:0;padding:10px var(--s5) var(--s5);flex-direction:column;flex:1 1 0;display:flex}.card-drag{will-change:transform;flex-direction:column;flex:1 1 0;min-height:0;display:flex}.card-fit{flex-direction:column;flex:1 1 0;align-items:center;min-height:0;display:flex}.card-fit .card{touch-action:none;flex:1 1 0;width:100%;min-height:0}.card-drag.settling{transition:transform var(--t-spring-back) var(--spring)}.card-footer{text-align:center;margin-top:var(--s2)}.draw{background:var(--lager);min-height:0;color:var(--ink);text-align:center;padding:var(--s6);flex-direction:column;flex:1 1 0;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.draw-face{width:96px;height:96px;position:relative}.draw-face canvas{pointer-events:none;width:360px;height:360px;margin:-180px 0 0 -180px;position:absolute;top:50%;left:50%}.draw-face.landed img{animation:draw-pop .9s var(--spring) both}@keyframes draw-pop{0%{transform:scale(.6)}to{transform:scale(1)}}@media (prefers-reduced-motion:reduce){.draw-face.landed img{animation:none}}.table-mode{flex:1 1 0;min-height:0;position:relative;overflow:hidden}.table-mode-box{flex-direction:column;display:flex;position:absolute}.table-layout{gap:var(--s5);min-height:0;padding:var(--s5);flex:1 1 0;height:100%;display:flex}.table-leading{flex:0 0 30%;align-items:stretch;min-width:0;display:flex}.table-main{text-align:center;flex-direction:column;flex:1 1 0;align-items:center;min-width:0;display:flex}.table-heading{flex:1 1 0;justify-content:center;align-items:stretch;width:100%;min-height:0;display:flex;overflow:hidden}.table-heading>span{font-family:var(--display);letter-spacing:-.04em;width:100%;font-weight:800;line-height:1.02;display:block}.table-banner{font-family:var(--display);letter-spacing:-.05em;font-size:96px;font-weight:800;line-height:.9}.table-line{font-family:var(--ui);margin-top:var(--s1);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:22px;font-weight:600;line-height:1.3;display:-webkit-box;overflow:hidden}.table-line.points{text-decoration:underline;text-decoration-color:var(--punch);text-underline-offset:3px;text-decoration-thickness:3px}.table-scrawl{font-family:var(--scrawl);transform:rotate(var(--scrawl-tilt));margin-bottom:var(--s2);font-size:34px;font-weight:700;line-height:1;display:inline-block}.table-actions{justify-content:center;gap:var(--s2) var(--s3);margin-top:var(--s4);flex-wrap:wrap;display:flex}.table-plate{cursor:pointer;background:0 0;border:0;flex-direction:column;align-items:center;padding:0;display:flex}.table-plate-face{padding:var(--s2);background:var(--paper);border:var(--stroke) solid var(--ink);border-radius:var(--wob-small)}.table-plate-name{font-family:var(--display);letter-spacing:-.03em;margin-top:var(--s1);white-space:nowrap;text-overflow:ellipsis;max-width:100%;height:28px;font-size:24px;font-weight:800;line-height:1.1;overflow:hidden}.table-pick{gap:var(--s5);min-height:0;padding:var(--s5);flex:1 1 0;height:100%;display:flex}.table-pick-words{text-align:center;flex-direction:column;flex:2 1 0;justify-content:center;align-items:center;min-width:0;display:flex}.table-pick-grid{flex:5 1 0;align-items:stretch;min-width:0;display:flex;position:relative}.table-pick-wrap{justify-content:center;gap:var(--s3);flex-wrap:wrap;width:100%;display:flex}.tsheet{background:var(--newsprint);color:var(--ink);flex-direction:column;flex:1 1 0;min-height:0;display:flex}.tsheet-scroll{min-height:0;padding:var(--s5) var(--s5) var(--s4);flex:1 1 0;overflow:auto}.tsheet-foot{padding:0 var(--s5) var(--s4)}.tsheet-h{font-family:var(--display);letter-spacing:-.03em;margin:0 0 var(--s2);font-size:18px;font-weight:800;line-height:1.1}.tsheet-row{background:var(--paper);border:var(--hairline) solid var(--ink);border-radius:var(--wob-small);padding:var(--s3);margin-bottom:var(--s2)}.tsheet-input{background:var(--paper);border:var(--stroke) solid var(--ink-60);border-radius:var(--wob-small);min-width:0;padding:10px var(--s4);font-family:var(--ui);color:var(--ink);outline:none;flex:1;font-size:16px}.tsheet-input.missing,.tsheet-input:focus-visible{border-color:var(--ink)}.dice{background:var(--lager);min-height:0;color:var(--ink);text-align:center;padding:var(--s6);flex-direction:column;flex:1 1 0;justify-content:center;align-items:center;display:flex}.die.landed{animation:die-pop .62s var(--spring) both}@keyframes die-pop{0%{transform:scale(.7)}to{transform:scale(1)}}@media (prefers-reduced-motion:reduce){.die.landed{animation:none}}.summary{min-height:0;padding:var(--s6);flex-direction:column;flex:1 1 0;display:flex;overflow:auto}.share-frame{background:var(--newsprint);padding:var(--s4)}.share-card{background:var(--paper);border:var(--heavy) solid var(--ink);border-radius:var(--wob-large);width:270px;height:480px;box-shadow:var(--plate) var(--plate) 0 var(--ink);padding:var(--s5);text-align:center;color:var(--ink);flex-direction:column;justify-content:center;align-items:center;margin:0 auto;display:flex}
