.mem-page{--mem-ink: #2B0F4C;--mem-muted: #6A5A88;--mem-paper: #FFFCF5;--mem-pink: #FF3D8B;--mem-violet: #B42DD8;--mem-hand: "Caveat", "Segoe Print", cursive;--mem-display: "Fredoka", "Nunito", system-ui, sans-serif;position:relative;height:100%;overflow:hidden;color:var(--mem-ink);font-family:Nunito,system-ui,-apple-system,Segoe UI,sans-serif}.mem-layout{position:relative;z-index:10;display:flex;height:100%;flex-direction:column;padding:calc(var(--safe-top) + 56px) 16px calc(var(--safe-bottom) + 14px);pointer-events:none}.mem-layout>*{pointer-events:auto}.mem-header{display:flex;align-items:center;justify-content:space-between;width:min(100%,520px);align-self:center}.mem-round{display:grid;width:46px;height:46px;flex:0 0 auto;place-items:center;border:0;border-radius:50%;background:#fffffff0;color:var(--mem-ink);cursor:pointer;box-shadow:0 4px #2b0f4c38,0 10px 22px #2b0f4c33;transition:transform .12s ease,box-shadow .12s ease,opacity .2s ease;touch-action:manipulation}.mem-round svg{width:22px;height:22px}.mem-round:not(:disabled):active{transform:translateY(3px);box-shadow:0 1px #2b0f4c38}.mem-round:disabled{opacity:.4;cursor:default}.mem-round:focus-visible,.mem-pill:focus-visible,.mem-like:focus-visible{outline:3px solid #fff;outline-offset:3px}.mem-likes-total{display:inline-flex;align-items:center;gap:.4rem;padding:.55rem 1rem;border-radius:99px;background:#fffffff0;color:var(--mem-ink);font-family:var(--mem-display);font-size:1.05rem;font-weight:700;box-shadow:0 4px #2b0f4c38,0 10px 22px #2b0f4c33}.mem-likes-total svg{width:20px;height:20px;color:var(--mem-pink)}.mem-stage{display:flex;flex:1;min-height:0;align-items:center;justify-content:center;padding:16px 0 14px}.mem-card{position:relative;display:flex;width:min(100%,460px);height:100%;max-height:780px;flex-direction:column;padding:12px;border-radius:22px;background:var(--mem-paper);box-shadow:0 10px #2b0f4c38,0 30px 60px #2b0f4c59;transform:rotate(var(--tilt))}.mem-enter-next{animation:mem-in-next .5s cubic-bezier(.2,.85,.25,1)}.mem-enter-prev{animation:mem-in-prev .5s cubic-bezier(.2,.85,.25,1)}@keyframes mem-in-next{0%{opacity:0;transform:translate(70px) rotate(calc(var(--tilt) + 7deg))}to{opacity:1;transform:rotate(var(--tilt))}}@keyframes mem-in-prev{0%{opacity:0;transform:translate(-70px) rotate(calc(var(--tilt) - 7deg))}to{opacity:1;transform:rotate(var(--tilt))}}.mem-photo{position:relative;flex:1 1 0;min-height:140px;overflow:hidden;border-radius:14px;background:#1c0f3d;cursor:pointer;touch-action:manipulation}.mem-photo img,.mem-photo video{display:block;width:100%;height:100%;object-fit:cover;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.mem-stamp{position:absolute;top:0;right:0;z-index:3;padding:4px;background:radial-gradient(circle at 4px 4px,transparent 2.6px,#fff 3px) -4px -4px / 8px 8px;filter:drop-shadow(0 4px 6px rgba(43,15,76,.3));transform:translate(10px,-14px) rotate(7deg)}.mem-stamp-inner{display:flex;min-width:64px;max-width:108px;flex-direction:column;align-items:center;gap:2px;padding:7px 9px 6px;border:2px solid #FF5CA8;background:#fff2f8}.mem-stamp-inner svg{width:20px;height:20px;fill:#ffd23f;stroke:#ff8a3d;stroke-width:1.5}.mem-stamp-inner span{overflow:hidden;max-width:100%;color:var(--mem-ink);font-family:var(--mem-display);font-size:.7rem;font-weight:600;letter-spacing:.08em;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.mem-like{position:absolute;right:10px;bottom:10px;z-index:2;display:inline-flex;align-items:center;gap:.35rem;padding:.45rem .85rem .45rem .7rem;border:0;border-radius:99px;background:#fffffff0;color:var(--mem-pink);font-family:var(--mem-display);font-size:1rem;font-weight:700;cursor:pointer;box-shadow:0 6px 16px #1405284d;transition:transform .12s ease;touch-action:manipulation}.mem-like svg{width:20px;height:20px}.mem-like span{color:var(--mem-ink)}.mem-like:active{transform:scale(.9)}.mem-big-heart{position:absolute;top:50%;left:50%;z-index:2;width:110px;height:110px;opacity:0;pointer-events:none;transform:translate(-50%,-50%) scale(.4);filter:drop-shadow(0 8px 20px rgba(255,61,139,.6))}.mem-big-heart.is-on{animation:mem-big-heart .65s ease-out}@keyframes mem-big-heart{0%{opacity:0;transform:translate(-50%,-50%) scale(.4)}25%{opacity:1;transform:translate(-50%,-50%) scale(1.15)}45%{transform:translate(-50%,-50%) scale(.95)}70%{opacity:1;transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(-50%,-50%) scale(1.1)}}.mem-hearts{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;pointer-events:none}.mem-heart{position:absolute;opacity:0;transform:translate(-50%,-50%);animation:mem-heart-float 1.2s ease-out forwards}.mem-heart svg{width:100%;height:100%;filter:drop-shadow(0 2px 4px rgba(20,5,40,.3))}@keyframes mem-heart-float{0%{opacity:0;transform:translate(-50%,-50%) scale(.4)}15%{opacity:1;transform:translate(-50%,-50%) scale(1.1)}to{opacity:0;transform:translate(calc(-50% + var(--drift)),calc(-50% - 150px)) scale(.9)}}.mem-text{flex:0 0 auto;max-height:42%;overflow-y:auto;padding:14px 6px 4px;overscroll-behavior:contain}.mem-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.mem-heading h2{font-family:var(--mem-display);font-size:1.45rem;font-weight:700;line-height:1.15}.mem-location{display:flex;align-items:center;gap:.3rem;margin-top:.2rem;color:var(--mem-muted);font-size:.9rem;font-weight:700}.mem-location svg{width:15px;height:15px;flex:0 0 auto;color:var(--mem-pink)}.mem-number{flex:0 0 auto;padding:.2rem .6rem;border-radius:99px;background:#f3e8ff;color:var(--mem-violet);font-family:var(--mem-display);font-size:.85rem;font-weight:600;white-space:nowrap}.mem-note{margin-top:.6rem;color:#3a2160;font-family:var(--mem-hand);font-size:1.45rem;line-height:1.55em;background-image:repeating-linear-gradient(to bottom,transparent 0,transparent calc(1.55em - 1px),#E9DDF7 calc(1.55em - 1px),#E9DDF7 1.55em);user-select:text;-webkit-user-select:text}.mem-note p{white-space:pre-line}.mem-ps{color:var(--mem-violet);font-size:.85em}.mem-footer{display:flex;width:min(100%,460px);align-items:center;align-self:center;gap:14px}.mem-nav{width:54px;height:54px}.mem-nav svg{width:26px;height:26px}.mem-nav-next{background:linear-gradient(135deg,#e8246f,#f06a1e);color:#fff;box-shadow:0 5px #a91d54,0 12px 24px #2b0f4c40}.mem-nav-next:not(:disabled):active{box-shadow:0 2px #a91d54}.mem-progress{display:flex;min-width:0;flex:1;flex-direction:column;gap:6px}.mem-progress-label{color:#fff;font-family:var(--mem-display);font-size:1rem;font-weight:600;text-align:center;text-shadow:0 2px 0 rgba(43,15,76,.35)}.mem-progress-track{height:8px;overflow:hidden;border-radius:99px;background:#ffffff4d}.mem-progress-track span{display:block;height:100%;border-radius:inherit;background:#fff;transition:width .35s ease}.mem-pill{padding:.85rem 1.4rem;border:0;border-radius:99px;font-family:var(--mem-display);font-size:1.05rem;font-weight:700;cursor:pointer;touch-action:manipulation;transition:transform .12s ease,box-shadow .12s ease}.mem-finish{background:linear-gradient(135deg,#e8246f,#f06a1e);color:#fff;box-shadow:0 5px #a91d54,0 12px 24px #2b0f4c40}.mem-finish:active{transform:translateY(3px);box-shadow:0 2px #a91d54}.mem-ghost{background:#f3e8ff;color:var(--mem-ink)}.mem-status{display:flex;margin:auto;max-width:340px;flex-direction:column;align-items:center;gap:1rem;padding:1.5rem;border-radius:22px;background:#fffffff0;font-family:var(--mem-display);font-size:1.1rem;font-weight:600;text-align:center}.mem-status .mem-pill{background:linear-gradient(135deg,#e8246f,#f06a1e);color:#fff}.mem-toast{align-self:center;margin-top:.6rem;padding:.5rem 1rem;border-radius:99px;background:#fff;color:#c8104f;font-size:.85rem;font-weight:700}.final-stage{position:relative;z-index:10;display:grid;height:100%;place-items:center;overflow-y:auto;padding:calc(var(--safe-top) + 100px) 16px calc(var(--safe-bottom) + 24px)}.final-letter{display:flex;width:min(100%,460px);flex-direction:column;align-items:center;gap:.8rem;padding:2rem 1.5rem 1.6rem;border-radius:28px;background:var(--mem-paper);text-align:center;box-shadow:0 10px #2b0f4c38,0 30px 60px #2b0f4c59;transform:rotate(-1deg);animation:mem-in-next .6s cubic-bezier(.2,.85,.25,1);--tilt: -1deg}.final-kicker{color:var(--mem-pink);font-family:var(--mem-display);font-size:.85rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase}.final-heading{font-family:var(--mem-display);font-size:clamp(1.8rem,7vw,2.3rem);font-weight:700;line-height:1.1}.final-message{color:#3a2160;font-family:var(--mem-hand);font-size:1.55rem;line-height:1.35}.final-sign{color:var(--mem-violet);font-family:var(--mem-hand);font-size:1.75rem;font-weight:700}.final-buttons{display:flex;width:100%;flex-direction:column;gap:.75rem;margin-top:.6rem}@media(min-width:900px){.mem-heading h2{font-size:1.6rem}}@media(max-height:700px){.mem-layout{padding-top:calc(var(--safe-top) + 48px)}.mem-note{font-size:1.3rem}}@media(prefers-reduced-motion:reduce){.star-garland-item,.mem-enter-next,.mem-enter-prev,.final-letter{animation:none}}.bo-page{--bo-ink: #2B0F4C;--bo-muted: #6A5A88;--bo-line: #E7DEF7;--bo-bg: #F6F1FF;--bo-accent: #B42DD8;position:relative;z-index:11;width:100%;height:100%;overflow-y:auto;overscroll-behavior:contain;background:radial-gradient(ellipse 40rem 20rem at 100% 0%,rgba(255,61,139,.12),transparent 70%),radial-gradient(ellipse 40rem 20rem at 0% 100%,rgba(46,230,214,.12),transparent 70%),var(--bo-bg);color:var(--bo-ink);font-family:Nunito,system-ui,-apple-system,Segoe UI,sans-serif}.bo-page input,.bo-page textarea{user-select:text;-webkit-user-select:text}.bo-inner{width:min(1120px,100%);margin:0 auto;padding:calc(env(safe-area-inset-top,0px) + 76px) 1rem max(2rem,env(safe-area-inset-bottom))}.bo-header{display:flex;align-items:center;gap:.8rem;margin-bottom:1.25rem}.bo-header h1{flex:1;font-family:Fredoka,Nunito,sans-serif;font-size:1.9rem;font-weight:700}.bo-back{display:grid;width:42px;height:42px;place-items:center;border:1px solid var(--bo-line);border-radius:50%;background:#fff;color:var(--bo-ink);font-size:1.25rem;cursor:pointer}.bo-layout{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);align-items:start;gap:1.25rem}.bo-card{border:1px solid var(--bo-line);border-radius:22px;background:#fff;padding:1.25rem;box-shadow:0 12px 30px #2b0f4c12}.bo-card-heading{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:1rem}.bo-card h2{font-family:Fredoka,Nunito,sans-serif;font-size:1.3rem;font-weight:600}.bo-form{display:flex;flex-direction:column;gap:.9rem}.bo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.bo-field{display:flex;flex-direction:column;gap:.35rem}.bo-field>span{font-size:.85rem;font-weight:800}.bo-field input,.bo-field textarea,.bo-login input{width:100%;padding:.75rem .9rem;border:2px solid var(--bo-line);border-radius:14px;background:var(--bo-bg);color:var(--bo-ink);font:inherit;font-size:16px;outline:none;resize:vertical;transition:border-color .2s ease,background-color .2s ease}.bo-field input:focus,.bo-field textarea:focus,.bo-login input:focus{border-color:var(--bo-accent);background:#fff}.bo-field input::placeholder,.bo-field textarea::placeholder{color:#9a8cb8}.bo-drop{position:relative;display:grid;min-height:180px;place-items:center;overflow:hidden;border:2px dashed #CDBDF0;border-radius:18px;background:var(--bo-bg);cursor:pointer;transition:border-color .2s ease,background-color .2s ease}.bo-drop:hover,.bo-drop.is-over{border-color:var(--bo-accent);background:#f0e6ff}.bo-drop:focus-within{outline:3px solid var(--bo-accent);outline-offset:2px}.bo-drop input{position:absolute;width:1px;height:1px;opacity:0}.bo-drop-empty{display:flex;flex-direction:column;gap:.3rem;padding:1.5rem;text-align:center}.bo-drop-empty strong{color:var(--bo-accent);font-family:Fredoka,Nunito,sans-serif;font-size:1.1rem;font-weight:600}.bo-drop-empty small{color:var(--bo-muted);font-size:.8rem}.bo-drop-preview{width:100%;max-height:340px;object-fit:contain;background:#1c0f3d}.bo-drop-change{position:absolute;right:.6rem;bottom:.6rem;max-width:calc(100% - 1.2rem);overflow:hidden;padding:.35rem .75rem;border-radius:99px;background:#2b0f4cbf;color:#fff;font-size:.75rem;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.bo-hint{margin-top:-.4rem;color:#a3561a;font-size:.8rem;font-weight:700}.bo-progress{position:relative;height:28px;overflow:hidden;border-radius:99px;background:var(--bo-bg)}.bo-progress span{position:absolute;inset:0 auto 0 0;background:linear-gradient(90deg,#ff3d8b,#ff8a3d);transition:width .15s linear}.bo-progress small{position:relative;display:grid;height:100%;place-items:center;color:var(--bo-ink);font-size:.8rem;font-weight:800}.bo-button{padding:.85rem 1.25rem;border:0;border-radius:99px;background:linear-gradient(90deg,#e8246f,#f06a1e);color:#fff;font-family:Fredoka,Nunito,sans-serif;font-size:1.05rem;font-weight:700;cursor:pointer;box-shadow:0 5px #a91d54;transition:transform .1s ease,box-shadow .1s ease,opacity .2s ease}.bo-button:not(:disabled):active{transform:translateY(3px);box-shadow:0 2px #a91d54}.bo-button:disabled{opacity:.55;cursor:default}.bo-link{border:0;background:none;color:var(--bo-accent);font:inherit;font-size:.9rem;font-weight:800;cursor:pointer}.bo-error{color:#c8104f;font-size:.9rem;font-weight:700}.bo-notice{margin-top:.75rem;padding:.75rem 1rem;border-radius:14px;background:#ddfbf6;color:#0b6b61;font-weight:700}.bo-muted{color:var(--bo-muted)}.bo-login{display:flex;max-width:380px;margin:2rem auto;flex-direction:column;gap:.8rem;text-align:center}.bo-login p{color:var(--bo-muted)}.bo-login input{text-align:center}.bo-count{display:grid;min-width:32px;height:32px;padding:0 .6rem;place-items:center;border-radius:99px;background:#ffd23f;font-family:Fredoka,Nunito,sans-serif;font-weight:700}.bo-list{display:flex;flex-direction:column;gap:.6rem;list-style:none}.bo-list li{display:grid;grid-template-columns:64px minmax(0,1fr) auto;align-items:center;gap:.8rem;padding:.55rem;border:2px solid transparent;border-radius:16px;background:var(--bo-bg)}.bo-list li.is-editing{border-color:var(--bo-accent)}.bo-thumb{width:64px;height:64px;border-radius:12px;object-fit:cover;background:#e7def7}video.bo-thumb::-webkit-media-controls{display:none}.bo-media-empty{display:grid;place-items:center;color:var(--bo-muted);font-size:.65rem;text-align:center}.bo-item-info{display:flex;min-width:0;flex-direction:column;gap:.1rem}.bo-item-info strong,.bo-item-info span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bo-item-info span{color:var(--bo-muted);font-size:.85rem}.bo-item-info small{color:var(--bo-muted);font-size:.75rem}.bo-item-actions{display:flex;flex-direction:column;gap:.35rem}.bo-small{padding:.4rem .75rem;border:1px solid var(--bo-line);border-radius:99px;background:#fff;color:var(--bo-ink);font:inherit;font-size:.8rem;font-weight:800;cursor:pointer}.bo-small:hover{border-color:var(--bo-accent)}.bo-danger{color:#c8104f}.bo-danger:hover{border-color:#c8104f}@media(max-width:860px){.bo-layout{grid-template-columns:1fr}}@media(max-width:480px){.bo-grid{grid-template-columns:1fr}.bo-card{padding:1rem}}.app-container{min-height:100vh;display:flex;flex-direction:column;background-color:#fdfbf7;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif}:root{--party-ink: #2B0F4C;--party-ink-soft: #5E4A7E;--party-violet: #5B2BE0;--party-magenta: #B42DD8;--party-pink: #FF3D8B;--party-orange: #FF8A3D;--party-yellow: #FFD23F;--party-lagoon: #2EE6D6;--font-display: "Fredoka", "Nunito", system-ui, sans-serif;--font-body: "Nunito", system-ui, -apple-system, "Segoe UI", sans-serif}.party-sky{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;overflow:hidden;background:linear-gradient(155deg,var(--party-violet) 0%,var(--party-magenta) 30%,var(--party-pink) 60%,var(--party-orange) 86%,var(--party-yellow) 100%)}.party-glow{position:absolute;border-radius:50%;filter:blur(60px);opacity:.55;animation:party-drift 18s ease-in-out infinite alternate}.party-glow-1{top:-12%;right:-10%;width:55vmax;height:55vmax;background:#2ee6d6}.party-glow-2{bottom:-20%;left:-15%;width:60vmax;height:60vmax;background:#ffd23f;animation-delay:-6s}.party-glow-3{top:30%;left:25%;width:40vmax;height:40vmax;background:#ff5fd2;opacity:.35;animation-delay:-12s}@keyframes party-drift{0%{transform:translate(0) scale(1)}to{transform:translate(6vw,4vh) scale(1.12)}}.star-field{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1;width:100%;height:100%;pointer-events:none}.home-page{position:relative;height:100%;overflow-y:auto;overscroll-behavior:contain;font-family:var(--font-body)}.home-stage{position:relative;z-index:10;display:flex;min-height:100%;flex-direction:column;align-items:center;justify-content:center;gap:clamp(1.75rem,5vh,3.25rem);padding:calc(var(--safe-top) + 84px) 1rem calc(2rem + var(--safe-bottom));pointer-events:none}.home-stage>*{pointer-events:auto}.home-hero{text-align:center;color:#fff}.home-kicker{display:inline-flex;align-items:center;gap:.55rem;margin-bottom:.6rem;padding:.4rem 1rem;border-radius:99px;background:#2b0f4c47;font-family:var(--font-display);font-size:.85rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.home-kicker svg{width:.9rem;height:.9rem;color:var(--party-yellow)}.home-title{display:flex;flex-direction:column;align-items:center;font-family:var(--font-display);line-height:.95}.home-title-top{font-size:clamp(1.6rem,6vw,2.6rem);font-weight:600;text-shadow:0 3px 0 rgba(43,15,76,.45)}.home-title-name{display:flex;margin-top:.15em;font-size:clamp(5rem,24vw,9.5rem);font-weight:700;letter-spacing:-.01em}.home-title-name span{display:inline-block;color:var(--letter-color);text-shadow:0 6px 0 var(--party-ink),0 14px 30px rgba(43,15,76,.35);animation:letter-bounce 2.8s ease-in-out infinite;animation-delay:calc(var(--i) * .18s)}.home-title-name span:nth-child(4n+1){--letter-color: var(--party-yellow)}.home-title-name span:nth-child(4n+2){--letter-color: var(--party-lagoon)}.home-title-name span:nth-child(4n+3){--letter-color: #FFFFFF}.home-title-name span:nth-child(4n+4){--letter-color: #FFB3E0}@keyframes letter-bounce{0%,to{transform:translateY(0) rotate(0)}25%{transform:translateY(-10px) rotate(-4deg)}50%{transform:translateY(0) rotate(0)}}.home-menu-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem;width:100%;max-width:920px}.menu-card{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:1rem;padding:1.5rem;border:0;border-radius:28px;font:inherit;text-align:left;color:var(--party-ink);cursor:pointer;box-shadow:0 8px #2b0f4c52,0 22px 40px #2b0f4c47;transition:transform .25s cubic-bezier(.34,1.56,.64,1),box-shadow .25s ease;touch-action:manipulation}.menu-card:not(:disabled):hover{transform:translateY(-6px) rotate(-1.2deg);box-shadow:0 14px #2b0f4c52,0 30px 50px #2b0f4c4d}.menu-card:not(:disabled):active{transform:translateY(3px);box-shadow:0 3px #2b0f4c52,0 10px 20px #2b0f4c40}.menu-card:focus-visible{outline:4px solid #fff;outline-offset:4px}.menu-card-icon{display:grid;width:58px;height:58px;flex:0 0 auto;place-items:center;border-radius:18px;color:#fff}.menu-card-icon svg{width:30px;height:30px}.menu-card-text{display:flex;flex-direction:column;gap:.35rem}.menu-card-title{font-family:var(--font-display);font-size:1.5rem;font-weight:700;line-height:1.1}.menu-card-desc{font-size:.95rem;font-weight:600;line-height:1.4;opacity:.8}.menu-card-sun{background:var(--party-yellow)}.menu-card-sun .menu-card-icon{background:var(--party-pink);transform:rotate(-6deg)}.menu-card-lagoon{background:var(--party-lagoon)}.menu-card-lagoon .menu-card-icon{background:var(--party-violet);transform:rotate(5deg)}.menu-card-soon{background:#ffffff29;border:2px dashed rgba(255,255,255,.65);color:#fff;cursor:default;box-shadow:none;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.menu-card-soon .menu-card-icon{background:#ffffff38}.badge-soon{position:absolute;top:1.1rem;right:1.1rem;padding:.3rem .75rem;border-radius:99px;background:#fff;color:var(--party-magenta);font-family:var(--font-display);font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;transform:rotate(4deg)}@media(max-width:760px){.home-menu-grid{grid-template-columns:1fr;max-width:440px;gap:1rem}.menu-card{flex-direction:row;align-items:center;padding:1.1rem 1.2rem;border-radius:24px}.menu-card-title{font-size:1.3rem}.menu-card-desc{font-size:.875rem}.badge-soon{top:-.6rem;right:1rem}}.gate-page{position:relative;display:flex;height:100%;align-items:center;justify-content:center;overflow-y:auto;padding:calc(var(--safe-top) + 96px) 1rem calc(1.5rem + var(--safe-bottom));font-family:var(--font-body)}.gate-loading{position:relative;z-index:10;color:#fff;font-family:var(--font-display);font-size:1.1rem;font-weight:600}.gate-card{position:relative;z-index:10;width:100%;max-width:380px;display:flex;flex-direction:column;align-items:center;gap:.9rem;padding:2.25rem 1.5rem 1.5rem;text-align:center;color:var(--party-ink);background:#fffffff2;border-radius:32px;box-shadow:0 10px #2b0f4c47,0 30px 60px #2b0f4c59}.gate-icon{display:grid;width:68px;height:68px;margin-top:-4.25rem;place-items:center;border-radius:22px;background:linear-gradient(135deg,var(--party-pink),var(--party-orange));color:#fff;box-shadow:0 8px 20px #ff3d8b73;transform:rotate(-8deg)}.gate-icon svg{width:34px;height:34px}.gate-title{font-family:var(--font-display);font-size:2rem;font-weight:700;line-height:1.1}.gate-subtitle{margin-bottom:.5rem;font-size:1rem;font-weight:600;color:var(--party-ink-soft)}.gate-input{width:100%;padding:.95rem 1.1rem;font-family:var(--font-display);font-size:18px;font-weight:600;text-align:center;letter-spacing:.2em;color:var(--party-ink);background:#f6f0ff;border:3px solid #E6DAFF;border-radius:99px;outline:none;user-select:text;-webkit-user-select:text;transition:border-color .2s ease,background-color .2s ease}.gate-input::placeholder{letter-spacing:.05em;color:#8e7db0}.gate-input:focus{border-color:var(--party-magenta);background:#fff}.gate-button{width:100%;padding:.95rem 1.5rem;border:0;border-radius:99px;background:linear-gradient(90deg,#e8246f,#f06a1e);color:#fff;font-family:var(--font-display);font-size:1.15rem;font-weight:700;cursor:pointer;box-shadow:0 6px #a91d54;transition:transform .1s ease,box-shadow .1s ease,opacity .2s ease;touch-action:manipulation}.gate-button:not(:disabled):active{transform:translateY(4px);box-shadow:0 2px #a91d54}.gate-button:disabled{opacity:.5;cursor:default}.gate-button:focus-visible{outline:3px solid var(--party-magenta);outline-offset:3px}.gate-error{min-height:1.25rem;font-size:.9rem;font-weight:700;color:#c8104f}.gate-sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.gate-shake{animation:gate-shake .4s ease}@keyframes gate-shake{0%,to{transform:translate(0)}20%,60%{transform:translate(-10px)}40%,80%{transform:translate(10px)}}@media(prefers-reduced-motion:reduce){.party-glow,.home-title-name span,.gate-shake{animation:none}}.star-garland{position:absolute;top:0;left:0;right:0;z-index:6;height:100px;pointer-events:none}.star-garland-string{position:absolute;top:0;left:0;width:100%;height:50px;overflow:visible}.star-garland-string path{fill:none;stroke:#ffffffd9;stroke-width:1.5}.star-garland-item{position:absolute;display:flex;flex-direction:column;align-items:center;margin-left:calc(var(--size) / -2);width:var(--size);transform-origin:50% 0;animation:garland-swing 3s ease-in-out infinite alternate}.star-garland-item:before{content:"";width:1.5px;height:var(--drop);background:#ffffffd9}.star-garland-item svg{width:var(--size);height:var(--size);margin-top:-2px;fill:var(--star-color);filter:drop-shadow(0 3px 4px rgba(43,15,76,.35))}@keyframes garland-swing{0%{transform:rotate(-8deg)}to{transform:rotate(8deg)}}.star-garland-light .star-garland-string path,.star-garland-light .star-garland-item:before{stroke:#2b0f4c4d;background:#2b0f4c4d}.star-garland-light .star-garland-item svg{filter:drop-shadow(0 2px 3px rgba(43,15,76,.2))}@media(prefers-reduced-motion:reduce){.star-garland-item{animation:none}}.letterboxd-page{--lb-bg: #170D33;--lb-surface: #231748;--lb-surface-2: #2E205C;--lb-line: rgba(255, 255, 255, .1);--lb-text: #F7F2FF;--lb-muted: #BCB0DC;--lb-dim: #9A8CC2;--lb-a: #2EE6D6;--lb-a-2: #5CB8FF;--lb-b: #FF5CA8;--lb-b-2: #FF8A3D;--lb-star: #FFD23F;--lb-ink: #1C0F3D;--lb-display: "Fredoka", "Nunito", system-ui, sans-serif;position:relative;z-index:11;width:100%;height:100%;height:100dvh;overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;color:var(--lb-text);font-family:Nunito,system-ui,-apple-system,Segoe UI,sans-serif;scrollbar-color:#4A3A80 var(--lb-bg);background-color:var(--lb-bg);background-image:radial-gradient(1.5px 1.5px at 12% 18%,rgba(255,255,255,.9) 50%,transparent 51%),radial-gradient(1px 1px at 72% 9%,rgba(255,244,184,.9) 50%,transparent 51%),radial-gradient(1.5px 1.5px at 38% 63%,rgba(255,184,221,.8) 50%,transparent 51%),radial-gradient(1px 1px at 88% 44%,rgba(169,245,255,.9) 50%,transparent 51%),radial-gradient(1px 1px at 55% 32%,rgba(255,255,255,.7) 50%,transparent 51%),radial-gradient(1.5px 1.5px at 24% 86%,rgba(255,210,63,.8) 50%,transparent 51%),radial-gradient(ellipse 50rem 30rem at 92% -6%,rgba(255,92,168,.28),transparent 70%),radial-gradient(ellipse 45rem 30rem at -8% 30%,rgba(46,230,214,.16),transparent 70%),radial-gradient(ellipse 40rem 26rem at 60% 110%,rgba(139,92,255,.3),transparent 70%);background-size:260px 260px,260px 260px,260px 260px,260px 260px,260px 260px,260px 260px,100% 100%,100% 100%,100% 100%;background-attachment:local,local,local,local,local,local,fixed,fixed,fixed}.lb-page-inner{width:min(1120px,100%);min-height:100%;margin:0 auto;padding:calc(env(safe-area-inset-top,0px) + 60px) 1.5rem max(2rem,env(safe-area-inset-bottom))}.lb-header{display:grid;grid-template-columns:44px 1fr auto;align-items:center;gap:1rem;min-height:60px;border-bottom:1px solid var(--lb-line)}.lb-back-button{display:grid;width:42px;height:42px;place-items:center;border:1px solid var(--lb-line);border-radius:50%;background:#ffffff0f;color:var(--lb-text);font-size:1.3rem;cursor:pointer;transition:background-color .2s ease,transform .2s ease}.lb-back-button:hover{background:#ffffff24;transform:translate(-2px)}.lb-wordmark{justify-self:start;background:linear-gradient(90deg,var(--lb-b),var(--lb-b-2) 55%,var(--lb-star));-webkit-background-clip:text;background-clip:text;color:transparent;font-family:var(--lb-display);font-size:1.5rem;font-weight:700;letter-spacing:-.02em}.lb-header-actions{display:flex;align-items:center;gap:.6rem;color:var(--lb-muted);font-size:.8rem;font-weight:700}.lb-header-actions select{min-height:40px;border:1px solid var(--lb-line);border-radius:99px;padding:0 .9rem;background:var(--lb-surface);color:var(--lb-text);font:inherit;cursor:pointer}.lb-header-actions select:focus-visible{outline:2px solid var(--lb-star);outline-offset:2px}.lb-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(210px,.75fr);align-items:center;gap:1rem;min-height:260px;padding:1.8rem 0}.lb-hero-copy{position:relative;z-index:1}.lb-eyebrow{color:var(--lb-star);font-family:var(--lb-display);font-size:.75rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase}.lb-hero h1{margin:.55rem 0 .75rem;color:var(--lb-text);font-family:var(--lb-display);font-size:clamp(2.2rem,5.5vw,3.9rem);font-weight:700;letter-spacing:-.02em;line-height:1}.lb-hero h1 em{background:linear-gradient(90deg,var(--lb-a),var(--lb-b) 50%,var(--lb-star));-webkit-background-clip:text;background-clip:text;color:transparent;font-style:normal}.lb-hero-copy>p{max-width:470px;margin:0;color:var(--lb-muted);font-size:1rem;line-height:1.6}.lb-hero-pills{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.1rem}.lb-hero-pills span{border-radius:99px;padding:.4rem .85rem;font-size:.8rem;font-weight:800}.lb-hero-pills span:first-child{background:#2ee6d626;color:var(--lb-a)}.lb-hero-pills span:last-child{background:#ff5ca829;color:#ff8cc4}.lb-poster-showcase{position:relative;display:flex;min-height:200px;align-items:center;justify-content:center;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 16%,#000 88%,transparent);mask-image:linear-gradient(90deg,transparent,#000 16%,#000 88%,transparent)}.lb-poster-showcase img{width:clamp(76px,10vw,118px);height:clamp(114px,14vw,176px);flex:0 0 auto;margin-left:-1.15rem;border:3px solid #fff;border-radius:10px;object-fit:cover;box-shadow:0 16px 34px #0802188c;transform:rotate(calc((var(--poster-index) - 2.5) * 4deg));transition:transform .2s ease}.lb-poster-showcase img:first-child{margin-left:0}.lb-poster-showcase img:nth-child(2n){translate:0 8px}.lb-poster-showcase img:nth-child(odd){translate:0 -5px}.lb-poster-showcase img:hover{z-index:2;transform:translateY(-8px) rotate(0)}.lb-state,.lb-partial-error,.lb-panel,.lb-profile-card,.lb-import-panel,.lb-comparison{border:1px solid var(--lb-line);border-radius:22px;background:var(--lb-surface)}.lb-state{display:flex;flex-direction:column;align-items:center;gap:.75rem;margin-top:1.25rem;padding:2rem;color:var(--lb-muted);text-align:center}.lb-error strong{color:#ff8cb0}.lb-error button{min-height:42px;border:0;border-radius:99px;padding:0 1.2rem;background:linear-gradient(90deg,var(--lb-b),var(--lb-b-2));color:var(--lb-ink);font-family:var(--lb-display);font-size:.95rem;font-weight:700;cursor:pointer}.lb-import-panel{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:1rem 2rem;margin:.5rem 0 1rem;padding:1rem 1.2rem;background:#231748b3}.lb-import-panel h3{margin:.25rem 0;color:var(--lb-text);font-family:var(--lb-display);font-size:1.05rem;font-weight:600}.lb-import-panel p{max-width:690px;margin:0;color:var(--lb-muted);font-size:.82rem;line-height:1.55}.lb-import-panel code{color:var(--lb-star)}.lb-import-actions{display:flex;flex-wrap:wrap;gap:.5rem}.lb-import-button{position:relative;display:inline-flex;min-height:42px;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.18);border-radius:99px;padding:0 1rem;background:#ffffff12;color:var(--lb-text);font-size:.82rem;font-weight:800;cursor:pointer;transition:border-color .2s ease,background-color .2s ease}.lb-import-button:hover{border-color:var(--lb-star);background:#ffd23f1f}.lb-import-button input{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;clip-path:inset(50%)}.lb-import-button:focus-within{outline:2px solid var(--lb-star);outline-offset:2px}.lb-import-feedback{grid-column:1 / -1;color:var(--lb-a)!important;font-weight:700}.lb-import-error{color:#ff8cb0!important}.lb-partial-error{margin:.6rem 0;padding:.85rem 1rem;border-color:#ff5ca866;color:#ff8cb0;font-size:.85rem}.lb-comparison{position:relative;overflow:hidden;margin:1rem 0;padding:1.4rem;border:0;background:radial-gradient(ellipse 30rem 18rem at 100% 0%,rgba(255,92,168,.35),transparent 70%),radial-gradient(ellipse 26rem 16rem at 0% 100%,rgba(46,230,214,.22),transparent 70%),linear-gradient(135deg,#3a1a7a,#2a1760 55%,#221650);box-shadow:0 24px 50px #08021873}.lb-comparison-heading,.lb-panel-heading{display:flex;align-items:center;justify-content:space-between;gap:.7rem}.lb-comparison-heading h2{margin:.25rem 0 0;color:var(--lb-text);font-family:var(--lb-display);font-size:clamp(1.25rem,3vw,1.6rem);font-weight:600}.lb-comparison-year{color:#ffffff38;font-family:var(--lb-display);font-size:clamp(2.2rem,6vw,3.4rem);font-weight:700;line-height:1}.lb-volume-comparison{display:grid;gap:.75rem;margin:1.2rem 0}.lb-volume-row{display:grid;grid-template-columns:74px minmax(0,1fr) 96px;align-items:center;gap:.75rem;color:var(--lb-text);font-size:.9rem;font-weight:800}.lb-volume-row>strong{font-family:var(--lb-display);font-size:1.15rem;font-weight:600;text-align:right}.lb-volume-row>strong small{color:var(--lb-muted);font-family:Nunito,sans-serif;font-size:.72rem;font-weight:600}.lb-volume-track{height:14px;overflow:hidden;border-radius:99px;background:#ffffff1a}.lb-volume-track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--lb-a),var(--lb-a-2))}.lb-volume-row-1 .lb-volume-track span{background:linear-gradient(90deg,var(--lb-b),var(--lb-b-2))}.lb-insight-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.6rem}.lb-insight{display:flex;min-width:0;flex-direction:column;gap:.3rem;padding:.9rem 1rem;border-radius:16px;background:#0c042452}.lb-insight>span{color:var(--lb-muted);font-size:.75rem;font-weight:700}.lb-insight>strong{overflow:hidden;color:var(--lb-text);font-family:var(--lb-display);font-size:clamp(1.3rem,3vw,1.8rem);font-weight:600;text-overflow:ellipsis;white-space:nowrap}.lb-insight:nth-child(1)>strong{color:var(--lb-star)}.lb-insight:nth-child(2)>strong{color:var(--lb-a)}.lb-insight:nth-child(3)>strong{color:#ffb3d6}.lb-insight:nth-child(4)>strong{color:#ffb27a}.lb-insight>small{overflow:hidden;color:var(--lb-dim);font-size:.72rem;line-height:1.4;text-overflow:ellipsis}.lb-best-match{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem;margin:1rem 0 0;color:var(--lb-muted);font-size:.88rem}.lb-best-match>span:first-child{color:var(--lb-star)}.lb-best-match strong{color:var(--lb-text)}.lb-profile-grid,.lb-analysis-grid,.lb-chart-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-bottom:1rem}.lb-profile-card{--profile-color: var(--lb-a);min-width:0;padding:1.2rem;border-top:4px solid var(--profile-color)}.lb-profile-card:nth-child(2){--profile-color: var(--lb-b)}.lb-profile-heading{display:flex;align-items:center;gap:.8rem}.lb-avatar{display:grid;width:46px;height:46px;flex:0 0 auto;place-items:center;border-radius:50%;background:var(--profile-color);color:var(--lb-ink);font-family:var(--lb-display);font-size:1.25rem;font-weight:700}.lb-profile-heading .lb-eyebrow{color:var(--profile-color)}.lb-profile-heading h2{margin:.1rem 0 0;color:var(--lb-text);font-family:var(--lb-display);font-size:1.35rem;font-weight:600}.lb-profile-heading a,.lb-footer a{color:var(--lb-muted);font-size:.8rem;text-decoration:none}.lb-profile-heading a:hover,.lb-footer a:hover{color:var(--lb-star)}.lb-primary-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.6rem;margin:1rem 0}.lb-primary-stats>div{display:flex;min-width:0;flex-direction:column;gap:.2rem;padding:.75rem .8rem;border-radius:14px;background:#ffffff0d}.lb-primary-stats strong{overflow:hidden;color:var(--lb-text);font-family:var(--lb-display);font-size:clamp(1.4rem,2.8vw,1.9rem);font-weight:600;text-overflow:ellipsis}.lb-primary-stats span:not(.lb-rating){color:var(--lb-muted);font-size:.75rem;line-height:1.25}.lb-rating{color:var(--lb-star);white-space:nowrap}.lb-rating-unrated{color:var(--lb-dim);font-size:.82rem}.lb-profile-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem}.lb-profile-facts>div{display:flex;min-width:0;flex-direction:column;gap:.2rem;border-left:3px solid var(--profile-color);padding:.3rem .65rem}.lb-profile-facts span{overflow:hidden;color:var(--lb-muted);font-size:.72rem;text-overflow:ellipsis;white-space:nowrap}.lb-profile-facts strong{overflow:hidden;color:var(--lb-text);font-size:.9rem;text-overflow:ellipsis;text-transform:capitalize;white-space:nowrap}.lb-coverage{margin:.8rem 0 0;color:var(--lb-dim);font-size:.75rem;line-height:1.45}.lb-panel{min-width:0;margin-bottom:1rem;padding:1.2rem}.lb-panel-heading{margin-bottom:1rem}.lb-panel-heading h3{margin:.2rem 0 0;color:var(--lb-text);font-family:var(--lb-display);font-size:1.2rem;font-weight:600}.lb-count{display:grid;min-width:34px;height:34px;padding:0 .6rem;place-items:center;border-radius:99px;background:var(--lb-star);color:var(--lb-ink);font-family:var(--lb-display);font-size:.95rem;font-weight:700}.lb-legend{display:flex;flex-wrap:wrap;gap:.8rem;color:var(--lb-muted);font-size:.8rem;font-weight:700}.lb-legend span{display:inline-flex;align-items:center;gap:.4rem}.lb-dot{width:10px;height:10px;border-radius:50%;background:var(--lb-a)}.lb-dot-1{background:var(--lb-b)}.lb-month-chart{display:grid;gap:.45rem}.lb-month-row{display:grid;grid-template-columns:38px minmax(0,1fr);align-items:center;gap:.6rem;color:var(--lb-muted);font-size:.75rem;font-weight:700}.lb-month-bars{display:grid;gap:3px}.lb-month-bar-track{position:relative;height:10px;border-radius:99px;background:#ffffff12}.lb-month-bar{height:100%;min-width:0;border-radius:inherit;background:linear-gradient(90deg,var(--lb-a),var(--lb-a-2))}.lb-month-bar-1{background:linear-gradient(90deg,var(--lb-b),var(--lb-b-2))}.lb-month-bar-track>span{position:absolute;top:50%;right:.4rem;transform:translateY(-50%);color:var(--lb-text);font-size:.65rem;font-weight:800;line-height:1}.lb-rating-chart{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.2rem}.lb-rating-profile>span{display:block;margin-bottom:.5rem;color:var(--lb-a);font-family:var(--lb-display);font-size:.95rem;font-weight:600}.lb-rating-profile:nth-child(2)>span{color:var(--lb-b)}.lb-rating-row{display:grid;grid-template-columns:48px minmax(20px,1fr) 24px;align-items:center;gap:.45rem;margin:.32rem 0;color:var(--lb-muted);font-size:.72rem;font-weight:700}.lb-rating-row>span:first-child{color:var(--lb-star)}.lb-rating-track{height:8px;overflow:hidden;border-radius:99px;background:#ffffff12}.lb-rating-fill{height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--lb-a),var(--lb-a-2))}.lb-rating-fill-1{background:linear-gradient(90deg,var(--lb-b),var(--lb-b-2))}.lb-film-panel .lb-panel-heading{align-items:flex-start}.lb-film-list{display:grid;gap:0;padding:0;list-style:none}.lb-film-item{display:flex;min-width:0;align-items:center;gap:.75rem;padding:.6rem 0;border-bottom:1px solid var(--lb-line)}.lb-film-item:last-child{border-bottom:0}.lb-film-item>img,.lb-poster-placeholder{display:grid;width:42px;height:60px;flex:0 0 auto;place-items:center;border-radius:8px;object-fit:cover;background:var(--lb-surface-2)}.lb-poster-placeholder{color:var(--lb-dim)}.lb-poster-placeholder svg{width:45%;max-width:28px;height:auto}.lb-film-info{display:flex;min-width:0;flex:1;flex-direction:column;gap:.2rem}.lb-film-info a{overflow:hidden;color:var(--lb-text);font-size:.9rem;font-weight:800;text-overflow:ellipsis;text-decoration:none;white-space:nowrap}.lb-film-info a:hover{color:var(--lb-star)}.lb-film-info>span{color:var(--lb-dim);font-size:.75rem}.lb-film-item>.lb-rating,.lb-film-item>.lb-rating-unrated{font-size:.82rem;font-weight:800}.lb-empty{padding:.6rem 0;color:var(--lb-dim);font-size:.85rem}.lb-shared-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:.7rem}.lb-shared-list a{display:flex;min-width:0;flex-direction:column;align-items:stretch;gap:.45rem;border-radius:14px;padding:.4rem;color:var(--lb-text);text-decoration:none;transition:background-color .2s ease,transform .2s ease}.lb-shared-list a:hover{background:var(--lb-surface-2);transform:translateY(-3px)}.lb-shared-list>a>img,.lb-shared-list>a>.lb-poster-placeholder{width:100%;height:auto;aspect-ratio:2 / 3;border-radius:10px;object-fit:cover;background:var(--lb-surface-2);box-shadow:0 10px 20px #08021866}.lb-shared-list>a>.lb-poster-placeholder{display:grid;min-height:120px;place-items:center}.lb-shared-list a>.lb-shared-film-info{display:flex;min-height:56px;flex-direction:column;gap:.2rem;padding:0 .15rem .2rem}.lb-shared-film-info>strong{overflow:hidden;color:var(--lb-text);font-size:.8rem;line-height:1.3;text-overflow:ellipsis;white-space:nowrap}.lb-shared-list a:hover .lb-shared-film-info>strong{color:var(--lb-star)}.lb-shared-film-info>small{color:var(--lb-dim);font-size:.72rem}.lb-shared-ratings{display:flex!important;flex-direction:row!important;align-items:center;gap:.3rem!important;color:var(--lb-dim);font-size:.72rem}.lb-shared-ratings .lb-rating,.lb-shared-ratings .lb-rating-unrated{font-size:.72rem;font-weight:800}.lb-shared-ratings .lb-rating-unrated{font-size:.66rem;font-weight:600}.lb-footer{padding:1rem 0 .25rem;color:var(--lb-dim);font-size:.75rem;text-align:center}@media(max-width:760px){.lb-page-inner{padding-right:1rem;padding-left:1rem}.lb-hero{grid-template-columns:minmax(0,1fr) 180px;min-height:210px}.lb-poster-showcase{min-height:150px}.lb-poster-showcase img{width:74px;height:112px;margin-left:-1.25rem}.lb-import-panel{grid-template-columns:1fr}.lb-insight-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:520px){.lb-page-inner{padding-right:.75rem;padding-left:.75rem}.lb-header{grid-template-columns:38px 1fr auto;gap:.5rem}.lb-back-button{width:38px;height:38px}.lb-wordmark{font-size:1.25rem}.lb-header-actions{gap:.35rem;font-size:.72rem}.lb-header-actions select{min-height:38px;padding:0 .6rem}.lb-hero{grid-template-columns:minmax(0,1fr) 104px;gap:.25rem;min-height:190px;padding:1.25rem 0}.lb-hero h1{font-size:clamp(2rem,9vw,2.6rem)}.lb-hero-copy>p{font-size:.88rem}.lb-hero-pills{gap:.35rem;margin-top:.8rem}.lb-hero-pills span{padding:.35rem .65rem;font-size:.72rem}.lb-poster-showcase{min-height:112px;justify-content:flex-end}.lb-poster-showcase img{width:62px;height:93px;margin-left:-1.45rem;border-width:2px}.lb-poster-showcase img:nth-child(n+4){display:none}.lb-comparison{padding:1rem}.lb-insight{padding:.75rem .8rem}.lb-volume-row{grid-template-columns:56px minmax(0,1fr) 80px;gap:.5rem;font-size:.8rem}.lb-profile-grid,.lb-analysis-grid,.lb-chart-grid{grid-template-columns:1fr;gap:.75rem;margin-bottom:.75rem}.lb-profile-card,.lb-panel{padding:1rem}.lb-primary-stats>div{padding:.6rem}.lb-primary-stats span:not(.lb-rating){font-size:.7rem}.lb-import-panel{gap:.75rem;padding:.9rem}.lb-import-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.lb-import-button{min-height:44px;padding:0 .5rem;font-size:.75rem;text-align:center}.lb-legend{gap:.5rem;font-size:.72rem}.lb-rating-chart{grid-template-columns:1fr;gap:.9rem}.lb-shared-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:.4rem}.lb-shared-list a{padding:.25rem}}*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}:root{--bg-main: #FAFAF8;--bg-grad-end: #F0EDE8;--text-dark: #2C3E2D;--text-muted: #6B7A6F;--brand-green: #78A97D;--brand-green-hover: #639268;--brand-pink: #FF6584;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px)}html,body{width:100vw;height:100vh;height:100dvh;overflow:hidden;background-color:var(--bg-main);font-family:Plus Jakarta Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;color:var(--text-dark);user-select:none;-webkit-user-select:none;overscroll-behavior:none}body{position:relative;background:linear-gradient(180deg,var(--bg-main) 0%,var(--bg-grad-end) 100%)}#root,.app-container{width:100%;height:100%;position:relative;overflow:hidden}.view{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;flex-direction:column;opacity:1;z-index:10;transition:opacity .35s ease}.home-content{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding-top:calc(var(--safe-top) + 1.75rem);padding-bottom:calc(var(--safe-bottom) + 1.75rem);padding-left:1.25rem;padding-right:1.25rem;text-align:center}.header-text .subtitle{font-size:.8rem;letter-spacing:2px;text-transform:uppercase;color:var(--brand-green);font-weight:600;margin-bottom:.25rem}.header-text .title{font-family:Playfair Display,serif;font-size:2.3rem;font-weight:400;line-height:1.15;margin-bottom:.25rem}.photo-container-home{position:relative;width:480px;height:480px;max-width:80vw;max-height:80vw;border-radius:40px;overflow:hidden;box-shadow:0 20px 45px #78a97d2e,0 4px 12px #00000008;pointer-events:none!important;border:4px solid rgba(255,255,255,.85)}.photo-emma{width:100%;height:100%;object-fit:cover;pointer-events:none!important}.memory-content{width:100%;height:100%;display:flex;flex-direction:column;justify-content:space-between;padding-top:calc(var(--safe-top) + .75rem);padding-bottom:calc(var(--safe-bottom) + 1rem);padding-left:1.15rem;padding-right:1.15rem}.progress-container{display:flex;gap:4px;width:100%;margin-bottom:.65rem}.progress-bar{height:4px;flex:1;background:#00000014;border-radius:99px;overflow:hidden}.progress-fill{height:100%;background:var(--brand-green);transition:width .3s ease}.memory-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}.memory-badge{font-size:.75rem;font-weight:600;color:var(--brand-green);text-transform:uppercase;letter-spacing:1px}.memory-header-actions{display:flex;align-items:center;gap:.5rem}.btn-like{display:flex;align-items:center;gap:4px;padding:.35rem .75rem;background:#fffc;border:1px solid rgba(0,0,0,.05);border-radius:99px;font-size:.8rem;font-weight:600;color:var(--text-dark);cursor:pointer;box-shadow:0 2px 8px #0000000a;transition:transform .15s ease,background-color .2s ease}.btn-like:active{transform:scale(.92)}.like-counter{font-variant-numeric:tabular-nums;font-size:.75rem}.btn-icon{width:36px;height:36px;border-radius:50%;border:none;background:#0000000d;color:var(--text-dark);font-size:.95rem;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .1s ease}.btn-icon:active{transform:scale(.92)}.memory-card{flex:1;display:flex;flex-direction:column;background:#ffffffe0;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-radius:26px;padding:.85rem;border:1px solid rgba(255,255,255,.9);box-shadow:0 14px 32px #0000000a;overflow:hidden;margin-bottom:.65rem;min-height:0}.memory-location{display:flex;align-items:center;gap:5px;font-size:.75rem;color:var(--text-muted);font-weight:500;margin-bottom:.45rem}.icon-pin{width:14px;height:14px;stroke:var(--brand-green);flex-shrink:0}.memory-easter-egg{margin-left:auto;font-size:.68rem;font-weight:600;background:#78a97d1f;color:var(--brand-green);padding:.15rem .5rem;border-radius:99px;white-space:nowrap}.memory-photo-frame{width:100%;flex:1;min-height:0;perspective:1000px;-webkit-perspective:1000px;margin-bottom:.65rem;position:relative;cursor:pointer;touch-action:manipulation}.frame-inner{position:relative;width:100%;height:100%;transform-style:preserve-3d;-webkit-transform-style:preserve-3d;transition:transform .65s cubic-bezier(.2,.85,.25,1);border-radius:18px}.frame-inner.is-flipped{transform:rotateY(180deg);-webkit-transform:rotateY(180deg)}.frame-front,.frame-back{position:absolute;top:0;left:0;width:100%;height:100%;border-radius:18px;overflow:hidden;backface-visibility:hidden;-webkit-backface-visibility:hidden}.frame-front{background:#111;transform:rotateY(0);-webkit-transform:rotateY(0deg)}.memory-img,.memory-video{width:100%;height:100%;object-fit:cover;display:block}.flip-hint-pill{position:absolute;bottom:12px;right:12px;background:#141916a6;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:#fff;padding:.35rem .75rem;border-radius:99px;font-size:.72rem;font-weight:500;display:flex;align-items:center;gap:5px;box-shadow:0 4px 15px #0003;pointer-events:none;animation:hintFloat 3s ease-in-out infinite;border:1px solid rgba(255,255,255,.18)}@keyframes hintFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}.double-tap-heart{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) scale(0);width:86px;height:86px;color:var(--brand-pink);pointer-events:none;opacity:0;filter:drop-shadow(0 6px 18px rgba(255,101,132,.5));z-index:15}.double-tap-heart.animate{animation:heartPop .75s cubic-bezier(.175,.885,.32,1.275) forwards}@keyframes heartPop{0%{transform:translate(-50%,-50%) scale(0) rotate(-10deg);opacity:0}35%{transform:translate(-50%,-50%) scale(1.25) rotate(0);opacity:1}60%{transform:translate(-50%,-50%) scale(1.1) rotate(5deg);opacity:.95}to{transform:translate(-50%,-80%) scale(1.3) rotate(10deg);opacity:0}}.floating-hearts-container{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;overflow:hidden;z-index:12}.floating-heart{position:absolute;font-size:1.15rem;animation:floatUpHeart 1.2s ease-out forwards;pointer-events:none}@keyframes floatUpHeart{0%{transform:translateY(0) scale(.6) rotate(0);opacity:1}to{transform:translateY(-90px) scale(1.2) rotate(25deg);opacity:0}}.frame-back{transform:rotateY(180deg);-webkit-transform:rotateY(180deg);background:linear-gradient(135deg,#fffdf8,#f5efe6);border:2px dashed rgba(120,169,125,.35);box-shadow:inset 0 0 40px #78a97d0f;display:flex;flex-direction:column;padding:1.1rem}.postcard-wrapper{width:100%;height:100%;display:flex;flex-direction:column;justify-content:space-between}.postcard-top{display:flex;align-items:flex-start;justify-content:space-between}.postmark{display:flex;align-items:center;gap:6px}.postmark-circle{width:48px;height:48px;border-radius:50%;border:1.5px solid rgba(107,122,111,.5);display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:.62rem;font-weight:700;letter-spacing:1px;color:var(--text-muted);transform:rotate(-12deg);text-transform:uppercase}.postmark-sub{font-size:.5rem;opacity:.8}.postmark-wavy{display:flex;flex-direction:column;gap:3px}.postmark-wavy span{width:32px;height:1.5px;background:#6b7a6f66;border-radius:2px}.postcard-stamp{width:52px;height:64px;border:1.5px dashed var(--brand-green);border-radius:4px;background:#ffffffd9;display:flex;align-items:center;justify-content:center;padding:3px;box-shadow:0 2px 6px #0000000a;transform:rotate(4deg)}.stamp-inner{width:100%;height:100%;background:#78a97d1a;border:1px solid rgba(120,169,125,.3);display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:4px 2px;font-size:.55rem;font-weight:700;color:var(--brand-green);text-align:center}.stamp-heart{font-size:.85rem}.stamp-val{font-size:.52rem}.postcard-divider{width:100%;height:1px;background:linear-gradient(90deg,transparent,rgba(120,169,125,.25),transparent);margin:.4rem 0}.postcard-middle{flex:1;display:flex;flex-direction:column;justify-content:center;padding:.25rem .2rem}.postcard-label{font-size:.7rem;letter-spacing:1.5px;text-transform:uppercase;color:var(--brand-green);font-weight:700;margin-bottom:.5rem}.postcard-text{font-family:Playfair Display,Georgia,serif;font-style:italic;font-size:1.02rem;line-height:1.55;color:#383129}.postcard-bottom{text-align:center;padding-top:.25rem}.flip-back-prompt{font-size:.72rem;font-weight:600;color:var(--brand-green);background:#78a97d1a;padding:.3rem .8rem;border-radius:99px;display:inline-block}.memory-text-block{text-align:left;flex-shrink:0}.memory-title{font-family:Playfair Display,serif;font-size:1.35rem;margin-bottom:.2rem;line-height:1.2}.memory-desc{font-size:.84rem;color:var(--text-muted);line-height:1.35;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.memory-nav{display:flex;gap:.65rem;width:100%;flex-shrink:0}.final-content{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding-top:calc(var(--safe-top) + 2rem);padding-bottom:calc(var(--safe-bottom) + 2rem);padding-left:1.5rem;padding-right:1.5rem;text-align:center}.final-badge{font-size:.8rem;font-weight:600;color:var(--brand-green);text-transform:uppercase;letter-spacing:1.5px}.final-title{font-family:Playfair Display,serif;font-size:2.1rem;line-height:1.2}.final-card{background:#ffffffe6;padding:1.5rem;border-radius:28px;border:1px solid rgba(255,255,255,.8);box-shadow:0 15px 35px #78a97d1f}.final-text{font-size:.95rem;color:var(--text-dark);line-height:1.6;margin-bottom:1rem}.final-signature{font-family:Playfair Display,serif;font-style:italic;color:var(--brand-green);font-size:1.1rem}.final-actions{display:flex;flex-direction:column;gap:.5rem;width:100%}.btn-primary{width:100%;padding:.95rem 1.5rem;background:var(--brand-green);color:#fff;border:none;border-radius:99px;font-size:.95rem;font-weight:600;cursor:pointer;box-shadow:0 10px 25px #78a97d4d;transition:transform .1s active,background-color .2s ease;touch-action:manipulation}.btn-primary:active{transform:scale(.97);background-color:var(--brand-green-hover)}.btn-secondary{padding:.95rem 1.25rem;background:#0000000d;color:var(--text-dark);border:none;border-radius:99px;font-size:.9rem;font-weight:600;cursor:pointer;touch-action:manipulation}.btn-secondary:active{transform:scale(.97)}.flex-1{flex:1}.balloons-container,.confetti-container{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;overflow:hidden}.balloons-container{z-index:5}.confetti-container{z-index:30}.balloon{position:absolute;bottom:-100px;width:44px;height:54px;border-radius:50%/40% 40% 60% 60%;cursor:pointer;pointer-events:auto;box-shadow:inset -4px -6px 10px #00000024,0 10px 24px #2b0f4c40}.balloon:before{content:"";position:absolute;top:18%;left:22%;width:26%;height:22%;border-radius:50%;background:#fff9;transform:rotate(-30deg)}.balloon:after{content:"";position:absolute;width:1.5px;height:50px;background:#0000001f;left:50%;top:100%;transform:translate(-50%)}.balloon-red{background:linear-gradient(135deg,#ff6b81,#e8173f)}.balloon-blue{background:linear-gradient(135deg,#5cb8ff,#1f6feb)}.balloon-yellow{background:linear-gradient(135deg,#ffe45c,#ffb800)}.balloon-pink{background:linear-gradient(135deg,#ff8ad0,#f0359b)}.balloon-purple{background:linear-gradient(135deg,#b48cff,#7b3ff2)}.balloon-green{background:linear-gradient(135deg,#6cf5c2,#11c08a)}@keyframes float-up{0%{bottom:-100px;opacity:1}to{bottom:110vh;opacity:.85}}.confetti{position:absolute;width:14px;height:14px;margin:-7px 0 0 -7px;pointer-events:none;clip-path:polygon(50% 0%,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%)}@keyframes confetti-burst{0%{opacity:1;transform:translate(0) rotate(0)}to{opacity:0;transform:translate(var(--tx),var(--ty)) rotate(720deg)}}@media(max-height:720px){.memory-card{padding:.65rem}.photo-container-home{max-width:68vw;max-height:68vw}.postcard-text{font-size:.9rem;line-height:1.4}.memory-title{font-size:1.15rem}}
