@font-face{font-family:Barlow Condensed;src:url(/fonts/BarlowCondensed-Black.ttf) format("truetype");font-weight:900;font-style:normal;font-display:swap}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #0d0d0d;--surface: #161616;--surface-2: #121212;--border: #2d2d2d;--text: #ffffff;--text-muted: #8A8A8A;--primary: #6A35FF;--primary-hover: #4A25B3;--primary-edge: #351A80;--primary-light: #20104D;--accent: #FFCB45;--accent-edge: #B38E30;--accent-light: #4D3D15;--success: #3BFFAD;--success-edge: #29B379;--success-light: #124D34;--danger: #FF426F;--danger-edge: #B32E4E;--warning: #FFCB45;--card-back: #6A35FF;--card-back-2: #AA3FFF;--elevation: 5px;--shadow-sm: 0 1px 3px rgba(0,0,0,.6);--shadow: 0 4px 8px rgba(0,0,0,.6);--shadow-lg: 0 10px 24px rgba(0,0,0,.7);--radius: 8px;--radius-sm: 4px;--font: system-ui, -apple-system, "Segoe UI", sans-serif;--transition: .15s ease}html,body{height:100%}body{font-family:var(--font);background:var(--bg);color:var(--text);line-height:1.5;-webkit-font-smoothing:antialiased}#root{height:100%}.screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1rem}.screen--home{background:var(--bg)}.home-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:2.5rem 2rem;width:100%;max-width:400px;box-shadow:6px 6px 0 0 var(--primary-edge)}.home-header{text-align:center;margin-bottom:1rem}.home-footer{display:flex;align-items:center;justify-content:space-between;margin-top:1.25rem;gap:.5rem}.home-mute-btn{flex-shrink:0}.logo-flip-scene{perspective:900px;cursor:pointer;-webkit-tap-highlight-color:transparent;outline:none;overflow:visible;display:block}.logo-flip-scene:focus-visible{outline:2px solid var(--primary);outline-offset:4px;border-radius:4px}.logo-flip-card{width:100%;height:100%;position:relative;transform-style:preserve-3d;transition:transform .55s cubic-bezier(.4,0,.2,1)}.logo-flip-card--flipped{transform:rotateY(180deg)}.logo-flip-face{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;backface-visibility:hidden;-webkit-backface-visibility:hidden}.logo-flip-face--back{transform:rotateY(180deg)}.home-subtitle{color:var(--text-muted);font-size:.9rem;margin-top:.25rem}.home-form{display:flex;flex-direction:column;gap:1rem}.home-error{color:var(--danger);font-size:.85rem;text-align:center}.home-btn{width:100%}.home-divider{display:flex;align-items:center;gap:.75rem;color:var(--text-muted);font-size:.8rem}.home-divider:before,.home-divider:after{content:"";flex:1;height:1px;background:var(--border)}.home-join-row{display:flex;gap:.5rem;align-items:stretch}.home-join-row .input-group{flex:1;display:flex;flex-direction:column}.home-join-row .input-group .input-field{flex:1}.home-code-input{font-size:1.1rem!important;text-transform:uppercase;letter-spacing:.15em;text-align:center;padding:.65rem 1rem!important}.home-tagline{text-align:center;color:var(--text-muted);font-size:.78rem;margin-top:1.5rem}.home-invite-code{display:flex;flex-direction:column;align-items:center;gap:.25rem;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);padding:.75rem 1.25rem;margin-bottom:.25rem}.home-invite-code-label{font-size:.72rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.home-invite-code-value{font-size:2rem;font-weight:800;letter-spacing:.2em;color:var(--primary);font-family:monospace}.home-switch-link{background:none;border:none;color:var(--text-muted);font-size:.78rem;cursor:pointer;text-decoration:underline;text-underline-offset:2px;padding:0;transition:color var(--transition)}.home-switch-link:hover{color:var(--text)}.lobby-v2{background:#111;min-height:100dvh;display:flex;align-items:stretch;justify-content:center}.lobby-v2-inner{width:100%;max-width:1200px;height:100dvh;display:flex;flex-direction:column;overflow:hidden;border-inline:.5px solid #2a2a2a}.lv2-header{display:flex;align-items:center;gap:.75rem;padding:0 1rem;height:52px;flex-shrink:0;border-bottom:.5px solid #2a2a2a}.lv2-header .lv2-ready-count{margin-left:auto}.lv2-header-actions{display:flex;align-items:center;gap:.4rem}.lv2-logo{display:block;flex-shrink:0}.lv2-code-pill{display:flex;align-items:center;gap:.5rem;background:#1a1a1a;border:.5px solid #2a2a2a;border-radius:999px;padding:.28rem .4rem .28rem .75rem;justify-self:center}.lv2-code-text{font-size:.88rem;font-weight:800;letter-spacing:.22em;color:var(--primary);font-family:monospace;line-height:1}.lv2-copy-btn{background:var(--primary-light);color:var(--primary);border:none;border-radius:999px;padding:.22rem .65rem;font-size:.72rem;font-weight:700;cursor:pointer;transition:background var(--transition),color var(--transition),transform .1s;white-space:nowrap;font-family:var(--font)}.lv2-copy-btn:hover{background:var(--primary);color:#fff}.lv2-copy-btn:active{transform:scale(.96)}.lv2-ready-count{font-size:.78rem;font-weight:600;color:var(--text-muted);white-space:nowrap;justify-self:end}.lv2-ribbon{display:flex;align-items:flex-start;gap:.5rem;padding:.65rem 1rem;overflow-x:auto;overflow-y:hidden;flex-shrink:0;border-bottom:.5px solid #2a2a2a;scrollbar-width:thin;scrollbar-color:#2a2a2a transparent}.lv2-ribbon::-webkit-scrollbar{height:3px}.lv2-ribbon::-webkit-scrollbar-thumb{background:#2a2a2a;border-radius:2px}.lv2-ribbon-empty{font-size:.78rem;color:var(--text-muted);margin:auto;padding:.25rem 0}.lv2-chip{display:flex;flex-direction:column;align-items:center;gap:.18rem;flex-shrink:0;width:66px;position:relative;transition:opacity var(--transition)}.lv2-chip--away{opacity:.4}.lv2-chip-ring{width:36px;height:36px;border-radius:50%;border:2px solid transparent;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:border-color var(--transition)}.lv2-chip-ring--ready{border-color:var(--success)}.lv2-chip-ring--me{border-color:var(--primary)}.lv2-chip-name{font-size:.66rem;font-weight:500;color:var(--text);max-width:62px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center;line-height:1.2}.lv2-chip-status{font-size:.58rem;font-weight:600;color:var(--text-muted);line-height:1}.lv2-chip-status--ready{color:var(--success)}.lv2-chip-kick{position:absolute;top:-3px;right:3px;background:none;border:none;color:var(--text-muted);font-size:.58rem;cursor:pointer;padding:2px 3px;line-height:1;border-radius:2px;opacity:0;transition:opacity var(--transition),color var(--transition)}.lv2-chip:hover .lv2-chip-kick{opacity:1}.lv2-chip-kick:hover{color:var(--danger)}.lv2-body{flex:1;min-height:0;display:flex;overflow:hidden}.lv2-settings{flex:1;min-width:0;overflow-y:auto;padding:1rem 1.25rem;display:flex;flex-direction:column;gap:1rem;scrollbar-width:thin;scrollbar-color:#2a2a2a transparent;border-right:.5px solid #2a2a2a}.lv2-code-section{display:flex;flex-direction:column;align-items:center;gap:.6rem;padding:1rem 1.25rem;background:#161616;border:.5px solid #2a2a2a;border-radius:var(--radius);text-align:center}.lv2-code-section .lv2-label{margin-bottom:0}.lv2-code-value{font-size:2.75rem;font-weight:800;letter-spacing:.25em;color:var(--primary);font-family:monospace;line-height:1}.lv2-code-copy-btn{width:100%;background:var(--primary-light);color:var(--primary);border:1px solid var(--primary);border-radius:var(--radius-sm);padding:.4rem .8rem;font-size:.8rem;font-weight:700;font-family:var(--font);cursor:pointer;transition:transform .12s ease-in-out,box-shadow .12s ease-in-out,background var(--transition),color var(--transition);box-shadow:3px 3px 0 0 var(--primary-edge)}.lv2-code-copy-btn:hover{transform:translate(-1px,-1px);box-shadow:4px 4px 0 0 var(--primary-edge);background:var(--primary);color:#fff}.lv2-code-copy-btn:active{transform:translate(3px,3px);box-shadow:none}.lv2-section{display:flex;flex-direction:column;gap:.45rem}.lv2-label{font-size:.68rem;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--text-muted)}.lv2-host-note{font-weight:400;text-transform:none;letter-spacing:0}.lv2-btn-group{display:flex;gap:.4rem}.lv2-opt-btn{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:.1rem;padding:.45rem .25rem;border:.5px solid #2a2a2a;border-radius:var(--radius-sm);background:#1a1a1a;color:var(--text);cursor:pointer;font-family:var(--font);transition:border-color var(--transition),background var(--transition),transform .1s,box-shadow .1s}.lv2-opt-btn--readonly{opacity:.5;cursor:not-allowed}.lv2-opt-btn:not(.lv2-opt-btn--readonly):hover{border-color:var(--primary);background:var(--primary-light)}.lv2-opt-btn--active{border-color:var(--primary);background:var(--primary);color:#fff;box-shadow:2px 2px 0 0 var(--primary-edge)}.lv2-opt-btn--active:not(.lv2-opt-btn--readonly):hover{transform:translate(-1px,-1px);box-shadow:3px 3px 0 0 var(--primary-edge)}.lv2-opt-btn--active:not(.lv2-opt-btn--readonly):active{transform:translate(2px,2px);box-shadow:none}.lv2-opt-name{font-size:.8rem;font-weight:600;line-height:1.2}.lv2-opt-sub{font-size:.62rem;opacity:.75}.lv2-select{width:100%;padding:.42rem 2rem .42rem .65rem;border:.5px solid #2a2a2a;border-radius:var(--radius-sm);background:#1a1a1a url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23888' d='M6 8L1 3h10z'/%3E%3C/svg%3E") no-repeat right .6rem center;-webkit-appearance:none;-moz-appearance:none;appearance:none;font-size:.86rem;font-family:var(--font);font-weight:600;color:var(--text);cursor:pointer;transition:border-color var(--transition);outline:none}.lv2-select:hover:not(:disabled){border-color:var(--primary)}.lv2-select:focus{border-color:var(--primary)}.lv2-select:disabled{opacity:.5;cursor:not-allowed}.lv2-error{color:var(--danger);font-size:.8rem;padding:.45rem .7rem;background:#ff426f14;border:.5px solid var(--danger);border-radius:var(--radius-sm)}.lv2-hint{font-size:.76rem;color:var(--text-muted);line-height:1.45;padding-top:.25rem}.lv2-settings-actions{display:flex;gap:.5rem;margin-top:auto;padding-top:.75rem}.lv2-settings-actions .lv2-footer-btn{flex:1}.lv2-chat{flex:1;min-width:0;display:flex;flex-direction:column;overflow:hidden;min-height:0}.lv2-chat .chat-panel{flex:1;min-height:0;margin:0;border:none;border-radius:0;background:transparent;padding:1rem 1.25rem}.lv2-chat .chat-messages{flex:1;min-height:0;height:auto}.lv2-footer-btn{flex:1!important;min-width:0!important}.lv2-footer-btn--start{background:var(--success)!important;color:#0a1a0f!important;box-shadow:var(--elevation) var(--elevation) 0 0 var(--success-edge)!important}.lv2-footer-btn--start:hover:not(:disabled){transform:translate(-2px,-2px)!important;box-shadow:calc(var(--elevation) + 2px) calc(var(--elevation) + 2px) 0 0 var(--success-edge)!important}.lv2-footer-btn--start:active:not(:disabled){transform:translate(var(--elevation),var(--elevation))!important;box-shadow:0 0 0 0 transparent!important}.lv2-leave-header-btn{background:var(--danger);color:#fff;border:none;border-radius:var(--radius-sm);padding:.35rem .85rem;font-size:.8rem;font-weight:700;font-family:var(--font);cursor:pointer;white-space:nowrap;flex-shrink:0;box-shadow:var(--elevation) var(--elevation) 0 0 var(--danger-edge);transition:transform .12s ease-in-out,box-shadow .12s ease-in-out}.lv2-leave-header-btn:hover{transform:translate(-2px,-2px);box-shadow:calc(var(--elevation) + 2px) calc(var(--elevation) + 2px) 0 0 var(--danger-edge)}.lv2-leave-header-btn:active{transform:translate(var(--elevation),var(--elevation));box-shadow:none}@media (max-width: 520px){.lv2-header{gap:.5rem;padding:0 .75rem}.lv2-code-pill{padding:.25rem .35rem .25rem .6rem}.lv2-settings{padding:.75rem 1rem}.lv2-chat{display:none}}.player-league-hearts{display:flex;gap:.15rem;margin-top:.2rem}.heart{font-size:.8rem;line-height:1}.heart--filled{color:#f43f5e}.heart--empty{color:var(--text-muted);opacity:.4}@keyframes ellipsis{0%{content:"."}33%{content:".."}66%{content:"..."}to{content:"."}}.animated-ellipsis:after{content:".";display:inline-block;animation:ellipsis 1.5s steps(1,end) infinite;width:1.5ch;text-align:left}.screen--game{min-height:100vh;display:flex;flex-direction:column;align-items:stretch;padding:0;background:var(--bg)}.game-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1.25rem;background:var(--surface);border-bottom:1px solid var(--border);box-shadow:var(--shadow-sm);flex-wrap:wrap;gap:.5rem}.game-logo{display:block;flex-shrink:0}.game-stats{display:flex;gap:1.25rem;align-items:center}.game-stat{display:flex;flex-direction:column;align-items:center;line-height:1.2}.game-stat-label{font-size:.65rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.game-stat-value{font-size:1rem;font-weight:700;font-variant-numeric:tabular-nums}.game-stat-value--timer{color:var(--accent)}.game-main{flex:1;display:grid;grid-template-columns:1fr 340px;gap:1.5rem;padding:1.5rem;align-items:start}@media (max-width: 768px){.game-main{grid-template-columns:1fr;padding:1rem;gap:1rem}.game-sidebar{order:-1;min-width:0}.game-sidebar .chat-panel{display:none}.game-stats{gap:.75rem}.game-stat-value{font-size:.9rem}}.game-grid-wrapper{display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative}.card-grid{display:grid;grid-template-columns:repeat(var(--grid-cols, 4),1fr);gap:.5rem;width:100%;max-width:460px}@media (max-width: 480px){.card-grid{gap:.35rem}.home-card{padding:2rem 1.25rem}.results-title{font-size:1.6rem}.countdown-number{font-size:7rem}}.card{aspect-ratio:3 / 4;perspective:800px;cursor:pointer;border-radius:var(--radius);outline:none;-webkit-user-select:none;user-select:none}.card:focus-visible .card-inner{outline:3px solid var(--primary);outline-offset:3px;border-radius:var(--radius)}.card--disabled{cursor:not-allowed}.card-inner{position:relative;width:100%;height:100%;transform-style:preserve-3d;transition:transform .3s cubic-bezier(.4,0,.2,1);border-radius:var(--radius)}.card:hover .card-inner{will-change:transform}.card--flipped .card-inner,.card--matched .card-inner{transform:rotateY(180deg)}.card-face{position:absolute;top:0;right:0;bottom:0;left:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;border-radius:var(--radius);display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-sm)}.card-face--front{background:var(--primary);color:#ffffff80;font-size:1.4rem;font-weight:800;box-shadow:3px 3px 0 0 var(--primary-edge)}.card-face--back{background:var(--surface);border:2px solid var(--border);transform:rotateY(180deg);font-size:clamp(1.5rem,5vw,2.2rem);transition:border-color var(--transition),box-shadow .12s ease}.card:not(.card--matched):hover .card-face--back{border-color:var(--primary);box-shadow:2px 2px 0 0 var(--primary-edge)}.card--matched .card-face--back{background:var(--success-light);border:2px solid var(--success);box-shadow:3px 3px 0 0 var(--success-edge);opacity:1}.card-playing-face{background:#fff;border-radius:4px;width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;color:#1a1a1a}.card-playing-face[data-red=true]{color:#c0392b}.card-playing-corner{position:absolute;top:4px;left:6px;font-size:.65em;font-weight:700;line-height:1;letter-spacing:-.02em}.card-playing-suit{font-size:1.6em;line-height:1}.card--hero .card-face--back{padding:0;overflow:hidden;display:block}.card-hero-face{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;border-radius:var(--radius-sm)}.card-hero-img{width:100%;height:100%;object-fit:contain;object-position:center center;display:block}.card-pokemon-face{background:#f0f0f0;display:flex;align-items:center;justify-content:center}.card-pokemon-img{object-fit:contain;object-position:center center;image-rendering:pixelated;padding:0}.card-flag-face{background:#1a1a2e;display:flex;align-items:center;justify-content:center;padding:12px}.card-flag-img{width:100%;object-fit:contain;border-radius:2px;box-shadow:0 2px 6px #0006}.card-hero-name{position:relative;z-index:1;width:100%;text-align:center;font-size:.5rem;font-weight:700;color:#fff;background:linear-gradient(transparent,#000000bf);padding:.15rem .2rem .2rem;line-height:1.2;letter-spacing:.01em}.game-complete-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#ffffffeb;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:var(--radius);z-index:10;text-align:center;padding:1rem;gap:.5rem}@media (prefers-color-scheme: dark){.game-complete-overlay{background:#0f172aeb}}.game-complete-icon{font-size:2.5rem}.game-complete-msg{font-size:1.1rem;font-weight:600}.game-complete-sub{font-size:.85rem;color:var(--text-muted)}.game-sidebar{display:flex;flex-direction:column;gap:1rem}.game-my-status{background:var(--primary-light);border:1px solid var(--primary);color:var(--primary);border-radius:var(--radius-sm);padding:.6rem .75rem;font-size:.85rem;font-weight:600;text-align:center}.leaderboard{background:var(--surface);border:2px solid var(--border);border-radius:var(--radius);padding:1rem;box-shadow:4px 4px 0 0 var(--primary-edge)}.leaderboard-title{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--primary);margin-bottom:.75rem;padding-bottom:.5rem;border-bottom:2px solid var(--primary-edge)}.leaderboard-list{list-style:none;display:flex;flex-direction:column;gap:.5rem}.lb-row{display:grid;grid-template-columns:2rem 1fr 2.5rem 3rem 3.5rem 3.5rem;align-items:center;gap:.35rem;padding:.5rem .75rem;border-radius:var(--radius-sm);border:1.5px solid var(--border);border-left:3px solid var(--text-muted);background:var(--surface-2);font-size:.82rem;box-shadow:2px 2px 0 0 var(--border);transition:transform .1s ease,box-shadow .1s ease}.lb-row:not(.lb-row--disconnected):not(.lb-row--complete):not(.lb-row--me){border-left-color:var(--warning)}.lb-row--me{background:var(--primary-light);border-color:var(--primary);border-left:3px solid var(--primary);box-shadow:3px 3px 0 0 var(--primary-edge)}.lb-row--complete{font-weight:600;background:color-mix(in srgb,var(--success) 8%,var(--surface-2));border-color:#3bffad59;border-left:3px solid var(--success);box-shadow:2px 2px 0 0 var(--success-edge)}.lb-row--me.lb-row--complete{border-color:var(--primary);border-left:3px solid var(--primary);box-shadow:3px 3px 0 0 var(--primary-edge)}.lb-row--disconnected{opacity:.45;box-shadow:none;border-left-color:var(--border)}.lb-rank{font-size:.9rem;text-align:center}.lb-rank-medal{font-size:1rem}.lb-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:flex;align-items:center;gap:.3rem;font-weight:500}.lb-you{font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;background:var(--primary);color:#fff;padding:.1rem .35rem;border-radius:2px;box-shadow:1px 1px 0 0 var(--primary-edge)}.lb-league-hearts{display:flex;gap:.1rem;margin-left:.25rem}.lb-league-hearts .heart{font-size:.7rem}.lb-stats{display:contents}.lb-matches{text-align:right;font-variant-numeric:tabular-nums;font-weight:600;color:var(--primary)}.lb-time{text-align:right;font-variant-numeric:tabular-nums}.lb-flips{font-size:.7rem;color:var(--text-muted);text-align:right;font-variant-numeric:tabular-nums}.lb-status{text-align:center;font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:.15rem .4rem;border-radius:2px}.lb-status--playing{background:var(--warning);color:#0d1117}.lb-status--complete{background:var(--success);color:#0d1117}.lb-status--away{background:var(--surface);color:var(--text-muted);border:1px solid var(--border)}.game-watchers{padding:.5rem .75rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface)}.game-watchers-label{font-size:.65rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);display:block;margin-bottom:.35rem}.game-watchers-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.4rem .75rem}.game-watcher{display:flex;align-items:center;gap:.3rem;font-size:.8rem;color:var(--text-muted)}.game-watcher-dot{width:6px;height:6px;border-radius:50%;background:var(--text-muted);opacity:.5;flex-shrink:0}@media (max-width: 600px){.lb-row{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem .5rem;padding:.6rem .75rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);font-size:.82rem}.lb-row--me{background:var(--primary-light);border-color:var(--primary);border-left-width:3px;box-shadow:2px 2px 0 0 var(--primary-edge)}.lb-rank{flex:0 0 auto}.lb-name{flex:1;min-width:0}.lb-status{flex:0 0 auto;text-align:right;margin-left:auto}.lb-stats{display:flex;flex:0 0 100%;padding-left:2.25rem;gap:1rem;font-size:.72rem;color:var(--text-muted);font-variant-numeric:tabular-nums}.lb-flips{color:var(--text-muted)}}.avatar-picker{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);padding:1rem;display:grid;grid-template-columns:min-content 1fr min-content;align-items:center;justify-items:center;gap:.5rem .75rem;margin-bottom:.75rem}.avatar-face-ctrl-label{display:flex;align-items:center;gap:.4rem;font-size:.75rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;justify-content:center}.avatar-eye-ctrl{display:flex;flex-direction:column;align-items:center;gap:.25rem}.avatar-face-side-label{font-size:.62rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.avatar-face-center{display:flex;flex-direction:column;align-items:center;gap:.3rem}.avatar-picker-preview-label{font-size:.75rem;color:var(--text-muted);font-weight:500;max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center}.avatar-arrow-btn{width:2rem;height:2rem;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:1.3rem;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;flex-shrink:0;transition:background var(--transition),border-color var(--transition);-webkit-user-select:none;user-select:none}.avatar-arrow-btn--lg{width:2.25rem;height:2.25rem;font-size:1.5rem}.avatar-arrow-btn:hover{background:var(--primary-light);border-color:var(--primary)}.avatar-arrow-btn:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.avatar-color-dot{width:14px;height:14px;border-radius:50%;display:inline-block;flex-shrink:0;box-shadow:0 0 0 1.5px #ffffff40}.avatar-picker-section{display:flex;flex-direction:column;gap:.4rem}.avatar-picker-label{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);min-width:3.5rem}.avatar-arrow-row{display:flex;align-items:center;gap:.6rem}.avatar-arrow-control{display:flex;align-items:center;gap:.35rem;flex:1}.avatar-arrow-preview{display:flex;align-items:center;justify-content:center;width:44px;height:44px;flex-shrink:0}.avatar-arrow-index{font-size:.68rem;color:var(--text-muted);min-width:2.5rem;text-align:right;font-variant-numeric:tabular-nums}.avatar-color-swatches{display:flex;flex-wrap:wrap;gap:.45rem}.avatar-swatch{width:28px;height:28px;border-radius:50%;border:2.5px solid transparent;cursor:pointer;padding:0;outline:none;transition:transform .12s,border-color .12s}.avatar-swatch:hover{transform:scale(1.18)}.avatar-swatch:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.avatar-swatch--active{border-color:#fff;transform:scale(1.12);box-shadow:0 0 0 1px #ffffff40}.avatar-style-row{display:flex;flex-wrap:wrap;gap:.4rem}.avatar-style-opt{padding:2px;border-radius:var(--radius-sm);border:2px solid transparent;background:none;cursor:pointer;line-height:0;transition:border-color .12s;outline:none}.avatar-style-opt:hover{border-color:var(--border)}.avatar-style-opt:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.avatar-style-opt--active{border-color:var(--primary)}.player-item>svg{flex-shrink:0}.lb-rank-medal{font-size:1rem;line-height:1}.screen--results{background:var(--bg);align-items:flex-start;padding-top:2rem}.results-container{width:100%;max-width:560px;display:flex;flex-direction:column;gap:1.5rem}.results-hero{text-align:center}@media (max-width: 768px){.screen--results{padding-top:1.25rem}.results-container{padding:0 .25rem}.results-title{font-size:1.75rem}.results-actions{flex-direction:column;align-items:stretch}.results-actions .btn{width:100%}}.results-trophy{font-size:3.5rem;display:block;margin-bottom:.5rem}.results-title{font-size:2rem;font-weight:800;letter-spacing:-.02em}.results-winner{font-size:1.1rem;color:var(--text-muted);margin-top:.25rem}.results-export-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem;box-shadow:5px 5px 0 0 var(--border);color:var(--text)}.results-export-header{display:flex;flex-direction:column;gap:.25rem;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid var(--border)}.results-export-logo-img{pointer-events:none}.results-export-meta{font-size:.78rem;color:var(--text-muted)}.results-table{width:100%;border-collapse:collapse;color:var(--text)}.results-table th{text-align:left;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);padding:.4rem .5rem;border-bottom:1px solid var(--border)}.results-table th:nth-child(1){text-align:center}.results-table th:nth-child(3){text-align:right}.results-table th:nth-child(4){text-align:center}.results-table th:nth-child(5){text-align:right}.results-table td{padding:.65rem .5rem;font-size:.9rem;border-bottom:1px solid var(--border)}.results-row--winner td{font-weight:700;color:var(--accent)}.results-row--me td{background:var(--primary-light)}.results-row--me{border-left:3px solid var(--primary)}.results-rank{font-size:1.1rem;text-align:center;width:2.5rem}.results-name{display:flex;align-items:center;gap:.4rem;font-weight:500}.results-you-tag{font-size:.65rem;background:var(--primary);color:#fff;padding:.05rem .35rem;border-radius:999px;font-weight:700}.results-matches,.results-time{text-align:right;font-variant-numeric:tabular-nums}.results-my-result{text-align:center;font-size:1rem;color:var(--text-muted)}.results-actions{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center}.league-overlay-score{display:flex;gap:1.5rem;justify-content:center;margin:.5rem 0}.league-overlay-score-item{display:flex;flex-direction:column;align-items:center;gap:.15rem}.league-overlay-score-name{font-size:.75rem;color:var(--text-muted)}.league-overlay-score-wins{font-size:1.8rem;font-weight:800;color:var(--text)}.league-overlay-score-item--me .league-overlay-score-name,.league-overlay-score-item--me .league-overlay-score-wins{color:var(--primary)}.powerup-tray{display:flex;gap:.5rem;justify-content:center;padding:.35rem 0;margin:.25rem 0}.powerup-btn{position:relative;width:44px;height:44px;border-radius:50%;border:2px solid var(--border);background:var(--surface);font-size:1.25rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .1s,border-color .15s}.powerup-btn:hover{transform:scale(1.12)}.powerup-btn--freeze{border-color:#4fc3f7}.powerup-btn--shuffle{border-color:var(--accent)}.powerup-count{position:absolute;top:-4px;right:-4px;background:var(--primary);color:#fff;font-size:.65rem;font-weight:800;width:16px;height:16px;border-radius:50%;display:flex;align-items:center;justify-content:center}.powerup-hit-banner{text-align:center;padding:.35rem 1rem;margin-bottom:.4rem;border-radius:var(--radius-sm);font-weight:700;font-size:.9rem;animation:powerup-hit-in .2s ease,powerup-hit-pulse .6s ease .2s infinite alternate}.powerup-hit-banner--freeze{background:#4fc3f71f;border:1px solid #4FC3F7;color:#4fc3f7}.powerup-hit-banner--shuffle{background:rgba(var(--accent-rgb, 124,58,237),.12);border:1px solid var(--accent);color:var(--accent)}@keyframes powerup-hit-in{0%{opacity:0;transform:translateY(-6px) scale(.95)}to{opacity:1;transform:none}}@keyframes powerup-hit-pulse{0%{opacity:.8}to{opacity:1;box-shadow:0 0 10px #4fc3f74d}}.game-grid-inner{width:100%;display:flex;flex-direction:column;align-items:center}.game-grid--shuffled{animation:shuffle-flash .8s ease}@keyframes shuffle-flash{0%{filter:brightness(1)}30%{filter:brightness(1.5) hue-rotate(30deg)}to{filter:brightness(1)}}.league-rounds-history{margin:1rem 0}.league-rounds-title{font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin-bottom:.5rem}.league-rounds-list{display:flex;flex-direction:column;gap:.25rem}.league-round-row{display:grid;grid-template-columns:5rem 1fr auto;align-items:center;padding:.35rem .6rem;border-radius:var(--radius-sm);background:var(--surface);font-size:.85rem;border-left:2px solid transparent}.league-round-row--me{border-left-color:var(--primary)}.league-round-num{color:var(--text-muted);font-size:.75rem}.league-round-winner{font-weight:600}.league-round-time{color:var(--text-muted);font-size:.8rem}.league-status{text-align:center;font-weight:700;font-size:.9rem;padding:.55rem 1.25rem;border:1.5px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);box-shadow:3px 3px 0 0 var(--border)}.results-wins{display:flex;gap:.15rem;align-items:center;padding:.65rem .5rem}.results-share-msg{text-align:center;color:var(--success);font-size:.85rem;font-weight:600}.results-highscore{display:flex;flex-direction:column;align-items:center;gap:.2rem;background:var(--primary-light);border:1px solid var(--primary);border-radius:var(--radius);padding:.85rem 1.25rem;box-shadow:4px 4px 0 0 var(--primary-edge);text-align:center}.results-highscore-label{font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--primary)}.results-highscore-value{font-size:1.75rem;font-weight:800;font-variant-numeric:tabular-nums;color:var(--text);display:flex;align-items:baseline;gap:.6rem}.results-highscore-flips{font-size:.8rem;font-weight:600;color:var(--text-muted)}.results-highscore-date{font-size:.72rem;color:var(--text-muted)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;border:none;border-radius:var(--radius-sm);font-family:var(--font);font-weight:700;cursor:pointer;transition:box-shadow .12s ease-in-out,transform .12s ease-in-out,background var(--transition);white-space:nowrap;text-decoration:none;position:relative}.btn:disabled{opacity:.4;cursor:not-allowed;transform:none!important;box-shadow:none!important}.btn--sm{font-size:.8rem;padding:.35rem .75rem}.btn--md{font-size:.9rem;padding:.5rem 1rem}.btn--lg{font-size:1rem;padding:.65rem 1.4rem;border-radius:var(--radius-sm)}.btn--primary{background:var(--primary);color:#fff;box-shadow:var(--elevation) var(--elevation) 0 0 var(--primary-edge)}.btn--primary:hover:not(:disabled){transform:translate(-2px,-2px);box-shadow:calc(var(--elevation) + 2px) calc(var(--elevation) + 2px) 0 0 var(--primary-edge)}.btn--primary:active:not(:disabled){transform:translate(var(--elevation),var(--elevation));box-shadow:0 0 0 0 transparent}.btn--secondary{background:var(--surface);color:var(--text);border:1.5px solid var(--border);box-shadow:var(--elevation) var(--elevation) 0 0 var(--border)}.btn--secondary:hover:not(:disabled){transform:translate(-2px,-2px);box-shadow:calc(var(--elevation) + 2px) calc(var(--elevation) + 2px) 0 0 var(--border);border-color:var(--primary);color:var(--primary)}.btn--secondary:active:not(:disabled){transform:translate(var(--elevation),var(--elevation));box-shadow:0 0 0 0 transparent}.join-cta:hover:not(:disabled){background:var(--primary);color:#fff;border-color:var(--primary);box-shadow:calc(var(--elevation) + 2px) calc(var(--elevation) + 2px) 0 0 var(--primary-edge)}.join-cta:active:not(:disabled){background:var(--primary);color:#fff;border-color:var(--primary)}.btn--ghost{background:transparent;color:var(--text-muted)}.btn--ghost:hover:not(:disabled){background:var(--surface-2);color:var(--text)}.btn--danger{background:var(--danger);color:#fff;box-shadow:var(--elevation) var(--elevation) 0 0 var(--danger-edge)}.btn--danger:active:not(:disabled){transform:translate(var(--elevation),var(--elevation));box-shadow:0 0 0 0 transparent}.btn-spinner{width:1em;height:1em;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin .7s linear infinite;flex-shrink:0}.input-group{display:flex;flex-direction:column;gap:.35rem}.input-label{font-size:.82rem;font-weight:600;color:var(--text-muted)}.input-field{width:100%;padding:.6rem .75rem;border:1.5px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);color:var(--text);font-family:var(--font);font-size:.95rem;outline:none;transition:border-color var(--transition),box-shadow var(--transition)}.input-field:focus{border-color:var(--primary);box-shadow:3px 3px 0 0 var(--primary-edge)}.input-field--error{border-color:var(--danger)}.input-field--error:focus{box-shadow:0 0 0 3px #ef444426}.input-error{font-size:.78rem;color:var(--danger)}.spinner{animation:spin .8s linear infinite;color:var(--primary);display:block}@keyframes spin{to{transform:rotate(360deg)}}.difficulty-host-note{font-weight:400;text-transform:none;letter-spacing:0}.difficulty-options{display:flex;gap:.5rem}.difficulty-btn{flex:1;display:flex;flex-direction:column;align-items:center;gap:.15rem;padding:.5rem .25rem;border:1.5px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);cursor:pointer;font-family:var(--font);transition:border-color var(--transition),background var(--transition)}.difficulty-btn--readonly{opacity:.55;cursor:not-allowed}.difficulty-btn:not(.difficulty-btn--readonly):hover{border-color:var(--primary);background:var(--primary-light)}.difficulty-btn--active{border-color:var(--primary);background:var(--primary);color:#fff;box-shadow:3px 3px 0 0 var(--primary-edge)}.difficulty-btn--active:not(:disabled):hover{transform:translate(-1px,-1px);box-shadow:4px 4px 0 0 var(--primary-edge)}.difficulty-name{font-size:.85rem;font-weight:600}.difficulty-grid{font-size:.7rem;color:var(--text-muted)}.difficulty-btn--active .difficulty-grid{color:#ffffffbf;opacity:1}.copy-btn--link{background:var(--primary-light);color:var(--primary);border-color:transparent}.copy-btn--link:hover{background:var(--primary);color:#fff}.mute-btn{background:none;border:1.5px solid var(--border);border-radius:var(--radius-sm);padding:.35rem .5rem;font-size:1rem;cursor:pointer;line-height:1;color:var(--text-muted);transition:border-color var(--transition),background var(--transition)}.mute-btn:hover{border-color:var(--primary);background:var(--primary-light)}.mute-btn--floating{position:fixed;top:1rem;right:1rem;z-index:200;background:var(--surface);border:1.5px solid var(--border);box-shadow:2px 2px 0 0 var(--primary-edge);padding:.35rem .55rem;font-size:1.1rem}.countdown-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:fade-in .2s ease}.countdown-number{font-size:10rem;font-weight:900;color:var(--accent);line-height:1;animation:countdown-pop .9s ease-out forwards;text-shadow:6px 6px 0 var(--accent-edge)}.countdown-label{font-size:1.25rem;color:#fffc;margin-top:1rem;font-weight:500}.results-flips{text-align:center;color:var(--text-muted);font-size:.85rem}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes countdown-pop{0%{transform:scale(1.4);opacity:0}20%{transform:scale(1);opacity:1}80%{transform:scale(1);opacity:1}to{transform:scale(.8);opacity:0}}.spectator-view{display:flex;flex-direction:column;gap:.75rem;width:100%}.spectator-header{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.spectator-label{font-size:.7rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;white-space:nowrap}.spectator-tabs{display:flex;gap:.4rem;flex-wrap:wrap}.spectator-tab{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.3rem .65rem;color:var(--text-muted);font-size:.8rem;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:.1rem;transition:border-color .15s,color .15s,background .15s}.spectator-tab:hover{border-color:var(--primary);color:var(--text)}.spectator-tab--active{border-color:var(--primary);color:var(--text);background:var(--primary-light)}.spectator-tab-score{font-size:.62rem;color:var(--text-muted)}.spectator-tab--active .spectator-tab-score{color:var(--text-muted)}.spectator-empty{color:var(--text-muted);font-size:.9rem;text-align:center;padding:2rem 0}.spectator-watching{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;padding:3rem 2rem;text-align:center;color:var(--text-muted)}.spectator-watching-icon{font-size:2.5rem}.spectator-watching-text{font-size:1rem;font-weight:600;color:var(--text)}.spectator-watching-sub{font-size:.85rem}.lobby-spectators{margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--border)}.lobby-spectators-label{font-size:.7rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);margin-bottom:.4rem}.chat-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:.75rem;display:flex;flex-direction:column;gap:.5rem;margin-top:.75rem}.chat-panel-title{font-size:.7rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.chat-messages{height:140px;overflow-y:auto;display:flex;flex-direction:column;gap:.35rem;scrollbar-width:thin;scrollbar-color:var(--primary) transparent}.chat-empty{color:var(--text-muted);font-size:.78rem;text-align:center;margin:auto}.chat-msg{display:flex;flex-direction:column;gap:.1rem;align-items:flex-start}.chat-msg--mine{align-items:flex-end}.chat-msg-header{display:flex;align-items:baseline;gap:.35rem}.chat-msg-name{font-size:.68rem;color:var(--text-muted);font-weight:600}.chat-msg-time{font-size:.6rem;color:var(--text-muted);opacity:.65;flex-shrink:0}.chat-msg-text{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.2rem .5rem;font-size:.82rem;max-width:100%;word-break:break-word}.chat-msg--mine .chat-msg-text{background:var(--primary-light);border-color:var(--primary);color:var(--text)}.chat-input-row{display:flex;gap:.4rem}.chat-input{flex:1;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-size:.82rem;padding:.3rem .5rem;outline:none;transition:border-color var(--transition)}.chat-input:focus{border-color:var(--primary)}.chat-input::placeholder{color:var(--text-muted)}.chat-send-btn{background:var(--primary);color:#fff;border:none;border-radius:var(--radius-sm);font-size:.78rem;font-weight:700;padding:.3rem .6rem;cursor:pointer;transition:transform .12s ease-in-out,box-shadow .12s ease-in-out;box-shadow:3px 3px 0 0 var(--primary-edge)}.chat-send-btn:hover:not(:disabled){transform:translate(-1px,-1px);box-shadow:4px 4px 0 0 var(--primary-edge)}.chat-send-btn:active:not(:disabled){transform:translate(3px,3px);box-shadow:0 0 0 0 transparent}.chat-send-btn:disabled{opacity:.4;cursor:not-allowed}.chat-char-count{font-size:.7rem;color:var(--text-muted);text-align:right}.conn-banner{position:fixed;top:0;left:0;right:0;z-index:9999;display:flex;align-items:center;justify-content:center;gap:.6rem;padding:.55rem 1.25rem;font-size:.82rem;font-weight:600;animation:conn-banner-in .2s ease both}@keyframes conn-banner-in{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}.conn-banner--reconnecting{background:#78350f;color:#fef3c7;border-bottom:1px solid #92400e}.conn-banner--failed{background:#7f1d1d;color:#fee2e2;border-bottom:1px solid #991b1b}.conn-banner-spinner{width:.85rem;height:.85rem;border:2px solid rgba(254,243,199,.35);border-top-color:#fef3c7;border-radius:50%;flex-shrink:0;animation:conn-spinner .7s linear infinite}@keyframes conn-spinner{to{transform:rotate(360deg)}}.conn-banner-icon{font-size:.9rem}.conn-banner-text{flex:1;text-align:center}.conn-banner-btn{background:#ffffff26;border:1px solid rgba(255,255,255,.3);color:inherit;border-radius:var(--radius-sm);font-size:.78rem;font-weight:700;padding:.2rem .7rem;cursor:pointer;transition:background var(--transition)}.conn-banner-btn:hover{background:#ffffff40}@media (prefers-reduced-motion: reduce){.conn-banner,.conn-banner-spinner{animation:none}}.leave-btn{display:block;margin:1rem auto 0;background:none;border:none;color:var(--text-muted);font-size:.8rem;cursor:pointer;text-decoration:underline;transition:color var(--transition)}.leave-btn:hover{color:var(--danger)}.leave-btn--header{margin:0;font-size:.8rem;font-weight:700;font-family:var(--font);padding:.35rem .85rem;border-radius:var(--radius-sm);text-decoration:none;background:var(--danger);color:#fff;border:none;box-shadow:var(--elevation) var(--elevation) 0 0 var(--danger-edge);transition:transform .12s ease-in-out,box-shadow .12s ease-in-out;white-space:nowrap;flex-shrink:0;cursor:pointer}.leave-btn--header:hover{transform:translate(-1px,-1px);box-shadow:calc(var(--elevation) + 1px) calc(var(--elevation) + 1px) 0 0 var(--danger-edge)}.leave-btn--header:active{transform:translate(var(--elevation),var(--elevation));box-shadow:none}.legal-page{background:#111;min-height:100dvh;display:flex;flex-direction:column;color:var(--text)}.legal-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1.5rem;border-bottom:.5px solid #2a2a2a;flex-shrink:0;position:sticky;top:0;background:#111;z-index:10}.legal-nav{display:flex;align-items:center}.legal-back-btn{background:none;border:none;color:var(--text-muted);font-size:.85rem;font-family:var(--font);cursor:pointer;padding:.35rem .65rem;border-radius:var(--radius-sm);transition:color var(--transition),background var(--transition)}.legal-back-btn:hover{color:var(--text);background:#1e1e1e}.legal-body{flex:1;max-width:760px;width:100%;margin:0 auto;padding:2.5rem 1.5rem}.legal-title{font-size:2rem;font-weight:800;margin-bottom:.35rem}.legal-updated{color:var(--text-muted);font-size:.82rem;margin-bottom:2rem}.legal-section{margin-bottom:1.75rem}.legal-section h2{font-size:1rem;font-weight:700;color:var(--primary);margin-bottom:.5rem;letter-spacing:.02em}.legal-section p,.legal-section li{font-size:.9rem;color:silver;line-height:1.7}.legal-section ul{padding-left:1.25rem;display:flex;flex-direction:column;gap:.3rem}.legal-link{color:var(--primary);text-decoration:underline;text-underline-offset:2px;transition:color var(--transition)}.legal-link:hover{color:#fff}.legal-footer{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;border-top:.5px solid #2a2a2a;font-size:.78rem;color:var(--text-muted)}@media (prefers-reduced-motion: reduce){.card-inner{transition:none}.spinner,.btn-spinner,.countdown-number{animation:none}}@media (max-width: 600px){.card-inner{transition-duration:.22s}.logo-flip-card{transition-duration:.28s}}html[data-discord],html[data-discord] body,html[data-discord] #root{height:100dvh;overflow:hidden}html[data-discord] .screen,html[data-discord] .screen--home,html[data-discord] .screen--lobby,html[data-discord] .screen--game,html[data-discord] .screen--results{min-height:unset;height:100dvh;overflow-y:auto;overflow-x:hidden}html[data-discord] .screen--lobby{padding:.75rem}html[data-discord] .screen--results{padding-top:1rem}@media (max-width: 900px){html[data-discord] .lobby-bento{grid-template-columns:1fr;grid-template-areas:"header" "code" "diff" "actions" "players" "chat"}html[data-discord] .bento-chat{position:static}html[data-discord] .bento-chat .chat-messages{height:140px}}html[data-discord] .screen--game{display:flex;flex-direction:column}html[data-discord] .card-grid-wrapper{flex:1;min-height:0;overflow-y:auto}
