:root{color:#34291e;font-synthesis:none;--ink:#34291e;--muted:#75634c;--gold:#9b773c;--rule:#8e796333;--accent:#662747;--accent-dark:#42182d;--accent-light:#733050;--midnight:#42192f;--focus:#a9517b;--paper:#f8f4eb;--paper-texture:radial-gradient(ellipse at 0% 0%, #9b713706, transparent 50%), radial-gradient(ellipse at 100% 100%, #9b713708, transparent 55%);background:#f3efe5;font-family:Palatino Linotype,Book Antiqua,Palatino,Georgia,serif;line-height:1.5}*{box-sizing:border-box}body{background-image:var(--paper-texture);margin:0}button,input{font:inherit}button{border:1px solid var(--accent-dark);background:linear-gradient(var(--accent-light), var(--accent-dark));color:#fff4df;cursor:pointer;border-radius:4px;min-height:44px;padding:.75rem 1rem;font-weight:700;box-shadow:0 2px 3px #48241920}button:hover{filter:brightness(1.1)}button:disabled{opacity:.5;cursor:default}input{min-width:0;color:var(--ink);background:#fffae9;border:1px solid #9b825a;border-radius:3px;padding:.75rem;font-size:1rem}:focus-visible{outline:3px solid var(--focus);outline-offset:4px}a{color:var(--accent);text-underline-offset:.2em}a:hover{color:var(--accent-dark)}h1,h2,h3{font-weight:400;line-height:1.15}h1{letter-spacing:-.035em}button,a{-webkit-tap-highlight-color:#bba05d33}.weekend-shell{min-height:100dvh;padding-bottom:calc(86px + env(safe-area-inset-bottom))}.school-masthead{background:var(--midnight);color:#eddbb1;border-bottom:1px solid #b2945833;justify-content:space-between;align-items:center;gap:1rem;padding:1.1rem max(1.25rem,50vw - 500px);display:flex}.school-brand{color:inherit;align-items:center;gap:.9rem;text-decoration:none;display:flex}.school-brand:hover{color:#fff1cc}.school-brand strong{letter-spacing:.13em;font-variant:small-caps;font-size:1.6rem;font-weight:400;line-height:1;display:block}.school-brand small{letter-spacing:.07em;margin-top:.4rem;font-size:.65rem;display:block}.school-crest{object-fit:contain;flex-shrink:0;width:52px;height:52px;display:block}.masthead-stars{color:#baa376;white-space:nowrap;font-size:1.25rem}.weekend-nav{z-index:20;padding:.45rem .75rem calc(.45rem + env(safe-area-inset-bottom));background:var(--midnight);border-top:1px solid #b2945833;justify-content:center;gap:.3rem;display:flex;position:fixed;bottom:0;left:0;right:0}.weekend-nav a{color:#c2b799;border-radius:4px;flex-direction:column;justify-content:center;align-items:center;gap:.05rem;width:min(30%,200px);min-height:54px;padding:.2rem .3rem;font-size:.78rem;text-decoration:none;display:flex}.weekend-nav a span{font-size:1.4rem;line-height:1}.weekend-nav a[aria-current]{color:#ffe4a6;background:#c2a15b15}.page{max-width:760px;margin:0 auto;padding:1.5rem 1.25rem}.page h1{margin:.5rem 0;font-size:clamp(2rem,6vw,3rem)}.panel{background:var(--paper);background-image:var(--paper-texture);border:1px solid var(--rule);border-radius:3px;margin:1rem 0;padding:1.25rem;position:relative;box-shadow:0 4px 18px #58381808}.panel h2{color:#593527;margin:0 0 1rem;font-size:1.35rem}.rows{grid-template-columns:minmax(130px,1fr) minmax(0,2fr);gap:.65rem 1rem;margin:0;font-family:system-ui,sans-serif;font-size:.86rem;display:grid}.rows dt{color:var(--muted)}.rows dd{overflow-wrap:anywhere;font-variant-numeric:tabular-nums;margin:0}.actions{flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:1rem;display:flex}.actions input{flex:1;width:100%}.muted{color:var(--muted)}.error{color:#912936;overflow-wrap:anywhere;background:#fff4e177;border-left:3px solid #a74a51;padding:.7rem .85rem}.eyebrow{color:#8a6a3c;letter-spacing:.18em;text-transform:uppercase;font-family:system-ui,sans-serif;font-size:.67rem}.home-welcome{text-align:center;padding-top:3rem}.home-welcome .welcome-mark{color:var(--gold);font-size:3rem}.home-welcome p{max-width:38ch;margin:1rem auto}@media (width<=480px){.masthead-stars{display:none}.school-brand strong{font-size:1.4rem}.rows{grid-template-columns:1fr;gap:.1rem}.rows dd{margin-bottom:.65rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important}}.invitation-scene{min-height:100dvh;padding:clamp(1.1rem, 4vw, 3.5rem) 1rem calc(4rem + env(safe-area-inset-bottom));color:#e9d8a5;background:radial-gradient(circle at 50% 0,#a9517b30 0,#0000 40%),radial-gradient(circle at 6% 90%,#b88b4740 0,#0000 32%),linear-gradient(145deg,#29101e,#4d1c35 48%,#230e1a);flex-direction:column;justify-content:center;align-items:center;gap:1.2rem;display:flex;position:relative;overflow:hidden}.invitation-scene:before{content:"";opacity:.55;pointer-events:none;background-image:radial-gradient(circle at 11% 17%,#ead49b 0 1px,#0000 2px),radial-gradient(circle at 87% 29%,#ead49b 0 1px,#0000 2px),radial-gradient(circle at 27% 78%,#ead49b 0 1px,#0000 2px),radial-gradient(circle at 72% 88%,#ead49b 0 1px,#0000 2px);position:absolute;inset:0}.invitation-sparkles{pointer-events:none;position:absolute;inset:0;overflow:hidden}.invitation-sparkles span{color:#dec18a;text-shadow:0 0 16px #f0c771;font-size:clamp(1rem,2vw,1.6rem);animation:4s ease-in-out infinite alternate invitation-glimmer;position:absolute}.invitation-sparkles span:first-child{top:10%;left:10%}.invitation-sparkles span:nth-child(2){animation-delay:1.2s;top:23%;right:8%}.invitation-sparkles span:nth-child(3){animation-delay:2.1s;bottom:21%;left:8%}.invitation-sparkles span:nth-child(4){animation-delay:.6s;bottom:9%;right:12%}.envelope-stage{text-align:center;width:min(100%,560px);padding:clamp(5rem,16vw,8rem) 0 4.5rem;position:relative}.invitation-envelope{aspect-ratio:1.55;perspective:1200px;background:linear-gradient(145deg,#b59361,#ddc599);border:1px solid #967448;border-radius:5px;width:100%;position:relative;box-shadow:0 22px 55px #0008}.envelope-paper{z-index:2;background:var(--paper-texture), linear-gradient(120deg, #ead6ac, #fff0ce, #e5cca0);color:#493021;border:1px solid #b59361;flex-direction:column;align-items:center;gap:.6rem;padding:clamp(1rem,4vw,2rem);display:flex;position:absolute;inset:5% 7% 4%;box-shadow:0 0 15px #65442233}.envelope-paper img{width:clamp(48px,12vw,80px);height:auto}.envelope-paper>span{font-size:clamp(.85rem,3vw,1.2rem)}.envelope-paper-title{font-style:italic}.envelope-paper-lines{background:repeating-linear-gradient(#0000 0 13px,#96744844 13px 14px,#0000 14px 22px);flex:1;width:80%;min-height:25px;margin-top:.4rem}.envelope-pocket{z-index:3;clip-path:polygon(0 0,50% 54%,100% 0,100% 100%,0 100%);background:var(--paper-texture), linear-gradient(90deg, #d8bc89, #efddb6 50%, #d8bc89);border-radius:4px;position:absolute;inset:0}.envelope-pocket:after{content:"";clip-path:polygon(0 100%,50% 47%,100% 100%);background:linear-gradient(#c9a976,#e7cfa2);position:absolute;inset:0}.envelope-flap{z-index:4;transform-origin:top;clip-path:polygon(0 0,100% 0,50% 100%);background:var(--paper-texture), linear-gradient(#f0deb9, #d6b581);backface-visibility:hidden;position:absolute;inset:0 0 42%}.invitation-envelope .envelope-seal{z-index:5;margin:0;position:absolute;top:54%;left:50%;transform:translate(-50%,-50%)rotate(-10deg)}.envelope-address{z-index:4;color:#513821;gap:.15rem;display:grid;position:absolute;bottom:8%;left:1rem;right:1rem}.envelope-address span{font-size:.75rem;font-style:italic}.envelope-address strong{overflow-wrap:anywhere;font-size:clamp(1rem,3.8vw,1.5rem);font-weight:400}.envelope-open{z-index:6;width:100%;box-shadow:none;color:#ead8b2;letter-spacing:.06em;background:0 0;border:0;border-radius:5px;padding:0;font-size:.9rem;font-style:italic;font-weight:400;position:absolute;inset:clamp(5rem,16vw,8rem) 0 0}.envelope-open:hover{filter:none}.envelope-open:focus-visible{outline-offset:8px;outline:2px solid #ead8b2}.envelope-open-label{text-shadow:0 0 15px #e8ce9466;animation:2.4s ease-in-out infinite envelope-hint-hover;position:absolute;bottom:1.5rem;left:0;right:0}.envelope-status{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.is-opening .envelope-flap{animation:.6s ease-in-out forwards envelope-flap-open}.is-opening .envelope-seal{animation:.3s ease-in forwards envelope-seal-break}.is-opening .envelope-paper{animation:1.8s ease-in-out forwards envelope-paper-emerge}.is-opening .envelope-pocket,.is-opening .envelope-address{opacity:0;transition:opacity .45s 1.3s}.is-opening .invitation-envelope{animation:1.8s ease-in-out forwards envelope-disappear}.is-opening .envelope-open{opacity:0;transition:opacity .3s}.letter-unfolded{animation:.55s ease-out both letter-unfold}.letter-unfolded:focus{outline:none}@keyframes envelope-hint-hover{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes envelope-flap-open{0%{transform:rotateX(0)}to{transform:rotateX(180deg)}}@keyframes envelope-seal-break{to{opacity:0;transform:translate(-50%,-35%)rotate(10deg)scale(1.15)}}@keyframes envelope-paper-emerge{0%,25%{transform:translateY(0)}75%{opacity:1;transform:translateY(-65%)scale(1.03)}to{opacity:0;transform:translateY(-75%)scale(1.08)}}@keyframes envelope-disappear{0%,72%{background-color:#ddc599;border-color:#967448;box-shadow:0 22px 55px #0008}to{box-shadow:none;background:0 0;border-color:#0000}}@keyframes letter-unfold{0%{opacity:0;transform:translateY(1.5rem)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.acceptance-letter{isolation:isolate;color:#3c2b1f;background-color:#e8d7af;background-image:radial-gradient(at 4% 5%,#94632e35 0,#0000 29%),radial-gradient(at 96% 96%,#8a592e45 0,#0000 31%),radial-gradient(at 85% 18%,#fff8de90 0,#0000 45%),repeating-linear-gradient(4deg,#8e704908 0 1px,#0000 1px 5px),linear-gradient(120deg,#d4b988,#f3e5c1 23%,#efdfb9 68%,#d8bd8b);border:1px solid #9c7848;border-radius:4px 8px 5px 9px;width:min(100%,760px);padding:clamp(2rem,6vw,4.5rem);font-family:Palatino Linotype,Book Antiqua,Palatino,Georgia,serif;position:relative;overflow:hidden;box-shadow:0 2px 3px #0005,0 20px 52px #0009,inset 0 0 44px #8a5b2750}.acceptance-letter:before{z-index:-1;content:"";pointer-events:none;border:1px solid #8d6b3d72;border-radius:2px 5px 3px 6px;position:absolute;inset:12px}.acceptance-letter:after{z-index:-1;content:"";pointer-events:none;background:radial-gradient(circle at 7% 57%,#8d5d3220 0 2%,#0000 8%),radial-gradient(circle at 92% 42%,#74502315 0 3%,#0000 10%),radial-gradient(circle at 49% 100%,#69451f1f 0 5%,#0000 21%);position:absolute;inset:0}.letter-heading{text-align:center}.letter-crest{object-fit:contain;width:120px;height:120px;margin:0 auto 1.2rem;display:block}.letter-school{color:#35271b;letter-spacing:.035em;text-transform:uppercase;margin:0;font-size:clamp(1.35rem,4.7vw,2.15rem);font-weight:700;line-height:1.12}.letter-office{color:#6d4931;margin:.75rem 0 0;font-size:.95rem;font-style:italic}.letter-rule{color:#9f793f;align-items:center;gap:.75rem;margin:1.25rem 0 1.7rem;display:flex}.letter-rule:before,.letter-rule:after{content:"";background:linear-gradient(90deg,#0000,#91713e,#0000);flex:1;height:1px}.letter-body{font-size:clamp(1.04rem,2.7vw,1.15rem);line-height:1.62}.letter-body h1{color:#4c2823;letter-spacing:.015em;text-align:center;margin:0 0 1.25rem;font-size:clamp(1.75rem,5vw,2.35rem);font-weight:400;line-height:1.16}.letter-body p{margin:0 0 1.18rem}.letter-packing-list{margin:-.4rem 0 1.4rem;padding-left:1.4rem}.letter-packing-list li{margin-bottom:.35rem}.letter-body em{color:#643c2b}.letter-salutation{font-size:1.2em}.letter-signoff{margin-top:1.5rem!important}.letter-signoff span{color:#5f3a2a;font-size:1.15em;font-style:italic}.letter-footer{text-align:center;border-top:1px solid #8b6a3e70;flex-direction:column;align-items:center;margin-top:1.6rem;padding-top:1.25rem;display:flex}.letter-seal{color:#f2d5ae;background:radial-gradient(circle at 35% 27%,#b15e54,#78272d 67%,#5e1a27);border:3px solid #843d3e;border-radius:48% 52% 46% 54%;place-items:center;width:58px;height:58px;margin-bottom:1.25rem;font-size:1.7rem;display:grid;transform:rotate(-10deg);box-shadow:0 2px 4px #3a261d66,inset 0 0 0 2px #c8826e80,inset 0 0 0 5px #6e2429}.letter-seal img{object-fit:contain;width:40px;height:40px;display:block}.letter-action{border:1px solid var(--accent-dark);background:linear-gradient(var(--accent-light), var(--accent-dark));color:#fff2d9;cursor:pointer;letter-spacing:.035em;border-radius:12px;justify-content:center;align-items:center;gap:.65rem;min-width:min(100%,270px);min-height:52px;padding:.65rem 1.4rem;font-family:inherit;font-size:1.05rem;font-weight:700;text-decoration:none;transition:filter .2s,box-shadow .2s;display:inline-flex;box-shadow:0 2px 5px #4a302226}.letter-action:hover:not(:disabled){filter:brightness(1.12);box-shadow:0 8px 20px #4a302240}.letter-action:focus-visible{outline:3px solid var(--focus);outline-offset:4px}.letter-action:disabled{cursor:progress;opacity:.65}.letter-action.is-sending{opacity:1;cursor:progress;filter:none;animation:1.8s ease-in-out infinite letter-sending-glow;transform:none}.letter-owl-flight{flex-shrink:0;width:42px;height:32px;display:inline-flex;position:relative}.letter-post-owl{width:42px;height:32px;animation:1.2s ease-in-out infinite letter-owl-fly;overflow:visible}.letter-owl-wing{transform-box:view-box;animation:.6s ease-in-out infinite alternate letter-owl-flap}.letter-owl-wing-left{transform-origin:26px 26px}.letter-owl-wing-right{transform-origin:38px 26px;animation-direction:alternate-reverse}.letter-owl-spark{color:#f1cf85;font-size:.75rem;animation:1.2s ease-out infinite letter-owl-trail;position:absolute;top:9px;left:-9px}@keyframes letter-sending-glow{0%,to{box-shadow:0 2px 5px #4a302226,0 0 8px #c49a4b30}50%{box-shadow:0 2px 5px #4a302226,0 0 24px #c49a4b80}}@keyframes letter-owl-fly{0%,to{transform:translateY(2px)rotate(-3deg)}50%{transform:translateY(-3px)rotate(3deg)}}@keyframes letter-owl-flap{0%{transform:rotate(-18deg)scaleY(.8)}to{transform:rotate(18deg)scaleY(1.1)}}@keyframes letter-owl-trail{0%{opacity:0;transform:translate(8px)scale(.5)}35%{opacity:1}to{opacity:0;transform:translate(-8px)scale(.2)}}.letter-device-note{color:#6e543b;max-width:35ch;margin:1.05rem 0 0;font-size:.8rem;line-height:1.4}.letter-e-owl{white-space:nowrap}.letter-notice{color:#722c30;max-width:44ch;margin:.25rem 0;line-height:1.45}.letter-notice a{color:var(--accent);font-weight:700}.letter-error{color:#8c2027;font-weight:700}.letter-message{text-align:center;font-size:1.15rem}.letter-message h1{margin-top:0}.invitation-only-card{text-align:center}.invitation-only-card h1{color:#4c2823;margin:.4rem 0 1.25rem;font-size:clamp(1.75rem,5vw,2.35rem);font-weight:400}.invitation-only-card>p{max-width:42ch;margin:0 auto 1.18rem;font-size:clamp(1.04rem,2.7vw,1.15rem);line-height:1.62}@keyframes invitation-glimmer{0%{opacity:.2;transform:scale(.75)rotate(0)}to{opacity:.9;transform:scale(1.2)rotate(20deg)}}@media (width<=520px){.invitation-scene{padding:.8rem .55rem calc(4rem + env(safe-area-inset-bottom))}.acceptance-letter{padding:2.1rem 1.65rem 2.3rem}.acceptance-letter:before{inset:8px}.letter-crest{width:100px;height:100px}.letter-action{width:100%}}@media (prefers-reduced-motion:reduce){.invitation-sparkles span,.envelope-open-label{animation:none}.letter-action{transition:none}.letter-action.is-sending,.letter-post-owl,.letter-owl-wing,.letter-owl-spark,.letter-unfolded,.is-opening .envelope-flap,.is-opening .envelope-seal,.is-opening .envelope-paper,.is-opening .invitation-envelope{animation:none}.is-opening .envelope-pocket,.is-opening .envelope-address,.is-opening .envelope-open{transition:none}}
