:root{--color-background: #f7f1e5;--color-surface: #fffaf0;--color-surface-warm: #faf5e9;--color-primary: #657a5b;--color-primary-dark: #4f6448;--color-primary-soft: #e4eadc;--color-brown: #745b43;--color-text: #3b352d;--color-text-light: #6f675c;--color-border: #d8ccb9;--color-danger: #a6534e;--color-danger-dark: #87413d;--shadow-card: 0 12px 32px rgba(83, 67, 48, .075);--shadow-photo: 0 8px 22px rgba(68, 54, 38, .1);--border-radius: 18px}[hidden]{display:none!important}#auth-actions{display:flex;flex-wrap:wrap;gap:12px}#auth-actions button,#user-panel button{min-height:48px}#forgot-password-button{color:#4f6448;background:transparent;border:1px solid #aebca4;box-shadow:none}#forgot-password-button:hover{color:#fff;background-color:var(--color-primary)}#password-recovery-form{margin-top:8px;padding:22px;background:repeating-linear-gradient(0deg,transparent 0 25px,rgba(126,145,112,.05) 26px 27px),#faf5e9;border:1px solid #d8ccb9;border-radius:12px}#password-recovery-form h3{margin:0;font-family:Georgia,Yu Mincho,Hiragino Mincho ProN,serif;font-size:1.2rem}#password-recovery-form>p{margin-bottom:0}#password-recovery-form button[type=submit]{justify-self:start}button:disabled{cursor:wait;opacity:.62}*,*:before,*:after{box-sizing:border-box}body{margin:0;color:var(--color-text);background-color:var(--color-background);background-image:radial-gradient(circle at 12% 8%,rgba(255,254,249,.96) 0,transparent 31%),radial-gradient(circle at 88% 34%,rgba(213,222,201,.3) 0,transparent 27%),linear-gradient(180deg,#faf6ed,#f3ecdd);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans JP,sans-serif;font-size:16px;line-height:1.7}header{position:relative;overflow:hidden;width:100%;height:clamp(210px,58vw,300px);padding:0;background-color:#d8c3a4;background-image:url(./header-photo-memo-BwfEYPLC.png);background-position:center center;background-repeat:no-repeat;background-size:cover;border-bottom:1px solid rgba(103,78,51,.22);box-shadow:0 5px 18px #4b3a271f}.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.header-inner{position:relative;display:grid;grid-template-columns:72px minmax(0,1fr) 72px;align-items:center;gap:16px;max-width:960px;margin:0 auto}.header-title{position:relative;z-index:2;text-align:center}header h1{margin:0;font-size:1.75rem;font-family:Georgia,Yu Mincho,Hiragino Mincho ProN,serif;letter-spacing:.07em;text-shadow:0 1px 0 rgba(255,255,255,.48)}.header-title p{margin:4px 0 0;color:#5c4d3c;font-size:.83rem;letter-spacing:.04em}.album-decoration{position:relative;width:72px;height:66px;opacity:.82;pointer-events:none}.decoration-photo,.decoration-note{position:absolute;display:block;width:43px;height:50px;background:#fffaf0;border:1px solid rgba(91,69,45,.28);border-radius:3px;box-shadow:0 4px 9px #4d392529;transform:rotate(-7deg)}.decoration-photo:before{position:absolute;inset:6px 6px 14px;background:linear-gradient(145deg,transparent 48%,#647b59 49% 68%,transparent 69%),linear-gradient(35deg,transparent 45%,#8fa07d 46% 68%,transparent 69%),#dfe8dc;content:""}.decoration-leaf{position:absolute;right:5px;bottom:5px;width:37px;height:20px;background:#75896a;border-radius:100% 0;box-shadow:-11px -12px 0 -4px #93a486;transform:rotate(-24deg)}.decoration-camera{position:absolute;top:15px;right:0;width:50px;height:34px;background:#69775e;border:2px solid rgba(70,62,48,.35);border-radius:7px;box-shadow:0 4px 9px #4d392529}.decoration-camera:before{position:absolute;top:6px;left:16px;width:16px;height:16px;background:#d8c9ad;border:4px solid #4f5d48;border-radius:50%;content:""}.decoration-camera:after{position:absolute;top:-7px;left:7px;width:17px;height:7px;background:#69775e;border-radius:3px 3px 0 0;content:""}.decoration-note{right:25px;bottom:-2px;width:34px;height:42px;background:repeating-linear-gradient(#fffaf0 0 8px,#d9cdb9 9px 10px);transform:rotate(8deg)}main{width:100%;max-width:960px;margin:0 auto;padding:28px 16px 52px}section{margin-bottom:24px;padding:24px 20px;background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius);box-shadow:var(--shadow-card)}h2{position:relative;margin:0 0 20px;padding-left:17px;color:#594735;font-size:1.25rem;line-height:1.4}h2:before{position:absolute;top:.2em;bottom:.2em;left:0;width:5px;background:linear-gradient(var(--color-primary),#91a184);border-radius:99px;content:""}h2:after{display:inline-block;width:18px;height:10px;margin-left:9px;background:#90a184;border-radius:100% 0;content:"";opacity:.78;transform:rotate(-14deg) translateY(-1px)}h3{color:#4b3e31}p{margin-top:0;color:var(--color-text-light)}form{display:grid;gap:20px}label,form div>p{display:block;margin:0 0 8px;color:var(--color-text);font-size:.95rem;font-weight:600}label:before,form div>p:before{display:inline-block;width:7px;height:7px;margin-right:7px;background:#829477;border-radius:50% 0 50% 50%;content:"";transform:rotate(-35deg) translateY(-1px)}input,textarea,select,button{font:inherit}input[type=text],input[type=email],input[type=password],input[type=date],select,textarea{display:block;width:100%;padding:12px 14px;color:var(--color-text);background-color:#fffdf8;border:1px solid var(--color-border);border-radius:10px;outline:none;transition:border-color .2s,box-shadow .2s}input[type=text],input[type=email],input[type=password],input[type=date],select{min-height:48px}textarea{min-height:132px;resize:vertical}input[type=file]{display:block;width:100%;min-height:48px;padding:8px;color:var(--color-text-light);background-color:var(--color-surface-warm);border:1px dashed var(--color-border);border-radius:10px}input[type=file]::file-selector-button{margin-right:12px;padding:8px 14px;color:#43563d;background-color:var(--color-primary-soft);border:0;border-radius:8px;font-weight:600;cursor:pointer}input:focus,textarea:focus,select:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #657a5b2e}#photo-preview{display:block;width:100%;max-height:420px;background-color:#faf5e8;background-image:linear-gradient(45deg,rgba(137,154,123,.035) 25%,transparent 25%),linear-gradient(-45deg,rgba(137,154,123,.035) 25%,transparent 25%);border:1px solid var(--color-border);border-radius:14px;object-fit:contain}#photo-preview:not([src]){min-height:210px}.preview-field{position:relative}.preview-placeholder{position:absolute;right:18px;bottom:18px;left:18px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;min-height:174px;color:#817667;font-size:.9rem;text-align:center;pointer-events:none}.preview-placeholder-icon{position:relative;width:48px;height:38px;border:2px solid #9cac91;border-radius:7px}.preview-placeholder-icon:before{position:absolute;top:9px;left:15px;width:12px;height:12px;border:3px solid #9cac91;border-radius:50%;content:""}.preview-placeholder-icon:after{position:absolute;top:-7px;left:7px;width:16px;height:7px;background:#9cac91;border-radius:3px 3px 0 0;content:""}#photo-preview[src]+.preview-placeholder{display:none}button{min-height:48px;padding:11px 20px;color:#fff;background-color:var(--color-primary);border:0;border-radius:11px;box-shadow:0 3px 8px #42533a24;font-weight:700;cursor:pointer;transition:background-color .2s,transform .1s}button:hover{background-color:var(--color-primary-dark)}button:active{transform:translateY(1px)}button:focus-visible{outline:3px solid rgba(101,122,91,.36);outline-offset:3px}form button[type=submit]{width:100%}#search-controls{display:grid;gap:18px;margin-bottom:30px;padding:20px;background:linear-gradient(#fffcf4b8,#f7f1e4e0),repeating-linear-gradient(0deg,transparent 0 25px,rgba(126,145,112,.055) 26px 27px);border:1px solid #ded1bc;border-radius:12px;box-shadow:inset 0 1px #ffffffc7}#search-controls label{color:#5e5143;font-size:.86rem;letter-spacing:.02em}#search-controls input,#search-controls select{background-color:#fffdf7f5;border-color:#cfc3af}#photo-list{display:grid;grid-template-columns:1fr;gap:28px;align-items:start}#photo-list>article{overflow:hidden;padding:10px 10px 14px;background:repeating-linear-gradient(7deg,rgba(113,91,63,.018) 0 1px,transparent 1px 5px),linear-gradient(135deg,rgba(255,255,255,.58),transparent 42%),#fffaf0;border:1px solid #ded1bd;border-radius:8px;box-shadow:0 9px 24px #4a3a271c,0 2px 5px #4a3a270f;cursor:pointer;transition:border-color .2s,box-shadow .2s,transform .2s}#photo-list>article:nth-of-type(3n+1){transform:rotate(-.35deg)}#photo-list>article:nth-of-type(3n+2){transform:rotate(.28deg)}#photo-list>article:nth-of-type(3n){transform:rotate(-.12deg)}#photo-list>article:hover{border-color:#aebc9f;box-shadow:0 13px 29px #46392824,0 3px 7px #46392812;transform:translateY(-3px) rotate(0)}#photo-list>article:focus-visible{outline:3px solid rgba(101,122,91,.34);outline-offset:3px}#photo-list article img{display:block;width:100%;aspect-ratio:5 / 4;object-fit:cover;border:1px solid rgba(118,99,75,.18);border-radius:3px;box-shadow:0 2px 7px #3e31221a}#photo-list article h3{margin:17px 8px 9px;color:#4c3b2c;font-family:Georgia,Yu Mincho,Hiragino Mincho ProN,serif;font-size:1.18rem;line-height:1.45}#photo-list article p{margin:3px 8px;color:#776d60;font-size:.84rem;line-height:1.55}#photo-list>p{padding:34px 20px;background:#fffaf0b8;border:1px dashed #cfc1aa;border-radius:10px;text-align:center}.favorite-button{min-height:44px;margin:14px 8px 0;color:#4c6245;background-color:#e5ebde;border:1px solid #c7d2bd;box-shadow:none}.favorite-button:hover{color:#fff;background-color:var(--color-primary)}.favorite-button.is-favorite{color:#fffdf7;background-color:#738766;border-color:#66795a}#photo-detail{position:relative;overflow:hidden;background:repeating-linear-gradient(5deg,rgba(130,107,76,.018) 0 1px,transparent 1px 7px),#fffaf0}#detail-content{min-height:180px;padding:18px;background:linear-gradient(90deg,transparent 49.6%,rgba(107,86,60,.06) 50%,transparent 50.4%),#fffcf49e;border:1px solid rgba(205,190,166,.72);border-radius:8px;box-shadow:inset 0 1px #ffffffe0,0 4px 13px #4d3c280b}#detail-content img{display:block;width:100%;max-height:560px;margin-bottom:20px;padding:9px;background:#fffdf8;border:1px solid var(--color-border);border-radius:6px;box-shadow:var(--shadow-photo);object-fit:contain}#detail-content h3{margin:4px 0 14px;color:#49382a;font-family:Georgia,Yu Mincho,Hiragino Mincho ProN,serif;font-size:clamp(1.35rem,4vw,1.75rem)}#detail-content p{margin:7px 0;color:#6c6256;font-size:.94rem}#detail-content p:last-child:not(:only-child){margin-top:18px;padding:15px;color:#544b40;background:#efe9dab3;border-left:3px solid #9baa8f;border-radius:0 8px 8px 0;white-space:pre-wrap}#detail-content>p:only-child{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:180px;margin:0;padding:28px 16px;color:#817667;text-align:center}#photo-detail:has(#detail-content:empty)>#edit-button,#photo-detail:has(#detail-content:empty)>#delete-button,#photo-detail:has(#detail-content>p:only-child)>#edit-button,#photo-detail:has(#detail-content>p:only-child)>#delete-button{display:none}#detail-content>p:only-child:before{width:58px;height:44px;margin-bottom:18px;background:radial-gradient(circle at 63% 31%,#fffaf0 0 4px,transparent 5px),linear-gradient(145deg,transparent 48%,#7d9271 49% 67%,transparent 68%),linear-gradient(35deg,transparent 44%,#a2b197 45% 67%,transparent 68%),#dfe7d8;border:2px solid #91a184;border-radius:6px;box-shadow:13px 9px 0 -5px #e6dcc9;content:"";transform:rotate(-2deg)}#detail-content .favorite-button{margin:4px 0 10px}#photo-detail>button{width:100%;margin-top:12px}#delete-button{background-color:var(--color-danger)}#auth-message,#form-message,#supabase-config-message{margin-top:14px;font-weight:600}#delete-button:hover{background-color:var(--color-danger-dark)}@media(min-width:700px){header{height:clamp(360px,42vw,520px);padding:0}header h1{font-size:2rem}.header-title p{font-size:.92rem}main{padding:40px 24px 72px}section{margin-bottom:32px;padding:32px}#photo-list,#search-controls{grid-template-columns:repeat(2,minmax(0,1fr))}#detail-content:not(:has(>p:only-child)){display:grid;grid-template-columns:minmax(0,1.35fr) minmax(230px,.85fr);grid-template-rows:auto auto auto auto auto 1fr;column-gap:54px;align-items:start;padding:30px}#detail-content:not(:has(>p:only-child))>img{grid-row:1 / -1;margin:0}#detail-content:not(:has(>p:only-child))>h3,#detail-content:not(:has(>p:only-child))>p,#detail-content:not(:has(>p:only-child))>.favorite-button{margin-right:8px;margin-left:8px}form button[type=submit]{width:auto;min-width:180px;justify-self:start}#photo-detail>button{width:auto;min-width:140px;margin-right:8px}}@media(min-width:960px){#photo-list{grid-template-columns:repeat(3,minmax(0,1fr))}#search-controls{grid-template-columns:minmax(0,1.5fr) repeat(3,minmax(140px,1fr))}}
