:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--ink:#293c32;--muted:#6f786f;--paper:#f5f3ec;--accent:#355f49}*{box-sizing:border-box}body{background:var(--paper);color:var(--ink);margin:0;font-family:Arial,PingFang SC,Microsoft YaHei,sans-serif;line-height:1.6}.shell{width:min(100% - 40px,960px);margin:0 auto;padding:38px 0}.login-shell{max-width:440px}.brand{letter-spacing:.06em;font-size:20px;font-weight:600}.brand span{letter-spacing:.18em;color:var(--muted);font-size:10px;font-weight:400;display:block}header{justify-content:space-between;align-items:start;gap:20px;display:flex}.card{background:#fffcf6;border:1px solid #e3e3d8;border-radius:20px;margin-top:48px;padding:36px}.house{color:var(--accent);margin-bottom:22px;font-size:48px;line-height:1}h1{letter-spacing:.02em;margin:0 0 12px;font-size:clamp(25px,5vw,32px);font-weight:500}.muted{color:var(--muted);margin:0 0 28px}label{margin:20px 0 7px;font-size:14px;display:block}input{width:100%;min-height:48px;color:var(--ink);font:inherit;background:#fff;border:1px solid #b8c2b7;border-radius:8px;padding:10px 12px;font-size:16px;display:block}button{cursor:pointer;background:var(--accent);color:#fff;width:100%;min-height:48px;font:inherit;border:0;border-radius:8px;padding:12px 20px}button:disabled{opacity:.65;cursor:wait}button:hover:not(:disabled){filter:brightness(.92)}input:focus-visible,button:focus-visible{outline-offset:3px;outline:3px solid #a9c2a9}.footnote{color:var(--muted);margin:24px 0 0;font-size:12px}.error{color:#9b352c;font-size:14px}.error:empty{display:none}.secondary{color:var(--accent);white-space:nowrap;background:0 0;border:1px solid #bac8ba;width:auto}.logout{text-align:right}.empty{text-align:center;padding:85px 20px}.empty .muted{margin-bottom:0;line-height:2}.eyebrow{letter-spacing:.2em;color:var(--muted);margin:0 0 16px;font-size:12px}@media (max-width:480px){.shell{padding-top:24px}.card{margin-top:32px;padding:28px 24px}.empty{padding:65px 20px}}a{color:var(--accent);text-underline-offset:4px}textarea{width:100%;color:var(--ink);font:inherit;resize:vertical;background:#fff;border:1px solid #b8c2b7;border-radius:8px;padding:12px;font-size:16px;display:block}textarea:focus-visible,a:focus-visible{outline-offset:3px;outline:3px solid #a9c2a9}textarea[readonly],input[readonly]{background:#f2f2ed}.button{background:var(--accent);color:#fff;text-align:center;border-radius:8px;min-height:48px;padding:12px 20px;text-decoration:none;display:inline-block}.button.secondary{color:var(--accent);background:0 0}.empty .button{margin-top:28px}.writing-shell{max-width:720px}.required,.optional{color:var(--muted);margin-left:6px;font-size:12px}.field-hint{color:var(--muted);margin:6px 0 24px;font-size:13px}.field-hint.error{color:#9b352c}.notice{background:#eef0e7;border-radius:8px;padding:14px;font-size:14px}.list-heading{justify-content:space-between;align-items:center;gap:20px;margin:48px 0 24px;display:flex}.list-heading .muted{margin:0}.list-heading .button{flex-shrink:0}.memory-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;display:grid}.memory-card{min-width:0;color:var(--ink);background:#fffcf6;border:1px solid #e3e3d8;border-radius:16px;padding:26px;text-decoration:none;display:block}.memory-card:hover{border-color:#9baf9c}.memory-year{color:var(--muted);margin:0 0 18px;font-size:14px}.memory-preview{white-space:pre-wrap;overflow-wrap:anywhere;-webkit-line-clamp:4;-webkit-box-orient:vertical;margin:0 0 20px;display:-webkit-box;overflow:hidden}.tags{flex-wrap:wrap;gap:8px;display:flex}.tags span{overflow-wrap:anywhere;background:#edf0e7;border-radius:6px;max-width:100%;padding:3px 10px;font-size:13px}.read-more{color:var(--accent);margin-top:22px;font-size:14px;display:block}.memory-text{white-space:pre-wrap;overflow-wrap:anywhere;margin:26px 0;line-height:1.9}.pagination{justify-content:space-between;align-items:center;gap:16px;margin:28px 0;display:flex}.memory-photo{object-fit:contain;border-radius:10px;width:100%;max-height:480px;margin-bottom:18px;display:block}.memory-card .memory-photo{object-fit:cover;height:200px}.photo-detail{margin:24px 0}.photo-detail figcaption{color:var(--muted);font-size:13px}.search-panel{margin-top:32px}.search-panel .field-hint{margin-bottom:12px}.search-actions{align-items:end;gap:20px;display:flex}.search-actions>div{flex:1}.search-actions button{width:auto;min-width:100px}@media (max-width:600px){.memory-list{grid-template-columns:1fr}.list-heading h1{font-size:24px}.list-heading{gap:12px}}
