:root{--gap:clamp(3px,.8vw,12px);--pad:clamp(4px,1.2vw,16px);--bar:52px;--accent:#ffd54a;--ink:#eaf4e6;--glass:rgba(8,22,12,.62);--line:rgba(255,255,255,.14);color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;background:#0f2d17;scrollbar-width:thin;scrollbar-color:#6aa84f rgba(0,0,0,.35)}html.fs,html.pfs{overflow:hidden}body{margin:0;min-height:100vh;min-height:100svh;color:var(--ink);font:16px/1.5 system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;overscroll-behavior-y:none;touch-action:manipulation}:lang(ja){font-family:Hiragino Sans,Hiragino Kaku Gothic ProN,Noto Sans JP,Yu Gothic UI,Yu Gothic,Meiryo,system-ui,sans-serif;line-break:strict;word-break:auto-phrase}:lang(ko){font-family:Apple SD Gothic Neo,Noto Sans KR,Malgun Gothic,Nanum Gothic,system-ui,sans-serif;word-break:keep-all}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:#0000004d}::-webkit-scrollbar-thumb{background:#6aa84f;border-radius:6px}::-webkit-scrollbar-thumb:hover{background:#8bd16a}.sr{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}[hidden]{display:none!important}#bg{position:fixed;inset:0;z-index:-1;background:#1b5f2b url(../img/bg-emerald.svg) center/cover no-repeat}html[data-bg=royal] #bg{background-color:#173d80;background-image:url(../img/bg-royal.svg)}html[data-bg=wine] #bg{background-color:#611621;background-image:url(../img/bg-wine.svg)}html[data-bg=slate] #bg{background-color:#2a363b;background-image:url(../img/bg-slate.svg)}#bar{height:var(--bar);display:flex;align-items:center;gap:8px;padding:0 max(var(--pad),env(safe-area-inset-right)) 0 max(var(--pad),env(safe-area-inset-left));padding-top:env(safe-area-inset-top);box-sizing:content-box;background:linear-gradient(#0000009e,#00000057);border-bottom:1px solid var(--line)}#bar h1{flex:1 1 auto;min-width:0;margin:0;font-size:clamp(14px,3.8vw,18px);font-weight:700;letter-spacing:.03em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;gap:8px}#bar h1{padding-left:10px;border-left:3px solid var(--accent)}#stats{display:flex;gap:6px;font-size:13px;white-space:nowrap;font-variant-numeric:tabular-nums;margin-left:auto}#bar h1+#stats{margin-left:0}#stats>span{padding:4px 10px;background:#00000059;border:1px solid var(--line);border-radius:999px}#stats b{display:inline-block;min-width:2.6ch;text-align:right;font-weight:700;color:#fff}#stats .lbl{opacity:.75}.ib{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-width:40px;height:40px;padding:0 12px;font:inherit;font-size:13px;font-weight:600;color:#fff;cursor:pointer;background:#ffffff1a;border:1px solid var(--line);border-radius:12px;transition:background .15s,transform .1s;-webkit-tap-highlight-color:transparent}.ib:hover:not(:disabled){background:#ffffff38}.ib:active:not(:disabled){transform:scale(.96)}.ib.pri{background:linear-gradient(#2fbf3a,#1f9a2b);border-color:#ffffff4d}.ib.pri:hover:not(:disabled){background:linear-gradient(#3bd047,#27ad34)}.ib:focus-visible,.btn:focus-visible,.x:focus-visible,#info summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.ib:disabled{opacity:.38;cursor:default}.ib svg{width:22px;height:22px;flex:none;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.ib .t,.ib .i-exit,.fs .ib .i-enter,.pfs .ib .i-enter{display:none}.fs .ib .i-exit,.pfs .ib .i-exit{display:block}@media(min-width:1040px){.ib .t{display:inline}}@media(max-width:480px){#stats .lbl{display:none}#stats>span{padding:4px 8px}#stats{gap:4px}}@media(max-width:599px){#bar h1{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}}#stage{container:stage/inline-size;padding-top:var(--pad)}#table{--cw:min( calc((100cqw - 2*var(--pad) - 7*var(--gap))/8), calc((100svh - var(--bar) - env(safe-area-inset-top) - 2*var(--pad) - 2*var(--gap))/6.6), 120px);--ch:calc(var(--cw)*1.4);--off:calc(var(--ch)*.26);width:calc(var(--cw)*8 + var(--gap)*7);margin:0 auto;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}#top,#cols{display:grid;grid-template-columns:repeat(8,var(--cw));gap:var(--gap)}#top{height:var(--ch);margin-bottom:var(--gap)}#cols{height:calc(var(--ch)*3.7)}.slot,.col:before{content:"";display:block;position:relative;width:var(--cw);height:var(--ch);border-radius:calc(var(--cw)*.09);background:#00000042;border:1.5px dashed rgba(255,255,255,.2)}.col{position:relative;width:var(--cw);height:100%}.col:before{position:absolute;left:0;top:0}.slot[data-k=found]:after{content:"A";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font:700 calc(var(--cw)*.5)/1 Georgia,"Times New Roman",serif;color:#fff3;pointer-events:none}.slot[data-k=cell]:after{content:"";position:absolute;left:50%;top:50%;width:28%;aspect-ratio:1;transform:translate(-50%,-50%);border:2px solid rgba(255,255,255,.14);border-radius:50%}.slot.over,.col.over:before{border-style:solid;border-color:var(--accent);background:#ffd54a29}.card{position:absolute;left:0;top:0;width:var(--cw);height:var(--ch);border-radius:calc(var(--cw)*.09);background:linear-gradient(160deg,#fff 40%,#ececec);border:1px solid rgba(0,0,0,.28);box-shadow:0 1px 3px #0000008c;color:#16181d;font:700 calc(var(--cw)*.27)/1 Arial,"Helvetica Neue",Helvetica,sans-serif;cursor:grab;touch-action:none}.col .card{top:calc(var(--i,0)*var(--off))}.card.r{color:#d3182b}.card .cn{position:absolute;left:.24em;top:.15em;font-weight:700;white-space:nowrap;letter-spacing:-.03em}.card .cn i{display:inline-block;width:.86em;height:.86em;margin-left:.08em;vertical-align:-.08em}.card .cn.b{inset:auto .24em .15em auto;transform:rotate(180deg)}.s0{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%2316181d' d='M12 2a4.5 4.5 0 0 0-4.2 6.1A4.5 4.5 0 1 0 10.5 16c.1 2-.6 3.6-2 5h7c-1.4-1.4-2.1-3-2-5a4.5 4.5 0 1 0 2.7-7.9A4.5 4.5 0 0 0 12 2z'/%3E%3C/svg%3E")}.s1{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23d3182b' d='M12 1.5l8 10.5-8 10.5-8-10.5z'/%3E%3C/svg%3E")}.s2{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23d3182b' d='M12 21.5S2 15.2 2 8.6C2 5.400 4.400 3 7.300 3c2 0 3.800 1.100 4.700 2.800C12.900 4.100 14.700 3 16.700 3 19.600 3 22 5.400 22 8.600c0 6.600-10 12.900-10 12.900z'/%3E%3C/svg%3E")}.s3{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%2316181d' d='M12 1.5C9 7 2.500 10 2.500 15c0 3 2.300 5 5 5 1.600 0 3-.8 3.600-2-.2 1.700-.8 3-2 4h6.800c-1.200-1-1.800-2.300-2-4 .6 1.200 2 2 3.600 2 2.700 0 5-2 5-5 0-5-6.500-8-9.500-13.500z'/%3E%3C/svg%3E")}.card i,.card .pip,.card .pp{background-repeat:no-repeat;background-position:center;background-size:contain}.card .pip{position:absolute;left:50%;top:60%;width:2.6em;height:2.6em;transform:translate(-50%,-50%)}.card .pips{display:none;position:absolute;inset:42% 17% 11%}.card .pp{position:absolute;width:.98em;height:.98em;transform:translate(-50%,-50%)}.card .pp.sm{width:.82em;height:.82em}.card .pp.d{transform:translate(-50%,-50%) rotate(180deg)}.card .face{display:none;position:absolute;left:50%;top:30%;height:66%;width:auto;transform:translate(-50%);pointer-events:none}@container stage (min-width:600px){.card.f .face{display:block}.card.f .pip,.card.f .cn.b{display:none}.card.n .pips{display:block}.card.n .pip,.card.n .cn.b{display:none}}.card.drag{z-index:1000;cursor:grabbing;transition:none!important;box-shadow:0 12px 24px #0000008c}.card.sel{box-shadow:0 0 0 3px var(--accent),0 3px 8px #0009}.card.shake{animation:shake .28s}@keyframes shake{25%{translate:-5px 0}75%{translate:5px 0}}dialog{width:min(92vw,500px);max-height:88vh;max-height:88svh;overflow:auto;margin:auto;padding:0;color:var(--ink);background:#10261a;border:1px solid rgba(255,255,255,.18);border-radius:20px;box-shadow:0 24px 60px #0009;scrollbar-width:thin;scrollbar-color:#6aa84f rgba(0,0,0,.35)}dialog[open]{animation:pop .18s ease-out}@keyframes pop{0%{opacity:0;transform:translateY(8px) scale(.97)}}dialog::backdrop{background:#020a05b3}.dlg-in{padding:18px 20px 20px}.dlg-in>header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 14px}.dlg-in h2{margin:0;font-size:1.25rem;line-height:1.3}.x{flex:none;width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;font-size:22px;line-height:1;color:#fff;cursor:pointer;background:#ffffff1a;border:1px solid var(--line);border-radius:50%}.x:hover{background:#ffffff38}.dlg-in p{margin:0 0 14px}.dlg-in h3{margin:18px 0 6px;font-size:1rem}.dlg-in fieldset{margin:14px 0 0;padding:10px 14px 12px;border:1px solid var(--line);border-radius:12px}.dlg-in legend{padding:0 6px;font-weight:700;font-size:.95rem}.dlg-in label{display:flex;align-items:center;gap:10px;padding:7px 0;cursor:pointer}.dlg-in input[type=checkbox]{width:20px;height:20px;accent-color:#3bd047;flex:none}.btns{display:grid;gap:10px}.btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:48px;padding:10px 16px;font:inherit;font-size:1rem;font-weight:700;color:#fff;cursor:pointer;border:1px solid rgba(255,255,255,.28);border-radius:12px;background:linear-gradient(#2fbf3a,#1f9a2b);box-shadow:0 2px 6px #00000059;transition:filter .15s,transform .1s}.btn:hover{filter:brightness(1.1)}.btn:active{transform:scale(.98)}.btn.sec{background:#ffffff1a;border-color:var(--line);box-shadow:none}.btn.sec:hover{background:#fff3;filter:none}.warnbox{padding:10px 12px;font-size:.92rem;background:#ffd54a1f;border:1px solid rgba(255,213,74,.4);border-radius:10px;color:#ffe9a3}.field{margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}.field label{display:block;padding:0 0 8px;font-weight:700;font-size:.95rem}.inline{display:flex;gap:10px}.inline .btn{width:auto;flex:none;padding:10px 20px}input[type=number]{flex:1;min-width:0;height:48px;padding:0 14px;font:inherit;font-size:1rem;color:#fff;background:#00000059;border:1px solid var(--line);border-radius:12px;-moz-appearance:textfield}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]:focus{outline:2px solid var(--accent);outline-offset:1px}.err{margin:8px 0 0!important;font-size:.88rem;color:#ff9c94}.bgs{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.bgs label{position:relative;display:block;padding:0}.bgs input{position:absolute;opacity:0;pointer-events:none}.bgs img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;border-radius:10px;border:2px solid transparent;box-shadow:0 2px 6px #0006}.bgs input:checked+img{border-color:var(--accent)}.bgs input:focus-visible+img{outline:2px solid #fff;outline-offset:2px}.deal{margin:14px 0 0!important;text-align:center;font-size:.85rem;opacity:.75}.help ol,.help ul{margin:0 0 .6em;padding-left:1.3em}.help li{margin-bottom:.55em;line-height:1.6}.help li p{margin:0}.help li h3{font-size:.98rem;margin:0 0 .1em}#dlgWin .dlg-in,#dlgStuck .dlg-in{text-align:center}#dlgWin h2{font-size:1.6rem;color:var(--accent)}#dlgWin .sub{display:flex;justify-content:center;gap:10px;margin:0 0 16px;flex-wrap:wrap}#dlgWin .sub span{padding:6px 14px;background:#00000059;border:1px solid var(--line);border-radius:999px}#dlgStuck header{justify-content:center}#toast{position:fixed;left:50%;bottom:calc(14px + env(safe-area-inset-bottom));z-index:50;max-width:92vw;padding:10px 16px;border-radius:999px;background:#000000e6;border:1px solid var(--line);font-size:14px;text-align:center;opacity:0;transform:translate(-50%,8px);pointer-events:none;transition:opacity .2s,transform .2s}#toast.show{opacity:1;transform:translate(-50%)}#info{width:min(860px,calc(100% - 24px));margin:28px auto 0;padding:22px clamp(14px,3vw,28px);background:var(--glass);border:1px solid var(--line);border-radius:18px;line-height:1.8}#info h2{margin:1.6em 0 .5em;font-size:1.3rem;line-height:1.4}#info h2:first-child{margin-top:0}#info h3{margin:0 0 .2em;font-size:1.05rem}#info p{margin:0 0 1em}#info ol,#info ul{margin:0 0 1em;padding-left:1.4em}#info li{margin-bottom:.7em}#info a,footer a{color:#9fd3ff}#info details{margin:0 0 .6em;padding:.6em .9em;background:#ffffff12;border-radius:10px}#info summary{cursor:pointer;font-weight:700}#info details p{margin:.6em 0 0}footer{width:min(860px,calc(100% - 24px));margin:0 auto;padding:18px 0 calc(24px + env(safe-area-inset-bottom));font-size:.85rem;line-height:1.7;text-align:center;opacity:.9}.fs #info,.pfs #info,.fs footer,.pfs footer{display:none}.pfs #app{position:fixed;inset:0;overflow:hidden;z-index:10}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}.langs a{margin:0 6px}footer .btn{display:inline-flex;width:auto;min-height:44px;padding:8px 22px}.c4 .s0{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%2312803a' d='M12 2a4.5 4.5 0 0 0-4.2 6.1A4.5 4.5 0 1 0 10.5 16c.1 2-.6 3.6-2 5h7c-1.4-1.4-2.1-3-2-5a4.5 4.5 0 1 0 2.7-7.9A4.5 4.5 0 0 0 12 2z'/%3E%3C/svg%3E")}.c4 .s1{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%231565d0' d='M12 1.5l8 10.5-8 10.5-8-10.5z'/%3E%3C/svg%3E")}.c4 .card.u0{color:#12803a}.c4 .card.u1{color:#1565d0}.swap .slot[data-k=found]{order:2}.swap .slot[data-k=cell]{order:1}.nostats #stats{visibility:hidden}.noanim *,.noanim *:before,.noanim *:after{animation:none!important;transition:none!important}.card.hint{z-index:5;animation:pulse .9s ease-in-out infinite}@keyframes pulse{0%,to{box-shadow:0 0 0 3px #ffd54a,0 0 8px 2px #ffd54a80}50%{box-shadow:0 0 0 4px #ffd54a,0 0 22px 7px #ffd54af2}}.card.hintdst{box-shadow:0 0 0 3px #6ee46e,0 0 16px 4px #6ee46eb3}.slot.hintdst,.col.hintdst:before{border-style:solid;border-color:#6ee46e;background:#6ee46e33}@media(max-width:420px){.ib{min-width:36px;height:40px;padding:0 6px}#bar{gap:5px}}.dlg-in .opt-note{margin:0;padding:0 0 6px 30px;font-size:.82rem;opacity:.7;line-height:1.4}.ib{white-space:nowrap;flex:none}#stats{flex:none}.btn{text-align:center;overflow-wrap:anywhere}
