:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-ink:#081522;--color-panel:#102638;--color-paper:#f4ebd8;--color-text:#f8f6ef;--color-muted:#9fb2bf;--color-red:#e75d5d;--color-blue:#4f91e8;--color-focus:#ffd66b;--radius-card:.8rem;--shadow-card:0 .65rem 1.4rem #0000003d}*{box-sizing:border-box}.visually-hidden{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}html{background:var(--color-ink);min-width:0;color:var(--color-text);font-family:Inter,ui-sans-serif,Avenir Next,Avenir,Segoe UI,sans-serif;overflow-x:hidden}body{background:linear-gradient(#4f91e80d 1px, transparent 1px), linear-gradient(90deg, #4f91e80d 1px, transparent 1px), radial-gradient(circle at 50% -15%, #173b54 0, var(--color-ink) 48%);background-size:2.5rem 2.5rem,2.5rem 2.5rem,auto;min-width:0;min-height:100vh;margin:0;overflow-x:hidden}button,input,select{min-width:0;min-height:44px;font:inherit}button,input,a{transition:border-color .14s,background-color .14s,color .14s,transform .14s}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible,[tabindex="-1"]:focus-visible{outline:3px solid var(--color-focus);outline-offset:3px}button{background:var(--color-blue);color:#06111d;cursor:pointer;border:1px solid #0000;border-radius:.65rem;padding:.7rem 1rem;font-weight:800}button:hover:not(:disabled){background:#71a9f0;transform:translateY(-1px)}button:disabled{cursor:wait;opacity:.6}.button-secondary{color:var(--color-text);background:0 0;border-color:#4f91e88c}.button-secondary:hover:not(:disabled){background:#4f91e824}.app-shell{width:min(100%,72rem);min-width:0;margin:0 auto;padding:clamp(1rem,3vw,2.5rem)}.home-shell{align-content:start;gap:clamp(1.5rem,4vw,3rem);min-height:100vh;display:grid}.masthead{border-bottom:1px solid #9fb2bf38;justify-content:space-between;align-items:center;gap:1rem;min-width:0;padding-bottom:1rem;display:flex}.wordmark{min-height:44px;color:var(--color-text);letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:.75rem;font-family:Arial Narrow,Avenir Next Condensed,ui-sans-serif,sans-serif;font-size:1.05rem;font-weight:900;text-decoration:none;display:inline-flex}.wordmark-mark{width:2.25rem;height:2.25rem;color:var(--color-focus);letter-spacing:.04em;border:1px solid #ffd66ba6;border-radius:50%;place-items:center;font-size:.7rem;display:grid}.privacy-note{color:var(--color-muted);font-size:.85rem}.hero{max-width:52rem}.hero h1,.room-shell h1{letter-spacing:-.045em;text-wrap:balance;max-width:15ch;margin:.25rem 0 1rem;font-family:Georgia,Times New Roman,serif;font-size:clamp(2.5rem,7vw,5rem);font-weight:500;line-height:.98}.eyebrow,.card-index{color:var(--color-focus);letter-spacing:.15em;text-transform:uppercase;margin:0;font-size:.72rem;font-weight:800}.lede{max-width:44rem;color:var(--color-muted);margin:0;font-size:clamp(1rem,2vw,1.2rem);line-height:1.65}.error-summary{border:1px solid var(--color-red);background:#e75d5d1a;border-left-width:.35rem;border-radius:.5rem;flex-wrap:wrap;gap:.35rem .75rem;padding:.85rem 1rem;display:flex}.error-summary strong{color:#ffb2ae}.entry-table{grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);align-items:stretch;gap:1rem;display:grid}.entry-card{border-radius:var(--radius-card);min-width:0;box-shadow:var(--shadow-card);background:linear-gradient(145deg,#102638fa,#091a28fa);border:1px solid #9fb2bf47;align-content:start;gap:.75rem;padding:clamp(1rem,3vw,1.5rem);display:grid;position:relative;overflow:hidden}.entry-card:before{background:var(--color-blue);content:"";width:.24rem;position:absolute;inset:0 auto 0 0}.entry-card-primary{background:var(--color-paper);color:#132230}.entry-card-primary:before{background:var(--color-red)}.entry-card h2{margin:.25rem 0 0;font-family:Georgia,Times New Roman,serif;font-size:clamp(1.65rem,3vw,2.1rem);font-weight:600}.entry-card p:not(.card-index){color:var(--color-muted);margin:.35rem 0 0;line-height:1.45}.entry-card-primary p:not(.card-index){color:#52616b}.entry-card label{letter-spacing:.03em;margin-top:.25rem;font-size:.84rem;font-weight:800}.entry-card input{width:100%;color:var(--color-text);background:#081522b8;border:1px solid #9fb2bf8c;border-radius:.55rem;padding:.7rem .8rem}.entry-card-primary input{color:#132230;background:#fffaf0;border-color:#a9a08e}#room-code{letter-spacing:.17em;text-transform:uppercase;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:1.1rem;font-weight:800}.entry-card button{width:100%;margin-top:.35rem}.trust-line{color:var(--color-muted);align-items:center;gap:.55rem;margin:0;font-size:.88rem;display:flex}.trust-line span{color:var(--color-focus)}.room-shell{gap:1.25rem;min-width:0;display:grid}.room-identity-strip{border-bottom:1px solid #9fb2bf3d;justify-content:space-between;align-items:end;gap:1rem;min-width:0;padding-bottom:1rem;display:flex}.room-identity-strip h1,.room-message h1,.game-route-placeholder h1{max-width:none;margin-bottom:0;font-size:clamp(2.2rem,6vw,4rem)}.identity-status{text-align:right;flex-direction:column;align-items:flex-end;gap:.5rem;min-width:0;display:flex}.connection-badge{min-height:2rem;color:var(--color-muted);background:#08152294;border:1px solid #9fb2bf52;border-radius:999px;align-items:center;gap:.45rem;padding:.3rem .65rem;font-size:.78rem;font-weight:800;display:inline-flex}.connection-dot{border:2px solid;border-radius:50%;width:.52rem;height:.52rem}.connection-open{color:#8cd6a7}.connection-open .connection-dot{background:currentColor}.connection-connecting,.connection-reconnecting{color:var(--color-focus)}.connection-closed{color:#ffaaa6}.invite-strip{border-radius:var(--radius-card);background:linear-gradient(110deg,#f4ebd814,#0000);border:1px solid #ffd66b45;grid-template-columns:minmax(12rem,.7fr) minmax(0,1.3fr);align-items:center;gap:1rem;min-width:0;padding:1rem;display:grid}.invite-strip h2,.section-heading h2,.invite-join-card h2{margin:.2rem 0 0;font-family:Georgia,Times New Roman,serif;font-weight:600}.invite-copy{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.45rem .65rem;min-width:0;display:grid}.invite-url{min-width:0;color:var(--color-muted);text-overflow:ellipsis;white-space:nowrap;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.78rem;overflow:hidden}.copy-feedback{min-height:1.1rem;color:var(--color-focus);grid-column:1/-1;font-size:.78rem}.lobby-table{border-radius:calc(var(--radius-card) + .2rem);background:#05101a73;min-width:0;padding:clamp(.8rem,2.5vw,1.3rem);box-shadow:inset 0 0 0 1px #9fb2bf26}.section-heading,.team-panel-heading{justify-content:space-between;align-items:center;gap:1rem;min-width:0;display:flex}.lock-status{color:var(--color-muted);border:1px solid #9fb2bf47;border-radius:999px;padding:.35rem .65rem;font-size:.76rem;font-weight:800}.team-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem;min-width:0;margin-top:1rem;display:grid}.team-panel{border-radius:var(--radius-card);background:var(--color-panel);min-width:0;box-shadow:var(--shadow-card);border:1px solid #9fb2bf42;border-top-width:.25rem;padding:.9rem}.team-panel-red{border-top-color:var(--color-red);background:repeating-linear-gradient(135deg, #e75d5d0a 0, #e75d5d0a .4rem, transparent .4rem, transparent .8rem), var(--color-panel)}.team-panel-blue{border-top-color:var(--color-blue);background:radial-gradient(circle at .3rem .3rem, #4f91e81f .12rem, transparent .13rem), var(--color-panel);background-size:.8rem .8rem}.team-panel-waiting{border-top-color:var(--color-focus);box-shadow:none;grid-column:1/-1}.team-panel-heading h2{margin:0;font-family:Georgia,Times New Roman,serif;font-size:1.15rem}.team-panel-heading>span{width:1.75rem;height:1.75rem;color:var(--color-muted);border:1px solid #9fb2bf59;border-radius:50%;place-items:center;font-size:.75rem;display:grid}.seat-list{gap:.45rem;margin:.8rem 0 0;padding:0;list-style:none;display:grid}.seat-row{border-top:1px solid #9fb2bf29;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:.5rem;min-width:0;padding-top:.45rem;font-size:.82rem;display:grid}.seat-name{overflow-wrap:anywhere;font-weight:800}.seat-role{color:var(--color-muted)}.seat-online,.seat-offline{white-space:nowrap;font-size:.74rem}.seat-online{color:#8cd6a7}.seat-offline{color:#ffaaa6}.empty-team{color:var(--color-muted);margin:.8rem 0 0;font-size:.82rem}.host-controls{border-radius:var(--radius-card);background:#102638bf;border:1px solid #9fb2bf3d;min-width:0;margin:0;padding:.8rem}.host-controls legend{color:var(--color-focus);letter-spacing:.12em;text-transform:uppercase;padding:0 .5rem;font-size:.74rem;font-weight:900}.assignment-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;min-width:0;display:grid}.assignment-row{border-bottom:1px solid #9fb2bf24;grid-template-columns:minmax(5rem,1fr) minmax(6rem,.8fr) minmax(7rem,.9fr);align-items:end;gap:.5rem;min-width:0;padding:.45rem;display:grid}.assignment-row>strong{overflow-wrap:anywhere;align-self:center}.assignment-row label{gap:.2rem;min-width:0;display:grid}.assignment-row label>span{color:var(--color-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.66rem;overflow:hidden}.assignment-row select{background:var(--color-ink);width:100%;color:var(--color-text);border:1px solid #9fb2bf61;border-radius:.45rem;padding:.35rem}.host-action-bar{flex-wrap:wrap;align-items:flex-start;gap:.65rem;min-width:0;margin-top:.9rem;display:flex}.confirm-inline{border-left:.25rem solid var(--color-focus);flex-wrap:wrap;flex:100%;align-items:center;gap:.5rem;min-width:0;padding-left:.7rem;display:flex}.confirm-inline span{flex:14rem}.start-control{gap:.25rem;min-width:min(100%,18rem);margin-left:auto;display:grid}.start-control p{color:var(--color-muted);margin:0;font-size:.72rem;line-height:1.35}.join-shell,.room-message{max-width:52rem}.invite-join-card{width:min(100%,34rem);margin-inline:auto}.join-role-choice{border:1px solid #9fb2bf3d;border-radius:.55rem;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;min-width:0;margin:.25rem 0;padding:.65rem;display:grid}.join-role-choice legend{padding-inline:.25rem;font-size:.8rem;font-weight:800}.join-role-choice label{align-items:center;gap:.45rem;min-width:0;min-height:44px;margin:0;display:flex}.join-role-choice input{min-height:auto}.text-link{min-height:44px;color:var(--color-focus);align-items:center;font-weight:800;display:inline-flex}.floating-error{z-index:1;width:min(100% - 2rem,69rem);margin:1rem auto 0;position:relative}.game-route-placeholder{max-width:48rem}.game-shell{width:min(100%,82rem);min-width:0}.game-header h1{font-size:clamp(1.9rem,5vw,3.6rem)}.game-status-strip{grid-template-columns:minmax(0,1fr) minmax(15rem,.8fr);align-items:stretch;gap:.75rem;min-width:0;display:grid}.team-score,.turn-status{border-radius:var(--radius-card);background:#081522a8;border:1px solid #9fb2bf3d;gap:.35rem;min-width:0;padding:.75rem;display:grid}.team-score{grid-template-columns:repeat(2,minmax(0,1fr))}.team-score strong{min-width:0;color:var(--color-muted);overflow-wrap:anywhere;border-left:.2rem solid #9fb2bf47;padding:.45rem .6rem;font-size:.8rem}.team-score strong:first-child{border-left-color:var(--color-red)}.team-score strong:last-child{border-left-color:var(--color-blue)}.team-score .is-current{color:var(--color-text);background:#ffd66b17}.turn-status{color:var(--color-muted);grid-template-columns:repeat(2,minmax(0,1fr));font-size:.8rem}.turn-status strong{color:var(--color-text)}.game-layout{grid-template-columns:minmax(0,1fr) minmax(16rem,.34fr);align-items:start;gap:1rem;min-width:0;display:grid}.board-column,.board-region,.game-side-panel{min-width:0}.board-column{gap:.65rem;display:grid}.board-region{border-radius:calc(var(--radius-card) + .25rem);background:#05101a94;border:1px solid #9fb2bf2e;padding:clamp(.3rem,1.2vw,.7rem);box-shadow:inset 0 0 2rem #0000002e}.board-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:clamp(.2rem,.7vw,.5rem);min-width:0;margin:0;padding:0;list-style:none;display:grid}.board-grid>li{min-width:0;display:flex}.board-card{aspect-ratio:1.14;background:linear-gradient(145deg, #ffffff73, transparent 45%), var(--color-paper);color:#142431;text-align:center;overflow-wrap:anywhere;border:1px solid #bcb29f;border-radius:clamp(.3rem,1vw,.65rem);flex-direction:column;justify-content:center;align-items:center;gap:.18rem;width:100%;min-width:0;min-height:44px;padding:clamp(.2rem,.8vw,.55rem);font-family:Georgia,Times New Roman,serif;font-size:clamp(.62rem,1.35vw,.95rem);font-weight:700;line-height:1.08;display:flex;position:relative;overflow:hidden;box-shadow:0 .28rem .65rem #00000047}button.board-card{cursor:pointer}button.board-card:hover:not(:disabled){border-color:var(--color-focus);background:linear-gradient(145deg,#ffffff9e,#0000 48%),#fff5df;transform:translateY(-1px)}.board-card.is-nominated{border-color:var(--color-focus);box-shadow:0 0 0 2px #ffd66b8c,0 .28rem .65rem #00000047}.board-card-label{max-width:100%}.nomination-marker,.public-owner,.key-owner{letter-spacing:.035em;text-transform:uppercase;max-width:100%;font-family:Arial Narrow,Avenir Next Condensed,ui-sans-serif,sans-serif;font-size:clamp(.48rem,.9vw,.67rem);font-weight:900;line-height:1}.nomination-marker{color:#765904}.board-card.is-revealed{color:var(--color-text)}.board-card.owner-red{border-color:var(--color-red);box-shadow:inset 0 0 0 2px var(--color-red);background:repeating-linear-gradient(135deg,#8d3038 0 .42rem,#6f222b .42rem .84rem)}.board-card.owner-blue{border-color:var(--color-blue);box-shadow:inset 0 0 0 2px var(--color-blue);background-color:#28568f;background-image:radial-gradient(circle at .38rem .38rem,#7db3f3 .1rem,#0000 .12rem),none;background-position:0 0,0 0;background-repeat:repeat,repeat;background-size:.8rem .8rem;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box}.board-card.owner-neutral{background:repeating-linear-gradient(0deg,#706d67 0 1px,#4c4b49 1px .45rem);border-color:#d3c7ad;box-shadow:inset 0 0 0 2px #d3c7ad}.board-card.owner-hazard{border-color:var(--color-focus);box-shadow:inset 0 0 0 2px var(--color-focus);background-color:#231b10;background-image:linear-gradient(45deg,#0000 42%,#d7a91c 43% 57%,#0000 58%),linear-gradient(-45deg,#0000 42%,#d7a91c 43% 57%,#0000 58%),none;background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:.8rem .8rem;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box}.key-owner{background:#081522eb;border:1px solid;border-radius:999px;padding:.16rem .28rem}.key-owner.owner-red{color:var(--color-red)}.key-owner.owner-blue{color:#78b1f6}.key-owner.owner-neutral{color:#d3c7ad}.key-owner.owner-hazard{color:var(--color-focus)}.privacy-veil{border-radius:var(--radius-card);background:linear-gradient(105deg,#ffd66b17,#0000);border:1px solid #ffd66b47;justify-content:space-between;align-items:center;gap:.75rem;min-width:0;padding:.65rem;display:flex}.privacy-veil p:not(.card-index){color:var(--color-muted);margin:.2rem 0 0;font-size:.76rem}.privacy-veil button{flex:none}.game-side-panel{gap:.75rem;display:grid}.game-control-panel,.game-history,.board-result,.game-empty{border-radius:var(--radius-card);background:var(--color-panel);min-width:0;box-shadow:var(--shadow-card);border:1px solid #9fb2bf3d;padding:.8rem}.game-control-panel{gap:.6rem;display:grid}.game-control-panel>button{width:100%}.clue-form{grid-template-columns:minmax(0,1fr) minmax(4.5rem,.34fr);gap:.35rem .5rem;min-width:0;display:grid}.clue-form label{color:var(--color-muted);font-size:.72rem;font-weight:800}.clue-form input{background:var(--color-ink);width:100%;color:var(--color-text);border:1px solid #9fb2bf61;border-radius:.5rem;padding:.55rem}.clue-form button,.form-error{grid-column:1/-1}.form-error{color:#ffb2ae;margin:0;font-size:.78rem;line-height:1.35}.control-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem;min-width:0;display:grid}.disputed-clue{border-left:.2rem solid var(--color-focus);margin:0;padding-left:.55rem;font-weight:800}.game-history h2,.board-result h2{margin:.2rem 0 .65rem;font-family:Georgia,Times New Roman,serif;font-size:1.3rem}.game-history ol{color:var(--color-muted);gap:.45rem;margin:0;padding-left:1.2rem;font-size:.76rem;line-height:1.4;display:grid}.empty-history{color:var(--color-muted);margin:0;font-size:.8rem}.board-result{background:linear-gradient(120deg, #ffd66b21, var(--color-panel));border-color:#ffd66b6b}.board-result p:last-child{color:var(--color-muted);margin-bottom:0}.confirm-dialog-backdrop{z-index:20;background:#020a11d1;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.confirm-dialog{border-radius:var(--radius-card);background:var(--color-panel);border:1px solid #ffd66b7a;width:min(100%,28rem);padding:clamp(1rem,4vw,1.5rem);box-shadow:0 1.4rem 4rem #00000094}.confirm-dialog h2{margin:.25rem 0 .6rem;font-family:Georgia,Times New Roman,serif;font-size:1.55rem}.confirm-dialog p:not(.card-index){color:var(--color-muted);line-height:1.5}.confirm-dialog-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem;margin-top:1rem;display:grid}.confirm-dialog button{min-height:44px}@media (width<=42rem){.entry-table{grid-template-columns:minmax(0,1fr)}.privacy-note{text-align:right;max-width:9rem}.room-identity-strip,.invite-strip{grid-template-columns:minmax(0,1fr)}.room-identity-strip{align-items:flex-start}.identity-status{text-align:left;align-items:flex-start}.invite-copy{grid-template-columns:minmax(0,1fr)}.invite-copy button,.copy-feedback{grid-column:1}.team-grid,.assignment-list{grid-template-columns:minmax(0,1fr)}.team-panel-waiting{grid-column:1}.assignment-row{grid-template-columns:minmax(0,1fr) minmax(6rem,.72fr) minmax(7rem,.85fr)}.start-control{width:100%;margin-left:0}.game-status-strip,.game-layout{grid-template-columns:minmax(0,1fr)}.turn-status{grid-row:1}.team-score{grid-row:2}.game-side-panel{grid-template-columns:minmax(0,1fr)}}@media (width<=22rem){.app-shell{padding-inline:.75rem}.masthead{align-items:flex-start}.privacy-note{font-size:.75rem}.seat-row,.assignment-row,.join-role-choice{grid-template-columns:minmax(0,1fr)}.seat-role,.seat-online,.seat-offline{justify-self:start}.game-shell{padding-inline:.55rem}.board-region{padding:.2rem}.board-grid{gap:.18rem}.board-card{border-radius:.25rem;padding:.12rem;font-size:.52rem}.nomination-marker,.public-owner,.key-owner{letter-spacing:0;font-size:.42rem}.privacy-veil{flex-direction:column;align-items:stretch}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}@media (prefers-contrast:more){.entry-card,input,button{border-width:2px}.privacy-note,.lede,.entry-card p:not(.card-index),.trust-line{color:var(--color-text)}}
