:root{--color-bg-primary: #ffe75f;--color-bg-secondary: #ff9bf7;--color-bg-tertiary: #79cfd1;--color-text-primary: #ff1616;--color-text-secondary: #000080;--color-border: #c0c0c0}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;line-height:1.55;color:#222;background:var(--color-border)}.layout{display:flex;justify-content:center;align-items:flex-start;gap:1.5rem}.app{max-width:900px;margin:0 auto;padding:2rem 1.25rem 4rem;flex-shrink:1;width:100%}.banner-col{display:flex;flex-direction:column;gap:3.5rem;flex-shrink:0;position:fixed;top:3rem;max-height:calc(100vh - 6rem);overflow-y:auto}.banner-col-left{left:1.5rem}.banner-col-right{right:1.5rem}.banner-col img{display:block;width:280px;height:auto;border:3px outset var(--color-border);margin:auto}.credits{margin-top:3rem;padding-top:1rem;border-top:2px dashed var(--color-border);text-align:center;font-size:.9rem}.credits a{color:var(--color-text-primary)}@media (max-width: 1280px){.banner-col{display:none}}.nav{display:flex;gap:1.25rem;padding-bottom:1.5rem;border-bottom:4px solid #e4e4de;margin-bottom:2rem}.nav a{color:#444;text-decoration:none;font-weight:500}.nav a:hover{color:#000}.main h1{margin-top:0}.lead{font-size:1.1rem;color:#555}.details{display:grid;grid-template-columns:max-content 1fr;gap:.4rem 1.25rem;margin:1.5rem 0}.details dt{font-weight:600;color:#666}.details dd{margin:0}.cta{display:inline-block;margin-top:1rem;padding:.6rem 1.1rem;background:#2a2a2a;color:#fff;text-decoration:none}.cta:hover{background:#000}.rsvp-form{display:flex;flex-direction:column;gap:1.25rem;max-width:480px}.rsvp-form label{display:flex;flex-direction:column;gap:.35rem;font-weight:500}.rsvp-form label.inline{flex-direction:row;align-items:center;gap:.4rem;font-weight:400;margin-right:1rem}.rsvp-form input[type=text],.rsvp-form input[type=number],.rsvp-form textarea{padding:.5rem .65rem;font:inherit;border:1px solid #cfcfc8;border-radius:4px;background:#fff}.rsvp-form fieldset{border:1px solid #e4e4de;border-radius:4px;padding:.6rem .9rem}.rsvp-form legend{padding:0 .4rem;font-weight:500}.rsvp-form button,section button{align-self:flex-start;padding:.6rem 1.1rem;font:inherit;background:#2a2a2a;color:#fff;border:none;border-radius:6px;cursor:pointer}.rsvp-form button:hover,section button:hover{background:#000}body:has(.rsvp){background:var(--color-bg-primary);font-family:Comic Sans MS,Chalkboard SE,cursive;color:var(--color-text-secondary)}.rsvp{font-family:Comic Sans MS,Chalkboard SE,cursive;color:var(--color-text-secondary)}.rsvp h1{font-family:Times New Roman,Times,serif;font-size:2.2rem;color:var(--color-text-primary);text-decoration:underline;margin-bottom:1.5rem}.rsvp .rsvp-form{background:var(--color-bg-secondary);border:4px outset var(--color-border);padding:1.5rem;max-width:520px}.rsvp .rsvp-form label{font-family:Comic Sans MS,Chalkboard SE,cursive;color:var(--color-text-secondary);font-weight:700}.rsvp .rsvp-form input[type=text],.rsvp .rsvp-form input[type=number],.rsvp .rsvp-form textarea{font-family:Comic Sans MS,Chalkboard SE,cursive;background:var(--color-bg-primary);border:2px inset var(--color-border);border-radius:0;color:var(--color-text-secondary);padding:.5rem .65rem}.rsvp .rsvp-form .attending-group{display:flex;flex-direction:column;gap:.4rem;border:2px outset var(--color-border);background:var(--color-bg-tertiary);padding:.6rem .9rem}.rsvp .rsvp-form .attending-label{font-weight:700;color:var(--color-text-secondary);font-family:Comic Sans MS,Chalkboard SE,cursive}.rsvp .rsvp-form .attending-options{display:flex;flex-wrap:wrap}.rsvp .rsvp-form button[type=submit]{font-family:Comic Sans MS,Chalkboard SE,cursive;font-weight:700;font-size:1.1rem;padding:.7rem 1.4rem;background:var(--color-bg-primary);color:var(--color-text-primary);border:4px outset var(--color-border);border-radius:0;cursor:pointer;text-transform:uppercase}.rsvp .rsvp-form button[type=submit]:hover{border-style:inset}.rsvp section button{font-family:Comic Sans MS,Chalkboard SE,cursive;background:var(--color-bg-tertiary);color:var(--color-text-secondary);border:4px outset var(--color-border);border-radius:0}.rsvp section button:hover{border-style:inset;background:var(--color-bg-tertiary)}body:has(.landing){background:var(--color-bg-primary);font-family:Comic Sans MS,Chalkboard SE,cursive;color:var(--color-text-secondary)}.landing{font-family:Comic Sans MS,Chalkboard SE,cursive;color:var(--color-text-secondary)}.landing-header{text-align:center;margin-bottom:2rem;padding:1rem;background:var(--color-bg-primary);border:4px outset var(--color-border)}.landing-header .invited{font-style:italic;font-size:1.4rem;color:var(--color-text-primary);margin:0 0 .5rem}.landing-header .title{font-family:Times New Roman,Times,serif;font-weight:700;font-size:2.8rem;margin:0;color:var(--color-text-primary);letter-spacing:1px}.landing-columns{display:flex;gap:1.5rem;align-items:flex-start}.landing-columns .col{flex:1;padding:1rem;border:4px outset var(--color-border)}.landing-columns .col-left{background:var(--color-bg-tertiary);text-align:center}.landing-columns .col-right{background:var(--color-bg-secondary)}.landing .photo{display:block;max-width:100%;height:auto;margin:0 auto 1rem}.landing .section-heading{font-family:Times New Roman,Times,serif;font-size:1.8rem;margin:1rem 0 .5rem;color:var(--color-text-primary);text-decoration:underline}.landing .when-text{font-size:1.1rem;font-weight:700;margin:0 0 1.25rem}.landing .what-list{font-size:1.05rem;margin:0;padding-left:1.5rem}.landing .what-list li{margin-bottom:.35rem}.landing .what-list ul{padding-left:1.25rem;margin-top:.25rem}@keyframes rsvp-flash{0%,49%{background:var(--color-text-primary);color:var(--color-bg-primary)}50%,to{background:var(--color-bg-primary);color:var(--color-text-primary)}}.rsvp-button{display:inline-block;margin:.5rem auto;padding:.9rem 1.4rem;font-family:Comic Sans MS,Chalkboard SE,cursive;font-weight:700;font-size:1.25rem;text-transform:uppercase;text-decoration:underline;border:6px outset var(--color-border);cursor:pointer;animation:rsvp-flash .6s steps(1) infinite,rsvp-pulse 1.2s ease-in-out infinite}.rsvp-button:hover{border-style:inset}.landing .music-player{display:flex;flex-direction:column;gap:.5rem;padding:.75rem;background:var(--color-bg-tertiary);border:2px inset var(--color-border);margin-bottom:.5rem}.landing .music-controls{display:flex;align-items:center;gap:.5rem}.landing .play-button,.landing .next-button{font-family:Courier New,Courier,monospace;font-size:1rem;font-weight:700;padding:.5rem .9rem;background:var(--color-bg-primary);color:var(--color-text-primary);border:2px outset var(--color-border);cursor:pointer;white-space:nowrap}.landing .play-button:hover,.landing .next-button:hover{border-style:inset}.landing .play-button:disabled,.landing .next-button:disabled{opacity:.5;cursor:not-allowed}.landing .track-info{font-family:Courier New,Courier,monospace;font-size:.9rem;color:var(--color-text-secondary);line-height:1.2;min-width:0}.landing .track-title{font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.landing .track-artist{font-style:italic;opacity:.8;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.landing .progress-bar,.landing .volume-slider{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:14px;background:var(--color-bg-primary);border:2px inset var(--color-border);cursor:pointer;outline:none}.landing .progress-bar::-webkit-slider-thumb,.landing .volume-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:16px;height:20px;background:var(--color-text-primary);border:2px outset var(--color-border);cursor:pointer}.landing .progress-bar::-moz-range-thumb,.landing .volume-slider::-moz-range-thumb{width:16px;height:20px;background:var(--color-text-primary);border:2px outset var(--color-border);cursor:pointer;border-radius:0}.landing .progress-bar:disabled{opacity:.4;cursor:not-allowed}.landing .progress-row{display:flex;align-items:center;gap:.5rem}.landing .progress-row .progress-bar{flex:1}.landing .time-display{font-family:Courier New,Courier,monospace;font-size:.75rem;color:var(--color-text-primary);white-space:nowrap}.landing .volume-row{display:flex;align-items:center;gap:.4rem}.landing .volume-label{font-family:Courier New,Courier,monospace;font-size:.75rem;font-weight:700;color:var(--color-text-primary);white-space:nowrap}.landing .volume-slider{flex:1}@media (max-width: 700px){.landing-columns{flex-direction:column}.landing-header .title{font-size:2rem}}@media (hover: hover) and (pointer: fine){html,body,*,*:before,*:after{cursor:none!important}.peep-cursor{position:fixed;top:0;left:0;width:28px;height:auto;pointer-events:none;z-index:9999;transform:translate(-9999px,-9999px);will-change:transform;-webkit-user-select:none;user-select:none}.peep-sparkle-layer{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:9998;overflow:hidden}.peep-sparkle{position:absolute;pointer-events:none;border-radius:50%;transform:translate(-50%,-50%);animation:peep-sparkle-fade 1s cubic-bezier(.4,0,.2,1) forwards}@keyframes peep-sparkle-fade{0%{opacity:1;transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(calc(-50% + var(--peep-sparkle-dx, 0px)),calc(-50% + var(--peep-sparkle-dy, 0px))) scale(0)}}}
