*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.block{display:block}.inline{display:inline}.table{display:table}.grid{display:grid}.\!hidden{display:none!important}.hidden{display:none}.shrink{flex-shrink:1}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.resize{resize:both}.border{border-width:1px}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline{outline-style:solid}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}:root{font-family:Courier New,Courier,monospace;color:#fff;background:#000;font-synthesis:none;text-rendering:optimizeLegibility;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);--safe-right: env(safe-area-inset-right, 0px)}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}html{height:100%}body{height:100%;overflow:hidden}#root{height:100%}button,input{font:inherit}button{cursor:pointer}.auth-shell{min-height:100vh;min-height:100dvh;background:#000;color:#fff;display:flex;align-items:center;justify-content:center;padding:24px;padding-top:calc(var(--safe-top, 0px) + 24px);padding-bottom:calc(var(--safe-bottom, 0px) + 24px);padding-left:calc(var(--safe-left, 0px) + 24px);padding-right:calc(var(--safe-right, 0px) + 24px);box-sizing:border-box}.auth-frame{width:min(100%,420px);display:flex;flex-direction:column;align-items:center;gap:28px}.auth-title{font-size:22px;letter-spacing:8px;font-weight:700;color:#fff}.auth-subtitle{font-size:12px;letter-spacing:3px;color:#555;text-transform:uppercase}.auth-form{width:100%;display:flex;flex-direction:column;align-items:center;gap:20px}.auth-input{width:100%;padding:10px 0;background:transparent;border:0;border-bottom:1px solid #222222;color:#fff;font-size:15px;letter-spacing:2px;outline:0;text-align:center;transition:border-color .16s ease}.auth-input:focus{border-bottom-color:#888}.auth-input::-moz-placeholder{color:#333}.auth-input::placeholder{color:#333}.seed-display{width:100%;display:flex;flex-direction:column;align-items:center;gap:14px;padding:24px 0;border-top:1px solid #1a1a1a;border-bottom:1px solid #1a1a1a}.seed-words{font-size:20px;letter-spacing:4px;color:#fff;font-weight:600}.seed-warning{font-size:11px;letter-spacing:2px;color:#777;text-align:center;line-height:1.5}.seed-hint{font-size:13px;letter-spacing:1px;color:#666;text-align:center;line-height:1.6;padding:8px 0}.auth-action{padding:12px 28px;background:transparent;border:1px solid #333333;color:#ccc;font-size:12px;letter-spacing:3px;transition:border-color .16s ease,color .16s ease}.auth-action:hover:not(:disabled){border-color:#888;color:#fff}.auth-action:disabled{opacity:.4;cursor:not-allowed}.auth-status{font-size:11px;letter-spacing:2px;color:#666;text-align:center;min-height:14px}.auth-switch{background:transparent;border:0;color:#444;font-size:11px;letter-spacing:2px;transition:color .16s ease}.auth-switch:hover{color:#888}.chat-shell{height:100vh;height:100dvh;min-height:0;background:var(--background);color:var(--foreground);transition:background-color .12s ease,color .12s ease;padding-top:var(--safe-top);box-sizing:border-box;overflow:hidden}.chat-frame{width:min(100%,928px);height:calc(100dvh - var(--safe-top));min-height:0;margin:0 auto;display:flex;flex-direction:column;overflow:hidden;position:relative;z-index:1;transition:transform .2s ease}.chat-header{position:relative;height:40px;flex:0 0 40px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:12px;letter-spacing:3px}.theme-picker{position:relative;display:inline-block;margin-left:10px;vertical-align:middle;z-index:5}.theme-toggle,.theme-option{display:block;padding:0;border:1px solid var(--foreground)}.theme-toggle{width:14px;height:14px;border-radius:1px;transition:transform .12s ease}.theme-toggle:hover{transform:scale(1.15)}.theme-options{display:flex;flex-direction:column;gap:6px;margin-top:6px;opacity:0;transform:translateY(-8px);pointer-events:none;transition:opacity .16s ease,transform .16s ease;position:absolute;left:0;top:100%}.theme-options-open{opacity:1;transform:translateY(0);pointer-events:auto}.theme-option{width:14px;height:14px;border-color:var(--muted)}.theme-option-active{outline:1px solid var(--foreground);outline-offset:2px}.back-btn{position:absolute;left:32px;top:50%;transform:translateY(-50%);display:flex;align-items:center;gap:8px;padding:6px 10px 6px 4px;color:var(--muted);border:1px solid var(--line);background:transparent;font-size:11px;letter-spacing:2px;transition:color .12s ease,border-color .12s ease}.back-btn:hover{color:var(--foreground);border-color:var(--muted)}.back-label{font-weight:600}.identity{color:var(--foreground);font-weight:600;display:inline-flex;align-items:center;position:relative}.identity-name{margin-right:10px}.header-avatar{width:20px;height:20px;image-rendering:pixelated;flex:0 0 20px;margin-right:8px}.msg-avatar{width:14px;height:14px;image-rendering:pixelated;flex:0 0 14px}.online-dot{width:8px;height:8px;display:inline-block;margin-right:12px;border-radius:50%;background:var(--foreground);vertical-align:1px;transition:box-shadow .3s ease}.dot-online{background:#00ff41;box-shadow:0 0 6px #00ff41,0 0 12px #00ff4180;animation:dot-pulse-online 2s ease-in-out infinite}.dot-recent{background:#e0b400;box-shadow:0 0 6px #e0b400,0 0 12px #e0b40066}.dot-offline{background:#666;box-shadow:0 0 4px #6666664d}.dot-left{background:#f33;box-shadow:0 0 6px #f33,0 0 12px #ff333380;animation:dot-pulse-left 1.5s ease-in-out infinite}@keyframes dot-pulse-left{0%,to{box-shadow:0 0 6px #f33,0 0 12px #ff333380}50%{box-shadow:0 0 10px #f33,0 0 20px #ff3333b3}}@keyframes dot-pulse-online{0%,to{box-shadow:0 0 6px #00ff41,0 0 12px #00ff4180}50%{box-shadow:0 0 10px #00ff41,0 0 20px #00ff41b3}}.swords-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;margin-left:8px;border:0;background:transparent;color:var(--muted);cursor:pointer;vertical-align:middle;transition:color .15s ease}.swords-btn:hover{color:var(--foreground)}.swords-icon{display:flex;align-items:center;justify-content:center;width:24px;height:24px}.swords-icon svg{width:22px;height:22px}.sword-l,.sword-r{transform-origin:center;animation:sword-clash 2.5s ease-in-out infinite}.sword-l{animation-delay:0s}.sword-r{animation-delay:.05s}@keyframes sword-clash{0%,70%,to{transform:rotate(0) translate(0)}75%{transform:rotate(0) translate(0)}82%{transform:rotate(-8deg) translate(-1px)}88%{transform:rotate(0) translate(1px)}94%{transform:rotate(-4deg) translate(0)}}.swords-btn:hover .sword-l{animation:sword-clash-hover-l .6s ease-in-out}.swords-btn:hover .sword-r{animation:sword-clash-hover-r .6s ease-in-out}@keyframes sword-clash-hover-l{0%{transform:rotate(0)}40%{transform:rotate(-15deg) translate(-2px)}60%{transform:rotate(5deg) translate(1px)}to{transform:rotate(0)}}@keyframes sword-clash-hover-r{0%{transform:rotate(0)}40%{transform:rotate(15deg) translate(2px)}60%{transform:rotate(-5deg) translate(-1px)}to{transform:rotate(0)}}.game-menu-popup{position:absolute;top:calc(100% + 8px);right:0;min-width:180px;border:1px solid var(--line);background:var(--background);z-index:100;padding:8px 0;animation:game-menu-appear .15s ease}@keyframes game-menu-appear{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.game-menu-title{padding:4px 16px 8px;font-size:10px;letter-spacing:3px;color:var(--muted);border-bottom:1px solid var(--line);margin-bottom:4px}.game-menu-item{display:flex;align-items:center;gap:12px;width:100%;padding:10px 16px;border:0;background:transparent;color:var(--foreground);font-size:13px;letter-spacing:2px;text-align:left;cursor:pointer;transition:background .1s ease}.game-menu-item:hover{background:color-mix(in srgb,var(--foreground) 8%,transparent)}.game-menu-num{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border:1px solid var(--line);font-size:10px;font-weight:700;color:var(--muted)}.game-menu-name{font-weight:600}.game-invite-banner{position:absolute;top:100%;left:0;right:0;display:flex;align-items:center;justify-content:center;gap:10px;padding:8px 16px;border-bottom:1px solid var(--line);background:var(--background);z-index:50;animation:game-invite-slide .2s ease}@keyframes game-invite-slide{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.game-invite-text{font-size:12px;letter-spacing:1px;color:var(--foreground)}.game-invite-accept{padding:4px 12px;border:1px solid #00ff41;background:transparent;color:#00ff41;font-size:10px;letter-spacing:2px;font-weight:700;cursor:pointer;transition:background .1s ease}.game-invite-accept:hover{background:#00ff411a}.game-invite-decline{padding:4px 12px;border:1px solid var(--line);background:transparent;color:var(--muted);font-size:10px;letter-spacing:2px;cursor:pointer;transition:color .1s ease}.game-invite-decline:hover{color:var(--foreground)}.bs-game-wrap{flex:1;display:flex;flex-direction:column;align-items:center;padding:16px;gap:16px;overflow-y:auto}.bs-placing-area{display:flex;flex-direction:column;align-items:center;gap:12px;width:100%}.bs-section-title{font-size:14px;letter-spacing:3px;font-weight:700;color:var(--foreground)}.bs-hint{font-size:11px;letter-spacing:2px;color:var(--muted)}.bs-placement-controls{display:flex;gap:8px;align-items:center}.bs-toggle-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid var(--line);background:transparent;color:var(--muted);font-size:16px;cursor:pointer;transition:all .12s ease}.bs-toggle-active{border-color:var(--foreground);color:var(--foreground);background:color-mix(in srgb,var(--foreground) 8%,transparent)}.bs-auto-btn{display:flex;align-items:center;gap:4px;padding:6px 12px;border:1px solid var(--line);background:transparent;color:var(--muted);font-size:11px;letter-spacing:1px;cursor:pointer;transition:all .12s ease}.bs-auto-btn:hover{color:var(--foreground);border-color:var(--muted)}.bs-board{display:grid;grid-template-columns:repeat(10,1fr);gap:1px;border:1px solid var(--line);padding:2px;background:color-mix(in srgb,var(--foreground) 3%,transparent)}.bs-board-place,.bs-board-own,.bs-board-enemy{width:min(300px,80vw)}.bs-cell{aspect-ratio:1;border:1px solid color-mix(in srgb,var(--foreground) 10%,transparent);background:transparent;padding:0;cursor:pointer;transition:background .1s ease;display:flex;align-items:center;justify-content:center}.bs-cell:hover:not(:disabled){background:color-mix(in srgb,var(--foreground) 8%,transparent)}.bs-cell:disabled{cursor:default}.bs-cell-ship{background:color-mix(in srgb,var(--foreground) 25%,transparent)}.bs-cell-hit{background:#ff174480!important;border-color:#ff1744}.bs-cell-miss{background:color-mix(in srgb,var(--foreground) 5%,transparent)}.bs-cell-miss:after{content:"·";color:var(--muted);font-size:16px}.bs-cell-aim{color:var(--muted);opacity:.4}.bs-confirm-btn{padding:10px 24px;border:1px solid var(--foreground);background:transparent;color:var(--foreground);font-size:12px;letter-spacing:3px;font-weight:700;cursor:pointer;transition:background .12s ease}.bs-confirm-btn:hover:not(:disabled){background:color-mix(in srgb,var(--foreground) 10%,transparent)}.bs-confirm-btn:disabled{opacity:.4;cursor:not-allowed}.bs-waiting{display:flex;flex-direction:column;align-items:center;gap:8px;padding:40px 20px}.bs-waiting-text{font-size:14px;letter-spacing:2px;color:var(--foreground);animation:bs-waiting-pulse 1.5s ease-in-out infinite}@keyframes bs-waiting-pulse{0%,to{opacity:1}50%{opacity:.5}}.bs-waiting-sub{font-size:11px;letter-spacing:1px;color:var(--muted)}.bs-boards{display:flex;flex-direction:column;gap:20px;align-items:center}.bs-board-section{display:flex;flex-direction:column;align-items:center;gap:6px}.bs-board-label{font-size:10px;letter-spacing:3px;color:var(--muted);font-weight:700}.bs-result{font-size:14px;letter-spacing:3px;font-weight:700;padding:8px 20px;border:1px solid var(--line);animation:bs-result-appear .3s ease}@keyframes bs-result-appear{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.bs-result-hit{color:#ff1744;border-color:#ff1744}.bs-result-miss{color:var(--muted)}.bs-gameover{display:flex;flex-direction:column;align-items:center;gap:8px;padding:20px;border:1px solid var(--line)}.bs-gameover-title{font-size:18px;letter-spacing:4px;font-weight:700}.bs-gameover-sub{font-size:11px;letter-spacing:1px;color:var(--muted);margin-bottom:8px}.bs-stats{display:flex;gap:16px;font-size:11px;letter-spacing:1px;color:var(--muted);flex-wrap:wrap;justify-content:center}.bs-online-dot{background:#00ff41;box-shadow:0 0 6px #00ff41}.gm-game-wrap{flex:1;display:flex;flex-direction:column;align-items:center;padding:16px;gap:14px;overflow-y:auto}.gm-waiting{display:flex;flex-direction:column;align-items:center;gap:8px;padding:60px 20px;text-align:center}.gm-waiting-text{font-size:16px;font-weight:700;letter-spacing:2px;color:var(--foreground)}.gm-waiting-sub{font-size:12px;letter-spacing:1px;color:var(--muted);line-height:1.5}.gm-status-bar{display:flex;align-items:center;gap:12px;width:100%;max-width:360px;justify-content:center}.gm-player{display:flex;align-items:center;gap:8px;padding:6px 12px;border:1px solid var(--line);transition:border-color .2s ease}.gm-player-active{border-color:var(--foreground)}.gm-player-mark{font-size:18px;font-weight:700;line-height:1}.gm-mark-x{color:#fff}.gm-mark-o{color:#999}.gm-player-name{font-size:12px;letter-spacing:1px;color:var(--muted);font-weight:600}.gm-player-active .gm-player-name{color:var(--foreground)}.gm-vs{font-size:10px;letter-spacing:2px;color:var(--muted);font-weight:700}.gm-gameover{display:flex;flex-direction:column;align-items:center;gap:10px;padding:16px 0}.gm-gameover-title{font-size:20px;font-weight:800;letter-spacing:3px;color:#f44}.gm-gameover-sub{font-size:12px;letter-spacing:1px;color:var(--muted)}.gm-confirm-btn{display:flex;align-items:center;gap:6px;background:transparent;color:var(--foreground);border:1px solid var(--line);padding:8px 16px;font-size:12px;font-weight:600;letter-spacing:1px;cursor:pointer;transition:background .15s ease;margin-top:4px}.gm-confirm-btn:hover{background:var(--line)}.gm-confirm-btn:disabled{opacity:.4;cursor:default}.gm-board-wrap{display:flex;justify-content:center;width:100%}.gm-board{display:grid;grid-template-columns:repeat(15,1fr);grid-template-rows:repeat(15,1fr);width:min(92vw,360px);aspect-ratio:1 / 1;background:#0a0a0a;border:1px solid #333;gap:0}.gm-cell{display:flex;align-items:center;justify-content:center;padding:0;border:0;background:transparent;cursor:pointer;position:relative;outline:1px solid #1a1a1a;transition:background-color 80ms ease}.gm-cell:not(:disabled):hover{background:#ffffff0a}.gm-cell:disabled{cursor:default}.gm-cell-last{background:#ffffff0f}.gm-cell-x{color:#fff}.gm-cell-o{color:#888}.gm-mark{width:80%;height:80%}.gm-hint{font-size:11px;letter-spacing:1px;color:var(--muted);text-align:center;padding:4px 0}.tk-game-wrap{flex:1;display:flex;flex-direction:column;align-items:center;padding:12px 16px;gap:10px;overflow-y:auto}.tk-waiting{display:flex;flex-direction:column;align-items:center;gap:8px;padding:60px 20px;text-align:center}.tk-waiting-text{font-size:16px;font-weight:700;letter-spacing:2px;color:var(--foreground)}.tk-waiting-sub{font-size:12px;letter-spacing:1px;color:var(--muted);line-height:1.5}.tk-status-bar{display:flex;align-items:center;gap:10px;width:100%;max-width:400px;justify-content:center}.tk-player{display:flex;align-items:center;gap:8px;padding:6px 12px;border:1px solid var(--line);transition:border-color .2s ease}.tk-player-active{border-color:var(--foreground)}.tk-player-label{font-size:11px;letter-spacing:1px;color:var(--muted);font-weight:600}.tk-player-active .tk-player-label{color:var(--foreground)}.tk-hp-dots{display:flex;gap:3px}.tk-hp-dot{width:8px;height:8px;border:1px solid #444;background:#111;transition:background .2s ease,border-color .2s ease}.tk-hp-on{background:#0f0;border-color:#0f0}.tk-vs{font-size:10px;letter-spacing:2px;color:var(--muted);font-weight:700}.tk-ap-bar{display:flex;align-items:center;gap:6px;width:100%;max-width:400px;justify-content:center;flex-wrap:wrap}.tk-ap-label{font-size:10px;letter-spacing:1px;color:var(--muted)}.tk-ap-dot{width:10px;height:10px;border:1px solid #444;background:#111;transition:background .2s ease,border-color .2s ease}.tk-ap-on{background:#fff;border-color:#fff;box-shadow:0 0 4px #fff6}.tk-map-name{font-size:10px;letter-spacing:1px;color:var(--muted);margin-left:8px}.tk-gameover{display:flex;flex-direction:column;align-items:center;gap:10px;padding:12px 0}.tk-gameover-title{font-size:20px;font-weight:800;letter-spacing:3px;color:#f44}.tk-gameover-sub{font-size:12px;letter-spacing:1px;color:var(--muted)}.tk-confirm-btn{display:flex;align-items:center;gap:6px;background:transparent;color:var(--foreground);border:1px solid var(--line);padding:8px 16px;font-size:12px;font-weight:600;letter-spacing:1px;cursor:pointer;transition:background .15s ease;margin-top:4px}.tk-confirm-btn:hover{background:var(--line)}.tk-confirm-btn:disabled{opacity:.4;cursor:default}.tk-canvas-wrap{display:flex;justify-content:center;width:100%;overflow:auto}.tk-canvas{border:1px solid #333;image-rendering:pixelated;max-width:100%;height:auto}.tk-log{width:100%;max-width:400px;display:flex;flex-direction:column;gap:2px;padding:6px 10px;border:1px solid var(--line);background:#080808;max-height:80px;overflow-y:auto}.tk-log-entry{font-size:10px;letter-spacing:.5px;color:var(--muted);line-height:1.4}.tk-controls{display:flex;flex-direction:column;align-items:center;gap:10px;width:100%;max-width:360px}.tk-dpad{display:grid;grid-template-columns:48px 48px 48px;grid-template-rows:48px 48px;gap:4px}.tk-dpad-up{grid-column:2;grid-row:1}.tk-dpad-left{grid-column:1;grid-row:2}.tk-dpad-right{grid-column:3;grid-row:2}.tk-dpad-down{grid-column:2;grid-row:2}.tk-dpad-btn{display:grid;place-items:center;width:48px;height:48px;padding:0;border:1px solid var(--line);background:#0a0a0a;color:var(--foreground);cursor:pointer;transition:background .1s ease,border-color .1s ease}.tk-dpad-btn:hover:not(:disabled){background:var(--line);border-color:var(--muted)}.tk-dpad-btn:disabled{opacity:.3;cursor:default}.tk-icon-rot-left{transform:rotate(-90deg)}.tk-icon-rot-right{transform:rotate(90deg)}.tk-icon-rot-down{transform:rotate(180deg)}.tk-fire-btn{display:flex;align-items:center;gap:6px;padding:10px 24px;border:1px solid #ff4444;background:#ff444414;color:#f44;font-size:13px;font-weight:700;letter-spacing:2px;cursor:pointer;transition:background .1s ease}.tk-fire-btn:hover:not(:disabled){background:#ff444426}.tk-fire-btn:disabled{opacity:.3;cursor:default}.tk-endturn-btn{padding:6px 16px;border:1px solid var(--line);background:transparent;color:var(--muted);font-size:11px;letter-spacing:1px;cursor:pointer;transition:color .1s ease,border-color .1s ease}.tk-endturn-btn:hover:not(:disabled){color:var(--foreground);border-color:var(--muted)}.tk-endturn-btn:disabled{opacity:.3;cursor:default}.tk-hint{font-size:11px;letter-spacing:1px;color:var(--muted);text-align:center;padding:2px 0}.tk-picker-wrap{flex:1;display:flex;flex-direction:column;align-items:center;padding:20px 16px;gap:16px;overflow-y:auto}.tk-picker-title{font-size:14px;font-weight:700;letter-spacing:3px;color:var(--foreground)}.tk-maps-list{display:flex;flex-direction:column;gap:10px;width:100%;max-width:400px}.tk-map-card{display:flex;align-items:center;gap:14px;padding:10px;border:1px solid var(--line);background:transparent;cursor:pointer;transition:border-color .15s ease,background .15s ease;text-align:left}.tk-map-card:hover{border-color:var(--muted)}.tk-map-selected{border-color:var(--foreground);background:color-mix(in srgb,var(--foreground) 5%,transparent)}.tk-map-preview{flex:0 0 auto}.tk-map-info{display:flex;flex-direction:column;gap:4px}.tk-map-num{font-size:10px;letter-spacing:1px;color:var(--muted)}.tk-map-name{font-size:14px;font-weight:700;letter-spacing:2px;color:var(--foreground)}.header-actions{position:absolute;right:32px;display:flex;align-items:center;gap:18px;font-size:12px}.settings-button{display:grid;place-items:center;width:22px;height:22px;padding:0;color:var(--muted);border:0;background:transparent;transition:color .12s ease,transform .12s ease}.settings-button:hover{color:var(--foreground);transform:rotate(20deg)}.list-scroll{flex:1 1 auto;min-height:0;overflow-y:auto;scrollbar-color:#999999 #292929;scrollbar-width:auto}.list-scroll::-webkit-scrollbar{width:21px}.list-scroll::-webkit-scrollbar-track{background:#292929}.list-scroll::-webkit-scrollbar-thumb{background:#999;border:5px solid #292929;border-radius:7px}.search-collapse{max-height:0;overflow:hidden;transition:max-height .28s ease}.search-collapse-open{max-height:480px}.pulldown-profile{padding:20px 32px 16px;border-bottom:1px solid var(--line)}.pulldown-nick-label{font-size:10px;letter-spacing:3px;color:var(--muted);margin-bottom:6px}.pulldown-nick{font-size:18px;letter-spacing:3px;font-weight:700;color:var(--foreground);margin-bottom:16px}.pulldown-themes{display:flex;gap:10px}.pulldown-theme-swatch{width:24px;height:24px;padding:0;border:1px solid var(--line);transition:transform .12s ease}.pulldown-theme-swatch:hover{transform:scale(1.1)}.pulldown-theme-active{outline:1px solid var(--foreground);outline-offset:2px}.search-bar{display:flex;align-items:center;gap:12px;padding:16px 32px;border-bottom:1px solid var(--line)}.pull-hint{display:flex;flex-direction:column;align-items:center;gap:1px;padding:6px 0 2px;width:100%;border:0;background:transparent;color:var(--muted);opacity:.25;transition:opacity .16s ease}.pull-hint:hover{opacity:.5}.pull-hint svg{display:block}.search-icon{color:var(--muted);flex:0 0 14px}.search-input{min-width:0;flex:1;padding:0;background:transparent;border:0;color:var(--foreground);font-size:14px;letter-spacing:2px;outline:0}.search-input::-moz-placeholder{color:var(--muted);opacity:.6}.search-input::placeholder{color:var(--muted);opacity:.6}.search-go{padding:4px 10px;background:transparent;border:1px solid var(--line);color:var(--muted);font-size:14px;transition:color .12s ease,border-color .12s ease}.search-go:hover{color:var(--foreground);border-color:var(--muted)}.search-status{padding:12px 32px 4px;font-size:11px;letter-spacing:2px;color:var(--muted)}.search-result{display:flex;align-items:center;justify-content:space-between;padding:16px 32px;border-bottom:1px solid var(--line)}.search-result-id{font-size:15px;letter-spacing:3px;font-weight:600;color:var(--foreground)}.open-channel-btn{padding:8px 16px;background:transparent;border:1px solid var(--line);color:var(--foreground);font-size:11px;letter-spacing:2px;transition:border-color .12s ease}.open-channel-btn:hover{border-color:var(--foreground)}.rooms-divider{padding:20px 32px 8px;font-size:11px;letter-spacing:4px;color:var(--muted)}.empty-rooms{padding:24px 32px;font-size:13px;letter-spacing:1px;color:var(--muted);line-height:1.6}.rooms-list{display:flex;flex-direction:column}.room-item{display:flex;align-items:center;justify-content:space-between;padding:18px 32px;border-bottom:1px solid var(--line);background:transparent;border-left:0;border-right:0;border-top:0;width:100%;text-align:left;transition:background-color .1s ease}.room-item:hover{background:color-mix(in srgb,var(--foreground) 5%,transparent)}.room-peer{display:flex;align-items:center;gap:10px;font-size:15px;letter-spacing:3px;font-weight:600;color:var(--foreground)}.room-avatar{width:24px;height:24px;image-rendering:pixelated;flex:0 0 24px}.room-avatar-fallback{display:grid;place-items:center;width:24px;height:24px;flex:0 0 24px;border:1px solid var(--line);color:var(--muted);font-size:12px;font-weight:700;letter-spacing:0}.room-name-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.room-status-dot{width:8px;height:8px;border-radius:50%;flex:0 0 8px;margin-left:-6px;transition:background .2s ease,box-shadow .2s ease}.room-status-dot.dot-online{background:#00ff41;box-shadow:0 0 5px #00ff41,0 0 10px #00ff4166}.room-status-dot.dot-recent{background:#e0b400;box-shadow:0 0 5px #e0b400,0 0 10px #e0b40059}.room-status-dot.dot-offline{background:#f33;box-shadow:0 0 4px #ff33334d}.room-status-online{background:linear-gradient(90deg,rgba(0,255,65,.08),transparent 60%);border-left:2px solid rgba(0,255,65,.5)}.room-status-recent{background:linear-gradient(90deg,rgba(224,180,0,.08),transparent 60%);border-left:2px solid rgba(224,180,0,.5)}.room-status-offline{background:linear-gradient(90deg,rgba(255,51,51,.06),transparent 60%);border-left:2px solid rgba(255,51,51,.35)}.room-arrow{font-size:14px;color:var(--muted)}.room-invite-swords{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;color:var(--foreground);background:#ff28281f;border:1px solid rgba(255,40,40,.4);border-radius:3px;animation:invite-glow 1.6s ease-in-out infinite}.room-invite-swords svg{width:14px;height:14px}@keyframes invite-glow{0%,to{background:#ff28281a;border-color:#ff282859;box-shadow:0 0 4px #ff282840}50%{background:#ff323238;border-color:#ff3c3c99;box-shadow:0 0 10px #ff282880}}.unread-badge{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 6px;border:1px solid var(--foreground);color:var(--foreground);background:color-mix(in srgb,var(--foreground) 8%,transparent);font-size:11px;letter-spacing:1px;font-weight:700;animation:badge-pulse 1.4s ease-in-out infinite}@keyframes badge-pulse{0%,to{opacity:1}50%{opacity:.55}}.messages-scroll{flex:1 1 auto;min-height:0;overflow-y:scroll;scrollbar-color:#999999 #292929;scrollbar-width:auto}.messages-scroll::-webkit-scrollbar{width:21px}.messages-scroll::-webkit-scrollbar-track{background:#292929}.messages-scroll::-webkit-scrollbar-thumb{background:#999;border:5px solid #292929;border-radius:7px}.messages-scroll::-webkit-scrollbar-button{height:16px;background:#292929}.messages-list{min-height:100%;padding:0 54px 72px 32px}.message{max-width:78%;padding-top:44px}.message-other{margin-right:auto}.message-own{margin-left:auto;text-align:right}.message-meta{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:12px;letter-spacing:2px}.message-own .message-meta{justify-content:flex-end}.meta-rule{display:inline-block;width:34px;height:1px;background:var(--line)}.message p{margin:14px 0 0;padding:0 0 5px 22px;border-left:2px solid var(--line);font-family:Arial,sans-serif;font-size:20px;line-height:1.3;font-weight:600;color:var(--foreground)}.message-own p{padding:0 22px 5px 0;border-left:0;border-right:1px solid var(--muted)}.msg-status{display:inline-block;width:7px;height:7px;margin-left:6px;vertical-align:1px;transition:background-color .2s ease}.msg-status-pending{background:#777}.msg-status-sent{background:#e0b400}.msg-status-read{background:#2ea043}.composer{height:calc(62px + var(--safe-bottom));flex:0 0 calc(62px + var(--safe-bottom));box-sizing:border-box;display:flex;align-items:center;gap:22px;border-top:1px solid var(--line);padding:0 36px var(--safe-bottom) 32px}.prompt-mark{color:var(--muted);font-size:15px}.composer input{min-width:0;flex:1;padding:0;color:var(--foreground);outline:0;border:0;background:transparent;font-family:Arial,sans-serif;font-size:16px}.composer input::-moz-placeholder{color:var(--muted);opacity:.75}.composer input::placeholder{color:var(--muted);opacity:.75}.send-button{padding:0;border:0;background:transparent;color:var(--muted);font-size:12px;letter-spacing:3px;transition:color .12s ease}.send-button-ready{color:var(--foreground)}.send-button:disabled{opacity:.4;cursor:not-allowed}.media-btn{display:grid;place-items:center;width:28px;height:28px;padding:0;border:0;background:transparent;color:var(--muted);transition:color .12s ease;flex:0 0 28px}.media-btn:hover:not(:disabled){color:var(--foreground)}.media-btn:disabled{opacity:.4;cursor:not-allowed}.msg-media{max-width:100%;margin-top:14px;border:1px solid var(--line)}.msg-media-img{max-height:320px;-o-object-fit:cover;object-fit:cover}.msg-media-video{max-height:320px;-o-object-fit:cover;object-fit:cover;width:100%;background:#000}.avatar-current{display:flex;align-items:center;gap:12px;width:100%;padding:12px;background:transparent;border:1px solid var(--line);color:var(--foreground);transition:border-color .12s ease}.avatar-current:hover{border-color:var(--muted)}.avatar-current-img{width:48px;height:48px;image-rendering:pixelated;flex:0 0 48px}.avatar-current-placeholder{width:48px;height:48px;flex:0 0 48px;display:grid;place-items:center;border:1px solid var(--line);color:var(--muted);font-size:20px}.avatar-current-name{flex:1;text-align:left;font-size:14px;letter-spacing:2px;font-weight:600}.avatar-current-hint{color:var(--muted);font-size:10px}.avatar-grid{display:grid;grid-template-columns:repeat(10,1fr);gap:4px;margin-top:12px;max-height:280px;overflow-y:auto;padding:4px;border:1px solid var(--line)}.avatar-grid-item{position:relative;display:grid;place-items:center;padding:2px;border:1px solid transparent;background:transparent;transition:border-color .1s ease,transform .1s ease}.avatar-grid-item:hover{border-color:var(--muted);transform:scale(1.1);z-index:2}.avatar-grid-item img{width:32px;height:32px;image-rendering:pixelated;display:block}.avatar-grid-selected{border-color:var(--foreground)!important;background:color-mix(in srgb,var(--foreground) 10%,transparent)}.avatar-grid-tooltip{position:absolute;bottom:calc(100% + 4px);left:50%;transform:translate(-50%);background:var(--background);border:1px solid var(--line);padding:3px 8px;font-size:10px;letter-spacing:1px;white-space:nowrap;z-index:10;pointer-events:none}.settings-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:50;background:#0006;backdrop-filter:blur(4.8px);-webkit-backdrop-filter:blur(4.8px);display:flex;align-items:flex-end;animation:overlay-in .2s ease}@keyframes overlay-in{0%{opacity:0}to{opacity:1}}.settings-sheet{width:100%;height:60vh;background:var(--background);border-top:1px solid var(--line);display:flex;flex-direction:column;align-items:center;gap:20px;padding:12px 32px 32px;animation:sheet-in .24s ease;overflow-y:auto}@keyframes sheet-in{0%{transform:translateY(100%)}to{transform:translateY(0)}}.settings-handle{width:40px;height:3px;border-radius:2px;background:var(--muted);opacity:.5}.settings-title{font-size:12px;letter-spacing:4px;color:var(--muted);margin-top:4px}.settings-row{width:100%;display:flex;align-items:center;justify-content:space-between;padding:16px 0;border-bottom:1px solid var(--line);font-size:14px;letter-spacing:2px;color:var(--foreground)}.settings-muted{color:var(--muted);font-size:12px;letter-spacing:2px}.settings-logout{margin-top:auto;padding:14px 28px;background:transparent;border:1px solid var(--line);color:var(--muted);font-size:12px;letter-spacing:3px;transition:border-color .12s ease,color .12s ease}.settings-logout:hover{border-color:var(--foreground);color:var(--foreground)}.settings-section{width:100%;display:flex;flex-direction:column;gap:8px;padding-bottom:16px;border-bottom:1px solid var(--line)}.settings-label{font-size:11px;letter-spacing:3px;color:var(--muted)}.settings-current-id{font-size:16px;letter-spacing:3px;font-weight:600;color:var(--foreground)}.nick-row{display:flex;align-items:center;gap:10px}.nick-input{flex:1;min-width:0;padding:8px 12px;background:transparent;border:1px solid var(--line);color:var(--foreground);font-size:13px;letter-spacing:2px;outline:0;transition:border-color .12s ease}.nick-input:focus{border-color:var(--muted)}.nick-input::-moz-placeholder{color:var(--muted);opacity:.5}.nick-input::placeholder{color:var(--muted);opacity:.5}.nick-save{padding:8px 16px;background:transparent;border:1px solid var(--line);color:var(--muted);font-size:12px;letter-spacing:1px;transition:border-color .12s ease,color .12s ease}.nick-save:hover:not(:disabled){border-color:var(--foreground);color:var(--foreground)}.nick-save:disabled{opacity:.3;cursor:not-allowed}.nick-status{font-size:11px;letter-spacing:2px;color:var(--muted);min-height:14px}@media (max-width: 640px){.chat-header{height:44px;flex-basis:44px}.back-btn,.games-tab{left:12px}.header-actions{right:16px;gap:10px}.header-actions>span{display:none}.search-bar,.search-result{padding:14px 16px}.rooms-divider{padding:16px 16px 6px}.empty-rooms{padding:20px 16px}.room-item{padding:16px}.messages-list{padding:0 24px 56px 16px}.message{max-width:91%;padding-top:32px}.message p{font-size:17px}.composer{gap:12px;padding:0 16px var(--safe-bottom)}.send-button{letter-spacing:1px;font-size:10px}.settings-sheet{padding:12px 20px 24px}}.chat-shell[data-theme=matrix]{background:#000;color:#00ff41}.chat-shell[data-theme=matrix] .chat-frame{position:relative}.chat-shell[data-theme=matrix] .chat-frame:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:100;background:repeating-linear-gradient(0deg,rgba(0,255,65,.03) 0px,rgba(0,255,65,.03) 1px,transparent 1px,transparent 3px)}.chat-shell[data-theme=matrix] .chat-header,.chat-shell[data-theme=matrix] .identity,.chat-shell[data-theme=matrix] .room-peer,.chat-shell[data-theme=matrix] .message p,.chat-shell[data-theme=matrix] .message-meta,.chat-shell[data-theme=matrix] .composer input,.chat-shell[data-theme=matrix] .search-input,.chat-shell[data-theme=matrix] .pulldown-nick,.chat-shell[data-theme=matrix] .settings-current-id,.chat-shell[data-theme=matrix] .settings-title,.chat-shell[data-theme=matrix] .settings-label,.chat-shell[data-theme=matrix] .rooms-divider,.chat-shell[data-theme=matrix] .search-result-id,.chat-shell[data-theme=matrix] .empty-rooms{text-shadow:0 0 4px rgba(0,255,65,.5),0 0 8px rgba(0,255,65,.2)}.chat-shell[data-theme=matrix] .message p{border-left-color:#00ff41}.chat-shell[data-theme=matrix] .message-own p{border-right-color:#00ff41}.chat-shell[data-theme=matrix] .online-dot.dot-online{background:#00ff41;box-shadow:0 0 6px #00ff41,0 0 12px #00ff4180}.chat-shell[data-theme=matrix] .online-dot.dot-recent{background:#e0b400;box-shadow:0 0 6px #e0b400}.chat-shell[data-theme=matrix] .online-dot.dot-offline{background:#003b00;box-shadow:none}.chat-shell[data-theme=matrix] .back-btn{border-color:#003b00;color:#008f11}.chat-shell[data-theme=matrix] .back-btn:hover{border-color:#00ff41;color:#00ff41;text-shadow:0 0 4px rgba(0,255,65,.6)}.chat-shell[data-theme=matrix] .theme-toggle{border-color:#00ff41;box-shadow:0 0 4px #00ff4180}.chat-shell[data-theme=matrix] .room-item:hover{background:#00ff410d}.chat-shell[data-theme=matrix] .unread-badge{border-color:#00ff41;color:#00ff41;background:#00ff411a;box-shadow:0 0 6px #00ff4166}.chat-shell[data-theme=matrix] .msg-status-sent{background:#00ff41;box-shadow:0 0 4px #00ff41}.chat-shell[data-theme=matrix] .msg-status-read{background:#0c3}.chat-shell[data-theme=matrix] .send-button-ready{color:#00ff41;text-shadow:0 0 4px rgba(0,255,65,.5)}.chat-shell[data-theme=matrix] .search-go{border-color:#003b00;color:#008f11}.chat-shell[data-theme=matrix] .search-go:hover{border-color:#00ff41;color:#00ff41}.chat-shell[data-theme=matrix] .settings-button:hover{color:#00ff41;text-shadow:0 0 4px rgba(0,255,65,.5)}.chat-shell[data-theme=matrix] .pulldown-theme-active{outline-color:#00ff41;box-shadow:0 0 4px #00ff4166}.theme-option[style*="#00ff41"],.theme-toggle[style*="#00ff41"],.pulldown-theme-swatch[style*="#00ff41"]{box-shadow:0 0 4px #00ff41,0 0 8px #00ff4166}.games-tab{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:800;letter-spacing:1.5px;color:var(--foreground);background:transparent;border:1px solid var(--line);padding:4px 8px;cursor:pointer;transition:background .15s ease,border-color .15s ease;position:absolute;left:32px;top:50%;transform:translateY(-50%);z-index:3}.games-tab:hover{background:var(--line);border-color:var(--muted)}.games-tab span{line-height:1}.tetris-wrap{flex:1;display:flex;flex-direction:column;align-items:center;padding:16px;gap:14px;overflow-y:auto}.tetris-stats{display:flex;gap:20px;width:100%;max-width:320px;justify-content:center}.tetris-stat{display:flex;flex-direction:column;align-items:center;gap:2px}.tetris-stat-label{font-size:10px;letter-spacing:2px;color:var(--muted);font-weight:700}.tetris-stat-val{font-size:22px;font-weight:800;color:var(--foreground);font-family:Courier New,monospace}.tetris-board-wrap{position:relative;display:flex;justify-content:center}.tetris-board{display:grid;grid-template-columns:repeat(10,1fr);grid-template-rows:repeat(20,1fr);width:min(60vw,220px);aspect-ratio:1 / 2;border:2px solid var(--line);background:var(--background);gap:1px;padding:2px}.tetris-cell{background:transparent;transition:background-color 80ms ease}.tetris-cell-filled{border-radius:1px;box-shadow:inset 0 0 2px #ffffff26}.tetris-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#000000bf;z-index:5}.tetris-start-btn{display:flex;flex-direction:column;align-items:center;gap:8px;background:var(--foreground);color:var(--background);border:none;padding:14px 28px;font-size:14px;font-weight:800;letter-spacing:2px;cursor:pointer;transition:opacity .15s ease}.tetris-start-btn:hover{opacity:.85}.tetris-start-btn:disabled{opacity:.4;cursor:default}.tetris-gameover{display:flex;flex-direction:column;align-items:center;gap:12px}.tetris-gameover-title{font-size:18px;font-weight:800;letter-spacing:3px;color:#f44}.tetris-gameover-score{font-size:16px;font-weight:700;color:var(--foreground);font-family:Courier New,monospace}.tetris-restart-btn{display:flex;align-items:center;gap:6px;background:transparent;color:var(--muted);border:1px solid var(--line);padding:8px 16px;font-size:12px;font-weight:600;letter-spacing:1px;cursor:pointer;transition:background .15s ease}.tetris-restart-btn:hover{background:var(--line)}.tetris-paused{font-size:24px;font-weight:800;letter-spacing:4px;color:var(--foreground)}.tetris-controls{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}.tetris-btn{width:48px;height:48px;display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:700;background:var(--line);color:var(--foreground);border:1px solid var(--muted);cursor:pointer;transition:background .1s ease;-moz-user-select:none;user-select:none;-webkit-user-select:none;touch-action:manipulation}.tetris-btn:active{background:var(--muted)}.tetris-btn-rotate{font-size:22px}.tetris-btn-drop{font-size:18px}.tetris-btn-pause{font-size:14px;letter-spacing:1px}.tetris-leaderboard{flex:1;overflow-y:auto;padding:16px}.leaderboard-list{display:flex;flex-direction:column;gap:2px}.leaderboard-row{display:flex;align-items:center;gap:10px;padding:10px 12px;border-bottom:1px solid var(--line);font-size:13px}.leaderboard-rank{font-weight:800;font-size:16px;color:var(--muted);min-width:28px;text-align:center}.leaderboard-rank-top{color:#f0a000}.leaderboard-player{flex:1;font-weight:600;color:var(--foreground);letter-spacing:1px}.leaderboard-score{font-weight:800;font-size:16px;color:var(--foreground);font-family:Courier New,monospace}.leaderboard-meta{font-size:10px;color:var(--muted);letter-spacing:1px}.houses-wrap{flex:1;display:flex;flex-direction:column;align-items:center;padding:16px;gap:14px;overflow-y:auto}.houses-board-wrap{position:relative;display:flex;justify-content:center}.houses-board{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:4px}.house-card{width:64px;height:64px;display:flex;align-items:center;justify-content:center;background:var(--line);border:1px solid var(--muted);cursor:pointer;transition:transform .2s ease,background .2s ease,border-color .2s ease;-moz-user-select:none;user-select:none;-webkit-user-select:none;touch-action:manipulation;padding:0}.house-card:hover:not(.house-card-flipped){border-color:var(--foreground)}.house-card-flipped{background:var(--background);transform:scale(1.05)}.house-card-matched{border-color:#2ecc71;background:#2ecc711f;cursor:default}.house-card-back-icon{color:var(--muted);opacity:.5}.houses-win-meta{font-size:12px;color:var(--muted);letter-spacing:1px;margin-top:-4px}.games-list{display:flex;flex-direction:column}.games-row{display:flex;align-items:center;gap:12px;padding:14px 32px;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--foreground);cursor:pointer;transition:background .12s ease;text-align:left;width:100%}.games-row:hover{background:var(--line)}.games-row-icon{color:var(--muted);flex:0 0 18px}.games-row-name{font-size:13px;font-weight:700;letter-spacing:2px;color:var(--foreground);flex:0 0 auto}.games-row-desc{flex:1;font-size:11px;letter-spacing:1px;color:var(--muted);text-align:right}.games-row-arrow{color:var(--muted);flex:0 0 16px}.tetris-game-wrap{flex:1;display:flex;flex-direction:column;align-items:center;padding:12px;gap:12px;overflow-y:auto}.tetris-game-area{display:flex;gap:16px;align-items:flex-start}.tetris-side{display:flex;flex-direction:column;gap:12px;width:80px}.tetris-next-block{border:1px solid var(--line);padding:10px;display:flex;flex-direction:column;align-items:center;gap:8px}.tetris-next-label{font-size:9px;letter-spacing:2px;color:var(--muted);font-weight:700}.tetris-next-preview{display:flex;justify-content:center;align-items:center;min-height:48px}.tetris-next-grid{display:grid;gap:1px}.tetris-next-cell{width:14px;height:14px;background:transparent}.tetris-next-cell-filled{box-shadow:inset 0 0 2px #ffffff26}.tetris-pause-btn{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;padding:8px;border:1px solid var(--line);background:transparent;color:var(--foreground);font-size:11px;font-weight:600;letter-spacing:1px;cursor:pointer;transition:background .12s ease}.tetris-pause-btn:hover:not(:disabled){background:var(--line)}.tetris-pause-btn:disabled{opacity:.3;cursor:default}.tetris-touch-controls{display:flex;gap:6px;justify-content:center;flex-wrap:wrap}.catch-board{position:relative;border:2px solid var(--line);background:var(--background);overflow:hidden}.catch-item{position:absolute;display:flex;align-items:center;justify-content:center;transition:none}.catch-basket{position:absolute;border:2px solid var(--foreground);border-top:0;background:#ffffff14;z-index:4}.catch-hint{font-size:11px;letter-spacing:1px;color:var(--muted);text-align:center}.create-group-btn{display:block;width:100%;padding:14px;border:0;border-top:1px solid var(--line);background:transparent;color:var(--muted);font-size:12px;letter-spacing:1px;cursor:pointer;transition:color .12s ease,background .12s ease}.create-group-btn:hover{color:var(--foreground);background:var(--line)}.group-count-badge{display:inline-block;margin-left:6px;padding:1px 5px;font-size:9px;font-weight:700;color:var(--muted);border:1px solid var(--line);border-radius:3px;letter-spacing:0}.header-avatar-placeholder{color:var(--muted)}.group-modal-sheet{max-height:85vh;overflow-y:auto}.group-name-input{width:100%}.group-members-list{display:flex;flex-direction:column;gap:2px;max-height:200px;overflow-y:auto}.group-member-row{display:flex;align-items:center;gap:10px;padding:10px 12px;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--foreground);cursor:pointer;text-align:left;width:100%;transition:background .1s ease}.group-member-row:hover,.group-member-checked{background:var(--line)}.group-member-placeholder{display:inline-block;width:20px;height:20px;border:1px solid var(--line);border-radius:2px}.group-member-name{flex:1;font-size:13px;font-weight:600;letter-spacing:1px}.group-member-check{width:20px;height:20px;display:flex;align-items:center;justify-content:center;border:1px solid var(--line);font-size:14px;font-weight:700;color:transparent;transition:color .1s ease,border-color .1s ease}.group-member-check-on{color:var(--accent);border-color:var(--accent)}.group-create-btn{margin-top:8px}.invite-banner{background:var(--line);border:1px solid var(--muted);padding:10px 14px;margin-bottom:16px;font-size:12px;color:var(--foreground);letter-spacing:1px;text-align:center}.invite-banner-id{font-weight:700;letter-spacing:2px}.settings-current-id-row{display:flex;align-items:center;gap:8px}.copy-id-btn{display:flex;align-items:center;justify-content:center;width:22px;height:22px;border:1px solid var(--line);background:transparent;color:var(--muted);cursor:pointer;transition:color .12s ease,border-color .12s ease;flex:0 0 22px}.copy-id-btn:hover{color:var(--foreground);border-color:var(--muted)}.copy-id-btn-done{color:#2ecc71;border-color:#2ecc71}.copy-nick-header-btn{display:inline-flex;align-items:center;justify-content:center;border:0;background:transparent;color:var(--muted);cursor:pointer;opacity:.4;transition:opacity .12s ease;padding:0;margin-left:2px}.copy-nick-header-btn:hover{opacity:1}.invite-link-row{display:flex;align-items:center;gap:8px}.invite-link-text{flex:1;font-size:10px;font-family:Courier New,monospace;color:var(--muted);word-break:break-all;line-height:1.4;padding:6px 8px;border:1px solid var(--line);background:var(--background)}.invite-copy-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;flex:0 0 32px;border:1px solid var(--line);background:transparent;color:var(--muted);cursor:pointer;transition:color .12s ease,border-color .12s ease}.invite-copy-btn:hover{color:var(--foreground);border-color:var(--muted)}.invite-copy-btn-done{color:#2ecc71;border-color:#2ecc71}.invite-hint{font-size:10px;color:var(--muted);line-height:1.5;margin-top:8px;letter-spacing:.5px}.invite-share-btn{display:block;width:100%;margin-top:10px;padding:10px;border:1px solid var(--line);background:transparent;color:var(--foreground);font-size:12px;font-weight:600;letter-spacing:1px;cursor:pointer;transition:background .12s ease}.invite-share-btn:hover{background:var(--line)}.seed-reveal-box{display:flex;flex-direction:column;gap:10px}.seed-reveal-words{font-size:16px;font-weight:700;letter-spacing:2px;color:var(--foreground);padding:14px;border:1px solid var(--muted);background:var(--background);text-align:center;word-break:break-all}.seed-confirm-box{display:flex;flex-direction:column;gap:10px}.seed-confirm-step{font-size:11px;font-weight:700;letter-spacing:1px;color:var(--muted)}.seed-confirm-warn{font-size:12px;line-height:1.5;color:var(--foreground);letter-spacing:.5px}.erase-warn{color:#e74c3c}.seed-confirm-bar{width:100%;height:3px;background:var(--line);overflow:hidden}.seed-confirm-progress{height:100%;background:var(--accent);transition:width 1s linear}.erase-progress{background:#e74c3c}.seed-confirm-wait{width:100%;padding:10px;border:1px solid var(--line);background:transparent;color:var(--muted);font-size:12px;font-weight:600;letter-spacing:1px;cursor:not-allowed;opacity:.6}.seed-cancel-btn{width:100%;padding:10px;border:1px solid var(--line);background:transparent;color:var(--muted);font-size:12px;font-weight:600;letter-spacing:1px;cursor:pointer;transition:color .12s ease,background .12s ease}.seed-cancel-btn:hover{color:var(--foreground);background:var(--line)}.erase-section{border-top:1px solid var(--line);padding-top:16px}.erase-label{color:#e74c3c}.erase-hint{color:#e74c3c;opacity:.7}.settings-erase-btn{display:block;width:100%;margin-top:8px;padding:10px;border:1px solid #e74c3c;background:transparent;color:#e74c3c;font-size:12px;font-weight:700;letter-spacing:1px;cursor:pointer;transition:background .12s ease,color .12s ease}.settings-erase-btn:hover{background:#e74c3c;color:var(--background)}.seed-reveal-actions{display:flex;gap:8px}.seed-reveal-actions button{flex:1}.seed-copy-btn-done{color:#2ecc71!important;border-color:#2ecc71!important}.chat-shell,.auth-shell{position:relative;overflow:hidden}.sota-bg-canvas{position:absolute;top:0;left:0;width:100%;height:100%;z-index:0;opacity:.2;pointer-events:none}.chat-frame,.auth-frame{position:relative;z-index:1}.agent-hex-btn{position:absolute;bottom:70px;left:50%;transform:translate(-50%);width:52px;height:60px;background:transparent;border:none;cursor:pointer;z-index:5;display:flex;align-items:center;justify-content:center;padding:0;transition:filter .3s ease}.agent-hex-btn:hover{filter:drop-shadow(0 0 8px var(--accent))}.agent-hex-shape{position:absolute;top:0;right:0;bottom:0;left:0;clip-path:polygon(50% 0%,100% 25%,100% 75%,50% 100%,0% 75%,0% 25%);background:var(--accent);opacity:.12;transition:opacity .3s ease}.agent-hex-btn:hover .agent-hex-shape{opacity:.25}.agent-hex-outline{position:absolute;top:0;right:0;bottom:0;left:0;clip-path:polygon(50% 0%,100% 25%,100% 75%,50% 100%,0% 75%,0% 25%);background:none;border:none}.agent-hex-outline svg{width:100%;height:100%}.agent-hex-outline polygon{fill:none;stroke:var(--accent);stroke-width:1.5;opacity:.6;transition:opacity .3s ease}.agent-hex-btn:hover .agent-hex-outline polygon{opacity:1}.agent-hex-grid{position:relative;z-index:1;width:100%;height:100%;background-image:repeating-conic-gradient(from 30deg at 50% 50%,transparent 0deg,transparent 60deg,transparent 120deg,transparent 180deg,transparent 240deg,transparent 300deg);-webkit-mask-image:repeating-linear-gradient(0deg,transparent 0px,transparent 3px,#000 3px,#000 4px),repeating-linear-gradient(90deg,transparent 0px,transparent 3px,#000 3px,#000 4px);-webkit-mask-composite:source-over;mask-image:repeating-linear-gradient(0deg,transparent 0px,transparent 3px,#000 3px,#000 4px),repeating-linear-gradient(90deg,transparent 0px,transparent 3px,#000 3px,#000 4px);opacity:.5;transition:opacity .3s ease}.agent-hex-btn:hover .agent-hex-grid{opacity:.8}.agent-hex-grid:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='9.24' viewBox='0 0 8 9.24'%3E%3Cpath d='M4 0L8 2.31V6.93L4 9.24L0 6.93V2.31Z' fill='none' stroke='%23fff' stroke-width='0.4' opacity='0.5'/%3E%3C/svg%3E");background-size:8px 9.24px;background-repeat:repeat;clip-path:polygon(50% 0%,100% 25%,100% 75%,50% 100%,0% 75%,0% 25%)}.agent-hex-label{position:absolute;bottom:-16px;left:50%;transform:translate(-50%);font-size:8px;letter-spacing:.15em;color:var(--muted);white-space:nowrap;text-transform:uppercase}.ai-agent-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#0009;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);animation:ai-fade-in .25s ease}@keyframes ai-fade-in{0%{opacity:0}to{opacity:1}}.ai-agent-panel{width:min(440px,100vw);max-height:calc(100vh - (2*env(safe-area-inset-top,0px)));height:min(680px,100vh);background:var(--ai-bg, #000);border:1px solid var(--ai-line, #202020);border-radius:16px;display:flex;flex-direction:column;overflow:hidden;color:var(--ai-fg, #fff);animation:ai-slide-up .3s cubic-bezier(.16,1,.3,1);box-shadow:0 0 40px #00000080,0 0 0 1px var(--ai-accent, #fff) inset}@keyframes ai-slide-up{0%{transform:translateY(30px);opacity:0}to{transform:translateY(0);opacity:1}}.ai-agent-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;padding-top:calc(14px + env(safe-area-inset-top,0px));border-bottom:1px solid var(--ai-line, #202020);flex-shrink:0}.ai-agent-title{display:flex;align-items:center;gap:8px}.ai-agent-name{font-size:14px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.ai-agent-status{font-size:9px;color:var(--ai-muted, #777);letter-spacing:.1em;text-transform:uppercase;padding:2px 6px;border:1px solid var(--ai-line, #202020);border-radius:3px}.ai-agent-close{background:none;border:none;color:var(--ai-muted, #777);cursor:pointer;padding:4px;display:flex;align-items:center;transition:color .2s}.ai-agent-close:hover{color:var(--ai-fg, #fff)}.ai-agent-messages{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:10px;scroll-behavior:smooth}.ai-agent-messages::-webkit-scrollbar{width:4px}.ai-agent-messages::-webkit-scrollbar-thumb{background:var(--ai-line, #202020);border-radius:2px}.ai-msg{max-width:85%;padding:10px 14px;border-radius:12px;font-size:13px;line-height:1.5;position:relative;animation:ai-msg-in .3s ease}@keyframes ai-msg-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.ai-msg-bot{align-self:flex-start;background:color-mix(in srgb,var(--ai-line, #202020) 50%,transparent);border:1px solid var(--ai-line, #202020);border-bottom-left-radius:4px}.ai-msg-user{align-self:flex-end;background:color-mix(in srgb,var(--ai-accent, #fff) 15%,transparent);border:1px solid color-mix(in srgb,var(--ai-accent, #fff) 30%,transparent);border-bottom-right-radius:4px}.ai-msg-text{margin:0;white-space:pre-wrap;word-break:break-word}.ai-msg-image{width:100%;max-width:200px;border-radius:8px;margin-bottom:6px;display:block}.ai-msg-time{display:block;font-size:9px;color:var(--ai-muted, #777);margin-top:4px;opacity:.6}.ai-msg-typing{display:flex;gap:5px;align-items:center;padding:14px 16px}.ai-typing-dot{width:6px;height:6px;border-radius:50%;background:var(--ai-muted, #777);animation:ai-typing 1.2s infinite}.ai-typing-dot:nth-child(2){animation-delay:.2s}.ai-typing-dot:nth-child(3){animation-delay:.4s}@keyframes ai-typing{0%,60%,to{opacity:.3;transform:scale(.8)}30%{opacity:1;transform:scale(1)}}.ai-suggestions{display:flex;flex-wrap:wrap;gap:6px;padding:0 16px 8px;flex-shrink:0}.ai-suggestion-chip{font-size:11px;padding:5px 12px;border-radius:20px;background:none;border:1px solid var(--ai-line, #202020);color:var(--ai-fg, #fff);cursor:pointer;transition:all .2s;font-family:inherit}.ai-suggestion-chip:hover{border-color:var(--ai-accent, #fff);color:var(--ai-accent, #fff)}.ai-pending-image{display:flex;align-items:center;gap:8px;padding:8px 16px;border-top:1px solid var(--ai-line, #202020);flex-shrink:0}.ai-pending-image img{width:48px;height:48px;-o-object-fit:cover;object-fit:cover;border-radius:6px;border:1px solid var(--ai-line, #202020)}.ai-pending-send{font-size:11px;padding:6px 12px;border-radius:6px;background:var(--ai-accent, #fff);color:var(--ai-bg, #000);border:none;cursor:pointer;font-family:inherit;font-weight:600;transition:opacity .2s}.ai-pending-send:disabled{opacity:.4}.ai-pending-cancel{margin-left:auto;background:none;border:none;color:var(--ai-muted, #777);cursor:pointer;padding:4px;display:flex;transition:color .2s}.ai-pending-cancel:hover{color:var(--ai-fg, #fff)}.ai-error-text{font-size:10px;color:#ff6b6b;padding:4px 16px 0;flex-shrink:0}.ai-agent-composer{display:flex;align-items:center;gap:6px;padding:12px 14px;border-top:1px solid var(--ai-line, #202020);flex-shrink:0}.ai-media-btn{background:none;border:none;color:var(--ai-muted, #777);cursor:pointer;padding:6px;display:flex;align-items:center;transition:color .2s;flex-shrink:0}.ai-media-btn:hover:not(:disabled){color:var(--ai-accent, #fff)}.ai-media-btn:disabled{opacity:.3}.ai-agent-input{flex:1;background:none;border:none;outline:none;color:var(--ai-fg, #fff);font-size:13px;font-family:inherit;padding:8px 4px}.ai-agent-input::-moz-placeholder{color:var(--ai-muted, #777)}.ai-agent-input::placeholder{color:var(--ai-muted, #777)}.ai-send-btn{background:none;border:1px solid var(--ai-line, #202020);color:var(--ai-muted, #777);cursor:pointer;padding:7px 10px;border-radius:8px;display:flex;align-items:center;justify-content:center;transition:all .2s;flex-shrink:0}.ai-send-ready{color:var(--ai-accent, #fff);border-color:var(--ai-accent, #fff)}.ai-send-btn:disabled{opacity:.3;cursor:default}.ai-send-spinner{width:14px;height:14px;border:2px solid var(--ai-line, #202020);border-top-color:var(--ai-accent, #fff);border-radius:50%;animation:ai-spin .6s linear infinite}@keyframes ai-spin{to{transform:rotate(360deg)}}@media (max-width: 480px){.ai-agent-panel{width:100vw;height:100vh;max-height:100vh;border-radius:0;border:none}.ai-agent-composer{padding-bottom:calc(12px + env(safe-area-inset-bottom,0px))}}
