@import "https://fonts.googleapis.com/css2?family=Be+Vietnam+Pro:wght@400;500;600;700;800&family=Nunito:wght@400;500;600;700;800&display=swap";*{box-sizing:border-box}body{color:var(--ink,#09275d);margin:0;font-family:Be Vietnam Pro,Arial,sans-serif}button,input,textarea,select{font:inherit}button,a,input,textarea,select{outline-offset:4px}button{cursor:pointer;color:inherit;background:#fff;border:1px solid #dce5ef;border-radius:10px;padding:11px 17px}button:disabled{opacity:.5;cursor:wait}a{color:inherit;text-decoration:none}h1,h2,p{margin-top:0}p{color:#637792;line-height:1.8}input,textarea,select{color:#16335b;background:#f9fcff;border:1px solid #d8e5ef;border-radius:10px;width:100%;padding:13px 15px}textarea{resize:vertical}label{margin:20px 0 0;font-size:13px;font-weight:600;display:block}label input,label textarea{margin-top:9px}em{color:#1762df;font-style:normal}.primary{background:var(--primary);color:#fff;border:0;font-weight:600;box-shadow:0 8px 22px #0645db22}.brand{letter-spacing:-2px;color:#071d42;align-items:center;gap:8px;font-size:32px;font-weight:700;display:flex}.brand img{object-fit:contain;max-width:170px;max-height:56px}.mark{font-size:46px;line-height:1}.guest{background-image:radial-gradient(at 10% 35%,#a9ecff77,#0000 50%),radial-gradient(at 90% 0,#d3e4ff88,#0000 55%);min-height:100vh}.guest-header{border-bottom:1px solid #155ca015;justify-content:space-between;align-items:center;max-width:1440px;height:100px;margin:auto;padding:0 55px;display:flex}.edition{letter-spacing:2px;align-items:center;gap:18px;font-size:10px;display:flex}.edition i{background:#1470fa;border-radius:50%;width:4px;height:4px}.admin-link{color:#667f9f;font-size:11px}.guest-wrap{max-width:1330px;margin:auto;padding:44px 55px 0}.hero-copy .pill,.pill{letter-spacing:1.8px;color:#1e5ccd;background:#fff9;border:1px solid #fff;border-radius:30px;align-items:center;gap:8px;padding:8px 13px;font-size:10px;font-weight:600;display:inline-flex}.dot{background:#337eff;border-radius:50%;width:6px;height:6px}.hero-copy{margin-bottom:30px;position:relative}.hero-copy h1{letter-spacing:-1.9px;margin:16px 0 0;font-size:42px;line-height:1.3}.hero-copy h1 span{color:var(--primary)}.hero-copy>p{margin:0;font-size:13px;position:absolute;bottom:0;right:0}.experience{grid-template-columns:1.23fr 1fr;align-items:start;gap:28px;display:grid}.kv-card{background:#fff9;border:7px solid #fff9;border-radius:22px;overflow:hidden;box-shadow:0 24px 70px #1d7dc01a}.kv-card>img{aspect-ratio:16/10;object-fit:cover;width:100%;display:block}.kv-caption{justify-content:space-between;align-items:center;padding:25px 22px;font-size:11px;line-height:1.8;display:flex}.anniversary{color:#0652db;align-items:center;gap:10px;font-size:50px;font-weight:800;line-height:1;display:flex}.anniversary>span{letter-spacing:1px;font-size:8px;line-height:1.8}.form-card{background:#fff;border:1px solid #fff;border-radius:22px;padding:32px 34px;box-shadow:0 20px 60px #145eaa12}.eyebrow{letter-spacing:1.8px;color:#4a7bd3;font-size:10px;font-weight:700}.form-card h2{letter-spacing:-.8px;margin:12px 0;font-size:25px;line-height:1.5}.form-card p{margin:0 0 20px;font-size:12px;line-height:1.8}.char-count{text-align:right;color:#92a0b3;margin-top:5px;font-size:10px;font-weight:400;display:block}.privacy{color:#8293a8;margin:16px 0;font-size:10px;line-height:1.6}.send{justify-content:space-between;align-items:center;width:100%;padding:16px;font-size:12px;display:flex}.send span{font-size:20px}.made-with{text-align:center;color:#9daabe;margin-top:16px;font-size:9px}.guest-footer{color:#7f97ae;letter-spacing:.5px;justify-content:space-between;padding:32px 0;font-size:9px;display:flex}.notice{background:#edf4ff;border:1px solid #c9dfff;border-radius:10px;margin-bottom:16px;padding:14px;font-size:12px;line-height:1.6}.success{text-align:center;padding:50px 0}.success-icon{color:#0060ed;background:#eafaff;border-radius:50%;place-items:center;width:76px;height:76px;margin:0 auto 24px;font-size:48px;display:grid}.admin{min-height:100vh;display:flex;background:#f3f7fc!important}.admin aside{background:#fff;border-right:1px solid #e4ecf5;flex-direction:column;gap:8px;width:255px;padding:30px 22px;display:flex;position:fixed;inset:0 auto 0 0}.admin-label{letter-spacing:1.6px;color:#91a1b7;margin:40px 0 12px;font-size:9px}.admin aside button{text-align:left;border:0;padding:15px;font-size:12px}.admin aside button.active{color:#0750d9;background:#edf3ff}.admin aside a{padding:12px 15px;font-size:12px}.admin aside small{color:#8c9db1;margin-top:auto;font-size:10px;line-height:1.8}.admin-main{width:calc(100% - 255px);max-width:1600px;margin-left:255px;padding:42px}.admin-main>header{justify-content:space-between;align-items:center;margin-bottom:30px;display:flex}.admin h1{letter-spacing:-1px;margin:10px 0 0;font-size:28px}.panel{background:#fff;border:1px solid #e2eaf4;border-radius:17px;margin-bottom:22px;padding:26px}.panel h2{font-size:18px}.panel p{font-size:13px}.login{max-width:520px;margin:50px auto}.login button{margin-top:24px}.stats{grid-template-columns:repeat(3,1fr);gap:20px;display:grid}.stats .panel span{color:#7b8da4;font-size:12px}.stats strong{margin-top:18px;font-size:38px;display:block}.toolbar{flex-wrap:wrap;align-items:center;gap:24px;display:flex}.check{white-space:nowrap;align-items:center;gap:8px;margin:0;font-size:12px;display:flex}.check input{width:17px;accent-color:var(--primary);margin:0}.toolbar>button{margin-left:auto}.empty{text-align:center;color:#8b9bb1;padding:65px 20px;font-size:13px}.count{background:#eff4ff;border-radius:12px;padding:5px 9px;font-size:12px}.wish-row{border-top:1px solid #edf1f7;align-items:start;gap:16px;padding:22px 0;display:flex}.avatar{color:#2675d9;background:#e9f4ff;border-radius:50%;flex-shrink:0;place-items:center;width:42px;height:42px;display:grid}.wish-row>div:nth-child(2){flex:1}.wish-row b{font-size:13px}.wish-row small{color:#91a1b7;margin-top:6px;font-size:10px;display:block}.wish-row p{overflow-wrap:anywhere;margin:12px 0}.status{background:#f0f2f6;border-radius:7px;padding:5px 8px;font-size:9px}.approved{color:#1f8a56;background:#e6f8ef}.pending{color:#a97a15;background:#fff4dc}.actions{gap:6px;display:flex}.actions button{padding:7px 10px;font-size:10px}.settings-grid{grid-template-columns:1fr 1fr;align-items:start;gap:22px;display:grid}.upload-preview{object-fit:contain;background:#eff6ff;border-radius:8px;width:100%;max-height:160px;margin:12px 0;display:block}.color-label{justify-content:space-between;align-items:center;display:flex}.color-label input{width:70px;height:42px;padding:4px}.field-row{align-items:center;gap:14px;margin:22px 0;display:flex}.field-row select{width:130px}.link-button{text-align:center;border-radius:10px;margin-top:28px;padding:15px;display:block}.led{background-image:radial-gradient(at 50% 70%,#9ceaff88,#0000 65%);flex-direction:column;height:100vh;padding:4vh 5vw;display:flex;position:relative;overflow:hidden}.led header{justify-content:space-between;align-items:center;display:flex}.live{letter-spacing:2px;color:#0c7cca;font-size:10px}.led-stage{text-align:center;z-index:1;flex-direction:column;flex:1;justify-content:center;align-items:center;display:flex}.led-stage h1{letter-spacing:-1px;margin:18px 0 0;font-size:clamp(20px,2.5vw,42px)}.led-stage blockquote{overflow-wrap:anywhere;max-width:85vw;margin:0 0 35px;font-weight:600;line-height:1.5;animation:.7s arrive}.big-quote{color:#1474ee;height:85px;margin-top:22px;font-family:Georgia,serif;font-size:110px;line-height:1}.led-name{color:#4c76a7;font-size:20px}.led footer{letter-spacing:1px;z-index:2;justify-content:space-between;align-items:center;font-size:10px;display:flex}.led-controls{opacity:0;gap:8px;transition:opacity .3s;display:flex;position:absolute;bottom:20px;right:20px}.led:hover .led-controls,.led-controls:focus-within{opacity:1}.led-controls button{letter-spacing:0;font-size:11px}.led-orbit{pointer-events:none;border:1px solid #fff9;border-radius:50%;width:90vw;height:90vw;position:absolute;top:4vh;left:5vw;box-shadow:0 0 0 40px #ffffff15,0 0 0 80px #ffffff15}@keyframes arrive{0%{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}@media (min-width:1600px){.guest-wrap{padding-top:65px}.hero-copy h1{font-size:50px}}@media (max-width:900px){.experience{grid-template-columns:1fr}.hero-copy>p{display:none}.guest-wrap{padding:28px 22px}.guest-header{height:78px;padding:0 24px}.edition{display:none}.hero-copy h1{font-size:34px}.form-card{padding:26px}.guest-footer{gap:20px;line-height:1.6}.admin aside{flex-flow:wrap;width:100%;padding:18px;position:static}.admin aside small,.admin-label{display:none}.admin{display:block}.admin-main{width:100%;margin:0;padding:22px}.admin-main>header{gap:12px}.admin h1{font-size:23px}.settings-grid{grid-template-columns:1fr}.field-row{flex-wrap:wrap}.stats{gap:8px}.stats .panel{padding:18px}.actions{flex-direction:column}.led-stage blockquote{max-width:90vw}.led-name{font-size:16px}}.kv-card>img{aspect-ratio:auto;object-fit:contain;width:100%;height:auto;display:block}.led-stage blockquote{text-wrap:balance;letter-spacing:-.02em;width:min(1400px,88vw);max-width:88vw;margin:40px 0 30px;line-height:1.55}.quote-edge{white-space:nowrap}.sample-wishes{border-top:1px solid #edf2f8;margin-top:16px;padding-top:16px}.sample-wishes>span{color:#7c91aa;font-size:10px}.sample-wishes>div{flex-wrap:wrap;gap:7px;margin:10px 0 20px;display:flex}.sample-wishes button{color:#1d5cae;background:#f1f8ff;border-color:#d8eaff;padding:8px 10px;font-size:10px}.led .led-controls{opacity:1}:-webkit-full-screen .led-controls{display:none!important}:fullscreen .led-controls{display:none!important}.visual-editor{grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:18px;display:grid}.visual-preview{padding:16px;position:sticky;top:12px}.preview-toolbar{justify-content:space-between;align-items:center;gap:12px;display:flex}.preview-toolbar select{max-width:240px;margin:0}.visual-preview iframe{background:#fff;border:1px solid #b9d8eb;border-radius:12px;width:100%;height:72vh;display:block}.preview-help{min-height:38px;font-size:13px}.text-inspector{min-width:0}.text-location{color:#124aba;background:#eaf3ff;border-radius:8px;margin-bottom:16px;padding:12px;font-size:13px}.original-copy{color:#54677e;overflow-wrap:anywhere;margin-top:6px;font-size:13px;font-weight:400;display:block}.text-inspector small{line-height:1.6;display:block}.text-inspector>button{margin-top:14px}.text-inspector hr{border:0;border-top:1px solid #d9e6ed;margin:22px 0}.text-entry-list{gap:8px;max-height:340px;margin-top:10px;display:grid;overflow:auto}.text-entry-list button{text-align:left;white-space:normal;overflow-wrap:anywhere}.text-entry-list button small{color:#61758a;margin-top:4px;font-size:11px}.text-entry-list button.selected{background:#fff8eb;border:2px solid #f89a20}.admin-session{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.admin-user-row{overflow-wrap:anywhere;border-bottom:1px solid #d9e6ed;padding:16px 0}.admin-user-row small{margin:7px 0;display:block}.login-modes{gap:8px;margin:20px 0;display:flex}.login-modes .active{background:var(--primary);color:#fff}@media (max-width:1150px){.visual-editor{grid-template-columns:minmax(0,1fr)}.visual-preview{position:static}.visual-preview iframe{height:65vh}.text-inspector{order:-1}.text-entry-list{max-height:160px}}.guest,.led,.admin{font-family:var(--font-body,"Be Vietnam Pro"),Arial,sans-serif;color:var(--ink,#09275d)}.guest h1,.guest h2,.led h1{font-family:var(--font-heading,"Be Vietnam Pro"),Arial,sans-serif;color:var(--heading,var(--ink,#09275d))}.guest p,.guest-footer,.made-with,.privacy,.led-name{color:var(--muted,#637792)}.primary{color:var(--button-text,#fff)}.led-designed{place-items:center;height:100svh;min-height:100vh;position:relative;overflow:hidden;padding:0!important;display:grid!important}.led-canvas{isolation:isolate;aspect-ratio:16/9;flex:none;width:min(100vw,177.778vh);position:relative;overflow:hidden;container-type:inline-size}.led-canvas .led-orbit{z-index:0;width:90%;height:160%;top:4%;left:5%}.led-group{overflow-wrap:anywhere;align-items:center;min-width:0;min-height:0;line-height:1.4;display:flex;position:absolute;overflow:hidden}.led-group img{object-fit:contain;pointer-events:none;width:100%;height:100%}.led-fit-text{align-items:center;justify-content:inherit;width:100%;height:100%;text-align:inherit;white-space:pre-wrap;word-break:break-word;display:flex;overflow:hidden}.led-fit-text>span{flex:0 auto;max-width:100%;display:block}.led-group-title,.led-group-wish{font-weight:700}.led-group-subtitle,.led-group-live{letter-spacing:.08em}.led-logo-text{letter-spacing:-.04em;font-size:3.2cqw;font-weight:800}.led-designed>.led-controls{z-index:20;flex-wrap:wrap;max-width:90vw;position:fixed;bottom:18px;right:18px}.led-designer{grid-template-columns:minmax(0,1fr) 310px;align-items:start;gap:18px;margin-bottom:22px;display:grid}.led-design-preview{min-width:0;position:sticky;top:12px}.led-designer .led-canvas{border:1px solid #abcbe0;border-radius:8px;width:100%}.led-design-tools{min-width:0}.led-design-tools input[type=file]{font-size:12px}.led-design-tools button{margin-top:8px}.led-design-tools hr{border:0;border-top:1px solid #d7e5ed;margin:22px 0}.led-position-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.is-editing .led-group{outline-offset:-1px;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;outline:1px dashed #6682ac;overflow:visible}.is-editing .led-group.picked{outline-offset:-2px;outline:2px solid #fa9419}.is-editing .led-group:active{cursor:grabbing}.is-editing .led-group.is-hidden{opacity:.3}.led-group-label{z-index:5;color:#fff;white-space:nowrap;pointer-events:none;background:#09275dd9;padding:2px 5px;font:10px Arial,sans-serif;position:absolute;top:0;left:0;transform:translateY(-100%)}.led-group-logo .led-group-label{transform:none}.is-editing .led-group.picked .led-group-label{background:#ba5f00}.is-editing .led-fit-text{pointer-events:none}@media (max-width:1100px){.led-designer{grid-template-columns:1fr}.led-design-preview{position:static}.led-position-grid{grid-template-columns:repeat(4,1fr)}}
