@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/fef07dbb0973bf53-s.00az9qtie3ho1.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:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/8a480f0b521d4e75-s.3j-a226dh71aj.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/53b9e256198e5412-s.2gwoz23eiro2t.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7178b3e590c64307-s.0i3h3th1vs4m7.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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/caa3a2e1cccd8315-s.p.0zr6hhvz-h9nw.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:Geist Fallback;src:local(Arial);ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.0%;size-adjust:104.76%}.UdeZcG_className{font-family:Geist,Geist Fallback;font-style:normal}.UdeZcG_variable{--font-sans:"Geist", "Geist Fallback"}
@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/5ce348bf30bf5439-s.27spqqad3wyeo.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:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/4fa387ec64143e14-s.3f4zuumv8svu0.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/6306c77e7c8268e4-s.34r5yzckw0h2s.woff2)format("woff2");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7d817b4c03b0c5f1-s.2jyz_zw3a8jit.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/bbc41e54d2fcbd21-s.30bdpjkrtcces.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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/797e433ab948586e-s.p.1v5bejj26fx9h.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:Geist Mono Fallback;src:local(Arial);ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.0%;size-adjust:134.59%}._1dHVEa_className{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}._1dHVEa_variable{--font-mono:"Geist Mono", "Geist Mono Fallback"}
:root{--color-background:#fff;--color-surface:#f4f3f0;--color-surface-strong:#e6e5e0;--color-wall:#ecebe7;--color-on-background:#1c1c1a;--color-on-surface-muted:#6f6e69;--color-outline:#dcdbd6;--color-outline-strong:#9e9d97;--color-primary:#1c1c1a;--color-on-primary:#fff;--color-primary-hover:#3a3a37;--color-accent:#2f5bd3;--color-warning:#b4561c;--color-on-warning:#fff;--shadow-mockup:0 1px 2px #14141214, 0 18px 40px -12px #14141238;--font-ui:var(--font-sans,ui-sans-serif), ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--font-data:var(--font-mono,ui-monospace), ui-monospace, "SFMono-Regular", Menlo, monospace;--type-title:500 15px/1.3 var(--font-ui);--type-body:400 14px/1.45 var(--font-ui);--type-label:500 13px/1.2 var(--font-ui);--type-caption:400 12px/1.35 var(--font-ui);--type-data:400 12px/1.35 var(--font-data);--type-micro:400 9.5px/1.3 var(--font-data);--rounded-xs:3px;--rounded-sm:6px;--rounded-md:10px;--rounded-lg:14px;--rounded-full:999px;--header-h:52px;--space-xxs:4px;--space-xs:6px;--space-sm:10px;--space-md:14px;--space-lg:20px;--space-xl:28px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--color-background:#161615;--color-surface:#22221f;--color-surface-strong:#2e2e2a;--color-wall:#1d1d1b;--color-on-background:#ecebe6;--color-on-surface-muted:#9a9993;--color-outline:#2e2e2b;--color-outline-strong:#5b5a55;--color-primary:#ecebe6;--color-on-primary:#161615;--color-primary-hover:#d4d3cd;--color-accent:#7d9bff;--color-warning:#e08a52;--color-on-warning:#161615;--shadow-mockup:0 1px 2px #0006, 0 18px 40px -12px #000000b3;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*,:before,:after{box-sizing:border-box}html,body{height:100%;margin:0}body{background:var(--color-background);color:var(--color-on-background);font:var(--type-body);padding-top:env(safe-area-inset-top,0px)}button,input{font:inherit;color:inherit;margin:0}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.app{height:100%;padding-left:max(16px, env(safe-area-inset-left,0px));padding-right:max(16px, env(safe-area-inset-right,0px));flex-direction:column;display:flex}.btn{justify-content:center;align-items:center;gap:var(--space-xs);border-radius:var(--rounded-full);height:36px;font:var(--type-label);white-space:nowrap;cursor:pointer;border:1px solid #0000;padding:0 16px;text-decoration:none;transition:background-color .15s,color .15s,border-color .15s;display:inline-flex}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-primary{background:var(--color-primary);color:var(--color-on-primary)}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover)}.btn-secondary{background:var(--color-background);color:var(--color-on-background);border-color:var(--color-outline)}.btn-secondary:hover:not(:disabled){background:var(--color-surface);border-color:var(--color-outline-strong)}.btn-text{color:var(--color-on-surface-muted);background:0 0;height:32px;padding:0 10px}.btn-text:hover:not(:disabled){background:var(--color-surface);color:var(--color-on-background)}.btn-icon{color:var(--color-on-surface-muted);background:0 0;width:36px;height:36px;padding:0}.btn-icon:hover:not(:disabled){background:var(--color-surface);color:var(--color-on-background)}.btn-sm{font:var(--type-caption);height:28px;padding:0 12px;font-weight:500}.btn-xs{font:var(--type-caption);height:24px;padding:0 8px;font-weight:500}.btn-icon.btn-sm{width:28px;height:28px;padding:0}.btn-danger{background:var(--color-warning);color:var(--color-on-warning)}.top{z-index:3;height:var(--header-h);justify-content:center;align-items:flex-end;display:flex;position:relative}.logo{cursor:pointer;background:#000;border-radius:5px;justify-content:center;align-items:center;width:30px;height:30px;display:flex;position:absolute;bottom:1px;left:0}.logo-mark{width:100%;height:100%;position:relative}.logo-mark img{object-fit:contain;-webkit-user-select:none;user-select:none;pointer-events:none}.seg{background:var(--color-surface);border-radius:var(--rounded-full);gap:2px;padding:2px;display:inline-flex}.seg button{align-items:center;gap:var(--space-xs);border-radius:var(--rounded-full);cursor:pointer;height:28px;color:var(--color-on-surface-muted);font:var(--type-caption);background:0 0;border:0;padding:0 12px;font-weight:500;transition:background-color .15s,color .15s,box-shadow .15s;display:inline-flex}.seg button:hover{color:var(--color-on-background)}.seg button[aria-pressed=true]{background:var(--color-background);color:var(--color-on-background);box-shadow:0 1px 2px #1414121a}.view{min-height:300px;margin-left:calc(-1 * max(16px, env(safe-area-inset-left,0px)));margin-right:calc(-1 * max(16px, env(safe-area-inset-right,0px)));margin-top:calc(-1 * var(--header-h));margin-bottom:calc(-1 * var(--bottom-h,0px));flex:auto;position:relative}.stage{inset:var(--header-h) 0 var(--bottom-h,0px) 0;touch-action:pan-y;-webkit-user-select:none;user-select:none;cursor:grab;position:absolute;overflow:hidden}.stage:active{cursor:grabbing}.card{border-radius:var(--rounded-lg);cursor:pointer;will-change:transform;position:absolute;left:0}.card.is-active{cursor:zoom-in}.card.add-card.is-active{cursor:pointer}.card>img,.card>.empty{border-radius:inherit}.mockup{background:var(--color-wall)}.mockup.is-active{box-shadow:var(--shadow-mockup)}.mockup img{object-fit:cover;pointer-events:none}.drag{box-shadow:0 0 0 2px var(--color-background), 0 0 0 4px var(--color-accent), var(--shadow-mockup)}.empty{align-content:center;place-items:center;gap:var(--space-xs);width:100%;padding:var(--space-md);text-align:center;font:var(--type-caption);color:var(--color-on-surface-muted);background:0 0;border:0;display:grid;position:absolute;inset:0}button.empty{cursor:pointer}.empty strong{font:var(--type-title);color:var(--color-on-background)}.add-card{border:1.5px dashed var(--color-outline-strong);background:var(--color-background)}.add-card:hover .empty strong{text-underline-offset:3px;text-decoration:underline}.grid-view{overscroll-behavior:contain;padding:calc(var(--header-h) + var(--space-lg)) max(16px, env(safe-area-inset-right,0px)) calc(var(--bottom-h,0px) + 36px) max(16px, env(safe-area-inset-left,0px));position:absolute;inset:0;overflow-y:auto}.edge-blur{z-index:2;pointer-events:none;position:absolute;left:0;right:0}.edge-top{height:calc(var(--header-h) + 14px);--dir:to top;top:0}.edge-bottom{height:calc(var(--bottom-h,0px) + 28px);--dir:to bottom;bottom:0}.edge-blur>span{position:absolute;inset:0}.edge-blur>span:first-child{--b:1px;--m:linear-gradient(var(--dir), transparent 0%, #000 20%, #000 40%, transparent 60%)}.edge-blur>span:nth-child(2){--b:2px;--m:linear-gradient(var(--dir), transparent 20%, #000 40%, #000 60%, transparent 80%)}.edge-blur>span:nth-child(3){--b:4px;--m:linear-gradient(var(--dir), transparent 40%, #000 60%, #000 80%, transparent 100%)}.edge-blur>span:nth-child(4){--b:8px;--m:linear-gradient(var(--dir), transparent 60%, #000 80%)}.edge-blur>span:nth-child(5){--b:14px;--m:linear-gradient(var(--dir), transparent 80%, #000 100%)}.edge-blur>span{-webkit-backdrop-filter:blur(var(--b));backdrop-filter:blur(var(--b));-webkit-mask-image:var(--m);-webkit-mask-image:var(--m);mask-image:var(--m)}.edge-blur:after{content:"";background:linear-gradient(var(--dir), transparent, color-mix(in srgb, var(--color-background) 70%, transparent));position:absolute;inset:0}.masonry{gap:var(--space-md);align-items:start;max-width:920px;margin-inline:auto;display:grid}.masonry-col{gap:var(--space-lg);flex-direction:column;min-width:0;display:flex}.grid-item{gap:var(--space-xs);flex-direction:column;margin:0;display:flex}.grid-thumb{cursor:zoom-in;background:var(--color-wall);border-radius:var(--rounded-md);border:0;width:100%;padding:0;transition:transform .2s,box-shadow .2s;display:block;position:relative}.grid-thumb img{object-fit:cover;border-radius:inherit}.grid-thumb:hover{box-shadow:var(--shadow-mockup);transform:translateY(-2px)}.grid-item figcaption{font:var(--type-micro);letter-spacing:.04em;text-transform:uppercase;color:var(--color-on-surface-muted);overflow-wrap:anywhere}.add-tile{border:1.5px dashed var(--color-outline-strong);background:var(--color-background);cursor:pointer}.add-tile:disabled{opacity:.4;cursor:progress}.grid-empty{font:var(--type-caption);color:var(--color-on-surface-muted);text-align:center}.lightbox{z-index:50;background:color-mix(in srgb, var(--color-background) 94%, transparent);cursor:zoom-out;position:fixed;inset:0}.lb-frame{border-radius:var(--rounded-lg);background:var(--color-wall);box-shadow:var(--shadow-mockup);position:absolute}.lb-frame img{object-fit:cover;border-radius:inherit}.lb-frame img+img{opacity:0;transition:opacity .25s}.lb-frame img+img.is-sharp{opacity:1}.lb-caption{left:0;right:0;bottom:max(var(--space-md), env(safe-area-inset-bottom,0px));justify-content:center;align-items:center;gap:var(--space-md);padding-inline:var(--space-md);cursor:default;color:var(--color-on-surface-muted);flex-wrap:wrap;display:flex;position:absolute}.lb-caption .name{font:var(--type-label);color:var(--color-on-background);text-overflow:ellipsis;white-space:nowrap;max-width:40ch;overflow:hidden}.lb-close{top:max(var(--space-md), env(safe-area-inset-top,0px));right:max(var(--space-md), env(safe-area-inset-right,0px));background:var(--color-surface);position:absolute}.bottom{z-index:3;position:relative}.meta{gap:var(--space-md);min-height:30px;font:var(--type-data);font-variant-numeric:tabular-nums;color:var(--color-on-surface-muted);flex-wrap:wrap;justify-content:center;align-items:center;display:flex}.meta .name{font:var(--type-label);color:var(--color-on-background);text-overflow:ellipsis;white-space:nowrap;max-width:32ch;overflow:hidden}.foot{justify-content:space-between;align-items:center;gap:var(--space-sm);width:100%;max-width:1100px;padding-block:var(--space-sm) max(var(--space-md), env(safe-area-inset-bottom,0px));flex-wrap:wrap;margin-inline:auto;display:flex}.foot .right{align-items:center;gap:var(--space-xs);color:var(--color-on-surface-muted);flex-wrap:wrap;display:flex}.status{min-height:17px;font:var(--type-caption);color:var(--color-on-surface-muted);margin:0}.status.err{color:var(--color-warning)}.data{font:var(--type-data);font-variant-numeric:tabular-nums}.login{gap:var(--space-xxs);flex-wrap:wrap;align-items:center;display:flex}.login input{border:1px solid var(--color-outline);border-radius:var(--rounded-full);background:var(--color-background);width:150px;max-width:45vw;height:24px;font:var(--type-caption);padding:0 10px}.login input:focus{border-color:var(--color-accent);box-shadow:0 0 0 1px var(--color-accent);outline:none}@media (prefers-reduced-motion:reduce){*{transition:none!important}}
