.pu-app{--pu-cream:#fff7e6;--pu-cream-2:#fdeccb;--pu-line:#ecd3a6;--pu-orange:#f28f22;--pu-orange-2:#ffb34a;--pu-orange-dark:#c66a10;--pu-ink:#5b3c22;--pu-ink-soft:#8a6a4a;--pu-green:#5f9c3c;--safe-t:env(safe-area-inset-top,0px);--safe-b:env(safe-area-inset-bottom,0px);--safe-l:env(safe-area-inset-left,0px);--safe-r:env(safe-area-inset-right,0px);--play-ink:#5b3c22;--play-accent:#e07b12;--play-paper:#fff7e6;--play-soft:#fdeccb;--play-shadow:#d9b47c;background:#a9cf7c url(/images/puppy-untangle/bg-yard.jpg) 50%/cover no-repeat;color:var(--pu-ink);overflow:hidden;height:100dvh;-webkit-tap-highlight-color:transparent;-moz-user-select:none;user-select:none;-webkit-user-select:none}.pu-app:before{content:"";background:radial-gradient(ellipse at center,#0000 40%,#3b2a1022 100%);pointer-events:none}.pu-app:before,.pu-stage{position:absolute;inset:0}.pu-stage{overflow:hidden;background:#b8d98c}.pu-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none;-webkit-touch-callout:none}.pu-app button{cursor:pointer;-webkit-tap-highlight-color:transparent}.pu-hud{position:absolute;z-index:4;top:calc(var(--safe-t) + 8px);left:calc(var(--safe-l) + 8px);right:calc(var(--safe-r) + 8px);gap:4px;padding:5px 6px 5px 8px;border-radius:22px;background:var(--pu-cream);box-shadow:0 3px 0 var(--pu-line),0 8px 18px #4a320f22;transition:opacity .25s,transform .25s}.pu-hud,.pu-lv{display:flex;align-items:center}.pu-lv{flex-direction:column;min-width:44px;line-height:1}.pu-lv b{font-size:20px;font-weight:800;color:var(--pu-ink)}.pu-hint-word,.pu-lv b{white-space:nowrap}@media (max-width:420px){.pu-lv b{font-size:17px}.pu-treat{width:24px;height:24px}.pu-app .pu-hint-btn{padding-right:6px}}.pu-lv-stars{margin-top:2px;font-size:13px;letter-spacing:1px;color:var(--pu-orange)}.pu-treats{display:flex;gap:2px;flex:0 0 auto}.pu-treat{width:26px;height:26px;transition:filter .3s,opacity .3s,transform .3s}.pu-treat.gone{filter:grayscale(1);opacity:.35;transform:scale(.86)}.pu-treat.pop{animation:pu-treat-pop .55s ease-out}@keyframes pu-treat-pop{0%{transform:scale(1);filter:none;opacity:1}35%{transform:scale(1.45) rotate(-12deg);filter:none;opacity:1}to{transform:scale(.86);filter:grayscale(1);opacity:.35}}.pu-pill{flex:1 1 auto;display:flex;justify-content:center;min-width:0}.pu-pill span{padding:4px 9px;border-radius:999px;background:#fff;border:2px solid var(--pu-line);font-size:15px;font-weight:800;white-space:nowrap;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.pu-app .pu-hint-btn{display:flex;align-items:center;gap:3px;min-height:44px;padding:4px 8px 4px 4px;border:0;border-radius:16px;background:linear-gradient(#ffb44c,#f28f22);color:#fff;font-size:15px;font-weight:800;box-shadow:inset 0 2px 0 #ffd79a,0 3px 0 var(--pu-orange-dark);transition:transform .12s}.pu-hint-btn img{width:26px;height:26px}.pu-hint-btn b{min-width:22px;padding:0 6px;border-radius:999px;background:#fff;color:var(--pu-orange-dark);font-size:14px;line-height:22px;text-align:center}.pu-hint-btn.empty{filter:saturate(.35) brightness(1.05)}.pu-hint-btn:active{transform:translateY(2px);box-shadow:inset 0 2px 0 #ffd79a,0 1px 0 var(--pu-orange-dark)}.pu-app .pu-round-btn{display:grid;place-items:center;width:44px;height:44px;flex:0 0 44px;border:2px solid var(--pu-line);border-radius:50%;background:#fff;color:var(--pu-ink);font-size:18px;font-weight:800;box-shadow:0 2px 0 var(--pu-line)}.pu-round-btn svg{width:22px;height:22px}.pu-tip{position:absolute;z-index:4;left:50%;top:calc(var(--safe-t) + 72px);transform:translate(-50%,-6px);width:max-content;max-width:min(92%,420px);margin:0;padding:8px 16px;border-radius:18px;background:#fffdf6;border:2px solid var(--pu-line);box-shadow:0 4px 12px #4a320f22;font-size:15px;font-weight:700;line-height:1.3;text-align:center;opacity:0;pointer-events:none;transition:opacity .3s,transform .3s}.pu-tip.show{opacity:1;transform:translate(-50%)}.pu-focus{position:absolute;z-index:3;left:var(--x);top:var(--y);width:var(--s);height:var(--s);transform:translate(-50%,-50%);border:3px dashed var(--pu-orange);border-radius:50%;pointer-events:none;opacity:0;transition:opacity .15s;box-shadow:0 0 0 4px #fff8}.pu-focus.show{opacity:1;animation:pu-spin 6s linear infinite}@keyframes pu-spin{to{transform:translate(-50%,-50%) rotate(1turn)}}.pu-home{position:absolute;z-index:4;inset:calc(var(--safe-t) + 20px) 16px calc(var(--safe-b) + 92px);display:none;flex-direction:column;align-items:center;justify-content:center;text-align:center;pointer-events:none}.pu-home>*{pointer-events:auto}.pu-home-card{width:clamp(110px,32vw,170px);height:auto;filter:drop-shadow(0 8px 10px #3b2a1040);animation:pu-bob 3.2s ease-in-out infinite}@keyframes pu-bob{50%{transform:translateY(-6px) rotate(1.5deg)}}.pu-title{margin:10px 0 2px;font-size:clamp(38px,11vw,54px);line-height:1;font-weight:800;color:#fff;letter-spacing:-.5px;-webkit-text-stroke:2px #7a4d22;paint-order:stroke fill;text-shadow:0 4px 0 #7a4d22,0 9px 16px #3b2a1055}.pu-tagline{margin:6px 0 18px;padding:4px 14px;border-radius:999px;background:#fff7e6e6;font-size:16px;font-weight:700;color:var(--pu-ink)}.pu-app .pu-walk{display:flex;flex-direction:column;align-items:center;min-width:210px;padding:10px 36px 12px;border:0;border-radius:26px;background:linear-gradient(#ffbd57,#f28f22);color:#fff;box-shadow:inset 0 3px 0 #ffe0a8,0 6px 0 var(--pu-orange-dark),0 12px 22px #6b3b0844;transition:transform .12s}.pu-walk:hover{transform:translateY(-2px)}.pu-walk:active{transform:translateY(4px);box-shadow:inset 0 3px 0 #ffe0a8,0 2px 0 var(--pu-orange-dark)}.pu-walk-word{font-size:32px;font-weight:800;line-height:1.05;text-shadow:0 2px 0 #c66a1088}.pu-walk small{font-size:16px;font-weight:700;opacity:.95}.pu-home-stats{display:flex;gap:10px;margin:16px 0 0}.pu-home-stats span{padding:5px 12px;border-radius:999px;background:#fff7e6e6;border:2px solid var(--pu-line);font-size:15px;font-weight:700}.pu-home-stats b{color:var(--pu-orange-dark)}.pu-nav{position:absolute;z-index:5;left:0;right:0;bottom:0;display:flex;justify-content:space-around;gap:2px;padding:6px 6px calc(var(--safe-b) + 6px);background:var(--pu-cream);border-top:2px solid var(--pu-line);border-radius:22px 22px 0 0;box-shadow:0 -6px 16px #4a320f1f}.pu-app .pu-nav-btn{position:relative;flex:1 1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;min-height:54px;min-width:44px;padding:4px 2px;border:0;border-radius:16px;background:none;color:var(--pu-ink-soft);font-size:12px;font-weight:700;transition:background .15s,color .15s}.pu-nav-btn span{white-space:nowrap}.pu-nav-btn[aria-pressed=true]{color:var(--pu-orange-dark);background:var(--pu-cream-2)}.pu-nav-btn:active{transform:translateY(1px)}.pu-badge{top:2px;right:calc(50% - 30px);padding:0 5px;background:#e8473c;color:#fff;font:800 10px/16px Playful,sans-serif;font-style:normal}.pu-badge,.pu-toast{position:absolute;border-radius:999px}.pu-toast{z-index:8;left:50%;top:calc(var(--safe-t) + 76px);transform:translate(-50%,-10px);max-width:88%;padding:8px 16px;background:#5b3c22ee;color:#fff7e6;font-size:15px;font-weight:700;text-align:center;opacity:0;pointer-events:none;transition:opacity .25s,transform .25s}.pu-toast.show{opacity:1;transform:translate(-50%)}.pu-park{position:absolute;z-index:6;left:12px;right:12px;bottom:calc(var(--safe-b) + 14px);display:none;justify-content:center}.pu-park.show{display:flex;animation:pu-rise .5s ease-out}@keyframes pu-rise{0%{opacity:0;transform:translateY(30px)}}.pu-card{width:min(420px,100%);padding:20px 22px;border-radius:28px;background:var(--pu-cream);border:3px solid #fff;box-shadow:0 6px 0 var(--pu-line),0 18px 40px #3b2a1040;text-align:center;color:var(--pu-ink)}.pu-card h2{margin:0 0 6px;font-size:28px;line-height:1.1;font-weight:800;color:var(--pu-orange-dark)}.pu-card p{margin:0 0 12px;font-size:16px;line-height:1.35}.pu-park-gift:empty{display:none}.pu-park-gift{font-weight:800;color:var(--pu-green)}.pu-app .pu-cta{display:block;width:100%;min-height:52px;margin:8px 0 0;padding:10px 20px;border:0;border-radius:20px;background:linear-gradient(#ffbd57,#f28f22);color:#fff;font-size:21px;font-weight:800;box-shadow:inset 0 3px 0 #ffe0a8,0 5px 0 var(--pu-orange-dark);transition:transform .12s}.pu-cta:active{transform:translateY(3px);box-shadow:inset 0 3px 0 #ffe0a8,0 2px 0 var(--pu-orange-dark)}.pu-app .pu-secondary{display:inline-flex;align-items:center;justify-content:center;min-height:44px;margin:8px 0 0;padding:8px 16px;border:2px solid var(--pu-line);border-radius:16px;background:#fff;color:var(--pu-ink);font-size:16px;font-weight:700;text-decoration:none;box-shadow:0 3px 0 var(--pu-line)}.pu-secondary:active{transform:translateY(2px);box-shadow:0 1px 0 var(--pu-line)}.pu-app[data-phase=home] .pu-home{display:flex}.pu-app:is([data-phase=home],[data-phase=loading],[data-phase=park]) .pu-hud,.pu-app:is([data-phase=home],[data-phase=loading],[data-phase=park]) .pu-tip{opacity:0;pointer-events:none;transform:translateY(-12px)}.pu-app[data-phase=park] .pu-nav{transform:translateY(110%)}.pu-nav{transition:transform .3s}.pu-app[data-phase=won] .pu-hint-btn,.pu-app[data-phase=won] .pu-restart{pointer-events:none;opacity:.6}.pu-scrim{position:fixed;inset:0;z-index:11;background:#3b2a1040;opacity:0;pointer-events:none;transition:opacity .25s}.pu-scrim.show{opacity:1;pointer-events:auto}.pu-sheet{position:fixed;z-index:12;display:flex;flex-direction:column;gap:8px;overflow-y:auto;overscroll-behavior:contain;padding:16px 18px calc(var(--safe-b) + 18px);background:var(--pu-cream);color:var(--pu-ink);border:3px solid #fff;box-shadow:0 -8px 30px #3b2a1040;visibility:hidden;transition:transform .3s ease,visibility 0s .3s}.pu-sheet.show{visibility:visible;transition:transform .3s ease}.pu-sheet-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.pu-sheet h2{margin:0;font-size:26px;font-weight:800;color:var(--pu-orange-dark)}.pu-sheet-note{margin:0;font-size:15px;color:var(--pu-ink-soft)}.pu-sheet-sub{margin:10px 0 0;font-size:18px;font-weight:800}@media (max-aspect-ratio:4/5),(max-width:700px){.pu-sheet{left:0;right:0;bottom:0;max-height:min(82dvh,720px);border-radius:26px 26px 0 0;transform:translateY(105%)}.pu-sheet.show{transform:none}}@media (min-width:701px) and (min-aspect-ratio:4/5){.pu-sheet{top:max(16px,var(--safe-t));bottom:max(16px,var(--safe-b));right:max(16px,var(--safe-r));width:min(400px,calc(100vw - 32px));border-radius:26px;transform:translateX(calc(100% + 40px))}.pu-sheet.show{transform:none}.pu-scrim{display:none}}.pu-breed-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:10px;gap:10px}.pu-breed-grid[hidden]{display:none}.pu-app .pu-breed{position:relative;padding:0;border:3px solid #fff;border-radius:16px;overflow:hidden;background:#e9dfc8;box-shadow:0 3px 0 var(--pu-line);aspect-ratio:3/4;color:var(--pu-ink)}.pu-breed img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.pu-breed-name{position:absolute;left:4px;right:4px;bottom:4px;padding:3px 4px;border-radius:10px;background:#fff7e6ee;font-size:12px;font-weight:800;line-height:1.15}.pu-breed.locked{cursor:default;opacity:1}.pu-breed.locked img{filter:grayscale(1) brightness(.35) blur(3px);opacity:.7}.pu-breed.locked .pu-breed-name{background:#ffffffcc;color:var(--pu-ink-soft)}.pu-breed .pu-badge{top:6px;right:6px}.pu-breed-detail{display:grid;grid-template-columns:minmax(120px,42%) 1fr;grid-gap:14px;gap:14px;align-items:start}.pu-breed-detail[hidden]{display:none}.pu-breed-detail img{width:100%;height:auto;border-radius:18px;border:3px solid #fff;box-shadow:0 4px 0 var(--pu-line)}.pu-breed-detail h3{margin:4px 0 6px;font-size:22px;font-weight:800;color:var(--pu-orange-dark)}.pu-breed-detail p{margin:0;font-size:15px;line-height:1.45}.pu-invite-link{margin:4px 0;padding:10px 12px;border-radius:14px;background:#fff;border:2px dashed var(--pu-line);font-size:14px;word-break:break-all;-moz-user-select:text;user-select:text;-webkit-user-select:text}.pu-hints-now{display:flex;align-items:center;gap:12px;padding:8px 12px;border-radius:18px;background:#fff}.pu-hints-now p{margin:0;font-size:18px;font-weight:700}.pu-hints-now b{font-size:28px;color:var(--pu-orange-dark)}.pu-hints-list{margin:0;padding-left:20px;display:grid;grid-gap:8px;gap:8px;font-size:15px;line-height:1.4}.pu-toggles{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px}.pu-app .pu-toggle{display:flex;justify-content:space-between;align-items:center;gap:8px;min-height:48px;padding:8px 14px;border:2px solid var(--pu-line);border-radius:16px;background:#fff;color:var(--pu-ink);font-size:15px;font-weight:700}.pu-toggle b{color:var(--pu-orange-dark)}.pu-levels{display:grid;grid-template-columns:repeat(5,1fr);grid-gap:6px;gap:6px}.pu-app .pu-level-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:48px;padding:3px 0;border:2px solid var(--pu-line);border-radius:12px;background:#fff;color:var(--pu-ink);line-height:1.05}.pu-level-btn b{font-size:16px}.pu-level-btn small{font-size:10px;color:var(--pu-orange)}.pu-level-btn.park{background:#eef7dc}.pu-level-btn.current{border-color:var(--pu-orange);box-shadow:0 0 0 2px var(--pu-orange-2)}.pu-level-btn:disabled{opacity:.45;cursor:default}.pu-keys{margin:6px 0 0;font-size:13px;color:var(--pu-ink-soft)}.pu-all-games{align-self:flex-start}@media (hover:none),(pointer:coarse){.pu-keys{display:none}}.pu-app .overlay.pu-fail,.pu-app .overlay.pu-results{background:#fff4dc66;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);padding:calc(var(--safe-t) + 20px) 16px calc(var(--safe-b) + 20px)}.pu-results-card{display:flex;flex-direction:column;align-items:stretch;margin:auto}.pu-kicker{margin:0 0 2px!important;font-size:15px!important;font-weight:800;color:var(--pu-ink-soft)}.pu-r-stars{display:flex;justify-content:center;gap:6px;margin:4px 0 10px}.pu-star{font-size:48px;line-height:1;color:#e4d6bb;text-shadow:0 3px 0 #d8c5a0}.pu-star.on{color:#ffb21f;text-shadow:0 3px 0 var(--pu-orange-dark);animation:pu-star-pop .5s cubic-bezier(.3,1.6,.5,1) both}@keyframes pu-star-pop{0%{transform:scale(0) rotate(-40deg);opacity:0}}.pu-stat-grid{align-self:center;margin:0 0 6px;padding:12px 22px!important;font-size:18px!important;box-shadow:0 4px 0 var(--pu-line)!important}.pu-app .stat-grid span:nth-child(odd){color:var(--pu-ink-soft)}.pu-app .stat-grid span:nth-child(2n){color:var(--pu-orange-dark)}.pu-r-new{font-weight:800;color:var(--pu-green)}.pu-r-new:empty{display:none}.pu-row{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}.pu-row .pu-secondary{flex:1 1}.pu-fail-card{margin:auto}.pu-fail-icon{filter:grayscale(.6);animation:pu-bob 2.4s ease-in-out infinite}.pu-fail-card .pu-secondary{width:100%}.pu-loading{background:#cfe6a9f0!important}@media (min-width:701px) and (min-height:521px) and (min-aspect-ratio:4/5){.pu-stage{left:50%;right:auto;top:16px;bottom:16px;width:min(480px,calc((100dvh - 32px) * .6));transform:translateX(-50%);border-radius:32px;box-shadow:0 0 0 6px #fff7e6,0 0 0 9px #d9b47c,0 24px 60px #2b3a1b66}.pu-hud{top:10px;left:10px;right:10px}.pu-nav{border-radius:22px 22px 26px 26px}}@media (orientation:landscape) and (max-height:520px){.pu-hud{left:calc(var(--safe-l) + 8px);right:auto;top:calc(var(--safe-t) + 8px);width:236px;flex-wrap:wrap;justify-content:center;row-gap:6px}.pu-pill{flex:0 0 auto}.pu-tip{left:calc(var(--safe-l) + 8px);top:auto;bottom:calc(var(--safe-b) + 76px);width:236px;max-width:236px;font-size:13px;padding:6px 10px}.pu-tip,.pu-tip.show{transform:none}.pu-nav{left:calc(var(--safe-l) + 8px);right:auto;bottom:calc(var(--safe-b) + 8px);width:236px;padding:4px;border-radius:20px;border:2px solid var(--pu-line)}.pu-nav-btn{min-height:46px}.pu-nav-btn span{display:none}.pu-home{left:calc(var(--safe-l) + 252px);right:calc(var(--safe-r) + 12px);top:10px;bottom:10px}.pu-home-card{width:84px}.pu-title{font-size:38px;margin-top:4px}.pu-tagline{margin:4px 0 10px;font-size:14px}.pu-walk{padding:6px 30px 8px}.pu-walk-word{font-size:26px}.pu-home-stats{margin-top:8px}.pu-toast{left:calc(50% + 126px)}.pu-park{left:auto;right:12px;width:min(380px,55vw)}.pu-park .pu-card{padding:12px 16px}.pu-card h2{font-size:24px}}@media (max-width:360px){.pu-hint-word{display:none}.pu-treat{width:26px;height:26px}.pu-lv{min-width:44px}.pu-lv b{font-size:18px}}@media (prefers-reduced-motion:reduce){.pu-fail-icon,.pu-focus.show,.pu-home-card{animation:none}}