/* ==== styles.css ==== */
@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:wght@400;500;600;700&display=swap');
:root{--ink:#263f38;--muted:#7e8177;--cream:#f9f6f0;--paper:#fffdfa;--linen:#eee7dc;--sage:#d7e2d7;--gold:#c6a272;--accent:#254b42;--danger:#b45951;--radius:18px;--shadow:0 14px 42px #2b493319;}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:'DM Sans',system-ui,sans-serif;font-size:14px;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:inherit}img{max-width:100%}.hidden{display:none!important}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #c6a272aa;outline-offset:3px}.ico{width:18px;height:18px;display:inline-block;flex-shrink:0;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle}.ico.sm{width:15px;height:15px}.ico.big{width:23px;height:23px}
.boot{min-height:100dvh;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:20px;color:#61776b}.loading-ring{width:34px;height:34px;border:2px solid #ddd5ca;border-top-color:var(--accent);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
.sr{position:absolute;clip:rect(0,0,0,0);width:1px;height:1px;overflow:hidden}.muted{color:var(--muted)}.micro{text-transform:uppercase;letter-spacing:2.6px;font-size:10px;font-weight:700}.serif{font-family:'Playfair Display',Georgia,serif}.small{font-size:12px}.center{text-align:center}.spaced{letter-spacing:.07em}.caps{text-transform:uppercase}.line{height:1px;background:#e9e3d9;margin:20px 0}.link{color:var(--accent);text-decoration:underline;text-underline-offset:3px}
.btn{display:inline-flex;justify-content:center;align-items:center;gap:9px;padding:12px 19px;border:1px solid transparent;border-radius:9px;background:var(--accent);color:#fff;font-weight:700;text-decoration:none;transition:background .2s,transform .2s,box-shadow .2s;line-height:1.3}.btn:hover:not(:disabled){background:#3a6354;transform:translateY(-1px);box-shadow:0 8px 20px #24483920}.btn.secondary{background:#fff;color:var(--ink);border-color:#dcd9d1}.btn.secondary:hover{background:#f7f2ea}.btn.ghost{background:transparent;color:var(--ink);border-color:transparent}.btn.ghost:hover{background:#f0ece5}.btn.gold{background:#bb966d;color:white}.btn.danger{background:#fff4f1;color:var(--danger);border-color:#efd3cb}.btn.wide{width:100%}.btn.sm{padding:9px 12px;font-size:12px}.btn.icon-only{width:42px;height:42px;padding:0;border-radius:50%}
.input,.select,.textarea{display:block;width:100%;min-width:0;border:1px solid #ddd9ce;border-radius:10px;padding:12px 13px;color:#253e35;background:#fff;outline:none;transition:border .2s}.textarea{min-height:110px;resize:vertical}.input:focus,.select:focus,.textarea:focus{border-color:var(--gold)}.field{display:block;margin-bottom:16px}.field>span,.field>label{display:block;font-size:11px;font-weight:700;margin-bottom:8px;color:#54675e;letter-spacing:.04em}.field small{display:block;color:var(--muted);margin-top:6px}.two-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.actions.end{justify-content:flex-end}.pill{border-radius:30px;padding:6px 11px;background:#edf3eb;color:#557265;display:inline-flex;gap:5px;align-items:center;font-size:11px;font-weight:700}.pill.warn{background:#fff1dc;color:#987043}.empty{padding:40px 18px;text-align:center;color:#8f9085;border:1px dashed #ddd4c7;border-radius:14px;background:#fffcf7}.empty .ico{width:34px;height:34px;color:#c1ad90;display:block;margin:0 auto 12px}
/* top navigation */
.topbar{height:74px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 clamp(18px,5vw,75px);border-bottom:1px solid #ece6dc;background:#fffdf9e9;backdrop-filter:blur(13px);position:sticky;top:0;z-index:40}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--accent);font-family:'Playfair Display',Georgia,serif;font-size:25px;font-weight:700;letter-spacing:-1.3px}.brand-logo{width:33px;height:33px;border:1px solid #bfc9b8;border-radius:9px;display:grid;place-items:center;transform:rotate(-7deg);color:#346054}.brand-logo .ico{transform:rotate(7deg)}.nav-links{display:flex;align-items:center;gap:18px}.nav-links a{font-size:12px;text-decoration:none;font-weight:700}.nav-links a:hover{color:#bc9668}.nav-links .btn{font-size:12px}
/* Home */
.home-hero{min-height:620px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:50px;max-width:1250px;margin:0 auto;padding:70px 32px 85px;position:relative}.hero-text h1{font-size:clamp(48px,6vw,82px);line-height:1.09;letter-spacing:-3px;margin:23px 0 21px;font-weight:500;max-width:600px}.hero-text p{max-width:480px;color:#798479;line-height:1.9;font-size:15px}.hero-buttons{margin:30px 0}.hero-stage{height:490px;position:relative;display:grid;place-items:center}.hero-stage:before{content:'';position:absolute;width:80%;height:85%;border-radius:48% 48% 2% 2%;background:#e1e9df;top:5%;left:11%}.hero-stage:after{content:'';position:absolute;width:67%;height:65%;border:1px solid #fff;top:16%;left:17%;border-radius:48% 48% 1% 1%;pointer-events:none}.photo-demo{position:relative;width:245px;height:330px;transform:rotate(-9deg) translateY(-12px);background:#fff;padding:13px 13px 40px;box-shadow:0 25px 55px #22372e44;z-index:2;transition:transform .8s}.photo-demo:hover{transform:rotate(-4deg) translateY(-24px)}.photo-demo .demo-art{width:100%;height:100%;position:relative;overflow:hidden;background:linear-gradient(155deg,#d5ddcf,#f2ddc4 55%,#bdcdbb)}.sun{position:absolute;top:30px;right:27px;width:85px;height:85px;border-radius:50%;background:#ffe8b9;box-shadow:0 0 42px #fff4d8}.hill{position:absolute;width:280px;height:150px;background:#7f9b82;border-radius:50%;bottom:-70px;left:-40px}.hill.two{background:#a8b89a;bottom:-37px;left:75px}.leaf-art{position:absolute;bottom:35px;left:35px;width:8px;height:110px;background:#58795e;transform:rotate(-23deg)}.leaf-art:before,.leaf-art:after{content:'';position:absolute;width:47px;height:20px;background:#6a886c;border-radius:100% 0 100% 0;left:-43px;top:26px;transform:rotate(-18deg)}.leaf-art:after{left:7px;top:57px;transform:rotate(155deg)}.hero-card-back{position:absolute;right:16%;top:8%;width:190px;height:270px;background:#d6baa0;transform:rotate(10deg);border:13px solid #fdfcf5;box-shadow:0 10px 34px #253a2f35;z-index:1}.float-label{position:absolute;bottom:25px;right:3%;z-index:4;background:#fff;padding:14px 18px;border-radius:10px;box-shadow:var(--shadow);font-size:13px;animation:float 4s ease-in-out infinite}.float-label .ico{color:#a99170;margin-right:8px}@keyframes float{50%{transform:translateY(-9px)}}.feature-band{background:#f0ebe2;padding:40px 20px}.feature-grid{max-width:1100px;margin:auto;display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.feature{display:flex;align-items:center;gap:15px}.feature-icon{width:47px;height:47px;background:#fff;border-radius:12px;display:grid;place-items:center;color:var(--accent);flex-shrink:0}.feature h4{font-size:13px;margin:0 0 4px}.feature p{font-size:12px;margin:0;color:#83857a;line-height:1.6}.home-end{text-align:center;padding:65px 20px}.home-end h2{font-size:40px;margin:10px 0 22px;font-weight:500}
/* guest */
.guest-wrap{max-width:1120px;margin:auto;padding:34px 25px 100px}.guest-hero{min-height:380px;border-radius:20px;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:44px 20px;text-align:center;background:linear-gradient(130deg,#dfe7da,#f9eadd 65%,#e0e7db)}.guest-hero:before,.guest-hero:after{content:'';position:absolute;width:280px;height:280px;border:1px solid #c8cfb7;border-radius:50%;top:-130px;left:-110px;box-shadow:0 0 0 50px #ffffff20,0 0 0 100px #ffffff13}.guest-hero:after{left:auto;right:-140px;top:auto;bottom:-140px}.guest-hero.has-cover{background-size:cover;background-position:var(--x,50%) var(--y,50%);background-repeat:no-repeat}.guest-hero.has-cover:before{inset:0;width:auto;height:auto;position:absolute;border:0;background:linear-gradient(0deg,#20392cad,#20392c55);box-shadow:none;border-radius:0}.guest-hero.has-cover .guest-hero-content{color:#fff}.guest-hero-content{z-index:1;position:relative}.guest-hero h1{font:500 clamp(40px,6vw,69px)/1.2 'Playfair Display',Georgia,serif;margin:17px 0;letter-spacing:-2px}.guest-hero .date{letter-spacing:2.5px;font-weight:700;font-size:11px}.guest-hero .little-heart{font-size:24px;font-family:Georgia,serif;color:#ab9577}.guest-tabs{display:flex;gap:7px;justify-content:center;flex-wrap:wrap;padding:23px 0 30px;position:sticky;top:73px;background:var(--cream);z-index:30;border-bottom:1px solid #eee8df}.guest-tab{display:inline-flex;align-items:center;gap:8px;min-height:39px;border:1px solid transparent;background:transparent;color:#798277;border-radius:40px;padding:9px 16px;font-weight:700;font-size:12px}.guest-tab.active{background:var(--accent);color:#fff;box-shadow:0 3px 9px #254b4225}.guest-content{max-width:900px;margin:10px auto 0}.section-eyebrow{text-align:center;color:#b49a77;font-size:10px;letter-spacing:2.4px;font-weight:700;text-transform:uppercase;margin-bottom:10px}.section-title{text-align:center;font:500 35px/1.25 'Playfair Display',Georgia,serif;margin:0 0 12px}.section-lead{text-align:center;color:#839084;line-height:1.8;max-width:560px;margin:0 auto 29px}.card{background:#fffefa;border:1px solid #ebe6dc;border-radius:16px;padding:25px;box-shadow:0 6px 25px #3e51490a}.guest-intro{display:grid;grid-template-columns:1fr 1fr;gap:26px;margin:20px auto}.intro-art{border-radius:13px;min-height:265px;background:linear-gradient(145deg,#d4dfd3,#f6e7d8);display:flex;align-items:center;justify-content:center}.intro-art .ico{width:80px;height:80px;stroke-width:.8;color:#879d89}.intro-copy{align-self:center}.intro-copy h2{font:500 35px 'Playfair Display',Georgia,serif;margin:10px 0}.intro-copy p{line-height:1.8;color:var(--muted)}.name-form{max-width:650px;margin:26px auto}.limit-box{padding:15px 18px;background:#f0f3eb;border-radius:10px;display:flex;align-items:center;justify-content:space-between;gap:14px;margin:17px 0;color:#47705b}.photo-counter{display:flex;gap:6px}.photo-dot{height:9px;width:9px;background:#d3d9cb;border-radius:50%}.photo-dot.used{background:#557967}.photo-tile{border-radius:14px;overflow:hidden;background:#e5ebe1;aspect-ratio:4/5;position:relative}.photo-tile img{display:block;width:100%;height:100%;object-fit:cover}.photo-tile .tile-foot{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,#1a282cba);padding:34px 12px 13px;color:white}.photo-tile .tile-foot b{font-size:12px}.photo-tile .tile-foot span{display:block;font-size:10px;opacity:.8;margin-top:3px}.photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.cam-panel{max-width:730px;margin:auto}.cam-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:13px}.camera-frame{background:#202924;position:relative;border-radius:18px;overflow:hidden;max-height:70dvh;aspect-ratio:3/4;margin:auto;display:flex;align-items:center;justify-content:center;transition:aspect-ratio .3s}.camera-frame.landscape{aspect-ratio:4/3;max-width:730px}.camera-frame video,.camera-frame #capturePreview{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.camera-frame .cam-guide{position:absolute;inset:6%;border:1px solid #ffffff55;border-radius:9px;pointer-events:none;z-index:2}.camera-frame .cam-guide:before,.camera-frame .cam-guide:after{content:'';position:absolute;width:25px;height:25px;border-top:3px solid #fff;border-left:3px solid #fff;top:0;left:0;border-radius:7px 0 0 0}.camera-frame .cam-guide:after{top:auto;left:auto;bottom:0;right:0;border:0;border-bottom:3px solid #fff;border-right:3px solid #fff;border-radius:0 0 7px 0}.camera-message{color:#fff;text-align:center;padding:30px;z-index:3;max-width:390px}.camera-message .ico{width:35px;height:35px;margin-bottom:14px}.flash-overlay{position:absolute;inset:0;background:#fff;pointer-events:none;opacity:0;z-index:5}.flash-overlay.animate{animation:cameraFlash .65s ease-out}@keyframes cameraFlash{0%{opacity:0}20%{opacity:1}100%{opacity:0}}.cam-toolbar{display:flex;justify-content:center;gap:12px;margin:16px 0;flex-wrap:wrap}.cam-toolbar .btn{min-width:85px}.camera-shutter{width:66px;height:66px;border:4px solid #fff;border-radius:50%;background:#f7f2e9;box-shadow:inset 0 0 0 5px #365e50,0 3px 12px #243c341a;transition:transform .2s}.camera-shutter:hover{transform:scale(1.06)}.filter-row{display:flex;gap:8px;overflow-x:auto;padding:9px 3px 17px;scrollbar-width:thin;justify-content:flex-start}.filter-chip{border-radius:30px;border:1px solid #e5dfd5;padding:9px 14px;background:#fff;white-space:nowrap;font-size:12px;font-weight:700;color:#678071}.filter-chip.active{border-color:var(--accent);background:#e1ede4;color:var(--accent)}.voice-panel{max-width:660px;margin:auto}.mic-circle{width:95px;height:95px;display:grid;place-items:center;border-radius:50%;background:#edf2e9;margin:25px auto 20px;color:var(--accent);position:relative}.mic-circle.recording:after{content:'';position:absolute;inset:-12px;border:1px solid #bb645d;border-radius:50%;animation:pulse 1.5s infinite}.mic-circle.recording{background:#f7e3dc;color:#af514b}@keyframes pulse{to{transform:scale(1.25);opacity:0}}.mic-circle .ico{width:36px;height:36px}.voice-time{font-size:26px;font-variant-numeric:tabular-nums;font-weight:700;letter-spacing:3px}.voice-card{border:1px solid #eae4da;background:#fff;padding:16px;border-radius:13px;display:grid;grid-template-columns:minmax(100px,1fr) minmax(150px,260px);gap:12px;align-items:center;margin:9px 0}.voice-card audio{width:100%;height:36px}.wish-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.wish-card{padding:23px;border:1px solid #e9e2d6;border-radius:13px;background:#fffefa}.wish-card:before{content:'“';font-family:Georgia,serif;font-size:48px;color:#d4b997;line-height:.8;display:block}.wish-card p{color:#52685d;line-height:1.8;white-space:pre-wrap;overflow-wrap:anywhere;margin:9px 0 18px}.wish-card .by{font-size:11px;font-weight:700;color:#9b836a}.footer{border-top:1px solid #e5ddd2;padding:30px;text-align:center;font-size:12px;color:#9a998e}.footer .brand{justify-content:center;margin-bottom:8px;font-size:20px}.event-info{text-align:center;margin:15px 0 28px;color:#7b857b;font-size:12px}
/* dashboard */
.dash-shell{display:grid;grid-template-columns:260px minmax(0,1fr);min-height:100dvh;background:#f8f7f3}.sidebar{background:#fffdf8;border-right:1px solid #ece7db;display:flex;flex-direction:column;padding:25px 18px;min-height:100vh;position:sticky;top:0;height:100vh}.side-brand{padding:4px 14px 27px}.side-group-label{font-size:10px;letter-spacing:2px;text-transform:uppercase;font-weight:700;color:#a4a59a;padding:12px 16px}.side-button{border:0;border-radius:9px;background:transparent;display:flex;align-items:center;gap:13px;width:100%;text-align:left;padding:13px 15px;color:#718077;font-size:13px;font-weight:700;margin:2px 0}.side-button.active{background:#e9f0e8;color:#2b5346}.side-button:hover{background:#f4f5ef}.sidebar-bottom{margin-top:auto;padding:20px 8px 0;border-top:1px solid #eee8dc}.dash-main{padding:32px clamp(18px,4vw,58px) 70px;max-width:1400px;width:100%;margin:auto}.dash-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:30px}.dash-head h1{font:500 33px 'Playfair Display',Georgia,serif;margin:7px 0}.dash-head p{color:#879187;font-size:13px;margin:0}.dash-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:22px}.stat{background:#fff;border:1px solid #e9e7df;border-radius:13px;padding:23px}.stat .ico{color:#a9b8a7}.stat strong{font-size:31px;font-weight:600;display:block;margin-top:10px}.stat small{font-size:11px;color:#8f968c}.dash-card{background:#fff;border:1px solid #e8e7e0;border-radius:15px;padding:25px;margin-bottom:20px}.dash-card h3{margin:0 0 19px;font-size:16px}.dash-card>p{color:#89948a;line-height:1.7}.events-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.event-item{background:#fff;border:1px solid #ebe7df;border-radius:12px;padding:20px}.event-item h3{font-family:Georgia,serif;font-size:23px;font-weight:400;margin:8px 0 15px}.event-item .actions{justify-content:space-between}.preview-cover{width:100%;aspect-ratio:2.8;border-radius:11px;background:linear-gradient(110deg,#dde6d8,#f6e6d6);background-position:center;background-size:cover;display:flex;align-items:center;justify-content:center;color:#71887c;font:italic 26px Georgia,serif;position:relative;overflow:hidden}.preview-cover:after{content:' ';position:absolute;inset:10px;border:1px solid #ffffff80;border-radius:8px}.upload-area{border:1px dashed #bfc9b6;border-radius:10px;padding:19px;background:#fbfcf8;display:flex;align-items:center;gap:15px;flex-wrap:wrap}.range-row{display:grid;grid-template-columns:90px 1fr 44px;align-items:center;gap:12px;margin:13px 0}.range-row input{width:100%;accent-color:var(--accent)}.color-row{display:flex;gap:12px;align-items:center}.color-row input{width:47px;height:41px;border:0;background:none;cursor:pointer}.design-grid{display:grid;grid-template-columns:1fr 1fr;gap:23px}.qr-layout{display:grid;grid-template-columns:1fr 1fr;gap:30px;align-items:start}.qr-poster{background:linear-gradient(130deg,#fcfaf4,#f1e9db);border:1px solid #d9c6ac;aspect-ratio:148/210;padding:23px;text-align:center;max-width:350px;position:relative;overflow:hidden;color:#36554b;box-shadow:var(--shadow)}.qr-poster:before{content:'';position:absolute;top:-60px;left:-60px;width:135px;height:135px;border:1px solid #d9c8af;border-radius:50%;box-shadow:0 0 0 24px #d9c8af22,0 0 0 47px #d9c8af11}.qr-poster:after{content:'';position:absolute;bottom:-60px;right:-60px;width:135px;height:135px;border:1px solid #d9c8af;border-radius:50%;box-shadow:0 0 0 24px #d9c8af22,0 0 0 47px #d9c8af11}.qr-poster .qr-brand{font-family:Georgia,serif;font-size:23px;margin:15px 0 20px}.qr-poster h2{font:normal 28px Georgia,serif;margin:14px 0}.qr-poster canvas{width:67%;aspect-ratio:1;position:relative;z-index:1;background:white;padding:10px;margin:15px auto}.qr-poster .sub{font-size:11px;letter-spacing:2px;text-transform:uppercase}.table-wrap{overflow:auto}.simple-table{width:100%;border-collapse:collapse;text-align:left}.simple-table th{font-size:10px;letter-spacing:1px;text-transform:uppercase;color:#999f94;background:#f7f8f5;padding:13px}.simple-table td{padding:14px 13px;border-bottom:1px solid #eeeae4;font-size:12px}.simple-table td audio{width:220px;max-width:100%}.auth-shell{max-width:440px;margin:65px auto;background:#fff;border:1px solid #e6e0d5;border-radius:18px;padding:35px;box-shadow:var(--shadow)}.auth-shell h1{font:500 34px Georgia,serif;margin:12px 0}.auth-shell p{line-height:1.7;color:#849186}.dashboard-mobile-header{display:none}.banner{background:#fff7e7;color:#8c6b3c;border:1px solid #eee1be;border-radius:10px;padding:12px 15px;font-size:12px;line-height:1.6;margin-bottom:18px}.banner.success{background:#eef5eb;color:#4e7556;border-color:#d6e4d1}.banner.error{background:#fff1ee;color:#a8504a;border-color:#edcfca}.toast{position:fixed;bottom:28px;left:50%;transform:translateX(-50%) translateY(100px);z-index:200;background:#203d32;color:#fff;padding:13px 20px;box-shadow:var(--shadow);border-radius:12px;max-width:min(90vw,520px);text-align:center;transition:transform .2s;pointer-events:none;font-size:13px}.toast.show{transform:translateX(-50%) translateY(0)}.modal-cover{position:fixed;inset:0;background:#172e2599;z-index:90;display:flex;align-items:center;justify-content:center;padding:20px;backdrop-filter:blur(3px)}.modal{width:min(500px,100%);max-height:90dvh;overflow:auto;background:white;padding:25px;border-radius:16px;box-shadow:0 40px 70px #10251c4d}.modal h2{font:500 30px Georgia,serif;margin:0 0 16px}.modal .close-modal{float:right}
@media(max-width:960px){.home-hero{gap:18px}.hero-text h1{font-size:54px}.hero-stage{height:430px}.dash-shell{grid-template-columns:215px 1fr}.sidebar{padding:20px 10px}.dash-main{padding:24px 20px}.qr-layout{gap:15px}.qr-poster h2{font-size:24px}}
@media(max-width:720px){.topbar{height:66px;padding:0 17px}.brand{font-size:22px}.nav-links{gap:9px}.nav-links>a:not(.btn){display:none}.nav-links .btn{font-size:11px;padding:10px 12px}.home-hero{grid-template-columns:1fr;padding:48px 22px 30px;gap:0}.hero-text{text-align:center}.hero-text h1{font-size:clamp(45px,11vw,66px);max-width:570px;margin:17px auto;letter-spacing:-2px}.hero-text p{margin:auto}.hero-buttons{justify-content:center}.hero-stage{height:360px}.hero-stage:before{width:65%;height:95%;left:17%}.hero-stage:after{width:55%;height:75%;left:22%}.photo-demo{width:170px;height:240px}.hero-card-back{width:150px;height:205px;right:25%;top:15%}.float-label{right:5%;bottom:20px}.feature-grid{grid-template-columns:1fr;max-width:350px;gap:23px}.guest-wrap{padding:20px 15px 60px}.guest-hero{min-height:300px;border-radius:15px}.guest-hero h1{font-size:clamp(36px,9vw,53px)}.guest-tabs{top:65px;flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;scrollbar-width:none;padding:12px 0 15px}.guest-tabs::-webkit-scrollbar{display:none}.guest-tab{white-space:nowrap;padding:10px 13px;font-size:11px}.guest-content{padding:9px 0}.section-title{font-size:30px}.guest-intro{grid-template-columns:1fr}.intro-art{min-height:170px}.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.wish-grid{grid-template-columns:1fr}.card{padding:19px}.voice-card{grid-template-columns:1fr}.camera-frame{max-height:65dvh}.camera-frame.landscape{max-height:58dvh}.dash-shell{display:block}.sidebar{display:none;position:static}.dashboard-mobile-header{display:flex;background:#fffdf9;position:sticky;top:0;z-index:50;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-bottom:1px solid #ebe5db}.dashboard-mobile-header .brand{font-size:20px}.mobile-nav{display:flex;gap:5px;overflow-x:auto;padding:12px 15px;background:#fffdf9;position:sticky;top:60px;z-index:50}.mobile-nav .side-button{margin:0;white-space:nowrap;padding:9px 11px;width:auto;font-size:11px}.mobile-nav .ico{width:15px;height:15px}.dash-main{padding:23px 15px 70px}.dash-head{align-items:flex-start}.dash-head h1{font-size:29px}.dash-grid{gap:8px}.stat{padding:14px}.stat strong{font-size:24px}.events-list{grid-template-columns:1fr}.design-grid,.qr-layout{grid-template-columns:1fr}.qr-poster{margin:auto;width:100%}.two-fields{grid-template-columns:1fr}.auth-shell{margin:35px 15px;padding:25px}.footer{padding:22px}.camera-shutter{width:59px;height:59px}}
@media(max-width:380px){.brand{font-size:20px}.guest-wrap{padding:14px 11px 55px}.guest-tab{padding:9px}.guest-hero{min-height:260px}.dash-grid{grid-template-columns:1fr 1fr}.stat:last-child{grid-column:span 2}.photo-grid{gap:8px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
/* Keep desktop dashboard navigation only in the left sidebar. */
.mobile-nav{display:none}
.toast{opacity:0;visibility:hidden}
.toast.show{opacity:1;visibility:visible}
@media(max-width:720px){.mobile-nav{display:flex}}

.little-heart .ico{width:24px;height:24px;stroke-width:1.25}

/* SEKeping Camera Studio V2 — immersive guest capture + adjustable analog effects */
.camera-immersive{min-height:100dvh;background:#171614;color:#f8f4eb;padding:0 0 38px;overflow-x:clip}
.camera-immersive .camera-frame{width:100%;max-width:760px;height:min(80dvh,850px);min-height:560px;max-height:none;aspect-ratio:auto!important;border-radius:0;margin:0 auto;position:relative;background:linear-gradient(145deg,#35312e,#121817);overflow:hidden;box-shadow:0 8px 36px #0004}
.camera-immersive .camera-frame.landscape{height:min(78dvh,850px);max-width:1000px}
.camera-immersive .camera-frame video,.camera-immersive .camera-frame #capturePreview{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1}
.camera-immersive .cam-guide{position:absolute;inset:3%;z-index:4;border:1px solid #ffffff28;border-radius:4px;pointer-events:none}
.camera-immersive .cam-guide:before,.camera-immersive .cam-guide:after{width:22px;height:22px;border-color:#e5d4baaa;border-width:1px}
.camera-immersive .flash-overlay{z-index:12}
.camera-immersive .camera-message{position:absolute;z-index:5;left:50%;top:46%;transform:translate(-50%,-50%);width:88%;font-size:14px;color:#f8f4ec;line-height:1.65;text-shadow:0 2px 4px #0006}
.camera-immersive .camera-message .btn{margin-top:12px;background:#faf5eb;color:#29231e}
.camera-immersive .camera-message .ico{height:38px;width:38px}
.camera-immersive .live-grain,.camera-immersive .live-vignette{position:absolute;inset:0;pointer-events:none;z-index:2}
.camera-immersive .live-grain{background-size:160px 160px;mix-blend-mode:overlay}
.camera-immersive .live-vignette{z-index:3}
.camera-immersive .cam-overlay-header{position:absolute;z-index:10;top:0;left:0;right:0;display:grid;grid-template-columns:50px 1fr 50px;align-items:start;gap:10px;padding:calc(21px + env(safe-area-inset-top,0px)) 24px 0;background:linear-gradient(to bottom,#0009,transparent);color:#fff;text-align:center}
.camera-immersive .cam-wedding-title{display:flex;flex-direction:column;gap:7px;align-items:center;min-width:0;text-shadow:0 2px 8px #0009}
.camera-immersive .cam-wedding-title strong{font-size:clamp(24px,4vw,35px);font-weight:600;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
.camera-immersive .cam-wedding-title small{font-size:11px;font-weight:600;letter-spacing:3px;color:#e5d2b8}
.camera-immersive .cam-glass{border:1px solid #fffc;background:#171613a8;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:#fff;border-radius:35px;min-height:46px;display:inline-flex;justify-content:center;align-items:center;gap:8px;padding:10px 13px}
.camera-immersive .cam-glass.circle{width:48px;height:48px;border-radius:50%;padding:0}
.camera-immersive .cam-glass:hover{background:#332e29d9}
.camera-immersive .cam-film-stamp{position:absolute;left:24px;top:44%;font-size:12px;font-weight:700;letter-spacing:3px;color:#e98f65;z-index:9;writing-mode:vertical-rl;transform:none;text-transform:uppercase;text-shadow:0 2px 6px #0009;pointer-events:none}
.camera-immersive .camera-controls{position:absolute;left:0;right:0;bottom:0;z-index:9;padding:55px 26px 31px;background:linear-gradient(transparent,#00000094 24%,#0009);color:#fff}
.camera-immersive .camera-actions-row{display:grid;grid-template-columns:52px 1fr 52px;align-items:center;gap:18px;margin:0 auto 28px;max-width:550px}
.camera-immersive .camera-ratio{justify-self:center;display:flex;background:#211d1abf;padding:5px;border:1px solid #ffffff76;border-radius:32px;gap:3px;white-space:nowrap}
.camera-immersive .camera-ratio button{border:0;border-radius:25px;background:transparent;color:#eee2d5;letter-spacing:2px;font-size:11px;font-weight:700;padding:11px 20px}
.camera-immersive .camera-ratio button.selected{background:#f8f4eb;color:#332c26}
.camera-immersive .camera-snap-row{max-width:430px;display:grid;grid-template-columns:1fr 100px 1fr;align-items:center;justify-items:center;gap:16px;margin:0 auto 22px}
.camera-immersive .camera-shutter{border:5px solid #f4f1e9;box-shadow:inset 0 0 0 7px #403933,0 5px 20px #0009;background:#fffdf4;width:88px;height:88px;transition:transform .16s}
.camera-immersive .camera-shutter:active{transform:scale(.91)}
.camera-immersive .cam-remaining{width:70px;height:70px;background:#161612c9;border-radius:19px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px}
.camera-immersive .cam-remaining b{font-size:27px;line-height:1;font-weight:600}
.camera-immersive .cam-remaining span{font-size:9px;letter-spacing:2px;color:#ded0bd}
.camera-immersive .cam-remaining.side{background:#ffffff19}
.camera-immersive .cam-upload{display:flex;align-items:center;justify-content:center;gap:11px;border:1px solid #f7e9d89a;border-radius:38px;max-width:390px;margin:0 auto;padding:15px 18px;color:#f6ebdd;letter-spacing:2.3px;font-size:11px;cursor:pointer;background:#13110fb0;min-height:49px}
.camera-immersive .cam-upload:hover{background:#2c2923}
.camera-immersive .camera-review-actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}
.camera-immersive .cam-review-save{display:inline-flex;align-items:center;gap:9px;background:#f6f0e6;border:0;border-radius:34px;padding:13px 22px;color:#29221e;font-weight:700}
.camera-immersive .filter-studio{background:#f7f1e9;color:#2f2a24;padding:29px clamp(16px,4vw,38px) 50px;max-width:1000px;margin:auto;border-radius:0 0 22px 22px}
.camera-immersive .filter-studio-header{display:flex;align-items:center;justify-content:space-between;gap:13px;margin-bottom:22px}
.camera-immersive .filter-studio-header .micro{font-size:10px;color:#a3805c}
.camera-immersive .filter-studio-header h2{font-size:clamp(23px,4vw,30px);margin:7px 0;font-weight:500}
.camera-immersive .filter-studio-header p{margin:0;color:#837c72;line-height:1.6;font-size:12px;max-width:530px}
.camera-immersive .filter-category-row{display:flex;overflow-x:auto;gap:7px;padding:0 0 16px;scrollbar-width:none}
.camera-immersive .filter-category-row::-webkit-scrollbar{display:none}
.camera-immersive .filter-category{font-size:11px;font-weight:700;padding:9px 17px;border:1px solid #ddd4c8;border-radius:24px;color:#736c63;background:#fffcf7;white-space:nowrap}
.camera-immersive .filter-category.active{background:#28231f;color:#f9f3eb;border-color:#28231f}
.camera-immersive .filter-preview-grid{display:flex;overflow-x:auto;gap:12px;scrollbar-width:thin;padding:5px 1px 17px;scroll-snap-type:x proximity}
.camera-immersive .filter-preview-card{position:relative;flex:0 0 108px;scroll-snap-align:start;border:2px solid transparent;background:#fff;border-radius:13px;padding:6px;display:flex;flex-direction:column;align-items:center;gap:8px;transition:transform .2s,border .2s}
.camera-immersive .filter-preview-card.active{border-color:#957958;background:#f7eee3}
.camera-immersive .filter-preview-card:hover{transform:translateY(-3px)}
.camera-immersive .filter-thumbnail{width:100%;aspect-ratio:3/4;border-radius:7px;display:block;overflow:hidden;background:#d8c1a2}
.camera-immersive .filter-landscape{display:block;width:100%;height:100%;background:linear-gradient(175deg,#bbd1c4 0%,#dfe6cb 42%,#f6e4bb 72%,#c1a78e 100%);position:relative;overflow:hidden}
.camera-immersive .filter-sun{position:absolute;left:20%;top:21%;width:30px;height:30px;border-radius:50%;background:#f6dfb3;box-shadow:0 0 18px 6px #f8e5bf}
.camera-immersive .filter-hill{position:absolute;width:150%;height:50%;left:-12%;bottom:-20%;background:#567d6c;border-radius:60% 55% 0 0;transform:rotate(13deg)}
.camera-immersive .filter-hill.back{left:20%;bottom:-35%;background:#9a937a;transform:rotate(-17deg)}
.camera-immersive .filter-name{font-size:11px;font-weight:700;white-space:nowrap;color:#504c46}
.camera-immersive .filter-selected{position:absolute;top:11px;right:11px;background:#f8f3ea;color:#423529;border-radius:50%;width:22px;height:22px;display:grid;place-items:center}
.camera-immersive .effects-heading{display:flex;align-items:center;gap:13px;padding:25px 0 12px;border-top:1px solid #ded5c8}
.camera-immersive .effects-heading>.ico{color:#927960}
.camera-immersive .effects-heading strong{font-size:17px}
.camera-immersive .effects-heading p{font-size:12px;color:#8f8274;margin:4px 0}
.camera-immersive .effects-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;margin:10px 0 20px}
.camera-immersive .effect-card{background:white;border:1px solid #e3d9cc;border-radius:13px;padding:18px;min-width:0}
.camera-immersive .effect-card-row{display:flex;justify-content:space-between;align-items:center;gap:10px}
.camera-immersive .effect-label{font-weight:700;font-size:15px}
.camera-immersive .effect-status{font-size:9px;letter-spacing:1.2px;color:#a89e90;margin-left:4px}
.camera-immersive .effect-caption{font-size:11px;color:#8a8177;margin:6px 0 0;line-height:1.5}
.camera-immersive .effect-toggle{width:54px;height:31px;min-width:54px;border:0;background:#d9d1c6;border-radius:40px;padding:4px;display:flex;align-items:center;justify-content:flex-start;transition:background .2s}
.camera-immersive .effect-toggle span{background:#fff;border-radius:50%;width:23px;height:23px;box-shadow:0 1px 5px #0003;transition:transform .2s}
.camera-immersive .effect-toggle.active{background:#36564a}
.camera-immersive .effect-toggle.active span{transform:translateX(23px)}
.camera-immersive .effect-range{display:grid;grid-template-columns:65px 1fr 38px;align-items:center;gap:11px;margin-top:20px;font-size:11px;color:#6e6b63}
.camera-immersive .effect-range input{width:100%;accent-color:#3b5e4c;cursor:pointer}
.camera-immersive .effect-range.is-disabled{opacity:.4}
.camera-immersive .effect-range output{text-align:right;font-variant-numeric:tabular-nums}
.camera-immersive .cam-tip{display:flex;gap:9px;align-items:flex-start;background:#ebe4d9;border-radius:12px;padding:14px;color:#7f746a;line-height:1.6;font-size:11px;margin-bottom:17px}
.camera-immersive .cam-tip .ico{flex-shrink:0;margin-top:2px}
.camera-immersive .filter-studio>.btn{background:#28231f}
.camera-immersive .filter-studio>.btn:hover{background:#514338}
@media(max-width:720px){
 .camera-immersive .camera-frame,.camera-immersive .camera-frame.landscape{height:76dvh;min-height:530px;max-width:none}
 .camera-immersive .cam-overlay-header{padding:calc(17px + env(safe-area-inset-top,0px)) 19px 0;grid-template-columns:46px 1fr 46px;gap:4px}
 .camera-immersive .cam-glass.circle{width:43px;height:43px}
 .camera-immersive .cam-wedding-title strong{font-size:27px}
 .camera-immersive .cam-film-stamp{left:14px;font-size:10px;letter-spacing:2px}
 .camera-immersive .camera-controls{padding:45px 18px 23px}
 .camera-immersive .camera-actions-row{gap:7px;margin-bottom:19px}
 .camera-immersive .camera-ratio button{padding:9px 16px;font-size:10px}
 .camera-immersive .camera-snap-row{grid-template-columns:1fr 80px 1fr;gap:8px;margin-bottom:19px}
 .camera-immersive .camera-shutter{width:78px;height:78px}
 .camera-immersive .cam-remaining{width:62px;height:64px}
 .camera-immersive .cam-upload{padding:12px 12px;font-size:10px;letter-spacing:1.8px;min-height:42px;max-width:330px}
 .camera-immersive .filter-studio{border-radius:0;padding:27px 16px 30px}
 .camera-immersive .effects-grid{grid-template-columns:1fr}
 .camera-immersive .filter-studio-header .pill{display:none}
}
@media(max-width:350px){.camera-immersive .cam-wedding-title strong{font-size:22px}.camera-immersive .camera-ratio button{padding:8px 11px}.camera-immersive .cam-film-stamp{left:8px}.camera-immersive .camera-controls{padding-left:10px;padding-right:10px}}
@media(prefers-reduced-motion:reduce){.camera-immersive .filter-preview-card,.camera-immersive .effect-toggle,.camera-immersive .effect-toggle span{transition:none}}

.camera-immersive.is-review .filter-studio{display:none}

/* Sekeping V3 • complete guest journey inspired by the supplied reference screenshots */
.wedding-landing{background:#181412;color:#f6f1e9;max-width:740px;margin:0 auto;min-height:100dvh;overflow:hidden;box-shadow:0 20px 65px #1d18121a}
.guest-photo-hero{height:clamp(290px,48vw,480px);min-height:290px;background:radial-gradient(ellipse at 56% 18%,#a2917a 0,#746e60 30%,transparent 55%),linear-gradient(145deg,#817462 0%,#404839 55%,#171411 100%);position:relative;overflow:hidden}
.guest-photo-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#181412 0%,transparent 66%);pointer-events:none}
.guest-photo-hero.has-cover .hero-ornament{display:none}
.hero-ornament{position:absolute;pointer-events:none;width:260px;height:420px;border:2px solid #d2c4a143;border-radius:50% 55% 45% 48%;transform:rotate(-30deg);filter:blur(1px)}.ornament-a{top:-100px;left:-130px;box-shadow:18px 12px 0 #9fa48a2b,35px 40px 0 #d7bca41a,60px 55px 0 #7a9e7924}.ornament-b{top:-60px;right:-140px;transform:rotate(38deg);box-shadow:-25px 25px 0 #dfcdad21,-55px 65px 0 #a3b99d2b}
.guest-hero-chip{position:absolute;top:24px;left:50%;transform:translateX(-50%);z-index:1;border:1px solid #ffffff65;background:#1814125e;backdrop-filter:blur(10px);border-radius:30px;padding:9px 15px;font-size:9px;letter-spacing:2px;white-space:nowrap;color:#eee4d3}
.wedding-intro{margin-top:-75px;position:relative;z-index:2;background:linear-gradient(180deg,transparent,#181412 60px);text-align:center;padding:0 clamp(20px,6vw,44px) 60px}
.wedding-overline{letter-spacing:6px;font-size:11px;color:#d3c4ab;font-weight:700;margin:26px 0 13px}.wedding-intro h1{font-weight:500;font-size:clamp(40px,8.2vw,63px);letter-spacing:-1px;line-height:1.2;margin:0 0 16px}.wedding-date{font-size:12px;font-family:monospace;letter-spacing:4px;color:#b6a99b}
.wedding-message{font-size:15px;color:#dbd3c9;line-height:1.7;margin:23px auto 14px;max-width:510px}.wedding-remaining{font-family:monospace;color:#d68d61;font-size:12px;letter-spacing:3px;margin:15px auto 23px}
.wedding-name{display:block;width:100%;background:#0e0e0d;color:#f8f4eb;border:1px solid #5f5551;padding:19px 22px;border-radius:40px;font-size:21px;text-align:center;min-height:62px;outline:none}.wedding-name::placeholder{color:#a8a3a0}.wedding-name:focus{border-color:#e6d0ad}
.wedding-main-button{width:100%;display:flex;align-items:center;justify-content:center;gap:12px;min-height:68px;margin:12px auto;border:0;border-radius:40px;background:#faf4e9;color:#1e1a17;font-size:17px;font-weight:600;transition:transform .18s}.wedding-main-button:hover{transform:translateY(-2px)}.wedding-main-button .ico{width:20px;height:20px}
.wedding-buttons{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:12px 0}.wedding-buttons>button{min-width:0;min-height:88px;background:#100f0e;border:1px solid #514743;color:#e9dccb;border-radius:24px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:13px;transition:border-color .2s}.wedding-buttons>button:hover,.wedding-wide-button:hover{border-color:#ddbea0}.wedding-buttons span{letter-spacing:1.4px;font-size:10px}.wedding-buttons .ico{color:#d6c4a5}
.wedding-wide-button{width:100%;min-height:54px;display:flex;align-items:center;justify-content:center;gap:12px;margin:10px 0;border:1px solid #645b56;border-radius:30px;background:#100f0e;color:#f1e7db;letter-spacing:2.4px;font-size:11px}.wedding-wide-button.accented{border-color:#baa68a}.wedding-wide-button .ico{width:16px;height:16px;color:#d8be97}
.landing-tip{color:#87817c;font-size:12px;line-height:1.5;max-width:310px;margin:24px auto 13px}.language-switch{background:transparent;color:#bfb1a1;border:1px solid #564c46;padding:9px 20px;border-radius:30px;letter-spacing:2px;font-size:11px}.landing-disclaimer{color:#8d8178;font-size:11px;line-height:1.6;margin:23px auto 16px;max-width:390px}.wedding-dashboard-link{display:inline-block;color:#e0c7a4;font-size:12px;letter-spacing:2px;text-decoration:none;border-bottom:1px solid #d9bb96;padding-bottom:6px;margin-top:16px}
.guest-subpage{min-height:100dvh;background:#f9f5ee;color:#2f2822}.guest-sub-header{height:70px;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(17px,4vw,45px);gap:12px;max-width:1120px;margin:auto}.guest-sub-header .guest-back{border:0;background:transparent;color:#80786f;display:flex;align-items:center;gap:9px;font-size:11px;letter-spacing:2px;padding:10px 3px}.guest-sub-header .guest-back .ico{width:19px;height:19px}.guest-mini-brand{font:500 21px Georgia,serif;color:#39302a}.guest-subcontent{max-width:1120px;margin:auto;padding:0 clamp(16px,3.7vw,38px) 50px}.guest-subcontent .section-title{color:#2e2620}
.album-cover{background:radial-gradient(ellipse at 30% 22%,#877e6e 0,#615e56 32%,transparent 70%),linear-gradient(140deg,#5a5a50,#14120f);color:white;min-height:310px;padding:35px 20px 30px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;position:relative;overflow:hidden}.album-cover:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#1914128a,transparent 70%);pointer-events:none}.album-cover>*{position:relative;z-index:1}.album-cover .micro{color:#d9c5ab;letter-spacing:4px}.album-cover h1{font-weight:500;font-size:clamp(36px,7vw,57px);margin:12px 0 9px}.album-cover p{color:#e1b48c;font:600 12px monospace;letter-spacing:3px;margin:0 0 18px}.album-stats{display:grid;grid-template-columns:repeat(3,1fr);width:100%;max-width:490px;gap:20px;margin-top:14px}.album-stats div{display:flex;flex-direction:column;gap:5px}.album-stats strong{font:normal 36px Georgia,serif}.album-stats span{letter-spacing:2px;color:#ddd3c7;font-size:10px}
.album-main{background:#faf6f0;padding:22px 0 35px}.album-primary{display:flex;align-items:center;gap:11px;margin-bottom:22px}.album-home-button{border:1px solid #d8d0c5;background:transparent;color:#665e53;border-radius:50%;width:47px;height:47px;min-width:47px;display:grid;place-items:center}.album-primary .album-home-button:last-child{background:#2e2721;color:white;border-color:#2e2721}.album-tabs{background:#efe8dd;padding:5px;display:flex;gap:3px;flex:1;min-width:0;border-radius:30px}.album-tabs button{flex:1;border:none;background:transparent;padding:13px 4px;font-size:12px;color:#8d8379;border-radius:28px;min-width:0}.album-tabs button.active{background:#fffaf4;color:#362d25;box-shadow:0 1px 6px #392b1719}.album-filters{display:flex;gap:9px;overflow:auto;padding:4px 0 18px;scrollbar-width:none}.album-filters button{border:1px solid #ddcbb1;background:transparent;color:#7d6c5c;padding:12px 18px;border-radius:28px;letter-spacing:1.3px;font-size:11px;white-space:nowrap;display:flex;align-items:center;gap:5px}.album-filters button.active{background:#2a241e;color:#fff;border-color:#2a241e}.guest-person-row{display:flex;gap:8px;overflow:auto;margin-bottom:18px}.guest-person-row button{border:1px solid #e5d7c5;background:white;border-radius:24px;padding:9px 13px;font-size:11px;color:#685a4c;white-space:nowrap}.guest-person-row button.active{background:#dbcbb8;border-color:#dbcbb8}
.album-photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.album-photo{position:relative;aspect-ratio:3/4;background:#d2c6b8;border-radius:8px;overflow:hidden}.album-photo>img{width:100%;height:100%;object-fit:cover;display:block}.photo-favourite{position:absolute;top:9px;right:9px;border:1px solid #fff7;background:#292723aa;color:#fff;border-radius:50%;width:36px;height:36px;display:grid;place-items:center;backdrop-filter:blur(7px);z-index:2}.photo-favourite.is-fav{background:#ae765d}.photo-favourite.is-fav .ico{fill:#f7e1d0}.album-photo-name{position:absolute;bottom:0;left:0;right:0;padding:28px 12px 12px;color:white;background:linear-gradient(transparent,#15100dba);font:italic 18px Georgia,serif;text-shadow:0 2px 4px #0009}.album-film-mark{position:absolute;left:7px;top:55px;writing-mode:vertical-rl;color:#de915b;font-size:8px;font-family:monospace;letter-spacing:1px;text-shadow:0 1px 3px black;pointer-events:none}.album-wishes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.album-bottom-actions{display:flex;justify-content:center;gap:12px;margin-top:24px;flex-wrap:wrap}
.gift-page{max-width:780px;margin:0 auto;padding:28px 0 40px}.gift-page h1{font-size:clamp(37px,6vw,56px);font-weight:500;margin:14px 0}.gift-lead{font-size:16px;color:#81786f;line-height:1.8;margin-bottom:27px}.gift-card{background:#f1e8da;border:1px solid #e5d1b5;border-radius:9px;padding:35px 30px;text-align:center;margin:27px 0}.gift-qr{width:min(360px,100%);aspect-ratio:1;object-fit:contain;display:block;background:white;border-radius:9px;padding:18px;margin:0 auto 19px}.gift-save-qr{display:block;width:100%;background:#2d261f;color:#f9f2e7;border:0;border-radius:40px;min-height:54px;font-size:14px;max-width:490px;margin:0 auto 30px;display:flex;align-items:center;justify-content:center;gap:12px}.gift-card h2{font-size:clamp(27px,5vw,38px);margin:22px 0 10px;font-weight:500}.gift-divider{font:normal 11px monospace;letter-spacing:3px;color:#a49b90;margin:32px 0 15px}.gift-account{background:#fffaf2;border:1px solid #dec8a7;border-radius:10px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 12px 9px 19px}.gift-account span{font:normal clamp(16px,3vw,27px) monospace;letter-spacing:2px;overflow-wrap:anywhere;text-align:left}.gift-account button{border:1px solid #cfc2b1;border-radius:27px;background:#fffaf5;padding:10px 15px;display:flex;align-items:center;gap:7px;color:#332b25}.gift-qr-missing{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:13px;min-height:220px;background:#fffdf8;border:1px dashed #ccbca5;border-radius:12px;color:#8f7c69;margin-bottom:24px;padding:26px}.gift-qr-missing .ico{height:60px;width:60px}.gift-qr-missing small{line-height:1.5;max-width:320px}.gift-not-configured{color:#8b8175;line-height:1.7}.gift-disclaimer{color:#847b73;font-size:12px;line-height:1.8;margin:18px auto 24px}.gift-dashboard-image{display:block;width:min(280px,100%);max-height:330px;object-fit:contain;padding:15px;border:1px solid #e8decf;background:white;margin:12px 0 22px}
.guest-subpage .voice-panel .card,.guest-subpage #wishForm,.guest-subpage .wish-card{box-shadow:none}
@media(max-width:640px){.wedding-landing{width:100%}.guest-photo-hero{height:340px}.wedding-intro{margin-top:-95px}.wedding-overline{letter-spacing:5px}.wedding-message{font-size:14px}.wedding-buttons{gap:8px}.wedding-buttons>button{min-height:83px;border-radius:22px}.wedding-buttons span{font-size:9px;letter-spacing:1px}.guest-sub-header{height:65px}.album-cover{min-height:280px;margin-left:-16px;margin-right:-16px}.album-cover .micro{font-size:9px}.album-stats strong{font-size:31px}.album-primary{gap:6px}.album-tabs button{font-size:11px}.album-home-button{width:41px;height:41px;min-width:41px}.album-photo-grid{gap:8px}.album-photo-name{font-size:15px;padding:25px 6px 9px}.photo-favourite{width:32px;height:32px;top:6px;right:6px}.photo-favourite .ico{width:17px;height:17px}.album-film-mark{left:5px;top:44px;font-size:7px}.album-wishes{grid-template-columns:1fr}.gift-card{padding:26px 18px}.gift-page{padding-top:22px}.gift-account{padding:10px}.gift-account button{padding:8px 11px}.gift-account span{letter-spacing:1px}}
@media(max-width:350px){.wedding-intro{padding-left:15px;padding-right:15px}.wedding-intro h1{font-size:37px}.wedding-main-button{font-size:15px}.guest-photo-hero{height:300px}.album-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Owner-only export panel */
.archive-head{display:flex;gap:15px;align-items:flex-start;margin-bottom:20px}.archive-head>.ico{color:#365f4d;border:1px solid #dce8da;border-radius:10px;background:#edf3eb;padding:9px;width:49px;height:49px}.archive-head h3{margin:3px 0 8px}.archive-head p{margin:0;line-height:1.7}.archive-stat{margin:18px 0}.archive-contents{border:1px solid #e4e8de;border-radius:12px;background:#fafbf6;padding:18px;margin:0 0 23px;color:#375748}.archive-contents p{font-size:12px;color:#78897d;line-height:1.8;margin:8px 0 0}.archive-contents b{font-weight:700;color:#3e6853}

/* Sekeping V7: prevent native Safari date/time fields from colliding at iPad widths. */
.dash-card form .two-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:22px;row-gap:8px;min-width:0}
.dash-card form .two-fields>.field{min-width:0;width:100%;max-width:100%;overflow:visible}
.dash-card form .two-fields>.field>.input{width:100%;min-width:0;max-width:100%;box-sizing:border-box;display:block}
.dash-card form .two-fields input[type="date"],.dash-card form .two-fields input[type="time"]{min-width:0;max-width:100%;appearance:none;-webkit-appearance:none;min-height:47px;padding:12px 10px}
.dash-card form .two-fields input[type="date"]::-webkit-date-and-time-value,.dash-card form .two-fields input[type="time"]::-webkit-date-and-time-value{text-align:left;min-width:0}
.dashboard-active-strip{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:13px 18px;margin-bottom:22px;border:1px solid #dfe8dd;background:#f0f4ed;border-radius:12px}
.dashboard-active-info{display:flex;flex-wrap:wrap;align-items:center;gap:10px;color:#315749;font-size:12px;min-width:0}
.dashboard-active-info>span:not(.pill){font-size:10px;letter-spacing:1.2px;color:#829387;font-weight:700}
.dashboard-active-info>b{font-weight:700;overflow-wrap:anywhere}.dashboard-active-strip>.btn{flex-shrink:0}
.active-event-pill{background:#e1efe3!important;color:#316447!important}
.event-delete-btn{margin-left:auto}.detail-form-actions{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-top:8px}
.delete-modal-icon{width:53px;height:53px;border-radius:16px;background:#fff0ec;color:#b15e50;display:grid;place-items:center;margin-bottom:15px}
.delete-modal p{line-height:1.75;color:#6f7770}.delete-modal .banner{margin:17px 0}.delete-modal .field{margin-bottom:22px}
.photo-owner-save{position:absolute;top:10px;left:10px;width:35px;height:35px;z-index:3;background:#f5f8f1f0;color:#294e3c;border:1px solid #fff;border-radius:50%;display:grid;place-items:center;box-shadow:0 3px 10px #122c243b}
.photo-owner-save:hover{background:#fff}
@media(max-width:1140px){.dash-card form .two-fields{grid-template-columns:minmax(0,1fr);gap:0}}
@media(max-width:720px){.dashboard-active-strip{margin-bottom:16px;padding:12px;align-items:start}.dashboard-active-info{gap:5px 10px}.dashboard-active-strip>.btn{padding:8px 10px;font-size:11px}.dash-card form .two-fields{grid-template-columns:1fr}}
/* Audio player for organisers: contained cards rather than oversized native media UI. */
.dash-main .sek-voice-player{max-width:100%;min-width:210px}
.dash-main .simple-table td .sek-voice-player{width:min(350px,100%)}
.dash-main .simple-table td audio{display:none!important}
.dash-main .archive-contents{display:none}
.dash-voice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}
.dash-voice-card{border:1px solid #e4ebe0;background:#fff;border-radius:13px;padding:16px;min-width:0}
.dash-voice-header{display:flex;align-items:center;gap:11px;margin-bottom:15px;min-width:0}
.dash-voice-avatar{width:36px;height:36px;min-width:36px;display:grid;place-items:center;border-radius:11px;background:#ecf3eb;color:#406751}
.dash-voice-header>div{min-width:0;flex:1;display:flex;flex-direction:column;gap:3px}
.dash-voice-header b{color:#294d3b;font-size:12px;overflow-wrap:anywhere}
.dash-voice-header small{color:#8a978d;font-size:10px}
@media(max-width:1050px){.dash-voice-grid{grid-template-columns:1fr}}
/* V9: two true photo previews in organiser design settings */
.cover-preview-pair{display:grid;grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr);gap:13px;align-items:start}
.cover-preview-unit{min-width:0;display:flex;flex-direction:column;gap:8px;color:#60776a;font-size:11px;font-weight:700}
.cover-frame-preview{position:relative;isolation:isolate;overflow:hidden;border-radius:12px;background:#4b6c5b;border:1px solid #dbe7d9}
.cover-frame-preview.portrait{aspect-ratio:4/5}
.cover-frame-preview.wide{aspect-ratio:16/9}
.cover-frame-preview .cover-blurred-backdrop{z-index:-2}
.cover-frame-preview .cover-foreground{z-index:-1}
.cover-fit-picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:20px}
.cover-fit-picker label{display:flex;flex-direction:column;gap:7px;padding:14px 12px;border:1px solid #dde7de;border-radius:12px;background:#fafcf8;color:#284d3b;font-size:12px;cursor:pointer}
.cover-fit-picker input{accent-color:#315b47;width:19px;height:19px}
.cover-fit-picker small{color:#71887b;font-size:10px;line-height:1.5}
@media(max-width:800px){.cover-preview-pair{grid-template-columns:1fr 1fr}.cover-fit-picker{grid-template-columns:1fr 1fr}}
@media(max-width:380px){.cover-fit-picker{grid-template-columns:1fr}}
.dash-voice-header .voice-replace-label{font-size:10px;padding:8px 10px;white-space:nowrap;margin-left:auto}
@media(max-width:720px){.dash-voice-header{flex-wrap:wrap}.dash-voice-header .voice-replace-label{margin-left:0}}

/* ==== guest-v4.css ==== */
/* Sekeping Guest Experience V4 — the same cream/sage/forest identity as the organiser dashboard.
   Guest-only selectors; dashboard styling intentionally remains untouched. */
:root { --sek-canvas:#f8f7f3; --sek-paper:#fffdfa; --sek-forest:#254b42; --sek-line:#e6e5db; --sek-sage:#e9f0e8; --sek-brass:#c2a583; }
.wedding-landing,.guest-subpage{max-width:none;min-height:100dvh;background:var(--sek-canvas);color:var(--sek-forest);box-shadow:none;overflow:hidden}
.wedding-landing .sek-guest-top{max-width:1200px;margin:auto;display:flex;align-items:center;justify-content:space-between;padding:21px clamp(20px,4vw,48px) 18px;gap:12px}
.sek-guest-top .brand{font-size:25px}.sek-guest-top-right{display:flex;align-items:center;gap:9px}
.sek-language{border:1px solid #dedfd5;background:#fffefc;color:#48685b;border-radius:999px;padding:9px 13px;font-size:11px;font-weight:700;letter-spacing:1px}
.sek-event-pill{display:inline-flex;align-items:center;gap:8px;border:1px solid #dfe6dc;border-radius:30px;background:#edf2eb;color:#547466;padding:9px 13px;font-size:10px;font-weight:700;letter-spacing:.8px;white-space:nowrap}
.sek-guest-layout{max-width:1200px;padding:10px clamp(20px,4vw,48px) 28px;margin:auto;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(25px,5vw,66px);align-items:center}
.sek-guest-portrait{min-height:565px;aspect-ratio:4/5;border-radius:22px;position:relative;overflow:hidden;background:linear-gradient(155deg,#b1c0ac 0%,#e8e4d6 48%,#c2b3a4 100%);box-shadow:0 14px 39px #2949381a}
.sek-guest-portrait.has-cover{background-repeat:no-repeat;background-color:#b9c6b7}
.sek-guest-portrait::after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#132f27b0 0%,transparent 36%,transparent 70%,#223b2a10);pointer-events:none}
.sek-art-line{position:absolute;top:9%;right:9%;width:70%;height:85%;border-radius:48% 48% 0 0;border:1px solid #fffae6a8;box-shadow:0 0 0 20px #fffbf92c,0 0 0 40px #fffbf91d}
.sek-art-line::after{content:'';position:absolute;left:-20%;bottom:5%;height:48%;width:72%;border-radius:100% 2% 100% 3%;background:#66877392;transform:rotate(-34deg);filter:blur(2px)}
.sek-guest-portrait.has-cover .sek-art-line{display:none}
.sek-portrait-caption{position:absolute;left:26px;right:26px;bottom:26px;z-index:2;display:flex;justify-content:space-between;align-items:end;color:white;gap:12px}
.sek-portrait-caption b{font-family:'Playfair Display',Georgia,serif;font-size:24px;font-weight:500;line-height:1.2}.sek-portrait-caption small{display:block;margin-top:8px;letter-spacing:2px;font-size:9px;text-transform:uppercase;color:#e8dfce}
.sek-photo-seal{width:58px;height:58px;display:grid;place-items:center;border:1px solid #fffd;border-radius:50%;flex-shrink:0;font-family:Georgia,serif;font-size:25px}
.sek-hero-content{padding:16px 0}.sek-eyebrow{font-size:10px;letter-spacing:3px;font-weight:700;color:#a58a68;text-transform:uppercase;display:flex;align-items:center;gap:10px}.sek-eyebrow::before{content:'';width:26px;height:1px;background:#bda78d}
.sek-hero-content h1{font:500 clamp(47px,5.2vw,74px)/1.12 'Playfair Display',Georgia,serif;letter-spacing:-2.6px;color:#284d41;margin:19px 0}
.sek-hero-content h1 em{font-style:italic;color:#8ca393;font-weight:400}.sek-hero-date{font-size:12px;letter-spacing:1.9px;font-weight:700;color:#718276;display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.sek-welcome{max-width:490px;color:#718177;font-size:14px;line-height:1.9;margin:20px 0 26px}.sek-guest-form{padding:20px;border:1px solid #e3e7de;border-radius:15px;background:#fffdf8;box-shadow:0 8px 27px #263c2e08}
.sek-guest-form-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.sek-guest-form-top h2{font:500 21px Georgia,serif;margin:0}.sek-quota{border-radius:25px;padding:7px 10px;background:#eef4e9;color:#426d55;font-size:11px;font-weight:700;white-space:nowrap}
.sek-guest-form label{display:block;text-transform:uppercase;letter-spacing:1.4px;color:#839287;font-size:10px;font-weight:700;margin:0 0 8px}.sek-guest-form .wedding-name{width:100%;min-height:51px;border:1px solid #d8e0d4;background:#fff;color:#2b4d3e;text-align:left;border-radius:9px;padding:12px 14px;font-size:15px}.sek-guest-form .wedding-name::placeholder{color:#adb9ad}.sek-guest-form .wedding-name:focus{border-color:#6b947b;outline:3px solid #d5e5d43d}
.sek-guest-form .wedding-main-button{min-height:51px;border-radius:9px;font-size:14px;margin:12px 0 8px;background:var(--sek-forest);color:#fff;justify-content:center}.sek-guest-form .wedding-main-button:hover{background:#3d6655}.sek-form-tip{font-size:11px;color:#929c90;line-height:1.5;margin:8px 0 0;display:flex;align-items:center;gap:7px}
.sek-explore{max-width:1200px;margin:0 auto;padding:25px clamp(20px,4vw,48px) 55px}.sek-section-head{display:flex;align-items:end;justify-content:space-between;gap:14px;margin:0 0 18px}.sek-section-head h2{font:500 31px Georgia,serif;letter-spacing:-.5px;margin:7px 0 0}.sek-section-head p{margin:0;color:#8b9589;font-size:12px}
.sek-action-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.sek-action{border:1px solid #e5e8de;background:#fffefb;border-radius:15px;padding:22px 19px;display:flex;align-items:center;gap:14px;text-align:left;min-height:116px;transition:box-shadow .2s,transform .2s,border-color .2s;color:#355649}.sek-action:hover{transform:translateY(-3px);box-shadow:0 10px 25px #2f473211;border-color:#bbd1c2}.sek-action-icon{width:45px;height:45px;min-width:45px;border-radius:13px;display:grid;place-items:center;background:#edf3ed;color:#3e6752}.sek-action-icon .ico{width:21px;height:21px}.sek-action-text{display:flex;flex-direction:column;gap:6px;min-width:0;flex:1}.sek-action-text b{font-size:13px;font-weight:700}.sek-action-text small{font-size:11px;line-height:1.5;color:#879488}.sek-action-arrow{color:#a5b6a7;align-self:flex-end}.sek-action-arrow .ico{width:16px;height:16px}
.sek-footer{border-top:1px solid #e3e8df;margin:auto;max-width:1110px;padding:24px 18px 40px;display:flex;align-items:center;justify-content:space-between;gap:15px;color:#859388;font-size:11px}.sek-footer>a{color:#527365;text-decoration:none}.sek-demo-note{font-size:11px;color:#a38b68;line-height:1.7}.sek-lite-link{color:#668575;background:none;border:0;font-size:11px;cursor:pointer}
/* Guest inner pages share the organiser's stationery look */
.guest-subpage{background:#f8f7f3}.guest-sub-header{max-width:1150px;height:78px;border-bottom:1px solid #e8e8df;padding:0 26px}.guest-sub-header .guest-mini-brand{font-family:'Playfair Display',Georgia,serif;color:#254b42;font-size:24px}.guest-sub-header .guest-back{color:#608172;font-weight:700;letter-spacing:1px}.guest-subcontent{padding:28px clamp(18px,4vw,36px) 75px}.guest-subpage .section-eyebrow{color:#a58c6f}.guest-subpage .section-title{color:#284d41}
.guest-subpage .album-cover{min-height:245px;border-radius:17px;margin:0 0 18px;background:linear-gradient(135deg,#476e5e,#a6b6a1)!important;color:white;box-shadow:none}.guest-subpage .album-cover h1{font-size:clamp(31px,4vw,48px);margin:12px 0}.guest-subpage .album-cover .micro{color:#e0eeda}.guest-subpage .album-cover p{color:#f1e8d2}.guest-subpage .album-stats{margin-top:6px}.guest-subpage .album-main{background:transparent;padding:0}.guest-subpage .album-tabs{background:#e8eee4}.guest-subpage .album-tabs button.active{background:#fff;color:#284b3b}.guest-subpage .album-home-button:last-child{background:#284f41;border-color:#284f41}.guest-subpage .album-filters button.active{background:#284f41;border-color:#284f41}.guest-subpage .album-photo{border-radius:12px}.guest-subpage .album-wishes .wish-card{border-radius:12px}
.guest-subpage .gift-card{background:#f1f3ea;border-color:#dde5d9;border-radius:18px}.guest-subpage .gift-page h1{color:#284f41}.guest-subpage .gift-save-qr{background:#254b42}.guest-subpage .gift-account{border-color:#d9e5d7}.guest-subpage .gift-qr-missing{border-color:#b5cbb6;color:#64806b}.guest-subpage .gift-qr{border:1px solid #e4eade}.guest-subpage .gift-disclaimer{color:#83938a}
/* Camera is intentionally dark to keep a legible viewfinder, while sharing Sekeping's sage controls */
.camera-immersive{background:#f8f7f3}.camera-immersive .camera-frame{background:#263b32}.camera-immersive .cam-glass{background:#163d33bd}.camera-immersive .camera-ratio{background:#213b32c8}.camera-immersive .camera-ratio button.selected{background:#f3f7f1;color:#24483a}.camera-immersive .cam-film-stamp{color:#e9c69d}.camera-immersive .camera-remaining{background:#193d32c9}.camera-immersive .filter-studio{background:#fafaf6;color:#2c4c3d;border:1px solid #e7e9df;border-top:0}.camera-immersive .filter-studio-header .micro{color:#9b876f}.camera-immersive .filter-category.active{background:#254b42;border-color:#254b42}.camera-immersive .filter-preview-card.active{border-color:#769d82;background:#edf3ec}.camera-immersive .filter-studio>.btn{background:#254b42}.camera-immersive .effect-toggle.active{background:#254b42}.camera-immersive .effect-card{border-color:#e1e8dd}
/* A5 preview: fixed fit within the printable sheet; aligned with exported PDF composition */
.qr-layout{grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr);gap:24px}.qr-poster{width:100%;max-width:390px;aspect-ratio:148/210;padding:clamp(17px,2vw,25px);display:flex;flex-direction:column;align-items:center;justify-content:space-between;gap:6px;box-sizing:border-box;overflow:hidden;border-radius:1px;background:#f8f7ef;box-shadow:0 12px 35px #263e3414;border:1px solid #d9d8c8}.qr-poster::before,.qr-poster::after{pointer-events:none;opacity:.55}.qr-poster>.qr-head,.qr-poster>.qr-bottom{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;flex-shrink:0;width:100%;min-width:0}.qr-poster .qr-brand{font:500 clamp(17px,2vw,22px) Georgia,serif;color:#254b42;margin:2px 0 9px}.qr-poster .sub{letter-spacing:1.4px;font-size:clamp(8px,.82vw,10px);color:#847f70;text-transform:uppercase}.qr-poster h2{font:500 clamp(18px,2.1vw,26px)/1.15 Georgia,serif;margin:9px 0 6px;color:#254b42;overflow-wrap:anywhere;max-width:100%}.qr-poster .qr-date{color:#827f70;font-size:clamp(9px,.95vw,11px);margin:2px 0 0}.qr-poster .qr-scan{width:min(68%,232px);aspect-ratio:1;max-height:47%;border:7px solid #fff;background:#fff;position:relative;z-index:1;display:flex;align-items:center;justify-content:center;flex:0 1 auto;min-height:0}.qr-poster .qr-scan canvas{display:block;width:100%;height:auto;aspect-ratio:1;margin:0;padding:0;background:white}.qr-poster .qr-prompt{color:#2a5142;font-weight:700;font-size:clamp(9px,1vw,12px);line-height:1.3;letter-spacing:1px;margin:6px 0 3px}.qr-poster .qr-help{color:#708274;font-size:clamp(9px,.94vw,11px);margin:2px 0;line-height:1.4}.qr-poster .qr-venue{font-size:clamp(9px,.9vw,11px);color:#738174;line-height:1.3;overflow-wrap:anywhere;max-width:96%;margin-top:6px}.qr-poster .qr-footer{margin-top:6px;font:italic 11px Georgia,serif;color:#b39979;max-width:95%;line-height:1.2}
@media(max-width:850px){.sek-guest-layout{gap:26px}.sek-guest-portrait{min-height:450px}.sek-hero-content h1{font-size:48px}.sek-action-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.qr-layout{grid-template-columns:1fr}.qr-poster{max-width:355px}}
@media(max-width:620px){.wedding-landing .sek-guest-top{padding:15px 18px}.sek-guest-top .brand{font-size:23px}.sek-event-pill{font-size:9px;padding:7px 10px}.sek-guest-layout{grid-template-columns:1fr;padding:0 16px 20px;gap:0}.sek-guest-portrait{min-height:0;aspect-ratio:1.28;border-radius:17px 17px 9px 9px}.sek-portrait-caption{bottom:17px;left:20px;right:20px}.sek-portrait-caption b{font-size:20px}.sek-photo-seal{width:48px;height:48px;font-size:21px}.sek-hero-content{padding:28px 3px 0}.sek-hero-content h1{font-size:clamp(43px,11vw,59px);margin:15px 0;letter-spacing:-1.8px}.sek-welcome{margin:13px 0 19px;font-size:13px}.sek-guest-form{padding:17px}.sek-explore{padding:20px 16px 35px}.sek-section-head h2{font-size:27px}.sek-section-head p{max-width:145px;text-align:right;line-height:1.5}.sek-action-grid{gap:10px}.sek-action{padding:17px 12px;min-height:126px;flex-direction:column;align-items:flex-start;gap:9px}.sek-action-icon{height:40px;width:40px;min-width:40px}.sek-action-arrow{position:absolute;right:14px;top:17px}.sek-action{position:relative}.sek-action-text b{font-size:12px}.sek-action-text small{font-size:10px}.sek-footer{margin:0 16px;padding:22px 3px 34px}.guest-sub-header{height:67px;padding:0 16px}.guest-subcontent{padding:16px 16px 55px}.guest-subpage .album-cover{min-height:250px;margin:0 -16px 18px;border-radius:0}.guest-subpage .album-cover h1{font-size:34px}.qr-poster{max-width:355px}.qr-poster h2{font-size:24px}.qr-poster .qr-scan{max-height:44%}}
@media(max-width:355px){.sek-event-pill{font-size:8px;letter-spacing:0}.sek-guest-top .brand{font-size:21px}.sek-action-grid{gap:8px}.sek-hero-content h1{font-size:41px}}
/* Sekeping V8: one cohesive gallery. Show the organiser-selected wedding photo on top. */
.guest-subpage .album-cover{background:#45695b!important;isolation:isolate;overflow:hidden;position:relative;min-height:290px}
.guest-subpage .album-cover.has-wedding-photo{background:#263d34!important}
.album-cover-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;z-index:-2;transform-origin:center;filter:saturate(.92)}
.guest-subpage .album-cover::before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(12,33,26,.35),rgba(14,32,26,.66));pointer-events:none}
.guest-subpage .album-cover::after{display:none}
.guest-subpage .album-cover-details{z-index:2;position:relative;width:100%;display:flex;flex-direction:column;align-items:center;gap:2px}
.guest-subpage .album-cover-details h1{color:#fff;text-shadow:0 2px 10px #14312383;font-size:clamp(30px,4.2vw,46px)}
.guest-subpage .album-stats{grid-template-columns:repeat(4,minmax(0,1fr));max-width:650px;gap:10px}
.guest-subpage .album-stats strong{font-size:clamp(25px,4vw,35px)}
.guest-subpage .album-stats span{font-size:9px;letter-spacing:1.1px;color:#eef5ed}
.guest-subpage .album-primary{gap:9px}
.guest-subpage .album-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:3px;min-width:0}
.guest-subpage .album-tabs button{font-size:clamp(10px,1.5vw,13px);padding:13px 5px;white-space:nowrap}
.gallery-section-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:9px 0 20px;flex-wrap:wrap}
.gallery-section-heading h2{font-size:clamp(22px,4vw,30px);color:#294b3c;margin:0 0 6px}
.gallery-section-heading p{color:#829084;font-size:12px;margin:0;line-height:1.6}
.gallery-count{border-radius:50px;background:#e9f1e7;color:#426d52;font-size:11px;font-weight:700;padding:9px 12px}
.gallery-voice-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}
.gallery-voice-card{display:flex;gap:13px;align-items:flex-start;padding:18px;border:1px solid #e5e9df;background:white;border-radius:13px;min-width:0}
.gallery-voice-avatar{width:40px;height:40px;min-width:40px;border-radius:13px;background:#edf3e9;color:#446a50;display:grid;place-items:center}
.gallery-voice-body{flex:1;min-width:0}
.gallery-voice-by{display:flex;align-items:baseline;justify-content:space-between;gap:8px;flex-wrap:wrap;font-size:12px;margin:0 0 9px}
.gallery-voice-by strong{color:#355a47}
.gallery-voice-by small{color:#9ca59d;font-size:10px}
.sek-voice-player{width:100%;max-width:100%;display:flex;align-items:center;gap:11px;border:1px solid #e1e9dd;background:#f8faf5;border-radius:12px;padding:10px 12px;min-width:0;box-sizing:border-box;color:#294d3d}
.sek-voice-player.compact{padding:8px 9px;gap:9px}
.sek-voice-play{border:0;border-radius:50%;background:#2a5240;color:white;width:40px;height:40px;min-width:40px;display:grid;place-items:center;cursor:pointer}
.sek-voice-play:hover{background:#406e55}
.sek-voice-player.compact .sek-voice-play{width:36px;height:36px;min-width:36px}
.sek-voice-track{flex:1;min-width:0}
.sek-voice-track-title{font-size:11px;font-weight:700;color:#4c6855;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:7px}
.sek-voice-seek-row{display:flex;align-items:center;gap:9px;min-width:0}
.sek-voice-seek-row input{flex:1;min-width:24px;width:100%;accent-color:#2c5b43;height:17px;margin:0;cursor:pointer}
.sek-voice-seek-row span{font-size:10px;font-variant-numeric:tabular-nums;color:#788f7a;white-space:nowrap}
.sek-voice-error{font-size:11px;line-height:1.55;color:#ac5f4d;padding:8px 0 2px}
.sek-voice-error[hidden]{display:none}
.sek-voice-player audio{display:none!important}
.sek-voice-player.voice-unavailable{border-color:#e6bdb3;background:#fff9f5}
@media(max-width:780px){.gallery-voice-list{grid-template-columns:1fr}}
@media(max-width:620px){.guest-subpage .album-cover{min-height:255px}.guest-subpage .album-stats{gap:5px}.guest-subpage .album-stats strong{font-size:26px}.guest-subpage .album-stats span{font-size:8px}.guest-subpage .album-primary{gap:6px}.guest-subpage .album-tabs button{padding:11px 3px;font-size:10px}.guest-subpage .album-home-button{width:36px;height:36px;min-width:36px}.gallery-voice-card{padding:13px}.gallery-section-heading{align-items:flex-start}.sek-voice-player.compact{padding:8px}}
@media(max-width:350px){.guest-subpage .album-tabs button{font-size:9px}.guest-subpage .album-cover-details h1{font-size:28px}}
/* V9 — authentic cover framing: blur full source in the back, fit or crop original above */
.sek-guest-portrait,.guest-subpage .album-cover,.cover-frame-preview{isolation:isolate;position:relative;overflow:hidden}
.sek-guest-portrait.has-cover{background-image:none!important;background-color:#526c60}
.cover-blurred-backdrop{position:absolute;inset:-24px;z-index:-3;background-position:center;background-repeat:no-repeat;background-size:cover;filter:blur(23px) brightness(.77) saturate(.9);transform:scale(1.07)}
.cover-foreground{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;display:block;transform-origin:center;transition:object-position .2s,transform .2s}
.cover-foreground.fit-contain{object-fit:contain}
.cover-foreground.fit-cover{object-fit:cover}
.sek-guest-portrait .cover-foreground{z-index:0}
.sek-guest-portrait .cover-blurred-backdrop{z-index:-1}
.sek-guest-portrait .sek-portrait-caption{z-index:3}
.guest-subpage .album-cover .cover-blurred-backdrop{z-index:-3}
.guest-subpage .album-cover .cover-foreground{z-index:-2}
.cover-art-fallback{position:absolute;inset:0;z-index:-2;background:linear-gradient(135deg,#bfd1bc,#74927c 55%,#315c4b)}
.guest-subpage .album-cover .cover-art-fallback{z-index:-2}
/* V9: built-in full-screen image viewer */
.gallery-open-photo{display:block;width:100%;height:100%;padding:0;border:0;background:transparent;cursor:zoom-in}
.gallery-open-photo img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .2s}
.gallery-open-photo:hover img{transform:scale(1.03)}
.photo-lightbox{position:fixed;inset:0;z-index:500;display:flex;align-items:center;justify-content:space-between;gap:14px;background:#0a1311ed;backdrop-filter:blur(14px);color:#f8f6f1;padding:65px clamp(12px,3vw,45px) 25px}
.photo-lightbox-main{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:15px;max-height:calc(100dvh - 110px)}
.photo-lightbox-image{max-height:calc(100dvh - 185px);max-width:100%;width:auto;height:auto;object-fit:contain;border-radius:7px;box-shadow:0 9px 45px #0005}
.photo-lightbox-close{position:absolute;right:22px;top:18px;background:#ffffff1c;border:1px solid #ffffff69;width:42px;height:42px;border-radius:50%;color:#fff;display:grid;place-items:center}
.photo-lightbox-nav{width:43px;height:60px;border:1px solid #ffffff50;background:#ffffff15;border-radius:30px;color:#fff;font:normal 38px Georgia,serif;flex-shrink:0}
.photo-lightbox-nav:disabled{opacity:.22}
.photo-lightbox-footer{display:flex;align-items:center;justify-content:space-between;gap:14px;width:min(95%,680px);padding:3px 4px}
.photo-lightbox-footer span{display:flex;flex-direction:column;gap:4px;color:#fff;font-size:13px}
.photo-lightbox-footer small{font-size:11px;color:#c4d1c7}
@media(max-width:620px){.photo-lightbox{padding:65px 7px 22px;gap:3px}.photo-lightbox-nav{width:29px;height:47px;font-size:28px}.photo-lightbox-close{top:13px;right:14px}.photo-lightbox-image{max-height:calc(100dvh - 205px)}.photo-lightbox-footer{flex-wrap:wrap;gap:9px}.photo-lightbox-footer .btn{font-size:11px}}
/* V9 camera: visible actual framing. Narrow and wide use different matte areas. */
.camera-immersive .camera-frame{background:#162a23}
.camera-preview-stage{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);overflow:hidden;background:#263b32;z-index:1;width:100%;aspect-ratio:3/4;max-height:100%}
.camera-immersive .camera-frame.aspect-wide .camera-preview-stage{width:min(100%,calc(76dvh * 9 / 16));aspect-ratio:9/16}
.camera-immersive .camera-frame.landscape.aspect-classic .camera-preview-stage{aspect-ratio:4/3;width:min(100%,calc(76dvh * 4 / 3))}
.camera-immersive .camera-frame.landscape.aspect-wide .camera-preview-stage{aspect-ratio:16/9;width:min(100%,calc(76dvh * 16 / 9))}
.camera-immersive .camera-frame .camera-preview-stage video,.camera-immersive .camera-frame .camera-preview-stage #capturePreview{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.camera-immersive .camera-orientation-row{display:flex;gap:13px;align-items:center;justify-content:center;margin:-13px auto 14px;color:#e5e9e1;font-size:11px;letter-spacing:.5px}
.camera-immersive .camera-orientation-row .cam-glass{min-height:32px;font-size:11px;padding:7px 12px;border-radius:20px}
.camera-immersive .camera-ratio button{font-family:monospace;font-size:13px;letter-spacing:.8px;min-width:70px}
.camera-immersive .camera-scene-badge{position:absolute;left:50%;top:100px;transform:translateX(-50%);z-index:7;border-radius:25px;color:white;background:#18382db0;padding:6px 12px;font-size:11px;letter-spacing:1px}
@media(max-width:620px){.camera-immersive .camera-frame.aspect-classic:not(.landscape) .camera-preview-stage{width:min(100%,calc(76dvh * 3 / 4))}.camera-immersive .camera-orientation-row{margin:-9px auto 13px}.camera-immersive .camera-ratio button{min-width:61px}}

/* Sekeping V11 · Classical Voice Studio (responsive) */
.voice-studio{position:relative;overflow:hidden;background:linear-gradient(145deg,#fffefa,#f9f6ed 72%,#f3f0e6);border:1px solid #e0dbc9;padding:27px clamp(19px,5vw,42px) 26px;box-shadow:0 15px 42px #34503c0b}
.voice-studio::after{content:"";position:absolute;pointer-events:none;inset:9px;border:1px solid #c3bba455;border-radius:12px}
.voice-studio-top{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #dcdacb;padding-bottom:13px;margin-bottom:24px;color:#8a846e}
.voice-studio-label{font-size:10px;font-weight:700;letter-spacing:2.1px}
.voice-studio-mark{font:italic 24px Georgia,serif;color:#5c7668}
.voice-guest-field{display:flex;flex-direction:column;gap:8px;max-width:360px;margin:0 auto}
.voice-guest-field .input{width:100%;max-width:100%;text-align:center;background:#fffdfa}
.voice-record-icon{width:106px;height:106px;border:1px solid #c9d6c7;border-radius:50%;margin:26px auto 14px;display:grid;place-items:center;background:radial-gradient(circle,#f3f7ed,#e4ece0);color:#476853;position:relative;box-shadow:0 0 0 8px #a8bdab16}
.voice-record-icon>.ico{height:40px;width:40px;position:relative;z-index:1;stroke-width:1.45}
.voice-record-halo{position:absolute;inset:9px;border:1px solid #a6c0a1;border-radius:50%}
.voice-record-icon.is-recording{background:#fae8e2;color:#af5850;border-color:#eac7bc}
.voice-record-icon.is-recording .voice-record-halo{animation:voiceHalo 1.6s ease-out infinite}
.voice-record-icon.is-ready{background:#edf2e5;color:#3b7257}
@keyframes voiceHalo{50%{transform:scale(1.36);opacity:.18}100%{transform:scale(1);opacity:1}}
.voice-record-state{font-size:10px;font-weight:700;letter-spacing:2px;color:#698272;min-height:18px}
.voice-record-icon.is-recording~.voice-record-state{color:#b25c50}
.voice-studio .voice-time{font:500 clamp(45px,9vw,59px)/1.2 Georgia,serif;color:#234339;letter-spacing:2px;margin:6px 0 16px;font-variant-numeric:tabular-nums}
.voice-wave{height:36px;display:flex;align-items:center;justify-content:center;gap:3px;margin:4px 0 22px}
.voice-wave i{display:block;width:3px;min-height:5px;height:var(--bar);border-radius:4px;background:#c7d4c4;opacity:.8;transform-origin:50% 50%}
.voice-wave.is-live i{background:#a56d58;animation:voiceWave 800ms ease-in-out infinite alternate;animation-delay:calc(var(--bar) * -8ms)}
@keyframes voiceWave{0%{transform:scaleY(.32)}100%{transform:scaleY(1.1)}}
.voice-progress-head{max-width:420px;margin:0 auto 7px;display:flex;justify-content:space-between;gap:8px;font-weight:700;letter-spacing:1.1px;font-size:10px;color:#849486}
.voice-progress-head span:last-child{font-weight:600;letter-spacing:0}
.voice-progress{height:5px;max-width:420px;margin:auto;background:#e4e9df;overflow:hidden;border-radius:99px}
.voice-progress>span{height:100%;display:block;background:#608a72;border-radius:99px;transition:width .25s linear}
.voice-record-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin:24px auto 10px;position:relative;z-index:1}
.voice-record-actions .btn{min-height:45px}
.voice-studio-footnote{font-size:12px;color:#7b857e;line-height:1.7;max-width:430px;margin:14px auto 0}
.voice-preview{max-width:460px;margin:22px auto 0;text-align:left;position:relative;z-index:1}
.voice-preview-title{display:flex;align-items:center;gap:7px;font-size:11px;font-weight:700;color:#66816e;margin-bottom:7px}
.voice-preview-title .ico{width:14px;height:14px}
.voice-collection-header{display:flex;justify-content:space-between;align-items:center;margin:33px 0 15px;gap:12px}
.voice-collection-header h3{font-size:27px;font-weight:400;margin:0}
.voice-collection-header>span{font-size:12px;color:#849184}
@media(max-width:620px){.voice-studio{padding:22px 17px 25px}.voice-studio-label{font-size:9px;letter-spacing:1.4px}.voice-wave{gap:2px}.voice-wave i{width:3px}.voice-card{grid-template-columns:minmax(0,1fr);gap:7px}.voice-record-actions .btn{flex:1;min-width:125px}.voice-progress-head{font-size:9px}}
@media(prefers-reduced-motion:reduce){.voice-wave.is-live i,.voice-record-icon.is-recording .voice-record-halo{animation:none!important}}
/* ──────────────────────────────────────────────────────────────────────────
   SEKEPING.MY V12 · MODERN HERITAGE MINIMALISM
   Shared colour, type, spacing and components for guests & organisers.
   This progressive theme does not alter camera, audio, QR or Firebase logic.
   ────────────────────────────────────────────────────────────────────────── */
:root {
  --ink:#352D27;
  --muted:#81776C;
  --cream:#F7F2E9;
  --paper:#FFFCF7;
  --linen:#EAE1D3;
  --sage:#858B79;
  --gold:#B39A76;
  --accent:#352D27;
  --danger:#A75D50;
  --radius:13px;
  --shadow:0 12px 32px #352d270c;
  --sek-canvas:#F7F2E9;
  --sek-paper:#FFFCF7;
  --sek-forest:#352D27;
  --sek-line:#E5DCCF;
  --sek-sage:#EAE9DF;
  --sek-brass:#B39A76;
}
html {scroll-behavior:smooth}
body {background:var(--cream);color:var(--ink)}
::selection {background:#DECBB2;color:#352D27}
.brand {color:var(--ink);font-size:25px;letter-spacing:-.8px;gap:10px;font-weight:500}
.brand-logo {background:transparent;width:35px;height:35px;border:0;border-radius:0;transform:none;color:#A78B60;display:grid;place-items:center}
.brand-logo .brand-ornament,.brand-logo svg {width:35px;height:35px;display:block}
.brand-word {display:flex;align-items:baseline;white-space:nowrap}
.brand-dot {color:#B39A76}
.brand-suffix {font:600 9px 'DM Sans',sans-serif;letter-spacing:2.2px;color:#928069;margin-left:7px}
.topbar {background:#FFFCF7ed;border-bottom:1px solid #E8DFD2;height:76px}
.nav-links>a:not(.btn) {color:#706659;font-weight:500;letter-spacing:.03em}
.nav-links>a:hover:not(.btn) {color:#A18561}
.btn {background:var(--ink);color:#FFF9EF;border-radius:7px;font-weight:600;letter-spacing:.015em;box-shadow:none}
.btn:hover:not(:disabled) {background:#514236;box-shadow:0 8px 21px #352D271b}
.btn.secondary {background:transparent;border:1px solid #D9CBBA;color:#57483B}
.btn.secondary:hover:not(:disabled) {background:#F3EBDF;box-shadow:none}
.btn.ghost {background:transparent;color:#57483B}
.btn.gold {background:#9F805C}
.btn.danger {color:#9C5047;background:#FAF3EE;border:1px solid #EBD5CF}
.input,.select,.textarea {border-color:#DED3C5;background:#FFFCF8;color:#352D27;border-radius:8px;min-height:43px}
.input:focus,.select:focus,.textarea:focus {border-color:#B39A76;box-shadow:0 0 0 3px #B39A7622}
.field>span,.field>label {color:#776B5C;font-weight:600}
.pill {background:#F0E9DE;color:#725D46;border:1px solid #E3D6C4}
.pill.warn {background:#FDF1DF;color:#8E7148}
.micro {letter-spacing:2.5px;font-weight:600;color:#9E8566}
.muted,.small.muted {color:#81776C}
.line {background:#EAE1D5}
.empty {border:1px dashed #D7C9B7;background:#FFFCF7;color:#84786B}
.empty .ico {color:#A58E72}
.banner {background:#FAF4E8;color:#79674E;border-color:#EADDC8}
.toast {background:#352D27;color:#FFF9F0;border:1px solid #80674950;border-radius:8px}
.modal-cover {background:#241D19a6}
.modal {background:#FFFCF7;border:1px solid #D5C7B3;border-radius:14px}
/* Quiet editorial brand homepage */
.heritage-home {overflow:hidden;background:#F7F2E9}
.heritage-home .home-hero {max-width:1180px;min-height:660px;grid-template-columns:minmax(0,1fr) minmax(0,.9fr);padding:82px 34px 86px;gap:48px}
.heritage-home .hero-text h1 {font-size:clamp(53px,5.3vw,79px);letter-spacing:-2.2px;font-weight:400;line-height:1.13;margin:24px 0 12px}
.heritage-home .hero-text h1 i {font-style:italic;color:#A58B64;font-weight:400}
.heritage-home .hero-text p {color:#817568;font-size:15px;line-height:1.9;max-width:480px;margin:0}
.heritage-eyebrow {color:#9B8567!important;letter-spacing:3.1px}
.heritage-divider {display:flex;gap:14px;align-items:center;justify-content:center;color:#B0956E;margin:19px auto 18px;width:210px}
.heritage-divider span {height:1px;background:#B59A76;flex:1;opacity:.7}
.heritage-divider i {font-style:normal;font:normal 12px Georgia,serif}
.heritage-home .hero-text .heritage-divider {margin:20px 0 21px;justify-content:flex-start;width:166px}
.heritage-home .hero-buttons {margin:28px 0 18px;gap:12px}
.heritage-home .hero-buttons .btn {min-height:50px;padding:13px 20px}
.heritage-home .home-note {font-size:11px!important;letter-spacing:.04em;color:#9A8B7C!important}
.heritage-home .hero-stage {height:490px;position:relative;isolation:isolate}
.heritage-home .hero-stage:before {content:'';position:absolute;inset:21px 18px 23px 32px;border:1px solid #D9C8B2;background:linear-gradient(135deg,#F3EDE2,#E9E0D2);border-radius:160px 160px 9px 9px;height:auto;width:auto;left:32px;top:21px}
.heritage-home .hero-stage:after {content:'';position:absolute;inset:39px 37px 44px 50px;width:auto;height:auto;left:50px;top:39px;border:1px solid #FFFFFFAF;border-radius:148px 148px 4px 4px;box-shadow:none}
.heritage-photo-deck {position:relative;z-index:2;width:min(78%,340px);height:380px;display:grid;place-items:center}
.heritage-photo-back {position:absolute;width:85%;height:83%;background:#D7C2A8;transform:rotate(8deg) translate(29px,-8px);border:12px solid #FFF9EF;box-shadow:0 17px 37px #4A35251F}
.heritage-photo-front {position:relative;z-index:2;width:90%;height:90%;transform:rotate(-7deg);background:#FFFCF7;padding:12px 12px 35px;box-shadow:0 21px 46px #3B2A1E30}
.heritage-photo-art {position:relative;overflow:hidden;width:100%;height:100%;background:linear-gradient(165deg,#B9C3B1 0%,#F0DCC4 52%,#AEA38E)}
.heritage-sun {position:absolute;top:15%;right:19%;width:62px;height:62px;border-radius:50%;background:#FDEAC9;box-shadow:0 0 34px #FCF1D5}
.heritage-mountain {position:absolute;left:-32%;bottom:-23%;border-radius:50%;width:125%;height:60%;background:#7D8B75}
.heritage-mountain.two {left:30%;bottom:-30%;background:#A8AB91}
.heritage-sprig {position:absolute;left:18%;bottom:17%;height:87px;width:2px;background:#5D755D;transform:rotate(-20deg)}
.heritage-sprig:before,.heritage-sprig:after {content:'';position:absolute;width:42px;height:17px;border-radius:100% 0 100% 0;background:#69806B;left:-39px;top:22px;transform:rotate(-19deg)}
.heritage-sprig:after {left:0;top:49px;transform:rotate(151deg)}
.heritage-photo-inscription {position:absolute;bottom:11px;left:0;right:0;text-align:center;font:italic 9px Georgia,serif;letter-spacing:.08em;color:#877464}
.heritage-deck-seal {position:absolute;right:-8%;bottom:-5%;z-index:3;display:grid;place-items:center;width:74px;height:74px;background:#E8D5B8;border:4px double #947B56;border-radius:50%;font:italic 30px Georgia,serif;color:#6D5741;box-shadow:0 4px 14px #3D2A1B16}
.heritage-deck-seal span {color:#9F8465}
.heritage-home .feature-band {background:#F1EADF;border-block:1px solid #E5DACB;padding:35px 24px}
.heritage-home .feature-grid {max-width:1100px;gap:20px}
.heritage-home .feature-icon {background:#FFFCF7;border:1px solid #E1D5C6;border-radius:50%;color:#A78A64;width:53px;height:53px}
.heritage-home .feature h4 {color:#473B32;font:500 17px 'Playfair Display',Georgia,serif;margin-bottom:7px}
.heritage-home .feature p {color:#8D8174;font-size:12px}
.heritage-home .home-end {padding:78px 22px 85px}
.heritage-home .home-end h2 {font-size:clamp(30px,4vw,48px);font-weight:400;color:#352D27}
.heritage-home .home-end>p {color:#817568;margin:0 auto 27px;line-height:1.8}
.footer {background:#F7F2E9;border-top:1px solid #E3D7C9;color:#998777}
/* Wedding invitation: centered typography → actual wedding photo → guest actions. */
.heritage-wedding {background:#F7F2E9;color:#352D27;overflow-x:hidden}
.heritage-wedding .sek-guest-top {max-width:1140px;padding:17px clamp(17px,3vw,40px);border-bottom:1px solid #E9E0D4}
.heritage-wedding .sek-guest-top .brand {font-size:23px}
.heritage-wedding .sek-event-pill {background:transparent;color:#9C8364;border-color:#DDCEBB;border-radius:3px;font-size:9px;letter-spacing:2px;font-weight:600;padding:10px 11px}
.heritage-wedding .sek-language {background:#FFFBF5;color:#5E4C3C;border:1px solid #D9C8B7;border-radius:5px;font-size:11px}
.heritage-wedding .sek-guest-layout {display:flex;flex-direction:column;align-items:center;gap:0;max-width:1010px;padding:55px 24px 40px;position:relative}
.heritage-wedding .sek-guest-layout:before,.heritage-wedding .sek-guest-layout:after {content:'';pointer-events:none;position:absolute;width:143px;height:146px;border-top:1px solid #CCBBA2;border-left:1px solid #CCBBA2;opacity:.57;top:27px;left:26px;border-radius:65px 0 0 0}
.heritage-wedding .sek-guest-layout:after {left:auto;right:26px;transform:scaleX(-1)}
.heritage-wedding .sek-hero-content {width:100%;position:relative;z-index:1;text-align:center;padding:22px 0 24px}
.heritage-wedding .sek-eyebrow {color:#9B8060;letter-spacing:3px;font-size:10px;font-weight:600;display:flex;justify-content:center;gap:0}
.heritage-wedding .sek-eyebrow:before {display:none}
.heritage-wedding .sek-hero-content h1 {font-size:clamp(45px,7vw,83px);letter-spacing:-1.8px;line-height:1.15;font-weight:400;color:#3D3025;margin:23px 0 8px;overflow-wrap:anywhere}
.heritage-wedding .sek-hero-content h1 em {color:#A78C65;font-weight:400;font-style:italic;display:inline-block;margin:0 .18em}
.heritage-wedding .sek-hero-date {display:block;text-transform:uppercase;font-size:11px;letter-spacing:2.6px;font-weight:600;color:#756555;line-height:1.6}
.heritage-wedding .sek-hero-date.venue {font-size:10px;letter-spacing:2px;margin-top:7px;max-width:96%;overflow-wrap:anywhere}
.heritage-wedding-frame {width:100%;max-width:840px;padding:7px;border:1px solid #CCB497;position:relative;background:#F9F5EC;margin:18px auto 20px}
.heritage-wedding-frame:before,.heritage-wedding-frame:after {content:'';position:absolute;width:17px;height:17px;border:1px solid #B79B70;background:#F7F2E9;z-index:4;pointer-events:none}
.heritage-wedding-frame:before {top:-3px;left:-3px;border-right:0;border-bottom:0;border-radius:0 0 12px 0}
.heritage-wedding-frame:after {right:-3px;bottom:-3px;border-top:0;border-left:0;border-radius:12px 0 0 0}
.heritage-wedding .sek-guest-portrait {aspect-ratio:16/9;width:100%;min-height:unset;border-radius:2px;box-shadow:none;background:linear-gradient(145deg,#C2C0A5,#E9DCC8 59%,#A5A991);overflow:hidden}
.heritage-wedding .sek-guest-portrait:after {background:linear-gradient(0deg,#2D292740,transparent 32%);z-index:1}
.heritage-wedding .sek-guest-portrait .cover-foreground {z-index:0}
.heritage-wedding .sek-guest-portrait .cover-blurred-backdrop {z-index:0}
.heritage-wedding .sek-portrait-caption {bottom:17px;left:20px;right:20px;align-items:end}
.heritage-wedding .sek-portrait-caption b {font:400 clamp(16px,2.5vw,24px) 'Playfair Display',Georgia,serif}
.heritage-wedding .sek-portrait-caption small {font-size:8px;letter-spacing:2.5px;color:#FFF7E9}
.heritage-wedding .sek-photo-seal {width:42px;height:42px;font-size:20px;border:1px solid #fff9}
.heritage-wedding .sek-art-line {opacity:.35}
.heritage-wedding .sek-guest-bottom {max-width:620px;width:100%;text-align:center;margin:0 auto}
.heritage-wedding .sek-welcome {max-width:600px;margin:17px auto 29px;color:#817365;font-size:14px;line-height:1.85}
.heritage-wedding .sek-guest-form {max-width:490px;margin:auto;padding:23px 28px 25px;text-align:left;border:1px solid #DED0BE;background:#FFFCF7;border-radius:8px;box-shadow:0 7px 26px #392D2410}
.heritage-wedding .sek-guest-form-top {gap:11px;margin-bottom:16px}
.heritage-wedding .sek-guest-form h2 {font:400 23px 'Playfair Display',Georgia,serif;color:#352D27}
.heritage-wedding .sek-quota {background:#F3EBDF;color:#806D55;border-radius:4px;font-size:10px;border:1px solid #E2D5C5;padding:7px 9px}
.heritage-wedding .sek-guest-form label {font-size:10px;color:#887764;letter-spacing:2px}
.heritage-wedding .sek-guest-form .wedding-name {height:51px;background:#FFFEFB;color:#3A3027;border-radius:5px;border:1px solid #DDD0C1;text-align:left}
.heritage-wedding .sek-guest-form .wedding-name:focus {outline:2px solid #B9A38380;border-color:#B39A76}
.heritage-wedding .sek-guest-form .wedding-main-button {margin:14px 0 8px;width:100%;min-height:52px;border-radius:6px;background:#352D27;letter-spacing:.04em;color:#FFFCF7;font-weight:600;gap:10px}
.heritage-wedding .sek-guest-form .wedding-main-button:hover {background:#514236}
.heritage-wedding .sek-form-tip {justify-content:center;margin-top:10px;color:#9C8C7D;letter-spacing:.02em}
.heritage-wedding .sek-explore {max-width:1040px;padding:25px 30px 58px}
.heritage-wedding .sek-section-head {border-top:1px solid #DCCAB3;padding-top:30px;margin-bottom:20px}
.heritage-wedding .sek-section-head .sek-eyebrow {justify-content:flex-start;font-size:9px}
.heritage-wedding .sek-section-head h2 {font:400 clamp(26px,3.6vw,37px) 'Playfair Display',Georgia,serif;color:#3F3228}
.heritage-wedding .sek-section-head p {color:#94867A}
.heritage-wedding .sek-action-grid {grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.heritage-wedding .sek-action {min-height:110px;padding:21px 19px;border:1px solid #E1D5C5;background:#FFFCF7;border-radius:8px;color:#504132;box-shadow:none}
.heritage-wedding .sek-action:hover {border-color:#B9A182;box-shadow:0 7px 25px #382D2210;transform:translateY(-2px)}
.heritage-wedding .sek-action-icon {background:#F2EADF;border:1px solid #E5D8C6;color:#9E815D;width:44px;height:44px;min-width:44px;border-radius:50%}
.heritage-wedding .sek-action-text b {font-size:13px;color:#47372C}
.heritage-wedding .sek-action-text small {color:#968677}
.heritage-wedding .sek-action-arrow {color:#B29B7D}
.heritage-wedding .sek-footer {border-color:#E2D8CB;color:#97887B}
/* Guest subpages share the same paper, gold stroke and warm headings */
.guest-subpage {background:#F7F2E9;color:#352D27}
.guest-sub-header {height:73px;max-width:1110px;border-color:#E3D7C6}
.guest-sub-header .guest-mini-brand {color:#4B3C2E;font-size:25px}
.guest-sub-header .guest-back {color:#7B6A59}
.guest-subpage .section-eyebrow {color:#B0926C}
.guest-subpage .section-title {font:400 clamp(31px,5vw,45px) 'Playfair Display',Georgia,serif;color:#3E3127}
.guest-subpage .section-lead {color:#81766B}
.guest-subpage .card {background:#FFFCF7;border:1px solid #E4D8C8;border-radius:10px;box-shadow:none}
.guest-subpage .album-cover {background:linear-gradient(135deg,#675545,#9B876B)!important;border-radius:8px;box-shadow:none}
.guest-subpage .album-cover.has-wedding-photo {background:#514235!important}
.guest-subpage .album-cover h1 {color:#FFFCF6;font-weight:400}
.guest-subpage .album-cover p {color:#EEDFCC}
.guest-subpage .album-cover .micro {color:#E5D0AE}
.guest-subpage .album-tabs {background:#EEE6DA;border:1px solid #E4D7C6;border-radius:9px}
.guest-subpage .album-tabs button {color:#7E7061}
.guest-subpage .album-tabs button.active {background:#FFFCF7;color:#46372A;border-radius:7px}
.guest-subpage .album-home-button:last-child,.guest-subpage .album-filters button.active {background:#352D27;border-color:#352D27;color:#FFFCF6}
.guest-subpage .album-photo {border-radius:6px;box-shadow:0 5px 15px #382D2510}
.guest-subpage .album-photo-name {font-family:'Playfair Display',Georgia,serif;font-weight:400}
.guest-subpage .gallery-section-heading h2 {color:#45362B}
.guest-subpage .gallery-section-heading p,.guest-subpage .gallery-count {color:#948577}
.guest-subpage .gallery-voice-card {border:1px solid #E4D7C7;border-radius:8px;background:#FFFCF7}
.guest-subpage .gallery-voice-avatar {color:#A58760;background:#F2E9DB}
.guest-subpage .album-wishes .wish-card {border-radius:8px;background:#FFFCF7;border-color:#E3D4C2}
.guest-subpage .wish-card p {color:#655748}
.guest-subpage .wish-card .by {color:#A28765}
/* Analog voice studio */
.voice-studio {background:linear-gradient(140deg,#FFFCF7 0%,#F4EBDC 100%);border:1px solid #D9C7AE;box-shadow:0 12px 31px #33251A0A;border-radius:11px}
.voice-studio::after {border:1px solid #C5AB8955;border-radius:8px}
.voice-studio-top {border-color:#DBCEBB;color:#91795C}
.voice-studio-mark {color:#A58863}
.voice-guest-field .input {background:#FFFCF7}
.voice-record-icon {color:#8F7452;background:radial-gradient(circle,#FFFCF7,#EEE1CD);border-color:#D3BD9D;box-shadow:0 0 0 8px #BFA7891C}
.voice-record-halo {border-color:#C6AA85}
.voice-record-icon.is-recording {color:#B2544D;background:#F9E7E0;border-color:#DFAE9C}
.voice-record-icon.is-ready {color:#696E58;background:#F0F0E7}
.voice-record-state {color:#94816C}
.voice-studio .voice-time {font-family:'DM Sans',sans-serif;letter-spacing:3px;font-weight:400;color:#3C3027}
.voice-wave i {background:#C6B299}
.voice-wave.is-live i {background:#B8816B}
.voice-progress-head {color:#8E7B67}
.voice-progress {background:#E9DCC8}
.voice-progress>span {background:#B39A76}
.voice-studio-footnote {color:#948573}
.voice-preview-title {color:#8A7158}
.voice-collection-header h3 {color:#403126}
.sek-voice-player {border-color:#E2D4C2!important;background:#FFFAF3!important}
.sek-voice-play {background:#3E342B!important;color:#FFFCF7!important}
.sek-voice-track-title {color:#57483B!important}
/* Camera stays dark for contrast. Its film controls match the heritage palette. */
.camera-immersive {background:#F7F2E9}
.camera-immersive .camera-frame {background:#211D1A}
.camera-immersive .camera-preview-stage {background:#2B2621}
.camera-immersive .cam-glass {background:#2E271Fce;border-color:#FFF8E24D}
.camera-immersive .camera-ratio {background:#30281FDF}
.camera-immersive .camera-ratio button.selected {background:#FFF8EB;color:#3F3025}
.camera-immersive .cam-film-stamp {color:#EAC69B}
.camera-immersive .camera-remaining {background:#372E27D9}
.camera-immersive .filter-studio {background:#FBF6EE;color:#382E26;border:1px solid #E3D7C5;border-top:0}
.camera-immersive .filter-studio-header .micro {color:#A18761}
.camera-immersive .filter-category.active {background:#352D27;border-color:#352D27;color:#FFFCF7}
.camera-immersive .filter-preview-card.active {border-color:#B39A76;background:#F4EADB}
.camera-immersive .filter-studio>.btn {background:#352D27}
.camera-immersive .effect-toggle.active {background:#352D27}
.camera-immersive .effect-card {border-color:#DED0BE}
.camera-immersive .filter-preview-card {border-radius:8px}
/* Digital gifts & printable QR card */
.guest-subpage .gift-card {background:#F4ECDE;border:1px solid #E1D0B9;border-radius:10px}
.guest-subpage .gift-page h1 {color:#3D3025}
.guest-subpage .gift-save-qr {background:#352D27}
.guest-subpage .gift-account {border-color:#D7C5AA}
.guest-subpage .gift-qr-missing {border-color:#C5AB89;color:#887059}
.guest-subpage .gift-disclaimer {color:#847665}
/* Organiser dashboard / cards / navigation */
.dash-shell {background:#F7F2E9}
.sidebar {background:#FFFCF7;border-color:#E4D8C8}
.sidebar .side-brand {border-bottom:1px solid #E9DFD2;margin-bottom:12px}
.sidebar .side-brand .small {color:#9C8C7B!important}
.side-group-label {color:#A18D78}
.side-button {color:#786B5E;font-weight:600;border-radius:7px}
.side-button.active {background:#EEE4D6;color:#453629;border-left:2px solid #AA8B64;padding-left:13px}
.side-button:hover {background:#F3EBDF}
.sidebar-bottom {border-color:#E9DFD2}
.dash-head {margin-bottom:25px}
.dash-head h1 {font-size:clamp(29px,3vw,36px);color:#3B2D23;font-weight:400}
.dash-head p {color:#897E71;line-height:1.6}
.dash-card {background:#FFFCF7;border:1px solid #E5D7C6;border-radius:10px;box-shadow:0 4px 17px #382D2707}
.dash-card h3 {color:#4B3A2B;font-weight:600}
.dash-card>p {color:#84776A}
.stat {background:#FFFCF7;border:1px solid #E4D8C8;border-radius:9px}
.stat .ico {color:#B39A76}
.stat strong {color:#352D27;font-weight:500}
.stat small {color:#8E8071}
.event-item {background:#FFFCF7;border:1px solid #E3D6C5;border-radius:9px}
.event-item h3 {color:#3D3025}
.preview-cover {background:linear-gradient(115deg,#C6BEAB,#E7D8C2);color:#6E5842;border-radius:7px}
.upload-area {border-color:#C8B59B;border-radius:7px;background:#FCF7EF}
.qr-studio-top .qr-preview-frame {border-color:#D4C4AD;box-shadow:0 13px 28px #372B1D13}
.qr-preview-head {color:#85725C}
.range-row input,.qr-options input {accent-color:#A78A66}
.auth-shell {background:#FFFCF7;border:1px solid #E0D0BC;border-radius:10px;box-shadow:0 18px 37px #3F2D1911}
.auth-shell h1 {color:#3B3026}
.auth-shell p {color:#807366}
.dashboard-active-strip {background:#F0E7DA!important;border-color:#E1D2BC!important;border-radius:9px!important}
.dashboard-active-info {color:#695541}
.dashboard-mobile-header,.mobile-nav {background:#FFFCF7!important;border-color:#E6D8C8!important}
.mobile-nav .side-button.active {border-left:0;border-bottom:2px solid #A88C67;padding-left:11px}
/* Larger touch targets, predictable focus and low motion */
button,a,input,select,textarea {-webkit-tap-highlight-color:transparent}
button:focus-visible,a:focus-visible {outline:2px solid #B39A76;outline-offset:3px}
@media (hover:none) { .heritage-wedding .sek-action:hover {transform:none} }
@media (max-width:960px) {
  .heritage-home .home-hero {gap:22px}
  .heritage-home .hero-text h1 {font-size:clamp(50px,6vw,70px)}
  .heritage-wedding .sek-guest-layout {max-width:850px}
}
@media (max-width:720px) {
  .topbar {height:66px}
  .brand {font-size:22px}
  .brand-logo,.brand-logo svg {width:30px;height:30px}
  .brand-suffix {font-size:8px;letter-spacing:1.5px;margin-left:4px}
  .heritage-home .home-hero {grid-template-columns:minmax(0,1fr);padding:55px 22px 52px;min-height:auto;gap:8px}
  .heritage-home .hero-text {text-align:center}
  .heritage-home .hero-text h1 {font-size:clamp(46px,10vw,66px);letter-spacing:-1.8px}
  .heritage-home .hero-text .heritage-divider {margin:19px auto}
  .heritage-home .hero-text p {margin:auto}
  .heritage-home .hero-buttons {justify-content:center}
  .heritage-home .hero-stage {height:338px;max-width:370px;width:100%;margin:10px auto 0}
  .heritage-photo-deck {height:270px}
  .heritage-photo-front {padding:9px 9px 30px}
  .heritage-deck-seal {width:61px;height:61px;font-size:24px}
  .heritage-home .feature-grid {max-width:400px}
  .heritage-wedding .sek-guest-top {padding:13px 16px}
  .heritage-wedding .sek-guest-layout {padding:32px 16px 29px}
  .heritage-wedding .sek-guest-layout:before,.heritage-wedding .sek-guest-layout:after {width:38px;height:60px;top:17px;opacity:.47;border-radius:27px 0 0 0}
  .heritage-wedding .sek-guest-layout:before {left:17px}
  .heritage-wedding .sek-guest-layout:after {right:17px}
  .heritage-wedding .sek-hero-content {padding:27px 0 19px}
  .heritage-wedding .sek-hero-content h1 {font-size:clamp(37px,9.2vw,58px);line-height:1.18;letter-spacing:-1.2px;margin:20px 0 8px}
  .heritage-wedding .sek-hero-date {font-size:10px;letter-spacing:1.9px}
  .heritage-wedding .sek-hero-date.venue {font-size:9px;letter-spacing:1.3px}
  .heritage-wedding-frame {margin:14px auto 13px;padding:5px}
  .heritage-wedding .sek-guest-portrait {min-height:unset;aspect-ratio:16/9;border-radius:1px}
  .heritage-wedding .sek-portrait-caption {bottom:9px;left:11px;right:11px}
  .heritage-wedding .sek-portrait-caption b {font-size:15px}
  .heritage-wedding .sek-portrait-caption small {font-size:7px;letter-spacing:1.3px;margin-top:3px}
  .heritage-wedding .sek-photo-seal {width:34px;height:34px;font-size:17px}
  .heritage-wedding .sek-welcome {font-size:12px;line-height:1.7;margin:14px auto 21px}
  .heritage-wedding .sek-guest-form {padding:20px 17px 21px}
  .heritage-wedding .sek-guest-form h2 {font-size:21px}
  .heritage-wedding .sek-explore {padding:19px 16px 43px}
  .heritage-wedding .sek-section-head {display:block;text-align:center;padding-top:26px;margin-bottom:16px}
  .heritage-wedding .sek-section-head .sek-eyebrow {justify-content:center}
  .heritage-wedding .sek-section-head h2 {margin-top:8px;font-size:28px}
  .heritage-wedding .sek-section-head p {margin-top:8px}
  .heritage-wedding .sek-action-grid {grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
  .heritage-wedding .sek-action {padding:16px 13px;min-height:124px;display:flex;flex-direction:column;align-items:flex-start;gap:10px;position:relative;border-radius:7px}
  .heritage-wedding .sek-action-icon {height:39px;width:39px;min-width:39px}
  .heritage-wedding .sek-action-text b {font-size:12px;line-height:1.3}
  .heritage-wedding .sek-action-text small {font-size:10px}
  .heritage-wedding .sek-action-arrow {position:absolute;right:10px;top:22px}
  .heritage-wedding .sek-footer {padding:20px 16px 29px;margin:0 16px;align-items:flex-start;font-size:10px}
  .guest-sub-header {height:65px}
  .guest-subcontent {padding:21px 16px 65px}
  .guest-subpage .album-cover {border-radius:0}
  .dash-main {padding-top:24px}
  .dash-card {padding:20px}
  .dash-head {gap:12px}
}
@media (max-width:390px) {
  .heritage-wedding .sek-event-pill {font-size:8px;padding:8px}
  .heritage-wedding .sek-guest-top .brand {font-size:20px}
  .heritage-wedding .sek-hero-content h1 {font-size:clamp(34px,9.1vw,42px)}
  .heritage-wedding .sek-guest-form-top {align-items:flex-start}
  .heritage-wedding .sek-quota {font-size:9px}
  .heritage-wedding .sek-action {padding:15px 11px}
  .heritage-wedding .sek-action-text b {font-size:11.5px}
}
@media (prefers-reduced-motion:reduce) {
  .heritage-home *,.heritage-wedding * {animation:none!important;transition-duration:.01ms!important}
}

/* Per-event accent remains functional without changing the shared brand. */
.heritage-wedding .sek-hero-content h1 em {color:var(--event-accent,#B39A76)}
.heritage-wedding .heritage-divider {color:var(--event-accent,#B39A76)}
.heritage-wedding-frame {border-color:var(--event-accent,#B39A76)}
.heritage-wedding .sek-guest-form .wedding-name:focus {border-color:var(--event-accent,#B39A76)}
/* Invitation placeholder when no couple portrait was provided yet. */
.heritage-wedding .sek-guest-portrait .cover-art-fallback {background:linear-gradient(140deg,#D8CBB6 0%,#C7B496 46%,#99856D 100%)}
.heritage-wedding .sek-guest-portrait .sek-art-line::after {background:#9D907BA0}

/* ==== qr-studio.css ==== */
/* QR Studio V5: scoped to organiser dashboard, same Sekeping design language. */
.qr-studio-top{display:grid;grid-template-columns:minmax(300px,.86fr) minmax(0,1.14fr);gap:22px;align-items:start}
.qr-studio-preview{position:sticky;top:25px;display:flex;flex-direction:column;align-items:center;gap:13px;min-width:0}
.qr-preview-head{display:flex;gap:10px;align-items:center;justify-content:space-between;width:100%;max-width:385px;color:#527464;font-size:11px;font-weight:700}
.qr-preview-head>span:first-child{display:inline-flex;align-items:center;gap:7px}
.qr-preview-frame{width:min(100%,385px);aspect-ratio:1240 / 1754;overflow:hidden;background:#faf8f3;border:1px solid #d9dacf;box-shadow:0 14px 33px #253f3017;border-radius:2px;display:grid;place-items:center}
.qr-preview-frame canvas{display:block;width:100%;height:100%;object-fit:contain}
.qr-studio-preview .small{text-align:center;max-width:395px;line-height:1.5}
.qr-studio-config{min-width:0}
.qr-studio-config .dash-card{padding:22px;margin-bottom:17px}
.qr-studio-config .dash-card h3{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.qr-theme-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-top:19px}
.qr-theme-card{border:1px solid #e1e7dc;border-radius:11px;padding:9px 7px 11px;background:#fffefb;color:#526e5e;display:flex;flex-direction:column;align-items:center;gap:5px;transition:border-color .18s,box-shadow .18s,transform .18s;min-width:0}
.qr-theme-card:hover{transform:translateY(-2px);border-color:#99b49b}
.qr-theme-card.selected{border:2px solid #3f7658;padding:8px 6px 10px;box-shadow:0 0 0 2px #dcebdd}
.qr-theme-swatch{display:block;width:min(95%,92px);height:115px;position:relative;overflow:hidden;border:1px solid #e2e3d6;background:var(--theme-bg);color:var(--theme-ink);border-radius:3px}
.qr-theme-swatch:before{content:'sekeping.';position:absolute;top:14px;left:0;right:0;text-align:center;font:500 12px Georgia,serif}
.qr-theme-shape{position:absolute;top:39px;left:31%;width:38%;height:34%;border:4px solid white;box-shadow:inset 0 0 0 6px #294c41;background:repeating-linear-gradient(45deg,#223d34 0 3px,white 3px 7px)}
.qr-theme-lines{position:absolute;bottom:16px;left:19%;width:62%;height:2px;background:var(--theme-accent);box-shadow:0 -7px 0 color-mix(in srgb,var(--theme-accent) 30%,transparent),0 8px 0 color-mix(in srgb,var(--theme-accent) 30%,transparent)}
.qr-theme-card[data-qr-theme="arch"] .qr-theme-swatch{border-radius:38px 38px 2px 2px}
.qr-theme-card[data-qr-theme="editorial"] .qr-theme-swatch:before{font-size:15px;letter-spacing:-1px}
.qr-theme-card[data-qr-theme="night"] .qr-theme-shape{border-color:#f6f0e6}
.qr-theme-name{font-size:11px;line-height:1.25;font-weight:700;text-align:center;margin-top:3px}
.qr-theme-card small{font-size:9px;line-height:1.25;color:#88968a;text-align:center}
.qr-options{display:grid;gap:11px;margin:16px 0 19px}
.qr-options label{display:flex;align-items:center;gap:11px;font-size:12px;color:#506859;cursor:pointer}
.qr-options input{width:17px;height:17px;accent-color:#295342;cursor:pointer}
#qrSaveStatus{margin-top:10px;line-height:1.5}
@media(max-width:1120px){.qr-studio-top{grid-template-columns:minmax(265px,.8fr) minmax(0,1.2fr);gap:16px}.qr-theme-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:850px){.qr-studio-top{grid-template-columns:minmax(0,1fr)}.qr-studio-preview{position:static}.qr-theme-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:420px){.qr-theme-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.qr-studio-config .dash-card{padding:17px}}

/* V7: show actual printable designs, not generic placeholder thumbnails. */
.qr-theme-card .qr-theme-thumb{width:95%;height:auto;aspect-ratio:1240 / 1754;border:1px solid #d8ddd5;background:#fbf8f1;display:block;margin:auto;box-shadow:0 4px 12px #163a2a13;border-radius:2px}
.qr-theme-card.selected .qr-theme-thumb{box-shadow:0 0 0 2px #4e7a5a33,0 6px 15px #183a2b12}
.qr-theme-card .qr-theme-name{font-size:11px;letter-spacing:.1px}
/* V12 QR studio · Heritage palette matches printable A5 cards */
.qr-preview-head{color:#806C55}
.qr-preview-frame{background:#F8F2E9;border-color:#D5C3AA;box-shadow:0 13px 30px #352D2715}
.qr-theme-card{border:1px solid #E1D3C0;background:#FFFCF7;border-radius:7px;color:#685542}
.qr-theme-card:hover{border-color:#A88E6B}
.qr-theme-card.selected{border:2px solid #B39A76;box-shadow:0 0 0 2px #B39A7624}
.qr-theme-card .qr-theme-thumb{border-color:#D3C2AD;box-shadow:0 3px 10px #352D2712}
.qr-theme-card.selected .qr-theme-thumb{box-shadow:0 0 0 2px #B39A7640}
.qr-theme-card small{color:#948676}
.qr-options label{color:#625344}
.qr-options input{accent-color:#B39A76}

/* ==== camera-fullscreen.css ==== */
/* Sekeping Camera V21 · full-screen viewfinder; only the filter drawer scrolls. */
body.sek-camera-open { overflow:hidden !important; overscroll-behavior:none; }
body.sek-camera-open #app { height:100dvh; overflow:hidden; }
.sek-camera-v21,.sek-camera-v21 * { box-sizing:border-box; }
.sek-camera-v21.camera-immersive {
 position:fixed; inset:0; z-index:1200; width:100%; height:100vh; height:100dvh;
 min-height:0; margin:0; padding:0; overflow:hidden; background:#201d1b;
 font-family:'DM Sans',system-ui,sans-serif; color:#fffdf5;
}
.sek-camera-v21 .camera-frame,
.sek-camera-v21 .camera-frame.landscape {
 position:absolute; inset:0; width:100%; height:100%; max-width:none; max-height:none;
 min-height:0; min-width:0; border:0; border-radius:0; box-shadow:none;
 aspect-ratio:auto !important; overflow:hidden; background:#292722; margin:0; transform:none;
}
.sek-camera-v21 .camera-preview-stage,
.sek-camera-v21 .camera-frame.aspect-classic:not(.landscape) .camera-preview-stage,
.sek-camera-v21 .camera-frame.aspect-wide .camera-preview-stage,
.sek-camera-v21 .camera-frame.landscape.aspect-classic .camera-preview-stage,
.sek-camera-v21 .camera-frame.landscape.aspect-wide .camera-preview-stage {
 position:absolute; inset:0; top:0; left:0; width:100%; height:100%; max-width:none;
 max-height:none; aspect-ratio:auto; transform:none; background:#34332f; overflow:hidden;
}
.sek-camera-v21 .camera-frame .camera-preview-stage video,
.sek-camera-v21 .camera-frame .camera-preview-stage #capturePreview {
 position:absolute; inset:0; display:block; width:100%; height:100%; min-height:100%;
 object-fit:cover; object-position:center; transform:none;
}
/* A real difference between Lebar and Biasa, without shrinking the viewfinder. */
.sek-camera-v21 .camera-frame.aspect-classic .camera-preview-stage video { transform:scale(1.11); }
.sek-camera-v21 .camera-frame.aspect-wide .camera-preview-stage video { transform:scale(1); }
.sek-camera-v21.is-review #capturePreview { object-fit:contain; background:#171511; }
.sek-camera-v21 .sk21-screen-shade { position:absolute; z-index:4; inset:0; pointer-events:none;
 background:linear-gradient(180deg,rgba(12,12,12,.62) 0%,rgba(12,12,12,.21) 17%,transparent 37%,transparent 52%,rgba(8,8,8,.16) 65%,rgba(8,8,8,.70) 100%); }
.sek-camera-v21 .cam-guide { display:none; }
.sek-camera-v21 .cam-overlay-header {
 position:absolute; top:0; left:0; right:0; z-index:11;
 display:grid; grid-template-columns:54px minmax(0,1fr) 54px;
 align-items:start; gap:6px; text-align:center;
 padding:calc(22px + env(safe-area-inset-top,0px)) 20px 0;
 background:none; color:#fff; pointer-events:none;
}
.sek-camera-v21 .cam-overlay-header button { pointer-events:auto; }
.sek-camera-v21 .cam-glass {
 color:#fff; border:1px solid rgba(255,255,255,.27); background:rgba(24,23,22,.54);
 backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px);
 box-shadow:0 4px 20px rgba(0,0,0,.12);
}
.sek-camera-v21 .cam-glass.circle { width:52px; height:52px; min-height:52px; padding:0; border-radius:50%; }
.sek-camera-v21 .cam-glass.circle .ico { width:23px; height:23px; }
.sek-camera-v21 .cam-wedding-title { display:flex; flex-direction:column; align-items:center; gap:6px; min-width:0; padding:4px 0 0;
 text-shadow:0 2px 12px rgba(0,0,0,.6); }
.sek-camera-v21 .cam-wedding-title strong { display:block; margin:0; max-width:100%;
 font:600 clamp(23px,6.8vw,37px)/1.13 'Playfair Display',Georgia,serif;
 letter-spacing:.1px; color:#fff; white-space:normal; overflow-wrap:anywhere; text-overflow:clip;
}
.sek-camera-v21 .cam-wedding-title small { font:500 clamp(9px,2.4vw,12px)/1.45 ui-monospace,SFMono-Regular,monospace;
 letter-spacing:clamp(1.4px,.52vw,3px); color:#e7e2d9; }
.sek-camera-v21 .sk21-look-switch {
 display:flex; align-items:center; overflow:hidden; border-radius:100px;
 background:rgba(22,21,19,.60); border:1px solid rgba(255,255,255,.34);
 margin:5px auto 0; box-shadow:0 2px 8px rgba(0,0,0,.18);
 max-width:100%; backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
}
.sek-camera-v21 .sk21-look-switch button,
.sek-camera-v21 .sk21-look-switch span {
 display:inline-flex; align-items:center; justify-content:center; padding:8px 14px; min-height:34px;
 font:600 10px/1 ui-monospace,SFMono-Regular,monospace; letter-spacing:1.8px; white-space:nowrap;
}
.sek-camera-v21 .sk21-look-switch button { border:0; background:transparent; color:#e7d9c4; cursor:pointer; }
.sek-camera-v21 .sk21-look-switch span { background:#f7f3ea; border-radius:40px; color:#4b4135; }
.sek-camera-v21 .sk21-top-settings .ico { width:22px; height:22px; }
.sek-camera-v21 .cam-film-stamp { position:absolute; top:auto; bottom:28%; left:23px; right:auto;
 font:600 clamp(10px,2.5vw,13px)/1.15 ui-monospace,SFMono-Regular,monospace;
 writing-mode:vertical-rl; transform:none; color:#ed9f70; letter-spacing:3px; text-shadow:0 1px 4px #1a090b;
 max-height:42%; overflow:hidden; pointer-events:none; z-index:9;
}
.sek-camera-v21 .camera-controls {
 position:absolute; z-index:12; left:0; right:0; bottom:0;
 padding:25px clamp(16px,5vw,30px) max(28px,calc(18px + env(safe-area-inset-bottom,0px)));
 background:none; color:#fff; pointer-events:none;
}
.sek-camera-v21 .camera-controls button,.sek-camera-v21 .camera-controls label { pointer-events:auto; }
.sek-camera-v21 .camera-actions-row {
 display:grid; grid-template-columns:56px minmax(0,1fr) 56px; gap:12px;
 align-items:center; margin:0 auto 24px; width:min(100%,460px); max-width:none;
}
.sek-camera-v21 .camera-actions-row>.cam-glass { width:54px; height:54px; min-height:54px; }
.sek-camera-v21 .camera-actions-row>.cam-glass[aria-pressed="true"] { background:#f6f0e3; color:#4b3625; }
.sek-camera-v21 .camera-ratio { justify-self:center; display:flex; padding:4px;
 background:rgba(34,30,29,.70); border:1px solid rgba(255,255,255,.43); border-radius:100px;
 gap:2px; max-width:100%; }
.sek-camera-v21 .camera-ratio button { border:0; border-radius:50px; min-width:0;
 padding:12px clamp(13px,4vw,24px); letter-spacing:2px;
 font:600 clamp(10px,2.4vw,12px)/1 ui-monospace,SFMono-Regular,monospace;
 color:#eae2d7; background:transparent; }
.sek-camera-v21 .camera-ratio button.selected { background:#f7f4ed; color:#302b28; }
.sek-camera-v21 .camera-snap-row {
 display:grid; grid-template-columns:1fr 104px 1fr; align-items:center; justify-items:center;
 width:min(100%,400px); max-width:none; gap:0; margin:0 auto 22px;
}
.sek-camera-v21 .camera-shutter { width:94px; height:94px; border:6px solid #f6f4ef;
 background:#faf8f1; border-radius:50%; box-shadow:inset 0 0 0 6px #4e4442,0 4px 13px #0003; }
.sek-camera-v21 .camera-shutter:disabled { opacity:.45; }
.sek-camera-v21 .cam-remaining { justify-self:start; width:75px; height:79px; border-radius:23px;
 background:rgba(26,27,26,.68); box-shadow:0 7px 30px rgba(0,0,0,.2); gap:3px; }
.sek-camera-v21 .cam-remaining b { font-size:34px; font-weight:500; line-height:1.06; }
.sek-camera-v21 .cam-remaining span { font:600 10px/1.2 ui-monospace,monospace; letter-spacing:2.2px; }
.sek-camera-v21 .cam-upload { width:min(100%,400px); min-height:55px; margin:0 auto;
 display:flex; justify-content:center; align-items:center; padding:13px 17px;
 color:#f5f0e8; background:rgba(10,10,10,.68); border:1px solid rgba(255,255,255,.38);
 border-radius:100px; font:500 clamp(9px,2.8vw,12px)/1.2 ui-monospace,SFMono-Regular,monospace;
 letter-spacing:2px; cursor:pointer; }
.sek-camera-v21 .cam-upload:hover { background:rgba(29,29,28,.82); }
.sek-camera-v21 .camera-message { z-index:7; top:47%; width:min(86%,380px);
 border-radius:22px; padding:22px; background:rgba(23,22,19,.58);
 backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); font-size:13px; }
.sek-camera-v21 .camera-message p { margin:7px 0 0; }
.sek-camera-v21 .camera-review-actions { justify-content:center; align-items:center;
 gap:14px; width:min(100%,420px); margin:0 auto 8px; flex-wrap:nowrap; }
.sek-camera-v21 .camera-review-actions button { min-height:53px; flex:1 1 50%; font-size:13px; }
.sek-camera-v21 .cam-review-save { border:1px solid #f9efe4; border-radius:35px; justify-content:center; }
.sek-camera-v21 .sk21-filter-scrim { position:fixed; inset:0; border:0; z-index:15;
 background:rgba(0,0,0,.54); backdrop-filter:blur(3px); -webkit-backdrop-filter:blur(3px); }
.sek-camera-v21 .sk21-filter-scrim[hidden],
.sek-camera-v21 .filter-studio[hidden] { display:none!important; }
.sek-camera-v21 .filter-studio {
 position:fixed; left:0; right:0; bottom:0; z-index:17;
 width:100%; max-width:780px; max-height:min(81dvh,760px); overflow-y:auto;
 overscroll-behavior:contain; -webkit-overflow-scrolling:touch;
 margin:0 auto; padding:14px clamp(15px,4vw,30px) max(22px,calc(18px + env(safe-area-inset-bottom,0px)));
 background:#fcf8ef; color:#342b24; border:1px solid #e7d9c8; border-bottom:0;
 border-radius:25px 25px 0 0; box-shadow:0 -13px 60px rgba(0,0,0,.32);
}
.sek-camera-v21 .sk21-drawer-grip { width:42px; height:4px; border-radius:8px; background:#c8b9a7; margin:0 auto 16px; }
.sek-camera-v21 .filter-studio-header { gap:13px; margin-bottom:16px; }
.sek-camera-v21 .filter-studio-header h2 { font:500 clamp(21px,5.5vw,29px)/1.25 'Playfair Display',Georgia,serif; margin:5px 0; }
.sek-camera-v21 .filter-studio-header p { line-height:1.35; font-size:11px; }
.sek-camera-v21 .sk21-drawer-close { width:40px; height:40px; flex:0 0 40px; display:grid; place-items:center;
 border-radius:50%; border:1px solid #dacbb8; background:#f5ece1; color:#3a2e25; }
.sek-camera-v21 .filter-category-row { padding-bottom:10px; }
.sek-camera-v21 .filter-preview-grid { padding-bottom:10px; }
.sek-camera-v21 .filter-preview-card { flex-basis:94px; }
.sek-camera-v21 .effects-heading { padding-top:13px; }
.sek-camera-v21 .effects-grid { margin:9px 0 16px; }
.sek-camera-v21 .effect-card { padding:13px; }
.sek-camera-v21 .effect-range { margin-top:11px; }
.sek-camera-v21 .sk21-drawer-done { background:#2e4335!important; color:#fff; margin-top:7px; min-height:47px; }
.sek-camera-v21.is-review .filter-studio { display:none!important; }
@media (min-width:730px) {
 .sek-camera-v21 .cam-overlay-header {padding-top:35px;}
 .sek-camera-v21 .camera-controls {padding-bottom:35px;}
 .sek-camera-v21 .cam-film-stamp {left:35px;}
}
@media (max-width:620px) {
 .sek-camera-v21 .cam-overlay-header {grid-template-columns:44px minmax(0,1fr) 44px; padding:calc(15px + env(safe-area-inset-top,0px)) 16px 0; gap:6px;}
 .sek-camera-v21 .cam-glass.circle {width:44px; height:44px; min-height:44px;}
 .sek-camera-v21 .cam-wedding-title strong {font-size:clamp(22px,6.5vw,29px);}
 .sek-camera-v21 .camera-actions-row {grid-template-columns:48px minmax(0,1fr) 48px; margin-bottom:20px; gap:7px;}
 .sek-camera-v21 .camera-actions-row>.cam-glass {width:48px;height:48px;min-height:48px;}
 .sek-camera-v21 .camera-ratio button {padding:10px clamp(13px,4vw,21px);}
 .sek-camera-v21 .camera-controls {padding-inline:16px; padding-bottom:max(24px,calc(14px + env(safe-area-inset-bottom,0px)));}
 .sek-camera-v21 .camera-snap-row {grid-template-columns:1fr 90px 1fr; margin-bottom:20px;}
 .sek-camera-v21 .camera-shutter {width:88px;height:88px;}
 .sek-camera-v21 .cam-remaining {width:67px;height:73px;border-radius:20px;}
 .sek-camera-v21 .cam-film-stamp {left:14px;bottom:29%;font-size:10px;letter-spacing:2px;}
 .sek-camera-v21 .cam-upload {min-height:51px;}
 .sek-camera-v21 .effects-grid {grid-template-columns:1fr;}
}
@media (max-height:680px) {
 .sek-camera-v21 .cam-overlay-header {padding-top:11px;}
 .sek-camera-v21 .cam-wedding-title strong {font-size:clamp(20px,5vw,26px);}
 .sek-camera-v21 .cam-wedding-title {gap:3px;}
 .sek-camera-v21 .sk21-look-switch {margin-top:3px;}
 .sek-camera-v21 .sk21-look-switch button,.sek-camera-v21 .sk21-look-switch span {min-height:29px;padding:6px 11px;font-size:9px;}
 .sek-camera-v21 .camera-actions-row {margin-bottom:12px;}
 .sek-camera-v21 .camera-snap-row {margin-bottom:12px;}
 .sek-camera-v21 .camera-shutter {width:74px;height:74px;}
 .sek-camera-v21 .camera-snap-row {grid-template-columns:1fr 82px 1fr;}
 .sek-camera-v21 .cam-remaining {height:58px;width:60px;border-radius:16px;}
 .sek-camera-v21 .cam-remaining b {font-size:26px;}
 .sek-camera-v21 .cam-upload {min-height:44px;}
 .sek-camera-v21 .camera-controls {padding-bottom:14px;}
 .sek-camera-v21 .cam-film-stamp {max-height:33%;bottom:33%;}
}
@media (max-width:350px) {
 .sek-camera-v21 .cam-overlay-header {padding-inline:10px;}
 .sek-camera-v21 .cam-wedding-title strong {font-size:21px;}
 .sek-camera-v21 .camera-ratio button {padding-inline:10px;letter-spacing:1.5px;}
 .sek-camera-v21 .camera-controls {padding-inline:10px;}
 .sek-camera-v21 .cam-film-stamp {left:8px;}
 .sek-camera-v21 .sk21-look-switch button,.sek-camera-v21 .sk21-look-switch span {padding-inline:9px;letter-spacing:1px;}
}
@media (prefers-reduced-motion:reduce){.sek-camera-v21 .camera-shutter{transition:none;}}

/* SEK E P I N G — Camera Studio V22
   A readable live-filter shelf and a distinct front/back camera control.
   The controls stay in the viewport, including small mobile screens. */
.sek-camera-v22 { --sk22-ivory:#f8f4ed; --sk22-ivory-dim:#ede4d4; --sk22-ink:#231f1c; --sk22-brass:#ddc49c; }
.sek-camera-v22 .sk21-screen-shade {
 background:linear-gradient(180deg,rgba(10,9,9,.70) 0%,rgba(12,10,10,.2) 17%,transparent 35%,transparent 43%,rgba(10,9,9,.18) 54%,rgba(8,7,7,.66) 75%,rgba(8,7,7,.91) 100%);
}
.sek-camera-v22 .cam-overlay-header { grid-template-columns:90px minmax(0,1fr) 90px; align-items:start; gap:3px; padding:calc(17px + env(safe-area-inset-top,0px)) 18px 0; }
.sek-camera-v22 .cam-overlay-header>.cam-glass {justify-self:start;}
.sek-camera-v22 .cam-glass.circle.sk22-back {width:43px;height:43px;min-height:43px;border-color:#ffffff45;}
.sek-camera-v22 .cam-glass.circle.sk22-back .ico {width:22px;height:22px;}
.sek-camera-v22 .cam-wedding-title {gap:5px;padding:0;}
.sek-camera-v22 .sk22-eyebrow {white-space:nowrap;color:var(--sk22-brass);font:600 9px/1.4 'DM Sans',sans-serif;letter-spacing:2.15px;text-shadow:0 1px 8px #0005;}
.sek-camera-v22 .sk22-eyebrow i {font-style:normal;opacity:.6;padding:0 3px;}
.sek-camera-v22 .cam-wedding-title strong {font:600 clamp(22px,6.3vw,31px)/1.12 'Playfair Display',Georgia,serif;letter-spacing:.05px;}
.sek-camera-v22 .cam-wedding-title small {font:500 9px/1.4 ui-monospace,SFMono-Regular,monospace;letter-spacing:1.55px;color:#eee7da;white-space:nowrap;}
.sek-camera-v22 .sk22-top-filter {justify-self:end;display:flex;align-items:center;gap:7px;height:42px;max-width:100%;padding:0 12px;border-radius:22px;border:1px solid #ffffff70;background:#f8f4efec;color:#342a21;box-shadow:0 3px 20px #0003;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);font:700 10px/1 'DM Sans',sans-serif;letter-spacing:1.1px;cursor:pointer;pointer-events:auto;}
.sek-camera-v22 .sk22-top-filter svg {width:17px;height:17px;stroke-width:1.5;}
.sek-camera-v22 .sk22-top-filter:active,.sek-camera-v22 .cam-glass.circle.sk22-back:active {transform:scale(.96);}
.sek-camera-v22 .cam-film-stamp {display:none!important;}
.sek-camera-v22 .camera-controls {padding:20px clamp(14px,4.5vw,24px) max(22px,calc(14px + env(safe-area-inset-bottom,0px)));background:linear-gradient(transparent,rgba(12,11,10,.35) 9%,rgba(10,9,9,.70) 42%,rgba(8,8,8,.90) 100%);}
.sek-camera-v22 .sk22-filter-strip {pointer-events:auto;width:min(100%,480px);margin:0 auto 15px;min-width:0;}
.sek-camera-v22 .sk22-filter-heading {display:flex;justify-content:space-between;align-items:center;gap:10px;margin:0 3px 8px;color:#f7f0e5;}
.sek-camera-v22 .sk22-filter-heading>span {display:inline-flex;align-items:center;gap:7px;font:700 10px/1.2 'DM Sans',sans-serif;letter-spacing:1.5px;white-space:nowrap;}
.sek-camera-v22 .sk22-gold-spark {color:var(--sk22-brass);font-style:normal;font-size:14px;}
.sek-camera-v22 .sk22-all-filters {display:inline-flex;gap:4px;align-items:center;padding:7px 4px;border:0;color:var(--sk22-brass);background:transparent;font:600 11px/1.2 'DM Sans',sans-serif;letter-spacing:.1px;white-space:nowrap;}
.sek-camera-v22 .sk22-all-filters .ico {height:14px;width:14px;stroke-width:1.5;}
.sek-camera-v22 .sk22-filter-rail {display:flex;gap:13px;align-items:start;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none;scroll-snap-type:x proximity;padding:0 3px 3px;-webkit-overflow-scrolling:touch;touch-action:pan-x;}
.sek-camera-v22 .sk22-filter-rail::-webkit-scrollbar {display:none;}
.sek-camera-v22 .sk22-filter-chip {flex:0 0 57px;min-width:0;display:flex;flex-direction:column;align-items:center;gap:6px;padding:1px 0 3px;border:0;background:transparent;color:#eee6dc;scroll-snap-align:start;cursor:pointer;}
.sek-camera-v22 .sk22-filter-thumb {display:block;width:52px;height:52px;padding:3px;position:relative;border:1.5px solid #ffffff6b;border-radius:50%;background:#ffffff14;overflow:hidden;transition:border-color .16s,background .16s,transform .16s;}
.sek-camera-v22 .sk22-filter-scene {display:block;position:relative;width:100%;height:100%;overflow:hidden;border-radius:50%;background:linear-gradient(160deg,#c8ddd6 0%,#e6d6b9 50%,#8d8a72 100%);}
.sek-camera-v22 .sk22-filter-scene:before {content:'';position:absolute;top:8px;left:17px;width:17px;height:17px;border-radius:50%;background:#fae9c3;box-shadow:0 0 14px #ffe7bd;}
.sek-camera-v22 .sk22-filter-scene i,.sek-camera-v22 .sk22-filter-scene b {position:absolute;display:block;width:85px;height:47px;border-radius:50%;transform:rotate(-19deg);left:-19px;bottom:-32px;background:#83907d;}
.sek-camera-v22 .sk22-filter-scene b {bottom:-41px;left:8px;background:#586d6b;transform:rotate(20deg);}
.sek-camera-v22 .sk22-filter-chip.active .sk22-filter-thumb {border:2px solid var(--sk22-brass);padding:2.5px;background:rgba(226,196,151,.17);box-shadow:0 0 0 2px #1119;transform:translateY(-2px);}
.sek-camera-v22 .sk22-filter-chip.active .sk22-filter-thumb:after {position:absolute;right:0;bottom:0;content:'✓';display:grid;place-items:center;font:800 10px/1 'DM Sans',sans-serif;color:#1d1b18;width:15px;height:15px;border-radius:50%;background:var(--sk22-brass);border:1px solid #221f1b;}
.sek-camera-v22 .sk22-filter-name {font:600 9px/1.3 'DM Sans',sans-serif;text-align:center;white-space:nowrap;max-width:72px;letter-spacing:.1px;}
.sek-camera-v22 .sk22-filter-chip.active .sk22-filter-name {color:var(--sk22-brass);font-weight:700;}
.sek-camera-v22 .camera-actions-row {grid-template-columns:68px minmax(0,1fr) 68px;gap:7px;width:min(100%,415px);margin:0 auto 13px;}
.sek-camera-v22 .sk22-action {display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-width:0;min-height:65px;padding:4px 0;background:transparent;color:var(--sk22-ivory);border:0;cursor:pointer;}
.sek-camera-v22 .sk22-action-icon {display:grid;place-items:center;width:43px;height:43px;border:1px solid #ffffff65;border-radius:50%;background:#ffffff15;box-shadow:inset 0 1px 0 #ffffff12;backdrop-filter:blur(9px);-webkit-backdrop-filter:blur(9px);}
.sek-camera-v22 .sk22-action-icon .ico {width:19px;height:19px;stroke-width:1.5;}
.sek-camera-v22 .sk22-flip-svg {width:29px;height:29px;}
.sek-camera-v22 .sk22-action-text {font:650 8.5px/1 'DM Sans',sans-serif;letter-spacing:.65px;white-space:nowrap;color:#e8e1d7;}
.sek-camera-v22 .sk22-action[aria-pressed="true"] .sk22-action-icon {background:#e9d4ac;color:#2d2922;border-color:#ebd9b8;}
.sek-camera-v22 .sk22-action[aria-pressed="true"] .sk22-action-text {color:#f6ddb0;}
.sek-camera-v22 .sk22-flip .sk22-action-icon {border-color:#e8d0a68a;}
.sek-camera-v22 .camera-ratio {justify-self:center;padding:3px;background:rgba(16,15,14,.48);border:1px solid #ffffff67;box-shadow:0 4px 20px #0002;gap:2px;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);}
.sek-camera-v22 .camera-ratio button {font:700 clamp(9px,2.4vw,11px)/1 'DM Sans',sans-serif;letter-spacing:1.1px;padding:11px clamp(12px,3.8vw,25px);min-height:35px;}
.sek-camera-v22 .camera-ratio button.selected {background:var(--sk22-ivory);color:#2e2924;box-shadow:0 2px 7px #0002;}
.sek-camera-v22 .camera-snap-row {grid-template-columns:1fr 90px 1fr;gap:8px;width:min(100%,390px);margin:0 auto 13px;}
.sek-camera-v22 .camera-shutter {display:grid;place-items:center;width:80px;height:80px;border:3px solid #fdf9f2;background:transparent;box-shadow:0 3px 22px #0005,inset 0 0 0 2px #0004;transition:transform .16s;}
.sek-camera-v22 .camera-shutter span {display:block;width:64px;height:64px;background:#fcf8f0;border-radius:50%;box-shadow:0 2px 12px #0003;}
.sek-camera-v22 .camera-shutter:active {transform:scale(.93);}
.sek-camera-v22 .cam-remaining {justify-self:start;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:2px;background:transparent;border:1px solid #ffffff36;box-shadow:none;width:67px;height:67px;border-radius:16px;}
.sek-camera-v22 .cam-remaining b {font:500 30px/1 'Playfair Display',Georgia,serif;letter-spacing:0;}
.sek-camera-v22 .cam-remaining span {font:600 9px/1 'DM Sans',sans-serif;letter-spacing:1.15px;color:#dacebf;}
.sek-camera-v22 .sk22-shutter-hint {justify-self:end;font:500 8.5px/1.5 'DM Sans',sans-serif;text-align:right;letter-spacing:.55px;color:#bdb3a6;}
.sek-camera-v22 .cam-upload {display:flex;align-items:center;justify-content:center;gap:10px;min-height:47px;width:min(100%,390px);padding:11px 18px;background:#fcf8f2;color:#37302a;border:1px solid #f7f3ed;border-radius:30px;font:700 11px/1.3 'DM Sans',sans-serif;letter-spacing:.3px;box-shadow:0 7px 22px #0005;}
.sek-camera-v22 .cam-upload .ico {width:16px;height:16px;stroke-width:1.6;}
.sek-camera-v22 .cam-upload:hover {background:white;}
.sek-camera-v22 .camera-message {background:#1e1c1acb;border:1px solid #ffffff33;top:41%;}
/* Filter studio—an actual selectable shelf with separate effect controls. */
.sek-camera-v22 .sk21-filter-scrim {z-index:20;}
.sek-camera-v22 .filter-studio {z-index:22;max-width:660px;max-height:min(79dvh,690px);padding:14px clamp(17px,5vw,26px) max(24px,calc(14px + env(safe-area-inset-bottom,0px)));background:#f7f3ed;border:0;border-radius:27px 27px 0 0;box-shadow:0 -15px 65px #0007;}
.sek-camera-v22 .sk21-drawer-grip {background:#c5bcae;margin-bottom:18px;}
.sek-camera-v22 .filter-studio-header {display:flex;justify-content:space-between;align-items:flex-start;gap:9px;margin-bottom:10px;}
.sek-camera-v22 .filter-studio-header .micro {color:#91795f;font:700 9px/1.3 'DM Sans',sans-serif;letter-spacing:1.5px;}
.sek-camera-v22 .filter-studio-header h2 {font:600 clamp(24px,6.2vw,30px)/1.15 'Playfair Display',Georgia,serif;margin:5px 0;}
.sek-camera-v22 .filter-studio-header p {font:400 12px/1.45 'DM Sans',sans-serif;color:#746a5e;margin:5px 0;}
.sek-camera-v22 .sk21-drawer-close {width:40px;height:40px;border-radius:50%;background:#ede7de;}
.sek-camera-v22 .sk22-panel-active {display:flex;align-items:center;gap:6px;padding:9px 11px;margin:8px 0 14px;background:#e9e1d5;color:#594733;border-radius:10px;font:500 11px/1.3 'DM Sans',sans-serif;}
.sek-camera-v22 .sk22-panel-active .ico {width:14px;height:14px;}
.sek-camera-v22 .sk22-panel-active strong {color:#292019;}
.sek-camera-v22 .filter-category-row {gap:8px;padding-bottom:13px;}
.sek-camera-v22 .filter-category {padding:9px 14px;font:600 11px/1.2 'DM Sans',sans-serif;}
.sek-camera-v22 .filter-category.active {background:#292621;border-color:#292621;color:white;}
.sek-camera-v22 .filter-preview-grid {gap:10px;padding-bottom:12px;scrollbar-width:none;}
.sek-camera-v22 .filter-preview-grid::-webkit-scrollbar {display:none;}
.sek-camera-v22 .filter-preview-card {flex:0 0 107px;border:1.5px solid #ddd3c7;background:#fffdf9;border-radius:13px;padding:6px;gap:7px;box-shadow:0 2px 7px #3e342015;}
.sek-camera-v22 .filter-preview-card.active {border:2px solid #af8e62;background:#f3e8d7;}
.sek-camera-v22 .filter-preview-card .filter-thumbnail {border-radius:8px;aspect-ratio:4/5;}
.sek-camera-v22 .filter-preview-card .filter-name {font:600 11px/1.2 'DM Sans',sans-serif;}
.sek-camera-v22 .effects-heading {padding-top:13px;border-top:1px solid #ddd0c1;}
.sek-camera-v22 .effects-grid {margin:8px 0 10px;}
.sek-camera-v22 .sk21-drawer-done {position:sticky;bottom:0;z-index:1;border-radius:25px;box-shadow:0 5px 18px #0003!important;background:#302922!important;color:white!important;min-height:46px;}
.sek-camera-v22.is-review .camera-controls {padding-bottom:max(32px,calc(20px + env(safe-area-inset-bottom,0px)));}
.sek-camera-v22.is-review .camera-review-actions .cam-glass {border-radius:25px;}
.sek-camera-v22.is-review .cam-review-save {background:#f8f4ed;color:#2b251d;border-radius:25px;}
@media (max-width:410px){
 .sek-camera-v22 .cam-overlay-header {grid-template-columns:71px minmax(0,1fr) 71px;padding-inline:14px;}
 .sek-camera-v22 .sk22-top-filter {height:39px;padding:0 8px;font-size:9px;gap:5px;}
 .sek-camera-v22 .sk22-top-filter svg {width:15px;height:15px;}
 .sek-camera-v22 .cam-glass.circle.sk22-back {width:39px;height:39px;min-height:39px;}
 .sek-camera-v22 .sk22-eyebrow {font-size:8px;letter-spacing:1.45px;}
 .sek-camera-v22 .cam-wedding-title strong {font-size:clamp(18px,6vw,26px);}
 .sek-camera-v22 .cam-wedding-title small {font-size:8.5px;letter-spacing:1.1px;}
 .sek-camera-v22 .sk22-filter-rail {gap:10px;}
 .sek-camera-v22 .sk22-filter-chip {flex-basis:54px;}
 .sek-camera-v22 .sk22-filter-thumb {width:49px;height:49px;}
 .sek-camera-v22 .camera-actions-row {grid-template-columns:62px minmax(0,1fr) 62px;}
 .sek-camera-v22 .camera-ratio button {padding-inline:clamp(13px,3.5vw,19px);}
}
@media (max-height:760px){
 .sek-camera-v22 .cam-overlay-header {padding-top:calc(11px + env(safe-area-inset-top,0px));}
 .sek-camera-v22 .camera-controls {padding-top:12px;padding-bottom:max(13px,env(safe-area-inset-bottom,0px));}
 .sek-camera-v22 .sk22-filter-strip {margin-bottom:6px;}
 .sek-camera-v22 .sk22-filter-heading {margin-bottom:4px;}
 .sek-camera-v22 .sk22-filter-thumb {width:43px;height:43px;}
 .sek-camera-v22 .sk22-filter-chip {gap:4px;}
 .sek-camera-v22 .camera-actions-row {margin-bottom:3px;}
 .sek-camera-v22 .sk22-action {min-height:56px;gap:2px;}
 .sek-camera-v22 .sk22-action-icon {width:38px;height:38px;}
 .sek-camera-v22 .camera-snap-row {margin-bottom:8px;grid-template-columns:1fr 76px 1fr;}
 .sek-camera-v22 .camera-shutter {width:70px;height:70px;}
 .sek-camera-v22 .camera-shutter span {width:55px;height:55px;}
 .sek-camera-v22 .cam-upload {min-height:40px;padding-block:8px;}
 .sek-camera-v22 .cam-remaining {height:57px;width:57px;}
 .sek-camera-v22 .cam-remaining b {font-size:25px;}
}
@media (max-height:610px){
 .sek-camera-v22 .sk22-eyebrow {display:none;}
 .sek-camera-v22 .sk22-filter-rail {gap:7px;}
 .sek-camera-v22 .sk22-filter-thumb {width:36px;height:36px;}
 .sek-camera-v22 .sk22-filter-chip {flex-basis:43px;}
 .sek-camera-v22 .sk22-filter-name {font-size:8px;}
 .sek-camera-v22 .sk22-filter-heading {margin-bottom:2px;}
 .sek-camera-v22 .sk22-action-icon {width:32px;height:32px;}
 .sek-camera-v22 .sk22-action {min-height:48px;}
 .sek-camera-v22 .camera-shutter {width:58px;height:58px;}
 .sek-camera-v22 .camera-shutter span {width:44px;height:44px;}
 .sek-camera-v22 .camera-snap-row {grid-template-columns:1fr 64px 1fr;}
 .sek-camera-v22 .cam-remaining {height:46px;width:49px;}
 .sek-camera-v22 .cam-remaining b {font-size:22px;}
}
@media (prefers-reduced-motion:reduce){.sek-camera-v22 .sk22-filter-thumb,.sek-camera-v22 .sk22-top-filter{transition:none}}


/* SEK E P I N G — Camera Studio V23
   Fewer better filters, collapsible quick filter rail, and a truly centered shutter. */
.sek-camera-v23 .sk23-filter-strip{width:min(100%,480px);margin:0 auto 15px;padding:11px 12px 12px;border-radius:22px;background:rgba(14,13,12,.32);border:1px solid rgba(255,255,255,.14);backdrop-filter:blur(9px);-webkit-backdrop-filter:blur(9px)}
.sek-camera-v23 .sk22-filter-heading{margin:0;color:#f7f0e5}
.sek-camera-v23 .sk23-filter-heading-actions{display:flex;align-items:center;gap:8px}
.sek-camera-v23 .sk23-filter-toggle{display:inline-flex;align-items:center;justify-content:center;min-height:28px;padding:7px 11px;border-radius:999px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.08);color:#f6e8cf;font:700 10px/1 'DM Sans',sans-serif;letter-spacing:.6px}
.sek-camera-v23 .sk23-filter-summary{margin-top:10px;padding:11px 12px;border-radius:14px;background:rgba(255,255,255,.08);color:#f4ecdf;font:600 11px/1.4 'DM Sans',sans-serif;letter-spacing:.15px}
.sek-camera-v23 .sk23-filter-summary strong{color:#f4d5a1}
.sek-camera-v23 .sk22-filter-rail{margin-top:10px}
.sek-camera-v23 .camera-actions-row{margin-bottom:13px}
.sek-camera-v23 .sk23-capture-meta{width:min(100%,390px);margin:0 auto 10px;display:grid;grid-template-columns:auto 1fr;align-items:center;gap:12px}
.sek-camera-v23 .cam-remaining{justify-self:start;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:2px;background:rgba(255,255,255,.06);border:1px solid #ffffff36;box-shadow:none;width:67px;height:67px;border-radius:16px}
.sek-camera-v23 .cam-remaining b{font:500 30px/1 'Playfair Display',Georgia,serif;letter-spacing:0}
.sek-camera-v23 .cam-remaining span{font:600 9px/1 'DM Sans',sans-serif;letter-spacing:1.15px;color:#dacebf}
.sek-camera-v23 .sk23-capture-note{min-width:0;color:#ddd0bf;font:500 10px/1.45 'DM Sans',sans-serif;letter-spacing:.25px;text-align:right}
.sek-camera-v23 .camera-snap-row{display:flex;justify-content:center;align-items:center;width:min(100%,390px);margin:0 auto 14px}
.sek-camera-v23 .camera-shutter{margin-inline:auto}
.sek-camera-v23 .sk22-shutter-hint{display:none}
.sek-camera-v23 .cam-upload{width:min(100%,390px);margin-inline:auto}
.sek-camera-v23 .filter-preview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:420px){
 .sek-camera-v23 .sk23-capture-meta{grid-template-columns:1fr;justify-items:center;gap:8px}
 .sek-camera-v23 .sk23-capture-note{text-align:center;font-size:9.5px;max-width:240px}
 .sek-camera-v23 .sk23-filter-heading-actions{gap:6px}
 .sek-camera-v23 .sk22-all-filters,.sek-camera-v23 .sk23-filter-toggle{font-size:9.5px;padding-inline:9px}
}
@media (max-width:360px){
 .sek-camera-v23 .sk23-filter-strip{padding:10px}
 .sek-camera-v23 .sk22-filter-chip{flex-basis:54px}
 .sek-camera-v23 .sk22-filter-thumb{width:49px;height:49px}
 .sek-camera-v23 .camera-shutter{width:76px;height:76px}
 .sek-camera-v23 .camera-shutter span{width:60px;height:60px}
}


/* Sekeping Camera V26 — cleaner bottom spacing, top quick toggles, centered shutter. */
.sek-camera-v23 .sk23-filter-strip{display:none!important}
.sek-camera-v23 .cam-overlay-header{grid-template-columns:52px minmax(0,1fr) auto;align-items:start;gap:6px}
.sek-camera-v23 .sk23-top-tools{justify-self:end;display:flex;flex-direction:column;align-items:flex-end;gap:6px;pointer-events:auto}
.sek-camera-v23 .sk23-top-toggle,.sek-camera-v23 .sk22-top-filter{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:0 11px;border-radius:18px;border:1px solid #ffffff70;background:#f8f4efec;color:#342a21;box-shadow:0 3px 20px #0003;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);font:700 9.5px/1 'DM Sans',sans-serif;letter-spacing:.9px;cursor:pointer;pointer-events:auto;white-space:nowrap}
.sek-camera-v23 .sk23-top-toggle.is-on{background:#e9d4ac;color:#2d2922;border-color:#ebd9b8}
.sek-camera-v23 .sk22-top-filter svg{width:15px;height:15px;stroke-width:1.5}
.sek-camera-v23 .camera-controls{padding-top:8px;padding-bottom:max(12px,calc(10px + env(safe-area-inset-bottom,0px)))}
.sek-camera-v23 .camera-actions-row{margin-bottom:6px}
.sek-camera-v23 .sk23-capture-meta{width:min(100%,390px);margin:0 auto 4px;display:flex;justify-content:flex-start;align-items:center;min-height:0}
.sek-camera-v23 .sk23-capture-note{display:none!important}
.sek-camera-v23 .camera-snap-row{display:flex;justify-content:center;align-items:center;width:min(100%,390px);margin:0 auto 6px}
.sek-camera-v23 .cam-upload{width:min(100%,390px);margin:0 auto}
.sek-camera-v23 .camera-shutter{display:grid;place-items:center;appearance:none;-webkit-appearance:none;margin-inline:auto;padding:0;border-radius:50%;background:transparent;line-height:0}
.sek-camera-v23 .camera-shutter span{display:block;flex:none;margin:0;border-radius:50%}
@media (max-width:420px){
 .sek-camera-v23 .cam-overlay-header{grid-template-columns:44px minmax(0,1fr) auto;padding-inline:12px}
 .sek-camera-v23 .sk23-top-tools{gap:5px}
 .sek-camera-v23 .sk23-top-toggle,.sek-camera-v23 .sk22-top-filter{min-height:31px;padding:0 9px;font-size:8.6px;letter-spacing:.75px}
 .sek-camera-v23 .camera-controls{padding-left:14px;padding-right:14px;padding-bottom:max(8px,calc(6px + env(safe-area-inset-bottom,0px)))}
 .sek-camera-v23 .camera-actions-row{margin-bottom:4px}
 .sek-camera-v23 .sk23-capture-meta{margin-bottom:2px}
 .sek-camera-v23 .camera-snap-row{margin-bottom:4px}
 .sek-camera-v23 .camera-shutter{width:74px;height:74px}
 .sek-camera-v23 .camera-shutter span{width:58px;height:58px}
}
@media (max-height:700px){
 .sek-camera-v23 .camera-controls{padding-top:4px;padding-bottom:max(6px,calc(4px + env(safe-area-inset-bottom,0px)))}
 .sek-camera-v23 .camera-actions-row{margin-bottom:2px}
 .sek-camera-v23 .sk23-capture-meta{margin-bottom:2px}
 .sek-camera-v23 .camera-snap-row{margin-bottom:2px}
}

/* V27 */
.sek-camera-v23 .cam-overlay-header{grid-template-columns:71px minmax(0,1fr) 71px}
.sek-camera-v23 .camera-actions-row{margin-bottom:0}
.sek-camera-v23 .camera-snap-row{display:grid;grid-template-columns:1fr 84px 1fr;align-items:center;gap:8px;margin:0 auto 18px;min-height:88px}
.sek-camera-v23 .camera-snap-row .sk23-capture-meta{grid-column:1;grid-row:1;justify-self:start;margin:0;width:auto}
.sek-camera-v23 .camera-snap-row .camera-shutter{grid-column:2;grid-row:1;justify-self:center}
.sek-camera-v23 .camera-snap-row .sk27-snap-spacer{grid-column:3;grid-row:1}
@media(max-width:420px){.sek-camera-v23 .cam-overlay-header{grid-template-columns:64px minmax(0,1fr) 64px}.sek-camera-v23 .camera-snap-row{grid-template-columns:1fr 76px 1fr;gap:6px;margin-bottom:18px;min-height:78px}}


/* V28 · Compact filter palette, floating directly over the BIASA/LEBAR row. */
.sek-camera-v23 .sk28-filter-popover[hidden]{display:none!important}
.sek-camera-v23 .sk28-filter-popover{
 position:absolute;z-index:15;bottom:calc(100% + 4px);left:50%;transform:translateX(-50%);
 width:min(430px,calc(100% - 28px));min-width:0;padding:13px 12px 14px;
 border:1px solid rgba(219,201,183,.28);border-radius:24px;
 background:rgba(48,35,29,.89);color:#f9f2e9;box-shadow:0 16px 30px rgba(0,0,0,.31);
 -webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);
 pointer-events:auto;animation:sk28FilterIn .17s ease-out both;
}
@keyframes sk28FilterIn{from{opacity:0;translate:0 8px}to{opacity:1;translate:0 0}}
.sek-camera-v23 .sk28-filter-heading{margin:0 0 11px;padding-left:3px;display:flex;align-items:center;gap:5px;font:750 10px/1.2 'DM Sans',system-ui,sans-serif;letter-spacing:1.7px;color:#ece1d3}
.sek-camera-v23 .sk28-filter-heading>span{font-size:12px;color:#e6cda2}
.sek-camera-v23 .sk28-filter-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:5px;align-items:start;width:100%}
.sek-camera-v23 .sk28-filter-choice{display:flex;flex-direction:column;align-items:center;justify-content:start;min-width:0;gap:6px;padding:0;border:0;background:none;color:#faf5ee;cursor:pointer;pointer-events:auto;font-family:'DM Sans',system-ui,sans-serif}
.sek-camera-v23 .sk28-filter-ring{position:relative;display:block;flex:none;width:clamp(35px,10vw,52px);height:clamp(35px,10vw,52px);max-width:100%;border-radius:50%;padding:3px;border:2px solid rgba(250,239,218,.7);background:rgba(252,248,239,.08);box-shadow:inset 0 0 0 1px rgba(0,0,0,.34);transition:border-color .15s ease,transform .15s ease}
.sek-camera-v23 .sk28-filter-choice.active .sk28-filter-ring{border-color:#e6c79c;box-shadow:0 0 0 2px rgba(247,236,217,.74),inset 0 0 0 1px #271f1a}
.sek-camera-v23 .sk28-filter-choice:active .sk28-filter-ring{transform:scale(.94)}
.sek-camera-v23 .sk28-filter-art{display:block;position:relative;overflow:hidden;width:100%;height:100%;border-radius:50%;background:linear-gradient(160deg,#d5decf 0%,#e9dab7 52%,#8e9483 53%,#6e7e77 100%)}
.sek-camera-v23 .sk28-filter-sun{position:absolute;left:38%;top:19%;width:37%;height:37%;border-radius:50%;background:#f7eac9;box-shadow:0 0 5px #fff1d3}
.sek-camera-v23 .sk28-filter-hill{position:absolute;bottom:-27%;left:-38%;width:115%;height:59%;border-radius:50%;background:#78877a;transform:rotate(-13deg)}
.sek-camera-v23 .sk28-filter-hill.rear{bottom:-32%;left:32%;width:115%;height:68%;background:#516d68;transform:rotate(12deg)}
.sek-camera-v23 .sk28-filter-label{display:block;width:100%;text-align:center;white-space:nowrap;font:650 clamp(7px,2vw,9px)/1.25 'DM Sans',system-ui,sans-serif;letter-spacing:-.12px;color:#f3e9df}
.sek-camera-v23 .sk28-filter-choice.active .sk28-filter-label{color:#f7dfb7;font-weight:800}
.sek-camera-v23 .sk22-top-filter.sk28-is-active{background:#f0e0c8;border-color:#e7cba4}
@media(max-width:370px){
 .sek-camera-v23 .sk28-filter-popover{width:calc(100% - 20px);padding:11px 9px 12px;border-radius:20px}
 .sek-camera-v23 .sk28-filter-grid{gap:3px}
 .sek-camera-v23 .sk28-filter-ring{width:clamp(32px,9.7vw,38px);height:clamp(32px,9.7vw,38px)}
 .sek-camera-v23 .sk28-filter-label{font-size:7px}
}
@media(max-height:620px){.sek-camera-v23 .sk28-filter-popover{bottom:calc(100% + 2px);padding-block:9px}.sek-camera-v23 .sk28-filter-heading{margin-bottom:6px}.sek-camera-v23 .sk28-filter-ring{width:35px;height:35px}}
@media(prefers-reduced-motion:reduce){.sek-camera-v23 .sk28-filter-popover{animation:none}.sek-camera-v23 .sk28-filter-ring{transition:none}}


/* Sekeping V53: live camera image remains crisp at bottom; no focus effects. */
.sek-camera-v21 .sk21-screen-shade,
.sek-camera-v22 .sk21-screen-shade,
.sek-camera-v23 .sk21-screen-shade{
  background:linear-gradient(180deg,rgba(9,8,8,.47) 0%,rgba(9,8,8,.12) 19%,transparent 36%,transparent 100%)!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  filter:none!important;
}
.sek-camera-v21 .camera-controls,
.sek-camera-v22 .camera-controls,
.sek-camera-v23 .camera-controls{
  background:transparent!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  filter:none!important;
}
.sek-camera-v23 .camera-controls .cam-glass,
.sek-camera-v23 .camera-controls .camera-ratio,
.sek-camera-v23 .sk28-filter-popover{
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}

/* ==== camera-panel-premium.css ==== */
/*
 Sekeping — Camera Studio V24
 Premium bottom sheet applied on top of V23 camera-fullscreen.css.
 Only modifies the filter drawer. Everything else stays as-is.
*/
.sek-camera-v23 .filter-studio.sk24-panel,
.sek-camera-v22 .filter-studio.sk24-panel {
 --sk24-ink:#2f2924;
 --sk24-gold:#ac8660;
 --sk24-soft:#a19484;
 --sk24-cream:#faf7f1;
 --sk24-border:#e9e0d6;
 position:fixed;
 left:0;right:0;bottom:0;
 z-index:22;
 box-sizing:border-box;
 display:block;
 width:100%;max-width:640px;
 height:auto;max-height:min(82dvh,740px);
 overflow-y:auto;overscroll-behavior:contain;
 -webkit-overflow-scrolling:touch;
 padding:13px clamp(18px,5vw,32px) max(25px,calc(18px + env(safe-area-inset-bottom,0px)));
 margin:0 auto;
 border:1px solid #f5eee6;border-bottom:0;
 border-radius:27px 27px 0 0;
 background:var(--sk24-cream);
 box-shadow:0 -22px 90px rgba(0,0,0,.42);
 color:var(--sk24-ink);
 scrollbar-width:thin;scrollbar-color:#ccb8a0 transparent;
 text-align:left;
}
.sek-camera-v23 .filter-studio.sk24-panel[hidden],
.sek-camera-v22 .filter-studio.sk24-panel[hidden] {display:none!important}
.sek-camera-v23 .sk24-panel *,
.sek-camera-v22 .sk24-panel * {box-sizing:border-box}
.sek-camera-v23 .sk24-panel .sk21-drawer-grip,
.sek-camera-v22 .sk24-panel .sk21-drawer-grip {
 display:block;width:38px;height:4px;border-radius:9px;
 background:#cdc0b0;margin:0 auto 17px;
}
.sek-camera-v23 .sk24-panel .filter-studio-header,
.sek-camera-v22 .sk24-panel .filter-studio-header {
 display:flex;align-items:flex-start;justify-content:space-between;
 gap:14px;margin:0 0 17px;
}
.sek-camera-v23 .sk24-panel .filter-studio-header>div,
.sek-camera-v22 .sk24-panel .filter-studio-header>div {min-width:0}
.sek-camera-v23 .sk24-panel .filter-studio-header .micro,
.sek-camera-v22 .sk24-panel .filter-studio-header .micro {
 display:block;color:#9e815f;
 font:700 9px/1.3 'DM Sans',system-ui,sans-serif;
 letter-spacing:1.5px;
}
.sek-camera-v23 .sk24-panel .filter-studio-header h2,
.sek-camera-v22 .sk24-panel .filter-studio-header h2 {
 font:600 clamp(25px,6.5vw,33px)/1.18 'Playfair Display',Georgia,serif;
 letter-spacing:-.45px;color:#2b241e;margin:6px 0 5px;
}
.sek-camera-v23 .sk24-panel .filter-studio-header p,
.sek-camera-v22 .sk24-panel .filter-studio-header p {
 color:#8c7f70;margin:0;font:400 11.5px/1.45 'DM Sans',system-ui,sans-serif;
}
.sek-camera-v23 .sk24-panel .sk21-drawer-close,
.sek-camera-v22 .sk24-panel .sk21-drawer-close {
 display:grid;place-items:center;flex:none;width:37px;height:37px;
 border-radius:50%;border:1px solid #e4dace;background:#f0e9df;
 color:#65574a;cursor:pointer;box-shadow:none;
}
.sek-camera-v23 .sk24-panel .sk21-drawer-close .ico,
.sek-camera-v22 .sk24-panel .sk21-drawer-close .ico {width:18px;height:18px}
.sek-camera-v23 .sk24-panel .sk24-current-look,
.sek-camera-v22 .sk24-panel .sk24-current-look {
 display:flex;align-items:center;gap:13px;
 position:relative;min-height:86px;
 padding:11px 13px;border-radius:15px;
 color:#f5efe6;
 background:linear-gradient(125deg,#2a342f 0%,#384438 62%,#424637 100%);
 box-shadow:inset 0 1px 0 #ffffff18,0 8px 25px #2c271f19;
 overflow:hidden;margin-bottom:18px;
}
.sek-camera-v23 .sk24-panel .sk24-current-look:after,
.sek-camera-v22 .sk24-panel .sk24-current-look:after {
 position:absolute;content:'';right:-31px;top:-68px;width:200px;height:170px;
 border-radius:50%;background:radial-gradient(circle,#d9c28d28,transparent 68%);
 pointer-events:none;
}
.sek-camera-v23 .sk24-panel .sk24-current-scene,
.sek-camera-v22 .sk24-panel .sk24-current-scene {
 display:block;width:66px;height:65px;flex:0 0 66px;
 overflow:hidden;padding:3px;border:1px solid #d2c4aa79;
 border-radius:10px;background:#8e9e8d20;
}
.sek-camera-v23 .sk24-panel .sk24-mini-scene,
.sek-camera-v22 .sk24-panel .sk24-mini-scene {
 display:block;position:relative;width:100%;height:100%;border-radius:7px;
 overflow:hidden;background:linear-gradient(155deg,#b5c4b9 0%,#f1d7ad 56%,#bf9777 100%);
}
.sek-camera-v23 .sk24-panel .sk24-mini-scene i,
.sek-camera-v22 .sk24-panel .sk24-mini-scene i {
 display:block;position:absolute;width:17px;height:17px;right:11px;top:10px;
 background:#ffe9b8;border-radius:50%;box-shadow:0 0 14px #ffebc8;
}
.sek-camera-v23 .sk24-panel .sk24-mini-scene b,
.sek-camera-v22 .sk24-panel .sk24-mini-scene b {
 position:absolute;bottom:-18px;left:-15px;width:100px;height:42px;
 border-radius:50%;transform:rotate(-18deg);background:#6e806b;
}
.sek-camera-v23 .sk24-panel .sk24-mini-scene em,
.sek-camera-v22 .sk24-panel .sk24-mini-scene em {
 position:absolute;bottom:-23px;right:-14px;width:80px;height:43px;
 border-radius:50%;transform:rotate(14deg);background:#435951;
}
.sek-camera-v23 .sk24-panel .sk24-current-copy,
.sek-camera-v22 .sk24-panel .sk24-current-copy {
 position:relative;z-index:1;display:flex;flex-direction:column;gap:3px;
 flex:1;min-width:0;
}
.sek-camera-v23 .sk24-panel .sk24-meta,
.sek-camera-v22 .sk24-panel .sk24-meta {
 display:block;color:#dbcaac;font:700 8px/1.4 'DM Sans',system-ui,sans-serif;
 letter-spacing:1.6px;
}
.sek-camera-v23 .sk24-panel .sk24-active-name,
.sek-camera-v22 .sk24-panel .sk24-active-name {
 font:600 clamp(17px,4.4vw,23px)/1.2 'Playfair Display',Georgia,serif;
 color:#fffaf1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.sek-camera-v23 .sk24-panel .sk24-active-desc,
.sek-camera-v22 .sk24-panel .sk24-active-desc {
 color:#d4d5c8;font:400 10px/1.4 'DM Sans',system-ui,sans-serif;
 white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.sek-camera-v23 .sk24-panel .sk24-active-pill,
.sek-camera-v22 .sk24-panel .sk24-active-pill {
 position:relative;z-index:1;display:flex;align-items:center;gap:5px;flex:none;
 align-self:flex-start;color:#e2d6bd;border:1px solid #b3b7a04a;
 background:#e5e2ca15;padding:6px 7px;border-radius:30px;
 font:700 8px/1 'DM Sans',system-ui,sans-serif;letter-spacing:1px;
}
.sek-camera-v23 .sk24-panel .sk24-active-dot,
.sek-camera-v22 .sk24-panel .sk24-active-dot {
 display:block;width:5px;height:5px;background:#d7cd95;border-radius:50%;
}
.sek-camera-v23 .sk24-panel .sk24-section-label,
.sek-camera-v22 .sk24-panel .sk24-section-label {
 display:flex;align-items:center;justify-content:space-between;gap:8px;
 margin:0 0 11px;
}
.sek-camera-v23 .sk24-panel .sk24-section-label>div,
.sek-camera-v22 .sk24-panel .sk24-section-label>div {display:flex;align-items:center;gap:10px}
.sek-camera-v23 .sk24-panel .sk24-section-index,
.sek-camera-v22 .sk24-panel .sk24-section-index,
.sek-camera-v23 .sk24-panel .sk24-effects-index,
.sek-camera-v22 .sk24-panel .sk24-effects-index {
 display:grid;place-items:center;flex:none;
 width:26px;height:26px;border:1px solid #ded2c2;border-radius:8px;
 background:#f0eae0;color:#927455;
 font:700 10px/1 'DM Sans',sans-serif;
}
.sek-camera-v23 .sk24-panel .sk24-section-label strong,
.sek-camera-v22 .sk24-panel .sk24-section-label strong {
 font:700 12px/1.3 'DM Sans',system-ui,sans-serif;letter-spacing:.12px;
}
.sek-camera-v23 .sk24-panel .sk24-section-label small,
.sek-camera-v22 .sk24-panel .sk24-section-label small {
 color:#958475;font:500 10px/1.4 'DM Sans',system-ui,sans-serif;
}
.sek-camera-v23 .sk24-panel .sk24-hide-original-active,
.sek-camera-v22 .sk24-panel .sk24-hide-original-active,
.sek-camera-v23 .sk24-panel .sk24-hide-categories,
.sek-camera-v22 .sk24-panel .sk24-hide-categories {display:none!important}
.sek-camera-v23 .sk24-panel .filter-preview-grid,
.sek-camera-v22 .sk24-panel .filter-preview-grid {
 display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;
 width:100%;padding:0;margin:0;overflow:visible;
}
.sek-camera-v23 .sk24-panel .filter-preview-card,
.sek-camera-v22 .sk24-panel .filter-preview-card {
 position:relative;display:flex;flex-direction:column;align-items:stretch;
 justify-content:flex-start;gap:6px;min-width:0;width:100%;flex:auto;
 scroll-snap-align:none;padding:6px;border:1.5px solid #e5ded3;
 border-radius:13px;background:#fffcf7;
 box-shadow:none;transform:none;transition:border-color .16s,background .16s;
}
.sek-camera-v23 .sk24-panel .filter-preview-card:hover,
.sek-camera-v22 .sk24-panel .filter-preview-card:hover {transform:none;border-color:#bda483}
.sek-camera-v23 .sk24-panel .filter-preview-card.active,
.sek-camera-v22 .sk24-panel .filter-preview-card.active {
 border:2px solid #a5835d;background:#f3eade;
 padding:5.5px;
 box-shadow:0 0 0 1px #ad89601a;
}
.sek-camera-v23 .sk24-panel .filter-thumbnail,
.sek-camera-v22 .sk24-panel .filter-thumbnail {
 position:relative;width:100%;height:auto;aspect-ratio:1.55;
 display:block;overflow:hidden;border-radius:8px;background:#ded1bd;
}
.sek-camera-v23 .sk24-panel .filter-landscape,
.sek-camera-v22 .sk24-panel .filter-landscape {
 width:100%;height:100%;border-radius:8px;
}
.sek-camera-v23 .sk24-panel .filter-name,
.sek-camera-v22 .sk24-panel .filter-name {
 display:block;width:100%;color:#54483b;
 font:650 10px/1.3 'DM Sans',system-ui,sans-serif;
 text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
 padding-bottom:2px;
}
.sek-camera-v23 .sk24-panel .filter-preview-card.active .filter-name,
.sek-camera-v22 .sk24-panel .filter-preview-card.active .filter-name {color:#735334}
.sek-camera-v23 .sk24-panel .filter-selected,
.sek-camera-v22 .sk24-panel .filter-selected {
 position:absolute;right:10px;top:9px;display:grid;place-items:center;
 width:19px;height:19px;border-radius:50%;background:#a27d55;color:#fff;
 border:2px solid #fffcf7;box-shadow:0 2px 5px #0004;
}
.sek-camera-v23 .sk24-panel .filter-selected .ico,
.sek-camera-v22 .sk24-panel .filter-selected .ico {width:10px;height:10px}
.sek-camera-v23 .sk24-panel .sk24-grid-hint,
.sek-camera-v22 .sk24-panel .sk24-grid-hint {
 color:#9a8c7b;margin:9px 0 19px;
 font:400 10px/1.35 'DM Sans',system-ui,sans-serif;
}
.sek-camera-v23 .sk24-panel .sk24-effects-heading,
.sek-camera-v22 .sk24-panel .sk24-effects-heading {
 display:flex;align-items:center;gap:10px;margin:0 0 10px;
 padding:14px 0 0;border-top:1px solid var(--sk24-border);
}
.sek-camera-v23 .sk24-panel .sk24-effects-heading > .ico,
.sek-camera-v22 .sk24-panel .sk24-effects-heading > .ico {display:none}
.sek-camera-v23 .sk24-panel .sk24-effects-heading strong,
.sek-camera-v22 .sk24-panel .sk24-effects-heading strong {
 display:block;color:#342c26;font:700 12px/1.3 'DM Sans',system-ui,sans-serif;
}
.sek-camera-v23 .sk24-panel .sk24-effects-heading p,
.sek-camera-v22 .sk24-panel .sk24-effects-heading p {
 color:#958475;font:400 10px/1.4 'DM Sans',system-ui,sans-serif;margin:3px 0 0;
}
.sek-camera-v23 .sk24-panel .sk24-effect-list,
.sek-camera-v22 .sk24-panel .sk24-effect-list {
 display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0 0 14px;
}
.sek-camera-v23 .sk24-panel .effect-card,
.sek-camera-v22 .sk24-panel .effect-card {
 min-width:0;margin:0;border:1px solid #e2dacd;background:#fffcf8;
 border-radius:13px;padding:12px 10px;
 box-shadow:none;
}
.sek-camera-v23 .sk24-panel .effect-card-row,
.sek-camera-v22 .sk24-panel .effect-card-row {align-items:center;gap:7px}
.sek-camera-v23 .sk24-panel .effect-label,
.sek-camera-v22 .sk24-panel .effect-label {font:700 11px/1.3 'DM Sans',sans-serif}
.sek-camera-v23 .sk24-panel .effect-caption,
.sek-camera-v22 .sk24-panel .effect-caption {font:400 9px/1.4 'DM Sans',sans-serif;color:#978979}
.sek-camera-v23 .sk24-panel .effect-status,
.sek-camera-v22 .sk24-panel .effect-status {font-size:8px;letter-spacing:.2px}
.sek-camera-v23 .sk24-panel .effect-toggle,
.sek-camera-v22 .sk24-panel .effect-toggle {flex:none}
.sek-camera-v23 .sk24-panel .effect-toggle.active,
.sek-camera-v22 .sk24-panel .effect-toggle.active {background:#41604b}
.sek-camera-v23 .sk24-panel .effect-range,
.sek-camera-v22 .sk24-panel .effect-range {margin-top:12px;gap:4px;font-size:9px}
.sek-camera-v23 .sk24-panel .sk24-done,
.sek-camera-v22 .sk24-panel .sk24-done {
 display:flex;align-items:center;justify-content:center;gap:10px;
 position:sticky;bottom:0;z-index:3;width:100%;min-height:49px;
 margin:10px 0 0;padding:11px 18px;border-radius:40px;
 border:1px solid #35483b;background:#35483b!important;color:#fcf9f3!important;
 box-shadow:0 5px 18px #171b1937;font:700 12px/1.2 'DM Sans',system-ui,sans-serif;
 text-align:center;
}
.sek-camera-v23 .sk24-panel .sk24-done svg,
.sek-camera-v22 .sk24-panel .sk24-done svg {width:16px;height:16px;flex:none}
@media (max-width:360px) {
 .sek-camera-v23 .sk24-panel .sk24-current-look,
 .sek-camera-v22 .sk24-panel .sk24-current-look {gap:9px;padding:9px}
 .sek-camera-v23 .sk24-panel .sk24-active-pill,
 .sek-camera-v22 .sk24-panel .sk24-active-pill {font-size:7px;padding:4px}
 .sek-camera-v23 .sk24-panel .filter-preview-grid,
 .sek-camera-v22 .sk24-panel .filter-preview-grid {gap:6px}
 .sek-camera-v23 .sk24-panel .filter-name,
 .sek-camera-v22 .sk24-panel .filter-name {font-size:9px}
}
@media (prefers-reduced-motion:reduce) {
 .sek-camera-v23 .sk24-panel .filter-preview-card,
 .sek-camera-v22 .sk24-panel .filter-preview-card {transition:none}
}

/* Native phone camera input option (Sekeping V52). */
.sek-camera-v23 .sk51-camera-imports{width:min(100%,390px);margin-inline:auto;display:flex;flex-direction:column;gap:5px;align-items:center}
.sek-camera-v23 .sk51-camera-imports .cam-upload{margin:0;width:100%;flex:none}
.sek-camera-v23 .sk51-native-camera{cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px;min-height:29px;padding:3px 10px;color:rgba(255,250,239,.87);font:600 10px/1.25 'DM Sans',sans-serif;letter-spacing:.2px;text-shadow:0 1px 5px #0009}
.sek-camera-v23 .sk51-native-camera .ico{width:14px;height:14px}
.sek-camera-v23 .sk51-native-camera:active{opacity:.65}
@media(max-height:700px){.sek-camera-v23 .sk51-native-camera{font-size:9px;min-height:24px}.sek-camera-v23 .sk51-camera-imports{gap:1px}}

/* ==== classic-refinement.css ==== */
/* Sekeping V30 — ivory paper, forest ink and restrained antique gold.
   Scoped presentation refinements; camera controls and media behaviour stay independent. */
:root {
  --sk-paper: #fffcf7;
  --sk-ivory: #f8f5ee;
  --sk-forest: #243f34;
  --sk-muted: #686d62;
  --sk-line: #e1dbce;
  --sk-gold: #a48a62;
}
body {background:var(--sk-ivory)}
#sek-v20.wedding-landing {
  --sk-ivory:#f8f5ee; --sk-paper:#fffcf7; --sk-ink:#243f34;
  --sk-gold:#a48a62; --sk-line:#e1dbce;
  background:var(--sk-ivory);
}
#sek-v20.wedding-landing .sk20-top {height:52px;background:var(--sk-paper);border-color:var(--sk-line)}
#sek-v20.wedding-landing .sk20-top-inner {padding-inline:18px}
#sek-v20.wedding-landing .brand {font-size:24px}
#sek-v20.wedding-landing .brand-logo {color:var(--sk-gold)}
#sek-v20.wedding-landing .sk20-header-tag {background:transparent;border:0;padding:5px 0;color:#626b60;font-size:10px;font-weight:500}
#sek-v20.wedding-landing .sk20-lang {width:36px;height:36px;background:transparent;border-color:var(--sk-line);font-weight:500}
#sek-v20.wedding-landing .sk20-page {min-height:calc(100svh - 52px)}
#sek-v20.wedding-landing .sk20-hero {flex:1 0 280px;height:auto;min-height:280px;background:#e6e3d7}
#sek-v20.wedding-landing .sk20-cover .cover-art-fallback {background:radial-gradient(ellipse at 70% 20%,#f6efe0,transparent 65%),linear-gradient(130deg,#cbd2c3,#e3ddce 60%,#bbc8b8)}
#sek-v20.wedding-landing .sk20-mist {height:58%;background:linear-gradient(to top,#f8f5ee 0%,rgba(248,245,238,.93) 21%,rgba(248,245,238,.65) 49%,rgba(248,245,238,.12) 82%,transparent)}
#sek-v20.wedding-landing .sk20-mist:after {display:none}
#sek-v20.wedding-landing .sk20-wedding {bottom:22px;left:20px;right:20px;text-shadow:0 1px 7px #fffcf799}
#sek-v20.wedding-landing .sk20-eyebrow {color:#655c4c;font-size:10px;font-weight:600;letter-spacing:2px;margin-bottom:7px}
#sek-v20.wedding-landing .sk20-names {font-size:clamp(34px,9.3vw,57px);line-height:1.13;letter-spacing:-1.2px;margin:0 0 10px;color:var(--sk-forest)}
#sek-v20.wedding-landing .sk20-names em {color:var(--sk-gold)}
#sek-v20.wedding-landing .sk20-meta {font-size:12px;line-height:1.4;gap:3px;color:#4c5b4e}
#sek-v20.wedding-landing .sk20-meta-line {max-width:100%;overflow-wrap:anywhere}
#sek-v20.wedding-landing .sk20-meta-line svg {width:13px;height:13px;color:#7e806d}
#sek-v20.wedding-landing .sk20-lower {margin-top:0;gap:22px;padding:0 16px max(20px,env(safe-area-inset-bottom,0px));flex:none}
#sek-v20.wedding-landing .sk20-capture {padding:16px;border:1px solid var(--sk-line);border-radius:14px;background:var(--sk-paper);box-shadow:0 5px 18px #243f3405}
#sek-v20.wedding-landing .sk20-capture:before {display:none}
#sek-v20.wedding-landing .sk30-capture-head {position:relative;min-height:42px;display:flex;align-items:center;justify-content:center}
#sek-v20.wedding-landing .sk20-card-intro {padding:0 51px;min-height:42px;gap:5px;width:100%}
#sek-v20.wedding-landing .sk20-capture-label {font-size:10px;letter-spacing:1.6px;color:#54604f;white-space:normal;line-height:1.4}
#sek-v20.wedding-landing .sk20-capture-sub {font-size:11px;line-height:1.45;color:var(--sk-muted);white-space:normal;text-wrap:pretty}
#sek-v20.wedding-landing .sk20-quota {right:0;top:50%;transform:translateY(-50%);font-size:9px;gap:3px;padding:6px 5px;background:#eef1e9;border:1px solid #dce3d5;color:#435940}
#sek-v20.wedding-landing .sk20-input-holder {margin-top:12px}
#sek-v20.wedding-landing .sk20-guest-name {height:46px;min-height:46px;border:1px solid #ded8ca;background:#fffefa;box-shadow:none;font-size:19px}
#sek-v20.wedding-landing .sk20-guest-name::placeholder {font-size:13px;color:#73796c}
#sek-v20.wedding-landing .sk20-name-clear {width:30px;height:30px;background:transparent;border:0;color:#6a7264}
#sek-v20.wedding-landing .sk20-camera {height:49px;min-height:49px;gap:10px;margin-top:10px;background:var(--sk-forest);border-color:var(--sk-forest);box-shadow:none;font-size:21px;font-weight:400}
#sek-v20.wedding-landing .sk20-camera svg {height:19px;width:19px}
#sek-v20.wedding-landing .sk20-memory-heading {margin:0 0 12px;padding:0;align-items:center;gap:12px}
#sek-v20.wedding-landing .sk20-memory-heading h2 {font-size:25px;line-height:1.2;letter-spacing:-.5px;color:var(--sk-forest)}
#sek-v20.wedding-landing .sk20-memory-heading p {font-size:10px;color:var(--sk-muted);white-space:normal;max-width:100px;text-align:right;line-height:1.5}
#sek-v20.wedding-landing .sk20-tiles {gap:10px}
#sek-v20.wedding-landing .sk20-tile:nth-child(n) {padding:12px 10px;min-height:74px;gap:9px;background:var(--sk-paper);border:1px solid var(--sk-line);border-radius:12px;box-shadow:none;transition:background .18s,border-color .18s,transform .18s}
#sek-v20.wedding-landing .sk20-tile:nth-child(n) .sk20-tile-icon {width:33px;height:33px;min-width:33px;border:0;border-radius:9px;background:#edf0e7;color:#526446}
#sek-v20.wedding-landing .sk20-tile-icon svg {width:19px;height:19px;stroke-width:1.5}
#sek-v20.wedding-landing .sk20-tile-copy {gap:5px;padding-right:0}
#sek-v20.wedding-landing .sk20-tile-copy strong {font-size:17px;line-height:1.2;color:var(--sk-forest);white-space:normal}
#sek-v20.wedding-landing .sk20-tile-copy small {font-size:10px;line-height:1.4;color:var(--sk-muted);white-space:normal}
#sek-v20.wedding-landing .sk20-tile-arrow {display:none}
#sek-v20.wedding-landing .sk20-tile:active {transform:scale(.985);background:#f0f2e9}
/* The same paper, ink, controls and page rhythm across guest sections. */
main.guest-subpage {background:var(--sk-ivory);color:var(--sk-forest)}
.guest-subpage .guest-sub-header {height:64px;border-color:var(--sk-line);padding-inline:22px;gap:12px}
.guest-subpage .guest-mini-brand {font-size:24px;color:var(--sk-forest)}
.guest-subpage .guest-back {min-height:42px;color:#52614e;font-size:11px;letter-spacing:.06em}
.guest-subpage .guest-subcontent {padding:32px 22px 48px}
.guest-subpage .section-eyebrow {color:#786b52;font-size:10px;letter-spacing:2px;margin-bottom:10px}
.guest-subpage .section-title,.guest-subpage .gift-page h1 {color:var(--sk-forest);font-weight:400;letter-spacing:-.6px;font-size:clamp(29px,5vw,42px)}
.guest-subpage .section-lead {color:var(--sk-muted);font-size:13px;line-height:1.8;margin-bottom:26px}
.guest-subpage .card,.guest-subpage .wish-card,.guest-subpage .gallery-voice-card,.guest-subpage .gift-card {background:var(--sk-paper);border:1px solid var(--sk-line);border-radius:12px;box-shadow:none}
.guest-subpage .wish-card p {color:#455848;font-size:14px;line-height:1.9}
.guest-subpage .wish-card .by {color:#736448;font-size:12px}
.guest-subpage .wish-card:before {color:#b8a27a}
.guest-subpage .btn,.guest-subpage .gift-save-qr {background:var(--sk-forest);border-color:var(--sk-forest);color:#fffcf7;min-height:44px;box-shadow:none}
.guest-subpage .btn.secondary {background:var(--sk-paper);border-color:#d5d9cc;color:var(--sk-forest)}
.guest-subpage .input,.guest-subpage textarea {background:#fffefa;border-color:#d9d9cb;color:var(--sk-forest)}
.guest-subpage .album-cover:not(.has-wedding-photo) {background:linear-gradient(120deg,#243f34,#526449)!important;border-radius:12px}
.guest-subpage .album-tabs {background:#eeeee4;border-color:var(--sk-line);border-radius:10px;padding:4px}
.guest-subpage .album-tabs button {min-height:42px;color:#626e5d}
.guest-subpage .album-tabs button.active {background:var(--sk-paper);color:var(--sk-forest);border-radius:7px;box-shadow:0 1px 4px #243f3408}
.guest-subpage .album-home-button:last-child,.guest-subpage .album-filters button.active {background:var(--sk-forest);border-color:var(--sk-forest);color:var(--sk-paper)}
.guest-subpage .album-photo {border-radius:9px;box-shadow:none}
.guest-subpage .gallery-section-heading h2 {color:var(--sk-forest)}
.guest-subpage .gallery-section-heading p,.guest-subpage .gallery-count,.guest-subpage .muted {color:var(--sk-muted)}
.guest-subpage .gallery-voice-avatar {background:#edf0e7;color:#526446}
.guest-subpage .sek-voice-player {background:#f8f7ef!important;border-color:var(--sk-line)!important}
.guest-subpage .sek-voice-play {background:var(--sk-forest)!important}
.guest-subpage .sek-voice-track-title {color:var(--sk-forest)!important}
.guest-subpage .gift-account {border-color:var(--sk-line)}
.guest-subpage .gift-disclaimer {color:var(--sk-muted);line-height:1.7}
.guest-subpage .empty {color:#69735f;border-color:var(--sk-line);background:#fbfaf3}
.guest-subpage .retro-intro label {color:#626e59}
/* Organiser and public entrance share the guest palette. */
.dash-shell,.heritage-home {background:var(--sk-ivory);color:var(--sk-forest)}
.dash-shell .sidebar,.dash-shell .dash-card,.dash-shell .stat,.dash-shell .event-item {background:var(--sk-paper);border-color:var(--sk-line);box-shadow:none}
.dash-shell .dash-card,.dash-shell .stat,.dash-shell .event-item {border-radius:12px}
.dash-shell .dash-head h1,.dash-shell .dash-card h3,.dash-shell .stat strong,.dash-shell .event-item h3 {color:var(--sk-forest)}
.dash-shell .dash-head p,.dash-shell .dash-card>p,.dash-shell .stat small,.dash-shell .muted {color:var(--sk-muted)}
.dash-shell .side-button {color:#63715f;border-radius:8px}
.dash-shell .side-button.active {background:#edf0e6;color:var(--sk-forest);border-left-color:var(--sk-gold)}
.dash-shell .side-button:hover {background:#f1f3eb}
.dash-shell .btn,.heritage-home .btn:not(.secondary) {background:var(--sk-forest);border-color:var(--sk-forest);box-shadow:none}
.dash-shell .btn.secondary,.heritage-home .btn.secondary {background:var(--sk-paper);border-color:var(--sk-line);color:var(--sk-forest)}
.dash-shell .btn.danger {background:#a34e43;border-color:#a34e43;color:white}
.dash-shell .input,.dash-shell textarea,.dash-shell select {background:#fffefa;border-color:#d9d9cb;color:var(--sk-forest)}
.dash-shell .dashboard-active-strip {background:#eef1e7!important;border-color:#dce2d3!important}
.dash-shell .dashboard-active-info {color:#4e6048}
.dash-shell .dashboard-mobile-header,.dash-shell .mobile-nav {background:var(--sk-paper)!important;border-color:var(--sk-line)!important}
.dash-shell .mobile-nav .side-button.active {border-bottom-color:var(--sk-gold)}
.heritage-home .hero-text h1 {color:var(--sk-forest)}
.heritage-home .hero-text p {color:var(--sk-muted)}
.heritage-home .feature-card {background:var(--sk-paper);border-color:var(--sk-line);border-radius:12px;box-shadow:none}
.auth-shell {background:var(--sk-paper);border-color:var(--sk-line);border-radius:14px;box-shadow:0 12px 40px #243f3407}
.auth-shell h1 {color:var(--sk-forest)}
.auth-shell .btn {background:var(--sk-forest)}
@media(hover:hover) {
  #sek-v20.wedding-landing .sk20-tile:hover {border-color:#acb69e;background:#fafbf4}
}
@media(min-width:541px) {
  #sek-v20.wedding-landing .sk20-page {border-color:var(--sk-line)}
  #sek-v20.wedding-landing .sk20-hero {flex-basis:390px;min-height:390px}
  #sek-v20.wedding-landing .sk20-lower {padding-inline:28px;padding-bottom:28px;gap:26px}
  #sek-v20.wedding-landing .sk20-capture {padding:22px 24px}
  #sek-v20.wedding-landing .sk20-card-intro {padding-inline:80px;min-height:44px}
  #sek-v20.wedding-landing .sk20-capture-label {font-size:11px}
  #sek-v20.wedding-landing .sk20-capture-sub {font-size:13px}
  #sek-v20.wedding-landing .sk20-quota {padding:7px 9px;font-size:11px}
  #sek-v20.wedding-landing .sk20-guest-name {height:50px}
  #sek-v20.wedding-landing .sk20-camera {height:53px;font-size:24px}
  #sek-v20.wedding-landing .sk20-memory-heading h2 {font-size:29px}
  #sek-v20.wedding-landing .sk20-memory-heading p {font-size:12px;max-width:none}
  #sek-v20.wedding-landing .sk20-tile:nth-child(n) {min-height:84px;padding:14px 18px;gap:14px}
  #sek-v20.wedding-landing .sk20-tile:nth-child(n) .sk20-tile-icon {width:40px;height:40px;min-width:40px}
  #sek-v20.wedding-landing .sk20-tile-copy strong {font-size:20px}
  #sek-v20.wedding-landing .sk20-tile-copy small {font-size:12px}
}
@media(max-width:540px) and (max-height:740px) {
  #sek-v20.wedding-landing .sk20-hero {min-height:232px;flex-basis:232px}
  #sek-v20.wedding-landing .sk20-lower {gap:16px;padding-bottom:max(14px,env(safe-area-inset-bottom,0px))}
  #sek-v20.wedding-landing .sk20-capture {padding:12px 14px}
  #sek-v20.wedding-landing .sk20-tile:nth-child(n) {min-height:65px;padding-block:9px}
  #sek-v20.wedding-landing .sk20-memory-heading {margin-bottom:10px}
}
@media(max-width:360px) {
  #sek-v20.wedding-landing .sk20-lower {padding-inline:12px}
  #sek-v20.wedding-landing .sk20-card-intro {padding-inline:46px}
  #sek-v20.wedding-landing .sk20-capture-label {font-size:9px;letter-spacing:1px}
  #sek-v20.wedding-landing .sk20-capture-sub {font-size:10px}
  #sek-v20.wedding-landing .sk20-memory-heading h2 {font-size:23px}
  #sek-v20.wedding-landing .sk20-tile:nth-child(n) {gap:7px;padding-inline:8px}
  #sek-v20.wedding-landing .sk20-tile:nth-child(n) .sk20-tile-icon {width:28px;min-width:28px;height:30px}
  #sek-v20.wedding-landing .sk20-tile-copy strong {font-size:15px}
  #sek-v20.wedding-landing .sk20-tile-copy small {font-size:10px}
}
@media(prefers-reduced-motion:reduce) {
  #sek-v20.wedding-landing .sk20-tile:nth-child(n) {transition:none}
}

/* Keep the caption on its own row, clear of the quota badge at every width. */
#sek-v20.wedding-landing .sk30-capture-head {display:grid;grid-template-columns:minmax(0,1fr);gap:3px}
#sek-v20.wedding-landing .sk20-card-intro {display:contents}
#sek-v20.wedding-landing .sk20-capture-label {min-height:28px;display:flex;align-items:center;justify-content:center;padding:0 62px;grid-row:1;text-align:center}
#sek-v20.wedding-landing .sk20-capture-sub {grid-row:2;width:100%;max-width:100%;text-align:center}
#sek-v20.wedding-landing .sk20-quota {top:14px}
@media(max-width:360px){#sek-v20.wedding-landing .sk20-capture-label {padding-inline:54px}}

/* ==== guest-compact-v31.css ==== */
/* Sekeping 31 · Classic minimal guest subpages. Kept separate from original styles. */
.guest-subpage {background:#f8f6ef;color:#294334}
.guest-subpage .guest-sub-header {height:56px;padding-inline:clamp(14px,4vw,26px);background:#faf8f2;border-bottom:1px solid #e5e3d8}
.guest-subpage .guest-subcontent {max-width:850px;margin:0 auto;padding:23px clamp(14px,3.8vw,25px) 43px}
.guest-subpage .section-eyebrow {margin-bottom:5px;font-size:9px;letter-spacing:2px;color:#9d8b6c}
.guest-subpage .section-title {font-size:clamp(29px,6vw,38px);margin:0 0 4px;line-height:1.22;color:#293e32}
.guest-subpage .section-lead {font-size:12px;line-height:1.5;margin:0 auto 19px;max-width:380px;color:#777d70}
.guest-subpage .micro {letter-spacing:1.7px;font-size:9px;font-weight:700;color:#998667}
.guest-subpage button:focus-visible,.guest-subpage input:focus-visible,.guest-subpage textarea:focus-visible,.guest-subpage summary:focus-visible {outline:2px solid #a9a781;outline-offset:2px}
.sk31-signed {display:inline-flex;align-items:center;justify-content:center;gap:6px;font-size:11px;line-height:1.5;color:#687c66}
.sk31-signed .ico {width:13px;height:13px;color:#738667}
.sk31-signed strong {font-weight:600;color:#2e4737}

/* A compact analog-inspired microphone with one subtle waveform; no wood casing or bulky VU meters. */
.sk31-voice .voice-panel {width:100%;max-width:600px}
.sk31-voice-deck {position:relative;padding:18px 22px 16px!important;background:#fbfaf5!important;border:1px solid #d9dbc9!important;border-radius:15px!important;box-shadow:0 4px 16px #2139250a!important}
.sk31-voice-deck::after {display:none!important}
.sk31-voice-deck .voice-studio-top {border-bottom:1px solid #e9e8dd;padding:0 0 9px;margin:0 0 10px;align-items:center}
.sk31-voice-deck .voice-studio-label {font-size:9px;letter-spacing:1.7px;color:#807b69}
.sk31-voice-deck .voice-studio-mark {font:italic 22px Georgia,serif;color:#a6987b}
.sk31-voice-deck .sk31-signed {margin:0 auto 4px}
.sk31-recorder-body {display:flex;align-items:center;justify-content:center;gap:18px;padding:9px 0 13px;max-width:320px;margin:0 auto}
.sk31-voice-deck .voice-record-icon {height:62px;width:62px;flex:0 0 62px;margin:0;box-shadow:none!important;background:#f0f2eb!important;border:1px solid #e0e3d9!important;color:#667b64!important}
.sk31-voice-deck .voice-record-icon .ico {height:26px;width:26px}
.sk31-voice-deck .voice-record-halo {inset:6px;border-color:#d7dfd2}
.sk31-voice-deck .voice-record-icon.is-recording {color:#aa6d5e!important;background:#f8eee8!important;border-color:#eacbbd!important}
.sk31-voice-deck .voice-record-icon.is-ready {color:#627b63!important;background:#eaf1e7!important}
.sk31-recorder-readout {display:flex;flex-direction:column;align-items:flex-start;min-width:0;text-align:left}
.sk31-voice-deck .voice-record-state {font-size:9px;letter-spacing:1.5px;color:#859080;min-height:0}
.sk31-voice-deck .voice-time {font:400 38px/1.25 'DM Sans',system-ui,sans-serif;color:#314d3a;margin:2px 0 0;letter-spacing:1px;font-variant-numeric:tabular-nums}
.sk31-voice-deck .voice-wave {height:14px;gap:3px;justify-content:flex-start;margin:0;overflow:hidden}
.sk31-voice-deck .voice-wave i {width:2px;min-height:3px;max-height:13px;background:#b8c4ae;opacity:.8}
.sk31-voice-deck .voice-wave.is-live i {background:#b0826d;animation:sk31Wave .9s ease-in-out infinite alternate;animation-delay:calc(var(--i) * -73ms)}
@keyframes sk31Wave {from{transform:scaleY(.35);opacity:.6}to{transform:scaleY(1);opacity:1}}
.sk31-voice-deck .voice-progress-head {font-size:10px;letter-spacing:0;color:#7f8579;margin:0 auto 8px;max-width:450px;font-weight:500}
.sk31-voice-deck .voice-progress {max-width:450px;height:4px;background:#e7e8db}
.sk31-voice-deck .voice-progress>span {background:#718c72}
.sk31-voice-deck .voice-record-actions {margin:16px auto 3px;gap:9px}
.sk31-voice-deck .voice-record-actions .btn {border-radius:8px;box-shadow:none;min-height:41px;padding:9px 17px;font-size:12px}
.sk31-voice-deck .voice-record-actions .btn.danger {background:#a55d4d;border-color:#a55d4d}
.sk31-voice-deck .voice-preview {margin:14px auto 0;padding-top:10px;border-top:1px solid #e4e5d9;max-width:450px}
.sk31-voice-deck .voice-preview-title {font-size:10px;margin-bottom:7px}
.sk31-voice-deck .voice-studio-footnote {font-size:10px;line-height:1.4;margin:11px auto 0;color:#898a7e}
.sk31-voice .voice-collection-header {margin:22px 0 9px;padding:0 2px;align-items:center}
.sk31-voice .voice-collection-header h3 {font-size:23px;color:#2c4335}
.sk31-voice .voice-collection-header>span {font-size:11px}
.sk31-voice .voice-card {border:1px solid #e4e6dc;border-radius:11px;background:#fdfcf8;padding:12px;margin:8px 0;box-shadow:none}

/* Wishes: one neat compact composer, clean feed with no oversized quote ornament. */
.sk31-wishes {max-width:680px;margin:0 auto}
.sk31-wish-compose {padding:17px 18px 16px!important;margin:0 0 19px;background:#fffdf8!important;border:1px solid #e2e4d7!important;border-radius:12px!important;box-shadow:none!important}
.sk31-wish-intro {display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:11px}
.sk31-wish-compose .field {margin:0;gap:7px}
.sk31-wish-compose .field span {font-size:10px;color:#7a8575;letter-spacing:1.3px}
.sk31-wish-compose .textarea {border:1px solid #e1e5da;background:#fffefa;border-radius:9px;min-height:104px;padding:12px 14px;font-size:13px;line-height:1.65;resize:vertical}
.sk31-wish-actions {display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:11px}
.sk31-wish-actions small {font-size:10px;line-height:1.5;color:#99998e;max-width:56%;overflow-wrap:anywhere}
.sk31-wish-actions .btn {min-height:40px;font-size:11px;padding:9px 13px;border-radius:8px;white-space:nowrap}
.sk31-wishes-list-head {display:flex;align-items:center;justify-content:space-between;gap:12px;margin:5px 2px 10px}
.sk31-wishes-list-head h3 {font-size:23px;color:#2a4032;margin:0}
.sk31-wishes-list-head span {font-size:11px;color:#899383}
.sk31-wishes .wish-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.sk31-wishes .wish-card,.sk31-gallery .wish-card {padding:15px 16px;border-radius:10px;background:#fdfcf7;box-shadow:none;border:1px solid #e3e6d8;min-width:0}
.sk31-wishes .wish-card::before,.sk31-gallery .wish-card::before {display:none}
.sk31-wishes .wish-card p,.sk31-gallery .wish-card p {font-size:12px;line-height:1.7;color:#3c5343;margin:0 0 10px;white-space:pre-wrap;overflow-wrap:anywhere}
.sk31-wishes .wish-card .by,.sk31-gallery .wish-card .by {font-size:10px;color:#8a8677;font-weight:500}

/* Gift section: QR and bank are a single composed information card, not several tall panels. */
.guest-subpage .sk31-gift {max-width:720px;padding:0;margin:0 auto}
.sk31-section-head {text-align:center;margin:0 auto 19px}
.sk31-section-head h1 {font-size:clamp(29px,6vw,39px)!important;font-weight:400;margin:5px 0 5px!important;color:#294336}
.sk31-section-head p {font-size:12px;color:#7d8175;line-height:1.5;margin:0}
.sk31-gift .gift-card.sk31-gift-card {display:grid;grid-template-columns:minmax(0,250px) minmax(0,1fr);gap:28px;align-items:center;padding:23px!important;margin:0;background:#fffdf8!important;border:1px solid #e1e2d6!important;border-radius:13px!important;text-align:left;box-shadow:0 4px 15px #2139250a!important}
.sk31-gift-qr-area {display:flex;flex-direction:column;align-items:center;gap:9px;min-width:0}
.sk31-gift-qr-frame {width:100%;max-width:250px;aspect-ratio:1;border:1px solid #e5e4d8;border-radius:10px;background:white;padding:10px;display:grid;place-items:center;margin:0 auto}
.sk31-gift .gift-qr {width:100%;height:100%;max-width:100%;margin:0;padding:0;border-radius:5px;object-fit:contain;display:block;aspect-ratio:1}
.sk31-gift .gift-save-qr {width:100%;max-width:250px;min-height:40px;padding:9px 12px!important;margin:0 auto!important;border-radius:8px;background:#294837;font-size:11px;gap:6px;box-shadow:none}
.sk31-gift .gift-save-qr .ico {height:14px;width:14px}
.sk31-gift .gift-qr-missing {width:100%;min-height:0;height:100%;margin:0;padding:10px;gap:6px;border:1px dashed #d8dccf;background:#f8f8f0;font-size:11px;color:#818b7c}
.sk31-gift .gift-qr-missing .ico {height:30px;width:30px}
.sk31-gift-info {min-width:0}
.sk31-gift .gift-card h2 {font-size:clamp(23px,4.2vw,30px);font-weight:400;margin:7px 0 4px;line-height:1.25;color:#2b4537;overflow-wrap:anywhere}
.sk31-gift-bank {font-size:13px;color:#747d70;margin:0 0 19px}
.sk31-account-label {font-size:10px;letter-spacing:1.2px;color:#91856d;margin:0 0 7px;font-weight:600}
.sk31-gift .gift-account {display:flex;align-items:center;justify-content:space-between;gap:7px;padding:6px 7px 6px 12px;background:#f9f8f1;border:1px solid #e3e4d8;border-radius:9px}
.sk31-gift .gift-account span {font:500 clamp(13px,3vw,17px)/1.4 'DM Sans',system-ui,sans-serif;letter-spacing:.4px;color:#284333;min-width:0;overflow-wrap:anywhere}
.sk31-gift .gift-account button {flex-shrink:0;min-height:35px;font-size:11px;border-radius:6px;gap:5px;padding:7px 9px;background:#fffdf8;color:#3f5e49;border-color:#dde3d8}
.sk31-gift .gift-account button .ico {height:14px;width:14px}
.sk31-gift .gift-disclaimer {font-size:10px;line-height:1.6;color:#929286;margin:12px 0 0!important}
.sk31-gift .gift-not-configured {font-size:12px;line-height:1.5;margin:15px 0;background:#f7f6ed;border:1px solid #ebe7db;padding:12px;border-radius:8px}

/* Gallery: single summary, one tab bar and compact photo controls. */
.sk31-gallery {max-width:820px;margin:0 auto}
.sk31-gallery-intro {border:1px solid #e2e4d7;background:#fffdf8;border-radius:12px;padding:12px 16px;margin:0 0 14px;box-shadow:none}
.sk31-gallery-overview {display:flex;gap:12px;align-items:center;min-width:0}
.sk31-gallery-cover,.sk31-gallery-monogram {width:68px;height:68px;flex:0 0 68px;border-radius:8px;object-fit:cover;display:grid;place-items:center;background:#e9ebdf;color:#a99878;font:italic 27px Georgia,serif}
.sk31-gallery-heading {min-width:0}
.sk31-gallery-heading h1 {font-size:clamp(22px,4.8vw,30px);font-weight:400;line-height:1.25;margin:3px 0 3px;color:#2b4638}
.sk31-gallery-heading p {font-size:11px;line-height:1.5;margin:0;color:#858778;overflow-wrap:anywhere}
.sk31-gallery-totals {display:flex;gap:16px;flex-wrap:wrap;justify-content:flex-start;align-items:center;margin:10px 0 0 80px;color:#8b8c7d;font-size:10px}
.sk31-gallery-totals span {display:inline-flex;gap:4px;align-items:baseline}
.sk31-gallery-totals b {font-size:13px;color:#425b45;font-weight:600}
.sk31-gallery .album-main {padding:0;max-width:none}
.sk31-gallery .sk31-album-primary {display:flex;gap:7px;margin:0 0 17px;align-items:center;min-width:0;padding:0}
.sk31-gallery .album-tabs {display:flex;align-items:center;min-width:0;flex:1;gap:3px;padding:3px;border-radius:9px;background:#eaece4!important;border:1px solid #e1e4d9!important;overflow-x:auto;scrollbar-width:none}
.sk31-gallery .album-tabs button {padding:9px 8px;min-height:36px;white-space:nowrap;font-size:11px;border-radius:7px;line-height:1.3}
.sk31-gallery .album-tabs button.active {background:#fffefa!important;color:#314c39!important;box-shadow:none!important}
.sk31-gallery .album-home-button {width:40px;height:40px;min-width:40px;border-radius:9px;border:1px solid #dfe3d6;background:#fffdf8!important;color:#536d55!important}
.sk31-gallery-toolbar {display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 11px;min-width:0}
.sk31-gallery-toolbar h2 {font-size:clamp(20px,4.8vw,25px);line-height:1.22;margin:0 0 3px;color:#2e4939;font-weight:400}
.sk31-gallery-toolbar p {font-size:11px;line-height:1.4;margin:0;color:#8c9286}
.sk31-gallery-toolbar .gallery-count {font-size:11px;white-space:nowrap;color:#838b7c}
.sk31-gallery-toolbar .btn {padding:9px 11px;font-size:11px;white-space:nowrap;border-radius:7px;min-height:36px}
.sk31-gallery .album-filters {gap:6px;padding:0 0 12px}
.sk31-gallery .album-filters button {padding:7px 11px;border-radius:7px;font-size:10px;letter-spacing:0;border:1px solid #dfe3d7;color:#677663;background:#f9f9f4}
.sk31-gallery .album-filters button.active {background:#345440!important;color:#fff!important;border-color:#345440!important}
.sk31-guest-filter {margin:-2px 0 13px;border:1px solid #e0e4d9;border-radius:8px;padding:0 10px;background:#fafbf7}
.sk31-guest-filter summary {cursor:pointer;list-style:none;display:flex;align-items:center;gap:7px;color:#718273;font-size:11px;padding:10px 0}
.sk31-guest-filter summary::-webkit-details-marker {display:none}
.sk31-guest-filter summary:after {content:'+';margin-left:auto;font-size:16px;font-weight:400}
.sk31-guest-filter[open] summary:after {content:'−'}
.sk31-guest-filter .guest-person-row {margin:0;padding:0 0 11px;gap:6px}
.sk31-guest-filter .guest-person-row button {font-size:10px;padding:6px 9px}
.sk31-gallery .album-photo-grid {gap:9px}
.sk31-gallery .album-photo {border-radius:8px}
.sk31-gallery .album-film-mark {display:none}
.sk31-gallery .album-photo-name {font-size:13px;padding:20px 9px 9px}
.sk31-gallery .photo-favourite {height:29px;width:29px;top:7px;right:7px}
.sk31-gallery .photo-favourite .ico {height:15px;width:15px}
.sk31-gallery .album-bottom-actions {margin-top:16px;gap:8px}
.sk31-gallery .album-bottom-actions .btn {min-height:39px;font-size:11px;border-radius:8px}
.sk31-gallery .album-wishes {gap:10px}
.sk31-gallery .gallery-voice-list {gap:9px}
.sk31-gallery .gallery-voice-card {padding:12px;border-radius:10px}

@media(max-width:600px){
 .guest-subpage .guest-subcontent {padding:19px 14px 35px}
 .sk31-voice-deck {padding:14px 15px!important}
 .sk31-voice-deck .voice-studio-label {font-size:8px;letter-spacing:1.1px}
 .sk31-voice-deck .voice-time {font-size:36px}
 .sk31-recorder-body {gap:14px}
 .sk31-voice-deck .voice-record-icon {height:56px;width:56px;flex-basis:56px}
 .sk31-voice-deck .voice-record-actions .btn {flex:0 1 auto;min-width:0;max-width:100%}
 .sk31-wishes .wish-grid,.sk31-gallery .album-wishes {grid-template-columns:1fr}
 .sk31-gift .gift-card.sk31-gift-card {grid-template-columns:minmax(0,1fr);gap:18px;padding:16px!important}
 .sk31-gift-qr-area {flex-direction:column;justify-content:center;align-items:center;gap:12px}
 .sk31-gift-qr-frame {width:min(100%,clamp(190px,62vw,240px));max-width:240px;flex:0 0 auto}
 .sk31-gift .gift-save-qr {width:min(100%,240px);min-width:0;max-width:240px;flex:none;padding:9px 12px!important}
 .sk31-gift-info {border-top:1px solid #edeee6;padding-top:14px}
 .sk31-gift .gift-card h2 {font-size:22px}
 .sk31-gift-bank {margin-bottom:13px}
 .sk31-gallery-intro {padding:10px 12px}
 .sk31-gallery-cover,.sk31-gallery-monogram {width:54px;height:54px;flex-basis:54px}
 .sk31-gallery-totals {margin-left:66px;gap:13px}
 .sk31-gallery .album-tabs {justify-content:flex-start}
 .sk31-gallery .album-tabs button {padding:9px 6px;font-size:10px}
 .sk31-gallery .album-photo-grid {grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
 .sk31-gallery .album-filters button {padding:7px 9px}
}
@media(max-width:365px){
 .sk31-gallery-heading h1 {font-size:21px}
 .sk31-gallery-totals {gap:8px}
 .sk31-gallery .album-tabs {overflow-x:auto;justify-content:flex-start}
 .sk31-gallery .album-tabs button {flex:0 0 auto;padding-inline:8px}
 .sk31-wish-actions small {display:none}
 .sk31-wish-actions .btn {margin-left:auto}
 .sk31-gift-qr-area {gap:10px}
 .sk31-gift-qr-frame {width:min(100%,clamp(170px,68vw,215px));max-width:215px}
 .sk31-gift .gift-save-qr {width:min(100%,215px);max-width:215px}
}
@media(prefers-reduced-motion:reduce){.sk31-voice-deck .voice-wave.is-live i,.sk31-voice-deck .voice-record-halo {animation:none!important}}

/* ==== gift-qr-studio.css ==== */
/* Sekeping V32 · restrained payment QR presentation */
.sk32-gift-studio{--sk32-ink:#294837;--sk32-line:#e1e3d8}
.sk32-gift-head{display:flex;justify-content:space-between;align-items:start;gap:15px;margin-bottom:21px}
.sk32-gift-head h3{font:400 clamp(21px,3vw,27px)/1.3 Georgia,serif;margin:6px 0 7px;color:#294837}
.sk32-gift-head p{margin:0;color:#81867c;font-size:12px;line-height:1.65;max-width:600px}
.sk32-gift-state{display:inline-flex;align-items:center;gap:5px;white-space:nowrap;background:#f7f6ef;border:1px solid #e9e4d9;border-radius:30px;padding:7px 12px;font-size:10px;font-weight:650;color:#867a66}
.sk32-gift-state.is-ready{background:#edf4ed;border-color:#dbe8dc;color:#315b45}
.sk32-gift-state .ico{height:13px;width:13px}
.sk32-qr-comparison{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:19px}
.sk32-qr-preview{border:1px solid var(--sk32-line);border-radius:11px;background:#faf9f5;padding:15px;min-width:0;text-align:center}
.sk32-qr-preview>span{display:block;font-size:10px;letter-spacing:1.6px;font-weight:700;color:#9c907c;margin-bottom:13px}
.sk32-qr-preview-inner{height:210px;max-width:210px;width:100%;margin:0 auto;display:flex;justify-content:center;align-items:center;background:white;border:1px solid #e9ebe6;border-radius:8px;padding:9px;overflow:hidden}
.sk32-qr-preview-inner img{max-width:100%;max-height:100%;object-fit:contain;display:block}
.sk32-qr-preview small{display:block;color:#858b81;line-height:1.5;font-size:11px;margin-top:11px}
.sk32-themed{background:#f6f7f1;border-color:#dce4d7}
.sk32-themed>span{color:#38604b}
.sk32-qr-empty{display:flex;align-items:center;gap:17px;padding:25px;background:#f8f8f3;border:1px dashed #dce1d6;border-radius:11px;margin-bottom:18px}
.sk32-qr-empty>.ico{height:37px;width:37px;flex-shrink:0;color:#78917a}
.sk32-qr-empty strong{font-size:14px;color:#345342}
.sk32-qr-empty p{margin:4px 0 0;font-size:12px;line-height:1.6;color:#889184}
.sk32-qr-upload{gap:12px;cursor:pointer;margin-top:6px;padding:15px!important;border-color:#cbd8c9!important;background:#fbfcf9!important}
.sk32-qr-upload>.ico{height:29px;width:29px;color:#446c54}
.sk32-qr-upload>span:not(.btn){display:flex;flex:1;min-width:130px;flex-direction:column;gap:5px}
.sk32-qr-upload strong{font-size:13px;color:#365642}
.sk32-qr-upload small{font-size:11px;color:#8a9688}
.sk32-qr-upload .btn{pointer-events:none;display:inline-flex;align-items:center;gap:6px}
.sk32-qr-reminder{display:flex;align-items:start;gap:9px;background:#f8f7f2;border-left:2px solid #c6b99e;padding:11px 13px;margin:14px 0 19px;font-size:11px;line-height:1.7;color:#7f8074}
.sk32-qr-reminder .ico{width:16px;height:16px;flex-shrink:0;margin-top:2px;color:#a08f6d}
.sk32-gift-studio #giftQrProgress{margin:10px 0;font-size:11px;line-height:1.5}
/* Guest: no bank logos, receipts, frames or extraneous decorations inside the generated QR. */
.sk31-gift .sk31-gift-qr-frame{background:#fff;border-color:#e4e6df}
.sk31-gift .gift-qr{image-rendering:auto;object-fit:contain}
@media(max-width:560px){
 .sk32-gift-head{flex-direction:column;gap:11px}
 .sk32-qr-comparison{gap:9px}
 .sk32-qr-preview{padding:10px 7px}
 .sk32-qr-preview-inner{height:auto;aspect-ratio:1;max-width:180px;padding:6px}
 .sk32-qr-preview>span{font-size:8px;letter-spacing:1px}
 .sk32-qr-preview small{font-size:10px}
 .sk32-qr-upload{padding:12px!important}
}

/* ==== refresh-v34.css ==== */
/* Sekeping V34 · uniform, refined renewal icons across guest and organiser screens */
.sk34-refresh-icon{width:18px;height:18px;stroke-width:1.85;stroke-linecap:round;stroke-linejoin:round;transform-origin:center;transition:transform .3s cubic-bezier(.2,.8,.2,1),stroke .2s ease;vertical-align:middle;flex-shrink:0}
button:hover:not(:disabled)>.sk34-refresh-icon,button:focus-visible>.sk34-refresh-icon{transform:rotate(40deg)}
button:active:not(:disabled)>.sk34-refresh-icon{transform:rotate(95deg)}
button.sk34-refreshing>.sk34-refresh-icon{animation:sk34-refresh-spin .85s linear infinite}
@keyframes sk34-refresh-spin{to{transform:rotate(360deg)}}
/* Gallery: one polished icon-only refresh control */
.sk31-gallery .album-home-button[data-action="refresh"]{display:grid;place-items:center;width:40px;height:40px;min-width:40px;border-radius:12px;background:#fcfbf6!important;border:1px solid #dce2d8!important;color:#3c6049!important;box-shadow:0 2px 6px rgba(32,61,44,.04);transition:background-color .2s,border-color .2s,box-shadow .2s,transform .2s}
.sk31-gallery .album-home-button[data-action="refresh"] .sk34-refresh-icon{width:19px;height:19px;color:inherit}
.sk31-gallery .album-home-button[data-action="refresh"]:hover:not(:disabled){background:#eef3ea!important;border-color:#becfbf!important;box-shadow:0 3px 9px rgba(32,61,44,.09)}
.sk31-gallery .album-home-button[data-action="refresh"]:active{transform:scale(.96)}
/* Retake, record again and organiser refresh actions retain their natural button shape. */
[data-action="retake"] .sk34-refresh-icon,[data-action="discard-voice"] .sk34-refresh-icon,[data-action="refresh-dashboard"] .sk34-refresh-icon,[data-dash-tab="events"] .sk34-refresh-icon{color:inherit;opacity:.94}
[data-action="retake"],[data-action="discard-voice"],[data-action="refresh-dashboard"]{transition:background-color .2s,border-color .2s,box-shadow .2s,transform .2s}
[data-action="refresh-dashboard"]:hover:not(:disabled){box-shadow:0 2px 10px rgba(32,61,44,.07)}
/* Language remains accessible while browsing the Memory Collection. */
.guest-sub-header .sk34-sub-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;min-width:64px}
.guest-sub-header .sk34-language{width:33px;height:33px;min-width:33px;display:grid;place-items:center;cursor:pointer;border:1px solid #dcd5c7;border-radius:50%;background:#fffefa;color:#344d3e;font:700 10px/1 'DM Sans',system-ui,sans-serif;letter-spacing:.2px;transition:background-color .2s,border-color .2s}
.guest-sub-header .sk34-language:hover{background:#eeeae0;border-color:#c9c1af}
.guest-sub-header .sk34-language:focus-visible{outline:2px solid #a4a789;outline-offset:3px}
.guest-sub-header .sk34-sub-actions .guest-back{display:grid;place-items:center;width:36px;height:36px;min-width:36px;padding:3px}
@media(max-width:410px){.guest-sub-header .sk34-sub-actions{gap:3px}.guest-sub-header .sk34-language{width:30px;height:30px;min-width:30px}.guest-sub-header .guest-back{font-size:10px;letter-spacing:.03em}}
@media(prefers-reduced-motion:reduce){.sk34-refresh-icon{transition:none!important}.sk34-refreshing>.sk34-refresh-icon{animation:none!important}}

/* ==== manager-v35.css ==== */
/* SEKEPING V35 — Manager Studio / classic minimalist design. All changes scoped to dashboard. */
.sk35-dashboard{--s35-bg:#faf8f4;--s35-ink:#342e29;--s35-muted:#898178;--s35-gold:#af8d58;--s35-line:#e8ded1;--s35-surface:#fffdf9;--s35-soft:#f6f0e7;background:var(--s35-bg)!important;color:var(--s35-ink);font-family:'DM Sans',system-ui,-apple-system,sans-serif;min-height:100dvh;grid-template-columns:234px minmax(0,1fr);}
.sk35-dashboard *{box-sizing:border-box}
.sk35-dashboard button{cursor:pointer}
.sk35-dashboard button:focus-visible,.sk35-dashboard a:focus-visible,.sk35-dashboard input:focus-visible{outline:3px solid #ab8b61;outline-offset:3px}
.sk35-dashboard .sidebar{background:#fcfaf6;border-right:1px solid #e9e0d5;padding:27px 15px 17px;min-height:100dvh;height:100dvh;overflow-y:auto;scrollbar-width:thin}
.sk35-dashboard .side-brand{padding:4px 9px 30px 13px}
.sk35-dashboard .side-brand .brand{font:italic 33px Georgia,serif;color:#40352c;letter-spacing:-1.6px;gap:5px}
.sk35-dashboard .side-brand .brand-logo{color:#ae8a57;transform:scale(.88)}
.sk35-brand-tag{font-size:8px;letter-spacing:2px;color:#a69378;margin:8px 0 0 5px;font-weight:700}
.sk35-dashboard .side-group-label{font-size:9px;letter-spacing:2px;font-weight:700;padding:19px 15px 8px;color:#b3a598}
.sk35-dashboard .side-button{font-size:12px;font-weight:550;padding:12px 14px;margin:2px 0;border-radius:10px;color:#6e655d;transition:background .15s ease,color .15s ease;gap:12px}
.sk35-dashboard .side-button .ico{width:19px;height:19px;color:#a28865}
.sk35-dashboard .side-button.active{background:linear-gradient(110deg,#b69c71,#a58655);color:#fff;box-shadow:0 5px 12px #af91611d}
.sk35-dashboard .side-button.active .ico{color:#fff}
.sk35-dashboard .side-button:hover:not(.active){background:#f2e9dc;color:#463a30}
.sk35-dashboard .sidebar-bottom{border-top:1px solid var(--s35-line);margin-top:auto;padding-top:15px}
.sk35-workspace{min-width:0}
.sk35-dashboard .dash-main{width:100%;max-width:1640px;padding:20px clamp(19px,3vw,44px) 45px}
.sk35-topline{height:66px;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:0 clamp(19px,3vw,44px);border-bottom:1px solid var(--s35-line);background:#fcfaf7;color:#988978;font-size:10px;font-weight:700;letter-spacing:1.4px}
.sk35-topline>span{display:inline-flex;gap:10px;align-items:center;min-width:0}
.sk35-top-dot{width:7px;height:7px;border-radius:50%;background:#ba9962;box-shadow:0 0 0 4px #ba996222}
.sk35-top-sep{color:#c8bfb4}
.sk35-top-actions{display:flex;align-items:center;gap:12px;letter-spacing:0;font-weight:500}
.sk35-top-event{display:flex;align-items:center;gap:7px;font-size:11px;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#786b5b}.sk35-top-event .ico{color:#9d8158;flex-shrink:0}
.sk35-icon-btn,.sk35-top-view{height:34px;display:inline-flex;align-items:center;justify-content:center;gap:7px;border-radius:999px;border:1px solid #e0d5c6;background:#fffdf9;color:#5a4f43;padding:0 12px;font-size:11px;font-weight:700}.sk35-icon-btn{width:36px;padding:0}.sk35-icon-btn:hover,.sk35-top-view:hover{background:#f3ecdf}
.sk35-dashboard .dashboard-active-strip{background:#f5efe5!important;border:1px solid #e9dcc9!important;color:#6d5840!important;border-radius:11px;margin:0 0 23px;padding:9px 14px;min-height:44px}
.sk35-dashboard .dashboard-active-info{color:#6c5944;font-size:11px}.sk35-dashboard .dashboard-active-info>span:not(.pill){color:#aa9478}.sk35-dashboard .dashboard-active-info>.ico{color:#9e7c4b}.sk35-dashboard .dashboard-active-strip>.btn{background:#fffbf5!important;border:1px solid #e5d8c6!important;color:#765a36!important;padding:8px 13px;box-shadow:none}
.sk35-dashboard .dash-head h1{font:500 clamp(30px,3vw,41px) Georgia,serif;color:#352c26;letter-spacing:-1.2px}.sk35-dashboard .dash-head p{color:#8b8075}.sk35-dashboard .dash-head .micro{color:#b39363!important}
.sk35-dashboard .dash-card,.sk35-dashboard .event-item,.sk35-dashboard .stat{background:#fffdf9;border-color:var(--s35-line);border-radius:15px;box-shadow:0 4px 20px #61472a08}
.sk35-dashboard .dash-card h3{color:#3c342d}
.sk35-dashboard .input,.sk35-dashboard .textarea,.sk35-dashboard .select{background:#fffefc;border-color:#e2d7c9;color:#362f2a}
.sk35-dashboard .dash-card .btn:not(.danger):not(.secondary),.sk35-dashboard .dash-main .btn:not(.danger):not(.secondary){background:#85704f;color:#fff}
.sk35-dashboard .btn.secondary{border-color:#e1d5c6;color:#776045;background:#fffefb}
.sk35-dashboard .btn.secondary:hover{background:#f3ecdf}
.sk35-overview{max-width:100%;min-width:0}
.sk35-intro{display:flex;justify-content:space-between;gap:16px;align-items:center;margin:11px 0 22px}
.sk35-overline{font-size:10px;letter-spacing:3px;font-weight:750;color:#a88756}
.sk35-intro h1{font:500 clamp(31px,3.5vw,48px) Georgia,serif;letter-spacing:-1.8px;line-height:1.12;margin:9px 0 8px;color:#332d28}
.sk35-intro h1 em{font-weight:400;font-style:normal;color:#a7885c}
.sk35-intro p{margin:0;color:#908578;font-size:13px;line-height:1.6}
.sk35-outline-btn{white-space:nowrap;background:#fffdf9;border:1px solid #dfd4c4;color:#816747;display:inline-flex;gap:8px;align-items:center;padding:11px 15px;border-radius:999px;font-size:11px;font-weight:700}
.sk35-outline-btn:hover{background:#f6ecdf}
.sk35-event-feature{min-height:195px;background:linear-gradient(120deg,#f3e8d9,#f9f4eb 66%,#eee2d3);border:1px solid #e5d6c2;border-radius:17px;display:grid;grid-template-columns:minmax(0,1.55fr) minmax(230px,.65fr);overflow:hidden;position:relative;margin-bottom:16px}
.sk35-feature-copy{padding:26px clamp(18px,3vw,36px);min-width:0;position:relative;z-index:1}
.sk35-feature-overline{font-size:10px;letter-spacing:2.1px;font-weight:700;color:#8c6e43;display:flex;gap:13px;align-items:center;flex-wrap:wrap}
.sk35-feature-status{border:1px solid #ddcbb1;border-radius:50px;padding:5px 10px;letter-spacing:.5px;background:#fff8ec;color:#988063;font-size:9px}.sk35-feature-status.live{color:#426a51;background:#edf4eb;border-color:#d2e0cf}
.sk35-feature-copy h2{font:normal clamp(26px,3.1vw,42px) Georgia,serif;line-height:1.15;letter-spacing:-1px;margin:18px 0 13px;color:#45392f}.sk35-feature-copy h2 i{font-weight:normal;font-size:.8em;color:#b79869}
.sk35-feature-detail{display:flex;align-items:center;flex-wrap:wrap;gap:8px;color:#776e65;font-size:11px;line-height:1.5}.sk35-feature-detail .ico{color:#a98c60}.sk35-feature-detail span{color:#bba993}
.sk35-feature-buttons{display:flex;gap:9px;flex-wrap:wrap;margin-top:20px}.sk35-feature-buttons button{display:flex;align-items:center;gap:8px;border-radius:999px;background:#4b4438;color:#fff;padding:10px 17px;font-size:11px;font-weight:700;border:1px solid #4b4438}.sk35-feature-buttons button+button{background:#fffbf5;color:#6b5a43;border-color:#d8c7b1}.sk35-feature-buttons button:hover{filter:brightness(.95)}
.sk35-feature-art{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:10px;position:relative;background:radial-gradient(circle at 50% 50%,#f8f2e7,#e6d8c6);overflow:hidden;isolation:isolate;border-left:1px solid #e5d7c5}.sk35-feature-art:before,.sk35-feature-art:after{content:'';position:absolute;width:200px;height:200px;border:1px solid #b99a6a4f;border-radius:50%;transform:scaleX(.56) rotate(45deg)}.sk35-feature-art:after{transform:scaleX(.56) rotate(-45deg)}
.sk35-feature-art img{width:100%;height:100%;position:absolute;inset:0;object-fit:cover;z-index:2}
.sk35-art-monogram{z-index:1;color:#927349;font:italic 70px Georgia,serif}.sk35-art-monogram span{color:#c2a776}.sk35-feature-art small{z-index:1;font-size:7px;letter-spacing:2px;color:#9b856b;text-align:center;padding:0 8px}
.sk35-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:19px}
.sk35-metric{display:flex;align-items:center;gap:13px;border-radius:14px;border:1px solid var(--s35-line);background:#fffdf9;padding:19px 16px;min-width:0;box-shadow:0 3px 14px #5b422408}.sk35-metric>span{width:43px;height:43px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:#f7efe2;color:#aa8754;flex-shrink:0}.sk35-metric>span .ico{width:22px;height:22px}.sk35-metric>div{min-width:0}.sk35-metric small{font-size:10px;color:#8b8072;display:block;font-weight:650}.sk35-metric strong{font:500 29px Georgia,serif;display:block;margin:3px 0 0;color:#42372f}.sk35-metric p{font-size:9px;margin:1px 0 0;color:#ac9d8c}
.sk35-main-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1.02fr) minmax(0,.83fr);gap:13px;align-items:stretch;margin-bottom:17px}
.sk35-panel{background:#fffdf9;border:1px solid var(--s35-line);border-radius:16px;min-width:0;padding:20px;box-shadow:0 4px 17px #5c442908}
.sk35-panel-heading{display:flex;gap:12px;align-items:flex-start;margin-bottom:19px;min-width:0}.sk35-panel-ico{width:35px;height:35px;display:grid;place-items:center;background:#f8f0e3;border-radius:11px;color:#a48555;flex-shrink:0}.sk35-panel-ico .ico{width:19px;height:19px}.sk35-panel-heading>div{min-width:0}.sk35-panel-heading h2{font:500 18px Georgia,serif;color:#43372d;margin:1px 0 5px;line-height:1.2}.sk35-panel-heading p{font-size:10px;color:#968a7c;margin:0;line-height:1.4}
.sk35-quick-form{display:block}.sk35-pref-field{display:flex;align-items:center;justify-content:space-between;gap:9px;min-height:75px;border-bottom:1px solid #eee5da;padding:10px 0}.sk35-pref-left{display:flex;align-items:center;gap:10px;min-width:0}.sk35-pref-left>div{min-width:0}.sk35-pref-left strong{display:block;font-size:11px;color:#4c4035;font-weight:750;line-height:1.35}.sk35-pref-left small{display:block;font-size:9px;color:#9b8e81;margin-top:4px;line-height:1.48}.sk35-setting-icon{width:30px;height:30px;flex-shrink:0;color:#b08b57;display:grid;place-items:center}.sk35-setting-icon .ico{width:18px;height:18px}
.sk35-stepper{display:flex;flex-shrink:0;height:33px;border:1px solid #e2d6c4;border-radius:9px;overflow:hidden;background:#fffcf7;align-items:center}.sk35-stepper button{border:0;background:transparent;width:25px;color:#95744e;font-size:17px;line-height:1}.sk35-stepper button:hover{background:#f3e8d7}.sk35-stepper input{appearance:textfield;-moz-appearance:textfield;width:27px;text-align:center;border:0;background:transparent;padding:0;font-weight:750;color:#41352b;font-size:12px;outline-offset:-2px}.sk35-stepper input::-webkit-inner-spin-button,.sk35-stepper input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.sk35-switch-input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}.sk35-pref-toggle{position:relative;cursor:pointer}.sk35-switch-ui{width:42px;height:23px;flex-shrink:0;background:#d4cec4;border-radius:30px;position:relative;transition:background .2s}.sk35-switch-ui:after{content:'';position:absolute;top:3px;left:3px;width:17px;height:17px;border-radius:50%;background:#fff;transition:transform .2s;box-shadow:0 1px 3px #0002}.sk35-switch-input:checked+.sk35-switch-ui{background:#ad9166}.sk35-switch-input:checked+.sk35-switch-ui:after{transform:translateX(19px)}.sk35-switch-input:focus-visible+.sk35-switch-ui{outline:3px solid #ab8b61;outline-offset:2px}
.sk35-save-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:38px;margin-top:18px;border:1px solid #927b57;background:#927b57;border-radius:10px;color:#fff;font-size:11px;font-weight:750;transition:background .2s}.sk35-save-btn:hover{background:#775f3e}
.sk35-language-panel{display:flex;flex-direction:column}.sk35-language-stage{background:radial-gradient(circle,#f9f4ec,#f4eee5);flex:1;border-radius:12px;padding:17px 10px;display:flex;align-items:center;justify-content:center;min-height:180px}.sk35-language-card{background:#fffdf8;width:100%;max-width:310px;padding:22px 14px 25px;text-align:center;border:1px solid #e6d8c5;border-radius:15px;box-shadow:0 15px 35px #60492e15}.sk35-language-logo{font:italic 25px Georgia,serif;color:#534435;display:block;position:relative}.sk35-logo-flourish{font-size:12px;color:#b59868;display:block;font-style:normal;line-height:1}.sk35-language-ornament{font-size:15px;color:#bb985d;margin:3px auto}.sk35-language-card p{font:normal 12px Georgia,serif;color:#7f7369;margin:10px 0 16px}.sk35-language-buttons{display:flex;gap:8px}.sk35-language-buttons span{flex:1;min-width:0;border-radius:99px;padding:10px 6px;font:normal 10px Georgia,serif;border:1px solid #b79661;background:#af8f5b;color:white}.sk35-language-buttons span+span{background:#fffdf8;color:#6f5a40}.sk35-preview-footer{margin-top:14px;font-size:10px;color:#978c7d;display:flex;align-items:center;gap:8px}.sk35-status-dot{width:7px;height:7px;border-radius:50%;background:#c5bcb1}.sk35-status-dot.on{background:#739677}
.sk35-summary-rows{display:flex;flex-direction:column;margin-top:10px}.sk35-summary-rows>div{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid #eee5db;padding:16px 0}.sk35-summary-rows span{color:#81756c;font-size:10px;line-height:1.4}.sk35-summary-rows strong{font:500 26px Georgia,serif;color:#4a3b2f}.sk35-summary-note{display:flex;align-items:flex-start;gap:8px;font-size:9px;line-height:1.6;color:#958878;margin:15px 0}.sk35-summary-note .ico{flex-shrink:0;color:#b49a76;margin-top:1px}.sk35-summary-link{background:transparent;border:0;color:#8c6d47;padding:8px 0;display:flex;align-items:center;gap:7px;font-size:11px;font-weight:750}
.sk35-lower-grid{display:grid;grid-template-columns:minmax(0,1.85fr) minmax(240px,.72fr);gap:14px}.sk35-activity-panel .sk35-panel-heading{align-items:center}.sk35-activity-panel .sk35-panel-heading>div{flex:1}.sk35-text-btn{border:0;background:transparent;color:#a28254;font-size:10px;font-weight:700;display:inline-flex;align-items:center;gap:5px;white-space:nowrap}.sk35-activity-list{display:flex;flex-direction:column}.sk35-activity-item{display:flex;align-items:center;gap:11px;border-top:1px solid #efe7de;padding:12px 0;min-width:0}.sk35-activity-ico{width:34px;height:34px;display:grid;place-items:center;border-radius:9px;flex-shrink:0;background:#f7f0e5;color:#ad8b58}.sk35-activity-detail{flex:1;min-width:0}.sk35-activity-detail strong{font-size:11px;color:#56483a;display:flex;align-items:center;gap:9px;line-height:1.5;flex-wrap:wrap}.sk35-activity-type{font-size:8px;font-weight:600;color:#a07b49;background:#f8f0e3;padding:2px 7px;border-radius:99px}.sk35-activity-detail small{display:block;font-size:10px;color:#9d9286;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;margin-top:3px}.sk35-activity-time{flex-shrink:0;font-size:9px;color:#aca095}.sk35-activity-open{height:28px;width:28px;border:1px solid #e6dbcb;border-radius:8px;background:#fff;color:#a0825b;display:grid;place-items:center;flex-shrink:0}.sk35-activity-open:hover{background:#f4ecde}
.sk35-activity-empty{text-align:center;padding:20px 12px}.sk35-activity-empty>span{color:#ae956b}.sk35-activity-empty strong{display:block;font:normal 16px Georgia,serif;color:#5b4b3b;margin:8px 0}.sk35-activity-empty p{font-size:11px;color:#a39789;line-height:1.5;margin:0 auto;max-width:320px}
.sk35-quicklinks>button{display:flex;gap:12px;align-items:center;width:100%;border:0;background:transparent;border-top:1px solid #f0e7dd;padding:15px 2px;text-align:left;color:#887050;font-size:11px}.sk35-quicklinks>button span{flex:1;color:#594d41}.sk35-quicklinks>button:hover span{text-decoration:underline}.sk35-quicklinks>button .ico{width:16px;height:16px}
.sk35-footnote{font-size:9px;text-align:center;color:#b7a995;letter-spacing:2px;margin:22px 0 0}.sk35-footnote span{color:#b5955f;margin:0 9px}
.sk35-settings-addition{background:#fbf7f1;border:1px solid #eee3d5;border-radius:14px;padding:18px;margin-bottom:24px}.sk35-settings-addition .sk35-pref-field{max-width:600px}.sk35-dashboard #settingsForm .sk35-settings-addition h2{font:500 20px Georgia,serif;margin:0 0 4px}
@media(max-width:1360px){.sk35-main-grid{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr)}.sk35-summary-panel{grid-column:1/-1}.sk35-summary-rows{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.sk35-summary-rows>div{border:0;padding:10px 12px;background:#faf6f0;border-radius:10px}.sk35-summary-note{margin:13px 0 5px}.sk35-metric{padding:15px 12px;gap:9px}.sk35-metric>span{width:38px;height:38px}}
@media(max-width:1000px){.sk35-dashboard{grid-template-columns:200px minmax(0,1fr)}.sk35-dashboard .sidebar{padding:20px 9px}.sk35-dashboard .side-brand .brand{font-size:29px}.sk35-dashboard .dash-main{padding:18px 17px 45px}.sk35-topline{padding:0 17px}.sk35-top-event{max-width:155px}.sk35-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.sk35-lower-grid{grid-template-columns:1fr}}
@media(max-width:720px){.sk35-dashboard{display:block}.sk35-dashboard .sidebar{display:none}.sk35-dashboard .dashboard-mobile-header{display:flex;background:#fffdf9;border-color:#e9dfd3}.sk35-dashboard .dashboard-mobile-header .brand{color:#4e3f31;font:italic 26px Georgia,serif}.sk35-dashboard .mobile-nav{display:flex;top:59px;background:#fffdf9;border-bottom:1px solid #e9dfd3;z-index:48}.sk35-dashboard .mobile-nav .side-button{font-size:11px;padding:10px 13px;flex-shrink:0}.sk35-topline{height:43px;padding:0 15px;justify-content:flex-end}.sk35-topline>span{display:none}.sk35-top-event{max-width:180px}.sk35-top-actions{gap:7px}.sk35-top-view{display:none}.sk35-dashboard .dash-main{padding:15px 14px 40px}.sk35-intro{margin:17px 0 19px}.sk35-intro h1{font-size:34px}.sk35-intro p{font-size:12px}.sk35-outline-btn{padding:9px;font-size:0}.sk35-outline-btn .ico{width:18px;height:18px}.sk35-event-feature{grid-template-columns:minmax(0,1fr) 105px;min-height:195px}.sk35-feature-copy{padding:18px 13px 18px 16px}.sk35-feature-copy h2{font-size:26px;margin:14px 0}.sk35-feature-overline{font-size:9px;letter-spacing:1px}.sk35-feature-status{font-size:8px;padding:3px 7px}.sk35-feature-buttons{margin-top:13px;gap:5px}.sk35-feature-buttons button{padding:9px 10px;font-size:10px}.sk35-feature-art small{font-size:5px;line-height:1.8;letter-spacing:1px}.sk35-main-grid{grid-template-columns:1fr}.sk35-summary-panel{grid-column:auto}.sk35-summary-rows{display:flex}.sk35-summary-rows>div{border-bottom:1px solid #eee5db;background:transparent;padding:13px 0}.sk35-panel{padding:18px}.sk35-metrics{gap:9px}.sk35-metric{padding:12px;gap:8px}.sk35-metric>span{width:34px;height:34px}.sk35-metric>span .ico{width:18px;height:18px}.sk35-metric strong{font-size:26px}.sk35-metric p{font-size:9px}.sk35-panel-heading h2{font-size:19px}.sk35-feature-art:before,.sk35-feature-art:after{width:115px;height:115px}.sk35-art-monogram{font-size:45px}.sk35-dashboard .dashboard-active-strip{gap:7px;align-items:center}.sk35-dashboard .dashboard-active-strip>.btn{font-size:10px;white-space:nowrap}}
@media(max-width:390px){.sk35-metric small{font-size:9px}.sk35-metric p{font-size:8px}.sk35-feature-art{display:none}.sk35-event-feature{grid-template-columns:1fr}.sk35-feature-copy h2{font-size:29px}.sk35-top-event{max-width:120px}.sk35-dashboard .dashboard-active-strip{flex-wrap:wrap}.sk35-activity-time{display:none}.sk35-pref-left small{font-size:8px}.sk35-panel{padding:15px}}
@media(prefers-reduced-motion:reduce){.sk35-dashboard *, .sk35-dashboard *::before,.sk35-dashboard *::after{scroll-behavior:auto!important;transition:none!important}}
/* Compact, first-visit guest language picker; do not alter established guest layout. */
.sk35-lang-backdrop{position:fixed;inset:0;z-index:1100;background:#231e1880;display:grid;place-items:center;padding:20px;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}
.sk35-lang-modal{background:#fffcf6;color:#3d332a;border:1px solid #decbb2;border-radius:19px;box-shadow:0 22px 80px #1d170f4d;width:min(430px,100%);padding:31px 27px 21px;text-align:center}
.sk35-lang-mark{font-size:10px;color:#ae8e5e;letter-spacing:2.6px;font-weight:750}.sk35-lang-mark span{padding:0 4px}.sk35-lang-modal h2{font:normal 34px Georgia,serif;letter-spacing:-.7px;margin:14px 0 8px}.sk35-lang-modal p{font-size:12px;color:#817466;line-height:1.65;margin:0 0 23px}
.sk35-lang-options{display:grid;grid-template-columns:1fr 1fr;gap:11px}.sk35-lang-options button{display:flex;justify-content:center;align-items:center;gap:6px;background:#a78b61;color:#fff;border:1px solid #a78b61;border-radius:30px;padding:14px 7px;font:normal 13px Georgia,serif}.sk35-lang-options button+button{background:transparent;color:#544536}.sk35-lang-options button:hover{filter:brightness(.94)}.sk35-lang-options button span{font:700 9px system-ui;opacity:.7}.sk35-lang-close{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:0;background:transparent;color:#877664;font-size:10px;margin:19px auto 0;padding:10px}.sk35-lang-close .ico{height:13px;width:13px}
.sk35-guest-quota{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;padding:11px 14px;border:1px solid #dfd6ca;background:#faf6ee;color:#685544;border-radius:9px;margin:12px 0 15px;font-size:11px}.sk35-guest-quota span{display:flex;align-items:center;gap:8px}.sk35-guest-quota .ico{width:15px;height:15px;color:#af8d60}.sk35-guest-quota strong{color:#a46b48;font-size:10px}.sk31-wishes [hidden]{display:none!important}.sk31-voice button[disabled]{opacity:.42;cursor:not-allowed}

/* ==== gift-minimal-v36.css ==== */
/* Gift design faithfully adapted from uploaded Sekeping V31 HTML preview. */
#app .gift-page.gift-minimal {max-width:480px;margin:0 auto;padding:0;text-align:center}
#app .gift-minimal .section-eyebrow {margin:0 0 9px;font-size:10px;letter-spacing:2px;color:#8b7858}
#app .gift-minimal h1 {font-size:34px;line-height:1.2;letter-spacing:-.7px;margin:0 0 8px;color:var(--sk-forest);font-weight:400}
#app .gift-minimal .gift-lead {font-size:12px;line-height:1.6;color:#737a68;margin:0 0 20px}
#app .gift-minimal .gift-demo-note {font-size:10px;color:#8a785b;margin:-7px 0 14px}
#app .gift-minimal .gift-compact-card {border:1px solid var(--sk-line);background:var(--sk-paper);border-radius:16px;box-shadow:none;padding:0;overflow:hidden;margin:0}
.gift-minimal .gift-qr-section {padding:18px 20px;text-align:center}
.gift-qr-heading {display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:left;color:#53634a;font-size:12px}
.gift-qr-heading>span:first-child {display:flex;align-items:center;gap:7px;font-weight:600}
.gift-method-note {color:#777d6d;font-size:10px;font-weight:400}
#app .gift-minimal .gift-qr-frame {width:180px;max-width:100%;padding:8px;background:white;margin:16px auto 12px;border:1px solid #e7e5d9;border-radius:10px}
#app .gift-minimal .gift-qr {display:block;width:100%;height:auto;max-width:100%;max-height:220px;object-fit:contain;margin:0;border:0;border-radius:0;padding:0;box-shadow:none;background:white}
#app .gift-minimal .gift-download {display:inline-flex;align-items:center;justify-content:center;width:auto;min-height:38px;padding:8px 15px;font-size:11px;border:1px solid #d9ddcf;background:#f9faf3;color:#485d40;border-radius:8px;box-shadow:none}
.gift-minimal .gift-details-section {padding:18px 20px;text-align:left}
.gift-minimal .gift-qr-section+.gift-details-section {border-top:1px solid var(--sk-line)}
.gift-details-heading {font-size:9px;letter-spacing:1.7px;color:#8b7959;margin-bottom:15px;font-weight:600}
.gift-details {margin:0;display:grid;gap:11px}
.gift-details>div {display:grid;grid-template-columns:100px minmax(0,1fr);gap:10px;align-items:baseline}
.gift-details dt {font-size:11px;color:#7a806f;line-height:1.5}
.gift-details dd {margin:0;color:var(--sk-forest);font-size:13px;line-height:1.5;overflow-wrap:anywhere;font-weight:500}
.gift-account-row {display:flex;align-items:center;justify-content:space-between;gap:10px;background:#f2f4eb;border:1px solid #e1e5d7;border-radius:10px;padding:12px;margin-top:16px}
.gift-account-row>div {min-width:0;display:flex;flex-direction:column;gap:5px}
.gift-account-row span {font-size:10px;color:#758069}
.gift-account-row strong {font-size:17px;font-weight:500;letter-spacing:.5px;line-height:1.4;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;color:var(--sk-forest)}
.gift-copy {display:flex;align-items:center;justify-content:center;gap:5px;min-width:62px;min-height:42px;padding:8px;border:0;background:transparent;color:#536546;border-radius:7px;font-size:11px;flex:none}
.gift-copy:hover {background:#e7ecde}
#app .gift-minimal .gift-disclaimer {display:flex;justify-content:center;align-items:flex-start;gap:7px;font-size:10px;line-height:1.7;color:#818574;margin:15px auto 0;max-width:340px;text-align:left}
.gift-minimal .gift-disclaimer .ico {margin-top:2px;width:13px;min-width:13px}
.gift-empty-state {padding:32px 24px;color:#869078}
.gift-empty-state>.ico {width:28px;height:28px;color:#9f8c68}
#app .gift-empty-state h2 {font:400 24px 'Playfair Display',Georgia,serif;color:var(--sk-forest);margin:15px 0 10px}
.gift-empty-state p {font-size:12px;line-height:1.8;margin:0;color:#77806b}
.gift-incomplete {font-size:11px;color:#967353;margin:12px 0 0}
@media(max-width:370px){
  .guest-subpage .voice-minimal {padding:17px}
  .voice-minimal-wave {gap:3px}
  .gift-minimal .gift-qr-section,.gift-minimal .gift-details-section {padding:16px}
  .gift-details>div {grid-template-columns:84px minmax(0,1fr);gap:8px}
  .gift-account-row {padding:10px}
  .gift-account-row strong {font-size:15px}
}

/* V36 — Guests may manage ONLY submissions owned by their anonymous session. */
.sk36-own-delete {display:inline-flex;align-items:center;justify-content:center;gap:5px;border:1px solid #e8d8d2;border-radius:8px;background:#fff9f7;color:#99564d;font:600 11px/1.3 'DM Sans',sans-serif;min-height:33px;padding:7px 10px;cursor:pointer;transition:background .18s,border-color .18s}
.sk36-own-delete:hover {background:#fbece8;border-color:#d6b9af}
.sk36-own-delete:focus-visible {outline:2px solid #bf957e;outline-offset:2px}
.sk36-own-delete:disabled {opacity:.55;cursor:wait}
.sk36-own-delete .ico {width:14px;height:14px}
.sk31-gallery .album-photo .sk36-photo-delete {position:absolute;right:8px;bottom:43px;z-index:5;background:#fffdf4e8;color:#8f4d45;border-color:#ffffffa8;min-height:31px;padding:7px 8px;box-shadow:0 2px 9px #1b201922;backdrop-filter:blur(5px)}
.sk31-gallery .album-photo .sk36-photo-delete span {display:none}
.sk31-gallery .album-photo .sk36-photo-delete .ico {width:16px;height:16px}
.guest-subpage .gallery-voice-card .sk36-own-delete {align-self:flex-end;margin-top:9px}
.guest-subpage .voice-card .sk36-own-delete {justify-self:end;margin-top:8px}
.guest-subpage .wish-card .sk36-own-delete {margin-top:12px}
.guest-subpage .album-wishes .wish-card .sk36-own-delete {margin-top:12px}
.photo-lightbox .sk36-lightbox-delete {margin-left:8px;flex-shrink:0;border-color:#f4b9a5;background:#442823;color:#ffe9dc}
.photo-lightbox .sk36-lightbox-delete:hover {background:#64372b}
@media(max-width:460px) {.photo-lightbox .sk36-lightbox-delete span {display:none}.photo-lightbox .sk36-lightbox-delete {padding:8px}}

/* ==== guest-reference-v37.css ==== */
/* Sekeping V37 — exact V31 gallery, wishes and quiet voice recorder composition.
   CSS is isolated to guest-facing pages and loaded AFTER all previous versions.
   Preserve the V36 ownership/delete behavior and manager dashboard. */
:root{--sk-paper:#fffdf8;--sk-ivory:#faf7f0;--sk-forest:#263f32;--sk-line:#dfd9cb;--sk-muted:#777e70}
#app .guest-subpage:has(.sk37-reference-gallery),
#app .guest-subpage:has(.sk37-reference-voice),
#app .guest-subpage:has(.sk37-wish-composer){background:var(--sk-ivory);color:var(--sk-forest)}
#app .guest-subpage:has(.sk37-reference-gallery) .guest-subcontent{max-width:1120px;padding:25px 22px 66px}
#app .sk37-reference-gallery{max-width:none;width:100%;margin:0 auto}
#app .sk37-reference-gallery .album-cover{display:flex;align-items:center;justify-content:center;min-height:295px;border-radius:12px;margin:0 0 20px;padding:28px 18px;background:linear-gradient(120deg,#243f34,#526449)!important;position:relative;isolation:isolate;overflow:hidden}
#app .sk37-reference-gallery .album-cover.has-wedding-photo{background:#273f35!important}
#app .sk37-reference-gallery .album-cover .cover-foreground{z-index:-2}
#app .sk37-reference-gallery .album-cover .cover-blurred-backdrop{z-index:-3}
#app .sk37-reference-gallery .album-cover::before{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#1c302733,#102a24bc);z-index:-1}
#app .sk37-reference-gallery .album-cover::after{display:none}
#app .sk37-reference-gallery .album-cover-details{width:100%;max-width:700px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:5px;z-index:1}
#app .sk37-reference-gallery .album-cover-details .micro{color:#eadcc7;font-size:10px;letter-spacing:2.5px}
#app .sk37-reference-gallery .album-cover-details h1{font:400 clamp(31px,4.5vw,49px)/1.25 'Playfair Display',Georgia,serif;color:#fffefa;margin:7px 0 2px;letter-spacing:-.5px;text-shadow:0 2px 12px #14281fb5;overflow-wrap:anywhere}
#app .sk37-reference-gallery .album-cover-details>p{font:600 11px 'DM Sans',sans-serif;letter-spacing:2px;color:#efe5d1;margin:2px 0 13px}
#app .sk37-reference-gallery .album-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;width:100%;max-width:610px;margin:10px auto 0}
#app .sk37-reference-gallery .album-stats div{min-width:0;display:flex;flex-direction:column;gap:4px}
#app .sk37-reference-gallery .album-stats strong{font:400 clamp(26px,4vw,36px)/1.1 Georgia,serif;color:#fffefa}
#app .sk37-reference-gallery .album-stats span{color:#e9e9db;font:600 9px 'DM Sans',sans-serif;letter-spacing:1.4px}
#app .sk37-reference-gallery .album-main{padding:0;background:transparent}
#app .sk37-reference-gallery .album-primary{display:flex;align-items:center;gap:9px;margin:0 0 22px}
#app .sk37-reference-gallery .album-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));flex:1;min-width:0;gap:3px;padding:4px;background:#eeeee5!important;border:1px solid var(--sk-line)!important;border-radius:10px}
#app .sk37-reference-gallery .album-tabs button{font-size:clamp(10px,1.5vw,12px);font-weight:600;white-space:nowrap;padding:12px 5px;min-height:42px;background:transparent;border:0;border-radius:7px;color:#637062}
#app .sk37-reference-gallery .album-tabs button.active{background:var(--sk-paper)!important;color:var(--sk-forest)!important;box-shadow:0 1px 4px #243f3411!important}
#app .sk37-reference-gallery .album-home-button{width:42px;height:42px;min-width:42px;display:grid;place-items:center;border:1px solid var(--sk-line);border-radius:50%;background:#fffdf8;color:#476050}
#app .sk37-reference-gallery .album-home-button:last-child{background:var(--sk-forest);border-color:var(--sk-forest);color:white}
#app .sk37-reference-gallery .gallery-section-heading{display:flex;justify-content:space-between;align-items:center;gap:15px;flex-wrap:wrap;margin:0 0 16px}
#app .sk37-reference-gallery .gallery-section-heading h2{font:400 clamp(23px,3.2vw,30px) 'Playfair Display',Georgia,serif;color:var(--sk-forest);margin:0 0 5px}
#app .sk37-reference-gallery .gallery-section-heading p{font-size:12px;color:#7d8275;line-height:1.6;margin:0}
#app .sk37-reference-gallery .gallery-count{font-size:12px;color:#7b8274}
#app .sk37-reference-gallery .album-filters{display:flex;gap:8px;overflow-x:auto;padding:0 0 16px}
#app .sk37-reference-gallery .album-filters button{border:1px solid #ded9ce;background:var(--sk-paper);color:#766c5a;padding:10px 13px;border-radius:24px;font-size:10px;font-weight:600;letter-spacing:.8px;white-space:nowrap}
#app .sk37-reference-gallery .album-filters button.active{border-color:var(--sk-forest);background:var(--sk-forest)!important;color:#fff!important}
#app .sk37-reference-gallery .guest-person-row{display:flex;gap:7px;overflow-x:auto;margin-bottom:16px}
#app .sk37-reference-gallery .guest-person-row button{border:1px solid var(--sk-line);border-radius:20px;padding:8px 11px;background:var(--sk-paper);color:#566451;font-size:11px;white-space:nowrap}
#app .sk37-reference-gallery .guest-person-row button.active{background:#e2e8d9;border-color:#b6c6ae}
#app .sk37-reference-gallery .album-photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
#app .sk37-reference-gallery .album-photo{aspect-ratio:3/4;position:relative;overflow:hidden;border-radius:9px;background:#e0d7c8;box-shadow:none}
#app .sk37-reference-gallery .album-photo .gallery-open-photo{position:absolute;inset:0;width:100%;height:100%;display:block;border:0;padding:0;background:transparent;cursor:zoom-in}
#app .sk37-reference-gallery .album-photo .gallery-open-photo img{width:100%;height:100%;object-fit:cover;display:block}
#app .sk37-reference-gallery .album-photo-name{font:italic clamp(15px,2.4vw,20px) Georgia,serif;padding:30px 11px 12px;color:white;pointer-events:none}
#app .sk37-reference-gallery .album-film-mark{display:block;position:absolute;left:8px;top:50px;z-index:2;color:#e8a873;font-size:8px;pointer-events:none}
#app .sk37-reference-gallery .photo-favourite{width:34px;height:34px;top:8px;right:8px;border-radius:50%;z-index:4}
#app .sk37-reference-gallery .album-photo .sk36-photo-delete{position:absolute;right:9px;bottom:48px;z-index:7;min-height:31px;padding:7px 8px;background:#fffdf4e8;color:#8f4d45;border:1px solid #ffffffaa;box-shadow:0 2px 9px #1b201922}
#app .sk37-reference-gallery .album-photo .sk36-photo-delete span{display:none}
#app .sk37-reference-gallery .album-photo .sk36-photo-delete .ico{height:16px;width:16px}
#app .sk37-reference-gallery .album-bottom-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:9px;margin-top:24px}
#app .sk37-reference-gallery .album-wishes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
#app .sk37-reference-gallery .album-wishes .wish-card{position:relative;padding:22px;background:var(--sk-paper);border:1px solid var(--sk-line);border-radius:12px;box-shadow:none}
#app .sk37-reference-gallery .album-wishes .wish-card::before{display:block;line-height:.85;color:#b9a27e}
#app .sk37-reference-gallery .album-wishes .wish-card p{font-size:13px;line-height:1.75;color:#435747}
#app .sk37-reference-gallery .gallery-voice-list{display:grid;gap:12px}
#app .sk37-reference-gallery .gallery-voice-card{background:var(--sk-paper);border:1px solid var(--sk-line);border-radius:12px;padding:14px}
/* V31 minimalist waveform recorder, adapted to V36's quotas and delete permissions. */
.guest-subpage .guest-identity {display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 16px;padding:0 2px;color:#72786b;font-size:12px;line-height:1.6;text-align:left}
.guest-subpage .guest-identity span {min-width:0;overflow-wrap:anywhere}
.guest-subpage .guest-identity strong {color:var(--sk-forest);font-weight:600}
.guest-subpage .guest-identity button {background:none;border:0;border-bottom:1px solid #c4bea9;border-radius:0;color:#6b725e;padding:8px 0;font-size:11px;white-space:nowrap;flex:none}
.guest-subpage .voice-minimal-panel {max-width:520px;margin:auto}
.guest-subpage .voice-minimal {background:var(--sk-paper);border:1px solid var(--sk-line);border-radius:16px;padding:20px;text-align:center}
.voice-minimal-top {display:flex;align-items:center;justify-content:space-between;gap:12px;color:#6d735f;font-size:10px;letter-spacing:.04em}
.voice-minimal-top>span:first-child {display:flex;align-items:center;gap:7px;letter-spacing:1.6px;font-weight:600}
.voice-minimal-top .ico {color:#9a825a}
.voice-minimal-stage {padding:22px 0 21px}
.voice-minimal-wave {height:44px;display:flex;align-items:center;justify-content:center;gap:4px;margin-bottom:14px;color:#b3b9a3}
.voice-minimal-wave i {display:block;width:3px;height:var(--height);border-radius:4px;background:currentColor;transform:scaleY(.42)}
.voice-minimal.is-recording .voice-minimal-wave {color:#788762}
.voice-minimal.is-recording .voice-minimal-wave i {animation:sk31-wave .85s ease-in-out var(--delay) infinite alternate}
.voice-minimal.is-ready .voice-minimal-wave {color:#9f8b65}
.voice-minimal.is-ready .voice-minimal-wave i {transform:scaleY(.65)}
@keyframes sk31-wave {from{transform:scaleY(.25)}to{transform:scaleY(1)}}
.voice-minimal-time {font:400 43px/1.1 'DM Sans',system-ui,sans-serif;letter-spacing:1px;font-variant-numeric:tabular-nums;color:var(--sk-forest)}
.voice-minimal-state {display:flex;align-items:center;justify-content:center;gap:7px;margin-top:10px;font-size:11px;color:#67725c}
.voice-minimal-state i {width:5px;height:5px;border-radius:50%;background:#9ba68c}
.voice-minimal.is-recording .voice-minimal-state i {background:#aa6054}
.voice-minimal.is-recording .voice-minimal-state {color:#8e5347}
.voice-minimal-progress-head {display:flex;justify-content:space-between;gap:12px;font-size:10px;color:#757b6b;margin-bottom:8px}
.voice-minimal-progress {height:3px;overflow:hidden;background:#ebece1;border-radius:3px}
.voice-minimal-progress>span {display:block;height:100%;background:#9e8c64;transition:width .2s linear}
.voice-minimal-actions {display:flex;justify-content:center;gap:9px;margin-top:20px}
.guest-subpage .voice-minimal-actions .btn {border-radius:10px;flex:1;justify-content:center;min-height:46px;font-size:13px;padding:10px 12px}
.guest-subpage .voice-minimal-actions .voice-stop {background:#8f5146;border-color:#8f5146}
.voice-minimal-hint {font-size:11px;line-height:1.6;color:#767c6e;margin:12px 0 0}
.voice-minimal-preview {margin-top:16px;text-align:left}
.voice-minimal-panel .voice-collection-header {margin:26px 0 14px}
.voice-minimal-panel .voice-collection-header h3 {font-weight:400;font-size:24px;color:var(--sk-forest)}
.voice-minimal-panel .voice-collection-header>span {font-size:11px;color:#737b69}
.guest-subpage .voice-minimal-panel .empty {padding:23px 16px;border-radius:12px;font-size:12px;line-height:1.7}
.guest-subpage .voice-minimal-panel .voice-card {grid-template-columns:1fr;padding:14px;background:var(--sk-paper);border-color:var(--sk-line);box-shadow:none}
#app .guest-subpage .voice-minimal-panel{max-width:540px;margin:0 auto}
#app .guest-subpage .voice-minimal{border-color:var(--sk-line);background:var(--sk-paper);box-shadow:none}
#app .guest-subpage .voice-minimal-actions .btn:disabled{opacity:.45}
#app .guest-subpage .voice-minimal-panel .voice-card{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;align-items:start;max-width:100%;border-radius:12px}
#app .guest-subpage .voice-minimal-panel .voice-card .sek-voice-player{min-width:0;max-width:100%}
#app .guest-subpage .voice-minimal-panel .voice-card .sk36-own-delete{justify-self:end;margin-top:0}
#app .guest-subpage .voice-minimal-panel .voice-collection-header{display:flex;align-items:center;justify-content:space-between;gap:10px}
#app .guest-subpage .sk35-guest-quota{max-width:540px;margin:0 auto 17px}
/* V31 wish submission card and quotation cards. */
#app .guest-subpage .sk37-wish-composer{padding:23px 24px;margin-bottom:27px!important;background:var(--sk-paper);border:1px solid var(--sk-line);border-radius:12px}
#app .guest-subpage .sk37-wish-composer .field{margin:0 0 16px}
#app .guest-subpage .sk37-wish-composer .field>span{display:block;margin-bottom:9px;color:#60705d;font-size:11px;letter-spacing:1px}
#app .guest-subpage .sk37-wish-composer textarea{min-height:128px;padding:14px 16px;background:#fffefa;border:1px solid #dcd8cd;border-radius:10px;color:var(--sk-forest);font-size:13px;line-height:1.75}
#app .guest-subpage .sk37-wish-composer .actions{display:flex;justify-content:flex-end}
#app .guest-subpage .sk37-wish-composer.is-limit-reached .btn{opacity:.45;cursor:not-allowed;pointer-events:none}
#app .guest-subpage .sk37-wish-composer.is-limit-reached textarea{background:#f7f3ec}
#app .guest-subpage .sk37-wish-composer .sk37-limit-hint{margin:12px 0 0;font-size:11px;line-height:1.6;color:#8a7358;text-align:right}
#app .guest-subpage .sk37-reference-wishes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;max-width:930px;margin:0 auto;align-items:start;grid-auto-rows:max-content}
#app .guest-subpage .sk37-reference-wishes .wish-card{background:var(--sk-paper);border:1px solid var(--sk-line);border-radius:12px;padding:24px;box-shadow:none;height:auto;min-height:0;align-self:start;display:flex;flex-direction:column}
#app .guest-subpage .sk37-reference-wishes .wish-card::before{display:block;font:48px Georgia,serif;line-height:.8;color:#c8b58f}
#app .guest-subpage .sk37-reference-wishes .wish-card p{font-size:14px;line-height:1.8;color:#455848;overflow-wrap:anywhere;white-space:pre-wrap;margin:12px 0 15px}
#app .guest-subpage .sk37-reference-wishes .wish-card .by{color:#796d56;font-size:11px}
#app .guest-subpage .sk37-reference-wishes .wish-card .sk36-own-delete{margin-top:14px;align-self:flex-start}
@media(max-width:700px){
 #app .guest-subpage:has(.sk37-reference-gallery) .guest-subcontent{padding:15px 16px 50px}
 #app .sk37-reference-gallery .album-cover{min-height:265px;border-radius:0;margin:0 -16px 17px;padding:23px 13px}
 #app .sk37-reference-gallery .album-cover-details h1{font-size:clamp(30px,8vw,41px)}
 #app .sk37-reference-gallery .album-stats strong{font-size:26px}
 #app .sk37-reference-gallery .album-stats span{font-size:8px;letter-spacing:.7px}
 #app .sk37-reference-gallery .album-primary{gap:6px;margin-bottom:19px}
 #app .sk37-reference-gallery .album-tabs button{min-height:40px;padding:10px 3px;font-size:10px}
 #app .sk37-reference-gallery .album-home-button{height:38px;width:38px;min-width:38px}
 #app .sk37-reference-gallery .album-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
 #app .sk37-reference-gallery .album-wishes,#app .guest-subpage .sk37-reference-wishes{grid-template-columns:1fr}
 #app .guest-subpage .sk37-wish-composer{padding:19px}
}
@media(max-width:360px){#app .sk37-reference-gallery .album-tabs button{font-size:9px;letter-spacing:-.1px}#app .sk37-reference-gallery .album-photo-name{font-size:14px}}
@media(prefers-reduced-motion:reduce){.voice-minimal.is-recording .voice-minimal-wave i{animation:none;transform:scaleY(.7)}.voice-minimal-progress>span{transition:none}}

/* ==== site-language.css ==== */
/* Shared compact language switch for Home and Manager. Guest switch keeps its original styling. */
.sek38-language-btn {display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;min-width:36px;height:33px;padding:0 9px;border:1px solid #d8c6ac;border-radius:20px;background:#fffaf3;color:#4d4032;font:700 11px/1 system-ui,sans-serif;letter-spacing:.06em;cursor:pointer;transition:background .15s,border-color .15s}
.sek38-language-btn:hover{background:#efe5d7;border-color:#b89e79}
.sek38-language-btn:focus-visible{outline:2px solid #826b4f;outline-offset:3px}
.sek38-dashboard-language{margin-right:6px}
.sek38-mobile-actions{display:flex;align-items:center;gap:8px}
@media(max-width:620px){.topbar .nav-links{gap:7px}.topbar .nav-links>.btn{padding-inline:8px}.sek38-language-btn{height:31px;min-width:33px}}

/* Only one language switch is visible: mobile header on phones, top actions on desktop. */
@media (max-width:720px){.sk35-dashboard .sk35-top-actions .sek38-dashboard-language{display:none!important}}

/* Avoid animated horizontal repositioning when switching manager sections. */
.sk35-dashboard .mobile-nav{scroll-behavior:auto!important;-webkit-overflow-scrolling:touch}

/* ==== sekeping-v54.css ==== */
/* Sekeping V54: Light, unobtrusive timer/grid controls; projection-grade Live Memory Wall. */
.sek-camera-v23 .camera-frame .v54-cam-tools{position:absolute;z-index:12;top:clamp(98px,14vh,145px);right:14px;display:flex;flex-direction:column;align-items:flex-end;gap:7px;pointer-events:auto}
.sek-camera-v23 .v54-cam-tools[hidden]{display:none!important}
.sek-camera-v23 .v54-cam-tool{display:flex;align-items:center;justify-content:center;min-width:69px;min-height:31px;border:1px solid rgba(255,255,255,.5);border-radius:99px;padding:6px 9px;background:rgba(36,29,22,.18);color:#fff;font:600 10px/1.15 'DM Sans',system-ui,sans-serif;letter-spacing:.25px;text-shadow:0 1px 6px #0009;cursor:pointer;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
.sek-camera-v23 .v54-cam-tool.active{background:#eee4d4;color:#493d30;border-color:#eee4d4;text-shadow:none}
.sek-camera-v23 .camera-preview-stage .v54-grid-overlay{position:absolute;inset:0;pointer-events:none;z-index:5;opacity:0;transition:opacity .2s linear;background:linear-gradient(90deg,transparent calc(33.333% - .55px),rgba(255,255,255,.68) 33.333%,transparent calc(33.333% + .55px),transparent calc(66.666% - .55px),rgba(255,255,255,.68) 66.666%,transparent calc(66.666% + .55px)),linear-gradient(0deg,transparent calc(33.333% - .55px),rgba(255,255,255,.68) 33.333%,transparent calc(33.333% + .55px),transparent calc(66.666% - .55px),rgba(255,255,255,.68) 66.666%,transparent calc(66.666% + .55px))}
.sek-camera-v23 .camera-preview-stage .v54-grid-overlay.visible{opacity:.8}
.sek-camera-v23 #v54Countdown{position:absolute;z-index:16;inset:0;display:grid;place-items:center;color:#fff;text-shadow:0 4px 25px #000a;font:400 clamp(90px,25vw,160px)/1 'Playfair Display',Georgia,serif;pointer-events:none;background:rgba(0,0,0,.1)}
.sek-camera-v23 .camera-shutter[aria-busy=true]{opacity:.6}
@media(max-width:360px){.sek-camera-v23 .camera-frame .v54-cam-tools{right:8px;top:100px}.sek-camera-v23 .v54-cam-tool{min-height:28px;min-width:60px;font-size:9px}}
.v54-wall-launch{gap:9px!important}.v54-wall-launch span{display:inline-grid;place-items:center;width:21px;height:21px;font-size:19px;font-weight:400}
.v54-wall-overview{margin:7px 0 0;border:1px solid #d4c7b7;border-radius:999px;background:#f5efe6;color:#64503c;font:600 12px 'DM Sans',system-ui,sans-serif;padding:10px 15px;cursor:pointer}
#v54Message{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom));transform:translate(-50%,20px);z-index:99999;opacity:0;pointer-events:none;transition:opacity .18s,transform .18s;max-width:min(90vw,450px);background:#29231e;color:#f7efe4;border:1px solid #b6a58d;border-radius:12px;padding:12px 16px;text-align:center;font:12px/1.45 'DM Sans',system-ui,sans-serif;box-shadow:0 12px 32px #0003}
#v54Message.visible{opacity:1;transform:translate(-50%,0)}
body.v54-wall-open{overflow:hidden!important}
.v54-wall-root{--vw-ink:#3b3028;--vw-cream:#f4eee3;position:fixed;inset:0;z-index:99990;display:flex;flex-direction:column;min-height:100dvh;padding:clamp(12px,2.2vw,28px);background:#ebe4d7;color:var(--vw-ink);font-family:'DM Sans',system-ui,sans-serif;overflow:hidden}
.v54-wall-root button{font:inherit;cursor:pointer}
.v54-wall-root button:focus-visible{outline:3px solid #a48560;outline-offset:3px}
.v54-wall-top{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;flex-shrink:0;padding:0 3px 10px;border-bottom:1px solid #cabca7}
.v54-wall-eyebrow{font-size:10px;letter-spacing:2.1px;font-weight:700;color:#896f54}
.v54-wall-eyebrow span{margin:0 7px;color:#b59c79}
.v54-wall-top h1{margin:3px 0 0;font:400 clamp(21px,3.6vw,42px)/1.25 'Playfair Display',Georgia,serif;color:#3b3028}
.v54-wall-top h1 em{color:#a28b6d;font-weight:400}
.v54-wall-top p{margin:5px 0 0;color:#89755f;font:12px/1.3 Georgia,serif;font-style:italic}
.v54-wall-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:7px}
.v54-wall-btn{min-width:32px;min-height:34px;border:1px solid #cdbfae;border-radius:8px;background:transparent;color:#584a3d;padding:8px 12px;font-size:12px!important;white-space:nowrap}
.v54-wall-btn:hover{background:#ded3c2}
.v54-wall-btn.primary{background:#44392f;color:#f8f0e5;border-color:#44392f}
.v54-wall-btn:disabled{opacity:.5;cursor:wait}
.v54-wall-btn.v54-close{font-size:25px!important;padding:0 10px;line-height:1}
.v54-wall-stage{position:relative;flex:1;min-height:0;margin-top:10px;display:grid;place-items:center;overflow:hidden;background:#e4d9c9;border:1px solid #cfc0a8;border-radius:12px}
.v54-wall-figure{height:100%;width:100%;margin:0;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:0}
.v54-wall-figure img{object-fit:contain;display:block;flex:1;min-height:0;width:100%;height:calc(100% - 54px);padding:12px}
.v54-wall-figure img.v54-image-error{visibility:hidden}
.v54-wall-figure figcaption{display:block;flex-shrink:0;min-height:48px;text-align:center;padding:12px;color:#534536;font:400 clamp(15px,2.2vw,21px) 'Playfair Display',Georgia,serif}
.v54-wall-empty,.v54-wall-loading{text-align:center;max-width:460px;padding:25px}
.v54-wall-empty>span{display:block;font-size:45px;color:#ad9677}
.v54-wall-empty h2{font:400 30px 'Playfair Display',Georgia,serif;margin:7px 0 12px}
.v54-wall-empty p{font-size:13px;line-height:1.65;color:#837360}
.v54-wall-bottom{flex-shrink:0;display:flex;align-items:center;gap:9px;min-height:52px;padding:12px 2px 0;color:#75634f;font-size:12px}
.v54-wall-bottom #v54WallCount{margin-left:6px;font-variant-numeric:tabular-nums;font-weight:700}
.v54-wall-bottom #v54WallStatus{margin-left:auto;text-align:right}
.v54-moderate{width:100%;height:100%;overflow-y:auto;padding:clamp(11px,2vw,24px);display:flex;flex-direction:column;gap:13px}
.v54-mod-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.v54-mod-header h2{font:400 clamp(19px,2.6vw,27px) 'Playfair Display',Georgia,serif;margin:0 0 6px}.v54-mod-header p{font-size:12px;color:#7c6b55;margin:0}
.v54-mod-actions{display:flex;gap:6px;flex-wrap:wrap}
.v54-moderation-grid{flex:1;display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));align-content:start;gap:12px}
.v54-mod-tile{position:relative;overflow:hidden;border:2px solid transparent;border-radius:9px;background:#ede5d7;text-align:left;padding:0;min-height:145px;display:flex;flex-direction:column}
.v54-mod-tile img{display:block;width:100%;height:145px;object-fit:cover}
.v54-mod-tile small{padding:8px 9px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:#5c503f}
.v54-mod-tile.selected{border-color:#765d42}
.v54-mod-check{position:absolute;top:8px;right:8px;display:grid;place-items:center;width:27px;height:27px;border-radius:50%;color:#30291f;background:#f5e9d9;box-shadow:0 2px 10px #0002}
.v54-mod-footer{display:flex;align-items:center;justify-content:flex-end;gap:9px;border-top:1px solid #c5b69f;padding-top:12px}
.v54-mod-footer span{margin-right:auto;font-size:12px}
@media(max-width:650px){.v54-wall-root{padding:12px}.v54-wall-top{gap:7px}.v54-wall-top h1{font-size:22px}.v54-wall-top p{font-size:10px}.v54-wall-actions{gap:4px}.v54-wall-actions .v54-wall-btn{padding:7px;font-size:10px!important}.v54-wall-actions [data-v54="wall-approve"]{max-width:105px;white-space:normal}.v54-mod-header{align-items:flex-start;flex-direction:column}.v54-wall-bottom #v54WallStatus{font-size:10px}.v54-wall-bottom{gap:5px}.v54-wall-btn{padding:8px}.v54-moderation-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}}
@media(prefers-reduced-motion:reduce){#v54Message,.sek-camera-v23 .v54-grid-overlay{transition:none}}

/* Preserve the V53 no-blur camera clarity fix as a non-destructive override. */
/* SEK E P I N G — V53 Camera clarity fix
   Keep the live camera visible all the way to the bottom of the screen.
   This affects the viewing interface only, not photographed filters. */
.sek-camera-v21 .sk21-screen-shade,
.sek-camera-v22 .sk21-screen-shade,
.sek-camera-v23 .sk21-screen-shade {
  background: linear-gradient(180deg,
    rgba(10,9,9,.55) 0%,
    rgba(10,9,9,.12) 19%,
    rgba(10,9,9,0) 38%) !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
  filter: none !important;
}

.sek-camera-v21 .camera-controls,
.sek-camera-v22 .camera-controls,
.sek-camera-v23 .camera-controls {
  background: transparent !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
  filter: none !important;
}

/* Keep controls easy to read without blurring the image behind them. */
.sek-camera-v23 .camera-controls .cam-glass,
.sek-camera-v23 .camera-controls .camera-ratio,
.sek-camera-v23 .sk28-filter-popover {
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
}
.sek-camera-v23 .camera-controls .sk23-capture-meta,
.sek-camera-v23 .camera-controls .sk28-filter-label {
  text-shadow: 0 1px 3px rgba(0,0,0,.85);
}

/* ==== sekeping-v55.css ==== */
/* Sekeping V55 — unified guest experience settings: one card, one save action. */
.sk35-dashboard .dash-card.sk55-settings-card{
  max-width:960px;
  background:#fffdf9;
  border:1px solid #e8dac8;
  border-radius:18px;
  padding:clamp(17px,2.6vw,30px);
  box-shadow:0 5px 24px rgba(80,54,31,.035);
}
.sk55-settings-form{min-width:0}
.sk55-settings-heading{align-items:center;margin:0;padding-bottom:21px;border-bottom:1px solid #eee4d8}
.sk55-settings-heading .sk35-panel-ico{width:43px;height:43px;border-radius:13px}
.sk55-settings-heading .sk35-panel-ico .ico{width:22px;height:22px}
.sk35-dashboard .sk55-settings-heading h2{font:normal clamp(21px,2.3vw,27px)/1.25 Georgia,serif;color:#48382b;margin:0 0 5px}
.sk55-settings-heading p{font-size:12px!important;line-height:1.5!important}
.sk55-settings-rows{min-width:0}
#settingsForm .sk35-pref-field{
 max-width:none;min-height:78px;margin:0;padding:17px 2px;
 border-bottom:1px solid #eee5db;gap:16px;
}
#settingsForm .sk35-pref-left{gap:15px;min-width:0;flex:1}
#settingsForm .sk35-pref-left>div,#settingsForm .sk35-pref-left>span:not(.sk35-setting-icon){min-width:0}
#settingsForm .sk35-setting-icon{
 width:40px;height:40px;border-radius:12px;background:#f7efe3;
 flex-shrink:0;color:#a48351;
}
#settingsForm .sk35-setting-icon .ico{width:20px;height:20px}
#settingsForm .sk35-pref-left strong{font-size:13px;line-height:1.4;font-weight:700;color:#4b3d31}
#settingsForm .sk35-pref-left small{font-size:11px;line-height:1.45;color:#998b7d;margin-top:3px}
#settingsForm .sk35-stepper{height:39px;border-radius:10px;border-color:#dfd0bb;min-width:120px;justify-content:space-between}
#settingsForm .sk35-stepper button{width:35px;height:100%;font-size:20px;display:grid;place-items:center}
#settingsForm .sk35-stepper input{width:38px;min-width:0;font-size:14px}
#settingsForm .sk35-switch-ui{width:45px;height:25px}
#settingsForm .sk35-switch-ui::after{width:19px;height:19px}
#settingsForm .sk35-switch-input:checked+.sk35-switch-ui::after{transform:translateX(20px)}
#settingsForm .sk55-status-select{
 flex:0 1 310px;max-width:48%;min-width:0;width:auto;margin:0;
 border:1px solid #dfd0bb;border-radius:10px;background:#fffcf7;
 color:#534435;font-size:12px;padding:11px 28px 11px 12px;
}
#settingsForm .sk55-settings-actions{display:flex;justify-content:flex-end;margin-top:25px}
#settingsForm .sk55-settings-actions .btn{display:flex;align-items:center;justify-content:center;gap:9px;min-width:205px;min-height:47px;background:#85704f;color:#fff;border-radius:11px;font-size:13px;font-weight:700}
#settingsForm .sk35-pref-toggle{cursor:pointer}
#settingsForm .sk55-setting-row:focus-within{background:#fcf8f1}
@media (max-width:640px){
 .sk35-dashboard .dash-card.sk55-settings-card{padding:18px 15px;border-radius:15px}
 #settingsForm .sk35-pref-field{padding:16px 0;gap:9px;min-height:76px}
 #settingsForm .sk35-pref-left{gap:10px}
 #settingsForm .sk35-setting-icon{width:31px;height:31px;border-radius:9px}
 #settingsForm .sk35-setting-icon .ico{width:18px;height:18px}
 #settingsForm .sk35-pref-left strong{font-size:11.5px}
 #settingsForm .sk35-pref-left small{font-size:9.5px}
 #settingsForm .sk35-stepper{height:35px;min-width:99px}
 #settingsForm .sk35-stepper button{width:29px;font-size:18px}
 #settingsForm .sk35-stepper input{width:30px;font-size:12px}
 #settingsForm .sk55-status-row{align-items:stretch;flex-direction:column;gap:12px;padding:18px 0}
 #settingsForm .sk55-status-select{max-width:100%;width:100%;flex:auto;font-size:12px}
 #settingsForm .sk55-settings-actions .btn{width:100%;min-width:0}
}
@media (max-width:360px){
 .sk35-dashboard .dash-card.sk55-settings-card{padding:16px 12px}
 #settingsForm .sk35-pref-left{gap:7px}
 #settingsForm .sk35-setting-icon{width:27px;height:27px}
 #settingsForm .sk35-pref-left strong{font-size:11px}
 #settingsForm .sk35-pref-left small{font-size:9px}
 #settingsForm .sk35-stepper{min-width:89px}
 #settingsForm .sk35-stepper button{width:25px}
 #settingsForm .sk35-stepper input{width:27px}
}

/* ==== gift-save-to-photos.css ==== */
/* Sekeping — compact classic-minimal saving sheet for Salam Kaut QR. */
.sk-qr-save-overlay{position:fixed;inset:0;z-index:300;display:flex;align-items:flex-end;justify-content:center;font-family:inherit}
.sk-qr-save-backdrop{position:absolute;inset:0;background:rgba(39,34,29,.46)}
.sk-qr-save-sheet{position:relative;isolation:isolate;width:min(100%,480px);max-height:min(91dvh,800px);overflow-y:auto;overscroll-behavior:contain;padding:18px 24px calc(21px + env(safe-area-inset-bottom,0px));background:#fcfaf6;border:1px solid #dfd1be;border-radius:23px 23px 0 0;box-shadow:0 -12px 36px rgba(39,34,29,.12);color:#393027;text-align:center}
.sk-qr-save-handle{width:39px;height:4px;border-radius:8px;margin:-6px auto 16px;background:#d9cebd}
.sk-qr-save-close{position:absolute;right:15px;top:14px;width:34px;height:34px;padding:0;display:grid;place-items:center;background:#f4ede4;border:1px solid #e7daca;border-radius:50%;color:#6e5b46;font-size:24px;line-height:1;cursor:pointer}
.sk-qr-save-kicker{margin:8px auto 8px;letter-spacing:2px;font-size:10px;color:#a0855e;font-weight:600}
.sk-qr-save-sheet h2{font:400 28px/1.2 Georgia,'Times New Roman',serif;color:#352e29;margin:0 0 7px}
.sk-qr-save-description{font-size:12px;line-height:1.5;color:#8c8072;margin:0 0 12px}
.sk-qr-save-preview{display:block;width:144px;height:144px;object-fit:contain;margin:0 auto 13px;padding:8px;border:1px solid #e6dbcd;border-radius:12px;background:white}
.sk-qr-save-primary,.sk-qr-save-secondary{display:block;width:100%;border-radius:10px;border:1px solid #d6c4ab;min-height:45px;font:inherit;font-size:13px;font-weight:600;line-height:1.4;cursor:pointer}
.sk-qr-save-primary{background:#ae9064;color:#fffefb;border-color:#ae9064;margin-bottom:9px}
.sk-qr-save-primary:disabled{opacity:.55;cursor:wait}
.sk-qr-save-secondary{background:transparent;color:#67543c;margin-top:8px}
.sk-qr-save-help{margin:14px 4px 0;text-align:left;font-size:11px;line-height:1.65;color:#8a7e70}
.sk-qr-save-help strong{color:#675239}
@media(min-width:580px){.sk-qr-save-sheet{border-radius:22px;margin-bottom:20px;padding-bottom:22px}.sk-qr-save-overlay{align-items:flex-end}}

/* V55.6: make the original image usable for iOS touch-and-hold Save to Photos. */
.sk-qr-save-preview{width:min(270px,76vw);height:auto;max-height:43dvh;min-height:168px;object-fit:contain;-webkit-touch-callout:default;user-select:auto;-webkit-user-select:auto;touch-action:auto}
.sk-qr-save-tip{font-size:12px;line-height:1.6;color:#594b3d;margin:2px 0 14px;padding:10px 12px;background:#f6efe5;border:1px solid #e9dccd;border-radius:12px;text-align:left}
.sk-qr-save-tip strong{color:#493b2d}
.sk-qr-save-primary[hidden],.sk-qr-save-secondary[hidden]{display:none!important}

/* ==== camera-layout-v55-8.css ==== */
/* Sekeping V55.8 · Camera layout
   1) Timer + Grid sit side by side, directly under the event date.
   2) Filter button moves from the top-right corner to the right of the snap button.
   Loaded last so it overrides V54 (absolute right-side stack) and V22/V23 header rules. */

/* 1 · Timer & Grid: one horizontal row inside the title block, below the date */
.sek-camera-v23 .camera-frame .cam-wedding-title .v54-cam-tools{
  position:static;top:auto;right:auto;left:auto;bottom:auto;transform:none;
  display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;justify-content:center;
  gap:8px;margin-top:10px;max-width:100%;
}
.sek-camera-v23 .camera-frame .cam-wedding-title .v54-cam-tools[hidden]{display:none!important}
.sek-camera-v23 .camera-frame .cam-wedding-title .v54-cam-tool{
  flex:0 0 auto;min-width:0;min-height:30px;padding:6px 13px;white-space:nowrap;
}

/* 2 · Filter: third column of the snap row, to the right of the shutter */
.sek-camera-v23 .camera-snap-row .sk55-filter-slot{
  grid-column:3;grid-row:1;justify-self:end;align-self:center;min-width:0;max-width:100%;
  display:flex;align-items:center;justify-content:flex-end;
}
.sek-camera-v23 .camera-snap-row .sk55-filter-slot .sk22-top-filter{
  justify-self:auto;flex:0 1 auto;min-width:0;max-width:100%;
  height:38px;min-height:38px;padding:0 13px;gap:6px;
}

@media(max-width:360px){
  .sek-camera-v23 .camera-frame .cam-wedding-title .v54-cam-tool{padding:6px 10px;font-size:9px}
  .sek-camera-v23 .camera-snap-row .sk55-filter-slot .sk22-top-filter{height:34px;min-height:34px;padding:0 9px;font-size:8.6px}
}

/* ==== wish-card-compact.css ==== */
/* Sekeping V55.13 · Compact wish cards
   - Tight card: small padding, quote mark sits close to the message.
   - Own "Padam" button sits in the top-right corner so the bottom of the card stays tight. */
#app .guest-subpage .sk37-reference-wishes .wish-card,
#app .sk37-reference-gallery .album-wishes .wish-card{
  position:relative;padding:14px 18px 12px;gap:0;
}
#app .guest-subpage .sk37-reference-wishes .wish-card::before,
#app .sk37-reference-gallery .album-wishes .wish-card::before{
  display:block;font:38px/1 Georgia,"Times New Roman",serif;height:18px;margin:0 0 6px;overflow:visible;
  color:#c8b58f;
}
#app .guest-subpage .sk37-reference-wishes .wish-card p,
#app .sk37-reference-gallery .album-wishes .wish-card p{
  margin:0 0 8px;font-size:14px;line-height:1.55;
}
#app .guest-subpage .sk37-reference-wishes .wish-card .by,
#app .sk37-reference-gallery .album-wishes .wish-card .by{
  margin:0;line-height:1.4;
}
/* Padam → top-right corner */
#app .guest-subpage .sk37-reference-wishes .wish-card .sk36-own-delete,
#app .guest-subpage .album-wishes .wish-card .sk36-own-delete,
#app .sk37-reference-gallery .album-wishes .wish-card .sk36-own-delete{
  position:absolute;top:10px;right:12px;margin:0;align-self:auto;
  min-height:26px;padding:4px 9px;gap:4px;font-size:10.5px;border-radius:7px;
}
#app .guest-subpage .wish-card .sk36-own-delete .ico{width:12px;height:12px}

/* Manager dashboard: same compact wish format as the guest pages */
#app .dash-card .wish-grid .wish-card.sk55-dash-wish{
  position:relative;display:flex;flex-direction:column;align-self:start;height:auto;min-height:0;
  padding:14px 18px 12px;gap:0;background:var(--sk-paper,#fffefa);border:1px solid var(--sk-line,#e3d9c9);border-radius:12px;box-shadow:none;
}
#app .dash-card .wish-grid .wish-card.sk55-dash-wish::before{
  display:block;font:38px/1 Georgia,"Times New Roman",serif;height:18px;margin:0 0 6px;overflow:visible;color:#c8b58f;
}
#app .dash-card .wish-grid .wish-card.sk55-dash-wish p{
  margin:0 0 8px;font-size:14px;line-height:1.55;color:#455848;overflow-wrap:anywhere;white-space:pre-wrap;
}
#app .dash-card .wish-grid .wish-card.sk55-dash-wish .by{margin:0;line-height:1.4;color:#796d56;font-size:11px}
#app .dash-card .wish-grid .wish-card.sk55-dash-wish .sk36-own-delete{
  position:absolute;top:10px;right:12px;margin:0;min-height:26px;padding:4px 9px;gap:4px;font-size:10.5px;border-radius:7px;
}
#app .dash-card .wish-grid .wish-card.sk55-dash-wish .sk36-own-delete .ico{width:12px;height:12px}
