:root{--bg:#173226;--table-edge:#684428;--felt-a:#1b6a46;--felt-b:#0e4e34;--felt-c:#0a3f2a;--line:#ffffff24;--text:#f5f5ee;--shadow:0 24px 60px #00000057;--card-width:116px;--card-height:162px;--column-gap:2px;--stack-gap:18px}*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{color:var(--text);background:radial-gradient(circle at top,#ffffff0f,#0000 30%),linear-gradient(#284436 0%,#10241b 100%);font-family:Avenir Next,Segoe UI,sans-serif}button{font:inherit}.app-shell{grid-template-rows:auto 1fr auto;gap:14px;min-height:100vh;padding:18px;display:grid}.toolbar{justify-content:flex-end;gap:10px;display:flex}.control-button{color:var(--text);cursor:pointer;background:#ffffff14;border:1px solid #ffffff24;border-radius:999px;padding:10px 15px}.control-button:hover{background:#ffffff1f;border-color:#ffffff38}.table-surface{border:10px solid var(--table-edge);min-height:68vh;box-shadow:var(--shadow);background:linear-gradient(135deg, #ffffff0d, transparent 26%), linear-gradient(180deg, var(--felt-a) 0%, var(--felt-b) 56%, var(--felt-c) 100%);border-radius:26px;padding:22px;position:relative;overflow:hidden}.table-surface:before{content:"";mix-blend-mode:soft-light;pointer-events:none;background-image:radial-gradient(circle at 20% 24%,#ffffff0b,#0000 18%),radial-gradient(circle at 80% 78%,#ffffff08,#0000 20%),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140' viewBox='0 0 140 140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.88' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='0.08'/%3E%3C/svg%3E");position:absolute;inset:0}.table-surface:after{content:"";pointer-events:none;border:1px solid #ffffff14;border-radius:18px;position:absolute;inset:12px}.tableau-grid{z-index:1;gap:var(--column-gap);padding-right:calc(var(--card-width) * 2.2 + 20px);grid-template-columns:repeat(9,minmax(0,1fr));align-items:start;display:grid;position:relative}.tableau-column,.foundation-slot,.hand-slot{background:#00000014;border:1px dashed #ffffff29;border-radius:16px;position:relative}.tableau-column{min-height:calc(var(--card-height) + var(--stack-gap) * 8 + 18px);padding:0}.tableau-column.compact{min-height:var(--card-height)}.tableau-column.is-valid,.foundation-slot.is-valid{border-color:#ffebb44d;box-shadow:inset 0 0 0 2px #ffebb48c}.column-inner{min-height:100%;position:relative}.foundation-area{z-index:2;grid-template-columns:repeat(2, var(--card-width));gap:10px;display:grid;position:absolute;bottom:22px;right:22px}.foundation-slot,.hand-slot{width:var(--card-width);height:var(--card-height)}.foundation-slot{justify-self:center}.slot-mark{color:#ffffff47;place-items:center;font-size:1.3rem;display:grid;position:absolute;inset:0}.hand-row{flex-wrap:wrap;justify-content:center;gap:10px;padding:2px 0 10px;display:flex}.hand-slot{flex:none}.card{width:var(--card-width);height:var(--card-height);cursor:grab;-webkit-user-select:none;user-select:none;background:0 0;border:0;padding:0;position:absolute;top:0;left:50%;transform:translate(-50%)}.card svg{filter:drop-shadow(0 10px 18px #00000042);width:100%;height:100%;display:block}.card-index{font-family:Times New Roman,Georgia,serif;font-weight:700}.card.dragging{opacity:.66;cursor:grabbing}.card.static-card{cursor:default}.card.static-card:hover{transform:translate(-50%)}.empty-label{letter-spacing:.08em;color:#ffffff38;text-transform:uppercase;place-items:start center;padding-top:14px;font-size:.72rem;display:grid;position:absolute;inset:0}.toast{color:#f2f5ef;opacity:0;pointer-events:none;background:#111815eb;border-radius:999px;padding:10px 16px;position:fixed;bottom:20px;left:50%;transform:translate(-50%)translateY(16px)}.toast.visible{opacity:1;transform:translate(-50%)translateY(0)}body[data-animations=off] .control-button,body[data-animations=off] .card,body[data-animations=off] .toast{transition:none!important;animation:none!important}@media (width<=1180px){.tableau-grid{padding-bottom:6px;padding-right:calc(var(--card-width) * 2.1 + 14px);overflow-x:auto}}@media (width<=920px){.app-shell{padding:12px}.toolbar{flex-wrap:wrap;justify-content:center}.table-surface{min-height:58vh;padding:14px}.tableau-grid{padding-right:0;padding-bottom:calc(var(--card-height) * 2 + 18px);gap:2px}.foundation-area{bottom:14px;right:14px}}
