/* Curated styling and interaction; no photographic exports use these styles. */
.preview-banner{display:flex;justify-content:center;align-items:center;gap:22px;flex-wrap:wrap}.preview-banner button{border:1px solid #345b3d;background:transparent;border-radius:30px;padding:8px 14px;font-size:11px;color:#24382b}.preview-banner button:hover{background:#edf4e5}
body[data-palette=chosen] .portrait-frame{background:var(--soft);border-color:var(--line)}body[data-palette=chosen] .date-stamp{background:var(--ink);color:var(--paper);border-color:var(--line)}body[data-palette=chosen] .art-orbit{border-color:var(--line)}body[data-palette=chosen] .art-note{color:var(--accent)}body[data-palette=chosen] .button{background:var(--ink);color:var(--paper);border-color:var(--ink)}body[data-palette=chosen] .button:hover{background:var(--accent);border-color:var(--accent)}body[data-palette=chosen] .button.secondary{background:transparent;color:var(--ink);border-color:var(--line)}body[data-template] .footer img{filter:none}body.dark-palette .footer img{filter:brightness(0) invert(.94)}
body[data-font=editorial] h1,body[data-font=editorial] h2,body[data-font=editorial] h3,body[data-font=editorial] .hero h1,body[data-font=literary] h1,body[data-font=literary] h2,body[data-font=literary] h3,body[data-font=literary] .hero h1{font-family:Newsreader,Georgia,serif;font-weight:400;letter-spacing:-.035em}body[data-font=modern] h1,body[data-font=modern] h2,body[data-font=modern] h3,body[data-font=modern] .hero h1{font-family:DM,sans-serif;font-weight:700;letter-spacing:-.055em}body[data-font=literary] .intro{font-family:Newsreader,Georgia,serif;font-size:21px;line-height:1.6}
body[data-frame=arch] .portrait-frame,body[data-frame=arch] .portrait-frame>img,body[data-frame=arch] .hero-placeholder{border-radius:220px 220px 3px 3px}body[data-frame=clean] .portrait-frame,body[data-frame=clean] .portrait-frame>img,body[data-frame=clean] .hero-placeholder{border-radius:0}body[data-frame=soft] .portrait-frame,body[data-frame=soft] .portrait-frame>img,body[data-frame=soft] .hero-placeholder{border-radius:28px}
.button,.text-button,.masthead nav button,.photo-picker button,.person,.home-photos img,.photo-gallery img{transition:transform .22s ease,background-color .22s ease,border-color .22s ease,box-shadow .22s ease}.button:hover{transform:translateY(-2px);box-shadow:0 8px 20px #101b1617}.button:active{transform:translateY(0) scale(.98)}.photo-picker button:hover{transform:translateY(-3px)}.home-photos img:hover,.photo-gallery img:hover{transform:scale(1.015);box-shadow:0 15px 35px #101b1617}.person:hover{transform:translateY(-4px);box-shadow:0 14px 40px #101b1612}.masthead nav button{position:relative}.masthead nav button:hover{transform:translateY(-2px)}.pane-enter{animation:pane-in .44s cubic-bezier(.16,1,.3,1) both}.reveal{opacity:0;translate:0 20px;transition:opacity .75s ease,translate .75s cubic-bezier(.16,1,.3,1)}.reveal.is-visible{opacity:1;translate:0 0}.hero-copy{animation:hero-in .8s cubic-bezier(.16,1,.3,1) both}.hero-art{animation:hero-in 1s .08s cubic-bezier(.16,1,.3,1) both;transition:translate .25s ease}.date-stamp{animation:date-float 7s ease-in-out infinite}.wish{animation:pane-in .5s ease both}.wish:nth-child(2){animation-delay:.06s}.wish:nth-child(3){animation-delay:.12s}.puzzle-tile{touch-action:none;cursor:grab;user-select:none;-webkit-user-select:none}.puzzle-tile:active{cursor:grabbing}.puzzle-board.dragging{overflow:visible}.puzzle-tile.drag-source{opacity:.3}.puzzle-tile.drop-target{outline:4px solid var(--accent);outline-offset:-4px;z-index:1}.puzzle-drag-ghost{position:fixed;pointer-events:none;z-index:10000;border-radius:6px;box-shadow:0 20px 60px #0005;outline:3px solid var(--paper);opacity:.95;rotate:2deg;background-repeat:no-repeat}.puzzle-complete{animation:puzzle-win .7s ease}.puzzle-complete+.puzzle-side .puzzle-result{animation:hero-in .7s ease both}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
@keyframes pane-in{from{opacity:0;translate:0 9px}to{opacity:1;translate:0 0}}@keyframes hero-in{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes date-float{50%{translate:0 -5px}}@keyframes puzzle-win{40%{scale:1.015;box-shadow:0 0 0 7px var(--soft)}100%{scale:1}}
.design-dialog{max-width:760px;padding:32px}.design-dialog h2{font-size:43px;margin-bottom:12px}.design-dialog .intro{font-size:13px;max-width:none}.design-dialog form{display:grid;gap:22px}.design-dialog label{display:block;font-size:12px;font-weight:600}.design-dialog select,.design-dialog textarea,.design-dialog input[type=text]{width:100%;margin-top:8px;padding:12px;background:var(--card);border:1px solid var(--line);border-radius:6px;color:var(--ink)}.design-dialog .design-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.palette-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.palette-choice{background:var(--card);color:var(--ink);font-size:10px;padding:14px 8px;border:1px solid var(--line);border-radius:9px;text-align:left}.palette-choice[aria-pressed=true]{outline:2px solid var(--accent);outline-offset:1px}.palette-dots{display:flex;margin-bottom:10px;padding-left:4px}.palette-dots i{width:22px;height:22px;border:1px solid #8886;border-radius:50%;margin-left:-4px}.design-check{display:flex!important;align-items:start;gap:10px;line-height:1.6;padding:16px;border:1px solid var(--line);border-radius:7px}.design-check input{margin-top:4px;accent-color:var(--accent)}.design-dialog .form-note{font-weight:400}.design-actions{display:flex;flex-wrap:wrap;gap:12px}.design-summary{font-size:12px;padding:15px;border-radius:6px;background:var(--soft);line-height:1.7}#selection-link{font-size:10px}.design-dialog::backdrop{animation:pane-in .2s ease}.design-dialog[open]{animation:hero-in .3s ease}
@media(max-width:700px){.preview-banner{gap:8px;padding:9px 15px;font-size:9px}.preview-banner button{font-size:10px;padding:7px 12px}.design-dialog{padding:22px}.design-dialog h2{font-size:36px}.design-dialog .design-grid{grid-template-columns:1fr}.palette-grid{grid-template-columns:repeat(2,1fr)}.date-stamp{animation:none}.hero-art{transition:none}}
body[data-motion=off] *,body[data-motion=off] *:before,body[data-motion=off] *:after{animation:none!important;transition:none!important}body[data-motion=off] .reveal{opacity:1;translate:none}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.reveal{opacity:1;translate:none}}

body[data-font=modern] .event-identity,body[data-font=modern] .portrait-frame figcaption,body[data-font=modern] .date-stamp span:first-child,body[data-font=modern] .art-note,body[data-font=modern] .footer p,body[data-font=modern] .person-copy h3,body[data-font=modern] .puzzle-result,body[data-font=modern] .puzzle-stats strong{font-family:DM,sans-serif}
.design-dialog .dialog-head{position:sticky;top:-32px;z-index:2;background:var(--paper);padding:8px 0;border-bottom:1px solid var(--line)}.design-dialog .dialog-head .text-button{min-width:42px;min-height:42px}
@media(max-width:700px){.design-dialog .dialog-head{top:-22px}}
