.auth{align-content:start;justify-items:center;gap:var(--space-5);min-height:100dvh;padding:var(--space-10) var(--gutter-screen) var(--space-8);background:var(--surface-app);display:grid}.auth__brand{justify-items:center;gap:var(--space-2);text-align:center;display:grid}.auth__brand img{height:72px;display:block}.auth__brand h1{font:var(--fw-semibold) var(--text-display) / var(--lh-tight) var(--font-display);letter-spacing:var(--tracking-display)}.auth__brand p{font:var(--type-body);color:var(--text-muted);margin:0}.auth__card{gap:var(--space-3);width:100%;max-width:420px;display:grid}.auth__form{gap:var(--space-3);display:grid}.auth__divider{align-items:center;gap:var(--space-3);color:var(--text-faint);font:var(--type-label);letter-spacing:var(--tracking-label);text-transform:uppercase;display:flex}.auth__divider:before,.auth__divider:after{content:"";background:var(--n-100);flex:1;height:2px}.auth__error{font:var(--fw-semibold) var(--text-body-sm) / var(--lh-normal) var(--font-body);color:var(--boko-red)}.auth__links{gap:var(--space-2);text-align:center;font:var(--fw-semibold) var(--text-body-sm) / var(--lh-normal) var(--font-body);color:var(--text-muted);display:grid}.auth__links button{font:inherit;font-weight:var(--fw-bold);color:var(--text-link);cursor:pointer;background:0 0;border:none;padding:0}.auth__links button:hover{color:var(--text-link-hover);text-decoration:underline}.auth__google-mark{width:18px;height:18px;display:block}.splash{background:var(--surface-app);min-height:100dvh;padding:var(--gutter-screen);place-items:center;display:grid}.splash__dots{gap:var(--space-2);margin-top:var(--space-4);justify-content:center;display:flex}.splash__dots span{background:var(--boko-yellow);width:12px;height:12px;animation:boko-bob 1s infinite var(--ease-standard);border-radius:50%}.splash__dots span:nth-child(2){animation-delay:.15s}.splash__dots span:nth-child(3){animation-delay:.3s}.shell{background:var(--surface-app);min-height:100dvh;display:flex}.shell__side{display:none}.shell__frame{background:var(--surface-app);min-width:0;height:100dvh;padding-top:env(safe-area-inset-top);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);flex-direction:column;flex:1;display:flex;position:relative;overflow:hidden}.shell__nav{background:var(--surface-card);padding-bottom:env(safe-area-inset-bottom);flex:none}.shell__nav>nav{border-top:none}.shell__toasts{left:12px;right:12px;bottom:calc(64px + env(safe-area-inset-bottom));z-index:20;pointer-events:none;gap:8px;display:grid;position:absolute}.shell__toasts>*{pointer-events:auto}.shell__toasts--flush{bottom:12px}@media (width>=900px){.shell__side{gap:var(--space-1);width:var(--side-width);height:100dvh;padding:var(--space-6) var(--space-4);border-right:1px solid var(--border-soft);background:var(--surface-card);flex-direction:column;flex:none;display:flex;position:sticky;top:0}.shell__frame{max-width:var(--desktop-max)}.shell__nav{display:none}.shell__toasts{left:auto;right:var(--gutter-desktop);bottom:var(--gutter-desktop);width:360px}}.side__brand{align-items:center;gap:var(--space-2);padding:0 var(--space-3);margin-bottom:var(--space-5);color:var(--text-strong);font:var(--fw-semibold) var(--text-title) / 1 var(--font-display);letter-spacing:var(--tracking-display);display:flex}.side__brand img{height:32px;display:block}.side__item{align-items:center;gap:var(--space-3);height:var(--tap-min);padding:0 var(--space-4);border-radius:var(--radius-pill);color:var(--text-muted);cursor:pointer;text-align:left;font:var(--fw-semibold) var(--text-body-lg) / 1 var(--font-display);transition:background var(--dur-fast) var(--ease-standard), color var(--dur-fast) var(--ease-standard);background:0 0;border:none;display:flex}.side__item:hover{background:var(--surface-sunken);color:var(--text-strong)}.side__item[aria-current=page]{background:var(--boko-yellow);color:var(--boko-ink)}.side__item span:first-of-type{text-align:left;flex:1}.side__item--secondary{height:40px;font-size:var(--text-body-md)}.side__badge{border-radius:var(--radius-pill);background:var(--boko-red);min-width:20px;height:20px;color:var(--n-0);font:var(--fw-bold) var(--text-micro) / 20px var(--font-body);text-align:center;padding:0 6px}.side__group{margin:var(--space-4) var(--space-4) var(--space-2);font:var(--fw-bold) var(--text-label) / 1 var(--font-body);letter-spacing:var(--tracking-label);color:var(--text-faint);text-transform:uppercase}.side__foot{gap:var(--space-3);margin-top:auto;display:grid}.side__me{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-lg);background:var(--surface-sunken);cursor:pointer;text-align:left;border:none;display:flex}.side__me:hover{background:var(--n-100)}.side__me-name{font:var(--fw-semibold) var(--text-body-md) / 1.2 var(--font-display);color:var(--text-strong);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.side__me-handle{font:var(--fw-semibold) var(--text-body-sm) / 1.2 var(--font-body);color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.scroll{min-height:0;padding:var(--gutter-screen);flex:1;align-content:start;gap:14px;display:grid;overflow-y:auto}.section-title{justify-content:space-between;align-items:baseline;display:flex}.section-title h3{font:var(--fw-semibold) var(--text-title) / 1.1 var(--font-display)}.overline{margin-bottom:var(--space-2);font:var(--fw-bold) var(--text-label) / 1 var(--font-body);letter-spacing:var(--tracking-label);color:var(--text-muted)}.chip-row{align-items:center;gap:var(--space-2);scrollbar-width:none;min-height:38px;padding-bottom:2px;display:flex;overflow-x:auto}.chip-row::-webkit-scrollbar{display:none}.grid-2{gap:var(--gap-grid);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.grid-wide{gap:var(--gap-grid);grid-template-columns:repeat(auto-fill,minmax(300px,1fr));display:grid}@media (width>=600px){.grid-2{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.grid-3{grid-template-columns:repeat(auto-fill,minmax(132px,1fr))}}.stack{gap:var(--space-1);display:grid}.stack-14{align-content:start;gap:14px;display:grid}.scroll--centered{align-content:center}.cols{grid-template-columns:minmax(0,1fr);align-content:start;gap:14px;display:grid}.cols__main,.cols__aside{grid-template-columns:minmax(0,1fr);align-content:start;gap:14px;min-width:0;display:grid}@media (width>=1100px){.cols:not(.cols--rail){grid-template-columns:minmax(0, 1fr) var(--aside-width);gap:var(--space-6);align-items:start}.cols--aside-left:not(.cols--rail){grid-template-columns:var(--aside-width) minmax(0, 1fr)}.cols--aside-left:not(.cols--rail)>.cols__aside{order:-1}}@media (width>=1280px){.cols--rail{grid-template-columns:minmax(0, 1fr) var(--rail-width);gap:var(--space-8);align-items:start}}@media (width>=1100px){.cols__aside--sticky{position:sticky;top:0}}.split{gap:var(--space-6);min-height:0;padding:0 var(--gutter-desktop) var(--gutter-desktop);flex:1;grid-template-columns:minmax(320px,380px) minmax(0,1fr);display:grid}.split__list{flex-direction:column;min-height:0;display:flex}.split__list>.scroll{padding:0 4px 4px 0}.split__detail{border-radius:var(--radius-lg);background:var(--surface-card);min-height:0;box-shadow:var(--shadow-card);flex-direction:column;display:flex;overflow:hidden}.split__detail>.scroll{padding:var(--space-4)}.split__detail>header:first-child{border-bottom:1px solid var(--border-soft)}.table{background:var(--boko-ink);flex-direction:column;flex:1;min-height:0;display:flex}:-webkit-any(.table:fullscreen,.table:-webkit-full-screen){width:100%;max-width:none;height:100%;box-shadow:none;border-radius:0;margin:0}:is(.table:fullscreen,.table:fullscreen){width:100%;max-width:none;height:100%;box-shadow:none;border-radius:0;margin:0}@media (width>=900px){.scroll{padding:var(--space-1) var(--gutter-desktop) var(--gutter-desktop);gap:20px}.cols,.cols__main,.cols__aside{gap:20px}.scroll--narrow{--page-measure:var(--page-narrow)}.scroll--medium{--page-measure:var(--page-medium)}.scroll--narrow,.scroll--medium{padding-left:max(var(--gutter-desktop), calc((100% - var(--page-measure)) / 2));padding-right:max(var(--gutter-desktop), calc((100% - var(--page-measure)) / 2))}.shell__frame>main:has(>.scroll--narrow){--gutter-page:max(var(--gutter-desktop), calc((100% - var(--page-narrow)) / 2))}.shell__frame>main:has(>.scroll--medium){--gutter-page:max(var(--gutter-desktop), calc((100% - var(--page-medium)) / 2))}.split__detail>.scroll--narrow{padding-left:max(var(--space-4), calc((100% - var(--page-narrow)) / 2));padding-right:max(var(--space-4), calc((100% - var(--page-narrow)) / 2))}.table{margin:var(--space-6) var(--gutter-desktop) var(--gutter-desktop);border-radius:var(--radius-xl);box-shadow:var(--shadow-raised);width:min(100% - 2 * var(--gutter-desktop), 1120px);align-self:center;overflow:hidden}.shell__frame:has(.table--ship-wars,.table--domino,.table--four,.table--solitaire,.table--solitaire-duel,.table--buno,.table--mahjong,.table--mahjong-duel){max-width:none}.table--ship-wars,.table--domino,.table--four,.table--solitaire,.table--solitaire-duel,.table--buno,.table--mahjong,.table--mahjong-duel{align-self:stretch;width:auto}}.shell__skip:focus{clip:auto;z-index:30;border-radius:var(--radius-pill);background:var(--boko-yellow);width:auto;height:auto;color:var(--boko-ink);font:var(--fw-bold) var(--text-body-sm) / 1 var(--font-body);margin:0;padding:8px 12px;position:absolute;top:8px;left:8px;overflow:visible}.tourney{--surface-card:#20154a99;--surface-sunken:#ffffff0f;--text-strong:#fff;--text-muted:#ffffffbd;--text-faint:#ffffff85;--border-soft:#ffffff1f;--n-200:#ffffff29;--shadow-card:0 16px 36px -20px #000000c7, inset 0 1px 0 #ffffff14;background:radial-gradient(90% 55% at 84% 3%,#2ec8ff29,#0000 60%),radial-gradient(120% 72% at 10% 105%,#ff7a3d26,#0000 55%),linear-gradient(#0d0830 0%,#150b3c 55%,#1d0e44 100%)}.tourney__hero{background:radial-gradient(60% 90% at 20% -12%,#2ec8ff8c,#0000 55%),radial-gradient(80% 120% at 74% 128%,#ff8a3df2,#0000 60%),linear-gradient(158deg,#2a1c63 0%,#6a2bc9 30%,#d5318f 62%,#ff8a3d 100%);height:178px;position:relative;overflow:hidden}.tourney__hero:before{content:"";aspect-ratio:1;pointer-events:none;background:radial-gradient(circle,#ffe296eb 0 30%,#ff96464d 33% 46%,#0000 47%);width:148%;position:absolute;bottom:-52%;left:50%;transform:translate(-50%)}.tourney__hero:after{content:"";pointer-events:none;background:repeating-linear-gradient(#0000 0 9px,#ffffff12 9px 10px);height:46%;position:absolute;inset:auto 0 0;-webkit-mask:linear-gradient(#0000,#000);mask:linear-gradient(#0000,#000)}
