@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,500;0,600;0,700;1,500&display=swap');
:root{--wine:#642f26;--wine-dark:#3e1b19;--gold:#cf9f52;--cream:#fbf6ed;--paper:#fffdf9;--ink:#342a25;--muted:#756b64;--line:#e8ddd0}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',Arial,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}.hidden{display:none!important}.topline{height:34px;padding:0 5%;background:var(--wine-dark);color:#f8ebd7;display:flex;justify-content:space-between;align-items:center;font-size:11px;letter-spacing:.08em}.site-header{height:84px;padding:0 5%;display:flex;justify-content:space-between;align-items:center;background:var(--paper);position:sticky;top:0;z-index:10;border-bottom:1px solid var(--line)}.brand{display:flex;gap:11px;align-items:center}.brand-mark{width:44px;height:44px;display:grid;place-items:center;border:1px solid var(--gold);border-radius:50%;font-size:26px;color:var(--gold)}.brand strong{font-family:'Playfair Display',Georgia,serif;font-size:23px;color:var(--wine)}.brand small{display:block;text-transform:uppercase;letter-spacing:.18em;font-size:9px;color:var(--muted);margin-top:2px}.site-header nav{display:flex;align-items:center;gap:30px;font-size:13px;font-weight:600}.site-header nav a:hover{color:var(--wine)}.nav-action{border:1px solid var(--wine);background:var(--wine);color:white;padding:12px 19px;border-radius:3px}.menu-toggle{display:none;border:0;background:none;font-size:25px}.hero{display:grid;grid-template-columns:1.07fr .93fr;min-height:570px;background:var(--cream)}.hero-copy{padding:84px max(6vw,32px) 55px 8vw;display:flex;flex-direction:column;align-items:flex-start}.eyebrow,.kicker{color:#a76b36;font-size:11px;font-weight:700;letter-spacing:.22em}.hero h1,.section h2,.closing h2,.auth-card h2{font-family:'Playfair Display',Georgia,serif;font-weight:500}.hero h1{font-size:clamp(42px,4.4vw,72px);line-height:1.12;max-width:650px;color:var(--wine-dark);margin:20px 0}.hero h1 em{color:#a96b3b;font-weight:500}.hero p{font-size:16px;line-height:1.8;max-width:520px;color:var(--muted);margin:0}.hero-actions{display:flex;gap:13px;flex-wrap:wrap;margin-top:30px}.button{display:inline-flex;justify-content:space-between;gap:24px;align-items:center;padding:14px 20px;border:1px solid var(--wine);border-radius:3px;font-size:13px;font-weight:700}.button.primary{background:var(--wine);color:#fff}.button.outline{color:var(--wine);background:transparent}.button.light{background:#fff5e2;border-color:#fff5e2;color:var(--wine)}.button:hover,.nav-action:hover{filter:brightness(1.13)}.hero-foot{display:flex;gap:36px;margin-top:auto;padding-top:42px}.hero-foot span{font:600 24px 'Playfair Display',Georgia,serif;color:var(--wine)}.hero-foot small{display:block;font:500 10px 'DM Sans',sans-serif;text-transform:uppercase;letter-spacing:.11em;color:var(--muted);margin-top:4px}.hero-art{position:relative;overflow:hidden;background:radial-gradient(circle at 50% 37%,#edcc92 0,#d6a967 31%,#9c5f3d 68%,#713c2f 100%);min-height:570px}.hero-art:before,.hero-art:after{content:'';position:absolute;bottom:-25%;width:65%;height:60%;border-radius:50%;background:#723d30;opacity:.37}.hero-art:before{left:-35%}.hero-art:after{right:-35%}.sun{position:absolute;width:330px;height:330px;border-radius:50%;background:#f8dfae;box-shadow:0 0 90px #ffdf9f;left:50%;top:15%;transform:translateX(-50%);opacity:.75}.temple{position:absolute;width:320px;height:420px;left:50%;bottom:3%;transform:translateX(-50%);filter:drop-shadow(0 15px 18px #4f2b27a0)}.spire{position:absolute;top:1%;left:47%;height:115px;width:22px;background:linear-gradient(90deg,#6b342b,#ad7250,#6b342b);clip-path:polygon(50% 0,75% 48%,100% 100%,0 100%,25% 48%)}.roof{position:absolute;left:50%;transform:translateX(-50%);background:linear-gradient(90deg,#6e352e,#b87952 48%,#6e352e);clip-path:polygon(50% 0,100% 100%,0 100%)}.r1{top:20%;width:145px;height:90px}.r2{top:34%;width:210px;height:100px}.r3{top:51%;width:285px;height:110px}.body{position:absolute;bottom:24px;left:34px;width:252px;height:116px;background:repeating-linear-gradient(90deg,#8b4c35 0 35px,#a96c48 35px 38px);border:10px solid #723a2e}.door{position:absolute;left:50%;bottom:0;transform:translateX(-50%);width:75px;height:93px;background:#472923;border-radius:50px 50px 0 0;border:9px solid #bf8557}.steps{position:absolute;bottom:0;left:9px;width:302px;height:26px;background:linear-gradient(#c48a5e 0 32%,#9e5f43 32% 64%,#794432 64%)}.art-caption{position:absolute;bottom:20px;right:24px;color:#ffe6bf;font-family:'Playfair Display',serif;letter-spacing:.08em}.marquee{background:var(--wine);color:#f8e4c3;padding:16px 5%;display:flex;justify-content:space-between;gap:15px;font-size:11px;text-transform:uppercase;letter-spacing:.14em}.section{padding:90px 8%;scroll-margin-top:85px}.section.cream{background:var(--cream)}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:34px}.section h2{font-size:clamp(32px,3vw,46px);color:var(--wine-dark);margin:9px 0 0}.section-heading p{max-width:330px;color:var(--muted);font-size:14px;line-height:1.7;margin:0}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.card,.notice,.statement,.empty{background:#fff;border:1px solid var(--line);border-radius:4px}.card{min-height:210px;padding:26px}.date-chip{font-size:12px;color:#a56a3d;font-weight:700;letter-spacing:.1em}.card h3,.notice h3{font:600 23px 'Playfair Display',Georgia,serif;color:var(--wine);margin:18px 0 10px}.card p,.notice p{font-size:14px;color:var(--muted);line-height:1.65}.updates{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.notice{padding:25px}.notice small{color:#a56a3d}.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.gallery a{position:relative;display:block;height:235px;overflow:hidden;border-radius:4px;background:#e6d3b7}.gallery img{width:100%;height:100%;object-fit:cover}.gallery span{position:absolute;bottom:0;left:0;right:0;padding:35px 18px 16px;background:linear-gradient(transparent,#281912bd);color:white;font-weight:700}.statements{display:grid;gap:12px}.statement{display:flex;align-items:center;justify-content:space-between;padding:20px 23px;gap:20px}.statement strong{font-family:'Playfair Display',serif;font-size:20px;color:var(--wine)}.statement p{margin:4px 0 0;color:var(--muted);font-size:13px}.statement a{font-weight:700;font-size:13px;color:var(--wine)}.empty{grid-column:1/-1;padding:35px;color:var(--muted);text-align:center}.closing{text-align:center;background:var(--wine);padding:80px 20px;color:white}.closing .kicker{color:#e6bc7a}.closing h2{font-size:44px;margin:14px auto;max-width:600px}.closing p{color:#ead6c7;margin:0 0 30px}footer{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:34px 8%;color:var(--muted);font-size:12px}footer p{max-width:240px}.auth-view{min-height:72vh;display:grid;place-items:center;background:var(--cream);padding:50px 20px}.auth-card{position:relative;background:white;border:1px solid var(--line);padding:45px;width:min(100%,450px);box-shadow:0 15px 45px #51362812}.auth-card h2{font-size:35px;margin:12px 0}.auth-card p{color:var(--muted);font-size:14px}.auth-card form{display:grid;gap:17px;margin-top:25px}.auth-card label,.record-form label{display:grid;gap:7px;font-size:12px;font-weight:700;color:var(--wine)}input,select,textarea{border:1px solid var(--line);background:white;padding:11px 12px;border-radius:3px;min-width:0;color:var(--ink)}textarea{min-height:90px}.close{position:absolute;top:15px;right:18px;border:0;background:none;font-size:25px;color:var(--muted)}.error{color:#a12727!important}.dashboard{display:grid;grid-template-columns:236px 1fr;min-height:80vh;background:#faf8f4}.sidebar{background:var(--wine-dark);color:#f7e8d9;padding:25px 17px;display:flex;flex-direction:column}.side-brand{display:flex;align-items:center;gap:10px;font:600 20px 'Playfair Display',serif;margin-bottom:34px}.side-brand .brand-mark{width:35px;height:35px;font-size:21px}.side-label{font-size:10px;letter-spacing:.2em;color:#c5a9a0;margin:0 0 14px 11px}.sidebar nav{display:grid;gap:3px}.sidebar nav button,.side-logout{background:none;color:#e9d5c7;border:0;text-align:left;padding:10px 12px;border-radius:3px;font-size:13px}.sidebar nav button:hover,.sidebar nav button.active{background:#ffffff18;color:white}.side-logout{margin-top:auto;border-top:1px solid #ffffff25}.dash-main{padding:35px clamp(20px,4vw,55px)}.dash-top{display:flex;justify-content:space-between;align-items:center;gap:15px;border-bottom:1px solid var(--line);padding-bottom:25px}.dash-top h1{font:500 37px 'Playfair Display',serif;color:var(--wine);margin:7px 0 0}.dash-user{display:flex;align-items:center;gap:16px;font-size:12px;color:var(--muted)}.dash-user button{border:0;background:none;color:var(--wine);font-weight:700}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin-top:27px}.stat{padding:22px;background:white;border:1px solid var(--line)}.stat strong{display:block;font:600 31px 'Playfair Display',serif;color:var(--wine)}.stat small{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.module-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:26px 0}.module-head h2{font:600 24px 'Playfair Display',serif;color:var(--wine);margin:0}.record-form{background:white;border:1px solid var(--line);padding:22px;display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:20px}.record-form .wide{grid-column:span 2}.record-form button{align-self:end;justify-self:start}.table-wrap{overflow:auto;background:white;border:1px solid var(--line)}table{border-collapse:collapse;width:100%;font-size:12px}th,td{padding:13px 14px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;white-space:nowrap}th{color:var(--wine);background:#f8f2e9;font-size:10px;text-transform:uppercase;letter-spacing:.08em}td button{border:0;background:none;color:var(--wine);font-weight:700;margin-right:9px}.panel-note{background:#fff7e7;border-left:3px solid var(--gold);padding:14px 17px;font-size:13px;color:#7d5b35;margin-top:25px}.form-error{grid-column:1/-1;color:#ad2929;font-size:12px}.checkbox{display:flex!important;align-items:center;gap:8px}.checkbox input{min-width:auto}.table-empty{padding:30px;color:var(--muted);text-align:center}@media(max-width:800px){.topline span:last-child{display:none}.site-header{height:68px}.menu-toggle{display:block}.site-header nav{display:none;position:absolute;left:0;right:0;top:68px;background:var(--paper);padding:20px 5%;flex-direction:column;align-items:stretch;gap:15px;box-shadow:0 15px 20px #0002}.site-header nav.open{display:flex}.hero{grid-template-columns:1fr}.hero-copy{padding:55px 7%}.hero-art{min-height:380px}.hero-foot{margin-top:0}.marquee{overflow:auto;white-space:nowrap;gap:35px}.section{padding:65px 6%}.section-heading{display:block}.section-heading p{margin-top:12px}.cards,.gallery{grid-template-columns:repeat(2,1fr)}.dashboard{grid-template-columns:1fr}.sidebar{padding:16px}.sidebar nav{display:flex;overflow:auto}.sidebar nav button{white-space:nowrap}.side-brand,.side-label,.side-logout{display:none}.stats{grid-template-columns:repeat(2,1fr)}.record-form{grid-template-columns:repeat(2,1fr)}}@media(max-width:550px){.cards,.updates,.gallery,.stats,.record-form{grid-template-columns:1fr}.hero-art{min-height:320px}.hero h1{font-size:42px}.hero-foot{gap:20px}.hero-foot span{font-size:19px}.section h2{font-size:35px}.closing h2{font-size:34px}.record-form .wide{grid-column:span 1}.dash-top{display:block}.dash-user{margin-top:14px}footer{display:block}.statement{align-items:flex-start}.statement a{white-space:nowrap}}
.calendar{border:1px solid var(--line);background:white;margin-bottom:25px}.calendar-head{display:flex;align-items:center;justify-content:center;gap:20px;padding:15px;border-bottom:1px solid var(--line)}.calendar-head h3{font:600 23px "Playfair Display",Georgia,serif;color:var(--wine);min-width:175px;text-align:center;margin:0}.calendar-head button{border:1px solid var(--line);background:var(--cream);color:var(--wine);width:35px;height:35px;font-size:23px}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.calendar-weekday{padding:10px;background:#f8f2e9;text-align:center;color:var(--wine);font-size:11px;font-weight:700}.calendar-day{min-height:94px;padding:7px;border-top:1px solid var(--line);border-right:1px solid var(--line);font-size:12px}.calendar-day strong{display:block;margin-bottom:5px}.calendar-day span{display:block;background:#f4e8d5;color:var(--wine);padding:4px 5px;border-radius:3px;margin:3px 0;overflow-wrap:anywhere;font-size:11px}.calendar-day.blank{background:#fcfaf7}.recovery-codes{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:15px 0}.recovery-codes code{background:#f6ede2;padding:8px}.mfa-qr{max-width:230px;width:100%;display:block;margin:15px auto}@media(max-width:550px){.calendar-day{min-height:63px;padding:3px;font-size:10px}.calendar-day span{font-size:9px}.calendar-weekday{font-size:9px;padding:7px 2px}}
