:root{--bg:#f4efe6;--surface:#fff;--surface-2:#ede6d8;--fg:#171717;--muted:#68645e;--border:#17171724;--primary:#d95757;--primary-hover:#b94343;--secondary:#171717;--suit-spades:#315c68;--suit-hearts:#d95757;--suit-diamonds:#d6aa45;--suit-clubs:#718f72;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--fg);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{background:var(--bg);min-height:100svh;margin:0}#root{flex-direction:column;min-height:100svh;display:flex}.playing-card-scene{perspective:1400px;isolation:isolate;z-index:1;justify-content:center;margin:.5rem 0;transition:transform .35s;display:flex;position:relative}@media (hover:hover) and (pointer:fine){:is(.playing-card-scene:has(.playing-card:not(.flipped):not(:disabled):hover),.playing-card-scene:has(.playing-card:not(.flipped):focus-visible)){transform:translateY(-5px)}:is(.playing-card-scene:has(.playing-card:not(.flipped):not(:disabled):hover) .playing-card-face,.playing-card-scene:has(.playing-card:not(.flipped):focus-visible) .playing-card-face){box-shadow:0 16px 24px #17171733,0 4px 8px #1717171f}}.playing-card{aspect-ratio:2.5/3.5;appearance:none;width:clamp(200px,70vw,300px);-webkit-transform-style:preserve-3d;transform-style:preserve-3d;cursor:pointer;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;background:0 0;border:none;padding:0;transition:transform .6s cubic-bezier(.4,.15,.2,1);position:relative}.playing-card:not(.flipped):not(:disabled):active .playing-card-back{transition:transform .15s;transform:rotateY(0)scale(.97)}.playing-card.loading .playing-card-back{animation:.7s ease-in-out infinite card-loading-pulse}@keyframes card-loading-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.85;transform:scale(.98)}}@media (prefers-reduced-motion:reduce){.playing-card.loading .playing-card-back{opacity:.85;animation:none}}.playing-card.flipped{transform:rotateY(180deg)}.playing-card:disabled{cursor:default;opacity:1}.playing-card-face{backface-visibility:hidden;-webkit-user-select:none;user-select:none;border-radius:8px;flex-direction:column;transition:box-shadow .35s;display:flex;position:absolute;inset:0;overflow:hidden;box-shadow:0 10px 16px #17171729,0 2px 5px #1717171a}.playing-card-back{background:var(--fg);border:2px solid var(--fg);justify-content:center;align-items:center;padding:.55rem;transform:rotateY(0)}.back-frame{border:1.5px solid var(--bg);border-radius:5px;flex-direction:column;justify-content:center;align-items:center;gap:.5rem;width:100%;height:100%;display:flex;position:relative;overflow:hidden}.back-lattice{opacity:.5;background-image:repeating-linear-gradient(45deg,#f4efe624 0 1.5px,#0000 1.5px 16px),repeating-linear-gradient(-45deg,#f4efe624 0 1.5px,#0000 1.5px 16px);position:absolute;inset:0}.back-corner{border-style:solid;border-color:var(--bg);opacity:.6;border-width:0;width:9px;height:9px;position:absolute}.back-corner-tl,.back-corner-tr{border-top-width:1px;top:12px}.back-corner-bl,.back-corner-br{border-bottom-width:1px;bottom:12px}.back-corner-tl,.back-corner-bl{border-left-width:1px;left:12px}.back-corner-tr,.back-corner-br{border-right-width:1px;right:12px}.back-crest{width:38%;height:auto;position:relative}.back-wordmark{letter-spacing:.34em;text-align:center;text-transform:uppercase;width:100%;color:var(--bg);border-top:1px solid var(--bg);text-indent:.34em;padding-top:.4rem;font-family:Cinzel Decorative,Inter,serif;font-size:clamp(.52rem,2.2vw,.68rem);font-weight:700;display:block;position:relative}.playing-card-front{background:var(--card-bg);color:var(--card-fg);border:2.5px solid #17171738;justify-content:space-between;transform:rotateY(180deg)}.back-frame:before,.playing-card-front:before{content:"";pointer-events:none;border-style:solid;border-width:1px;border-radius:4px;position:absolute;inset:7px}.back-frame:before{border-color:var(--bg);opacity:.55}.playing-card-front:before{border-color:var(--card-fg);opacity:.22}.front-fleuron{z-index:1;width:clamp(.7rem,2.6vw,.85rem);height:clamp(.7rem,2.6vw,.85rem);color:var(--card-fg);opacity:.55;position:absolute}.front-fleuron-tl{top:1.05rem;right:1.15rem}.front-fleuron-br{bottom:1.05rem;left:1.15rem;transform:rotate(180deg)}.suit-hearts{--card-bg:var(--suit-hearts);--card-fg:#fff}.suit-diamonds{--card-bg:var(--suit-diamonds);--card-fg:var(--fg)}.suit-clubs{--card-bg:var(--suit-clubs);--card-fg:#fff}.suit-spades{--card-bg:var(--suit-spades);--card-fg:#fff}.corner{z-index:1;color:var(--card-fg);flex-direction:column;align-items:center;line-height:1;display:flex;position:absolute}.corner-top{top:1.3rem;left:1.35rem}.corner-bottom{bottom:1.3rem;right:1.35rem}.rank{font-family:Cinzel Decorative,Inter,serif;font-size:clamp(.85rem,3.6vw,1.05rem);font-weight:700}.corner-divider{opacity:.4;background:currentColor;width:14px;height:1px;margin:.2rem 0}.corner-suit{width:clamp(.75rem,3vw,.95rem);height:clamp(.75rem,3vw,.95rem)}.poster-body{flex-direction:column;flex:1;justify-content:center;align-items:center;gap:.1rem;display:flex;position:relative}.poster-suit-watermark{z-index:0;width:78%;height:78%;color:var(--card-fg);opacity:.1;position:absolute}.poster-rank{z-index:1;letter-spacing:0;font-family:Cinzel Decorative,Inter,serif;font-size:clamp(4rem,21vw,6.4rem);font-weight:900;line-height:.82;position:relative}.poster-suit{z-index:1;width:clamp(1.5rem,6.5vw,2.15rem);height:clamp(1.5rem,6.5vw,2.15rem);margin-top:1.1rem;position:relative}.rule-text{background:var(--fg);color:var(--bg);text-align:center;text-transform:none;letter-spacing:normal;margin:0;padding:.7rem .9rem .75rem;font-family:Inter,sans-serif;font-size:clamp(.78rem,3.4vw,.9rem);font-weight:500;line-height:1.35;position:relative}.rule-text:before{content:"";background:linear-gradient(to right, var(--bg) 0 16px, transparent 16px 30px, var(--bg) 30px 46px);opacity:.4;width:46px;height:1px;margin:0 auto .55rem;display:block}.rule-text:after{content:"";background:var(--bg);opacity:.55;width:4px;height:4px;position:absolute;top:.7rem;left:50%;transform:translate(-50%,-50%)rotate(45deg)}@media (prefers-reduced-motion:reduce){.playing-card{transition:none}}.modal-backdrop{z-index:20;background:#17171799;justify-content:center;align-items:center;padding:1.25rem;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border:2px solid var(--border);width:100%;max-width:380px;color:var(--fg);border-radius:6px;padding:1.25rem;box-shadow:0 20px 50px #17171740}.modal-header{justify-content:space-between;align-items:center;margin-bottom:.75rem;display:flex}.modal-header h2{margin:0;font-size:1.25rem}.modal-close{color:var(--muted);cursor:pointer;background:0 0;border:none;padding:.25rem .5rem;font-size:1.5rem;line-height:1}.modal-steps{color:var(--fg);flex-direction:column;gap:.5rem;margin:0 0 1rem;padding-left:1.25rem;font-size:.9rem;line-height:1.4;display:flex}.modal-cta{width:100%}.host-player-list{flex-direction:column;gap:.5rem;max-height:40vh;margin:0 0 1rem;padding:0;list-style:none;display:flex;overflow-y:auto}.host-player-row{background:var(--bg);border:2px solid var(--border);border-radius:4px;justify-content:space-between;align-items:center;gap:.5rem;padding:.5rem .75rem;display:flex}.host-player-row button{padding:.4rem .7rem;font-size:.75rem}.host-end-confirm{border-top:2px solid var(--border);margin-top:.25rem;padding-top:.75rem}.host-end-confirm p{margin:0 0 .6rem;font-weight:600}.host-end-confirm .row{gap:.5rem;display:flex}.host-end-confirm .row button{flex:1}.app{max-width:480px;color:var(--fg);flex:1;width:100%;margin:0 auto;padding:2rem 1.5rem;font-family:Inter,system-ui,sans-serif}h1,h2{margin:0;font-family:Inter,system-ui,sans-serif;font-weight:800}.screen{flex-direction:column;gap:.75rem;display:flex;position:relative}.row{gap:.5rem;display:flex}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}input,button{border:2px solid #0000;border-radius:4px;padding:.75rem;font-family:inherit;font-size:1rem}input{background:var(--surface);border-color:var(--border);color:var(--fg);font-weight:500}input::placeholder{color:var(--muted)}input:focus-visible,button:focus-visible{outline:2px solid var(--suit-spades);outline-offset:2px}input.input-error{border-color:var(--suit-hearts)}button{cursor:pointer;background:var(--primary);color:#fff;border-color:var(--primary);text-transform:uppercase;letter-spacing:.06em;font-size:.9rem;font-weight:700;transition:background-color .15s}button:not(:disabled):hover{background:var(--primary-hover);border-color:var(--primary-hover)}button.secondary{color:var(--secondary);border-color:var(--secondary);background:0 0}button.secondary:not(:disabled):hover{background:var(--secondary);color:var(--bg)}button.danger{background:var(--suit-hearts);border-color:var(--suit-hearts);color:#fff}button.danger:not(:disabled):hover{filter:brightness(.88)}button:disabled{opacity:.45;cursor:not-allowed}.error{background:var(--suit-hearts);color:#fff;border:none;border-radius:4px;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:1rem;padding:.6rem .85rem;font-weight:600;display:flex}.error-dismiss{color:inherit;cursor:pointer;background:0 0;border:none;padding:0 .25rem;font-size:1.25rem;line-height:1}.loading-hint{text-align:center;color:var(--muted);padding:2rem 0}.hero{text-align:center;flex-direction:column;align-items:center;gap:.5rem;padding:1.5rem 0 .5rem;display:flex}.card-fan{justify-content:center;height:5.5rem;margin-bottom:.5rem;display:flex}.card-fan span{border:2px solid var(--fg);border-radius:4px;width:3rem;height:4.2rem;margin:0 -.6rem;box-shadow:0 8px 16px #1717172e}.card-fan span:first-child{background:var(--suit-clubs);transform:rotate(-12deg)translateY(6px)}.card-fan span:nth-child(2){background:var(--suit-diamonds);z-index:1;transform:rotate(-4deg)translateY(-2px)}.card-fan span:nth-child(3){background:var(--suit-hearts);z-index:1;transform:rotate(4deg)translateY(-2px)}.card-fan span:nth-child(4){background:var(--suit-spades);transform:rotate(12deg)translateY(6px)}.hero h1{letter-spacing:-.02em;font-size:2.6rem;font-weight:900}.tagline{color:var(--muted);max-width:26ch;margin:0 0 .5rem;font-size:.95rem}.home-actions{flex-direction:column;gap:.6rem;margin-top:.5rem;display:flex}.players-header{justify-content:space-between;align-items:baseline;display:flex}.player-count{color:var(--muted);font-family:Inter,monospace;font-size:.85rem;font-weight:700}.player-row{align-items:center;gap:.5rem;display:flex}.player-row input{flex:1}.avatar{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:2.5rem;height:2.5rem;font-family:Inter,sans-serif;font-weight:800;display:flex}.avatar-small{width:2rem;height:2rem;font-size:.85rem}.joined-name{flex:1;font-weight:600}.remove-player{border:2px solid var(--border);color:var(--muted);background:0 0;flex-shrink:0;width:2.5rem;padding:.5rem 0;font-size:1.1rem;line-height:1}.field-hint{color:var(--muted);margin:-.25rem 0 0;font-size:.8rem}.waiting-hint{text-align:center;padding:.5rem 0}.link-hint{flex-direction:column;gap:.5rem;margin-top:.5rem;display:flex}.link-hint code{word-break:break-all;color:var(--muted);background:var(--surface);border:2px solid var(--border);border-radius:4px;padding:.5rem .65rem;font-size:.8rem;display:block}.share-btn{justify-content:center;align-items:center;gap:.5rem;display:flex}.share-btn svg{flex-shrink:0;width:1rem;height:1rem}.player-row.enter{animation:.45s cubic-bezier(.2,.7,.3,1) both player-row-in}@keyframes player-row-in{0%{opacity:0;transform:translateY(10px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.status-line{color:var(--muted);align-items:center;gap:.4rem;margin:0;font-size:.85rem;font-weight:600;display:flex}.status-dot{background:var(--suit-clubs);border-radius:50%;width:.45rem;height:.45rem;animation:1.6s ease-in-out infinite status-dot-pulse}@keyframes status-dot-pulse{0%,to{opacity:.4;transform:scale(.85)}50%{opacity:1;transform:scale(1.15)}}.status-line.ready{color:var(--fg)}.status-line.ready .status-dot{background:var(--primary);opacity:1;animation:none}.tip-card{background:var(--fg);color:var(--bg);border-radius:4px;margin:0;padding:.7rem .85rem;font-size:.82rem;line-height:1.45}.tip-text{animation:.4s tip-fade-in;display:block}@keyframes tip-fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.start-btn{position:relative;overflow:hidden}.start-btn.flourish{animation:.4s start-btn-shake}.start-btn.flourish:after{content:"";background:radial-gradient(circle,#ffffff8c 0%,#0000 65%);animation:.6s ease-out forwards start-btn-burst;position:absolute;inset:0}@keyframes start-btn-shake{0%,to{transform:scale(1)}30%{transform:scale(.96)}60%{transform:scale(1.03)}}@keyframes start-btn-burst{0%{opacity:1;transform:scale(0)}to{opacity:0;transform:scale(2.4)}}@media (prefers-reduced-motion:reduce){.player-row.enter,.status-dot,.tip-text,.start-btn.flourish,.start-btn.flourish:after{animation:none}}.game-header{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.game-header-right{align-items:center;gap:.5rem;display:flex}.host-panel-trigger{padding:.3rem .6rem;font-size:.7rem}.round{letter-spacing:.15em;text-transform:uppercase;color:var(--muted);margin:0;font-size:.8rem;font-weight:700}.shot-timer{letter-spacing:.05em;color:var(--fg);border:2px solid var(--border);font-variant-numeric:tabular-nums;border-radius:999px;padding:.2rem .65rem;font-size:.8rem;font-weight:700}.shot-timer-urgent{color:#fff;background:var(--suit-hearts);border-color:var(--suit-hearts);animation:1s ease-in-out infinite shot-timer-pulse}@keyframes shot-timer-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}@media (prefers-reduced-motion:reduce){.shot-timer-urgent{animation:none}}.current-player{align-items:center;gap:.75rem;display:flex}.current-player h2{font-size:1.6rem}.turn-announce{z-index:10;text-align:center;background:var(--bg);pointer-events:none;border-radius:4px;justify-content:center;align-items:center;padding:2rem;font-family:Inter,sans-serif;font-size:1.8rem;font-weight:900;animation:1.4s forwards turn-announce-fade;display:flex;position:absolute;inset:0}@keyframes turn-announce-fade{0%{opacity:0}12%{opacity:1}78%{opacity:1}to{opacity:0}}.shot-announce{z-index:11;text-align:center;color:#fff;background:var(--suit-hearts);cursor:pointer;border:none;border-radius:4px;flex-direction:column;justify-content:center;align-items:center;gap:.6rem;padding:2rem;animation:.9s step-start infinite shot-announce-blink;display:flex;position:absolute;inset:0}.shot-announce-title{text-transform:uppercase;letter-spacing:.02em;font-family:Inter,sans-serif;font-size:1.8rem;font-weight:900;line-height:1.15}.shot-announce-hint{text-transform:none;letter-spacing:normal;opacity:.85;font-size:.85rem;font-weight:600}@keyframes shot-announce-blink{0%,49%{background:var(--suit-hearts)}50%,to{background:var(--fg)}}@media (prefers-reduced-motion:reduce){.turn-announce{opacity:1;animation:none}.shot-announce{animation:none}}.house-rule{background:var(--suit-clubs);color:#fff;border-radius:4px;padding:.6rem .8rem;font-size:.85rem;font-weight:500}.last-card-badge{background:var(--fg);color:var(--bg);text-transform:uppercase;letter-spacing:.08em;border-radius:999px;align-self:center;margin:0;padding:.3rem .9rem;font-size:.75rem;font-weight:700}.combo-strip{justify-content:center;display:flex}.combo-chip{background:var(--fg);color:var(--bg);text-transform:uppercase;letter-spacing:.06em;border-radius:999px;padding:.3rem .9rem;font-size:.75rem;font-weight:700}.combo-chip.suit-hearts{background:var(--suit-hearts)}.combo-chip.suit-spades{background:var(--suit-spades)}.combo-chip.suit-diamonds{background:var(--suit-diamonds);color:var(--fg)}.combo-chip.suit-clubs{background:var(--suit-clubs)}.combo-hint{text-align:center;color:var(--fg);margin:-.35rem 0 0;font-size:.82rem;font-weight:600}.house-rule-form{gap:.5rem;display:flex}.house-rule-form input{flex:1}
