.lepak-log-button{position:fixed;left:18px;top:76px;z-index:39;border:1px solid #ffffff45;border-radius:22px;background:#1d2b24e8;color:#fff1d5;padding:10px 14px;font:12px system-ui;cursor:pointer}.lofi .lepak-log-button{position:static;margin:16px}.lepak-toast{position:fixed;left:50%;bottom:178px;transform:translateX(-50%);box-sizing:border-box;width:max-content;max-width:85vw;margin:0;padding:12px 18px;border:1px solid #c1ac77;border-radius:14px;box-shadow:0 8px 32px #0004;background:#fff1ce;color:#2d4438;z-index:70;font:14px/1.5 system-ui;text-align:center}.lepak-dialog{box-sizing:border-box;width:min(480px,92vw);max-height:88dvh;overflow:auto;padding:26px;border:1px solid #b4a582;border-radius:16px;background:#faf0d9;color:#2b4137;box-shadow:0 30px 90px #0009;font:16px/1.6 Georgia,serif}.lepak-dialog::backdrop{background:#08130ec2;backdrop-filter:blur(5px)}.lepak-dialog h2{margin:10px 35px 20px 0;font-size:28px;line-height:1.2}.lepak-dialog h3{font-size:24px;margin:12px 0}.lepak-dialog button{cursor:pointer;border:1px solid #899b88;border-radius:20px;background:#2d513e;color:#fff5df;padding:9px 14px;font:13px system-ui}.lepak-dialog button:disabled{cursor:default;opacity:.5}.lepak-dialog .lepak-close{float:right;color:#2b4137;background:transparent;font-size:22px;padding:3px 12px}.lepak-dialog small{display:block;font:11px/1.5 system-ui;margin-top:16px;color:#62685d}.lepak-dialog textarea{display:block;box-sizing:border-box;width:100%;min-height:140px;border:1px solid #bab397;background:#fff9ed;border-radius:6px;padding:12px;margin-top:8px;font:16px/1.6 Georgia,serif;color:#2b4137}.lepak-stamps{display:grid;grid-template-columns:1fr 1fr;gap:10px;list-style:none;padding:0}.lepak-stamps li{padding:12px;border:1px dashed #acaf95;border-radius:8px;opacity:.7}.lepak-stamps li.found{opacity:1;border-style:solid;background:#dde7cb}.lepak-stamps b{display:block;font-size:14px}.lepak-stamps span{display:block;font:12px/1.4 system-ui;margin-top:7px}.lepak-badge{padding:15px;margin-top:16px;text-align:center;border:3px double #687b4f;border-radius:6px;font:700 15px/1.5 monospace;transform:rotate(-2deg)}.oyen-dream{position:absolute;bottom:100%;left:0;max-width:250px;min-width:160px;background:#fff8e7;color:#374638;border-radius:24px;padding:14px 18px;box-shadow:0 5px 14px #0004;font:16px/1.4 Georgia,serif;filter:none;pointer-events:none}.oyen-dream:after{content:"";position:absolute;width:12px;height:12px;border-radius:50%;background:#fff8e7;bottom:-17px;left:25px;box-shadow:14px 16px 0 -3px #fff8e7}.balcony-tin{left:7%;top:61%;width:10.5%;height:14%;z-index:4}.postcard-photo{height:145px;background:url('../img/balcony/day.png') center 30%/cover;border:7px solid #fff9ed;box-shadow:0 2px 9px #0002}.postcard-label{font:11px monospace;text-transform:uppercase;letter-spacing:.08em}.postcard-turn{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:22px;font:12px monospace}.postcard-copy a{color:#335a44}.laundry-line{display:flex;justify-content:space-around;gap:8px;padding:18px 0;border-top:2px solid #9a8661;margin-top:24px}.lepak-dialog .laundry-shirt{font-size:42px;min-width:58px;min-height:70px;background:transparent;border:0;padding:4px;transform-origin:top}.laundry-shirt.rescued{opacity:0!important;pointer-events:none;transform:translateY(20px) scale(.6)}.laundry-score{display:flex;align-items:center;gap:14px;font:13px system-ui}.laundry-time{font:34px monospace}.balcony-fireflies{position:absolute;inset:0;pointer-events:none;z-index:4}.balcony-firefly{position:absolute;width:44px;height:44px;border:0;background:transparent;border-radius:50%;cursor:pointer;pointer-events:auto;animation:firefly-drift 8s ease-in-out infinite}.balcony-firefly:before{content:"";position:absolute;left:19px;top:19px;width:6px;height:6px;border-radius:50%;background:#e6ffa1;box-shadow:0 0 9px 3px #bdff6177;animation:firefly-glow 3s ease-in-out infinite}.balcony-firefly:focus-visible{outline:2px solid #e6ffa1}.balcony-extras{position:fixed;bottom:115px;left:50%;transform:translateX(-50%);display:flex;gap:8px}.balcony-extras button{cursor:pointer;border:1px solid #ffffff45;border-radius:22px;background:#1d2b24df;color:#fff1d5;padding:8px 13px;font:12px system-ui}@keyframes firefly-drift{50%{transform:translate(18px,-15px)}}@keyframes firefly-glow{0%,100%{opacity:.45}50%{opacity:1}}@media(max-width:720px){.lepak-log-button{top:auto;bottom:161px;left:12px;padding:8px 11px;font-size:11px}.lepak-toast{bottom:208px;font-size:12px}.lepak-stamps{grid-template-columns:1fr 1fr}.lepak-dialog{padding:20px}.oyen-dream{font-size:14px}.lepak-dialog .laundry-shirt{font-size:34px;min-width:44px}}@media(prefers-reduced-motion:reduce){.balcony-firefly,.balcony-firefly:before{animation:none}}
/* Laundry Dash: a little Malaysian balcony arcade. */
.lepak-laundry{width:min(700px,94vw);padding:26px;background:#fbf1d9}.lepak-laundry h2{font-size:36px;margin-bottom:8px}.laundry-intro{font:15px/1.6 system-ui;margin:0 0 18px;max-width:540px}.laundry-hud{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.laundry-hud>div{background:#ebe2c9;border:1px solid #d6c9a8;border-radius:10px;padding:10px 12px}.laundry-hud span{display:block;font:10px system-ui;text-transform:uppercase;letter-spacing:.08em;color:#626b58}.laundry-hud b{display:block;font:700 26px/1.2 monospace;margin-top:5px;color:#294c3b}.laundry-clock{height:5px;border-radius:4px;background:#d9cdb0;overflow:hidden;margin:14px 0}.laundry-clock-fill{display:block;height:100%;width:100%;background:#b56c3d;transition:width .1s linear}.laundry-board{position:relative;overflow:hidden;border:1px solid #c1c9aa;border-radius:14px;background:linear-gradient(#d5e7e6,#e9edcf 70%,#bed0a1);padding:14px 16px 0}.laundry-sky{text-align:center;font:12px/1.5 monospace;min-height:22px;color:#345b54}.laundry-rack{display:grid;grid-template-columns:repeat(3,1fr);gap:28px 12px;padding:20px 0}.lepak-dialog .laundry-piece{position:relative;background:transparent;color:#314637;border:0;border-top:2px solid #8e7855;border-radius:0;padding:8px 4px 0;min-height:126px;display:flex;flex-direction:column;align-items:center;gap:7px;touch-action:manipulation}.lepak-dialog .laundry-piece:disabled{opacity:1}.laundry-piece:focus-visible{outline:3px solid #2d6950;outline-offset:4px}.cloth-art{display:block;width:78px;height:78px;background:var(--cloth);clip-path:polygon(27% 0,39% 0,43% 8%,57% 8%,61% 0,73% 0,100% 23%,83% 43%,75% 35%,75% 100%,25% 100%,25% 35%,17% 43%,0 23%);transform-origin:50% 0;filter:brightness(.8);transition:filter .2s,transform .2s,opacity .2s}.cloth-art:after{content:'';display:block;margin:23px auto 0;width:20px;height:23px;border:2px dashed #ffffff66;border-radius:5px}.shirt-number{position:absolute;left:4px;top:6px;font:10px monospace;color:#526257}.shirt-state{font:700 10px system-ui;letter-spacing:.03em;border-radius:10px;background:#e4e8db;color:#4d625f;padding:4px 9px}.laundry-piece:before{content:'';position:absolute;z-index:2;top:-4px;left:50%;width:7px;height:18px;border-radius:2px;background:#a47e47;box-shadow:inset 2px 0 #cfb17f}.laundry-piece[data-state=dry] .cloth-art{filter:brightness(1.15);animation:laundry-breeze 1.2s ease-in-out infinite}.laundry-piece[data-state=dry] .shirt-state{background:#2f6244;color:#fff9df;box-shadow:0 0 0 3px #ffffff66}.laundry-piece[data-state=saved] .cloth-art{opacity:.2;transform:translateY(18px) scale(.7)}.laundry-piece[data-state=saved] .shirt-state{background:#fff6cc;color:#386040}.laundry-piece[data-state=missed] .cloth-art{filter:brightness(.55) saturate(.4)}.laundry-piece[data-state=missed] .shirt-state{background:#d6dce6;color:#414c66}.laundry-basket{margin:0 -16px;padding:9px;text-align:center;background:#758e6399;color:#203e2c;font:10px monospace;letter-spacing:.1em}.lepak-laundry .laundry-result{min-height:44px;font:14px/1.6 system-ui;padding:12px 14px;background:#eee4cb;border-radius:10px;margin:14px 0}.laundry-bottom{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.laundry-bottom span{font:11px/1.5 system-ui;color:#646b59}.laundry-oops .cloth-art{animation:laundry-oops .25s linear}.lepak-laundry small{margin-top:12px}.lepak-laundry button#laundry-start{font-weight:700;padding:12px 20px;background:#2a543d}.laundry-piece[disabled]{cursor:default}
@keyframes laundry-breeze{50%{transform:rotate(5deg)}}@keyframes laundry-oops{25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}
@media(max-width:480px){.lepak-laundry{padding:18px}.lepak-laundry h2{font-size:29px}.laundry-hud>div{padding:9px}.laundry-hud b{font-size:22px}.laundry-board{padding:10px 10px 0}.laundry-rack{gap:22px 6px;padding:16px 0}.cloth-art{width:64px;height:65px}.lepak-dialog .laundry-piece{min-height:108px}.laundry-basket{margin:0 -10px}.shirt-state{font-size:9px}.laundry-intro{font-size:13px}}
@media(prefers-reduced-motion:reduce){.laundry-piece .cloth-art{animation:none!important;transition:none}.laundry-clock-fill{transition:none}}
.lepak-laundry{padding:20px;max-height:94dvh}.lepak-laundry h2{font-size:30px;margin:4px 35px 8px 0}.laundry-intro{margin-bottom:12px}.laundry-rack{gap:16px 10px;padding:12px 0}.lepak-laundry .laundry-piece{min-height:100px}.lepak-laundry .cloth-art{width:63px;height:63px}.lepak-laundry .laundry-result{min-height:36px;margin:10px 0;padding:10px 12px}.lepak-laundry small{margin-top:8px}
.balcony-neighbour{position:absolute;z-index:3;min-width:32px;min-height:36px;border:0;border-radius:5px;background:transparent;cursor:pointer;touch-action:manipulation}.balcony-neighbour span{position:absolute;top:35%;left:50%;transform:translateX(-50%);padding:0 5px 3px;border-radius:8px;background:#fff5d6dd;color:#365343;font:700 13px/1 monospace;box-shadow:0 2px 8px #0003;opacity:.8}.balcony-neighbour:hover,.balcony-neighbour:focus-visible,.balcony-neighbour[aria-expanded=true]{outline:2px solid #fff0b5;outline-offset:2px;background:#ffe3a52b}.neighbour-bubble{position:absolute;z-index:12;box-sizing:border-box;left:clamp(12px,calc(var(--neighbour-x)*1% - 145px),calc(100% - 302px));top:calc(var(--neighbour-y)*1% + 18px);width:290px;padding:17px;border-radius:14px;background:#fff5dc;color:#2e4538;box-shadow:0 8px 30px #0005;border:1px solid #b6a981;font:14px/1.5 Georgia,serif}.neighbour-bubble[hidden]{display:none}.neighbour-bubble:before{content:'';position:absolute;top:-10px;left:calc(50% - 10px);width:18px;height:18px;background:#fff5dc;border-top:1px solid #b6a981;border-left:1px solid #b6a981;transform:rotate(45deg)}.neighbour-bubble .neighbour-close{position:absolute;right:7px;top:7px;background:transparent;border:0;color:#455e4e;font:22px system-ui;cursor:pointer;padding:0 5px}.neighbour-title{display:block;font:10px/1.4 monospace;letter-spacing:.07em;text-transform:uppercase;margin-right:14px;color:#6f795a}.neighbour-chat p{margin:10px 0 0;padding:8px 10px;border-radius:10px 10px 10px 0;background:#e9e6ce}.neighbour-chat p+p{margin-left:16px;background:#dce5cd;border-radius:10px 10px 0 10px}.neighbour-more{border:0;background:transparent;color:#365a43;padding:9px 0 0;cursor:pointer;font:12px system-ui;text-decoration:underline;text-underline-offset:3px}.neighbour-fiction{display:block;font:9px/1.4 system-ui;margin-top:7px;color:#727462}@media(max-width:720px){.neighbour-bubble{width:255px;font-size:13px;left:clamp(10px,calc(var(--neighbour-x)*1% - 127px),calc(100% - 265px));padding:14px}.balcony-neighbour span{font-size:12px}}
/* Discover conversations by hovering real high-rise silhouettes. */
.balcony-neighbour,.balcony-neighbour:hover,.balcony-neighbour[aria-expanded=true]{padding:0;background:transparent;border:0;outline:none;box-shadow:none}.balcony-neighbour span{display:none}.balcony-neighbour:focus-visible{outline:2px solid #fff0b5;outline-offset:2px;background:#ffe3a51a}
