@import url(https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,700;1,700&family=Caveat:wght@600;700&display=swap);body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.jamie-container,.jamie-container *{cursor:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='36'%3E%3Cpath d='M2 2v24l6-6 6 12 5-3-6-12h9Z' fill='%23c71585' stroke='%23fff' stroke-width='2' stroke-linejoin='round'/%3E%3C/svg%3E") 2 2,auto}.jamie-container{-webkit-animation:bgShift 10s ease infinite;animation:bgShift 10s ease infinite;background:linear-gradient(160deg,#ff69b4,#ff1493,#ff85c8,#c71585,#ff69b4,#ff1493);background-size:500% 500%;font-family:Caveat,cursive;min-height:100vh;overflow:hidden;position:relative}@-webkit-keyframes bgShift{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}@keyframes bgShift{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}.jamie-float{font-size:2.5rem;pointer-events:none;position:fixed;will-change:transform;z-index:1}.jf-1{-webkit-animation:drift1 10s linear infinite,mushroomBounce 2s ease-in-out infinite;animation:drift1 10s linear infinite,mushroomBounce 2s ease-in-out infinite;font-size:4rem;top:5%}.jf-2{-webkit-animation:drift2 13s linear infinite,mushroomSpin 4s linear infinite;animation:drift2 13s linear infinite,mushroomSpin 4s linear infinite;font-size:3.5rem;top:15%}.jf-3{-webkit-animation:drift1 8s linear infinite,mushroomBounce 1.5s ease-in-out infinite;animation:drift1 8s linear infinite,mushroomBounce 1.5s ease-in-out infinite;-webkit-animation-delay:-3s;animation-delay:-3s;font-size:5rem;top:30%}.jf-4{-webkit-animation:drift2 11s linear infinite,mushroomSpin 3s linear infinite;animation:drift2 11s linear infinite,mushroomSpin 3s linear infinite;-webkit-animation-delay:-7s;animation-delay:-7s;font-size:3.5rem;top:45%}.jf-5{-webkit-animation:drift1 14s linear infinite,mushroomBounce 2.5s ease-in-out infinite;animation:drift1 14s linear infinite,mushroomBounce 2.5s ease-in-out infinite;-webkit-animation-delay:-5s;animation-delay:-5s;font-size:4rem;top:60%}.jf-6{-webkit-animation:drift2 9s linear infinite,mushroomSpin 5s linear infinite;animation:drift2 9s linear infinite,mushroomSpin 5s linear infinite;-webkit-animation-delay:-10s;animation-delay:-10s;font-size:3.5rem;top:75%}.jf-7{-webkit-animation:drift1 12s linear infinite,mushroomBounce 1.8s ease-in-out infinite;animation:drift1 12s linear infinite,mushroomBounce 1.8s ease-in-out infinite;-webkit-animation-delay:-2s;animation-delay:-2s;font-size:4.5rem;top:85%}.jf-8{-webkit-animation:drift2 10s linear infinite,mushroomSpin 3.5s linear infinite;animation:drift2 10s linear infinite,mushroomSpin 3.5s linear infinite;-webkit-animation-delay:-8s;animation-delay:-8s;font-size:3.5rem;top:10%}@-webkit-keyframes drift1{0%{left:-10%;-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{left:110%;-webkit-transform:rotate(30deg);transform:rotate(30deg)}}@keyframes drift1{0%{left:-10%;-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{left:110%;-webkit-transform:rotate(30deg);transform:rotate(30deg)}}@-webkit-keyframes drift2{0%{left:auto;right:-10%;-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{left:auto;right:110%;-webkit-transform:rotate(-30deg);transform:rotate(-30deg)}}@keyframes drift2{0%{left:auto;right:-10%;-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{left:auto;right:110%;-webkit-transform:rotate(-30deg);transform:rotate(-30deg)}}@-webkit-keyframes mushroomBounce{0%,to{-webkit-transform:translateY(0) scale(1);transform:translateY(0) scale(1)}50%{-webkit-transform:translateY(-20px) scale(1.15);transform:translateY(-20px) scale(1.15)}}@keyframes mushroomBounce{0%,to{-webkit-transform:translateY(0) scale(1);transform:translateY(0) scale(1)}50%{-webkit-transform:translateY(-20px) scale(1.15);transform:translateY(-20px) scale(1.15)}}@-webkit-keyframes mushroomSpin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes mushroomSpin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.jamie-marquee{background:rgba(150,0,80,.85);border-bottom:2px solid #fff;overflow:hidden;padding:8px 0;position:fixed;top:0;width:100%;z-index:10}.jamie-marquee-text{-webkit-animation:jamieScroll 18s linear infinite;animation:jamieScroll 18s linear infinite;color:#fff;display:inline-block;font-family:Playfair Display,serif;font-size:1.2rem;letter-spacing:2px;text-shadow:0 0 8px hsla(0,0%,100%,.7);white-space:nowrap}@-webkit-keyframes jamieScroll{0%{-webkit-transform:translateX(100vw);transform:translateX(100vw)}to{-webkit-transform:translateX(-100%);transform:translateX(-100%)}}@keyframes jamieScroll{0%{-webkit-transform:translateX(100vw);transform:translateX(100vw)}to{-webkit-transform:translateX(-100%);transform:translateX(-100%)}}.jamie-content{align-items:center;display:flex;flex-direction:column;gap:24px;padding:60px 20px;position:relative;z-index:5}.jamie-title{-webkit-animation:titleGlow 2.5s ease-in-out infinite alternate;animation:titleGlow 2.5s ease-in-out infinite alternate;color:#fff;font-family:Playfair Display,serif;font-size:clamp(2.2rem,7vw,4.5rem);line-height:1.2;margin:0;text-align:center;text-shadow:0 0 20px hsla(0,0%,100%,.6),0 2px 4px rgba(0,0,0,.3)}.jamie-title em{color:#ffe0f0;display:block;font-size:.6em;font-style:italic;letter-spacing:3px}@-webkit-keyframes titleGlow{0%{text-shadow:0 0 20px hsla(0,0%,100%,.4),0 2px 4px rgba(0,0,0,.3);-webkit-transform:rotate(-1deg);transform:rotate(-1deg)}to{text-shadow:0 0 40px hsla(0,0%,100%,.9),0 0 80px rgba(255,105,180,.5),0 0 120px rgba(255,20,147,.3);-webkit-transform:rotate(1deg);transform:rotate(1deg)}}@keyframes titleGlow{0%{text-shadow:0 0 20px hsla(0,0%,100%,.4),0 2px 4px rgba(0,0,0,.3);-webkit-transform:rotate(-1deg);transform:rotate(-1deg)}to{text-shadow:0 0 40px hsla(0,0%,100%,.9),0 0 80px rgba(255,105,180,.5),0 0 120px rgba(255,20,147,.3);-webkit-transform:rotate(1deg);transform:rotate(1deg)}}.jamie-subtitle{color:#fff;font-family:Caveat,cursive;font-size:clamp(1.4rem,3.5vw,2.2rem);letter-spacing:2px;text-align:center;text-shadow:0 0 10px hsla(0,0%,100%,.5)}.jamie-details{-webkit-animation:detailBorder 6s ease-in-out infinite alternate;animation:detailBorder 6s ease-in-out infinite alternate;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:rgba(100,0,50,.4);border:2px solid hsla(0,0%,100%,.5);border-radius:16px;box-shadow:0 4px 30px rgba(0,0,0,.2),inset 0 0 20px rgba(255,105,180,.05);max-width:450px;padding:24px 32px;text-align:center;width:90%}.jamie-details p{color:#fff;font-family:Caveat,cursive;font-size:clamp(1.2rem,3vw,1.6rem);letter-spacing:1px;margin:10px 0}.jamie-details .jd-date{color:#ffe0f0;font-size:clamp(1.4rem,3.5vw,1.9rem);font-weight:700}.jamie-details .jd-time{color:#fff}.jamie-details .jd-place{color:#ffe0f0}.jamie-details .jd-theme{color:#ffb6d9;font-style:italic}@-webkit-keyframes detailBorder{0%{border-color:hsla(0,0%,100%,.5)}50%{border-color:rgba(255,182,217,.7)}to{border-color:hsla(0,0%,100%,.5)}}@keyframes detailBorder{0%{border-color:hsla(0,0%,100%,.5)}50%{border-color:rgba(255,182,217,.7)}to{border-color:hsla(0,0%,100%,.5)}}.jamie-cta{-webkit-animation:ctaFade 3s ease-in-out infinite alternate;animation:ctaFade 3s ease-in-out infinite alternate;color:#fff;font-family:Caveat,cursive;font-size:clamp(1.3rem,3.5vw,1.8rem);text-align:center}@-webkit-keyframes ctaFade{0%{opacity:.7}to{opacity:1}}@keyframes ctaFade{0%{opacity:.7}to{opacity:1}}.jamie-form{align-items:center;display:flex;flex-direction:column;gap:14px}.jamie-input{background:rgba(100,0,50,.4);border:2px solid #fff;border-radius:12px;color:#fff;font-family:Caveat,cursive;font-size:1.5rem;letter-spacing:1px;outline:none;padding:12px 24px;text-align:center;transition:border-color .3s,box-shadow .3s;width:280px}.jamie-input:focus{border-color:#ffe0f0;box-shadow:0 0 15px rgba(255,105,180,.4)}.jamie-input::-webkit-input-placeholder{color:hsla(0,0%,100%,.5)}.jamie-input::placeholder{color:hsla(0,0%,100%,.5)}.jamie-button{background:linear-gradient(135deg,#c71585,#8b0050);border:2px solid #fff;border-radius:12px;box-shadow:0 4px 15px rgba(199,21,133,.4);color:#fff;cursor:pointer;font-family:Playfair Display,serif;font-size:clamp(1.2rem,3vw,1.6rem);padding:14px 40px;transition:all .3s ease}.jamie-button:hover{-webkit-animation:btnShimmer 1s ease infinite;animation:btnShimmer 1s ease infinite;background:linear-gradient(135deg,#ff1493,#c71585,#ff69b4);background-size:200% 200%;box-shadow:0 6px 30px rgba(255,20,147,.6),0 0 20px hsla(0,0%,100%,.3);-webkit-transform:translateY(-3px) scale(1.05);transform:translateY(-3px) scale(1.05)}@-webkit-keyframes btnShimmer{0%{background-position:0 50%}to{background-position:200% 50%}}@keyframes btnShimmer{0%{background-position:0 50%}to{background-position:200% 50%}}.jamie-button:disabled{cursor:not-allowed;opacity:.5;-webkit-transform:none;transform:none}.jamie-rsvp-section{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:rgba(100,0,50,.3);border:2px solid hsla(0,0%,100%,.4);border-radius:16px;max-width:450px;padding:24px;width:90%}.jamie-rsvp-section h2{color:#fff;font-family:Playfair Display,serif;font-size:1.6rem;letter-spacing:2px;margin:0 0 16px;text-align:center}.jamie-rsvp-list{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;list-style:none;margin:0;padding:0}.jamie-rsvp-name{-webkit-animation:nameWiggle 3s ease-in-out infinite;animation:nameWiggle 3s ease-in-out infinite;border:1px solid;border-radius:20px;display:inline-block;font-family:Caveat,cursive;font-size:1.4rem;padding:6px 16px}.jamie-rsvp-name:nth-child(2n){-webkit-animation-delay:-1.5s;animation-delay:-1.5s;animation-direction:reverse}@-webkit-keyframes nameWiggle{0%,to{-webkit-transform:rotate(-2deg) translateY(0);transform:rotate(-2deg) translateY(0)}50%{-webkit-transform:rotate(2deg) translateY(-4px);transform:rotate(2deg) translateY(-4px)}}@keyframes nameWiggle{0%,to{-webkit-transform:rotate(-2deg) translateY(0);transform:rotate(-2deg) translateY(0)}50%{-webkit-transform:rotate(2deg) translateY(-4px);transform:rotate(2deg) translateY(-4px)}}.jamie-rsvp-count{color:#ffe0f0;font-family:Caveat,cursive;font-size:1.2rem;margin-top:14px;text-align:center}.jamie-rsvp-empty{font-size:1.3rem}.jamie-rsvp-empty,.jamie-success{color:#fff;font-family:Caveat,cursive;text-align:center}.jamie-success{-webkit-animation:popIn .4s ease-out;animation:popIn .4s ease-out;font-size:1.6rem}.jamie-error{color:#e07a5f;font-family:Caveat,cursive;font-size:1.3rem;text-align:center}@-webkit-keyframes popIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes popIn{0%{opacity:0;-webkit-transform:scale(.8);transform:scale(.8)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}.jamie-loading{-webkit-animation:ctaFade 1.5s ease-in-out infinite alternate;animation:ctaFade 1.5s ease-in-out infinite alternate;color:#ffe0f0;font-family:Caveat,cursive;font-size:1.4rem;text-align:center}.portfolio{--bg:#2a211b;--card:#33291f;--border:#453830;--text:#efe7dc;--body:#c9baa6;--dim:#9e8b76;--tan:#b9a995;--gold:#f0d889;--blue:#b9d3e6;-webkit-font-smoothing:antialiased;background:var(--bg);color:var(--text);display:grid;font-family:Work Sans,system-ui,sans-serif;grid-template-columns:clamp(240px,26vw,360px) 1fr;min-height:100vh}.portfolio a{color:var(--gold);text-decoration-color:hsla(46,77%,74%,.4);text-underline-offset:3px}.portfolio a:hover{color:var(--blue);text-decoration-color:var(--blue)}.portfolio-aside{align-self:start;border-right:1px solid var(--border);box-sizing:border-box;display:flex;flex-direction:column;gap:40px;justify-content:space-between;max-height:100vh;min-height:100vh;overflow-y:auto;padding:clamp(32px,4vw,56px) clamp(24px,2.6vw,40px);position:-webkit-sticky;position:sticky;top:0}.portfolio-name{color:var(--gold);font-family:Newsreader,Georgia,serif;font-size:clamp(32px,3.2vw,44px);line-height:1.14}.portfolio-tagline{color:var(--tan);font-size:15px;line-height:1.55;margin-top:18px;max-width:24ch}.portfolio-nav{display:flex;flex-direction:column;font-size:14px;gap:12px;letter-spacing:.06em;text-transform:uppercase}.portfolio-nav a{color:var(--text);text-decoration:none}.portfolio-aside-contact{display:flex;flex-direction:column;font-size:14px;gap:6px}.portfolio-aside-contact a{color:var(--blue)}.portfolio-main{min-width:0;padding:0 0 120px}.portfolio-section{padding:clamp(48px,5vw,72px) clamp(32px,5vw,72px) 40px}.portfolio-intro{border-bottom:1px solid var(--border);padding:clamp(56px,7vw,100px) clamp(32px,5vw,72px) clamp(48px,5vw,80px)}.portfolio-intro h1{color:var(--text);font-family:Newsreader,Georgia,serif;font-size:clamp(44px,5.6vw,84px);font-weight:400;line-height:1.12;margin:0 0 32px;max-width:15ch}.portfolio-intro p{text-wrap:pretty;color:var(--body);font-size:21px;line-height:1.6;margin:0;max-width:56ch}.portfolio-eyebrow{color:var(--dim);font-size:13px;font-weight:500;letter-spacing:.14em;margin:0 0 48px;text-transform:uppercase}.portfolio-job{margin-bottom:56px}.portfolio-job:last-child{margin-bottom:0}.portfolio-job-head{align-items:baseline;border-bottom:1px solid var(--border);display:flex;flex-wrap:wrap;gap:20px;justify-content:space-between;margin-bottom:20px;padding-bottom:12px}.portfolio-job-head h3{color:var(--gold);font-family:Newsreader,Georgia,serif;font-size:clamp(24px,2.3vw,32px);font-weight:400;margin:0}.portfolio-job-dates{color:var(--dim);font-size:14px}.portfolio-job ul{display:flex;flex-direction:column;gap:12px;margin:0;padding-left:18px}.portfolio-job li,.portfolio-job p{color:var(--body);font-size:17px;line-height:1.62;margin:0;max-width:72ch}.portfolio-project-section{padding:clamp(40px,4vw,56px) clamp(32px,5vw,72px) clamp(48px,5vw,72px)}.portfolio-project-section .portfolio-eyebrow{margin-bottom:32px}.portfolio-project{grid-gap:clamp(28px,3.5vw,48px);align-items:start;background:var(--card);border:1px solid var(--border);display:grid;gap:clamp(28px,3.5vw,48px);grid-template-columns:repeat(auto-fit,minmax(320px,1fr));padding:clamp(24px,3vw,40px)}.portfolio-project h3{color:var(--text);font-family:Newsreader,Georgia,serif;font-size:clamp(30px,3vw,42px);font-weight:400;line-height:1.1;margin:0 0 18px}.portfolio-project p{text-wrap:pretty;color:var(--body);font-size:17px;line-height:1.62;margin:0 0 24px;max-width:48ch}.portfolio-tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:28px}.portfolio-tag{border:1px solid #4e6373;color:var(--blue);font-size:13px;padding:4px 10px}.portfolio a.portfolio-button{background:var(--gold);color:var(--bg);display:inline-block;font-size:14px;letter-spacing:.04em;padding:12px 22px;text-decoration:none}.portfolio a.portfolio-button:hover{background:var(--blue);color:var(--bg)}.portfolio-deploy{background:#2f251c;border:1px solid var(--border);padding:clamp(20px,2.4vw,28px)}.portfolio-deploy-title{color:var(--dim);font-size:13px;letter-spacing:.14em;margin-bottom:18px;text-transform:uppercase}.portfolio-pipeline{align-items:center;color:var(--blue);display:flex;flex-wrap:wrap;font-size:13px;gap:8px;margin-bottom:22px}.portfolio-pipeline span:nth-child(2n){color:var(--dim)}.portfolio-project p.portfolio-panel-note{color:var(--body);font-size:14px;line-height:1.55;margin:0;max-width:none}.portfolio-topics{color:var(--body);display:flex;flex-direction:column;font-size:14px;gap:8px;line-height:1.5;margin:0;padding-left:18px}.portfolio-skills-section{padding:0 clamp(32px,5vw,72px) clamp(48px,5vw,72px)}.portfolio-skills-section .portfolio-eyebrow{margin-bottom:24px}.portfolio-skills{text-wrap:pretty;color:var(--text);font-size:19px;line-height:1.9;margin:0 0 40px;max-width:64ch}.portfolio-education{border-top:1px solid var(--border);padding-top:24px}.portfolio-education-label{color:var(--dim);font-size:13px;letter-spacing:.14em;margin-bottom:10px;text-transform:uppercase}.portfolio-education-value{color:var(--text);font-size:18px}.portfolio-contact-section{padding:0 clamp(32px,5vw,72px)}.portfolio-contact{border-top:1px solid var(--border);padding-top:56px}.portfolio-contact h2{color:var(--gold);font-family:Newsreader,Georgia,serif;font-size:clamp(32px,3.6vw,52px);font-weight:400;line-height:1.2;margin:0 0 28px}.portfolio-contact-links{display:flex;flex-wrap:wrap;gap:12px}.portfolio-contact-links a{font-size:15px;padding:13px 22px;text-decoration:none}.portfolio a.portfolio-contact-primary{background:var(--blue);color:var(--bg)}.portfolio a.portfolio-contact-primary:hover{background:var(--gold);color:var(--bg)}.portfolio a.portfolio-contact-secondary{border:1px solid #6b5a4a;color:var(--text)}.portfolio a.portfolio-contact-secondary:hover{border-color:var(--gold);color:var(--gold)}@media (max-width:820px){.portfolio{grid-template-columns:1fr}.portfolio-aside{border-bottom:1px solid var(--border);border-right:none;gap:28px;max-height:none;min-height:0;overflow:visible;position:static}.portfolio-nav{flex-direction:row;flex-wrap:wrap;gap:16px}}.Notebook__container{align-items:center;display:flex;flex-direction:column;margin:10px 0;padding:10px}.Notebook__container__document{margin:1em 0}.Notebook__container__document .react-pdf__Document{align-items:center;display:flex;flex-direction:column}.Notebook__container__document .react-pdf__Page{box-shadow:0 0 8px rgba(0,0,0,.5);margin:1em;max-width:calc(100% - 2em)}.Notebook__container__document .react-pdf__Page canvas{height:auto!important;max-width:100%}.Notebook__container__document .react-pdf__message{color:#fff;padding:20px}
/*# sourceMappingURL=main.feac7fd6.css.map*/