html:root{--font-headline:"Do Hyeon", "Pretendard Variable", Pretendard, system-ui, sans-serif}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{word-break:keep-all;overflow-wrap:anywhere;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}h1,h2,h3,h4,h5,h6{font-family:var(--font-headline);font-synthesis:none;letter-spacing:0;font-weight:400}::selection{background:var(--accent);color:var(--accent-foreground)}.font-sign{font-family:var(--font-headline);font-synthesis:none;font-variant-numeric:tabular-nums;letter-spacing:0;font-weight:400}.tile-wall{background-color:var(--tile-face);background-image:linear-gradient(var(--tile-grout) 1.5px, transparent 1.5px), linear-gradient(90deg, var(--tile-grout) 1.5px, transparent 1.5px);background-position:-1px -1px;background-size:28px 28px}.tile-wall-lg{background-color:var(--tile-face);background-image:linear-gradient(var(--tile-grout) 1.5px, transparent 1.5px), linear-gradient(90deg, var(--tile-grout) 1.5px, transparent 1.5px);background-position:-1px -1px;background-size:44px 44px}.water-line{background:var(--primary);border-radius:9999px;height:6px;display:block}.punch,.punch-done{border-radius:9999px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:inline-flex}.punch{border:2px dashed var(--tile-grout);color:var(--muted-foreground);font-family:var(--font-headline);font-synthesis:none;font-size:15px;font-weight:400}.punch-next{border-color:color-mix(in oklch, var(--primary) 60%, transparent);color:var(--primary)}.punch-done{background:var(--background);border:2px solid var(--tile-grout);box-shadow:inset 0 3px 6px color-mix(in oklch, var(--foreground) 30%, transparent)}@keyframes steam-rise{0%{opacity:0;transform:translateY(8px)}50%{opacity:.5}to{opacity:0;transform:translateY(-16px)}}.steam-path{opacity:0;animation:6s ease-in-out infinite steam-rise}@keyframes tag-swing{0%{transform:rotate(-10deg)}to{transform:rotate(0)}}.tag-swing{transform-origin:50% 0;animation:.3s ease-out both tag-swing}@keyframes punch-in{0%{transform:scale(.6)}to{transform:scale(1)}}.punch-in{animation:.18s ease-out both punch-in}.press{transition:transform .15s,background-color .15s,color .15s,border-color .15s,box-shadow .15s,opacity .15s}.press:active:not(:disabled){transform:scale(.98)}.locker-door{transition:transform .15s,box-shadow .15s,border-color .15s}.locker-door:active{transform:scale(.985)}@media (hover:hover){.locker-door:hover{box-shadow:0 8px 18px -12px color-mix(in oklch, var(--foreground) 45%, transparent);border-color:color-mix(in oklch, var(--primary) 45%, var(--border));transform:translateY(-2px)}.lift:hover{box-shadow:0 8px 18px -12px color-mix(in oklch, var(--foreground) 40%, transparent);transform:translateY(-2px)}.group:hover .keytag-hang{transform:rotate(-4deg)}}.lift{transition:transform .16s,box-shadow .16s,background-color .15s}.keytag-hang{transform-origin:50% 0;transition:transform .26s ease-out}.wordmark .brand-steam{transition:transform .26s ease-out}.wordmark:hover .brand-steam{transform:translateY(-1.5px)}.tab-pill{transition:transform .28s cubic-bezier(.3,.8,.3,1),opacity .15s}@keyframes tile-pick{0%{transform:scale(.86)}to{transform:scale(1)}}.tile-pick{animation:.2s ease-out both tile-pick}.thermo-tube{border:2px solid var(--tile-grout);background:var(--card);border-radius:9999px;width:10px;height:64px;position:relative;overflow:hidden}.thermo-fill{border-radius:9999px;position:absolute;inset:2px}.no-scrollbar{scrollbar-width:none}.no-scrollbar::-webkit-scrollbar{display:none}.bath-auth input{border-color:var(--input);background:var(--card);border-radius:.75rem;height:3rem;font-size:1rem;transition:border-color .15s,box-shadow .15s}.bath-auth input:focus-visible{border-color:var(--ring);box-shadow:0 0 0 3px color-mix(in oklch, var(--ring) 25%, transparent);outline:none}.bath-auth button[type=submit]{background:var(--primary);height:3.25rem;color:var(--primary-foreground);border-radius:9999px;font-size:1rem;font-weight:600;transition:transform .15s,opacity .15s}.bath-auth button[type=submit]:hover{opacity:.92}.bath-auth button[type=submit]:active{transform:scale(.98)}.bath-auth button[type=submit]:disabled{opacity:.7;cursor:wait}.bath-auth button[type=submit]:focus-visible{outline:2px solid var(--ring);outline-offset:2px}.bath-auth a{color:var(--primary);font-weight:500}.bath-auth label{font-weight:600}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.steam-path,.tag-swing,.punch-in,.tile-pick{animation:none!important}.steam-path{opacity:.3}.press,.locker-door,.lift,.keytag-hang,.tab-pill,.wordmark .brand-steam{transition:none!important}.press:active:not(:disabled),.locker-door:hover,.locker-door:active,.lift:hover,.group:hover .keytag-hang,.wordmark:hover .brand-steam{transform:none!important}}
.tap-ring{border:2px solid color-mix(in oklch, var(--primary) 55%, transparent);opacity:.9;border-radius:9999px;animation:.68s cubic-bezier(.2,.7,.3,1) forwards tap-ring;position:absolute;transform:translate(-50%,-50%)scale(.15)}.tap-ring:after{content:"";border:1.5px solid color-mix(in oklch, var(--primary) 40%, transparent);border-radius:9999px;animation:.68s cubic-bezier(.2,.7,.3,1) 90ms both tap-ring-inner;position:absolute;inset:22%}@keyframes tap-ring{to{opacity:0;transform:translate(-50%,-50%)scale(1)}}@keyframes tap-ring-inner{0%{opacity:.9;transform:scale(.2)}to{opacity:0;transform:scale(1)}}.bubble-rise,.bubble-loop{border:2px solid color-mix(in oklch, var(--primary-foreground) 70%, transparent);background:color-mix(in oklch, var(--primary-foreground) 18%, transparent);border-radius:9999px;position:absolute}.bubble-rise{opacity:0;animation:1.3s ease-out both bubble-rise}@keyframes bubble-rise{0%{opacity:0;transform:translateY(0)scale(.5)}15%{opacity:1}to{opacity:0;transform:translateY(-120px)translate(6px)scale(1)}}.bubble-loop{animation:2.6s ease-in infinite bubble-loop;bottom:-20px}@keyframes bubble-loop{0%{opacity:0;transform:translateY(0)}20%{opacity:.9}to{opacity:0;transform:translateY(-55vh)translate(8px)}}.bath-water{height:0}.bath-water-rise{animation:1s cubic-bezier(.3,.8,.3,1) forwards bath-rise}.bath-water-drain{height:64%;animation:.5s cubic-bezier(.5,0,.8,.4) forwards bath-drain}@keyframes bath-rise{0%{height:0}to{height:64%}}@keyframes bath-drain{to{height:0}}.bath-wave{animation:2.4s linear infinite wave-drift}@keyframes wave-drift{0%{transform:translate(0)}to{transform:translate(-50%)}}.bath-fill-in{animation:.22s ease-out both fade-in}.bath-fill-out{animation:.52s ease-in both fade-out}@keyframes fade-in{0%{opacity:0}}@keyframes fade-out{to{opacity:0}}.key-drop{transform-origin:50% 0;animation:1.25s cubic-bezier(.3,.6,.4,1) .38s both key-drop}@keyframes key-drop{0%{transform:translateY(-70vh)rotate(-4deg)}38%{transform:translateY(0)rotate(14deg)}55%{transform:rotate(-9deg)}70%{transform:rotate(5deg)}84%{transform:rotate(-2.5deg)}to{transform:rotate(0)}}.pop-in{animation:.38s cubic-bezier(.3,1.4,.5,1) both pop-in}@keyframes pop-in{0%{opacity:0;transform:translateY(10px)scale(.94)}}.sheet-up{animation:.32s cubic-bezier(.2,.8,.3,1) both sheet-up}@keyframes sheet-up{0%{opacity:0;transform:translateY(40px)}}.punch-in-late{animation:.26s cubic-bezier(.3,1.5,.5,1) .42s both punch-press}@keyframes punch-press{0%{transform:scale(1)}40%{transform:scale(.82)}to{transform:scale(1)}}.chad-fall{background:var(--tile-face,var(--secondary));border:1.5px dashed var(--tile-grout,var(--border));pointer-events:none;border-radius:9999px;animation:1.1s cubic-bezier(.5,0,.9,.6) .44s both chad-fall;position:absolute;inset:3px}@keyframes chad-fall{0%{opacity:1;transform:translate(0)rotate(0)}20%{transform:translate(6px,-10px)rotate(60deg)}to{opacity:0;transform:translate(26px,110px)rotate(320deg)scale(.8)}}.milk-jar{transition:transform .16s}.milk-squeeze{transform:scaleX(1.04)scaleY(.96)}.milk-done{animation:.6s cubic-bezier(.3,1.5,.5,1) milk-cheers}@keyframes milk-cheers{30%{transform:rotate(-8deg)scale(1.06)}60%{transform:rotate(6deg)}}.straw-sip{animation:.26s ease-in-out infinite alternate straw-sip}@keyframes straw-sip{to{transform:translateY(1.5px)}}.ym-bun{transform-box:fill-box;transform-origin:50% 100%}.ym:hover .ym-bun-l{transform:rotate(-6deg)}.ym:hover .ym-bun-r{transform:rotate(6deg)}.ym .ym-bun{transition:transform .2s}.ym-bounce{transform-origin:50% 90%;animation:.52s cubic-bezier(.3,1.6,.5,1) ym-bounce}.ym-bounce .ym-bun{animation:.52s cubic-bezier(.3,1.6,.5,1) ym-bun}@keyframes ym-bounce{35%{transform:scale(1.12,.9)}70%{transform:scale(.96,1.05)}}@keyframes ym-bun{40%{transform:translateY(-4px)scale(1.12)}}.shine{position:relative;overflow:hidden}.shine:after{content:"";background:linear-gradient(105deg, transparent 40%, color-mix(in oklch, var(--card) 55%, transparent) 50%, transparent 60%);pointer-events:none;position:absolute;inset:-20%;transform:translate(-120%)}.shine:hover:after,.shine:focus-visible:after{transition:transform .7s;transform:translate(120%)}.jelly{transition:transform .22s cubic-bezier(.3,1.6,.5,1)}.jelly:active{transition-duration:90ms;transform:scale(.94,.9)}.tile-in{animation:.42s cubic-bezier(.2,.8,.3,1) both tile-in;animation-delay:calc(var(--i,0) * 45ms)}@keyframes tile-in{0%{transform:translateY(8px)scale(.96)}}.bob{animation:3.2s ease-in-out infinite bob}@keyframes bob{50%{transform:translateY(-5px)rotate(-2deg)}}.mercury{transform-origin:50% 100%;transform:scaleY(var(--level,.5));transition:transform .5s cubic-bezier(.3,1.3,.5,1)}.heat{animation:1.8s ease-in-out infinite heat}@keyframes heat{50%{transform:translateY(-1px)skew(-1.5deg)}}.live-dot{background:var(--primary);border-radius:9999px;width:8px;height:8px;display:inline-block;position:relative}.live-dot:after{content:"";border:2px solid var(--primary);border-radius:9999px;animation:1.6s ease-out infinite live-dot;position:absolute;inset:0}@keyframes live-dot{to{opacity:0;transform:scale(2.6)}}@media (prefers-reduced-motion:reduce){.tap-ring,.bubble-rise,.bubble-loop,.bath-wave,.key-drop,.pop-in,.sheet-up,.punch-in-late,.chad-fall,.milk-done,.straw-sip,.ym-bounce,.ym-bounce .ym-bun,.tile-in,.bob,.heat,.live-dot:after,.bath-fill-in,.bath-fill-out{animation:none!important}.bath-water-rise,.bath-water-drain{height:64%;animation:none!important}.chad-fall,.bubble-loop,.bubble-rise{display:none}.shine:after,.jelly,.mercury,.milk-jar{transition:none!important}}
