:root{--ink: #1c1b1b;--sub: #6a6a6a;--accent: #f94c43;--accent-dark: #e0392f;--cream: #f4f1ea;--paper: #ffffff;--border: #e9e5dd;--radius: 18px;--shadow: 0 12px 44px rgba(28, 27, 27, .16);--safe-b: env(safe-area-inset-bottom, 0px);--safe-l: env(safe-area-inset-left, 0px);--safe-r: env(safe-area-inset-right, 0px)}*{box-sizing:border-box}html,body{margin:0;padding:0;width:100%;height:100%;overflow:hidden;background:var(--cream);font-family:Montserrat,system-ui,-apple-system,sans-serif;color:var(--ink);-webkit-tap-highlight-color:transparent;overscroll-behavior:none;touch-action:none}#container,#container canvas{position:fixed;inset:0;width:100%;height:100%;display:block}#loading-screen{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;background:linear-gradient(165deg,#faf7f1,#ece4d6);transition:opacity .5s ease}#loading-screen.fade-out{opacity:0}.loading-card{text-align:center}.loading-logo{font-size:2.6rem;font-weight:700;letter-spacing:-.03em;color:var(--ink);margin-bottom:1.3rem}.loading-logo-img{display:block;width:260px;max-width:72vw;height:auto;margin:0 auto 1.1rem;mix-blend-mode:multiply}.loader{width:44px;height:44px;margin:0 auto .9rem;border:4px solid rgba(28,27,27,.12);border-top-color:var(--accent);border-radius:50%;animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-text{font-weight:600;color:var(--ink)}.loading-progress{margin-top:.3rem;font-variant-numeric:tabular-nums;color:var(--sub)}#hud{position:fixed;top:calc(14px + env(safe-area-inset-top,0px));left:calc(14px + var(--safe-l));right:calc(14px + var(--safe-r));z-index:20;display:flex;justify-content:space-between;align-items:flex-start;pointer-events:none;gap:10px}#discovery-counter{background:#ffffffe6;backdrop-filter:blur(8px);border-radius:999px;padding:9px 18px;font-weight:700;font-size:1rem;box-shadow:var(--shadow);display:flex;align-items:center;gap:6px;letter-spacing:-.01em}.discovery-label{font-weight:500;color:var(--sub);font-size:.82rem}#discovery-count{color:var(--accent);display:inline-block}#discovery-count.pop{animation:pop .35s ease}@keyframes pop{0%{transform:scale(1)}40%{transform:scale(1.55)}to{transform:scale(1)}}.hint{background:#1c1b1b8c;color:#fff;border-radius:12px;padding:8px 13px;font-size:.74rem;font-weight:500;max-width:55%;text-align:right}body.is-touch .hint-desktop,body.is-desktop .hint-mobile{display:none}.overlay{position:fixed;inset:0;z-index:40;display:flex;align-items:flex-end;justify-content:center;pointer-events:none;padding:16px;padding-bottom:calc(20px + var(--safe-b))}.overlay.hidden{display:none}.card{pointer-events:auto;background:var(--paper);border-radius:var(--radius);box-shadow:var(--shadow);width:min(460px,94vw);position:relative;overflow:hidden;animation:rise .3s cubic-bezier(.2,.8,.3,1)}@keyframes rise{0%{transform:translateY(26px);opacity:0}to{transform:translateY(0);opacity:1}}#product-card .card{display:flex;align-items:stretch}.card-close{position:absolute;top:10px;right:12px;border:none;background:#1c1b1b0f;width:30px;height:30px;border-radius:50%;font-size:1.2rem;line-height:1;cursor:pointer;z-index:2;color:var(--ink)}.card-image{flex:0 0 42%;background:var(--cream);display:flex;align-items:center;justify-content:center;padding:12px}.card-image img{max-width:100%;max-height:160px;object-fit:contain;border-radius:10px}.card-body{padding:18px 20px;flex:1;display:flex;flex-direction:column}.card-cat{font-size:.66rem;font-weight:700;letter-spacing:.14em;color:var(--accent);margin-bottom:5px}.card-body h2{margin:0 0 7px;font-size:1.22rem;font-weight:700;letter-spacing:-.01em;line-height:1.15}.card-body p{margin:0 0 16px;font-size:.9rem;line-height:1.45;color:var(--sub)}.card-foot{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:12px}.price{font-weight:800;font-size:1.15rem}.cta{display:inline-block;background:var(--accent);color:#fff;text-decoration:none;font-weight:700;font-size:.9rem;padding:11px 18px;border-radius:999px;border:none;cursor:pointer;transition:transform .1s ease,background .15s ease;white-space:nowrap}.cta:hover{background:var(--accent-dark);transform:translateY(-1px)}.e-hint{margin-top:12px;font-size:.74rem;color:var(--sub);text-align:center}.e-hint kbd{background:var(--ink);color:#fff;border-radius:5px;padding:1px 7px;font-family:inherit;font-weight:700;font-size:.72rem}body.is-touch .e-hint{display:none}#link-card .card{display:flex;align-items:stretch}.link-card-icon{flex:0 0 30%;background:var(--cream);display:flex;align-items:center;justify-content:center;font-size:3rem}@media (max-width: 520px){#link-card .card{flex-direction:column}.link-card-icon{flex-basis:auto;padding:14px 0 0;font-size:2.4rem}}#completion{align-items:center;background:#1c1b1b80;backdrop-filter:blur(4px);pointer-events:auto}.completion-card{text-align:center;padding:30px 26px;width:min(420px,92vw)}.completion-emoji{font-size:2.6rem;margin-bottom:6px}.completion-card h2{margin:0 0 8px;font-size:1.45rem;font-weight:800;letter-spacing:-.02em}.completion-card p{margin:0 0 18px;color:var(--sub)}.email-form{display:flex;gap:8px;margin-bottom:8px}.email-form input{flex:1;min-width:0;padding:12px 16px;border-radius:999px;border:1.5px solid var(--border);font-size:1rem;font-family:inherit;background:var(--cream)}.email-form input:focus{outline:none;border-color:var(--accent)}.email-msg{min-height:1.2em;font-size:.86rem;margin:4px 0 10px}.email-msg.error{color:var(--accent-dark)}.email-msg.success{color:var(--ink);font-weight:600}.link-btn{background:none;border:none;color:var(--sub);text-decoration:underline;cursor:pointer;font-size:.9rem;font-family:inherit}body.pre-start #hud,body.pre-start #breed-picker,body.pre-start #bark-btn,body.pre-start #photo-btn,body.pre-start #mobile-buttons{display:none!important}#start-screen{align-items:center;background:#1c1b1b6b;backdrop-filter:blur(5px);pointer-events:auto}.start-card{text-align:center;padding:26px 26px 28px;width:min(420px,92vw)}.start-logo{display:block;width:200px;max-width:60vw;height:auto;margin:0 auto .4rem;mix-blend-mode:multiply}.start-card h2{margin:0 0 6px;font-size:1.4rem;font-weight:800;letter-spacing:-.02em}.start-card p{margin:0 0 18px;color:var(--sub);font-size:.92rem}.start-breed{display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:20px}#start-breed-select{border:1.5px solid var(--border);background:var(--cream);border-radius:999px;padding:11px 16px;font-family:inherit;font-weight:600;font-size:.95rem;color:var(--ink);cursor:pointer;max-width:60vw}#start-breed-select:focus{outline:2px solid var(--accent)}.start-btn{display:block;width:100%;font-size:1.05rem;padding:14px;border-radius:16px}#breed-picker{position:fixed;left:calc(14px + var(--safe-l));bottom:calc(16px + var(--safe-b));z-index:25;background:#ffffffeb;backdrop-filter:blur(8px);box-shadow:var(--shadow);border-radius:999px;padding:8px 10px 8px 16px;display:flex;align-items:center;gap:8px}.breed-label{font-size:.8rem;font-weight:700;color:var(--ink)}#breed-select{border:none;background:var(--cream);border-radius:999px;padding:8px 14px;font-family:inherit;font-weight:600;font-size:.85rem;color:var(--ink);cursor:pointer;max-width:46vw}#breed-select:focus{outline:2px solid var(--accent)}#bark-btn{position:fixed;left:50%;bottom:calc(22px + var(--safe-b));transform:translate(-50%);z-index:26;background:var(--accent);color:#fff;border:none;border-radius:999px;padding:12px 24px;font-family:inherit;font-weight:700;font-size:1rem;box-shadow:var(--shadow);cursor:pointer;transition:background .15s ease}#bark-btn:hover{background:var(--accent-dark)}#bark-btn.pop{animation:barkpop .3s ease}@keyframes barkpop{0%{transform:translate(-50%) scale(1)}40%{transform:translate(-50%) scale(1.18) rotate(-3deg)}to{transform:translate(-50%) scale(1)}}body.is-touch #bark-btn{bottom:calc(92px + var(--safe-b))}#joystick-zone{position:fixed;inset:0;z-index:10;display:none;pointer-events:none}.joy-base{position:absolute;width:120px;height:120px;margin-left:-60px;margin-top:-60px;border-radius:50%;background:#ffffff38;border:2px solid rgba(255,255,255,.65)}.joy-base.hidden{display:none}.joy-thumb{position:absolute;left:50%;top:50%;width:56px;height:56px;border-radius:50%;background:#ffffffd9;box-shadow:var(--shadow);transform:translate(-50%,-50%)}#mobile-buttons{position:fixed;right:calc(20px + var(--safe-r));bottom:calc(28px + var(--safe-b));z-index:25;display:flex;flex-direction:column;gap:14px}.m-btn{width:62px;height:62px;border-radius:50%;border:none;background:#ffffffe0;box-shadow:var(--shadow);font-size:1.4rem;cursor:pointer;color:var(--ink)}.m-btn:active{background:var(--accent);color:#fff}#wishlist-btn{pointer-events:auto;background:#ffffffe6;backdrop-filter:blur(8px);border-radius:999px;padding:9px 18px;font-weight:700;font-size:1rem;box-shadow:var(--shadow);border:none;cursor:pointer;color:var(--accent);display:flex;align-items:center;gap:6px;letter-spacing:-.01em;transition:background .15s ease}#wishlist-btn:hover{background:#fff}#wishlist-btn.hidden{display:none}.card-foot-actions{display:flex;align-items:center;gap:8px}.save-btn{background:none;border:1.5px solid var(--border);border-radius:999px;padding:10px 14px;font-family:inherit;font-weight:600;font-size:.88rem;color:var(--ink);cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease;white-space:nowrap;min-height:44px;line-height:1}.save-btn:hover{border-color:var(--accent);color:var(--accent)}.save-btn.saved{background:var(--accent);border-color:var(--accent);color:#fff}#wishlist-panel{align-items:center;background:#1c1b1b80;backdrop-filter:blur(4px);pointer-events:auto}.wishlist-card{width:min(440px,94vw);max-height:80vh;display:flex;flex-direction:column;padding:0;overflow:hidden}.wishlist-header{padding:20px 24px 14px;border-bottom:1px solid var(--border);flex-shrink:0}.wishlist-header h2{margin:0;font-size:1.2rem;font-weight:800;letter-spacing:-.01em}.wishlist-items-list{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:4px 0}.wishlist-empty{padding:28px 24px;text-align:center;color:var(--sub);margin:0;font-size:.92rem}.wishlist-item{display:flex;align-items:center;gap:12px;padding:12px 20px;border-bottom:1px solid var(--border)}.wishlist-item:last-child{border-bottom:none}.wishlist-thumb{width:58px;height:58px;object-fit:contain;border-radius:10px;background:var(--cream);flex-shrink:0}.wishlist-info{flex:1;min-width:0}.wishlist-name{display:block;font-weight:700;font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wishlist-price{display:block;font-weight:600;font-size:.85rem;color:var(--accent);margin-top:3px}.wishlist-no-variant{display:block;font-size:.75rem;color:var(--sub);margin-top:2px}.wishlist-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.wishlist-view-btn{font-size:.82rem;font-weight:600;font-family:inherit;color:var(--ink);text-decoration:none;border:1.5px solid var(--border);border-radius:999px;padding:8px 12px;white-space:nowrap;transition:border-color .15s ease,color .15s ease;min-height:36px;display:inline-flex;align-items:center}.wishlist-view-btn:hover{border-color:var(--accent);color:var(--accent)}.wishlist-remove-btn{background:none;border:none;cursor:pointer;color:var(--sub);font-size:1.2rem;padding:0;border-radius:50%;width:32px;height:32px;display:flex;align-items:center;justify-content:center;transition:background .15s ease,color .15s ease;flex-shrink:0}.wishlist-remove-btn:hover{background:#f94c431a;color:var(--accent)}.wishlist-footer{padding:14px 20px calc(14px + var(--safe-b));border-top:1px solid var(--border);flex-shrink:0}.wishlist-checkout-btn{width:100%;font-size:.95rem;padding:14px;border-radius:16px;text-align:center}@media (max-width: 520px){#product-card .card{flex-direction:column}.card-image{flex-basis:auto}.card-image img{max-height:130px}.card-foot{flex-wrap:wrap}}.start-card{max-height:94vh;overflow-y:auto;-webkit-overflow-scrolling:touch}.start-customiser{display:flex;flex-direction:column;gap:14px;margin-bottom:16px;width:100%;text-align:left}.start-name-input{width:100%;padding:11px 16px;border:1.5px solid var(--border);border-radius:999px;font-family:inherit;font-weight:600;font-size:.95rem;color:var(--ink);background:var(--cream);transition:border-color .15s ease}.start-name-input::placeholder{color:var(--sub);font-weight:500}.start-name-input:focus{outline:none;border-color:var(--accent)}.customiser-row{display:flex;flex-direction:column;gap:7px}.customiser-label{font-size:.68rem;font-weight:700;letter-spacing:.11em;text-transform:uppercase;color:var(--sub)}.coat-swatches{display:flex;gap:8px;flex-wrap:wrap}.coat-swatch{width:32px;height:32px;border-radius:50%;border:2.5px solid var(--border);cursor:pointer;flex-shrink:0;transition:border-color .15s ease,transform .12s ease,box-shadow .15s ease;padding:0}.coat-swatch:hover{transform:scale(1.14);border-color:var(--ink)}.coat-swatch.active{border-color:var(--accent);box-shadow:0 0 0 2.5px #fff,0 0 0 4.5px var(--accent);transform:scale(1.08)}.coat-swatch--natural{background:conic-gradient(#f4ede0 0deg 52deg,#c07a3b 52deg 103deg,#d9b070 103deg 155deg,#9aa3ad 155deg 206deg,#2a2420 206deg 258deg,#8b3a1a 258deg 309deg,#faf7f1 309deg 360deg)}.acc-pills{display:flex;gap:6px;flex-wrap:wrap}.acc-pill{border:1.5px solid var(--border);border-radius:999px;padding:7px 13px;font-family:inherit;font-size:.8rem;font-weight:600;color:var(--sub);background:var(--cream);cursor:pointer;transition:border-color .15s ease,color .15s ease,background .15s ease;white-space:nowrap;min-height:34px}.acc-pill:hover{border-color:var(--ink);color:var(--ink)}.acc-pill.active{border-color:var(--accent);color:var(--accent);background:#f94c4312}@media (max-width: 380px){.coat-swatch{width:28px;height:28px}.acc-pill{font-size:.74rem;padding:6px 10px}}#photo-btn{position:fixed;right:calc(20px + var(--safe-r));bottom:calc(28px + var(--safe-b));z-index:26;width:62px;height:62px;border-radius:50%;border:none;background:#ffffffeb;backdrop-filter:blur(8px);box-shadow:var(--shadow);font-size:1.5rem;line-height:1;cursor:pointer;color:var(--ink);transition:transform .12s ease,background .15s ease}#photo-btn:hover{background:#fff}#photo-btn:active{background:var(--accent)}#photo-btn.pop{animation:barkpop .3s ease}#photo-btn.photo-btn--hot{background:var(--accent);color:#fff;animation:photo-pulse 1.6s ease-in-out infinite}@keyframes photo-pulse{0%,to{box-shadow:0 0 #f94c4373,var(--shadow)}50%{box-shadow:0 0 0 10px #f94c4300,var(--shadow)}}body.is-touch #photo-btn{bottom:calc(186px + var(--safe-b))}#photo-flash{position:fixed;inset:0;z-index:60;background:#fff;opacity:0;pointer-events:none}#photo-flash.fire{animation:photo-flash .28s ease-out}@keyframes photo-flash{0%{opacity:0}8%{opacity:.92}to{opacity:0}}#photo-modal{align-items:center;background:#1c1b1b9e;backdrop-filter:blur(6px);pointer-events:auto}.photo-modal-inner{pointer-events:auto;position:relative;display:flex;flex-direction:column;align-items:center;gap:14px;width:min(440px,92vw);max-height:92vh}.photo-preview-wrap{width:100%;border-radius:var(--radius);overflow:hidden;box-shadow:0 20px 60px #1c1b1b80;background:var(--cream)}.photo-preview-img{display:block;width:100%;height:auto;max-height:66vh;object-fit:contain}.photo-preview-img.developing{animation:photo-develop 1.1s cubic-bezier(.2,.8,.3,1)}@keyframes photo-develop{0%{opacity:0;filter:brightness(1.7) saturate(.1) contrast(.7);transform:scale(.985)}60%{opacity:1}to{opacity:1;filter:none;transform:scale(1)}}.photo-actions{display:flex;gap:10px;width:100%}.photo-share-btn{flex:1;text-align:center;padding:14px;border-radius:14px;font-size:1rem}.photo-ghost-btn{flex:1;background:#fffffff0;color:var(--ink);border:none;border-radius:14px;padding:14px;font-family:inherit;font-weight:700;font-size:1rem;cursor:pointer;transition:background .15s ease,transform .1s ease}.photo-ghost-btn:hover{background:#fff;transform:translateY(-1px)}.photo-ghost-btn.photo-primary{background:var(--accent);color:#fff}.photo-ghost-btn.photo-primary:hover{background:var(--accent-dark)}.photo-copy-btn{background:none;border:none;color:#fff;opacity:.9;text-decoration:underline;cursor:pointer;font-family:inherit;font-size:.9rem;font-weight:600;padding:4px 8px}.photo-copy-btn:hover{opacity:1}#photo-modal .card-close{position:absolute;top:-46px;right:0;background:#ffffffe6}
