@import "https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;500&family=Noto+Serif+SC:wght@500;600&display=swap";.bookshelf-demo .cover.is-extracting,.bookshelf-demo .cover.is-extracting:hover,.bookshelf-demo .spine.is-extracting,.bookshelf-demo .spine.is-extracting:hover,.bookshelf-demo .spine.is-extracting.is-expanded,.bookshelf-demo .spine.is-seat,.bookshelf-demo .spine.is-seat:hover{box-shadow:none!important;transition:none!important;transform:none!important}.bookshelf-demo .spine.is-seat:focus-visible{box-shadow:none!important;transition:none!important;transform:none!important}.bookshelf-demo{--wall:#faf9f5;--ink:#1b1a18;--muted:#6e6b64;--faint:#a09b91;--rail-top:#e8e2d4;--rail-bot:#cfc7b6;--rail-shadow:#3c321e14;--line:#e6e3dc;--col:740px;--hover-ring:#1b1a182e;--hover-lift:0 10px 22px #281e1424;--pad:24px;--t-expand:.25s;--t-collapse:.23s;--t-pull:.5s;--t-flip:1s;--t-settle:.58s;--t-putback:.5s;--t-land:.48s;--t-veil:.58s;--ease-motion:cubic-bezier(.32, .72, 0, 1);--ease-out:var(--ease-motion);--ease-in:var(--ease-motion);--ease-inout:var(--ease-motion);--ease-pull:var(--ease-motion)}.bookshelf-demo,.bookshelf-demo *{box-sizing:border-box}.bookshelf-demo,.bookshelf-demo{margin:0;overflow-x:clip}.bookshelf-demo{background:var(--wall);color:var(--ink);-webkit-font-smoothing:antialiased;max-width:100%;min-height:100vh;font-family:Noto Sans SC,PingFang SC,sans-serif;font-size:16px;line-height:normal;position:relative;overflow-x:hidden}.bookshelf-demo .shelf-view{max-width:100%;overflow-x:hidden}.bookshelf-demo .page{width:min(100%, var(--col));max-width:100%;padding:40px var(--pad) 56px;margin:0 auto;overflow-x:hidden}.bookshelf-demo .brand{color:var(--muted);letter-spacing:.06em;margin-bottom:24px;font-size:13px}.bookshelf-demo h1{margin:0 0 10px;font-family:Noto Serif SC,Songti SC,serif;font-size:clamp(28px,5vw,36px);font-weight:600}.bookshelf-demo .lede{color:var(--muted);margin:0 0 20px;font-size:14px;line-height:1.7}.bookshelf-demo .qa-bar{border:1px solid var(--line);background:#ffffff73;border-radius:6px;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:36px;padding:10px 12px;display:flex}.bookshelf-demo .qa-label{color:var(--faint);letter-spacing:.08em;margin-right:4px;font-size:11px}.bookshelf-demo .qa-btn{border:1px solid var(--line);color:var(--ink);cursor:pointer;background:#fff;border-radius:4px;padding:5px 10px;font-family:inherit;font-size:12px}.bookshelf-demo .qa-btn.is-active{background:var(--ink);color:var(--wall);border-color:var(--ink)}.bookshelf-demo .qa-hint{color:var(--muted);margin-left:auto;font-size:11px}.bookshelf-demo .bay{min-width:0;max-width:100%;margin-bottom:36px}.bookshelf-demo .row-label{align-items:baseline;gap:12px;margin-bottom:12px;display:flex}.bookshelf-demo .row-label .name{color:var(--muted);letter-spacing:.12em;font-size:12px}.bookshelf-demo .row-label .hint{color:var(--faint);letter-spacing:.04em;font-size:11px}.bookshelf-demo .ledge{width:100%;min-width:0;max-width:100%;padding-bottom:10px;position:relative;overflow:hidden}.bookshelf-demo .rail{background:linear-gradient(180deg, var(--rail-top) 0%, var(--rail-bot) 100%);width:100%;height:7px;box-shadow:0 6px 14px var(--rail-shadow);border-radius:1px}.bookshelf-demo .covers{flex-wrap:nowrap;align-items:flex-end;gap:14px;min-height:210px;padding-bottom:2px;display:flex;overflow-x:visible}@media (hover:none),(max-width:640px){.bookshelf-demo .covers{-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;scrollbar-width:none;touch-action:pan-x pan-y;flex-wrap:nowrap;gap:10px;width:100%;min-width:0;max-width:100%;overflow:auto hidden}.bookshelf-demo .covers::-webkit-scrollbar{display:none}.bookshelf-demo .cover{flex-shrink:0;width:102px}}.bookshelf-demo .cover{cursor:pointer;background-color:#0000;background-position:top;background-repeat:no-repeat;background-size:contain;border:none;border-radius:2px 3px 0 0;flex-shrink:0;width:118px;height:178px;padding:0;transition:transform .18s,box-shadow .18s,opacity .2s;display:block;position:relative;overflow:hidden;transform:translateY(0)scale(1);box-shadow:inset -2px 0 #0000001f,inset 1px 0 #ffffff14,0 6px 14px #281e1414}.bookshelf-demo .cover:focus-visible{box-shadow:0 0 0 2px #ffffffd9, 0 0 0 3px var(--hover-ring), var(--hover-lift);z-index:2;outline:none;transform:translateY(-10px)scale(1.04)}@media (hover:hover) and (pointer:fine){.bookshelf-demo .cover:hover{box-shadow:0 0 0 2px #ffffffd9, 0 0 0 3px var(--hover-ring), var(--hover-lift);z-index:2;transform:translateY(-10px)scale(1.04)}}.bookshelf-demo .cover.is-placeholder{filter:none;pointer-events:none;box-shadow:none;opacity:0!important;visibility:hidden!important;background-color:#0000!important;background-image:none!important;transform:none!important}.bookshelf-demo .cover.is-placeholder>.cover-art{visibility:hidden!important;opacity:0!important}.bookshelf-demo .cover[class*=img-]{background-color:#0000!important}.bookshelf-demo .cover>.cover-art{object-fit:contain;object-position:center top;pointer-events:none;border-radius:inherit;z-index:0;width:100%;height:100%;display:block;position:absolute;inset:0}.bookshelf-demo .spines{-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;scrollbar-width:none;flex-wrap:nowrap;align-items:flex-end;gap:4px;min-height:188px;display:flex;overflow-x:auto}.bookshelf-demo .spines::-webkit-scrollbar{display:none}.bookshelf-demo .spine{writing-mode:vertical-rl;text-orientation:mixed;letter-spacing:.16em;color:#f7f3ea;cursor:pointer;width:28px;height:150px;transition:transform .16s ease, box-shadow .16s ease, filter .16s ease, width var(--t-expand) var(--ease-out), height var(--t-expand) var(--ease-out), margin var(--t-expand) var(--ease-out), opacity .2s ease, background-size var(--t-expand) var(--ease-out);background-position:top;background-repeat:no-repeat;background-size:contain;border:none;border-radius:1px 2px 0 0;flex-shrink:0;justify-content:center;align-items:center;padding:10px 0;font-family:Noto Serif SC,serif;font-size:12px;display:flex;position:relative;overflow:hidden;transform:translateY(0)scale(1);box-shadow:inset -1px 0 #ffffff1f,inset 1px 0 #0000002e}.bookshelf-demo .spine.thin{color:#2a261e;width:18px;height:122px;font-size:10px}.bookshelf-demo .spine.light-text{color:#f7f3ea}.bookshelf-demo .spine.dark-text{color:#1b1a18}.bookshelf-demo .spine span{pointer-events:none;transition:opacity .12s}.bookshelf-demo .spine:focus-visible{box-shadow:0 0 0 2px #ffffffe6, 0 0 0 3px var(--hover-ring), 0 8px 16px #281e1429;filter:brightness(1.08);z-index:2;outline:none;transform:translateY(-8px)scale(1.06)}@media (hover:hover) and (pointer:fine){.bookshelf-demo .spine:hover{box-shadow:0 0 0 2px #ffffffe6, 0 0 0 3px var(--hover-ring), 0 8px 16px #281e1429;filter:brightness(1.08);z-index:2;transform:translateY(-8px)scale(1.06)}}.bookshelf-demo .spine.is-placeholder{opacity:0;filter:none;pointer-events:none;box-shadow:none;transform:none!important}.bookshelf-demo .spine.is-placeholder span{opacity:0}.bookshelf-demo .cover.is-placeholder.is-landing,.bookshelf-demo .spine.is-placeholder.is-landing{opacity:0;transition:opacity .22s var(--ease-motion)}.bookshelf-demo .spine[class*=img-]{background-image:none!important}.bookshelf-demo .spine.is-expanded[class*=img-]{background-image:unset}.bookshelf-demo .spine.is-expanded.img-clean-code{background-image:url(/covers/clean-code.jpg)!important}.bookshelf-demo .spine.is-expanded.img-refactoring{background-image:url(/covers/refactoring.jpg)!important}.bookshelf-demo .spine.is-expanded.img-design-patterns{background-image:url(/covers/design-patterns.jpg)!important}.bookshelf-demo .spine.is-expanded.img-pragmatic-programmer{background-image:url(/covers/pragmatic-programmer.jpg)!important}.bookshelf-demo .spine.is-expanded.img-continuous-delivery{background-image:url(/covers/continuous-delivery.jpg)!important}.bookshelf-demo .spine.is-expanded.img-phoenix-project{background-image:url(/covers/phoenix-project.jpg)!important}.bookshelf-demo .spine.is-expanded.img-mythical-man-month{background-image:url(/covers/mythical-man-month.jpg)!important}.bookshelf-demo .spine.is-expanded.img-tdd{background-image:url(/covers/tdd.jpg)!important}.bookshelf-demo .spine.is-expanded.img-lean-startup{background-image:url(/covers/lean-startup.jpg)!important}.bookshelf-demo .spine.is-expanded.img-release-it{background-image:url(/covers/release-it.jpg)!important}.bookshelf-demo .spine.is-expanded.img-sre{background-image:url(/covers/sre.jpg)!important}.bookshelf-demo .spine.is-expanded.img-team-topologies{background-image:url(/covers/team-topologies.jpg)!important}.bookshelf-demo .spine.is-expanded.img-accelerate{background-image:url(/covers/accelerate.jpg)!important}.bookshelf-demo .spine.is-expanded.img-ddd{background-image:url(/covers/ddd.jpg)!important}.bookshelf-demo .spine.is-expanded.img-microservices{background-image:url(/covers/microservices.jpg)!important}.bookshelf-demo .spine.is-expanded.img-eaa{background-image:url(/covers/eaa.jpg)!important}.bookshelf-demo .spine.is-expanded.img-ddia{background-image:url(/covers/ddia.jpg)!important}.bookshelf-demo .spine.is-expanded.img-fundamentals-sa{background-image:url(/covers/fundamentals-sa.jpg)!important}.bookshelf-demo .spine.is-expanded.img-implementing-ddd{background-image:url(/covers/implementing-ddd.jpg)!important}.bookshelf-demo .spine.is-expanded.img-systems-performance{background-image:url(/covers/systems-performance.jpg)!important}.bookshelf-demo .spine.is-expanded.img-clean-architecture{background-image:url(/covers/clean-architecture.jpg)!important}.bookshelf-demo .spine.is-expanded{writing-mode:horizontal-tb;text-orientation:initial;letter-spacing:0;width:100px;height:152px;box-shadow:inset -2px 0 0 #00000024, 0 0 0 2px #ffffffe6, 0 0 0 3px var(--hover-ring), var(--hover-lift);filter:none;z-index:3;transition:width var(--t-expand) var(--ease-out), height var(--t-expand) var(--ease-out), margin var(--t-expand) var(--ease-out), transform var(--t-expand) var(--ease-out), box-shadow var(--t-expand) var(--ease-out);margin:0 4px 0 2px;padding:0;transform:translateY(-10px)scale(1.03)}.bookshelf-demo .spine.is-expanded span{opacity:0;position:absolute}.bookshelf-demo .spine.is-collapsing{transition:width var(--t-collapse) var(--ease-motion), height var(--t-collapse) var(--ease-motion), margin var(--t-collapse) var(--ease-motion), transform var(--t-collapse) var(--ease-motion), box-shadow var(--t-collapse) var(--ease-motion), background-size var(--t-collapse) var(--ease-motion)}.bookshelf-demo .spine.is-expanded.is-collapsing{writing-mode:vertical-rl;text-orientation:mixed;letter-spacing:.16em;filter:none;z-index:2;background-size:auto;width:28px;height:150px;margin:0;padding:10px 0;transform:translateY(0)scale(1);box-shadow:inset -1px 0 #ffffff1f,inset 1px 0 #0000002e;background-image:none!important}.bookshelf-demo .spine.is-expanded.is-collapsing.s-tall{width:30px;height:168px}.bookshelf-demo .spine.is-expanded.is-collapsing.s-mid{width:28px;height:152px}.bookshelf-demo .spine.is-expanded.is-collapsing.s-short{width:24px;height:136px}.bookshelf-demo .spine.is-expanded.is-collapsing.thin{width:18px;height:122px}.bookshelf-demo .spine.is-expanded.is-collapsing span{opacity:1;position:static}.bookshelf-demo .s-tall{width:30px;height:168px}.bookshelf-demo .s-mid{width:28px;height:152px}.bookshelf-demo .s-short{width:24px;height:136px}.bookshelf-demo .spine.is-expanded.s-tall,.bookshelf-demo .spine.is-expanded.s-mid,.bookshelf-demo .spine.is-expanded.s-short{width:100px;height:152px}.bookshelf-demo .bk-clean-code{background-color:#0d1b2a}.bookshelf-demo .bk-refactoring{background-color:#7a0d1b}.bookshelf-demo .bk-design-patterns{background-color:#0d1b1b}.bookshelf-demo .bk-continuous-delivery{background-color:#be2828}.bookshelf-demo .bk-phoenix-project{background-color:#3a7ab8}.bookshelf-demo .bk-mythical-man-month{background-color:#1b3688}.bookshelf-demo .bk-pragmatic-programmer{background-color:#1a1a1a}.bookshelf-demo .bk-tdd{background-color:#513688}.bookshelf-demo .bk-lean-startup{background-color:#3a3a3a}.bookshelf-demo .bk-release-it{background-color:#5a6a88}.bookshelf-demo .bk-sre{background-color:#00367a}.bookshelf-demo .bk-team-topologies{background-color:#2a6a88}.bookshelf-demo .bk-accelerate{background-color:#36445f}.bookshelf-demo .bk-ddd{background-color:#1e4a7a}.bookshelf-demo .bk-microservices{background-color:#a38851}.bookshelf-demo .bk-eaa{background-color:#950d1b}.bookshelf-demo .bk-ddia{background-color:#8b3a2f}.bookshelf-demo .bk-fundamentals-sa{background-color:#44881b}.bookshelf-demo .bk-implementing-ddd{background-color:#b03644}.bookshelf-demo .bk-systems-performance{background-color:#00447a}.bookshelf-demo .bk-clean-architecture{background-color:#0d1b44}.bookshelf-demo .bk-sand{color:#2a261e;background-color:#c4b7a2}.bookshelf-demo .bk-cream{color:#2a261e;background-color:#d2c4ae}.bookshelf-demo .img-clean-code{background-image:url(/covers/clean-code.jpg)}.bookshelf-demo .img-refactoring{background-image:url(/covers/refactoring.jpg)}.bookshelf-demo .img-design-patterns{background-image:url(/covers/design-patterns.jpg)}.bookshelf-demo .img-pragmatic-programmer{background-image:url(/covers/pragmatic-programmer.jpg)}.bookshelf-demo .img-continuous-delivery{background-image:url(/covers/continuous-delivery.jpg)}.bookshelf-demo .img-phoenix-project{background-image:url(/covers/phoenix-project.jpg)}.bookshelf-demo .img-mythical-man-month{background-image:url(/covers/mythical-man-month.jpg)}.bookshelf-demo .img-tdd{background-image:url(/covers/tdd.jpg)}.bookshelf-demo .img-lean-startup{background-image:url(/covers/lean-startup.jpg)}.bookshelf-demo .img-release-it{background-image:url(/covers/release-it.jpg)}.bookshelf-demo .img-sre{background-image:url(/covers/sre.jpg)}.bookshelf-demo .img-team-topologies{background-image:url(/covers/team-topologies.jpg)}.bookshelf-demo .img-accelerate{background-image:url(/covers/accelerate.jpg)}.bookshelf-demo .img-ddd{background-image:url(/covers/ddd.jpg)}.bookshelf-demo .img-microservices{background-image:url(/covers/microservices.jpg)}.bookshelf-demo .img-eaa{background-image:url(/covers/eaa.jpg)}.bookshelf-demo .img-ddia{background-image:url(/covers/ddia.jpg)}.bookshelf-demo .img-fundamentals-sa{background-image:url(/covers/fundamentals-sa.jpg)}.bookshelf-demo .img-implementing-ddd{background-image:url(/covers/implementing-ddd.jpg)}.bookshelf-demo .img-systems-performance{background-image:url(/covers/systems-performance.jpg)}.bookshelf-demo .img-clean-architecture{background-image:url(/covers/clean-architecture.jpg)}.bookshelf-demo .foot{border-top:1px solid var(--line);color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:16px;margin-top:40px;padding-top:16px;font-size:12px;display:flex}.bookshelf-demo .note-view{z-index:60;opacity:0;pointer-events:none;background:#faf9f5;transition:none;position:fixed;inset:0;overflow:auto}.bookshelf-demo .note-view.is-preparing,.bookshelf-demo .note-view.is-open{z-index:75}.bookshelf-demo .note-view.is-open{opacity:1;pointer-events:auto}.bookshelf-demo .note{width:min(100%, var(--col));padding:32px var(--pad) 80px;margin:0 auto}.bookshelf-demo .back-btn{color:var(--muted);cursor:pointer;background:0 0;border:none;margin-bottom:28px;padding:8px 0;font-family:inherit;font-size:14px}.bookshelf-demo .back-btn:hover{color:var(--ink)}.bookshelf-demo .note-hero{align-items:flex-start;gap:24px;margin-bottom:36px;display:flex}.bookshelf-demo .note-cover{background-color:#2a2a2a;background-position:top;background-size:cover;border-radius:2px 3px 0 0;flex-shrink:0;width:120px;height:180px;box-shadow:0 8px 20px #281e141f}.bookshelf-demo .note-cat{color:var(--muted);letter-spacing:.1em;margin:0 0 8px;font-size:12px}.bookshelf-demo .note-meta h1{margin:0 0 8px;font-size:clamp(24px,4vw,32px)}.bookshelf-demo .note-author{color:var(--muted);margin:0;font-size:14px}.bookshelf-demo .note-body{color:var(--ink);font-size:16px;line-height:1.85}.bookshelf-demo .note-body h2{margin:32px 0 12px;font-family:Noto Serif SC,serif;font-size:20px;font-weight:600}.bookshelf-demo .note-body p{margin:0 0 1.1em}.bookshelf-demo .note-body ul{margin:0 0 1.1em;padding-left:1.2em}.bookshelf-demo .note-body li{margin-bottom:.4em}.bookshelf-demo .note-body .placeholder{color:var(--muted);font-style:italic}.bookshelf-demo .open-backdrop{z-index:58;pointer-events:none;opacity:0;background:#faf9f5;position:fixed;inset:0}.bookshelf-demo .open-backdrop.is-on{opacity:.55}.bookshelf-demo .open-backdrop.is-solid{opacity:1}.bookshelf-demo .stage{z-index:70;pointer-events:none;perspective:1800px;perspective-origin:50% 45%;position:fixed;inset:0}.bookshelf-demo .open-veil{z-index:80;pointer-events:none;opacity:0;position:fixed;inset:0;overflow:hidden}.bookshelf-demo .open-veil.is-on{opacity:1}.bookshelf-demo .open-veil-blob{width:280vmax;height:280vmax;left:var(--vx,50%);top:var(--vy,45%);transform-origin:50%;will-change:transform, opacity;opacity:1;background:radial-gradient(circle,#fffcf6 0%,#faf9f5 42% 100%);border-radius:50%;margin-top:-140vmax;margin-left:-140vmax;position:absolute;transform:translateZ(0)scale(0)}.bookshelf-demo .flyer{transform-origin:0 0;transform-style:flat;opacity:1;contain:layout style;width:680px;height:400px;margin:0;position:fixed;top:0;left:0;overflow:visible}.bookshelf-demo .flyer.is-ready{will-change:translate, scale, opacity}.bookshelf-demo .flyer-shadow{opacity:.4;z-index:0;pointer-events:none;will-change:opacity;background:radial-gradient(#281e1429 0%,#281e1412 42%,#281e1405 65%,#281e1400 80%);border-radius:50%;height:28%;position:absolute;bottom:-10%;left:8%;right:8%;transform:translate(0,0)scaleY(.45)}.bookshelf-demo .flyer-book{transform-style:preserve-3d;transform-origin:50%;z-index:1;-webkit-backface-visibility:hidden;backface-visibility:hidden;position:absolute;inset:0;transform:rotateX(8deg)translate(0,0)}.bookshelf-demo .flyer-board{background:linear-gradient(180deg, var(--shell-hi,#6a7a98) 0%, var(--shell,#5a6a88) 55%, var(--shell-lo,#3a4a68) 100%);z-index:0;border-radius:3px 4px 2px 2px;position:absolute;inset:-2% -1.2% -3.5%;transform:translateZ(-8px);box-shadow:inset 0 1px #ffffff0f}.bookshelf-demo .flyer-leaf{width:50%;height:100%;transform-style:preserve-3d;z-index:2;position:absolute;top:0}.bookshelf-demo .flyer-leaf-left{transform-origin:100%;left:0}.bookshelf-demo .flyer-leaf-right{transform-origin:0;left:50%}.bookshelf-demo .flyer-face{-webkit-backface-visibility:hidden;backface-visibility:hidden;border-radius:2px 3px 0 0;position:absolute;inset:0;overflow:hidden}.bookshelf-demo .flyer-face-cover{background-color:#0000;transform:rotateY(180deg);box-shadow:inset -2px 0 #0000002e,2px 0 10px #281e1424}.bookshelf-demo .flyer-face-cover.is-spine-face{writing-mode:vertical-rl;text-orientation:mixed;letter-spacing:.16em;color:#f7f3ea;background-image:linear-gradient(90deg,#0000002e 0%,#0000 10%),linear-gradient(#ffffff0f,#0000 40%);justify-content:center;align-items:center;font-family:Noto Serif SC,serif;font-size:12px;display:flex}.bookshelf-demo .flyer-spine-label{pointer-events:none}.bookshelf-demo .flyer-spine-land-plate{pointer-events:none;border-radius:inherit;z-index:1;display:none;position:absolute;inset:0}.bookshelf-demo .flyer-spine-land-plate:not([class*=bk-]){background:linear-gradient(180deg, var(--shell-hi,#6a7a98) 0%, var(--shell,#5a6a88) 100%)}.bookshelf-demo .flyer.flyer-spine-slot{box-sizing:border-box;pointer-events:none;transform-origin:50%;contain:layout style;will-change:transform, opacity;border-radius:1px 2px 0 0;justify-content:center;align-items:center;margin:0;padding:10px 0;display:flex;position:fixed;overflow:hidden;box-shadow:inset -1px 0 #ffffff1f,inset 1px 0 #0000002e,0 6px 14px #281e142e}.bookshelf-demo .flyer-spine-slot-label{writing-mode:vertical-rl;text-orientation:mixed;letter-spacing:.16em;color:#f7f3ea;pointer-events:none;max-height:100%;font-family:Noto Serif SC,serif;font-size:12px;line-height:1.2;overflow:hidden}.bookshelf-demo .flyer-spine-slot.bk-sand .flyer-spine-slot-label,.bookshelf-demo .flyer-spine-slot.bk-cream .flyer-spine-slot-label{color:#2a261e;font-size:10px}.bookshelf-demo .flyer-face-cover.is-cover-ready{writing-mode:horizontal-tb}.bookshelf-demo .flyer-face-cover.is-cover-ready[class*=img-]{background-position:top!important;background-repeat:no-repeat!important;background-size:contain!important}.bookshelf-demo .flyer-face-cover.is-cover-ready .flyer-spine-label{display:none}.bookshelf-demo .flyer-cover-img{object-fit:contain;object-position:center top;pointer-events:none;border-radius:inherit;z-index:0;width:100%;height:100%;display:block;position:absolute;inset:0;transform:translateZ(0)}.bookshelf-demo .flyer-face-page{background-color:var(--page,#fffcf6);background-image:radial-gradient(120% 40% at 50% -5%, #ffffff73 0%, transparent 55%), linear-gradient(180deg, var(--page-hi,#fffcf6) 0%, var(--page,#f7f4ef) 55%, var(--page-lo,#efe8dc) 100%);color:var(--ink,#2a261e);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--shell,#5a6a88) 14%, transparent);flex-direction:column;gap:8px;padding:16px 14px 16px 16px;display:flex}.bookshelf-demo .flyer-leaf-left .flyer-face-page{background-image:radial-gradient(120% 40% at 50% -5%, #fff6 0%, transparent 55%), linear-gradient(90deg, transparent 55%, color-mix(in srgb, var(--shell,#5a6a88) 10%, transparent) 82%, color-mix(in srgb, var(--shell,#5a6a88) 28%, transparent) 100%), linear-gradient(180deg, var(--page-hi,#fffcf6) 0%, var(--page,#f7f4ef) 55%, var(--page-lo,#efe8dc) 100%);border-radius:3px 0 0 2px;justify-content:center;padding-right:18px}.bookshelf-demo .flyer-leaf-right .flyer-face-page{background-image:radial-gradient(120% 40% at 50% -5%, #fff6 0%, transparent 55%), linear-gradient(270deg, transparent 55%, color-mix(in srgb, var(--shell,#5a6a88) 10%, transparent) 82%, color-mix(in srgb, var(--shell,#5a6a88) 28%, transparent) 100%), linear-gradient(180deg, var(--page-hi,#fffcf6) 0%, var(--page,#f7f4ef) 55%, var(--page-lo,#efe8dc) 100%);border-radius:0 3px 2px 0;justify-content:flex-start;padding-top:18px;padding-left:18px}.bookshelf-demo .flyer-thickness{pointer-events:none;z-index:3;background:repeating-linear-gradient(180deg, var(--edge-a,#d8cfc0) 0px, var(--edge-b,#c4b7a2) 1px, var(--edge-c,#b0a08a) 2px, var(--edge-a,#d8cfc0) 3px);width:7px;box-shadow:0 0 0 1px color-mix(in srgb, var(--shell,#5a6a88) 22%, transparent);opacity:.92;position:absolute;top:1%;bottom:2%;transform:translateZ(1px)}.bookshelf-demo .flyer-leaf-left .flyer-thickness{border-radius:1px 0 0 1px;left:-5px}.bookshelf-demo .flyer-leaf-right .flyer-thickness{border-radius:0 1px 1px 0;right:-5px}.bookshelf-demo .flyer-gutter{z-index:4;pointer-events:none;opacity:0;background:linear-gradient(90deg,#281e1200 0%,#281e122e 35%,#1e160c52 50%,#281e122e 65%,#281e1200 100%);width:14px;margin-left:-7px;position:absolute;top:2%;bottom:3%;left:50%;transform:translateZ(2px)}.bookshelf-demo .flyer-page-title{color:var(--ink,#2a261e);letter-spacing:.02em;opacity:1;margin:0 0 6px;font-family:Noto Serif SC,Songti SC,serif;font-size:13px;font-weight:650;line-height:1.4}.bookshelf-demo .flyer-page-author{color:var(--ink-muted,#5a5348);opacity:.85;margin:0;font-family:system-ui,sans-serif;font-size:9px;font-weight:500;line-height:1.3}.bookshelf-demo .flyer-page-kicker{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-muted,#5a5348);opacity:.75;margin:0 0 8px;font-family:system-ui,sans-serif;font-size:9px;font-weight:600}.bookshelf-demo .flyer-page-summary{color:var(--ink,#2a261e);opacity:1;-webkit-line-clamp:9;-webkit-box-orient:vertical;margin:0;font-family:Noto Serif SC,Songti SC,serif;font-size:10px;font-weight:400;line-height:1.55;display:-webkit-box;overflow:hidden}.bookshelf-demo .flyer-page-line{display:none}.bookshelf-demo .note-view.is-preparing{pointer-events:none;transition:none;overflow:hidden;display:block!important}.bookshelf-demo .note-view.is-open{pointer-events:auto;overflow:auto}.bookshelf-demo .shelf-view.is-dim{opacity:1}.bookshelf-demo .shelf-view.is-frozen{pointer-events:none!important}.bookshelf-demo .shelf-view.is-frozen .cover,.bookshelf-demo .shelf-view.is-frozen .spine{filter:none!important;transition:none!important;transform:none!important}:is(.bookshelf-demo .shelf-view.is-frozen .cover:hover,.bookshelf-demo .shelf-view.is-frozen .cover:focus-visible,.bookshelf-demo .shelf-view.is-frozen .spine:hover,.bookshelf-demo .shelf-view.is-frozen .spine:focus-visible){box-shadow:inherit;z-index:auto;transform:none!important}.bookshelf-demo .shelf-view.is-frozen .spine.is-expanded,.bookshelf-demo .shelf-view.is-frozen .spine.is-collapsing{transition:none!important}.bookshelf-demo .shelf-view.is-parked{visibility:hidden!important;pointer-events:none!important}.bookshelf-demo .shelf-view,.bookshelf-demo .spines,.bookshelf-demo .covers{overflow-anchor:none}.bookshelf-demo .flyer.flyer-close-cover{transform-style:flat;contain:layout style paint;border-radius:2px 3px 0 0;overflow:hidden;box-shadow:0 14px 32px #281e1433,inset 0 1px #ffffff0f}.bookshelf-demo .flyer-close-face{border-radius:inherit;background-color:#0000;background-position:top;background-repeat:no-repeat;background-size:cover;position:absolute;inset:0;overflow:hidden;transform:translateZ(0)}.bookshelf-demo .flyer-close-face .flyer-cover-img{object-fit:contain;object-position:center top;pointer-events:none;z-index:1;width:100%;height:100%;display:block;position:absolute;inset:0;transform:translateZ(0)}.bookshelf-demo .flyer-close-face .flyer-spine-label{z-index:2}@media (prefers-reduced-motion:reduce){.bookshelf-demo{--t-expand:1ms;--t-collapse:1ms;--t-pull:1ms;--t-flip:1ms;--t-settle:1ms;--t-putback:1ms;--t-land:1ms;--t-veil:1ms}.bookshelf-demo .cover,.bookshelf-demo .spine,.bookshelf-demo .note-view,.bookshelf-demo .shelf-view,.bookshelf-demo .flyer,.bookshelf-demo .open-backdrop,.bookshelf-demo .flyer-leaf,.bookshelf-demo .flyer-face,.bookshelf-demo .flyer-face-cover,.bookshelf-demo .flyer-spine-label,.bookshelf-demo .flyer-gutter,.bookshelf-demo .open-veil,.bookshelf-demo .open-veil-blob{transition:none!important;animation:none!important}}@media (max-width:640px){.bookshelf-demo .page{padding:28px 16px 40px}.bookshelf-demo .covers{gap:10px;min-height:176px}.bookshelf-demo .cover{width:102px;height:154px}.bookshelf-demo .spines{gap:3px;min-height:160px}.bookshelf-demo .spine{width:24px;height:132px;font-size:11px}.bookshelf-demo .s-tall{width:26px;height:148px}.bookshelf-demo .s-mid{width:24px;height:134px}.bookshelf-demo .s-short{width:20px;height:120px}.bookshelf-demo .spine[class*=img-]{background-image:none!important}.bookshelf-demo .spine.is-expanded[class*=img-]{background-image:unset}.bookshelf-demo .spine.is-expanded.img-clean-code{background-image:url(/covers/clean-code.jpg)!important}.bookshelf-demo .spine.is-expanded.img-refactoring{background-image:url(/covers/refactoring.jpg)!important}.bookshelf-demo .spine.is-expanded.img-design-patterns{background-image:url(/covers/design-patterns.jpg)!important}.bookshelf-demo .spine.is-expanded.img-pragmatic-programmer{background-image:url(/covers/pragmatic-programmer.jpg)!important}.bookshelf-demo .spine.is-expanded.img-continuous-delivery{background-image:url(/covers/continuous-delivery.jpg)!important}.bookshelf-demo .spine.is-expanded.img-phoenix-project{background-image:url(/covers/phoenix-project.jpg)!important}.bookshelf-demo .spine.is-expanded.img-mythical-man-month{background-image:url(/covers/mythical-man-month.jpg)!important}.bookshelf-demo .spine.is-expanded.img-tdd{background-image:url(/covers/tdd.jpg)!important}.bookshelf-demo .spine.is-expanded.img-lean-startup{background-image:url(/covers/lean-startup.jpg)!important}.bookshelf-demo .spine.is-expanded.img-release-it{background-image:url(/covers/release-it.jpg)!important}.bookshelf-demo .spine.is-expanded.img-sre{background-image:url(/covers/sre.jpg)!important}.bookshelf-demo .spine.is-expanded.img-team-topologies{background-image:url(/covers/team-topologies.jpg)!important}.bookshelf-demo .spine.is-expanded.img-accelerate{background-image:url(/covers/accelerate.jpg)!important}.bookshelf-demo .spine.is-expanded.img-ddd{background-image:url(/covers/ddd.jpg)!important}.bookshelf-demo .spine.is-expanded.img-microservices{background-image:url(/covers/microservices.jpg)!important}.bookshelf-demo .spine.is-expanded.img-eaa{background-image:url(/covers/eaa.jpg)!important}.bookshelf-demo .spine.is-expanded.img-ddia{background-image:url(/covers/ddia.jpg)!important}.bookshelf-demo .spine.is-expanded.img-fundamentals-sa{background-image:url(/covers/fundamentals-sa.jpg)!important}.bookshelf-demo .spine.is-expanded.img-implementing-ddd{background-image:url(/covers/implementing-ddd.jpg)!important}.bookshelf-demo .spine.is-expanded.img-systems-performance{background-image:url(/covers/systems-performance.jpg)!important}.bookshelf-demo .spine.is-expanded.img-clean-architecture{background-image:url(/covers/clean-architecture.jpg)!important}.bookshelf-demo .spine.is-expanded{width:90px;height:136px}.bookshelf-demo .spine.is-expanded.is-collapsing{width:24px;height:132px}.bookshelf-demo .spine.is-expanded.is-collapsing.s-tall{width:26px;height:148px}.bookshelf-demo .spine.is-expanded.is-collapsing.s-mid{width:24px;height:134px}.bookshelf-demo .spine.is-expanded.is-collapsing.s-short{width:20px;height:120px}.bookshelf-demo .note-hero{flex-direction:column;gap:16px}.bookshelf-demo .note-cover{width:100px;height:150px}.bookshelf-demo .qa-hint{width:100%;margin-top:4px;margin-left:0}}body:not(.debug-on) .bookshelf-demo .is-debug{display:none!important}.bookshelf-page.sh-main{flex-direction:column;align-items:center;display:flex}.bookshelf-page .sh-head{width:100%;max-width:var(--col);margin-inline:auto}.bookshelf-page .sh-kicker{font-size:var(--fs-meta);letter-spacing:.08em;color:var(--muted);margin:0 0 12px}.bookshelf-demo.is-site{--site-sans:-apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Segoe UI", system-ui, sans-serif;width:100%;max-width:var(--col);min-height:0;color:inherit;font-family:var(--site-sans);font-size:inherit;line-height:inherit;background:0 0;margin-inline:auto}.bookshelf-demo.is-site .page{width:100%;max-width:none;margin:0;padding:0 0 8px}.bookshelf-demo.is-site .top{display:none}.bookshelf-page .sh-head h1,.bookshelf-page .sh-deck,.bookshelf-page .sh-kicker{font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Segoe UI,system-ui,sans-serif}body:has(.bookshelf-demo.is-site) .sh-header{font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Segoe UI,system-ui,sans-serif}body:has(.bookshelf-demo.is-site) .sh-footer{font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Segoe UI,system-ui,sans-serif}body:has(.bookshelf-demo.is-site) .sh-header .sh-word{font-family:Songti SC,STSong,"Source Serif 4",Georgia,serif}.bookshelf-demo.is-site .open-backdrop{top:var(--hdr);z-index:30;background:var(--paper)}.bookshelf-demo.is-site .stage{z-index:32}.bookshelf-demo.is-site .note-view{top:var(--hdr);background:var(--paper);color:var(--text)}.bookshelf-demo.is-site .note-view.is-preparing,.bookshelf-demo.is-site .note-view.is-open{z-index:34}.bookshelf-demo.is-site .open-veil{z-index:36}.bookshelf-demo.is-site .note{width:min(100%, var(--col));margin:0 auto;padding:28px 0 80px}.bookshelf-demo.is-site .back-btn,.bookshelf-demo.is-site .note-hero,.bookshelf-demo.is-site .note-body,.bookshelf-demo.is-site .note-read{max-width:none;font-family:var(--site-sans)}.bookshelf-demo.is-site .note-body{font-size:var(--fs-body);color:var(--text);line-height:1.75}.bookshelf-demo.is-site .note-body h2{font-family:inherit;font-size:var(--fs-h2);color:var(--ink);font-weight:700;line-height:1.3}.bookshelf-demo.is-site .note-meta h1{font-family:inherit;font-weight:700;font-size:var(--fs-display);color:var(--ink);line-height:1.2}.bookshelf-demo .flyer-page-more{pointer-events:auto;letter-spacing:.04em;color:var(--ink,#2a261e);text-underline-offset:2px;align-self:flex-start;margin-top:8px;font-family:system-ui,sans-serif;font-size:9px;font-weight:600;text-decoration:underline}.bookshelf-demo .note-read{color:var(--ink);text-underline-offset:3px;margin:12px 0 0;font-size:14px;text-decoration:underline;display:inline-block}.bookshelf-demo .note-read[hidden]{display:none}.bookshelf-demo.is-site .note-read{color:var(--blue)}@media (max-width:820px){.bookshelf-demo.is-site .note{padding:16px 20px 64px}}
