:root{--sky-deep: #170f2e;--sky-mid: #3a2a68;--sky-horizon: #f2a65a;--film-aqua: #9fe8e0;--film-pink: #e9aee0;--text-light: #f5f0ff;--text-dim: #c9c0e6;--accent: #7fe7d0;--accent-deep: #4fb8a4;--danger: #f2765a;--brown-dark: #2b1c12;--brown-darker: #1c1109;--beige: #ede0c8;--grey-dark: #3a3a3a;--green: #3fa066;--green-dark: #2f7d50;--radius-lg: 28px;--radius-md: 16px;--font-display: "Fraunces", serif;--font-body: "Sora", sans-serif}*{box-sizing:border-box}html,body{margin:0;height:100%;font-family:var(--font-body);color:var(--text-light);min-height:100vh;overflow-x:hidden}.bg-video{position:fixed;top:-20px;right:-20px;bottom:-20px;left:-20px;z-index:-2;width:calc(100% + 40px);height:calc(100% + 40px);object-fit:cover;background-color:#0c0a10;filter:blur(6px) saturate(1.1) brightness(1.08);pointer-events:none}body:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;background:linear-gradient(to top,#2b1c12,#2b1c12,#2b1c1200 40%),#fff6;pointer-events:none}#app{min-height:100vh;display:flex;flex-direction:column}.app-header{display:flex;align-items:center;justify-content:space-between;padding:20px 28px;order:2}.wordmark{font-family:var(--font-display);font-weight:600;font-size:1.15rem;letter-spacing:.01em}.wordmark em{font-style:normal;color:var(--accent)}.session-pill{font-size:.8rem;color:var(--text-dim);background:#ffffff0f;padding:6px 12px;border-radius:999px;border:1px solid rgba(255,255,255,.08)}.hidden{display:none!important}.view-root{position:relative;flex:1;display:flex;align-items:center;justify-content:center;padding:24px}.view-root.view-root--full{padding:0}.card{width:100%;max-width:420px;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:var(--radius-lg);padding:36px 32px}.card h1{font-family:var(--font-display);font-weight:600;font-size:1.6rem;margin:0 0 6px}.card p.subtitle{color:var(--text-dim);margin:0 0 24px;font-size:.95rem;line-height:1.5}.field{margin-bottom:16px}.field label{display:block;font-size:.8rem;color:var(--text-dim);margin-bottom:6px}.field input{width:100%;padding:12px 14px;border-radius:var(--radius-md);border:1px solid rgba(255,255,255,.14);background:#0000002e;color:var(--text-light);font-family:var(--font-body);font-size:.95rem}.field input:focus{outline:2px solid var(--accent);outline-offset:1px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:13px 18px;border-radius:999px;border:none;font-family:var(--font-body);font-weight:600;font-size:.95rem;cursor:pointer;transition:transform .15s ease,opacity .15s ease}.btn:active{transform:scale(.97)}.btn-primary{background:var(--brown-dark);color:var(--beige);border:1.5px solid var(--beige)}.btn-primary:hover{background:var(--brown-darker)}.btn-ghost{background:transparent;color:var(--text-light);border:1px solid rgba(255,255,255,.2)}.btn-ghost:hover{background:#ffffff0f}.btn-review-check{background:#15151a;color:#fff}.btn-review-check:hover{background:#000}.btn-review-ready{background:#34c169;color:#fff}.btn-review-ready:hover{background:#29a358}.bottom-actions{position:absolute;bottom:10%;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:stretch;gap:10px;width:220px}@keyframes btn-pop-in{0%{transform:scale(0);opacity:0}55%{transform:scale(1.16);opacity:1}80%{transform:scale(.94)}to{transform:scale(1)}}.btn-pop-in{animation:btn-pop-in .38s cubic-bezier(.2,.8,.3,1) both}.btn-pop-out{animation:btn-pop-in .38s cubic-bezier(.2,.8,.3,1) reverse both}.potting-indicator{pointer-events:none;cursor:default;text-align:center}@keyframes potting-pulse{0%,to{opacity:.45}50%{opacity:1}}.btn-potting-pulse{animation:potting-pulse 1.6s ease-in-out infinite}.btn-row{display:flex;flex-direction:column;gap:10px;margin-top:20px}.link-row{margin-top:18px;text-align:center;font-size:.85rem;color:var(--text-dim)}.link-row a{color:var(--accent);text-decoration:none;cursor:pointer}.error-text{color:var(--danger);font-size:.85rem;margin-top:4px;min-height:1.2em}.scene-wrap{position:absolute;top:0;right:0;bottom:0;left:0;overflow:visible}.scene-wrap>.card{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.scene-wrap canvas{display:block;width:100%!important;height:100%!important;touch-action:none;-webkit-mask-image:linear-gradient(to top,transparent 0%,black 22%);mask-image:linear-gradient(to top,transparent 0%,black 22%)}.scene-caption{position:absolute;bottom:18px;left:0;right:0;text-align:center;font-size:.85rem;color:var(--text-dim);pointer-events:none}.share-options{display:flex;flex-direction:column;gap:10px;width:100%}.reveal-panel{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:32px;text-align:center;background:#0f0921b8;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.reveal-panel img{max-width:100%;max-height:220px;border-radius:var(--radius-md);object-fit:cover}.petal-photo-overlay{position:absolute;z-index:20;transform:translate(-50%,-50%);pointer-events:none}.petal-photo-overlay img{display:block;max-width:82vw;max-height:70vh;border-radius:var(--radius-lg);object-fit:contain;box-shadow:0 12px 40px #0006;clip-path:circle(0% at 50% 50%);transition:clip-path 1s ease}.petal-photo-overlay--open img{clip-path:circle(100% at 50% 50%)}.sender-name-label{width:100%;max-width:340px;padding:13px 20px;border-radius:999px;background:var(--grey-dark);color:var(--text-light);font-family:var(--font-body);font-weight:600;font-size:.95rem}.sender-name-input{width:100%;max-width:340px;padding:13px 18px;border-radius:999px;border:1px solid rgba(255,255,255,.14);background:#0000002e;color:var(--text-light);font-family:var(--font-body);font-size:.95rem;text-align:center}.sender-name-input:focus{outline:2px solid var(--accent);outline-offset:1px}.btn-continue{max-width:340px;background:var(--green);color:var(--text-light)}.btn-continue:hover{background:var(--green-dark)}.congrats-header{position:absolute;top:6%;left:50%;transform:translate(-50%);text-align:center}.congrats-title{margin:0;font-family:var(--font-display);font-weight:700;font-size:2rem;letter-spacing:.03em;text-align:center;color:var(--text-light)}.share-url-block{position:absolute;top:82%;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:14px;text-align:center}.share-url-row{display:flex;align-items:stretch;justify-content:center;gap:8px}.share-url-buttons{display:flex;gap:8px}.share-url-input{width:100%;max-width:33vw;min-width:0;padding:12px 14px;border-radius:var(--radius-md);border:1.5px solid var(--beige);background:var(--brown-dark);color:var(--beige);font-family:var(--font-body);font-size:.85rem}.btn-copy{flex-shrink:0;padding:12px 18px;border-radius:var(--radius-md);border:1.5px solid var(--beige);background:var(--brown-dark);color:var(--beige);font-family:var(--font-body);font-weight:600;font-size:.9rem;cursor:pointer;transition:transform .15s ease,opacity .15s ease}.btn-copy:hover{background:var(--brown-darker)}.btn-copy:active{transform:scale(.97)}.share-hint{margin:0;font-size:.85rem;color:var(--text-dim);text-align:center;visibility:hidden}.share-url-block .btn{width:auto;padding:12px 26px;white-space:nowrap}@media (max-width: 600px){.congrats-title{font-family:var(--font-body);font-size:1.15rem;letter-spacing:.01em;white-space:nowrap}.ready-panel{position:absolute;top:0;left:0;right:0;display:flex;flex-direction:column;align-items:center;padding:6% 0 40px;pointer-events:none}.congrats-header{position:static;left:auto;transform:none}.share-url-block{position:static;left:auto;transform:none;width:92vw;margin-top:54vh;pointer-events:auto}.share-url-row{flex-direction:column;align-items:stretch;width:100%}.share-url-input{max-width:none}.share-url-buttons .btn-copy{flex:1}}.email-share-overlay{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:min(320px,86vw);background:#140c28f2;border:1px solid rgba(255,255,255,.15);border-radius:var(--radius-lg);padding:24px;text-align:left}.toast{position:fixed;bottom:28px;left:50%;transform:translate(-50%);background:#140c28f2;border:1px solid rgba(255,255,255,.15);padding:12px 22px;border-radius:999px;font-size:.88rem;z-index:50}.record-hint{margin-top:14px;font-size:.82rem;color:var(--text-dim);text-align:center}
