:root{color-scheme:light;--paper:#fff9ed;--ink:#554839;--muted:#8b7b67;--mint:#77b89d;--mint-dark:#2d705b;--coral:#ed9779;--line:#e9dfcf;--white:#fffefb;font-family:"Hiragino Maru Gothic ProN","BIZ UDPGothic","Yu Gothic",Meiryo,sans-serif;color:var(--ink);background:var(--paper)}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;-webkit-text-size-adjust:100%}body{background:radial-gradient(circle at 15% 10%,#fff0dc 0,transparent 42%),var(--paper);font-weight:600}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button,a,input{touch-action:manipulation}button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:3px solid #247567;outline-offset:4px}button{border:0}a{color:var(--mint-dark)}img{max-width:100%;display:block}svg{display:block}h1,h2,p,figure{margin:0}[hidden]{display:none!important}.icon-library{position:absolute;width:0;height:0;overflow:hidden}.screen{margin:auto;width:100%;max-width:520px}.selection-screen{padding:max(20px,env(safe-area-inset-top)) 20px max(24px,env(safe-area-inset-bottom));min-height:100svh}.brand-small{font-size:13px;font-weight:800;letter-spacing:.04em;text-decoration:none;color:var(--mint-dark)}.age-pill{font-size:11px;white-space:nowrap;padding:6px 10px;border-radius:30px;background:#eaf3e9;color:var(--mint-dark)}.selection-top,.intro-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.selection-heading{text-align:center;padding:25px 0 22px;position:relative}.heading-puzzle{width:40px;height:40px;position:absolute;left:7%;top:40px;color:var(--mint);transform:rotate(-13deg);opacity:.7}.eyebrow{font-size:11px;font-weight:800;letter-spacing:.09em;color:var(--mint-dark);margin-bottom:6px}.selection-heading h1,.intro-hero h1{font-size:clamp(26px,7vw,33px);line-height:1.35;letter-spacing:.035em;font-weight:900}.selection-heading>p:last-child{margin-top:13px;font-size:14px;color:var(--muted)}.picture-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.picture-card{padding:8px 8px 12px;position:relative;border-radius:22px;background:var(--white);box-shadow:0 4px 0 var(--line);transition:transform .15s;text-align:center}.picture-card:active{transform:translateY(3px);box-shadow:0 1px 0 var(--line)}.picture-card img{aspect-ratio:1;object-fit:cover;width:100%;border-radius:16px}.picture-card span{display:block;margin-top:9px;font-size:19px;font-weight:800;letter-spacing:.06em}.picture-card:last-child{grid-column:1 / -1;display:flex;align-items:center;justify-content:center;gap:24px;padding:9px 18px}.picture-card:last-child img{width:104px;max-width:40%}.picture-card:last-child span{margin:0;font-size:22px}.parent-link{display:block;font-size:12px;text-align:center;padding-top:27px;color:var(--muted);text-underline-offset:4px}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex:0 0 auto}.soft-button{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:43px;padding:9px 12px;border-radius:15px;background:var(--white);box-shadow:0 2px 0 var(--line);font-size:13px;white-space:nowrap}.soft-button svg{width:19px;height:19px}.difficulty-heading{display:flex;align-items:center;gap:18px;margin:29px 0 24px}.difficulty-heading>img{width:112px;height:112px;border-radius:24px;box-shadow:0 4px 0 var(--line);object-fit:cover;flex-shrink:0}.difficulty-heading h1{font-size:28px;letter-spacing:.04em;margin-bottom:7px}.difficulty-heading>div>p:last-child{font-size:12px;color:var(--muted);line-height:1.6}.difficulty-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.difficulty-card{display:flex;flex-direction:column;align-items:center;background:var(--white);padding:14px 12px 17px;border-radius:24px;box-shadow:0 4px 0 var(--line);min-width:0}.difficulty-card:first-child{box-shadow:0 4px 0 #c5dcca;outline:2px solid #96c3a9;outline-offset:-2px}.difficulty-card svg{width:100%;max-width:128px;aspect-ratio:1;overflow:hidden;border-radius:16px;margin-bottom:12px;pointer-events:none}.difficulty-card strong{font-size:16px;white-space:nowrap}.difficulty-card span{font-size:13px;color:var(--muted);margin-top:4px}.difficulty-card:active{transform:translateY(2px)}.kind-note{text-align:center;font-size:12px;color:var(--muted);margin-top:23px}.game-active{overflow:hidden;overscroll-behavior:none}.game-screen{--board-size:320px;--tray-cell:92px;display:flex;flex-direction:column;align-items:center;height:100vh;height:100svh;min-height:0;padding:max(10px,env(safe-area-inset-top)) 16px max(12px,env(safe-area-inset-bottom));touch-action:none;overscroll-behavior:none;overflow:hidden}.game-screen>.toolbar,.game-heading{width:100%;max-width:400px}.game-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;flex:0 0 auto;padding:12px 4px 9px}.game-heading h1{font-size:23px;line-height:1.3;letter-spacing:.06em}.game-heading .eyebrow{font-size:10px;margin-bottom:3px}.game-level{color:var(--muted);font-size:12px;line-height:1.4;margin-top:5px}.mini-reference{flex-shrink:0;text-align:center}.mini-reference img{width:68px;height:68px;border-radius:12px;box-shadow:0 2px 0 var(--line);object-fit:cover;border:2px solid var(--white)}.mini-reference figcaption{font-size:9px;color:var(--muted);margin-top:3px}.board-wrap{width:var(--board-size);height:var(--board-size);position:relative;flex:0 0 auto;background:var(--white);border-radius:19px;border:5px solid var(--white);box-shadow:0 0 0 1px var(--line),0 5px 0 #e0d9c8;touch-action:none;isolation:isolate;transition:box-shadow .25s}.board-wrap.is-complete{box-shadow:0 0 0 2px #acd1ad,0 5px 0 #cddfc8}.board-wrap>svg{width:100%;height:100%;border-radius:13px;overflow:hidden;touch-action:none}.board-grid{fill:none;stroke:#a99577;stroke-width:1.7;opacity:.24;pointer-events:none}.placed-piece{stroke-width:.8;stroke-linejoin:round;pointer-events:none}.target-shape{fill:transparent;stroke:none;cursor:pointer}.target-shape:focus-visible{stroke:#e58168;stroke-width:6;outline:none}.guide-under,.guide-line{fill:none;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}.guide-under{stroke:#fffdf6;stroke-width:13}.guide-line{stroke:#e17758;stroke-width:6;stroke-dasharray:13 10}.game-hint{font-size:12px;line-height:22px;min-height:22px;color:var(--muted);text-align:center;margin:12px 0 7px;flex-shrink:0}.piece-tray{display:grid;gap:8px;grid-template-columns:repeat(var(--tray-columns,3),minmax(0,1fr));width:100%;max-width:390px;align-content:start;flex-shrink:0;touch-action:none}.piece-button{height:var(--tray-cell);min-height:46px;min-width:46px;width:100%;border-radius:16px;background:#f3ecdf;border:2px solid transparent;padding:5px;display:flex;align-items:center;justify-content:center;position:relative;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;overflow:visible;transition:border-color .15s,background .15s}.piece-button>svg{width:var(--piece-width);height:var(--piece-height);max-height:100%;max-width:100%;pointer-events:none;overflow:visible;filter:drop-shadow(0 2px 1px #8c735429)}.piece-outline{fill:none;stroke:#fffef9;stroke-width:2.2;stroke-linejoin:round}.piece-button.is-selected{border-color:#e49b78;background:#fff1dc}.piece-button.is-dragging>svg{opacity:.2}.piece-button.is-placed{background:transparent;border:2px dashed #e8e0d2;cursor:default;opacity:.52}.piece-button.is-placed>svg{display:none}.placed-leaf{width:19px;height:19px;color:#9fbea0}.floating-piece{position:fixed;z-index:50;pointer-events:none;touch-action:none;filter:drop-shadow(0 5px 4px #73553b45);will-change:left,top}.floating-piece svg{width:100%;height:100%;overflow:visible}.completion-panel{width:100%;text-align:center;flex:1;min-height:0;padding:12px 0 0;display:flex;flex-direction:column;align-items:center;justify-content:center;animation:happy-in .35s ease-out}.hanamaru{width:68px;height:68px;color:#e67e69;flex-shrink:0;margin-bottom:6px}.completion-panel h2{font-size:clamp(15px,4.3vw,21px);line-height:1.4;white-space:nowrap}.completion-actions{display:flex;flex-direction:column;width:100%;max-width:300px;gap:10px;margin-top:15px}.primary-button,.secondary-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:49px;padding:12px 20px;border-radius:18px;font-size:16px;font-weight:800;text-decoration:none;border:0;line-height:1.4}.primary-button{background:var(--mint);color:#fff;box-shadow:0 4px 0 #599879}.primary-button:active{transform:translateY(2px);box-shadow:0 2px 0 #599879}.secondary-button{background:#fff1dd;color:var(--ink);box-shadow:0 3px 0 #e8d9c4}.primary-button svg,.secondary-button svg{width:21px;height:21px}.sparkles{position:absolute;inset:-10px;pointer-events:none;overflow:visible;z-index:3}.sparkle{position:absolute;width:22px;height:22px;color:#efb74d;animation:sparkle 1.2s ease-out both;animation-delay:var(--delay)}.sparkle:nth-child(3n){color:#88bfad}.sparkle:nth-child(3n + 1){color:#efa291}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.noscript-note{padding:20px;text-align:center}.intro-shell{max-width:620px;margin:auto;padding:max(22px,env(safe-area-inset-top)) 22px 30px}.intro-hero{text-align:center;padding-top:32px}.intro-hero .eyebrow{font-size:12px;margin-bottom:10px}.intro-lead{font-size:17px;line-height:1.75;margin-top:15px;color:var(--muted)}.hero-pictures{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;margin:25px 0 27px}.hero-pictures img{width:100%;height:auto;aspect-ratio:1;object-fit:cover;border-radius:16px;box-shadow:0 3px 0 var(--line)}.hero-pictures img:nth-child(even){transform:translateY(8px)}.play-link{width:100%;max-width:340px;min-height:56px;justify-content:space-between;padding:13px 27px;font-size:20px}.play-link span{font-size:30px;line-height:24px}.free-note{font-size:10px;color:var(--muted);margin-top:16px}.intro-section{margin-top:35px;background:var(--white);padding:23px 22px;border:1px solid var(--line);border-radius:23px}.intro-section h2{font-size:17px;line-height:1.7;color:var(--mint-dark);margin-bottom:12px}.intro-section p{font-size:13px;line-height:2.1;font-weight:500}.intro-section p+p{margin-top:13px}.help-list{list-style:none;padding:0;margin:0;counter-reset:help;display:flex;flex-direction:column;gap:17px}.help-list li{position:relative;padding-left:33px;counter-increment:help}.help-list li:before{content:counter(help);position:absolute;left:0;top:1px;border-radius:50%;background:#e4f0e4;color:var(--mint-dark);width:23px;height:23px;text-align:center;line-height:23px;font-size:12px}.help-list strong{display:block;font-size:13px;margin-bottom:4px}.help-list span{font-size:12px;line-height:1.9;font-weight:500;display:block}.bottom-play{display:flex;margin:30px auto}.intro-footer{text-align:center;font-size:12px;line-height:2;color:var(--muted);padding-top:10px}.intro-footer a{font-size:13px;text-underline-offset:4px}.intro-footer p{font-size:10px;margin-top:6px}
.piece-button.is-placed>svg.placed-leaf{display:block}
@keyframes happy-in{from{transform:translateY(8px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes sparkle{0%{opacity:0;transform:scale(.3) rotate(-20deg)}25%{opacity:1;transform:scale(1.15) rotate(5deg)}65%{opacity:1;transform:scale(.9) rotate(15deg)}100%{opacity:0;transform:scale(.3) rotate(25deg)}}
@media(min-width:700px){.game-screen{max-width:560px}.picture-grid{gap:18px}.selection-heading{padding-top:36px}.piece-tray{max-width:410px}.intro-shell{padding-top:30px}}
@media(max-height:650px){.game-screen{padding-top:max(6px,env(safe-area-inset-top));padding-bottom:max(7px,env(safe-area-inset-bottom))}.game-heading{padding-top:7px;padding-bottom:7px}.game-heading h1{font-size:20px}.mini-reference img{width:55px;height:55px}.game-hint{margin-top:8px;margin-bottom:5px;font-size:11px}.hanamaru{width:46px;height:46px;margin-bottom:2px}.completion-actions{gap:7px;margin-top:9px}.completion-actions button{min-height:41px;padding:8px 16px;font-size:14px}.completion-panel{padding-top:7px}}
@media(orientation:landscape) and (max-height:500px){.game-screen{max-width:760px;display:grid;grid-template-columns:minmax(160px,1fr) minmax(150px,1fr);grid-template-rows:42px 67px 1fr;gap:5px 20px;padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}.game-screen>.toolbar{grid-column:1 / -1;max-width:none}.game-heading{grid-column:2;grid-row:2;padding:0}.game-heading .mini-reference img{width:49px;height:49px}.board-wrap{grid-column:1;grid-row:2 / 4;align-self:center;justify-self:center}.game-hint{display:none}.piece-tray{grid-column:2;grid-row:3;align-self:center}.completion-panel{grid-column:2;grid-row:3;height:100%;padding:0}.hanamaru{width:38px;height:38px}.completion-panel h2{font-size:15px}.completion-actions{margin-top:8px;gap:7px;max-width:260px}.completion-actions button{min-height:38px;padding:6px 12px;font-size:13px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.sparkles{display:none}}
