@font-face{font-family:'Lily Handwriting';src:url('assets/fonts/caveat.ttf') format('truetype');font-weight:400 700;font-style:normal;font-display:swap}
:root{color-scheme:light;--paper:#f4f0e7;--ink:#252a24;--muted:#5d6259;--accent:#465b3c;--line:#c8cbbd;--pink:#f7c2d1}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.6}a{color:inherit;text-underline-offset:5px}button,input,textarea{font:inherit}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #d16b8c;outline-offset:5px}.skip{position:absolute;top:-100px;left:20px;background:var(--paper);padding:12px;z-index:5}.skip:focus{top:12px}.masthead{position:absolute;z-index:3;top:28px;right:6%;text-align:right;color:white}.wordmark{display:block;font-family:'Lily Handwriting',cursive;font-style:normal;font-size:clamp(54px,6.5vw,100px);font-weight:600;letter-spacing:-.035em;line-height:1.1;text-decoration:none;color:var(--pink);text-shadow:0 2px 18px #0005}.wordmark span{font-family:Georgia,serif;font-size:.5em;vertical-align:top;margin-left:10px}.domain{font-size:11px;letter-spacing:.24em}.hero{position:relative;isolation:isolate;min-height:850px;min-height:max(850px,100svh);display:flex;align-items:center;justify-content:flex-end;padding:200px 6% 110px;background:#23170f;color:white;overflow:hidden}.portrait{position:absolute;inset:0;margin:0;z-index:-2}.portrait img{display:block;width:76%;height:100%;object-fit:cover;object-position:50% 54%}.hero:before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,transparent 35%,#23170f26 49%,#23170fcf 68%,#23170f 85%)}.intro{width:34%;max-width:440px}.eyebrow{font-size:11px;letter-spacing:.22em;font-weight:bold;margin:0 0 24px}h1{font-family:Georgia,'Times New Roman',serif;font-size:clamp(64px,6vw,96px);font-weight:normal;line-height:1.02;letter-spacing:-.055em;margin:0 0 26px}h1 em{color:var(--pink);font-weight:normal}.lead{font-size:19px;line-height:1.65}.aside{margin-top:24px;color:#f1e5dc;font-size:15px}.socials{display:flex;flex-wrap:wrap;gap:26px;margin-top:30px}.socials a{font-size:14px;font-weight:bold;text-decoration:none;border-bottom:1px solid #f7c2d199;padding-bottom:6px}.socials span{margin-left:10px}.socials a:hover{color:var(--pink)}.social-note{font-size:12px;color:#ebdcd0;margin-top:14px}.contact{max-width:1200px;margin:auto;padding:60px 6%;display:grid;grid-template-columns:1fr 1fr;gap:7%}h2{font-family:Georgia,serif;font-weight:normal;font-size:clamp(42px,5vw,60px);letter-spacing:-.04em;line-height:1.1;margin:0 0 18px}.contact .eyebrow{margin-bottom:18px}.contact p{color:var(--muted)}form label{display:block;font-size:13px;font-weight:bold;margin:0 0 7px}input,textarea{display:block;width:100%;border:1px solid #8b9383;background:#fff9;border-radius:3px;padding:13px 15px;color:var(--ink);margin-bottom:18px}textarea{resize:vertical;min-height:100px}input::placeholder,textarea::placeholder{color:#666d61}button{background:var(--accent);color:#fff;border:0;border-radius:3px;padding:13px 22px;cursor:pointer;display:flex;justify-content:space-between;gap:34px;align-items:center}button:hover{background:#33472a}.form-note,#status{font-size:12px;line-height:1.6}#status:empty{display:none}footer{max-width:1200px;margin:auto;border-top:1px solid var(--line);padding:22px 6% 26px;display:flex;gap:16px;justify-content:space-between;font-size:11px;color:var(--muted)}.trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}button:disabled{opacity:.65;cursor:not-allowed}#spam-check{margin-bottom:18px;max-width:100%;overflow:hidden}@media(min-width:1600px){.portrait img{width:70%;object-fit:contain;object-position:left center}.hero:before{background:linear-gradient(90deg,transparent 38%,#23170f80 58%,#23170f 74%)}.intro{width:32%;max-width:500px}}@media(max-width:900px){.masthead{top:20px;right:5%}.wordmark{font-size:64px}.hero{min-height:760px;padding-right:5%}.intro{width:38%}h1{font-size:64px}.lead{font-size:17px}.portrait img{width:80%;object-position:48% center}.hero:before{background:linear-gradient(90deg,transparent 27%,#23170f44 48%,#23170fe6 73%,#23170f 94%)}}@media(max-width:650px){.masthead{left:0;right:0;top:20px;text-align:center}.wordmark{font-size:62px}.hero{display:flex;flex-direction:column;min-height:0;padding:0;background:#23170f}.portrait{position:relative;inset:auto;z-index:0;width:100%}.portrait img{width:100%;height:auto;object-fit:initial}.hero:before{display:none}.intro{position:relative;width:100%;max-width:none;margin-top:-20px;padding:35px 7% 42px;background:#23170f;z-index:1;border-top:1px solid #f7c2d144}h1{font-size:72px}.lead{font-size:19px}.contact{grid-template-columns:1fr;gap:24px;padding:40px 7%}.socials{margin-top:24px}footer{flex-direction:column;gap:4px;padding-left:7%;padding-right:7%}}@media(prefers-reduced-motion:no-preference){a,button{transition:color .15s,background-color .15s}}

/* Lily's small distractions. */
[hidden]{display:none!important}.lily-extras{margin-top:26px}.temptation{background:var(--pink);color:#23170f;border-radius:40px;padding:11px 24px;font-size:14px;font-weight:bold;display:inline-flex}.temptation:hover{background:#ffe1e9}.small-links{display:flex;flex-wrap:wrap;gap:18px;margin-top:15px}.small-links button{display:inline;padding:0;background:transparent;color:#f1e5dc;border-radius:0;font-size:12px;text-decoration:underline;text-underline-offset:4px}.small-links button:hover{color:var(--pink)}.lily-reply{font-size:14px;color:var(--pink);line-height:1.6;min-height:3.2em;margin:16px 0 0}dialog{width:min(460px,calc(100% - 40px));border:1px solid #f7c2d155;border-radius:16px;padding:40px 32px;background:#23170f;color:white;box-shadow:0 20px 90px #0008}dialog::backdrop{background:#000b}dialog h2{font-size:42px;color:var(--pink);margin-bottom:20px}dialog .eyebrow{font-size:10px;margin-bottom:16px}#dialog-message{font-size:19px;line-height:1.7;margin-bottom:0}.dialog-close{position:absolute;top:8px;right:12px;background:transparent;color:var(--pink);font-size:28px;padding:0 8px}.dialog-close:hover{background:#ffffff12}.hero{padding-bottom:70px}

/* Mobile: brand, full photograph, then copy. No overlapping layers. */
@media(max-width:700px){
 .masthead{position:relative;inset:auto;padding:16px 6% 18px;text-align:center;background:#23170f;color:white}
 .wordmark{font-size:clamp(54px,15vw,74px);line-height:1.05}
 .domain{display:block;font-size:10px;margin-top:5px;letter-spacing:.2em}
 .hero{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;min-height:0;padding:0;overflow:visible}
 .hero:before{display:none}
 .portrait{position:relative;inset:auto;order:-1;z-index:auto;width:100%;margin:0;transform:none}
 .portrait img{display:block;width:100%;height:auto;max-height:none;object-fit:contain;object-position:center;border-radius:0}
 .intro{position:relative;z-index:auto;order:0;width:100%;max-width:none;margin:0;padding:30px 7% 32px;border:0;background:#23170f}
 .intro .eyebrow{font-size:10px;letter-spacing:.16em;margin-bottom:18px}
 h1{font-size:clamp(52px,15vw,76px);line-height:1.02;margin-bottom:22px}
 .lead{font-size:18px;line-height:1.65}.aside{font-size:15px;margin-top:20px}
 .socials{gap:24px;margin-top:24px}.socials a{padding:8px 0;min-height:44px}
 .social-note{font-size:12px}.lily-extras{margin-top:24px}
 .small-links{gap:10px 20px}.small-links button{padding:10px 0;min-height:44px}
 .lily-reply{min-height:3.2em;margin-bottom:0}
 .contact{grid-template-columns:1fr;gap:24px;padding:36px 7%}
 footer{flex-direction:column;gap:6px;padding:22px 7%}
 dialog{max-height:85svh;overflow:auto;padding:36px 26px}
}
