@font-face{font-family:"Young Serif";font-style:normal;font-weight:400;font-display:swap;src:url(/static/youngserif-latin-ext-DzElnxZw.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:"Young Serif";font-style:normal;font-weight:400;font-display:swap;src:url(/static/youngserif-latin-DIMmNPI9.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-weight:400 700;font-stretch:100%;font-display:swap;src:url(/static/bricolage-latin-ext-IcJDqblK.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Bricolage Grotesque;font-style:normal;font-weight:400 700;font-stretch:100%;font-display:swap;src:url(/static/bricolage-latin-Cre6nC2_.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/static/spacemono-400-latin-ext-DTLbW2xa.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Space Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/static/spacemono-400-latin-Rg4St2Dn.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/static/spacemono-700-latin-ext-B2s3bDs2.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Space Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/static/spacemono-700-latin-mWgeinG7.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:digital;src:url(/assets/datestamp.otf) format("opentype");font-display:swap}:root{--cream: #E4D5B7;--card: #C9B79C;--taupe: #A78A7F;--coffee: #6E5B5B;--char: #3F3A3A;--paper: #F4EEE3;--field: #EFE5D0;--stamp: #F08A3C;--vf: #171414;--counter: #0f0d0d;--plastic: #2a2626;--plastic-2: #4b4545;--hard: #1f1c1c;--film: #231f1f;--display: "Young Serif", Georgia, serif;--ui: "Bricolage Grotesque", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono: "Space Mono", ui-monospace, Menlo, Consolas, monospace;--texture: radial-gradient(rgba(228, 213, 183, .05) 1px, transparent 1.2px);--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);color-scheme:light}*{box-sizing:border-box}html,body{margin:0;min-height:100%}body{font-family:var(--ui);color:var(--char);background:var(--cream);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%}body.dark{color:var(--cream);background-color:var(--char);background-image:var(--texture);background-size:5px 5px}[hidden]{display:none!important}button{font:inherit;color:inherit}a{color:var(--coffee)}.sr-only,.file-input{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;opacity:0}.display{font-family:var(--display);font-weight:400;letter-spacing:-.01em;margin:0}.label{font:700 10px/1.2 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--coffee)}body.dark .label{color:var(--card)}.h44{font-size:44px;line-height:1.02}.lead{font-size:17px;line-height:1.45;margin:16px 0 0;text-wrap:pretty}.digital{font-family:"digital",var(--mono)}.credit{margin:0;padding:22px 0 max(9px,var(--safe-bottom));text-align:center;font:400 10px/1.4 var(--mono);letter-spacing:.08em;color:var(--coffee)}body.dark .credit{color:var(--card)}.credit a{color:inherit;text-decoration-thickness:1px;text-underline-offset:2px}.shoot .controls{padding-bottom:4px}.shoot .credit{flex:none;padding:0 0 max(6px,var(--safe-bottom))}.view.loading{position:relative}.loading>.credit{position:absolute;left:0;right:0;bottom:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;min-height:52px;padding:0 1.4em;border-radius:16px;border:0;font:700 17px/1 var(--ui);cursor:pointer;text-decoration:none;user-select:none;transition:transform 90ms,box-shadow 90ms,opacity .15s}.btn:disabled{opacity:.55;cursor:default}.btn.dark{background:var(--char);color:var(--cream);box-shadow:0 4px 0 var(--hard)}.btn.dark:active:not(:disabled){transform:translateY(3px);box-shadow:0 1px 0 var(--hard)}.btn.light{background:var(--cream);color:var(--char);box-shadow:0 4px 0 var(--coffee)}.btn.light:active:not(:disabled){transform:translateY(3px);box-shadow:0 1px 0 var(--coffee)}.btn.ghost{background:transparent;border:1.5px solid currentColor}.btn.block{width:100%}.btn.tall{min-height:58px}.screen{width:100%;max-width:480px;margin:0 auto;min-height:100svh;display:flex;flex-direction:column}.welcome{padding:calc(28px + var(--safe-top)) 28px 0}.meta-row{display:flex;justify-content:space-between;gap:12px}.welcome-title{font-size:48px;line-height:1;margin-top:18px;overflow-wrap:anywhere}.dispo{position:relative;flex:none;width:300px;height:172px;margin:30px auto 0;transform:rotate(-3deg)}.dispo>*{position:absolute}.dispo-wind{left:30px;top:-10px;width:48px;height:16px;border-radius:6px 6px 0 0;background:#2e2a2a}.dispo-body{inset:0;border-radius:16px;background:var(--char);box-shadow:0 18px 30px #3f3a3a59,inset 0 2px #ffffff14}.dispo-sleeve{inset:38px 0 22px;background:var(--card);display:flex;flex-direction:column;justify-content:flex-end;padding:0 16px 10px}.dispo-sleeve:before,.dispo-sleeve:after{content:"";position:absolute;left:0;right:0}.dispo-sleeve:before{top:8px;height:4px;background:var(--coffee)}.dispo-sleeve:after{top:15px;height:2px;background:var(--taupe)}.dispo-brand{max-width:104px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:400 24px/1.1 var(--display);color:var(--char)}.dispo-roll{max-width:100px;font:700 8px/1.4 var(--mono);letter-spacing:.12em;color:var(--char)}.dispo-window{left:18px;top:12px;width:34px;height:22px;border-radius:5px;background:#1b1818;box-shadow:inset 0 0 0 2px #574f4f}.dispo-flash{right:18px;top:10px;width:74px;height:36px;border-radius:6px;background:repeating-linear-gradient(90deg,#efe7d6 0 3px,#d9ccb2 3px 6px);box-shadow:inset 0 0 0 3px #574f4f}.dispo-lens{left:128px;top:46px;width:96px;height:96px;border-radius:50%;background:var(--plastic);box-shadow:0 0 0 6px var(--char),0 0 0 9px var(--coffee),0 6px 14px #0006}.dispo-lens:after{content:"";position:absolute;inset:18px;border-radius:50%;background:radial-gradient(circle at 38% 34%,#8d7c7c 0 8%,#2b2528 18%,#0e0c0d 70%);box-shadow:0 0 0 4px #1a1717}@media(max-width:359px){.dispo{transform:rotate(-3deg) scale(.86);margin:20px auto -12px}}.pitch{font-size:16px;line-height:1.45;margin:34px 0 0;text-wrap:pretty}.invite{padding-top:calc(34px + var(--safe-top))}.invite-stack{position:relative;isolation:isolate;width:min(330px,100%);margin:0 auto}.invite-stack:before{content:"";position:absolute;inset:6px -4px 10px 8px;z-index:-1;background:var(--field);transform:rotate(4deg);box-shadow:0 10px 24px #3f3a3a2e}.invite-card{display:flex;flex-direction:column;align-items:center;text-align:center;padding:12px 12px 16px;background:var(--paper);transform:rotate(-1.5deg);box-shadow:0 20px 40px #3f3a3a4d}.invite-photo{width:100%;height:178px;overflow:hidden;display:flex;align-items:center;justify-content:center;background:var(--cream)}.invite-photo .dispo{margin:0;transform:rotate(-3deg) scale(.82)}.invite-cover{width:100%;height:100%;object-fit:cover;display:block}.invite-kicker{margin:16px 0 0;letter-spacing:.18em}.invite-title{font-size:34px;line-height:1.05;margin-top:6px;overflow-wrap:anywhere;text-wrap:balance}.invite-foot{align-self:stretch;display:flex;justify-content:space-between;gap:10px;margin-top:14px}.invite .pitch{margin-top:30px}@media(max-width:359px){.invite{padding-left:20px;padding-right:20px}.invite-photo{height:150px}.invite-photo .dispo{transform:rotate(-3deg) scale(.7);margin:0}.invite-title{font-size:28px}}.join-form{display:flex;flex-direction:column;gap:10px;margin-top:auto;padding-top:28px}.text-input{width:100%;height:54px;padding:0 16px;border-radius:14px;border:1.5px solid var(--card);background:var(--field);font:500 18px/1 var(--ui);color:var(--char);outline:none}.text-input::placeholder{color:var(--taupe)}.text-input:focus,.text-input[aria-invalid=true]{border-color:var(--coffee)}.form-error{font:500 13px/1.35 var(--ui);color:var(--coffee)}.form-error .btn{margin-top:10px;min-height:44px;font-size:15px}.form-note{margin:0;font-size:12px;line-height:1.4;color:var(--coffee);text-align:center}.closed-screen{padding:calc(40px + var(--safe-top)) 28px 0;background:var(--cream);color:var(--char)}.closed-screen .label,.closed-screen .credit{color:var(--coffee)}.closed-screen .h44{margin-top:18px}.seal{align-self:flex-start;margin-top:28px;transform:rotate(-4deg);border:2px solid var(--coffee);border-radius:8px;padding:10px 14px;display:flex;flex-direction:column;gap:4px}.seal-who{font:500 15px/1.2 var(--ui);color:var(--char)}.closed-bottom{margin-top:auto;padding-top:36px;display:flex;flex-direction:column;gap:14px}.closed-bottom p{margin:0;font-size:14px;line-height:1.4}.cd{display:flex;gap:8px}.cd-cell{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center}.cd-card .cd-cell{background:var(--char);border-radius:8px;padding:8px 0 7px;gap:4px}.cd-card b{font:700 20px/1 var(--mono);color:var(--cream)}.cd-card span{font:700 8px/1 var(--mono);letter-spacing:.12em;color:var(--card)}.cd-flip .cd-cell{gap:8px}.cd-flip b{position:relative;width:100%;height:78px;border-radius:12px;background:var(--char);display:flex;align-items:center;justify-content:center;font:700 34px/1 var(--mono);color:var(--cream);box-shadow:0 4px 0 var(--hard)}.cd-flip b:after{content:"";position:absolute;left:0;right:0;top:50%;height:1px;background:#0000008c}.cd-flip span{font:700 9px/1 var(--mono);letter-spacing:.14em;color:var(--char)}.view{width:100%;max-width:480px;margin:0 auto;min-height:100svh;display:flex;flex-direction:column}.loading{justify-content:center;gap:30px;padding:calc(20px + var(--safe-top)) 32px 20px;overflow:hidden}.loading h1{font-size:36px;line-height:1.08;color:var(--cream);margin-top:10px}.loading p{margin:0;font-size:15px;line-height:1.45;color:var(--card)}.film{position:relative;flex:none;height:76px;margin:0 -32px;background:var(--film);overflow:hidden}.film:before,.film:after{content:"";position:absolute;left:0;right:0;height:8px;opacity:.55;background:repeating-linear-gradient(90deg,var(--card) 0 8px,transparent 8px 20px)}.film:before{top:6px}.film:after{bottom:6px}.film.moving:before,.film.moving:after{animation:sprockets .5s linear infinite}@keyframes sprockets{to{background-position-x:20px}}.film-fill{position:absolute;left:0;top:20px;bottom:20px;width:0;background:repeating-linear-gradient(90deg,var(--taupe) 0 72px,var(--film) 72px 78px);transition:width .65s cubic-bezier(.3,.7,.3,1)}.checklist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}.checklist li{display:flex;align-items:center;gap:12px;font:500 15px/1.2 var(--ui);color:var(--taupe);transition:color .3s}.checklist li.ok{color:var(--cream)}.checklist .mark{flex:none;width:28px;font:700 12px/1 var(--mono)}.load-error{color:var(--cream)!important}.shoot{height:100svh;min-height:0;padding-top:calc(10px + var(--safe-top))}.cam-head{display:flex;justify-content:space-between;gap:12px;padding:0 18px 10px}.cam-head>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vf{position:relative;flex:1;min-height:180px;margin:0 10px;isolation:isolate;border-radius:24px;background:var(--vf);overflow:hidden;box-shadow:0 0 0 4px var(--plastic-2),0 0 0 5px var(--plastic)}.vf video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.vf-stripes{position:absolute;inset:0;background:repeating-linear-gradient(135deg,rgba(228,213,183,.07) 0 1px,transparent 1px 10px)}.vf-empty{position:absolute;inset:0;padding:0 40px;display:flex;align-items:center;justify-content:center;text-align:center;font:400 11px/1.5 var(--mono);color:var(--taupe)}.vf.live .vf-stripes,.vf.live .vf-empty{display:none}.vf-tap{appearance:none;-webkit-appearance:none;cursor:pointer;padding:12px 18px;border:1px solid rgba(228,213,183,.55);border-radius:999px;background:#0f0d0d8c;color:var(--cream);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);font:700 10px/1.5 var(--mono);letter-spacing:.12em;text-transform:uppercase;text-align:center;box-shadow:0 2px 8px #00000059;transition:transform 90ms,background .15s}.vf-tap:active{transform:scale(.96);background:#0f0d0dbf}.vf-vignette{position:absolute;inset:0;box-shadow:inset 0 0 70px #000000d9;pointer-events:none}.vf-corner{position:absolute;width:26px;height:26px;border:0 solid var(--cream);opacity:.7}.vf-corner.tl{left:18px;top:18px;border-left-width:2px;border-top-width:2px}.vf-corner.bl{left:18px;bottom:18px;border-left-width:2px;border-bottom-width:2px}.vf-corner.br{right:18px;bottom:18px;border-right-width:2px;border-bottom-width:2px}.counter{--counter-step: 40px;position:absolute;right:12px;top:12px;display:flex;flex-direction:column;align-items:center;gap:5px}.counter-win{position:relative;width:52px;height:var(--counter-step);border-radius:8px;overflow:hidden;background:var(--counter);box-shadow:inset 0 2px 6px #000000f2,0 0 0 3px var(--plastic-2)}.counter-col{position:absolute;left:0;right:0;top:0;transform:translateY(calc(var(--counter-pos, 0) * -1 * var(--counter-step)));transition:transform .7s cubic-bezier(.5,-.35,.3,1.4)}.counter-col div{height:var(--counter-step);display:flex;align-items:center;justify-content:center;font:700 23px/1 var(--mono);color:var(--cream)}.counter-col .inf{font-size:27px}.counter-win:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(0,0,0,.75),transparent 30%,transparent 70%,rgba(0,0,0,.75))}.counter-lbl{font:700 8px/1 var(--mono);letter-spacing:.14em;color:var(--cream)}.roll-toast{position:absolute;left:50%;bottom:28px;width:min(250px,calc(100% - 32px));transform:translate(-50%) translateY(12px);opacity:0;transition:opacity .26s,transform .26s;pointer-events:none;background:var(--cream);color:var(--char);border-radius:14px;padding:12px 18px;text-align:center;box-shadow:0 12px 24px #0006}.roll-toast.show{opacity:1;transform:translate(-50%) translateY(0)}.roll-toast .display{font-size:22px;line-height:1.1}.roll-toast p{margin:4px 0 0;font-size:13px;line-height:1.35}.band{flex:none;margin-top:10px;padding:7px 18px;background:var(--card);display:flex;justify-content:space-between;gap:10px;font:700 9px/1 var(--mono);letter-spacing:.14em;color:var(--char);white-space:nowrap;box-shadow:0 -2px #00000040,0 2px #00000040}.band>span{overflow:hidden;text-overflow:ellipsis}.controls{flex:none;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:12px;padding:12px 16px max(12px,calc(10px + var(--safe-bottom)))}.gallery-link{justify-self:start;padding:6px 0;cursor:pointer;font:400 12px/1.35 var(--ui);color:var(--taupe);text-decoration:underline;text-underline-offset:3px}.shutter-col{display:flex;flex-direction:column;align-items:center;gap:8px}.shutter-well{width:108px;height:108px;border-radius:50%;background:var(--plastic);display:flex;align-items:center;justify-content:center;box-shadow:inset 0 4px 10px #000000b3,0 1px #e4d5b71f}.shutter{width:84px;height:84px;border-radius:50%;border:0;cursor:pointer;background:radial-gradient(circle at 36% 30%,#F2E9D6,var(--cream) 45%,var(--card) 100%);box-shadow:0 6px 0 var(--coffee),0 14px 20px #00000080,inset 0 -5px 10px #6e5b5b59;transition:transform 90ms,box-shadow 90ms,opacity .2s}.shutter:active:not(:disabled){transform:translateY(5px);box-shadow:0 1px 0 var(--coffee),0 4px 8px #00000080,inset 0 -3px 8px #6e5b5b59}.shutter:disabled{cursor:default}.shutter-lbl{font:700 11px/1 var(--mono);letter-spacing:.2em;color:var(--cream)}.wheel-col{justify-self:end}.wheel{position:relative;width:44px;height:116px;border-radius:12px;overflow:hidden;cursor:ns-resize;touch-action:none;box-shadow:0 0 0 3px var(--plastic),0 6px 14px #0006}.wheel-strip{position:absolute;inset:0;background:repeating-linear-gradient(180deg,#221e1e 0 4px,#5c5252 4px 7px,#2e2929 7px 9px);transition:background-position .65s cubic-bezier(.3,.7,.3,1)}.wheel.dragging .wheel-strip{transition:none}.wheel:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(0,0,0,.8),transparent 35%,transparent 65%,rgba(0,0,0,.8)),linear-gradient(90deg,rgba(255,255,255,.14),transparent 40%)}@media(max-height:680px){.shoot{padding-top:calc(8px + var(--safe-top))}.band{margin-top:8px}.controls{padding-top:8px}.shutter-well{width:100px;height:100px}.shutter{width:80px;height:80px}.wheel{height:96px}}@media(min-width:700px)and (min-height:900px){.view.shoot{max-width:560px}.cam-head{padding:0 22px 12px;font-size:11px}.vf{margin:0 14px;border-radius:28px}.vf-corner{width:30px;height:30px}.vf-corner.tl{left:20px;top:20px}.vf-corner.bl{left:20px;bottom:20px}.vf-corner.br{right:20px;bottom:20px}.counter{--counter-step: 46px;right:14px;top:14px}.counter-win{width:60px}.counter-col div{font-size:27px}.counter-col .inf{font-size:31px}.counter-lbl{font-size:9px}.band{padding:9px 22px;font-size:10px}.controls{gap:16px;padding:16px 22px max(16px,calc(12px + var(--safe-bottom)))}.gallery-link{font-size:14px}.shutter-well{width:124px;height:124px}.shutter{width:96px;height:96px}.shutter-lbl{font-size:12px}.wheel{width:50px;height:132px}}@media(min-aspect-ratio:1/1)and (min-width:640px){.view.shoot{max-width:min(1200px,calc((100svh - 90px)*1.7 + 200px));display:grid;grid-template-columns:minmax(0,1fr) 190px;grid-template-rows:auto minmax(0,1fr) auto auto;column-gap:8px;padding-left:max(10px,env(safe-area-inset-left));padding-right:max(10px,env(safe-area-inset-right))}.cam-head{grid-column:1 / -1}.vf{grid-row:2;grid-column:1;margin:0;min-height:0}.band{grid-row:3;grid-column:1}.shoot .controls{grid-row:2 / 4;grid-column:2;min-height:0;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto minmax(0,1fr);justify-items:center;align-items:center;gap:10px;padding:0 0 4px}.gallery-link{justify-self:center;align-self:end;text-align:center}.wheel-col{justify-self:center;align-self:start}.wheel{height:80px}.shoot .credit{grid-column:1 / -1}}@media(min-aspect-ratio:1/1)and (min-width:900px)and (min-height:700px){.view.shoot{grid-template-columns:minmax(0,1fr) 230px;column-gap:12px}.cam-head{font-size:11px}.vf{border-radius:28px}.counter{--counter-step: 46px;right:14px;top:14px}.counter-win{width:60px}.counter-col div{font-size:27px}.counter-col .inf{font-size:31px}.counter-lbl{font-size:9px}.band{padding:9px 22px;font-size:10px}.shoot .controls{gap:16px}.gallery-link{font-size:14px}.shutter-well{width:124px;height:124px}.shutter{width:96px;height:96px}.shutter-lbl{font-size:12px}.wheel{width:50px;height:110px}}.edit{height:100svh;min-height:0;gap:14px;padding:calc(18px + var(--safe-top)) 16px max(18px,calc(10px + var(--safe-bottom)))}.edit-head{display:flex;justify-content:space-between;gap:12px;padding:0 6px}.preview-wrap{position:relative;flex:1;min-height:0;display:flex;align-items:center;justify-content:center}.print-frame{position:relative;background:var(--paper);padding:10px 10px 34px;transform:rotate(-1.2deg);box-shadow:0 20px 40px #00000080}.print-frame canvas{display:block;width:auto;height:auto;min-width:120px;min-height:90px;background:var(--plastic);max-width:calc(min(100vw,480px) - 64px);max-height:max(160px,calc(100svh - 240px))}.print-frame.baked{padding:0;background:transparent}.busy{position:absolute;right:8px;bottom:8px;font:700 10px/1 var(--mono);letter-spacing:.1em;color:var(--cream);background:#0009;padding:6px 8px;border-radius:6px}.edit-actions{flex:none;display:grid;grid-template-columns:1fr 1.4fr;gap:12px}@media(min-width:700px){.view.edit{max-width:920px}.edit-actions{align-self:center;width:min(100%,480px)}.print-frame canvas{max-width:calc(min(100vw,920px) - 64px)}}@media(min-aspect-ratio:1/1)and (min-width:640px){.view.edit{max-width:1200px;display:grid;grid-template-columns:minmax(0,1fr) 200px;grid-template-rows:auto minmax(0,1fr);column-gap:16px;padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}.edit-head{grid-column:1 / -1}.edit-grid,.preview-wrap{grid-row:2;grid-column:1}.edit-actions{grid-row:2;grid-column:2;grid-template-columns:1fr;align-self:end;width:auto}.print-frame canvas{max-width:calc(100vw - 300px);max-height:max(160px,calc(100svh - 120px))}}.empty{padding:calc(40px + var(--safe-top)) 28px 0}.big-counter{position:relative;flex:none;width:132px;height:100px;margin-left:7px;border-radius:16px;display:flex;align-items:center;justify-content:center;font:700 64px/1 var(--mono);color:var(--cream);background:var(--counter);box-shadow:inset 0 3px 8px #000000f2,0 0 0 6px var(--plastic-2),0 0 0 7px var(--plastic)}.big-counter:after{content:"";position:absolute;inset:0;border-radius:16px;background:linear-gradient(180deg,rgba(0,0,0,.7),transparent 30%,transparent 70%,rgba(0,0,0,.7))}.empty h1{font-size:44px;line-height:1.02;color:var(--cream);margin-top:40px}.empty .lead{color:var(--card);margin-bottom:32px}.reveal-card{margin-top:auto;padding:20px;border-radius:18px;display:flex;flex-direction:column;gap:14px;background:var(--cream);color:var(--char);transform:rotate(-1.2deg);box-shadow:0 14px 26px #00000059}body.dark .reveal-card .label{color:var(--coffee)}.reveal-card .display{font-size:22px;line-height:1.15}.reveal-card p{margin:0;font-size:13px;line-height:1.4}@media(min-aspect-ratio:1/1)and (max-height:600px){.view.empty{max-width:640px;padding-top:calc(22px + var(--safe-top))}.big-counter{width:100px;height:74px;font-size:46px;border-radius:12px}.empty h1{font-size:34px;margin-top:18px}.empty .lead{margin-bottom:20px}}.toast{position:fixed;left:50%;bottom:max(24px,var(--safe-bottom));z-index:30;transform:translate(-50%) translateY(30px);opacity:0;width:max-content;max-width:calc(100vw - 32px);padding:12px 18px;border-radius:14px;background:var(--cream);color:var(--char);font:500 14px/1.35 var(--ui);text-align:center;box-shadow:0 12px 24px #0006;transition:opacity .25s,transform .25s;pointer-events:none}.toast.show{opacity:1;transform:translate(-50%) translateY(0)}.flash-overlay{position:fixed;inset:0;z-index:40;background:#fff;opacity:0;pointer-events:none}.flash-overlay.go{animation:flash .75s ease-out}@keyframes flash{0%{opacity:0}7%{opacity:1}to{opacity:0}}.album-page{width:100%;max-width:1100px;margin:0 auto;min-height:100svh;display:flex;flex-direction:column}.album-head{position:sticky;top:0;z-index:5;background:var(--cream);display:flex;flex-direction:column;gap:10px;padding:calc(24px + var(--safe-top)) 20px 14px;border-bottom:1px solid rgba(63,58,58,.18)}.album-head h1{font-size:32px;line-height:1.05}.album-head .count{color:var(--char);letter-spacing:.1em}.pills{display:flex;gap:6px}.pill{height:34px;padding:0 14px;border-radius:17px;border:1.5px solid var(--char);cursor:pointer;background:transparent;color:var(--char);font:500 13px/1 var(--ui)}.pill[aria-pressed=true]{background:var(--char);color:var(--cream)}.album{padding:0 14px}.hour{display:flex;flex-direction:column;gap:10px;padding-top:20px}.hour-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding:0 2px}.hour-head .display{font-size:19px;line-height:1.1}.hour-head .label{font-size:9px;letter-spacing:.1em}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}@media(min-width:700px){.grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}}.print{position:relative;display:block;width:100%;border:0;padding:4px 4px 12px;border-radius:2px;cursor:zoom-in;background:var(--paper);box-shadow:0 1px 2px #3f3a3a47;transition:transform .15s,box-shadow .15s}@media(hover:hover){.print:hover{transform:translateY(-2px);box-shadow:0 6px 12px #3f3a3a40}}.print .ph{aspect-ratio:4 / 5;background:var(--card);overflow:hidden}.print img{width:100%;height:100%;object-fit:cover;display:block}.print-likes{position:absolute;right:6px;bottom:0;font:700 9px/12px var(--mono);letter-spacing:.04em;color:var(--coffee)}.print.baked{padding:0;background:transparent;box-shadow:none}.print.baked .ph{background:transparent}.print.baked img{object-fit:contain;object-position:center bottom;filter:drop-shadow(0 1px 2px rgba(63,58,58,.28));transition:filter .15s}@media(hover:hover){.print.baked:hover{box-shadow:none}.print.baked:hover img{filter:drop-shadow(0 6px 12px rgba(63,58,58,.25))}}.print.baked .print-likes{right:8%;bottom:1px;padding:0 3px;border-radius:5px;font-size:8px;line-height:10px;background:#f4eee3e6}.album-empty{margin:0;text-align:center;padding:48px 16px;color:var(--coffee)}.more{display:flex;justify-content:center;padding:24px 16px 0}body.lb-open{overflow:hidden}.lightbox{position:fixed;inset:0;z-index:50;touch-action:pan-y;display:flex;flex-direction:column;padding:calc(18px + var(--safe-top)) 22px max(22px,calc(12px + var(--safe-bottom)));background:#262222f5;color:var(--cream)}.lb-top,.lb-bottom{width:100%;max-width:720px;margin:0 auto}.lb-top{display:flex;justify-content:space-between;align-items:center}.lb-top .label{font-size:11px;letter-spacing:.12em;color:var(--card)}.lb-round{width:44px;height:44px;border-radius:50%;border:1.5px solid var(--coffee);cursor:pointer;background:transparent;color:var(--cream);font:400 20px/1 var(--ui)}.lb-stage{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;padding:16px 0}.lb-print{position:relative;margin:0;padding:12px 12px 40px;background:var(--paper);transform:rotate(-1.2deg);box-shadow:0 20px 40px #00000080}.lb-print img{display:block;width:auto;height:auto;min-width:140px;min-height:100px;background:var(--card);max-width:min(calc(100vw - 68px),900px);max-height:max(200px,calc(100svh - 280px))}.lb-print .lb-hidden{position:absolute;visibility:hidden}.lb-print img:not(.lb-hidden){animation:lb-photo-in .25s ease}@keyframes lb-photo-in{0%{opacity:0}}.lb-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;height:clamp(200px,calc(100svh - 280px),560px);aspect-ratio:3 / 4;max-width:min(calc(100vw - 68px),900px);background:var(--card);opacity:0;animation:lb-loading-in .3s ease .18s forwards}@keyframes lb-loading-in{to{opacity:1}}.lb-loading .film{width:min(70%,240px);height:56px;margin:0}.lb-loading .film-fill{top:18px;bottom:18px;width:34%;animation:lb-film-sweep 1.3s ease-in-out infinite alternate}.lb-loading .film:not(.moving) .film-fill{animation:none}@keyframes lb-film-sweep{to{transform:translate(195%)}}.lb-loading .label{color:var(--char)}.lb-retry{min-height:44px;padding:0 18px;border-radius:22px;cursor:pointer;border:1.5px solid var(--char);background:transparent;color:var(--char);font:500 15px/1 var(--ui)}@media(prefers-reduced-motion:reduce){.film.moving:before,.film.moving:after,.lb-loading .film-fill,.lb-print img:not(.lb-hidden){animation:none}}.lb-print.baked{padding:0;background:transparent}.lb-bottom{display:flex;align-items:flex-end;justify-content:space-between;gap:12px}.lb-meta{display:flex;flex-direction:column;gap:6px;min-width:0}.lb-meta .display{font-size:24px;line-height:1.1;color:var(--cream);overflow-wrap:anywhere}.lb-meta .label{color:var(--card);letter-spacing:.12em}.lb-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding-top:4px}.lb-like,.lb-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;min-width:44px;padding:0 16px;border-radius:22px;cursor:pointer;border:1.5px solid var(--coffee);background:transparent;color:var(--cream);font:500 15px/1 var(--ui);text-decoration:none}.lb-like{font-variant-numeric:tabular-nums}.lb-like .pi,.lb-btn .pi{font-size:17px}.lb-like[aria-pressed=true]{border-color:var(--stamp)}.lb-like[aria-pressed=true] .pi{color:var(--stamp)}.lb-btn:disabled{opacity:.6;cursor:progress}@media(max-width:430px){.lb-btn{padding:0 13px}.lb-btn span{display:none}}.lb-nav{display:flex;gap:8px;flex:none}.lb-nav button{width:44px;height:44px;border-radius:50%;cursor:pointer;border:1.5px solid var(--cream);background:transparent;color:var(--cream);font:500 18px/1 var(--ui)}.lb-nav .next{border:0;background:var(--cream);color:var(--char)}.sheet-backdrop{position:fixed;inset:0;z-index:45;display:flex;align-items:flex-end;justify-content:center;background:#0f0d0d99}.sheet{width:100%;max-width:480px;max-height:92svh;overflow-y:auto;display:flex;flex-direction:column;gap:12px;padding:24px 24px max(22px,calc(12px + var(--safe-bottom)));border-radius:22px 22px 0 0;background:var(--cream);color:var(--char);box-shadow:0 -14px 30px #00000059;animation:sheet-up .28s cubic-bezier(.3,.7,.3,1)}@keyframes sheet-up{0%{transform:translateY(40px);opacity:0}}body.dark .sheet .label,.sheet .label{color:var(--coffee)}.sheet h2{font-size:30px;line-height:1.05}.sheet p{margin:0;font-size:15px;line-height:1.45}.sheet #notify-ask,.sheet #notify-ios{display:flex;flex-direction:column;gap:14px}.sheet [hidden]{display:none!important}.sheet-actions{display:flex;flex-direction:column;gap:10px;margin-top:4px}.sheet .btn.ghost{color:var(--char)}.sheet-skip{align-self:center;padding:8px 12px;border:0;background:none;cursor:pointer;font:500 14px/1 var(--ui);color:var(--coffee);text-decoration:underline;text-underline-offset:3px}.sheet-steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}.sheet-steps li{display:flex;gap:10px;align-items:baseline;font:500 16px/1.3 var(--ui)}.sheet-steps b{flex:none;font:700 11px/1 var(--mono);color:var(--coffee)}.share-icon{width:18px;height:18px;vertical-align:-3px;margin:0 2px;fill:none;stroke:var(--char);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.sheet-note{font-size:13px!important;color:var(--coffee)}.reveal-card .btn{margin-top:2px}.how{margin-top:40px;display:flex;flex-direction:column;gap:14px}.how-steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.how-steps li{display:grid;grid-template-columns:34px 1fr;gap:12px;align-items:baseline;padding:16px 16px 16px 14px;border-radius:16px;background:var(--field);border:1.5px solid var(--card)}.how-steps b{font:700 11px/1 var(--mono);letter-spacing:.1em;color:var(--coffee)}.how-steps strong{display:block;font:400 20px/1.15 var(--display)}.how-steps p{margin:4px 0 0;font-size:14px;line-height:1.4;color:var(--coffee);text-wrap:pretty}.how-note{margin:4px 0 0;font-size:13px;line-height:1.45;color:var(--coffee);text-align:center;text-wrap:pretty}.btn.sm{min-height:40px;padding:0 14px;border-radius:12px;font-size:14px}.btn.light.sm{box-shadow:0 3px 0 var(--coffee);background:var(--field)}.btn.dark.sm{box-shadow:0 3px 0 var(--hard)}.btn.ghost.sm{color:var(--char)}.admin{width:100%;max-width:980px;margin:0 auto;min-height:100svh;display:flex;flex-direction:column;padding:calc(24px + var(--safe-top)) 16px 0}.admin-head{display:flex;flex-direction:column;gap:12px;padding-bottom:16px;border-bottom:1px solid rgba(63,58,58,.18)}.admin-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.admin-title{font-size:40px;line-height:1}.admin>.credit{margin-top:auto;padding-top:40px}.admin-status{margin:20px 0 0;color:var(--coffee);font-size:15px}.admin-status:empty{display:none}.admin-login{width:100%;max-width:380px;margin:40px auto 0;display:flex;flex-direction:column;gap:10px}.admin-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:20px 0 16px}.admin-list{display:grid;grid-template-columns:minmax(0,1fr);gap:14px}.admin-filters{display:grid;gap:12px;align-items:end;padding-bottom:18px;grid-template-columns:minmax(200px,1fr) auto 160px 160px auto}.admin-filters .pills{height:48px}.admin-filters .pill{height:48px;border-radius:14px;padding:0 12px;white-space:nowrap}.pill-count{margin-left:4px;font:700 11px/1 var(--mono);opacity:.7}.pill-count:empty{display:none}.f-clear{height:48px}@media(max-width:900px){.admin-filters{grid-template-columns:1fr 1fr}.f-search,.f-status,.f-clear{grid-column:1 / -1}.admin-filters .pills{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.admin-filters .pill{min-width:0;padding:0 6px}}.admin-pager{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:18px}.admin-pager .label{text-align:center}.admin-card{min-width:0;display:flex;flex-direction:column;gap:12px;padding:18px;border-radius:18px;background:var(--paper);box-shadow:0 1px 2px #3f3a3a38,0 8px 18px #3f3a3a14}.admin-card.off{opacity:.72;background:var(--field)}.admin-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.admin-card-head h2{font-size:24px;line-height:1.1;overflow-wrap:anywhere}.badge{flex:none;padding:5px 9px;border-radius:999px;white-space:nowrap;font:700 9px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;background:var(--card);color:var(--char)}.badge.open{background:var(--char);color:var(--cream)}.badge.revealed{background:var(--stamp);color:var(--char)}.badge.off{background:transparent;border:1.5px solid var(--coffee);color:var(--coffee)}.admin-url{font:400 12px/1.35 var(--mono);color:var(--coffee);overflow-wrap:anywhere}.admin-facts{margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px 24px}.fact{display:flex;flex-direction:column;gap:4px;min-width:0}.fact dt{font-size:9px}.fact dd{margin:0;font-size:14px;line-height:1.35;overflow-wrap:anywhere}.admin-actions{display:flex;flex-wrap:wrap;gap:8px;padding-top:4px}.admin-form{display:flex;flex-direction:column;gap:14px;padding:22px}.admin-id{text-align:left;overflow-wrap:anywhere}.field{display:flex;flex-direction:column;gap:6px;min-width:0}.field .text-input{height:48px;font-size:16px}.field select.text-input{padding-right:8px}.field-row{display:grid;grid-template-columns:1fr auto;gap:10px}.field-row.three{grid-template-columns:repeat(3,minmax(0,1fr));align-items:end}.field.narrow{max-width:180px}.text-input:disabled{opacity:.5}.check{display:flex;align-items:center;gap:10px;font-size:14px;line-height:1.3;cursor:pointer}.check input{width:20px;height:20px;accent-color:var(--char);flex:none}.admin-preview{margin:0;padding:12px 14px;border-radius:12px;background:var(--field);font-size:13px;line-height:1.45;color:var(--coffee)}.admin-preview:empty{display:none}.admin-preview.warn{color:var(--char);background:#f08a3c38}.admin-form .form-error{margin:0;padding:12px 14px;border-radius:12px;border:1.5px solid var(--stamp);background:#f08a3c2e;color:var(--char);font-size:14px}.admin-form .text-input[aria-invalid=true]{border-color:var(--stamp);box-shadow:0 0 0 3px #f08a3c4d}.admin-form-actions{display:flex;justify-content:flex-end;gap:10px;padding-top:4px}.admin-form-actions .btn{min-height:48px}.admin-form-actions .btn.ghost{color:var(--char)}.qr-back{color:inherit;text-decoration:none}.qr-back:hover{text-decoration:underline}.qr-layout{display:grid;grid-template-columns:1fr;gap:24px;padding-top:24px;align-items:start}@media(min-width:820px){.qr-layout{grid-template-columns:minmax(0,1fr) 300px}}.qr-card{margin:0;width:100%;max-width:560px;justify-self:center;box-shadow:0 18px 40px #3f3a3a47;line-height:0}.qr-card svg{display:block;width:100%;height:auto}.qr-print{display:none}.qr-side{display:flex;flex-direction:column;gap:22px}.qr-group{display:flex;flex-direction:column;gap:10px}.qr-group .btn{width:100%}.qr-note{text-align:left}@media print{body:has(.qr-page){background:none}.qr-page{padding:0;max-width:none;min-height:0;display:block}.qr-page>:not(.qr-layout),.qr-side,.toast{display:none!important}.qr-layout{display:block;padding:0}.qr-card{max-width:none;box-shadow:none}.qr-card:has(.qr-print) svg{display:none}.qr-print{display:block;width:auto;height:auto;max-width:100%;max-height:100vh;margin:0 auto}}#root{min-height:100svh}.welcome-back{margin-top:28px}@media(max-width:359px){.welcome-title{font-size:40px}}@media(max-width:520px){.field-row{grid-template-columns:1fr}.field-row.three{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.field-row.three .label{font-size:8px;letter-spacing:.08em}.admin-form-actions{flex-direction:column-reverse}.admin-form-actions .btn{width:100%}}.p-component,.p-inputtext,.p-link{font-family:var(--ui)}.p-component{font-size:16px}.p-button{display:inline-flex;align-items:center;justify-content:center;gap:.5em;min-height:52px;padding:0 1.4em;border:0;border-radius:16px;font:700 17px/1 var(--ui);text-decoration:none;user-select:none;background:var(--char);color:var(--cream);box-shadow:0 4px 0 var(--hard);transition:transform 90ms,box-shadow 90ms,opacity .15s}.p-button:not(:disabled):hover{background:var(--char);color:var(--cream)}.p-button:not(:disabled):active{background:var(--char);color:var(--cream);transform:translateY(3px);box-shadow:0 1px 0 var(--hard)}.p-button:focus{box-shadow:0 4px 0 var(--hard)}.p-button:focus-visible{outline:2px solid var(--stamp);outline-offset:3px}.p-button:disabled,.p-button.p-disabled{opacity:.55;cursor:default}.p-button .p-button-label{font-weight:700;flex:0 1 auto}.p-button .p-button-icon{font-size:.95em}.p-button.p-button-secondary,.p-button.p-button-secondary:not(:disabled):hover,.p-button.p-button-secondary:not(:disabled):active{background:var(--cream);color:var(--char);box-shadow:0 4px 0 var(--coffee)}.p-button.p-button-secondary:not(:disabled):active{box-shadow:0 1px 0 var(--coffee)}.p-button.p-button-outlined,.p-button.p-button-outlined:not(:disabled):hover,.p-button.p-button-outlined:not(:disabled):active{background:transparent;color:var(--char);border:1.5px solid currentColor;box-shadow:none}.p-button.p-button-outlined:not(:disabled):active{transform:none;background:#3f3a3a0f}.p-button.p-button-text,.p-button.p-button-link,.p-button.p-button-text:not(:disabled):hover,.p-button.p-button-link:not(:disabled):hover,.p-button.p-button-text:not(:disabled):active,.p-button.p-button-link:not(:disabled):active{background:transparent;color:var(--coffee);box-shadow:none;transform:none;text-decoration:underline;text-underline-offset:3px}.p-button.p-button-link .p-button-label,.p-button.p-button-text .p-button-label{font-weight:500}.p-button.p-button-sm{min-height:40px;padding:0 14px;border-radius:12px;font-size:14px;box-shadow:0 3px 0 var(--hard)}.p-button.p-button-sm.p-button-secondary{background:var(--field);box-shadow:0 3px 0 var(--coffee)}.p-button.p-button-sm.p-button-outlined{box-shadow:none}.p-button.p-button-sm .p-button-label{font-size:14px}.p-button.btn-block{display:flex;width:100%}.p-button.btn-tall{min-height:58px}a.p-button{cursor:pointer}
