/* Shared controls: SVG strokes never turn into platform emoji. */
.icon-definitions{position:absolute;width:0;height:0;overflow:hidden;pointer-events:none}
.site-icon{display:inline-block;width:1.15em;height:1.15em;flex:none;vertical-align:-.16em;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
.pill .site-icon{width:20px;height:20px}.pill{gap:12px}
.textlink .site-icon,.back .site-icon,.footer .site-icon{margin:0 .2em}
.arrow,.close,.bridge-close,.motion{display:inline-flex;align-items:center;justify-content:center}
.arrow .site-icon{width:23px;height:23px}.arrow{width:48px;min-width:48px;height:48px}
.theme-icon{display:inline-flex;align-items:center;vertical-align:middle}.theme-icon .site-icon{width:20px;height:20px}
.zoom-hint,.bridge-art-open>span{display:inline-flex;align-items:center;gap:8px;line-height:1.4}
.bridge-art-open>span .site-icon{width:16px;height:16px}
.footer>span:last-child{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px 22px}
.footer a{display:inline-flex;align-items:center;gap:5px;margin-left:0}
.closing .farewell,.farewell{font-family:'Lora',Georgia,serif!important;font-size:clamp(24px,3vw,32px);font-style:italic;font-weight:700;letter-spacing:-.7px;line-height:1.5;transform:rotate(-3deg);color:var(--accent)}
.closing .farewell{margin-top:25px}.contact-invitation{display:inline-flex;align-items:center;justify-content:center;gap:8px;margin-top:24px}
/* A softer lilac daylight, with more distinct paper and ink. */
body:not(.night){--card:#f7f1fc;--accent:#724462;--muted:#61516f;--line:#c6b3d8;--shadow:0 12px 30px #5b3f7212}
body:not(.night) .closing{background:linear-gradient(155deg,#f6effb,#e8daf3);border:1px solid #d0bcdf;box-shadow:inset 0 0 0 5px #f4ecfa;border-radius:24px}
body:not(.night) .page-copy{background:linear-gradient(150deg,#f8f3fc,#eee3f7)}
body:not(.night) .pill,body:not(.night) .arrow,body:not(.night) .quiet{background:#e2cfef;color:#49305f;border-color:#b49ac9;box-shadow:inset 0 1px 0 #ffffff70}
body:not(.night) .pill:hover,body:not(.night) .arrow:hover,body:not(.night) .quiet:hover{background:#d6bce9;color:#3d234f;border-color:#9878b1}
body:not(.night) .zoom-hint,body:not(.night) .bridge-art-open>span{background:#eee2f7f5;color:#49305f;border:1px solid #c8b0db;box-shadow:0 2px 8px #3c24431a}
body:not(.night) .reading-page{background:linear-gradient(135deg,#fbf7fd,#f0e6f8);border:1px solid #c6add8;box-shadow:inset 0 0 0 5px #eee2f6,0 14px 35px #624a7014}
.reading-page h3{font-weight:700}.reading-page blockquote{line-height:1.85}.reading-page .opening-paragraph{font-size:clamp(17px,2.2vw,21px);line-height:1.8}
/* Crop only the displayed frame: source illustrations remain intact. */
.bridge-image-frame{display:block;position:relative;overflow:hidden;width:100%;aspect-ratio:var(--art-ratio);border-radius:inherit}
.bridge-image-frame img{position:absolute;display:block;width:var(--image-width,100%);max-width:none;height:auto!important;left:var(--image-left,0%);top:var(--image-top,0%);object-fit:fill}
.bridge-dialog .bridge-image-frame{width:min(100%,calc(62dvh * var(--art-ratio)));margin:0 auto;border-radius:8px}
.bridge-card figcaption{font-weight:700;line-height:1.5;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:6px;text-decoration-color:var(--accent)}
/* Contact page: email only, with an optional clipboard convenience. */
.contact-page{max-width:900px;margin:0 auto 80px}.contact-page .subhero{margin-bottom:36px}
.contact-letter{position:relative;background:var(--card);border:1px solid var(--line);border-radius:22px;padding:clamp(28px,6vw,64px);text-align:center;box-shadow:var(--shadow)}
.contact-letter::before{content:'';position:absolute;inset:9px;border:1px solid var(--line);opacity:.55;border-radius:15px;pointer-events:none}
.letter-emblem{display:grid;place-items:center;width:62px;height:62px;border:1px solid var(--line);border-radius:50%;margin:0 auto 26px;color:var(--accent);background:var(--paper2)}
.letter-emblem .site-icon{width:29px;height:29px}.contact-letter h2{font-size:clamp(29px,4vw,43px);line-height:1.3;margin:15px 0 20px}
.contact-letter>p{max-width:550px;margin-left:auto;margin-right:auto;color:var(--muted)}
.contact-email{display:block;width:fit-content;max-width:100%;margin:24px auto 30px;font-weight:700;font-size:clamp(16px,2.5vw,22px);overflow-wrap:anywhere;color:var(--accent);text-decoration-thickness:1px;text-underline-offset:6px}
.contact-letter .actions{justify-content:center}.copy-email{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:50px}.copy-email[hidden]{display:none}
.contact-status{min-height:1.5em;margin:16px 0 0;font-size:15px}.contact-note{font-size:14px;margin:0 0 26px}.contact-letter .farewell{display:inline-block;margin:10px 0 8px}
@media(max-width:520px){.closing .actions{gap:14px}.closing .pill{width:100%;max-width:330px;padding:14px 18px;font-size:15px}.reading-page h3{font-size:23px}.reading-page blockquote{font-size:18px;margin:34px 0}.bridge-dialog .bridge-image-frame{width:min(100%,calc(58dvh * var(--art-ratio)))}.contact-letter{padding:32px 20px}.contact-letter .actions{flex-direction:column;gap:14px}.contact-letter .actions>*{width:100%}.footer>span:last-child{gap:2px 20px}}
