:root{--bg:#f4efe6;--bg2:#e9e1d3;--panel:#faf6ee;--ink:#3e3a34;--ink-soft:#7a7266;--line:#d8cfbe;--accent:#9c6b5b;--glow:#e2b86a;--ink-soft-text:#6b6357;--accent-text:#8a5a4a;--font:"Hiragino Sans", "Hiragino Kaku Gothic ProN", "Noto Sans JP", system-ui, sans-serif;--fs-body:16px;--fs-sub:14px;--fs-title:22px;--fs-big:32px;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--safe-right:env(safe-area-inset-right,0px);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}html,body{font-family:var(--font);font-size:var(--fs-body);color:var(--ink);background:var(--bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;line-height:1.6}*,:before,:after{box-sizing:border-box}button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation;background:0 0;border:none;margin:0;padding:0}.btn{font-size:var(--fs-body);border:1px solid var(--line);background:var(--panel);min-height:48px;color:var(--ink);border-radius:999px;padding:10px 20px;transition:background .15s,transform .1s}.btn:active{background:var(--bg2);transform:translateY(1px)}.btn.primary{background:var(--accent-text);border-color:var(--accent-text);color:#fffaf2}.btn.primary:active{background:#75493b}.btn[disabled]{color:var(--ink-soft-text);background:var(--bg2);cursor:not-allowed}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}a{color:var(--accent-text)}.sub{font-size:var(--fs-sub);color:var(--ink-soft-text)}.visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.page{overscroll-behavior:contain;height:100%;padding:calc(16px + var(--safe-top)) max(16px, calc((100% - 600px) / 2)) calc(28px + var(--safe-bottom));overflow-y:auto}.notice{color:#7d3f30;font-size:var(--fs-sub);background:#f6e7df;border-radius:8px;margin:12px 0 0;padding:8px 12px}.notice:empty{display:none}.home-title{letter-spacing:.08em;margin:0;font-size:28px;font-weight:600}.home-head .sub{margin:2px 0 0}.resume{border:1px solid var(--accent);background:var(--panel);text-align:left;border-radius:12px;align-items:center;gap:12px;width:100%;margin-top:16px;padding:10px 12px;display:flex}.resume-thumb{aspect-ratio:3/4;object-fit:cover;border-radius:6px;flex:none;width:54px}.resume-text{flex-direction:column;display:flex}.resume-label{color:var(--accent-text);font-size:17px;font-weight:600}.shelf-title{font-size:var(--fs-body);margin:24px 0 8px;font-weight:600}.shelf-note{margin:8px 0 0}.thumbs{grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:10px;display:grid}.thumb{aspect-ratio:3/4;background:var(--bg2);border:1px solid var(--line);-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;border-radius:8px;position:relative;overflow:hidden}.thumb img{object-fit:cover;width:100%;height:100%;display:block}.thumb.add{border-style:dashed;border-color:var(--accent);background:var(--panel);color:var(--accent-text);flex-direction:column;justify-content:center;align-items:center;gap:2px;display:flex}.thumb.add[disabled]{border-color:var(--line);color:var(--ink-soft-text);cursor:not-allowed}.add-plus{font-size:28px;line-height:1}.add-label{font-size:var(--fs-sub)}.add-row{border:1px dashed var(--accent);background:var(--panel);min-height:48px;color:var(--accent-text);border-radius:10px;grid-column:1/-1;justify-content:center;align-items:center;gap:8px;display:flex}.add-row .add-plus{font-size:22px}.add-row .add-label{font-size:var(--fs-body)}.add-row[disabled]{border-color:var(--line);color:var(--ink-soft-text);cursor:not-allowed}.badge{color:var(--accent-text);font-size:var(--fs-sub);background:#faf6eef0;border-radius:6px;padding:0 6px;font-weight:600;line-height:22px;position:absolute;bottom:4px;right:4px}.home-foot{flex-direction:column;align-items:center;gap:8px;margin-top:32px;display:flex}.home-back{min-height:44px;font-size:var(--fs-sub);color:var(--ink-soft-text);align-items:center;padding:0 16px;display:inline-flex}.picker-overlay{z-index:20;background:#3e3a3466;justify-content:center;align-items:flex-end;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.picker{width:min(100%,520px);max-height:100%;padding:16px 16px calc(16px + var(--safe-bottom));background:var(--panel);border-radius:16px 16px 0 0;flex-direction:column;gap:8px;display:flex;overflow-y:auto}@media (min-width:700px){.picker-overlay{align-items:center}.picker{border-radius:16px}}.picker-head{align-items:center;gap:12px;display:flex}.picker-thumb{aspect-ratio:3/4;object-fit:cover;border-radius:6px;flex:none;width:64px}.picker-title{margin:0;font-size:17px;font-weight:600}.cleared-list{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}.cleared{font-size:var(--fs-sub);color:var(--accent-text);border:1px solid var(--accent);border-radius:999px;padding:0 10px}.seg-label{font-size:var(--fs-sub);color:var(--ink-soft-text);margin:8px 0 0}.seg{grid-template-columns:1fr 1fr;gap:8px;display:grid}.seg3{grid-template-columns:repeat(3,1fr)}.seg-btn{border:1px solid var(--line);background:var(--bg);border-radius:10px;flex-direction:column;justify-content:center;align-items:center;min-height:52px;line-height:1.3;display:flex}.seg-btn[aria-pressed=true]{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);color:var(--accent-text);background:#f3e6dc;font-weight:600}.seg-sub{font-size:var(--fs-sub);color:var(--ink-soft-text);font-weight:400}.picker-start{margin-top:8px}.picker .sub{margin:4px 0 0}.crop-mat{--mat:8px;align-self:center;margin:4px 0 8px}.crop-frame{aspect-ratio:3/4;background:var(--bg2);touch-action:none;cursor:grab;width:min(100vw - 48px,360px);position:relative;overflow:hidden}.crop-frame:active{cursor:grabbing}.crop-img{object-fit:cover;pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;display:block}.play{height:100%;padding:var(--safe-top) var(--safe-right) 0 var(--safe-left);touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;flex-direction:column;display:flex}.play.sld{padding-bottom:var(--safe-bottom)}.rotate-note{text-align:center;font-size:var(--fs-sub);color:var(--ink-soft-text);flex:none;margin:0;padding:4px 12px 0;display:none}@media (orientation:landscape) and (max-height:500px) and (pointer:coarse){.rotate-note{display:block}}.bar{flex:none;justify-content:center;gap:6px;padding:0 12px 8px;display:flex}.bar-btn{white-space:nowrap;border-radius:10px;flex:1 1 0;max-width:128px;min-height:44px;padding:8px 4px}.bar-btn.toggle[aria-pressed=true]{border-color:var(--accent);color:var(--accent-text);background:#f3e6dc}.peek-btn{touch-action:none}.stage{flex:auto;justify-content:center;align-items:flex-end;min-height:0;padding:8px 0;display:flex}.mat{--mat:14px;padding:var(--mat);background:repeating-linear-gradient(93deg,#7452301f 0 2px,#0000 2px 9px,#74523012 9px 11px,#0000 11px 23px),repeating-linear-gradient(87deg,#fff3e229 0 3px,#0000 3px 13px),linear-gradient(#d9b891,#c69d72);border-radius:6px;box-shadow:0 2px 8px #3e3a342e,inset 0 0 0 1px #78543047,inset 0 1px #fff5e659}.board{background:var(--bg2);position:relative;box-shadow:inset 0 0 0 1px #78543040,inset 0 3px 8px #3e281429}.board .ghost{opacity:0;pointer-events:none;width:100%;height:100%;transition:opacity .2s;position:absolute;top:0;bottom:0;left:0;right:0}.board.ghost-on .ghost{opacity:.28}.board.peek .ghost,.board.solved .ghost{opacity:1}.board.peek .ghost{z-index:5;transition:none}.board .piece,.board .mark{left:calc(var(--x) * var(--s) * 1px);top:calc(var(--y) * var(--s) * 1px);width:calc(var(--pw) * var(--s) * 1px);height:calc(var(--ph) * var(--s) * 1px);pointer-events:none;position:absolute}.board .piece{z-index:1}.board .mark{z-index:2}.board .mark.hint{animation:.5s ease-in-out 3 blink}@keyframes blink{50%{opacity:.15}}.tray-wrap{border-top:1px solid var(--line);background:var(--panel);padding-bottom:var(--safe-bottom);flex:none}.tray{overscroll-behavior:contain;touch-action:pan-x;align-items:center;gap:6px;height:112px;padding:0 12px;display:flex;overflow:auto hidden}.tray.two-rows{grid-template-rows:repeat(2,auto);grid-auto-columns:max-content;grid-auto-flow:column;align-content:center;height:210px;display:grid}.slot{width:calc(var(--pw) * var(--ts) * 1px);height:calc(var(--ph) * var(--ts) * 1px);touch-action:pan-x;cursor:grab;border-radius:6px;flex:none}.slot.hint{outline:3px solid var(--glow)}.slot canvas{pointer-events:none;width:100%;height:100%;display:block}.carried{z-index:50;width:calc(var(--pw) * var(--s) * 1px);height:calc(var(--ph) * var(--s) * 1px);transform-origin:50%;will-change:transform;pointer-events:none;filter:drop-shadow(0 6px 8px #3e3a344d);position:fixed;top:0;left:0}.carried canvas{width:100%;height:100%;display:block}.sld .board{touch-action:none;cursor:pointer}.tile{z-index:1;width:calc(var(--cw) * var(--s) * 1px);height:calc(var(--ch) * var(--s) * 1px);transform:translate(calc(var(--tx) * var(--s) * 1px), calc(var(--ty) * var(--s) * 1px));transition:transform .12s ease-out;position:absolute;top:0;left:0}.tile canvas{width:100%;height:100%;display:block}.tile:after{content:"";transition:opacity .3s;position:absolute;top:0;bottom:0;left:0;right:0;box-shadow:inset 0 0 0 1px #0000002e,inset 1px 1px 0 1px #ffffff38}.num{min-width:24px;color:var(--ink);font-size:var(--fs-sub);text-align:center;background:#faf6eee0;border-radius:11px;padding:0 6px;line-height:22px;display:none;position:absolute;top:4px;left:4px}.board.numbers-on .num{display:block}.board.solved .num,.board.solved .tile:after{opacity:0}.done{text-align:center;flex-direction:column;align-items:center;display:flex}.done-pic{width:min(72vw,360px,75vh - 270px);aspect-ratio:3/4;width:min(72vw,360px,75dvh - 270px);min-width:150px;box-shadow:0 0 0 1px var(--line)}.done-canvas{width:100%;height:100%;display:block}.done-title{font-size:var(--fs-big);color:var(--accent-text);letter-spacing:.1em;margin:12px 0 0}.done-stats{margin:0}.done-actions{flex-direction:column;gap:10px;width:min(100%,360px);margin-top:16px;display:flex}.done-other{flex-direction:column;align-items:center;line-height:1.3;display:flex}.done-other-sub{font-size:var(--fs-sub);opacity:.9}.credits-head{align-items:center;gap:12px;display:flex}.credits-title{font-size:var(--fs-title);margin:0}.credit-list{margin:16px 0;padding:0;list-style:none}.credit{border-bottom:1px solid var(--line);padding:12px 0}.credit-title{margin:0 0 4px;font-weight:600}.credit-row{font-size:var(--fs-sub);overflow-wrap:anywhere;margin:0}.credit-label{min-width:6em;color:var(--ink-soft-text);display:inline-block}
