:root{--maroon:#570d21;--deep:#300c15;--cream:#fbf3e3;--ivory:#fffaf0;--gold:#b58a48;--ink:#36271f;--line:#dcc8a5;--muted:#77695d}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:85px}body{margin:0;color:var(--ink);background:var(--cream);font-family:Arial,Helvetica,sans-serif;font-size:15px;line-height:1.6}h1,h2,h3{font-family:Georgia,'Times New Roman',serif;font-weight:400;line-height:1.15;color:var(--maroon)}h1,h2,h3,p{margin-top:0}h2{font-size:32px}h3{font-size:23px}a{color:var(--maroon);text-decoration:none}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}img{max-width:100%;display:block}button:disabled{cursor:not-allowed;opacity:.6}[hidden]{display:none!important}:focus-visible{outline:3px solid #b67a21;outline-offset:4px}.skip{position:fixed;left:12px;top:-100px;z-index:100;background:white;padding:12px}.skip:focus{top:12px}.header{height:82px;background:linear-gradient(110deg,var(--deep),var(--maroon));border-bottom:2px solid var(--gold);display:flex;align-items:center;justify-content:space-between;padding:0 7%;position:relative;z-index:5}.header:before{content:'';position:absolute;inset:0 auto 0 0;width:100px;opacity:.3;background:url('../heritage/songket-border.svg') repeat}.brand img{height:65px;width:76px}.header nav{display:flex;align-items:center;gap:34px}.header nav>a{color:var(--cream);font-size:14px}.header .button{background:var(--cream);color:var(--maroon);border-color:var(--gold)}.menu-toggle{display:none;background:transparent;color:var(--gold);border:0;font-size:26px;width:48px;height:48px}.button{min-height:46px;padding:11px 23px;display:inline-flex;justify-content:center;align-items:center;gap:22px;background:var(--maroon);border:1px solid var(--maroon);border-radius:5px;color:#fff9ed;font-size:14px;font-weight:600;box-shadow:0 0 0 2px transparent;line-height:1.5}.button:hover{background:#74152e;color:white}.button.outline{background:transparent;border-color:var(--gold);color:var(--maroon)}.button.outline:hover{background:#efdfc4}.button.small{padding:9px 25px}.hero{position:relative;display:grid;grid-template-columns:44% 56%;min-height:670px;background:var(--cream);isolation:isolate;border-bottom:18px solid var(--maroon)}.hero-photo{grid-column:2;grid-row:1;min-width:0}.akad{width:100%;height:100%;object-fit:cover;object-position:52% 50%;position:absolute;inset:0 0 0 auto;width:60%;z-index:-2}.hero-photo:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,var(--cream) 32%,#fbf3e3e6 40%,#fbf3e300 56%);z-index:-1}.hero:before{content:'';position:absolute;left:0;top:0;bottom:0;width:48px;background:var(--maroon) url('../heritage/songket-border.svg') repeat-y;border-right:2px solid var(--gold)}.hero-copy{grid-column:1;grid-row:1;padding:35px 0 42px 20%;text-align:center;position:relative;align-self:center}.hero-mark{margin:0 auto 9px}.eyebrow{font-size:12px;letter-spacing:3px;text-transform:uppercase;color:var(--maroon);font-weight:600}.hero h1{font-size:clamp(58px,5.7vw,86px);line-height:.91;margin:18px 0}.hero h1 em{font-size:.65em;font-weight:400}.divider{width:175px;height:28px;object-fit:contain;margin:16px auto}.intro{font-family:Georgia,serif;font-style:italic;max-width:350px;margin:18px auto;font-size:17px}.hero-details{text-align:left;max-width:340px;margin:20px auto}.hero-details p{display:flex;gap:16px;margin-bottom:13px}.hero-details p>span{font-size:14px}.actions{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}.hero .actions{flex-wrap:nowrap;gap:10px}.hero .button{padding:11px 16px;white-space:nowrap}.invitation-layout{display:grid;grid-template-columns:minmax(0,1fr) 29%;background:var(--maroon);padding:24px 5% 24px;gap:0}.invitation{padding:48px 50px;text-align:center}.section-heading{text-align:center;margin-bottom:20px}.section-heading h2{margin:7px 0}.section-heading img{margin:auto}.invitation p{font-size:14px}.invitation h3{font-size:24px;line-height:1.35;margin:22px auto}.amp{font-size:23px;color:var(--gold)}.event-panel{padding:35px 30px;color:var(--cream);background-image:url('../heritage/pucuk-rebung.svg');background-repeat:repeat-x;background-position:bottom;background-size:95px}.event-panel h2{font-size:26px;color:var(--cream);text-align:center}.event-panel h3{font-size:21px;color:var(--cream);margin-bottom:8px}.event-item{display:flex;gap:16px;margin:24px 0}.event-item p{line-height:1.5;font-size:14px;margin-bottom:0}.line-icon{font-size:32px;color:#d7b675;line-height:1.1}.section{padding:60px 7%}.location{border-top:8px solid #e8d9bd;border-bottom:8px solid #e8d9bd}.location-grid{display:grid;grid-template-columns:58% 1fr;gap:42px;align-items:center;max-width:1060px;margin:auto}.location figure{margin:0}.house{width:100%;aspect-ratio:1.8;object-fit:cover;border:1px solid var(--gold);padding:5px;outline:1px solid var(--line);outline-offset:4px;border-radius:10px}.location figcaption{text-align:center;font-family:Georgia,serif;font-size:13px;margin:13px 0 0}.location .actions{justify-content:flex-start}.location h3{font-size:25px}.rsvp-section{background:#f0e5d3 url('../heritage/songket-border.svg');background-size:180px;background-blend-mode:soft-light}.rsvp-card{max-width:760px;margin:auto;padding:40px 48px}.form-logo{width:75px;height:65px;margin:0 auto 15px}.center{text-align:center}.rsvp-card>.center{font-size:14px;color:var(--muted)}.rsvp-form{margin-top:30px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}label,legend{font-size:13px;font-weight:600;display:block}label>span,legend>span{color:var(--maroon)}input:not([type=radio]):not([type=checkbox]),select{display:block;width:100%;min-width:0;min-height:46px;padding:10px 12px;margin:7px 0 20px;border:1px solid #cec5b9;border-radius:4px;background:#fffefa;color:var(--ink)}fieldset{border:0;padding:0;margin:10px 0 22px;min-width:0}legend{margin-bottom:10px}input[type=radio],input[type=checkbox]{width:19px;height:19px;accent-color:var(--maroon);flex-shrink:0}.attendance-options{display:flex;gap:10px;flex-wrap:wrap}.choice{display:flex;align-items:center;gap:9px;min-height:44px;font-weight:400;flex:1}.hint{font-size:12px;color:var(--muted);margin:5px 0 12px}.slot-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.slot{position:relative;min-height:84px;border:1px solid var(--line);border-radius:5px;display:flex;align-items:flex-start;gap:7px;padding:12px;cursor:pointer;font-weight:400;font-size:13px}.slot input{margin:3px 0}.slot small{display:block;margin-top:6px;font-size:12px}.slot:has(input:checked){background:var(--maroon);border-color:var(--gold);box-shadow:0 0 0 1px var(--gold)}.slot:has(input:checked) span{color:var(--cream)}.slot.full{opacity:.5;cursor:not-allowed}.pax-row{display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid var(--line);padding:20px 0}.stepper{display:flex;align-items:center;flex-shrink:0}.stepper button{width:44px;height:44px;border:0;border-radius:4px;background:var(--maroon);color:white;font-size:22px}.stepper input:not([type=radio]){width:62px;margin:0;text-align:center;border:0;appearance:textfield;padding:6px}.stepper input::-webkit-inner-spin-button{appearance:none}.privacy{font-size:12px;color:var(--muted)}.submit{width:100%}.closing{padding:45px 20px;text-align:center;color:var(--cream);background:linear-gradient(#400e1aee,#300c15ee)}.closing .arabic{font-size:35px;color:#ddbc76;font-family:Georgia,serif;margin-bottom:15px}.closing p{font-size:14px}.closing h2{color:#ddbc76;font-size:27px}footer{padding:22px 7%;background:var(--maroon);color:var(--cream);display:flex;align-items:center;gap:20px;border-top:1px solid var(--gold)}footer p{font-family:Georgia,serif;margin:0}footer small{margin-left:auto;color:#d6c3b4}.confirmation{max-width:470px;margin:auto;padding:35px 32px 45px;text-align:center}.confirmation h1{font-size:36px;margin:15px 0 8px}.check{border-radius:50%;width:66px;height:66px;background:#276346;color:white;font-size:40px;margin:18px auto}.receipt{text-align:left;border:1px solid var(--gold);border-radius:7px;padding:22px 26px;margin:28px 0}.receipt dt{font-size:12px;font-weight:600}.receipt dd{margin:0 0 16px;overflow-wrap:anywhere}.receipt dd:last-child{margin:0}.stack{display:grid;gap:10px}.confirmation>.hint{margin-top:25px}.alert,.notice{border-left:4px solid var(--maroon);background:#f4dedf;padding:14px;margin-bottom:20px;font-size:14px}.notice{background:#e9f1e4;border-color:#4b784a}.photo-missing{background:#eee0c7;display:grid;place-content:center;text-align:center}.photo-missing small{display:block}.admin-body{background:#f2ede5}.sidebar{position:fixed;inset:0 auto 0 0;width:220px;background:linear-gradient(150deg,var(--maroon),var(--deep));color:var(--cream);display:flex;flex-direction:column;padding:24px 16px;border-bottom:30px solid transparent;border-image:url('../heritage/songket-border.svg') 30 round}.sidebar>a{margin:0 auto 12px}.sidebar>small{text-align:center;color:#d5b77c;letter-spacing:1px;font-size:10px}.sidebar nav{display:grid;gap:5px;margin-top:30px}.sidebar nav a{color:#f8eedd;min-height:46px;padding:11px 18px;border-radius:4px;font-size:14px}.sidebar nav .active,.sidebar nav a:hover{background:#97703c}.sidebar>form{margin-top:auto}.logout{border:0;background:transparent;color:var(--cream);min-height:46px;padding:12px;font-size:14px}.admin-content{margin-left:220px;min-width:0}.admin-header{display:flex;justify-content:space-between;padding:18px 32px;background:var(--deep);color:var(--cream);font-family:Georgia,serif}.admin-content main{padding:30px;max-width:1600px;margin:auto}.admin-title{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:25px}.admin-title h1{font-size:32px;margin:0}.admin-title .eyebrow{font-size:10px;margin-bottom:7px}.admin-title>a{font-size:13px}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:22px}.stat{background:var(--ivory);padding:21px 24px;border:1px solid #dfd4c3;border-radius:5px}.stat span{display:block;font-size:12px;text-transform:uppercase}.stat strong{font-size:32px;font-weight:400}.panel{background:var(--ivory);padding:25px;border:1px solid #dfd4c3;border-radius:6px;margin-bottom:22px;min-width:0}.panel h2{font-family:Arial,sans-serif;font-size:18px;color:var(--ink);margin-bottom:24px}.progress-row{display:grid;grid-template-columns:220px minmax(0,1fr) 85px;gap:20px;align-items:center;margin:16px 0;font-size:12px}.progress-row strong{text-align:right;font-weight:400}progress{width:100%;height:10px;appearance:none;border:0;border-radius:5px;overflow:hidden;background:#e6ded3}progress::-webkit-progress-bar{background:#e6ded3}progress::-webkit-progress-value{background:var(--maroon);border-radius:5px}progress::-moz-progress-bar{background:var(--maroon)}.table-wrap{overflow-x:auto;max-width:100%;border:1px solid #eee3d1}table{border-collapse:collapse;width:100%;font-size:12px;text-align:left}th,td{padding:12px 10px;border-bottom:1px solid #e8dfd1;vertical-align:top}th{background:#f0e7d8;font-size:11px;white-space:nowrap}td{min-width:65px}td form{display:inline}.badge{background:#e0eddf;color:#315e34;padding:4px 9px;border-radius:12px;white-space:nowrap}.text-link{display:inline-block;padding-top:18px;font-size:13px}.filters{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.filters input:not([type=radio]),.filters select{margin:0;flex:1 1 150px;width:auto}.filters .button{font-size:12px;padding:10px 14px}.table-action{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:44px;padding:6px;background:transparent;border:0;font-size:12px;color:var(--maroon)}.danger{color:#a02829}.pagination{display:flex;align-items:center;justify-content:flex-end;gap:16px;padding-top:20px}.pagination a{min-height:44px;display:inline-flex;align-items:center}.slot-admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.form-panel{max-width:800px}.login-wrap{min-height:100vh;background:var(--maroon) url('../heritage/songket-border.svg');display:grid;place-items:center;padding:35px 20px}.login-card{max-width:430px;width:100%;padding:40px}.login-card h1{text-align:center;font-size:34px}.back-link{display:block;text-align:center;padding:18px;font-size:13px}
@media(min-width:1600px){.hero{min-height:760px}.hero-copy{padding-left:25%}}
@media(max-width:1100px){.hero{min-height:630px;grid-template-columns:47% 53%}.hero-copy{padding-left:17%}.hero h1{font-size:66px}.hero .actions{flex-wrap:wrap}.hero-mark{display:none}.invitation-layout{padding:20px 3%;grid-template-columns:minmax(0,1fr) 31%}.invitation{padding:40px 32px}.event-panel{padding:30px 20px}.sidebar{width:190px}.admin-content{margin-left:190px}.admin-content main{padding:22px}.progress-row{grid-template-columns:165px minmax(0,1fr) 70px;gap:10px}.stat{padding:16px}.location-grid{gap:28px}}
@media(max-width:800px){.header{padding:0 5%;height:70px}.header nav{gap:16px}.hero{min-height:590px}.hero-copy{padding-left:15%;padding-right:8px}.hero h1{font-size:54px}.intro{font-size:15px}.hero-details p>span{font-size:12px}.hero:before{width:25px}.hero .button{font-size:12px}.invitation h3{font-size:21px}.event-panel h2{font-size:23px}.section{padding:42px 5%}.location-grid{grid-template-columns:55% 1fr;gap:24px}.location .actions{display:grid}.location h3{font-size:22px}.rsvp-card{padding:35px}.sidebar{position:static;width:auto;padding:12px;border-bottom:2px solid var(--gold);display:block}.sidebar>a,.sidebar>small{display:none}.sidebar nav{display:flex;overflow-x:auto;margin:0;gap:3px}.sidebar nav a{white-space:nowrap;padding:10px 14px}.sidebar>form{position:absolute;right:12px;top:69px;z-index:1}.admin-content{margin:0}.admin-header{padding-right:95px}.admin-title h1{font-size:29px}.slot-admin-grid{gap:12px}.stats{gap:10px}.stat span{font-size:10px}}
@media(max-width:600px){html{scroll-padding-top:12px}.header{height:64px;padding:0 18px}.brand img{width:59px;height:54px}.header:before{width:62px;opacity:.18}.menu-toggle{display:block}.header nav{display:none;position:absolute;left:0;right:0;top:64px;background:var(--maroon);padding:18px;box-shadow:0 12px 20px #0003}.header nav.open{display:grid;gap:0}.header nav a{padding:12px;min-height:44px}.hero{display:flex;flex-direction:column;min-height:0;border-bottom:0}.hero:before{display:none}.hero-photo{position:relative;order:0;height:auto;aspect-ratio:1.28;overflow:hidden}.akad{position:static;z-index:auto;width:100%;height:100%;object-fit:cover;object-position:52% 45%}.hero-photo:after{z-index:1;background:linear-gradient(0deg,var(--cream),#fbf3e300 36%);inset:0;pointer-events:none}.hero-copy{order:1;padding:0 24px 32px;margin-top:-12px;z-index:2;width:100%;background:transparent}.hero .eyebrow{font-size:11px;letter-spacing:2.7px;margin-bottom:14px}.hero h1{font-size:57px;line-height:.96;margin:0 0 13px}.hero .divider{margin:11px auto;width:150px}.hero .intro{font-family:Arial,sans-serif;font-style:normal;font-size:12px;line-height:1.65;max-width:290px;margin:15px auto}.hero-details{display:flex;justify-content:center;text-align:center;margin:12px auto;flex-direction:column}.hero-details p{display:block;font-size:0;margin:0}.hero-details p>span{font-size:13px}.hero-details p:nth-child(2){display:none}.hero-details strong{font-family:Georgia,serif;font-size:17px;color:var(--maroon)}.hero .actions{display:grid;gap:10px;max-width:330px;margin:18px auto 0}.hero .button{font-size:13px;min-height:46px}.invitation-layout{display:flex;flex-direction:column;padding:0}.event-panel{order:-1;padding:30px 34px 35px;background-size:75px}.event-panel h2{font-size:25px}.event-item{max-width:290px;margin:22px auto;gap:20px}.event-item p{font-size:14px}.event-item h3{font-size:20px}.invitation{padding:40px 29px}.invitation .eyebrow{font-size:9px;letter-spacing:2px}.invitation h3{font-size:21px;line-height:1.4}.invitation p{font-size:13px}.section-heading h2{font-size:29px}.location{padding:35px 25px}.location-grid{display:flex;flex-direction:column;gap:24px;text-align:center}.location figure{width:100%}.location .house{aspect-ratio:1.56}.location .actions{display:grid;grid-template-columns:1fr 1fr;gap:9px}.location .button{font-size:12px;padding:10px}.location-grid>div{width:100%}.location h3{margin-bottom:9px}.location p{font-size:14px}.section{padding:30px 14px}.rsvp-section{padding:24px 10px}.rsvp-card{padding:30px 22px}.rsvp-card .eyebrow{font-size:9px;letter-spacing:1.7px}.rsvp-card>.center{font-size:12px}.form-grid{grid-template-columns:1fr;gap:0}.attendance-options{display:block}.rsvp-form{margin-top:24px}.slot-grid{gap:9px}.slot{font-size:12px;padding:10px 8px;min-height:90px}.slot input{width:16px;height:16px}.slot small{font-size:11px}.pax-row{flex-direction:column;align-items:stretch;gap:10px}.stepper{justify-content:space-between}.stepper input:not([type=radio]){flex:1}.pax-row .hint{margin-bottom:0}.closing{padding:35px 23px}.closing p{font-size:12px;line-height:1.8}.closing .arabic{font-size:30px}footer{padding:20px;gap:15px;flex-wrap:wrap}footer img{width:50px;height:50px}footer p{font-size:15px}footer small{width:100%;margin:0;font-size:11px;text-align:center}.confirmation{padding:28px 24px 36px}.confirmation h1{font-size:31px}.confirmation>p{font-size:13px}.receipt{padding:20px;margin:24px 0;font-size:14px}.admin-content main{padding:16px 12px}.admin-title{align-items:flex-start}.admin-title h1{font-size:26px}.admin-title .eyebrow{font-size:8px;letter-spacing:1px}.admin-title>a{font-size:11px;max-width:75px}.stats{grid-template-columns:1fr 1fr}.stat{padding:14px}.stat strong{font-size:29px}.panel{padding:16px}.progress-row{grid-template-columns:minmax(0,1fr) 65px;gap:4px 10px;margin:20px 0}.progress-row progress{grid-row:2;grid-column:1/-1}.progress-row strong{grid-column:2;grid-row:1}.progress-row span{font-size:11px}.slot-admin-grid{grid-template-columns:1fr}.filters .button{flex:1 1 100px}.filters input:not([type=radio]),.filters select{flex-basis:100%}.admin-header{padding-left:20px}.login-card{padding:34px 25px}.pagination{font-size:12px}.pagination .button{padding:9px;font-size:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.icon{flex-shrink:0;color:var(--gold)}.hero-details .icon{color:var(--maroon)}.line-icon .icon{width:30px;height:30px}@media(max-width:600px){.hero-copy{display:flex;flex-direction:column;align-items:center}.hero-copy>.eyebrow{order:0}.hero-copy>h1{order:1}.hero-copy>.divider{order:2}.hero-copy>.hero-details{order:3}.hero-copy>.intro{order:4}.hero-copy>.actions{order:5;width:100%;justify-content:stretch;margin-top:10px}.hero-details .icon{display:none}}
