:root{font-family:ui-rounded,'Trebuchet MS',system-ui,sans-serif;color:#183b39;background:#f1f7f4;font-size:17px}*{box-sizing:border-box}body{margin:0}header{display:flex;align-items:center;gap:20px;padding:20px 5%;background:white;border-bottom:1px solid #d7e6de}header a{font-size:1.3rem;font-weight:900;color:#145e55;text-decoration:none;margin-right:auto}.brand-icon{background:#08786a;color:white;border-radius:13px;padding:7px 11px}.free{font-size:.85rem}main{max-width:1120px;margin:35px auto;padding:0 24px;min-height:65vh}h1{font-size:clamp(2rem,5vw,3.4rem);letter-spacing:-.05em;margin:10px 0 16px;line-height:1.1}h2{font-size:1.4rem}p{line-height:1.6}.eyebrow{font-weight:bold;color:#087466;letter-spacing:.1em;font-size:.85rem}.intro{max-width:700px}.panel{background:white;border:1px solid #dbe8e0;border-radius:24px;padding:28px;box-shadow:0 8px 0 #dfebe4;margin:24px 0}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.characters{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}button,.button{font:inherit;cursor:pointer;min-height:48px;border-radius:14px;border:2px solid #d4e2db;padding:12px 18px;background:white;color:#183b39;font-weight:bold;text-decoration:none}button:hover{border-color:#0b786a;background:#effaf4}button:disabled{cursor:default;opacity:.65}button.primary{background:#08786a;color:white;border-color:#08786a;box-shadow:0 4px 0 #04584e}button.selected{background:#e1f7ed;border-color:#08786a}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:4px solid #db7b00;outline-offset:4px}.emoji{font-size:3rem;display:block;margin:8px}.character{padding:15px 5px}.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.row>*{flex:0 1 auto}label{display:block;font-weight:bold;margin:16px 0 8px}input,select{width:100%;font:inherit;border:2px solid #bacfc3;border-radius:12px;padding:12px;min-height:48px;background:white;color:#183b39}.fields{display:grid;grid-template-columns:1fr 1fr;gap:20px}.world{position:relative;text-align:left;min-height:170px;padding:22px}.world .emoji{font-size:2.6rem}.world strong{display:block;font-size:1.2rem}.world small{display:block;margin-top:10px;font-size:.85rem}.world:nth-child(1){background:#d8f4e4}.world:nth-child(2){background:#e2f0ff}.world:nth-child(3){background:#fff0c5}.world:nth-child(4){background:#ffe6da}.world:nth-child(5){background:#eae3ff}.world:nth-child(6){background:#dbeef5}.map{position:relative}.stats{background:#ffe9ab;border-radius:14px;padding:12px 18px}.game-top{display:flex;justify-content:space-between;align-items:center;gap:10px}.progress{height:10px;background:#dbe9e1;border-radius:10px;margin:18px 0;overflow:hidden}.progress span{display:block;height:100%;background:#08786a}.stage{background:#e3f4eb;border:2px solid #bbdccd;border-radius:24px;padding:28px;text-align:center}.stage h2{font-size:1.8rem}.objects{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:24px 0}.object{background:white;min-height:150px;touch-action:none;user-select:none}.object .emoji{font-size:4rem}.drop{padding:22px;border:3px dashed #588675;border-radius:18px;background:#fffef4;min-height:90px}.drop.over{background:#ffe9ab}.feedback{min-height:50px;font-weight:bold;text-align:center;padding:12px}.hinted{border:4px solid #d18700}.notice{padding:15px;background:#fff0c5;border-radius:12px}.badge{font-size:4rem}.summary{text-align:center;max-width:760px;margin:auto}footer{text-align:center;padding:30px;color:#4c6b61;line-height:1.8;font-size:.9rem}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.large{font-size:21px}.contrast{color:#000;background:#fff}.contrast button{border-color:#000}.contrast .stage{background:#fff}.contrast .eyebrow{color:#004b39}@media(max-width:650px){header{padding:15px;gap:8px}header a{font-size:1rem}.free{display:none}main{padding:0 16px;margin:24px auto}.grid{grid-template-columns:1fr 1fr}.characters{grid-template-columns:1fr 1fr}.fields{grid-template-columns:1fr;gap:0}.panel,.stage{padding:18px}.objects{gap:8px}.object{padding:8px;min-height:120px}.object .emoji{font-size:2.6rem}.object span:last-child{font-size:.85rem}.world{padding:14px;min-height:165px}.game-top{flex-wrap:wrap}}@media(prefers-reduced-motion:no-preference){button{transition:background .15s,transform .15s}button:active{transform:translateY(2px)}}
