 :root {
  --bg:#f1e9d8; --card:#fbf5e6; --paper:#fffaf0; --tx:#2b2118;
  --mu:#766653; --bd:#d8c9ad; --ac:#7a1f3d; --film:#7a1f3d;
  --libro:#2f4a6d; --racconto:#46633a; --shadow:0 7px 24px rgba(68,48,25,.07);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--tx);font-family:'Lora',Georgia,serif;line-height:1.6;min-height:100vh}
.paper-grain{position:fixed;inset:0;pointer-events:none;z-index:-1;opacity:.19;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.18'/%3E%3C/svg%3E")}
button,input,textarea,select{font:inherit}
button{cursor:pointer}
.site-header{max-width:1080px;margin:auto;padding:22px 28px;display:flex;justify-content:space-between;align-items:center;gap:20px;border-bottom:1px solid rgba(126,99,64,.2)}
.brand{display:flex;align-items:center;gap:12px;color:var(--tx);text-decoration:none}
.brand-mark{width:42px;height:42px;border:1px solid var(--ac);border-radius:50%;display:grid;place-items:center;color:var(--ac);font:600 25px 'Playfair Display',serif}
.brand strong{display:block;font:700 23px 'Playfair Display',serif;letter-spacing:.2px}
.brand small{display:block;color:var(--mu);font-size:10px;letter-spacing:1.3px;text-transform:uppercase}
.header-account{display:flex;align-items:center;gap:10px}.user-label{font-size:12px;color:var(--mu)}
.layout{max-width:780px;margin:0 auto;padding:35px 22px 70px}
.intro{text-align:center;padding:15px 0 28px}.eyebrow{font-size:10px;letter-spacing:2px;color:var(--mu);font-weight:600;margin:0 0 8px}
h1,h2,h3{font-family:'Playfair Display',Georgia,serif;line-height:1.2}
h1{font-size:clamp(38px,7vw,57px);font-weight:600;margin:8px 0 13px;letter-spacing:-.8px}
h1 em{color:var(--ac);font-weight:500}.intro-copy{max-width:510px;margin:auto;color:var(--mu);font-size:15px}
.tabs{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;border-bottom:1px solid var(--bd);padding:0 0 18px;margin-bottom:28px}
.tab,.auth-mode{border:1px solid transparent;background:transparent;color:var(--mu);padding:8px 14px;border-radius:22px;font-size:13px}
.tab.active,.auth-mode.active{border-color:var(--bd);background:rgba(255,250,240,.7);color:var(--ac)}
.panel,.publication-card{background:rgba(251,245,230,.88);border:1px solid var(--bd);border-radius:19px;box-shadow:var(--shadow)}
.composer{padding:22px;margin-bottom:34px}
.section-heading,.feed-heading{display:flex;justify-content:space-between;align-items:end;gap:16px;margin-bottom:18px}
h2{font-size:25px;margin:0;font-weight:600}.heading-note,.optional{font-size:11px;color:var(--mu)}
label{display:block;font-size:12px;color:var(--mu);margin:0 0 13px}
input,textarea,select{display:block;width:100%;margin-top:6px;border:1px solid var(--bd);border-radius:10px;background:var(--paper);padding:10px 12px;color:var(--tx);outline:none;font-size:13px}
input:focus,textarea:focus,select:focus{border-color:#a77a82;box-shadow:0 0 0 2px rgba(122,31,61,.08)}
textarea{resize:vertical;line-height:1.55}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}
.form-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:5px}
.status-choice{display:flex;align-items:center;gap:8px;margin:0}.status-choice input{width:auto;margin:0}
.button{border:1px solid var(--bd);border-radius:24px;padding:9px 17px;font-size:12px;transition:.15s}
.button-primary{background:var(--ac);border-color:var(--ac);color:#fffaf0}.button-primary:hover{background:#64172f}
.button-outline{background:transparent;color:var(--ac)}.button-outline:hover{background:rgba(255,250,240,.7)}
.button-wide{width:100%;margin-top:7px}.hidden{display:none!important}
.feed-heading{margin:0 0 15px}.feed{display:grid;gap:17px}
.publication-card{overflow:hidden;position:relative}.publication-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--ac)}
.publication-card.kind-film_independent:before,.publication-card.kind-film_review:before{background:var(--film)}
.publication-card.kind-book:before,.publication-card.kind-book_review:before{background:var(--libro)}
.publication-card.kind-story:before{background:var(--racconto)}
.card-inner{padding:19px 21px 17px 24px}
.card-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;color:var(--mu);font-size:11px}
.type-label{letter-spacing:1.1px;text-transform:uppercase;font-size:9px;font-weight:700;color:var(--ac)}
.kind-film_independent .type-label,.kind-film_review .type-label{color:var(--film)}
.kind-book .type-label,.kind-book_review .type-label{color:var(--libro)}
.kind-story .type-label{color:var(--racconto)}
.card-title{font-size:24px;margin:8px 0 5px;font-weight:600}
.card-description{color:var(--mu);font-size:13px;margin:0 0 9px;font-style:italic}
.card-body{font-size:14px;white-space:pre-wrap;overflow-wrap:anywhere;margin:12px 0 15px}
.card-rating{color:#9b7131;letter-spacing:2px;font-size:13px}
.card-footer{border-top:1px solid rgba(216,201,173,.7);padding-top:12px}
.reactions{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.reaction-button{background:rgba(255,250,240,.7);border:1px solid var(--bd);border-radius:18px;padding:5px 9px;color:var(--mu);font-size:11px}
.reaction-button.selected{border-color:var(--ac);background:#f4e5e5;color:var(--ac)}
.reaction-button:disabled{opacity:.55;cursor:not-allowed}
.card-tools{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.text-button{border:0;background:none;padding:3px 0;color:var(--ac);font-size:11px;text-decoration:underline;text-underline-offset:3px}
.comments{border-top:1px dashed var(--bd);margin-top:12px;padding-top:10px}
.comment{font-size:12px;margin:7px 0;color:var(--tx)}.comment strong{color:var(--ac);font-weight:600}.comment time{color:var(--mu);font-size:10px}
.comment-form{display:flex;gap:7px;margin-top:9px}.comment-form input{margin:0;flex:1}.comment-form button{white-space:nowrap}
.empty-state{text-align:center;padding:40px 20px;color:var(--mu);border:1px dashed var(--bd);border-radius:18px;background:rgba(251,245,230,.45)}
.ornament{font-size:25px;color:var(--ac)}.global-message,.form-message{font-size:12px;color:var(--ac);min-height:18px}
.site-footer{text-align:center;padding:20px;color:var(--mu);font-size:11px;border-top:1px solid rgba(126,99,64,.2)}.site-footer span{padding:0 6px}
.auth-dialog{width:min(420px,calc(100% - 28px));border:1px solid var(--bd);border-radius:19px;background:var(--card);color:var(--tx);padding:24px;box-shadow:0 18px 60px rgba(40,25,15,.2)}
.auth-dialog::backdrop{background:rgba(35,25,18,.45)}
.dialog-close-row{display:flex;justify-content:flex-end;margin:-12px -8px 8px}.icon-button{border:0;background:none;font-size:25px;color:var(--mu)}
.auth-dialog h2{margin-bottom:15px}.auth-switch{display:flex;gap:8px;margin-bottom:15px}
@media(max-width:600px){.site-header{padding:15px 16px;align-items:flex-start}.brand strong{font-size:20px}.brand-mark{width:36px;height:36px}.user-label{display:none}.layout{padding:25px 14px 50px}.intro{padding-top:7px}.tabs{justify-content:flex-start;overflow-x:auto;flex-wrap:nowrap}.tab{white-space:nowrap}.form-grid{grid-template-columns:1fr}.section-heading{align-items:flex-start;flex-direction:column}.heading-note{display:none}.card-inner{padding:16px 15px 15px 20px}.card-title{font-size:21px}.feed-heading h2{font-size:22px}}

.layout{padding-bottom:120px}
.fab{position:fixed;right:20px;bottom:20px;z-index:20;width:62px;height:62px;border-radius:50%;border:1px solid var(--ac);background:var(--ac);color:#fffaf0;font-size:36px;line-height:1;padding:0 0 4px;box-shadow:0 8px 24px rgba(68,48,25,.3)}
.fab:hover{background:#64172f}
.form-buttons{display:flex;gap:8px}

/* ===== Carta ruvida ===== */
.paper-grain{
  opacity:.95;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='4' seed='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .30  0 0 0 0 .21  0 0 0 0 .12  1.5 0 0 0 -.56'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='640' height='640'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.014 .07' numOctaves='3' seed='8' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .45  0 0 0 0 .32  0 0 0 0 .17  1.1 0 0 0 -.42'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"),radial-gradient(ellipse at 50% 40%,transparent 55%,rgba(110,78,38,.14) 100%);
  background-size:220px 220px,640px 640px,100% 100%;
}
.panel,.publication-card,.auth-dialog{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' seed='5' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .32  0 0 0 0 .23  0 0 0 0 .13  1.2 0 0 0 -.46'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size:220px 220px;
}
.empty-state{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' seed='5' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .32  0 0 0 0 .23  0 0 0 0 .13  1.2 0 0 0 -.46'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:220px 220px}
