:root{color-scheme:dark;--ink:#faf0f7;--muted:#c6b2c6;--rose:#ffc2d9;--line:#5b425b;--panel:#2a1d30;--night:#191220;--error:#ffbdab;font:15px/1.5 system-ui,sans-serif}
*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;color:var(--ink);background:radial-gradient(ellipse at 82% -10%,#51304b,transparent 56%),var(--night);min-height:100vh}a{color:var(--rose)}button,input{font:inherit}button{cursor:pointer;color:inherit}button:disabled{opacity:.48;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--rose);outline-offset:4px}
.top{height:72px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #75557556;padding:0 clamp(18px,5vw,74px);background:#1d15249c}.brand{display:flex;gap:8px;align-items:center;text-decoration:none;color:var(--ink);white-space:nowrap}.brand strong{font-size:.84rem;letter-spacing:.12em}.brand>span:last-child{font-size:.84rem;color:var(--muted)}.brand-mark{width:34px;height:34px;display:grid;place-items:center;color:var(--rose);border:1px solid var(--line);border-radius:9px;font-size:1.2rem}
main{width:min(1160px,calc(100% - 36px));margin:auto;padding:38px 0 60px}h1,h2{font-family:Georgia,serif;font-weight:400;line-height:.98;margin:0 0 .22em}h1{font-size:clamp(3rem,9vw,7rem);letter-spacing:-.064em}h2{font-size:clamp(2rem,4vw,3rem);letter-spacing:-.043em}p{color:var(--muted);margin:0 0 .85em}.eyebrow{font-size:.78rem;font-weight:720;letter-spacing:.085em;color:#edb6d5;margin-bottom:.8rem}
.primary,.quiet,.sign-tabs button{border-radius:9px;padding:10px 14px;min-height:44px;border:1px solid transparent;font-weight:690;white-space:nowrap}.primary{color:#2b1928;background:var(--rose)}.primary:hover:enabled{background:#ffe1ec}.quiet{background:#2c2035;border-color:var(--line)}.quiet:hover:enabled{background:#3f2a47}.primary span{margin-left:10px}.small-link{font-size:.8rem;text-decoration-color:#edb6d589;text-underline-offset:3px}.message{min-height:1.35em;font-size:.9rem}.error{color:var(--error)}
.entry{display:grid;grid-template-columns:1.15fr .85fr;gap:12px;align-items:stretch}.entry-art,.sign-form,.collection,dialog#create-dialog{border:1px solid var(--line);border-radius:14px;background:#251a2bbd}.entry-art{position:relative;overflow:hidden;min-height:478px;padding:clamp(24px,4vw,55px);background:radial-gradient(ellipse at 70% 80%,#56354f,#2b1c34 72%)}.entry-art h1{position:relative;z-index:1;font-size:clamp(2.8rem,6vw,5rem);max-width:11ch}.entry-art>p:last-of-type{max-width:32ch;position:relative;z-index:1}.sign-form{padding:clamp(19px,3.7vw,46px)}.sign-form h2{margin-top:25px}.sign-tabs{display:inline-flex;gap:3px;flex-wrap:wrap;padding:4px;border:1px solid var(--line);border-radius:12px;background:#201625}.sign-tabs button{min-height:36px;border:0;background:none;color:var(--muted);padding:7px 11px}.sign-tabs button[aria-pressed="true"]{background:#543650;color:#fff1f6}.sign-form label,dialog label{display:block;margin:15px 0;color:var(--muted);font-size:.84rem}.sign-form input,dialog input{display:block;width:100%;border:1px solid #735570;color:var(--ink);background:#1e1624;border-radius:8px;min-height:45px;padding:9px 12px;margin-top:5px}.sign-form .primary{width:100%;margin:6px 0 10px;text-align:left;display:flex;justify-content:space-between}.sign-form .message{margin:8px 0 0}.artwork{position:absolute;right:3%;bottom:3%;width:61%;aspect-ratio:1.5;perspective:620px}.artwork i{position:absolute;inset:20% 8%;border:5px solid #d2a8c5;border-radius:11px;background:radial-gradient(circle at 69% 29%,#ffc9a9 0 8%,transparent 9%),linear-gradient(148deg,#8d5a92,#4f3158 53%,#2f234b);box-shadow:0 8px 0 #2c1b34,0 22px 26px #1b1223;transform:rotateY(-25deg) rotate(-14deg)}.artwork i:nth-child(2){inset:8% 23% 28% 3%;transform:rotateY(32deg) rotate(-24deg);opacity:.67}.artwork i:nth-child(3){inset:34% 1% 3% 23%;transform:rotateY(-18deg) rotate(10deg);background:radial-gradient(circle at 30% 60%,#f3afc0 0 13%,transparent 14%),linear-gradient(155deg,#794d79,#462b4e);border-color:#b993b6}.artwork span{position:absolute;right:8%;top:0;color:#ffd6df;font-size:2.4rem}
.hero{display:flex;align-items:end;justify-content:space-between;gap:16px;padding:16px 0 22px}.hero p:last-child{margin:0;max-width:56ch}.collection{padding:clamp(15px,3vw,28px);margin:0 0 16px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:13px}.section-heading p{margin:0}.album-grid,.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,160px),1fr));gap:12px}.album-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,220px),1fr))}.empty{color:var(--muted);grid-column:1/-1;margin:0;padding:15px;border:1px dashed var(--line);border-radius:9px}
.album-card,.photo-card{min-width:0;text-align:left;overflow:hidden;border:1px solid #674c67;border-radius:10px;background:#302239;padding:0;position:relative}.album-card:hover,.photo-card:hover{border-color:#e5a6c7}.album-card img,.photo-card img{display:block;width:100%;aspect-ratio:1.55;object-fit:cover;background:#211728}.photo-card img{object-fit:contain}.album-card strong,.photo-card span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:9px 10px}.album-card small{display:block;padding:0 10px 11px;color:var(--muted)}.photo-card[aria-pressed="true"]{outline:2px solid var(--rose);outline-offset:-2px}.photo-card[aria-pressed="true"]::after{content:"✓";position:absolute;right:7px;top:7px;display:grid;place-items:center;width:26px;height:26px;border-radius:50%;color:#291825;background:var(--rose);font-weight:850}
#drop-zone{border:1px dashed #9d739b;border-radius:11px;background:#422e456a;margin-bottom:8px}#drop-zone[data-drag]{background:#5d3c5d}#choose-files{width:100%;display:grid;justify-items:center;gap:3px;padding:16px;color:var(--ink);background:transparent;border:0;border-radius:10px}#choose-files span:last-child{color:var(--muted);font-size:.82rem}.drop-icon{font-size:1.3rem;color:var(--rose)}#upload-status{margin:7px 0}#upload-results{font-size:.83rem;color:#f8c1b4;margin:0 0 10px}
.album-hero h1{overflow-wrap:anywhere}.album-tabs{flex-shrink:0}.album-hero{padding-top:25px}.room-bar,.room-controls{display:flex;gap:9px;align-items:center;justify-content:space-between}.room-bar h2{font-size:1.9rem}.room-controls{margin:10px 0}.room-controls p{margin:0;text-align:center}.room-stage{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#241c29}.room-stage p{padding:18px;margin:0}#world{width:100%;height:clamp(240px,46vh,490px);display:block;cursor:pointer}#album-photos{margin-top:15px}
dialog#create-dialog{width:min(450px,calc(100% - 28px));color:var(--ink);padding:25px;background:#2b2031}dialog#create-dialog::backdrop{background:#130d19cb}.dialog-actions{display:flex;gap:8px;justify-content:flex-end}.album-hero h1{font-size:clamp(2.7rem,8vw,6rem)}
@media(max-width:720px){main{padding-top:19px}.top{height:59px}.entry{grid-template-columns:1fr}.entry-art{min-height:260px}.entry-art h1{font-size:clamp(2.6rem,9vw,4rem)}.artwork{width:53%;right:2%;bottom:1%;opacity:.7}.hero{align-items:start;flex-direction:column}.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.album-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.room-controls .quiet{font-size:.72rem;padding:7px}.room-controls p{font-size:.73rem}}
.sign-form select{display:block;width:100%;min-height:45px;margin-top:5px;padding:9px 12px;border:1px solid #735570;border-radius:8px;background:#1e1624;color:var(--ink);font:inherit}
.sign-form select:focus-visible{outline:2px solid var(--rose);outline-offset:4px}.text-button{padding:0;border:0;background:none;color:var(--rose);font-size:.84rem;text-decoration:underline;text-underline-offset:3px}
.sign-form .remember-row{display:flex;align-items:center;gap:8px}.sign-form .remember-row input{display:inline-block;width:17px;min-height:17px;height:17px;margin:0;accent-color:var(--rose)}
#identity-number{margin-bottom:3px;font-variant-numeric:tabular-nums}

.header-actions{display:flex;align-items:center;gap:10px}.theme-control{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:.81rem;white-space:nowrap}.theme-control select{min-height:39px;padding:5px 8px;border:1px solid var(--line);border-radius:8px;color:var(--ink);background:var(--panel);font:inherit}.theme-control select:focus-visible{outline:2px solid var(--rose);outline-offset:3px}
.reset-panel{margin-top:14px}.reset-panel .primary{text-decoration:none;align-items:center}
:root[data-theme="day"]{color-scheme:light;--ink:#271b28;--muted:#665462;--rose:#783956;--line:#cbb8be;--panel:#fffaf5;--night:#f7f2e9;--error:#9a392f}
[data-theme="day"] body{background:radial-gradient(ellipse at 89% -12%,#e9d7df,transparent 53%),var(--night)}
[data-theme="day"] .top{background:#fffaf5db;border-bottom-color:#cbb8be}
[data-theme="day"] .eyebrow{color:var(--rose)}
[data-theme="day"] .primary{background:#783956;color:#fff9f8}
[data-theme="day"] .primary:hover:enabled,[data-theme="day"] .reset-panel .primary:hover{background:#612742}
[data-theme="day"] .quiet{background:#f5e9e9}
[data-theme="day"] .quiet:hover:enabled{background:#ead9e1}
[data-theme="day"] .sign-form,[data-theme="day"] .collection,[data-theme="day"] dialog#create-dialog{background:var(--panel)}
[data-theme="day"] .entry-art{background:radial-gradient(ellipse at 76% 73%,#e7c6d7,transparent 66%),#f4e7e4}
[data-theme="day"] .artwork i{border-color:#fcf3e9;box-shadow:0 8px 0 #b18ba5,0 19px 27px #65415d47}
[data-theme="day"] .artwork span{color:#783956}
[data-theme="day"] .sign-tabs{background:#f2e7ea}
[data-theme="day"] .sign-tabs button[aria-pressed="true"]{background:#783956;color:#fff9f8}
[data-theme="day"] .sign-form input,[data-theme="day"] .sign-form select,[data-theme="day"] dialog input{background:#fffcf8;border-color:#a68a9b}
[data-theme="day"] .album-card,[data-theme="day"] .photo-card{background:#fffaf5;border-color:#bfa8b8}
[data-theme="day"] .album-card:hover,[data-theme="day"] .photo-card:hover{border-color:#783956}
[data-theme="day"] .album-card img,[data-theme="day"] .photo-card img{background:#eae0e5}
[data-theme="day"] .photo-card[aria-pressed="true"]::after{color:#fff9f8}
[data-theme="day"] #drop-zone{background:#f4e5ec;border-color:#a9859a}
[data-theme="day"] #drop-zone[data-drag]{background:#ebd3e0}
[data-theme="day"] #upload-results{color:var(--error)}
[data-theme="day"] .room-stage{background:#efe4e7}
[data-theme="day"] .gallery-viewer{--viewer-ink:#271b28;--viewer-muted:#665462;--viewer-accent:#783956;--viewer-line:#cab7c1;background:radial-gradient(ellipse at 50% 90%,#ebdce3,#fcf6ee 74%);color-scheme:light}
[data-theme="day"] .gallery-viewer-button{background:#fff8f5}
[data-theme="day"] .gallery-viewer-button:hover{background:#eddae4}
@media(max-width:420px){.theme-control span{display:none}.header-actions{gap:6px}.top .quiet{padding-inline:9px}.entry-art{min-height:205px}.entry-art>p:last-of-type{max-width:23ch}.sign-form h2{margin-top:15px}}
.album-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between}
#album-order{list-style:none;padding:0;margin:12px 0;max-height:30vh;overflow:auto}
.order-row{display:grid;grid-template-columns:45px minmax(0,1fr) 39px 39px;gap:6px;align-items:center;padding:5px 0;border-bottom:1px solid var(--line)}
.order-row img{width:45px;height:34px;object-fit:cover;border-radius:4px}.order-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.order-row .quiet{padding:2px;min-height:37px}
.sr-only{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
dialog#create-dialog{max-height:calc(100dvh - 28px);overflow:auto}
