:root{font-family:system-ui,-apple-system,sans-serif;color:#263e38;background:#e8eee3;font-synthesis:none}*{box-sizing:border-box}body{margin:0}#app{height:100dvh;min-height:570px;position:relative;overflow:hidden}#scene{position:absolute;inset:0}canvas{display:block;width:100%;height:100%;touch-action:none}header{position:absolute;z-index:1;left:32px;top:26px;pointer-events:none}small{font-size:10px;letter-spacing:.22em}h1{font-weight:500;font-size:30px;margin:10px 0}header p{font-size:13px;margin:0}.top-actions{position:absolute;right:24px;top:24px;display:flex;gap:8px}button{font:inherit;font-size:13px;border:1px solid #c6d1c2;border-radius:12px;min-height:44px;padding:10px 16px;color:#263e38;background:#fffdf6;cursor:pointer}button:hover:not(:disabled){background:#e6efdd}button:focus-visible{outline:3px solid #346e60;outline-offset:3px}button:disabled{opacity:.42;cursor:default}#confirm,#edit{background:#315b49;color:#fff;border-color:#315b49}#instructions{position:absolute;right:24px;top:80px;max-width:340px;background:#fffdf6;padding:18px;border-radius:16px;font-size:13px;line-height:1.8;z-index:3;box-shadow:0 5px 30px #25352a18}.editor{position:absolute;left:50%;bottom:max(18px,env(safe-area-inset-bottom));transform:translate(-50%);width:min(560px,calc(100% - 32px));padding:18px 22px 12px;background:#fffdf5f5;border:1px solid #fff;border-radius:22px;box-shadow:0 8px 40px #31433316}.editor-title{display:flex;justify-content:space-between;font-size:12px;letter-spacing:.04em}#position{font-size:11px}#status{font-size:13px;min-height:20px;margin:10px 0}.actions{display:flex;gap:8px}.actions button{flex:1;padding:9px 8px}.nudge{display:flex;gap:8px;margin-top:8px}.nudge button{flex:1;font-size:12px}.save{font-size:10px;color:#657268;margin:10px 0 0}.error{color:#a33a2a!important}@media(max-width:600px){header{left:18px;top:20px}h1{font-size:23px}header p{font-size:11px}.top-actions{top:114px;left:18px;right:auto}.top-actions button{font-size:11px;padding:8px 12px}#instructions{left:18px;right:18px;top:166px;max-width:none}.editor{padding:15px 14px 10px}.actions{gap:5px}.actions button,.editor-title{font-size:11px}}@media(max-height:600px)and (min-width:601px){#app{min-height:360px}header{top:14px;left:18px}h1{font-size:22px;margin:4px 0}header p{display:none}.editor{width:420px;left:auto;right:12px;transform:none;bottom:12px;padding:10px}.editor #status{margin:6px 0}.nudge,.save{margin-top:5px}}@media(max-height:600px){#app{height:100dvh;min-height:320px}.editor{max-height:56dvh;overflow:auto}#instructions{max-height:calc(100dvh - 180px);overflow:auto}}.history{margin-top:8px}.backup{margin-top:10px;font-size:12px}.backup summary{cursor:pointer;min-height:44px;display:list-item;padding:12px 0}.backup p{line-height:1.6}.editor{max-height:56dvh;overflow:auto}.backup [hidden]{display:none}.furniture-pickers{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.furniture-pickers label{flex:1;min-width:120px}label{font-size:12px}select{display:block;width:100%;min-height:44px;border:1px solid #a7b7a0;border-radius:10px;background:#fffdf6;color:#263e38;padding:8px;font:inherit}select:focus-visible{outline:3px solid #346e60;outline-offset:2px}.color-picker{display:block;margin-top:10px}#asset-status{font-size:12px}#retry-assets[hidden]{display:none}.actions{flex-wrap:wrap}.actions button{min-width:70px}.editor{max-height:54dvh}.editor-title{gap:12px}#position{flex-shrink:0}canvas:focus-visible{outline:3px solid #346e60;outline-offset:-4px}@media(max-width:600px)and (max-height:450px){header{top:8px;left:12px;max-width:46%}header small{font-size:8px;letter-spacing:.08em}header h1{font-size:17px;margin:5px 0}header p{display:none}.top-actions{top:8px;left:auto;right:10px;gap:5px}.top-actions button{padding:6px 9px}#instructions{top:62px;max-height:calc(100dvh - 80px)}.editor{bottom:8px;max-height:58dvh}}.editor-heading{position:sticky;top:0;z-index:1;display:flex;align-items:center;gap:12px;background:#fffdf5;padding-bottom:8px}.editor-heading .editor-title{flex:1;flex-wrap:wrap;gap:4px 12px;min-width:0}#panel-toggle{flex-shrink:0;font-size:12px;padding:8px 10px}#editor-controls[hidden]{display:none}.editor.collapsed{overflow:visible;padding-top:8px;padding-bottom:8px}.editor.collapsed .editor-heading{padding-bottom:0}@media(max-width:380px){.editor-heading{gap:6px}#panel-toggle{font-size:11px;padding:8px}}.editor.collapsed .editor-feedback p:not(.error){display:none}.editor.collapsed .editor-feedback .error{font-size:12px;line-height:1.5;margin:8px 0 0}.editor.collapsed{overflow:auto}.character-settings{font-size:12px;margin-top:8px}.character-settings summary{cursor:pointer;min-height:44px;padding:12px 0}.character-settings label{display:block}.character-settings button{margin-top:8px}#character-status{font-size:12px;line-height:1.5}.editor.collapsed #character-status{display:block;margin:8px 0 0}#walk-mode[aria-pressed=true]{background:#315b49;color:#fff;border-color:#315b49}.top-actions{z-index:2;flex-wrap:wrap;max-width:calc(100% - 36px)}@media(max-width:600px)and (max-height:450px){header{display:none}.top-actions{left:12px;right:12px;max-width:none}.editor{max-height:65dvh}}@media(min-width:601px)and (max-width:760px)and (min-height:601px){.top-actions{top:124px;left:32px;right:auto}#instructions{top:176px;left:32px;right:32px;max-width:none}}.first-loop{border-bottom:1px solid #bac9b3;padding-bottom:16px;font-size:13px;line-height:1.6}.first-loop h2{font-size:17px;margin:10px 0}.first-loop summary{min-height:44px;cursor:pointer;padding:10px 0}.first-loop a{color:#315b49;display:inline-block;padding:10px 0}.loop-grid{display:grid;grid-template-columns:repeat(3,minmax(44px,1fr));gap:5px;max-width:240px;margin:12px auto}.loop-grid span{display:grid;place-items:center;min-height:38px;border-radius:8px}.loop-grid button{padding:8px;min-height:48px}.loop-piece-A{background:#e8c49a}.loop-piece-B{background:#bcd1ad}.loop-piece-C{background:#d3bd97}.first-loop [aria-pressed=true]{outline:2px solid #315b49}.first-loop>p{margin:8px 0}.first-loop button{margin-bottom:4px}.first-loop .loop-grid button:disabled{opacity:.75}.first-loop .loop-grid button{font-weight:700}.free-candidate header{max-width:calc(100% - 380px);overflow-wrap:anywhere}@media(max-width:760px)and (min-height:451px){.free-candidate header{position:relative;inset:auto;margin:18px 18px 12px;max-width:none}.free-candidate header small{display:block;line-height:1.5;letter-spacing:.12em}.free-candidate header p{line-height:1.5}.free-candidate .top-actions{position:relative;inset:auto;margin:0 18px;max-width:none}.free-candidate #instructions{position:relative;inset:auto;margin:12px 18px;max-width:none;max-height:30dvh;overflow:auto}}@media(min-width:761px)and (max-height:600px){.free-candidate header small{letter-spacing:.08em;line-height:1.4}}.playable{--paper:#fffdf5;--ink:#284638;--leaf:#3d6853;--line:#d9dfcd;--muted:#677663;--warm:#eee2c9;color:var(--ink);background:#e8eee3}.playable [hidden]{display:none!important}.playable #app{height:100dvh;min-height:360px}.playable header{top:30px;left:30px;max-width:calc(100% - 470px)}.playable header small{color:#667b5e;letter-spacing:.18em;font-size:10px}.playable h1{font-family:ui-serif,Hiragino Mincho ProN,Yu Mincho,serif;font-size:27px;letter-spacing:.08em;font-weight:600}.playable header p{line-height:1.8;color:#65775c}.playable #scene{inset:0 430px 0 0}.playable .top-actions{inset:auto auto 24px 26px;gap:6px}.playable .top-actions button{background:#fffdf5e8;border-color:#ffffffc9;font-size:12px}.playable #instructions{inset:auto auto 84px 26px;max-width:min(360px,calc(100% - 480px));max-height:70dvh;overflow:auto;line-height:1.65}.playable #instructions p{margin:12px 0}.playable .editor{inset:20px 20px 20px auto;transform:none;width:390px;max-height:none;padding:18px 18px 14px;border-radius:24px;overflow-y:auto;scrollbar-width:thin;background:#fffdf6fa;border:1px solid #fff;box-shadow:0 12px 60px #4353391c}.playable .editor-heading{padding-bottom:9px;border-bottom:1px solid var(--line);margin-bottom:12px;align-items:center;z-index:4}.playable .editor-heading .editor-title{font-size:13px;font-weight:600}.playable #panel-toggle{font-size:11px;min-height:38px;background:#f1f3e9;border:0}.playable .wallet-row{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:12px;color:var(--muted)}.playable .wallet-row strong{font-size:20px;font-weight:600;color:#79622f}.playable .journey-guide{font-size:12px;line-height:1.65;margin:8px 0 12px;color:#50664c}.playable .play-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;padding:4px;border-radius:14px;background:#edf0e5;margin-bottom:16px}.playable .play-tabs button{padding:9px 2px;min-height:42px;font-size:12px;border:0;background:transparent;border-radius:10px}.playable .play-tabs button[aria-pressed=true]{background:var(--paper);color:var(--leaf);font-weight:700;box-shadow:0 2px 5px #47573c12}.playable .play-loop h2{font-family:ui-serif,Hiragino Mincho ProN,Yu Mincho,serif;font-size:19px;font-weight:600;margin:12px 0 6px}.playable .play-loop h2+p{font-size:12px;line-height:1.75;margin:6px 0 12px;color:var(--muted)}.playable .piece-choices{display:flex;gap:8px;margin:12px 0}.playable .piece-choices button{flex:1;padding:10px 4px;font-size:12px;border:2px solid transparent;box-shadow:inset 0 -2px #5b422113}.playable .piece-choices button[aria-pressed=true]{border-color:var(--leaf);box-shadow:0 0 0 2px #fff inset;font-weight:700}.playable .selected-piece{display:flex;gap:14px;align-items:center;padding:9px 12px;background:#f6f3e9;border-radius:12px;margin:8px 0}.playable .selected-piece p{font-size:12px;line-height:1.7;white-space:pre-line;margin:0}.playable .piece-shape{display:grid;grid-template-columns:repeat(3,18px);grid-template-rows:repeat(3,18px);gap:2px}.playable .piece-shape span{display:grid;place-items:center;font-size:10px;border-radius:3px}.playable .piece-shape .empty{background:#e6e8dc}.playable .puzzle-tools{gap:6px}.playable .puzzle-tools button{font-size:11px;padding:9px 4px;min-width:0}.playable .puzzle-pair{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:12px 0}.playable .puzzle-pair h3{font-size:11px;text-align:center;font-weight:500;margin:6px 0 8px;color:var(--muted)}.playable .puzzle-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;padding:6px;border-radius:14px;background:#ded9c5;box-shadow:inset 0 1px 4px #5f4e2c20}.playable .puzzle-grid button,.playable .puzzle-grid span{display:grid;place-items:center;aspect-ratio:1;min-width:0;min-height:42px;font-size:15px;font-weight:700;padding:0;border:0;border-radius:7px;color:#4a4735}.playable .puzzle-grid button{background:#f6f1e1;box-shadow:0 2px 1px #84714b19}.playable .puzzle-grid button.loop-piece-A,.playable .loop-piece-A{background:#e6bb87}.playable .puzzle-grid button.loop-piece-B,.playable .loop-piece-B{background:#b8cda4}.playable .puzzle-grid button.loop-piece-C,.playable .loop-piece-C{background:#cbb89c}.playable .puzzle-grid button:disabled{opacity:.72}.playable .puzzle-grid button:hover:not(:disabled){outline:2px solid var(--leaf);outline-offset:-2px}.playable .quiet-button{font-size:11px;border:0;background:transparent;color:var(--muted);text-decoration:underline;text-underline-offset:3px;padding:8px 0;min-height:40px}.playable .puzzle-complete{padding:16px;border-radius:18px;background:#e7eedc;margin:10px 0;color:#3f6046}.playable .puzzle-complete p{font-size:12px;line-height:1.6}.playable .puzzle-complete button{width:100%;margin-top:6px;font-size:12px}.playable .primary,.playable #confirm{background:var(--leaf);color:#fff;border-color:var(--leaf)}.playable .shop-list{display:grid;gap:9px}.playable .shop-item{display:grid;grid-template-columns:45px 1fr;gap:8px 10px;padding:14px;background:#f5f2e7;border:1px solid #e7e3d2;border-radius:16px}.playable .shop-item h3{font-size:14px;margin:0 0 4px;font-weight:600}.playable .shop-item p{font-size:11px;line-height:1.6;margin:0;color:var(--muted)}.playable .shop-item .shop-stock{margin-top:5px;font-size:11px;color:#735f3e}.playable .shop-item button{grid-column:2;font-size:12px;justify-self:start;min-height:42px;padding:9px 14px}.playable .shop-icon{font-size:32px;align-self:center;text-align:center;color:#9c8057}.playable .quiet-note{font-size:11px;line-height:1.7;color:var(--muted)}.playable .play-feedback{font-size:12px;line-height:1.7;margin:10px 0 0;color:#527049}.playable .play-feedback:empty{display:none}.playable .room-intro{font-size:12px;line-height:1.8;color:var(--muted);margin:10px 0}.playable .inventory-tray{display:flex;gap:7px;flex-wrap:wrap;margin:12px 0}.playable .inventory-tray button{font-size:12px;min-height:45px;padding:10px 13px}.playable .furniture-pickers{margin-top:6px}.playable .furniture-pickers>label:first-child,.playable #add{display:none}.playable .furniture-pickers>label:last-child{min-width:100%}.playable .color-picker{margin-bottom:10px}.playable #remove{background:#f3eee0;font-size:12px}.playable .actions button{font-size:12px}.playable .editor-feedback{border-top:1px solid var(--line);margin-top:12px;padding-top:4px}.playable .editor-feedback p{font-size:11px;line-height:1.6;margin:7px 0}.playable .editor-feedback .save{font-size:10px;color:#6c7c62}.playable[data-play-view=puzzle] #position,.playable[data-play-view=shop] #position{display:none}.playable:not([data-play-view=room]) #status:not(.error),.playable:not([data-play-view=room]) #asset-status:not(.error),.playable:not([data-play-view=room]) #character-status:not(.error){display:none}.playable[data-editing=false] #rotate,.playable[data-editing=false] #confirm,.playable[data-editing=false] #cancel,.playable[data-editing=false] .nudge,.playable[data-editing=false] .color-picker,.playable[data-editing=true] .wallet-row,.playable[data-editing=true] .journey-guide,.playable[data-editing=true] .play-tabs,.playable[data-editing=true] .inventory-tray,.playable[data-editing=true] .room-intro,.playable[data-editing=true] .furniture-pickers,.playable[data-editing=true] #edit,.playable[data-editing=true] #remove,.playable[data-editing=true] .history,.playable[data-editing=true] .character-settings,.playable[data-editing=true] .backup,.playable[data-editing=true] .play-feedback{display:none}.playable[data-editing=true] .editor-heading{border-bottom-color:#88ab78}.playable[data-editing=true] #selection-label:before{content:"仮置き · ";color:#6f884e}.playable .backup a{color:var(--leaf);display:inline-block;padding:8px 0}.playable #reload-save{font-size:12px;width:100%}.playable.room-wide #scene{right:0}.playable .editor.collapsed{inset:auto 20px 20px auto;max-height:40dvh;padding:12px 16px;width:330px}.playable .editor.collapsed .editor-heading{margin-bottom:0;border-bottom:0}.playable .editor.collapsed .editor-feedback{margin-top:0;border-top:0}@media(max-width:760px){.playable header{left:18px;top:12px;max-width:calc(100% - 36px)}.playable header small{font-size:8px}.playable h1{font-size:18px;margin:5px 0}.playable header p{display:none}.playable #scene{inset:44px 0 54dvh}.playable .top-actions{left:auto;right:12px;bottom:calc(54dvh + 9px);gap:5px;max-width:calc(100% - 24px)}.playable .top-actions button{min-height:36px;font-size:10px;padding:7px 10px}.playable .editor{inset:auto 0 0;width:100%;height:54dvh;max-height:54dvh;padding:12px 18px max(12px,env(safe-area-inset-bottom));border-radius:24px 24px 0 0}.playable .editor-heading{margin-bottom:10px;padding-bottom:7px}.playable .editor-heading .editor-title{font-size:12px}.playable #panel-toggle{font-size:10px;padding:8px;min-height:36px}.playable #instructions{inset:66px 12px auto;max-width:none;max-height:calc(100dvh - 80px);z-index:10}.playable .wallet-row strong{font-size:18px}.playable .wallet-row{font-size:11px}.playable .journey-guide{font-size:11px;margin:6px 0 10px}.playable .play-tabs{margin-bottom:12px}.playable .puzzle-pair{gap:18px;max-width:350px;margin:12px auto}.playable .puzzle-grid button,.playable .puzzle-grid span{min-height:44px}.playable.room-wide #scene{inset:44px 0 88px}.playable.room-wide .top-actions{bottom:100px}.playable .editor.collapsed{inset:auto 8px 8px;width:calc(100% - 16px);height:auto;max-height:40dvh;border-radius:18px;padding:9px 12px}}@media(max-width:360px){.playable .editor{padding-left:12px;padding-right:12px}.playable .puzzle-pair{gap:10px}.playable .puzzle-grid{gap:3px;padding:5px}.playable .puzzle-grid button,.playable .puzzle-grid span{min-height:40px}.playable .play-loop h2{font-size:17px}}@media(max-height:500px)and (min-width:601px){.playable header{top:12px;left:16px}.playable header small{font-size:8px}.playable h1{font-size:18px}.playable header p{display:none}.playable .editor{top:8px;bottom:8px;right:8px;width:350px;height:auto;max-height:none}.playable #scene{inset:0 370px 0 0}.playable .top-actions{left:12px;right:auto;bottom:12px;max-width:calc(100% - 382px)}.playable #instructions{inset:55px auto auto 12px;max-width:calc(100% - 382px);max-height:calc(100dvh - 65px)}}@media(max-width:760px)and (min-height:501px){.playable{--drawer-height:54dvh}.playable[data-play-view=puzzle]{--drawer-height:70dvh}.playable[data-play-view=shop]{--drawer-height:64dvh}.playable:not(.room-wide) #scene{bottom:var(--drawer-height)}.playable:not(.room-wide) .top-actions{bottom:calc(var(--drawer-height) + 9px)}.playable .editor:not(.collapsed){height:var(--drawer-height);max-height:var(--drawer-height)}.playable[data-play-view=puzzle] .journey-guide,.playable .puzzle-view>h2{display:none}.playable .puzzle-view>h2+p{font-size:11px;line-height:1.6;margin:6px 0 9px}.playable .puzzle-pair{grid-template-columns:minmax(90px,.72fr) minmax(152px,1fr);gap:12px;align-items:center}.playable .target-grid{max-width:114px;margin:auto}.playable .target-grid span{min-height:0}.playable .puzzle-view .play-feedback{font-size:11px;margin:6px 0;line-height:1.5}}.playable .piece-shape .anchor-cell{box-shadow:inset 0 0 0 2px #fffdf5;color:#315b49;font-size:12px}.playable .piece-choices button{scroll-margin-top:64px}
