@font-face{font-family:Fredoka;src:url(assets/fredoka-400.woff2)}@font-face{font-family:Fredoka;src:url(assets/fredoka-600.woff2);font-weight:600}
:root{--ink:#17324d;--purple:#6244bb;--cream:#fff8e9;--gold:#f2c141}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}body,button{font-family:Fredoka,sans-serif;color:var(--ink)}button{cursor:pointer;touch-action:manipulation}button:disabled{cursor:default}button:focus-visible{outline:4px solid var(--purple);outline-offset:3px}button:active:not(:disabled){scale:.96}button img{pointer-events:none}img{user-select:none;-webkit-user-drag:none}::selection{background:#b28aff;color:#000}[hidden]{display:none!important}#game{height:100dvh;min-height:0;position:relative;isolation:isolate;overflow:hidden}.world,#opening,#opening picture{position:absolute;inset:0}.world{z-index:-1}.world img,#opening picture img{width:100%;height:100%;object-fit:cover}#opening{z-index:20}#opening h1{position:absolute;top:2%;left:20%;right:20%;text-align:center;font-size:clamp(28px,4vw,54px);line-height:1.05;margin:0;color:#17324d;text-shadow:0 2px 8px #ffffffda}#play{position:absolute;bottom:4%;left:50%;transform:translateX(-50%);width:106px;height:106px}.art{width:60px;height:60px;background:none;border:0;padding:0;flex:none}.art img{width:100%;height:100%;object-fit:contain}#adventure{height:100%;display:grid;grid-template-columns:230px 1fr;grid-template-rows:100px 1fr 94px;gap:10px;padding:12px 26px max(12px,env(safe-area-inset-bottom)) max(22px,env(safe-area-inset-left))}header{grid-column:1/-1;display:flex;align-items:flex-start;gap:26px;position:relative}#controls{display:flex;gap:10px;flex:none}#stars{display:flex;margin-left:auto;padding:8px;background:#fff8e9e8;border-radius:28px}#stars img{width:40px;height:40px;object-fit:contain}#trail{position:absolute;top:0;left:50%;transform:translateX(-50%);display:flex;gap:10px}#trail span{display:grid;place-items:center;width:54px;height:54px;border-radius:50%;background:#fff8e9b8;border:2px solid #fff8e9}#trail span.current{border-color:var(--purple);background:#e7dbff}#trail span.done{border-color:#b7861a}#trail img{width:44px;height:44px;object-fit:contain}.guide{align-self:center;display:flex;flex-direction:column-reverse;align-items:center;gap:6px}#repeat{height:185px;width:180px;border:0;background:none;padding:0}#repeat img{width:100%;height:100%;object-fit:contain}.speech{padding:18px;background:var(--cream);border-radius:30px;text-align:center;width:100%;box-shadow:0 8px 22px #17324d22}h2{font-size:17px;color:var(--purple);margin:0}#instruction{font-size:23px;line-height:1.16;margin:10px 0}#clue{display:flex;justify-content:center;gap:6px;min-height:66px}#clue img{width:65px;height:65px;object-fit:contain}#scene{min-height:0;position:relative;align-self:stretch;border-radius:30px;overflow:hidden;background:#fff8e91a;box-shadow:0 12px 28px #17324d22}.search-art{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.object{position:absolute;left:var(--x);top:var(--y);transform:translate(-50%,-50%);width:clamp(64px,8vw,114px);height:clamp(64px,8vw,114px);border:3px solid transparent;border-radius:22px;background:none;padding:6px}.object img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 4px 4px #17324d30)}.object.selected{border-color:var(--purple);background:#fff8e978}.object.found{opacity:.38}.object.found:after{content:'✓';position:absolute;right:0;top:0;color:#72520a;font-size:28px}.hinted{outline:4px dashed #b17c13;outline-offset:3px}.hiding-place{position:absolute;top:23%;left:var(--x);width:26%;height:62%;transform:translateX(-50%);border:3px solid transparent;border-radius:25px;background:none;padding:0}.hiding-place .resident{position:absolute;left:8%;top:10%;width:85%;height:65%;object-fit:contain;transition:transform .6s}.hiding-place .cover{position:absolute;left:0;bottom:0;width:100%;height:65%;object-fit:contain;transition:transform .6s}.hiding-place.selected{border-color:var(--purple);background:#fff8e938}.hiding-place.reveal .cover{transform:translateY(70%)}.hiding-place.reveal .resident{transform:translateY(-10%)}footer{grid-column:2;display:flex;align-items:center;gap:14px}#feedback{flex:1;text-align:center;font-size:19px;background:#fff8e9e8;border-radius:20px;padding:8px}#feedback:empty{background:none}#check{width:78px;height:78px;margin-left:auto}.primary,.quiet{min-height:56px;padding:12px 20px;border:0;border-radius:26px;background:var(--purple);color:white;font-size:19px;box-shadow:0 5px 13px #17324d22}.quiet{background:var(--cream);color:var(--ink);font-size:17px}#next{margin-left:auto}#rune{position:absolute;left:max(10px,env(safe-area-inset-left));bottom:max(8px,env(safe-area-inset-bottom));width:70px;height:70px;object-fit:contain;z-index:100;pointer-events:none}#overlay{position:absolute;inset:0;z-index:40;display:grid;place-items:center;background:#17324d99;padding:20px 20px 88px}.panel{background:var(--cream);border-radius:32px;max-height:100%;overflow:auto;width:min(700px,100%);padding:24px;text-align:center;scrollbar-color:#6244bb #fff8e9}.panel h2{font-size:32px}.panel p{font-size:20px}.panel .actions{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}.highfive{width:100%;height:230px;object-fit:contain}.friends{display:flex;justify-content:center;gap:8px;margin:18px 0}.friends button{background:#ede5fc;border:2px solid transparent;border-radius:18px;padding:8px;min-width:90px;font-size:17px}.friends img{width:70px;height:80px;object-fit:contain;display:block}.friends img.final{width:17%;height:110px}.medal{width:90px;height:90px;object-fit:contain}.demo-glow{outline:4px solid var(--gold);outline-offset:4px}#game[data-state=paused] *,#game[data-state=menu] *{animation-play-state:paused!important}
@media(max-width:1100px) and (orientation:landscape){#trail{top:64px}#adventure{grid-template-rows:118px 1fr 88px;grid-template-columns:190px 1fr}.guide #repeat{height:140px;width:145px}#instruction{font-size:21px}}
@media(orientation:portrait){#adventure{padding:8px 12px 12px;grid-template-columns:1fr;grid-template-rows:112px 112px 1fr 78px;gap:8px}header{grid-column:1;gap:6px}#controls{gap:8px;margin:auto}#trail{top:69px;left:4px;transform:none;gap:6px}#trail span{width:36px;height:36px}#trail img{width:30px;height:30px}#stars{position:absolute;right:0;top:72px;padding:3px;margin:0}#stars img{width:25px;height:25px}.guide{flex-direction:row;height:112px;gap:6px}#repeat{width:84px;height:105px;flex:none}.speech{padding:9px 12px;border-radius:23px;min-width:0}h2{font-size:13px}#instruction{font-size:18px;margin:4px 0}#clue{min-height:43px}#clue img{width:43px;height:43px}#scene{grid-row:3;grid-column:1;border-radius:24px}.object{width:68px;height:68px}.hiding-place{top:10%;width:31%;height:80%}.hiding-place .resident{top:15%}.hiding-place .cover{height:58%}footer{grid-column:1;grid-row:4;margin-left:66px;gap:8px}#feedback{display:none}#check{width:68px;height:68px}.quiet{font-size:14px;padding:10px 12px}#next{font-size:16px;padding:12px 16px}#rune{width:60px;height:60px}#opening h1{left:5%;right:5%;top:4%;font-size:clamp(27px,7.5vw,42px)}#play{width:94px;height:94px;bottom:5%}.panel{padding:20px 14px}.panel h2{font-size:26px}.panel p{font-size:17px}.highfive{height:180px}.friends{gap:6px;flex-wrap:wrap}.friends button{min-width:76px}.friends img{width:52px;height:62px}.primary{font-size:17px}.friends img.final{height:74px}.medal{width:65px;height:65px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
@media(orientation:portrait){#controls{margin:0 auto}#adventure{grid-template-rows:112px 140px 1fr 78px}.guide{height:140px}.speech{max-height:140px}} #game[data-state=paused] #check,#game[data-state=menu] #check{visibility:hidden}

.celebration-pair{display:flex;justify-content:center;height:230px;gap:20px}.celebration-pair img{width:42%;object-fit:contain}@media(orientation:portrait){.celebration-pair{height:180px}}

.seaweed-cluster{display:inline-block;position:relative;width:100%;height:100%;pointer-events:none}.seaweed-cluster img{position:absolute!important;width:34%!important;height:90%!important;left:33%;bottom:0;object-fit:contain}.seaweed-cluster img:nth-child(2){left:12%;height:76%!important;transform:rotate(-18deg)}.seaweed-cluster img:nth-child(3){left:53%;height:76%!important;transform:rotate(18deg)}#clue>.seaweed-cluster{width:65px;height:65px}@media(orientation:portrait){#clue>.seaweed-cluster{width:43px;height:43px}}

/* Audit v1.1: common controls, touch spacing and device safe areas. */
body[data-wm-controls-game="water-welcome"] #wm-game-controls{top:max(12px,env(safe-area-inset-top));left:max(22px,env(safe-area-inset-left));gap:10px}
body[data-wm-controls-game="water-welcome"] #wm-game-controls button{width:60px!important;height:60px!important;min-width:60px!important;min-height:60px!important;flex-basis:60px}
body[data-wm-controls-game="water-welcome"] #wm-game-controls button:focus-visible{outline:3px solid #6244bb;outline-offset:3px}
#adventure{padding-top:max(12px,env(safe-area-inset-top));padding-right:max(26px,env(safe-area-inset-right))}
#overlay{padding-top:max(20px,env(safe-area-inset-top));padding-bottom:max(88px,env(safe-area-inset-bottom))}
.mode-note{font-size:15px!important;margin:8px 0 14px}
@media(orientation:portrait){
 #adventure{padding:max(8px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))}
 body[data-wm-controls-game="water-welcome"] #wm-game-controls{left:50%;transform:translateX(-50%);top:max(8px,env(safe-area-inset-top));gap:8px}
 .object{left:var(--mx);top:var(--my);width:76px;height:76px}
 .hiding-place{width:28%}
}

#clue>img,#clue>.seaweed-cluster{min-width:0;flex-shrink:1}
