@font-face{font-family:Atkinson Hyperlegible Next;src:url(/games/sunroom-reversi/play/fonts/atkinson-hyperlegible-next.woff2)format("woff2");font-weight:200 800;font-display:swap}html{font-size:20px}html[data-text=large]{font-size:23px}html[data-text=xl]{font-size:26px}:root{--font:"Atkinson Hyperlegible Next", system-ui, sans-serif;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--turn-ms:.52s}*{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(--page) 50%, var(--page-2));background-color:var(--page);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:1200px;height:100%;margin:0 auto}button{font:inherit;color:inherit;cursor:pointer}:focus-visible{outline:4px solid var(--focus);outline-offset:2px}h1,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}.mini-disc{vertical-align:middle;border-radius:50%;flex:none;width:1.3em;height:1.3em;display:inline-block}.mini-disc--dark{background:var(--dark);box-shadow:0 0 0 2px var(--dark-edge)}.mini-disc--light{background:radial-gradient(circle, var(--light) 0 27%, var(--light-mark) 28% 44%, var(--light) 45%);box-shadow:0 0 0 2px var(--light-edge), 0 0 0 3.5px var(--light-mark)}.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.1rem;font-weight:800}.btn__sub{font-size:.85rem;font-weight:600}.btn--primary{background:var(--primary);color:var(--primary-ink);border-color:#0000}.btn--quiet{text-underline-offset:4px;background:0 0;border-color:#0000;min-height:56px;font-size:1rem;text-decoration:underline}.btn--huge{min-height:88px;font-size:1.4rem}.btn:active,.tool:active,.bar-btn:active{transform:scale(.97)}.bar-btn{border:2px solid var(--btn-edge);background:var(--btn);min-width:56px;min-height:56px;color:var(--btn-ink);border-radius:16px;justify-content:center;align-items:center;gap:4px;padding:0 10px 0 6px;font-size:.85rem;font-weight:800;display:inline-flex}.bar-btn svg{flex:none;width:24px;height:24px}.home{height:100%;padding:calc(var(--safe-top) + 12px) 18px calc(var(--safe-bottom) + 18px);flex-direction:column;gap:14px;display:flex;overflow-y:auto}.home__top{justify-content:flex-end;display:flex}.home__brand{text-align:center;justify-items:center;gap:6px;display:grid}.home__art{width:180px;height:140px;position:relative}.home__art .sun{width:100px;height:100px;fill:var(--sun);position:absolute;top:0;right:0}.home__board{background:var(--board);box-shadow:0 0 0 4px var(--frame);border-radius:10px;grid-template-columns:repeat(2,54px);gap:4px;padding:6px;display:grid;position:absolute;bottom:0;left:12px;transform:rotate(-6deg)}.home__board i{background:var(--board);width:54px;height:54px;box-shadow:inset 0 0 0 2px var(--grid);border-radius:4px;place-items:center;display:grid}.home__board .mini-disc{width:42px;height:42px}.logo{font-size:clamp(2.2rem,13vw,3.2rem);font-weight:800;line-height:1.05}.logo span{color:var(--sun);display:block}.home__tag{max-width:24em;color:var(--muted);margin:4px 0 0;font-size:1rem}.home__menu{gap:10px;width:100%;max-width:460px;margin:auto auto 0;display:grid}.home__nudge{text-align:center;margin:0;font-size:1rem;font-weight:700}.home__row{grid-template-columns:1fr 1fr;gap:8px;display:grid}.play{height:100%;padding-top:var(--safe-top);grid-template-rows:auto auto minmax(0,1fr) auto auto;grid-template-areas:"bar""score""board""status""tools";max-width:720px;margin:0 auto;display:grid;overflow:hidden}.bar{grid-area:bar;grid-template-columns:auto 1fr auto;align-items:center;gap:6px;padding:6px 8px 2px;display:grid}.bar h2{text-align:center;font-size:1.2rem}.bar__title{text-align:center;min-width:0;line-height:1.15;display:grid}.bar__main{font-size:1.05rem;font-weight:800}.bar__sub{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.8rem;font-weight:700;overflow:hidden}.score{grid-area:score;grid-template-columns:1fr 1fr;gap:8px;padding:10px 10px 4px;display:grid}.side{border:3px solid var(--btn-edge);background:var(--btn);color:var(--btn-ink);border-radius:16px;grid-template-columns:auto minmax(0,1fr);align-items:center;column-gap:8px;padding:.5rem 10px 4px;line-height:1.15;display:grid;position:relative}.side .mini-disc{grid-row:span 2;width:1.6rem;height:1.6rem}.side__name{text-overflow:ellipsis;white-space:nowrap;font-size:.9rem;font-weight:800;overflow:hidden}.side__count{white-space:nowrap;font-size:.9rem;font-weight:700}.side__count b{font-size:1.15rem}.side--turn{border-color:var(--turn);box-shadow:0 0 0 2px var(--turn)}.side__tag{background:var(--turn);color:var(--turn-ink);border-radius:99px;padding:0 8px;font-size:.75rem;font-weight:800;line-height:1.3rem;position:absolute;top:-.75rem;right:6px}.side__tag:empty{display:none}.board-wrap{grid-area:board;place-items:center;min-height:0;padding:4px 8px;display:grid;overflow:hidden}.board{--cell:40px;--label:22px;grid-template-columns:var(--label) calc(var(--cell) * 8 + 8px);grid-template-rows:var(--label) calc(var(--cell) * 8 + 8px);display:grid}.board__corner{grid-area:1/1}.board__cols,.board__rows{font-size:calc(var(--label) * .75);color:var(--label);font-weight:800;display:grid}.board__cols{grid-area:1/2;grid-template-columns:repeat(8, var(--cell));padding:0 4px}.board__rows{grid-area:2/1;grid-template-rows:repeat(8, var(--cell));padding:4px 0}.board__cols span,.board__rows span{place-items:center;display:grid}.board__grid{grid-area:2/2;grid-template-columns:repeat(8, var(--cell));grid-template-rows:repeat(8, var(--cell));background:var(--board);box-shadow:0 0 0 4px var(--frame), 0 6px 18px #0000004d;border-radius:10px;padding:4px;display:grid}.cell{width:var(--cell);height:var(--cell);box-shadow:inset 0 0 0 1px var(--grid);touch-action:manipulation;perspective:400px;background:0 0;border:0;place-items:center;padding:0;display:grid;position:relative}.cell:focus-visible{outline-offset:-4px;z-index:2}.disc{transform-style:preserve-3d;transition:transform var(--turn-ms) cubic-bezier(.45, .05, .35, 1);visibility:hidden;position:absolute;inset:9%}.disc--on{visibility:visible}.disc--light{transform:rotateY(180deg)}.disc--still{transition:none!important}.disc--new{animation:.28s cubic-bezier(.2,.7,.3,1) placed}.disc__face{backface-visibility:hidden;border-radius:50%;position:absolute;inset:0}.disc__face--dark{background:radial-gradient(circle at 35% 30%, #ffffff24, transparent 55%), var(--dark);box-shadow:0 0 0 2px var(--dark-edge), 0 2px 3px #00000059}.disc__face--light{background:radial-gradient(circle, var(--light) 0 22%, var(--light-mark) 23% 38%, var(--light) 39%);box-shadow:0 0 0 2px var(--light-edge), 0 2px 3px #00000059;transform:rotateY(180deg)}.last-dot{z-index:1;border-radius:50%;width:18%;height:18%;display:none;position:absolute}.cell--last .last-dot{display:block}.cell--last[data-c="1"] .last-dot{background:var(--light)}.cell--last[data-c="2"] .last-dot{background:var(--light-mark);width:12%;height:12%}.ring{border:max(3px, calc(var(--cell) * .085)) solid var(--legal);border-radius:50%;place-items:center;width:74%;height:74%;display:none}.cell--legal .ring{display:grid}.ring b{font-size:calc(var(--cell) * .42);color:var(--count);font-weight:800;line-height:1}.cell--chosen{box-shadow:inset 0 0 0 max(4px, calc(var(--cell) * .1)) var(--legal)}.cell--chosen .ring{background:var(--legal)}.cell--chosen .ring b{color:var(--legal-ink,#1b1400)}.status .place{width:min(100%,420px);min-height:56px}.cell--hint{box-shadow:inset 0 0 0 max(4px, calc(var(--cell) * .1)) var(--hint);animation:1s ease-in-out 3 glow}.cell--nope .ring,.cell--nope .disc{animation:.35s nope}@keyframes placed{0%{scale:.5}}@keyframes nope{25%,75%{translate:-8%}50%{translate:8%}}@keyframes glow{50%{box-shadow:inset 0 0 0 max(6px, calc(var(--cell) * .14)) var(--hint)}}.status{text-align:center;grid-area:status;place-items:center;height:calc(3.75em + 8px);margin:0;padding:2px 12px;font-size:1rem;font-weight:700;line-height:1.25;display:grid;overflow:hidden}.tools{padding:4px 10px calc(var(--safe-bottom) + 8px);grid-area:tools;grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;gap:8px;display:grid}.tool{border:2px solid var(--btn-edge);background:var(--btn);min-height:64px;color:var(--btn-ink);border-radius:16px;align-content:center;justify-items:center;gap:1px;padding:4px 2px;font-size:.85rem;font-weight:800;line-height:1.1;display:grid;position:relative}.tool svg{width:26px;height:26px}.tool--pass{background:var(--primary);color:var(--primary-ink);border-color:#0000}.tools__new{min-height:64px}.tool__tag{display:none}.tool--tagged .tool__tag{background:var(--primary);color:var(--primary-ink);white-space:nowrap;border-radius:999px;padding:0 7px;font-size:18px;font-weight:800;line-height:20px;display:block;position:absolute;top:-13px;left:50%;transform:translate(-50%)}@media (width>=760px) and (aspect-ratio>=11/10){.play{grid-template:"bar bar""board score""board status""board tools""board."1fr/minmax(0,1fr) minmax(320px,400px);column-gap:12px;max-width:none;padding-right:12px}.score{padding-top:18px}.status{height:calc(6.25em + 8px)}.tools{grid-template-columns:1fr 1fr;grid-auto-flow:row}}.sheet{z-index:1000;background:#0000008c;place-items:center;padding:14px;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.5rem;line-height:1.15}.sheet__card p{color:var(--sheet-muted);text-align:center;margin:0}.sheet__card a{color:var(--sheet-ink)}.sheet__card .sheet__big{color:var(--sheet-ink);font-size:1.15rem;font-weight:700}.sheet__card .btn:not(.btn--primary){background:var(--sheet-btn);color:var(--sheet-ink);border-color:#0000}.sheet__card .btn--quiet{background:0 0!important}.howto{--w:min(100vw - 60px, 448px);gap:14px;display:grid}.howto__aim{justify-items:center;gap:8px;display:grid}.sheet__card .howto__aim p{color:var(--sheet-ink)}.howto__pic{--cell:clamp(30px, calc((var(--w) - 70px) / var(--n)), 60px);justify-content:center;align-items:center;gap:6px;display:flex}.howto__pic--down{flex-direction:column}.howto__pic--down .howto__arrow{transform:rotate(90deg)}.howto__arrow{width:44px;height:44px;fill:var(--sheet-ink);flex:none}.hb{grid-template-columns:repeat(var(--cols), var(--cell));grid-auto-rows:var(--cell);background:var(--board);box-shadow:0 0 0 3px var(--frame);border-radius:10px;margin:3px;padding:4px;display:grid}.howto__steps{gap:14px;margin:0;padding:0;list-style:none;display:grid}.howto__step{border-top:2px solid var(--sheet-btn);grid-template-columns:auto 1fr;grid-template-areas:"num text""pic pic";align-items:center;gap:10px 12px;padding-top:14px;display:grid}.howto__num{background:var(--sheet-ink);width:44px;height:44px;color:var(--sheet);border-radius:50%;grid-area:num;place-items:center;font-size:1.3rem;font-weight:800;line-height:1;display:grid}.howto__step>.howto__pic{grid-area:pic}.sheet__card .howto__step p{color:var(--sheet-ink);text-align:left;grid-area:text}.howto__more ul{text-align:left;gap:8px;margin:0;padding-left:1.2em;display:grid}.won{gap:12px;display:grid}.won__sun{width:80px;height:80px;fill:var(--sun);justify-self:center;animation:.6s cubic-bezier(.2,.7,.3,1) both rise}.won__sun--other{fill:var(--sheet-muted)!important}.won__sun svg{width:100%;height:100%}.final{grid-template-columns:1fr 1fr;gap:8px;display:grid}.final>span{background:var(--board);color:#fff;border-radius:14px;justify-content:center;align-items:center;gap:8px;padding:10px 8px;font-size:1rem;font-weight:800;display:flex}[data-theme=contrast] .final>span{box-shadow:inset 0 0 0 2px var(--grid)}.final b{font-size:1.5rem}@keyframes fade{0%{opacity:0}}@keyframes rise{0%{opacity:0;transform:translateY(24px)}}.page{max-width:640px;height:100%;padding:calc(var(--safe-top) + 4px) 16px calc(var(--safe-bottom) + 24px);flex-direction:column;gap:12px;margin:0 auto;display:flex;overflow-y:auto}.page>*{flex-shrink:0}.page .bar{padding:8px 0}.page h3{color:var(--muted);margin-top:12px;font-size:1rem}.picks{gap:8px;display:grid}.pick{border:3px solid var(--btn-edge);background:var(--btn);min-height:64px;color:var(--btn-ink);text-align:left;border-radius:16px;gap:2px;padding:10px 14px;display:grid}.pick__name{font-size:1.1rem;font-weight:800}.pick__name small{margin-left:6px;font-size:.85rem;font-weight:700}.pick__blurb{font-size:.9rem;font-weight:500}.pick--on{border-color:var(--primary);box-shadow:inset 0 0 0 3px var(--primary)}.pick--on .pick__name:before{content:"✓ "}.btn--start{margin-top:8px}.statset{gap:8px;display:grid}.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:10px 14px;display:grid}.statset dt{font-size:.85rem}.statset dd{margin:0;font-size:1.4rem;font-weight:800}.statset dd small{font-size:.85rem;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:.85rem;font-weight:500;display:block}.toggle input{opacity:0;pointer-events:none;position:absolute}.toggle i{border:2px solid var(--btn-ink);background:0 0;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:minmax(0,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;justify-content:center;align-items:center;gap:8px;padding:4px;font-size:.95rem;font-weight:700;line-height:1.15;display:flex}.choice__opt--on{background:var(--primary);color:var(--primary-ink);box-shadow:inset 0 0 0 3px var(--primary-ink)}.choice--discs{grid-auto-flow:row}.choice--discs .choice__opt{justify-content:flex-start;padding:6px 12px}.label{margin:4px 0 -4px;font-size:1rem;font-weight:800}.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--on .look__name:before{content:"✓ "}.look__blurb{font-size:.85rem}.credits{text-align:center;color:var(--muted);margin:8px 0 0;font-size:.85rem}@media (prefers-reduced-motion:reduce){.disc{transition:none!important}.disc--new,.cell--hint,.cell--nope .ring,.cell--nope .disc,.sheet,.sheet__card,.won__sun{animation:none!important}}.btn--apart{margin-top:28px}*{overflow-anchor:none}:root,[data-theme=emerald]{--page:#08301f;--page-2:#052417;--ink:#fbf7ea;--muted:#d6e8dc;--label:#d6e8dc;--frame:#04190f;--board:#10804f;--grid:#075a37;--dark:#15181a;--dark-edge:#15181a;--light:#fbf6e6;--light-edge:#fbf6e6;--light-mark:#15181a;--legal:#ffd75e;--count:#fff;--hint:#fff;--turn:#ffd75e;--turn-ink:#15181a;--sun:#ffd75e;--btn:#0f4a32;--btn-ink:#fbf7ea;--btn-edge:#79b996;--primary:#ffd75e;--primary-ink:#15181a;--sheet:#fffbef;--sheet-ink:#15181a;--sheet-muted:#3f463f;--sheet-btn:#ebe4cc;--focus:#fff}[data-theme=daylight]{--page:#f6f2e4;--page-2:#ece5cf;--ink:#15181a;--muted:#364039;--label:#364039;--frame:#1c4f36;--board:#2f8f62;--grid:#1f6e4a;--dark:#15181a;--dark-edge:#15181a;--light:#fffdf6;--light-edge:#fffdf6;--light-mark:#15181a;--legal:#ffe36e;--count:#fff;--hint:#fff;--turn:#1c4f36;--turn-ink:#fff;--sun:#b07a00;--btn:#fff;--btn-ink:#15181a;--btn-edge:#5b7b67;--primary:#1c4f36;--primary-ink:#fff;--sheet:#fff;--sheet-ink:#15181a;--sheet-muted:#3f463f;--sheet-btn:#efe9d6;--focus:#0b4fae}[data-theme=contrast]{--page:#000;--page-2:#000;--ink:#fff;--muted:#f2f2f2;--label:#ffe14d;--frame:#ffe14d;--board:#000;--grid:#bdbdbd;--dark:#000;--dark-edge:#fff;--light:#fff;--light-edge:#fff;--light-mark:#000;--legal:#ffe14d;--count:#ffe14d;--hint:#38d1ff;--turn:#ffe14d;--turn-ink:#000;--sun:#ffe14d;--btn:#1a1a1a;--btn-ink:#fff;--btn-edge:#bdbdbd;--primary:#ffe14d;--primary-ink:#000;--sheet:#141414;--sheet-ink:#fff;--sheet-muted:#f2f2f2;--sheet-btn:#333;--focus:#38d1ff}
