*{box-sizing:border-box;margin:0;padding:0}:root{--vh: 100vh;--screen-gap: 15px;--bg: #ffffff;--ink: #0f0f0f;--ink-soft: #535353;--line: #111111;--line-soft: #9a9a9a}@supports (height: 100svh){:root{--vh: 100svh}}html,body,#root{width:100%;height:100%;overflow:hidden;background:var(--bg)}body{color:var(--ink);font-family:IBM Plex Sans,Fira Sans,Avenir Next,sans-serif;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;padding:var(--screen-gap)}input,select,button{font:inherit;user-select:text;-webkit-user-select:text}button,input,select{width:100%;min-height:3rem;border:1px solid var(--line);border-radius:0;background:#fff;color:var(--ink);padding:.8rem}button:active{transform:scale(.99)}main.screen,main.game-screen{height:var(--vh);min-height:var(--vh);width:100%;overflow:hidden;display:grid;place-items:center;padding:1rem}.panel{width:min(100%,26rem);border:1px solid var(--line);padding:1rem;display:grid;gap:.7rem}.panel--scroll{max-height:calc(var(--vh) - 2rem);overflow-y:auto}.field-label{font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft)}.checkbox-row{display:flex;align-items:center;gap:.5rem;font-size:.92rem}.checkbox-row input{width:auto;min-height:auto}h1{font-size:clamp(1.4rem,8vw,2.1rem);letter-spacing:-.02em}h2{font-size:clamp(1.2rem,6vw,1.8rem);text-align:center;letter-spacing:-.01em}p{color:var(--ink-soft)}.mono{font-family:IBM Plex Mono,JetBrains Mono,monospace;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.12em;font-size:.75rem}.error-text{color:#000;border:1px solid #000;padding:.45rem}.secondary{border-color:var(--line-soft);color:var(--ink-soft)}.plain-list{list-style:none;display:grid;gap:.35rem;max-height:12rem;overflow:auto}.game-screen{grid-template-rows:auto 1fr auto;gap:.75rem}.progress-dots{width:100%;display:flex;justify-content:center;align-items:center;gap:.35rem;min-height:1.2rem}.progress-dots--compact{width:auto;min-height:auto;gap:.28rem}.progress-count{font-family:IBM Plex Mono,JetBrains Mono,monospace;font-size:.9rem;letter-spacing:.16em}.dot{width:.62rem;height:.62rem;border:1px solid var(--line);border-radius:999px;background:transparent}.dot--full{background:var(--ink)}.card-zone{position:relative;width:min(100%,27rem);aspect-ratio:3 / 4;max-height:calc(var(--vh) - 13rem);border:2px solid var(--line);border-radius:18px;padding:2px;perspective:1300px}.score-line{width:100%;position:absolute;top:.3rem;left:0;right:0;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;font-family:IBM Plex Mono,JetBrains Mono,monospace;font-size:.73rem;z-index:5;column-gap:.55rem}.score-line>span:nth-child(1){justify-self:start}.score-line>span:nth-child(2){justify-self:center;letter-spacing:.2em}.score-line>span:nth-child(3){justify-self:end}.score-chip{display:inline-flex;align-items:center;gap:.3rem}.faction-icon{width:.95rem;height:.95rem;flex:0 0 auto}.faction-icon-fallback{width:.95rem;text-align:center}.card{width:100%;height:100%;position:relative;border:1px solid var(--line);border-radius:14px;overflow:hidden}.card__inner{width:100%;height:100%;position:relative;transform-style:preserve-3d;-webkit-transform-style:preserve-3d;transition:transform .42s cubic-bezier(.22,.7,.18,1);will-change:transform}.card__inner--flipped{transform:rotateY(180deg);-webkit-transform:rotateY(180deg)}.card__face{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;text-align:center;padding:1.4rem;backface-visibility:hidden;-webkit-backface-visibility:hidden;background:var(--bg)}.card__face--front{transform:rotateY(0);-webkit-transform:rotateY(0deg)}.card__face--flat{align-content:stretch;grid-template-rows:auto 1fr auto}.card__face--back{transform:rotateY(180deg);-webkit-transform:rotateY(180deg)}.card__meta{width:100%;display:grid;gap:.2rem;text-align:center;font-size:.78rem}.card__meta p{color:var(--ink)}.card__content{width:100%;height:100%;align-self:stretch;display:grid;place-items:center;text-align:center;gap:1rem;padding:.5rem 0}.result-panel{width:100%;max-width:16rem;display:grid;justify-items:center;align-content:center;gap:.45rem}.result-panel h2{line-height:1.05}.result-panel p{color:var(--ink-soft)}.result-panel--mission{max-width:17rem}.card__footer{width:100%;text-align:center;font-family:IBM Plex Mono,JetBrains Mono,monospace;font-size:.8rem}.card__footer p{color:var(--ink)}.card__actions{width:100%;display:grid;gap:.5rem}.waiting-card-inline{width:100%;border:1px solid var(--line-soft);padding:.8rem;display:grid;gap:.45rem}.back-panel{width:100%;height:100%;display:grid;grid-template-rows:auto 1fr auto;gap:.65rem;text-align:left}.back-panel__header{display:grid;gap:.2rem}.back-panel__header h2{text-align:left;font-size:1.1rem}.back-panel__header p{color:var(--ink-soft);font-size:.84rem}.back-panel__body{min-height:0;overflow-y:auto;display:grid;gap:.55rem;padding-right:.15rem}.back-block{border:1px solid var(--line-soft);padding:.55rem .6rem;display:grid;gap:.35rem}.back-block h3{font-size:.76rem;text-transform:uppercase;letter-spacing:.09em;color:var(--ink-soft)}.back-block__value{color:var(--ink);line-height:1.3}.back-list{list-style:none;display:grid;gap:.32rem}.back-list li{font-size:.86rem;color:var(--ink);line-height:1.22}.back-meta-line{font-size:.84rem;color:var(--ink);padding:.18rem 0}.back-name{font-weight:700}.back-sep{font-weight:700;color:var(--ink)}.back-index{display:inline-block;min-width:1.2rem;text-align:center;font-weight:700;border:1px solid var(--line);padding:0 .28rem}.back-vote{font-weight:600}.back-empty{font-size:.84rem;color:var(--ink-soft)}.back-actions{width:100%;display:grid;gap:.45rem}.inline-action{width:100%}.card-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#ffffffc7;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:grid;place-items:center;padding:1rem;text-align:center}.vote-stack{width:100%;display:grid;gap:.6rem}.vote-stack--split{grid-template-columns:1fr;grid-template-rows:repeat(2,minmax(0,1fr));align-items:stretch;gap:.35rem;height:100%;min-height:100%}.vote-phase{width:100%;display:grid;gap:.75rem;justify-items:stretch;align-self:stretch;height:100%}.vote-phase--mission{place-items:stretch;height:100%;min-height:100%}.vote-phase p{color:var(--ink)}.vote-btn{background:#000;color:#fff;border:2px solid #000;min-height:4.3rem;font-size:1.6rem}.vote-stack--split .vote-btn{min-height:0;height:100%;width:100%;padding-top:1.35rem;padding-bottom:1.35rem;font-size:clamp(1.8rem,5vw,2.4rem);border-radius:12px}.vote-stack--split .vote-btn .faction-icon{width:2rem;height:2rem}.vote-btn--active{background:#fff;color:#000;border:2px solid #000}.vote-btn .faction-icon{width:1.45rem;height:1.45rem}.team-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem;margin-top:.8rem}.chip{min-height:2.4rem;font-size:.95rem}@media (max-width: 900px){main.game-screen{padding:0;gap:0}.card-zone{width:100%;height:calc(var(--vh) - (2 * var(--screen-gap)));max-height:none;aspect-ratio:auto}.card{border:0}.card__face{padding-top:calc(1rem + env(safe-area-inset-top,0px));padding-right:calc(1rem + env(safe-area-inset-right,0px));padding-bottom:calc(1rem + env(safe-area-inset-bottom,0px));padding-left:calc(1rem + env(safe-area-inset-left,0px))}.score-line{top:calc(.4rem + env(safe-area-inset-top,0px));padding:0 calc(.7rem + env(safe-area-inset-right,0px)) 0 calc(.7rem + env(safe-area-inset-left,0px))}}.chip--active{background:#000;color:#fff}.status-banners{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;flex-direction:column;gap:1px;pointer-events:none}.status-banner{pointer-events:auto;min-height:0;margin:0;padding:.6rem var(--screen-gap);border:0;border-bottom:1px solid var(--line);font-family:IBM Plex Mono,JetBrains Mono,monospace;font-size:.9rem;text-align:left}.status-banner--error{background:var(--ink);color:var(--bg)}.status-banner--connection{background:var(--bg);color:var(--ink)}.room-code{width:auto;min-height:0;padding:.3rem .6rem;align-self:flex-start}main.screen,main.game-screen{padding-top:3.4rem}.menu-toggle{position:fixed;top:calc(var(--screen-gap) * .6 + env(safe-area-inset-top,0px));right:calc(var(--screen-gap) * .6 + env(safe-area-inset-right,0px));z-index:70;width:2.6rem;min-height:2.6rem;height:2.6rem;padding:0;display:grid;place-items:center;font-size:1.15rem;background:var(--bg)}.menu-badge{position:absolute;top:-.45rem;right:-.45rem;min-width:1.2rem;height:1.2rem;padding:0 .25rem;display:grid;place-items:center;background:var(--ink);color:var(--bg);font-family:IBM Plex Mono,JetBrains Mono,monospace;font-size:.7rem;line-height:1}.menu-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:#ffffffb3}.menu-drawer{position:fixed;top:0;right:0;bottom:0;z-index:65;width:min(20rem,86vw);padding:calc(4rem + env(safe-area-inset-top,0px)) 1rem 1rem;display:flex;flex-direction:column;gap:.6rem;background:var(--bg);border-left:1px solid var(--line);transform:translate(100%);visibility:hidden;transition:transform .22s cubic-bezier(.22,.7,.18,1),visibility 0s linear .22s;overflow-y:auto}.menu-drawer--open{transform:translate(0);visibility:visible;transition:transform .22s cubic-bezier(.22,.7,.18,1)}.menu-drawer button{text-align:left}.menu-footer{margin-top:auto;display:grid;gap:.5rem}.menu-help{font-size:.85rem;border:1px solid var(--line-soft);padding:.5rem}.page-layer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;background:var(--bg);overflow-y:auto;user-select:text;-webkit-user-select:text}.page{width:min(100%,36rem);margin:0 auto;padding:calc(3.6rem + env(safe-area-inset-top,0px)) var(--screen-gap) 2rem;display:grid;gap:1rem}.page__header{display:grid;gap:.8rem}.page__back{width:auto;justify-self:start;min-height:2.4rem;padding:.4rem .8rem}.page-panel{width:100%}.form{display:grid;gap:.7rem}.form--inline{grid-template-columns:1fr auto}.form--inline button{width:auto}.field{display:grid;gap:.3rem}.code-input{font-family:IBM Plex Mono,JetBrains Mono,monospace;font-size:1.6rem;letter-spacing:.5em;text-align:center}.form-message{border:1px solid var(--line-soft);padding:.5rem .6rem;color:var(--ink)}.form-message--error{border-color:var(--line);background:var(--ink);color:var(--bg)}.button-link{display:grid;place-items:center;min-height:3rem;border:1px solid var(--line);color:var(--ink);text-decoration:none;padding:.8rem}.link-button{width:auto;min-height:0;border:0;padding:.2rem 0;background:transparent;text-decoration:underline;text-align:left}.divider{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:.6rem;font-size:.8rem}.divider:before,.divider:after{content:"";border-top:1px solid var(--line-soft)}.danger{border-color:var(--line);color:var(--ink)}.profile-name{text-align:left}.profile-meta{font-size:.9rem;overflow-wrap:anywhere}.stats{display:grid;gap:.5rem}.stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem}.stat{border:1px solid var(--line);padding:.7rem;display:grid;gap:.2rem}.stat__value{font-family:IBM Plex Mono,JetBrains Mono,monospace;font-size:1.9rem;line-height:1}.friends-section{display:grid;gap:.4rem}.friend-list{list-style:none;display:grid;gap:.4rem}.friend-row{display:flex;align-items:center;gap:.5rem;border:1px solid var(--line-soft);padding:.4rem .5rem}.friend-row button{width:auto;min-height:2.2rem;padding:.3rem .7rem}.friend-row__name{flex:1;overflow-wrap:anywhere}.friend-row .link-button{min-height:0;padding:0}.presence{width:.62rem;height:.62rem;border:1px solid var(--line);border-radius:999px;flex:0 0 auto}.presence--online{background:var(--ink)}.presence--in_game{background:linear-gradient(90deg,var(--ink) 50%,transparent 50%)}.prose{line-height:1.5}.prose h2{text-align:left;font-size:1.1rem;margin-top:.4rem}.prose h3{font-size:.8rem;text-transform:uppercase;letter-spacing:.08em}.prose ul,.prose ol{padding-left:1.2rem;display:grid;gap:.3rem;color:var(--ink-soft)}.prose a{color:var(--ink)}.status-banner--invite{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;background:var(--bg);color:var(--ink)}.status-banner--invite span{flex:1 1 12rem}.status-banner--invite button{width:auto;min-height:2.2rem;padding:.3rem .8rem}.chat-toggle{position:fixed;left:calc(var(--screen-gap) * .6 + env(safe-area-inset-left,0px));bottom:calc(var(--screen-gap) * .6 + env(safe-area-inset-bottom,0px));z-index:30;width:auto;min-height:2.4rem;padding:.4rem .9rem;background:var(--bg);font-family:IBM Plex Mono,JetBrains Mono,monospace;font-size:.8rem;text-transform:uppercase;letter-spacing:.1em}.chat-panel{position:fixed;left:0;right:0;bottom:0;z-index:35;height:min(40vh,22rem);width:min(100%,27rem);margin:0 auto;display:grid;grid-template-rows:auto 1fr auto;background:var(--bg);border:1px solid var(--line);border-bottom:0;padding-bottom:env(safe-area-inset-bottom,0px);user-select:text;-webkit-user-select:text}.chat-panel__header{display:flex;justify-content:space-between;align-items:center;padding:.3rem .3rem .3rem .7rem;border-bottom:1px solid var(--line-soft)}.chat-panel__close{width:2.2rem;min-height:2.2rem;padding:0}.chat-panel__list{list-style:none;overflow-y:auto;padding:.5rem .7rem;display:grid;align-content:start;gap:.35rem}.chat-panel__empty{color:var(--ink-soft);font-size:.85rem}.chat-msg{font-size:.9rem;line-height:1.35;overflow-wrap:anywhere;display:flex;gap:.35rem;align-items:baseline}.chat-msg span{flex:1;color:var(--ink)}.chat-msg--mine strong{text-decoration:underline}.chat-msg__report{width:auto;min-height:0;border:0;padding:0 .2rem;background:transparent;color:var(--line-soft)}.chat-panel__form{display:grid;grid-template-columns:1fr auto;border-top:1px solid var(--line-soft)}.chat-panel__form input,.chat-panel__form button{border:0;min-height:2.8rem}.chat-panel__form button{width:auto;border-left:1px solid var(--line-soft)}@media (min-width: 768px){.card-zone{max-height:min(calc(var(--vh) - 10rem),40rem)}.stats-grid{grid-template-columns:repeat(4,1fr)}.chat-panel{left:auto;right:var(--screen-gap);margin:0;width:22rem}}@media (max-width: 360px){.stat__value{font-size:1.5rem}.friend-row{flex-wrap:wrap}}
