@font-face{font-family:BookHand;src:url('/assets/contact/caveat.woff2') format('woff2');font-weight:400;font-display:swap}
.contact-book{--open:1;--turn:-180deg;--shift:0%;position:relative;margin-top:100px;isolation:isolate}.book-sticky{display:flex;align-items:center;justify-content:center;padding:60px 24px}.book-spread{position:relative;width:min(1120px,100%,calc((100svh - 120px)*1.64));aspect-ratio:1.64;perspective:2500px;transform:translateX(var(--shift));transform-style:preserve-3d}.book-profile,.book-paper,.book-cover{position:absolute;top:0;width:50%;height:100%;border-radius:2px}.book-profile{left:0;background:linear-gradient(110deg,#18171a,#0c0c0e 85%,#242127);color:white;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:-14px 16px 45px #21182c15;opacity:var(--profile,1)}.book-portrait{width:76%;height:auto;aspect-ratio:1;object-fit:contain}.book-profile p{font-family:BookHand,cursive;font-size:clamp(30px,4vw,55px);margin:-2% 0 0;transform:rotate(-3deg)}.book-paper{left:50%;padding:7% 5% 4%;background:linear-gradient(90deg,#ece9ec 0,#f9f7f8 4%,#f9f7f8 99%,#eeecef);box-shadow:12px 16px 45px #21182c13,3px 3px 0 #eeecef,6px 6px 0 #fff;display:flex;flex-direction:column}.book-form-heading{font:clamp(22px,2.5vw,32px)/1.05 BookHand,cursive;margin:0 0 8%}.book-form-heading span{display:inline-block;color:#fff;background:#151317;padding:0 12px 3px;border-radius:65% 20% 50% 25% / 35% 50% 25% 50%;transform:rotate(-2deg)}.book-form{display:flex;flex-direction:column;gap:0;flex:1;min-height:0}.book-field{display:block;position:relative;margin-bottom:6%;font-family:BookHand,cursive}.book-field input,.book-field textarea{font:clamp(22px,2.5vw,32px)/1.3 BookHand,cursive;display:block;width:100%;border:0;border-radius:0;background:transparent;padding:10px 5px 14px;color:#242027;outline-offset:3px;box-shadow:none}.book-field input::placeholder,.book-field textarea::placeholder{color:#858187;opacity:1}.book-field textarea{resize:vertical;min-height:70px;max-height:130px}.book-field svg{width:100%;height:7px;overflow:visible;fill:none;stroke:#4b464e;stroke-width:1.15;transition:stroke .2s}.book-field:focus-within svg{stroke:#8664af;stroke-width:2}.book-field input:focus-visible,.book-field textarea:focus-visible{outline:2px solid #c5ade6}.book-send-row{display:flex;justify-content:flex-end}.book-send{border:0;background:transparent;position:relative;width:150px;aspect-ratio:2.5;cursor:pointer;color:#161319;padding:0;flex-shrink:0}.book-button-drawing{position:absolute;inset:0;width:100%;height:100%;overflow:visible;fill:none}.book-scribble{stroke:#cbb5ea;stroke-width:14;stroke-linecap:round;stroke-linejoin:round}.book-button-oval{stroke:#161319;stroke-width:2}.book-send>span{position:relative;display:flex;gap:12px;justify-content:center;align-items:center;font:27px/1 BookHand,cursive;transform:rotate(-4deg)}.book-send-arrow{width:34px;height:22px;fill:none;stroke:currentColor;stroke-width:1.5;transition:transform .3s}.book-send:hover .book-send-arrow{transform:rotate(-25deg)}.book-send-status{font:11px/1.4 DM,Arial,sans-serif;text-align:right;color:#8c8494;margin:4px 0 12px;min-height:16px}.book-socials{display:flex;gap:22px;align-items:center;border-top:1px solid #e2dee5;padding-top:12px;font:clamp(17px,1.9vw,24px)/1.2 BookHand,cursive;white-space:nowrap}.book-socials>*{text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:1px}.book-socials>*:first-child{margin-right:auto}.book-socials a:hover{color:#78549c}.book-email{color:#8c8494;cursor:default}.book-cover{left:50%;z-index:3;display:flex;align-items:center;justify-content:center;background:linear-gradient(100deg,#262329 0,#111113 4%,#111113 94%,#18151c);border:0;border-left:1px solid #4a414f;color:#fff;box-shadow:20px 24px 60px #20132c21,inset -2px 0 3px #ffffff12;transform-origin:0 50%;transform:rotateY(var(--turn));backface-visibility:hidden;cursor:pointer;padding:9%;visibility:hidden}.book-cover-title{position:relative;font:400 clamp(32px,4.3vw,62px)/1.15 Gunday,Georgia,serif;text-align:center;display:block;transform:rotate(-4deg);white-space:nowrap}.book-cover-title>svg{position:absolute;width:137%;height:170%;left:-18%;top:-35%;fill:none;stroke:#f4eefb;stroke-width:2.5;overflow:visible}.book-binding{position:absolute;z-index:5;top:8%;bottom:8%;left:50%;width:36px;transform:translateX(-50%);display:flex;flex-direction:column;justify-content:space-between;pointer-events:none}.book-binding i{width:100%;height:14px;position:relative;filter:drop-shadow(0 2px 1px #0005)}.book-binding i::before,.book-binding i::after{content:"";position:absolute;left:0;width:100%;height:5px;border:1px solid #6a666c;background:linear-gradient(90deg,#18171a,#ebe9ed 22%,#fff 42%,#88848c 65%,#eee 82%,#363039);box-shadow:inset 0 1px 0 #fffc}.book-binding i::after{bottom:0}.book-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.book-enhanced{height:245svh;min-height:1500px}.book-enhanced .book-sticky{position:sticky;top:0;height:100svh;padding:40px 24px}.book-enhanced .book-cover{visibility:visible}.book-enhanced[data-open=true] .book-cover{pointer-events:none;visibility:visible}.book-enhanced .book-paper{visibility:visible}.book-enhanced[data-open=true] .book-paper{visibility:visible}
@media(min-width:701px) and (max-width:950px){.book-paper{padding:6% 4% 3%}.book-form-heading{margin-bottom:6%}.book-field{margin-bottom:5%}.book-socials{gap:15px}.book-send{width:130px}.book-send-status{font-size:10px}.book-cover-title{font-size:clamp(32px,5vw,48px)}}
@media(max-width:700px){.contact-book{margin-top:65px;overflow:clip;overflow-clip-margin:22px}.book-sticky{padding:30px 4px}.book-spread{width:min(440px,100%);height:640px;max-height:calc(100svh - 70px);min-height:540px;aspect-ratio:auto;transform:none}.book-profile{width:100%;left:-100%}.book-paper,.book-cover{width:100%;left:0}.book-paper{padding:35px 24px 24px}.book-form-heading{font-size:27px;margin-bottom:25px}.book-field{margin-bottom:22px}.book-field input,.book-field textarea{font-size:28px;padding:8px 4px 16px}.book-field textarea{min-height:95px;max-height:130px}.book-socials{font-size:20px;gap:17px;padding-top:14px}.book-cover-title{font-size:clamp(36px,9vw,56px)}.book-binding{left:0;width:27px}.book-enhanced{height:235svh;min-height:1400px}.book-enhanced .book-sticky{padding:30px 4px}.book-send{width:145px}.book-send-status{font-size:10px}}

@media(prefers-reduced-motion:reduce){.book-enhanced{height:auto;min-height:0}.book-enhanced .book-sticky{position:relative;height:auto;padding-block:45px}.book-spread{transform:none}.book-profile{opacity:1}.book-cover{display:none}.book-enhanced .book-paper{visibility:visible}}
@media(min-width:701px) and (max-width:950px) and (min-height:651px){.book-spread{min-height:520px;aspect-ratio:auto}.book-form-heading{margin-bottom:18px}.book-field{margin-bottom:16px}.book-socials{font-size:19px}.book-field textarea{min-height:90px}}
@media(max-width:360px){.book-paper{padding-inline:18px}.book-socials{font-size:18px;gap:12px}.book-form-heading{font-size:25px}}

/* Both faces belong to the same physical cover and rotate around the binding. */
.book-cover{padding:0;background:none;border:0;box-shadow:none;backface-visibility:visible;transform-style:preserve-3d;visibility:visible}
.book-cover-front,.book-cover-back{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:linear-gradient(100deg,#262329 0,#111113 4%,#111113 94%,#18151c);border-radius:2px;backface-visibility:hidden;-webkit-backface-visibility:hidden;overflow:hidden}
.book-cover-front{padding:9%;transform:translateZ(1px);box-shadow:inset 2px 0 4px #ffffff15,inset -2px 0 3px #ffffff12,12px 14px 28px #20132c1a}
.book-cover-front:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#fff0,#ffffff16 48%,#0002);opacity:calc(var(--open)*.7);pointer-events:none}
.book-cover-back{transform:rotateY(180deg) translateZ(1px);flex-direction:column;background:linear-gradient(90deg,#131215 0,#111113 92%,#302b35);box-shadow:inset -6px 0 15px #0007,0 14px 30px #20132c12}
.book-cover-back .book-portrait{width:76%;height:auto}
.book-signature{font:clamp(30px,4vw,55px)/1.2 BookHand,cursive;margin-top:-2%;transform:rotate(-3deg);color:white}
@media(prefers-reduced-motion:reduce){.book-cover{display:block;transform:rotateY(-180deg)}}
@media(max-height:650px) and (min-width:701px){.book-spread{width:min(950px,100%);height:calc(100svh - 80px);min-height:330px;aspect-ratio:auto}.book-paper{padding:25px 4% 18px;overflow-y:auto}.book-form{flex:none}.book-form-heading{font-size:23px;margin-bottom:10px}.book-field{margin-bottom:10px}.book-field input,.book-field textarea{font-size:23px;padding-block:6px}.book-field textarea{min-height:60px}.book-send{width:115px}.book-send-status{font-size:10px}.book-socials{font-size:18px}.book-cover-title{font-size:36px}.book-cover-back .book-portrait{width:auto;height:70%}.book-signature{font-size:30px}}

/* Use a neutral 3D hinge, with separate front and inside faces. */
.book-cover{display:block;overflow:visible;transform-style:preserve-3d;-webkit-transform-style:preserve-3d;cursor:default}
.book-cover-front{appearance:none;-webkit-appearance:none;border:0;color:#fff;font:inherit;width:100%;height:100%;cursor:pointer}
.book-cover-back{color:white;visibility:visible}
.book-cover-front,.book-cover-back{transform-style:preserve-3d;-webkit-transform-style:preserve-3d}
@media(prefers-reduced-motion:reduce){.book-cover-back{visibility:visible}.book-cover-front{visibility:hidden}}
@media(min-width:951px) and (min-height:651px){.book-paper{padding:5% 5% 3%}.book-form-heading{margin-bottom:18px}.book-field{margin-bottom:14px}}
/* Composite the rotating cover as one layer, then lay the binding across it.
   A shared 3D context let the cover hide half of each ring even when open. */
.book-spread{transform-style:flat;-webkit-transform-style:flat}
.book-binding{z-index:10;isolation:isolate}
.book-binding i{filter:drop-shadow(0 1px 1px #0007)}
.book-binding i::before,.book-binding i::after{border-radius:2px;box-shadow:inset 0 1px 0 #fffc,0 1px 1px #0005}
