:root{font-family:Tahoma,"Noto Sans Thai",sans-serif;color:#48366b;--purple:#7351d4;--gold:#ffd43b}*{box-sizing:border-box}body{margin:0;overflow:hidden;background:#8edff1}button{font:inherit;cursor:pointer}main{height:100dvh;display:flex;flex-direction:column}header{height:clamp(70px,9vh,100px);display:grid;grid-template-columns:1fr minmax(220px,32%) 1fr;align-items:center;padding:10px clamp(15px,4vw,65px);background:#fff;border-bottom:5px solid #65cce5;z-index:5}.brand{font-size:clamp(20px,2vw,32px);font-weight:900}.progress{text-align:center;font-weight:800}.progress i{display:block;height:14px;border:3px solid #d7cbea;border-radius:12px;overflow:hidden;background:#eee8fa}.progress b{display:block;height:100%;background:linear-gradient(90deg,#7959e8,#f067ae)}.score{justify-self:end;font-weight:900}.score button{margin-left:8px;border:2px solid #ddd0ef;border-radius:12px;background:#fff;padding:7px}.stage{position:relative;flex:1;background:linear-gradient(#ffffff10,#43882d40),url("assets/farm-festival.png") center/cover no-repeat;overflow:hidden}.instruction{position:absolute;z-index:4;left:50%;top:2%;transform:translateX(-50%);width:min(700px,80%);padding:12px;text-align:center;border:5px solid #eadfff;border-radius:20px;background:#5c3ca9;color:#fff;box-shadow:0 8px #342169;font-weight:800}.board{position:absolute;left:50%;top:13%;bottom:16%;transform:translateX(-50%);width:min(94vw,1650px);display:grid;grid-template-columns:minmax(500px,1.45fr) 8% minmax(360px,.8fr);align-items:center;gap:18px}.animal-scene,.bond{position:relative;height:min(57vh,600px);border:9px solid #9b5b37;border-radius:30px;background:#fffdf3e8;box-shadow:0 13px #623a2b,0 20px 30px #263b2366;overflow:hidden}.animal-scene h2,.bond h2{margin:0;padding:16px;text-align:center;background:#ef5f59;color:#fff;font-size:clamp(16px,1.5vw,25px)}.animal-scene:after{content:"";position:absolute;left:0;right:0;bottom:0;height:13%;background:#5fc748;border-top:5px solid #9b5b37}.herd{height:calc(100% - 65px);display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:end;padding:15px 20px 11%;position:relative;z-index:2}.herd>div{display:flex;flex-wrap:wrap-reverse;justify-content:center;align-content:end}.animal{width:clamp(65px,5.5vw,105px);height:clamp(65px,5.5vw,105px);background-position:center;background-size:contain;background-repeat:no-repeat;filter:drop-shadow(0 7px 3px #24451d55);animation:pop .35s both}.arrow{text-align:center;font-size:clamp(45px,5vw,80px);color:#fff;text-shadow:0 5px #604785}.bond{border-color:#fff;background:#ffffffde}.bond h2{background:#6e4cce}.line{position:absolute;left:32%;top:47%;width:40%;height:7px;background:#8c7ca8;transform-origin:left}.line.one{transform:rotate(-29deg)}.line.two{transform:rotate(29deg)}.bond-circle{position:absolute;width:clamp(95px,7vw,130px);aspect-ratio:1;display:grid;place-items:center;border:7px solid #8f7bab;border-radius:50%;background:#fff;color:var(--purple);font-size:clamp(32px,3vw,50px);font-weight:900;box-shadow:0 7px #d5c7ec;z-index:2}.bond-circle.whole{left:7%;top:35%;border-color:#ef8661}.bond-circle.part-a{right:5%;top:17%}.bond-circle.part-b{right:5%;bottom:9%}.bond-circle.unknown{border-style:dashed;background:#fff8c9;color:#ef5f59;animation:pulse .8s infinite alternate}.bond-circle small{position:absolute;bottom:-28px;white-space:nowrap;font-size:11px;color:#665a7e}.answers{position:absolute;z-index:5;left:50%;bottom:4%;transform:translateX(-50%);display:flex;gap:15px}.answers button{width:clamp(75px,7vw,115px);height:clamp(62px,8vh,90px);border:5px solid #fff;border-radius:20px;background:linear-gradient(#7b59e4,#5637b3);color:#fff;font-size:clamp(27px,3vw,42px);font-weight:900;box-shadow:0 8px #38217e}.answers button.wrong{background:#e95660;animation:shake .35s}.answers button.correct{background:#42c977}#feedback{position:absolute;left:50%;bottom:.5%;transform:translateX(-50%);margin:0;color:#fff;font-weight:900;text-shadow:0 2px #3a265e}.overlay{position:fixed;z-index:20;inset:0;display:grid;place-items:center;background:linear-gradient(#3f286baa,#29144ddd),url("assets/farm-festival.png") center/cover}.overlay section{width:min(560px,90%);padding:35px;text-align:center;border:8px solid #eadcff;border-radius:38px;background:#fffdf3;box-shadow:0 17px #32205f}.overlay h1{margin:10px;font-size:clamp(45px,6vw,80px);color:#6b48c9}.overlay p{font-size:20px;line-height:1.7}.main-btn{padding:14px 30px;border:4px solid #fff;border-radius:18px;background:#7451d3;color:#fff;box-shadow:0 7px #442b96;font-size:22px;font-weight:900}.cup{font-size:70px}@keyframes pop{from{opacity:0;transform:translateY(30px) scale(.5)}}@keyframes pulse{to{transform:scale(1.07)}}@keyframes shake{25%,75%{transform:translateX(-8px)}50%{transform:translateX(8px)}}
@media(max-width:900px){body{overflow:auto}.board{top:12%;bottom:18%;grid-template-columns:1fr 50px 1fr;width:97vw}.animal-scene,.bond{height:52vh}.herd{padding-inline:4px}.animal{width:55px;height:55px}.bond-circle{width:78px}.answers{bottom:5%}}@media(max-height:700px) and (orientation:landscape){header{height:62px;padding-block:4px}.instruction{top:1%;padding:7px}.board{top:12%;bottom:17%}.animal-scene,.bond{height:58vh}.animal{width:clamp(48px,9vh,68px);height:clamp(48px,9vh,68px)}.animal-scene h2,.bond h2{padding:8px}.answers button{height:55px}}
