@import url('/assets/editor.css');
:root{--paper:#fcf8f1;--ink:#282420;--muted:#81786e;--line:#e3ddd2;--coral:#f36143;--yellow:#f3c65b;--green:#54765e;--radius:20px;font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer;min-height:48px;border:0;border-radius:10px;padding:13px 19px;background:var(--ink);color:#fff;font-weight:700}button:disabled{opacity:.48;cursor:wait}button:hover{filter:brightness(.96)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #377fb5;outline-offset:3px}[hidden]{display:none!important}a{color:inherit}h1,h2,h3,p{margin-top:0}h1,h2,h3{letter-spacing:-.04em}h1{font-size:clamp(36px,5vw,66px);line-height:1.05}h2{font-size:29px;line-height:1.14;margin-bottom:10px}h3{font-size:20px;margin-bottom:8px}p{line-height:1.55}label,legend{font-size:13px;font-weight:700;line-height:1.5}label{display:block;margin:16px 0 7px}input:not([type=checkbox]),select,textarea{width:100%;min-height:48px;border:1px solid #d4cdc2;border-radius:9px;padding:12px;background:#fffdf9;color:var(--ink)}input[type=color]{padding:5px;cursor:pointer}input[type=checkbox]{width:20px;height:20px;accent-color:var(--coral);flex-shrink:0}input[type=range]{padding:0}textarea{min-height:90px;resize:vertical}fieldset{border:0;padding:0;margin:23px 0}legend{margin-bottom:8px}.primary{background:var(--coral);color:#fff}.outline{border:1px solid #cfc7ba;background:transparent;color:var(--ink)}.subtle{background:#f3ebdc;color:var(--ink)}.text-button{padding:8px 0;background:none;color:var(--ink);font-size:13px}.wide{width:100%}.grow{flex:1}.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.between{justify-content:space-between}.small{font-size:13px}.muted{color:var(--muted)}.eyebrow{font-size:11px;font-weight:800;letter-spacing:2.1px;color:#7d7063;margin-bottom:14px}.card{padding:30px;border:1px solid var(--line);border-radius:var(--radius);background:#fffdf9}.status{font-size:14px;min-height:20px;color:#9c442a;white-space:pre-line}.notice{padding:16px;border:1px solid #d9b76e;background:#fff2d5;border-radius:10px;margin-bottom:20px;font-size:13px}.wordmark{display:inline-flex;text-decoration:none;font-size:29px;line-height:1;font-weight:900;letter-spacing:-1.8px;align-items:center}.wordmark span{font-weight:400}.wordmark i{font-style:normal;color:var(--coral);margin-left:5px;font-size:36px}.home{max-width:1300px;margin:auto;padding:32px 6vw 0}.masthead{display:flex;justify-content:space-between;align-items:center;padding:10px 0 35px;border-bottom:1px solid var(--line)}.edition{font-size:10px;letter-spacing:2px;font-weight:bold}.home-grid{display:grid;grid-template-columns:1.18fr 1fr;gap:7vw;padding:55px 0 30px}.home h1{font-size:clamp(42px,5.6vw,79px);font-weight:500;letter-spacing:-4px}.home h1 em{font-family:Georgia,serif;font-weight:400;color:var(--coral)}.lead{font-size:16px;line-height:1.7;color:#75695e}.home-actions{padding-top:10px}.pairing{padding:35px}.pairing h2{font-size:32px;margin-top:20px;max-width:330px}.pairing p{font-size:14px;color:var(--muted)}.pairing .primary{display:flex;justify-content:space-between;margin-top:16px}.pill{display:inline-block;background:#efe8da;padding:8px 10px;border-radius:5px;font-size:10px;letter-spacing:1.2px;font-weight:700}.staff-entry{display:flex;align-items:center;justify-content:space-between;padding:28px 0;border-bottom:1px solid var(--line);gap:15px}.staff-entry p{font-size:13px;margin:0;color:var(--muted)}.home-actions>.text-button{margin-top:12px}.photo-art{height:240px;position:relative;margin:26px 0 14px}.mini-strip{transform:rotate(-10deg);width:102px;background:white;padding:9px;box-shadow:0 8px 25px #6b3a2420;position:absolute;left:30px;top:0}.mini-strip span{display:grid;place-items:center;height:55px;background:#e4b6ab;color:#fff;font-size:35px;margin-bottom:7px}.mini-strip span:nth-child(2){background:#a0b6a7}.mini-strip span:nth-child(3){background:#e9c76e}.mini-strip small{font-size:6px;display:block;text-align:center;letter-spacing:1px}.art-caption{position:absolute;top:60px;left:170px;font-family:Georgia,serif;font-style:italic;transform:rotate(-7deg);font-size:30px;line-height:1.1}.sunburst{color:var(--coral);font-size:96px;position:absolute;left:280px;top:100px;transform:rotate(15deg)}footer{border-top:1px solid var(--line);padding:22px 0;display:flex;align-items:center;gap:24px;font-size:11px;font-weight:bold}footer span{font-size:9px;letter-spacing:1px;color:var(--muted)}footer small{margin-left:auto;color:var(--muted);font-weight:400}.login-page{min-height:100dvh;padding:36px 20px}.login-page>.wordmark{margin-left:4vw}.login-card{max-width:490px;margin:50px auto}.login-card h1{font-size:44px}.login-card .primary{margin-top:22px}.studio{display:grid;grid-template-columns:250px 1fr;min-height:100dvh}.sidebar{padding:30px 23px;border-right:1px solid var(--line);position:sticky;top:0;height:100dvh;display:flex;flex-direction:column}.sidebar>.eyebrow{margin-top:45px;font-size:9px}.event-list{flex:1;overflow:auto;padding:15px 0}.event-item{width:100%;display:block;text-align:left;background:none;color:var(--ink);padding:14px 12px;font-size:14px;margin:4px 0;border:1px solid transparent}.event-item.active{background:#f1e6d7;border-color:#e4d8c5}.event-item span{display:block;font-size:10px;color:var(--muted);margin-top:6px;font-weight:400}.sidebar-foot{font-size:12px;display:flex;align-items:center;justify-content:space-between;gap:10px}.studio-main{max-width:1120px;width:100%;padding:40px 5vw 70px;margin:auto}.studio-head{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap}.studio-head h1{font-size:39px;margin-bottom:8px}.studio-head .row{gap:8px}.studio-head button{font-size:12px;padding:12px 14px}.studio-main .card{margin-bottom:24px}.fields{display:grid;grid-template-columns:1fr 1fr;gap:0 22px}.span2{grid-column:1/-1}.check{display:flex;align-items:center;gap:9px;font-size:13px;font-weight:400;margin:12px 0}.check-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:0 12px}.section-heading{display:flex;gap:15px;align-items:flex-start;margin-bottom:10px}.section-heading h2{font-size:25px}.section-heading p{font-size:13px;color:var(--muted);margin:0}.step{display:grid;place-items:center;width:35px;height:35px;flex-shrink:0;border:1px solid #d4cabb;border-radius:50%;font-size:11px;color:var(--muted)}.design-cards{display:grid;grid-template-columns:1fr 1fr;gap:22px}.design-card h2{font-size:26px}.design-card p:not(.eyebrow){font-size:13px;color:var(--muted);min-height:60px}.design-card .eyebrow{font-size:9px;margin-top:25px}.design-card .outline{font-size:12px}.design-icon{height:85px;width:100%;font-family:Georgia,serif;font-size:48px;display:flex;align-items:center;justify-content:center;border-radius:10px;position:relative}.design-icon span{font-size:32px;position:absolute;right:20%;bottom:2px}.coral{background:#fbe3db;color:var(--coral)}.yellow{background:#f5eccb;color:#ac8732}.toast{position:fixed;left:50%;top:18px;transform:translateX(-50%);background:var(--ink);color:white;border-radius:10px;padding:14px 22px;z-index:10000;max-width:90vw;box-shadow:0 4px 25px #0002;font-size:14px}.booth{background:#211526;min-height:100dvh;display:grid;place-items:center;position:relative;overflow:hidden}.booth>#welcomeStage{width:min(100vw,75dvh);max-height:100dvh}.glass{background:#17121999;color:white;border:1px solid #ffffff50;font-size:11px;min-height:44px;padding:10px 13px;backdrop-filter:blur(8px)}.guest-page{min-height:100dvh;text-align:center;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:40px 25px}.guest-page h1{font-size:48px;max-width:600px}.layout-choices{display:flex;justify-content:center;flex-wrap:wrap;gap:16px;margin:25px 0 40px;max-width:800px}.layout-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;background:white;color:var(--ink);border:1px solid var(--line);border-radius:18px;padding:25px;width:200px;min-height:180px;font-size:16px}.layout-symbol{font-family:Georgia,serif;font-size:48px;line-height:1;color:var(--coral)}.camera-view{height:100dvh;position:relative;background:#171717;overflow:hidden;color:#fff}.camera-view video{width:100%;height:100%;object-fit:cover;transform:scaleX(-1)}.camera-shade{position:absolute;inset:0;background:linear-gradient(#000a,transparent 30%,transparent 60%,#000a)}.camera-top{position:absolute;top:max(18px,env(safe-area-inset-top));left:10px;right:10px;text-align:center}.camera-top p{margin-bottom:9px;text-shadow:0 2px 10px #000}.camera-top h1{font-size:clamp(28px,5vw,62px);letter-spacing:0;text-shadow:0 4px 15px #000;margin-bottom:8px}.camera-guide{position:absolute;inset:24% 8% 15%;border:2px solid #ffffff65;border-radius:30px;pointer-events:none}.camera-bottom{position:absolute;bottom:max(22px,env(safe-area-inset-bottom));left:10px;right:10px;display:flex;align-items:center;justify-content:center;gap:14px}.camera-bottom .primary{font-size:22px;padding:20px 40px}.countdown{position:absolute;inset:0;display:grid;place-items:center;font-size:clamp(130px,30vw,300px);font-weight:900;text-shadow:0 5px 25px #000;pointer-events:none}.flash{position:absolute;inset:0;background:white;opacity:0;pointer-events:none;transition:opacity .12s}.flash.on{opacity:.95}.results{min-height:100dvh;display:grid;grid-template-columns:1.1fr 1fr;align-items:center;gap:5vw;padding:6vw;max-width:1300px;margin:auto}.result-picture{text-align:center}.result-picture canvas{display:block;max-height:75dvh;max-width:100%;width:auto;height:auto;margin:auto;box-shadow:0 12px 50px #44332225}.result-picture p{margin-top:17px;color:var(--muted)}.result-controls h1{font-family:Georgia,serif;font-weight:400;font-size:clamp(38px,5vw,64px)}.result-actions{display:grid;gap:12px;margin-top:22px}.idle-dialog{border:1px solid var(--line);border-radius:22px;padding:35px;width:min(440px,90vw);background:var(--paper);color:var(--ink)}dialog::backdrop{background:#161114bb;backdrop-filter:blur(5px)}.idle-dialog h2{font-size:39px}.preview-dialog{border:0;padding:0;max-width:100vw;max-height:100dvh;width:100vw;height:100dvh;background:#211526;display:none;align-items:center;justify-content:center;overflow:hidden}.preview-dialog[open]{display:flex}.preview-dialog #previewStage{width:min(100vw,75dvh)}.preview-close{position:absolute;right:16px;top:16px;z-index:1000}.preview-note{position:absolute;bottom:8px;left:10px;right:10px;text-align:center;color:white;font-size:11px;pointer-events:none}.design-stage{position:relative;overflow:hidden;isolation:isolate}.scene-inner{position:absolute;left:0;top:0;transform-origin:0 0;overflow:hidden}.scene-background{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}.scene-element{position:absolute;margin:0;padding:0;border:0;line-height:1.15;white-space:pre-wrap;overflow:hidden;overflow-wrap:normal;min-height:0;min-width:0;border-radius:0}.scene-element.image img{width:100%;height:100%;object-fit:contain;pointer-events:none}.scene-element.button{display:flex;align-items:center;justify-content:center;white-space:normal;padding:5px;font-family:Arial,sans-serif;box-shadow:0 7px 20px #0001}.scene-element.selected{outline:2px solid #3988ee;outline-offset:2px;overflow:visible}.scene-element .resize-handle{display:none;position:absolute;bottom:-10px;right:-10px;width:22px;height:22px;background:#3988ee;border:3px solid white;border-radius:50%;cursor:nwse-resize;z-index:5;touch-action:none}.scene-element.selected .resize-handle{display:block}
@media(orientation:landscape){.booth>#welcomeStage,.preview-dialog #previewStage{width:min(100vw,133.333dvh)}.camera-guide{inset:23% 22% 16%}}
@media(max-width:1000px){.studio{grid-template-columns:200px 1fr}.sidebar{padding:25px 16px}.studio-main{padding:30px 25px}.home{padding:25px 5vw 0}.home-grid{gap:5vw}.home h1{letter-spacing:-2.5px}.sunburst{left:250px}}
@media(max-width:760px){.home-grid{grid-template-columns:1fr;padding-top:35px;gap:20px}.home h1{font-size:57px}.home-intro .photo-art{display:none}.home-intro>.small{display:none}.home-intro .lead{margin-bottom:5px}.masthead{padding-bottom:22px}.edition{font-size:8px}.pairing{padding:27px}.home-actions{padding-top:0}.staff-entry{padding:22px 0}.studio{display:block}.sidebar{position:relative;height:auto;border-bottom:1px solid var(--line);border-right:0;padding:20px;display:grid;grid-template-columns:1fr 1fr;gap:15px}.sidebar>.eyebrow{display:none}.sidebar .primary{font-size:12px}.event-list{display:flex;grid-column:1/-1;gap:8px;padding:0;max-height:130px}.event-item{min-width:150px;max-width:200px;margin:0}.sidebar-foot{grid-column:1/-1}.studio-main{padding:25px 16px 50px}.studio-head h1{font-size:32px}.studio-main .card{padding:22px}.design-cards{gap:12px}.design-card p:not(.eyebrow){min-height:100px}.design-card .outline{padding:11px;font-size:11px}.design-card h2{font-size:22px}.fields{gap:0 14px}.results{grid-template-columns:1fr;gap:25px;padding:35px 22px}.result-picture canvas{max-height:52dvh}.result-controls{max-width:500px;width:100%;margin:auto}.result-controls h1{font-size:38px}.result-controls h1 br{display:none}.guest-page h1{font-size:38px}.layout-card{width:145px;min-height:145px;padding:20px;font-size:14px}.check-grid{grid-template-columns:1fr 1fr}.photo-art{height:210px}}
@media(max-width:430px){.fields{grid-template-columns:1fr}.span2{grid-column:auto}.design-cards{grid-template-columns:1fr}.design-card p:not(.eyebrow){min-height:0}.check-grid{grid-template-columns:1fr}.home h1{font-size:48px}.edition{display:none}.camera-bottom .primary{padding:18px 22px;font-size:18px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

.motion-float{animation:sceneFloat 3s ease-in-out infinite}.motion-pulse{animation:scenePulse 2.6s ease-in-out infinite}@keyframes sceneFloat{0%,100%{translate:0 0}50%{translate:0 -12px}}@keyframes scenePulse{0%,100%{scale:1}50%{scale:1.05}}@media(prefers-reduced-motion:reduce){.motion-float,.motion-pulse{animation:none}}

.dashboard{max-width:1250px;margin:auto;padding:40px 5vw}.event-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:24px;margin-top:28px}.event-tile{padding:18px;border:1px solid var(--line);background:#fffdf9;border-radius:20px;overflow:hidden}.event-tile h2{font-size:23px;margin-top:18px}.event-tile .thumb{width:100%;max-height:260px;pointer-events:none}.event-tile .thumb-wrap{height:260px;overflow:hidden;border-radius:12px;background:#242321;display:flex;justify-content:center}.thumb-wrap .thumb{width:195px}.event-tile .row{gap:8px}.event-tile button{font-size:12px;padding:10px;min-height:44px}.state-badge{display:inline-block;padding:6px 10px;font-size:11px;font-weight:bold;border-radius:25px;background:#e8eee4;color:#466342}.queue-panel{margin-top:28px}.queue-panel h2{font-size:22px}.queue-panel p{font-size:14px}.photo-delivery{margin-top:22px;padding:18px;border:1px solid var(--line);border-radius:14px;background:#fff}.photo-delivery h2{font-size:20px}.photo-delivery canvas{display:block;width:190px;height:190px;margin:10px auto;background:white}.photo-delivery a{display:block;text-align:center;font-size:12px;overflow-wrap:anywhere}.photo-delivery p{margin-bottom:0}#phonePhoto{max-width:min(90vw,600px);max-height:70dvh;margin:20px 0}.download-link{display:inline-block;padding:16px 24px;border-radius:10px;background:var(--coral);color:white;text-decoration:none;font-weight:bold;margin:12px}output{display:block;font-size:17px;font-weight:700;color:var(--coral);margin:7px 0}input[type=range]{accent-color:var(--coral);min-height:48px}.recovery-item{margin-top:12px;padding:12px;border-top:1px solid var(--line)}

.design-progress{border:2px solid var(--coral);background:#fff9f4;margin:22px 0}.design-progress h2{font-size:20px;margin-bottom:6px}.design-progress p{font-size:14px;max-width:750px}.design-progress .row{gap:9px}.design-progress button{font-size:13px;min-height:44px}

.design-library summary{cursor:pointer;list-style-position:inside;font-size:16px;padding:2px 0}.design-library summary span{margin-left:8px}.design-library[open] summary{margin-bottom:17px}.design-library summary:focus-visible{outline:3px solid #377fb5;outline-offset:3px}


/* Continuous welcome-screen motion effects. Visible throughout a kiosk's idle time. */
.motion-fade-in{animation:welcomeFade 4s ease-in-out infinite}
.motion-slide-up{animation:welcomeSlideUp 4s ease-in-out infinite}
.motion-zoom-in{animation:welcomeZoomIn 4s ease-in-out infinite}
.motion-drift{animation:welcomeDrift 4s ease-in-out infinite}
@keyframes welcomeFade{0%{opacity:0}23%,76%{opacity:1}100%{opacity:0}}
@keyframes welcomeSlideUp{0%{opacity:0;translate:0 38px}25%,75%{opacity:1;translate:0 0}100%{opacity:0;translate:0 -10px}}
@keyframes welcomeZoomIn{0%{opacity:0;scale:.7}25%,75%{opacity:1;scale:1}100%{opacity:0;scale:1.05}}
@keyframes welcomeDrift{0%,100%{translate:-14px 0}50%{translate:14px 0}}
@media(prefers-reduced-motion:reduce){.motion-fade-in,.motion-slide-up,.motion-zoom-in,.motion-drift{animation:none!important;opacity:1!important;translate:none!important;scale:1!important}}

/* Optional SMS consent: visible preview only; sending intentionally disabled until
   Twilio, privacy/terms pages and opt-in proof are ready. */
.sms-optin{margin-top:20px;padding:18px;background:#fffdf9;border:1px solid var(--line);border-radius:14px}
.sms-optin h2{font-size:22px;margin-bottom:8px}
.sms-optin .eyebrow{margin-bottom:8px}
.sms-optin .sms-consent{display:flex;align-items:flex-start;gap:10px;margin-top:17px;font-weight:400;text-align:left;line-height:1.5}
.sms-optin .sms-consent input{margin-top:3px}
.sms-optin .small{font-size:12px;line-height:1.55}
.sms-optin button{margin-top:12px}
.sms-optin button:disabled{opacity:.6;cursor:not-allowed}

/* Full-bleed guest mode: the backdrop fills every viewport, while the
   authored scene (including Canva artwork/text/buttons) scales uniformly. */
#booth.view:not([hidden]){
  width:100%;height:100dvh;min-height:100dvh;padding:0;
  display:block;position:relative;overflow:hidden;
}
#booth>#welcomeStage{
  position:absolute;inset:0;width:100%;height:100%;
  max-width:none;max-height:none;margin:0;overflow:hidden;
}
.scene-viewport-backdrop{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:0}
.scene-backdrop-media{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}
#booth .scene-inner{z-index:1}

#layoutView,#phoneView{min-height:100dvh;width:100%;box-sizing:border-box;
  padding: max(40px,env(safe-area-inset-top,0px)) max(25px,env(safe-area-inset-right,0px)) max(40px,env(safe-area-inset-bottom,0px)) max(25px,env(safe-area-inset-left,0px))}
#cameraView{width:100%;height:100dvh;min-height:100dvh}
#results{max-width:none;width:100%;box-sizing:border-box;min-height:100dvh;
  padding: max(24px,env(safe-area-inset-top,0px)) max(22px,env(safe-area-inset-right,0px)) max(24px,env(safe-area-inset-bottom,0px)) max(22px,env(safe-area-inset-left,0px))}

#phoneSave{border:0;cursor:pointer;font:inherit}
#phoneSave:disabled{opacity:.65;cursor:wait}
#phoneSaveHelp{max-width:550px;line-height:1.5}

/* Keep the privacy link visible in the homepage footer on all screen widths. */
.home footer .privacy-footer-link{font-size:12px;font-weight:600;text-underline-offset:3px;white-space:nowrap;margin-left:auto}
.home footer .privacy-footer-link+small{margin-left:0}
@media(max-width:500px){.home footer{flex-wrap:wrap;gap:12px}.home footer .privacy-footer-link{margin-left:0}.home footer .privacy-footer-link+small{margin-left:auto}}

.sms-template-setting{margin:22px 0 14px;padding:16px;border:1px solid var(--line);border-radius:12px;background:#fffaf5}
.sms-template-setting label:first-child{margin-top:0}
.sms-template-preview{white-space:pre-wrap;overflow-wrap:anywhere;padding:16px;background:#fff;border:1px solid var(--line);border-radius:9px;line-height:1.65;font-size:14px}
