.app{min-height:100vh;display:flex;flex-direction:column;max-width:680px;margin:0 auto;padding:0 1.5rem}.header{padding:3rem 0 1.5rem;border-bottom:1px solid var(--rule-color);margin-bottom:2.5rem;position:relative}.masthead{text-align:center;margin-bottom:1rem}.masthead h1{font-family:var(--font-display);font-size:clamp(2rem,5vw,3rem);font-weight:900;letter-spacing:-.02em;line-height:1.1;color:var(--text-primary)}.masthead .tagline{font-family:var(--font-display);font-style:italic;font-weight:400;font-size:1.05rem;color:var(--text-muted);margin-top:.5rem}.header:after{content:"";display:block;width:100%;height:1px;background:var(--rule-color);margin-top:-1px;box-shadow:0 3px 0 var(--bg-primary),0 4px 0 var(--rule-color)}.lang-bar{display:flex;justify-content:flex-end;gap:.25rem;flex-wrap:wrap;margin-top:1rem}.lang-btn{background:none;border:none;font-family:var(--font-body);font-size:.8rem;color:var(--text-muted);cursor:pointer;padding:.15rem .4rem;transition:color .15s;text-transform:uppercase;letter-spacing:.05em}.lang-btn:hover{color:var(--text-primary)}.lang-btn.active{color:var(--accent);font-weight:600;border-bottom:1px solid var(--accent)}.form-section{margin-bottom:2.5rem}.field{margin-bottom:1.25rem}.field-label{display:block;font-family:var(--font-display);font-weight:600;font-size:.85rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-secondary);margin-bottom:.5rem}.book-input{width:100%;padding:.75rem;font-family:var(--font-body);font-size:1rem;color:var(--text-primary);background:var(--bg-input);border:1px solid var(--border);resize:vertical;min-height:72px;transition:border-color .15s}.book-input:focus{outline:none;border-color:var(--accent)}.book-input::placeholder{color:var(--text-muted);font-style:italic}.style-options{display:flex;flex-wrap:wrap;gap:.5rem}.style-pill{font-family:var(--font-body);font-size:.9rem;padding:.4rem .9rem;background:var(--bg-card);border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;transition:all .15s}.style-pill:hover{border-color:var(--text-secondary);color:var(--text-primary)}.style-pill.selected{background:var(--text-primary);color:var(--bg-primary);border-color:var(--text-primary)}.generate-btn{display:block;width:100%;padding:.85rem 2rem;margin-top:1.5rem;font-family:var(--font-display);font-size:1rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;background:var(--text-primary);color:var(--bg-primary);border:2px solid var(--text-primary);cursor:pointer;transition:all .15s}.generate-btn:hover:not(:disabled){background:transparent;color:var(--text-primary)}.generate-btn:disabled{opacity:.4;cursor:not-allowed}.generate-btn.loading{position:relative;color:transparent}.generate-btn.loading:after{content:"";position:absolute;top:50%;left:50%;width:18px;height:18px;margin:-9px 0 0 -9px;border:2px solid var(--bg-primary);border-top-color:transparent;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.error-msg{font-size:.9rem;color:var(--accent);margin-top:.75rem;font-style:italic}.review-section{margin-bottom:3rem;animation:fadeUp .4s ease-out}@keyframes fadeUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.review-header{display:flex;justify-content:space-between;align-items:baseline;border-bottom:2px solid var(--text-primary);padding-bottom:.5rem;margin-bottom:1rem;gap:.5rem;flex-wrap:wrap}.review-book-title{font-family:var(--font-display);font-size:1.3rem;font-weight:700;font-style:italic;color:var(--text-primary)}.review-style-tag{font-family:var(--font-mono);font-size:.75rem;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);white-space:nowrap}.review-body{font-family:var(--font-body);font-size:1.05rem;line-height:1.8;color:var(--text-primary);white-space:pre-wrap;margin-bottom:1.5rem}.review-body:first-letter{font-family:var(--font-display);font-size:3.2em;float:left;line-height:.8;margin-right:.08em;margin-top:.05em;font-weight:700;color:var(--accent)}.review-actions{display:flex;gap:1rem;border-top:1px solid var(--border-light);padding-top:1rem}.action-btn{font-family:var(--font-body);font-size:.85rem;background:none;border:none;color:var(--text-muted);cursor:pointer;padding:.25rem 0;transition:color .15s;text-decoration:underline;text-underline-offset:3px}.action-btn:hover{color:var(--accent)}.footer{margin-top:auto;padding:2rem 0 1.5rem;border-top:1px solid var(--border-light);text-align:center}.footer p{font-size:.8rem;color:var(--text-muted);letter-spacing:.03em}@media(max-width:600px){.app{padding:0 1rem}.header{padding-top:2rem;margin-bottom:2rem}.style-options{gap:.35rem}.style-pill{font-size:.82rem;padding:.35rem .7rem}.review-header{flex-direction:column;gap:.25rem}}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}:root{--bg-primary: #f5f0e8;--bg-secondary: #ede6d6;--bg-card: #faf7f0;--bg-input: #fff;--text-primary: #2c2416;--text-secondary: #5c4f3a;--text-muted: #8a7d6b;--accent: #8b2500;--accent-hover: #6b1c00;--accent-light: rgba(139, 37, 0, .08);--border: #d4c9b4;--border-light: #e5ddd0;--rule-color: #c4b89c;--shadow: 0 1px 3px rgba(44, 36, 22, .06);--font-display: "Playfair Display", "Noto Serif SC", "Noto Serif JP", "Noto Serif KR", Georgia, serif;--font-body: "Source Serif 4", "Noto Serif SC", "Noto Serif JP", "Noto Serif KR", Georgia, serif;--font-mono: "JetBrains Mono", "Courier New", monospace}html,body,#root{width:100%;min-height:100vh}body{font-family:var(--font-body);font-size:16px;line-height:1.6;color:var(--text-primary);background-color:var(--bg-primary);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body:before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.03;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");background-size:256px 256px}
