:root{font-family:system-ui,-apple-system,"Segoe UI",sans-serif;color:#edf1f8;background:#101217;color-scheme:dark}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button{cursor:pointer;border:0;color:inherit}button:focus-visible,input:focus-visible{outline:3px solid #a7c9ff;outline-offset:3px}.calc{max-width:420px;margin:5vh auto;padding:26px}.brand{color:#929aaa;font-size:14px;letter-spacing:3px}.screen{height:150px;display:flex;align-items:flex-end;justify-content:flex-end;font-size:48px;padding:25px 4px;overflow:hidden}.keys{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.keys button{height:70px;border-radius:24px;background:#242831;font-size:26px}.keys .operator{background:#283d59;color:#b9d6ff}.keys .equals{background:#b4d1ff;color:#14253c}.keys .wide{grid-column:span 2}.muted{color:#939cae;font-size:13px;line-height:1.7}.login{max-width:380px;margin:16vh auto;padding:28px}.login h1{font-size:26px}.login input{width:100%;padding:15px;margin:16px 0;background:#1c212c;border:1px solid #424e64;border-radius:12px}.primary{padding:13px 20px;border-radius:12px;background:#b4d1ff;color:#14253c}.secondary{padding:12px 16px;border-radius:12px;background:#2a303d}.login .primary{width:100%}.login .secondary{margin-top:12px;width:100%}.album{max-width:1200px;margin:auto;padding:26px 20px}.toolbar{display:flex;justify-content:space-between;gap:16px;align-items:center;flex-wrap:wrap}.toolbar h1{margin:0 0 8px;font-size:27px}.actions{display:flex;gap:10px}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(155px,1fr));gap:12px;margin-top:28px}.tile{padding:0;border-radius:14px;overflow:hidden;aspect-ratio:1;background:#202633}.tile img{width:100%;height:100%;object-fit:cover}.empty{padding:90px 20px;text-align:center;border:1px dashed #3b4456;border-radius:18px;margin-top:30px}.status{min-height:26px;color:#c5d9ff;margin-top:18px}dialog{padding:16px;border:1px solid #3c4659;border-radius:18px;background:#151922;max-width:96vw;max-height:95dvh;color:#fff}dialog::backdrop{background:#000d}dialog img{display:block;max-width:88vw;max-height:70dvh;object-fit:contain;margin:auto}.viewer-actions{display:flex;justify-content:space-between;gap:10px;margin-top:14px}.viewer-actions a{color:#c3d8ff;padding:12px}.filename{max-width:80vw;overflow-wrap:anywhere;font-size:13px;color:#aeb9cb}.danger{background:#4c2731;padding:12px;border-radius:10px}.hidden{display:none!important}@media(max-width:480px){.calc{margin:2vh auto}.keys button{height:66px}.grid{grid-template-columns:repeat(3,1fr);gap:6px}.tile{border-radius:7px}.album{padding:22px 12px}.actions button{padding:12px}.toolbar h1{font-size:23px}}

.filters{display:flex;gap:8px;margin-top:24px;flex-wrap:wrap}.filters .active{background:#b4d1ff;color:#14253c}.tile{position:relative}.owner{position:absolute;bottom:0;left:0;right:0;padding:20px 8px 7px;background:linear-gradient(transparent,#000c);font-size:12px;text-align:left;color:white}.login input[name=username]{margin-bottom:4px}

/* A warm, private world beyond the calculator. */
body.romantic{color:#432f36;background:#faf6f2;color-scheme:light;min-height:100dvh;background-image:radial-gradient(ellipse at 100% 0,#f5e4e2 0,transparent 48%)}
.romantic button{transition:background .18s,transform .18s}.romantic button:active{transform:scale(.98)}.romantic button:disabled{opacity:.55;cursor:wait}.romantic :focus-visible{outline-color:#aa526e}.romantic .brand{color:#976c75;font-size:10px;letter-spacing:3px;font-weight:600}.romantic .muted{color:#88747a;font-size:12px}.romantic .primary{background:#823e57;color:#fff8f5;border:1px solid #823e57;border-radius:100px;padding:13px 21px;box-shadow:0 5px 16px #823e5714;font-size:13px}.romantic .primary:hover{background:#6b3046}.romantic .secondary{background:transparent;color:#77515d;border:1px solid #e6d9da;border-radius:100px;font-size:12px;padding:12px 17px}.romantic .secondary:hover{background:#f0e4e4}.romantic .album{max-width:1060px;padding:38px 32px 70px}.romantic .toolbar{padding-bottom:28px;border-bottom:1px solid #e9dddb}.romantic .toolbar h1{font-family:Georgia,"Songti SC","SimSun",serif;font-size:29px;letter-spacing:2px;margin:11px 0 0;font-weight:500}.title-heart{color:#b36b7e;font-size:27px;margin-left:12px}.romantic #identity{margin:10px 0 0}.romantic .actions{align-items:center;gap:8px}.memory-hero{position:relative;display:flex;justify-content:space-between;overflow:hidden;min-height:320px;margin-top:28px;border-radius:24px;padding:36px 40px;background:#f0e1df;background-image:radial-gradient(ellipse at 78% 20%,#faefdf 0,transparent 70%);border:1px solid #ecded9}.eyebrow{font-size:9px;letter-spacing:2.3px;color:#9b6a73}.hero-copy{position:relative;z-index:1}.hero-copy h2{font-family:Georgia,"Songti SC","SimSun",serif;font-size:38px;line-height:1.6;font-weight:400;letter-spacing:3px;margin:22px 0 13px}.hero-copy h2 em{font-style:normal;color:#91475f}.hero-copy p{font-size:12px;line-height:2;color:#9b747a;margin:0}.hero-foot{display:flex;align-items:center;gap:9px;margin-top:26px;font-size:10px;letter-spacing:2px;color:#976975}.small-heart{font-size:20px}.orbit-art{width:240px;align-self:center;height:240px;position:relative;flex-shrink:0;margin-right:25px;border:1px solid #c69b9b80;border-radius:50%;transform:rotate(-15deg)}.orbit-art:before,.orbit-art:after{content:'';position:absolute;border:1px solid #c69b9b70;border-radius:50%;inset:16px -17px;transform:rotate(48deg)}.orbit-art:after{inset:-14px 25px;transform:rotate(35deg)}.orbit-art i{width:13px;height:13px;background:#ac6b79;position:absolute;right:5px;top:40px;border-radius:50%;box-shadow:0 0 0 6px #ac6b7910}.orbit-art b{position:absolute;inset:38px 0;text-align:center;font-family:Georgia,serif;font-size:40px;line-height:.9;font-style:italic;font-weight:400;color:#8e5363;transform:rotate(15deg)}.orbit-art b span{font-size:27px;color:#b38c8e;line-height:1.5}.orbit-art small{position:absolute;bottom:16px;left:53px;font-size:7px;letter-spacing:2px;color:#ae7f87;transform:rotate(15deg)}.collection-heading{display:flex;align-items:center;justify-content:space-between;margin-top:33px}.collection-heading h2{font-family:Georgia,"Songti SC","SimSun",serif;font-size:22px;font-weight:400;letter-spacing:2px;margin:0}.romantic .status{color:#96536b;font-size:12px;min-height:0;margin-top:12px;overflow-wrap:anywhere}.romantic .status:empty{display:none}.romantic .filters{margin-top:20px;gap:7px}.romantic .filters .secondary{border-color:transparent;color:#927a80;padding:10px 17px}.romantic .filters .active{color:#813e56;background:#eedde2;border-color:transparent}.romantic .grid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:16px;margin-top:24px}.romantic .tile{border-radius:15px;background:#eedfe0;box-shadow:0 3px 14px #63394508}.romantic .owner{padding:26px 12px 11px;font-size:11px}.romantic .empty{border:1px dashed #ddc9cb;background:#fffaf680;margin-top:22px;padding:38px 18px 42px;border-radius:20px}.empty-heart{font-family:Georgia,serif;color:#b37c8b;font-size:40px;line-height:1}.empty h3{font-size:17px;font-weight:400;letter-spacing:2px;margin:16px 0 10px}.empty p{margin:0 0 23px}.romantic dialog{background:#fcf7f4;color:#543c44;border:1px solid #e1cbce;box-shadow:0 20px 80px #3b15254d}.romantic dialog::backdrop{background:#2c1725bb;backdrop-filter:blur(8px)}.romantic .filename{color:#896b76}.romantic .viewer-actions{flex-wrap:wrap;justify-content:center;gap:6px}.romantic .viewer-actions a{font-size:12px;color:#823e57}.romantic .danger{background:#f2dfe3;color:#883c54;font-size:12px;border-radius:100px}.romantic .login{max-width:420px;padding:36px;margin:6vh auto;background:#fffbf5b3;border:1px solid #f0dfdd;border-radius:28px;box-shadow:0 24px 80px #7c455710}.login-emblem{width:54px;height:54px;display:grid;place-items:center;background:#f3e1e4;color:#9b526a;border-radius:50%;font-size:30px;margin-bottom:26px}.romantic .login h1{font-family:Georgia,"Songti SC","SimSun",serif;font-size:31px;font-weight:400;line-height:1.6;letter-spacing:2px;margin:20px 0 8px}.romantic .login .muted{margin:0 0 28px}.field-label{display:block;font-size:11px;color:#805d69;letter-spacing:1px;margin-top:18px}.romantic .login input{margin:9px 0 0;border:1px solid #e4d6d7;border-radius:12px;background:#fffcf9;color:#563b45;padding:15px;font-size:16px}.romantic .login input::placeholder{color:#b299a1;font-size:13px}.romantic .login .primary{margin-top:26px;display:flex;justify-content:space-between;padding:15px 21px}.romantic .login .secondary{border:0;margin-top:16px;color:#a0868e}.romantic .login .status{margin:12px 0 0}.romantic .login .status:empty{display:none}
@media(max-width:600px){.romantic .album{padding:25px 20px 45px}.romantic .toolbar{gap:20px;padding-bottom:22px}.romantic .toolbar h1{font-size:26px}.romantic .actions{width:100%}.romantic .actions #upload{flex:1}.romantic .actions button{padding:11px 16px}.memory-hero{margin-top:23px;min-height:300px;padding:27px 24px;border-radius:20px}.hero-copy h2{font-size:29px;letter-spacing:2px;margin:20px 0 14px}.hero-copy p{font-size:11px}.eyebrow{font-size:8px;letter-spacing:1.6px}.orbit-art{position:absolute;width:150px;height:150px;right:-65px;top:69px;margin:0;opacity:.6}.orbit-art b{font-size:29px;inset:22px 0}.orbit-art b span{font-size:19px}.orbit-art small{font-size:5px;bottom:8px;left:27px;letter-spacing:1px}.orbit-art i{width:9px;height:9px;right:0;top:31px}.collection-heading{margin-top:28px}.collection-heading h2{font-size:21px}.romantic .filters{flex-wrap:nowrap;gap:3px;margin-top:17px}.romantic .filters .secondary{padding:10px 13px;white-space:nowrap;font-size:11px}.romantic .grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:19px}.romantic .empty{margin-top:0;padding:29px 12px}.romantic .login{margin:24px 16px;padding:28px 25px;max-width:none}.romantic .login h1{font-size:29px}.romantic .viewer-actions .secondary{padding:10px 13px}}
@media(prefers-reduced-motion:reduce){.romantic button{transition:none}}

.account-tools{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:18px}.account-dialog{width:440px;padding:25px!important}.account-form h2{font-family:Georgia,"Songti SC",serif;font-weight:400;letter-spacing:2px}.account-form fieldset{border:1px solid #e4d6d7;border-radius:14px;padding:10px 15px 18px;margin:20px 0}.account-form legend{font-size:13px;color:#823e57}.account-form input{display:block;width:100%;padding:13px;border:1px solid #e4d6d7;border-radius:10px;background:#fffcf9;color:#563b45;font:inherit;font-size:16px;margin-top:9px}.account-form .status{color:#9b3152}.account-form .viewer-actions{justify-content:flex-end}
