:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}*{outline:none;-webkit-tap-highlight-color:transparent}*:focus{outline:none}button:focus{outline:none}.mobile-message{display:none;position:fixed;top:0;left:0;width:100vw;height:100vh;background:#fef5e7;z-index:9999;flex-direction:column;align-items:center;justify-content:center;text-align:center}.mobile-message h1{font-size:4rem;margin:0 0 20px}.mobile-message h2{font-size:2rem;margin:0 0 20px;color:#333}.mobile-message p{font-size:1.2rem;color:#666;max-width:400px;margin:0 auto}@media (max-width: 900px){.mobile-message{display:flex}.app{display:none}}.app{display:flex;height:100vh;width:100vw;margin:0;padding:0;overflow:hidden}.menu{width:300px;min-width:300px;background:#fef5e7;padding:20px;overflow-y:auto;overflow-x:hidden;border-left:2px solid #f9e4c8;order:2;flex-shrink:0}.menu h2{margin-top:0;color:#cf6671;font-size:1.5rem;position:relative;display:inline-block;z-index:1;width:100%;text-align:center}.menu h2:before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) rotate(-2deg);width:130%;height:150%;background:#ffb6c1cc;z-index:-1;pointer-events:none}.public-domain-note{text-align:center;font-size:.75rem;color:#b95353;margin:10px 0 20px;font-style:italic}.public-domain-note a{color:#b95353;text-decoration:none;font-weight:700}body.dark-mode .public-domain-note{color:#393939}.artwork-list{display:flex;flex-direction:column;gap:15px}.artwork-item{background:#fff;border:2px solid #ddd;border-radius:8px;padding:10px;transition:all .2s}.artwork-image-wrapper img{cursor:grab}.artwork-image-wrapper:hover img{opacity:.9}.artwork-item.placed .artwork-image-wrapper img{opacity:.5;cursor:not-allowed}.artwork-image-wrapper:active img{cursor:grabbing}.artwork-item img{width:100%;height:150px;object-fit:cover;border-radius:4px;margin-bottom:8px}.artwork-info{display:flex;flex-direction:column;gap:4px;color:#333;font-size:.9rem}.artwork-info strong{color:#333}.artwork-info span{color:#666;font-size:.85rem}.artwork-year{color:#999;font-size:.8rem}.artwork-details{margin-top:8px;font-size:.85rem}.artwork-details summary{cursor:pointer;color:#333;-webkit-user-select:none;user-select:none;list-style-position:inside}.artwork-details summary:hover{color:#555}.artwork-extra-info{margin-top:8px;padding:8px;background:#fff;border:2px dashed #ccc;border-radius:4px;color:#666;font-size:.8rem}.artwork-extra-info p{margin:0}.artwork-info a{color:inherit;text-decoration:none;font-weight:inherit}.artwork-extra-info a{color:inherit;text-decoration:none;font-weight:700}.artwork-info a:hover,.artwork-extra-info a:hover{text-decoration:underline}.gallery{flex:1;background:#fff;overflow:auto;position:relative;order:1;min-width:0}.room-header{display:flex;align-items:center;justify-content:center;gap:15px;padding:10px 20px;background:#e8f4f8;border-bottom:2px solid #d0e8f0;position:relative}.room-nav{padding:6px 12px;background:#79b0c8;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.85rem;transition:background .2s;position:absolute;left:20px;font-weight:700}.room-nav:hover{background:#1b4c61}.room-header h1{margin:0;color:#215268;font-size:1rem;font-weight:700}.dark-mode-toggle{background:none;border:none;font-size:1.5rem;cursor:pointer;padding:4px;line-height:1;transition:transform .2s;position:absolute;right:20px;outline:none;-webkit-tap-highlight-color:transparent}.dark-mode-toggle:hover{transform:scale(1.1)}.dark-mode-toggle:focus{outline:none}.wall{position:relative;min-height:calc(100vh - 60px);min-width:1200px;width:1200px;background-position:bottom center;background-repeat:no-repeat;background-attachment:scroll}.wall.gallery-wall:before{content:"";position:absolute;bottom:0;left:0;right:0;height:160px;background-image:url(/gallery-wall/images/bench.png);background-size:auto 160px;background-position:calc(50% + 75px) bottom;background-repeat:no-repeat;pointer-events:none}.wall.bedroom-wall:before{content:"";position:absolute;bottom:0;left:0;right:0;height:400px;background-image:url(/gallery-wall/images/bedroom.png);background-size:auto 400px;background-position:calc(50% + 75px) bottom;background-repeat:no-repeat;pointer-events:none}.placed-artwork{position:absolute;border:none;border-radius:0;cursor:move;-webkit-user-select:none;user-select:none}.placed-artwork:hover{z-index:10}.placed-artwork.dragging{opacity:.8;z-index:100}.placed-artwork img{width:100%;height:100%;object-fit:cover;display:block}.frame-plain img{border:8px solid #8b7355;box-sizing:border-box}.small-artwork.frame-plain img{border:4px solid #8b7355}.frame-ornate img{border:8px solid #d4af37;box-sizing:border-box}.small-artwork.frame-ornate img{border:2px solid #d4af37}.remove-btn{position:absolute;top:-12px;right:-12px;width:28px;height:28px;border-radius:50%;background:#c66;color:#ffffffe6;border:2px solid white;font-size:20px;cursor:pointer;display:none;align-items:center;justify-content:center;line-height:0;padding:0;z-index:1000;font-family:Arial,sans-serif}.placed-artwork:hover .remove-btn{display:flex}.remove-btn:hover{background:#b55}.frame-plain .remove-btn{top:-16px;right:-16px}.small-artwork.frame-plain .remove-btn{top:-13px;right:-13px}.frame-ornate .remove-btn{top:-26px;right:-26px}.small-artwork.frame-ornate .remove-btn{top:-12px;right:-12px}.frame-circles{display:flex;gap:8px;margin-top:10px;justify-content:center}.frame-circle{width:20px;height:20px;border-radius:50%;border:2px solid #ddd;background:#fff;cursor:pointer;transition:all .2s;padding:0}.frame-circle:hover:not(:disabled){transform:scale(1.1)}.frame-circle.active{border-width:3px;border-color:#333}.frame-circle:disabled{opacity:.3;cursor:not-allowed}.frame-circle-plain{background:#8b7355}.frame-circle-ornate{background:#d4af37}.frame-circle-washi{background:#ffb6c1cc}.frame-plain{padding:32px!important;border:none!important;background-size:cover!important;background-position:center!important;box-shadow:inset 0 0 0 8px #d4b896,inset 12px 12px 24px #3c322866,inset -12px -12px 24px #b496784d}.frame-plain.wood-1{background-image:url(/gallery-wall/assets/wood1-BMX3i9HS.jpeg)!important}.frame-plain.wood-2{background-image:url(/gallery-wall/assets/wood2-Ch3YW3V3.jpeg)!important}.frame-plain.wood-3{background-image:url(/gallery-wall/assets/wood3-DYKio8dK.jpg)!important}.small-artwork.frame-plain{padding:16px!important;border:none!important;background-size:cover!important;background-position:center!important;box-shadow:inset 0 0 0 4px #d4b896,inset 8px 8px 12px #3c322866,inset -8px -8px 12px #b496784d}.small-artwork.frame-plain.wood-1{background-image:url(/gallery-wall/assets/wood1-BMX3i9HS.jpeg)!important}.small-artwork.frame-plain.wood-2{background-image:url(/gallery-wall/assets/wood2-Ch3YW3V3.jpeg)!important}.small-artwork.frame-plain.wood-3{background-image:url(/gallery-wall/assets/wood3-DYKio8dK.jpg)!important}.frame-ornate{padding:32px!important;border:8px solid #8b6914!important;box-shadow:inset 12px 12px 24px #8b691480,inset -12px -12px 24px #f4d97766}.frame-ornate.ornate-1{background-color:#d4af37!important}.frame-ornate.ornate-2{background-color:#b8860b!important}.frame-ornate.ornate-3{background-color:#c9a24a!important}.small-artwork.frame-ornate{padding:4px!important;border:2px solid #8b6914!important;box-shadow:inset 3px 3px 6px #8b691480,inset -3px -3px 6px #f4d97766}.small-artwork.frame-ornate.ornate-1{background-color:#d4af37!important}.small-artwork.frame-ornate.ornate-2{background-color:#b8860b!important}.small-artwork.frame-ornate.ornate-3{background-color:#c9a24a!important}.frame-washi{border:none!important}.frame-washi:before,.frame-washi:after{content:"";position:absolute;width:48px;height:24px;background:var(--washi-color, rgba(255, 182, 193, .8));transform:rotate(-45deg)}.frame-washi:before{top:-12px;left:-12px}.frame-washi:after{bottom:-12px;right:-12px}.frame-washi.washi-rotated:before{top:-12px;left:auto;right:-12px;transform:rotate(45deg)}.frame-washi.washi-rotated:after{bottom:-12px;right:auto;left:-12px;transform:rotate(45deg)}.small-artwork.frame-washi:before,.small-artwork.frame-washi:after{width:24px;height:12px}.small-artwork.frame-washi:before{top:-6px;left:-6px}.small-artwork.frame-washi:after{bottom:-6px;right:-6px}.small-artwork.frame-washi.washi-rotated:before{top:-6px;left:auto;right:-6px;transform:rotate(45deg)}.small-artwork.frame-washi.washi-rotated:after{bottom:-6px;right:auto;left:-6px;transform:rotate(45deg)}body.dark-mode{background:#1a1a1a}body.dark-mode .menu{background:#ad9bb0;border-left-color:#7b5781}body.dark-mode .menu h2{color:#ebddef}body.dark-mode .menu h2:before{background:#84618b}body.dark-mode .artwork-item{background:#333;border-color:#555}body.dark-mode .artwork-info,body.dark-mode .artwork-info strong{color:#e0e0e0}body.dark-mode .artwork-info span{color:#aaa}body.dark-mode .artwork-year{color:#888}body.dark-mode .artwork-details summary{color:#e0e0e0}body.dark-mode .artwork-extra-info{background:#2a2a2a;border-color:#555;color:#aaa}body.dark-mode .gallery{background:#1a1a1a}body.dark-mode .room-header{background:#b9cd84;border-bottom-color:#758648}body.dark-mode .room-header h1{color:#1a1a1a}body.dark-mode .room-nav{background:#96af53;color:#1a1a1a}body.dark-mode .room-nav:hover{background:#ccc}body.dark-mode .wall{background-color:#1a1a1a}body.dark-mode .wall.gallery-wall:before,body.dark-mode .wall.bedroom-wall:before{filter:brightness(0) invert(1)}
