:root{color-scheme:light;--ink: #14151f;--muted: #686b7d;--line: #e6e7ee;--surface: #ffffff;--soft: #f5f6fa;--accent: #6738e8;--accent-strong: #4f27c2;--mint: #e9faf4;--sun: #ffbd57;--danger: #b42318;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Arial,sans-serif}*{box-sizing:border-box}html{min-height:100%;background:radial-gradient(circle at 1px 1px,rgba(124,127,145,.24) 1px,transparent 0) 0 0 / 18px 18px,#f8f9fc}body{margin:0;min-height:100vh;color:var(--ink)}button,input{font:inherit}button{border:0;cursor:pointer}button:disabled,input:disabled{cursor:not-allowed;opacity:.6}img{display:block}h1,h2,p{margin:0}.hidden{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.app-shell{min-height:100vh;padding:10px}.launcher-shell{position:relative;display:grid;grid-template-rows:auto minmax(0,1fr) auto;width:min(100%,390px);min-height:calc(100vh - 20px);margin:0 auto;overflow:hidden;border:1px solid var(--line);border-radius:18px;background:#fffffff0;box-shadow:0 22px 70px #1a1a261f}.top-bar{display:grid;grid-template-columns:32px minmax(0,1fr) 30px auto 32px;align-items:center;gap:8px;min-height:58px;padding:10px 14px 6px}.top-bar h1{min-width:0;overflow:hidden;font-size:20px;line-height:1;letter-spacing:0;text-overflow:ellipsis;white-space:nowrap}.brand-icon{display:grid;place-items:center;width:32px;height:32px;border-radius:8px;overflow:hidden;color:var(--accent);background:#fff;font-size:12px;font-weight:900}.brand-icon img{display:block;width:100%;max-width:100%;height:100%;max-height:100%;object-fit:contain}.brand-icon.disabled{cursor:default}.avatar-button{display:grid;place-items:center;width:32px;height:32px;overflow:hidden;border-radius:50%;color:#fff;background:linear-gradient(135deg,#202332,#53586b);font-size:12px;font-weight:900;box-shadow:inset 0 0 0 2px #ffffff3d}.avatar-button.has-image{background:var(--soft);box-shadow:none}.avatar-button img,.profile-name-button img,.avatar-choice img,.user-avatar img{width:86%;height:86%;object-fit:contain}.profile-menu-shell{position:relative;display:grid;grid-column:5;place-items:center}.profile-menu{position:absolute;top:calc(100% + 8px);right:0;z-index:20;display:grid;gap:4px;width:218px;padding:8px;border:1px solid var(--line);border-radius:12px;background:var(--surface);box-shadow:0 18px 42px #1a1a262e}.profile-menu-user{display:grid;gap:2px;padding:8px 9px;border-bottom:1px solid var(--line)}.profile-name-button{display:flex;align-items:center;gap:8px;min-width:0;min-height:32px;padding:0;color:var(--ink);background:transparent;text-align:left}.profile-name-button img{flex:0 0 auto;width:28px;height:28px;border-radius:50%}.profile-menu-user strong{color:var(--ink);font-size:13px;line-height:1.2;overflow-wrap:anywhere}.profile-menu-user span{color:var(--muted);font-size:11px;font-weight:800}.profile-menu-settings{display:grid;gap:4px;padding:4px 0;border-bottom:1px solid var(--line)}.avatar-picker{display:grid;gap:8px;padding:8px;border-bottom:1px solid var(--line)}.avatar-grid{display:grid;grid-template-columns:repeat(3,42px);gap:8px}.avatar-choice{display:grid;place-items:center;width:42px;height:42px;overflow:hidden;padding:0;border:2px solid transparent;border-radius:50%;background:var(--soft)}.avatar-choice.selected{border-color:var(--accent)}.avatar-actions{display:flex;gap:14px;align-items:center}.avatar-select-button{min-height:28px;padding:0;color:var(--accent);background:transparent;font-size:12px;font-weight:900}.avatar-select-button:hover{color:#4325d7}.avatar-clear-button{min-height:28px;padding:0;color:var(--danger);background:transparent;font-size:12px;font-weight:900}.avatar-clear-button:hover{color:#7a1b13}.profile-menu>button,.profile-menu-settings>button{min-height:36px;padding:0 9px;border-radius:8px;color:var(--ink);background:transparent;font-size:13px;font-weight:900;text-align:left}.profile-menu>button:hover,.profile-menu-settings>button:hover{background:var(--soft);color:var(--accent)}.layout-toggle,.top-help-button,.top-join-button{min-height:30px;padding:0 10px;border:1px solid var(--line);border-radius:999px;color:var(--accent);background:var(--surface);font-size:12px;font-weight:900}.top-help-button{display:grid;grid-column:3;place-items:center;width:30px;padding:0}.top-join-button{grid-column:4}.layout-toggle:hover,.top-help-button:hover,.top-join-button:hover{background:var(--soft)}.header-toggle-group{display:flex;align-items:center;gap:6px}.mode-choice-shell{display:grid;place-items:center;min-height:100vh;padding:24px}.mode-choice-panel{display:grid;gap:24px;width:min(100%,760px);padding:28px;border:1px solid var(--line);border-radius:18px;background:#fffffff5;box-shadow:0 22px 70px #1a1a261f}.mode-choice-heading{display:flex;align-items:center;gap:14px}.mode-choice-heading p{color:var(--muted);font-size:13px;font-weight:900}.mode-choice-heading h1{font-size:30px;letter-spacing:0}.mode-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.mode-choice-card{display:grid;gap:12px;min-width:0;padding:18px;border:1px solid var(--line);border-radius:16px;color:var(--ink);background:var(--surface);text-align:left;box-shadow:0 10px 24px #1f212f14}.mode-choice-card:hover{border-color:#6738e861;box-shadow:0 16px 32px #1f212f1f}.mode-choice-card strong{font-size:18px}.mode-choice-card>span:last-child{color:var(--muted);font-size:13px;font-weight:800}.mode-preview{display:grid;gap:8px;height:120px;padding:12px;border-radius:12px;background:var(--soft)}.mode-preview span{display:block;border-radius:8px;background:#dfe3ed}.mobile-preview{width:86px}.mobile-preview span:first-child{height:46px;background:var(--accent)}.mobile-preview span:nth-child(2),.mobile-preview span:nth-child(3){height:20px}.desktop-preview{grid-template-columns:1.2fr .8fr;width:100%}.desktop-preview span:first-child{grid-row:span 2;background:var(--accent)}.desktop-preview span:nth-child(2),.desktop-preview span:nth-child(3){min-height:44px}.home-view,.detail-view,.play-view,.join-view,.account-view{min-width:0;min-height:0;overflow-y:auto;padding:10px 14px 88px}.home-seo-copy{margin:20px 0 0;color:var(--muted);font-size:13px;font-weight:600;line-height:1.6;text-align:center}.featured-section{min-width:0;overflow:hidden}.featured-track{display:flex;gap:14px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:thin;padding-bottom:4px}.featured-card{position:relative;flex:0 0 min(86vw,420px);min-height:248px;overflow:hidden;border-radius:22px;background:var(--soft);box-shadow:0 12px 28px #1e1f2f1f;scroll-snap-align:start}.featured-card img{width:100%;height:100%;min-height:248px;object-fit:cover}.featured-shade{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#ffffff05,#ffffffc7 58%,#fffffff5),linear-gradient(90deg,#00000040,#0000)}.featured-content{position:absolute;left:22px;right:22px;bottom:18px;display:grid;gap:8px}.featured-pill{justify-self:start;padding:6px 14px;border-radius:999px;color:#fff;background:var(--accent);font-size:13px;font-weight:900;line-height:1}.featured-content h2,.detail-card h2{color:#0f111b;font-size:28px;line-height:1.02;letter-spacing:0}.featured-content p,.game-card span,.detail-meta,.status-line{display:flex;align-items:center;gap:5px;color:var(--muted);font-size:13px;font-weight:700}.play-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:0 18px;border-radius:999px;color:#fff;background:var(--accent);font-size:14px;font-weight:900}.play-button:hover{background:var(--accent-strong)}.search-section,.popular-section{display:grid;gap:12px;margin-top:20px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.section-heading h2{font-size:22px;letter-spacing:0}.see-all{padding:7px 4px;color:var(--accent);background:transparent;font-size:12px;font-weight:900}.room-chip{flex:none;min-height:30px;padding:0 10px;border-radius:999px;color:#fff;background:var(--accent);font-size:12px;font-weight:900}.search-form{display:grid;grid-template-columns:minmax(0,1fr) 106px;gap:8px}.search-form input{width:100%;min-height:42px;padding:0 14px;border:1px solid var(--line);border-radius:999px;background:var(--soft);color:var(--ink);outline:none}.search-form .players-filter-input{min-width:0;text-align:center}.search-form input:focus{border-color:#6738e87a;box-shadow:0 0 0 4px #6738e81a}.category-control{min-width:0}.category-select{display:block;width:100%;min-height:42px;padding:0 38px 0 14px;border:1px solid var(--line);border-radius:14px;color:var(--ink);background:var(--soft);font-size:13px;font-weight:900;outline:none}.category-select:focus{border-color:#6738e87a;box-shadow:0 0 0 4px #6738e81a}.category-strip,.desktop-mode .category-select{display:none}.desktop-mode .category-strip{display:flex}.category-strip{gap:10px;min-width:0;margin-inline:-14px;padding:0 14px 4px;overflow-x:auto;scrollbar-width:none}.category-strip::-webkit-scrollbar{display:none}.category-pill{display:inline-flex;align-items:center;flex:0 0 auto;gap:7px;min-height:40px;padding:0 15px;border-radius:14px;color:var(--ink);background:#f6f7fa;font-size:13px;font-weight:900;white-space:nowrap}.category-pill.active{color:#fff;background:var(--accent)}.category-symbol{display:inline-grid;place-items:center;width:18px;height:18px;color:currentColor}.game-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.game-feed-ad{width:100%;min-width:0;margin-top:20px}.game-card{position:relative;display:grid;gap:8px;min-width:0;padding:8px 8px 12px;border:1px solid #edf0f4;border-radius:16px;background:var(--surface);color:var(--ink);text-align:left;box-shadow:0 8px 18px #20212d14}.game-card:hover{transform:translateY(-1px)}.game-card img{width:100%;aspect-ratio:1.45 / 1;object-fit:cover;border-radius:12px;background:var(--soft)}.game-card strong{min-width:0;color:#171923;font-size:13px;line-height:1.15;overflow-wrap:anywhere}.game-card span{font-size:11px}.empty-state{grid-column:1 / -1;padding:14px;border:1px dashed var(--line);border-radius:12px;color:var(--muted);background:var(--soft);font-size:13px}.status-line{margin-top:16px;color:#777a8c;justify-content:center}.bottom-nav{position:absolute;right:0;bottom:0;left:0;display:grid;grid-template-columns:repeat(2,1fr);min-height:70px;padding:8px 12px 10px;border-top:1px solid var(--line);background:#fffffff5;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.nav-button{display:grid;place-items:center;gap:3px;color:#5f6271;background:transparent;font-size:11px;font-weight:900}.nav-button span{color:currentColor;font-size:22px;line-height:1}.nav-button.active{color:var(--accent)}.back-button{justify-self:start;padding:7px 4px;color:var(--accent);background:transparent;font-size:14px;font-weight:900}.detail-view{display:grid;align-content:start;gap:12px}.detail-card{display:grid;gap:12px;min-width:0}.detail-card img{width:100%;aspect-ratio:16 / 10;object-fit:cover;border-radius:18px;background:var(--soft)}.detail-card p{color:var(--muted);font-size:14px;line-height:1.45}.detail-meta{justify-content:space-between;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--soft)}.detail-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.detail-actions .play-button{grid-column:1 / -1}.login-required-note{color:var(--muted);font-size:14px}.how-to-play-panel{display:grid;border:1px solid var(--line);border-radius:12px;background:var(--soft);overflow:hidden}.how-to-play-title{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-height:44px;padding:0 12px;color:var(--ink);background:transparent;font-size:14px;font-weight:900;text-align:left}.how-to-play-icon{flex:0 0 auto;color:var(--muted);font-size:11px}.how-to-play-content{max-height:0;opacity:0;overflow:hidden;transform:translateY(-4px);transition:max-height .22s ease,opacity .18s ease,transform .22s ease,padding .22s ease}.how-to-play-panel.open .how-to-play-content{max-height:420px;opacity:1;overflow-y:auto;padding:0 12px 12px;transform:translateY(0)}.how-to-play-panel p{margin:0}.how-to-play-section+.how-to-play-section{margin-top:14px}.how-to-play-section h3{margin:0 0 4px;color:var(--accent);font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.04em}.secondary-button{min-height:46px;padding:0 14px;border:1px solid var(--line);border-radius:999px;color:var(--ink);background:var(--surface);font-weight:900}.secondary-button:hover{background:var(--soft)}.play-view{display:grid;align-content:start;gap:12px}.join-view{display:grid;align-content:start;gap:14px}.join-toolbar{display:flex;align-items:center;justify-content:space-between}.manual-join-form{display:grid;gap:12px}.account-view{display:grid;align-content:start;gap:14px}.account-empty{color:var(--muted)}.saved-rooms-list{display:grid;gap:10px;margin:0;padding:0;list-style:none}.saved-room-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.saved-room-info{display:grid;gap:2px;min-width:0}.saved-room-info span{color:var(--muted);font-size:13px}.saved-room-actions{display:flex;flex-wrap:wrap;gap:8px}.saved-room-actions button{min-height:38px;padding:0 12px}.saved-room-actions .danger-button{background:linear-gradient(135deg,#d92d20,#b42318);box-shadow:0 12px 22px #b4231833}.play-toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px}.play-toolbar-actions{display:flex;align-items:center;gap:8px}.room-share-button{min-height:30px;padding:0 10px;border-radius:999px;font-size:12px}.game-frame-shell{position:relative;min-width:0}.panel-toggle-button{display:grid;place-items:center;justify-self:end;width:34px;height:34px;border:1px solid rgba(103,56,232,.24);border-radius:50%;color:var(--accent);background:#f1edff;box-shadow:0 8px 18px #6738e81f;font-size:14px;font-weight:900;line-height:1}.panel-toggle-button:hover{color:#fff;background:var(--accent)}.panel-toggle-button.floating{position:absolute;top:10px;right:10px;z-index:2;background:#fffffff0;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}iframe{width:100%;height:420px;overflow:hidden;border:1px solid var(--line);border-radius:16px;background:#fff}.side-panel{display:grid;gap:12px}.side-panel.compact{align-content:start}.room-panel-icons{display:grid;grid-template-columns:repeat(2,42px);justify-content:end;gap:10px;padding:10px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}.room-panel-icons button{position:relative;display:grid;place-items:center;width:42px;height:42px;border:1px solid rgba(103,56,232,.22);border-radius:50%;color:var(--accent);background:#f1edff;box-shadow:0 6px 16px #6738e81a;font-size:17px;font-weight:900;line-height:1}.room-panel-icons button:hover{color:#fff;background:var(--accent)}.room-panel-icons .chat-shortcut.has-unread{border-color:#d92d2047;color:#b42318;background:#fff1f0}.room-panel-icons .chat-shortcut.has-unread:hover{color:#fff;background:#d92d20}.unread-badge{position:absolute;top:-4px;right:-4px;display:grid;place-items:center;min-width:18px;height:18px;padding:0 5px;border:2px solid var(--surface);border-radius:999px;color:#fff;background:#d92d20;box-shadow:0 6px 12px #d92d2038;font-size:10px;font-weight:900;line-height:1}.room-panel-icons .turn-player-shortcut{position:relative;border-color:#14b8a657;background:#e9fbf8}.room-panel-icons .turn-player-shortcut:after{position:absolute;right:-2px;bottom:-2px;width:14px;height:14px;border:2px solid var(--surface);border-radius:50%;background:#14b8a6;content:""}.room-panel-icons .turn-player-shortcut .user-avatar{width:30px;height:30px;box-shadow:none}.side-panel>section,.room-chat{display:grid;gap:10px;padding:12px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}.collapsible-panel{overflow:hidden;transition:gap .18s ease,padding .18s ease,box-shadow .18s ease}.collapsible-panel.collapsed{gap:0;box-shadow:none}.side-panel h2,.room-chat h2{font-size:16px}.collapsible-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-height:32px;padding:0;color:var(--ink);background:transparent;text-align:left}.collapsed-turn-player{display:grid;place-items:center;margin-left:auto}.collapsed-turn-player:empty{display:none}.collapsed-turn-player .user-avatar{width:30px;height:30px;border:2px solid rgba(20,184,166,.42);box-shadow:0 8px 18px #14b8a629}.chat-heading-status{display:inline-flex;align-items:center;gap:8px;margin-left:auto}.unread-badge.inline{position:static;min-width:20px;height:20px}.collapse-icon{display:grid;place-items:center;flex:0 0 auto;width:30px;height:30px;border:1px solid rgba(103,56,232,.22);border-radius:50%;color:var(--accent);background:#f1edff;box-shadow:0 6px 16px #6738e81f;font-size:12px;font-weight:900;line-height:1}.collapsible-heading:hover .collapse-icon{color:#fff;background:var(--accent)}.collapsible-panel.collapsed .collapse-icon{border-color:#6738e84d;background:#fff}.collapsible-body{display:grid;gap:10px;max-height:420px;overflow:hidden;opacity:1;transform:translateY(0);transition:max-height .22s ease,opacity .18s ease,transform .22s ease,margin-top .18s ease}.collapsible-panel.collapsed .collapsible-body{max-height:0;margin-top:-2px;opacity:0;transform:translateY(-10px);pointer-events:none}.user-list{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}.user-list li{display:inline-flex;align-items:center;gap:7px;padding:8px 10px;border-radius:999px;color:#3c4053;background:var(--soft);font-size:12px;font-weight:900}.user-list li.current-player{border:1px solid rgba(103,56,232,.24);color:var(--accent);background:#f1edff}.user-list li.turn-player{border:1px solid rgba(20,184,166,.34);color:#0f766e;background:linear-gradient(135deg,#e9fbf8,#f1edff);box-shadow:0 8px 18px #14b8a61f}.user-list li.turn-player .user-avatar{box-shadow:0 0 0 2px #fff,0 0 0 4px #14b8a66b}.user-list li.current-player strong,.user-list li.turn-player strong{padding:3px 7px;border-radius:999px;color:#fff;background:var(--accent);font-size:10px;line-height:1}.user-list li.turn-player strong{background:#14b8a6}.user-list li strong.host-badge{padding:3px 7px;border-radius:999px;color:#fff;background:#b45309;font-size:10px;line-height:1}.user-list li.manageable{position:relative;cursor:pointer}.user-list li.manageable:hover,.user-list li.manageable[aria-expanded=true]{box-shadow:inset 0 0 0 1px #3c40533d}.player-menu{position:fixed;z-index:30;display:grid;min-width:160px;padding:6px;border-radius:10px;background:var(--surface);box-shadow:0 14px 30px #1f1a3333;cursor:default}.player-menu-item{padding:9px 10px;border:none;border-radius:7px;color:#3c4053;background:none;font-size:12px;font-weight:800;text-align:left;cursor:pointer}.player-menu-item:hover{background:var(--soft)}.player-menu-item.danger{color:#b42318}.player-menu-item.danger:hover{background:#fde8e6}.user-avatar{display:grid;place-items:center;flex:0 0 auto;width:24px;height:24px;overflow:hidden;border-radius:50%;color:#fff;background:var(--accent);font-size:9px;font-weight:900}.chat-messages{display:grid;align-content:start;gap:8px;max-height:260px;overflow-y:auto}.chat-message{display:grid;gap:4px;padding:9px 10px;border:1px solid var(--line);border-radius:12px;background:var(--soft)}.chat-message.own{border-color:#6738e857;background:#f1edff}.chat-message-meta{display:flex;justify-content:space-between;gap:8px;color:var(--muted);font-size:11px}.chat-message-name{min-width:0;color:var(--ink);font-weight:900;overflow-wrap:anywhere}.chat-message-text{color:var(--ink);font-size:13px;line-height:1.35;overflow-wrap:anywhere;white-space:pre-wrap}.chat-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.chat-form input{width:100%;min-height:40px;padding:0 12px;border:1px solid var(--line);border-radius:12px}.chat-form button{min-height:40px;padding:0 13px;border-radius:12px;color:#fff;background:var(--accent);font-weight:900}.name-dialog{width:min(420px,calc(100vw - 32px));padding:0;border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--ink)}.display-name-dialog{width:min(340px,calc(100vw - 32px))}.confirm-dialog{width:min(360px,calc(100vw - 32px))}.help-dialog{width:min(400px,calc(100vw - 24px));max-height:min(620px,calc(100vh - 24px));overflow:auto}.name-dialog::backdrop{background:#15161f6b}.name-dialog form{display:grid;gap:12px;padding:20px}.help-dialog form{gap:9px;padding:16px}.name-dialog h2{font-size:22px}.help-dialog h2{font-size:19px}.name-dialog label{color:var(--muted);font-size:13px;font-weight:900}.name-dialog input{min-height:42px;padding:0 12px;border:1px solid var(--line);border-radius:10px;background:var(--soft)}.dialog-copy{color:var(--muted);font-size:14px;line-height:1.4}.help-section{display:grid;gap:6px;padding:10px;border:1px solid var(--line);border-radius:8px;background:var(--soft)}.help-section h3{margin:0;color:var(--ink);font-size:13px}.help-section ul{display:grid;gap:5px;margin:0;padding-left:16px;color:var(--muted);font-size:12px;line-height:1.35}.help-section p{color:var(--muted);font-size:12px;line-height:1.35;white-space:pre-wrap}.current-game-help{background:#fff}.room-share-options{display:grid;gap:12px}.join-option-card{display:grid;gap:12px;min-width:0;padding:14px;border:1px solid var(--line);border-radius:14px;background:#f7f8fb}.manual-join-card{position:relative;overflow:hidden;gap:16px;padding:18px;border-color:#6738e829;border-radius:18px;background:linear-gradient(135deg,#6738e814,#14b8a60f 45%,#fff0 70%),var(--surface);box-shadow:0 18px 46px #1a1a261a}.join-option-heading{display:flex;align-items:center;gap:10px}.join-option-heading span{display:grid;place-items:center;flex:0 0 auto;width:34px;height:34px;border-radius:12px;color:#fff;background:linear-gradient(135deg,var(--accent),#14b8a6);box-shadow:0 10px 22px #6738e838;font-size:15px;font-weight:900}.join-option-heading strong{color:var(--ink);font-size:16px}.join-option-heading p{margin-top:3px;color:var(--muted);font-size:12px;font-weight:700;line-height:1.35}.join-field{display:grid;gap:7px}.join-field label{color:#4d5163;font-size:12px;font-weight:900}.join-field input{width:100%;min-height:46px;padding:0 14px;border:1px solid rgba(178,184,204,.8);border-radius:13px;color:var(--ink);background:#ffffffe0;font-size:15px;font-weight:800;outline:none;transition:border-color .16s ease,box-shadow .16s ease,background .16s ease}.join-field input:focus{border-color:#6738e88f;background:#fff;box-shadow:0 0 0 4px #6738e81c}.room-code-entry{display:grid;grid-template-columns:minmax(0,1fr) 46px;gap:10px;align-items:start}.room-code-entry input{width:100%}.scanner-video{display:none;grid-column:1 / -1;width:100%;aspect-ratio:4 / 3;border-radius:12px;background:#171927;object-fit:cover}.scanner-video.active{display:block}.scanner-status{grid-column:1 / -1;min-height:20px;color:var(--muted);font-size:12px;font-weight:700;line-height:1.35}.scanner-actions{display:flex;gap:8px}.qr-icon-button{width:46px;height:46px;padding:0;border-radius:14px;color:#fff;background:linear-gradient(135deg,var(--accent),#14b8a6);box-shadow:0 12px 24px #6738e838;font-size:12px;font-weight:900}.qr-icon-button{display:grid;place-items:center}.qr-icon-button span:first-child{color:currentColor;font-size:20px;line-height:1}.room-code-entry .secondary-button{min-height:42px;padding:0 12px;border-radius:10px}.scanner-actions .secondary-button{color:var(--ink);background:var(--surface)}.room-share-heading,.share-row{display:flex;gap:10px}.room-share-heading{align-items:center;justify-content:space-between}.room-share-heading span{color:var(--muted);font-size:12px;font-weight:900}.room-share-heading strong{padding:6px 10px;border-radius:999px;color:#fff;background:var(--accent);font-size:13px}.share-row{align-items:stretch;flex-wrap:wrap}.share-row input{min-width:0;flex:1 1 180px}.share-row button,.room-code-card button{min-height:42px;padding:0 12px;border-radius:10px;color:#fff;background:var(--accent);font-size:12px;font-weight:900;white-space:nowrap}.qr-card{justify-items:center}.qr-card img,.qr-placeholder{width:132px;aspect-ratio:1;border-radius:8px;background:#fff}.qr-placeholder{display:grid;place-items:center;border:1px dashed var(--line);color:var(--muted);font-weight:900}.room-code-card{background:#f2efff;border-color:#6738e83d}.room-code-value{color:var(--ink);font-size:42px;line-height:1;letter-spacing:0;overflow-wrap:anywhere}.dialog-error{color:var(--danger);font-size:13px}.dialog-actions{display:flex;justify-content:flex-end;gap:10px}.dialog-actions button{min-height:42px;padding:0 18px;border-radius:13px;color:#fff;background:linear-gradient(135deg,var(--accent),var(--accent-strong));font-weight:900;box-shadow:0 12px 22px #6738e833}.dialog-actions .secondary-button{color:var(--ink);background:var(--surface);box-shadow:inset 0 0 0 1px var(--line)}.dialog-actions .danger-button{background:linear-gradient(135deg,#d92d20,#b42318);box-shadow:0 12px 22px #b4231833}.report-issue-dialog textarea{min-height:132px;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--soft);color:var(--ink);resize:vertical;outline:none}.report-issue-dialog textarea:focus{border-color:#6738e87a;box-shadow:0 0 0 4px #6738e81a}.desktop-company-footer{display:none}@media(min-width:800px){.app-shell{display:grid;place-items:center;padding:24px}.launcher-shell{min-height:844px;max-height:calc(100vh - 48px)}}@media(max-width:360px){.launcher-shell{border-radius:0}.app-shell{padding:0}.top-bar{grid-template-columns:32px minmax(0,1fr) 30px auto 32px;gap:7px;padding-inline:10px}.top-bar h1{font-size:19px}.search-form{grid-template-columns:1fr}.manual-join-card{padding:16px}.manual-join-card .dialog-actions{display:grid;grid-template-columns:1fr 1fr}.home-view,.detail-view,.play-view,.account-view{padding-inline:10px}}@media(max-width:620px){.mode-choice-grid{grid-template-columns:1fr}}.desktop-mode.app-shell{display:block;padding:24px}.desktop-company-footer{position:fixed;right:24px;bottom:18px;z-index:12;display:inline-flex;align-items:center;gap:12px;padding:8px 10px;border:1px solid var(--line);border-radius:999px;background:#ffffffe0;box-shadow:0 12px 32px #1a1a261f;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.company-brand{display:inline-flex;align-items:center;gap:8px;color:#303243;font-size:12px;font-weight:900;white-space:nowrap}.company-brand img{width:44px;height:18px;object-fit:contain}.desktop-company-footer button{min-height:28px;padding:0 8px;border-radius:999px;color:var(--accent);background:var(--soft);font-size:12px;font-weight:900}.desktop-company-footer button:hover{color:#fff;background:var(--accent)}.desktop-mode .launcher-shell{width:min(100%,1180px);min-height:calc(100vh - 48px);max-height:none;margin:0 auto;border-radius:14px}.desktop-mode .top-bar{min-height:68px;padding:14px 20px;border-bottom:1px solid var(--line)}.desktop-mode .top-bar h1{font-size:22px}.desktop-mode .home-view,.desktop-mode .detail-view,.desktop-mode .play-view,.desktop-mode .join-view,.desktop-mode .account-view{padding:22px 24px 32px}.desktop-mode .home-view{display:grid;grid-template-columns:1fr;align-content:start;gap:24px}.desktop-mode .featured-card{flex-basis:520px;min-height:340px}.desktop-mode .featured-card img{min-height:340px}.desktop-mode .search-section,.desktop-mode .popular-section{margin-top:0}.desktop-mode .game-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.desktop-mode .game-card img{aspect-ratio:16 / 10}.desktop-mode .bottom-nav{display:none}.desktop-mode .detail-view{max-width:920px;margin:0 auto}.desktop-mode .join-view{grid-template-columns:minmax(0,1fr) minmax(320px,.8fr);align-items:start;max-width:980px;margin:0 auto}.desktop-mode .join-toolbar,.desktop-mode .manual-join-form,.desktop-mode .join-view>.room-share-options,.desktop-mode .join-view>.status-line{grid-column:1 / -1}.desktop-mode .room-share-options{grid-template-columns:minmax(0,1.25fr) minmax(210px,.75fr)}.desktop-mode .room-share-heading,.desktop-mode .share-link-card,.desktop-mode .room-code-card{grid-column:1 / -1}.desktop-mode .manual-join-form{width:min(100%,560px);margin:0 auto}.desktop-mode .detail-card{grid-template-columns:minmax(280px,.9fr) minmax(0,1fr);align-items:start}.desktop-mode .detail-card img{grid-row:span 5}.desktop-mode .detail-actions{max-width:420px}.desktop-mode .play-view{grid-template-columns:minmax(0,1fr) 320px;align-items:start}.desktop-mode .play-view.panel-hidden{grid-template-columns:minmax(0,1fr) 64px}.desktop-mode .room-panel-icons{grid-template-columns:42px;justify-content:center}.desktop-mode .play-toolbar,.desktop-mode .status-line{grid-column:1 / -1}.desktop-mode iframe{height:min(72vh,760px)}
