*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}canvas{display:block}:root{--bg:#F0F0F0;--surface:rgba(255,255,255,0.72);--text:#1A1714;--muted:#7A746E;--border:rgba(26,23,20,0.09);--accent-gold:#C8A87A;--accent-sage:#91ADAA;--accent-rose:#CFA8A0}html,body{height:100%;overflow:hidden;background:var(--bg);font-family:alegreya,serif;color:var(--text);cursor:default}#canvas{position:fixed;inset:0;z-index:0;width:100%;height:100%}header{position:fixed;top:0;left:0;right:0;z-index:100;padding:22px 26px;display:flex;align-items:flex-start;justify-content:space-between}.quote-wrap{opacity:0;animation:slideDown .7s cubic-bezier(.22,1,.36,1).3s forwards;width:560px}.quote-text{font-family:alegreya,serif;font-size:17px;font-weight:400;letter-spacing:.02em;line-height:1.69;color:#646262}.quote-author{font-family:alegreya,serif;font-size:17px;color:#969491;margin-top:4px;letter-spacing:.01em;opacity:0;transition:opacity .6s ease}.quote-author.visible{opacity:1}@keyframes slideDown{from{opacity:0;transform:translateY(-14px)}to{opacity:1;transform:translateY(0)}}@keyframes riseUp{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}.contact-trigger{position:fixed;bottom:24px;right:26px;z-index:200;width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:0 0;border:none;border-radius:0;cursor:pointer;opacity:0;animation:riseUp .6s cubic-bezier(.22,1,.36,1).8s forwards;font-family:alegreya,serif;font-size:16px;color:var(--muted);line-height:1;transition:color 1s ease}.contact-trigger:hover{color:var(--text)}.modal-overlay{position:fixed;inset:0;z-index:500;display:flex;align-items:center;justify-content:center;background:rgba(240,240,240,.85);backdrop-filter:blur(6px);opacity:0;pointer-events:none;transition:opacity .35s ease;cursor:default}.modal-overlay.active{opacity:1;pointer-events:auto}.modal{position:relative;width:380px;padding:40px 36px 36px;background:#fff;border:1px solid rgba(26,23,20,6%);border-radius:20px;box-shadow:0 8px 40px rgba(0,0,0,8%),0 2px 8px rgba(0,0,0,4%);transform:translateY(16px)scale(.97);transition:transform .35s cubic-bezier(.22,1,.36,1)}.modal-overlay.active .modal{transform:translateY(0)scale(1)}.modal-close{position:absolute;top:14px;right:14px;width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:0 0;border:none;cursor:default;color:var(--muted);font-size:18px;transition:color .2s}.modal-close:hover{color:var(--text)}.modal h2{font-family:alegreya,serif;font-size:24px;font-weight:500;letter-spacing:.01em;margin-bottom:6px;color:var(--text)}.modal .modal-sub{font-family:alegreya,serif;font-size:14px;color:var(--muted);margin-bottom:24px;line-height:1.5}.modal label{display:block;font-family:alegreya,serif;font-size:13px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}.modal input,.modal textarea{width:100%;padding:11px 14px;font-family:alegreya,serif;font-size:15px;color:var(--text);background:var(--bg);border:1px solid rgba(26,23,20,.1);border-radius:10px;outline:none;transition:border-color .6s ease}.modal input:focus,.modal textarea:focus{border-color:rgba(26,23,20,.3)}.modal input{margin-bottom:4px}.modal textarea{height:100px;resize:vertical;margin-bottom:4px;line-height:1.5}.field-error{font-family:alegreya,serif;font-size:12px;color:#c27a6a;min-height:18px;margin-bottom:4px;opacity:0;transition:opacity .8s ease}.field-error.visible{opacity:1}.modal .invalid{border-color:#c27a6a}.modal .invalid:focus{border-color:#b0685a}.modal button[type=submit]{width:100%;padding:12px 0;font-family:alegreya,serif;font-size:15px;letter-spacing:.03em;color:#fff;background:var(--text);border:none;border-radius:10px;cursor:pointer;transition:opacity .2s}.modal button[type=submit]:hover{opacity:.82}.modal .sent-msg{display:none;text-align:center;padding:32px 0;font-family:alegreya,serif;font-size:13px;color:var(--muted);line-height:1.6}body{opacity:1!important}