.characters-page{background:#0a1722}.characters-hero{position:relative;min-height:390px;overflow:hidden;display:flex;align-items:center}.characters-hero__scene{position:absolute;inset:0;background:url("../images/official/farm-spring.png") center 52%/cover no-repeat;transform:scale(1.02)}.characters-hero__shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(6,15,24,.97) 0%,rgba(6,15,24,.84) 38%,rgba(6,15,24,.25) 70%),linear-gradient(0deg,#0a1722 0%,transparent 35%)}.characters-hero__content{position:relative;z-index:2;display:grid;grid-template-columns:1.25fr .75fr;gap:38px;align-items:center;padding:48px 0 58px}.characters-hero__content>div>p{text-transform:uppercase;color:#ff86a7;font-weight:900;letter-spacing:.1em}.characters-hero h1{font-family:Georgia,serif;font-size:clamp(55px,6.2vw,92px);line-height:.9;text-transform:uppercase;margin:8px 0 18px}.characters-hero h1 span{display:block;color:#ffd1df;font-style:italic;text-transform:none;font-size:.7em}.characters-hero__copy{font-size:17px;line-height:1.5;max-width:650px;color:#d8e5ed}.characters-hero__actions{display:flex;gap:10px;margin-top:22px}.heart-cap-card{background:linear-gradient(160deg,#fff8e9,#ffdce8);color:#263c4b;border-radius:24px;padding:24px;border:3px solid rgba(255,255,255,.68);box-shadow:0 25px 65px rgba(0,0,0,.36);transform:rotate(-1deg)}.heart-cap-card>p{text-transform:uppercase;color:#bc536f;font-weight:900;letter-spacing:.08em;margin:0 0 12px}.cap-line{display:flex;justify-content:space-between;align-items:center}.cap-line span{background:#314d5d;color:white;border-radius:999px;padding:5px 9px;font-size:11px}.cap-hearts{font-size:24px;letter-spacing:2px;color:#e45e84;margin:10px 0}.cap-hearts i{color:#c8b9bd;font-style:normal}.cap-line--future strong{color:#b04f6c}.heart-cap-card small{display:block;line-height:1.45;color:#65737c;margin:12px 0}.heart-cap-card a{color:#80445a;font-weight:900;text-decoration:none;font-size:12px}.character-toolbar{display:grid;grid-template-columns:1fr 260px auto auto;gap:11px;align-items:center;background:#f7efdf;color:#243746;border-radius:16px;margin-top:-22px;position:relative;z-index:4;padding:16px 18px;box-shadow:0 15px 35px rgba(0,0,0,.28)}.character-toolbar p{text-transform:uppercase;color:#bd5574;font-weight:900;font-size:10px;margin:0}.character-toolbar h2{font-family:Georgia,serif;font-size:25px;margin:2px 0}.search-box{display:grid;gap:4px}.search-box span{font-size:10px;text-transform:uppercase;font-weight:900;color:#75828a}.search-box input{border:1px solid #d1c4b2;border-radius:10px;padding:10px 12px;background:#fff}.toggle-box{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:800}.toggle-box input{accent-color:#da5c82;width:18px;height:18px}.character-toolbar button,#export-progress{border:0;border-radius:10px;padding:11px 13px;background:#274a5e;color:#fff;font-weight:900;cursor:pointer}.romance-layout{display:grid;grid-template-columns:190px 1fr;gap:11px;padding:14px 0 18px}.roster-intro{background:#132939;border:1px solid rgba(255,255,255,.16);border-radius:15px;padding:18px}.roster-intro>span{text-transform:uppercase;color:#ff86a7;font-size:10px;font-weight:900}.roster-intro h2{font-family:Georgia,serif;font-size:24px;line-height:1.05;margin:12px 0}.roster-intro>p{font-size:13px;line-height:1.5;color:#b9c9d3}.roster-stats{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:18px 0}.roster-stats div{background:#0d1e2b;border-radius:10px;padding:10px;text-align:center}.roster-stats b{display:block;font-size:22px;color:#ff86a7}.roster-stats span{font-size:8px;text-transform:uppercase;color:#9fb0bc}.roster-intro button{width:100%;font-size:11px}.romance-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.romance-card{background:#142735;border:1px solid rgba(255,255,255,.2);border-top:4px solid var(--accent);border-radius:14px;padding:8px;box-shadow:0 10px 25px rgba(0,0,0,.22);transition:transform .18s,opacity .18s}.romance-card:hover{transform:translateY(-3px)}.romance-card[hidden]{display:none}.romance-card--rose{--accent:#ed6c94}.romance-card--gold{--accent:#e2b55c}.romance-card--mint{--accent:#68bea4}.romance-card--orange{--accent:#de805b}.romance-card--cream{--accent:#e7d49a}.romance-card--blue{--accent:#5f9ed4}.romance-card--teal{--accent:#58a9a4}.romance-card--lavender{--accent:#a58dd0}.romance-card__portrait{height:145px;position:relative;background:#0c1b26;border-radius:10px;overflow:hidden}.romance-card__portrait img{width:100%;height:100%;object-fit:cover;object-position:center 12%}.favorite-button{position:absolute;right:7px;top:7px;width:32px;height:32px;border:0;border-radius:50%;background:rgba(8,20,29,.78);color:#ffd4df;font-size:22px;cursor:pointer}.favorite-button.is-favorite{background:#e65e84;color:white}.romance-card__body{display:flex;justify-content:space-between;align-items:flex-end;margin:8px 2px}.romance-card h3{font-family:Georgia,serif;font-size:20px;margin:0}.romance-card p{margin:1px 0;color:#aebdc7;font-size:10px}.ea-badge{background:rgba(255,255,255,.09);border-radius:999px;padding:4px 6px;font-size:8px;color:#ffd6e0}.heart-control{background:#0c1c27;border-radius:10px;padding:8px}.heart-label{display:flex;justify-content:space-between;font-size:9px;text-transform:uppercase;color:#b3c0c9}.heart-label b{color:#ff8dab}.heart-control input{width:100%;accent-color:#e65d84}.heart-dots{font-size:12px;letter-spacing:1px;color:#e75d85;white-space:nowrap}.heart-dots em{color:#4b5962;font-style:normal}.note-button{width:100%;margin-top:7px;border:1px solid rgba(255,255,255,.14);background:#213846;color:#dbe8ee;border-radius:8px;padding:7px;font-weight:800;cursor:pointer;font-size:10px}.romance-roadmap{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:8px 0 55px}.roadmap-step{display:flex;gap:14px;background:#f5eddf;color:#283b47;padding:18px;border-radius:15px}.roadmap-step>span{font-family:Georgia,serif;font-size:40px;color:#d66082}.roadmap-step p{text-transform:uppercase;color:#b2516d;font-weight:900;font-size:9px;margin:0}.roadmap-step h2{font-family:Georgia,serif;font-size:20px;line-height:1.1;margin:5px 0}.roadmap-step small{color:#687983;line-height:1.4}.character-notes{background:#f6efdf;color:#293c48;padding:60px 0}.notes-grid{display:grid;grid-template-columns:.7fr 1.3fr;gap:40px;align-items:center}.notes-grid h2{font-family:Georgia,serif;font-size:42px;margin:8px 0}.notes-grid p{color:#657781;line-height:1.6}.notes-panel{background:#fffaf0;border:1px solid #dfd1bc;min-height:245px;border-radius:18px;padding:22px;box-shadow:0 16px 35px rgba(81,54,24,.1)}.notes-empty{text-align:center;padding:35px}.notes-empty span{display:block;font-size:44px;color:#d95d81}.notes-empty b{display:block;font-family:Georgia,serif;font-size:25px}.notes-form>div{display:flex;gap:12px;align-items:center}.notes-form img{width:66px;height:66px;border-radius:12px;object-fit:cover;object-position:top}.notes-form small{display:block;color:#9a6a79;text-transform:uppercase;font-weight:900}.notes-form b{font-family:Georgia,serif;font-size:25px}.notes-form textarea{width:100%;margin:14px 0;border:1px solid #d9c9b3;border-radius:12px;padding:13px;resize:vertical;font:inherit}.notes-form button{border:0;background:#d85d81;color:white;border-radius:10px;padding:10px 16px;font-weight:900}.toast{position:fixed;right:18px;bottom:18px;background:#f7e9c9;color:#293c47;border-radius:11px;padding:11px 15px;box-shadow:0 12px 30px rgba(0,0,0,.3);opacity:0;transform:translateY(12px);pointer-events:none;transition:.2s}.toast.is-visible{opacity:1;transform:none}@media(max-width:1050px){.characters-hero__content{grid-template-columns:1fr}.heart-cap-card{max-width:560px}.character-toolbar{grid-template-columns:1fr 1fr}.romance-layout{grid-template-columns:1fr}.romance-grid{grid-template-columns:repeat(4,1fr)}.roster-intro{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-items:center}.roster-stats{margin:0}.notes-grid{grid-template-columns:1fr}}@media(max-width:760px){.characters-hero{min-height:700px}.characters-hero__content{padding:35px 0}.characters-hero h1{font-size:50px}.characters-hero__actions{display:grid}.character-toolbar{grid-template-columns:1fr}.romance-grid{grid-template-columns:repeat(2,1fr)}.roster-intro{display:block}.romance-roadmap{grid-template-columns:1fr}.notes-grid h2{font-size:34px}}

/* Task 16.1 readability patch */
.character-toolbar p,.search-box span,.roster-intro>span,.roster-stats span,.roadmap-step p{font-size:12px!important;letter-spacing:.08em}
.heart-cap-card a,.heart-cap-card small,.toggle-box,.roster-intro>p,.romance-card p,.note-button,.heart-label,.heart-dots,.ea-badge{font-size:13px!important}
.character-toolbar h2,.roster-intro h2,.roadmap-step h2{line-height:1.15}
.romance-card h3{font-size:22px}
.note-button{padding:9px 10px}
