.wall-intro{padding-block:65px 44px;display:grid;grid-template-columns:1fr auto;gap:45px;align-items:end}.wall-intro h1{font-size:clamp(34px,3.6vw,57px);max-width:840px;line-height:1.5}.wall-subtitle{font:500 24px/1.5 var(--serif);margin-top:12px}.wall-intro-copy{color:var(--muted);font-size:14px;max-width:650px;margin-top:20px}.wall-intro-actions{display:flex;flex-direction:column;gap:12px;min-width:190px}.wall-stage-section{padding-bottom:65px}.wall-stage-top,.wall-stage-bottom{display:flex;justify-content:space-between;align-items:center;gap:20px;font-size:11px;color:var(--muted)}.wall-stage-top{margin-bottom:14px}.wall-stage-top>p:first-child{display:flex;gap:8px;align-items:center}.wall-live-dot{width:7px;height:7px;border-radius:50%;background:#b2b5a1}.is-connected .wall-live-dot{background:#3c7043}.wall-stage-bottom{margin-top:15px}.wall-stage-bottom .text-button{flex-shrink:0}.memory-stage{position:relative;aspect-ratio:16/9;background:#eee9d8;border-radius:16px;isolation:isolate;overflow:hidden;box-shadow:0 16px 45px #173f3213}.memory-stage-decoration{position:absolute;inset:0;z-index:-1;background:linear-gradient(135deg,#faf6e7f2,#f0eddce6 50%,#dfe6d7ed),url('assets/v2/valley-panorama.webp') center/cover}.memory-stage:before,.memory-stage:after{content:'';position:absolute;width:35%;height:2px;background:#a7874e4d;transform:rotate(-21deg);top:15%;left:-10%;z-index:0}.memory-stage:after{left:auto;right:-10%;top:auto;bottom:17%}.memory-stage-heading{position:absolute;top:6%;left:6%;z-index:1;max-width:35%;pointer-events:none}.memory-stage-heading>span{font:600 clamp(18px,2.2vw,34px)/1.4 var(--serif);display:block}.memory-stage-heading small{display:block;font:500 13px/1.5 var(--serif);margin-top:8px}.has-memories .memory-stage-heading{top:auto;bottom:4%;left:5%;z-index:130;max-width:65%;background:#faf7ede8;padding:8px 16px;border-radius:2px}.has-memories .memory-stage-heading>span{font-size:clamp(16px,1.6vw,25px)}.has-memories .memory-stage-heading small{display:none}.memory-canvas{position:absolute;inset:0}.memory-tile{position:absolute;left:var(--x);top:var(--y);width:var(--width);height:var(--height);z-index:var(--z);transform:rotate(var(--rotation));transform-origin:center;display:flex;flex-direction:column;padding:1.1% 1.1% 1.6%;border:0;border-radius:2px;background:#fffef8;box-shadow:0 9px 20px #173f322b;transition:box-shadow .2s;overflow:hidden;margin:0}.memory-tile:hover{box-shadow:0 14px 30px #173f3247;z-index:140}.memory-media{width:100%;min-height:0;flex:1;position:relative;overflow:hidden;background:#e0e3d5}.memory-media img,.memory-media video{width:100%;height:100%;object-fit:cover;display:block}.memory-tile figcaption{font:500 clamp(5px,.8vw,12px)/1.4 var(--serif);margin-top:5%;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;max-width:100%;text-align:left}.video-indicator{position:absolute;right:6px;bottom:6px;font:500 9px var(--sans);color:white;background:#15372cdc;border-radius:3px;padding:3px 5px}.wall-empty{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:18px}.empty-photo-frame{width:38%;height:47%;min-height:130px;transform:rotate(-5deg);padding:25px;display:flex;flex-direction:column;justify-content:center;text-align:center;background:var(--paper);box-shadow:0 14px 30px #173f321d;font:500 27px/1.5 var(--serif);border-radius:2px}.empty-photo-frame small{font:400 12px var(--sans);display:block;margin-top:15px;color:var(--muted)}.wall-empty>p{font-size:12px}.wall-empty .text-button{font-size:12px}.demo-label{position:absolute;right:15px;top:14px;z-index:150;background:#173f32ed;color:#fff7dd;padding:5px 10px;border-radius:3px;font-size:10px}.share-memory{padding-block:55px 85px;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1.15fr;gap:85px;align-items:start}.share-copy h2{font-size:40px;line-height:1.6;white-space:pre-line}.share-copy>p{font-size:14px;color:var(--muted);line-height:2;margin-top:24px;max-width:430px}.share-guidance{font-size:12px;color:var(--muted);margin-top:25px;padding-block:21px;border-block:1px solid var(--line);max-width:430px}.share-guidance p+p{margin-top:13px}.share-copy>.text-button{margin-top:22px}.memory-upload{padding-top:5px}.upload-availability{font-size:13px;line-height:1.9;margin-bottom:26px;color:var(--muted);padding-bottom:15px;border-bottom:1px solid var(--line)}.memory-upload label,.host-settings label,.wall-admin label{font-size:12px;display:block;margin-bottom:8px}.memory-upload input:not([type=checkbox]):not([type=file]),.wall-admin input{width:100%;min-height:47px;border:1px solid #b7c3ae;border-radius:8px;padding:11px 13px;background:var(--paper);font:400 14px var(--sans);color:var(--ink);caret-color:var(--forest)}.memory-upload input::placeholder{color:#63735e;opacity:1}.code-entry{display:flex;gap:8px;margin-bottom:23px}.code-entry>button{background:var(--forest);color:#fff8e5;border-radius:8px;padding:10px 17px;font-size:12px;white-space:nowrap}.code-entry>input{min-width:0}.code-entry>button:disabled{background:#d7ddd0;color:#52604c;cursor:default}.upload-name-caption{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-bottom:22px}.upload-drop{border:1px dashed #8ba080;border-radius:12px;text-align:center;padding:35px 20px;position:relative;cursor:pointer;min-height:180px;display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:10px;background:#eef2e6;transition:background .15s}.upload-drop:hover,.upload-drop.is-dragging{background:#e1e9d5}.upload-drop:focus-within{outline:3px solid #9c6a1a;outline-offset:4px}.upload-drop>svg{width:31px;height:31px}.upload-drop>strong{font-size:15px;font-weight:500}.upload-drop>span{font-size:11px;color:var(--muted)}.upload-drop input{position:absolute;width:1px;height:1px;opacity:0;inset:auto;bottom:15px;left:50%}.upload-consent{display:flex!important;gap:12px;align-items:start;line-height:1.9;margin-block:22px!important}.upload-consent input{accent-color:var(--forest);width:17px;height:17px;flex-shrink:0;margin-top:3px}.upload-submit{width:100%;border:0}.upload-submit:disabled{background:#d7ddd0;color:#52604c;cursor:default;transform:none}.upload-message{font-size:12px;line-height:1.8;margin-top:14px;min-height:22px}.is-error{color:#9c3427}.upload-queue{list-style:none;padding:0;margin-top:15px}.upload-queue li{position:relative;display:grid;grid-template-columns:1fr auto;column-gap:15px;padding-block:12px;border-bottom:1px solid var(--line);font-size:12px}.upload-queue li>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.upload-queue small{font-size:10px;max-width:220px}.upload-queue progress{grid-column:1/-1;width:100%;height:4px;margin-top:9px;accent-color:var(--forest)}.upload-queue progress::-webkit-progress-bar{background:#dfe6d6}.upload-queue progress::-webkit-progress-value{background:var(--forest)}.upload-queue button{font-size:10px;padding:4px 0;justify-self:end;background:none}.wall-host{padding-block:48px 65px;display:flex;gap:50px;justify-content:space-between;align-items:center;border-top:1px solid var(--line)}.wall-host h2{font-size:31px}.wall-host p{font-size:13px;color:var(--muted);max-width:600px;line-height:1.9;margin-top:16px}.host-settings{min-width:235px;display:grid;gap:10px}.host-settings label{margin-bottom:0}.host-settings select{width:100%;font:400 13px var(--sans);color:var(--ink);background:var(--paper);padding:11px;border:1px solid #a9b99c;border-radius:7px}.host-settings>.text-button{justify-self:center}.wall-lightbox,.wall-admin{border:0;background:var(--paper);color:var(--ink);padding:28px;border-radius:14px;max-height:90dvh;max-width:min(1000px,94vw);box-shadow:0 20px 70px #102e2440}.wall-lightbox::backdrop,.wall-admin::backdrop{background:#102e24d9}.wall-lightbox>button{position:absolute;right:10px;top:5px;font-size:28px;padding:5px 10px;background:var(--paper);z-index:2;border-radius:5px}.wall-lightbox img,.wall-lightbox video{max-width:86vw;max-height:75dvh;display:block;object-fit:contain}.wall-lightbox p{font-size:13px;margin-top:16px}.wall-admin{width:min(680px,94vw);padding:35px}.wall-admin h2{font-size:30px}.wall-admin>p{font-size:12px;margin-block:15px 22px;color:var(--muted)}.wall-admin>form>button{position:absolute;right:10px;top:10px;background:none;font-size:25px}.wall-admin #admin-items{max-height:45dvh;overflow-y:auto}.wall-admin #admin-items>div{display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line);padding:13px 0;font-size:12px}.wall-admin #admin-items span{min-width:0;overflow-wrap:anywhere}.wall-admin #admin-items button{flex-shrink:0;background:var(--sage);border-radius:5px;padding:8px 13px;font-size:12px}
.is-presenting{overflow:hidden}.wall-player{position:fixed;inset:0;z-index:1000;background:#102e24;color:#fff8e5;display:flex;align-items:center;justify-content:center;isolation:isolate}.wall-player:before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(#051e180d,#051e1830),url('assets/anniversary/presentation-garden-v1.webp') center/cover}.wall-player:fullscreen{width:100%;height:100%}.player-heading{position:absolute;top:24px;left:35px;right:35px;display:flex;justify-content:space-between;align-items:center;gap:25px;font:500 20px/1.5 var(--serif);z-index:150}.player-heading>span{font:500 12px var(--sans)}.player-stage{position:relative;width:min(94vw,calc((100dvh - 150px)*16/9));aspect-ratio:16/9}.player-stage.is-collage .memory-tile{pointer-events:none;box-shadow:0 11px 30px #173f322b}.player-stage.is-collage .memory-tile figcaption{font-size:clamp(7px,.9vw,16px)}.memory-trio-tile{position:absolute;left:var(--x);top:var(--y);width:var(--width);height:var(--height);z-index:var(--z);transform:rotate(var(--rotation));transform-origin:center;margin:0;display:flex;flex-direction:column;padding:1% 1% 1.4%;background:#fffef8;color:#143f32;border-radius:2px;box-shadow:0 20px 48px #00170f75,0 2px 5px #00170f40;overflow:hidden}.memory-trio-tile figcaption{font:500 clamp(8px,1.15vw,20px)/1.5 var(--serif);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:4%;padding-inline:2px}.wall-player .memory-tile,.player-board-title{color:#143f32}.player-heading{text-shadow:0 2px 12px #00170f}.player-controls button{color:#143f32}.host-settings .playback-timing{font-size:12px;margin-top:0;max-width:280px}
.player-board-title{position:absolute;bottom:0;left:5%;z-index:140;max-width:80%;padding:10px 20px;background:#faf6e9ed;border-radius:2px;transform:rotate(-2deg);pointer-events:none}.player-board-title strong{font:600 clamp(18px,2.5vw,43px)/1.4 var(--serif);display:block}.player-board-title small{font:400 clamp(11px,1.2vw,19px)/1.5 var(--serif);display:block;margin-top:4px}.player-demo{position:absolute;top:57px;right:35px;z-index:150;background:#173f32eb;color:#fff6df;padding:5px 10px;font-size:10px;border-radius:3px}.player-controls{position:absolute;bottom:15px;left:25px;right:25px;display:flex;gap:9px;justify-content:center;align-items:center;flex-wrap:wrap;z-index:200}.player-controls button{font-size:11px;border:1px solid #8da17f;background:#faf7ece8;border-radius:24px;padding:9px 17px;min-height:38px}.player-controls>span{font-size:10px;opacity:.85;margin-left:12px}.scene-progress{position:absolute;bottom:0;left:0;right:0;height:3px;transform-origin:left;background:var(--gold);z-index:200}
@media(max-width:1100px){.wall-intro{gap:25px}.share-memory{gap:40px}.wall-host{gap:35px}.wall-intro h1{font-size:40px}.wall-intro-actions{min-width:175px}}
@media(max-width:760px){.wall-intro{grid-template-columns:1fr;padding-block:38px 27px;gap:25px}.wall-intro h1{font-size:34px;max-width:600px}.wall-subtitle{font-size:22px}.wall-intro-copy{font-size:13px}.wall-intro-actions{flex-direction:row;flex-wrap:wrap}.wall-intro-actions .button{flex:1;min-width:145px;padding-inline:13px}.share-memory{grid-template-columns:1fr;gap:35px;padding-block:35px 50px}.share-copy h2{font-size:31px;white-space:normal}.share-copy>p{max-width:100%;font-size:13px;margin-top:16px}.share-guidance{max-width:100%;font-size:11px;margin-top:19px;padding-block:16px}.wall-stage-section{padding-bottom:38px}.wall-stage-top{font-size:10px;gap:15px;align-items:start}.memory-stage{border-radius:10px}.memory-stage-heading{top:7%;left:5%;max-width:50%}.memory-stage-heading>span{font-size:19px}.memory-stage-heading small{font-size:9px;margin-top:3px}.empty-photo-frame{font-size:18px;padding:13px;min-height:0;height:44%;width:47%;margin-top:20px}.empty-photo-frame small{font-size:9px;margin-top:8px}.wall-empty{gap:10px}.wall-empty>p{font-size:9px;max-width:75%;text-align:center}.wall-empty .text-button{font-size:10px;padding:4px 0}.wall-stage-bottom{font-size:10px;gap:15px;align-items:start}.wall-stage-bottom .text-button{font-size:10px;padding-top:0}.demo-label{font-size:8px;right:9px;top:8px;padding:3px 6px;max-width:75%}.memory-tile figcaption{font-size:6px}.video-indicator{font-size:7px;right:2px;bottom:2px;padding:2px 3px}.wall-host{display:block;padding-block:35px 45px}.wall-host h2{font-size:28px}.wall-host p{font-size:12px}.host-settings{margin-top:25px;max-width:400px}.wall-lightbox,.wall-admin{padding:24px 18px}.player-heading{top:16px;left:18px;right:18px;font-size:16px}.player-heading>span{font-size:10px}.player-demo{top:45px;right:18px;font-size:8px}.player-stage{width:96vw}.memory-trio-tile figcaption{font-size:8px}.player-controls{left:10px;right:10px;bottom:15px;gap:6px}.player-controls button{font-size:10px;padding:8px 12px;min-height:36px}.player-controls>span{display:none}.player-board-title{padding:5px 9px;bottom:-12px}.player-board-title strong{font-size:18px}.player-board-title small{font-size:10px}.player-stage.is-collage .memory-tile figcaption{font-size:6px}.wall-stage-top #wall-total{max-width:44%;text-align:right}}
@media(max-width:420px){.wall-intro h1{font-size:30px}.wall-subtitle{font-size:20px}.wall-intro-actions{gap:8px}.wall-intro-actions .button{min-width:125px;font-size:11px;gap:8px}.upload-name-caption{grid-template-columns:1fr;gap:18px}.code-entry>button{padding-inline:12px}.wall-empty>p{display:none}.empty-photo-frame{margin-top:32px}.wall-stage-top{font-size:9px}.has-memories .memory-stage-heading{padding:4px 8px}.has-memories .memory-stage-heading>span{font-size:13px}}
@media(max-height:500px) and (min-width:600px){.player-heading{top:8px;font-size:15px}.player-stage{width:min(92vw,calc((100dvh - 90px)*16/9))}.player-controls{bottom:8px}.player-controls button{min-height:30px;padding-block:5px}.player-demo{top:33px}}
@media(prefers-reduced-motion:reduce){.memory-tile,.upload-drop{transition:none}.scene-progress{display:none}}
.memory-media-error{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:12px;font:400 clamp(7px,1vw,15px)/1.5 var(--sans);text-align:center;color:var(--muted)}

@media(prefers-reduced-motion:reduce){.memory-tile,.memory-trio-tile{translate:none!important;rotate:none!important}}
