:root{--bg:#f9f7f3;--paper:#fffefa;--ink:#35473d;--muted:#839084;--pink:#bf7b8e;--pink-pale:#f2e3e4;--line:#e4e5db;--green:#6b7e6d;--radius:16px;font-family:'Microsoft YaHei','PingFang SC',system-ui,sans-serif;color:var(--ink);background:var(--bg);font-synthesis:none}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button,a,input,textarea,select{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:wait;opacity:.6}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #b2c4b1;outline-offset:4px}button{border:0;background:none;color:inherit}input,textarea,select{border:1px solid var(--line);border-radius:9px;background:var(--paper);padding:12px;color:var(--ink);max-width:100%}textarea{resize:vertical;line-height:1.8}h1,h2,h3,p{margin-top:0}p{line-height:1.95}::selection{background:#f0d8df}.site-header{height:108px;max-width:1260px;margin:auto;display:flex;align-items:center;justify-content:space-between;padding:0 48px;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:12px;font-family:Georgia,'Times New Roman',serif;font-size:24px;letter-spacing:2px}.brand small{display:block;font-family:system-ui;font-size:9px;letter-spacing:7px;margin-top:6px;color:var(--muted)}.blossom{font-family:serif;color:var(--pink);font-size:44px;line-height:1}.site-header nav{display:flex;gap:36px;font-size:13px;align-items:center}.site-header nav a:hover{color:var(--pink)}.admin-link{border:1px solid #d9ded4;padding:11px 18px;border-radius:30px}.admin-link span{margin-left:14px}.page-width{max-width:1164px;margin:auto;padding:0 32px}.hero{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;min-height:585px;padding:65px 0 75px}.eyebrow{font-size:11px;letter-spacing:3px;color:var(--pink);display:flex;gap:12px;align-items:center;margin-bottom:25px}.eyebrow:before{content:'';display:inline-block;width:28px;height:1px;background:var(--pink)}.hero h1{font-family:'Songti SC','SimSun',serif;font-weight:500;font-size:48px;line-height:1.5;letter-spacing:2px;margin-bottom:24px}.hero h1 em{font-style:normal;color:var(--pink)}.hero-copy>p{color:#7c887b;font-size:14px;max-width:400px;line-height:2.2}.hero-actions{display:flex;align-items:center;gap:27px;margin-top:35px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:18px;background:var(--ink);color:#fffef9;padding:13px 24px;border-radius:8px;font-size:13px;transition:background .2s,transform .2s}.btn:hover{background:#536757;transform:translateY(-1px)}.btn.secondary{background:#eee9df;color:var(--ink)}.btn.danger{background:#f6e3e3;color:#a23c45}.btn.small{padding:9px 16px}.text-link{font-size:12px;color:#7e897a;text-decoration:underline;text-underline-offset:5px}.hero-art{position:relative;padding:28px 5px 15px}.hero-art:before{content:'';position:absolute;inset:0 -10px 0 20px;background:radial-gradient(ellipse at 80% 25%,#f0e2e5 0,transparent 60%),radial-gradient(ellipse at 25% 80%,#e1e8dc 0,transparent 60%);filter:blur(24px);border-radius:40%;opacity:.9}.paper{position:relative;transform:rotate(-3deg);background:var(--paper);padding:22px 22px 16px;border:1px solid #e4e4d9;box-shadow:0 18px 55px #707b5712,7px 7px 0 #f0eee7;max-width:520px}.paper:before{content:'';position:absolute;width:104px;height:29px;background:#e8dcc49c;left:40%;top:-13px;transform:rotate(1deg)}.paper-heading{display:flex;justify-content:space-between;align-items:center;font-size:10px;letter-spacing:2px;color:var(--muted);padding:8px 5px 15px}.paper .plan-svg{display:block;width:100%;height:auto;background:#fbfaf6}.paper-note{display:flex;justify-content:space-between;font-size:10px;letter-spacing:1px;color:#98a08f;padding:12px 5px 0}.art-note{position:relative;text-align:right;margin-top:27px;color:var(--pink);font-family:'SimSun',serif;font-size:15px;transform:rotate(-3deg)}.petal{position:absolute;width:12px;height:20px;background:#e5c1ca;border-radius:80% 10% 80% 20%;opacity:.7;transform:rotate(30deg);pointer-events:none}.petal.one{top:6%;right:18%}.petal.two{bottom:8%;left:5%;transform:rotate(100deg);width:8px;height:14px}.petal.three{top:16%;left:50%;width:7px;height:12px;transform:rotate(-20deg)}.section-heading{border-top:1px solid var(--line);padding-top:39px;display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:30px}.section-heading h2{font-family:'SimSun',serif;font-size:27px;font-weight:500;letter-spacing:3px;margin:9px 0 0}.section-heading .small-label{color:var(--pink);font-size:10px;letter-spacing:3px}.section-heading p{font-size:12px;color:var(--muted);margin:0}.filters{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:25px}.filter-tabs{display:flex;gap:7px;flex-wrap:wrap}.filter-tabs button{padding:8px 18px;border-radius:20px;font-size:12px;color:#859080}.filter-tabs button.active{background:#e7ebdf;color:#4b604c}.search{display:flex;align-items:center;border-bottom:1px solid #d5dccf;gap:10px}.search input{border:0;border-radius:0;background:transparent;width:195px;padding:10px 0;font-size:12px}.search span{color:var(--muted)}.work-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px}.work-card{display:block;padding:13px 13px 22px;background:var(--paper);border:1px solid #e4e7dc;border-radius:12px;transition:box-shadow .2s,transform .2s}.work-card:hover{transform:translateY(-4px);box-shadow:0 10px 30px #4b5e4c10}.work-cover{position:relative;overflow:hidden;background:#eeeee5;border-radius:6px;aspect-ratio:1.65}.work-cover .plan-svg{width:100%;height:100%;object-fit:contain}.work-cover img{width:100%;height:100%;object-fit:cover}.draft-badge{position:absolute;left:14px;top:14px;font-size:10px;background:#fffef6e8;color:#819074;padding:5px 9px;border-radius:20px;z-index:1}.card-content{padding:21px 14px 0}.card-meta{font-size:10px;letter-spacing:2px;color:var(--pink);display:flex;justify-content:space-between}.card-meta time{letter-spacing:1px;color:#9ba48f}.work-card h3{font-size:18px;font-weight:500;line-height:1.6;margin:14px 0 9px;letter-spacing:.5px}.work-card p{font-size:12px;color:#8b9586;line-height:1.9;margin:0}.card-bottom{display:flex;justify-content:space-between;align-items:center;border-top:1px dashed #e0e5d8;padding-top:14px;margin-top:20px;font-size:10px;color:#8d9788}.card-bottom b{font-size:19px;font-weight:400;color:var(--pink)}.reading-note{display:grid;grid-template-columns:1fr 1fr;gap:80px;background:#efeee5;border-radius:12px;margin:65px 0 85px;padding:36px 40px}.reading-note h3{font-family:'SimSun',serif;font-size:21px;font-weight:400;letter-spacing:2px;margin-bottom:14px}.reading-note p{font-size:12px;color:#87917e;margin:0}.reading-note .eyebrow{margin-bottom:15px;font-size:9px}.note-list{display:grid;grid-template-columns:1fr 1fr;gap:25px;font-size:12px}.note-list span{color:var(--pink);font-family:Georgia,serif;font-size:17px;margin-right:12px}.note-list small{display:block;font-size:10px;color:#909985;padding:8px 0 0 30px}.site-footer{border-top:1px solid var(--line);max-width:1164px;margin:0 auto;padding:35px 32px 40px;display:flex;align-items:center;gap:32px;color:#949e8b;font-size:11px}.footer-brand{font-family:Georgia,serif;font-size:15px;letter-spacing:1px}.site-footer small{margin-left:auto;font-size:10px}.site-footer #icp{display:block;margin-top:8px}.loading,.empty{text-align:center;padding:80px 15px;color:var(--muted);font-size:14px}.empty-diagram{padding:80px 20px;text-align:center;color:var(--muted);font-size:12px}#preview-banner{background:#eceade;color:#7b8068;text-align:center;padding:8px;font-size:11px;letter-spacing:1px}#preview-banner[hidden]{display:none}.article-shell{max-width:960px;margin:0 auto;padding:45px 32px 75px}.back-link{font-size:12px;color:var(--muted)}.article-title{max-width:780px;margin:45px auto 35px;text-align:center}.article-title h1{font-family:'SimSun',serif;font-size:36px;line-height:1.55;font-weight:500;letter-spacing:1px;margin:18px 0}.article-title p{color:var(--muted);font-size:13px}.article-meta{font-size:11px;color:var(--pink);letter-spacing:2px}.article-nav{display:flex;justify-content:center;gap:25px;font-size:12px;color:var(--muted);padding:16px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:40px}.article-section{margin:40px 0 50px}.article-section h2{font-family:'SimSun',serif;font-weight:500;font-size:24px;letter-spacing:2px;display:flex;align-items:center;gap:13px;margin-bottom:25px}.article-section h2 span{font-family:Georgia,serif;color:#c8a9ad;font-size:16px}.article-section p{font-size:14px;line-height:2.2;color:#6e7e6c}.author-text{white-space:pre-wrap}.image-empty{background:repeating-linear-gradient(45deg,#f1f0e9,#f1f0e9 10px,#f5f4ed 10px,#f5f4ed 20px);border:1px dashed #d6dacd;border-radius:10px;padding:55px 20px;text-align:center;color:#9ba28f;font-size:13px}.image-empty small{display:block;margin-top:10px;font-size:11px}.gallery{display:grid;grid-template-columns:1fr 1fr;gap:22px}.gallery figure{margin:0}.gallery img{max-width:100%;border-radius:8px;cursor:zoom-in}.gallery figcaption{font-size:11px;color:var(--muted);padding-top:10px;text-align:center}.diagram-frame{border:1px solid #dedfd2;border-radius:10px;background:#fbfaf6;overflow:hidden;cursor:zoom-in}.diagram-frame .plan-svg{display:block;width:100%;height:auto}.diagram-actions{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;margin-top:18px}.diagram-actions p{font-size:11px;margin:0;color:var(--muted)}.button-group{display:flex;gap:10px;flex-wrap:wrap}.parameter-scroll{overflow:auto;border:1px solid var(--line);border-radius:9px}table{width:100%;border-collapse:collapse;text-align:left;white-space:nowrap;font-size:12px}th{font-weight:500;color:#82907c;background:#eef0e7}td,th{padding:16px 18px;border-bottom:1px solid var(--line)}tr:last-child td{border-bottom:0}td small{color:var(--muted)}.about{max-width:720px;margin:auto;padding:90px 32px 130px}.about h1{font-family:'SimSun',serif;font-size:37px;font-weight:400;line-height:1.8}.about p{color:#7a8875;font-size:14px}.about-note{padding:25px;background:#eeeee4;border-radius:12px;margin-top:40px}.auth-shell{max-width:460px;margin:65px auto 90px;padding:35px;background:var(--paper);border:1px solid var(--line);border-radius:15px}.auth-shell h1{font-family:'SimSun',serif;font-size:27px;font-weight:500}.auth-shell p{font-size:12px;color:var(--muted)}.auth-shell form{display:grid;gap:20px}.field{display:grid;gap:8px;font-size:12px}.field small{color:var(--muted);line-height:1.8;font-size:10px}.form-error{color:#a84f62!important;min-height:18px;margin:0}.admin-shell{max-width:1160px;margin:auto;padding:40px 32px 80px}.admin-top{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:30px}.admin-top h1{font-family:'SimSun',serif;font-size:30px;font-weight:500;margin-bottom:8px}.admin-top p{font-size:12px;color:var(--muted);margin:0}.admin-tools{display:flex;gap:10px;flex-wrap:wrap}.admin-columns{display:grid;grid-template-columns:250px minmax(0,1fr);gap:28px}.post-list{display:grid;gap:10px;align-content:start}.post-item{border:1px solid var(--line);border-radius:9px;background:var(--paper);text-align:left;padding:16px;font-size:12px;line-height:1.8}.post-item.active{border-color:#a8b69c;background:#eff1e8}.post-item small{display:block;color:var(--pink);font-size:10px;margin-bottom:5px}.editor{padding:30px;background:var(--paper);border:1px solid var(--line);border-radius:12px}.editor form{display:grid;gap:23px}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:20px}.editor h2{font-size:16px;font-weight:500;border-top:1px solid var(--line);padding-top:24px;margin:4px 0 -3px}.upload-row{padding:16px;background:#f2f2e9;border-radius:8px;display:grid;gap:12px;font-size:12px}.upload-row input{padding:8px;width:100%;font-size:11px}.upload-row img{max-height:120px;max-width:100%;object-fit:contain}.upload-label{display:flex;justify-content:space-between;align-items:center}.mini-gallery{display:grid;grid-template-columns:1fr 1fr;gap:12px}.mini-gallery>div{padding:10px;background:#f2f2e9;border-radius:8px}.mini-gallery img{width:100%;height:100px;object-fit:contain}.mini-gallery input{font-size:11px;width:100%;padding:7px}.mini-gallery button{font-size:10px;color:var(--pink);margin-top:6px}.save-bar{display:flex;gap:12px;justify-content:space-between;position:sticky;bottom:10px;background:#fffef9ed;padding:14px;border:1px solid var(--line);border-radius:8px;z-index:2}.save-bar>div{display:flex;gap:10px}.plan-message{font-size:11px;color:var(--green);line-height:1.8}.plan-preview{max-height:250px;overflow:auto;border:1px solid var(--line);border-radius:8px}.plan-preview svg{width:100%}#toast{position:fixed;bottom:30px;left:50%;transform:translateX(-50%);padding:14px 24px;background:#3e5145;color:white;border-radius:8px;opacity:0;transition:opacity .2s;pointer-events:none;z-index:50;font-size:13px;max-width:90vw;box-shadow:0 6px 25px #35473d33}#toast.show{opacity:1}dialog{width:min(1200px,96vw);max-height:94vh;border:1px solid var(--line);border-radius:12px;background:var(--paper);padding:22px}dialog::backdrop{background:#26332bc4;backdrop-filter:blur(5px)}.dialog-close{position:absolute;right:16px;top:10px;font-size:27px;padding:6px;z-index:2}.lightbox-tools{display:flex;gap:12px;align-items:center;font-size:12px;padding:0 45px 14px 0}.lightbox-tools button{background:#eeeede;padding:7px 12px;border-radius:5px}#lightbox-image{overflow:auto;max-height:72vh;background:#f7f6ef}#lightbox-image>svg,#lightbox-image>img{width:100%;max-width:none;height:auto;display:block}dialog>p{font-size:11px;color:var(--muted);text-align:center;margin:13px 0 0}body:has(dialog[open]){overflow:hidden}.inline-warning{padding:14px 18px;background:#f4ede3;border-radius:8px;font-size:12px;color:#968163;margin-bottom:25px}.unsaved{color:var(--pink);font-size:11px;margin-left:10px}.error-page{padding:100px 20px;text-align:center}.editor pre{white-space:pre-wrap}#backup-note{font-size:10px;color:var(--muted)}
.diagram-frame{display:block;width:100%;padding:0}.diagram-frame>img{display:block;width:100%;height:auto}.photo-button{padding:0}
@media(min-width:1500px){.hero{min-height:650px}}@media(max-width:900px){.site-header{padding:0 28px;height:95px}.hero{gap:20px;min-height:525px}.hero h1{font-size:36px}.hero-copy>p{font-size:12px}.hero-actions{gap:15px}.paper{padding:13px}.site-header nav{gap:22px}.admin-columns{grid-template-columns:200px minmax(0,1fr)}.editor{padding:20px}.reading-note{gap:30px;padding:30px}}@media(max-width:650px){.site-header{height:86px;padding:0 20px}.brand{font-size:19px;gap:8px}.brand small{font-size:8px;letter-spacing:5px}.blossom{font-size:35px}.site-header nav{gap:17px;font-size:11px}.site-header nav>.nav-about{display:none}.admin-link{padding:8px 11px}.admin-link span{margin-left:4px}.page-width{padding:0 23px}.hero{grid-template-columns:1fr;gap:35px;padding:45px 0}.hero h1{font-size:37px;line-height:1.6}.hero-copy>p{font-size:13px;max-width:350px}.hero-actions{margin-top:24px}.hero-art{max-width:470px;margin:auto;width:100%;padding:10px}.paper{padding:16px}.paper-note{font-size:8px}.art-note{font-size:12px}.eyebrow{font-size:9px;margin-bottom:20px}.section-heading{padding-top:30px;align-items:center}.section-heading h2{font-size:24px}.section-heading p{display:none}.filters{align-items:stretch;flex-direction:column;gap:15px}.search{width:100%}.search input{width:100%}.filter-tabs button{padding:8px 17px}.work-grid{grid-template-columns:1fr;gap:24px}.work-card h3{font-size:17px}.reading-note{grid-template-columns:1fr;padding:27px;gap:25px;margin:40px 0 55px}.site-footer{padding:27px 23px;gap:14px;flex-wrap:wrap}.site-footer small{flex-basis:100%;margin:0}.site-footer>span{font-size:10px;margin-left:auto}.article-shell{padding:30px 20px 50px}.article-title{margin:35px auto}.article-title h1{font-size:28px}.article-nav{gap:16px;font-size:11px}.article-section h2{font-size:22px}.article-section p{font-size:13px}.gallery{grid-template-columns:1fr}.diagram-actions{gap:12px}.diagram-actions .btn{font-size:11px;padding:11px 15px}td,th{padding:13px}.auth-shell{margin:45px 20px 65px;padding:27px}.admin-shell{padding:30px 18px}.admin-top{align-items:flex-start;flex-direction:column}.admin-top h1{font-size:26px}.admin-tools .btn{padding:10px 12px;font-size:11px}.admin-columns{grid-template-columns:1fr}.post-list{display:flex;overflow:auto;gap:10px;padding-bottom:5px}.post-item{min-width:180px;max-width:220px}.editor{padding:19px}.field-row{grid-template-columns:1fr}.save-bar{padding:10px;gap:5px}.save-bar .btn{padding:10px 11px;font-size:11px}.mini-gallery{grid-template-columns:1fr}.about{padding:55px 25px 80px}.about h1{font-size:29px}dialog{padding:15px}.lightbox-tools{gap:5px;font-size:10px}.lightbox-tools button{padding:7px}.dialog-close{right:8px;top:7px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

.tool-shell{max-width:1260px;margin:auto;padding:45px 35px 65px}.tool-heading{display:flex;justify-content:space-between;align-items:center;gap:25px;margin-bottom:25px}.tool-heading .eyebrow{margin-bottom:18px}.tool-heading h1{font-family:SimSun,serif;font-size:34px;font-weight:500;letter-spacing:2px;margin-bottom:14px}.tool-heading p{font-size:13px;color:var(--muted);margin:0}.tool-note{display:flex;align-items:center;gap:18px;padding:17px 22px;background:#f0ece5;border-radius:10px;margin-bottom:22px}.tool-note>span{font-size:30px;color:var(--pink)}.tool-note p{font-size:12px;margin:0;color:#6f7f6a}.tool-note small{display:block;font-size:11px;color:#9a8a80;line-height:1.8;margin-top:4px}#lighting-tool-frame{display:block;border:1px solid var(--line);border-radius:12px;background:var(--paper);width:100%;height:1040px}.tool-help{padding:23px 3px;color:var(--muted);font-size:12px}.tool-help summary{cursor:pointer;color:var(--ink);padding:0 0 10px}.tool-help p{line-height:1.9}.tool-help>p{font-size:10px;margin:17px 0 0}@media(max-width:650px){.site-header{height:auto;min-height:86px;flex-wrap:wrap;gap:17px 10px;padding-top:18px;padding-bottom:18px}.site-header nav{gap:12px}.tool-shell{padding:30px 15px 40px}.tool-heading{align-items:flex-start;flex-direction:column;gap:15px}.tool-heading h1{font-size:28px}.tool-heading p{font-size:12px}.tool-note{padding:15px;gap:12px}.tool-note p{font-size:11px}.tool-note small{font-size:10px}.tool-help{padding:20px 6px}}


/* The journal collection is a shelf of real article covers and spines. */
.journal-library{margin-top:4px}
.shelf-viewport{position:relative;height:466px;overflow:hidden;isolation:isolate;perspective:1400px;perspective-origin:50% 25%;background:radial-gradient(ellipse at 48% 43%,#f1e5e780,transparent 52%);touch-action:pan-y;cursor:grab;user-select:none;-webkit-user-select:none}
.shelf-running-label{position:absolute;inset:21px 19px auto;display:flex;justify-content:space-between;gap:20px;font-size:9px;letter-spacing:2px;color:#a2a696;pointer-events:none}
.shelf-floor{position:absolute;inset:auto -4% 31px;height:200px;transform:rotateX(69deg);transform-origin:center bottom;background-image:linear-gradient(#cdd5c54d 1px,transparent 1px),linear-gradient(90deg,#cdd5c54d 1px,transparent 1px);background-size:46px 46px;mask-image:radial-gradient(ellipse at 50% 80%,#000 0,transparent 69%);pointer-events:none}
.shelf-viewport:after{content:'';position:absolute;width:330px;height:35px;left:calc(50% - 165px);bottom:34px;background:radial-gradient(ellipse,#65725424,transparent 68%);filter:blur(9px);pointer-events:none}
.shelf-scene{position:absolute;top:112px;left:50%;width:0;height:var(--book-height,318px);transform:translateX(var(--shelf-drag,0px));transform-style:preserve-3d;transition:transform .3s ease}
.journal-book{position:absolute;left:0;top:0;width:var(--book-width,214px);height:var(--book-height,318px);padding:0;border:0;border-radius:0;background:none;text-align:left;transform-style:preserve-3d;transform-origin:0 50%;cursor:pointer;-webkit-tap-highlight-color:transparent}
.shelf-viewport.is-ready .journal-book{transition:transform .62s cubic-bezier(.2,.72,.2,1),visibility .62s}
.journal-book.is-distant{visibility:hidden;pointer-events:none}
.journal-book:focus-visible{outline:0}
.journal-book:focus-visible .book-front{outline:3px solid #9cad91;outline-offset:5px}
.book-front,.book-back,.book-spine,.book-top,.book-pages{position:absolute;display:block;backface-visibility:hidden;-webkit-backface-visibility:hidden}
.book-front{inset:0;background:#fffef8;border:1px solid #e0dfd3;border-radius:1px 5px 5px 1px;padding:15px 13px 11px;transform:translateZ(calc(var(--book-thickness)/2));box-shadow:3px 5px 10px #4c594314;display:flex;flex-direction:column;overflow:hidden}
.book-front:after{content:'';position:absolute;inset:0;pointer-events:none;box-shadow:inset 5px 0 5px #45513a0a; background:linear-gradient(105deg,#fff9,transparent 20%,transparent 88%,#b9b5a30b)}
.book-back{inset:0;transform:translateZ(calc(var(--book-thickness)/-2)) rotateY(180deg);background:var(--book-tone);border:1px solid #d9decf;border-radius:2px 5px 5px 2px}
.book-spine{width:var(--book-thickness);height:100%;left:0;top:0;transform-origin:0 50%;transform:rotateY(-90deg) translateX(calc(var(--book-thickness)/-2));background:linear-gradient(90deg,#fffef8 0%,var(--book-tone) 11%,#fafaf2 35%,#fffef8 82%,#e6e6da 100%);border:1px solid #d5dacb;border-radius:2px 0 0 2px;box-shadow:inset 2px 0 3px #fff9}
.book-spine-number{position:absolute;top:13px;left:0;right:0;text-align:center;font-family:Georgia,serif;font-size:10px;color:#9aa28e;letter-spacing:1px}
.book-spine-title{position:absolute;top:48px;bottom:48px;left:50%;transform:translateX(-50%);writing-mode:vertical-rl;text-orientation:upright;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;font-family:'Songti SC',SimSun,serif;font-weight:600;font-size:13px;letter-spacing:1px;line-height:1.25;color:#485744}
.book-spine-mark{position:absolute;left:0;right:0;bottom:15px;text-align:center;color:#bec7b2;font-size:15px;font-family:Georgia,serif}
.book-top{width:100%;height:var(--book-thickness);left:0;top:1px;transform-origin:50% 0;transform:rotateX(90deg) translateY(calc(var(--book-thickness)/-2));background:repeating-linear-gradient(0deg,#efeee5 0 1px,#fffef9 1px 3px);border:1px solid #e6e5dc}
.book-pages{width:var(--book-thickness);height:calc(100% - 5px);left:calc(100% - 1px);top:2px;transform-origin:0 50%;transform:rotateY(90deg) translateX(calc(var(--book-thickness)/-2));background:repeating-linear-gradient(90deg,#e8e7dc 0 1px,#fffef7 1px 3px);border:1px solid #dfdfd3}
.book-cover-meta{display:flex;justify-content:space-between;gap:6px;align-items:center;font-size:8px;letter-spacing:1px;line-height:1.6;color:#86957d;margin-bottom:10px;white-space:nowrap}
.book-cover-meta>span:last-child{font-family:Georgia,serif;font-size:10px;color:#a6ae9a}
.book-cover-visual{display:block;height:54%;flex-shrink:0;overflow:hidden;background:#f1f1e8;border:1px solid #ececdf;margin-bottom:12px}
.book-cover-visual>img,.book-cover-visual>.plan-svg{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none}
.book-cover-visual>img{object-fit:cover}
.book-cover-category{font-size:8px;letter-spacing:1px;color:var(--pink);line-height:1.5}
.book-cover-title{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;font-family:'Songti SC',SimSun,serif;font-weight:600;font-size:15px;letter-spacing:.5px;line-height:1.6;margin-top:6px;color:#4c5b46}
.book-cover-foot{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:auto;padding-top:10px;font-size:6px;letter-spacing:1.1px;color:#a8b097;white-space:nowrap}
.book-cover-foot>span{font-size:15px;line-height:1;color:#c79ca4}
.shelf-viewport.is-dragging,.shelf-viewport.is-dragging .journal-book{cursor:grabbing}
.shelf-viewport.is-dragging .shelf-scene{transition:none}
.shelf-edge-line{position:absolute;inset:auto 15% 26px;height:1px;background:linear-gradient(90deg,transparent,#d9dfcfb3,transparent);pointer-events:none}
.shelf-underline{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:0 12px 21px;border-bottom:1px solid var(--line)}
.shelf-underline>span{font-size:10px;letter-spacing:1px;color:#9ba28f;line-height:1.8}
.shelf-navigation{display:flex;align-items:center;gap:17px;flex-shrink:0}
.shelf-arrow{display:inline-flex;align-items:center;justify-content:center;width:35px;height:35px;border:1px solid #dfe3d7;border-radius:50%;font-family:Georgia,serif;font-size:19px;line-height:1;transition:background .2s,color .2s;cursor:pointer}
.shelf-arrow:hover:not(:disabled){background:#e8ecdf;color:#53694e}
.shelf-arrow:disabled{opacity:.3;cursor:default}
.shelf-position{min-width:59px;text-align:center;font-size:11px;letter-spacing:2px;font-family:Georgia,serif;color:#7e8c72}
.shelf-detail{display:flex;justify-content:space-between;align-items:center;gap:35px;padding:28px 12px 17px;min-height:175px}
.shelf-detail-copy{max-width:650px;min-width:0}
.shelf-detail-meta{display:flex;align-items:center;gap:18px;flex-wrap:wrap;color:var(--pink);font-size:9px;letter-spacing:1.5px;margin-bottom:13px}
.shelf-detail-meta time{font-family:Georgia,serif;color:#9aa28d;letter-spacing:1px;font-size:10px}
.shelf-detail h3{font-family:'Songti SC',SimSun,serif;font-size:25px;font-weight:500;letter-spacing:1px;line-height:1.6;margin:0 0 7px}
.shelf-detail h3 a:hover{color:var(--pink)}
.shelf-detail p{color:#87917c;font-size:12px;line-height:1.95;margin:0 0 11px}
.shelf-detail-facts{font-size:10px;letter-spacing:.5px;color:#9ca58e}
.shelf-draft{font-size:8px;letter-spacing:.5px;background:#eceee4;color:#8c987c;padding:3px 7px;border-radius:3px}
.shelf-read-link{display:flex;align-items:center;justify-content:space-between;gap:27px;flex-shrink:0;padding:12px 0 12px 3px;border-bottom:1px solid #b4bea8;color:#637459;font-size:12px}
.shelf-read-link>span{font-size:23px;color:var(--pink)}
.shelf-read-link:hover{color:var(--pink);border-color:var(--pink)}
.shelf-empty{border:1px dashed #dbe0d2;border-radius:8px;padding:65px 20px}
@media(max-width:650px){
 .shelf-viewport{height:379px;margin:0 -12px;perspective:1100px;perspective-origin:50% 25%}
 .shelf-running-label{inset:13px 12px auto;font-size:7px;letter-spacing:1px}
 .shelf-scene{top:80px}
 .shelf-floor{height:143px;bottom:20px;background-size:34px 34px}
 .shelf-viewport:after{width:260px;left:calc(50% - 130px);bottom:19px}
 .shelf-edge-line{bottom:16px;left:4%;right:4%}
 .book-front{padding:11px 10px 9px}
 .book-cover-meta{font-size:6px;letter-spacing:.4px;margin-bottom:8px}
 .book-cover-meta>span:last-child{font-size:8px}
 .book-cover-visual{height:53%;margin-bottom:10px}
 .book-cover-category{font-size:6.5px}
 .book-cover-title{font-size:12px;line-height:1.6;margin-top:6px}
 .book-cover-foot{font-size:4.8px;letter-spacing:.7px;padding-top:6px}
 .book-cover-foot>span{font-size:12px}
 .book-spine-title{top:39px;bottom:36px;font-size:11.5px;letter-spacing:.7px}
 .book-spine-number{top:11px;font-size:8px}
 .book-spine-mark{bottom:12px;font-size:12px}
 .shelf-underline{padding:0 0 17px;gap:12px}
 .shelf-underline>span{max-width:160px;font-size:9px;letter-spacing:0;line-height:1.9}
 .shelf-navigation{gap:8px}
 .shelf-arrow{width:31px;height:31px;font-size:16px}
 .shelf-position{font-size:10px;letter-spacing:1.5px;min-width:49px}
 .shelf-detail{padding:22px 0 9px;align-items:flex-start;flex-direction:column;gap:15px;min-height:200px}
 .shelf-detail-meta{font-size:8px;gap:12px;margin-bottom:11px;letter-spacing:.8px}
 .shelf-detail h3{font-size:21px;line-height:1.65;letter-spacing:.5px}
 .shelf-detail p{font-size:11px}
 .shelf-detail-facts{font-size:9px}
 .shelf-read-link{font-size:11px;padding:5px 0 9px;gap:24px;align-self:flex-end}
 .shelf-read-link>span{font-size:20px}
}
