:root{--paper-width:816px;--paper-height:1056px;--paper-width-print:8.5in;--paper-height-print:11in;--handwriting-step:26.83px}
.letter-page-shell{position:relative;width:var(--paper-width);height:var(--paper-height);flex:0 0 auto;transform-origin:top center}
.letter-page{position:absolute;inset:0;width:var(--paper-width);height:var(--paper-height);overflow:hidden;background:#fff;box-shadow:0 8px 28px rgba(20,24,19,.18);color:var(--page-ink,#191c18);font-family:Arial,sans-serif;-webkit-print-color-adjust:exact;print-color-adjust:exact}
.letter-background{position:absolute;inset:0;pointer-events:none;opacity:var(--background-opacity,.12)}
.letter-page.border-top{border-top:10px solid var(--accent)}.letter-page.border-bottom{border-bottom:10px solid var(--accent)}.letter-page.border-full{border:6px solid var(--accent)}.letter-page.border-double{border:4px double var(--accent)}
.letter-page.border-corners::before,.letter-page.border-corners::after{position:absolute;width:92px;height:92px;border-color:var(--accent);content:""}.letter-page.border-corners::before{top:20px;left:20px;border-top:5px solid;border-left:5px solid}.letter-page.border-corners::after{right:20px;bottom:20px;border-right:5px solid;border-bottom:5px solid}
.letter-inner{position:absolute;inset:0;display:grid;grid-template-rows:auto 1fr auto;padding:var(--page-margin)}
.letter-header{position:relative;display:grid;min-height:118px;padding:8px 0 14px;border-bottom:2px solid var(--accent);gap:14px;grid-template-columns:auto 1fr;align-items:center}.letter-header.center{display:flex;flex-direction:column;text-align:center}.letter-header.right{display:flex;flex-direction:column;align-items:flex-end;text-align:right}.letter-header.text-left{grid-template-columns:1fr auto}.letter-header.split{grid-template-columns:auto minmax(0,1fr) minmax(0,1fr)}.letter-header.split:not(.has-logo){grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.letter-header.split>.letter-contact{margin:0;align-self:center;justify-content:flex-end;text-align:right}.letter-header.stacked{display:flex;flex-direction:column;align-items:flex-start}
.letter-logo{display:block;max-width:120px;max-height:100px;object-fit:contain}.letter-brand{min-width:0}.letter-name{margin:0;color:var(--accent);font-family:Georgia,serif;font-size:31px;font-weight:800;line-height:1.02;overflow-wrap:anywhere}.letter-tagline{margin:5px 0 0;font-size:13px;font-weight:800;letter-spacing:.05em;text-transform:uppercase}.letter-contact{display:flex;margin-top:11px;flex-wrap:wrap;gap:5px 14px;color:var(--page-ink);font-size:11px;line-height:1.35}.letter-header.center .letter-contact{justify-content:center}.letter-header.right .letter-contact{justify-content:flex-end}
.letter-writing{position:relative;min-height:0;padding-top:25px;color:var(--page-ink);font-family:var(--writing-font);font-size:var(--writing-size);line-height:var(--writing-leading);text-align:var(--writing-align);white-space:pre-wrap;overflow-wrap:anywhere}.letter-writing p{margin:0 0 var(--paragraph-space);text-indent:var(--writing-indent)}
.letter-writing.lines-ruled{background-image:repeating-linear-gradient(to bottom,transparent 0 calc(var(--handwriting-step) - 1px),rgba(40,87,216,.26) calc(var(--handwriting-step) - 1px) var(--handwriting-step));background-position:0 25px}.letter-writing.lines-double{background-image:repeating-linear-gradient(to bottom,transparent 0 12.9px,rgba(40,87,216,.14) 12.9px 13.4px,transparent 13.4px 25.83px,rgba(40,87,216,.32) 25.83px var(--handwriting-step));background-position:0 25px}.letter-writing.lines-dotted{background-image:radial-gradient(circle,rgba(40,87,216,.38) 1px,transparent 1.4px);background-size:8px var(--handwriting-step);background-position:0 20px}.letter-writing.lines-single::before,.letter-writing.lines-formal::before{display:block;height:1px;margin-bottom:21px;background:rgba(40,87,216,.38);content:""}.letter-writing.lines-formal::after{position:absolute;right:0;bottom:18px;left:0;border-bottom:3px double rgba(40,87,216,.42);content:""}
.letter-footer{display:flex;min-height:30px;align-items:end;padding-top:8px;border-top:1px solid rgba(40,87,216,.42);justify-content:center;color:var(--page-ink);font-size:10px}.letter-footer.left{justify-content:flex-start}.letter-footer.right{justify-content:flex-end}.letter-footer.split{justify-content:flex-start}
.safe-area{position:absolute;inset:48px;border:1px dashed rgba(200,54,36,.75);pointer-events:none}.safe-area::before{position:absolute;top:-18px;right:0;padding:2px 4px;background:#fff;color:#a53328;content:"print-safe area";font:10px Arial}
.pattern-grid{background-color:var(--background-color);background-image:linear-gradient(var(--pattern-color) 1px,transparent 1px),linear-gradient(90deg,var(--pattern-color) 1px,transparent 1px);background-size:24px 24px}.pattern-dots{background-color:var(--background-color);background-image:radial-gradient(var(--pattern-color) 1.3px,transparent 1.5px);background-size:calc(11px * var(--density)) calc(11px * var(--density))}.pattern-diagonal{background-color:var(--background-color);background-image:repeating-linear-gradient(135deg,transparent 0 calc(11px * var(--density)),var(--pattern-color) calc(11px * var(--density)) calc(11px * var(--density) + 1px))}.pattern-paper{background-color:var(--background-color);background-image:radial-gradient(circle at 20% 30%,var(--pattern-color) 0 .6px,transparent .8px),radial-gradient(circle at 80% 60%,var(--pattern-color) 0 .5px,transparent .7px);background-size:17px 21px,23px 19px}.pattern-waves{background-color:var(--background-color);background-image:radial-gradient(ellipse at 50% 110%,transparent 64%,var(--pattern-color) 65% 66%,transparent 67%);background-size:calc(72px * var(--density)) calc(35px * var(--density))}.pattern-geometric{background-color:var(--background-color);background-image:linear-gradient(30deg,var(--pattern-color) 12%,transparent 12.5% 87%,var(--pattern-color) 87.5%),linear-gradient(150deg,var(--pattern-color) 12%,transparent 12.5% 87%,var(--pattern-color) 87.5%);background-size:calc(42px * var(--density)) calc(72px * var(--density))}.pattern-botanical{background-color:var(--background-color);background-image:radial-gradient(ellipse at 0 0,var(--pattern-color) 0 9%,transparent 9.5%),radial-gradient(ellipse at 100% 100%,var(--pattern-color) 0 10%,transparent 10.5%)}.pattern-gradient{background:linear-gradient(calc(120deg + var(--seed-angle)),var(--background-color),transparent 48%,var(--pattern-color))}.pattern-curves{background-color:var(--background-color);background-image:radial-gradient(circle at 0 0,transparent 0 92px,var(--pattern-color) 93px 95px,transparent 96px),radial-gradient(circle at 100% 100%,transparent 0 130px,var(--pattern-color) 131px 133px,transparent 134px)}.pattern-solid{background:var(--background-color)}
