main.css 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478
  1. .book-card {
  2. transition: transform 0.2s;
  3. }
  4. .book-card:hover {
  5. transform: translateY(-2px);
  6. }
  7. .book-cover {
  8. height: 200px;
  9. object-fit: cover;
  10. }
  11. @media (max-width: 768px) {
  12. .book-cover {
  13. height: 150px;
  14. }
  15. }
  16. .nav-overlay {
  17. position: absolute;
  18. }
  19. .hero-section {
  20. height: 250px;
  21. width: 100%;
  22. background-image: url('{{ URL::asset("assets/images/hero-2.jpg") }}');
  23. background-size: cover;
  24. background-position: center;
  25. background-repeat: no-repeat;
  26. position: relative;
  27. display: flex;
  28. align-items: center;
  29. justify-content: center;
  30. }
  31. .hero-overlay {
  32. position: absolute;
  33. top: 0;
  34. left: 0;
  35. right: 0;
  36. bottom: 0;
  37. background: rgba(0, 0, 0, 0.2);
  38. }
  39. .hero-content {
  40. position: relative;
  41. z-index: 2;
  42. text-align: center;
  43. color: white;
  44. max-width: 600px;
  45. padding: 0 1rem;
  46. }
  47. .hero-title {
  48. font-size: 2.5rem;
  49. font-weight: bold;
  50. margin-bottom: 1rem;
  51. text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5);
  52. }
  53. .hero-subtitle {
  54. font-size: 1.2rem;
  55. margin-bottom: 2rem;
  56. text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5);
  57. }
  58. .search-box {
  59. background: white;
  60. border-radius: 0.5rem;
  61. padding: 0.5rem;
  62. box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
  63. max-width: 500px;
  64. margin: 0 auto;
  65. }
  66. .feature-card {
  67. transition: transform 0.3s ease, box-shadow 0.3s ease;
  68. height: 100%;
  69. }
  70. .feature-card:hover {
  71. transform: translateY(-5px);
  72. box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);
  73. }
  74. .stats-section {
  75. background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
  76. color: white;
  77. }
  78. .stat-item {
  79. text-align: center;
  80. padding: 2rem 1rem;
  81. }
  82. .stat-number {
  83. font-size: 2.5rem;
  84. font-weight: bold;
  85. display: block;
  86. }
  87. .stat-label {
  88. font-size: 1rem;
  89. opacity: 0.9;
  90. margin-top: 0.5rem;
  91. }
  92. /* Navigation Styles */
  93. .top-nav {
  94. height: 50px;
  95. width: 100%;
  96. display: flex;
  97. justify-content: flex-end;
  98. align-items: center;
  99. padding: 0 2rem;
  100. position: relative;
  101. z-index: 10;
  102. }
  103. .nav-menu {
  104. display: flex;
  105. align-items: center;
  106. gap: 1.5rem;
  107. list-style: none;
  108. margin: 0;
  109. padding: 0;
  110. }
  111. .nav-item a {
  112. color: white;
  113. text-decoration: none;
  114. font-size: 0.95rem;
  115. font-weight: 500;
  116. transition: opacity 0.2s;
  117. white-space: nowrap;
  118. }
  119. .nav-item a:hover {
  120. opacity: 0.8;
  121. }
  122. /* Hamburger Menu */
  123. .hamburger-btn {
  124. display: none;
  125. background: rgba(255, 255, 255, 0.2);
  126. border: 2px solid white;
  127. border-radius: 0.375rem;
  128. color: white;
  129. font-size: 1.5rem;
  130. cursor: pointer;
  131. padding: 0.5rem 0.75rem;
  132. z-index: 1001;
  133. transition: background 0.2s;
  134. width: 44px;
  135. height: 44px;
  136. align-items: center;
  137. justify-content: center;
  138. }
  139. .hamburger-btn:hover {
  140. background: rgba(255, 255, 255, 0.3);
  141. }
  142. /* CSS Hamburger Icon */
  143. .hamburger-icon {
  144. display: flex;
  145. flex-direction: column;
  146. gap: 4px;
  147. width: 24px;
  148. }
  149. .hamburger-icon span {
  150. display: block;
  151. height: 2px;
  152. background: white;
  153. border-radius: 2px;
  154. transition: all 0.3s;
  155. }
  156. .hamburger-btn.active .hamburger-icon span:nth-child(1) {
  157. transform: translateY(6px) rotate(45deg);
  158. }
  159. .hamburger-btn.active .hamburger-icon span:nth-child(2) {
  160. opacity: 0;
  161. }
  162. .hamburger-btn.active .hamburger-icon span:nth-child(3) {
  163. transform: translateY(-6px) rotate(-45deg);
  164. }
  165. .mobile-menu {
  166. display: none;
  167. position: fixed;
  168. top: 0;
  169. right: -100%;
  170. width: 280px;
  171. height: 100vh;
  172. background: rgba(0, 0, 0, 0.95);
  173. backdrop-filter: blur(10px);
  174. transition: right 0.3s ease;
  175. z-index: 1000;
  176. padding-top: 60px;
  177. }
  178. .mobile-menu.active {
  179. right: 0;
  180. }
  181. .mobile-nav-menu {
  182. list-style: none;
  183. padding: 0;
  184. margin: 0;
  185. }
  186. .mobile-nav-item {
  187. border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  188. }
  189. .mobile-nav-item a {
  190. display: block;
  191. color: white;
  192. text-decoration: none;
  193. padding: 1rem 2rem;
  194. font-size: 1rem;
  195. transition: background 0.2s;
  196. }
  197. .mobile-nav-item a:hover {
  198. background: rgba(255, 255, 255, 0.1);
  199. }
  200. .mobile-overlay {
  201. display: none;
  202. position: fixed;
  203. top: 0;
  204. left: 0;
  205. width: 100%;
  206. height: 100%;
  207. background: rgba(0, 0, 0, 0.5);
  208. z-index: 999;
  209. }
  210. .mobile-overlay.active {
  211. display: block;
  212. }
  213. /* Responsive */
  214. @media (max-width: 768px) {
  215. .hero-title {
  216. font-size: 2rem;
  217. }
  218. .hero-subtitle {
  219. font-size: 1rem;
  220. }
  221. .hero-section {
  222. height: 250px;
  223. }
  224. .stat-number {
  225. font-size: 2rem;
  226. }
  227. .top-nav {
  228. padding: 0 1rem;
  229. }
  230. .nav-menu {
  231. display: none;
  232. }
  233. .hamburger-btn {
  234. display: flex;
  235. }
  236. .mobile-menu {
  237. display: block;
  238. }
  239. }
  240. @media (max-width: 576px) {
  241. .hero-title {
  242. font-size: 1.5rem;
  243. }
  244. .hero-subtitle {
  245. font-size: 0.9rem;
  246. }
  247. .top-nav {
  248. padding: 0 0.5rem;
  249. }
  250. }
  251. :root {
  252. --sf: #c8860a;
  253. --sf-light: #f5e6c8;
  254. --sf-pale: #fdf8f0;
  255. --ink: #1a1208;
  256. --ink-soft: #4a3f2f;
  257. --ink-muted: #8a7a68;
  258. --bdr: #e8ddd0;
  259. --card-bg: #fffdf9;
  260. }
  261. /* Breadcrumb bar */
  262. .anthology-breadcrumb-bar {
  263. background: rgba(255, 255, 255, 0.55);
  264. border-bottom: 1px solid var(--bdr);
  265. padding: 0.5rem 0;
  266. }
  267. .anthology-breadcrumb-bar .bc-inner {
  268. display: flex;
  269. align-items: center;
  270. justify-content: space-between;
  271. gap: 1rem;
  272. }
  273. .anthology-breadcrumb-bar .breadcrumb {
  274. margin: 0;
  275. font-size: 0.78rem;
  276. flex-shrink: 0;
  277. }
  278. .anthology-breadcrumb-bar .breadcrumb-item a {
  279. color: var(--sf);
  280. text-decoration: none;
  281. }
  282. .anthology-breadcrumb-bar .breadcrumb-item.active {
  283. color: var(--ink-muted);
  284. }
  285. .anthology-breadcrumb-bar .breadcrumb-item + .breadcrumb-item::before {
  286. color: var(--ink-muted);
  287. }
  288. /* Top nav inside breadcrumb bar */
  289. .bc-nav {
  290. display: flex;
  291. align-items: center;
  292. gap: 1.25rem;
  293. list-style: none;
  294. margin: 0;
  295. padding: 0;
  296. flex-shrink: 0;
  297. }
  298. .bc-nav li a {
  299. font-size: 0.82rem;
  300. color: var(--ink-soft);
  301. text-decoration: none;
  302. white-space: nowrap;
  303. transition: color 0.15s;
  304. }
  305. .bc-nav li a:hover {
  306. color: var(--sf);
  307. }
  308. .bc-nav li a.active {
  309. color: var(--sf);
  310. font-weight: 600;
  311. }
  312. /* Mobile nav: hamburger */
  313. .bc-hamburger {
  314. display: none;
  315. background: none;
  316. border: 1px solid var(--bdr);
  317. border-radius: 5px;
  318. padding: 4px 8px;
  319. cursor: pointer;
  320. color: var(--ink-soft);
  321. line-height: 1;
  322. }
  323. .bc-hamburger:hover {
  324. border-color: var(--sf);
  325. color: var(--sf);
  326. }
  327. /* Mobile drawer */
  328. .bc-mobile-overlay {
  329. display: none;
  330. position: fixed;
  331. inset: 0;
  332. background: rgba(0, 0, 0, 0.4);
  333. z-index: 1040;
  334. }
  335. .bc-mobile-overlay.open {
  336. display: block;
  337. }
  338. .bc-mobile-drawer {
  339. position: fixed;
  340. top: 0;
  341. right: -100%;
  342. width: 240px;
  343. height: 100vh;
  344. background: var(--card-bg);
  345. border-left: 1px solid var(--bdr);
  346. z-index: 1050;
  347. transition: right 0.25s ease;
  348. padding: 1rem 0;
  349. box-shadow: -4px 0 20px rgba(0, 0, 0, 0.1);
  350. }
  351. .bc-mobile-drawer.open {
  352. right: 0;
  353. }
  354. .bc-mobile-drawer-header {
  355. display: flex;
  356. align-items: center;
  357. justify-content: space-between;
  358. padding: 0.5rem 1.25rem 0.75rem;
  359. border-bottom: 1px solid var(--bdr);
  360. margin-bottom: 0.5rem;
  361. }
  362. .bc-mobile-drawer-header span {
  363. font-size: 0.85rem;
  364. font-weight: 600;
  365. color: var(--ink-soft);
  366. }
  367. .bc-mobile-drawer-close {
  368. background: none;
  369. border: none;
  370. cursor: pointer;
  371. color: var(--ink-muted);
  372. font-size: 1rem;
  373. line-height: 1;
  374. padding: 2px;
  375. }
  376. .bc-mobile-nav {
  377. list-style: none;
  378. padding: 0;
  379. margin: 0;
  380. }
  381. .bc-mobile-nav li a {
  382. display: block;
  383. padding: 0.65rem 1.25rem;
  384. font-size: 0.9rem;
  385. color: var(--ink-soft);
  386. text-decoration: none;
  387. border-bottom: 1px solid rgba(232, 221, 208, 0.5);
  388. transition: background 0.15s;
  389. }
  390. .bc-mobile-nav li a:hover {
  391. background: var(--sf-pale);
  392. color: var(--sf);
  393. }
  394. .bc-mobile-nav li a.active {
  395. color: var(--sf);
  396. font-weight: 600;
  397. }
  398. @media (max-width: 640px) {
  399. .bc-nav {
  400. display: none;
  401. }
  402. .bc-hamburger {
  403. display: inline-flex;
  404. align-items: center;
  405. }
  406. }