@font-face{font-family:Atkinson Hyperlegible Next;src:url(/games/sunroom-hearts/play/fonts/atkinson-hyperlegible-next.woff2)format("woff2");font-weight:200 800;font-display:swap}:root{--ts:1;--tsc:min(var(--ts), 1.1);--font:"Atkinson Hyperlegible Next", system-ui, sans-serif;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);font-size:calc(20px * var(--ts));--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}*{box-sizing:border-box}html,body{overscroll-behavior:none;height:100%;margin:0;overflow:hidden}body{background:radial-gradient(120% 90% at 50% 0%, var(--table) 45%, var(--table-2));background-color:var(--table);color:var(--ink);font:1rem/1.35 var(--font);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}#app{max-width:860px;height:100%;margin:0 auto}button{font:inherit;color:inherit;cursor:pointer}:focus-visible{outline:4px solid var(--focus);outline-offset:2px}h2,h3{margin:0;font-weight:800}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.btn{border:2px solid var(--btn-edge);background:var(--btn);width:100%;min-height:64px;color:var(--btn-ink);text-align:center;border-radius:18px;gap:2px;padding:10px 18px;font-size:1.05rem;font-weight:700;display:grid}.btn__title{font-size:1.15rem;font-weight:800}.btn__sub{font-size:.9rem;font-weight:600}.btn--primary{background:var(--primary);border-color:var(--primary);color:var(--primary-ink)}.btn:active,.tool:active,.icon-btn:active{transform:scale(.97)}.icon-btn{border:2px solid var(--btn-edge);background:var(--btn);min-width:64px;min-height:60px;color:var(--btn-ink);font-size:calc(18px * var(--tsc));border-radius:16px;align-content:center;justify-items:center;padding:2px 6px;font-weight:700;line-height:1.1;display:grid}.icon-btn svg{width:26px;height:26px}.home{height:100%;padding:calc(var(--safe-top) + 16px) 16px calc(var(--safe-bottom) + 16px);flex-direction:column;justify-content:space-between;gap:16px;display:flex;overflow-y:auto}.home__brand{text-align:center;justify-items:center;gap:4px;margin-top:2vh;display:grid}.home__art{width:220px;height:160px;animation:.8s cubic-bezier(.2,.7,.3,1) both rise;position:relative}.home__heart{width:92px;height:92px;fill:var(--sun);position:absolute;top:0;right:4px}.home__heart svg{width:100%;height:100%}.home__card{width:88px;height:123px;font-size:88px;position:absolute}.home__card--a{top:22px;left:18px;transform:rotate(-12deg)}.home__card--b{top:30px;left:82px;transform:rotate(6deg)}.logo{font:800 clamp(2.3rem, 13vw, 3.2rem)/1 var(--font);letter-spacing:-.01em;margin:0}.logo span{font:800 clamp(1.7rem, 9vw, 2.2rem)/1 var(--font);letter-spacing:.06em;color:var(--sun);margin-top:4px;display:block}.home__tag{max-width:22em;color:var(--muted);margin:10px 0 0;font-size:1rem}.home__menu{gap:10px;width:100%;max-width:460px;margin:0 auto;display:grid}.home__row{grid-template-columns:1fr 1fr;gap:10px;display:grid}.play{height:100%;padding-top:var(--safe-top);flex-direction:column;display:flex;overflow:hidden}.bar{grid-template-columns:auto 1fr auto auto;align-items:center;gap:8px;padding:6px 10px 4px;display:grid}.bar--page{grid-template-columns:auto 1fr auto}.bar h2{text-align:center;font-size:1.25rem}.bar__title{text-align:center;min-width:0;line-height:1.15;display:grid}.bar__main{white-space:nowrap;font-size:calc(21px * var(--tsc));font-weight:800}.bar__sub{font-size:calc(18px * var(--tsc));color:var(--muted);font-weight:700}.table{grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:auto calc(var(--tw,60px) * 1.4);flex:none;gap:6px 8px;padding:10px 10px 0;display:grid;position:relative}.chip{border:3px solid var(--seat-edge);background:var(--seat);border-radius:14px;grid-template-columns:auto minmax(0,1fr);align-content:start;column-gap:5px;min-width:0;padding:4px 6px;line-height:1.15;display:grid;position:relative;container-type:inline-size}.chip .badge{align-self:center;width:20px;height:20px}.badge__shape{fill:var(--ink)}.badge text{font:800 54px var(--font);fill:var(--seat)}.chip__name{font-size:min(calc(19px * var(--tsc)), 24cqi);text-overflow:ellipsis;white-space:nowrap;font-weight:800;overflow:hidden}.chip__score{font-size:min(calc(16px * var(--tsc)), 19cqi);white-space:nowrap;grid-column:1/-1;font-weight:700}.chip__score b{font-size:min(calc(22px * var(--tsc)), 26cqi);font-weight:800}.chip__hand{font-size:min(calc(16px * var(--tsc)), 19cqi);color:var(--muted);white-space:nowrap;grid-column:1/-1;font-weight:600}.chip__short{display:none}@container (width<=112px){.chip .badge{display:none}}@container (width<=96px){.chip__long{display:none}.chip__short{display:inline}}.chip--turn,.chip--to{border-color:var(--turn);box-shadow:0 0 0 2px var(--turn);border-width:4px;padding:3px 5px}.chip__tag{background:var(--turn);color:var(--turn-ink);font-size:calc(18px * var(--tsc));white-space:nowrap;border-radius:99px;padding:0 7px;font-weight:800;line-height:20px;position:absolute;top:-19px;left:50%;transform:translate(-50%)}.chip__tag:empty{display:none}.trick{display:contents}.trick[hidden]{display:none}.spot{width:var(--tw,60px);height:calc(var(--tw,60px) * 1.4);border:3px dashed var(--seat-edge);border-radius:calc(var(--tw,60px) * .09);background:var(--spot);font-size:var(--tw,60px);justify-self:center;position:relative}.spot--full{background:0 0;border-color:#0000}.spot--turn{border:4px solid var(--turn)}.spot__card .face{animation:.2s ease-out land;position:absolute;inset:-3px}.spot__name{z-index:2;text-overflow:ellipsis;background:var(--seat);max-width:calc(100% + 6px);color:var(--ink);font-size:calc(14.4px * var(--tsc));white-space:nowrap;border-radius:8px;padding:1px 5px;font-weight:800;line-height:1.25;position:absolute;bottom:4px;left:50%;overflow:hidden;transform:translate(-50%)}.spot:not(.spot--full) .spot__name{color:var(--muted);background:0 0;bottom:50%;transform:translate(-50%,50%)}.spot--led:after{content:"Led";z-index:2;background:var(--seat);color:var(--ink);font-size:calc(18px * var(--tsc));border-radius:7px;padding:0 5px;font-weight:800;line-height:1.3;position:absolute;top:3px;right:3px}.spot--win .face{box-shadow:0 0 0 .05em var(--turn), 0 0 0 .08em var(--table), var(--card-shadow)}.spot--win .spot__name{background:var(--turn);color:var(--turn-ink)}.passpanel{text-align:center;grid-area:2/1/auto/-1;align-self:center;margin:0}.passpanel[hidden]{display:none}.passpanel__text{font-size:calc(21px * var(--tsc));margin:0;padding:0 6px;font-weight:700}.status{flex:none;height:calc(3.6rem + 8px);margin:4px 10px 0;position:relative}.status__text{z-index:50;text-align:center;border-radius:14px;place-items:center;min-height:100%;margin:0;padding:2px 8px;font-size:.95rem;font-weight:700;line-height:1.25;display:grid;position:absolute;bottom:0;left:0;right:0}.status--you .status__text{color:var(--hint)}.status--long .status__text{background:var(--seat);border:3px solid var(--hint);color:var(--ink);padding:8px 12px;box-shadow:0 6px 16px #00000059}.hand{flex:none;margin:2px 10px 0;position:relative}.hcard{width:var(--cw);height:calc(var(--cw) * 1.4);font-size:var(--cw);touch-action:manipulation;background:0 0;border:0;border-radius:.09em;padding:0;transition:transform .2s cubic-bezier(.2,.7,.3,1);position:absolute;top:0;left:0}.hcard .face{position:absolute;inset:0}.hcard--ok .face{box-shadow:0 0 0 .05em var(--hint), 0 0 0 .08em var(--table), var(--card-shadow)}.hcard--chosen{margin-top:-.1em}.hcard--chosen .face{box-shadow:0 0 0 .06em var(--chosen), 0 0 0 .09em var(--table), var(--card-shadow)}.hcard__tag{z-index:3;background:var(--turn);color:var(--turn-ink);border-radius:.06em;padding:0 .05em;font-size:max(18px,.2em);font-weight:800;line-height:1.3;position:absolute;top:.05em;right:.04em}.hcard__tag:empty{display:none}.hcard--hint .face{box-shadow:0 0 0 .07em var(--hint), 0 0 .25em .06em var(--hint);animation:.9s ease-in-out 3 glow}.hcard--nope .face{animation:.4s nope}@keyframes nope{20%,60%{transform:translate(-6%)}40%,80%{transform:translate(6%)}}@keyframes glow{50%{box-shadow:0 0 0 .09em var(--hint), 0 0 .4em .1em var(--hint)}}@keyframes land{0%{opacity:.4;transform:scale(1.12)}}.tools{padding:6px 10px calc(var(--safe-bottom) + 6px);grid-template-columns:repeat(4,1fr);gap:8px;margin-top:auto;display:grid}.tool{border:2px solid var(--btn-edge);background:var(--btn);min-height:62px;color:var(--btn-ink);font-size:calc(18px * var(--tsc));border-radius:16px;align-content:center;justify-items:center;gap:1px;padding:3px 2px;font-weight:800;line-height:1.1;display:grid;position:relative}.tool svg{width:26px;height:26px}.tool--off{color:var(--ink);background:0 0;border-style:dashed}.tool[hidden]{display:none}.tool--pass{border-style:dashed;border-width:3px}.tool--ready{background:var(--primary);border-style:solid;border-color:var(--primary);color:var(--primary-ink)}.tool__tag{display:none}.tool--tagged .tool__tag{background:var(--primary);color:var(--primary-ink);font-size:calc(18px * var(--tsc));white-space:nowrap;border-radius:999px;padding:1px 7px;font-weight:800;line-height:18px;display:block;position:absolute;top:-11px;right:2px}.face{background:var(--card);color:var(--black);box-shadow:var(--card-shadow), inset 0 0 0 1px var(--card-edge);border-radius:.09em;display:block;position:absolute;inset:0}.face--h,.face--d{color:var(--red)}.four-colour .face--d{color:var(--blue)}.four-colour .face--c{color:var(--green)}.face svg{fill:currentColor}.face__rank{width:.42em;font:800 .4em/1 var(--font);letter-spacing:-.07em;text-align:center;position:absolute;top:.03em;left:.05em}.face__suit{width:.3em;height:.3em;position:absolute;top:.44em;left:.06em}.face__pip{width:.52em;height:.52em;position:absolute;bottom:.1em;right:.08em}.face__court{width:1.19em;height:1.48em;font:800 .42em/1 var(--font);border:.085em solid;border-radius:.2em;place-items:center;display:grid;position:absolute;bottom:.19em;right:.19em}.face__tag{font:800 .2em/1 var(--font);position:absolute;bottom:.06em;left:.06em}.play--xl .face__rank{width:.48em;font-size:.46em}.play--xl .face__suit{width:.34em;height:.34em;top:.5em}.sheet{z-index:1000;background:#0000008c;place-items:center;padding:12px;animation:.2s fade;display:grid;position:fixed;inset:0}.sheet__card{width:100%;max-width:480px;max-height:calc(100% - var(--safe-top) - var(--safe-bottom));background:var(--sheet);color:var(--sheet-ink);-webkit-user-select:text;user-select:text;border-radius:22px;gap:12px;padding:20px 16px 14px;animation:.25s cubic-bezier(.2,.7,.3,1) rise;display:grid;overflow:auto;box-shadow:0 20px 60px #0006}.sheet__card:focus{outline:none}.sheet__card h2{text-align:center;font-size:1.45rem;line-height:1.15}.sheet__card h3{font-size:1.1rem}.sheet__card p{color:var(--sheet-muted);text-align:center;margin:0}.sheet__card .sheet__big{color:var(--sheet-ink);font-size:1.1rem;font-weight:700}.sheet__card .btn:not(.btn--primary){background:var(--sheet-btn);border-color:var(--sheet-muted);color:var(--sheet-ink)}.sheet__card .quote{color:var(--sheet-ink);font-style:italic}.sheet__card a{color:var(--sheet-ink);font-weight:700}.howto{gap:14px;display:grid}.sheet__card .howto p{color:var(--sheet-ink);text-align:left}.howto__aim{gap:8px;display:grid}.howto__steps{gap:18px;margin:0;padding:0;list-style:none;display:grid}.howto__step{grid-template-columns:auto 1fr;grid-template-areas:"pic pic""num text";align-items:center;gap:8px 10px;display:grid}.howto__step .hp{grid-area:pic}.howto__step p{grid-area:text;font-weight:700}.howto__num{background:var(--sheet-ink);width:40px;height:40px;color:var(--sheet);border-radius:50%;grid-area:num;place-items:center;font-size:22px;font-weight:800;display:grid}.howto__more ul{text-align:left;gap:8px;margin:0;padding-left:24px;display:grid}.howto__more[hidden]{display:none}.hp{background:var(--table);color:var(--ink);border-radius:16px;justify-items:center;gap:10px;padding:12px 8px;display:grid;container-type:inline-size}.hp__row{--n:4;--cw:min(84px, calc((100cqw - (var(--n) - 1) * 10px) / var(--n)));flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;width:100%;display:flex}.hp__row--wide{gap:40px}.hp__item{width:var(--cw);justify-items:center;gap:6px;display:grid}.hp__item .hp__label{white-space:nowrap;font-size:20px}.hp__card{width:var(--cw);height:calc(var(--cw) * 1.4);font-size:var(--cw);display:block;position:relative}.hp__card--ok .face{box-shadow:0 0 0 .05em var(--hint), 0 0 0 .08em var(--table), var(--card-shadow)}.hp__card--win .face{box-shadow:0 0 0 .05em var(--turn), 0 0 0 .08em var(--table), var(--card-shadow)}.hp__card--pass{margin-top:-.1em}.hp__card--pass .face{box-shadow:0 0 0 .06em var(--chosen), 0 0 0 .09em var(--table), var(--card-shadow)}.hp__tag{z-index:3;background:var(--turn);color:var(--turn-ink);border-radius:.06em;padding:0 .05em;font-size:20px;font-weight:800;line-height:1.3;position:absolute;top:.05em;right:.04em}.hp__label{color:var(--ink);font-size:calc(20px * var(--tsc));text-align:center;font-weight:800;line-height:1.2}.hp__arrow{width:44px;height:44px;color:var(--ink);flex:none}.hp__btn{border:2px solid var(--primary);background:var(--primary);min-height:56px;color:var(--primary-ink);font-size:calc(20px * var(--tsc));border-radius:16px;align-items:center;gap:6px;padding:4px 14px;font-weight:800;display:inline-flex}.hp__btn svg{width:26px;height:26px}.hp__pile{width:calc(var(--cw) * 1.3);height:calc(var(--cw) * 1.55);position:relative}.hp__pile .hp__card{position:absolute;top:0;left:0}.hp__pile .hp__card:nth-child(2){left:calc(var(--cw) * .1);top:calc(var(--cw) * .05)}.hp__pile .hp__card:nth-child(3){left:calc(var(--cw) * .2);top:calc(var(--cw) * .1)}.hp__pile .hp__card:nth-child(4){left:calc(var(--cw) * .3);top:calc(var(--cw) * .15)}.extrick{grid-template-columns:repeat(4,1fr);justify-items:center;gap:8px;display:grid}.ex{text-align:center;justify-items:center;gap:4px;margin:0;font-size:.85rem;font-weight:700;display:grid}.ex__card{width:64px;height:90px;font-size:64px;position:relative}.ex--win .face{box-shadow:0 0 0 4px var(--sheet), 0 0 0 8px var(--sheet-ink)}.ex--win figcaption:after{content:" takes it"}.about{gap:10px;display:grid}.about__mark,.won__heart{width:72px;height:72px;fill:var(--red);justify-self:center}.won{gap:12px;display:grid}.won__heart--other{fill:var(--sheet-muted)}.score{overflow-x:auto}.score table{border-collapse:collapse;width:100%;font-size:min(.95rem,5vw)}.score th,.score td{border-bottom:1px solid var(--sheet-muted);text-align:center;padding:8px 4px;font-weight:700}.score tbody th{text-align:left;white-space:nowrap;font-weight:600}.score__lead{line-height:1;display:block}.score thead th{font-weight:800}.score__now{color:var(--sheet-muted)}.score__total td,.score__total th{background:var(--sheet-btn);border-bottom:0;font-size:min(1.1rem,5.6vw);font-weight:800}@keyframes fade{0%{opacity:0}}@keyframes rise{0%{opacity:0;transform:translateY(30px)}}.page{height:100%;padding:calc(var(--safe-top) + 4px) 16px calc(var(--safe-bottom) + 24px);flex-direction:column;gap:12px;display:flex;overflow-y:auto}.page>*{flex-shrink:0}.page .bar{padding:8px 0}.page h3{color:var(--ink);margin-top:12px;font-size:1.1rem}.statset dl{grid-template-columns:1fr 1fr;gap:8px;margin:0;display:grid}.statset dl div{border:2px solid var(--btn-edge);background:var(--btn);color:var(--btn-ink);border-radius:14px;padding:12px 14px;display:grid}.statset dt{font-size:.9rem}.statset dd{margin:0;font-size:1.5rem;font-weight:800}.statset dd small{font-size:.9rem;font-weight:600}.toggle{border:2px solid var(--btn-edge);background:var(--btn);min-height:64px;color:var(--btn-ink);border-radius:14px;grid-template-columns:1fr auto;align-items:center;gap:12px;padding:10px 14px;font-weight:700;display:grid;position:relative}.toggle small{font-size:.9rem;font-weight:500;display:block}.toggle input{opacity:0;pointer-events:none;position:absolute}.toggle i{border:2px solid var(--btn-ink);border-radius:99px;width:60px;height:36px;transition:background .2s;position:relative}.toggle i:after{content:"";background:var(--btn-ink);border-radius:50%;width:26px;height:26px;transition:transform .2s;position:absolute;top:3px;left:3px}.toggle input:checked+i{background:var(--primary);border-color:var(--primary)}.toggle input:checked+i:after{background:var(--primary-ink);transform:translate(24px)}.toggle input:focus-visible+i{outline:4px solid var(--focus);outline-offset:2px}.choice{border:2px solid var(--btn-edge);background:var(--btn);border-radius:16px;grid-auto-columns:1fr;grid-auto-flow:column;gap:6px;padding:6px;display:grid}.choice__opt{min-height:56px;color:var(--btn-ink);background:0 0;border:0;border-radius:12px;padding:4px;font-size:.9rem;font-weight:700;line-height:1.15}.choice__opt--on{background:var(--primary);color:var(--primary-ink);box-shadow:inset 0 0 0 3px var(--primary-ink)}.label{margin:4px 0 -4px;font-weight:700}.note{color:var(--muted);margin:0;font-size:.95rem}.looks{gap:8px;display:grid}.look{border:3px solid var(--btn-edge);background:var(--btn);min-height:72px;color:var(--btn-ink);text-align:left;border-radius:14px;grid-template-rows:auto auto;grid-template-columns:auto 1fr;align-items:center;column-gap:14px;padding:10px 14px;display:grid}.look--on{border-color:var(--primary);box-shadow:inset 0 0 0 3px var(--primary)}.look__sw{grid-row:span 2;display:flex}.look__sw i{border:1px solid #7f7f7f99;width:22px;height:44px}.look__sw i:first-child{border-radius:8px 0 0 8px}.look__sw i:last-child{border-radius:0 8px 8px 0}.look__name{font-weight:800}.look__blurb{font-size:.85rem}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:10ms!important;animation-duration:10ms!important;animation-iteration-count:1!important}}.btn--apart{margin-top:28px}*{overflow-anchor:none}:root,[data-theme=rose]{--table:#7a2742;--table-2:#651f37;--ink:#fff6f3;--muted:#f9dde4;--seat:#5a1a30;--seat-edge:#eaa3b6;--spot:#6a2139;--card:#fffaf5;--card-edge:#3c0a1940;--card-shadow:0 2px 4px #00000059;--red:#b3213c;--black:#1e1a1b;--blue:#1f55b8;--green:#17723a;--sun:#ffd166;--hint:#ffd166;--turn:#ffd166;--turn-ink:#3a0f1c;--chosen:#fff;--btn:#8e3150;--btn-ink:#fff6f3;--btn-edge:#eaa3b6;--primary:#ffd166;--primary-ink:#3a0f1c;--sheet:#fff8f8;--sheet-ink:#2a1018;--sheet-muted:#5c3440;--sheet-btn:#f6e1e6;--focus:#fff}[data-theme=daylight]{--table:#fcf1f3;--table-2:#f6e2e7;--ink:#2a1018;--muted:#5c3440;--seat:#fff;--seat-edge:#a07080;--spot:#f3dfe4;--card:#fff;--card-edge:#50142873;--card-shadow:0 2px 4px #5014284d;--red:#b3213c;--black:#1a1a1a;--blue:#1b4fae;--green:#136b34;--sun:#b03a5b;--hint:#a32d4f;--turn:#a32d4f;--turn-ink:#fff;--chosen:#1a1a1a;--btn:#fff;--btn-ink:#2a1018;--btn-edge:#a07080;--primary:#a32d4f;--primary-ink:#fff;--sheet:#fff;--sheet-ink:#2a1018;--sheet-muted:#5c3440;--sheet-btn:#f8e8ec;--focus:#1b4fae}[data-theme=night]{--table:#0c0a09;--table-2:#000;--ink:#fff;--muted:#ece2d8;--seat:#1c1816;--seat-edge:#9a8c82;--spot:#1c1816;--card:#fff;--card-edge:#000;--card-shadow:0 0 0 1px #000;--red:#c8101c;--black:#000;--blue:#0d4fd6;--green:#00792f;--sun:#ffd23f;--hint:#ffd23f;--turn:#ffd23f;--turn-ink:#000;--chosen:#38d1ff;--btn:#221d1a;--btn-ink:#fff;--btn-edge:#9a8c82;--primary:#ffd23f;--primary-ink:#000;--sheet:#1b1715;--sheet-ink:#fff;--sheet-muted:#ece2d8;--sheet-btn:#332b27;--focus:#38d1ff}
