/* Easy Wedding (easywedding.in) — original design & code © 2026 Chandan Kumar Mahato. All rights reserved. Origin fingerprint: EW-ORIGIN-2026-369eafc22a98. Unauthorised copying is prohibited. */
@font-face{font-family:GardenSerif;src:url('assets/GardenSerif.otf')}@font-face{font-family:GardenScript;src:url('assets/GardenScript.otf')}
:root{--wine:#651c32;--wine-dark:#411120;--gold:#b78142;--ink:#302629;--muted:#756b6b;--paper:#fbf8f4;--line:#e8ded6;--serif:'Cormorant Garamond',GardenSerif,Georgia,serif;--sans:'DM Sans',Arial,sans-serif;--green:#39684f}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.6 var(--sans);-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:.55;cursor:wait}a{color:inherit}img{display:block;max-width:100%}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #c68b42;outline-offset:3px}[hidden]{display:none!important}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.15}h1{font-size:clamp(36px,4vw,52px)}h2{font-size:31px}h3{font-size:25px}small{font-size:14px}.app-shell{display:grid;grid-template-columns:246px minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;height:100svh;display:flex;flex-direction:column;padding:32px 22px 58px;background:linear-gradient(155deg,#681c34,#4e1425 65%,#3b111b);color:#fff7ec;z-index:25}.brand{display:flex;gap:12px;align-items:center;text-decoration:none;font:31px/1.1 var(--serif);white-space:nowrap}.brand-symbol{font:italic 49px var(--serif);color:#e1bf82;border-bottom:1px solid #dcb57e}.brand small{display:block;letter-spacing:.15em;font:9px/2.5 var(--sans);color:#d9b4b8}.sidebar-rule{height:1px;background:#ffffff21;margin:30px 0 20px}.wedding-nav{color:#d9b4b8;padding:0 12px;font-size:14px;margin-bottom:13px}nav{display:grid;gap:5px}nav button{border:0;background:transparent;border-radius:6px;color:#e7cfd3;text-align:left;padding:11px 13px;display:flex;gap:13px;align-items:center;font-size:15px}nav button:hover{background:#ffffff0b}nav button.active{background:#ffffff14;color:#ffe2ae;box-shadow:inset 3px 0 #d7ad69}.nav-icon{width:23px;font-size:21px;line-height:1.1;text-align:center}nav .nav-divider{height:1px;background:#ffffff20;margin:16px 8px}.sidebar-bottom{margin-top:auto;padding-top:30px}.sidebar-bottom p{font:21px/1.4 var(--serif);padding:12px;color:#d8b2ad}.sidebar-bottom em{color:#e6c898}.account-button{margin-top:18px;border:1px solid #ffffff25;border-radius:6px;color:#f2dcdb;background:transparent;display:flex;gap:10px;align-items:center;width:100%;padding:11px;font-size:14px}.avatar{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#e7c998;color:var(--wine)}.workspace{min-width:0}.topbar{height:88px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 40px;background:#fffefa;gap:20px}.breadcrumb{color:var(--muted);font-size:14px;white-space:nowrap}.breadcrumb span{margin:0 10px;color:#b5a6a0}.breadcrumb strong{font-weight:500;color:var(--ink)}.top-actions{display:flex;align-items:center;gap:18px}.account-chip{font-size:12px;font-weight:600;letter-spacing:.02em;opacity:.85;white-space:nowrap;max-width:180px;overflow:hidden;text-overflow:ellipsis}#save-state{font-size:13px;color:var(--muted)}#save-state.failed{color:#ab2538}.button{border:1px solid var(--wine);background:var(--wine);color:#fff5e8;border-radius:5px;padding:12px 20px;min-height:45px;font-size:14px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:9px;text-decoration:none;transition:background .2s,transform .2s}.button:hover{background:var(--wine-dark);transform:translateY(-1px)}.button.secondary{background:transparent;color:var(--wine);border-color:#d9c6c2}.button.secondary:hover{background:#f2e7e3}.button.light{background:#fff4de;color:var(--wine);border-color:#fff4de}.button.ghost{background:transparent;color:var(--wine);border-color:transparent}.button.small{padding:9px 15px;min-height:40px}.button.danger{background:#a02d3b}.icon-button{width:40px;height:40px;border:0;background:transparent;font-size:25px;color:inherit}.mobile-only{display:none}#main-content{max-width:1550px;margin:auto;padding:35px 40px 45px;min-height:calc(100vh - 156px)}.page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:25px}.page-heading p{color:var(--muted);margin-top:7px;max-width:720px}.eyebrow{font:12px/1.6 var(--sans);letter-spacing:.18em;color:var(--gold);text-transform:uppercase;margin-bottom:8px}.page-heading .eyebrow{margin:0 0 5px}.heading-actions{display:flex;gap:9px;flex-wrap:wrap}.hero-banner{position:relative;overflow:hidden;border-radius:10px;min-height:267px;display:flex;align-items:center;background:#562430;margin-bottom:25px;color:#fff9eb}.hero-banner img{position:absolute;right:0;top:0;height:100%;width:62%;object-fit:cover;object-position:50% 62%;opacity:.86}.hero-banner:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#521d2c 0%,#521d2c 32%,#521d2c66 65%,#521d2c00)}.hero-text{position:relative;z-index:1;padding:30px 36px;max-width:65%}.hero-text .eyebrow{color:#e5bf80}.hero-text h2{font-size:clamp(34px,3.5vw,49px);margin-bottom:9px}.hero-text p{color:#ebd2cf;max-width:420px;font-size:15px}.hero-text .button{margin-top:23px}.banner-count{position:absolute;right:27px;bottom:26px;z-index:1;padding:8px 19px;color:#fff7e6;text-align:center;border:1px solid #fff9e850;background:#49273055;backdrop-filter:blur(10px);border-radius:6px}.banner-count strong{display:block;font:41px/1.2 var(--serif)}.banner-count span{font-size:12px;letter-spacing:.08em}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:17px;margin:25px 0}.stat{background:#fffefb;border:1px solid var(--line);border-radius:8px;padding:20px 23px;position:relative}.stat-label{color:var(--muted);font-size:14px}.stat-value{font:35px/1.3 var(--serif);margin-top:7px}.stat-note{font-size:13px;color:var(--muted);margin-top:4px}.stat .symbol{float:right;color:var(--gold);font-size:21px}.progress{height:5px;background:#eee6dc;border-radius:5px;overflow:hidden;margin:12px 0 4px}.progress>span{display:block;height:100%;background:var(--gold);border-radius:inherit}.two-col{display:grid;grid-template-columns:1.2fr 1fr;gap:22px;align-items:start}.panel{background:#fffefb;border:1px solid var(--line);border-radius:9px;padding:25px;margin-bottom:23px;min-width:0}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}.text-link{background:none;border:0;padding:4px 0;color:var(--wine);font-size:14px;text-decoration:none}.text-link:hover{text-decoration:underline}.events-strip{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.event-tile{position:relative;min-width:0;background:#faf5ee;border:1px solid #eee2d4;border-radius:7px;padding:18px 12px;overflow:hidden}.event-tile .event-mark{display:block;font:32px var(--serif);color:var(--event-color,#b48137);margin-bottom:15px}.event-tile h3{font-size:23px}.event-tile p{font-size:13px;color:var(--muted);margin-top:8px}.event-tile .date-big{display:block;font-family:var(--serif);font-size:31px;line-height:1}.event-tile .tiny-label{font-size:12px;color:var(--event-color);text-transform:uppercase;letter-spacing:.09em}.task-line{display:flex;align-items:center;gap:12px;padding:13px 0;border-top:1px solid #eee5dd}.task-line:first-child{border-top:0}.task-line input{width:19px;height:19px;accent-color:var(--wine);flex-shrink:0}.task-copy{flex:1}.task-copy strong{font-size:15px;font-weight:500}.task-copy small{display:block;color:var(--muted);margin-top:3px}.task-line.done strong{text-decoration:line-through;color:#938584}.badge{display:inline-flex;align-items:center;border:1px solid #eadccc;color:#826039;background:#fcf2df;padding:3px 9px;border-radius:4px;font-size:12px;white-space:nowrap}.badge.green{background:#eaf3ea;border-color:#d7e6d7;color:#3a6244}.badge.rose{background:#f9e7e8;border-color:#efd1d6;color:#8f3b50}.budget-summary{display:flex;gap:22px;align-items:center;flex-wrap:wrap}.budget-ring{width:125px;height:125px;flex-shrink:0;border-radius:50%;background:conic-gradient(var(--wine) calc(var(--percent)*1%),#ece2d8 0);display:grid;place-items:center}.budget-ring:before{content:'';width:99px;height:99px;border-radius:50%;background:#fffefa;grid-area:1/1}.budget-ring span{grid-area:1/1;z-index:1;font:30px var(--serif)}.budget-legend{flex:1;min-width:140px}.budget-legend p{display:flex;justify-content:space-between;gap:10px;font-size:14px;padding:7px 0}.budget-legend b{font-weight:500}.quiet{color:var(--muted)}.quick-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:13px}.quick-card{border:1px solid var(--line);background:#fffaf2;border-radius:7px;padding:20px;text-align:left;color:var(--ink)}.quick-card>span{font-size:24px;color:var(--gold)}.quick-card strong{display:block;font-family:var(--serif);font-size:24px;margin:12px 0 7px;font-weight:500}.quick-card small{display:block;font-size:13px;color:var(--muted)}.app-footer{border-top:1px solid var(--line);padding:18px 40px;display:flex;justify-content:space-between;font-size:12px;color:#8a7a74}.event-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.event-card{background:#fffefa;border:1px solid var(--line);border-radius:9px;overflow:hidden}.event-card-header{padding:25px;background:var(--event-bg,#f4e7d5);color:var(--event-color,#816027);border-bottom:1px solid #00000008}.event-card-header>span{font:42px var(--serif);float:right;opacity:.65}.event-card-header h2{font-size:32px}.event-card-header p{font-size:14px;margin-top:8px}.event-card-body{padding:21px 25px}.event-card-body p{font-size:14px;margin:8px 0;color:var(--muted)}.card-actions{display:flex;gap:10px;margin-top:19px;align-items:center}.empty{padding:35px 20px;text-align:center;border:1px dashed #d9c6bc;border-radius:8px;background:#fcf8f1}.empty h3{margin-bottom:10px}.empty p{color:var(--muted);font-size:15px;max-width:480px;margin:0 auto 20px}.notice{padding:15px 18px;border:1px solid #e6d2b6;border-radius:6px;background:#fff7e6;color:#795731;font-size:14px;margin-bottom:20px}.notice p+p{margin-top:8px}.notice.error{color:#85213a;background:#fceef0;border-color:#e7c1c9}.section-tabs{display:flex;gap:8px;margin:20px 0 24px;flex-wrap:wrap}.chip{border:1px solid #dbc9bf;background:transparent;color:#695954;border-radius:30px;padding:9px 20px;font-size:14px;min-height:41px}.chip.active{background:var(--wine);border-color:var(--wine);color:white}.wardrobe-layout{display:grid;grid-template-columns:minmax(220px,.8fr) 1.2fr;gap:25px}.wardrobe-art{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:9px}.wardrobe-image{position:relative}.wardrobe-image .art-caption{font-size:12px;color:var(--muted);margin:8px 0}.wardrobe-copy .panel{padding:26px}.wardrobe-copy h2{font-size:35px;margin:7px 0 15px}.wardrobe-copy p{color:var(--muted);margin:12px 0}.outfit-person{border-top:1px solid var(--line);padding-top:20px;margin-top:20px}.outfit-person .eyebrow{margin-bottom:9px}.outfit-person h3{font-size:28px;margin-bottom:15px}.swatches{display:flex;gap:8px;margin:18px 0}.swatches span{width:25px;height:25px;border:3px solid white;outline:1px solid #ded2c6;border-radius:50%}.shopping-list{margin-top:25px}.list-row{display:flex;justify-content:space-between;gap:16px;align-items:center;border-bottom:1px solid var(--line);padding:15px 0}.list-row:last-child{border-bottom:0}.list-row strong{font-size:16px;font-weight:500}.list-row small{display:block;color:var(--muted)}.row-actions{display:flex;align-items:center;gap:9px}.budget-table-wrap{overflow:auto}.budget-table{border-collapse:collapse;width:100%;font-size:14px;min-width:680px}.budget-table th{font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:#89796e;text-align:left;background:#faf5ed;font-weight:500;padding:14px 12px;border-bottom:1px solid var(--line)}.budget-table td{padding:16px 12px;border-bottom:1px solid #eee6dd;vertical-align:middle}.budget-table .numeric{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.budget-table td small{color:var(--muted);display:block;font-size:12px}.table-total{display:flex;justify-content:flex-end;padding:20px 12px;gap:30px;align-items:center}.table-total strong{font:32px var(--serif);color:var(--wine)}.filter-bar{display:flex;align-items:end;gap:16px;flex-wrap:wrap;margin-bottom:22px}.filter-bar label{min-width:180px;flex:1}.filter-bar .button{margin-bottom:0}.map-note{font-size:13px;color:var(--muted);margin-top:12px}.vendor-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.vendor-grid .panel{margin:0}.vendor-grid h3{margin:12px 0}.vendor-grid p{font-size:14px;color:var(--muted);margin:8px 0}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.form-grid .wide{grid-column:1/-1}label{display:flex;flex-direction:column;gap:7px;font-size:14px;color:#5c4a46}input,textarea,select{width:100%;padding:11px 12px;border:1px solid #d9ccc3;background:#fffefa;border-radius:5px;color:var(--ink);min-height:45px;font-size:16px}input[type=checkbox]{width:19px;height:19px;min-height:19px;accent-color:var(--wine)}input[type=file]{font-size:14px;padding:10px}textarea{min-height:95px;resize:vertical}.field-help{font-size:12px;color:var(--muted);line-height:1.5}.profile-photos{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:23px}.upload-box{border:1px dashed #cfb9a4;padding:20px;border-radius:8px;background:#fbf5ec;text-align:center}.upload-box img{width:90px;height:90px;object-fit:cover;border-radius:50%;margin:0 auto 13px}.upload-box strong{display:block;margin-bottom:12px;font:23px var(--serif)}.upload-box label{cursor:pointer}.profile-form .dialog-actions{margin-top:25px}.connection-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.connection-card{border:1px solid var(--line);border-radius:7px;padding:20px}.connection-card h3{margin-bottom:10px}.connection-card p{font-size:14px;color:var(--muted);margin:12px 0}.studio-layout{display:grid;grid-template-columns:1fr 320px;gap:25px}.studio-window{border:1px solid var(--line);border-radius:9px;overflow:hidden;background:#e8dfd7}.studio-window iframe{width:100%;height:760px;border:0;background:#faf4eb;display:block}.studio-window .window-header{padding:13px 18px;font-size:14px;background:#fffefa;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.template-card{position:relative;height:170px;overflow:hidden;border-radius:6px;margin-bottom:14px;cursor:pointer;border:2px solid transparent;background:#f2e4d0;width:100%;padding:0;text-align:left}.template-card img{width:100%;height:100%;object-fit:cover;object-position:center 45%}.template-card span{position:absolute;inset:auto 0 0;padding:22px 16px 13px;color:#fff5e8;background:linear-gradient(transparent,#432332bb);font:25px var(--serif)}.template-card.active{border-color:var(--gold)}.design-layout{display:grid;grid-template-columns:minmax(260px,.8fr) minmax(300px,1.2fr);gap:25px;align-items:start}.design-controls label{margin-bottom:16px}.design-controls .button{width:100%;margin-bottom:10px}.design-stage{min-height:550px;background:#e8ded7;border:1px solid #d9ccc4;display:flex;align-items:center;justify-content:center;padding:24px;border-radius:9px}.design-stage canvas{width:100%;max-width:380px;height:auto;box-shadow:0 16px 40px #57473733}.design-stage .empty{background:#f8f0e6}.design-info{font-size:13px;color:var(--muted);margin-top:13px;text-align:center}.design-gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.design-gallery img{width:100%;aspect-ratio:3/4;object-fit:cover;background:#eadfd1;border-radius:6px}.design-gallery p{font:22px var(--serif);margin-top:10px}.design-gallery small{color:var(--muted)}.ai-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:20px 0}.ai-step{padding:20px;border:1px solid var(--line);border-radius:6px}.ai-step b{font:29px var(--serif);color:var(--gold)}.ai-step h3{font-size:24px;margin:12px 0}.ai-step p{font-size:14px;color:var(--muted)}.prompt-box{min-height:285px;font-size:14px;background:#faf5ee;line-height:1.7}.welcome-layout{display:grid;grid-template-columns:1fr 1fr;border-radius:12px;overflow:hidden;border:1px solid var(--line);background:#fffdfa}.welcome-art{background:linear-gradient(#48142244,#48142288),url('assets/wedding-arch-hero.png') center/cover;min-height:580px;color:#fff1d9;display:flex;flex-direction:column;justify-content:end;padding:40px}.welcome-art h1{font-size:51px}.welcome-art p{margin-top:15px;color:#ffe4c7}.welcome-form{padding:40px}.welcome-form h2{font-size:35px;margin-bottom:13px}.welcome-form>p{color:var(--muted);margin-bottom:24px}.welcome-form .button{width:100%;margin-top:22px}.loading-card{padding:100px;text-align:center;color:var(--muted)}dialog{border:1px solid var(--line);border-radius:12px;width:min(620px,calc(100% - 32px));padding:30px;color:var(--ink);background:#fffdf8;max-height:90svh;overflow:auto;box-shadow:0 30px 100px #3c182c44}dialog::backdrop{background:#24121d77;backdrop-filter:blur(5px)}.dialog-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:26px}.dialog-heading h2{font-size:34px}.dialog-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:26px}#confirm-dialog p{margin-top:15px;color:var(--muted)}#dialog-error{color:#9d2940;margin-top:18px}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);z-index:100;background:#3e1a28;color:#fff5e8;padding:13px 22px;border-radius:7px;font-size:14px;box-shadow:0 10px 40px #0003;max-width:90vw}#global-message{padding:13px 40px;background:#fff0d3;color:#825d29;font-size:14px}.source-note{font-size:12px;color:#8c7b70;margin-top:20px}.source-note a{color:inherit}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
@media(min-width:1450px){.hero-banner{min-height:300px}.hero-text{padding:37px 40px}.sidebar{padding-top:37px}#main-content{padding-top:40px}}
@media(max-width:1150px){.app-shell{grid-template-columns:215px minmax(0,1fr)}.sidebar{padding:28px 15px}.brand{font-size:27px}.topbar{padding:0 25px}#main-content{padding:28px 25px}.stats-grid{gap:10px}.stat{padding:16px}.stat-value{font-size:29px}.events-strip{gap:8px}.event-tile{padding:15px 10px}.event-tile h3{font-size:21px}.event-grid{grid-template-columns:repeat(2,1fr)}.studio-layout{grid-template-columns:1fr 255px}.top-actions{gap:10px}.two-col{grid-template-columns:1fr}.connection-grid{grid-template-columns:1fr}.wardrobe-layout{grid-template-columns:.85fr 1.15fr}.welcome-form,.welcome-art{padding:27px}}
@media(max-width:850px){.app-shell{display:block}.sidebar{position:fixed;left:0;top:0;width:245px;transform:translateX(-100%);transition:transform .25s}.sidebar.open{transform:translateX(0);box-shadow:20px 0 70px #0005}.mobile-only{display:block}.topbar{height:75px;padding:0 18px;gap:10px}.breadcrumb{margin-right:auto}.top-actions #save-state{display:none}.top-actions .button{font-size:12px;padding:8px 10px;min-height:39px}.top-actions{gap:5px}#main-content{padding:25px 20px}.hero-text{max-width:77%;padding:27px}.hero-text h2{font-size:40px}.hero-banner{min-height:250px}.banner-count{right:17px;bottom:17px;padding:6px 12px}.banner-count strong{font-size:33px}.stats-grid{grid-template-columns:repeat(2,1fr)}.stat-value{font-size:34px}.welcome-layout{grid-template-columns:1fr}.welcome-art{min-height:260px;background-position:center 48%}.welcome-art h1{font-size:40px}.welcome-art p{max-width:390px}.welcome-form{padding:28px}.studio-layout{grid-template-columns:1fr}.studio-layout>aside{order:-1;display:grid;grid-template-columns:1fr 1fr;gap:12px}.studio-layout>aside .panel{grid-column:1/-1}.template-card{height:130px;margin:0}.design-gallery{grid-template-columns:repeat(3,1fr)}.app-footer{padding:18px 20px}}
@media(max-width:600px){h1{font-size:38px}.page-heading{display:block}.heading-actions{margin-top:17px}.page-heading p{font-size:14px}.hero-text{max-width:85%;padding:25px 21px}.hero-text h2{font-size:35px}.hero-text p{max-width:225px;font-size:14px}.hero-banner img{width:85%;opacity:.68}.hero-banner:after{background:linear-gradient(90deg,#521d2c,#521d2c9c 55%,transparent)}.hero-banner .eyebrow{font-size:10px}.hero-text .button{font-size:13px;padding:10px 14px}.banner-count{right:12px;bottom:17px}.banner-count strong{font-size:30px}.banner-count span{font-size:10px}.stats-grid{gap:10px;margin-top:20px}.stat{padding:15px}.stat-value{font-size:30px}.stat-note{font-size:12px}.panel{padding:20px}.panel h2{font-size:28px}.events-strip{display:flex;overflow:auto;padding-bottom:6px}.event-tile{min-width:120px;flex:1}.quick-grid{grid-template-columns:1fr}.quick-card{display:grid;grid-template-columns:35px 1fr;column-gap:12px;padding:16px}.quick-card>span{grid-row:1/3}.quick-card strong{margin:0 0 4px;font-size:24px}.event-grid,.vendor-grid{grid-template-columns:1fr}.wardrobe-layout{grid-template-columns:1fr}.wardrobe-art{aspect-ratio:1/1;object-position:50% 38%}.wardrobe-copy .panel{padding:22px}.section-tabs{gap:6px}.chip{padding:8px 13px;font-size:13px}.design-layout{grid-template-columns:1fr}.design-stage{min-height:400px;padding:20px}.design-controls{margin-bottom:0}.ai-steps{grid-template-columns:1fr;gap:10px}.ai-step{padding:18px}.ai-step b{float:left;margin-right:15px}.ai-step h3{margin:0 0 9px}.ai-step p{margin-left:40px}.design-gallery{grid-template-columns:repeat(2,1fr)}.studio-window iframe{height:650px}.form-grid{gap:14px;grid-template-columns:1fr}.form-grid .wide{grid-column:auto}.profile-photos{gap:12px}.upload-box{padding:15px 10px}.upload-box input{max-width:100%;font-size:12px}.upload-box strong{font-size:21px}.map-frame{height:350px}.filter-bar{gap:12px}.filter-bar label{min-width:100%}.filter-bar button{width:100%}.list-row{align-items:flex-start}.row-actions{flex-wrap:wrap;justify-content:flex-end}.list-row strong{font-size:14px}.list-row small{font-size:12px}.row-actions .text-link{font-size:12px}.task-copy strong{font-size:14px}.task-copy small{font-size:12px}.task-line .badge{display:none}.breadcrumb{font-size:13px}.breadcrumb>span{margin:0 5px}.app-footer{font-size:10px}.dialog-actions{flex-wrap:wrap}.dialog-actions .button{flex:1}dialog{padding:24px}.loading-card{padding:60px 20px}.topbar .breadcrumb{max-width:calc(100vw - 220px);overflow:hidden;text-overflow:ellipsis}.topbar #backup-button{display:none}.welcome-form{padding:23px}.welcome-art{padding:26px}.welcome-art h1{font-size:37px}.table-total{gap:15px}.table-total strong{font-size:27px}}
@media(prefers-reduced-motion:no-preference){#main-content>*{animation:arrive .4s ease both}@keyframes arrive{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}}.check-label{display:flex;flex-direction:row;gap:10px;align-items:center}

.brand{font-size:40px}.brand-symbol{font-size:56px}.brand small{font:13px/1.8 var(--sans);letter-spacing:.02em}.sidebar .brand{gap:14px}

.mobile-brand{display:none;text-decoration:none;font:29px/1 var(--serif);color:var(--wine)}.mobile-brand small{display:block;font:10px/1.7 var(--sans);white-space:nowrap;color:var(--muted)}
@media(max-width:700px){.topbar .breadcrumb{display:none}.mobile-brand{display:block;margin-right:auto}.topbar .top-actions{margin-left:0}.topbar .button{padding:8px 11px;max-width:115px}.hero-banner{display:block}.hero-text{max-width:100%;padding-bottom:18px}.hero-text .button{white-space:normal;max-width:100%;text-align:left}.banner-count{position:relative;display:flex;align-items:center;gap:12px;bottom:auto;right:auto;width:max-content;margin:0 21px 23px;padding:5px 14px}.banner-count span{max-width:65px;text-align:left;line-height:1.5}.hero-banner img{height:100%}}
/* Easy Wedding identity and invitation controls */
.sidebar .brand{gap:10px;font-size:31px;line-height:1.05}.sidebar .brand-symbol{font-size:31px;min-width:40px;width:40px;height:49px}.sidebar .brand small{font:12px/1.5 'DM Sans',sans-serif;letter-spacing:0;margin-top:8px;max-width:155px;white-space:normal}.mobile-brand{font-size:26px;line-height:1.1}.mobile-brand small{font-size:12px;line-height:1.35;max-width:210px;white-space:normal;letter-spacing:0}.app-footer{gap:18px}.invitation-theme-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.invitation-theme-grid .template-card{margin:0 0 10px;text-align:left}.invitation-theme-grid .template-card img{height:120px}.invitation-theme-grid .template-card span{padding:10px;display:block;font-size:18px}.invitation-theme-grid small{display:block;font:12px/1.5 var(--sans);color:var(--muted)}.invitation-photo-controls h3{margin-bottom:20px}.photo-upload{display:flex;flex-direction:column;gap:12px;padding:16px;margin:15px 0;background:#faf5eb;border:1px dashed #b79b76;border-radius:10px;font:500 15px/1.5 var(--sans)}.photo-upload img{width:100%;height:170px;object-fit:cover;border-radius:6px}.photo-upload input{max-width:100%;font-size:14px;padding:6px}.photo-upload small{font-size:12px;color:#756456}
.short-label{display:none}@media(max-width:600px){.mobile-brand{font-size:23px;max-width:150px}.mobile-brand small{font-size:11px;max-width:150px;white-space:normal}.topbar{flex-wrap:nowrap;gap:10px}.top-actions{margin-left:auto}.topbar .top-actions .button{font-size:12px;padding:9px;white-space:nowrap}.topbar .long-label{display:none}.topbar .short-label{display:inline}.app-footer{flex-direction:column;align-items:flex-start}}
.creative-layout{display:grid;grid-template-columns:1.05fr 1fr;gap:24px;align-items:start}.creative-controls>.button{width:100%;margin-top:20px}.creative-label{display:block;margin:24px 0 12px;font-size:16px}.creative-label textarea{margin-top:12px}.creative-layout .prompt-box{min-height:360px;font-size:14px;line-height:1.7}.ai-photos{display:grid;grid-template-columns:1fr 1fr;gap:14px}.ai-photo{display:flex;flex-direction:column;gap:10px;padding:14px;background:#faf5ed;border:1px solid #dec9aa;border-radius:12px}.ai-photo img,.ai-photo-empty{width:100%;height:160px;object-fit:cover;border-radius:7px}.ai-photo-empty{display:grid;place-items:center;font:40px Georgia;color:#a68048;background:linear-gradient(145deg,#eee1c9,#fbf5e9)}.ai-photo strong{font-size:14px}.ai-photo input{width:100%;font-size:12px;padding:5px}.ai-photo small{font-size:12px;color:#756354}.provider-options{display:flex;gap:8px;margin-top:22px;flex-wrap:wrap}.provider-choice{flex:1;min-width:80px;background:#fffaf1;border:1px solid #cfbda1;border-radius:8px;padding:12px;cursor:pointer;color:#683347;font-size:15px}.provider-choice.active{background:#641e37;color:white;border-color:#641e37}.bridge-status{font-size:14px;color:#7e5436;padding:12px 0;margin:0}.companion-setup p{margin:12px 0;line-height:1.6}.companion-setup details{margin:18px 0}.companion-setup summary{cursor:pointer;font-size:15px}.companion-setup li{margin:12px 0;font-size:14px;line-height:1.6}.design-gallery video{width:100%;aspect-ratio:3/4;object-fit:contain;background:#211721;border-radius:8px}.panel,.template-card,.quick-card{transition:box-shadow .3s,border-color .3s}.template-card:hover,.quick-card:hover{box-shadow:0 15px 36px #612b351a}.button{transition:transform .2s,box-shadow .2s,background .2s}.button:hover{transform:translateY(-2px);box-shadow:0 6px 17px #621d3421}.button:active{transform:translateY(0) scale(.98)}
@media(max-width:1050px){.creative-layout{grid-template-columns:1fr}}@media(max-width:500px){.ai-photo img,.ai-photo-empty{height:130px}.ai-photo{padding:10px}.creative-controls{padding:19px}.ai-photos{gap:9px}.creative-layout .prompt-box{min-height:260px}}
@media(prefers-reduced-motion:reduce){.button,.panel,.template-card,.quick-card{transition:none!important}.button:hover,.button:active{transform:none}}


/* ===== Cinematic homepage — self-hosted motion, zero external requests ===== */
:root{--maroon-deep:#3f1010;--maroon:#5e1a1a;--gold-bright:#c9a24b;--gold-soft:rgba(201,162,75,.45);--ivory:#fffdf8;--ease:cubic-bezier(.22,1,.36,1)}
#main-content>.cine{animation:none}
.cine-hero{position:relative;min-height:min(92svh,880px);display:flex;align-items:flex-end;overflow:hidden;border-radius:14px;color:var(--ivory);background:var(--maroon-deep);isolation:isolate}
.cine-hero-media{position:absolute;inset:0;z-index:0}
.cine-hero-bg{width:100%;height:112%;object-fit:cover;object-position:50% 28%;will-change:transform}
.grade{position:absolute;inset:0;pointer-events:none}
.grade-shadows{background:linear-gradient(180deg,rgba(63,16,16,.62) 0%,rgba(63,16,16,.16) 42%,rgba(30,10,10,.8) 100%)}
.grade-warm{background:radial-gradient(120% 90% at 50% 8%,rgba(201,162,75,.22),transparent 60%);mix-blend-mode:soft-light}
.grade-vignette{background:radial-gradient(95% 95% at 50% 50%,transparent 52%,rgba(18,7,7,.62) 100%)}
.cine-hero-copy{position:relative;z-index:2;padding:clamp(28px,5vw,76px);max-width:940px}
.cine-hero-copy .hero-eyebrow{color:var(--gold-bright);letter-spacing:.35em;margin-bottom:14px}
.hero-title{font-size:clamp(58px,9vw,132px);line-height:.96;font-weight:500;color:#fffdf8;margin:0 0 20px;letter-spacing:.01em}
.hl-line{display:block;overflow:hidden;padding-bottom:.09em;margin-bottom:-.09em}
.hl-inner{display:block;will-change:transform}
.hl-amp{display:block;overflow:hidden;line-height:1.15;padding-bottom:.1em;margin-bottom:-.1em}
.hl-amp .hl-inner{font-family:'Great Vibes','Cormorant Garamond',cursive;font-size:.58em;color:var(--gold-bright);font-weight:400}
.hero-sub{font-size:clamp(16px,1.7vw,21px);line-height:1.65;color:#f3e2d2;max-width:46ch}
.hero-cta{display:flex;gap:14px;flex-wrap:wrap;margin-top:32px}
.hero-cta .button{background:linear-gradient(135deg,#d8ae60,#b78142);border-color:#d8ae60;color:#3a1c10;min-height:54px;padding:14px 32px;font-size:15px;box-shadow:0 14px 34px -12px #00000088}
.hero-cta .button:hover{background:linear-gradient(135deg,#e4bd72,#c48f4c);transform:translateY(-2px)}
.hero-cta .button.ghost{background:#ffffff12;color:#fff7ea;border:1px solid #ffffff4d;backdrop-filter:blur(8px);box-shadow:none}
.hero-cta .button.ghost:hover{background:#ffffff22}
.hero-count{position:absolute;z-index:2;top:clamp(20px,4vw,54px);right:clamp(20px,4vw,54px);text-align:center;border:1px solid var(--gold-soft);border-radius:10px;padding:14px 24px;background:#2b0e0e66;backdrop-filter:blur(10px)}
.hero-count strong{display:block;font:clamp(40px,4.5vw,60px)/1.1 var(--serif);color:var(--gold-bright);font-weight:500}
.hero-count span{font-size:11px;letter-spacing:.24em;color:#f0dcc4;line-height:1.8}
.hero-scroll-cue{position:absolute;z-index:2;left:50%;bottom:24px;transform:translateX(-50%);width:26px;height:44px;border:1px solid #ffffff75;border-radius:14px}
.hero-scroll-cue span{display:block;width:4px;height:9px;margin:8px auto 0;border-radius:3px;background:var(--gold-bright);animation:cue 1.9s var(--ease) infinite}
@keyframes cue{0%{transform:translateY(0);opacity:1}70%{transform:translateY(14px);opacity:0}100%{transform:translateY(0);opacity:0}}
.grain{position:fixed;inset:-50%;width:200%;height:200%;pointer-events:none;z-index:60;opacity:.055;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");animation:grain-shift 8s steps(10) infinite}
@keyframes grain-shift{0%,100%{transform:translate(0,0)}20%{transform:translate(-2%,3%)}40%{transform:translate(3%,-2%)}60%{transform:translate(-3%,-3%)}80%{transform:translate(2%,2%)}}
.marquee{overflow:hidden;background:linear-gradient(90deg,var(--maroon-deep),var(--maroon) 50%,var(--maroon-deep));border-top:1px solid var(--gold-soft);border-bottom:1px solid var(--gold-soft);margin-top:26px}
.marquee-track{display:flex;width:max-content;animation:marquee 28s linear infinite}
.marquee-half{display:inline-flex;align-items:center;gap:44px;padding:17px 22px 17px 44px;color:var(--gold-bright);font:12px/1 var(--sans);letter-spacing:.42em;white-space:nowrap}
.marquee-half i{font-style:normal;color:#fffdf87a;font-size:10px}
@keyframes marquee{to{transform:translateX(-50%)}}
.cine-section{padding:clamp(54px,7vw,108px) clamp(6px,2vw,24px);max-width:1400px;margin:0 auto}
.cine-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:clamp(28px,4vw,54px)}
.cine-head .eyebrow{letter-spacing:.35em;margin-bottom:12px}
.cine-head h2{font-size:clamp(34px,4.4vw,60px);font-weight:500;color:var(--ink)}
[data-split] .split-line{display:block;overflow:hidden;padding-bottom:.1em;margin-bottom:-.1em}
.cine-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2.4vw,30px)}
.cine-card{background:#fffefb;border:1px solid #e9dccb;border-radius:6px;overflow:hidden;transition:transform .55s var(--ease),box-shadow .55s var(--ease),border-color .55s var(--ease)}
.cine-card:hover{transform:translateY(-8px);box-shadow:0 34px 64px -24px #4a1f2b55;border-color:var(--gold-soft)}
.cine-card-hit{display:block;color:inherit;text-decoration:none}
.zoom-frame{position:relative;display:block;overflow:hidden;aspect-ratio:16/10;background:#e9dccb}
.zoom-frame img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--ease)}
.cine-card:hover .zoom-frame img{transform:scale(1.07)}
.cine-card-body{display:block;padding:24px 26px 28px}
.cine-card-body .eyebrow{font-size:11px;letter-spacing:.28em;margin-bottom:10px}
.cine-card-title{display:block;font:30px/1.2 var(--serif);font-weight:500;margin:0 0 12px;color:var(--ink)}
.cine-card-meta{display:block;font-size:14px;color:var(--muted)}
.cine-card-meta strong{font:34px/1 var(--serif);font-weight:500;color:var(--wine);margin-right:10px}
.cine-card-venue{display:block;margin-top:10px;font-size:14px;color:var(--muted)}
.cine-card-go{display:inline-block;margin-top:18px;font-size:12px;letter-spacing:.22em;font-weight:600;color:var(--wine)}
.cine-card:hover .cine-card-go{color:var(--gold-bright)}
.cine-band{background:linear-gradient(135deg,#47101f,#5e1a1a 60%,#47101f);border-top:1px solid var(--gold-soft);border-bottom:1px solid var(--gold-soft);margin:clamp(8px,2vw,26px) 0;position:relative;overflow:hidden}
.cine-band::before{content:'';position:absolute;inset:0;background:radial-gradient(80% 130% at 50% 0%,rgba(201,162,75,.16),transparent 60%);pointer-events:none}
.cine-band-grid{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:20px;max-width:1400px;margin:0 auto;padding:clamp(46px,5vw,74px) clamp(20px,3vw,40px)}
.cine-stat{text-align:center;color:#fff7ea}
.cine-stat-label{display:block;font:11px/1.6 var(--sans);letter-spacing:.3em;color:#d9b98a;text-transform:uppercase}
.cine-stat-value{display:block;font:clamp(38px,4.4vw,58px)/1.3 var(--serif);font-weight:500;color:#fffdf8;margin:8px 0 6px;font-variant-numeric:tabular-nums}
.cine-stat-note{display:block;font-size:13px;color:#e8cdbf}
.cine-duo{display:grid;grid-template-columns:1.15fr 1fr;gap:clamp(16px,2.4vw,30px);max-width:1400px;margin:0 auto;padding:0 clamp(6px,2vw,24px)}
.panel.luxe{border:1px solid #e6d3b8;border-top:3px solid var(--gold-bright);border-radius:6px;box-shadow:0 26px 54px -32px #4a1f2b60;background:#fffefb}
.app-footer{background:#2b0d14;color:#d9b98a;border-top:1px solid var(--gold-soft)}
@media(max-width:1150px){.cine-cards{grid-template-columns:repeat(2,1fr)}.cine-duo{grid-template-columns:1fr}}
@media(max-width:850px){
.cine-hero{min-height:88svh;border-radius:10px}
.hero-title{font-size:clamp(54px,16vw,88px)}
.hero-cta .button{width:100%}
.cine-cards{grid-template-columns:1fr}
.cine-band-grid{grid-template-columns:repeat(2,1fr);gap:34px 12px}
.cine-head{flex-direction:column;align-items:flex-start;gap:14px}
.hero-count{padding:10px 16px}
.hero-count strong{font-size:34px}
.hero-scroll-cue{display:none}
}
@media (prefers-reduced-motion:reduce){.marquee-track,.grain,.hero-scroll-cue span{animation:none}.cine-hero-bg{transform:none!important}}
