:root{color-scheme:light;--paper:#f4ecdb;--ink:#30291f;--red:#8e352d}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:17px/1.6 system-ui,sans-serif}a{color:inherit}header,footer{max-width:1240px;margin:auto;padding:28px 32px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #cbbfa6;gap:20px}.brand{font:bold 30px Georgia,serif;text-decoration:none}.brand small{display:block;font:10px/2 system-ui;letter-spacing:3px}main{max-width:1180px;margin:auto;padding:0 24px}.intro{max-width:860px;padding:64px 0 38px}.eyebrow{font-size:11px;font-weight:800;letter-spacing:2px;color:var(--red)}h1{font:clamp(36px,5.5vw,70px)/1.08 Georgia,serif;letter-spacing:-2px;margin:20px 0}h1 em,h2 em{color:var(--red);font-weight:normal}h1 em{display:block}h2{font:38px/1.15 Georgia,serif}button{background:var(--red);color:white;border:0;border-radius:4px;padding:14px 20px;font:inherit;cursor:pointer;margin:8px 0;min-height:44px}button:disabled{opacity:.5}input,select{display:block;width:100%;padding:12px;background:#fffaf0;border:1px solid #b4a58e;border-radius:4px;font:inherit}label{display:block;margin:12px 0;font-size:15px;font-weight:600}.consent{display:flex;gap:12px;align-items:flex-start;font-weight:400}.consent input{width:20px;flex:none;margin-top:5px}.wall{position:relative;background:#261e19;border:8px solid #fff8e8;box-shadow:0 8px 25px #38230f20}.backdrop img{display:block;width:100%;height:auto}.memory{position:absolute;display:none;border:0.6px solid #fff8e8;box-shadow:2px 3px 5px #0008}.memory img{width:100%;height:100%;object-fit:fill;display:block}.wall-label{font-size:12px;letter-spacing:2px;display:flex;justify-content:space-between;margin-bottom:40px}.wall-label span{letter-spacing:0}.panel{border:1px solid #ccbea6;padding:30px;background:#eee2cd;margin:28px 0;border-radius:5px}.share{display:grid;grid-template-columns:1fr 1fr;gap:50px;margin-top:50px}.notice{padding:18px;background:#fff8e8;border-left:4px solid var(--red)}.fine{font-size:13px}.review-photo{max-width:100%;max-height:300px;display:block}.fields{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}fieldset{border:1px solid #cbbfa6;margin:20px 0}.placement-preview{width:100%;display:block}.preview-message{color:var(--red)}footer{font-size:13px;margin-top:60px;border-top:1px solid #cbbfa6;border-bottom:0}dialog{border:0;background:#201b16;color:white;max-width:95vw;max-height:95vh;padding:16px}dialog::backdrop{background:#000d}dialog img{display:block;max-width:85vw;max-height:72vh;object-fit:contain}dialog button{display:block;margin-left:auto}:focus-visible{outline:3px solid #ba6b12;outline-offset:4px}@media(max-width:650px){header,footer{padding:20px}.brand{font-size:24px}.intro{padding-top:32px}.share{grid-template-columns:1fr;gap:0}.panel{padding:20px}.fields{grid-template-columns:repeat(2,1fr)}.wall{border-width:4px}.wall-label{font-size:10px}h1{letter-spacing:-1px}}@media(prefers-reduced-motion:no-preference){button,a{transition:filter .15s}button:hover,a:hover{filter:brightness(1.1)}}
[hidden]{display:none!important}.selection-strip{display:flex;gap:14px;overflow-x:auto;padding:8px 4px 18px;scroll-snap-type:x proximity}.selection-strip button{flex:0 0 150px;padding:5px;background:#fff8e8;color:var(--ink);border:3px solid transparent;scroll-snap-align:start}.selection-strip img{display:block;width:100%;height:110px;object-fit:contain}.selection-strip button[aria-pressed=true]{border-color:#176cb5}.active-photo{position:absolute;z-index:10;display:block;margin:0;padding:0;min-height:0;border:3px solid #167bce;border-radius:0;overflow:hidden;touch-action:none;background:transparent;cursor:move;box-shadow:0 3px 12px #0009;transition:none}.active-photo img{position:absolute;max-width:none;pointer-events:none}.active-photo[data-mode="1"]{border-color:#168337;cursor:nwse-resize}.active-photo[data-mode="2"]{border-color:#a23cd5;cursor:ew-resize}.active-photo:hover{filter:none}#studio-wall .memory{pointer-events:none}#studio-wall .backdrop{pointer-events:none}.memory{z-index:1}#placement-message{min-height:2em}
/* Keep the question together on desktop, with a quieter lead-in. */
.intro{max-width:none}.intro h1{display:flex;align-items:baseline;gap:.24em;white-space:nowrap;font-size:clamp(32px,5.4vw,64px)}.intro h1 span{font-size:.52em;letter-spacing:-.02em}.intro h1 em{display:inline;font-style:italic}.intro .intro-invitation{font:italic clamp(20px,2.5vw,28px)/1.3 Georgia,serif;color:var(--red);margin:12px 0}
@media(max-width:650px){.intro h1{white-space:normal;flex-wrap:wrap;gap:4px 10px;font-size:clamp(32px,8vw,50px)}.intro h1 em{letter-spacing:-1px}}
/* Keep checkbox marks attached to their labels, including admin settings. */
input[type=checkbox]{display:inline-block;width:20px;height:20px;padding:0;vertical-align:middle;accent-color:var(--red)}
.email-password-removal{background:#fff8e8;padding:12px 16px}.email-password-removal legend{font-weight:700}.email-password-removal p{margin-bottom:0}

.wall-phrase{position:absolute;z-index:30;pointer-events:none;box-sizing:border-box;width:max-content;max-width:100%;overflow:hidden;overflow-wrap:anywhere;padding:8px 12px;border-radius:5px;background:#fff8e8;color:#30291f;box-shadow:0 3px 12px #0006;font:15px/1.4 system-ui,sans-serif;text-align:left}

/* Compact, image-only moderation rows; approved thumbnails are two thirds size. */
.photo-selections{gap:6px;padding:4px 2px;flex-wrap:wrap;overflow:visible}
.photo-selections .photo-choice{flex:0 0 150px;padding:2px;margin:2px 0;border-width:2px}
.approved-selections .photo-choice{flex-basis:100px}
.approved-selections img{height:74px}
/* Bordered photos stay bounded on desktop and use 70% width on small screens. */
#viewer{width:fit-content;max-width:90vw;max-height:85vh;max-height:85dvh;padding:0;border:6px solid #fff8e8;touch-action:auto}
#enlarged-wall{width:auto;display:flex;flex-direction:column;max-height:calc(85vh - 12px);max-height:calc(85dvh - 12px)}
#enlarged-wall>img{min-height:0;flex-shrink:1;display:block;width:auto;height:auto;max-width:min(900px,calc(90vw - 12px));max-height:calc(85vh - 12px);max-height:calc(85dvh - 12px);object-fit:contain}
@media(max-width:650px){#viewer{width:70vw;max-width:70vw}#enlarged-wall>img{width:100%;max-width:100%}}
.walls a{-webkit-touch-callout:none}

#enlarged-wall>.viewer-phrase{flex-shrink:0;width:0;min-width:100%;max-height:30vh;overflow:auto;overflow-wrap:anywhere;white-space:pre-wrap;margin:0;padding:12px 16px;background:#fff8e8;color:#30291f;text-align:center;font:italic 18px/1.5 Georgia,serif}

/* Shared venue identity on the wall and administration pages. */
.venue-header{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:24px}
.venue-header .header-logo{display:block;width:25vw;max-width:400px;height:auto;object-fit:contain;justify-self:center}
.venue-header>a:last-child{justify-self:end}
.venue-header .brand small{font-size:14px;line-height:1.6;letter-spacing:2px;margin-top:8px}
@media(max-width:650px){
 .venue-header{grid-template-columns:1fr;text-align:center;gap:16px}
 .venue-header .header-logo{grid-row:1;width:32vw}
 .venue-header>a:last-child{justify-self:center}
}

/* Geometry in unzoomed screen units; JS cancels the opening pinch scale once. */
#viewer.viewport-fitted{position:fixed;inset:auto;margin:0;width:fit-content;max-width:var(--viewer-limit);max-height:calc(var(--viewer-height)*.85);transform-origin:center center}
#viewer.viewport-fitted #enlarged-wall{max-height:calc(var(--viewer-height)*.85 - 12px)}
#viewer.viewport-fitted #enlarged-wall>img{width:auto;max-width:min(900px,calc(var(--viewer-limit) - 12px));max-height:calc(var(--viewer-height)*.85 - 12px)}
#viewer.viewport-fitted .viewer-phrase{max-height:calc(var(--viewer-height)*.3)}
@media(max-width:650px){#viewer.viewport-fitted{width:var(--viewer-limit)}#viewer.viewport-fitted #enlarged-wall>img{width:100%;max-width:100%}}
