*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--font-body:"Inter", system-ui, -apple-system, sans-serif;--font-display:"Inter", system-ui, -apple-system, sans-serif;--color-bg:#0d0d14;--color-text:#e8e6f0;--color-text-muted:#9a96b0;--color-primary:#6366f1;--color-primary-light:#818cf8}html,body,#root{background:var(--color-bg);width:100%;height:100%;color:var(--color-text);font-family:var(--font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow:hidden}.scene-canvas{z-index:0;width:100%;height:100%;display:block;position:fixed;inset:0}.curtain-overlay{z-index:100;background:#000;justify-content:center;align-items:center;transition:opacity 1.5s cubic-bezier(.4,0,.2,1),visibility 1.5s;display:flex;position:fixed;inset:0;overflow:hidden}.curtain-overlay:before{content:"";-webkit-filter:blur(10px)brightness(.6);z-index:-1;will-change:filter;background:url(/background_2.jpg) 50%/cover no-repeat;position:absolute;inset:-20px}.curtain-overlay:after{display:none}.curtain-overlay[data-open=true]{opacity:0;visibility:hidden;pointer-events:none}.curtain-content{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:1.5rem;width:100%;max-width:450px;padding:2rem;animation:1s forwards curtainFadeIn;display:flex}.curtain-subtitle{color:#fff;text-shadow:0 4px 12px #0006;letter-spacing:.02em;margin-bottom:1rem;font-family:Caveat,cursive;font-size:2.2rem;font-weight:400}.curtain-form{gap:.5rem;display:flex}.curtain-input{color:#fff;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffcf51f;border:2px solid #fffcf54d;border-radius:12px;outline:none;min-width:280px;padding:.85rem 1.5rem;font-family:Inter,sans-serif;font-size:1.1rem;transition:all .4s cubic-bezier(.4,0,.2,1);box-shadow:inset 0 2px 10px #fffcf50d}.curtain-input::placeholder{color:#fff6;letter-spacing:.05em;font-family:Caveat,cursive;font-size:1.3rem}.curtain-input:focus{background:#fffcf52e;border-color:#fffcf5b3;transform:translateY(-2px);box-shadow:0 10px 25px #0003}.curtain-input.error{border-color:#ef4444;animation:.4s shake;box-shadow:0 0 0 3px #ef444426}.curtain-btn{color:#3d2a0b;cursor:pointer;background:#fdfcf5;border:none;border-radius:12px;padding:.85rem 2rem;font-family:Caveat,cursive;font-size:1.4rem;font-weight:600;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 15px #0003}.curtain-btn:hover{background:#fff;transform:translateY(-2px)scale(1.05);box-shadow:0 8px 25px #0000004d}.curtain-btn:active{transform:translateY(0)scale(.98)}@media (width<=600px){.curtain-subtitle{padding:0 1rem;font-size:1.8rem;line-height:1.2}.curtain-form{flex-direction:column;gap:1rem;width:100%;max-width:300px}.curtain-input{width:100%;min-width:unset;text-align:center}.curtain-btn{width:100%;padding:1rem}}.curtain-error{color:#ef4444;min-height:1.2rem;margin:0;font-size:.8rem}@keyframes curtainFadeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-6px)}50%{transform:translate(6px)}75%{transform:translate(-4px)}}.modal-backdrop{z-index:50;-webkit-backdrop-filter:blur(8px);background:#0009;justify-content:center;align-items:center;animation:.3s modalBackdropIn;display:flex;position:fixed;inset:0}.modal-card{background:#141423eb;border:1px solid #ffffff0f;border-radius:1rem;width:90%;max-width:480px;padding:2rem;animation:.35s cubic-bezier(.4,0,.2,1) modalCardIn;position:relative;box-shadow:0 24px 64px #00000080,0 0 0 1px #6366f11a}.modal-label{font-family:var(--font-display);color:#c4b5fd;margin:0 0 .75rem;font-size:1.35rem;font-weight:700}.modal-content{color:var(--color-text-muted);margin:0;font-size:.95rem;line-height:1.65}.modal-close{width:2rem;height:2rem;color:var(--color-text-muted);cursor:pointer;background:#ffffff0d;border:none;border-radius:.5rem;justify-content:center;align-items:center;font-size:1.1rem;transition:background .2s,color .2s;display:flex;position:absolute;top:.75rem;right:.75rem}.modal-close:hover{color:var(--color-text);background:#ffffff1a}@keyframes modalBackdropIn{0%{opacity:0}to{opacity:1}}@keyframes modalCardIn{0%{opacity:0;transform:translateY(16px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}.letter-card{--letter-parchment-start:#fdf6e3;--letter-parchment-mid:#f5e6c8;--letter-parchment-end:#eedcb0;--letter-ink:#2a1b0a;--letter-ink-heading:#3a250b;--letter-ink-muted:#4a3414;--letter-ink-ui:#5a4218;--letter-gold-rgb:160, 120, 70;--letter-seal-start:#d63c3c;--letter-seal-end:#9c1b1b;--letter-tint-sm:rgba(var(--letter-gold-rgb), .1);--letter-tint-md:rgba(var(--letter-gold-rgb), .25);--letter-tint-border:rgba(var(--letter-gold-rgb), .35);--letter-tint-hover:rgba(var(--letter-gold-rgb), .55);--letter-font:"Carattere", cursive;--letter-page-duration:.5s;--letter-page-easing-in:cubic-bezier(.22, 1, .36, 1);--letter-page-easing-out:cubic-bezier(.4, 0, 1, 1);--letter-slide-distance:36px}.letter-backdrop{z-index:60;-webkit-overflow-scrolling:touch;-webkit-backdrop-filter:blur(12px);background:#0a0805c7;justify-content:center;align-items:center;padding:3rem 1rem;animation:.4s both letterBackdropIn;display:flex;position:fixed;inset:-20px;overflow-y:auto}.letter-card{background:radial-gradient(ellipse at 20% 10%, var(--letter-parchment-start) 0%, var(--letter-parchment-mid) 60%, var(--letter-parchment-end) 100%);width:100%;max-width:540px;box-shadow:0 4px 6px #0000001f, 0 20px 60px #00000073, inset 0 0 40px rgba(var(--letter-gold-rgb), .15);border:1px solid var(--letter-tint-border);transform-origin:top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;border-radius:2px;flex-shrink:0;margin:auto;padding:3rem 3.5rem 1.5rem;animation:.5s cubic-bezier(.22,1,.36,1) both letterCardIn;position:relative}.letter-card:before{content:"";background:linear-gradient(90deg, transparent 0%, rgba(var(--letter-gold-rgb), .25) 30%, rgba(var(--letter-gold-rgb), .12) 70%, transparent 100%);border-radius:2px 2px 0 0;height:4px;position:absolute;top:0;left:0;right:0}.letter-seal{background:radial-gradient(circle at 40% 35%, var(--letter-seal-start), var(--letter-seal-end));color:#ffffffd9;pointer-events:none;border-radius:50%;justify-content:center;align-items:center;width:2.5rem;height:2.5rem;font-size:1rem;display:flex;position:absolute;top:-1.1rem;left:50%;transform:translate(-50%);box-shadow:0 2px 8px #b0202080,inset 0 1px 2px #ff787859}.letter-close{color:var(--letter-ink-ui);opacity:.6;cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;line-height:1;transition:opacity .2s,transform .2s;display:flex;position:absolute;top:1.2rem;right:1.2rem}.letter-close:hover{opacity:1;transform:scale(1.1)}.letter-greeting{font-family:var(--letter-font);color:var(--letter-ink-heading);margin-bottom:1.2rem;font-size:2rem;line-height:1.2}.letter-body{flex-direction:column;gap:.9rem;display:flex}.letter-paragraph{font-family:var(--letter-font);color:var(--letter-ink);text-indent:1.2em;letter-spacing:.02em;font-size:1.85rem;line-height:1.6}.letter-footer{flex-direction:column;align-items:flex-end;gap:.15rem;display:flex}.letter-footer-spacer{height:2.5rem}.letter-closing{font-family:var(--letter-font);color:var(--letter-ink-muted);font-size:1.5rem}.letter-signature{font-family:var(--letter-font);color:var(--letter-ink-heading);letter-spacing:.02em;font-size:2.2rem;font-weight:400}.letter-divider{background:linear-gradient(90deg, transparent, var(--letter-tint-border) 20%, var(--letter-tint-border) 80%, transparent);width:100%;height:1px;margin:1rem 0}.letter-page{min-height:8rem;overflow:hidden}.letter-page--enter-next{animation:slideInFromRight var(--letter-page-duration) var(--letter-page-easing-in) both}.letter-page--enter-prev{animation:slideInFromLeft var(--letter-page-duration) var(--letter-page-easing-in) both}.letter-page--exit-next{animation:slideOutToLeft var(--letter-page-duration) var(--letter-page-easing-out) both}.letter-page--exit-prev{animation:slideOutToRight var(--letter-page-duration) var(--letter-page-easing-out) both}.letter-pagination{justify-content:center;align-items:center;gap:1rem;margin-top:1rem;padding-top:.5rem;display:flex}.letter-nav-btn{width:2.5rem;height:2.5rem;color:var(--letter-ink-ui);cursor:pointer;will-change:transform;background:0 0;border:none;justify-content:center;align-items:center;line-height:1;transition:color .2s,transform .15s;display:flex}.letter-nav-btn:hover:not(:disabled){color:var(--letter-ink-heading);transform:scale(1.2)}.letter-nav-btn:disabled{opacity:.3;cursor:not-allowed}.letter-dots{align-items:center;gap:.4rem;display:flex}.letter-dot{background:rgba(var(--letter-gold-rgb), .3);border-radius:50%;width:.45rem;height:.45rem;transition:background .2s,transform .2s}.letter-dot--active{background:var(--letter-ink-ui);transform:scale(1.35)}@media (width<=600px){.letter-card{padding:2.5rem 1.75rem 1.25rem}.letter-greeting{font-size:1.75rem}.letter-paragraph{font-size:1.65rem;line-height:1.5}.letter-signature{font-size:1.9rem}}@keyframes letterBackdropIn{0%{opacity:0}to{opacity:1}}@keyframes letterCardIn{0%{opacity:0;transform:perspective(1200px)rotateX(-12deg)scale(.85)translateY(-25px)}to{opacity:1;transform:none}}@keyframes slideInFromRight{0%{opacity:0;transform:translateX(var(--letter-slide-distance))}to{opacity:1;transform:translate(0)}}@keyframes slideInFromLeft{0%{opacity:0;transform:translateX(calc(-1 * var(--letter-slide-distance)))}to{opacity:1;transform:translate(0)}}@keyframes slideOutToLeft{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translateX(calc(-1 * var(--letter-slide-distance)))}}@keyframes slideOutToRight{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translateX(var(--letter-slide-distance))}}
