.online-shell{min-height:100svh}.online-header-actions{align-items:center;gap:12px;display:flex}.online-lobby{grid-template-columns:1.1fr 1fr;align-items:start;gap:96px;width:min(1120px,100%);margin:76px auto 64px;display:grid}.online-intro .display-title{margin:22px 0 24px}.online-intro .display-title em,.online-match-title em{color:var(--player-o,#27605c);font-weight:400}.online-intro-copy{max-width:360px;font-size:17px;line-height:1.65}.online-instructions{max-width:400px;margin-top:52px}.online-instructions ol{margin:20px 0 0;padding:0;list-style:none}.online-instructions li{border-top:1px solid var(--line,#d8d5cc);grid-template-columns:28px 1fr;gap:18px;padding:13px 0;font-size:13px;line-height:1.5;display:grid}.online-instructions li .mono{color:var(--player-o,#27605c);padding-top:3px;font-size:10px}.online-form{margin-top:8px;padding:36px}.online-form-heading{margin-bottom:28px}.online-form-heading h2{font-family:var(--font-display);letter-spacing:-.035em;margin:12px 0 0;font-size:clamp(28px,3vw,40px);font-weight:400;line-height:1.12}.online-form>.muted{margin-bottom:24px;font-size:14px;line-height:1.6}.online-form-actions{flex-wrap:wrap;gap:10px;margin-top:28px;display:flex}.online-form-actions>*{flex:150px;justify-content:center}.online-form-note{border-top:1px solid var(--line,#d8d5cc);color:var(--muted,#696b61);letter-spacing:.04em;margin-top:32px;padding-top:20px;font-size:10px}.online-error{border-left:3px solid var(--player-x,#b7442d);background:var(--error-surface);color:var(--error-ink);margin:20px 0;padding:12px 16px;font-size:13px;line-height:1.5}.online-error p+p{margin-top:8px}.online-loading{place-items:center;min-height:100svh;padding:24px;display:grid}.online-shell>.online-loading{min-height:calc(100svh - 88px)}.online-error-page{width:min(100%,460px);padding:36px}.online-error-page h1{font-family:var(--font-display);margin:18px 0;font-size:36px;font-weight:400;line-height:1.1}.online-error-page p{margin-bottom:24px}.online-error-page .button{display:inline-flex}.online-room-layout{grid-template-columns:minmax(180px,220px) minmax(0,620px) minmax(220px,260px);justify-content:center;align-items:start;gap:clamp(20px,3vw,48px);max-width:1440px;margin:0 auto;padding:40px 0 48px;display:grid}.online-room-layout.is-waiting{grid-template-columns:minmax(200px,280px) minmax(0,640px);gap:80px;padding-top:64px}.online-match-info{min-width:0;padding-top:6px}.online-match-title{font-family:var(--font-display);letter-spacing:-.045em;margin:24px 0 30px;font-size:clamp(36px,3.6vw,54px);font-weight:400;line-height:1.05}.online-code-small{border-top:1px solid var(--line,#d8d5cc);border-bottom:1px solid var(--line,#d8d5cc);text-align:left;cursor:pointer;flex-direction:column;gap:10px;width:100%;padding:18px 0;display:flex}.online-code-small>.mono{letter-spacing:.12em;justify-content:space-between;align-items:center;font-size:19px;display:flex}.online-players{padding-top:20px}.online-player{align-items:center;gap:14px;padding:16px 0;display:flex}.online-player-symbol{width:30px;color:var(--player-x,#b7442d);flex-shrink:0;font-size:29px;font-weight:500;line-height:1}.online-player[data-player=O] .online-player-symbol{color:var(--player-o,#27605c)}.online-player>div{min-width:0}.online-player strong{overflow-wrap:anywhere;font-size:14px;font-weight:500;display:block}.online-player .muted{margin-top:5px;font-size:11px;display:block}.online-opponent{overflow-wrap:anywhere;margin-top:14px;font-size:12px;line-height:1.5}.online-notice{border-top:1px solid var(--line,#d8d5cc);padding:14px 0;font-size:12px;line-height:1.6}.online-board-area{width:100%;min-width:0}.online-sending{color:var(--muted,#696b61);margin-bottom:8px;font-size:11px}.online-waiting{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:520px;padding:48px;display:flex}.online-waiting h2{font-family:var(--font-display);letter-spacing:-.035em;margin:18px 0;font-size:clamp(30px,3vw,44px);font-weight:400;line-height:1.13}.online-waiting>.muted{max-width:350px;font-size:14px;line-height:1.6}.online-waiting-marks{align-items:center;gap:28px;margin-bottom:36px;font-size:54px;font-weight:400;line-height:1;display:flex}.online-waiting-marks span:first-child{color:var(--player-x,#b7442d)}.online-waiting-marks span:last-child{color:var(--player-o,#27605c);opacity:.35}.online-invite-code{text-align:center;letter-spacing:.18em;border-bottom:1px solid var(--line,#d8d5cc);cursor:pointer;background:0 0;width:100%;margin:20px 0 24px;padding:20px 6px;font-size:clamp(26px,4vw,38px);display:block}.online-dialog-players{margin-top:28px;line-height:1.9}.online-desktop-chat{min-width:0;margin-top:5px}.online-mobile-chat{display:none}.chat-container{width:100%;min-width:0}.chat-panel{border-top:1px solid var(--ink,#242620);border-bottom:1px solid var(--line,#d8d5cc);flex-direction:column;width:100%;min-width:0;height:min(620px,75svh);min-height:380px;display:flex}.chat-panel-dialog{height:min(560px,65svh);min-height:250px}.chat-heading{border-bottom:1px solid var(--line,#d8d5cc);justify-content:space-between;align-items:center;gap:12px;padding:20px 0;display:flex}.chat-heading h2{margin:0}.chat-messages{overscroll-behavior:contain;flex:1;min-height:0;padding:16px 0;overflow-y:auto}.chat-empty{flex-direction:column;justify-content:center;height:100%;padding:20px 6px;line-height:1.6;display:flex}.chat-empty-sign{font-family:var(--font-display);color:var(--player-o,#27605c);font-size:64px;line-height:.9}.chat-empty p{margin:12px 0 8px;font-size:16px}.chat-empty .muted{font-size:12px}.chat-compose{border-top:1px solid var(--line,#d8d5cc);align-items:center;gap:8px;padding:14px 0;display:flex}.chat-compose input{border:1px solid var(--line,#d8d5cc);background:var(--surface,#fffcf5);width:0;min-width:0;color:var(--ink,#242620);border-radius:4px;flex:1;padding:12px 8px;font-size:13px}.chat-compose input::placeholder{color:var(--muted,#696b61)}.chat-send{background:var(--ink,#242620);color:var(--surface,#fffcf5);flex-shrink:0}.chat-send:disabled{opacity:.35;cursor:default}.chat-unread{background:var(--player-x,#b7442d);min-width:22px;height:22px;color:var(--on-accent);border-radius:50%;justify-content:center;align-items:center;padding:0 5px;font-size:10px;display:inline-flex}.chat-open-button{position:relative}.chat-message{margin:0 16px 18px 0}.chat-message.is-own{margin:0 0 18px 16px}.chat-message-meta{color:var(--muted,#696b61);justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:6px;font-size:10px;display:flex}.chat-message-meta strong{overflow-wrap:anywhere;color:var(--player-o,#27605c);font-weight:500}.chat-message-meta span{flex-shrink:0;font-size:9px}.chat-message p{background:var(--chat-incoming);overflow-wrap:anywhere;white-space:pre-wrap;border-radius:0 6px 6px;padding:10px 12px;font-size:13px;line-height:1.55}.chat-message.is-own p{background:var(--chat-own);border-radius:6px 0 6px 6px}.chat-message.is-own .chat-message-meta strong{color:var(--player-x,#b7442d)}@media (max-width:1150px){.online-room-layout{grid-template-columns:minmax(170px,220px) minmax(0,620px);max-width:980px}.online-desktop-chat{display:none}.online-mobile-chat{margin-top:26px;display:inline-flex}.online-lobby{gap:48px}}@media (max-width:700px){.online-shell>.online-loading{min-height:calc(100svh - 72px)}.online-header-actions{gap:7px}.online-lobby{flex-direction:column;gap:16px;width:100%;margin-top:36px;display:flex}.online-intro{display:contents}.online-intro .display-title{margin:18px 0;font-size:clamp(50px,13vw,72px)}.online-intro-copy{font-size:15px}.online-instructions{order:2;margin-top:20px}.online-form{order:1;width:100%;margin-top:16px;padding:24px}.online-form-heading h2{font-size:32px}.online-form-actions{margin-top:22px}.online-room-layout,.online-room-layout.is-waiting{flex-direction:column;gap:24px;padding:24px 0 36px;display:flex}.online-match-info{grid-template-columns:1fr auto;align-items:center;gap:12px;width:100%;display:grid}.online-match-info>.eyebrow{margin:0}.online-match-title,.online-opponent{display:none}.online-code-small{border:0;grid-area:1/2;width:auto;padding:0}.online-code-small>.eyebrow{display:none}.online-code-small>.mono{gap:10px;font-size:13px}.online-players{border-top:1px solid var(--line,#d8d5cc);grid-column:1/-1;grid-template-columns:1fr 1fr;gap:20px;padding:0;display:grid}.online-player{gap:10px;padding:14px 0 0}.online-player-symbol{width:22px;font-size:24px}.online-player strong{font-size:13px}.online-player .muted{font-size:10px}.online-mobile-chat{grid-column:1/-1;justify-self:start;margin:0;font-size:12px}.online-notice{grid-column:1/-1}.online-board-area{order:1}.online-waiting{min-height:440px;padding:32px 24px}.online-waiting-marks{margin-bottom:28px}.online-waiting h2{font-size:34px}.online-invite-code{font-size:28px}.online-room-header .brand>span{display:none}.online-header-actions .button{min-height:42px;padding:10px 12px;font-size:12px}}@media (max-width:360px){.online-form{padding:20px}.online-shell .app-header .brand>span{display:none}.online-header-actions{gap:5px}.online-waiting{padding:28px 18px}}
