*{box-sizing:border-box}html,body{height:100%;overflow:hidden}.new-workshop{height:calc(100dvh - 60px);max-width:1150px;padding:8px 14px!important;margin:auto!important;display:flex;flex-direction:column;gap:6px;color:#283e50}.in-arena .new-workshop{height:100dvh}h1{font-size:21px;margin:0;text-align:center}#hint{margin:0;text-align:center;font-size:14px}#stage{position:relative;flex:1;min-height:100px;overflow:hidden;border:3px solid #293d51;border-radius:13px;background:#d4dfb0 url('../shared/practice-camp.svg') center/cover;outline:none;touch-action:none}#stage:focus-visible{outline:3px solid #edbd4e}#board{position:absolute;inset:0}#controls{display:flex;justify-content:center;gap:8px;flex-wrap:wrap}#controls button{min-width:48px;padding:8px 14px;background:#efcf7d;border:2px solid #293d51;border-radius:8px;font:900 17px inherit;cursor:pointer}#feedback{margin:0;min-height:20px;text-align:center;font-weight:bold;font-size:14px}.new-progress{height:8px;background:#a9b9b3;border:1px solid #293d51;border-radius:8px;overflow:hidden}.new-progress i{display:block;height:100%;background:#2a9278;width:0}.maze-board{display:grid;aspect-ratio:1;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(85vw,calc(100dvh - 210px),650px);max-height:100%;background:#f2dfaf;border:2px solid #27344b}.in-arena .maze-board{width:min(85vw,calc(100dvh - 155px),650px)}.maze-cell{background:#ead5a4}.maze-cell.wall{background:repeating-linear-gradient(0deg,#617e70 0 45%,#3e5b53 46% 52%,#718d77 53% 100%);box-shadow:inset 0 0 0 1px #324d47}.maze-cell.exit{background:#84c782}.maze-player{position:absolute;width:var(--cell);height:var(--cell);padding:1px;pointer-events:none;z-index:3}.maze-player svg{width:100%;height:100%;filter:drop-shadow(0 1px 1px #fff)}.exit-mark svg{width:100%;height:100%}.exit-mark{font-size:clamp(10px,2vw,22px);display:grid;place-items:center}.camp{position:absolute;left:0;top:0;bottom:0;width:14%;background:#6c987fa8;border-right:4px dashed #425e52;display:flex;align-items:center;justify-content:center;flex-direction:column;font-weight:900;font-size:12px}.camp svg{width:85%;max-width:100px}.food{position:absolute;width:54px;height:54px;transform:translate(-50%,-50%);pointer-events:none}.food svg{width:100%;height:100%}.food-piece{opacity:.7;filter:grayscale(.2);transition:none}.slash{position:absolute;height:4px;background:#fff5b9;box-shadow:0 0 8px #fff;transform-origin:0 50%;border-radius:10px;pointer-events:none;z-index:4}.explorer{padding:10px;height:100%;overflow:auto;background:#f7ecd0}.target-path{background:#3e6375;color:#fff3cd;padding:12px;border-radius:8px;overflow-wrap:anywhere;font-size:clamp(14px,2vw,20px);font-weight:900;margin:0 0 8px}.current-path{padding:8px;background:#ead6a6;border:1px solid #a89772;overflow-wrap:anywhere;font-size:14px}.folder-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:12px}.folder-list button{background:#fff3d6;border:2px solid #718b86;border-radius:9px;padding:15px 5px;color:#293d51;cursor:pointer;font:700 14px inherit;overflow-wrap:anywhere}.folder-icon{display:block;font-size:35px;margin-bottom:5px}.folder-list button:hover{background:#f7d881}.folders-help{margin:6px 0;font-size:12px}@media(max-width:550px){.folder-list{grid-template-columns:repeat(2,minmax(0,1fr))}.new-workshop{padding:6px!important}h1{font-size:17px}#hint{font-size:12px}#controls button{padding:6px 12px}.folder-list button{padding:10px 4px}.target-path{padding:8px}.food{width:48px;height:48px}}

.food-piece svg{position:absolute;inset:0}.food-piece svg:first-child{clip-path:polygon(0 0,48% 0,48% 100%,0 100%);transform:translateX(-7px)}.food-piece svg:last-child{clip-path:polygon(52% 0,100% 0,100% 100%,52% 100%);transform:translateX(7px)}

.folder-icon svg{width:42px;height:42px}

/* V12: square tracks and the sprite share the exact same coordinate surface. */
#board{container-type:size}
.maze-board{border:0;box-shadow:0 0 0 3px #27344b;width:min(94vw,calc(100dvh - 175px),800px);max-height:none}
@supports(width:1cqw){.maze-board,.in-arena .maze-board{width:min(96cqw,96cqh,800px)}}
.maze-cell{min-width:0;min-height:0;overflow:hidden}
.maze-player{width:calc(var(--cell)*.92);height:calc(var(--cell)*.92);padding:0;transform:translate(-50%,-50%)}
.maze-player svg{display:block;filter:none;overflow:visible}
.maze-player.face-left svg{transform:scaleX(-1)}
.gaul-leg{transform-box:view-box;transform-origin:32px 43px}.gaul-arm{transform-box:view-box;transform-origin:32px 30px}
.walking .gaul-leg-left,.walking .gaul-arm-right{animation:gaul-step .24s ease-in-out infinite alternate}
.walking .gaul-leg-right,.walking .gaul-arm-left{animation:gaul-step .24s ease-in-out infinite alternate-reverse}
@keyframes gaul-step{from{transform:rotate(-10deg)}to{transform:rotate(10deg)}}
.target-path{position:sticky;top:0;z-index:2;display:flex;align-items:center;flex-wrap:wrap;gap:4px 7px;background:#fff4c5;color:#183d53;border:4px solid #d99322;outline:2px solid #fff9e7;box-shadow:0 3px 0 #8b5b24,0 0 0 5px #e8bc5655;padding:16px 18px;margin:5px 4px 17px;font:900 clamp(18px,2.3vw,28px)/1.4 "Trebuchet MS",system-ui,sans-serif;text-align:left}
.path-step{overflow-wrap:anywhere}.path-file{background:#245c75;color:#fff6d7;padding:2px 9px;border-radius:6px;overflow-wrap:anywhere}.path-separator{color:#96631d;font-weight:900}
@media(max-width:550px){.target-path{padding:11px 10px;gap:2px 4px;font-size:18px}}
@media(prefers-reduced-motion:reduce){.walking .gaul-leg,.walking .gaul-arm{animation:none}}

.target-path{font-family:ui-monospace,"Cascadia Mono",Consolas,monospace;font-size:clamp(20px,2.5vw,30px);line-height:1.45;color:#132f42;background:#fff8df;border-color:#be7916;gap:3px 5px;padding:18px}
.path-file{background:none;color:inherit;padding:0;border-radius:0;font:inherit}.path-separator{color:#465d69}
.folder-list button.selected-folder{background:#ffe5a0;outline:3px solid #366883;outline-offset:1px}
@media(max-width:550px){.target-path{font-size:19px;padding:12px 9px}}

/* Folder exploration stays an actual hierarchy: gates open only to children. */
.treasure-explorer{display:flex;flex-direction:column;gap:6px;background:#e5ddbb url('../shared/practice-camp.svg') center/cover;padding:10px}.treasure-explorer .target-path{position:static;flex:none;font-size:clamp(16px,2vw,24px);padding:9px 12px;margin:3px 4px 7px;line-height:1.3}.folder-breadcrumbs{display:flex;align-items:center;gap:3px;flex-wrap:wrap;background:#fff4dbe8;border:1px solid #577480;border-radius:8px;padding:5px 7px;font-size:13px;flex:none}.folder-breadcrumbs button{font:700 13px "Trebuchet MS",sans-serif;color:#24485f;background:#f3d991;border:1px solid #7b7b63;border-radius:5px;padding:4px 7px;cursor:pointer}.folder-breadcrumbs button:last-child{background:#355c70;color:#fff2d1}.folder-map{flex:1;min-height:245px;position:relative;border:3px solid #486258;background:#cfdbabcc;border-radius:14px;padding:10px 12px 32px;display:flex;flex-direction:column;align-items:center;overflow:hidden}.folder-map:before{content:"";position:absolute;top:75px;bottom:35px;width:78%;border:12px dashed #c59951;border-radius:50%;background:#eee2b255;pointer-events:none}.folder-map.wrong-trail{background:#acb7aacc}.treasure-mission{position:relative;z-index:1;font-size:12px;letter-spacing:1px;font-weight:900;background:#355d73;color:#ffedb6;border:2px solid #2d4556;padding:5px 17px;border-radius:6px;max-width:100%;text-align:center}.folder-camp{position:relative;display:flex;align-items:center;gap:8px;background:#fff3cfe8;border:2px solid #726348;border-radius:28px;padding:2px 12px 2px 3px;margin:8px auto 2px;z-index:1;animation:camp-step .25s ease}.folder-camp svg{width:44px;height:44px}.folder-camp strong{font-size:15px}.treasure-gates{position:relative;z-index:1;align-self:stretch;margin:10px auto;display:flex;justify-content:center;align-items:center;gap:12px;flex-wrap:wrap;width:100%}.folder-list .folder-gate{position:relative;display:flex;align-items:center;flex-direction:column;gap:5px;min-width:115px;max-width:190px;flex:1;background:#fff3cfeF;border:3px solid #805b33;border-bottom:7px solid #9f7440;border-radius:12px 12px 20px 20px;padding:9px;box-shadow:3px 4px 0 #334d3e44;transition:transform .15s}.folder-list .folder-gate:hover{transform:translateY(-5px);background:#ffe4a0}.folder-gate small{font-size:10px;color:#486877}.folder-gate strong{font-size:15px;overflow-wrap:anywhere}.folder-gate .folder-icon{margin:0}.folder-gate .folder-icon svg{width:43px;height:43px}.folder-list .treasure-chest{background:#f5d889;border-color:#876023}.trail-markers{position:absolute;bottom:6px;left:0;right:0;display:flex;justify-content:center;gap:7px}.trail-markers span{border:2px solid #73835e;border-radius:50%;width:22px;height:22px;display:grid;place-items:center;background:#f2e9c9;font-size:11px;font-weight:bold}.trail-markers .found{background:#e9bb4a;border-color:#8d6028;color:#315744}.treasure-explorer .folders-help{background:#fff4dbe8;padding:4px 8px;border-radius:7px;margin:0;text-align:center;font-size:12px;flex:none}@keyframes camp-step{from{transform:translateX(-20px);opacity:.4}to{transform:translateX(0);opacity:1}}@media(max-height:650px){.treasure-explorer{padding:6px}.treasure-explorer .target-path{font-size:16px;padding:6px 9px}.folder-map{min-height:215px;padding:6px 8px 29px}.folder-camp{margin:5px auto 0}.folder-camp svg{width:31px;height:31px}.treasure-gates{margin:7px auto;gap:8px}.folder-list .folder-gate{padding:6px;gap:3px}.folder-gate .folder-icon svg{width:31px;height:31px}.folder-gate strong{font-size:13px}.treasure-mission{font-size:10px}}@media(max-width:550px){.treasure-gates{gap:8px}.folder-list .folder-gate{min-width:40%;max-width:46%}.folder-map{min-height:330px}.folder-gate .folder-icon svg{width:30px;height:30px}.folder-gate strong{font-size:13px}.treasure-explorer .folders-help{font-size:11px}}@media(prefers-reduced-motion:reduce){.folder-camp{animation:none}.folder-list .folder-gate{transition:none}}

/* Rectangular board: JS fits equal square cells to the available surface. */
.maze-board{aspect-ratio:auto}.maze-player{width:calc(var(--cell-x)*.92);height:calc(var(--cell-y)*.92)}
