:root{font-family:Arial,Helvetica,sans-serif;color:#fff;background:#10171b;font-synthesis:none}*{box-sizing:border-box}html,body{margin:0;min-height:100%;overflow:hidden}button,input,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.5;cursor:default}[hidden]{display:none!important}
.login-screen{height:100dvh;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(360px,.8fr);background:#f5f2eb;color:#25312d}.login-art{position:relative;overflow:hidden;background:radial-gradient(circle at 73% 16%,#d2bd9c55 0 2px,transparent 3px),radial-gradient(circle at 20% 38%,#f6ebd355 0 1px,transparent 2px),linear-gradient(177deg,#203040 0%,#34465a 41%,#866e64 69%,#242e37 70%,#0d1c25 100%)}.login-art:after{content:"";position:absolute;inset:67% -10% -10%;background:linear-gradient(155deg,#0d171d 30%,#1d2d34 50%,#0a1419 70%);clip-path:polygon(0 45%,15% 26%,24% 35%,36% 4%,54% 48%,67% 20%,80% 40%,100% 5%,100% 100%,0 100%)}.mini-time{position:absolute;z-index:1;left:6%;bottom:6%;font-size:clamp(34px,4vw,66px);font-weight:500;letter-spacing:-.06em;color:#fff}.mini-time span{font-size:.28em;letter-spacing:0;margin-left:12px}.login-card{width:min(440px,100%);align-self:center;justify-self:center;padding:32px}.brand-mark{height:50px;width:50px;border-radius:16px;background:#d8e2d8;color:#335544;display:grid;place-items:center;font-size:32px;margin-bottom:45px}.eyebrow{font-size:11px;letter-spacing:.23em;font-weight:700;color:#829085;margin:0 0 14px}.login-card h1{font-size:clamp(42px,4vw,62px);line-height:1.03;font-weight:500;letter-spacing:-.07em;margin:0}.login-card h1 em{font-family:'Playfair Display',Georgia,serif;font-weight:500;letter-spacing:-.045em;color:#789486}.intro{color:#7b8580;line-height:1.55;margin:24px 0 38px;max-width:330px}.login-card label{display:block;font-size:12px;font-weight:700;color:#475a50;margin:15px 0 0}.login-card input{display:block;width:100%;margin-top:9px;border:1px solid #d8ddd5;background:#fff;border-radius:12px;padding:15px;color:#25312d;outline:none}.login-card input:focus,.panel input:focus,.panel select:focus{border-color:#6c9a80;box-shadow:0 0 0 3px #6c9a8033}.primary{width:100%;border:0;background:#273d31;color:white;border-radius:12px;padding:16px 20px;margin-top:23px;display:flex;justify-content:space-between;align-items:center;font-weight:700}.primary:hover{background:#385743}.login-foot{font-size:12px;color:#9da69e;margin-top:40px}.form-error{color:#b93c32;min-height:1.4em;font-size:13px}
.display{height:100dvh;position:relative;background:#111e25;overflow:hidden}.ambient-scene,.photo,.shade{position:absolute;inset:0;width:100%;height:100%}.ambient-scene{background:radial-gradient(ellipse at 60% 15%,#b4a4b945,transparent 26%),linear-gradient(180deg,#091725 0%,#283a52 53%,#627182 68%,#132d39 100%)}.stars{position:absolute;inset:0 0 35%;background-image:radial-gradient(#fff9 1px,transparent 1px),radial-gradient(#fff7 1px,transparent 1px);background-size:93px 103px,137px 181px;background-position:10px 20px,48px 33px;opacity:.45}.horizon{position:absolute;inset:70% 0 0;background:linear-gradient(175deg,#132431,#0a1920);clip-path:polygon(0 20%,12% 12%,22% 24%,34% 5%,43% 20%,58% 3%,70% 17%,78% 10%,91% 21%,100% 12%,100% 100%,0 100%)}.photo{object-fit:cover;opacity:0;transition:opacity 1.4s ease;transform:scale(1.015)}.photo.active{opacity:1}.shade{background:linear-gradient(180deg,#0007 0%,transparent 24%,transparent 52%,#0002 69%,#000b 100%);pointer-events:none}.display-header,.display-bottom{position:absolute;left:0;right:0;z-index:3;display:flex;align-items:center;justify-content:space-between}.display-header{top:0;padding:28px 38px}.display-brand{font-size:11px;letter-spacing:.16em;font-weight:700;display:flex;align-items:center;gap:12px;text-shadow:0 1px 10px #0006}.display-brand strong{font-weight:400;opacity:.8}.brand-symbol{font-size:28px;line-height:1}.header-actions{display:flex;align-items:center;gap:8px}.photo-count{font-size:12px;opacity:.85;margin-right:12px}.icon-button,.playback button{border:1px solid #ffffff38;background:#ffffff20;color:#fff;backdrop-filter:blur(12px);border-radius:50%;display:grid;place-items:center}.icon-button{height:40px;width:40px;font-size:20px}.icon-button:hover,.playback button:hover{background:#ffffff45}.display-bottom{bottom:0;padding:36px 42px 39px;align-items:end}.clock-line{display:flex;align-items:baseline;gap:11px;text-shadow:0 2px 18px #0008}#clock{font-size:clamp(68px,10vw,152px);font-weight:500;letter-spacing:-.08em;line-height:.9;font-variant-numeric:tabular-nums}.ampm{font-size:clamp(16px,2vw,26px);font-weight:500}.clock-divider{height:24px;width:1px;background:#fff8;align-self:center;margin:0 5px}.temp{font-size:clamp(16px,2vw,27px);font-weight:500;letter-spacing:-.04em}.date-line{display:flex;gap:10px;align-items:center;margin-top:16px;font-size:clamp(14px,1.4vw,19px);text-shadow:0 2px 14px #000a}.date-dot{opacity:.7}.playback{display:flex;gap:8px;opacity:.85;transition:opacity .2s}.playback button{height:46px;width:46px;font-size:30px;line-height:1}.playback button:nth-child(2){font-size:17px}.empty-state{position:absolute;z-index:2;top:45%;left:50%;transform:translate(-50%,-50%);text-align:center;width:min(480px,90%);text-shadow:0 2px 14px #0009}.empty-icon{font-size:56px}.empty-state h2{font-family:Georgia,serif;font-size:34px;font-weight:400;margin:8px 0}.empty-state p{line-height:1.5;color:#e2e5e4}.empty-state code{display:block;word-break:break-all;font-size:12px;opacity:.85;margin:18px}.outline-button{background:#ffffff20;color:#fff;border:1px solid #fff9;border-radius:30px;padding:10px 20px}.outline-button:hover{background:#ffffff40}
.panel-backdrop{position:fixed;inset:0;background:#08120c99;z-index:9}.panel{position:fixed;z-index:10;right:0;top:0;bottom:0;width:min(440px,100%);background:#f6f5f1;color:#24332b;box-shadow:-20px 0 70px #0006;transform:translateX(105%);transition:transform .3s ease;display:flex;flex-direction:column}.panel.open{transform:translateX(0)}.panel-header{padding:31px 28px 20px;display:flex;justify-content:space-between;align-items:start;border-bottom:1px solid #e0e4dc}.panel-header h2{margin:0;font-size:27px;letter-spacing:-.05em}.close-button{background:none;border:0;color:#52665b;font-size:32px;line-height:1}.panel-scroll{padding:0 28px 34px;overflow:auto}.setting-section{padding:23px 0;border-bottom:1px solid #dde2d9}.setting-section h3{margin:0 0 12px;font-size:17px;letter-spacing:-.03em}.section-title{display:flex;align-items:center;justify-content:space-between}.muted,.hint{color:#75837a;font-size:13px;line-height:1.45}.hint{margin:8px 0 0}.text-button{border:0;background:none;color:#3e7655;font-size:13px;font-weight:700}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:14px;font-size:13px;margin:13px 0;color:#4a5a50}.setting-row select{width:145px}.panel input,.panel select{border:1px solid #d5ddd2;background:#fff;color:#27372c;border-radius:9px;padding:10px;outline:none;min-width:0}.inline-form{display:flex;gap:7px}.inline-form input{flex:1;width:0}.inline-form button,.secondary{border:0;background:#294637;color:#fff;border-radius:9px;padding:10px 14px;font-size:13px;font-weight:700}.location-results{display:grid;gap:3px;margin-top:8px}.location-results button{border:0;text-align:left;background:#e9eee7;color:#2e4c39;padding:10px 12px;border-radius:8px;font-size:12px}.location-results button:hover{background:#d8e6d9}.stack-form{display:grid;gap:8px;margin-top:12px}.stack-form button{justify-self:start}.form-message{font-size:12px;min-height:1.2em;color:#3a7550}.users-list{display:grid;gap:7px;margin:12px 0}.user-row{display:flex;align-items:center;justify-content:space-between;background:#e9eee7;padding:9px 10px;border-radius:9px;font-size:13px}.user-row small{display:block;color:#73857a;margin-top:3px}.user-row button{border:0;background:none;color:#aa5047;font-size:12px;font-weight:700}.logout-button{width:100%;border:1px solid #d5ddd2;border-radius:9px;background:transparent;color:#365442;padding:13px;margin-top:24px;display:flex;justify-content:space-between;font-weight:700}
@media(max-width:760px){.login-screen{grid-template-columns:1fr}.login-art{height:25dvh}.login-card{align-self:start;padding:25px 30px}.brand-mark{margin-bottom:20px}.login-card h1{font-size:45px}.intro{margin:17px 0 22px}.login-foot{margin-top:20px}.display-header{padding:18px}.display-bottom{padding:22px 20px 30px}.photo-count{display:none}.clock-line{gap:6px}#clock{font-size:clamp(61px,15vw,94px)}.clock-divider{height:18px;margin:0 2px}.temp{font-size:18px}.date-line{font-size:13px;margin-top:8px}.playback{gap:2px}.playback button{height:34px;width:34px;font-size:24px}.playback button:nth-child(2){font-size:13px}}@media(max-width:470px){.display-bottom{align-items:end}.playback{position:absolute;right:15px;bottom:145px}.display-brand{font-size:10px}.brand-symbol{font-size:22px}.icon-button{height:36px;width:36px}.date-line{max-width:90vw;flex-wrap:wrap;gap:6px}}
.user-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.user-row>div:first-child{min-width:0;overflow-wrap:anywhere}.user-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:3px}.user-actions button{color:#3f7654;padding:5px}.user-actions button.danger{color:#aa5047}.reset-form{grid-column:1/-1;display:flex;gap:7px}.reset-form input{min-width:0;flex:1}.reset-form button{background:#294637;color:#fff;border-radius:7px;padding:8px}.folder-choice{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.folder-choice .muted{overflow-wrap:anywhere}.folder-backdrop{position:fixed;inset:0;background:#07120ac2;z-index:11}.folder-dialog{position:fixed;z-index:12;top:50%;left:50%;transform:translate(-50%,-50%);width:min(500px,calc(100vw - 30px));max-height:min(700px,calc(100dvh - 30px));background:#f6f5f1;color:#24332b;border-radius:18px;box-shadow:0 25px 90px #0008;padding:24px;display:flex;flex-direction:column}.folder-dialog-header{display:flex;justify-content:space-between;align-items:start}.folder-dialog-header h2{margin:0;font-size:25px;letter-spacing:-.04em}.folder-nav{display:flex;align-items:center;gap:12px;margin:18px 0 10px;background:#e9eee7;border-radius:9px;padding:8px}.folder-nav button{border:0;background:#fff;color:#315b3f;border-radius:7px;padding:8px 10px;font-weight:700}.folder-nav span{font-size:13px;overflow-wrap:anywhere}.folder-list{display:grid;gap:6px;overflow:auto;min-height:90px;max-height:330px}.folder-list button{border:1px solid #e1e8dd;background:#fff;text-align:left;padding:12px;border-radius:9px;color:#314a39}.folder-list button:hover{background:#e4eee3}.folder-dialog>.primary{margin-top:6px}

/* Preserve each photo's full aspect ratio; unused screen area stays black. */
.display{background:#000}.display.has-photos .ambient-scene{display:none}.photo{object-fit:contain;background:#000;transform:none}
.display[data-photo-framing="fill-pan"] .photo.fill-pan{object-fit:cover}.display[data-photo-framing="fill-pan"] .photo.fill-pan.active{animation:photo-pan var(--pan-duration,30s) ease-in-out both}.display.single-photo[data-photo-framing="fill-pan"] .photo.fill-pan.active{animation-iteration-count:infinite;animation-direction:alternate}.display.paused .photo,.display.sleeping .photo{animation-play-state:paused}@keyframes photo-pan{from{object-position:50% 100%}to{object-position:50% 0%}}
.display-bottom{inset:0;display:block;padding:0;pointer-events:none}.clock-wrap{position:absolute;bottom:39px;left:42px;max-width:calc(100vw - 84px);pointer-events:auto}.clock-line{flex-wrap:wrap}.playback{position:absolute;right:42px;bottom:39px;pointer-events:auto}
.display[data-info-position="bottom-center"] .clock-wrap,.display[data-info-position="top-center"] .clock-wrap{left:50%;right:auto;transform:translateX(-50%);text-align:center}.display[data-info-position="bottom-right"] .clock-wrap,.display[data-info-position="top-right"] .clock-wrap{left:auto;right:42px;text-align:right}.display[data-info-position^="top-"] .clock-wrap{top:105px;bottom:auto}.display[data-info-position="bottom-center"] .clock-line,.display[data-info-position="top-center"] .clock-line,.display[data-info-position="bottom-center"] .date-line,.display[data-info-position="top-center"] .date-line{justify-content:center}.display[data-info-position="bottom-right"] .clock-line,.display[data-info-position="top-right"] .clock-line,.display[data-info-position="bottom-right"] .date-line,.display[data-info-position="top-right"] .date-line{justify-content:flex-end}.display[data-info-position="bottom-right"] .playback,.display[data-info-position="bottom-center"] .playback{bottom:auto;top:86px}
.display[data-clock-size="small"] #clock{font-size:clamp(48px,7vw,104px)}.display[data-clock-size="large"] #clock{font-size:clamp(90px,13vw,190px)}.display[data-clock-size="small"] .ampm{font-size:clamp(13px,1.5vw,19px)}.display[data-clock-size="large"] .ampm{font-size:clamp(20px,2.4vw,32px)}.display[data-weather-size="small"] .temp{font-size:clamp(14px,1.5vw,20px)}.display[data-weather-size="large"] .temp{font-size:clamp(22px,2.7vw,36px)}.display[data-weather-size="small"] .date-line{font-size:clamp(12px,1.1vw,16px)}.display[data-weather-size="large"] .date-line{font-size:clamp(18px,1.8vw,25px)}
.sleep-view{position:absolute;inset:0;z-index:5;display:grid;place-items:center;background:#000;color:#fff}.sleep-content{text-align:center;padding:24px;max-width:100%}.sleep-time{display:flex;align-items:baseline;justify-content:center;gap:12px;font-variant-numeric:tabular-nums;white-space:nowrap}.sleep-time time{font-size:clamp(96px,18vw,270px);line-height:1;letter-spacing:-.07em;font-weight:400}.sleep-time span{font-size:clamp(20px,3vw,40px)}.sleep-weather{font-size:clamp(20px,2.5vw,34px);margin-top:24px;line-height:1.4}.sleep-settings{position:absolute;top:28px;right:38px;opacity:.45}.sleep-settings:hover,.sleep-settings:focus-visible{opacity:1}.display[data-clock-size="small"] .sleep-time time{font-size:clamp(72px,14vw,200px)}.display[data-clock-size="large"] .sleep-time time{font-size:clamp(110px,21vw,320px)}.display[data-weather-size="small"] .sleep-weather{font-size:clamp(17px,2vw,25px)}.display[data-weather-size="large"] .sleep-weather{font-size:clamp(25px,3vw,42px)}
@media(max-width:760px){.clock-wrap{left:20px;bottom:30px;max-width:calc(100vw - 40px)}.playback{right:20px;bottom:30px}.display[data-info-position="bottom-right"] .clock-wrap,.display[data-info-position="top-right"] .clock-wrap{right:20px}.display[data-info-position^="top-"] .clock-wrap{top:85px}.display[data-info-position="bottom-right"] .playback,.display[data-info-position="bottom-center"] .playback{top:76px}.sleep-settings{top:18px;right:18px}}
@media(max-width:470px){.playback{right:15px;bottom:150px}.display[data-info-position="bottom-right"] .playback,.display[data-info-position="bottom-center"] .playback{top:70px;bottom:auto}.display[data-info-position="bottom-right"] .clock-wrap{right:20px}.display[data-clock-size="large"] #clock{font-size:clamp(72px,18vw,104px)}.sleep-time time{font-size:clamp(70px,20vw,110px)}.display[data-clock-size="large"] .sleep-time time{font-size:clamp(82px,22vw,120px)}}
