.puzzle-board{position:relative;overflow:hidden;isolation:isolate;height:var(--board-height, clamp(420px, 65dvh, 900px));border:1px solid #bfcac3;border-radius:16px;background-color:#e4ebe4;background-image:radial-gradient(#bfcabe 1px,transparent 1px);background-size:15px 15px}.puzzle-stage{position:absolute;inset:0;touch-action:none;cursor:grab;-webkit-user-select:none;user-select:none}.board-tools{position:absolute;bottom:10px;right:10px;display:flex;gap:1px;padding:3px;border:1px solid #cad2c9;border-radius:10px;background:#fffef9;box-shadow:0 2px 6px #293e3014}.board-tools button{display:grid;place-items:center;min-width:42px;min-height:40px;padding:2px 8px;color:#213e37;border:0;border-radius:6px;background:transparent;font:600 20px/1 system-ui,sans-serif;cursor:pointer;touch-action:manipulation}.board-tools .board-fit{min-width:70px;margin-left:2px;font-size:13px}.board-tools button:hover{background:#e9efe9}.board-tools button:focus-visible{outline:2px solid #18705b;outline-offset:-2px}@media(max-width:600px){.puzzle-board{height:var(--board-height,clamp(330px,60dvh,680px));border-radius:12px}}:root{font-family:Yu Gothic UI,Hiragino Kaku Gothic ProN,Meiryo,sans-serif;color:#223e39;background:#f7f6f0;font-synthesis:none}*{box-sizing:border-box}header{background:#fffef8;border-bottom:1px solid #dedfd4}.bar,main{max-width:1240px;margin:auto;padding:0 clamp(18px,4vw,65px)}.bar{height:78px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:11px;font:700 27px Georgia,serif;letter-spacing:-1.3px}nav,.buttons,.counts,.gamebar,.heading,.caption{display:flex;align-items:center;gap:9px}button{cursor:pointer;font:inherit;font-size:14px;font-weight:650;color:inherit;border:1px solid #d1d8cb;background:#fffef9;padding:10px 14px;border-radius:8px}button:hover,button:focus-visible{background:#e8eee5}button:disabled{opacity:.55;cursor:default}button:focus-visible{outline:3px solid #b57842;outline-offset:2px}nav button{border:0;background:transparent}nav .active{background:#e6eee5}.intro{margin:clamp(30px,5vw,65px) 0 29px}.intro p{color:#68756c;margin:9px 0;font-size:15px}h1,h2,h3,p{margin:0}h1{font-size:clamp(29px,3.4vw,49px);line-height:1.3;letter-spacing:-.045em}h2{font-size:23px}h3{font-size:15px}.studio{display:grid;grid-template-columns:1.52fr 1fr;gap:24px;align-items:stretch}.print,.setup,article{border:1px solid #d9dfd1;border-radius:16px;background:#fffef8}.print{padding:14px;min-width:0}.mat{background:#e3e3d4;border-radius:8px;overflow:hidden;aspect-ratio:1.5;display:grid;place-items:center}.mat img,.overlay img{width:100%;height:100%;object-fit:contain}.caption{padding:17px 10px 7px;justify-content:space-between}.caption h2{font-size:20px;margin-top:3px;overflow-wrap:anywhere}.caption span,small,.note,footer{color:#65756b;font-size:12px}.caption span{white-space:nowrap;font-variant-numeric:tabular-nums}.setup{padding:clamp(20px,2.5vw,34px);display:flex;flex-direction:column}.setup h3{margin:22px 0 9px}.drop{display:grid;justify-items:center;gap:5px;border:1.5px dashed #9dac9a;background:#f5f7ef;padding:17px}.drop.over{background:#d8e9d4}.upload{color:#235947;font-size:24px;line-height:1.05;border-bottom:2px solid}.counts{gap:6px}.counts button{flex:1;font-size:18px;padding:10px 0}.counts [aria-pressed=true]{background:#e6eee0;border:2px solid #33694e;color:#215840}.primary{background:#17594c;color:#fff;border:0;margin-top:25px;padding:15px 18px}.primary:hover{background:#204c40}.primary span{float:right}.private{text-align:center;margin-top:12px}footer{margin:32px 0 20px;border-top:1px solid #daddd1;padding:17px 0;line-height:1.8}.heading{justify-content:space-between;margin:32px 0 22px;gap:18px}.heading h1{font-size:29px;overflow-wrap:anywhere}.gamebar,.buttons{flex-wrap:wrap}.gamebar{padding-bottom:12px;font-size:14px;gap:15px}.gamebar .buttons{margin-left:auto}.boardwrap{position:relative}.overlay{position:absolute;inset:0;background:#e4ebe4fa;border-radius:15px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:16px;padding:16px}.overlay img{max-height:80%;min-height:0}.note{margin:12px 0}.list{display:grid;gap:12px}article{display:flex;gap:18px;padding:16px;align-items:center}article img{width:118px;height:85px;object-fit:contain;background:#eef0e8}article h3{overflow-wrap:anywhere}article .buttons{margin-top:8px}.win,[role=alert]{background:#e1eacb;padding:15px;border-radius:8px;margin:15px 0}.win{animation:arrive .65s ease-out}@keyframes arrive{0%{opacity:0;transform:translateY(8px)}}[role=alert]{background:#ffe4cf;display:flex;justify-content:space-between}@media(max-width:740px){.studio{grid-template-columns:1fr}.bar{height:65px}.brand{font-size:21px;gap:5px}.brand svg{width:27px}.bar nav{gap:0}.bar nav button{font-size:12px;padding:8px}.intro{margin:24px 0 18px}.mat{aspect-ratio:1.85}.caption{padding:10px 4px 0}.setup h3{margin-top:15px}.gamebar .buttons{margin:0}.heading{flex-wrap:wrap}.studio{gap:12px}article{align-items:flex-start;flex-wrap:wrap}.buttons button{font-size:13px}.gamebar{gap:8px}.heading h1{font-size:24px}}.home-logo{padding:4px;border:0;background:transparent}.play-area{display:grid;gap:12px;min-width:0}.with-reference{grid-template-columns:minmax(135px,21%) minmax(0,1fr)}.reference{align-self:start;padding:12px;background:#fffef8;border:1px solid #cbcdbf;border-radius:9px;display:grid;gap:8px}.reference img{width:100%;max-height:230px;object-fit:contain}.boardwrap{min-width:0}.puzzle-board{background:#c5b79e;border:7px ridge #a58967;border-radius:9px}.lower-tools{display:flex;justify-content:space-between;align-items:center;gap:14px}.celebration{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none;background:#324b3526}.medal{pointer-events:auto;text-align:center;padding:25px 45px;background:#fff9e7;border:3px double #b08c51;border-radius:16px;box-shadow:0 8px 34px #22352f42;animation:bloom .55s ease-out}.medal span{color:#af7529;font-size:25px}.medal h2{font-size:40px}.medal p{margin:6px 0 14px}.gamebar [aria-pressed=true]{background:#d6e5d6}@keyframes bloom{0%{opacity:0;transform:scale(.72)}to{opacity:1;transform:scale(1)}}@media(max-width:740px){.with-reference{grid-template-columns:1fr}.reference{display:flex;align-items:center;gap:14px}.reference img{height:85px;width:auto;max-width:70%}.with-reference .puzzle-board{--board-height:clamp(280px,49dvh,460px)}}@media(prefers-reduced-motion:reduce){.medal,.win{animation:none}}.puzzle-board{border:1px solid #b19b77;background-color:#cfbda0;background-image:repeating-linear-gradient(2deg,#af97720c 0 2px,transparent 2px 9px)}.floating-reference{position:absolute;z-index:2;max-width:calc(100% - 8px);box-sizing:border-box;background:#fffdf5;border:1px solid #a99b81;border-radius:8px;padding:6px;box-shadow:0 4px 14px #3f322636;touch-action:none;-webkit-user-select:none;user-select:none;cursor:grab}.floating-reference:active{cursor:grabbing}.floating-reference>div{display:flex;align-items:center;gap:3px}.floating-reference strong{font-size:12px;margin-right:auto}.floating-reference button{padding:3px 6px;min-width:26px}.floating-reference canvas{display:block;width:100%;height:auto;max-height:34dvh;object-fit:contain;margin-top:4px}.floating-reference small{font-size:10px}.overlay,.celebration{z-index:3}.save-help{font-size:13px;line-height:1.6;color:#465a50;margin:8px 0}.storage-warning{background:#fff0cf;color:#694013;border:1px solid #d5ad65;border-left:5px solid #a36a1c;border-radius:7px;padding:13px 18px;font-size:14px}.restore-home{margin-top:12px}.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,250px),1fr));gap:20px;align-items:start}.save-card{display:block;padding:0;min-width:0;box-shadow:0 4px 14px #3145370a}.save-cover{position:relative;background:#e8e5d9;border-radius:15px 15px 0 0;overflow:hidden}.save-cover img{display:block;object-fit:cover;width:100%;height:auto;aspect-ratio:1.95}.save-cover span{position:absolute;bottom:10px;left:12px;background:#fffff2ef;color:#234d3e;border-radius:20px;padding:3px 10px;font-size:12px;font-weight:700}.save-body{padding:17px}.save-body h3{font-size:18px}.save-body p{font-size:13px;color:#58695c;margin:6px 0 18px}.save-body i{margin:0 5px}.save-actions{display:flex;align-items:center;justify-content:space-between}.resume-save{background:#205a4d;color:#fff;min-width:90px}.resume-save:hover,.resume-save:focus-visible{background:#19483e}.save-options{position:relative}.save-options summary{list-style:none;cursor:pointer;padding:10px 14px;border-radius:8px;color:#456454}.save-options summary:hover{background:#e7eee6}.save-options summary::-webkit-details-marker{display:none}.save-options>div{position:absolute;z-index:3;right:0;bottom:100%;display:grid;min-width:180px;padding:5px;background:#fffef8;border:1px solid #d4dace;border-radius:10px;box-shadow:0 7px 20px #223c3029}.save-options button{text-align:left;border:0}.save-options button:last-child{color:#954033}.name-field{display:grid;gap:7px;margin-top:18px;font-weight:700;font-size:15px}.name-field input{border:1px solid #a9b6aa;border-radius:7px;padding:10px 12px;font:inherit;font-weight:400;background:#fffefa;color:#223e39;min-width:0}.card-progress{display:flex;align-items:center;gap:12px;color:#456451;font-size:12px;margin:0 0 16px}.card-progress progress{flex:1;width:40px;height:6px;accent-color:#276c57}.lower-tools{margin-top:14px}.animals{margin-top:32px;scroll-margin:18px}.animals:focus{outline:none}.animal-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(160px,44%),1fr));gap:12px;margin:16px 0}.animal-grid button{padding:0;overflow:hidden;text-align:left;background:#fffef8}.animal-grid img{width:100%;display:block;aspect-ratio:1.55;object-fit:cover}.animal-grid strong{display:block;padding:10px 12px}.animals details{font-size:13px;color:#496451}.animals summary{cursor:pointer}.animals li{overflow-wrap:anywhere;margin-bottom:6px}.win button{margin-left:10px}.floating-reference .resize-grip{position:absolute;right:0;bottom:0;width:26px;height:24px;min-width:0;padding:0;border:0;background:#fffdf5;color:#52675a;cursor:nwse-resize;touch-action:none}.floating-reference canvas{max-height:none}.floating-reference{max-width:min(calc(100% - 8px),var(--reference-limit,100%))}:root{--ink:#273b60;--pool:#087b84;--paper:#fffdf6;color:var(--ink);font-family:Hiragino Maru Gothic ProN,Yu Gothic UI,Meiryo,sans-serif;background:#fff7e4;background-image:radial-gradient(#e8c989 1px,transparent 1.4px);background-size:18px 18px}header{background:#fffdf6;border-bottom:4px solid #f5be54}.brand{font-family:inherit;letter-spacing:-.055em}.bar nav button,.gamebar button,.heading button,.lower-tools button,.win button{background:#fffefa;border:2px solid #94bdd1;border-radius:18px;min-height:44px}.intro{isolation:isolate;position:relative;overflow:hidden;background:#c8eff5;padding:clamp(20px,3vw,38px);border:2px solid #8bcbd6;border-radius:30px 54px 30px 30px;margin:24px 0;box-shadow:0 5px #a8dbe1}.intro h1{font-weight:900;line-height:1.18;color:#234e70}.intro p{color:#284659;max-width:60ch;font-weight:600;line-height:1.8;margin:12px 0 0}.intro h1,.intro p{position:relative;z-index:1;width:74%}.rainbow{position:absolute;right:5%;bottom:-65px;width:clamp(130px,21vw,270px);aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,transparent 0 29%,#49ab9f 30% 40%,#ffda69 41% 51%,#ed926c 52% 62%,#cf6790 63% 72%,transparent 73%);transform:rotate(-13deg)}.print,.setup,.save-card,.animal-grid button{border:2px solid #dbc99f;border-radius:24px;background:#fffdf7;box-shadow:0 5px #eadbb9}.mat{border-radius:15px;background:#fff1c6}.setup h2,.animals h2{color:#215677}.drop{border:2px dashed #68aaba;border-radius:18px;background:#eefafb}.counts button,.solo,.name-field input{border-radius:14px;min-height:46px}.counts [aria-pressed=true]{background:#ffe69a;border-color:#976a1c;color:#584013}.primary,.solo{font-size:18px;font-weight:800}.primary{background:#08747d;border-radius:20px;box-shadow:0 4px #15515c}.primary:hover,.primary:focus-visible{background:#075f67}.solo{margin-top:12px;background:#fff4da;border:2px solid #dfbc79}.room-help{margin-top:15px;font-size:14px;line-height:1.7}.room-help summary{cursor:pointer}.room-help p{margin-top:6px}.gamebar,.win{background:#fffdf7;padding:12px;border:2px solid #dfcfa8;border-radius:20px;margin-bottom:12px}.puzzle-board{border:4px solid #c18e57;border-radius:20px}.medal{background:#fff5c7;border:4px solid #f3b74d;border-radius:30px}.animals{padding-bottom:32px}@media(max-width:600px){.intro h1{width:90%}.intro p{width:100%;max-width:100%;background:#c8eff5ed;border-radius:8px}.rainbow{right:-34px;top:19px;width:110px}.bar{padding-inline:10px}.brand{font-size:clamp(16px,4.5vw,21px)}.intro{margin-top:18px}.setup,.print{border-radius:20px}}
