@font-face{font-family:Roc Grotesk Wide;src:url(/gallery-gambit-online/fonts/Roc%20Grotesk%20Wide.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Roc Grotesk Wide;src:url(/gallery-gambit-online/fonts/Roc%20Grotesk%20Wide%20Medium.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Roc Grotesk Wide;src:url(/gallery-gambit-online/fonts/Roc%20Grotesk%20Wide%20Bold.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Roc Grotesk Wide;src:url(/gallery-gambit-online/fonts/Roc%20Grotesk%20Wide%20Extra%20Bold.woff2) format("woff2");font-weight:800;font-style:normal;font-display:swap}@font-face{font-family:Roc Grotesk Extra Wide;src:url(/gallery-gambit-online/fonts/Roc%20Grotesk%20Extra%20Wide%20Medium.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Roc Grotesk Extra Wide;src:url(/gallery-gambit-online/fonts/Roc%20Grotesk%20Extra%20Wide%20Bold.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}:root{--white: #ffffff;--sand: #e8e2d5;--sand-dark: #d0c9b8;--sand-deeper: #bbb0a0;--ink: #0d0d0d;--ink-soft: #2a2a2a;--muted: #7a746e;--pink: #e84d8a;--orange: #f07820;--green: #3cb648;--blue: #7b8fd4;--red: #e63c1e;--border: rgba(13, 13, 13, .12);--border-strong: rgba(13, 13, 13, .25);--shadow: rgba(13, 13, 13, .08);--shadow-md: rgba(13, 13, 13, .14);--font: "Roc Grotesk Wide", system-ui, sans-serif;--font-display: "Roc Grotesk Extra Wide", "Roc Grotesk Wide", system-ui, sans-serif;--card-w: 72px;--card-h: 100px;--card-w-sm: 54px;--card-h-sm: 76px;--radius: 6px;--radius-card: 6px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{background:var(--white);color:var(--ink);font-family:var(--font);font-size:16px;min-height:100vh}#root{min-height:100vh}h1,h2,h3{font-family:var(--font-display);font-weight:500;text-transform:uppercase;letter-spacing:.06em}.title{font-family:var(--font-display);font-size:3rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--ink);line-height:1}.subtitle{font-size:.95rem;color:var(--muted);font-weight:400;margin-top:.4rem;letter-spacing:.04em;text-transform:uppercase}.section-label{font-family:var(--font);font-size:.7rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:.5rem}.btn{font-family:var(--font);font-size:.85rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;border:none;cursor:pointer;border-radius:var(--radius);padding:.65rem 1.4rem;transition:all .12s ease;display:inline-flex;align-items:center;gap:.4rem}.btn-primary{background:var(--ink);color:var(--white)}.btn-primary:hover:not(:disabled){background:var(--ink-soft)}.btn-secondary{background:transparent;color:var(--ink);border:2px solid var(--ink)}.btn-secondary:hover{background:var(--ink);color:var(--white)}.btn-ghost{background:transparent;color:var(--muted);text-decoration:underline;padding:.4rem .8rem;font-weight:400;text-transform:none;letter-spacing:0}.btn-ghost:hover{color:var(--ink)}.btn-action{background:var(--sand);color:var(--ink);border:1.5px solid var(--border);flex-direction:column;align-items:flex-start;padding:1rem 1.2rem;width:100%;border-radius:var(--radius);gap:.25rem;text-align:left;text-transform:none;letter-spacing:0}.btn-action:hover{background:var(--sand-dark);border-color:var(--ink)}.btn-action-title{font-size:.95rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.btn-action-desc{font-size:.8rem;color:var(--muted);font-weight:400}.btn-disabled,.btn:disabled{opacity:.4;cursor:not-allowed}.card{width:var(--card-w);height:var(--card-h);background:#fff;border-radius:var(--radius-card);border:1.5px solid var(--border-strong);box-shadow:2px 3px 8px var(--shadow);display:flex;flex-direction:column;justify-content:space-between;padding:4px;position:relative;flex-shrink:0;transition:transform .12s ease,box-shadow .12s ease;-webkit-user-select:none;user-select:none}.card-img{padding:0;overflow:hidden}.card-img img{width:100%;height:100%;object-fit:cover;border-radius:calc(var(--radius-card) - 1.5px);display:block;pointer-events:none}.card-small{width:var(--card-w-sm);height:var(--card-h-sm);padding:3px}.card-clickable{cursor:pointer}.card-clickable:hover{transform:translateY(-5px);box-shadow:3px 8px 20px var(--shadow-md)}.card-selected{outline:3px solid var(--orange);outline-offset:2px;box-shadow:0 0 0 5px #f078202e;transform:translateY(-3px)}.card-red{color:var(--red)}.card-black{color:var(--ink)}.card-corner{display:flex;flex-direction:column;align-items:center;line-height:1}.card-corner-tl{align-self:flex-start}.card-corner-br{align-self:flex-end;transform:rotate(180deg)}.card-rank{font-family:var(--font);font-weight:700;font-size:.85rem;line-height:1}.card-small .card-rank{font-size:.7rem}.card-suit-sm{font-size:.65rem}.card-small .card-suit-sm{font-size:.55rem}.card-center-suit{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:1.6rem;opacity:.8}.card-small .card-center-suit{font-size:1.2rem}.card-joker{background:var(--white);color:var(--ink);align-items:center;justify-content:center;gap:2px;border:3px solid var(--pink);outline:3px solid var(--orange);outline-offset:-6px;box-shadow:0 0 0 6px var(--green),2px 3px 8px var(--shadow)}.card-joker-label{font-size:1.1rem}.card-joker-text{font-family:var(--font);font-size:.6rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.card-back{background:var(--ink);overflow:hidden}.card-back-pattern{position:absolute;top:4px;right:4px;bottom:4px;left:4px;border-radius:3px;box-shadow:0 0 0 2px var(--pink),0 0 0 4px var(--orange),0 0 0 6px var(--green),0 0 0 8px var(--blue);background:var(--ink)}.card-placeholder{width:var(--card-w);height:var(--card-h);border-radius:var(--radius-card);border:2px dashed var(--border);flex-shrink:0}.slot{background:var(--sand);border:1.5px solid var(--sand-dark);border-radius:var(--radius);padding:.75rem;transition:border-color .15s,background .15s}.slot-highlight{border-color:var(--orange);background:#f078200f}.slot-clickable{cursor:pointer}.slot-clickable:hover{border-color:var(--ink)}.slot-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.6rem}.slot-label{font-family:var(--font);font-weight:700;font-size:.85rem;letter-spacing:.1em;text-transform:uppercase}.slot-capacity{font-size:.72rem;color:var(--muted);font-weight:500;margin-left:auto}.slot-set-type{font-size:.65rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;background:var(--ink);color:var(--white);padding:2px 7px;border-radius:3px}.slot-set-invalid{background:var(--muted)}.slot-cards{display:flex;flex-wrap:wrap;gap:6px}.home-view{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--white);background-image:radial-gradient(ellipse at 5% 5%,rgba(232,77,138,.12) 0%,transparent 40%),radial-gradient(ellipse at 95% 95%,rgba(123,143,212,.12) 0%,transparent 40%),radial-gradient(ellipse at 95% 5%,rgba(240,120,32,.08) 0%,transparent 35%),radial-gradient(ellipse at 5% 95%,rgba(60,182,72,.08) 0%,transparent 35%)}.home-inner{text-align:center;max-width:380px;padding:2rem}.home-logo{margin-bottom:2.5rem}.home-tagline{color:var(--muted);font-size:.85rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;margin-top:.5rem}.home-buttons{display:flex;flex-direction:column;gap:.75rem}.form-group{display:flex;flex-direction:column;gap:.4rem;margin-bottom:1rem;text-align:left}.form-group label{font-size:.72rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.input{font-family:var(--font);font-size:1rem;font-weight:500;padding:.55rem .8rem;border:2px solid var(--sand-dark);border-radius:var(--radius);background:var(--white);color:var(--ink);outline:none;transition:border-color .15s}.input:focus{border-color:var(--ink)}.input-code{text-transform:uppercase;letter-spacing:.25em;font-size:1.2rem;font-weight:700;text-align:center}.form-buttons{display:flex;flex-direction:column;gap:.5rem}.error-msg{color:var(--red);font-size:.85rem;font-weight:500;margin-bottom:.75rem}.lobby{min-height:100vh;display:flex;align-items:center;justify-content:center}.lobby-inner{width:100%;max-width:440px;padding:2rem;text-align:center}.room-code-box{display:flex;align-items:center;gap:.75rem;background:var(--sand);border:2px solid var(--sand-dark);border-radius:var(--radius);padding:.8rem 1rem;margin:1.5rem 0}.room-code-label{font-size:.7rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);white-space:nowrap}.room-code{font-family:var(--font);font-size:1.6rem;font-weight:800;letter-spacing:.25em;text-transform:uppercase;flex:1;text-align:center}.player-list{display:flex;flex-direction:column;gap:.5rem;margin:1.5rem 0}.player-entry{display:flex;align-items:center;gap:.6rem;padding:.6rem .8rem;background:var(--sand);border:1.5px solid var(--sand-dark);border-radius:var(--radius)}.player-entry-me{border-color:var(--orange);background:#f078200f}.player-entry-empty{opacity:.4}.player-seat{font-size:.72rem;font-weight:600;letter-spacing:.08em;color:var(--muted);width:24px}.player-name{flex:1;font-weight:500}.badge{font-size:.65rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:2px 8px;border-radius:3px;background:var(--ink);color:var(--white)}.badge-you{background:var(--orange)}.badge-turn{background:var(--green);color:var(--white)}.badge-locked{background:var(--muted)}.badge-private{background:var(--blue);color:#fff}.badge-private-used{background:var(--sand-deeper);color:var(--muted)}.waiting-msg{color:var(--muted);font-size:.9rem;font-weight:400;margin-top:1rem}.turn-layout{display:flex;min-height:100vh;align-items:flex-start;max-width:1100px;margin:0 auto}.turn-main{flex:1;min-width:0}.turn-sidebar-col{width:210px;flex-shrink:0;padding:1.5rem 1rem 1.5rem 0;position:sticky;top:0;max-height:100vh;overflow-y:auto}.game-sidebar{display:flex;flex-direction:column;gap:1.25rem}.sidebar-private{background:var(--sand);border:1.5px solid var(--sand-dark);border-radius:var(--radius);padding:.75rem}.sidebar-private-status{color:var(--muted);font-size:.82rem;font-weight:400;margin-top:.4rem}.set-reference{display:flex;flex-direction:column;gap:.5rem}.set-ref-toggle{font-size:.72rem;padding:.35rem .6rem;text-align:left;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.set-ref-panel{background:var(--sand);border:1.5px solid var(--sand-dark);border-radius:var(--radius);padding:.75rem}.set-ref-title{font-size:.68rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:.5rem}.set-ref-list{padding-left:1.1rem;display:flex;flex-direction:column;gap:.4rem;margin-bottom:.6rem}.set-ref-list li{font-size:.82rem;line-height:1.3}.set-ref-name{font-weight:600;font-size:.8rem;display:block;text-transform:uppercase;letter-spacing:.04em}.set-ref-desc{color:var(--muted);font-size:.78rem}.set-ref-note{font-size:.74rem;color:var(--muted);margin-top:.4rem;line-height:1.4}.turn-view{padding:1.5rem;max-width:680px}.turn-header{margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:2px solid var(--sand)}.turn-header h2{font-size:1.3rem}.turn-hint{color:var(--muted);font-size:.88rem;font-weight:400;margin-top:.3rem}.turn-hint-warning{color:var(--orange);font-weight:500}.card-locked-wrapper{position:relative;opacity:.45;cursor:not-allowed}.card-locked-wrapper:after{content:"🔒";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:1.4rem;pointer-events:none}.my-slots{display:flex;flex-direction:column;gap:.75rem;margin:1rem 0}.turn-actions{margin-top:1.5rem;display:flex;gap:.75rem}.action-buttons{display:flex;flex-direction:column;gap:.6rem;margin:1rem 0}.market-display{margin:1rem 0}.market-display-compact{opacity:.8}.market-display-compact .section-label{font-size:.72rem}.market-cards{display:flex;flex-wrap:wrap;gap:10px}.deck-count{font-size:.78rem;font-weight:500;letter-spacing:.04em;color:var(--muted);margin-top:.5rem;text-transform:uppercase}.my-hand,.private-card-reveal{margin:1rem 0}.draft-hand{display:flex;gap:2rem;align-items:flex-start;margin:1rem 0}.draft-hand-option{display:flex;flex-direction:column;gap:.4rem;cursor:pointer}.draft-card-choice{display:flex;gap:2rem;align-items:flex-start;margin:1rem 0}.draft-place{margin-top:1rem}.opponent-list{display:flex;flex-direction:column;gap:.5rem;margin:1rem 0}.turn-galleries-section{margin-top:2rem;padding-top:1.5rem;border-top:2px solid var(--sand)}.waiting-view{min-height:100vh;padding:1.5rem;max-width:900px;margin:0 auto}.waiting-header{text-align:center;padding:2rem 1rem;border-bottom:2px solid var(--sand);margin-bottom:1.5rem}.waiting-indicator{display:flex;justify-content:center;gap:6px;margin-bottom:1rem}.waiting-dot{width:9px;height:9px;border-radius:50%;background:var(--pink);animation:pulse 1.2s ease-in-out infinite}.waiting-dot:nth-child(2){animation-delay:.2s;background:var(--orange)}.waiting-dot:nth-child(3){animation-delay:.4s;background:var(--blue)}@keyframes pulse{0%,to{opacity:.3;transform:scale(.8)}50%{opacity:1;transform:scale(1)}}.all-galleries{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.5rem}.gallery{background:var(--sand);border:1.5px solid var(--sand-dark);border-radius:var(--radius);padding:.8rem}.gallery-mine{border-color:var(--orange);border-width:2px}.gallery-active{box-shadow:0 0 0 2px var(--green)}.gallery-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.6rem}.gallery-name{font-weight:700;font-size:.9rem;letter-spacing:.04em;text-transform:uppercase}.gallery-score{margin-left:auto;font-weight:700;font-size:.9rem;color:var(--orange);letter-spacing:.04em}.gallery-slots{display:flex;gap:.5rem;flex-wrap:wrap}.scoring-view{min-height:100vh;display:flex;align-items:flex-start;justify-content:center;padding:2rem 1rem;background:var(--white)}.scoring-inner{width:100%;max-width:580px}.scoring-title{font-size:1.6rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;margin-bottom:1.5rem;text-align:center}.score-table{display:flex;flex-direction:column;border:2px solid var(--ink);border-radius:var(--radius);overflow:hidden;margin-bottom:1.5rem}.score-row{display:grid;grid-template-columns:1fr 60px 60px 70px 70px;padding:.6rem .8rem;gap:.5rem;align-items:center;border-bottom:1px solid var(--border);font-size:.9rem}.score-row:last-child{border-bottom:none}.score-header{background:var(--ink);color:var(--white);font-size:.68rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.score-row-me{background:#f078200f}.score-row-first{font-weight:700}.score-name,.score-round{font-weight:600}.score-total{font-weight:800;color:var(--orange);letter-spacing:.04em}.slot-breakdown{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.5rem}.breakdown-player{background:var(--sand);border:1.5px solid var(--sand-dark);border-radius:var(--radius);padding:.75rem}.breakdown-name{font-weight:700;font-size:.85rem;letter-spacing:.06em;text-transform:uppercase;display:block;margin-bottom:.4rem}.breakdown-slot{display:grid;grid-template-columns:60px 1fr 50px;gap:.4rem;font-size:.85rem;padding:.2rem 0}.breakdown-label{color:var(--muted);font-weight:600;font-size:.78rem;text-transform:uppercase;letter-spacing:.06em}.breakdown-set{color:var(--ink-soft)}.breakdown-pts{font-weight:700;text-align:right}.final-winner{text-align:center;margin-top:1rem;font-size:1.2rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}@media (max-width: 480px){:root{--card-w: 58px;--card-h: 82px;--card-w-sm: 44px;--card-h-sm: 62px}.title{font-size:2.2rem}.turn-view,.waiting-view{padding:1rem}.turn-layout{flex-direction:column-reverse;max-width:100%}.turn-sidebar-col{width:100%;padding:1rem 1rem 0;position:static}.game-sidebar{flex-direction:row;flex-wrap:wrap}.sidebar-private,.set-reference{flex:1;min-width:140px}.score-row{grid-template-columns:1fr 48px 48px 56px 56px;font-size:.8rem;padding:.5rem .6rem}}@media (min-width: 1200px){.turn-layout{padding:0 2rem}}.private-card-icon{width:18px;height:26px;background:var(--ink);border-radius:3px;border:1.5px solid var(--border-strong);position:relative;flex-shrink:0;transition:opacity .15s}.private-card-icon-pattern{position:absolute;top:2px;right:2px;bottom:2px;left:2px;border-radius:1px;box-shadow:0 0 0 1px var(--pink),0 0 0 2px var(--orange),0 0 0 3px var(--green),0 0 0 4px var(--blue)}.private-card-icon-used{opacity:.25;filter:grayscale(1)}.lobby-browser{width:100%;max-width:520px;padding:2rem}.lobby-browser-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem}.lobby-browser-title{font-size:1.4rem}.lobby-empty{text-align:center;padding:3rem 1rem;color:var(--muted);display:flex;flex-direction:column;gap:1rem;align-items:center}.lobby-room-list{display:flex;flex-direction:column;gap:.5rem}.lobby-room-row{display:flex;align-items:center;gap:1rem;padding:.8rem 1rem;background:var(--sand);border:1.5px solid var(--sand-dark);border-radius:var(--radius)}.lobby-room-info{flex:1;display:flex;flex-direction:column;gap:.2rem}.lobby-room-host{font-weight:600}.lobby-room-count{font-size:.8rem;color:var(--muted);font-weight:500}.lobby-room-code{font-weight:700;font-size:.85rem;letter-spacing:.12em;color:var(--muted)}.visibility-toggle{display:flex;gap:.5rem;margin-bottom:1rem}.visibility-btn{flex:1;padding:.5rem;border:2px solid var(--sand-dark);border-radius:var(--radius);background:var(--sand);font-family:var(--font);font-size:.78rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;transition:all .12s}.visibility-btn-active{border-color:var(--ink);background:var(--ink);color:var(--white)}
