@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.flex{display:flex}.hidden{display:none}.table{display:table}.italic{font-style:italic}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}@font-face{font-family:Invitation Serif;src:url(/fonts/editorial.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Invitation Serif;src:url(/fonts/editorial-italic.woff2)format("woff2");font-weight:400;font-style:italic;font-display:swap}:root{--paper:#f3efe7;--ink:#302920;--accent:#642c32;--line:#3029203d;--serif:"Invitation Serif",Didot,"Bodoni MT","Times New Roman",serif;--sans:Arial,Helvetica,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;margin:0}::selection{background:var(--accent);color:var(--paper)}button,input,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default;opacity:.4}a{color:inherit;text-decoration:none}button{color:inherit}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:7px}h1,h2,h3,p{margin:0}h2,h3{font-family:var(--serif);letter-spacing:-.055em;font-weight:400;line-height:.98}em{font-weight:400}fieldset{border:0;min-width:0;margin:0;padding:0}main{overflow:hidden}.paper-grain{z-index:100;pointer-events:none;opacity:.045;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23000' filter='url(%23n)' opacity='.7' d='M0 0h180v180H0z'/%3E%3C/svg%3E");position:fixed;inset:0}.eyebrow,.mark,.section-index,.field-label,.text-link,.gate-top,.gate-bottom{letter-spacing:.17em;font-size:10px;line-height:1.6}.mark{white-space:nowrap}.mark span{color:var(--accent);margin-left:10px}.monogram{font-weight:400;font-family:var(--serif);letter-spacing:-.07em;font-size:clamp(90px,16vw,170px);line-height:1}.monogram i{color:var(--accent);font-size:.75em;font-weight:400}.text-link{background:0 0;border:0;border-bottom:1px solid;align-items:center;gap:30px;min-height:48px;padding:12px 0;display:inline-flex;position:relative}.text-link span{font-size:20px;line-height:1;transition:transform .4s}.text-link:hover span{transform:translate(5px)}.invitation-gate{z-index:50;background:var(--paper);flex-direction:column;justify-content:center;min-height:100svh;padding:28px;display:flex;position:fixed;inset:0}.gate-top,.gate-bottom{justify-content:space-between;gap:15px;font-size:8px;display:flex}.gate-top{border-bottom:1px solid var(--line);padding-bottom:18px}.gate-center{text-align:center;margin-top:-3vh}.gate-date{letter-spacing:.35em;margin:30px 0 52px;font-size:10px}.gate-open{color:var(--accent);gap:42px;font-size:10px}.gate-number{color:var(--accent)}.hero{outline:none;flex-direction:column;min-height:100svh;padding:28px 24px 32px;display:flex;position:relative}.hero-top{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding-bottom:20px;display:flex}.hero-title{flex-direction:column;flex:1;justify-content:center;padding:55px 0 45px;display:flex}.name{font-family:var(--serif);letter-spacing:-.073em;font-size:clamp(68px,17.7vw,250px);font-weight:400;line-height:.9}.manasseh{margin-left:-.025em}.second-name{justify-content:flex-end;align-items:center;gap:5vw;margin-top:14px;display:flex}.ampersand{font-family:var(--serif);color:var(--accent);font-size:clamp(60px,16vw,170px);font-style:italic;line-height:1}.sneha{font-size:clamp(80px,24vw,300px)}.hero-bottom{border-top:1px solid var(--line);grid-template-columns:1fr auto;gap:35px;padding-top:20px;display:grid}.hero-bottom p{font-family:var(--serif);font-size:18px;line-height:1.35}.hero-date{letter-spacing:.14em;padding-top:4px;font-size:10px}.hero-date i{color:var(--accent);margin:0 5px;font-style:normal}.scroll-cue{letter-spacing:.16em;grid-column:1/-1;justify-content:space-between;min-height:44px;padding:8px 0;font-size:8px;display:flex}.scroll-cue span{font-size:19px}.section-pad{padding:30px 24px 70px}.section-index{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:24px;padding-top:22px;display:flex}.tiny-mark{font-family:var(--serif);letter-spacing:-.04em;font-size:20px}.invitation-message{flex-direction:column;min-height:90svh;display:flex}.message-content{width:100%;max-width:950px;margin:auto;padding:95px 0 40px}.message-content>.eyebrow{margin-bottom:26px}.message-content h2{font-size:clamp(49px,10.3vw,128px)}.message-content h2 em{color:var(--accent)}.message-foot{flex-wrap:wrap;align-items:center;gap:20px;margin-top:44px;display:flex}.hairline{background:var(--accent);width:45px;height:1px}.message-foot p{font-family:var(--serif);font-size:23px}.message-foot .eyebrow{width:100%;padding-left:65px;font-size:8px}.personal{color:var(--accent)}.date-section{background:var(--accent);color:var(--paper);flex-direction:column;min-height:95svh;display:flex}.date-section .section-index{border-color:#ffffff35}.date-composition{width:100%;margin:auto 0;padding:55px 0}.date-day{font-family:var(--serif);letter-spacing:-.08em;justify-content:space-between;align-items:center;font-size:clamp(170px,43vw,430px);line-height:.8;display:flex}.date-side{font-family:var(--sans);letter-spacing:.13em;padding-left:20px;font-size:8px;line-height:1.8}.date-rule{background:#fff5;height:1px;margin:32px 0}.date-year{font-family:var(--serif);letter-spacing:-.055em;justify-content:space-between;align-items:center;line-height:1;display:flex}.date-year em{font-size:clamp(65px,18vw,190px);line-height:.8}.date-year>span{font-size:clamp(75px,23vw,235px)}.date-caption{letter-spacing:.18em;justify-content:space-between;gap:20px;font-size:9px;display:flex}.date-caption span{font-size:7px}.venue-section{min-height:95svh}.venue-layout{padding-top:70px}.venue-number{display:none}.venue-copy h2{margin:35px 0;font-size:clamp(63px,12vw,120px)}.venue-copy h2 em{color:var(--accent)}.venue-hall{letter-spacing:.12em;font-size:12px;line-height:1.7}.venue-city{letter-spacing:.13em;margin-top:22px;font-size:9px}.venue-copy .text-link,.location-pending{margin-top:45px}.location-pending{letter-spacing:.15em;color:var(--accent);border-top:1px solid var(--line);width:fit-content;padding-top:18px;font-size:9px}.rsvp-section{background:#e9e4db;min-height:100svh}.rsvp-section .section-index>.eyebrow:last-child{display:none}.rsvp-layout{padding-top:65px}.rsvp-heading h2{font-size:clamp(68px,15vw,145px)}.rsvp-heading em{color:var(--accent)}.rsvp-heading p{font-family:var(--serif);margin-top:28px;font-size:19px;line-height:1.5}.rsvp-container{margin-top:65px}.rsvp-form legend{margin-bottom:20px}.attendance-options label{cursor:pointer;border-bottom:1px solid var(--line);font-family:var(--serif);letter-spacing:-.025em;align-items:center;gap:15px;padding:19px 0;font-size:27px;display:flex;position:relative}.attendance-options input{opacity:0;width:24px;height:24px;position:absolute}.attendance-options input:focus-visible+.radio-dot{outline:2px solid var(--accent);outline-offset:5px}.radio-dot{border:1px solid var(--ink);border-radius:50%;flex-shrink:0;width:13px;height:13px}.selected .radio-dot{border-color:var(--accent);background:var(--accent);box-shadow:inset 0 0 0 3px #e9e4db}.selected{color:var(--accent)}.option-arrow{font-family:var(--sans);margin-left:auto;font-size:17px}.form-details{padding-top:35px;overflow:hidden}.field-label{margin-bottom:8px;font-size:9px;display:block}.field-label span{opacity:1;font-size:8px}.line-input{border:0;border-bottom:1px solid var(--line);width:100%;color:var(--ink);font-family:var(--serif);background:0 0;border-radius:0;padding:14px 0;font-size:21px;line-height:1.4}.line-input::placeholder{color:#777168;font-size:18px}.guest-counter{margin:30px 0}.counter{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;width:180px;padding-bottom:5px;display:flex}.counter button{background:0 0;border:0;width:48px;height:48px;font-size:23px}.counter output{font-family:var(--serif);font-size:30px}.send{color:var(--accent);justify-content:space-between;width:100%;margin-top:30px}.form-error{color:var(--accent);margin-top:20px;font-size:13px;line-height:1.6}.form-status{font-size:11px;line-height:1.6}.form-status p{margin-top:20px}.rsvp-success{min-height:400px;padding:30px 0}.rsvp-success h3{outline:none;margin:30px 0;font-size:clamp(48px,8vw,72px)}.rsvp-success h3 em{color:var(--accent)}.rsvp-success p{letter-spacing:.2em;font-size:10px}.small.monogram{margin-top:35px;font-size:55px;display:block}footer{text-align:center;padding:100px 24px 30px}footer .monogram{color:var(--accent);font-size:85px}footer p{letter-spacing:.3em;margin:25px 0 35px;font-size:9px}footer>.eyebrow{font-size:8px;display:block}.back-top{letter-spacing:.15em;margin-top:70px;padding:14px;font-size:8px;display:block}.music{z-index:20;position:fixed;bottom:15px;right:15px}.music button{letter-spacing:.13em;border:1px solid var(--line);background:var(--paper);min-height:44px;padding:14px;font-size:8px}.loading{flex-direction:column;justify-content:center;align-items:center;gap:35px;min-height:100svh;display:flex}.loading-line{background:var(--accent);width:70px;height:1px;animation:1.8s infinite pulse}.no-script{z-index:60;background:var(--paper);text-align:center;padding:50px 25px;position:fixed;inset:0}.no-script h1{font-family:var(--serif);margin-bottom:35px;font-size:45px}.no-script p{margin:25px 0;line-height:1.7}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@keyframes pulse{50%{opacity:.5}}@media (min-width:768px){.invitation-gate{padding:40px 55px}.gate-top,.gate-bottom{font-size:9px}.hero{padding:35px 5vw 32px}.hero-title{padding:50px 0}.hero-bottom{grid-template-columns:1fr 1fr 1fr;align-items:center}.hero-bottom p{font-size:23px}.hero-date{text-align:center;font-size:12px}.scroll-cue{grid-column:auto;justify-content:flex-end;gap:40px}.section-pad{padding:40px 7vw 90px}.message-content{padding:110px 0 70px}.message-foot .eyebrow{width:auto;margin-left:auto;padding:0}.message-foot p{font-size:30px}.date-composition{max-width:1050px;margin:auto}.date-side,.date-caption{font-size:11px}.date-caption span{font-size:9px}.venue-layout{grid-template-columns:1fr 1fr;align-items:center;gap:8vw;padding:100px 0 30px;display:grid}.venue-number{font-family:var(--serif);letter-spacing:-.13em;color:var(--accent);opacity:.75;font-size:25vw;line-height:1;display:block}.venue-number>span{flex-direction:column;width:fit-content;display:flex}.venue-slash{color:var(--ink);margin-left:.55em;font-size:.5em;line-height:.35}.venue-number>span:first-letter{letter-spacing:0}.venue-hall{font-size:14px}.venue-city{font-size:11px}.rsvp-section .section-index>.eyebrow:last-child{display:block}.rsvp-layout{grid-template-columns:1.1fr 1fr;gap:10vw;padding:100px 0 50px;display:grid}.rsvp-container{margin-top:15px}.rsvp-heading p{max-width:280px;font-size:23px}.attendance-options label{font-size:30px}footer{padding:120px 40px 35px}footer .monogram{font-size:110px}}@media (min-width:1400px){.hero-title{width:100%;max-width:1450px;margin:auto}.hero{min-height:950px}.section-pad{padding-left:max(7vw,50vw - 700px);padding-right:max(7vw,50vw - 700px)}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}}.arrival{z-index:80;background:var(--paper);flex-direction:column;justify-content:center;align-items:center;gap:28px;display:flex;position:fixed;inset:0}.arrival-mark{font-family:var(--serif);letter-spacing:-.055em;color:var(--accent);font-size:48px}.arrival .eyebrow{letter-spacing:.22em;font-size:8px}.arrival-track{background:var(--line);width:95px;height:1px;overflow:hidden}.arrival-track span{background:var(--accent);transform-origin:0;width:100%;height:100%;display:block}.invitation-gate{isolation:isolate;background:0 0}.cover-sheet{background:var(--paper);z-index:-2;backface-visibility:hidden;width:50.1%;position:absolute;top:0;bottom:0}.cover-left{background:linear-gradient(110deg,#eee9df 0%,var(--paper) 60%);left:0}.cover-right{background:linear-gradient(250deg,#f8f4ed 0%,var(--paper) 65%);right:0}.cover-light{pointer-events:none;z-index:-1;opacity:.45;background:radial-gradient(at 60% 20%,#fff9 0%,#0000 65%);animation:2.4s ease-out both paper-light;position:absolute;inset:0}.gate-center{position:relative}.cover-monogram{justify-content:center;align-items:baseline;gap:.06em;display:flex}.cover-letter-mask{margin:0 -.055em;padding:.12em .055em;display:inline-block;overflow:hidden}.cover-letter-mask>span{transform-origin:50% 100%;display:block}.cover-slash{color:var(--accent);font-size:.78em;font-style:italic}.gate-date{margin:25px 0 45px}.gate-open{border-bottom:0;padding-bottom:16px}.gate-open:after{content:"";background:var(--accent);transform-origin:0;width:100%;height:1px;animation:1.4s cubic-bezier(.22,1,.36,1) .7s both cover-underline;position:absolute;bottom:0;left:0}.gate-open:before{content:"";background:var(--accent);opacity:0;z-index:-1;transition:opacity .4s;position:absolute;inset:-12px -20px}.gate-open:hover:before{opacity:.035}.opening-line{background:var(--accent);pointer-events:none;transform-origin:50%;width:1px;position:absolute;top:10%;bottom:10%;left:50%}.hero-name-mask{padding:.1em 0 .08em;line-height:.9;overflow:hidden}.hero-title>.hero-name-mask{padding-top:20px;padding-bottom:15px}.hero-title .second-name{margin-top:-5px}.hero-top{animation:1.2s .9s both hero-details}.hero-bottom{animation:1.2s 1.6s both hero-details}.hero:after{content:"";z-index:-1;pointer-events:none;background:radial-gradient(at 80% 20%,#fff7,#0000 70%);position:absolute;inset:0}.masked-lines{display:block}.line-mask{margin:-.12em -.04em -.16em;padding:.12em .04em .16em;display:block;overflow:hidden}.line-mask>span{transform-origin:0 100%;display:block}.section-index{border-top:0;position:relative}.reveal-rule{opacity:.24;transform-origin:0;background:currentColor;height:1px;position:absolute;top:0;left:0;right:0}.date-rule{transform-origin:0}.date-digit{display:block}.date-day .line-mask{margin-right:-.08em;padding-right:.08em}.date-year>.masked-lines{width:auto}.reading-progress{z-index:40;background:var(--accent);transform-origin:0;pointer-events:none;mix-blend-mode:multiply;height:2px;position:fixed;top:0;left:0;right:0}.attendance-options label{transition:color .35s,padding-left .35s}.attendance-options label:hover,.attendance-options label:focus-within{color:var(--accent);padding-left:7px}.attendance-options .option-arrow{transition:transform .4s}.attendance-options label:hover .option-arrow{transform:translate(3px,-3px)}.line-input{transition:border-color .3s}.line-input:focus{border-bottom-color:var(--accent)}.scroll-cue span{animation:2.4s ease-in-out 3s 3 scroll-nudge}@keyframes paper-light{0%{opacity:0;transform:translate(-8%)}to{opacity:.45;transform:translate(0)}}@keyframes cover-underline{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes hero-details{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes scroll-nudge{0%,to{transform:translateY(0)}50%{transform:translateY(5px)}}@media (prefers-reduced-motion:reduce){.reading-progress{display:none}.hero-top,.hero-bottom{opacity:1;transform:none}.cover-light{opacity:.45}.gate-open:after{transform:none}}.route-arrival-fill{animation:1.15s cubic-bezier(.22,1,.36,1) both cover-underline}.form-details:focus-within{overflow:visible}

/* Gate open (CSS stand-in for Framer exit) */
.invitation-gate.is-opening .cover-left{transform:translateX(-102%);opacity:0;transition:transform 1.35s cubic-bezier(.22,1,.36,1),opacity 1.35s cubic-bezier(.22,1,.36,1)}
.invitation-gate.is-opening .cover-right{transform:translateX(102%);opacity:0;transition:transform 1.35s cubic-bezier(.22,1,.36,1) .08s,opacity 1.35s cubic-bezier(.22,1,.36,1) .08s}
.invitation-gate.is-opening .gate-center{opacity:0;transform:translateY(-24px) scale(.94);transition:opacity .45s cubic-bezier(.22,1,.36,1),transform .45s cubic-bezier(.22,1,.36,1)}
.invitation-gate.is-opening .opening-line{opacity:0;transition:opacity .3s}
.invitation-gate.is-hidden{display:none!important;pointer-events:none}
.arrival.is-done{opacity:0;pointer-events:none;transition:opacity .5s;visibility:hidden}
.main-content{visibility:hidden}
.main-content.is-revealed{visibility:visible}
.cover-left,.cover-right{will-change:transform}
body.gate-locked{overflow:hidden}

/* Admin page (self-contained) */
.admin-body{background:var(--paper);color:var(--ink);font-family:var(--sans);margin:0;padding:40px 24px 80px;min-height:100svh}
.admin-wrap{max-width:960px;margin:0 auto}
.admin-wrap h1{font-family:var(--serif);font-size:clamp(36px,8vw,56px);letter-spacing:-.04em;font-weight:400;margin:12px 0 8px}
.admin-wrap .eyebrow{letter-spacing:.17em;font-size:10px}
.admin-wrap .btn{letter-spacing:.13em;border:1px solid var(--line);background:transparent;min-height:44px;padding:12px 18px;font-size:10px;cursor:pointer;color:inherit;text-decoration:none;display:inline-flex;align-items:center}
.admin-wrap .btn-primary{background:var(--accent);color:var(--paper);border-color:var(--accent)}
.admin-wrap input[type=password]{border:0;border-bottom:1px solid var(--line);width:100%;padding:14px 0;font-family:var(--serif);font-size:21px;background:transparent;color:var(--ink)}
.admin-toolbar{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;margin:28px 0 18px}
.admin-table-wrap{overflow-x:auto;border-top:1px solid var(--line)}
.admin-table{width:100%;border-collapse:collapse;font-size:13px}
.admin-table th,.admin-table td{text-align:left;padding:12px 10px;border-bottom:1px solid var(--line);vertical-align:top}
.admin-table th{letter-spacing:.12em;font-size:9px;font-weight:400}
.admin-note{font-size:11px;opacity:.7;margin-top:20px;line-height:1.6}
.form-error{color:var(--accent);margin-top:16px;font-size:13px}

/* ========== Premium motion (opacity + transform only) ========== */
:root{
  --ease-out:cubic-bezier(.22,1,.36,1);
  --reveal-y:28px;
  --reveal-dur:.7s;
}
@media (max-width:767px){
  :root{--reveal-y:18px;--reveal-dur:.58s}
}

.reading-progress{transform:scaleX(0);will-change:transform}
.opening-line{transform:scaleY(0);opacity:0;will-change:transform,opacity}
.date-rule{transform:scaleX(0)}

/* Only hide/prep when JS motion is enabled — avoids FOUC without JS */
html.js-motion .arrival-mark{
  opacity:0;
  transform:translateY(12px);
}
html.js-motion .arrival.is-ready .arrival-mark{
  opacity:1;
  transform:translateY(0);
  transition:opacity .65s var(--ease-out),transform .65s var(--ease-out);
}
html.js-motion .arrival .eyebrow{
  opacity:0;
  transform:translateY(8px);
}
html.js-motion .arrival.is-ready .eyebrow{
  opacity:1;
  transform:translateY(0);
  transition:opacity .55s var(--ease-out) .12s,transform .55s var(--ease-out) .12s;
}
html.js-motion .route-arrival-fill{
  transform:scaleX(0);
  transform-origin:0 50%;
  animation:none;
}
html.js-motion .arrival.is-ready .route-arrival-fill{
  animation:1.1s var(--ease-out) .05s both cover-underline;
}

html.js-motion .cover-letter-mask>span{
  opacity:0;
  transform:translateY(115%) rotate(4deg);
  will-change:transform,opacity;
}
html.js-motion .invitation-gate.is-sealed .cover-letter-mask:nth-child(1)>span,
html.js-motion .invitation-gate.is-sealed .cover-letter-mask:nth-child(2)>span,
html.js-motion .invitation-gate.is-sealed .cover-letter-mask:nth-child(3)>span{
  opacity:1;
  transform:translateY(0) rotate(0);
  transition:opacity 1.2s var(--ease-out),transform 1.2s var(--ease-out);
}
html.js-motion .invitation-gate.is-sealed .cover-letter-mask:nth-child(1)>span{transition-delay:.12s}
html.js-motion .invitation-gate.is-sealed .cover-letter-mask:nth-child(2)>span{transition-delay:.25s}
html.js-motion .invitation-gate.is-sealed .cover-letter-mask:nth-child(3)>span{transition-delay:.38s}

html.js-motion .gate-date,
html.js-motion .gate-open{
  opacity:0;
  transform:translateY(16px);
}
html.js-motion .invitation-gate.is-sealed .gate-date.is-in,
html.js-motion .invitation-gate.is-sealed .gate-open.is-in{
  opacity:1;
  transform:translateY(0);
  transition:opacity .7s var(--ease-out),transform .7s var(--ease-out);
}
html.js-motion .invitation-gate.is-sealed .gate-date.is-in{transition-delay:.45s}
html.js-motion .invitation-gate.is-sealed .gate-open.is-in{transition-delay:.55s}

html.js-motion .hero-name-mask>.name{
  display:block;
  opacity:0;
  transform:translateY(110%) rotate(2deg);
  will-change:transform,opacity;
}
html.js-motion .hero.is-named .hero-name-mask>.manasseh{
  opacity:1;
  transform:translateY(0) rotate(0);
  transition:opacity 1.65s var(--ease-out),transform 1.65s var(--ease-out);
  transition-delay:.15s;
}
html.js-motion .hero.is-named .ampersand{
  opacity:1;
  transition:opacity 1.2s var(--ease-out) .35s;
}
html.js-motion .hero .ampersand{opacity:0}
html.js-motion .hero.is-named .hero-name-mask>.sneha{
  opacity:1;
  transform:translateY(0) rotate(0);
  transition:opacity 1.65s var(--ease-out),transform 1.65s var(--ease-out);
  transition-delay:.42s;
}
html.js-motion .hero-top,
html.js-motion .hero-bottom{
  opacity:0;
  transform:translateY(10px);
  animation:none;
}
html.js-motion .hero.is-named .hero-top{
  opacity:1;
  transform:translateY(0);
  transition:opacity 1s var(--ease-out) .55s,transform 1s var(--ease-out) .55s;
}
html.js-motion .hero.is-named .hero-bottom{
  opacity:1;
  transform:translateY(0);
  transition:opacity 1s var(--ease-out) .9s,transform 1s var(--ease-out) .9s;
}

html.js-motion [data-reveal]{
  opacity:0;
  transform:translateY(var(--reveal-y));
  will-change:opacity,transform;
}
html.js-motion [data-reveal].is-in{
  opacity:1;
  transform:translateY(0);
  transition:opacity var(--reveal-dur) var(--ease-out),transform var(--reveal-dur) var(--ease-out);
}
html.js-motion [data-reveal][data-reveal-delay="1"].is-in{transition-delay:80ms}
html.js-motion [data-reveal][data-reveal-delay="2"].is-in{transition-delay:160ms}
html.js-motion [data-reveal][data-reveal-delay="3"].is-in{transition-delay:240ms}

html.js-motion .reveal-rule{
  transform:scaleX(0);
  transform-origin:0 50%;
  opacity:.24;
}
html.js-motion .section-index.is-in .reveal-rule,
html.js-motion .reveal-rule.is-in{
  transform:scaleX(1);
  transition:transform 1.3s var(--ease-out);
}

html.js-motion .line-mask>span{
  display:block;
  transform:translateY(108%) rotate(1.5deg);
  will-change:transform;
}
html.js-motion .line-mask.is-in>span{
  transform:translateY(0) rotate(0);
  transition:transform 1.05s var(--ease-out);
}
html.js-motion .line-mask:nth-child(2).is-in>span,
html.js-motion .masked-heading .line-mask:nth-child(2).is-in>span{transition-delay:90ms}
html.js-motion .line-mask:nth-child(3).is-in>span,
html.js-motion .masked-heading .line-mask:nth-child(3).is-in>span{transition-delay:180ms}

html.js-motion .date-rule{
  transform:scaleX(0);
  transform-origin:0 50%;
}
html.js-motion .date-rule.is-in{
  transform:scaleX(1);
  transition:transform 1.2s var(--ease-out);
}

html.js-motion .invitation-gate.is-opening .opening-line{
  opacity:.4;
  transform:scaleY(1);
  transition:opacity .35s var(--ease-out),transform 1.1s var(--ease-out);
}
html.js-motion .invitation-gate.is-opening .opening-line.is-fade{
  opacity:0;
  transition:opacity .4s var(--ease-out) .55s;
}

/* Gate open — refine existing */
.invitation-gate.is-opening .cover-left{
  transform:translateX(-102%);
  opacity:0;
  transition:transform 1.35s var(--ease-out),opacity 1.35s var(--ease-out);
}
.invitation-gate.is-opening .cover-right{
  transform:translateX(102%);
  opacity:0;
  transition:transform 1.35s var(--ease-out) .08s,opacity 1.35s var(--ease-out) .08s;
}
.invitation-gate.is-opening .gate-center{
  opacity:0;
  transform:translateY(-24px) scale(.96);
  transition:opacity .45s var(--ease-out),transform .45s var(--ease-out);
}

.masked-heading{display:block}
.masked-heading .line-mask{display:block}
.date-year .line-mask,
.date-year em.line-mask{
  overflow:hidden;
  display:block;
  line-height:.8;
}
.date-digit.line-mask{overflow:hidden;display:block;line-height:.8}

@media (max-width:767px){
  html.js-motion .hero.is-named .hero-name-mask>.manasseh,
  html.js-motion .hero.is-named .hero-name-mask>.sneha{
    transition-duration:1.15s;
  }
  html.js-motion .line-mask.is-in>span{transition-duration:.85s}
  html.js-motion [data-reveal][data-reveal-delay="1"].is-in{transition-delay:60ms}
  html.js-motion [data-reveal][data-reveal-delay="2"].is-in{transition-delay:100ms}
}

@media (prefers-reduced-motion:reduce){
  html.js-motion .arrival-mark,
  html.js-motion .arrival .eyebrow,
  html.js-motion .cover-letter-mask>span,
  html.js-motion .gate-date,
  html.js-motion .gate-open,
  html.js-motion .hero-name-mask>.name,
  html.js-motion .hero .ampersand,
  html.js-motion .hero-top,
  html.js-motion .hero-bottom,
  html.js-motion [data-reveal],
  html.js-motion .line-mask>span,
  html.js-motion .reveal-rule,
  html.js-motion .date-rule,
  html.js-motion .route-arrival-fill{
    opacity:1!important;
    transform:none!important;
    transition:none!important;
    animation:none!important;
  }
  .reading-progress{display:none}
  .opening-line{display:none}
  .scroll-cue span{animation:none}
}
