:root{color:#e9f1ea;font-synthesis:none;--felt:#1f5c43;--muted:#b1caba;--gold:#f2c14e;--paper:#fbf8f1;--note:#fbf1be;--pencil:#33302a;background:#1f5c43;font-family:system-ui,-apple-system,Segoe UI,sans-serif}*{box-sizing:border-box}body{background:radial-gradient(at 48% 35%,#2a705520,#0000 75%),#1f5c43;min-width:320px;margin:0}button{font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation}button:disabled{cursor:default}button:focus-visible{outline-offset:5px;outline:3px solid #ffe8a3}button,input{-webkit-user-select:none;user-select:none}button[hidden],[hidden]{display:none!important}h1,h2,p{margin:0}.stage{position:relative;overflow:hidden}.desktop{place-items:center;height:100dvh;display:grid;overflow:hidden}.desktop .stage{transform-origin:50%;background:radial-gradient(at 55% 40%,#ffffff05,#0000 70%);flex-shrink:0;grid-template-rows:76px minmax(0,1.3fr) minmax(0,1fr) 112px;width:1280px;height:720px;display:grid}.header{justify-content:space-between;align-items:center;padding:18px 26px 14px;display:flex}.header h1{letter-spacing:-1px;font:700 30px Georgia,serif}.title-dot{color:var(--gold)}.header-right{align-items:center;gap:22px;display:flex}.opponent{color:#d9e6dc;font-variant-numeric:tabular-nums;font-size:14px}.help-button,.close-help{background:var(--note);width:30px;height:30px;color:var(--pencil);border:0;border-radius:50%;font:600 17px Georgia,serif}.help-button:hover,.close-help:hover{background:#f6e08c}.play-area{grid-template-columns:292px minmax(0,1fr);gap:0;min-height:0;padding:4px 24px 0;display:grid}.piles{align-items:flex-start;gap:24px;padding-top:8px;display:flex}.pile{color:var(--muted);white-space:nowrap;flex-direction:column;align-items:center;gap:13px;font-size:13px;display:flex}.pile-card{background:0 0;border:0;border-radius:10px;width:124px;height:176px;padding:0;position:relative;box-shadow:0 5px 10px #0002}.pile-card:not(:disabled){outline:3px solid var(--gold);outline-offset:3px}.pile-card:not(:disabled):hover,.pile-card:not(:disabled):focus-visible{outline:5px solid #f7d27a}.discard:empty{box-shadow:none;border:2px dashed #a9c4b37a}.card-back{background:var(--paper);border:1px solid #d6cfc0;border-radius:10px;width:100%;height:100%;padding:8px;display:grid}.card-back>span{color:#fbf8f1d9;background:repeating-linear-gradient(45deg,#ffffff06 0 1px,#0000 1px 5px),#7a2230;border:1px solid #5f1927;border-radius:5px;place-items:center;font:700 44px Georgia,serif;display:grid;box-shadow:inset 0 0 0 4px #7a2230,inset 0 0 0 5px #fbf8f130}.card-face{background:var(--paper);border:1px solid #d6cfc0;border-radius:10px;width:100%;height:100%;display:block;position:relative;overflow:hidden}.red{color:#bd3036}.black{color:#1e2329}.corner{flex-direction:column;align-items:center;font-family:Georgia,serif;font-weight:700;line-height:1;display:flex;position:absolute}.corner.top{top:8px;left:10px}.corner.bottom{bottom:8px;right:10px;transform:rotate(180deg)}.rank{font-size:24px}.suit{margin-top:2px;font-size:16px}.center-suit{place-items:center;font:54px Georgia,serif;display:grid;position:absolute;inset:0}.table-area{scrollbar-width:thin;scrollbar-color:#a9c4b344 transparent;padding:4px 0 5px;overflow:hidden auto}.goal-heading{align-items:center;gap:12px;min-height:34px;margin-bottom:14px;display:flex}.goal-label{margin-right:1px;font-size:14px}.picker-wrap{z-index:5;position:relative}.goal-picker{width:190px;height:34px;color:var(--pencil);background:var(--note);text-align:left;border:0;border-radius:3px;align-items:center;gap:10px;padding:0 12px;font:15px Segoe Print,Comic Sans MS,cursive;display:flex;box-shadow:0 2px 3px #0002}.goal-picker:hover,.goal-picker[aria-expanded=true]{background:#f6e08c}.goal-name{flex:1}.goal-points{font-size:13px}.chevron{font-family:system-ui;font-size:21px;line-height:1}.goal-sheet{z-index:20;background:var(--note);color:var(--pencil);border-radius:2px;grid-template-columns:44px 112px 112px;margin-top:4px;padding:8px 8px 7px 0;display:grid;position:fixed;box-shadow:0 5px 16px #0006}.points-cell,.goal-cell{border:1px solid #bdaf74;border-top:0;border-left:0;place-items:center;height:48px;font:16px Segoe Print,Comic Sans MS,cursive;display:grid}.goal-cell{color:var(--pencil);background:0 0;font-size:15px;position:relative}.goal-cell:hover{background:#f6e08c}.goal-cell.current{background:var(--gold)}.goal-cell.completed:after{content:"";border:1.5px solid #33302ab3;border-radius:49% 44% 48% 43%;position:absolute;inset:10px 12px;transform:rotate(-9deg)}.action{background:var(--gold);color:#2a2108;border:1px solid #ffdf7a55;border-radius:8px;min-height:44px;padding:11px 34px;font-size:16px;font-weight:600;box-shadow:0 3px 4px #0001}.action:hover:not(:disabled){background:#f7d27a}.action:disabled{color:var(--muted);box-shadow:none;background:#143d2d;border-color:#a9c4b31a}.lay-down{min-height:34px;padding:6px 20px;font-size:14px}.formations{flex-wrap:wrap;align-items:flex-start;gap:8px 20px;display:flex}.formation{max-width:100%;margin-bottom:2px}.formation-row{scrollbar-width:thin;align-items:center;gap:6px;max-width:100%;padding:6px 4px;display:flex;overflow:auto hidden}.formation-cards{flex-shrink:0;height:88px;position:relative}.formation-cards:empty{display:none}.table-card{background:0 0;border:0;border-radius:5px;width:62px;height:88px;padding:0;position:absolute;top:0}.table-card .card-face{border-radius:5px}.table-card .rank{font-size:15px}.table-card .suit{margin-top:1px;font-size:10px}.table-card .corner.top{top:4px;left:5px}.table-card .corner.bottom{bottom:4px;right:5px}.table-card .center-suit{font-size:29px}.table-card.selected{box-shadow:0 0 0 2.5px var(--gold);z-index:1;transform:translateY(-6px)}.slot{white-space:pre-line;color:var(--muted);background:#163f2e18;border:2px dashed #a9c4b380;border-radius:6px;flex-shrink:0;font-size:12px;line-height:1.6}.empty-slot{width:62px;height:88px}.filled-slot{width:36px;height:52px;font-size:22px}.slot:not(:disabled){outline:2px solid var(--gold);outline-offset:3px}.slot:not(:disabled):hover{outline:3px solid #f7d27a}.return-space{justify-content:center;height:34px;padding-top:5px;display:flex}.return-button{background:var(--gold);color:#2a2108;border:0;border-radius:6px;width:44px;height:24px;font-size:22px;line-height:22px}.return-button:hover{background:#f7d27a}.table-player{margin:8px 0 12px}.player-label{color:var(--muted);margin-bottom:9px;font-size:13px;font-weight:400}.hand-area{flex-direction:column;justify-content:center;min-height:0;display:flex;position:relative}.hand-scroll{justify-content:center;padding:40px 16px 15px;display:flex}.hand{transform-origin:50%;flex-shrink:0;position:relative}.hand-card{width:124px;height:176px;transform:translateY(calc(var(--drop,0px) + var(--lift,0px))) rotate(var(--angle,0deg));--lift:0px;background:0 0;border:0;border-radius:10px;padding:0;transition:transform .14s;position:absolute;top:0;box-shadow:0 3px 8px #0004}.hand-card:not(:disabled):hover{--lift:-8px}.hand-card.selected{--lift:-28px;box-shadow:0 0 0 3px var(--gold),0 4px 9px #0004}.hand-card.selected:hover{--lift:-36px}.hand-card.arrival .card-face{animation:.24s ease-out arrive}.hand-card:focus-visible{outline-offset:5px;outline:3px solid #fff4c5}.reorder-controls{color:var(--muted);justify-content:center;align-items:center;gap:8px;font-size:12px;display:flex}.reorder-controls button{color:#e9f1ea;background:#143d2d66;border:1px solid #a9c4b350;border-radius:6px;min-width:44px;height:36px;font-size:20px}.reorder-controls button:disabled{opacity:.4}.desktop .reorder-controls{position:absolute;bottom:-7px;right:28px}.desktop .selection-count{display:none}.desktop .reorder-controls button{background:0 0;border-color:#a9c4b32a;min-width:36px;height:28px;font-size:17px}.footer{flex-direction:column;align-items:center;gap:13px;padding:10px 24px 27px;display:flex}.prompt{color:var(--muted);text-align:center;min-height:20px;font-size:14px}.action-space{justify-content:center;height:44px;display:flex}.overlay{z-index:100;background:#0009;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0;overflow-y:auto}.note{background:var(--note);color:var(--pencil);border-radius:3px;max-width:100%;padding:25px 28px;box-shadow:0 8px 30px #0006}.note h2{font:400 26px Segoe Print,Comic Sans MS,cursive}.help-note{width:600px;max-height:calc(100dvh - 40px);overflow:auto}.help-note header{justify-content:space-between;align-items:center;margin-bottom:15px;display:flex}.close-help{background:#f6e08c;font:24px system-ui}.rules-intro{border-bottom:1px solid #bdaf7477;padding-bottom:16px;font-size:14px;line-height:1.6}.help-note dl{grid-template-columns:122px 1fr;gap:12px 18px;margin:18px 0;font-size:13px;line-height:1.5;display:grid}.help-note dt{font-weight:600}.help-note dd{margin:0}.rules-footnote{border-top:1px solid #bdaf7477;padding-top:15px;font-size:12px;line-height:1.6}.gameover-overlay{z-index:110}.gameover-note{text-align:center;width:440px;padding:30px}.finish-mark{color:#1f5c43;margin-bottom:10px;font:40px Georgia,serif;display:block}.gameover-note p{margin:16px 0 22px;font-size:14px;line-height:1.7}@keyframes arrive{0%{opacity:0;translate:0 -36px}to{opacity:1;translate:0}}#app:not(.desktop) .stage{flex-direction:column;max-width:900px;min-height:100dvh;margin:0 auto;display:flex}#app:not(.desktop) .header{padding:18px 20px 22px}#app:not(.desktop) .header h1{font-size:28px}#app:not(.desktop) .header-right{gap:13px}#app:not(.desktop) .opponent{font-size:12px}#app:not(.desktop) .play-area{flex-direction:column;flex:1;gap:28px;padding:0 20px;display:flex}#app:not(.desktop) .piles{justify-content:center;gap:27px;padding-top:0}#app:not(.desktop) .pile-card{width:88px;height:126px}#app:not(.desktop) .pile{gap:10px;font-size:12px}#app:not(.desktop) .pile-card .corner .rank{font-size:20px}#app:not(.desktop) .pile-card .corner .suit{font-size:13px}#app:not(.desktop) .pile-card .center-suit{font-size:42px}#app:not(.desktop) .table-area{min-height:150px;padding:0;overflow:visible}#app:not(.desktop) .goal-heading{flex-wrap:wrap;gap:10px;margin-bottom:16px}#app:not(.desktop) .goal-picker{width:174px;height:44px}#app:not(.desktop) .lay-down{min-height:44px;padding:6px 12px}#app:not(.desktop) .goal-label{font-size:13px}#app:not(.desktop) .goal-sheet{grid-template-columns:36px 106px 106px;max-width:calc(100vw - 28px);left:auto}#app:not(.desktop) .formations{gap:10px 18px}#app:not(.desktop) .filled-slot{width:44px;height:52px}#app:not(.desktop) .return-space{height:48px}#app:not(.desktop) .return-button{height:39px;font-size:26px}#app:not(.desktop) .hand-area{margin-top:10px;padding-top:10px}#app:not(.desktop) .hand-scroll{scrollbar-width:thin;scrollbar-color:#a9c4b355 transparent;justify-content:flex-start;padding:42px 24px 22px;overflow:auto hidden}#app:not(.desktop) .hand{margin:0 auto}#app:not(.desktop) .hand-card{width:88px;height:126px}#app:not(.desktop) .hand-card .rank{font-size:22px}#app:not(.desktop) .hand-card .suit{font-size:15px}#app:not(.desktop) .hand-card .center-suit{font-size:40px}#app:not(.desktop) .hand-card .corner.top{top:7px;left:8px}#app:not(.desktop) .hand-card .corner.bottom{bottom:7px;right:8px}#app:not(.desktop) .reorder-controls button{height:44px}#app:not(.desktop) .footer{padding:20px 18px max(24px,env(safe-area-inset-bottom));gap:14px}#app:not(.desktop) .prompt{font-size:13px;line-height:1.5}#app:not(.desktop) .action-space{height:46px}@media (height<=540px) and (width>=600px){#app:not(.desktop) .stage{grid-template-columns:220px minmax(0,1fr);display:grid}#app:not(.desktop) .header{grid-column:1/-1;padding:10px 20px}#app:not(.desktop) .play-area{grid-column:1/-1;grid-template-columns:200px minmax(0,1fr);gap:15px;display:grid}#app:not(.desktop) .piles{gap:16px}#app:not(.desktop) .table-area{min-height:160px;max-height:190px;overflow:auto}#app:not(.desktop) .hand-area{grid-column:1/-1;margin-top:0;padding-top:0}#app:not(.desktop) .footer{grid-column:1/-1;padding:10px 16px 16px}#app:not(.desktop) .hand-scroll{padding-top:35px}#app:not(.desktop) .goal-sheet{position:fixed;top:60px;right:20px}}@media (width<=370px){#app:not(.desktop) .play-area{padding:0 14px}#app:not(.desktop) .goal-heading{gap:8px}#app:not(.desktop) .goal-picker{width:155px}#app:not(.desktop) .goal-label{display:none}.help-note dl{grid-template-columns:95px 1fr;gap:12px}.note{padding:20px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}
