:root{--bg:#f1ead9;--ink:#1a1714;--accent:#7a1420;--dim:#6b6358}*{box-sizing:border-box}body:after{content:"";position:fixed;inset:0;pointer-events:none;z-index:2000;opacity:.4;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='2'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.025 0'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E")}html,body{margin:0;background:var(--bg);color:var(--ink);font-family:Bricolage Grotesque,Helvetica Neue,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;overflow-x:hidden}.mono{font-family:IBM Plex Mono,ui-monospace,SF Mono,Menlo,monospace}.wrap{max-width:1100px;margin:0 auto;padding:0 28px}.dim{color:var(--dim)}header{border-bottom:3px solid var(--ink);padding:18px 0}header .in{max-width:1100px;margin:0 auto;padding:0 28px;display:flex;justify-content:space-between;align-items:baseline}header .who{font-family:Unbounded,sans-serif;font-weight:700;letter-spacing:0;font-size:15px}header .who a{color:inherit;text-decoration:none}header nav a{color:var(--ink);text-decoration:none;font-size:12px;text-transform:uppercase;letter-spacing:1px;margin-left:22px}header nav a:hover{color:var(--accent)}footer{border-top:1px solid var(--ink);margin-top:20px;padding:34px 0 170px;font-size:13px}footer .in{display:flex;justify-content:space-between;flex-wrap:wrap;gap:14px}footer a{color:var(--ink);text-decoration:underline;text-decoration-thickness:2px}footer a:hover{color:var(--accent)}#dog{position:fixed;bottom:-4px;left:260px;width:110px;height:110px;z-index:900;cursor:pointer;will-change:transform}#dog img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 5px 7px rgba(0,0,0,.22))}#dog.idle img{animation:bob 3s ease-in-out infinite}@keyframes bob{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}#dog.trotting img{animation:trotb .4s ease-in-out infinite}@keyframes trotb{0%,to{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-5px) rotate(1deg)}}#dog.running img{animation:runb .25s ease-in-out infinite}@keyframes runb{0%,to{transform:translateY(0) rotate(-2.5deg)}50%{transform:translateY(-8px) rotate(2deg)}}#dstrip{display:none;position:absolute;bottom:0;left:50%;margin-left:-70px;width:140px;height:83px;background:url(/art/dog/run-strip.png) 0 0 no-repeat;background-size:840px 83px;filter:drop-shadow(0 5px 7px rgba(0,0,0,.22))}#dog.running.has-strip img{display:none}#dog.running.has-strip #dstrip{display:block;animation:runcycle .55s steps(6) infinite}@keyframes runcycle{to{background-position:-840px 0}}#dog.barking img{animation:barkb .3s ease-out infinite}@keyframes barkb{0%,to{transform:translateY(0)}30%{transform:translateY(-6px) rotate(-3deg)}}#dog.sleeping img{animation:breathe 4.2s ease-in-out infinite}@keyframes breathe{0%,to{transform:scale(1)}50%{transform:scale(1.02) translateY(1px)}}#dog.sunning img{animation:breathe 5s ease-in-out infinite}#dog.chewing img{animation:chewb 1.4s ease-in-out infinite}@keyframes chewb{0%,to{transform:rotate(0)}25%{transform:rotate(-.8deg)}75%{transform:rotate(.8deg)}}#dogbed{position:fixed;bottom:-2px;right:36px;width:150px;height:90px;z-index:880;pointer-events:none}#dogbed img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 4px 6px rgba(0,0,0,.18))}#bird{position:fixed;width:64px;height:64px;z-index:870;pointer-events:none;display:none}#bird img{width:100%;height:100%;object-fit:contain;animation:flap .35s ease-in-out infinite}@keyframes flap{0%,to{transform:translateY(0) rotate(2deg)}50%{transform:translateY(-7px) rotate(-4deg)}}.prop{position:fixed;z-index:860;pointer-events:none}.prop img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 3px 4px rgba(0,0,0,.25))}#sunbeam{position:fixed;bottom:0;width:340px;height:100vh;z-index:840;pointer-events:none;opacity:0;transition:opacity 2.5s ease;background:radial-gradient(ellipse 170px 40px at 50% calc(100% - 18px),rgba(255,214,110,.5),rgba(255,214,110,.18) 60%,transparent 75%),linear-gradient(100deg,transparent 12%,rgba(255,225,140,.16) 38%,rgba(255,235,170,.22) 50%,rgba(255,225,140,.16) 62%,transparent 88%)}#sunbeam.on{opacity:1}.bubble{position:fixed;z-index:940;background:#fff;color:#111;border:2px solid #111;border-radius:12px;font-family:IBM Plex Mono,monospace;font-weight:600;font-size:14px;padding:6px 11px;pointer-events:none;animation:bubblein .25s cubic-bezier(.34,1.56,.64,1)}.bubble:after{content:"";position:absolute;bottom:-8px;left:16px;border:8px solid transparent;border-top-color:#111;border-bottom:0}@keyframes bubblein{0%{transform:scale(.4) translateY(8px);opacity:0}to{transform:scale(1) translateY(0);opacity:1}}.zzz{position:fixed;z-index:910;color:var(--dim);font:700 18px IBM Plex Mono,monospace;pointer-events:none;animation:zfloat 2.6s ease-out forwards}@keyframes zfloat{0%{opacity:0;transform:translate(0) scale(.6)}25%{opacity:.85}to{opacity:0;transform:translate(14px,-46px) scale(1.25)}}.heart{position:fixed;z-index:930;font-size:18px;pointer-events:none;animation:heartf 1.1s ease-out forwards}@keyframes heartf{0%{opacity:0;transform:translateY(4px) scale(.5)}20%{opacity:1}to{opacity:0;transform:translateY(-44px) scale(1.2) rotate(8deg)}}.dust{position:fixed;z-index:865;width:10px;height:10px;border-radius:50%;background:#00000024;pointer-events:none;animation:dustpuff .5s ease-out forwards}@keyframes dustpuff{0%{opacity:.7;transform:scale(.5)}to{opacity:0;transform:scale(1.8) translate(-10px,-6px)}}#pads{position:fixed;bottom:0;left:18px;z-index:855;display:flex;gap:18px;align-items:flex-end}.pad{position:relative;width:78px;height:64px;background:none;border:none;padding:0;cursor:pointer;-webkit-tap-highlight-color:transparent}.pad .dome{position:absolute;left:50%;bottom:16px;transform:translate(-50%);width:62px;height:30px;background:var(--accent);border:2px solid var(--ink);border-radius:31px 31px 8px 8px;display:flex;align-items:center;justify-content:center;transition:transform .12s ease,bottom .12s ease;box-shadow:inset 0 -5px #00000040}.pad .ico{font-size:15px;line-height:1;transform:translateY(-1px)}.pad .pbase{position:absolute;left:50%;bottom:4px;transform:translate(-50%);width:74px;height:14px;background:var(--ink);border-radius:4px}.pad .plbl{position:absolute;left:50%;bottom:-15px;transform:translate(-50%);font-size:9px;letter-spacing:2px;text-transform:uppercase;color:var(--dim)}.pad:hover .dome{bottom:18px}.pad.pressed .dome{bottom:9px;box-shadow:inset 0 -2px #00000040}.pad.cooling{pointer-events:none}.pad.cooling .dome{filter:saturate(.4) brightness(1.1)}#dog.stomping img{animation:stompjump .6s cubic-bezier(.3,0,.4,1) 1}@keyframes stompjump{0%{transform:translateY(0)}40%{transform:translateY(-52px) rotate(-4deg)}62%{transform:translateY(2px)}74%{transform:translateY(-7px)}to{transform:translateY(0)}}#holiday-prop{position:fixed;bottom:-2px;right:196px;z-index:845;pointer-events:none}#holiday-prop img{width:100%;height:auto;filter:drop-shadow(0 4px 6px rgba(0,0,0,.18))}body.editing [contenteditable=true]{outline:2px dashed var(--accent);outline-offset:3px;cursor:text}body.editing [contenteditable=true]:hover{background:#7a14200f}body.editing [contenteditable=true]:focus{outline-style:solid;background:#7a14200a}#edit-toolbar{position:fixed;bottom:18px;left:50%;transform:translate(-50%);z-index:1200;background:#111;color:var(--bg);border:3px solid #000;box-shadow:5px 5px #00000059;padding:10px 16px;font-family:IBM Plex Mono,monospace;font-size:12.5px;letter-spacing:.5px;display:none;align-items:center;gap:14px}body.editing #edit-toolbar{display:flex}#edit-toolbar b{color:#ffb3a6}#edit-toolbar button{background:var(--accent);color:#fff;border:2px solid #000;font:700 12px IBM Plex Mono,monospace;padding:6px 12px;cursor:pointer;letter-spacing:.5px}#edit-toolbar button.ghost{background:transparent;color:var(--bg)}#edit-toolbar button:hover{transform:translate(-1px,-1px)}#pal-picker{position:fixed;top:50%;right:14px;transform:translateY(-50%);z-index:1300;display:flex;flex-direction:column;gap:8px;background:#111111eb;border:2px solid #000;padding:10px 8px;box-shadow:4px 4px #0006}#pal-picker .lbl{color:#f4f1ea;font:700 9px IBM Plex Mono,monospace;letter-spacing:2px;text-align:center;margin-bottom:2px}#pal-picker .sw{width:34px;height:26px;border:2px solid #000;cursor:pointer;position:relative;padding:0;opacity:.85}#pal-picker .sw:hover{opacity:1;transform:translate(-3px)}#pal-picker .sw.on{opacity:1;outline:2px solid #fff;outline-offset:1px}#pal-picker .sw i{position:absolute;bottom:2px;width:8px;height:8px;border:1px solid rgba(0,0,0,.4)}#pal-picker .sw i:first-of-type{left:2px}#pal-picker .sw i:last-of-type{right:2px}.idx{display:inline-block;font-family:Unbounded,sans-serif;font-size:9.5px;font-weight:600;color:var(--accent);border:2px solid var(--accent);border-radius:3px;padding:3px 9px 2px;text-transform:uppercase;letter-spacing:.5px;rotate:-1.6deg;opacity:.9}.cell:nth-child(2n) .idx,.bench:nth-child(odd) .idx{rotate:1.3deg}.tags{margin-top:12px;font-size:13px;color:var(--dim);font-style:normal}.arrow{color:var(--accent);font-weight:400}.live-dot{display:inline-block;width:8px;height:8px;background:var(--accent);margin-right:6px;vertical-align:1px}
