@charset "UTF-8";:root{--clr-neutral-lighter: #fcfcfc;--clr-neutral-light: #ececec;--clr-neutral-main: #acacac;--clr-neutral-dark: #6c6c6c;--clr-neutral-darker: #3c3c3c;--clr-shadow-hover: rgba(0, 0, 0, .33)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0;font-family:Open Sans,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Helvetica Neue,sans-serif}html{height:100%;font-size:100%;overflow-x:hidden}body{height:100%;overflow-x:hidden}h1{font-size:1.75rem;font-weight:600}@media (max-width: 768px){h1{font-size:1.5rem}}@media (max-width: 480px){h1{font-size:1.35rem}}h2{font-size:1.5rem;font-weight:600}@media (max-width: 768px){h2{font-size:1.3rem}}@media (max-width: 480px){h2{font-size:1.2rem}}p{line-height:1.5}@media (max-width: 480px){p{font-size:.95rem}}#root{display:flex;justify-content:center}.page-container{max-width:1200px;padding-left:32px;padding-right:32px;display:flex;flex-direction:column;justify-content:flex-start;gap:32px}@media (max-width: 768px){.page-container{padding-left:20px;padding-right:20px;gap:24px}}@media (max-width: 480px){.page-container{padding-left:16px;padding-right:16px;gap:20px}}.main-content{flex:1 1 auto;display:flex;flex-direction:column;gap:48px}@media (max-width: 768px){.main-content{gap:32px}}@media (max-width: 480px){.main-content{gap:24px}}.row-section{display:flex;flex-direction:row}.col-section{display:flex;flex-direction:column}.header{display:flex;flex-direction:row;justify-content:space-between;align-items:center;margin-top:24px;margin-bottom:32px}@media (max-width: 768px){.header{margin-top:16px;margin-bottom:24px}}.header-container{display:flex;flex-direction:row;align-items:center;gap:16px}@media (max-width: 768px){.header-container .navbar{order:2}}@media (max-width: 480px){.header-container{gap:12px}}.navbar{position:relative}.navbar__hamburger{display:none;background:none;border:none;cursor:pointer;padding:8px;color:var(--text-primary);transition:color .2s ease}.navbar__hamburger:hover{color:var(--primary)}@media (max-width: 768px){.navbar__hamburger{display:block}}.navbar__desktop{list-style:none;display:flex;flex-direction:row;gap:16px}@media (max-width: 768px){.navbar__desktop{display:none}}.navbar__overlay{display:none}@media (max-width: 768px){.navbar__overlay{display:block;position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;z-index:998;animation:fadeIn .3s ease}}.navbar__mobile{display:none}@media (max-width: 768px){.navbar__mobile{display:block;position:fixed;top:0;right:-100%;width:280px;height:100vh;background-color:var(--background);box-shadow:-2px 0 8px #0000001a;z-index:999;transition:right .3s ease;overflow-y:auto}.navbar__mobile ul{list-style:none;display:flex;flex-direction:column;gap:0;padding:80px 24px 24px}.navbar__mobile ul li{border-bottom:1px solid var(--border)}.navbar__mobile ul li:last-child{border-bottom:none}.navbar__mobile ul li a{display:block;padding:16px 0;font-size:1.125rem;color:var(--text-primary)}.navbar__mobile ul li a:hover{color:var(--primary)}.navbar__mobile--open{right:0}}#intro{display:flex;flex-direction:row;padding-bottom:48px;border-bottom:1px solid #999999}#intro .intro-text{display:flex;flex-direction:column;gap:16px;padding-right:128px}#intro .intro-img{min-height:320px;min-width:320px;background-size:contain;border-radius:50%}@media (max-width: 768px){#intro{flex-direction:column;gap:24px}#intro .intro-text{padding-right:0}#intro .intro-img{min-height:200px;min-width:200px;max-width:100%;height:auto;align-self:center}}@media (max-width: 480px){#intro .intro-img{min-height:150px;min-width:150px}}#about{display:flex;flex-direction:row;gap:64px;justify-content:space-between;align-items:flex-start;padding-bottom:48px;border-bottom:1px solid #999999}@media (max-width: 768px){#about{flex-direction:column;gap:24px}}#projects{display:flex;flex-direction:column;gap:16px;padding-bottom:48px;border-bottom:1px solid #999999}#contact{flex-direction:row;display:flex;justify-content:space-between;align-items:center}#contact .contact-text{display:flex;flex-direction:column;gap:16px}#contact .contact-link-grp{display:flex;flex-direction:row;gap:24px}@media (max-width: 768px){#contact{flex-direction:column;align-items:flex-start;gap:24px}#contact .contact-link-grp{gap:16px;flex-wrap:wrap}}#footer{padding-bottom:32px}a,.link{color:var(--primary);text-decoration:none;transition:all .2s ease;cursor:pointer}a:hover,.link:hover{color:var(--secondary)}a.link-title,.link.link-title{font-size:1.5rem;font-weight:700;letter-spacing:-.025em;color:var(--text-primary);display:inline-flex;align-items:center;gap:.5rem;padding:.5rem;border-radius:.375rem;position:relative;transition:all .3s ease}@supports (background-clip: text) or (-webkit-background-clip: text){a.link-title,.link.link-title{background-image:linear-gradient(135deg,var(--primary),var(--accent));-webkit-background-clip:text;background-clip:text;color:transparent}}a.link-title:before,.link.link-title:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background-color:var(--primary);opacity:0;transition:opacity .2s ease}a.link-title:hover,.link.link-title:hover{transform:translateY(-1px)}a.link-title:hover:before,.link.link-title:hover:before{opacity:.05}a.link-title:after,.link.link-title:after{content:".";color:var(--accent);opacity:0;transform:translate(-4px);transition:all .3s ease}a.link-title:hover:after,.link.link-title:hover:after{opacity:1;transform:translate(0)}a.link-title img,a.link-title svg,.link.link-title img,.link.link-title svg{width:1.75rem;height:1.75rem;transition:transform .3s ease}a.link-title:hover img,a.link-title:hover svg,.link.link-title:hover img,.link.link-title:hover svg{transform:rotate(-5deg)}@media (max-width: 640px){a.link-title,.link.link-title{font-size:1.25rem}a.link-title img,a.link-title svg,.link.link-title img,.link.link-title svg{width:1.5rem;height:1.5rem}}a.link-title-minimal,.link.link-title-minimal{font-size:1.5rem;font-weight:700;color:var(--text-primary);letter-spacing:-.025em;transition:color .2s ease}a.link-title-minimal:hover,.link.link-title-minimal:hover{color:var(--primary)}a.link-underline,.link.link-underline{position:relative}a.link-underline:after,.link.link-underline:after{content:"";position:absolute;bottom:-2px;left:0;width:100%;height:2px;background-color:currentColor;transform:scaleX(0);transition:transform .2s ease;transform-origin:right}a.link-underline:hover:after,.link.link-underline:hover:after{transform:scaleX(1);transform-origin:left}a.link-subtle,.link.link-subtle{color:var(--text-secondary)}a.link-subtle:hover,.link.link-subtle:hover{color:var(--text-primary)}a.link-bold,.link.link-bold{font-weight:600}a.link-bold:hover,.link.link-bold:hover{color:var(--accent)}a.link-decorated,.link.link-decorated{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem 0;font-weight:500;color:var(--text-primary)}a.link-decorated svg,.link.link-decorated svg{width:1em;height:1em;transition:transform .2s ease}a.link-decorated:hover svg,.link.link-decorated:hover svg{transform:translate(4px)}a.link-button,.link.link-button{display:inline-block;padding:.5rem 1rem;background-color:var(--text-primary);color:var(--background);border-radius:.375rem;font-weight:500}a.link-button:hover,.link.link-button:hover{background-color:var(--text-tertiary)}a.link-button:active,.link.link-button:active{transform:translateY(1px)}a.link-ghost,.link.link-ghost{display:inline-block;padding:.5rem 1rem;border:1px solid var(--border);border-radius:.375rem;color:var(--text-primary)}a.link-ghost:hover,.link.link-ghost:hover{background-color:var(--surface);border-color:var(--primary);color:var(--primary)}a.link-card,.link.link-card{display:block;padding:1rem;border-radius:.5rem;border:1px solid var(--border);background-color:var(--background)}a.link-card:hover,.link.link-card:hover{background-color:var(--surface);border-color:var(--primary);transform:translateY(-2px);box-shadow:0 4px 6px #0000001a}a.link-breadcrumb,.link.link-breadcrumb{color:var(--text-secondary)}a.link-breadcrumb:hover,.link.link-breadcrumb:hover{color:var(--primary)}a.link-breadcrumb:after,.link.link-breadcrumb:after{content:"/";margin:0 .5rem;color:var(--border)}a.link-breadcrumb:last-child:after,.link.link-breadcrumb:last-child:after{display:none}a.link-nav,.link.link-nav{display:inline-block;padding:.5rem 1rem;color:var(--text-secondary);border-radius:.375rem}a.link-nav:hover,.link.link-nav:hover{color:var(--text-primary);background-color:var(--surface)}a.link-nav.active,.link.link-nav.active{color:var(--primary);background-color:var(--surface);font-weight:500}a.link-disabled,.link.link-disabled{opacity:.5;pointer-events:none;cursor:not-allowed}a:focus-visible,.link:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:2px}.website-preview{position:relative;border-radius:.75rem;background-color:var(--surface);border:1px solid var(--border);overflow:hidden;text-decoration:none;transition:transform .3s ease,box-shadow .3s ease}.website-preview:hover{transform:translateY(-4px);box-shadow:0 12px 24px #0000001a}.website-preview__image-container{position:relative;width:100%;aspect-ratio:1.7777777778;background-color:var(--surface);overflow:hidden}.website-preview__image-container:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to bottom,transparent 0%,rgba(0,0,0,.2) 100%);opacity:0;transition:opacity .3s ease}.website-preview:hover .website-preview__image-container:after{opacity:1}.website-preview__image{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.website-preview:hover .website-preview__image{transform:scale(1.05)}.website-preview__image--placeholder{display:flex;align-items:center;justify-content:center;background-color:var(--surface);color:var(--text-secondary)}.website-preview__image--placeholder svg{width:3rem;height:3rem;opacity:.5}.website-preview__external-link{position:absolute;bottom:1rem;right:1rem;color:#fff;opacity:0;transform:translateY(.5rem);transition:all .3s ease;z-index:2}.website-preview:hover .website-preview__external-link{opacity:1;transform:translateY(0)}.website-preview__content{padding:1.25rem}.website-preview__info{display:flex;align-items:center;gap:.5rem}.website-preview__favicon{width:1rem;height:1rem;border-radius:50%}.website-preview__favicon--placeholder{display:flex;align-items:center;justify-content:center;color:var(--text-secondary)}.website-preview__domain{font-size:.875rem;color:var(--text-primary)}.website-preview__title{margin-top:.75rem;font-size:1.125rem;font-weight:500;color:var(--text-primary);transition:color .3s ease}.website-preview:hover .website-preview__title{color:var(--primary)}.website-preview__tasks,.website-preview__description{margin-top:.5rem;font-size:.875rem;color:var(--text-secondary);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.website-preview--loading .website-preview__image-container{display:flex;align-items:center;justify-content:center;background-color:var(--surface);animation:pulse 2s infinite}.website-preview--loading .website-preview__info,.website-preview--loading .website-preview__title,.website-preview--loading .website-preview__description{background-color:var(--surface);border-radius:.25rem;animation:pulse 2s infinite}.website-preview--loading .website-preview__info:after,.website-preview--loading .website-preview__title:after,.website-preview--loading .website-preview__description:after{content:" "}.website-preview--loading .website-preview__title{width:75%;height:1.5rem}.website-preview--loading .website-preview__description{width:100%;height:2.5rem}.preview-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem;padding-top:1rem}@media (max-width: 640px){.preview-grid{gap:1rem;padding:1rem}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@media (max-width: 640px){.website-preview__title{font-size:1rem}.website-preview__content{padding:1rem}}@keyframes floatPetal{0%{transform:translateY(-20px) rotate(0);opacity:0}10%{opacity:.6}90%{opacity:.3}to{transform:translateY(110vh) rotate(360deg);opacity:0}}@keyframes fadeUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.hero{position:relative;width:100%;min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;background:linear-gradient(160deg,#1a0a08,#3b1a14 40%,#5c2820,#7a3b35)}.heroBgTexture{position:absolute;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(ellipse at 20% 50%,rgba(201,120,99,.15) 0%,transparent 60%),radial-gradient(ellipse at 80% 20%,rgba(201,168,76,.1) 0%,transparent 50%),radial-gradient(ellipse at 60% 80%,rgba(201,120,99,.12) 0%,transparent 50%);pointer-events:none}.heroPetal{position:absolute;width:6px;height:12px;background:#c978634d;border-radius:50%/60% 60% 40% 40%;animation:floatPetal linear infinite;pointer-events:none}.heroInner{position:relative;z-index:2;text-align:center;padding:60px 20px 40px}.heroEyebrow{font-family:Montserrat,sans-serif;font-weight:300;font-size:.65rem;letter-spacing:.45em;text-transform:uppercase;color:#c9a84c;opacity:0;animation:fadeUp 1s ease .3s forwards}.heroTitle{font-family:Playfair Display,serif;font-size:clamp(3rem,10vw,7rem);font-weight:400;font-style:italic;color:#fefaf5;line-height:1.05;margin:16px 0 8px;opacity:0;animation:fadeUp 1.1s ease .6s forwards;text-shadow:0 2px 40px rgba(201,120,99,.4)}.heroYear{font-family:Playfair Display,serif;font-size:clamp(1rem,3vw,1.5rem);font-weight:400;color:#c9a84c;letter-spacing:.2em;opacity:0;animation:fadeUp 1.1s ease .9s forwards}.heroDivider{width:80px;height:1px;background:linear-gradient(90deg,transparent,#c9a84c,transparent);margin:24px auto;opacity:0;animation:fadeUp 1s ease 1.1s forwards}.heroSubtitle{font-family:Cormorant Garamond,serif;font-size:clamp(1.1rem,3vw,1.6rem);font-weight:300;font-style:italic;color:#fdf6eed9;opacity:0;animation:fadeUp 1s ease 1.3s forwards;max-width:500px;margin:0 auto;text-align:center;line-height:1.6}.sectionPhotos{padding:80px 24px;background:#fefaf5;position:relative}.sectionPhotos:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,transparent,#c97b63,#c9a84c,#c97b63,transparent)}.sectionLabel{text-align:center;font-family:Montserrat,sans-serif;font-weight:300;font-size:.6rem;letter-spacing:.5em;text-transform:uppercase;color:#c97b63;margin-bottom:12px;opacity:0;animation:fadeIn 1s ease .2s forwards}.sectionHeading{text-align:center;font-family:Playfair Display,serif;font-size:clamp(1.6rem,4vw,2.8rem);font-weight:400;font-style:italic;color:#7a3b35;margin-bottom:56px;opacity:0;animation:fadeIn 1s ease .4s forwards}.photoMosaic{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:repeat(12,1fr);grid-template-rows:auto;gap:14px}.photoItem{overflow:hidden;border-radius:4px;position:relative;cursor:pointer;opacity:0;transform:translateY(20px);animation:fadeUp .8s ease forwards;box-shadow:0 4px 20px #2a25201f}.photoItem:hover img{transform:scale(1.04)}.photoItem img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s ease}.photoItem:nth-child(1){grid-column:1/6;grid-row:1;height:340px;animation-delay:.1s}.photoItem:nth-child(2){grid-column:6/10;grid-row:1;height:340px;animation-delay:.2s}.photoItem:nth-child(3){grid-column:10/13;grid-row:1;height:340px;animation-delay:.3s}.photoItem:nth-child(4){grid-column:1/5;grid-row:2;height:300px;animation-delay:.4s}.photoItem:nth-child(5){grid-column:5/9;grid-row:2;height:300px;animation-delay:.5s}.photoItem:nth-child(6){grid-column:9/13;grid-row:2;height:300px;animation-delay:.6s}.photoItem:nth-child(7){grid-column:1/7;grid-row:3;height:360px;animation-delay:.7s}.photoItem:nth-child(8){grid-column:7/13;grid-row:3;height:360px;animation-delay:.8s}.photoCaption{position:absolute;bottom:0;left:0;right:0;padding:32px 16px 14px;background:linear-gradient(transparent,#1a0a0899);color:#fdf6eee6;font-family:Cormorant Garamond,serif;font-size:.8rem;font-style:italic;letter-spacing:.05em;transform:translateY(100%);transition:transform .4s ease}.photoItem:hover .photoCaption{transform:translateY(0)}.sectionMessage{padding:100px 24px 80px;background:linear-gradient(160deg,#1a0a08,#3b1a14,#5c2820);position:relative;overflow:hidden;text-align:center}.sectionMessage:before{content:"♡";position:absolute;font-size:400px;color:#ffffff05;top:50%;left:50%;transform:translate(-50%,-50%);pointer-events:none;font-family:serif}.messageOrnament{color:#c9a84c;font-size:1.4rem;letter-spacing:.3em;margin-bottom:24px;display:block}.messageQuote{font-family:Playfair Display,serif;font-size:clamp(1.4rem,4vw,2.4rem);font-style:italic;font-weight:400;color:#fefaf5;line-height:1.55;max-width:700px;margin:0 auto 36px;position:relative;z-index:1}.messageQuote:before{content:"“";font-size:5rem;color:#c97b63;opacity:.4;line-height:0;vertical-align:-1.5rem;margin-right:4px}.messageBody{font-family:Cormorant Garamond,serif;font-size:clamp(1rem,2.5vw,1.35rem);font-weight:300;color:#fdf6eecc;line-height:1.9;max-width:600px;margin:0 auto 48px;position:relative;z-index:1}.messageSignature{font-family:Playfair Display,serif;font-size:1.6rem;font-style:italic;color:#c9a84c;position:relative;z-index:1}.messageDivider{width:60px;height:1px;background:linear-gradient(90deg,transparent,#c9a84c,transparent);margin:24px auto}.anniversaryFooter{padding:28px;background:#2a2520;text-align:center;font-family:Montserrat,sans-serif;font-weight:300;font-size:.6rem;letter-spacing:.4em;text-transform:uppercase;color:#c9a84c99}.protectedGate{display:flex;align-items:center;justify-content:center;min-height:100vh;background:linear-gradient(160deg,#1a0a08,#3b1a14 40%,#5c2820,#7a3b35);padding:24px}.protectedForm{text-align:center;max-width:360px;width:100%}.protectedOrnament{display:block;color:#c9a84c;font-size:2rem;margin-bottom:20px}.protectedTitle{font-family:Playfair Display,serif;font-size:2rem;font-weight:400;font-style:italic;color:#fefaf5;margin-bottom:8px}.protectedSubtitle{font-family:Cormorant Garamond,serif;font-size:1rem;font-weight:300;font-style:italic;color:#fdf6ee99;margin-bottom:32px}.protectedInput{display:block;width:100%;padding:12px 16px;font-family:Montserrat,sans-serif;font-size:.85rem;font-weight:300;letter-spacing:.05em;color:#fefaf5;background:#ffffff14;border:1px solid rgba(201,168,76,.3);border-radius:4px;outline:none;transition:border-color .3s ease}.protectedInput::placeholder{color:#fdf6ee59}.protectedInput:focus{border-color:#c9a84c}.protectedError{font-family:Cormorant Garamond,serif;font-size:.85rem;font-style:italic;color:#c97b63;margin-top:12px}.protectedButton{display:inline-block;margin-top:20px;padding:10px 40px;font-family:Montserrat,sans-serif;font-size:.65rem;font-weight:400;letter-spacing:.35em;text-transform:uppercase;color:#2a2520;background:#c9a84c;border:none;border-radius:4px;cursor:pointer;transition:opacity .3s ease}.protectedButton:hover{opacity:.85}@media (max-width: 768px){.photoMosaic{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto;gap:10px}.photoItem:nth-child(1){grid-column:1/2;grid-row:1;height:200px}.photoItem:nth-child(2){grid-column:2/3;grid-row:1;height:200px}.photoItem:nth-child(3){grid-column:1/2;grid-row:2;height:200px}.photoItem:nth-child(4){grid-column:2/3;grid-row:2;height:200px}.photoItem:nth-child(5){grid-column:1/2;grid-row:3;height:200px}.photoItem:nth-child(6){grid-column:2/3;grid-row:3;height:200px}.photoItem:nth-child(7){grid-column:1/2;grid-row:4;height:200px}.photoItem:nth-child(8){grid-column:2/3;grid-row:4;height:200px}}@media (max-width: 480px){.photoMosaic{grid-template-columns:1fr}.photoItem:nth-child(1){grid-column:1;grid-row:1;height:220px}.photoItem:nth-child(2){grid-column:1;grid-row:2;height:220px}.photoItem:nth-child(3){grid-column:1;grid-row:3;height:220px}.photoItem:nth-child(4){grid-column:1;grid-row:4;height:220px}.photoItem:nth-child(5){grid-column:1;grid-row:5;height:220px}.photoItem:nth-child(6){grid-column:1;grid-row:6;height:220px}.photoItem:nth-child(7){grid-column:1;grid-row:7;height:220px}.photoItem:nth-child(8){grid-column:1;grid-row:8;height:220px}}@keyframes bdayFadeUp{0%{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}@keyframes bdayFadeIn{0%{opacity:0}to{opacity:1}}@keyframes bdayOrbDrift{0%{transform:translate(0) scale(1)}to{transform:translate(3%,2%) scale(1.08)}}@keyframes bdayBtnPulse{0%,to{box-shadow:0 0 #b43c1400}50%{box-shadow:0 0 0 10px #b43c141f}}@keyframes bdayArrowBounce{0%,to{transform:translateY(0)}50%{transform:translateY(4px)}}@keyframes bdayFadeUpBtn{0%{opacity:0;transform:translate(-50%) translateY(28px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@keyframes pinataWobble{0%{transform:rotate(0)}18%{transform:rotate(-14deg)}36%{transform:rotate(11deg)}54%{transform:rotate(-8deg)}72%{transform:rotate(5deg)}86%{transform:rotate(-2deg)}to{transform:rotate(0)}}@keyframes ringRevealIn{0%{opacity:0;transform:translateY(24px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.bdayCanvas{position:fixed;top:0;left:0;width:100%;height:100%;z-index:2;pointer-events:none}.bdayNoise{position:fixed;top:0;right:0;bottom:0;left:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.04'/%3E%3C/svg%3E");background-size:256px;opacity:.08;pointer-events:none;z-index:1}.bdayGlowOrb{position:fixed;border-radius:50%;filter:blur(70px);pointer-events:none;z-index:3;animation:bdayOrbDrift 8s ease-in-out infinite alternate}.bdayGlowOrb1{width:50vw;height:50vw;top:-15%;left:-12%;background:radial-gradient(circle,rgba(204,41,54,.22),transparent 70%)}.bdayGlowOrb2{width:42vw;height:42vw;bottom:-8%;right:-10%;background:radial-gradient(circle,rgba(245,166,35,.2),transparent 70%);animation-delay:-4s}.bdayGlowOrb3{width:36vw;height:36vw;top:30%;right:8%;background:radial-gradient(circle,rgba(45,139,90,.14),transparent 70%);animation-delay:-2s}.bdayFrame{position:fixed;top:1.5rem;right:1.5rem;bottom:1.5rem;left:1.5rem;border:1px solid rgba(180,60,40,.15);z-index:4;pointer-events:none;animation:bdayFadeIn 2s .8s both}.bdayFrame:before{content:"";position:absolute;top:4px;right:4px;bottom:4px;left:4px;border:1px solid rgba(180,60,40,.06)}.bdayOrnament{position:fixed;font-size:1.4rem;opacity:.6;z-index:5;pointer-events:none;animation:bdayFadeIn 2s 1s both}.bdayOrnamentTL{top:2rem;left:2rem}.bdayOrnamentTR{top:2rem;right:2rem}.bdayOrnamentBL{bottom:2rem;left:2rem}.bdayOrnamentBR{bottom:2rem;right:2rem}.bdayViewport{position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden;z-index:6}.bdaySlider{display:flex;flex-direction:column;width:100%;transition:transform 1.1s cubic-bezier(.77,0,.175,1)}.bdaySlider.atCard{transform:translateY(-100vh)}.bdaySlide{width:100%;height:100vh;flex-shrink:0;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;padding:24px 20px;gap:0}.bdayHeroContent{text-align:center;pointer-events:none;-webkit-user-select:none;user-select:none;margin-bottom:20px}.bdayEyebrow{font-family:Cormorant Garamond,Georgia,serif;font-size:clamp(.65rem,1.8vw,1rem);font-weight:300;letter-spacing:.55em;text-transform:uppercase;color:#8c4108d1;margin-bottom:1.5rem;animation:bdayFadeUp 1.4s cubic-bezier(.16,1,.3,1) both}.bdayTitle{font-family:Mrs Saint Delafield,cursive;font-size:clamp(3rem,9vw,7rem);color:#1a0805;line-height:.85;text-shadow:0 2px 20px rgba(204,41,54,.2),0 0 60px rgba(245,166,35,.15);animation:bdayFadeUp 1.4s .2s cubic-bezier(.16,1,.3,1) both}.bdayDivider{display:flex;align-items:center;justify-content:center;gap:1rem;margin:.75rem 0 .6rem;animation:bdayFadeUp 1.4s .4s cubic-bezier(.16,1,.3,1) both}.bdayDividerLine{flex:1;max-width:60px;height:1px;background:linear-gradient(90deg,transparent,rgba(180,80,20,.4),transparent)}.bdayDividerIcon{font-size:1rem}.bdayName{font-family:Cormorant Garamond,Georgia,serif;font-style:italic;font-weight:300;font-size:clamp(2.2rem,6vw,4.5rem);color:#783708e6;letter-spacing:.1em;line-height:1;animation:bdayFadeUp 1.4s .55s cubic-bezier(.16,1,.3,1) both}.pinataZone{display:flex;flex-direction:column;align-items:center;min-height:185px;margin-bottom:8px;animation:bdayFadeIn 1s 1.2s both}.pinataClickable{display:flex;flex-direction:column;align-items:center;cursor:pointer;-webkit-user-select:none;user-select:none}.pinataClickable:active .pinataSvgContainer{filter:brightness(1.1)}.pinataSvgContainer{width:150px;height:158px;transition:filter .15s ease}@media (max-height: 650px){.pinataSvgContainer{width:120px;height:126px}}.pinataIdleWrap,.pinataHitWrap{transform-origin:50% 0%;display:flex;justify-content:center}.pinataHitWrap{animation:pinataWobble .45s ease-out forwards}.pinataHint{font-family:Cormorant Garamond,Georgia,serif;font-style:italic;font-weight:300;font-size:clamp(.82rem,1.8vw,1rem);color:#8c4108b8;text-align:center;margin-top:10px;letter-spacing:.04em;pointer-events:none}.ringReveal{animation:ringRevealIn .8s .15s cubic-bezier(.16,1,.3,1) both}.ringCard{position:relative;width:min(440px,88vw);padding:clamp(1.4rem,3.5vw,2.2rem) clamp(1.4rem,4.5vw,2.8rem);background:#fffbf5eb;border:1px solid rgba(180,60,40,.18);border-radius:4px;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);box-shadow:0 4px 32px #641e0a1a,0 1px #ffffffe6 inset;text-align:center}.ringCard:before{content:"";position:absolute;top:8px;right:8px;bottom:8px;left:8px;border:1px solid rgba(180,60,40,.06);border-radius:2px;pointer-events:none}.ringCard:after{content:"";position:absolute;top:0;left:15%;right:15%;height:1px;background:linear-gradient(90deg,transparent,rgba(204,100,40,.4),transparent)}.ringEyebrow{font-family:Cormorant Garamond,Georgia,serif;font-size:clamp(.58rem,1.4vw,.78rem);font-weight:300;letter-spacing:.5em;text-transform:uppercase;color:#8c4108b8;margin-bottom:.9rem}.ringTitle{font-family:Mrs Saint Delafield,cursive;font-size:clamp(1.6rem,4.5vw,2.6rem);color:#1a0805;line-height:1.1;text-shadow:0 1px 8px rgba(204,80,20,.15);margin-bottom:1.1rem;font-weight:400}.ringCardDivider{display:flex;align-items:center;justify-content:center;gap:.75rem;margin-bottom:1.1rem}.ringCardDividerLine{flex:1;height:1px;background:linear-gradient(90deg,transparent,rgba(180,80,20,.25),transparent)}.ringCardDividerOrnament{font-size:.62rem;color:#b4501480;letter-spacing:.3em}.ringBody{font-family:Cormorant Garamond,Georgia,serif;font-style:italic;font-weight:300;font-size:clamp(.88rem,2.1vw,1.08rem);line-height:1.85;color:#281205d1;margin-bottom:.9rem}.ringNote{font-family:Cormorant Garamond,Georgia,serif;font-weight:300;font-style:italic;font-size:clamp(.78rem,1.7vw,.92rem);color:#8c4108b3;letter-spacing:.08em}.bdayScrollBtn{position:absolute;bottom:2.8rem;left:50%;transform:translate(-50%);width:52px;height:52px;border-radius:50%;border:1px solid rgba(120,50,10,.3);background:#ffffff80;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);cursor:pointer;display:flex;align-items:center;justify-content:center;animation:bdayFadeUpBtn 1.4s 1.3s both,bdayBtnPulse 2.6s 2.7s ease-in-out infinite;transition:border-color .3s,background .3s,box-shadow .3s;outline:none}.bdayScrollBtn:hover{border-color:#b43c1499;background:#f5a6231a;box-shadow:0 0 20px #b450142e}.bdayScrollBtn svg{animation:bdayArrowBounce 2.6s 2.7s ease-in-out infinite;pointer-events:none;display:block}.bdayCard{position:relative;width:min(580px,90vw);max-height:calc(100vh - 7rem);overflow-y:auto;padding:clamp(2rem,5vw,3.5rem) clamp(2rem,6vw,4rem) clamp(2.5rem,5vw,4rem);background:#fffbf5eb;border:1px solid rgba(180,60,40,.15);border-radius:4px;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);box-shadow:0 4px 40px #641e0a1a,0 1px #ffffffe6 inset;text-align:center;opacity:0;transform:translateY(36px) scale(.97);transition:opacity .9s .35s cubic-bezier(.16,1,.3,1),transform .9s .35s cubic-bezier(.16,1,.3,1);outline:1px solid rgba(180,60,40,.06);outline-offset:-8px}.bdaySlider.atCard .bdayCard{opacity:1;transform:translateY(0) scale(1)}.bdayCard:after{content:"";position:absolute;top:0;left:15%;right:15%;height:1px;background:linear-gradient(90deg,transparent,rgba(204,100,40,.35),transparent)}.bdayCardTo{font-family:Cormorant Garamond,Georgia,serif;font-size:clamp(.6rem,1.4vw,.8rem);font-weight:300;letter-spacing:.55em;text-transform:uppercase;color:#8c4108a6;margin-bottom:1.4rem}.bdayCardSalutation{font-family:Mrs Saint Delafield,cursive;font-size:clamp(2.2rem,6vw,3.8rem);color:#1a0805;line-height:1;text-shadow:0 1px 8px rgba(204,80,20,.12);margin-bottom:1.8rem;font-weight:400}.bdayCardDivider{display:flex;align-items:center;justify-content:center;gap:.75rem;margin-bottom:1.8rem}.bdayCardDividerLine{flex:1;height:1px;background:linear-gradient(90deg,transparent,rgba(180,80,20,.25),transparent)}.bdayCardDividerOrnament{font-size:.68rem;color:#b4501473;letter-spacing:.3em}.bdayCardBody{font-family:Cormorant Garamond,Georgia,serif;font-style:italic;font-weight:300;font-size:clamp(.95rem,2.3vw,1.18rem);line-height:1.9;color:#281205d1}.bdayCardBody p+p{margin-top:1.1em}.bdayCardClosingDivider{display:flex;align-items:center;justify-content:center;gap:.5rem;margin:1.8rem 0 1.4rem;color:#b4501466;font-size:.75rem;letter-spacing:.3em}.bdayCardClosing{font-family:Cormorant Garamond,Georgia,serif;font-weight:300;font-style:italic;font-size:clamp(.8rem,1.8vw,.95rem);color:#8c4108b3;letter-spacing:.12em}.bdayCardSignature{font-family:Mrs Saint Delafield,cursive;font-size:clamp(1.8rem,4.5vw,2.8rem);color:#2a1005;margin-top:.2rem;text-shadow:0 1px 6px rgba(180,80,20,.15);font-weight:400}.bdayBackBtn{position:absolute;bottom:2.8rem;left:50%;transform:translate(-50%);width:44px;height:44px;border-radius:50%;border:1px solid rgba(120,50,10,.28);background:#ffffff80;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .5s .8s,border-color .3s ease,background .3s ease,box-shadow .3s ease;outline:none}.bdaySlider.atCard .bdayBackBtn{opacity:1}.bdayBackBtn:hover{border-color:#b43c148c;background:#f5a6231a;box-shadow:0 0 16px #b4501426}.bdayBackBtn svg{pointer-events:none}@media (max-height: 650px){.bdayHeroContent{margin-bottom:8px}.bdayTitle{font-size:2.8rem}.bdayName{font-size:2rem}.bdayDivider{margin:.4rem 0 .3rem}.pinataZone{min-height:150px}}@media (max-width: 480px){.bdayCard{padding:1.6rem 1.4rem}.ringCard{padding:1.2rem}}:root{--primary: #2563eb;--primary-light: #60a5fa;--primary-dark: #1d4ed8;--secondary: #4f46e5;--accent: #f59e0b;--accent-light: #fbbf24;--accent-dark: #d97706;--accent-contrast: #ffffff;--background: #ffffff;--surface: #f3f4f6;--surface-hover: #e5e7eb;--text-primary: #111827;--text-secondary: #4b5563;--text-tertiary: #6b7280;--border: #e5e7eb;--border-light: #f3f4f6;--border-dark: #d1d5db;--success: #059669;--warning: #b45309;--error: #dc2626;--info: #0284c7;--hover: rgba(0, 0, 0, .05);--active: rgba(0, 0, 0, .1);--disabled: rgba(0, 0, 0, .2);--shadow-sm: rgba(0, 0, 0, .05);--shadow-md: rgba(0, 0, 0, .1);--shadow-lg: rgba(0, 0, 0, .15)}:root.dark{--primary: #3b82f6;--primary-light: #60a5fa;--primary-dark: #2563eb;--secondary: #6366f1;--accent: #f59e0b;--accent-light: #fbbf24;--accent-dark: #d97706;--accent-contrast: #000000;--background: #111827;--surface: #1f2937;--surface-hover: #374151;--text-primary: #f9fafb;--text-secondary: #e5e7eb;--text-tertiary: #d1d5db;--border: #374151;--border-light: #4b5563;--border-dark: #1f2937;--success: #10b981;--warning: #f59e0b;--error: #ef4444;--info: #0ea5e9;--hover: rgba(255, 255, 255, .05);--active: rgba(255, 255, 255, .1);--disabled: rgba(255, 255, 255, .2);--shadow-sm: rgba(0, 0, 0, .2);--shadow-md: rgba(0, 0, 0, .4);--shadow-lg: rgba(0, 0, 0, .6)}body{background-color:var(--background);color:var(--text-primary);transition:background-color .2s ease-in-out,color .2s ease-in-out}:root{--background: #ffffff;--text: #000000}:root.dark{--background: #1a1a1a;--text: #ffffff}.theme-switcher{padding:.5rem;border:none;border-radius:9999px;cursor:pointer;transition:background-color .2s ease}.theme-switcher.light{background-color:#f3f4f6}.theme-switcher.light:hover{background-color:#e5e7eb}.theme-switcher.light .sun-icon{transform:rotate(0);opacity:1;color:#f59e0b}.theme-switcher.light .moon-icon{transform:rotate(90deg);opacity:0}.theme-switcher.dark{background-color:#1f2937}.theme-switcher.dark:hover{background-color:#374151}.theme-switcher.dark .sun-icon{transform:rotate(-90deg);opacity:0}.theme-switcher.dark .moon-icon{transform:rotate(0);opacity:1;color:#60a5fa}.icon-container{position:relative;width:1.5rem;height:1.5rem}.sun-icon,.moon-icon{width:1.5rem;height:1.5rem;transition:all .3s ease}.sun-icon.moon-icon,.moon-icon.moon-icon{position:absolute;top:0;left:0}
