.projection-display{height:100svh;width:100%;overflow:hidden;cursor:none;isolation:isolate}.projection-display .backdrop{background:radial-gradient(ellipse at 50% 50%,#28302c42,transparent 58%),linear-gradient(130deg,#0d111a,#080b11 80%)}.projection-display .light{opacity:.45}.projection-display canvas{width:100%;height:100%}#projection-scene{position:fixed;inset:0;overflow:hidden;contain:layout style}.projection-center{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);width:clamp(250px,25vw,370px);text-align:center;pointer-events:none;z-index:3}.projection-center::before{content:'';position:absolute;z-index:-1;inset:-50px -35px;background:radial-gradient(ellipse,#0d121bf5 35%,#0b1018b0 62%,transparent 75%);filter:blur(10px)}.projection-brand{display:flex;justify-content:center;align-items:center;gap:13px;margin:0 auto 28px}.projection-brand img{width:54px;height:55px;object-fit:contain}.projection-brand p{font-family:var(--serif);font-size:clamp(23px,2vw,30px);line-height:1.1;margin:0;text-align:left;color:#eee8d9}.projection-brand span{display:block;font-family:var(--sans);font-size:8px;letter-spacing:3px;color:var(--gold);margin-top:8px}.projection-qr{width:clamp(205px,19vw,290px);aspect-ratio:1;margin:0 auto;background:#fff;border-radius:4px;padding:3px;box-shadow:0 0 70px #dcc38e12}.projection-qr svg{display:block;width:100%;height:100%;shape-rendering:crispEdges}.projection-star{display:block;color:var(--gold);font-size:15px;margin:24px 0 17px;opacity:.85}.projection-center h1{font-family:var(--serif);font-size:clamp(39px,3.8vw,57px);font-weight:400;line-height:1.08;letter-spacing:-.8px;margin:0 0 16px;white-space:nowrap}.projection-invite{color:#c3bfba;font-size:clamp(12px,1vw,16px);line-height:1.9;margin:0}.projection-address{font-family:var(--sans);color:#a99a7d;font-size:clamp(9px,.7vw,12px);letter-spacing:.6px;margin:17px 0 0;overflow-wrap:anywhere}.projection-word{position:absolute;top:0;left:0;width:max-content;margin:0;padding:7px 8px;pointer-events:none;opacity:0;transition:opacity 1.15s ease;will-change:transform;z-index:1}.projection-word.ready{opacity:1}.projection-word.leaving{opacity:0}.projection-word p{font-family:var(--serif);font-size:var(--phrase-size,35px);font-weight:400;line-height:1.22;color:var(--phrase-color,var(--gold));text-wrap:pretty;overflow-wrap:anywhere;margin:0;text-shadow:0 0 35px color-mix(in srgb,var(--phrase-color),transparent 96%)}.projection-word footer{font-family:var(--sans);font-size:clamp(9px,.75vw,13px);letter-spacing:1px;color:#a3a3a9;line-height:1.4;margin-top:8px;overflow-wrap:anywhere}.projection-word footer::before{content:'— ';color:#b29c77}.projection-word.inspiration p{font-style:italic}.projection-word.inspiration footer{font-size:9px;letter-spacing:1.5px}.projection-status{position:fixed;bottom:17px;left:25px;right:25px;text-align:center;margin:0;color:#afa692;font-size:10px;letter-spacing:.4px;z-index:4;pointer-events:none}.projection-display.is-still .light{animation-play-state:paused}
.projection-panel{border-bottom:1px solid var(--line);padding:31px 0 30px}.projection-panel-heading{display:flex;align-items:center;justify-content:space-between;gap:25px}.projection-panel-heading .eyebrow{margin-bottom:12px;font-size:8px}.projection-panel h2{font-family:var(--serif);font-size:39px;margin:0 0 13px}.projection-panel-heading>div>p:not(.eyebrow){color:var(--muted);font-size:11px;margin-bottom:18px;max-width:540px}.projection-links{display:flex;flex-direction:column;align-items:flex-end;gap:9px;flex-shrink:0}.projection-links .text-button{font-size:9px}.projection-remote-actions{display:flex;flex-wrap:wrap;gap:13px;align-items:center;margin:8px 0 23px}.projection-remote-actions .button{font-size:10px;gap:10px}.projection-state{color:#c4b38d;font-size:9px;display:flex;align-items:center;gap:7px}.projection-state::before{content:'';width:5px;height:5px;background:var(--gold);border-radius:50%;display:block}.projection-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.projection-fields label{font-size:10px;margin-bottom:9px}.projection-url-field{grid-column:1/-1}.projection-fields input{font-size:12px!important}.projection-field-note{font-size:9px;color:#858d9b;margin:7px 0 0}.projection-target{display:block;font-size:10px;color:#c3b18e;overflow-wrap:anywhere;margin-top:7px}.projection-save-row{display:flex;justify-content:space-between;align-items:center;gap:25px;margin-top:19px}.projection-save-row p{font-size:9px;color:#9199a5;line-height:1.8;margin:0}.projection-save-row .button{flex-shrink:0;font-size:10px}.projection-feedback{font-size:10px;color:#b6cbb9;margin:14px 0 0}.projection-feedback.error{color:#edb4b4}
@media(max-height:760px){.projection-brand{margin-bottom:20px}.projection-brand img{width:42px;height:43px}.projection-brand p{font-size:25px}.projection-brand span{font-size:7px}.projection-qr{width:clamp(180px,17vw,240px)}.projection-star{margin:17px 0 12px;font-size:12px}.projection-center h1{font-size:43px;margin-bottom:12px}.projection-invite{font-size:12px}.projection-address{font-size:9px;margin-top:13px}}
@media(max-height:560px){.projection-brand{margin-bottom:14px}.projection-brand img{width:32px;height:33px}.projection-brand p{font-size:20px}.projection-brand span{font-size:6px;margin-top:5px}.projection-qr{width:145px}.projection-star{margin:10px 0 8px}.projection-center h1{font-size:34px;margin-bottom:8px}.projection-invite{font-size:10px}.projection-address{font-size:8px;margin-top:8px}}
@media(max-width:760px){.projection-panel-heading{align-items:flex-start;flex-direction:column;gap:8px}.projection-links{align-items:flex-start;flex-direction:row;flex-wrap:wrap;gap:17px;margin-bottom:14px}.projection-panel h2{font-size:35px}.projection-fields{grid-template-columns:1fr 1fr;gap:18px 13px}.projection-url-field{grid-column:1/-1}.projection-remote-actions .button{font-size:9px;padding:12px 15px}.projection-save-row{flex-direction:column;align-items:flex-start;gap:15px}.projection-center{width:245px}.projection-qr{width:185px}.projection-brand img{width:39px;height:40px}.projection-brand p{font-size:23px}.projection-brand span{font-size:7px}.projection-center h1{font-size:39px}.projection-invite{font-size:11px}.projection-address{font-size:8px}.projection-word footer{margin-top:10px;font-size:8px}}
@media(prefers-reduced-motion:reduce){.projection-word{transition:none}}
