@font-face{font-family:Notebook;src:url('assets/handwriting.ttf') format('truetype');font-display:swap}
*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;overflow:hidden}body{color:#514d43;font-family:Notebook,sans-serif;background:#3a3025;font-size:18px}button{font:inherit;cursor:pointer}a{color:inherit}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible{outline:2px solid #b16b36;outline-offset:4px}.desk{position:fixed;inset:0;overflow:hidden;z-index:-1;background:#3a3025}.desk img{position:absolute;left:50%;top:50%;width:100svh;height:min(100vw,128svh);object-fit:fill;transform:translate(-50%,-50%) rotate(-90deg);filter:brightness(.91)}.stage{height:100svh;width:100%;display:flex;align-items:center;justify-content:center;perspective:1800px}.book{position:relative;width:min(64vw,69svh,820px);aspect-ratio:.94;perspective:1800px;transform:translateX(25%);transition:transform 1.2s cubic-bezier(.45,0,.18,1);margin-top:-24px}.book.is-open{transform:translateX(0)}.spread{position:absolute;inset:0;filter:drop-shadow(0 12px 17px #0005)}.book-photo{display:none}.page{position:absolute;top:0;width:50%;height:100%;padding:8% 7% 7%;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;line-height:1.8;border-radius:12px;background-image:url('assets/book.webp');background-size:217.4% 113.6%;background-repeat:no-repeat}.page:before{content:"";position:absolute;inset:11% 12% 10%;background:repeating-linear-gradient(transparent 0 35px,#77817322 35px 36px);pointer-events:none;z-index:0}.page>*{position:relative;z-index:1}.about-page{right:0;background-position:96% 50%;transform-origin:0 50%;transform:rotateY(180deg);backface-visibility:hidden;transition:transform 1.2s cubic-bezier(.45,0,.18,1)}.contact-page{left:0;background-position:4% 50%}.book.is-open .about-page{transform:rotateY(0)}.book:not(.is-open) .contact-page{clip-path:inset(0 7% 0 0)}.book:not(.is-open) .contact-page>*{visibility:hidden}.margin-note{font-size:14px;color:#857a65;display:block;transform:rotate(-3deg);line-height:1.7}h1,h2,p{margin:0}h1{font-size:28px;font-weight:400;line-height:1.7;margin:4px 0 12px;position:relative;white-space:nowrap}h2{font-weight:400;font-size:24px;line-height:1.7;position:relative;margin:6px 0 17px;white-space:nowrap}.pencil-underline{position:absolute;bottom:0;right:1%;width:95%;height:6px;border-bottom:1.5px solid #a34938;border-radius:50%;transform:rotate(-2deg);opacity:.8}.portrait-frame{width:100%;height:185px;margin:12px 0 8px;display:grid;place-items:center}.portrait{width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply}.bio{font-size:16px;line-height:2;max-width:260px}.bio:empty{display:none}.signature{font-size:22px;transform:rotate(-6deg);margin-top:18px;color:#785d39}.signature span{font:24px Georgia;color:#a14d34;margin-right:8px}.highlight{background:linear-gradient(transparent 56%,#d1ad544a 56%,#d1ad544a 91%,transparent 91%)}.page-number{position:absolute;bottom:3.5%;font-size:12px;color:#8f8370}.social-links{width:100%;display:grid;gap:2px}.social{display:flex;gap:12px;text-decoration:none;justify-content:center;align-items:center;text-align:center;padding:5px 0;min-height:51px;border-radius:6px;transition:transform .2s,background .2s}.social:hover{transform:rotate(-1deg);background:#c9a75515}.icon{width:28px;height:28px;flex:0 0 28px;transform:rotate(-5deg)}.social:nth-child(even) .icon{transform:rotate(4deg)}.icon svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(.6px .6px 0 #423a3226)}.tiktok .icon{color:#292a28;filter:drop-shadow(-1px 0 0 #25b8be) drop-shadow(1px .6px 0 #e9687c)}.instagram .icon{color:#b6537b}.youtube .icon{color:#ba4438}.whatsapp .icon{color:#4e865d}.email .icon{color:#647f96}.link-copy{min-width:0;display:flex;flex-direction:column;gap:0;line-height:1.45}.link-copy strong{font-weight:400;font-size:17px}.link-copy small{font:12px/1.6 Notebook,sans-serif;overflow-wrap:anywhere;color:#79736a}.closing-note{font-size:13px;line-height:2;margin-top:18px;transform:rotate(-2deg);white-space:nowrap}.closing-note span{color:#99614a}.binding{position:absolute;inset:0;overflow:hidden;clip-path:inset(0 44% 0 44%);pointer-events:none;opacity:0;transition:opacity .15s;z-index:3}.binding img{position:absolute;width:108.7%;height:113.6%;left:-4.35%;top:-6.8%}.book.is-open .binding{opacity:1;transition-delay:.9s}.cover{position:absolute;left:0;top:0;width:50%;height:100%;padding:0;border:0;background:transparent;transform-origin:100% 50%;transform:rotateY(0deg);transform-style:preserve-3d;backface-visibility:hidden;transition:transform 1.2s cubic-bezier(.45,0,.18,1);filter:drop-shadow(-5px 12px 10px #0005);color:#e4c890;z-index:4}.cover-texture{position:absolute;width:109%;height:109%;left:-4.5%;top:-4.5%;object-fit:fill}.cover-logo{position:absolute;inset:42% 17% 42%;background:linear-gradient(110deg,#bd9b52 20%,#efdc96 45%,#b78d45 70%);mask:url('assets/logo.png') center/contain no-repeat;-webkit-mask:url('assets/logo.png') center/contain no-repeat}.cover-logo:after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 35%,#fffbd6 50%,transparent 65%);transform:translateX(-150%);animation:glint-loop 7s 1s infinite}.book.is-open .cover-logo:after{animation-play-state:paused}.cover-caption{display:none}.open-hint{position:absolute;bottom:13%;right:15%;left:15%;border-bottom:1px solid #ddbd7870;font-size:15px;padding-bottom:5px;animation:hint-breathe 3s ease-in-out infinite}.cover:hover .open-hint{color:#fff1c0}.book.is-open .cover{transform:rotateY(-180deg);pointer-events:none}.book-controls{position:absolute;top:calc(50% + min(34.05vw,36.7svh,436px));display:flex;align-items:center;justify-content:center;margin-top:8px}.book-controls[hidden]{display:none}.close-book{background:#213e33c9;border:1px solid #d5cb9f55;border-radius:5px;color:#eee3c9;padding:5px 17px;font-size:14px;min-height:36px}.mobile-pages{display:none}dialog{border:0;border-radius:5px;color:#514b3e;background:#f4eddc url('assets/book.webp') 8% 40%/230%;padding:35px;width:min(90vw,430px);max-height:85svh;overflow:auto;box-shadow:0 20px 70px #0005;text-align:right;font-family:Notebook,sans-serif}dialog::backdrop{background:#11271dcc;backdrop-filter:blur(5px)}dialog h2{font-size:25px;margin-top:10px}dialog p{font-size:17px;line-height:2}.dialog-close{position:absolute;top:6px;left:10px;background:none;border:0;font:30px Georgia;color:#685d4b;width:40px;height:40px}.continue-whatsapp{display:block;margin-top:22px;padding:10px 16px;background:#376449;color:#fff6df;text-align:center;text-decoration:none;border-radius:4px;font-size:17px}.noscript-note{color:white;text-align:center}@keyframes glint-loop{0%,65%{transform:translateX(-150%)}90%,100%{transform:translateX(150%)}}@keyframes hint-breathe{0%,100%{opacity:.5}50%{opacity:1}}
@media(max-width:759px){
 .desk img{width:100%;height:100%;transform:translate(-50%,-50%);object-fit:fill;filter:brightness(.94)}
 .book{width:min(94vw,56.4svh);margin-top:0}
 .page{padding:7% 6% 8%;border-radius:7px}.page:before{inset:10% 12% 9%;background:repeating-linear-gradient(transparent 0 24px,#77817322 24px 25px)}
 .margin-note{font-size:10px}.portrait-frame{height:clamp(80px,18svh,150px);margin:8px 0 4px}
 h1{font-size:clamp(15px,4.1vw,21px);margin:3px 0 9px}h2{font-size:clamp(14px,3.8vw,19px);margin:3px 0 8px}
 .bio{font-size:12px;line-height:1.9}.signature{font-size:15px;margin-top:12px}.signature span{font-size:18px}
 .social{min-height:42px;padding:3px 0;gap:6px}.icon{width:20px;height:20px;flex-basis:20px}.link-copy strong{font-size:13px}.link-copy small{font-size:9px;line-height:1.8}
 .closing-note{font-size:9px;margin-top:10px;line-height:2;white-space:normal}.page-number{font-size:10px}
 .open-hint{font-size:12px;left:10%;right:10%}.cover-logo{inset:42% 13% 42%}
 .book-controls{top:calc(50% + min(50vw,30svh));margin-top:9px}.close-book{font-size:12px;padding:4px 14px;min-height:32px}
}
@media(max-height:670px) and (min-width:760px){.portrait-frame{height:135px}.margin-note{font-size:12px}h1{font-size:23px}h2{font-size:20px;margin-bottom:7px}.social{min-height:40px;padding:3px 0}.icon{width:23px;height:23px;flex-basis:23px}.link-copy strong{font-size:14px}.link-copy small{font-size:10px}.closing-note{font-size:10px;margin-top:10px}.signature{font-size:18px}.bio{font-size:13px}}
@media(max-height:680px) and (max-width:759px){.social{min-height:35px}.contact-page .margin-note{display:none}.closing-note{margin-top:5px}.portrait-frame{height:110px}.signature{margin-top:7px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.portrait-frame{display:block;flex-shrink:0}.portrait{display:block;min-width:0;min-height:0;max-height:100%;object-fit:contain}
/* Writing follows a shared ruled-paper rhythm. */
.page{--rule-step:24px;--rule-offset:0px;line-height:24px}
.page:before{inset:7% 12% 8%;background-image:repeating-linear-gradient(to bottom,#7781732b 0 1px,transparent 1px var(--rule-step));background-position:0 var(--rule-offset)}
.margin-note{height:24px;line-height:24px;font-size:12px;transform:none}
.portrait-frame{height:144px;margin:0;width:86%}
h1{font-size:25px;line-height:48px;margin:0;height:48px}h2{font-size:21px;line-height:48px;margin:0 0 0;height:48px}
.bio{font-size:14px;line-height:24px}.signature{font-size:19px;line-height:24px;margin-top:24px;transform:none}
.social-links{gap:0}.social{height:48px;min-height:48px;padding:0;gap:10px}
.link-copy{line-height:24px}.link-copy strong{font-size:15px;line-height:24px}.link-copy small{font-size:11px;line-height:24px}.icon{width:24px;height:24px;flex-basis:24px}
.closing-note{font-size:11px;line-height:24px;margin-top:24px;transform:none}
.book{transform:translateX(var(--book-shift,25%));transition:none}
.book.is-open{transform:translateX(var(--book-shift,25%))}
.about-page,.book.is-open .about-page{transform:rotateY(var(--paper-angle,-180deg));transition:none}
.cover,.book.is-open .cover{transform:rotateY(var(--cover-angle,0deg));transition:none}
.binding,.book.is-open .binding{opacity:var(--binding-opacity,0);transition:none}
@media(max-width:759px){
 .page{--rule-step:18px}.margin-note{font-size:9px;line-height:18px;height:18px}.portrait-frame{height:108px;width:90%;margin:0}
 h1{font-size:16px;line-height:36px;height:36px;margin:0}h2{font-size:14px;line-height:36px;height:36px;margin:0}
 .bio{font-size:10.5px;line-height:18px}.signature{font-size:13px;line-height:18px;margin-top:18px}
 .social{min-height:36px;height:36px;gap:5px}.icon{width:19px;height:19px;flex-basis:19px}.link-copy strong{font-size:12px;line-height:18px}.link-copy small{font-size:8px;line-height:18px}
 .closing-note{font-size:8px;line-height:18px;margin-top:18px}.contact-page .margin-note{display:block}
}
@media(min-width:760px) and (max-height:670px){.page{--rule-step:18px}.margin-note{height:18px;line-height:18px}.portrait-frame{height:108px}h1,h2{height:36px;line-height:36px}.social{height:36px;min-height:36px}.link-copy strong,.link-copy small{line-height:18px}.closing-note{line-height:18px;margin-top:18px}.bio{line-height:18px;font-size:12px}.signature{line-height:18px;margin-top:18px}}
/* A single physical leaf: cloth front and printed-paper reverse. */
.book{margin-top:0;perspective:1800px;isolation:isolate}
.spread{filter:none}.turning-leaf{position:absolute;left:0;top:0;width:50%;height:100%;transform-origin:100% 50%;transform-style:preserve-3d;z-index:4;will-change:transform}
.turning-leaf .cover,.book.is-open .turning-leaf .cover{inset:0;width:100%;height:100%;transform:translateZ(.4px);backface-visibility:hidden;-webkit-backface-visibility:hidden;filter:none;transition:none}
.turning-leaf .about-page,.book.is-open .turning-leaf .about-page{left:0;right:auto;width:100%;height:100%;transform:rotateY(180deg) translateZ(.4px);transform-origin:50% 50%;backface-visibility:hidden;-webkit-backface-visibility:hidden;transition:none;padding:16% 14% 14%}
.contact-page{box-shadow:-4px 9px 14px #0003}.turning-leaf .about-page{box-shadow:4px 9px 14px #0003}
.fold-shadow{position:absolute;inset:0 50% 0 0;background:linear-gradient(to left,#211a14cc,transparent 65%);opacity:var(--fold-shadow,0);z-index:3;pointer-events:none;border-radius:12px}
.book.settled .turning-leaf{will-change:auto}
.cover-logo{inset:42% 13% 42%;background:linear-gradient(110deg,#b89545 10%,#e6c675 35%,#f8df92 48%,#b99346 80%)}
.cover-logo:after{background:linear-gradient(100deg,transparent 28%,#fffbe2 49%,transparent 70%);animation:glint-loop 6s .2s infinite}
.cursor-hint{position:fixed;z-index:20;pointer-events:none;background:#f4ecd5;color:#554732;border:1px solid #af9c7355;box-shadow:0 3px 12px #0003;border-radius:4px;padding:5px 11px;font:14px/1.7 Notebook,sans-serif;white-space:nowrap}
.cursor-hint[hidden]{display:none}
#about-title .pencil-underline{bottom:9px}
.contact-heading{display:inline-block;position:relative;line-height:1.6;padding:0 10px}

.closing-note{color:#99614a}
.desk{background:#204a3b url('assets/desk-fullbleed.webp') center/cover no-repeat}
.desk>img{mask-image:linear-gradient(to bottom,transparent 3.8%,#000 7%,#000 92.5%,transparent 95.5%),linear-gradient(to right,transparent 2.5%,#000 5%,#000 94%,transparent 97.5%);mask-composite:intersect;-webkit-mask-image:linear-gradient(to bottom,transparent 3.8%,#000 7%,#000 92.5%,transparent 95.5%),linear-gradient(to right,transparent 2.5%,#000 5%,#000 94%,transparent 97.5%);-webkit-mask-composite:source-in}
@media(max-width:759px){
 .book{width:min(91vw,48.5svh);aspect-ratio:.94;margin-top:-2svh}
 .turning-leaf .about-page{padding:14% 12% 16%}
 .portrait-frame{height:96px}.signature{margin-top:18px}
 #about-title .pencil-underline{bottom:6px}
 .desk{background-size:auto 100%}
}
@media(max-width:759px) and (max-height:700px){
 .page{--rule-step:16px}.margin-note{height:16px;line-height:16px;font-size:8px}
 .portrait-frame{height:80px}h1{font-size:14px;height:32px;line-height:32px}h2{height:32px;line-height:32px;font-size:12px}
 .social{height:32px;min-height:32px}.link-copy strong{font-size:10px;line-height:16px}.link-copy small{font-size:7px;line-height:16px}.icon{width:16px;height:16px;flex-basis:16px}
 .bio{font-size:9px;line-height:16px}.signature{font-size:11px;line-height:16px;margin-top:16px}.closing-note{font-size:9px;line-height:16px;margin-top:16px}
}
@media(prefers-reduced-motion:reduce){.cover-logo:after{animation:none!important}}
/* Isolated original-layout objects over one continuous photographic surface. */
.desk>img{mask-image:none;-webkit-mask-image:none;filter:drop-shadow(5px 10px 6px #071b1645)}
.binding{z-index:6}.turning-leaf{z-index:4}
@media(max-width:759px){.desk>img{filter:drop-shadow(2px 4px 3px #071b1655)}}
/* Independent photographic crops; intrinsic aspect ratios never stretch. */
:root{--book-w:min(54vw,69svh,820px)}
.book{width:var(--book-w)}
.prop{position:absolute;overflow:hidden;pointer-events:none;filter:drop-shadow(3px 6px 4px #0c211b60)}
.prop img{position:absolute;max-width:none;height:auto;object-fit:contain;transform:none;filter:none;mask:none;-webkit-mask:none}
.prop-pens{width:calc(var(--book-w)*.62);aspect-ratio:510/225;left:calc(50% - var(--book-w)*.67);top:50%;transform:translate(-50%,-50%) rotate(-90deg)}
.prop-pens img{width:184.509804%;left:-41.176471%;top:-44.444444%}
.prop-mic{width:calc(var(--book-w)*.92);aspect-ratio:831/320;left:calc(50% + var(--book-w)*.72);top:50%;transform:translate(-50%,-50%) rotate(-90deg)}
.prop-mic img{width:113.237064%;left:-13.237064%;top:-396.875%}
@media(max-width:759px){
 :root{--book-w:min(91vw,48.5svh)}
 .prop{filter:drop-shadow(2px 4px 3px #0c211b65)}
 .prop-pens{width:calc(var(--book-w)*.62);left:50%;top:calc(49% - var(--book-w)/1.88 - var(--book-w)*.18);transform:translate(-50%,-50%)}
 .prop-mic{width:calc(var(--book-w)*.98);left:calc(50% + var(--book-w)*.15);top:calc(49% + var(--book-w)/1.88 + var(--book-w)*.23);transform:translate(-50%,-50%)}
}
.closing-note{margin-top:0}
@media(max-width:759px){.closing-note{margin-top:0}}
@media(min-width:760px) and (max-height:670px){.closing-note{margin-top:0}}
/* Preserve the contact block position after removing its margin note. */
.contact-page:after{content:"";display:block;height:48px;flex:0 0 48px}
@media(max-width:759px){.contact-page:after{height:36px;flex-basis:36px}}
@media(min-width:760px) and (max-height:670px){.contact-page:after{height:36px;flex-basis:36px}}
.contact-page:after{height:var(--rule-step);flex-basis:var(--rule-step)}
#contact-title{margin-top:var(--rule-step)}

/* Contact details are printed on the right-hand reverse of the cover. */
.blank-page{left:0;background-position:4% 50%;box-shadow:-4px 9px 14px #0003}
.turning-leaf .contact-page{background-position:96% 50%}

/* Continue the rubber cable behind the photographed connector, out of frame. */
.prop-mic{overflow:visible}
.prop-cutout{position:absolute;inset:0;overflow:hidden}
.prop-mic img{clip-path:inset(0 5.7% 0 0)}
.mic-cable{position:absolute;inset:0;width:100%;height:100%;overflow:visible;stroke-linecap:round;stroke-linejoin:round}

.contact-logo{display:block;width:65%;max-width:155px;height:var(--rule-step);flex:0 0 var(--rule-step);background:#756345;mask:url('assets/logo.png') center/contain no-repeat;-webkit-mask:url('assets/logo.png') center/contain no-repeat}
#contact-title{width:100%;margin:0;display:flex;justify-content:center;align-items:center;outline:none}
.social.email{gap:5px}.email .link-copy small{white-space:nowrap;overflow-wrap:normal;font-size:10px}
@media(max-width:759px){.social.email{gap:3px}.email .icon{width:16px;height:16px;flex-basis:16px}.email .link-copy small{font-size:7px}}
@media(max-width:759px) and (max-height:700px){.email .link-copy small{font-size:6px}.email .icon{width:14px;height:14px;flex-basis:14px}}

.texture-filters{position:absolute;pointer-events:none}
.contact-logo{background-color:#111;background-image:repeating-linear-gradient(116deg,transparent 0 1.4px,#fff3 1.4px 1.75px,transparent 1.75px 3px),repeating-linear-gradient(24deg,transparent 0 3px,#fff2 3px 3.35px,transparent 3.35px 5px);filter:url(#pencil-ink);transform:rotate(-1deg);mix-blend-mode:multiply}

/* Actual images also render when the upload package is opened via file://. */
.cover-logo,.contact-logo{mask:none!important;-webkit-mask:none!important;background:none!important;filter:none;mix-blend-mode:normal}
.cover-logo{z-index:2;pointer-events:none}
.cover-logo:after{display:none}
.cover-logo img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;display:block}
.logo-gold{filter:brightness(0) saturate(100%) invert(83%) sepia(44%) saturate(509%) hue-rotate(354deg) brightness(94%) contrast(89%)}
.logo-shine{opacity:.9;clip-path:polygon(-40% 0,-20% 0,-40% 100%,-60% 100%);animation:logo-image-glint 6s .2s infinite}
.contact-logo img{display:block;width:100%;height:100%;object-fit:contain;filter:brightness(0);opacity:.88}
@keyframes logo-image-glint{0%,65%{clip-path:polygon(-40% 0,-20% 0,-40% 100%,-60% 100%)}90%,100%{clip-path:polygon(140% 0,160% 0,140% 100%,120% 100%)}}
.book.is-open .logo-shine{animation-play-state:paused}
@media(prefers-reduced-motion:reduce){.logo-shine{display:none}}
/* Optical center follows the visible paper, excluding its outer cover edge. */
.book .turning-leaf .page.contact-page{padding-right:16%;padding-left:12%}
@media(max-width:759px){.book .turning-leaf .page.contact-page{padding-right:14%;padding-left:10%}}


.contact-heading:after{content:"";position:absolute;left:5%;right:5%;bottom:-1px;height:4px;border-bottom:1.5px solid #a34938;border-radius:50%;transform:rotate(-1deg);opacity:.85}

/* A notebook-only scene, fitted by both viewport axes. */
:root{--book-w:min(90vw,79svh,900px)}
.book{width:var(--book-w);margin-top:0;container-type:inline-size}
.stage{height:100svh;padding:0}
.book .page{--rule-step:clamp(10px,4.9cqw,28px)}
.book #contact-title{height:calc(var(--rule-step)*2);flex:0 0 calc(var(--rule-step)*2);font-size:calc(var(--rule-step)*.84);line-height:calc(var(--rule-step)*2)}
.book .contact-logo{max-width:180px}
.book .social{height:calc(var(--rule-step)*2);min-height:calc(var(--rule-step)*2);gap:calc(var(--rule-step)*.3)}
.book .link-copy strong{font-size:calc(var(--rule-step)*.68);line-height:var(--rule-step)}
.book .link-copy small{font-size:calc(var(--rule-step)*.46);line-height:var(--rule-step)}
.book .icon{width:var(--rule-step);height:var(--rule-step);flex-basis:var(--rule-step)}
.book .email .link-copy small{font-size:calc(var(--rule-step)*.37)}
.book .email .icon{width:calc(var(--rule-step)*.85);height:calc(var(--rule-step)*.85);flex-basis:calc(var(--rule-step)*.85)}
.book .closing-note{font-size:calc(var(--rule-step)*.43);line-height:var(--rule-step);margin-top:0}
.book .page-number{font-size:calc(var(--rule-step)*.43)}
@media(max-width:759px){:root{--book-w:min(93vw,79svh)}.book{margin-top:0}}

/* Each platform name and its icon form one centered handwritten line. */
.book .social{display:block;text-align:center;padding:0}
.book .link-copy{display:flex;flex-direction:column;align-items:center;width:100%;gap:0}
.book .social-name{display:flex;direction:rtl;justify-content:center;align-items:center;gap:calc(var(--rule-step)*.28);height:var(--rule-step);flex:0 0 var(--rule-step);width:max-content;max-width:100%}
.book .social-name strong{display:block;font-weight:400;white-space:nowrap}
.book .social-name .icon{display:block;width:calc(var(--rule-step)*.78);height:calc(var(--rule-step)*.78);flex:0 0 calc(var(--rule-step)*.78);transform:rotate(-3deg)}
.book .link-copy small{display:block;height:var(--rule-step);flex:0 0 var(--rule-step);text-align:center;white-space:nowrap;overflow-wrap:normal}
.book .email .link-copy small{font-size:calc(var(--rule-step)*.42)}

.writing-baseline{display:inline-block;width:0;height:0;padding:0;margin:0;vertical-align:baseline;pointer-events:none}
/* Crisp, seamless cutting-mat grid with fine matte grain. */
.desk{background:#174a3b url('assets/desk-grid.svg') center/288px 288px repeat}
.desk:after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 35% 25%,#ccd7ba08,transparent 65%)}
@media(max-width:759px){.desk{background-size:240px 240px}}
/* Keep a blank ruled line between the heading and the first contact. */
.book .contact-logo,.book #contact-title{position:relative;top:calc(-1 * var(--rule-step))}
/* Interior paper must not peek through the cloth edge while the book is shut. */
.book:not(.is-open) .spread{visibility:hidden}
.book.is-open .spread{visibility:visible}

/* Quiet touch affordance, centered beneath the closed cover. */
.mobile-open-hint{display:none;position:absolute;top:calc(100% + 10px);left:25%;transform:translateX(-50%);width:max-content;max-width:85vw;padding:0 8px 7px;border:0;background:none;color:#e8dfc9;text-align:center;font:12px/1.8 Notebook,sans-serif;z-index:7}
.mobile-open-hint svg{display:block;width:33px;height:25px;margin:0 auto 3px;fill:none;stroke:currentColor;stroke-width:1.15;stroke-linecap:round;stroke-linejoin:round;opacity:.8}
@media(max-width:759px),(hover:none) and (pointer:coarse){.mobile-open-hint{display:block}}
@media(max-height:500px){.mobile-open-hint{top:calc(100% + 2px);padding-bottom:0;font-size:11px}.mobile-open-hint svg{display:inline-block;vertical-align:middle;width:23px;height:21px;margin:0 5px}}
.mobile-open-hint[hidden],.book.is-open .mobile-open-hint{display:none}
