@font-face{font-family:Caveat;font-style:normal;font-weight:600;font-display:swap;src:url(../media/da4b870ab52b3094-s.2uxt0u9yugpfw.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Caveat;font-style:normal;font-weight:600;font-display:swap;src:url(../media/86d70b7c76b6ec6e-s.2zeei6axiu3qn.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Caveat;font-style:normal;font-weight:600;font-display:swap;src:url(../media/11cc37d7380d16b4-s.27211fhlic14m.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Caveat;font-style:normal;font-weight:600;font-display:swap;src:url(../media/a85fe84266768609-s.p.00hx3ibfyf9qx.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Caveat;font-style:normal;font-weight:700;font-display:swap;src:url(../media/da4b870ab52b3094-s.2uxt0u9yugpfw.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Caveat;font-style:normal;font-weight:700;font-display:swap;src:url(../media/86d70b7c76b6ec6e-s.2zeei6axiu3qn.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Caveat;font-style:normal;font-weight:700;font-display:swap;src:url(../media/11cc37d7380d16b4-s.27211fhlic14m.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Caveat;font-style:normal;font-weight:700;font-display:swap;src:url(../media/a85fe84266768609-s.p.00hx3ibfyf9qx.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Caveat Fallback;src:local(Arial);ascent-override:124.77%;descent-override:38.99%;line-gap-override:0.0%;size-adjust:76.94%}.caveat_6d719ccb-module__bJYSoq__className{font-family:Caveat,Caveat Fallback;font-style:normal}.caveat_6d719ccb-module__bJYSoq__variable{--font-caveat:"Caveat", "Caveat Fallback"}
:root{--bg:#f1ece3;--panel:#faf6ee;--line:#e2d9cb;--text:#2a2320;--muted:#8a7f72;--accent:#e8452c;--accent-soft:#fae3dc;--accent-foreground:#fff;--photo-bg:#e6ded0;--cardw:min(100%, 440px, 62vh);--iconbtn:clamp(42px, 7vh, 54px);--shutter:clamp(56px, 9.5vh, 74px);--memoh:78px;--pending:#f8cfc4;--cell:#ebe4d7;--cell-text:#b3a795;--sun:#ffc83d;--sky:#6cc3f0;--leaf:#7fcf8a}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{height:100%;margin:0}html{height:100dvh}body{background:var(--bg);color:var(--text);height:100dvh;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);overscroll-behavior:none;flex-direction:column;font:15px/1.4 -apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,Pretendard,system-ui,sans-serif;display:flex;overflow:hidden}header{width:100%;max-width:var(--cardw);flex:none;justify-content:center;align-items:center;gap:8px;margin:0 auto;padding:12px 16px;display:flex;position:relative}header h1{color:var(--accent);font-family:var(--font-caveat),"Caveat","Bradley Hand","Segoe Script",cursive;text-transform:uppercase;letter-spacing:2px;flex:none;align-items:center;gap:.05em;margin:0;font-size:clamp(24px,6.5vh,34px);font-weight:700;line-height:1;display:flex}header h1 span{display:none}header h1 .mark{flex:none;width:34px;height:34px}main{width:100%;min-height:0;max-width:var(--cardw);flex-direction:column;flex:auto;justify-content:center;margin:0 auto;padding:0 16px 16px;display:flex}footer{width:100%;max-width:var(--cardw);flex-direction:column;flex:none;gap:10px;margin:0 auto;padding:0 16px 20px;display:flex}.card{aspect-ratio:4/5;background:var(--panel);border:1px solid var(--line);border-top:0;border-radius:0 0 18px 18px;flex:none;width:100%;margin:0 auto;position:relative;overflow:hidden;box-shadow:0 6px 24px #2a232012;container-type:inline-size}.card .shot{background:var(--photo-bg);position:absolute;inset:0 0 24%;overflow:hidden}.card video,.card img.photo{object-fit:cover;width:100%;height:100%;display:block}.card video{transform:scaleX(var(--mirror,1))}.card .empty{color:var(--muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:20px 24px 12cqw;font-size:13px;line-height:1.5;display:flex;position:absolute;inset:0 0 24%}.card .empty .allow{border-radius:999px;flex:none;padding:13px 22px;font-size:15px}.card .empty .sub{color:var(--cell-text);max-width:32cqw;font-size:12px}.camtip{z-index:1;cursor:pointer;color:#fff;font:inherit;background:#0000008c;border:0;border-radius:12px;padding:8px 12px;font-size:12px;line-height:1.45;position:absolute;top:14cqw;left:4cqw;right:4cqw}.card .empty .spinner{width:30px;height:30px}.card .result{z-index:2;object-fit:contain;background:var(--panel);width:100%;height:100%;display:block;position:absolute;inset:0}.card-del{z-index:3;color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000061;border:0;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;padding:0;display:flex;position:absolute;top:3.3cqw;right:3.3cqw}.card-del svg{width:18px;height:18px}.card-del:active{transform:scale(.94)}.celebrate{z-index:4;cursor:pointer;background:radial-gradient(circle at 50% 42%,color-mix(in srgb,var(--panel) 92%,transparent),color-mix(in srgb,var(--panel) 62%,transparent));border:0;flex-direction:column;justify-content:center;align-items:center;gap:1cqw;padding:0 0 30%;animation:2.6s forwards celFade;display:flex;position:absolute;inset:0;overflow:hidden}@keyframes celFade{0%{opacity:0}8%{opacity:1}82%{opacity:1}to{opacity:0}}.buddy{width:46cqw;height:auto;animation:.55s cubic-bezier(.3,1.6,.5,1) both buddyPop;overflow:visible}.buddy-body{transform-box:view-box;transform-origin:70px 120px;animation:.52s ease-in-out .55s infinite alternate buddyHop}.buddy .skin,.buddy .foot{fill:var(--accent)}.buddy .arm path{fill:none;stroke:var(--accent);stroke-width:8px;stroke-linecap:round}.buddy .pompom circle{fill:var(--sun)}.buddy .eye{fill:none;stroke:var(--accent-foreground);stroke-width:4px;stroke-linecap:round}.buddy .cheek{fill:var(--pending)}.buddy .mouth{fill:var(--text)}.buddy .arm{transform-box:view-box;animation:.26s ease-in-out infinite alternate wave}.buddy .arm.left{transform-origin:44px 76px}.buddy .arm.right{transform-origin:96px 76px;animation-direction:alternate-reverse}.buddy .sparkle{fill:var(--sun);transform-box:fill-box;transform-origin:50%;animation:.7s ease-in-out infinite alternate twinkle}.buddy .sparkle.s2{animation-delay:.35s}@keyframes buddyPop{0%{opacity:0;transform:translateY(40%)scale(.3)}to{opacity:1;transform:none}}@keyframes buddyHop{0%{transform:translateY(0)scale(1.04,.96)}to{transform:translateY(-7px)scale(.98,1.02)}}@keyframes wave{0%{transform:rotate(-12deg)}to{transform:rotate(14deg)}}@keyframes twinkle{0%{opacity:.4;transform:scale(.5)}to{opacity:1;transform:scale(1.15)}}.cel-text{flex-direction:column;align-items:center;gap:.6cqw;animation:.5s cubic-bezier(.3,1.6,.5,1) .12s both buddyPop;display:flex}.cel-text strong{font-family:var(--font-caveat),"Caveat",cursive;color:var(--accent);font-size:15cqw;font-weight:700;line-height:.95}.cel-text span{color:var(--text);font-size:5.2cqw;font-weight:800}.confetti{pointer-events:none;position:absolute;inset:0}.confetti i{width:var(--w);height:calc(var(--w) * 1.5);background:var(--c);opacity:0;animation:confetti 1.7s cubic-bezier(.15,.7,.35,1) var(--d) forwards;border-radius:2px;position:absolute;top:40%;left:50%}@keyframes confetti{0%{opacity:1;transform:translate(-50%,-50%)rotate(0)scale(.4)}35%{opacity:1;transform:translate(calc(-50% + var(--x)),calc(-50% + var(--y))) rotate(calc(var(--r) * .5)) scale(1)}to{opacity:0;transform:translate(calc(-50% + var(--x) * 1.15),calc(-50% + var(--y) + 160px)) rotate(var(--r)) scale(1)}}@media (prefers-reduced-motion:reduce){.buddy,.buddy-body,.buddy .arm,.buddy .sparkle,.cel-text{animation:none}.confetti{display:none}}.cardtop{z-index:1;position:absolute;top:0;left:0;right:0}.titlebar{cursor:text;color:#fff;align-items:center;gap:2.04cqw;padding:4.07cqw 4.07cqw 0;display:flex}.cardprog{color:#fff;text-shadow:0 .2cqw .8cqw #00000080;align-items:baseline;gap:1.5cqw;padding:1.11cqw 4.07cqw 0;display:flex}.cardprog b{font-size:4.81cqw;font-weight:800;line-height:1}.cardprog span{opacity:.85;font-size:2.96cqw;font-weight:600;line-height:1}.titlebar .ticon{display:none}.titlebar input{appearance:none;color:#fff;text-shadow:0 .2cqw .8cqw #00000080;caret-color:#fff;text-overflow:ellipsis;background:0 0;border:0;border-radius:0;outline:0;flex:1;min-width:0;margin:0;padding:0;font-family:inherit;font-size:7.41cqw;font-weight:800;line-height:1.1}.titlebar input::placeholder{color:#fffc}.titlebar .tedit{opacity:.85;filter:drop-shadow(0 .2cqw .6cqw #00000073);flex:none;width:4.4cqw;height:4.4cqw;transition:opacity .15s}.titlebar:focus-within .tedit{opacity:0}.cats{scrollbar-width:none;background:var(--panel);border:1px solid var(--line);border-bottom:0;border-radius:18px 18px 0 0;flex:none;gap:10px;margin:0;padding:10px 12px;display:flex;overflow-x:auto;box-shadow:0 -2px 12px #2a23200a}.cats.tight{gap:7px}.cats::-webkit-scrollbar{display:none}.cats>:first-child{margin-left:auto}.cats>:last-child{margin-right:auto}.cat{cursor:pointer;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;background:0 0;border:0;flex:none;padding:0}.cat .ic{width:34px;height:34px;color:var(--cell-text);border-radius:50%;justify-content:center;align-items:center;transition:background .15s,color .15s;display:flex}.cat .ic svg{flex:none;width:18px;height:18px}.cat:has(.done) .ic{background:var(--accent-soft);width:auto;color:var(--accent);border-radius:999px;gap:3px;padding:0 8px 0 7px}.cats.tight .cat:has(.done) .ic{gap:1px;padding:0 5px 0 4px}.cat .done{align-items:center;display:flex}.cat .done svg{stroke-width:3px;width:13px;height:13px}.cats.tight .cat .done svg{width:12px;height:12px}.cat[aria-pressed=true] .ic{background:var(--accent);color:var(--accent-foreground)}.cat:active .ic{transform:scale(.94)}.cat:focus-visible{outline:none}.cat:focus-visible .ic{outline:2px solid var(--accent);outline-offset:2px}.cat.add .ic{color:var(--accent);border:1.5px dashed var(--accent);background:0 0}.sheet-backdrop{z-index:40;background:#2a232052;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--panel);width:100%;max-width:440px;max-height:88dvh;padding:18px 18px calc(18px + env(safe-area-inset-bottom));border-radius:22px 22px 0 0;overflow:auto;box-shadow:0 -8px 30px #2a23201f}.sheet-body{flex-direction:column;gap:16px;display:flex}.sheet h2{margin:0;font-size:16px;font-weight:800}.sheet-note{color:var(--muted);margin:0;font-size:13px;line-height:1.5}.sheet-note.warn{color:var(--accent)}.sheet .namefield{border:0;border-bottom:1.5px solid var(--line);width:100%;font:inherit;color:var(--text);caret-color:var(--accent);background:0 0;border-radius:0;outline:0;padding:8px 0;font-size:17px;font-weight:700}.sheet .namefield:focus{border-bottom-color:var(--accent)}.sheet .namefield::placeholder{color:var(--cell-text);font-weight:600}.iconpick{grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;display:grid}.iconpick button{aspect-ratio:1;cursor:pointer;background:var(--accent-soft);color:var(--accent);border:0;border-radius:14px;justify-content:center;align-items:center;padding:0;display:flex}.iconpick button svg{width:48%;height:48%}.iconpick button[aria-pressed=true]{background:var(--accent);color:var(--accent-foreground)}.sheet-actions{gap:8px;display:flex}.sheet-actions .danger{color:var(--accent)}.sheet-actions .cancel{margin-left:auto}.sheet-actions .btn.primary{flex:none;padding:14px 24px}.sheet-actions .btn:not(.ghost):not(.primary){flex:none;padding:14px 20px}.switch-row{cursor:pointer;align-items:center;gap:14px;display:flex}.switch-text{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.switch-text strong{font-size:14px}.switch-text small{color:var(--muted);font-size:12px;line-height:1.45}.switch{appearance:none;background:var(--line);cursor:pointer;border-radius:999px;flex:none;width:46px;height:28px;margin:0;transition:background .15s;position:relative}.switch:after{content:"";background:var(--panel);border-radius:50%;width:22px;height:22px;transition:transform .15s;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #2a232040}.switch:checked{background:var(--accent)}.switch:checked:after{transform:translate(18px)}.switch:disabled{opacity:.45;cursor:default}.switch:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.profile-pick{flex-direction:column;align-items:center;gap:6px;display:flex}.profile-photo{cursor:pointer;background:0 0;border:0;border-radius:50%;padding:0;position:relative}.profile-photo .avatar{box-shadow:0 0 0 3px var(--panel),0 0 0 4.5px var(--line)}.profile-photo-badge{background:var(--accent);width:30px;height:30px;color:var(--accent-foreground);border:2.5px solid var(--panel);border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;bottom:-2px;right:-2px}.profile-photo-badge svg{width:15px;height:15px}.profile-photo-busy{width:auto;height:auto;position:absolute;inset:26px}.profile-photo-actions{gap:10px;display:flex}.field{flex-direction:column;gap:2px;display:flex}.field-label{color:var(--muted);font-size:12px;font-weight:700}.phone-btn{border:1px solid var(--line);background:var(--panel);width:34px;height:34px;color:var(--muted);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;padding:0;display:none;position:absolute;top:50%;left:0;transform:translateY(-50%)}.phone-btn svg{width:17px;height:17px}.pc-qr{z-index:5;background:var(--bg);justify-content:center;align-items:center;padding:16px 32px 48px;display:none;position:absolute;inset:0}.pc-qr-box{text-align:center;flex-direction:column;align-items:center;gap:6px;display:flex}.qr{background:var(--panel);width:156px;height:156px;color:var(--accent);border-radius:18px;padding:10px}.pc-qr-url{letter-spacing:.02em;color:var(--text);margin-top:6px;font-size:13px;font-weight:700}.pc-qr-continue{text-underline-offset:3px;margin-top:10px;font-size:12px;font-weight:600;text-decoration:underline}.account-btn{border:1px solid var(--line);background:var(--panel);width:34px;height:34px;color:var(--muted);cursor:pointer;border-radius:50%;flex:none;justify-content:center;align-items:center;padding:0;display:flex;overflow:hidden}.account-btn svg{width:18px;height:18px}.account-btn:has(.avatar){border-color:#0000}.avatar{object-fit:cover;background:var(--accent-soft);color:var(--accent);border-radius:50%;flex:none;justify-content:center;align-items:center;font-weight:800;line-height:1;display:flex}.login-list{flex-direction:column;gap:10px;display:flex}.login{cursor:pointer;border:1px solid #0000;border-radius:12px;justify-content:center;align-items:center;gap:10px;width:100%;height:50px;font-size:15px;font-weight:700;display:flex}.login svg{flex:none;width:20px;height:20px}.login.kakao{color:#000000d9;background:#fee500}.login.google{color:#1f1f1f;background:#fff;border-color:#dadce0}.login:disabled{opacity:.6}.account-info{align-items:center;gap:12px;display:flex}.account-text{flex:1;min-width:0}.account-name{font-weight:800}.account-email{color:var(--muted);font-size:13px}.band{z-index:3;background:var(--panel);height:24%;font:inherit;color:inherit;cursor:pointer;appearance:none;border:0;align-items:center;gap:2.6cqw;padding:0 4.2cqw;display:flex;position:absolute;bottom:0;left:0;right:0}.band:focus-visible{outline:2px solid var(--accent);outline-offset:-3px}.datebox{aspect-ratio:1;background:var(--accent-soft);border-radius:2cqw;flex-direction:column;flex:none;justify-content:center;align-items:center;gap:.4cqw;width:15.5%;display:flex}.datebox .yy{color:var(--muted);letter-spacing:.04em;font-size:2.3cqw;line-height:1}.datebox .mm{color:var(--accent);font-size:6.6cqw;font-weight:800;line-height:1}.bandmain{flex-direction:column;flex:1;justify-content:center;gap:1.2cqw;min-width:0;display:flex}.streakrow{justify-content:space-between;align-items:baseline;gap:2cqw;min-height:3cqw;line-height:1.1;display:flex}.streakrow .since{color:var(--cell-text);font-size:2.2cqw;font-weight:600}.streakrow .streak{color:var(--accent);margin-left:auto;font-size:2.6cqw;font-weight:700}.grid{flex-direction:column;gap:1cqw;display:flex}.row{grid-template-columns:repeat(16,minmax(0,1fr));gap:.7cqw;display:grid}.cell{aspect-ratio:1;background:var(--cell);color:var(--cell-text);-webkit-user-select:none;user-select:none;border-radius:.8cqw;justify-content:center;align-items:center;font-size:1.8cqw;display:flex;overflow:hidden}.cell.on{background:var(--accent);color:var(--accent-foreground);font-weight:700}.cell.pending{background:var(--pending);color:var(--accent);font-weight:700;animation:1.4s ease-in-out infinite pendingPulse}@keyframes pendingPulse{50%{opacity:.55}}@media (prefers-reduced-motion:reduce){.cell.pending{animation:none}}.cell.blank{background:0 0}.band.year{--yw:55cqw;--ygridh:calc(var(--yw)*.3827);justify-content:center;gap:1.2cqw;height:auto;padding:3.2cqw 4.2cqw}.band.year .datebox{height:var(--ygridh);aspect-ratio:auto;background:0 0;border-radius:0;flex:none;justify-content:center;gap:0;width:auto}.band.year .datebox .yy{writing-mode:vertical-rl;font-size:calc(var(--yw)*.206);color:var(--accent-soft);letter-spacing:-.04em;font-weight:800;line-height:1;transform:rotate(180deg)scaleY(.76)}.band.year .bandmain{flex:none;width:auto}.ygrid{gap:calc(var(--yw)/31*.22);width:var(--yw);grid-template-columns:repeat(31,1fr);display:grid}.ycell{aspect-ratio:1;border-radius:calc(var(--yw)/31*.24);background:var(--cell)}.ycell.on{background:var(--accent)}.ycell.today{background:var(--pending)}.ycell.blank{background:0 0}.yside{height:var(--ygridh);border:.4cqw solid var(--accent-soft);width:20cqw;color:var(--accent);opacity:.85;border-radius:2.4cqw;flex-direction:column;flex:none;justify-content:center;align-items:center;gap:.7cqw;margin-left:2.2cqw;padding:1.4cqw;display:flex}.ymark{width:8cqw;height:8cqw}.yside b{font-size:5.4cqw;font-weight:800;line-height:1}.yside i{letter-spacing:.06em;font-size:2.5cqw;font-style:normal;font-weight:700;line-height:1}.actions{justify-content:center;align-items:center;gap:8px;display:flex}button{font:inherit}.btn{border:1px solid var(--line);background:var(--panel);color:var(--text);cursor:pointer;border-radius:14px;flex:1;padding:14px 12px;font-weight:700}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-foreground)}.btn.ghost{color:var(--muted);flex:none;padding:14px 16px}.btn.icon{width:var(--iconbtn);height:var(--iconbtn);color:var(--text);flex:none;justify-content:center;align-items:center;padding:0;display:flex}.btn.icon svg{width:calc(var(--iconbtn) * .45);height:calc(var(--iconbtn) * .45)}.btn.shutter{width:var(--shutter);height:var(--shutter);background:var(--accent);border-color:var(--accent);color:var(--accent-foreground);border-radius:50%;flex:none;justify-content:center;align-items:center;padding:0;display:flex}.btn.shutter svg{width:calc(var(--shutter) * .43);height:calc(var(--shutter) * .43)}.btn.shutter:active{transform:scale(.94)}.actions.live,.actions.done{justify-content:space-between;padding:0 4px}.share-row{gap:14px;display:flex}.share-btn{width:var(--shutter);height:var(--shutter);cursor:pointer;border:0;border-radius:50%;justify-content:center;align-items:center;padding:0;display:flex;box-shadow:0 4px 14px #2a232029}.share-btn svg{width:48%;height:48%}.share-btn:active{transform:scale(.94)}.share-btn:disabled{opacity:.45}.share-btn.kakao{background:#fee500}.share-btn.instagram{background:radial-gradient(circle at 30% 107%,#fdf497 0% 5%,#fd5949 45%,#d6249f 60%,#285aeb 90%)}.memo{width:100%;min-height:calc(var(--memoh) - 10px);border:1px solid var(--line);resize:none;background:var(--panel);max-height:190px;color:var(--text);font:inherit;caret-color:var(--accent);border-radius:14px;outline:0;flex:auto;margin:10px 0 0;padding:10px 14px;font-size:16px;line-height:1.4}.memo:disabled{opacity:.6}.memo:focus{border-color:var(--accent)}.memo::placeholder{color:var(--cell-text)}.btn:disabled{opacity:.4}.btn.small{border-radius:999px;flex:none;padding:8px 12px;font-size:13px}.link{color:var(--accent);cursor:pointer;background:0 0;border:0;padding:4px 2px;font-size:13px;font-weight:700}.link.muted{color:var(--muted)}.toast{z-index:45;max-width:min(90vw,400px);left:50%;bottom:calc(env(safe-area-inset-bottom) + var(--shutter) + 36px);background:var(--text);color:var(--panel);text-align:center;border-radius:12px;padding:10px 16px;font-size:13px;position:fixed;transform:translate(-50%)}.langs{align-items:center;gap:6px;display:flex}.langs-label{color:var(--muted);flex:1;font-size:13px}.langs button{border:1px solid var(--line);background:var(--panel);color:var(--text);cursor:pointer;border-radius:999px;padding:8px 14px;font-weight:600}.langs button[aria-checked=true]{background:var(--accent);border-color:var(--accent);color:var(--accent-foreground)}.overlay{z-index:50;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#f1ece3db;flex-direction:column;justify-content:center;align-items:center;gap:14px;display:flex;position:fixed;inset:0}.spinner{border:3px solid var(--accent-soft);border-top-color:var(--accent);border-radius:50%;width:38px;height:38px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.overlay .olabel{color:var(--muted);font-size:13px;font-weight:600}@media (prefers-reduced-motion:reduce){.spinner{animation-duration:2s}}.shell{flex:auto;width:100%;min-height:0;display:flex}.app{flex-direction:column;flex:auto;min-width:0;display:flex}.app-body{flex-direction:column;flex:auto;min-height:0;display:flex;position:relative}.gallery-side{display:none}.gallery-side.open{z-index:30;background:var(--bg);padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);flex-direction:column;display:flex;position:fixed;inset:0}.gallery-side.open~.app{visibility:hidden}@media (min-width:960px){.gallery-side.open~.app{visibility:visible}.gallery-side,.gallery-side.open{background:var(--panel);border-right:1px solid var(--line);flex:auto;min-width:0;padding:0;display:flex;position:static}.app{flex:0 0 480px}.gallery-top{display:none}.phone-btn,.pc-qr{display:flex}.gallery{--gpad:32px;padding:28px var(--gpad) 48px}}.gallery{--gpad:20px;width:100%;min-width:0;max-width:1100px;padding:22px var(--gpad) 40px;flex-direction:column;flex:1;gap:14px;margin:0 auto;display:flex;overflow-y:auto}.gallery-head{justify-content:space-between;align-items:center;gap:12px;display:none}.gallery-head h2{margin:0;font-size:20px;font-weight:800}.gallery-tabs{gap:16px;display:flex}.gallery-tabs button{color:var(--muted);cursor:pointer;background:0 0;border:0;border-bottom:2.5px solid #0000;padding:4px 2px;font-size:15px;font-weight:800;line-height:1.3}.gallery-tabs button[aria-selected=true]{color:var(--text);border-bottom-color:var(--accent)}header .gallery-tabs{flex:auto;justify-content:center;min-width:0}@media (min-width:960px){header .gallery-tabs{display:none}.gallery-head{display:flex}.gallery-head .tab-today{display:none}header h1 span{display:inline}header h1 .mark{width:1.6em;height:1.6em;margin-top:-.15em}.account-btn{position:absolute;top:50%;right:16px;transform:translateY(-50%)}}.gallery-filter{flex-wrap:wrap;gap:6px;display:flex}.gallery-filter button{border:1px solid var(--line);background:var(--panel);min-width:32px;height:32px;color:var(--accent);cursor:pointer;border-radius:999px;justify-content:center;align-items:center;padding:0 10px;font-size:12px;font-weight:700;display:flex}.gallery-filter button:first-child{color:var(--muted)}.gallery-filter button svg{width:16px;height:16px}.gallery-filter button[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--accent-foreground)}.pgrid{margin:0 calc(-1 * var(--gpad));grid-template-columns:repeat(3,minmax(0,1fr));gap:3px;display:grid}.ptile{aspect-ratio:1;background:var(--photo-bg);cursor:pointer;border:0;width:100%;padding:0;display:block;position:relative;overflow:hidden}.ptile-open{cursor:pointer;background:0 0;border:0;padding:0;position:absolute;inset:0}.ptile>img,.ptile-open img{object-fit:cover;color:#0000;width:100%;height:100%;transition:transform .25s;display:block}.ptile:hover>img,.ptile:hover .ptile-open img{transform:scale(1.03)}.ptile:focus-visible,.ptile-open:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.ptop{pointer-events:none;background:linear-gradient(#0000006b,#0000);flex-direction:column;align-items:flex-start;gap:1px;padding:8px 9px 22px;display:flex;position:absolute;top:0;left:0;right:0}.ptitle{color:#fff;text-align:left;word-break:keep-all;overflow-wrap:anywhere;text-shadow:0 1px 3px #00000073;-webkit-line-clamp:2;-webkit-box-orient:vertical;max-width:100%;font-size:14px;font-weight:800;line-height:1.3;display:-webkit-box;overflow:hidden}.pbadge{color:#fff;opacity:.92;white-space:nowrap;text-shadow:0 1px 3px #00000080;font-size:11px;font-weight:700;line-height:1.3}.pbar{pointer-events:none;background:linear-gradient(#0000,#00000052);align-items:center;padding:18px 7px 6px;display:flex;position:absolute;bottom:0;left:0;right:0}.pbar .avatar{box-shadow:0 0 0 1.5px #ffffffe6}.gallery-spinner{margin:40px auto}.load-more{justify-content:center;padding:8px 0;display:flex}.load-more .btn{border-radius:999px;flex:none;padding:10px 22px}@media (min-width:960px){.pgrid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:4px}.ptop{gap:6px;padding:11px 12px 28px}.ptitle{font-size:15px}.pbadge{font-size:12px}.pbar{padding:22px 10px 8px}}.gallery-empty{color:var(--muted);text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:6px;padding:60px 20px;font-size:13px;display:flex}.gallery-empty strong{color:var(--text);font-size:15px}.gallery-note{color:var(--cell-text);text-align:center;margin:0;font-size:12px;line-height:1.5}.viewer{z-index:42;background:#14100ec7;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.viewer-body{flex-direction:column;gap:12px;width:min(92vw,440px,80dvh - 128px);display:flex}.viewer-tabs{justify-content:center;gap:6px;display:flex}.viewer-tabs button{color:#fff;cursor:pointer;background:#ffffff29;border:0;border-radius:999px;padding:7px 16px;font-weight:700}.viewer-tabs button[aria-selected=true]{color:var(--text);background:#fff}.viewer-tabs button:disabled{opacity:.4;cursor:default}.viewer-img{object-fit:contain;border-radius:14px;width:100%;max-height:calc(100dvh - 190px);display:block}.viewer-photo{border-radius:14px;position:relative;overflow:hidden}.viewer-photo .ptop{gap:6px;padding:14px 16px 32px}.viewer-photo .ptitle{-webkit-line-clamp:3;font-size:16px}.viewer-photo .pbadge{font-size:12px}.viewer-caption{color:#fffc;justify-content:center;align-items:center;gap:10px;margin:0;font-size:13px;font-weight:600;display:flex}.viewer-caption span{align-items:center;gap:3px;display:flex}.viewer-caption svg{width:14px;height:14px}.viewer-editday{color:#fff;cursor:pointer;background:#ffffff29;border:0;border-radius:8px;align-items:center;padding:4px;display:flex}.viewer-editday svg{width:14px;height:14px}.viewer-dayedit{justify-content:center;align-items:center;gap:8px;display:flex}.viewer-dayedit input{color:#fff;min-width:0;height:44px;font:inherit;background:#ffffff1f;border:1px solid #ffffff4d;border-radius:12px;flex:auto;padding:0 12px;font-weight:700}.viewer-dayedit .btn{flex:none;padding:12px 14px}.viewer-dayedit .btn.ghost{color:#fff;background:0 0;border-color:#ffffff4d}.viewer-author{color:#fff;align-items:center;gap:8px;min-width:0;font-size:14px;display:flex}.viewer-author strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.viewer-author span{color:#ffffffb3;flex:none;margin-left:auto;font-size:12px}.viewer-actions{gap:8px;display:flex}.viewer-actions .btn{flex:1}.viewer-actions .btn.ghost{color:#fff;background:0 0;border-color:#ffffff4d}
