@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Libre+Caslon+Display&display=swap";:root{font-family:DM Sans,sans-serif;color:#253e32;background:#f7f6f0;font-synthesis:none;font-weight:400;--green: #254c3b;--muted: #626d5b;--line: #dddfd3;--red: #a44838;--serif: "Libre Caslon Display", Georgia, serif}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button{display:inline-flex;align-items:center;justify-content:center;gap:9px}button:focus-visible,a:focus-visible{outline:3px solid #bf7558;outline-offset:4px}button{transition:background .15s,color .15s,transform .15s}button:active{transform:translateY(1px)}input:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px #254c3b15}a{color:inherit}svg{flex-shrink:0}h1,h2,h3,p{margin:0}h2{font-family:var(--serif);font-weight:400;font-size:32px;line-height:1.1}h3{font-size:15px;font-weight:550}.app-shell{max-width:1280px;margin:auto;padding:0 64px}.topbar{height:100px;display:flex;align-items:center;border-bottom:1px solid var(--line);gap:30px}.brand{text-decoration:none;display:flex;align-items:center;font-family:var(--serif);font-size:30px;letter-spacing:-.8px;white-space:nowrap}.brand-mark{font-family:Georgia,serif;font-size:37px;margin-right:10px}.brand-dot{color:var(--red)}.brand-caption{font-size:9px;letter-spacing:2px;color:var(--muted);border-left:1px solid var(--line);padding-left:28px;padding-top:5px;padding-bottom:5px}.text-button{font-size:12px;color:var(--green);border:0;background:none;padding:10px 0;min-height:40px}.text-button:hover{color:var(--red)}.rules-button{margin-left:auto}.hero{display:flex;align-items:center;justify-content:space-between;min-height:322px;padding:41px 0 39px}.eyebrow{font-size:9px;letter-spacing:1.8px;font-weight:650;display:flex;align-items:center;gap:8px}.eyebrow>span{width:6px;height:6px;border-radius:50%;background:var(--red)}.hero-title{font-family:var(--serif);font-size:68px;line-height:.98;letter-spacing:-1.7px;font-weight:400;margin:19px 0 17px}.hero-title em{color:var(--green);font-weight:400}.hero-copy{font-size:13px;color:var(--muted)}.game-specs{display:flex;align-items:center;gap:16px;margin-top:23px;font-size:11px;color:#5c665b}.game-specs span{display:flex;align-items:center;gap:6px}.game-specs svg{width:13px;height:13px}.game-specs i{width:3px;height:3px;border-radius:50%;background:#aeb2a5}.hero-art{position:relative;width:360px;height:238px;margin-right:24px;display:flex;flex-direction:column;align-items:center}.card-fan{position:relative;width:250px;height:218px}.playing-card{position:absolute;top:20px;width:120px;height:169px;border-radius:9px;background:#fffdf5;border:1px solid #d9d9c9;box-shadow:0 8px 12px #323d2410;display:flex;align-items:center;justify-content:center}.playing-card>span{position:absolute;top:9px;left:10px;font-family:Georgia,serif;font-size:18px;line-height:.95;text-align:center}.playing-card>span:last-child{inset:auto 10px 9px auto;transform:rotate(180deg)}.playing-card>b{font-size:69px;font-family:Georgia,serif;font-weight:400}.card-back{transform:rotate(-24deg);left:23px;top:32px;padding:7px;background:#fbf8ed}.card-back>div{display:grid;place-items:center;width:100%;height:100%;border:3px double #e4e5cb;background:repeating-linear-gradient(45deg,transparent 0 3px,#b9c5a738 3px 4px),repeating-linear-gradient(-45deg,#45644d 0 3px,#7f957d 3px 4px);font-size:40px;color:#f6f2df;outline:1px solid #45644d;outline-offset:2px;border-radius:3px}.card-heart{left:78px;transform:rotate(-4deg);color:var(--red)}.card-club{left:137px;top:32px;transform:rotate(17deg)}.art-caption{font-size:8px;letter-spacing:2px;position:relative;margin-top:8px;color:var(--muted)}.workspace-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:30px;align-items:start}.panel{background:#fffefa;border:1px solid var(--line);border-radius:8px;padding:29px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.section-heading .eyebrow{margin-bottom:11px}.muted{color:var(--muted)}.pill{font-size:8px;letter-spacing:1px;background:#eff1e8;padding:7px 10px;border-radius:4px;white-space:nowrap}.section-description{font-size:12px;color:var(--muted);line-height:1.5;margin-top:12px}.player-fields{display:grid;grid-template-columns:1fr 1fr;gap:23px 20px;margin-top:29px}.name-field label{display:flex;align-items:center;gap:8px;font-size:8px;letter-spacing:1.4px;font-weight:600;margin-bottom:9px}.suit{font-family:Georgia,serif;font-size:23px;line-height:1}.suit-1,.suit-3{color:var(--red)}.name-input{position:relative}.name-input input{width:100%;height:47px;border:1px solid #dcded3;border-radius:5px;padding:0 40px 0 13px;background:#fffefa;color:var(--green);font-size:13px}.name-input input::placeholder{color:#919487}.name-input .icon-button{position:absolute;right:2px;top:4px}.icon-button{width:38px;height:38px;border:0;background:none;border-radius:4px;color:#687561}.icon-button:hover{background:#eceee3;color:var(--green)}.add-player{border:1px dashed #cbd1c0;background:none;border-radius:5px;width:100%;height:43px;margin-top:20px;font-size:11px;color:#5d6f5b}.add-player:hover{background:#f0f2e8;border-color:#82957b}.add-player>span{font-size:9px;color:var(--muted);margin-left:2px}.setup-bottom{display:flex;align-items:center;justify-content:space-between;margin-top:29px;padding-top:23px;border-top:1px solid #e8e9de;gap:10px}.setup-bottom>span{font-size:10px;color:var(--muted);display:flex;align-items:center;gap:6px}.tiny-dot{width:5px;height:5px;background:#8c9d72;border-radius:50%}.primary{background:var(--green);color:#fffdf4;padding:13px 19px;border:1px solid var(--green);border-radius:5px;font-size:12px;font-weight:500;min-height:44px;white-space:nowrap}.primary:hover{background:#153e2b}.secondary{background:#f7f7f0;border:1px solid var(--line);border-radius:5px;color:var(--green);padding:13px 18px;font-size:12px;min-height:44px}.secondary:hover{background:#e8ecdf}.save-note{display:flex;justify-content:space-between;font-size:9px;color:var(--muted);margin:17px 1px;gap:10px}.save-note>span:first-child{display:flex;align-items:center;gap:5px}.reference-panel{background:#eef0e6;border:1px solid #e0e3d5;border-radius:8px;padding:24px}.reference-title{display:flex;align-items:center;gap:9px;font-size:9px;font-weight:550;letter-spacing:1.4px;margin-bottom:23px}.reference-title svg{color:#6c7e5f}.reference-panel h2{font-size:29px}.reference-panel>p{font-size:11px;color:var(--muted);margin:9px 0 16px}.card-value-row{display:flex;align-items:center;padding:14px 0;gap:13px;border-bottom:1px solid #dce0d0}.mini-card{border:1px solid #d5d9c9;border-radius:4px;width:31px;height:42px;background:#fffef5;display:flex;flex-direction:column;align-items:center;justify-content:center;font-family:Georgia,serif;font-size:17px;gap:1px;box-shadow:0 2px 1px #233b2010}.mini-card>span{font-size:12px}.red{color:var(--red)}.card-value-row>div:nth-child(2){display:flex;flex-direction:column;gap:5px}.card-value-row strong{font-size:12px;font-weight:500}.card-value-row>div>span{font-size:10px;color:var(--muted)}.card-value-row>b{font-size:20px;font-weight:500;margin-left:auto;white-space:nowrap}.card-value-row small{font-size:9px;font-weight:400;color:var(--muted)}.scoring-equation{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:11px;font-size:10px;padding:19px 0 17px}.scoring-equation>b{font-weight:400;color:#919981}.scoring-equation>strong{flex:1 0 100%;text-align:center;font-size:11px;font-weight:500}.reference-expand{border:0;border-top:1px solid #dce0d0;background:none;width:100%;justify-content:space-between;font-size:10px;padding:14px 0 0;color:#5c7050;min-height:34px}.reference-expand:hover{color:#142f19}.rules-notes{font-size:11px;line-height:1.65;color:#64705b}.rules-notes p{margin-top:12px}footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid var(--line);margin-top:48px;padding:23px 0 27px;color:var(--muted);font-size:8px;letter-spacing:1px}footer nav{display:flex;gap:20px;margin-left:auto}footer a{display:inline-flex;align-items:center;min-height:44px;font-size:12px;letter-spacing:0;text-underline-offset:4px}footer .build-label{width:100%;font-size:10px;letter-spacing:0}.footer-dot{padding:0 5px}.scoreboard>.section-heading{margin-bottom:22px}.scoreboard h1{font-size:33px;font-family:var(--serif);font-weight:400;line-height:1.1}.score-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.score-card{position:relative;padding:19px 19px 16px;background:#fffefa;border:1px solid var(--line);border-radius:7px;transition:background-color .22s ease,border-color .22s ease}.score-card.leading{border-color:#78916c;background:#f1f4e9}.score-card.has-won{border-color:#ad8a3d;background:#f6f2e3}.score-card-top{display:flex;align-items:center;justify-content:space-between;gap:5px;margin-bottom:16px}.leader-label{font-size:7px;font-weight:650;letter-spacing:1px;color:var(--green);display:flex;align-items:center;gap:5px}.seat-label{font-size:7px;letter-spacing:1px;color:var(--muted)}.score-card h2{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-family:DM Sans,sans-serif;font-weight:550;line-height:1.4}.total{font-size:44px;letter-spacing:-1.6px;margin:7px 0 13px;line-height:1.1;font-weight:450;font-variant-numeric:tabular-nums}.score-target{font-size:11px;color:var(--muted);letter-spacing:0;font-weight:400}.progress-track{height:3px;background:#e4e7da;border-radius:5px;overflow:hidden;margin-bottom:11px}.progress-track>div{height:100%;background:#65815c;transition:width .4s}.last-round{font-size:9px;color:var(--muted)}.negative{color:var(--red)!important}.round-callout{display:flex;align-items:center;gap:13px;background:#e9eddf;border:1px solid #dde3d0;border-radius:7px;padding:18px;margin:19px 0}.round-icon{width:38px;height:44px;background:#f7f8f0;border:1px solid #d5ddc9;border-radius:4px;display:grid;place-items:center;flex-shrink:0;font-family:var(--serif);font-size:26px}.round-callout h3{font-size:13px}.round-callout p{font-size:10px;color:var(--muted);line-height:1.5;margin-top:5px}.round-callout .primary{margin-left:auto;padding:11px 14px;font-size:11px}.history-panel{padding:23px}.history-panel h2{font-size:26px;display:flex;align-items:center;gap:10px}.count-badge{font-family:DM Sans,sans-serif;font-size:9px;display:grid;place-items:center;background:#f0f1e8;border:1px solid #e4e6db;border-radius:5px;min-width:22px;height:22px}.empty-history{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:37px 0 25px}.empty-suits{color:#9ba88d;font-size:22px;letter-spacing:6px;margin-bottom:14px}.empty-suits>span{color:#c49881}.empty-history h3{font-family:var(--serif);font-size:24px;font-weight:400}.empty-history p{font-size:11px;color:var(--muted);margin-top:7px}.table-scroll{overflow:auto;margin-top:17px}table{width:100%;border-collapse:collapse;table-layout:fixed;text-align:right;font-size:13px}th,td{padding:12px 5px;border-bottom:1px solid #e7e9df}thead th{font-size:9px;font-weight:500;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}th:first-child{text-align:left;width:62px}th:last-child{width:40px}tbody th{font-weight:400}.round-number{font-family:var(--serif);font-size:21px;color:var(--muted)}tbody td:last-child{padding:0}tfoot th,tfoot td{font-size:12px;font-weight:600;border-bottom:0;padding-top:17px}tfoot th{font-size:9px}.error{color:#a84030;font-size:12px;margin-top:12px}dialog{border:1px solid #d9ddce;background:#fffefa;border-radius:12px;color:var(--green);padding:30px;width:570px;max-width:calc(100vw - 28px);box-shadow:0 20px 80px #10251926}dialog::backdrop{background:#243b325e;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}dialog h2{font-size:34px}dialog .section-description{margin-bottom:25px}.entry-labels,.entry-row{display:grid;grid-template-columns:minmax(0,1fr) 156px;gap:12px;align-items:center}.entry-labels{font-size:8px;letter-spacing:1px;color:var(--muted);padding-bottom:12px}.entry-labels>span:last-child{text-align:right}.entry-row{border-top:1px solid #e8eade;padding:14px 0}.entry-name{display:flex;align-items:center;gap:10px;font-size:12px;overflow-wrap:anywhere}.entry-name .suit{font-size:20px;flex-shrink:0}.entry-row input{min-width:0;width:100%;height:45px;border:1px solid #d9decd;border-radius:5px;background:#f9faf5;padding:10px;text-align:center;color:var(--green);font-size:16px;font-variant-numeric:tabular-nums}.score-input{display:flex;align-items:center;gap:8px}.sign-toggle{flex-shrink:0;width:44px;height:44px;border:1px solid var(--line);border-radius:5px;background:#f7f7f0;color:var(--green);font-size:17px}.sign-toggle:hover{background:#e8ecdf}.sign-toggle[aria-pressed=true]{border-color:var(--red);color:var(--red);background:#fbefea}.entry-hint{font-size:10px;color:var(--muted);margin:14px 0 25px;line-height:1.5}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;padding-top:20px;border-top:1px solid #e1e4d7}.confirmation h2{margin:13px 0}.confirmation>p:not(.eyebrow){font-size:13px;line-height:1.6;color:var(--muted);margin-bottom:24px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.score-value{display:inline-block;transform-origin:left center}.win-sparkles{position:absolute;inset:0;overflow:hidden;border-radius:inherit;pointer-events:none}.win-sparkles>span{position:absolute;top:0;left:2px;color:#ad8a3d;font-family:Georgia,serif;font-size:10px;opacity:0;pointer-events:none}.win-sparkles>span:nth-child(2n){left:auto;right:2px;color:var(--red)}@media(prefers-reduced-motion:no-preference){.playing-card{animation:fan-open .65s cubic-bezier(.2,.8,.2,1) both}.card-heart{animation-delay:60ms}.card-club{animation-delay:.12s}.score-card{animation:card-deal .36s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(var(--seat) * 45ms)}.score-value{animation:score-settle .34s ease-out}.has-won .leader-label svg{animation:trophy-tip .6s ease-out}.win-sparkles>span{animation:suit-shower 1.05s ease-out both;animation-delay:calc(var(--spark) * 25ms)}.has-won:has(.win-sparkles):after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;animation:winner-halo 1.3s ease-out}dialog[open]{animation:sheet-reveal .16s ease-out}dialog[open]::backdrop{animation:backdrop-reveal .16s ease-out}.save-note .notice{animation:notice-in .18s ease-out}}@keyframes fan-open{0%{translate:0 12px;rotate:-10deg}to{translate:0 0;rotate:0deg}}@keyframes card-deal{0%{translate:0 8px;scale:.98}to{translate:0 0;scale:1}}@keyframes score-settle{0%{transform:scale(1)}35%{transform:scale(1.065)}to{transform:scale(1)}}@keyframes trophy-tip{0%,to{transform:rotate(0)}30%{transform:rotate(-16deg)}65%{transform:rotate(10deg)}}@keyframes suit-shower{0%{opacity:0;transform:translateY(-12px) rotate(-25deg)}18%{opacity:.7}to{opacity:0;transform:translateY(70px) rotate(65deg)}}@keyframes winner-halo{0%,to{box-shadow:0 0 #ad8a3d00}30%{box-shadow:0 0 0 4px #ad8a3d30}}@keyframes sheet-reveal{0%{opacity:.86}to{opacity:1}}@keyframes backdrop-reveal{0%{opacity:0}to{opacity:1}}@keyframes notice-in{0%{opacity:.6;translate:0 6px}to{opacity:1;translate:0 0}}@media(min-width:1100px){.score-cards:has(>:nth-child(3)):not(:has(>:nth-child(4))){grid-template-columns:repeat(3,minmax(0,1fr))}.score-cards:has(>:nth-child(3)):not(:has(>:nth-child(4))) .score-card{padding:17px 14px}.score-cards:has(>:nth-child(3)):not(:has(>:nth-child(4))) .total{font-size:38px}.score-cards:has(>:nth-child(3)):not(:has(>:nth-child(4))) .seat-label{display:none}}@media(min-width:1450px){.app-shell{max-width:1370px;padding:0 78px}.hero{min-height:360px}.hero-title{font-size:76px}.workspace-grid{grid-template-columns:minmax(0,1fr) 320px;gap:36px}}@media(max-width:1000px){.app-shell{padding:0 35px}.workspace-grid{grid-template-columns:minmax(0,1fr) 270px;gap:22px}.panel{padding:23px}.brand-caption{display:none}.hero-art{margin-right:0;width:290px}.round-callout{flex-wrap:wrap}.round-callout .primary{margin-left:51px}.setup-bottom{align-items:flex-start;flex-direction:column;gap:18px}.setup-bottom .primary{width:100%}.reference-panel{padding:21px}.score-card{padding:16px}}@media(max-width:760px){.app-shell{padding:0 20px}.topbar{height:72px}.brand{font-size:27px}.brand-mark{font-size:31px}.hero{min-height:250px;padding:28px 0;position:relative}.hero-art{position:absolute;right:10px;top:45px;width:110px;height:140px;margin:0}.card-fan{transform:scale(.48);transform-origin:top left;width:128px;margin-left:-12px}.art-caption{display:none}.hero-title{font-size:52px;letter-spacing:-1px}.eyebrow,.hero .eyebrow{font-size:10px;letter-spacing:1.2px}.hero-copy{font-size:12px}.game-specs{font-size:11px;gap:10px;margin-top:18px}.workspace-grid{grid-template-columns:1fr;gap:24px}body:has(.game-active) .footer-shell{padding-bottom:calc(90px + env(safe-area-inset-bottom))}.game-active .hero{display:none}.game-active main{padding-top:25px}.game-active:after{content:"";position:fixed;bottom:0;left:0;right:0;height:calc(85px + env(safe-area-inset-bottom));background:#f7f6f0;border-top:1px solid var(--line);z-index:2}.panel,.reference-panel{padding:22px}.player-fields{gap:20px 12px}.name-field label,.pill{font-size:10px}.name-input input{height:52px;font-size:16px}.name-input .icon-button{top:4px}.add-player{height:48px;font-size:14px}.add-player>span,.setup-bottom>span{font-size:11px}.section-description{font-size:13px}.setup-bottom{flex-direction:row;align-items:center}.setup-bottom .primary{width:auto}.primary,.secondary{min-height:48px;font-size:14px}.text-button{min-height:44px;font-size:12px}.icon-button{width:44px;height:44px}.score-card{padding:15px}.score-card-top{margin-bottom:10px}.score-card h2{font-size:16px}.total{font-size:46px;margin:5px 0 9px}.score-target,.last-round{font-size:12px}.leader-label,.seat-label{font-size:9px;letter-spacing:.4px}aside{display:grid;grid-template-columns:1fr}.reference-title{margin-bottom:17px;font-size:11px}.reference-panel h2{font-size:28px}.reference-panel>p{margin-bottom:9px;font-size:13px}.card-value-row{padding:11px 0}.card-value-row strong{font-size:14px}.card-value-row>div>span,.card-value-row small{font-size:12px}.scoring-equation,.scoring-equation>strong,.rules-notes{font-size:13px}.reference-expand{min-height:48px;font-size:13px}.round-callout{flex-wrap:nowrap;padding:14px;gap:12px}.round-callout .primary{position:fixed;bottom:calc(16px + env(safe-area-inset-bottom));left:20px;right:20px;width:calc(100% - 40px);height:52px;margin:0;z-index:3;font-size:16px}.round-callout h3{font-size:15px}.round-callout p{font-size:12px}.scoreboard h1{font-size:30px}.history-panel{padding:20px 15px}.history-panel h2{font-size:25px}.empty-history p{font-size:13px}.history-panel .section-heading{gap:5px}th:first-child{width:45px}th:last-child{width:44px}table{font-size:14px}thead th,tfoot th{font-size:10px}tfoot td{font-size:14px}.count-badge{font-size:11px}footer{margin-top:30px}footer nav{width:100%;margin-left:0}.save-note{margin-bottom:0;font-size:11px}dialog{padding:24px 20px calc(24px + env(safe-area-inset-bottom));margin:auto auto 0;width:100%;max-width:100%;max-height:calc(100dvh - 20px);border-radius:16px 16px 0 0}.rules-button{font-size:0;gap:0;width:44px;padding:10px}.rules-button svg{width:19px;height:19px}.entry-labels,.entry-row{grid-template-columns:minmax(0,1fr) 156px;gap:9px}.entry-name{font-size:14px;gap:5px}.entry-row input{padding:7px;height:52px;font-size:20px}dialog h2{font-size:30px}.entry-labels{font-size:10px;letter-spacing:.4px}.entry-hint{font-size:12px}.confirmation .dialog-actions{flex-wrap:wrap}}@media(max-width:360px){.hero-art{display:none}.setup-bottom{flex-direction:column;align-items:stretch}.score-card{padding:13px}.leader-label,.seat-label{font-size:8px}.total{font-size:39px}.entry-name{font-size:12px}.entry-labels{font-size:9px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}.win-sparkles{display:none}}
