:root{--bg:#fff4d6;--bg2:#ffe7b0;--ink:#3a2e28;--sub:#8a7566;--orange:#f0862c;--blue:#3c78c8;--pink:#f07a98;--card:#ffffff;--line:#3a2e28}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}body,html{margin:0;padding:0;background:var(--bg);color:var(--ink)}body{font-family:Zen Maru Gothic,Hiragino Maru Gothic ProN,Hiragino Sans,sans-serif;background-image:radial-gradient(var(--bg2) 18%,transparent 19%);background-size:28px 28px;min-height:100dvh;overscroll-behavior:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}button{font-family:inherit;color:inherit}.app{max-width:480px;margin:0 auto;min-height:100dvh;display:flex;flex-direction:column;position:relative}.btn{display:block;width:100%;border:3px solid var(--line);border-radius:18px;padding:12px 10px;font-size:18px;font-weight:900;color:#fff;background:var(--orange);box-shadow:0 5px 0 var(--line);cursor:pointer}.btn:active{transform:translateY(3px);box-shadow:0 2px 0 var(--line)}.btn.blue{background:var(--blue)}.btn.white{background:#fff;color:var(--ink)}.btn.small{font-size:14px;padding:8px;border-radius:14px;box-shadow:0 3px 0 var(--line)}.row{display:flex;gap:10px;width:100%}.row>*{flex:1 1}.links{display:flex;gap:6px;width:100%;flex-wrap:wrap;justify-content:center}.links a{flex:1 1;min-width:90px;font-size:12px;font-weight:700;color:var(--ink);background:#fff;border:2px solid var(--line);border-radius:12px;padding:7px 4px;text-decoration:none;text-align:center}.title{position:relative;flex:1 1;display:flex}.title-bg{position:absolute;inset:0 0 auto 0;aspect-ratio:16/10;background:50%/cover no-repeat;opacity:.45;-webkit-mask-image:linear-gradient(#000 60%,transparent);mask-image:linear-gradient(#000 60%,transparent)}.title-in{position:relative;flex:1 1;display:flex;flex-direction:column;align-items:center;gap:10px;padding:26px 16px 24px;text-align:center}.kicker{margin:0;font-weight:900;color:var(--blue);background:#fff;border:2.5px solid var(--line);border-radius:999px;padding:3px 14px;font-size:13px}.title h1{font-size:40px;line-height:1.12;margin:4px 0 0;color:var(--orange);-webkit-text-stroke:2px var(--line);paint-order:stroke fill;text-shadow:0 4px 0 var(--line)}.title h1 span{color:var(--blue);font-size:50px}.title .sub{margin:0;font-weight:900;font-size:15px}.title-chars{display:flex;align-items:flex-end;justify-content:center;gap:0;height:130px}.title-chars img{width:120px;animation:bob 1.8s ease-in-out infinite}.title-chars img.far{width:76px;opacity:.8;margin-left:18px;animation-delay:.5s}.title-chars img.poppo{width:70px;animation-delay:.9s}@keyframes bob{0%,to{transform:translateY(0)}50%{transform:translateY(-7px)}}.story{border:3px solid var(--line);border-radius:18px;padding:10px 12px;font-size:14px;line-height:1.7;margin:0;font-weight:700}.prog,.story{background:#fff}.prog{width:100%;height:12px;border:2.5px solid var(--line);border-radius:999px;overflow:hidden}.prog div{height:100%;background:var(--pink)}.prog-t{margin:-4px 0 0;font-size:14px;font-weight:900}.rule{font-size:12px;color:var(--sub);margin:0;line-height:1.7;font-weight:700}.topbar{display:flex;align-items:center;gap:6px;padding:8px 10px;position:-webkit-sticky;position:sticky;top:0;z-index:5;background:rgba(255,244,214,.95);border-bottom:3px solid var(--line)}.hearts{display:flex;gap:1px;font-size:18px}.hearts span{color:#e3d4c4}.hearts span.on{color:#f05a78}.pts{font-weight:900;font-size:15px;border:2px solid var(--line);border-radius:999px;padding:1px 8px;margin-right:auto}.ic,.pts{background:#fff}.ic{border:2px solid var(--line);border-radius:12px;font-size:18px;padding:2px 6px;display:flex;flex-direction:column;align-items:center;line-height:1.1;cursor:pointer}.ic small{font-size:9px;font-weight:900}.scene{flex:1 1;display:flex;flex-direction:column}.pic{position:relative;aspect-ratio:16/10;background:50%/cover no-repeat;border-bottom:3px solid var(--line);flex:none}.heading{position:absolute;left:10px;top:10px;background:#fff;border:3px solid var(--line);border-radius:14px;padding:4px 12px;font-weight:900;font-size:16px;box-shadow:0 3px 0 var(--line);max-width:calc(100% - 20px)}.heading.small{font-size:13px;padding:3px 10px}.pic .foe{position:absolute;left:50%;bottom:6px;transform:translateX(-50%);height:72%;animation:bobc 1.6s ease-in-out infinite}@keyframes bobc{0%,to{transform:translateX(-50%)}50%{transform:translate(-50%,-7px)}}.pic .foe.yay{animation:hop .5s ease-out 2}@keyframes hop{0%,to{transform:translate(-50%)}50%{transform:translate(-50%,-18px)}}.duo{position:absolute;left:0;right:0;bottom:6px;display:flex;justify-content:center;align-items:flex-end}.duo img{height:120px;animation:bob 1.6s ease-in-out infinite}.duo img:nth-child(2){animation-delay:.3s}.duo img:nth-child(3){height:80px;animation-delay:.6s}.talk{flex:1 1;display:flex;align-items:flex-start;gap:8px;padding:12px 10px 20px;cursor:pointer;min-height:220px}.talk .face{width:84px;flex:none;margin-top:4px}.box{position:relative;flex:1 1;background:#fff;border:3px solid var(--line);border-radius:18px;padding:10px 12px 22px;box-shadow:0 4px 0 var(--line);min-height:120px}.box.narr{background:#fffdf3}.box .who{font-weight:900;color:var(--orange);font-size:13px;margin-bottom:2px}.box p{margin:0;font-size:17px;line-height:1.7;font-weight:700;white-space:pre-wrap}.box .more{position:absolute;right:12px;bottom:4px;font-size:13px;animation:blink 1s infinite}@keyframes blink{50%{opacity:.2}}.panel{flex:1 1;padding:12px 12px 22px;display:flex;flex-direction:column;gap:10px}.panel.center{align-items:center;text-align:center}.qhead{font-weight:900;font-size:15px;color:var(--blue);margin:0}.q{margin:0;font-size:17px;line-height:1.7;font-weight:700;background:#fff;border:3px solid var(--line);border-radius:16px;padding:10px 12px;width:100%}.q.small{font-size:14px;background:#fffdf3}.q.omoinote{background:#eef3ff}.ngmsg{color:#d2445f}.ngmsg,.okmsg{margin:0;font-weight:900;font-size:14px}.okmsg{color:#2e9a5e}.choices{display:flex;flex-direction:column;gap:8px}.choice{background:#fff;border:3px solid var(--line);border-radius:16px;padding:12px;font-size:17px;font-weight:900;box-shadow:0 4px 0 var(--line);cursor:pointer;text-align:left}.choice:active{transform:translateY(2px);box-shadow:0 2px 0 var(--line)}.choice.x{opacity:.4;text-decoration:line-through}.choice.soft{background:#f5efe6;font-size:15px}.items{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px}.item{background:#fff;border:2.5px solid var(--line);border-radius:14px;padding:8px 6px;font-weight:900;font-size:14px;display:flex;flex-direction:column;align-items:center;gap:2px;cursor:pointer;box-shadow:0 3px 0 var(--line)}.item span{font-size:28px}.item small{color:var(--sub);font-size:12px}.item:disabled{opacity:.4}.item.back{background:#f5efe6;justify-content:center}.chest{font-size:72px;animation:hop2 .8s ease-in-out infinite}@keyframes hop2{50%{transform:translateY(-8px) rotate(-4deg)}}.got{display:flex;flex-direction:column;gap:6px;width:100%}.got div{background:#fff;border:2.5px solid var(--line);border-radius:14px;padding:8px 10px;font-weight:900;font-size:16px;display:flex;align-items:center;gap:8px;text-align:left}.got span{font-size:24px}.got .clue{background:#eef3ff;font-size:14px}.pop{animation:pop .4s ease-out}@keyframes pop{0%{transform:scale(.7);opacity:0}to{transform:scale(1);opacity:1}}.clues{width:100%;text-align:left}.clues p{margin:4px 0;background:#eef3ff;border:2px solid var(--line);border-radius:12px;padding:6px 10px;font-size:14px;font-weight:700}.mapwrap{flex:1 1;min-height:0}.maphead,.mapwrap{display:flex;flex-direction:column}.maphead{padding:8px 12px 4px}.maphead b{font-size:17px}.maphead span{font-size:13px;color:var(--sub);font-weight:700}.mapscroll{height:calc(100dvh - 210px);min-height:360px;overflow-y:auto;margin:0 10px;border:3px solid var(--line);border-radius:20px;background-color:#f4ecd6;background-position:top;background-size:100% auto;background-repeat:repeat-y;background-attachment:local}.map,.mapscroll{position:relative}.map{width:100%;display:block}.road{stroke:#b8a58f;stroke-width:1.4;stroke-dasharray:2 1.6;stroke-linecap:round}.road.done{stroke:var(--orange);stroke-dasharray:none;stroke-width:1.6}.node circle{stroke:var(--line);stroke-width:.8}.node circle.vis{fill:#fff}.node circle.near{fill:#fff8e4}.node circle.far{fill:rgba(255,255,255,.5);stroke-dasharray:1 1}.node.can circle{fill:#ffe066;animation:glow 1.1s ease-in-out infinite;cursor:pointer}.node.can{cursor:pointer}@keyframes glow{50%{fill:#fff3b8}}.node .ico{font-size:4.8px}.node .ico,.node .lbl{text-anchor:middle;pointer-events:none}.node .lbl{font-size:3.6px;font-weight:900;fill:var(--ink);paint-order:stroke;stroke:#fff;stroke-width:.9px}.me{pointer-events:none}.mapfoot{padding:8px 10px 16px;display:flex;flex-direction:column;gap:6px}.mapfoot p{margin:0;text-align:center;font-weight:900;font-size:14px}.sheet{position:fixed;inset:0;background:rgba(58,46,40,.45);z-index:20;display:flex;align-items:flex-end;justify-content:center}.sheet-in{width:100%;max-width:480px;max-height:82dvh;overflow-y:auto;background:var(--bg);border:3px solid var(--line);border-bottom:none;border-radius:22px 22px 0 0;padding:14px 14px 24px;display:flex;flex-direction:column;gap:10px}.sheet h2{margin:0 0 4px;font-size:18px}.hint{margin:0;font-size:13px;color:var(--sub);font-weight:700}.baglist{display:flex;flex-direction:column;gap:8px;margin-top:8px}.bagitem{display:flex;align-items:center;gap:10px;background:#fff;border:2.5px solid var(--line);border-radius:14px;padding:8px 10px}.bagitem .big{font-size:30px}.bagitem div{flex:1 1;display:flex;flex-direction:column}.bagitem small{color:var(--sub);font-size:12px;font-weight:700}.bagitem .btn{width:auto}.notech{background:#fff;border:2.5px solid var(--line);border-radius:14px;padding:8px 10px;margin-top:8px}.notech p{margin:4px 0 0;font-size:14px;font-weight:700;line-height:1.6}.toast{position:fixed;left:50%;top:70px;transform:translateX(-50%);width:min(92%,420px);background:#fff;border:3px solid var(--line);border-radius:16px;padding:10px 12px;font-weight:900;font-size:15px;text-align:center;z-index:30;animation:pop .3s ease-out}.launch,.toast{box-shadow:0 4px 0 var(--line)}.launch{width:100%;background:var(--pink);color:#fff;border:3px solid var(--line);border-radius:18px;padding:8px 10px}.launch-d{margin:0;font-size:22px;font-weight:900;-webkit-text-stroke:1px var(--line);paint-order:stroke fill}.launch-c{margin:2px 0 0;font-size:15px;font-weight:900}.launch-c b{font-size:26px}.tz-h{margin:10px 0 0;font-weight:900;font-size:16px;color:var(--blue)}.tz-feats{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:6px;gap:6px;width:100%}.tz-feats div{background:#fff;border:2.5px solid var(--line);border-radius:14px;padding:6px 4px;font-size:11.5px;font-weight:900;line-height:1.35;display:flex;flex-direction:column;align-items:center;gap:2px}.tz-feats span{font-size:24px}.tz-places{display:grid;grid-template-columns:1fr 1fr;grid-gap:6px;gap:6px;width:100%}.tz-places div{position:relative;aspect-ratio:16/10;border:2.5px solid var(--line);border-radius:14px;background:50%/cover no-repeat;overflow:hidden;display:flex;align-items:flex-end}.tz-places span{background:rgba(255,255,255,.9);border-top:2px solid var(--line);width:100%;font-size:12px;font-weight:900;padding:2px 0;line-height:1.3}.tz-places .secret{background:#5b5470;align-items:center;justify-content:center}.tz-places .secret span{background:none;border:0;color:#fff;font-size:15px}.tz-foes{display:flex;gap:6px;width:100%}.tz-foes div{flex:1 1;background:#fff;border:2.5px solid var(--line);border-radius:14px;padding:4px;font-size:12px;font-weight:900;display:flex;flex-direction:column;align-items:center}.tz-foes img{width:70px;height:70px;object-fit:contain;animation:bob 1.8s ease-in-out infinite}.pic-dim{position:absolute;inset:0;background:rgba(30,30,70,.35)}.countdown{margin:0;font-weight:900;font-size:16px}.countdown b{font-size:24px;color:var(--blue)}.btn.line{background:#06c755;text-align:center;text-decoration:none}.linebox{width:100%;background:#fff;border:3px solid var(--line);border-radius:18px;padding:10px;display:flex;flex-direction:column;gap:8px}.linebox p{font-size:13.5px;line-height:1.6}.linebox p,.steps{margin:0;font-weight:700}.steps{text-align:left;background:#fff;border:3px solid var(--line);border-radius:16px;padding:10px 10px 10px 32px;line-height:2;font-size:14px;width:100%;box-sizing:border-box}