html,body,#app{width:100%;height:100%;min-height:100%;margin:0;padding:0}html,body{color:#fff;background:radial-gradient(circle at top,#2d5c7e33,#0000 30%),#071827;font-family:Arial,Helvetica,sans-serif;overflow:hidden}*{box-sizing:border-box}button,input,select{font:inherit}#app{height:100vh;min-height:100vh;position:relative}.screen{width:100%;height:100%;min-height:0}.is-hidden{display:none!important}.menu-screen{justify-content:center;align-items:flex-start;padding:24px;display:flex;overflow-y:auto}.menu-grid{grid-template-columns:minmax(320px,480px) minmax(320px,520px);align-items:start;gap:24px;width:min(1080px,100%);margin:auto 0;display:grid}.menu-card{width:100%;padding:28px}.site-header{border-bottom:1px solid #92c5dd29;justify-content:space-between;align-items:center;gap:20px;padding:18px clamp(20px,5vw,72px);display:flex}html,body{overflow:auto}#app{height:auto;min-height:100vh}.site-header nav{align-items:center;gap:18px;display:flex}.site-header a,.site-header button{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;text-decoration:none}.brand{letter-spacing:.02em;font-weight:800}.site-view{width:min(1100px,100% - 40px);margin:0 auto;padding:clamp(48px,10vh,112px) 0}.welcome-view{place-items:center;min-height:calc(100vh - 80px);display:grid}.welcome-hero{text-align:center;background:linear-gradient(135deg,#21597a8c,#0e1d2fe0);max-width:760px;padding:clamp(34px,7vw,76px)}.welcome-title{margin:12px 0 20px;font-size:clamp(2.9rem,8vw,6.4rem);line-height:.94}.welcome-copy{max-width:560px;margin:0 auto 28px;font-size:1.08rem;line-height:1.65}.welcome-cta{justify-content:center;align-items:center;min-width:190px;text-decoration:none;display:inline-flex}.welcome-note{opacity:.72;margin-top:18px;font-size:.9rem}.hub-heading{margin-bottom:26px}.hub-heading h1{margin:4px 0;font-size:clamp(2.2rem,5vw,4rem)}.identity-gate{max-width:500px;margin:0 auto;padding:30px}.room-choice{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;display:grid}.room-choice__card,.room-page{padding:30px}.room-choice__card h2{margin-top:4px}.room-page{max-width:780px;margin:0 auto}.room-page__header,.room-page__actions,.auth-tabs{justify-content:space-between;align-items:center;gap:14px;display:flex}.room-page__actions{justify-content:flex-start;margin-top:24px}.text-button{color:#9bd7f2;cursor:pointer;font:inherit;background:0 0;border:0;padding:0;text-decoration:underline}.modal{z-index:20;background:#030a14b8;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal__card{width:min(460px,100%);padding:30px;position:relative}.modal__close{color:inherit;cursor:pointer;background:0 0;border:0;font-size:1.7rem;position:absolute;top:12px;right:15px}.auth-tabs{justify-content:flex-start;margin-bottom:22px}.auth-tabs .is-active{color:#fff;font-weight:800}.auth-divider{color:#9fb7ce;text-align:center;margin:12px 0 0}.is-account{color:#bfe9b5}@media (width<=700px){.site-header{padding:15px 20px}.site-header nav{display:none}.room-choice{grid-template-columns:1fr}.room-page__header{flex-direction:column;align-items:flex-start}.room-page__actions{flex-wrap:wrap}}.lobby-card{flex-direction:column;gap:18px;min-height:0;display:flex}.menu-title{margin:0;font-size:clamp(2.4rem,4vw,3.2rem);line-height:1}.menu-subtitle{color:#9fb7ce;margin:10px 0 0;font-size:1rem}.menu-form{gap:18px;margin:28px 0;display:grid}.menu-field{gap:8px;display:grid}.menu-field__label{color:#9fb7ce;text-transform:uppercase;letter-spacing:.08em;font-size:.86rem}.menu-select{color:#fff;background:#12324aeb;border:1px solid #d0d7de29;border-radius:14px;width:100%;padding:12px 14px}.menu-start-button{width:100%}.lobby-input{appearance:none}.lobby-input--code{text-transform:uppercase;letter-spacing:.18em}.lobby-actions{display:flex}.lobby-room{background:#12324ab8;border-radius:16px;max-height:340px;padding:16px;overflow-y:auto}.lobby-room__header{justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:10px;display:flex}.lobby-room__code{color:#ffd166;font-size:1.1rem;font-weight:700}.lobby-error{min-height:1rem;margin-bottom:10px}.lobby-status{color:#9fb7ce;min-height:1.25rem;margin:0 0 10px;font-size:.9rem}.lobby-status.is-ready{color:#7ae582}.lobby-status.is-warning{color:#ffd166}.lobby-status.is-error{color:#ef476f}.lobby-empty{color:#9fb7ce;margin:0;font-size:.9rem}.lobby-player-status{color:#d0d7de;background:#ffffff14;border-radius:999px;margin-top:8px;padding:4px 10px;font-size:.78rem;font-weight:700;display:inline-flex}.lobby-player-status.is-disconnected{color:#ef476f;background:#ef476f24}.game-screen{flex-direction:column;height:100vh;min-height:100vh;padding:18px;display:flex;position:relative;overflow:hidden}.topbar{flex:none;justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px;padding:0 4px;display:flex}.topbar__actions{align-items:center;gap:10px;display:flex}.topbar__title{margin:0;font-size:2rem;line-height:1}.topbar__subtitle{color:#9fb7ce;margin:6px 0 0;font-size:.95rem}.topbar-button{min-width:140px}.layout{flex:auto;grid-template-columns:300px minmax(520px,1fr) 320px;gap:18px;min-height:0;display:grid;overflow:hidden}.sidebar,.log-column,.board-column{flex-direction:column;gap:18px;min-width:0;min-height:0;display:flex}.sidebar,.log-column{scrollbar-gutter:stable;padding-right:6px;overflow:hidden auto}.board-column{overflow:hidden}.log-column{justify-content:flex-start}.panel{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0d2233e0;border:1px solid #d0d7de24;border-radius:20px;box-shadow:0 16px 40px #0000002e}.panel__eyebrow{color:#9fb7ce;text-transform:uppercase;letter-spacing:.08em;margin:0 0 10px;font-size:.76rem}.panel__title{color:#ffd166;margin:0 0 16px;font-size:1.45rem}.status-panel,.actions-panel,.players-panel,.log-panel{padding:18px}.status-panel{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:82px;padding:10px 14px;display:flex}.status-title{color:#ffd166;margin:0;font-size:1.45rem;line-height:1.2}.lobby-session-actions{gap:10px;margin-top:14px;display:grid}.status-title.is-pending{color:#ffd166}.status-title.is-finished{color:#7ae582}.status-hint{color:#9fb7ce;min-height:.9rem;margin:2px 0 0;font-size:.85rem}.status-error{color:#ef476f;min-height:.9rem;margin:2px 0 0;font-size:.85rem}.action-list{flex-direction:column;gap:10px;display:flex}.action-select-group{gap:6px;display:grid}.action-select-group__label{color:#9fb7ce;text-transform:uppercase;letter-spacing:.08em;font-size:.78rem}.action-select{background:#12324aeb}.action-button{color:#fff;cursor:pointer;background:linear-gradient(#1d4765,#163246);border:1px solid #d0d7de29;border-radius:14px;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;font-weight:700;transition:transform .12s,border-color .12s,box-shadow .12s,background .12s;display:flex}.action-button__label{text-align:left;font-weight:700}.action-button__cost{color:#ffffffb8;white-space:nowrap;font-size:.78rem;font-weight:600}.action-button:hover{border-color:#8be9fd99;transform:translateY(-1px);box-shadow:0 10px 24px #0000002e}.action-button:disabled{cursor:default;opacity:.48;box-shadow:none;color:#ffffffb8;background:linear-gradient(#1d47658c,#1632468c);border-color:#d0d7de1a;transform:none}.action-button:disabled .action-button__cost{color:#ffffff80}.action-button.is-selected{border-color:#ffd166;box-shadow:0 0 0 2px #ffd1662e}.action-button--danger{background:linear-gradient(#6f2947,#582238)}.players-list{flex-direction:column;gap:10px;display:flex}.player-card{background:#12324ae6;border:1px solid #d0d7de14;border-radius:14px;padding:12px}.player-card.is-current{border-color:#ffd1668c;box-shadow:0 0 0 1px #ffd1662e}.player-card__header{align-items:center;gap:10px;margin-bottom:8px;display:flex}.player-card__badge{color:#fff;border-radius:999px;justify-content:center;align-items:center;min-width:38px;min-height:28px;padding:0 10px;font-weight:700;display:inline-flex}.player-card__name{font-weight:700}.player-card__stats{color:#9fb7ce;font-size:.92rem}.board-panel{flex:1;height:100%;min-height:0;padding:12px;overflow:hidden}.board-canvas{background:radial-gradient(circle at top,#2d5c7e2e,#0000 32%),#071827;border:1px solid #d0d7de14;border-radius:16px;width:100%;min-width:0;height:100%;min-height:0;overflow:hidden}.board-canvas canvas{display:block}.log-panel{flex:auto;min-height:260px;max-height:none;overflow:auto}.players-panel{flex:none}.log-list{color:#d0d7de;flex-direction:column;gap:10px;margin:0;padding-left:18px;padding-right:4px;font-size:.92rem;display:flex}.log-item{color:#d0d7de}.game-over-overlay{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:5;background:#040e16b8;border-radius:24px;justify-content:center;align-items:center;display:flex;position:absolute;inset:18px}.game-over-card{text-align:center;width:min(420px,100% - 32px);padding:24px}.game-over-title{color:#ffd166;margin:0;font-size:2rem}.game-over-winner{color:#d0d7de;margin:12px 0 0;font-size:1rem}.game-over-actions{gap:12px;margin-top:24px;display:grid}.rules-overlay{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:6;background:#040e16b8;border-radius:24px;justify-content:center;align-items:center;display:flex;position:absolute;inset:18px}.rules-card{width:min(700px,100% - 32px);max-height:min(88vh,760px);padding:24px;overflow-y:auto}.rules-card__header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px;display:flex}.rules-intro{color:#d0d7de;max-width:52ch;margin:10px 0 0;font-size:.96rem;line-height:1.5}.rules-sections{gap:18px;display:grid}.rules-section{gap:10px;display:grid}.rules-section__title{color:#ffd166;margin:0;font-size:1rem}.rules-list{color:#d0d7de;gap:8px;margin:0;padding-left:18px;font-size:.95rem;line-height:1.45;display:grid}.rules-item{color:#d0d7de}.rules-item strong{color:#fff}@media (width<=1280px){.menu-grid{grid-template-columns:1fr;max-width:560px}.layout{grid-template-columns:280px 1fr;grid-template-areas:"sidebar board""log board"}.sidebar{grid-area:sidebar}.board-column{grid-area:board}.log-column{grid-area:log}}@media (width<=980px){html,body{overflow:auto}.game-screen{height:auto;min-height:100vh;padding:12px;overflow:visible}.layout{grid-template-columns:1fr;overflow:visible}.sidebar,.log-column{padding-right:0;overflow:visible}.log-panel{max-height:none}.board-canvas{min-height:520px}.game-over-overlay,.rules-overlay{position:fixed;inset:12px}}.auth-help{color:#9fb7ce;font-size:.86rem;line-height:1.45}.profile-sign-out{color:#ef9aa8;margin-top:24px;display:block}.welcome-view{gap:24px;display:grid}.welcome-view:after{content:"Choose a captain · Find your crew · Set sail";text-align:center;color:#9fb7ce;letter-spacing:.04em;font-size:.9rem}.room-progress{color:#9fb7ce;margin:0 0 18px;font-size:.9rem;font-weight:700}.room-page__header .text-button{padding:10px 0}.room-choice__card{align-content:start;gap:12px;display:grid}.room-choice__card p{color:#9fb7ce;line-height:1.5}.room-choice__card .action-button{margin-top:auto}@media (width<=700px){.room-page__actions .action-button{width:100%}.welcome-view:after{line-height:1.7}}
