.turnstile{z-index:1000;pointer-events:none;place-items:center;display:grid;position:fixed;inset:0}.turnstile.shown{pointer-events:auto;background:#0009}.lobby.account{align-content:start;align-items:start;padding-top:0}.lobby.account>.site-bar{justify-self:stretch;margin:0 -16px 16px}.account-card{text-align:left;width:min(100%,460px)}.account-card h1,.account-card .lobby-eyebrow{text-align:center}.account h1{overflow-wrap:anywhere}.account h2{color:var(--gold);font:700 13px / 1.4 var(--gothic);letter-spacing:.18em;align-items:center;gap:10px;margin:26px 0 10px;display:flex}.account h2:after{content:"";background:var(--line);flex:1;height:1px}.account-tabs{grid-template-columns:repeat(3,1fr);gap:8px;margin:0 0 18px;display:grid}.account .account-tabs button{letter-spacing:.04em;white-space:nowrap;min-height:40px;padding-inline:4px;font-size:13px}.account .account-tabs button[aria-pressed=true]{--edge:var(--gold-hi);--fill:#1d1b14;color:var(--gold-hi)}.account-rating{justify-content:center;align-items:baseline;gap:14px;margin:-6px 0 6px;display:flex}.account-rank{color:var(--gold-hi);font:800 17px / 1.4 var(--mincho);letter-spacing:.16em}.account-number{color:var(--ink);font:700 34px / 1 var(--serif);letter-spacing:.04em}.account-stats{grid-template-columns:repeat(3,1fr);margin:14px 0 6px;display:grid}.account-stats div{text-align:center;padding:8px 0}.account-stats div+div{border-left:1px solid var(--line)}.account-stats dt{color:var(--muted);letter-spacing:.12em;font-size:11px}.account-stats dd{font:700 22px / 1.3 var(--serif);margin:0}.account .center{text-align:center}.account input.code{font:700 16px / 1 var(--serif);letter-spacing:.06em;text-transform:uppercase}.account input.code::placeholder{letter-spacing:.02em;font-size:13px}.account-transfer{border:1px solid var(--gold);text-align:center;background:#cdab6a0f;margin:4px 0 12px;padding:12px}.account-transfer .lobby-code{letter-spacing:.04em;text-indent:0;margin:0 0 8px;font-size:clamp(14px,4.4vw,20px)}.account-list{margin:0;padding:0;list-style:none}.account-list li{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:8px 4px;font-size:13px;display:grid}.account-history li{grid-template-columns:3.2em 1fr auto}.account-ranking li{grid-template-columns:2.4em 1fr auto 3.4em}.account-list .outcome{font:800 14px / 1 var(--mincho);text-align:center}.account-list .win{color:var(--gold-hi)}.account-list .loss{color:var(--muted)}.account-list .who{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.account-list small{color:var(--muted);font-size:11px;display:block}.account-list .delta{font:700 15px / 1 var(--serif);text-align:right}.account-list .practice{color:var(--muted);font:500 11px / 1.2 var(--gothic);letter-spacing:.1em}.account-list .place{color:var(--gold);font:700 17px / 1 var(--serif);text-align:center}.account-list .rate{font:700 16px / 1 var(--serif);text-align:right}.account-list .tier{color:var(--muted);font-size:11px}.account-list li.me{box-shadow:inset 2px 0 0 var(--gold);background:#cdab6a1a}.account-list li.gap{color:var(--muted);text-align:center;display:block}.account .danger{--edge:#f1ad9d80;color:var(--bad)}.account h2 small{color:var(--muted);font:700 12px / 1 var(--serif);letter-spacing:.04em}.account-achievements .mark{color:var(--gold-hi);font-size:15px}.account-achievements .locked{opacity:.55}.account-achievements .locked .mark{color:var(--muted)}.account-achievements .when{color:var(--muted);font:12px / 1.3 var(--serif);white-space:nowrap}.account-achievements li{text-align:left;grid-template-columns:1.4em 1fr auto}.account-achievements .who{white-space:normal}.account-achievements .progress{color:var(--gold-hi)}.lobby{--deep:#07090a;--panel:#0b100f;--line:#2a3631;--gold:#cdab6a;--gold-hi:#f3e2b3;--ink:#efe9dc;--muted:#8f9a94;--bad:#f1ad9d;--mincho:"Shippori Mincho B1", "Hiragino Mincho ProN", "Yu Mincho", serif;--gothic:"Zen Kaku Gothic New", "Hiragino Kaku Gothic ProN", "Yu Gothic", "Noto Sans JP", sans-serif;--serif:"Bodoni Moda", "Shippori Mincho B1", Georgia, serif;--cut:polygon(9px 0, calc(100% - 9px) 0, 100% 9px, 100% calc(100% - 9px), calc(100% - 9px) 100%, 9px 100%, 0 calc(100% - 9px), 0 9px);z-index:1;color:var(--ink);font:400 15px / 1.8 var(--gothic);letter-spacing:.02em;background:radial-gradient(90% 55% at 50% 0,#114a374d,#0000 70%),#07090ac7;grid-template-columns:minmax(0,1fr);align-content:safe center;place-items:center;padding:24px 16px;display:grid;position:absolute;inset:0;overflow:hidden auto}.lobby *,.lobby :before,.lobby :after{box-sizing:border-box}.lobby-card{isolation:isolate;text-align:center;width:min(100%,380px);clip-path:var(--cut);background:#cdab6ab3;padding:28px 24px 22px;position:relative}.lobby-card:before{content:"";z-index:-1;clip-path:var(--cut);background:linear-gradient(180deg, #101816, var(--panel));position:absolute;inset:1.5px}.lobby-eyebrow{color:var(--gold);font:italic 500 13px / 1.4 var(--serif);letter-spacing:.2em;margin:0}.lobby h1{font:800 22px / 1.4 var(--mincho);letter-spacing:.18em;background:linear-gradient(180deg, var(--gold-hi), var(--gold));color:#0000;-webkit-background-clip:text;background-clip:text;margin:4px 0 18px}.lobby p{margin:0 0 14px}.lobby .muted{color:var(--muted);font-size:13px}.lobby .error{color:var(--bad)}.lobby .ok{color:#9fd9bd}.lobby-actions{gap:12px;margin-top:8px;display:grid}.lobby button{--edge:#cdab6a8c;--fill:var(--deep);isolation:isolate;min-height:48px;clip-path:var(--cut);background:var(--edge);color:var(--ink);font:700 15px / 1 var(--gothic);letter-spacing:.12em;cursor:pointer;border:0;padding:0 18px;position:relative}.lobby button:before{content:"";z-index:-1;clip-path:var(--cut);background:var(--fill);position:absolute;inset:1px}.lobby button:hover,.lobby button:focus-visible{--edge:var(--gold);--fill:#1d1b14;outline:none}.lobby button.primary{--edge:var(--gold-hi);--fill:linear-gradient(180deg, #e2c584, #b48d4c);color:#2a1c06}.lobby button.link{min-height:36px;color:var(--gold);background:0 0;font-size:13px}.lobby button.link:before{background:0 0}.lobby button:disabled{opacity:.45;cursor:default}.lobby-name{color:var(--gold-hi);font:800 26px / 1.3 var(--mincho);letter-spacing:.1em;overflow-wrap:anywhere}.lobby .lobby-name{margin:0 0 2px}.lobby button.lobby-who{color:var(--gold-hi);font:700 14px / 1.4 var(--mincho);letter-spacing:.08em;margin:-10px 0 0}.lobby-who span{color:var(--muted);font:700 13px / 1 var(--serif);margin-left:.6em}.lobby-code{color:var(--gold-hi);font:700 54px / 1.1 var(--serif);letter-spacing:.14em;text-indent:.14em;-webkit-user-select:all;user-select:all;margin:4px 0 6px}.lobby-join{grid-template-columns:1fr auto;gap:10px;display:grid}.lobby input{border:1px solid var(--line);min-width:0;height:48px;color:var(--gold-hi);font:700 24px / 1 var(--serif);letter-spacing:.3em;text-align:center;background:#050707;padding:0 12px}.lobby input.text{font:500 16px / 1 var(--gothic);letter-spacing:.04em;text-align:left}.lobby input:focus{border-color:var(--gold);outline:none}.lobby-divider{color:var(--muted);align-items:center;gap:10px;margin:10px 0 2px;font-size:12px;display:flex}.lobby-divider:before,.lobby-divider:after{content:"";background:var(--line);flex:1;height:1px}.lobby-spinner{border:2px solid #cdab6a33;border-top-color:var(--gold);border-radius:50%;width:42px;height:42px;margin:2px auto 14px;animation:1.1s linear infinite lobby-spin}.lobby .lobby-slow{text-align:center}@keyframes lobby-spin{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){.lobby-spinner{animation-duration:4s}}.canvas-links{z-index:1;pointer-events:none;position:absolute;inset:0}.canvas-links a{pointer-events:auto;-webkit-tap-highlight-color:transparent}.canvas-cover{color:#0000;-webkit-user-select:none;user-select:none;font-size:1px;position:absolute;overflow:hidden}.canvas-cover:focus-visible{outline-offset:3px;outline:2px solid #f3e2b3}.canvas-row{white-space:nowrap;color:#efe9dc;letter-spacing:1px;align-items:center;font:400 12px/1 Zen Kaku Gothic New,Hiragino Kaku Gothic ProN,Yu Gothic,sans-serif;display:flex;position:absolute;transform:translate(-50%,-50%)}.canvas-row.intro{animation-name:canvas-row-in;animation-timing-function:cubic-bezier(.33,1,.68,1);animation-fill-mode:both}@keyframes canvas-row-in{0%{opacity:0}}.canvas-text{color:inherit;padding:8px 4px;text-decoration:none}.canvas-text:hover,.canvas-text:focus-visible{color:#cdab6a;text-underline-offset:3px;text-decoration:underline}.canvas-text:focus-visible{outline-offset:2px;outline:1px solid #cdab6a}
