:root{font-family:DM Sans,"Noto Serif SC",sans-serif;color:#40372f;background:#faf7f1;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--paper: #faf7f1;--cream: #f2e9dc;--cream-deep: #e9dccb;--ink: #40372f;--muted: #8c8175;--muted-light: #b3a89b;--accent: #b96f5a;--accent-dark: #9f5948;--accent-soft: #f2e2da;--line: #e9e1d7;--white: #fffdf9;--shadow: 0 24px 70px rgba(69, 52, 38, .12)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;min-height:100vh;background:var(--paper)}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.62}a{color:inherit;text-decoration:none}.eyebrow{display:flex;align-items:center;gap:8px;margin:0;color:var(--accent);font-size:10px;font-weight:700;letter-spacing:.19em;line-height:1.5}.muted{color:var(--muted);line-height:1.8}.brand-mark{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;color:var(--accent);background:var(--accent-soft)}.setup-screen,.blocked-screen,.loading-screen{min-height:100vh;display:grid;place-items:center;padding:28px;background:radial-gradient(circle at 20% 15%,#f4e7d9,transparent 35%),var(--paper)}.setup-card,.blocked-card{width:min(100%,530px);padding:48px;border:1px solid rgba(185,111,90,.15);border-radius:24px;background:#fffdf9e6;box-shadow:var(--shadow)}.setup-card h1,.blocked-card h1{margin:17px 0 12px;font-family:"Noto Serif SC",serif;font-size:clamp(28px,5vw,38px);font-weight:500;line-height:1.5}.setup-card .muted,.blocked-card .muted{font-size:14px}.setup-steps{display:grid;gap:13px;padding-left:22px;margin:26px 0;color:#655a50;font-size:13px;line-height:1.8}.setup-steps code{padding:2px 5px;border-radius:5px;background:#f1e9df;color:#895c4c}.setup-note{display:flex;align-items:center;gap:8px;padding:12px 14px;border-radius:10px;background:#f4eee5;color:#76685a;font-size:12px}.blocked-card .primary-button{margin-top:20px}.loading-screen{gap:13px;align-content:center;color:var(--muted);font-size:13px}.loading-heart{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;color:var(--accent);background:var(--accent-soft);animation:pulse 1.5s ease-in-out infinite}.loading-screen p{margin:0}@keyframes pulse{50%{transform:scale(1.08);opacity:.7}}.login-screen{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(400px,.92fr);min-height:100vh;background:var(--paper)}.login-photo-panel{position:relative;display:flex;align-items:flex-end;min-height:680px;overflow:hidden;padding:clamp(42px,7vw,92px);color:#fffaf4;background:linear-gradient(180deg,#29221d0a 20%,#29221dad),url(https://images.unsplash.com/photo-1470252649378-9c29740c9fa8?auto=format&fit=crop&w=1800&q=85) center/cover}.login-photo-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(130deg,rgba(111,77,59,.12),transparent 45%,rgba(44,35,29,.15));pointer-events:none}.login-photo-copy{position:relative;z-index:1;max-width:580px}.photo-kicker{display:inline-flex;align-items:center;gap:8px;padding:9px 13px;border:1px solid rgba(255,255,255,.38);border-radius:30px;color:#fffaf4eb;font-size:9px;letter-spacing:.17em}.login-photo-copy h1{margin:24px 0 14px;font-family:"Noto Serif SC",serif;font-size:clamp(38px,5vw,64px);font-weight:500;line-height:1.42;letter-spacing:.02em}.login-photo-copy p{margin:0;color:#fffaf4d4;font-family:"Noto Serif SC",serif;font-size:14px;letter-spacing:.08em}.photo-credit{position:absolute;right:35px;bottom:31px;color:#fffaf49e;font-size:9px;letter-spacing:.18em}.login-form-panel{display:grid;place-items:center;padding:48px 34px}.login-form-wrap{width:min(100%,390px)}.login-form-wrap h2{margin:20px 0 8px;font-family:"Noto Serif SC",serif;font-size:34px;font-weight:500;line-height:1.45}.login-form-wrap h2 em{color:var(--accent);font-style:normal}.login-intro{margin:0 0 32px;font-size:13px}.login-form{display:grid;gap:10px}.login-form label,.field label,.edit-photo-form label{color:#665a50;font-size:12px;font-weight:600}.login-form input,.field input,.field textarea,.edit-photo-form input,.edit-photo-form textarea{width:100%;min-height:47px;padding:12px 14px;border:1px solid #e8dfd4;border-radius:9px;outline:none;color:var(--ink);background:#fffdf9;font-size:13px;transition:border-color .2s,box-shadow .2s}.login-form input:focus,.field input:focus,.field textarea:focus,.edit-photo-form input:focus,.edit-photo-form textarea:focus{border-color:#c98c78;box-shadow:0 0 0 3px #b96f5a1a}.login-form input::placeholder,.field input::placeholder,.field textarea::placeholder{color:#b6aca0}.label-row{display:flex;justify-content:space-between;align-items:center;margin-top:7px}.text-button{padding:0;border:0;color:var(--muted);background:transparent;font-size:11px}.text-button:hover,.accent-text{color:var(--accent)}.primary-button,.secondary-button{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:45px;padding:0 19px;border:1px solid transparent;border-radius:8px;font-size:12px;font-weight:600;transition:background .2s,transform .2s,box-shadow .2s}.primary-button{color:#fffaf5;background:var(--accent);box-shadow:0 5px 14px #b96f5a29}.primary-button:hover:not(:disabled){transform:translateY(-1px);background:var(--accent-dark);box-shadow:0 8px 18px #b96f5a38}.secondary-button{border-color:var(--line);color:#75695e;background:#fffdf9}.secondary-button:hover{background:#f5eee6}.login-submit{width:100%;margin-top:13px;min-height:50px}.form-error{margin:4px 0;color:#a9473e;font-size:12px;line-height:1.6}.login-footnote{display:flex;align-items:center;justify-content:center;gap:7px;margin-top:25px;color:#a69a8d;font-size:10px}.app-shell{min-height:100vh;overflow:hidden}.site-header{position:relative;z-index:3;display:flex;align-items:center;justify-content:space-between;height:78px;padding:0 clamp(24px,6.8vw,108px);border-bottom:1px solid rgba(226,216,204,.72);background:#faf7f1f0}.wordmark{display:inline-flex;align-items:center;gap:10px;font-family:"Noto Serif SC",serif;font-size:15px;font-weight:600;letter-spacing:.05em}.wordmark-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;color:var(--accent);background:var(--accent-soft)}.wordmark small{display:block;margin-top:2px;color:#a89b8d;font-family:DM Sans,sans-serif;font-size:7px;font-weight:600;letter-spacing:.16em}.header-nav{display:flex;align-items:center;gap:20px;height:100%}.nav-link{position:relative;display:flex;align-items:center;height:100%;color:#71665c;font-size:12px}.nav-link.active:after{position:absolute;right:0;bottom:-1px;left:0;height:2px;background:var(--accent);content:""}.nav-divider{width:1px;height:17px;background:var(--line)}.private-label{display:flex;align-items:center;gap:6px;color:#a1968a;font-size:9px;letter-spacing:.13em}.header-user{display:flex;align-items:center;gap:9px;color:#8b8075;font-size:11px}.online-dot{width:6px;height:6px;border-radius:50%;background:#8ba58b;box-shadow:0 0 0 3px #e8eee5}.user-email{max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.logout-button{display:inline-flex;align-items:center;gap:6px;margin-left:7px;padding:8px 0 8px 12px;border:0;border-left:1px solid var(--line);color:#8b8075;background:transparent;font-size:11px}.logout-button:hover{color:var(--accent)}.hero-section{position:relative;display:flex;align-items:center;justify-content:space-between;min-height:570px;padding:65px clamp(24px,10.5vw,168px) 86px;overflow:hidden;background:linear-gradient(110deg,#f4ece1,#f7f0e7 52%,#efe3d4)}.hero-section:before{position:absolute;top:-250px;left:38%;width:650px;height:650px;border:1px solid rgba(176,139,111,.12);border-radius:50%;content:""}.hero-section:after{position:absolute;top:-180px;left:43%;width:510px;height:510px;border:1px solid rgba(176,139,111,.1);border-radius:50%;content:""}.hero-copy{position:relative;z-index:1;max-width:590px}.hero-copy h1{margin:23px 0 18px;color:#43382f;font-family:"Noto Serif SC",serif;font-size:clamp(36px,4.6vw,57px);font-weight:500;line-height:1.55;letter-spacing:.015em}.hero-copy h1 em{color:var(--accent);font-style:normal}.hero-subtitle{margin:0;color:#897c70;font-family:"Noto Serif SC",serif;font-size:13px;line-height:2.1;letter-spacing:.04em}.hero-scroll{display:inline-flex;align-items:center;gap:10px;margin-top:37px;padding-bottom:7px;border-bottom:1px solid #cdb8a6;color:#8e6c5d;font-size:11px;letter-spacing:.08em}.hero-art{position:relative;z-index:1;width:min(39vw,460px);height:390px;margin-right:2%}.sun-disc{position:absolute;top:15px;right:40px;width:310px;height:310px;border-radius:50%;background:#e8c8ae;opacity:.65}.hero-polaroid{position:absolute;display:flex;flex-direction:column;padding:13px 13px 15px;background:#fffdf9;box-shadow:0 18px 45px #5e44302b}.hero-polaroid>span{padding-top:10px;color:#9d8d7e;font-family:"Noto Serif SC",serif;font-size:10px;text-align:center}.polaroid-back{top:60px;left:25px;width:194px;transform:rotate(-12deg)}.polaroid-front{top:28px;right:24px;width:205px;transform:rotate(8deg)}.polaroid-placeholder{display:grid;place-items:center;height:230px;color:#fffc}.back-art{background:linear-gradient(145deg,#c78f76,#e8c8ad 62%,#b77d6c)}.front-art{gap:12px;background:linear-gradient(160deg,#aeb7a3,#d7c4a8 60%,#c18d73);font-family:"Noto Serif SC",serif;font-size:13px;line-height:1.6;text-align:center}.floating-heart{position:absolute;right:4px;bottom:55px;display:grid;place-items:center;width:46px;height:46px;border-radius:50%;color:var(--accent);background:#fff8f0;box-shadow:0 8px 25px #6848321f;transform:rotate(12deg)}.hero-sparkle{position:absolute;color:#bd8b70}.sparkle-one{top:4px;left:12px;font-size:30px}.sparkle-two{right:4px;top:35px;font-size:32px}.hero-bottom-note{position:absolute;right:clamp(24px,10.5vw,168px);bottom:24px;left:clamp(24px,10.5vw,168px);display:flex;justify-content:space-between;color:#b1a091;font-size:8px;letter-spacing:.18em}.gallery-section{max-width:1300px;min-height:550px;margin:0 auto;padding:92px 46px 110px}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:25px}.section-heading h2{margin:12px 0 8px;font-family:"Noto Serif SC",serif;font-size:34px;font-weight:500;letter-spacing:.03em}.section-heading h2 span{color:var(--accent)}.section-description{margin:0;color:#978a7e;font-family:"Noto Serif SC",serif;font-size:12px;letter-spacing:.04em}.add-photo-button{min-height:43px;margin-bottom:3px}.gallery-toolbar{display:flex;align-items:center;justify-content:space-between;margin:43px 0 22px;padding:15px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.photo-count{display:flex;align-items:center;gap:7px;color:#9a8d80;font-size:11px}.photo-count svg{color:var(--accent)}.photo-count strong{color:#66584c;font-size:13px}.year-filters{display:flex;align-items:center;gap:12px;color:#a2968b;font-size:10px}.filter-select-wrap{position:relative}.filter-select-wrap select{-webkit-appearance:none;-moz-appearance:none;appearance:none;min-width:105px;padding:7px 26px 7px 10px;border:1px solid var(--line);border-radius:6px;outline:none;color:#75685d;background:#fffdf9;font-size:10px;cursor:pointer}.filter-select-wrap svg{position:absolute;top:50%;right:8px;color:#9e9185;pointer-events:none;transform:translateY(-50%)}.photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:34px 25px;align-items:start}.photo-card{display:block;min-width:0;padding:0;border:0;color:inherit;background:transparent;text-align:left}.photo-card-image{position:relative;overflow:hidden;background:#eee5d9}.photo-card-0 .photo-card-image{aspect-ratio:1 / 1.08}.photo-card-1 .photo-card-image{aspect-ratio:1 / 1.2}.photo-card-2 .photo-card-image{aspect-ratio:1 / 1.02}.photo-card-3 .photo-card-image{aspect-ratio:1 / 1.15}.photo-card-image img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .55s cubic-bezier(.2,.7,.2,1)}.photo-card:hover .photo-card-image img{transform:scale(1.045)}.photo-card-open{position:absolute;right:13px;bottom:13px;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;color:#665247;background:#fffdf9eb;opacity:0;transform:translateY(5px);transition:opacity .2s,transform .2s}.photo-card:hover .photo-card-open{opacity:1;transform:translateY(0)}.photo-card-caption{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:13px 1px 0}.photo-card-caption h3{margin:0 0 5px;color:#594c41;font-family:"Noto Serif SC",serif;font-size:14px;font-weight:500}.photo-card-caption p{margin:0;color:#a3978b;font-size:10px}.photo-card-caption>svg{flex:0 0 auto;margin-top:2px;color:#c58c79}.image-unavailable{display:grid;place-items:center;align-content:center;gap:8px;height:100%;color:#a99887;font-size:11px}.gallery-loading{display:grid;place-items:center;gap:13px;padding:100px 20px;color:#9a8e82;font-size:12px}.empty-gallery{display:grid;justify-items:center;padding:65px 20px 20px;text-align:center}.empty-illustration{position:relative;display:grid;place-items:center;width:100px;height:100px;margin-bottom:27px;border:1px solid #e6d7c8;border-radius:50%;color:#b78c75;background:#f4ece2}.empty-frame{display:grid;place-items:center;width:57px;height:68px;border:5px solid #fffdf9;background:#ead9c8;box-shadow:0 5px 13px #5d453014;transform:rotate(-7deg)}.empty-heart{position:absolute;right:-3px;bottom:6px;color:var(--accent)}.empty-gallery h3{margin:13px 0 8px;font-family:"Noto Serif SC",serif;font-size:21px;font-weight:500}.empty-gallery>p:not(.eyebrow){margin:0 0 22px;color:#9b8e82;font-family:"Noto Serif SC",serif;font-size:12px}.site-footer{display:grid;justify-items:center;padding:34px 20px 38px;border-top:1px solid var(--line);background:#f5efe7}.footer-heart{color:var(--accent)}.site-footer p{margin:9px 0 8px;color:#76685d;font-family:"Noto Serif SC",serif;font-size:13px}.site-footer>span{color:#b0a294;font-size:8px;letter-spacing:.18em}.modal-backdrop{position:fixed;z-index:20;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:24px;overflow-y:auto;background:#3027207a;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px)}.modal-card{width:min(100%,660px);max-height:min(92vh,900px);overflow-y:auto;border:1px solid rgba(255,255,255,.6);border-radius:17px;background:var(--paper);box-shadow:0 25px 90px #23191240}.upload-modal{padding:29px}.modal-heading{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:23px}.modal-heading h2{margin:7px 0 0;font-family:"Noto Serif SC",serif;font-size:24px;font-weight:500}.icon-button{display:grid;place-items:center;width:36px;height:36px;border:0;border-radius:50%;color:#7f7165;background:#f1e9df;transition:color .2s,background .2s}.icon-button:hover{color:var(--accent);background:#eadbd0}.upload-dropzone{position:relative;display:grid;place-items:center;min-height:190px;overflow:hidden;border:1px dashed #d8c4b2;border-radius:11px;background:#f4ede4;cursor:pointer}.upload-dropzone.has-file{min-height:220px}.upload-dropzone>img{display:block;width:100%;max-height:300px;object-fit:contain}.upload-placeholder{display:grid;justify-items:center;gap:9px;color:#a27b67}.upload-placeholder strong{color:#6c5b4e;font-family:"Noto Serif SC",serif;font-size:14px;font-weight:500}.upload-placeholder span{color:#a89a8c;font-size:10px}.change-photo-hint{position:absolute;right:10px;bottom:10px;padding:6px 9px;border-radius:5px;color:#fff;background:#372b23a6;font-size:10px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-top:20px}.field{display:grid;gap:7px;min-width:0}.field.full{grid-column:1 / -1}.field input{min-height:42px}.field textarea,.edit-photo-form textarea{min-height:82px;resize:vertical}.modal-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:21px}.photo-backdrop{padding:28px}.photo-modal{position:relative;display:grid;grid-template-columns:minmax(0,1.12fr) minmax(340px,.88fr);width:min(100%,1100px);min-height:min(690px,88vh);max-height:88vh;overflow:hidden;border-radius:14px;background:#fffdf9;box-shadow:0 25px 90px #2319124d}.photo-close{position:absolute;z-index:3;top:14px;right:14px;color:#5e5045;background:#fffdf9e0}.photo-viewer{position:relative;display:grid;place-items:center;min-height:500px;overflow:hidden;background:#29231f}.photo-viewer img{display:block;width:100%;height:100%;max-height:88vh;object-fit:contain}.viewer-caption{position:absolute;bottom:17px;left:19px;display:flex;align-items:center;gap:7px;color:#fffaf4c2;font-size:8px;letter-spacing:.16em;text-shadow:0 1px 5px rgba(0,0,0,.4)}.photo-detail-panel{display:flex;flex-direction:column;min-width:0;max-height:88vh;padding:28px 25px 17px}.detail-topline{display:flex;align-items:center;justify-content:space-between;min-height:32px}.subtle-icon{width:31px;height:31px;background:#f5eee7}.menu-wrap{position:relative}.action-menu{position:absolute;z-index:4;top:37px;right:0;width:165px;padding:5px;border:1px solid var(--line);border-radius:9px;background:#fffdf9;box-shadow:0 10px 25px #3c2d2121}.action-menu button{display:flex;align-items:center;gap:8px;width:100%;padding:10px;border:0;border-radius:6px;color:#65594f;background:transparent;font-size:11px;text-align:left}.action-menu button:hover{background:#f5eee7}.action-menu .danger-text{color:#a94f45}.photo-detail-title{margin:16px 0 12px;color:#4d4137;font-family:"Noto Serif SC",serif;font-size:25px;font-weight:500;line-height:1.4}.photo-meta{display:flex;flex-wrap:wrap;gap:13px;color:#9b8d80;font-size:10px}.photo-meta span{display:inline-flex;align-items:center;gap:5px}.photo-description{margin:16px 0 19px;color:#786b60;font-family:"Noto Serif SC",serif;font-size:12px;line-height:1.9;white-space:pre-wrap}.comments-heading{display:flex;align-items:center;justify-content:space-between;margin-top:auto;padding:18px 0 12px;border-top:1px solid var(--line);color:#b17c68}.comments-heading h3{margin:0 0 3px;color:#5d5045;font-family:"Noto Serif SC",serif;font-size:14px;font-weight:500}.comments-heading p{margin:0;color:#aa9d91;font-size:9px}.comments-list{display:flex;flex:1 1 auto;flex-direction:column;gap:15px;min-height:110px;max-height:245px;padding:5px 2px 14px 0;overflow-y:auto;scrollbar-color:#ddcfc1 transparent;scrollbar-width:thin}.empty-comments{display:flex;align-items:center;justify-content:center;gap:8px;min-height:90px;margin:0;color:#a99c90;font-family:"Noto Serif SC",serif;font-size:11px}.empty-comments svg{color:#c58c79}.comment{position:relative;display:flex;align-items:flex-start;gap:9px;padding-right:35px}.comment-avatar,.composer-avatar{display:grid;flex:0 0 auto;place-items:center;width:29px;height:29px;border-radius:50%;color:#986d5a;background:#f1e4d9;font-family:"Noto Serif SC",serif;font-size:10px}.my-comment .comment-avatar{color:#71816d;background:#e8ede3}.comment-content{min-width:0;flex:1}.comment-author-row{display:flex;align-items:center;gap:9px;margin:1px 0 5px}.comment-author-row strong{color:#66594e;font-size:10px}.comment-author-row time{color:#b0a498;font-size:8px}.comment-content>p{margin:0;color:#786b60;font-family:"Noto Serif SC",serif;font-size:11px;line-height:1.7;white-space:pre-wrap;overflow-wrap:anywhere}.comment-actions{position:absolute;top:0;right:0;display:flex;gap:3px;opacity:.55}.comment-actions button{display:grid;place-items:center;width:24px;height:24px;border:0;border-radius:5px;color:#8e8176;background:transparent}.comment-actions button:hover{color:var(--accent);background:#f4ece4}.comment-edit textarea{width:100%;padding:8px;border:1px solid var(--line);border-radius:6px;outline:none;color:var(--ink);background:#fffdf9;font-size:11px;resize:vertical}.comment-edit .inline-actions{justify-content:flex-end;margin-top:6px}.inline-actions{display:flex;align-items:center;gap:12px}.comment-composer{display:flex;align-items:center;gap:8px;padding:9px;border:1px solid #eae1d7;border-radius:9px;background:#fbf8f3}.composer-avatar{width:26px;height:26px;color:#fffaf5;background:#bd8975;font-family:DM Sans,sans-serif;font-size:9px}.comment-composer input{flex:1;min-width:0;padding:7px 0;border:0;outline:none;color:var(--ink);background:transparent;font-family:"Noto Serif SC",serif;font-size:10px}.comment-composer input::placeholder{color:#b4a89c}.comment-composer button{display:grid;place-items:center;width:31px;height:31px;border:0;border-radius:7px;color:#fffaf5;background:var(--accent)}.comment-composer button:disabled{background:#cdb9aa}.private-hint{display:flex;align-items:center;justify-content:center;gap:5px;margin:10px 0 0;color:#b2a69a;font-size:8px}.edit-photo-form{display:grid;gap:11px;padding:8px 0 12px}.edit-photo-form h2{margin:0 0 2px;font-family:"Noto Serif SC",serif;font-size:18px;font-weight:500}.edit-photo-form label{display:grid;gap:6px}.edit-photo-form input{min-height:38px}.edit-photo-form textarea{min-height:70px}.small-button{min-height:34px;padding:0 12px;font-size:10px}.toast{position:fixed;z-index:40;right:22px;bottom:22px;display:flex;align-items:center;gap:10px;max-width:min(440px,calc(100vw - 44px));padding:13px 15px;border:1px solid #e8ded3;border-radius:10px;color:#66594f;background:#fffdf9;box-shadow:0 12px 35px #34271c26;font-size:11px;line-height:1.5}.toast>span{display:grid;place-items:center;color:#789174}.toast.error>span{color:#ae554b}.toast button{display:grid;place-items:center;margin-left:4px;border:0;color:#a99d91;background:transparent}@media(max-width:1000px){.hero-section{padding-right:7vw;padding-left:7vw}.hero-art{width:38vw;transform:scale(.88);transform-origin:center right}.hero-bottom-note{right:7vw;left:7vw}.gallery-section{padding-right:34px;padding-left:34px}.photo-modal{grid-template-columns:minmax(0,1fr) minmax(320px,.92fr)}.photo-detail-panel{padding-right:19px;padding-left:19px}}@media(max-width:760px){.login-screen{grid-template-columns:1fr}.login-photo-panel{min-height:300px;padding:35px 28px}.login-photo-copy h1{margin:16px 0 8px;font-size:36px}.login-photo-copy p{font-size:11px}.photo-credit{right:20px;bottom:16px;font-size:7px}.login-form-panel{padding:38px 26px 52px}.login-form-wrap h2{font-size:29px}.site-header{height:68px;padding:0 19px}.header-nav{display:none}.wordmark{font-size:13px}.user-email{display:none}.logout-button{margin-left:0}.hero-section{min-height:auto;padding:62px 27px 76px}.hero-copy{max-width:100%}.hero-copy h1{font-size:clamp(33px,8vw,45px)}.hero-subtitle{max-width:340px;font-size:11px}.desktop-break{display:none}.hero-art{position:absolute;right:-90px;bottom:-120px;width:310px;height:280px;opacity:.18;transform:scale(.8)}.hero-bottom-note{right:27px;left:27px;bottom:18px;font-size:7px}.gallery-section{min-height:470px;padding:63px 22px 75px}.section-heading{align-items:flex-start}.section-heading h2{font-size:27px}.section-description{max-width:240px;font-size:10px;line-height:1.8}.add-photo-button{min-height:38px;padding:0 11px;white-space:nowrap;font-size:10px}.gallery-toolbar{margin-top:31px}.year-filters>span{display:none}.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:25px 13px}.photo-card-caption h3{font-size:12px}.photo-card-caption p{font-size:9px;line-height:1.6}.photo-card-caption>svg{width:13px}.empty-gallery{padding-top:45px}.empty-gallery h3{font-size:17px}.empty-gallery>p:not(.eyebrow){max-width:290px;font-size:10px;line-height:1.8}.site-footer{padding:28px 15px 32px}.modal-backdrop{padding:12px}.upload-modal{padding:20px}.form-grid{grid-template-columns:1fr;gap:12px}.field.full{grid-column:auto}.modal-actions{flex-direction:column-reverse}.modal-actions button{width:100%}.photo-backdrop{display:block;padding:0}.photo-modal{display:flex;flex-direction:column;width:100%;min-height:100vh;max-height:none;border-radius:0;overflow:visible}.photo-viewer{flex:0 0 auto;min-height:43vh;max-height:52vh}.photo-viewer img{max-height:52vh}.photo-close{position:fixed;top:12px;right:12px}.photo-detail-panel{flex:1 1 auto;max-height:none;padding:20px 20px 22px}.comments-list{max-height:240px}.comments-heading{margin-top:19px}.photo-detail-title{font-size:22px}.toast{right:12px;bottom:12px}}@media(max-width:390px){.header-user{gap:6px}.logout-button span{display:none}.section-heading{gap:10px}.section-heading h2{font-size:24px}.add-photo-button{padding:0 9px;font-size:9px}.photo-grid{gap:21px 10px}}
