@font-face{font-family:Perandory;src:url(../fonts/perandory-regular-webfont.woff2)format("woff2"),url(../fonts/perandory-regular-webfont.woff)format("woff");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Perandory Semi Condensed;src:url(../fonts/perandory-semi-condensed-webfont.woff2)format("woff2"),url(../fonts/perandory-semi-condensed-webfont.woff)format("woff");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Perandory Condensed;src:url(../fonts/perandory-condensed-webfont.woff2)format("woff2"),url(../fonts/perandory-condensed-webfont.woff)format("woff");font-weight:400;font-style:normal;font-display:swap}:root{--color-primary:#1e58a8;--color-primary-dark:#164278;--color-bg:#e8e4ea;--color-bg-warm:#ddd8df;--color-bg-dark:#3d3b42;--color-text:var(--color-primary);--color-text-muted:#1e58a8b8;--color-white:#fff;--color-overlay:#e8e4ea59;--font-script:"altesse-std-64pt", sans-serif;--font-script-small:"altesse-std-24pt", sans-serif;--font-display:"Perandory Semi Condensed", serif;--font-serif:"Cormorant Garamond", "Times New Roman", serif;--section-padding:clamp(1.5rem, 4vw, 3rem);--max-content:72rem;--transition-soft:.4s ease}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{font-family:var(--font-serif);color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased;margin:0;line-height:1.6}img{max-width:100%;height:auto;display:block}a{color:inherit}button{font:inherit;cursor:pointer}.snap-container{scroll-snap-type:y mandatory;scroll-behavior:smooth;height:100dvh;overflow-y:auto}.snap-section{scroll-snap-align:start;scroll-snap-stop:always;min-height:100dvh;position:relative}html.no-scroll-snap .snap-container{scroll-snap-type:none;height:auto;overflow:visible}html.no-scroll-snap .snap-section{scroll-snap-align:none;scroll-snap-stop:normal}.section-inner{width:min(100% - 2 * var(--section-padding), var(--max-content));margin-inline:auto}.btn-primary{border:2px solid var(--color-white);background:var(--color-primary);color:var(--color-white);font-family:var(--font-serif);letter-spacing:.08em;text-transform:uppercase;transition:background var(--transition-soft), transform var(--transition-soft);justify-content:center;align-items:center;gap:.5rem;padding:.85rem 1.75rem;font-size:1rem;font-weight:600;text-decoration:none;display:inline-flex}.btn-primary:hover,.btn-primary:focus-visible{background:var(--color-primary-dark);transform:translateY(-2px)}.btn-primary:focus-visible{outline:2px solid var(--color-white);outline-offset:3px}.scroll-hint{color:var(--color-white);opacity:.85;transition:opacity var(--transition-soft), transform var(--transition-soft);background:0 0;border:none;flex-direction:column;align-items:center;gap:.35rem;display:flex}.scroll-hint:hover,.scroll-hint:focus-visible{opacity:1;transform:translateY(4px)}.scroll-hint:focus-visible{outline:2px solid var(--color-white);outline-offset:4px}.scroll-hint__label{font-family:var(--font-serif);letter-spacing:.18em;text-transform:uppercase;font-size:.75rem}.scroll-hint__icon{width:1.5rem;height:1.5rem;animation:2s ease-in-out infinite bounce-down}@media (prefers-reduced-motion:reduce){.scroll-hint__icon{animation:none}}@keyframes bounce-down{0%,to{transform:translateY(0)}50%{transform:translateY(6px)}}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:100;background:var(--color-primary);color:var(--color-white);font-family:var(--font-serif);letter-spacing:.06em;padding:.65rem 1rem;font-size:.9rem;text-decoration:none;transition:transform .2s;position:absolute;top:0;left:1rem;transform:translateY(-150%)}.skip-link:focus{transform:translateY(1rem)}.hero{height:100dvh;max-height:100dvh;color:var(--color-white);overflow:hidden}.hero__media{z-index:0;position:absolute;inset:0;overflow:hidden}.hero__slide{opacity:0;transition:opacity 1.5s;position:absolute;inset:0}.hero__slide.is-active{opacity:1}.hero__slide-motion{transform:scale(var(--slide-scale,1.08));filter:sepia(.42)contrast(1.08)brightness(.9)saturate(.85);animation:hero-drift var(--slide-duration,6s) ease-out forwards;will-change:transform;animation-play-state:paused;position:absolute;inset:-10%}.hero__slide-image{object-fit:cover;object-position:var(--slide-position,center top);pointer-events:none;width:100%;max-width:none;height:100%;position:absolute;inset:0}.hero__slide.is-active .hero__slide-motion{animation-play-state:running}@keyframes hero-drift{0%{transform:scale(var(--slide-scale,1.08)) translate3d(0, 0, 0)}to{transform:scale(var(--slide-scale-end,1.14)) translate3d(var(--slide-x,-2%), var(--slide-y,-1%), 0)}}.hero__distress{z-index:1;pointer-events:none;position:absolute;inset:0}.hero__warmth{mix-blend-mode:soft-light;background:#ffdcaa1f;position:absolute;inset:0}.hero__grain{opacity:.32;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:160px 160px;position:absolute;inset:0}.hero__noise{opacity:.18;mix-blend-mode:soft-light;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 512 512' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.4' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:220px 220px;animation:.35s steps(2,end) infinite hero-noise;position:absolute;inset:-50%}@keyframes hero-noise{0%{transform:translate(0,0)}to{transform:translate(-2%,1.5%)}}.hero__scanlines{opacity:.14;mix-blend-mode:multiply;background:repeating-linear-gradient(#00000024 0 1px,#0000 1px 4px);position:absolute;inset:0}.hero__vignette{background:radial-gradient(#0000 30%,#141e329e 100%);position:absolute;inset:0}.hero__tint{background:linear-gradient(#1e58a838 0%,#1e58a87a 100%);position:absolute;inset:0}.hero__content{z-index:1;height:100%;min-height:0;padding:clamp(.75rem, 2.5vh, 1.75rem) var(--section-padding) clamp(1rem, 2.5vh, 1.5rem);flex-direction:column;display:flex;position:relative}.hero__title-block{flex:0 auto;justify-content:center;min-height:0;padding-top:clamp(.25rem,2vh,1.25rem);display:flex}.hero__logo,.hero__logo-mount{width:min(92vw,36rem);height:auto;color:var(--color-white);fill:currentColor;filter:drop-shadow(0 2px 4px #00000080);margin-top:4rem;display:block}.hero__logo path{fill:currentColor}.hero__logo--title{width:min(92vw,36rem)}.hero__fill{flex:auto;min-height:.75rem}.hero__author-line{flex-shrink:0;justify-content:center;margin:0;display:flex}.hero__author,.hero__author-mount{width:min(72vw,20rem);height:auto;color:var(--color-white);fill:currentColor;filter:drop-shadow(0 2px 3px #00000080);display:block}.hero__cta-gap{flex:0 clamp(1rem,6vh,3rem);min-height:.75rem}.hero__footer{flex-direction:column;flex-shrink:0;align-items:center;gap:1.25rem;display:flex}.hero__cta{border-color:var(--color-white);box-shadow:0 8px 32px #0003}@media (width<=480px){.hero__logo--title{width:min(94vw,24rem)}.hero__author,.hero__author-mount{width:min(80vw,15rem)}}@media (prefers-reduced-motion:reduce){.hero__slide{transition:none}.hero__slide-motion,.hero__noise{animation:none}}.book-section{height:100dvh;max-height:100dvh;padding:clamp(.5rem, 1.5vh, 1rem) var(--section-padding);background:linear-gradient(180deg, var(--color-bg-warm), var(--color-bg));overflow:hidden}.book-section__inner{flex-direction:column;align-items:center;gap:clamp(.35rem,1vh,.65rem);height:100%;min-height:0;display:flex}.book-section__header{text-align:center;flex-shrink:0;max-width:36rem}.book-section__eyebrow{font-family:var(--font-serif);letter-spacing:.24em;text-transform:uppercase;color:var(--color-text-muted);margin:0;font-size:.7rem}.book-section__title{font-family:var(--font-script);color:var(--color-primary);margin:.1rem 0 0;font-size:clamp(1.5rem,3.5vw,2.25rem);line-height:1.1}.book-section__subtitle{color:var(--color-text-muted);margin:.2rem 0 0;font-size:clamp(.8rem,1.8vw,.92rem)}.book-section__wrapper{flex:1 1 0;justify-content:center;align-items:center;width:min(96vw,920px);min-height:0;display:flex}.book-section__footer{flex-direction:column;flex-shrink:0;align-items:center;gap:.35rem;width:min(96vw,920px);display:flex}.book-section__controls{justify-content:center;align-items:center;gap:clamp(.75rem,2vw,1.5rem);width:100%;display:flex}.book-nav-btn{background:var(--color-white);color:var(--color-primary);font-family:var(--font-serif);letter-spacing:.08em;text-transform:uppercase;transition:background var(--transition-soft), border-color var(--transition-soft);border:1px solid #1e58a859;padding:.5rem 1rem;font-size:.75rem}.book-nav-btn:hover:not(:disabled),.book-nav-btn:focus-visible:not(:disabled){border-color:var(--color-primary);background:#1e58a814}.book-nav-btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.book-nav-btn:disabled{opacity:.4;cursor:not-allowed}.book-section__page-status{text-align:center;min-width:6rem;font-family:var(--font-serif);color:var(--color-text-muted);letter-spacing:.04em;margin:0;font-size:.8rem}#book{width:100%;height:100%;max-height:100%;margin:0 auto}#book.stf__parent,#book .stf__wrapper,#book .stf__block{height:100%;max-height:100%}#book .stf__wrapper{padding-bottom:0!important}.book-section__wrapper--single{cursor:pointer}.book-section__wrapper--single .stf__parent{touch-action:manipulation}.book-page{color:#2c2c2c;background:#faf8f5;overflow:hidden;box-shadow:inset 0 0 0 1px #0000000f}.book-page__blank{background:#faf8f5;height:100%}.book-page__cover-image{object-fit:cover;width:100%;height:100%}.book-page__title-page{text-align:center;height:100%;color:var(--color-primary);flex-direction:column;justify-content:center;align-items:center;padding:2rem;display:flex}.book-page__script{font-family:var(--font-script-small);margin:0;font-size:1.75rem}.book-page__script--right{font-family:var(--font-script);align-self:flex-end;margin-right:1rem}.book-page__serif{font-family:var(--font-display);letter-spacing:.08em;text-transform:uppercase;margin:.25rem 0;font-size:2rem;font-weight:400}.book-page__author{letter-spacing:.18em;text-transform:uppercase;margin-top:2rem;font-size:.85rem}.book-page__chapter{height:100%;font-family:var(--font-serif);padding:clamp(.85rem,1.8vh,1.2rem) clamp(.95rem,2.2vw,1.35rem);font-size:clamp(.78rem,1.05rem + .15vw,.92rem);line-height:1.42;overflow:hidden}.book-page__chapter-label{letter-spacing:.2em;text-transform:uppercase;color:var(--color-primary);margin:0 0 .25rem;font-size:.62rem}.book-page__chapter-title{font-family:var(--font-serif);color:var(--color-primary);margin:0 0 .55rem;font-size:clamp(1.15rem,2.5vw,1.45rem);font-weight:400;line-height:1.1}.book-page__chapter p{margin:0 0 .45rem}.book-page__chapter p:last-child{margin-bottom:0}.book-page__chapter code{background:#1e58a814;border-radius:3px;padding:.1em .35em;font-size:.8em}.book-page__bondage{margin:0 0 .45rem}.book-page__bondage-label{color:var(--color-primary);font-weight:600}.book-page__compare{border-collapse:collapse;width:100%;font-size:clamp(.62rem,1.35vw,.72rem);line-height:1.35}.book-page__compare th,.book-page__compare td{vertical-align:top;border-bottom:1px solid #1e58a81f;padding:.35rem .35rem .45rem 0}.book-page__compare th{font-family:var(--font-serif);letter-spacing:.05em;text-transform:uppercase;color:var(--color-primary);text-align:left;width:50%;font-size:.6rem}.book-page__compare tr:last-child td{border-bottom:none}.book-page__questions{margin:.35rem 0 0;padding-left:1rem}.book-page__questions li{margin-bottom:.35rem}.book-page__questions li:last-child{margin-bottom:0}.book-page__cta{background:var(--color-primary);height:100%;color:var(--color-white);position:relative;overflow:hidden}.book-page__cta-inner{text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:clamp(.9rem,2vh,1.35rem) clamp(1rem,2.5vw,1.5rem);display:flex;position:absolute;inset:0}.book-page__cta .book-page__script{color:var(--color-white);margin:0;font-size:clamp(1.5rem,3vw,2rem);line-height:1.1}.book-page__cta-text{font-family:var(--font-serif);opacity:.9;margin:.75rem 0 1.25rem;font-size:clamp(.85rem,1.8vw,1rem);line-height:1.4}.book-page__buy-link{border:2px solid var(--color-white);color:var(--color-white);font-family:var(--font-serif);letter-spacing:.14em;text-transform:uppercase;transition:background var(--transition-soft);margin:0;padding:.6rem 1.2rem;font-size:.75rem;text-decoration:none;display:inline-block}.book-page__buy-link:hover,.book-page__buy-link:focus-visible{background:#ffffff26}.book-section__hint{color:var(--color-text-muted);text-align:center;margin:0;font-size:.72rem}@media (height<=740px){.book-section__subtitle,.book-section__hint{display:none}}@media (width<=768px){.book-nav-btn{padding:.45rem .75rem;font-size:.7rem}}.reviews-section{padding:var(--section-padding);background:var(--color-primary);color:var(--color-white);justify-content:center;align-items:center;display:flex}.reviews-section__inner{text-align:center;width:min(100%,52rem)}.reviews-section__eyebrow{font-family:var(--font-serif);letter-spacing:.24em;text-transform:uppercase;opacity:.75;margin:0 0 2rem;font-size:.8rem;font-weight:400}.reviews-carousel{position:relative}.review-card{flex-direction:column;justify-content:center;display:flex}.review-card__quote{font-family:var(--font-serif);quotes:"“" "”";margin:0;font-size:clamp(1.35rem,3.5vw,2rem);font-style:italic;line-height:1.45}.review-card__quote:before{content:open-quote}.review-card__quote:after{content:close-quote}.review-card__attribution{font-family:var(--font-serif);letter-spacing:.06em;margin-top:1.75rem;font-size:.95rem}.review-card__attribution:before{content:"– "}.review-card__source{letter-spacing:.18em;text-transform:uppercase;opacity:.7;margin-top:.35rem;font-size:.8rem;display:block}.reviews-dots{justify-content:center;gap:.5rem;margin-top:2rem;display:flex}.reviews-dots[hidden]{display:none}.reviews-dot{width:.55rem;height:.55rem;transition:background var(--transition-soft), transform var(--transition-soft);background:0 0;border:1px solid #fff9;border-radius:50%;padding:0}.reviews-dot.is-active,.reviews-dot:hover,.reviews-dot:focus-visible{background:var(--color-white);transform:scale(1.15)}.reviews-dot:focus-visible{outline:2px solid var(--color-white);outline-offset:3px}.reviews-carousel:has(.review-card:nth-child(2)){min-height:14rem}.reviews-carousel:has(.review-card:nth-child(2)) .review-card{opacity:0;pointer-events:none;transition:opacity .8s,transform .8s;position:absolute;inset:0;transform:translateY(12px)}.reviews-carousel:has(.review-card:nth-child(2)) .review-card.is-active{opacity:1;pointer-events:auto;transform:translateY(0)}@media (prefers-reduced-motion:reduce){.review-card{transition:none}}@media (width<=640px){.reviews-carousel:has(.review-card:nth-child(2)){min-height:18rem}}.about-section,.contact-section{padding:var(--section-padding);justify-content:center;align-items:center;display:flex}.about-section{background:var(--color-bg)}.contact-section{background:var(--color-primary);color:var(--color-white)}.contact-section__eyebrow{font-family:var(--font-serif);letter-spacing:.24em;text-transform:uppercase;opacity:.75;margin:0;font-size:.8rem}.contact-section__inner{width:min(100%,28rem)}.contact-form__title{font-family:var(--font-script);color:var(--color-white);margin:0 0 .25rem;font-size:clamp(1.75rem,4vw,2rem)}.contact-form__intro{color:#ffffffd1;margin:0 0 .5rem;font-size:.95rem}.contact-section .form-field label{color:var(--color-white)}.contact-section .form-field input,.contact-section .form-field textarea{border-color:#ffffff59}.contact-section .form-field input:focus-visible,.contact-section .form-field textarea:focus-visible{border-color:var(--color-white);box-shadow:0 0 0 3px #ffffff40}.contact-section .contact-form__submit{background:var(--color-white);color:var(--color-primary);border-color:var(--color-white)}.contact-section .contact-form__submit:hover,.contact-section .contact-form__submit:focus-visible{background:var(--color-bg);color:var(--color-primary-dark)}.contact-section .contact-form__status--success{color:var(--color-white)}.contact-section .contact-form__status--error{color:#ffc9c9}.about-section__inner{width:min(100%, var(--max-content));flex-direction:column;align-items:center;gap:clamp(1.25rem,3vh,2rem);margin-inline:auto;display:flex}.about-section__layout{grid-template-columns:1fr 1.15fr;align-items:start;gap:clamp(2rem,5vw,4rem);width:min(100%,56rem);display:grid}.about-section__content{flex-direction:column;gap:1.25rem;display:flex}.about-section__eyebrow{font-family:var(--font-serif);letter-spacing:.24em;text-transform:uppercase;color:var(--color-text-muted);text-align:center;width:min(100%,56rem);margin:0;font-size:.8rem}.about-section__photo{aspect-ratio:3/4;object-fit:cover;border:6px solid var(--color-white);width:min(100%,22rem);height:auto;box-shadow:0 12px 40px #1e58a826}.about-section__photo-placeholder{aspect-ratio:3/4;background:linear-gradient(145deg, var(--color-bg-warm), var(--color-white));border:6px solid var(--color-white);width:min(100%,22rem);color:var(--color-text-muted);font-family:var(--font-script);justify-content:center;align-items:center;font-size:2rem;display:flex;box-shadow:0 12px 40px #1e58a826}.about-section__identity{flex-direction:column;display:flex}.about-section__name-serif{font-family:var(--font-display);letter-spacing:.22em;text-transform:uppercase;color:var(--color-primary);margin:0;font-size:.85rem}.about-section__name-script{font-family:var(--font-script);color:var(--color-primary);margin:.15em 0 0;font-size:clamp(2rem,4vw,2.75rem);font-weight:400;line-height:1.1}.about-section__bio{color:var(--color-primary);margin:0;font-size:1.05rem}.contact-form{flex-direction:column;gap:1rem;display:flex}.form-field{flex-direction:column;gap:.35rem;display:flex}.form-field label{font-family:var(--font-serif);letter-spacing:.12em;text-transform:uppercase;color:var(--color-primary);font-size:.8rem}.form-field input,.form-field textarea{background:var(--color-white);color:#2c2c2c;width:100%;font-family:var(--font-serif);transition:border-color var(--transition-soft), box-shadow var(--transition-soft);border:1px solid #1e58a840;padding:.75rem .9rem;font-size:1rem}.form-field input:focus-visible,.form-field textarea:focus-visible{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px #1e58a826}.form-field textarea{resize:vertical;min-height:8rem}.contact-form__submit{border-color:var(--color-primary);align-self:flex-start;margin-top:.25rem}.contact-form__status{min-height:1.25rem;margin:0;font-size:.9rem}.contact-form__status--success{color:var(--color-primary-dark)}.contact-form__status--error{color:#9b2c2c}@media (width<=860px){.about-section__layout{text-align:center;grid-template-columns:1fr;justify-items:center}.about-section__content{align-items:center}.contact-form__submit{align-self:stretch}}
