:root { color-scheme: light; --paper:#f5efdf; --ink:#34271f; --accent:#d95732; --muted:rgba(52,39,31,.58); }
*{box-sizing:border-box} html,body{height:100%;overflow:hidden} body{margin:0;background:var(--paper);color:var(--ink);font-family:ui-sans-serif,-apple-system,"PingFang SC",system-ui,sans-serif}.stage{min-height:100dvh;position:relative;overflow:hidden}.stage__header{position:fixed;z-index:3;top:max(1rem,env(safe-area-inset-top));left:0;right:0;text-align:center;pointer-events:none}.stage__title{margin:0;font-size:clamp(.82rem,2vw,1.1rem);letter-spacing:.14em;font-weight:650}
.panel{position:fixed;inset:0;z-index:0;display:grid;place-items:center;overflow:hidden;touch-action:none;user-select:none;cursor:grab}.panel[data-active="true"]{cursor:grabbing}
.dog{position:relative;z-index:1;width:min(55vh,82vw,620px);aspect-ratio:1;transform:scale(1);transition:transform 180ms cubic-bezier(.2,.9,.3,1.25);pointer-events:none}.dog[data-visual="pressed"]{transform:scaleY(.9) scaleX(1.06)}.dog__image{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;transition:opacity 100ms;pointer-events:none}.dog__image--open{opacity:0}.dog[data-visual="barking"] .dog__image--closed{opacity:0}.dog[data-visual="barking"] .dog__image--open{opacity:1}
.soundwaves{position:fixed;z-index:0;inset:0;pointer-events:none}.ripple-ring{position:absolute;left:50%;top:50%;width:2vmax;height:2vmax;border:1.5px solid rgba(193,100,70,.72);border-radius:50%;opacity:0;transform:translate(-50%,-50%) scale(.1);pointer-events:none;animation:ripple-once var(--ring-duration) linear forwards}@keyframes ripple-once{8%{opacity:var(--ring-opacity)}70%{opacity:calc(var(--ring-opacity) * .22)}100%{opacity:0;transform:translate(-50%,-50%) scale(75)}}
.readouts{position:fixed;z-index:3;bottom:calc(max(.8rem,env(safe-area-inset-bottom)) + 1.7rem);left:50%;transform:translateX(-50%);display:flex;justify-content:center;gap:1px;width:min(calc(100vw - 2rem),480px);border:1px solid rgba(52,39,31,.13);border-radius:999px;background:rgba(255,255,255,.36);overflow:hidden;pointer-events:none}.readout{min-width:0;flex:1;padding:.42rem .35rem;text-align:center}.readout+.readout{border-left:1px solid rgba(52,39,31,.1)}.readout__label,.readout__unit{display:block;color:var(--muted);font-size:.58rem}.readout__value{font-variant-numeric:tabular-nums;font-size:.82rem}.stage__footer{position:fixed;z-index:3;bottom:max(.55rem,env(safe-area-inset-bottom));left:0;right:0;text-align:center;pointer-events:none}.status{font-size:.68rem;color:var(--muted)}.overlay{position:absolute;inset:0;display:grid;place-content:center;text-align:center;background:rgba(245,239,223,.9);z-index:4;padding:1rem}.overlay[hidden]{display:none}.overlay__text{margin:0}.overlay__retry{margin-top:.8rem;border:1px solid var(--accent);border-radius:999px;background:transparent;color:var(--accent);padding:.4rem 1rem;pointer-events:auto}.crosshair,.thumb{display:none}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition-duration:0ms!important}}
@media(max-width:700px){.dog{width:min(58vh,92vw)}}@media(max-width:320px){.dog{width:min(52vh,92vw)}.readout{padding:.35rem .15rem}.readout__unit{font-size:.5rem}}

/* 页脚备案链接：为固定读数留出空间，并保持状态文字不拦截面板手势。 */
.readouts{bottom:calc(max(.8rem,env(safe-area-inset-bottom)) + 2.8rem)}
.stage__footer{display:grid;place-items:center;gap:.12rem;line-height:1.35;pointer-events:none}
.icp-link{color:var(--muted);font-size:max(.68rem,11px);text-decoration:none;pointer-events:auto}
.icp-link:hover,.icp-link:focus-visible{text-decoration:underline;color:var(--ink)}
