*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}body{font-family:Trebuchet MS,Arial,sans-serif;color:#173d30;background:#4c9958 url('assets/forest.png') center/cover no-repeat}button,input{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible{outline:4px solid #ffdc52;outline-offset:3px}[hidden]{display:none!important}main,.screen{width:100%;height:100%;height:100dvh}.screen{padding:max(12px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left))}#welcome{display:grid;place-items:center;background:#174e2520}.welcome-content{display:flex;align-items:center;flex-direction:column;gap:12px;width:min(540px,92vw)}.logo{width:min(370px,68vw);max-height:25dvh;object-fit:contain;filter:drop-shadow(0 5px 0 #153a3050)}.wood{width:100%;aspect-ratio:635/363;background:url('assets/panel.png') center/100% 100% no-repeat;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:9% 12% 6%;position:relative}label{font-size:clamp(15px,2.6vw,22px);font-weight:900;letter-spacing:2px}.name-frame{width:100%;aspect-ratio:718/159;background:url('assets/name-field.png') center/100% 100%;display:grid;place-items:center}.name-frame input{width:86%;border:0;background:transparent;color:#3d341e;text-align:center;font-size:clamp(14px,2.5vw,22px);font-weight:bold;text-transform:uppercase;outline-offset:0;min-width:0}.image-button{padding:0;border:0;background:transparent;width:79%;line-height:0;transition:transform .12s}.image-button img{width:100%}.image-button:active{transform:translateY(4px) scale(.98)}#name-error{margin:0;position:absolute;bottom:8%;font-size:12px;color:#6d1d16;font-weight:bold}.hub{font-size:12px;letter-spacing:2px;color:white;font-weight:bold;text-shadow:0 2px 2px #173d30}#game{display:flex;flex-direction:column;background:#eaf7e5ed;gap:8px}header{display:flex;justify-content:space-between;gap:14px;align-items:center;max-width:1100px;width:100%;margin:0 auto}h1{margin:3px 0;font-size:clamp(20px,3vw,31px)}.eyebrow{font-size:11px;letter-spacing:2px;font-weight:900;color:#4b7939}.pupil{text-align:right;display:flex;flex-direction:column;gap:4px;font-size:13px;max-width:35%;overflow-wrap:anywhere}.pupil b{font-size:16px}.instruction{text-align:center;margin:0;font-size:clamp(13px,1.8vw,18px);font-weight:bold}.play-layout{display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:20px;flex:1;min-height:0;max-width:1000px;width:100%;margin:auto}.stage{min-height:0;display:flex;justify-content:center;align-items:center;overflow:visible}#monster{position:relative;aspect-ratio:782/740;height:100%;max-width:100%;max-height:590px}#base{width:100%;height:100%;display:block;object-fit:contain}#targets,#attached{position:absolute;inset:0;pointer-events:none}.target{position:absolute;display:block;object-fit:fill;pointer-events:none}.target.matched{visibility:hidden}.placed{position:absolute;pointer-events:none;width:100%;height:100%;object-fit:fill}.tray-panel{border:2px solid #c1d7ae;border-radius:22px;background:#fffbed;padding:14px;display:flex;flex-direction:column;min-height:0;box-shadow:0 5px 0 #b7cfa880}.tray-heading h2{font-size:20px;margin:0}.tray-heading span{font-size:12px;color:#62805b}#tray{display:grid;grid-template-columns:1fr 1fr;gap:8px;flex:1;min-height:0;margin-top:12px}.piece{border:2px solid #e4e7ce;border-radius:14px;background:#f2f5e9;display:flex;align-items:center;justify-content:center;position:relative;touch-action:none;user-select:none;min-height:0;cursor:grab;padding:8px}.piece:last-child{grid-column:1/-1}.piece img{width:100%;height:100%;max-height:125px;object-fit:contain;pointer-events:none;user-select:none;-webkit-user-drag:none}.piece.used{background:#e3edda;border-style:dashed}.piece.used img{visibility:hidden}.piece.used:after{content:'Placed!';font-size:12px;font-weight:bold;color:#578448}.drag-ghost{position:fixed;z-index:1000;pointer-events:none;filter:drop-shadow(0 6px 3px #173d3050);object-fit:fill}.dragging{opacity:.25}footer{display:flex;align-items:center;justify-content:space-between;max-width:1000px;width:100%;margin:auto;gap:10px;min-height:42px}.categories{display:flex;gap:7px}.categories span{background:white;padding:8px 12px;border-radius:12px;font-size:14px;font-weight:bold;border:1px solid #cfdec5}.categories b{font-size:12px;color:#638057;margin-left:5px}#feedback{font-size:15px;font-weight:bold;margin:0;text-align:right}.bounce{animation:bounce .45s}@keyframes bounce{30%{transform:translateY(-13px)}60%{transform:translateY(5px)}85%{transform:translateY(-4px)}}#completion{position:absolute;inset:0;background:#153d3033;display:flex;align-items:flex-end;justify-content:center;padding:18px;z-index:20;pointer-events:none}.result{pointer-events:auto;background:#fffbed;border:3px solid #9cb97c;border-radius:22px;padding:16px 26px;text-align:center;box-shadow:0 8px 25px #173d3030;display:grid;grid-template-columns:1fr auto;gap:7px 22px;align-items:center}.result .eyebrow,.result h2,.result p{grid-column:1/-1;margin:0}.result h2{font-size:22px}.result strong{font-size:28px}#again{border:0;border-bottom:4px solid #245b2a;border-radius:10px;background:#4f8e35;color:white;font-weight:bold;padding:14px 24px}#again:active{transform:translateY(3px)}@media(max-width:600px) and (orientation:portrait){.screen{padding-left:12px;padding-right:12px}#game{gap:8px}.play-layout{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) 144px;gap:8px}.tray-panel{padding:8px 10px;border-radius:16px}.tray-heading{display:flex;justify-content:space-between;align-items:center}.tray-heading h2{font-size:15px}#tray{grid-template-columns:repeat(5,minmax(0,1fr));margin-top:7px;gap:5px}.piece{padding:4px;border-radius:10px}.piece:last-child{grid-column:auto}.piece img{max-height:80px}.piece.used:after{font-size:10px}footer{flex-direction:column;gap:7px;min-height:68px}.categories span{padding:7px 12px}.instruction{max-width:330px;margin:auto}#feedback{text-align:center;font-size:14px}.result{padding:15px;gap:6px 10px}.result h2{font-size:19px}#completion{padding-bottom:18px}#monster{height:auto;width:auto;max-height:100%;max-width:100%;height:100%}}@media(max-height:500px){.screen{padding-top:7px;padding-bottom:7px}#game{gap:3px}header h1{font-size:19px}.eyebrow{font-size:9px}.instruction{font-size:12px}.play-layout{grid-template-columns:minmax(0,1fr) 230px;gap:12px}.tray-panel{padding:8px}.tray-heading{display:none}#tray{margin:0;grid-template-columns:repeat(3,1fr);gap:5px}.piece:last-child{grid-column:auto}.piece img{max-height:80px}.piece{padding:4px}footer{min-height:32px}.categories span{padding:5px 9px;font-size:12px}#feedback{font-size:12px}.welcome-content{flex-direction:row;width:min(760px,90vw);gap:20px}.logo{width:38%;max-height:65dvh}.wood{width:58%;max-height:85dvh;gap:6px}.hub{display:none}.result{padding:10px 20px}.result h2{font-size:18px}#completion{align-items:center;justify-content:flex-end}.result{width:270px}.result strong{font-size:22px}#again{padding:10px}.result h2{font-size:17px}}
.play-layout>*{min-width:0}#monster{flex:none;max-width:none;max-height:none}#tray{min-width:0}.piece{min-width:0}
@media(max-height:500px){.welcome-content{flex-direction:column;width:min(400px,74vw);gap:5px}.logo{width:210px;max-height:80px}.wood{width:100%;max-height:none;padding:27px 48px 24px;gap:5px}.wood label{font-size:16px}.name-frame input{font-size:16px}}
@media(max-height:500px){.wood{padding-top:45px;padding-bottom:20px}}

/* Master-derived attachment layers; only Monster 1 artwork is affected. */
#behind{position:absolute;inset:0;pointer-events:none;z-index:0}#base{position:relative;z-index:1}#targets{z-index:2}#attached{z-index:3}

/* Scale one composited raster surface to avoid seams between adjacent cutouts. */
#character-art{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none}#base,#behind,#attached{visibility:hidden}
