:root{--color-bg: #f6efe0;--color-bg-pattern: #ece2cc;--color-indigo-start: #2c3a94;--color-indigo-end: #7b3fe4;--color-pink: #d6316f;--color-ink: #262135;--color-card-bg: #fffdf7;--color-card-border: #e7ddc4;--shadow-card: 0 6px 16px rgba(44, 32, 10, .12);font-family:Hiragino Sans,Hiragino Kaku Gothic ProN,Yu Gothic,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--color-bg);color:var(--color-ink)}.page{min-height:100vh;padding-bottom:4rem}.hero{text-align:center;padding:4rem 1.5rem 3rem;background:linear-gradient(135deg,var(--color-indigo-start),var(--color-indigo-end));color:#fff;border-bottom:6px solid var(--color-pink)}.hero-title{font-size:3rem;font-weight:800;margin:0 0 .75rem;letter-spacing:.02em}.hero-description{max-width:40rem;margin:0 auto 2rem;line-height:1.8;font-size:1rem;opacity:.92}.btn{border:none;border-radius:999px;font-weight:700;cursor:pointer;transition:transform .15s ease,opacity .15s ease}.btn:hover{transform:translateY(-1px)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-primary{background:var(--color-pink);color:#fff;padding:.75rem 1.5rem}.btn-large{font-size:1.05rem;padding:1rem 2.25rem}.btn-ghost{background:transparent;color:var(--color-ink);border:1px solid var(--color-card-border);padding:.75rem 1.5rem}.talk-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1.5rem;max-width:72rem;margin:3rem auto 0;padding:0 1.5rem}.status-message{grid-column:1 / -1;text-align:center;color:#6b6455;padding:2rem 0}.talk-card{background:var(--color-card-bg);border:1px solid var(--color-card-border);border-radius:4px;box-shadow:var(--shadow-card);padding:1rem 1.1rem;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease;display:flex;flex-direction:column;gap:.75rem;position:relative}.talk-card:before{content:"";position:absolute;top:-6px;left:50%;transform:translate(-50%);width:2.5rem;height:.6rem;background:#d6316f59;border-radius:2px}.talk-card:hover{transform:translateY(-3px) rotate(-.3deg);box-shadow:0 10px 20px #2c200a29}.talk-card-row{display:flex;gap:.75rem}.talk-card-header{align-items:center;justify-content:space-between}.talk-card-title{font-weight:700;font-size:1.05rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.heart-button{display:inline-flex;align-items:center;gap:.3rem;border:none;background:transparent;cursor:pointer;color:var(--color-ink);font-weight:700;padding:.2rem .5rem;border-radius:999px;flex-shrink:0}.heart-icon{font-size:1.15rem;color:var(--color-pink)}.heart-button.voted{background:#d6316f1f}.talk-card-body{align-items:flex-start}.talk-card-column{flex:1;margin:0;font-size:.85rem;line-height:1.5;color:#4a4436;min-width:0}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#2621358c;display:flex;align-items:center;justify-content:center;padding:1.5rem;z-index:50}.modal-panel{background:var(--color-card-bg);border-radius:8px;max-width:32rem;width:100%;max-height:90vh;overflow-y:auto;padding:2rem;box-shadow:0 20px 50px #0000004d}.talk-detail{max-width:36rem}.modal-title{margin:0 0 1.25rem;font-size:1.5rem;font-weight:800}.detail-section{margin-bottom:1.25rem}.detail-section h3{margin:0 0 .4rem;font-size:.85rem;color:var(--color-pink);text-transform:uppercase;letter-spacing:.05em}.detail-section p{margin:0;line-height:1.7;white-space:pre-wrap}.request-form,.edit-unlock-form{display:flex;flex-direction:column;gap:1.1rem;margin-top:1rem}.form-field{display:flex;flex-direction:column;gap:.35rem}.form-label{display:flex;justify-content:space-between;font-size:.85rem;font-weight:700;color:#4a4436}.char-count{font-weight:400;color:#9a927b}input,textarea{border:1px solid var(--color-card-border);border-radius:6px;padding:.6rem .75rem;font-size:.95rem;font-family:inherit;resize:vertical}input:focus,textarea:focus{outline:2px solid var(--color-indigo-end);outline-offset:1px}.form-error{color:var(--color-pink);font-size:.85rem;margin:0}.modal-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:.5rem}.password-reveal{font-family:SFMono-Regular,Consolas,monospace;font-size:1.2rem;font-weight:700;letter-spacing:.05em;background:#f2ecd8;border:1px dashed var(--color-card-border);border-radius:6px;padding:.9rem 1rem;text-align:center;word-break:break-all}
