@font-face{font-family:Andika;src:url(fonts/Andika-Regular.ttf)}@font-face{font-family:Andika;font-weight:bold;src:url(fonts/Andika-Bold.ttf)}
*{box-sizing:border-box}body{margin:0;font-family:Andika,sans-serif;background:#fdf6e3;color:#233;-webkit-tap-highlight-color:transparent}
#download-book{position:fixed;top:8px;right:8px;z-index:9;background:#ffd23f;color:#222;font-weight:bold;padding:10px 14px;border-radius:22px;text-decoration:none;box-shadow:0 2px 6px #0003;min-height:44px;display:flex;align-items:center;font-size:15px}
.top{background:#0f7c80;color:#fff;padding:14px 16px;font-size:22px;font-weight:bold;padding-right:240px}
#app{max-width:900px;margin:0 auto;padding:14px}
.foot{text-align:center;font-size:13px;color:#789;padding:10px 0 20px}
h1{font-size:44px;color:#0f7c80;margin:10px 0 0;text-align:center}h2{text-align:center;color:#c99700;margin:4px 0}
.desc{text-align:center;font-size:18px}
button,.btn{font-family:inherit;font-size:18px;min-height:48px;min-width:48px;border-radius:14px;border:3px solid #0f7c80;background:#fff;color:#0f7c80;font-weight:bold;cursor:pointer;padding:6px 14px;touch-action:manipulation}
.big{display:block;margin:14px auto;background:#0f7c80;color:#fff;font-size:24px;padding:10px 40px}
.pdfbtn{display:block;text-align:center;margin:8px auto;width:max-content;background:#ffd23f;border-color:#c99700;color:#222;text-decoration:none;line-height:36px}
.toc{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:8px}
.toc button{width:100%;text-align:left;border-width:2px}.toc .done:after{content:" ✔";color:#1a9a3a}
.ph{display:flex;justify-content:space-between;align-items:center}.ph h3{margin:6px 0;font-size:24px;color:#0f7c80}
.tick{font-size:40px;color:#1a9a3a;visibility:hidden}.tick.on{visibility:visible}
.ins{font-size:19px;margin:4px 0 12px}
.nav{display:flex;justify-content:center;align-items:center;gap:10px;margin:18px 0}.nav span{font-size:20px;font-weight:bold;min-width:70px;text-align:center}
.grid{display:grid;grid-template-columns:repeat(8,1fr);gap:4px;max-width:480px;margin:0 auto;touch-action:manipulation;user-select:none}
.cell{aspect-ratio:1;background:#fff;border:2px solid #0f7c80;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:clamp(18px,5vw,30px);font-weight:bold;cursor:pointer}
.cell.sel{background:#ffd23f}.cell.found{background:#9be2c9}
.wl{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:14px}.wl div{display:flex;align-items:center;gap:6px;font-size:22px;font-weight:bold;background:#fff;border-radius:12px;padding:4px 10px}
.wl img{width:44px;height:44px}.wl .got{text-decoration:line-through;color:#1a9a3a}
.pal{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;position:sticky;top:0;background:#fdf6e3;padding:6px;z-index:5}
.sw{width:48px;height:48px;border-radius:50%;border:3px solid #333;padding:0}.sw.on{outline:4px solid #0f7c80;outline-offset:2px}
.legend{text-align:center;font-size:17px;margin-bottom:8px}.legend span{display:inline-block;margin:2px 6px;padding:2px 8px;border-radius:8px;border:2px solid #333}
.cgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
.card{background:#fff;border-radius:14px;border:2px solid #cbb;padding:6px;text-align:center}
.cw{position:relative;width:100%;aspect-ratio:1}.cw canvas{position:absolute;inset:0;width:100%;height:100%;touch-action:none}
.cw img{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.card .w{font-size:22px;font-weight:bold}.card button{font-size:14px;min-height:44px}
.cols{display:grid;grid-template-columns:1fr 1fr;gap:12px 30px;max-width:560px;margin:0 auto}
.it{background:#fff;border:3px solid #0f7c80;border-radius:14px;min-height:80px;display:flex;align-items:center;justify-content:center;font-size:30px;font-weight:bold;cursor:pointer;touch-action:manipulation;position:relative}
.it img{width:70px;height:70px}.it.sel{background:#ffd23f}.it.ok{background:#9be2c9;border-color:#1a9a3a}.it.ok:after{content:"✔";position:absolute;top:2px;right:8px;font-size:20px;color:#1a9a3a}
.tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;max-width:560px;margin:0 auto}.tiles .it{aspect-ratio:1}
@media(max-width:480px){.tiles{grid-template-columns:repeat(3,1fr)}.top{font-size:18px;padding-right:16px;padding-top:62px}h1{font-size:34px}.it img{width:56px;height:56px}}
.shake{animation:sh .4s}@keyframes sh{25%{transform:translateX(-6px)}75%{transform:translateX(6px)}}
@media print{#download-book,.nav,.pal{display:none}}
.tg h4{margin:14px 0 6px;font-size:20px;color:#0f7c80;border-bottom:2px solid #0f7c80}
.cw.paint{cursor:pointer;touch-action:manipulation}.cw.paint svg{width:100%;height:100%;display:block}
.sw.er{font-size:22px;color:#333}
.wgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.wrow{display:flex;align-items:center;gap:10px;background:#fff;border:2px solid #cbb;border-radius:14px;padding:8px}.wrow img{width:72px;height:72px}
.lts{display:flex;gap:6px}.lts .kl,.lts .lb{width:48px;height:56px;font-size:34px;font-weight:bold;text-align:center;font-family:inherit;line-height:56px}
.lb{border:3px solid #0f7c80;border-radius:10px;padding:0;background:#fffbe8;color:#233}.lb.bad{border-color:#e53935;background:#fde}
.wok{font-size:30px;color:#1a9a3a;visibility:hidden}.wrow.good{border-color:#1a9a3a;background:#effaf3}.wrow.good .wok{visibility:visible}
.gstart{text-align:center}.gq{font-size:24px;font-weight:bold}.pc{font-size:32px;width:72px;height:72px;margin:6px}
.gbar{display:flex;flex-wrap:wrap;gap:6px;justify-content:center}.pl{border:4px solid;border-radius:12px;padding:4px 10px;font-weight:bold;background:#fff;opacity:.6}.pl.cur{opacity:1;background:#ffd23f;transform:scale(1.08)}
.gctl{display:flex;justify-content:center;align-items:center;gap:14px}.die{font-size:64px;line-height:1;min-width:80px;text-align:center}.die small{font-size:34px;font-weight:bold;margin-left:4px}
.roll{margin:8px 0}.say{background:#fff;border:4px solid #0f7c80;border-radius:18px;text-align:center;padding:10px;margin:8px auto;max-width:420px}
.say p{font-size:22px;margin:4px;font-weight:bold}.say .ex{font-size:18px;color:#555}.say img{width:120px;height:120px}.sw2{font-size:56px;font-weight:bold;color:#0f7c80}.wn{font-size:36px!important;color:#1a9a3a}
.bwrap{overflow-x:auto;padding-bottom:6px}.home0{font-weight:bold;min-height:34px;display:flex;align-items:center;gap:6px}.home0 .tok{position:static}
.board{position:relative;width:100%;min-width:420px;max-width:760px;aspect-ratio:6/5;margin:0 auto;background:#fff;border:3px solid #233}
.sq{position:absolute;width:16.667%;height:20%;border:1px solid #233;text-align:center;overflow:hidden;background:#fff}.sq:nth-child(odd){background:#f3efe2}
.sq .sn{position:absolute;top:1px;left:4px;font-size:13px;font-weight:bold}.sq img{width:46%;height:46%;margin-top:14%}.sq b{display:block;font-size:clamp(13px,2.6vw,20px);line-height:1.1}
.gov{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.tok{position:absolute;width:30px;height:30px;border-radius:50%;border:3px solid #fff;box-shadow:0 0 0 2px #233;color:#233;font-weight:bold;display:flex;align-items:center;justify-content:center;font-size:15px;transition:left .3s,top .3s;z-index:3}
