/* The desktop's little side rooms: Dispatches, Preferences, and Postcards. */
.dispatch-window { width: 400px; height: 485px; left: 17%; top: 41%; }
.preferences-window { width: 414px; height: 570px; left: 42%; top: 10%; }
.postcard-window { width: 450px; height: 570px; left: 31%; top: 16%; }
.dispatch-window .window-content, .preferences-window .window-content, .postcard-window .window-content { background: var(--paper, #fffbed); color: var(--ink, #39333e); }
.dispatch-window .window-title, .preferences-window .window-title, .postcard-window .window-title { text-align: right; }
.dispatch-window button:focus-visible, .preferences-window button:focus-visible, .postcard-window button:focus-visible, .preferences-window input:focus-visible, .postcard-window textarea:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }
.dispatch-window [hidden], .preferences-window [hidden], .postcard-window [hidden] { display: none !important; }

.dispatch-content { scrollbar-width: thin; }
.dispatch-tabs { position: sticky; top: 0; z-index: 1; display: flex; background: var(--paper, #fffbed); border-bottom: 1px solid var(--line, #493c48); }
.dispatch-tabs button { position: relative; display: flex; align-items: center; gap: 14px; border: 0; border-right: 1px solid var(--line, #493c48); background: transparent; padding: 12px 17px; color: inherit; font: 10px var(--mono, monospace); cursor: pointer; }
.dispatch-tabs button:last-child { border-right: 0; }
.dispatch-tabs button span { font-size: 8px; opacity: .55; }
.dispatch-tabs button[aria-selected="true"] { background: #e4dfd0; }
.dispatch-tabs button[aria-selected="true"]::after { content: ''; height: 2px; position: absolute; inset: auto 10px 4px; background: currentColor; }
.dispatch-masthead { display: grid; grid-template-columns: 1fr auto; gap: 0 15px; align-items: center; margin: 0 16px; padding: 17px 0 13px; border-bottom: 3px double var(--line, #493c48); }
.dispatch-masthead > div > span { font: 8px var(--mono, monospace); letter-spacing: 1.5px; }
.dispatch-masthead h3 { margin: -3px 0 0; font: 56px/.98 var(--serif, Georgia, serif); letter-spacing: -2.5px; }
.dispatch-masthead .gazette-sun { font: 65px/1 Georgia, serif; transform: rotate(-12deg); }
.dispatch-masthead p { grid-column: 1 / -1; margin: 12px 0 0; font: 7px/1.5 var(--mono, monospace); letter-spacing: .7px; }
.dispatch-list { padding: 0 16px 4px; }
.dispatch-card { display: grid; grid-template-columns: 110px minmax(0, 1fr); gap: 13px; width: 100%; padding: 15px 0; border: 0; border-bottom: 1px solid #b6b0a7; background: none; color: inherit; text-align: left; cursor: pointer; }
.dispatch-card:last-child { border-bottom: 0; }
.dispatch-thumbnail { display: block; overflow: hidden; border: 1px solid var(--line, #493c48); align-self: start; }
.dispatch-thumbnail svg { display: block; width: 100%; height: auto; transition: transform 220ms ease; }
.dispatch-card:hover .dispatch-thumbnail svg { transform: scale(1.06); }
.dispatch-card-copy { display: flex; flex-direction: column; min-width: 0; }
.dispatch-card-kicker { display: flex; justify-content: space-between; gap: 8px; margin: 0 0 5px; font: 6px/1.4 var(--mono, monospace); letter-spacing: .5px; }
.dispatch-card-kicker > span { opacity: .55; }
.dispatch-card-copy > strong { font: 21px/1.03 var(--serif, Georgia, serif); letter-spacing: -.5px; }
.dispatch-card-deck { margin-top: 7px; font: 9px/1.5 var(--ui, Arial, sans-serif); }
.dispatch-read { display: flex; justify-content: space-between; margin-top: 8px; font: 6px/1.3 var(--mono, monospace); letter-spacing: .7px; }
.dispatch-read > span { font-size: 12px; line-height: .8; }
.dispatch-reading { padding: 14px 19px 22px; }
.dispatch-back { margin: 0 0 14px; padding: 3px 0; border: 0; background: none; color: inherit; font: 9px var(--mono, monospace); cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
.dispatch-reading-art { border: 1px solid var(--line, #493c48); }
.dispatch-reading-art svg { display: block; width: 100%; height: 156px; object-fit: cover; }
.dispatch-reading-kicker { margin: 18px 0 8px; font: 7px var(--mono, monospace); letter-spacing: 1px; }
.dispatch-reading h3 { margin: 0 0 14px; max-width: 280px; font: 38px/1 var(--serif, Georgia, serif); letter-spacing: -1px; }
.dispatch-reading-copy p { margin: 0 0 13px; font: 12px/1.75 var(--ui, Arial, sans-serif); }
.dispatch-reading-actions { display: flex; flex-wrap: wrap; gap: 7px; padding-top: 3px; }
.dispatch-reading-actions .retro-button { flex: 1 1 auto; min-height: 32px; padding: 6px 9px; font-size: 9px; }

.preferences-content { padding: 18px 19px 15px; }
.preferences-intro { display: flex; gap: 13px; align-items: center; margin: 0 0 17px; }
.preferences-icon { display: grid; place-items: center; flex: 0 0 42px; height: 42px; border: 1px solid var(--line, #493c48); background: #e0d8c9; font: 38px/1 Georgia, serif; box-shadow: inset 1px 1px #fffbed, inset -1px -1px #a8a39c; }
.preferences-intro h3 { margin: 0; font: 27px/.95 var(--serif, Georgia, serif); letter-spacing: -.7px; }
.preferences-intro p { margin: 7px 0 0; font: 9px/1.5 var(--ui, Arial, sans-serif); }
.preferences-group { min-width: 0; margin: 0 0 15px; padding: 12px 11px 13px; border: 1px solid #a49d93; }
.preferences-group legend { padding: 0 6px; font: 7px var(--mono, monospace); letter-spacing: .8px; }
.wallpaper-options { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; }
.wallpaper-options label { position: relative; display: flex; flex-direction: column; align-items: center; gap: 7px; font: 8px var(--mono, monospace); cursor: pointer; }
.wallpaper-options input { position: absolute; inset: 0 0 auto; width: 100%; height: 43px; margin: 0; opacity: 0; cursor: pointer; }
.wallpaper-swatch { display: block; width: 100%; height: 39px; border: 1px solid var(--line, #493c48); box-shadow: inset 2px 2px #ffffff70; }
.swatch-rose { background: repeating-linear-gradient(0deg, #d7b8be 0 2px, #d2adb6 2px 3px); }
.swatch-lagoon { background: repeating-linear-gradient(0deg, #b6c9c2 0 2px, #aec2bc 2px 3px); }
.swatch-dusk { background: repeating-linear-gradient(0deg, #afa3bc 0 2px, #a498b4 2px 3px); }
.swatch-paper { background: repeating-linear-gradient(0deg, #e8dfc7 0 2px, #e1d8c0 2px 3px); }
.swatch-ocean { background: repeating-linear-gradient(0deg, #a9bdce 0 2px, #9db2c5 2px 3px); }
.wallpaper-options input:checked + .wallpaper-swatch { outline: 2px solid var(--ink, #39333e); outline-offset: 2px; }
.wallpaper-options input:focus-visible + .wallpaper-swatch { outline: 2px dashed var(--ink, #39333e); outline-offset: 3px; }
.layout-options { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.layout-options .retro-button { display: flex; align-items: center; gap: 9px; padding: 5px 9px; text-align: left; font-size: 9px; }
.layout-options .retro-button > span { font-size: 18px; }
.preference-toggle { display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 9px 0; border-bottom: 1px solid #c9c2b7; cursor: pointer; }
.preference-toggle:first-of-type { padding-top: 0; }
.preference-toggle:last-child { padding-bottom: 0; border: 0; }
.preference-toggle > span { display: flex; flex-direction: column; gap: 5px; }
.preference-toggle strong { font: 11px var(--ui, Arial, sans-serif); }
.preference-toggle small { font: 8px/1.5 var(--ui, Arial, sans-serif); }
.preference-toggle input { appearance: auto; width: 15px; height: 15px; margin: 0 1px; accent-color: #6b615e; }
.preferences-about { display: flex; align-items: center; gap: 13px; padding: 0 3px 0; }
.preferences-about > span { font: 48px/1 Georgia, serif; }
.preferences-about p { margin: 0; font: 8px/1.65 var(--mono, monospace); }
.preferences-about strong { font-size: 10px; }
.preferences-about a { color: inherit; text-underline-offset: 2px; }

.postcard-content { padding: 15px 17px 12px; }
.postcard-preview { --postcard-sky: #e9c2b9; --postcard-sea: #a5bcc0; --postcard-sun: #f6dfb0; --postcard-ink: #584653; --postcard-palm: #708285; position: relative; aspect-ratio: 1024 / 640; overflow: hidden; border: 1px solid var(--line, #493c48); background: var(--postcard-sky); color: var(--postcard-ink); box-shadow: 2px 3px #5d50521a; }
.postcard-preview[data-postcard-theme="lagoon"] { --postcard-sky: #c6dfd0; --postcard-sea: #87afb1; --postcard-sun: #f3e7bd; --postcard-ink: #36595a; --postcard-palm: #4e7772; }
.postcard-preview[data-postcard-theme="night"] { --postcard-sky: #8e83ad; --postcard-sea: #575c80; --postcard-sun: #e6ceaa; --postcard-ink: #fff0d7; --postcard-palm: #454664; }
.postcard-preview-sun { position: absolute; width: 19.4%; aspect-ratio: 1; border-radius: 50%; top: 20.3%; left: 66.1%; background: var(--postcard-sun); }
.postcard-preview-sea { position: absolute; inset: 66.5% 0 0; background: var(--postcard-sea); }
.postcard-preview-sea::after { content: ''; position: absolute; inset: 0; opacity: .42; background: repeating-linear-gradient(0deg, transparent 0 13px, var(--postcard-sun) 13px 14px, transparent 14px 24px); }
.postcard-preview-palm { position: absolute; width: 29%; height: 73%; right: 1%; bottom: -1%; fill: none; stroke: var(--postcard-palm); stroke-width: 4; stroke-linecap: round; }
.postcard-preview-caption { position: absolute; left: 6%; top: 8%; max-width: 77%; font: 6px/1.3 var(--mono, monospace); letter-spacing: .5px; }
.postcard-preview-stamp { position: absolute; right: 4.4%; top: 5.5%; display: flex; align-items: center; justify-content: center; flex-direction: column; gap: 2px; width: 8%; height: 15.6%; border: 1px dashed currentColor; font: 26px/.8 Georgia, serif; }
.postcard-preview-stamp small { font: 4px/1 var(--mono, monospace); letter-spacing: .5px; }
.postcard-preview #postcard-preview-message { position: absolute; left: 6%; top: 22%; margin: 0; width: 57%; max-height: 62%; overflow: hidden; white-space: pre-wrap; overflow-wrap: anywhere; font: 22px/1.25 var(--serif, Georgia, serif); }
.postcard-preview-footer { position: absolute; left: 6%; bottom: 5%; font: 5.5px/1.3 var(--mono, monospace); letter-spacing: .4px; }
.postcard-editor { margin-top: 15px; }
.postcard-editor label { display: flex; justify-content: space-between; gap: 10px; margin-bottom: 7px; font: 7px var(--mono, monospace); letter-spacing: .7px; }
.postcard-editor label > span { opacity: .7; font-size: 7px; letter-spacing: 0; }
.postcard-editor textarea { box-sizing: border-box; display: block; resize: vertical; min-height: 88px; max-height: 160px; width: 100%; padding: 10px; border: 1px solid var(--line, #493c48); border-radius: 0; background: #fffdf3; color: var(--ink, #39333e); box-shadow: inset 1px 1px #afa79a; font: 11px/1.5 var(--mono, monospace); }
.postcard-themes { display: flex; align-items: center; gap: 4px; margin: 12px 0; }
.postcard-themes > span { flex: 1 1 auto; font: 7px var(--mono, monospace); letter-spacing: .6px; }
.postcard-themes button { display: flex; align-items: center; gap: 5px; padding: 5px 6px; border: 1px solid transparent; background: transparent; color: inherit; font: 8px var(--mono, monospace); cursor: pointer; }
.postcard-themes button[aria-pressed="true"] { border-color: #8e8582; background: #ded8ca; box-shadow: inset 1px 1px #fffbed; }
.postcard-color { display: block; width: 11px; height: 11px; border: 1px solid var(--line, #493c48); }
.sunset-color { background: linear-gradient(0deg, #a5bcc0 0 40%, #e9c2b9 40%); }
.lagoon-color { background: linear-gradient(0deg, #87afb1 0 40%, #c6dfd0 40%); }
.night-color { background: linear-gradient(0deg, #575c80 0 40%, #8e83ad 40%); }
.postcard-actions { display: grid; grid-template-columns: 1fr 1.3fr; gap: 9px; }
.postcard-actions .retro-button { display: flex; align-items: center; justify-content: space-between; gap: 9px; padding: 8px 10px; font-size: 9px; }
.postcard-actions .retro-button span { font-size: 14px; line-height: 1; }
.postcard-actions .retro-button:disabled { opacity: .65; cursor: progress; }
.postcard-privacy { margin: 10px 0 0; font: 7px/1.5 var(--mono, monospace); text-align: center; }

body[data-motion="reduced"] .dispatch-thumbnail svg { transition: none; }
body[data-motion="reduced"] .dispatch-card:hover .dispatch-thumbnail svg { transform: none; }
body[data-contrast="high"] .dispatch-card { border-color: var(--ink, #39333e); }
body[data-contrast="high"] .dispatch-card-kicker > span, body[data-contrast="high"] .dispatch-tabs button span, body[data-contrast="high"] .postcard-editor label > span { opacity: 1; }
@media (prefers-reduced-motion: reduce) { .dispatch-thumbnail svg { transition: none; } .dispatch-card:hover .dispatch-thumbnail svg { transform: none; } }
@media (max-width: 700px) {
  .dispatch-window { height: 530px; }
  .preferences-window, .postcard-window { height: 590px; }
  .dispatch-masthead { padding-top: 14px; }
  .dispatch-card { grid-template-columns: 100px minmax(0, 1fr); gap: 11px; }
  .dispatch-card-copy > strong { font-size: 21px; }
  .dispatch-card-deck { font-size: 10px; }
  .preferences-content { padding: 17px 15px; }
  .postcard-content { padding: 14px; }
  .wallpaper-options { gap: 8px; }
  .postcard-themes button { padding-left: 4px; padding-right: 4px; font-size: 7px; }
}
