.journal-dialog{width:min(1000px,calc(100vw - 24px));max-width:none}
.journal-dialog .navigation-dialog-scroll{padding:22px}
.journal-toolbar,.journal-editor{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:18px}
.journal-surface label{display:flex;flex-direction:column;gap:5px;min-width:0;font-size:12px;color:#4c6c61}
.journal-surface input:not([type=range]),.journal-surface textarea,.journal-surface select{box-sizing:border-box;min-width:0;width:100%;padding:8px 10px;border:1px solid #d8e3da;border-radius:9px;background:#fff;color:#173f38;font:14px/1.5 system-ui,'Microsoft YaHei',sans-serif}
.journal-surface textarea{height:100px;resize:vertical}.journal-surface input[type=range]{width:100%;accent-color:#176f63}
.journal-editor small,.journal-edit-actions,.journal-materials,.journal-photo-tools,.journal-sticker-controls{grid-column:1/-1}
.journal-edit-actions,.journal-sticker-library{display:flex;flex-wrap:wrap;gap:6px}
.journal-editor small{color:#64736c;line-height:1.6}
.journal-materials{padding:10px;border:1px solid #dbe5df;border-radius:10px}.journal-materials summary{cursor:pointer;font-weight:700}.journal-sticker-library{margin-top:10px}
.journal-sticker-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;border-top:1px solid #dbe5df;padding-top:12px}.journal-sticker-controls strong{grid-column:1/-1}
.journal-photo-tools{display:flex;flex-wrap:wrap;gap:10px}.journal-photo-tools>div{display:flex;flex-direction:column;gap:4px;width:100px}.journal-photo-tools img{width:100%;height:76px;object-fit:cover;border-radius:7px}
.journal-preview{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;max-width:760px;margin:0 auto;touch-action:pan-y}
.journal-sheet{position:relative;isolation:isolate;box-sizing:border-box;min-width:0;min-height:460px;padding:28px 26px 42px;border:1px solid #e2d9c3;border-radius:4px 15px 15px 4px;background:#fffdf6;box-shadow:0 5px 18px #253c2520;overflow:hidden}
.journal-sheet h3{font:700 24px/1.4 'Noto Serif SC','SimSun',serif;overflow-wrap:anywhere;margin:10px 0 20px}.journal-sheet h4{font-size:14px}
.journal-sheet p,.journal-sheet li{font-size:13px;line-height:1.8;white-space:pre-wrap;overflow-wrap:anywhere}.journal-sheet small{font-size:11px;line-height:1.6;color:#69786a}.journal-sheet .journal-eyebrow{color:#a8792c;font-size:11px;letter-spacing:2px;margin:0}
.journal-sheet[data-background=sage]{background:#edf5ec}.journal-sheet[data-background=sunset]{background:#fff0e2}
:is(.journal-preview,.journal-thumb-render)[data-template=classic]{--craft-accent:#657c68;--craft-tape:#bdcdb299;--craft-paper:#fffaf0;--craft-ink:#405345}
:is(.journal-preview,.journal-thumb-render)[data-template=postcard]{--craft-accent:#a46f52;--craft-tape:#d7ab7999;--craft-paper:#fff6e8;--craft-ink:#705443}
:is(.journal-preview,.journal-thumb-render)[data-template=osmanthus]{--craft-accent:#b8943c;--craft-tape:#e3ca7799;--craft-paper:#fffbee;--craft-ink:#6e613c}
.journal-sheet-photos{display:grid;gap:12px;margin-top:16px}.journal-sheet-photos[data-layout=collage]{grid-template-columns:repeat(2,minmax(0,1fr))}.journal-sheet-photos img{display:block;max-width:100%;width:100%;height:auto;border-radius:5px}.journal-sheet-photos[data-layout=postcard] img{box-sizing:border-box;padding:8px 8px 22px;background:#fff;box-shadow:0 2px 8px #253c2530}
.journal-surface .journal-photo-open{margin:0;padding:0;min-height:0;border:0;background:transparent;box-shadow:none}.journal-photo-view img{display:block;width:100%;height:auto;object-fit:contain}.journal-photo-view{width:min(900px,calc(100vw - 24px))}
.journal-surface .journal-sticker{position:absolute;z-index:2;display:block;aspect-ratio:1;min-height:0;margin:0;padding:0;border:0;background:transparent;box-shadow:none;cursor:default;overflow:hidden;transform-origin:center;user-select:none;-webkit-user-select:none;font-size:16px;color:#176f63}
.journal-sticker img,.journal-sticker svg{width:100%;height:100%;object-fit:contain;display:block;pointer-events:none}.journal-surface[data-mode=edit] .journal-sticker{touch-action:none;cursor:grab}
.journal-sticker[data-asset=ticket],.journal-sticker[data-asset=date]{display:grid;place-items:center;aspect-ratio:1.8;border:1px dashed #b58a40;background:#fff0cf;border-radius:5px;font:700 12px/1.3 system-ui;overflow-wrap:anywhere}
.journal-sticker[data-asset=pin]{display:grid;place-items:center;border:2px solid #176f63;border-radius:50%;background:#f5faf0;font-size:32px}
.journal-page-controls{display:flex;flex-wrap:wrap;justify-content:center;gap:5px;margin:18px 0 0}.journal-page-controls[hidden]{display:none}.journal-page-controls button.is-current{background:#176f63;color:#fff}.journal-status{color:#916320;line-height:1.6}.journal-status:empty{display:none}
#journal-list .memory-card footer{gap:8px}
.journal-workbench{border:0;border-radius:0;background:transparent;overflow:visible;min-width:0;box-shadow:none;scroll-margin-top:88px}
.journal-workbench [hidden]{display:none!important}
.journal-workbench-header{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:20px 22px;border:1px solid #d5e1d9;border-radius:14px;background:#fff;margin-bottom:12px}
.journal-workbench-kicker{display:block;color:#7d9086;font-size:11px;letter-spacing:1px;margin-bottom:6px}
.journal-workbench h2{font-size:20px;line-height:1.4;margin:0;overflow-wrap:anywhere}
.journal-workbench-header>div:first-child{min-width:0;flex:1}
.journal-workbench .journal-actions{position:relative;flex-shrink:0;display:flex;align-items:center;flex-wrap:wrap;gap:8px;border:0;padding:0;background:none}
.memories-page .journal-primary{background:#176f63;color:#fff;border-color:#176f63}
.journal-workbench .journal-actions .xiangyu-action-menu{position:relative}
.journal-workbench .journal-actions summary{list-style:none;padding:9px 12px;border:1px solid #dbe5df;border-radius:11px;background:#edf4ef;font:600 14px/1.4 system-ui;cursor:pointer}
.journal-workbench .journal-actions summary:after{content:' ▾'}
.journal-workbench .journal-actions .xiangyu-action-options{position:absolute;right:0;top:calc(100% + 8px);z-index:10;width:170px;padding:6px;border:1px solid #dae4dc;border-radius:12px;background:#fff;box-shadow:0 8px 24px #163d3526}
.journal-workbench .journal-actions .xiangyu-action-options button{display:block;width:100%;text-align:left;border:0;background:transparent;margin:0}
.journal-workbench .journal-actions .danger{color:#a23f28}
.journal-workbench .journal-toolbar{grid-template-columns:minmax(180px,1fr) minmax(160px,240px) auto auto;align-items:end;padding:14px 22px;margin:0 0 14px;border:1px solid #d5e1d9;border-radius:14px;background:#fff}
.journal-workbench .journal-toolbar button{align-self:end}
.journal-workspace-grid{display:grid;grid-template-columns:148px minmax(0,1fr) 280px;min-height:500px;max-height:760px;height:calc(100dvh - 285px);min-width:0}
.journal-page-rail{display:flex;flex-direction:column;min-width:0;min-height:0;border-right:1px solid #dbe5df;background:#f8faf7}
.journal-rail-heading{font-size:12px;font-weight:700;color:#708477;padding:12px 14px;border-bottom:1px solid #e5ece5}
.journal-thumbnails{display:flex;flex-direction:column;gap:12px;overflow:auto;padding:12px;min-height:0;flex:1}
.memories-page .journal-page-thumb{flex-shrink:0;display:block;padding:5px;border:2px solid transparent;border-radius:9px;background:transparent;width:100%;text-align:left}
.memories-page .journal-page-thumb[aria-current=page]{border-color:#176f63;background:#eaf3ed}
.journal-thumb-paper{display:flex;flex-direction:column;gap:5px;aspect-ratio:3/4;overflow:hidden;background:#fffdf6;border:1px solid #e2dccb;padding:10px;border-radius:3px;box-sizing:border-box}
.journal-thumb-paper[data-background=sage]{background:#edf5ec}.journal-thumb-paper[data-background=sunset]{background:#fff0e2}
.journal-thumb-paper small{font-size:8px;color:#a8792c}.journal-thumb-paper strong{font-size:10px;line-height:1.4;overflow-wrap:anywhere}
.journal-thumb-paper img{width:100%;max-height:68px;object-fit:cover}.journal-thumb-text{font-size:8px;line-height:1.5;color:#708477;overflow:hidden;overflow-wrap:anywhere}
.journal-thumb-number{display:block;text-align:center;font-size:10px;color:#758679;padding-top:4px}
.journal-page-tools{padding:10px;border-top:1px solid #e1e9e3}.journal-page-tools .journal-edit-actions{display:grid;grid-template-columns:1fr 1fr;gap:5px}
.memories-page .journal-page-tools button{font-size:10px;padding:6px 3px}.journal-page-tools button:first-child{grid-column:1/-1}
.journal-stage{min-width:0;overflow:auto;background:#eaf0ec;padding:16px 22px 22px}
.journal-canvas-heading{display:flex;justify-content:space-between;gap:10px;font-size:11px;color:#75897d;margin-bottom:16px}
.journal-workbench .journal-preview{max-width:560px;margin:0 auto}
.journal-workbench .journal-sheet{min-height:520px;padding:32px 30px 44px}
.journal-inspector{min-width:0;min-height:0;overflow:auto;border-left:1px solid #dbe5df;background:#fff}
.journal-property-tabs{position:sticky;top:0;display:flex;gap:4px;padding:12px 10px;background:#fff;z-index:3;border-bottom:1px solid #e3eae4}
.memories-page .journal-property-tabs button{flex:1;padding:8px 4px;border:0;background:transparent;font-size:11px;white-space:nowrap}
.memories-page .journal-property-tabs [aria-selected=true]{background:#e9f3ed;color:#176f63}
.journal-workbench .journal-editor{display:block;margin:0;padding:16px}
.journal-property-panel{display:grid;grid-template-columns:minmax(0,1fr);gap:16px}
.journal-workbench .journal-photo-tools>div{width:calc(50% - 5px)}.journal-workbench .journal-photo-tools button{padding:6px;font-size:11px}
.journal-workbench .journal-sticker-controls{grid-template-columns:1fr}.journal-workbench .journal-sticker-library button{font-size:11px;padding:6px 8px}
.journal-workbench .journal-status{margin:0;padding:10px 22px;border-top:1px solid #e1e9e3;font-size:12px}
.journal-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;min-height:440px;text-align:center;padding:30px;box-sizing:border-box;border:1px dashed #b9cebf;border-radius:12px;background:#f8fcf8;color:#72887c}
.journal-empty-mark{font-size:48px;color:#c4a34f}.journal-empty h3{font:700 23px/1.5 'SimSun',serif;color:#173f38;margin:0}.journal-empty p{font-size:13px;line-height:1.8;margin:0}
.journal-workbench[data-empty=true] .journal-page-rail,.journal-workbench[data-empty=true] .journal-inspector,.journal-workbench[data-empty=true] .journal-toolbar{display:none}
.journal-workbench[data-empty=true] .journal-workspace-grid{grid-template-columns:1fr;height:auto;min-height:0}.journal-workbench[data-empty=true] .journal-preview{max-width:none}
@media(max-width:1100px){.journal-workspace-grid{grid-template-columns:120px minmax(0,1fr) 245px}.journal-workbench .journal-sheet{padding:26px 20px 40px}.journal-stage{padding:14px}.journal-workbench .journal-actions button,.journal-workbench .journal-actions summary{font-size:12px}}
@media(max-width:900px){.journal-workbench-header{flex-direction:column;align-items:stretch;padding:16px}.journal-workbench .journal-actions{justify-content:flex-end}.journal-workbench .journal-toolbar{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto auto;padding:12px 16px}.journal-workspace-grid{grid-template-columns:120px minmax(0,1fr);grid-template-rows:clamp(420px,calc(100dvh - 285px),620px) auto;height:auto;max-height:none;min-height:0}.journal-thumbnails{padding:10px;gap:8px}.journal-thumb-paper{padding:6px}.journal-page-tools{padding:8px}.memories-page .journal-page-tools button{padding:6px 3px;font-size:10px}.journal-stage{padding:16px}.journal-inspector{grid-column:1/-1;border-left:0;border-top:1px solid #dbe5df;max-height:none;overflow:visible}.journal-workbench .journal-editor{padding:16px}.journal-property-tabs{position:static}.journal-property-panel{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.journal-property-panel>textarea,.journal-property-panel>.journal-photo-tools,.journal-property-panel>.journal-materials,.journal-property-panel>.journal-sticker-controls{grid-column:1/-1}.journal-workbench .journal-sheet{min-height:460px}.journal-workbench .journal-preview{max-width:520px}.journal-workbench[data-empty=true] .journal-workspace-grid{grid-template-rows:none}}
@media(max-width:560px){.memories-library-bar span{width:100%;margin:0}.journal-workbench .journal-toolbar{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}.journal-workbench h2{font-size:18px}.journal-stage{padding:12px}.journal-workbench .journal-sheet{padding:26px 20px 38px;min-height:390px}.journal-property-panel{grid-template-columns:1fr}.journal-empty{min-height:320px;padding:22px}.journal-empty h3{font-size:20px}.journal-canvas-heading{flex-wrap:wrap}.journal-workbench .journal-editor{padding:14px}}
@media(max-width:560px){.journal-workspace-grid{grid-template-columns:84px minmax(0,1fr)}.journal-thumbnails{padding:6px;gap:6px}.journal-rail-heading{padding:10px;font-size:11px}.journal-thumb-paper strong{font-size:9px}.journal-page-tools{padding:6px}.journal-page-tools .journal-edit-actions{grid-template-columns:minmax(0,1fr)}.journal-page-tools button:first-child{grid-column:auto}.journal-stage{padding:10px}.journal-workbench .journal-sheet{padding:22px 12px 34px}.journal-workbench .journal-sheet h3{font-size:18px}}
@media(min-width:900px){.journal-dialog[data-mode=read] .journal-preview{grid-template-columns:repeat(2,minmax(0,1fr));max-width:none}}
@media(max-width:560px){.journal-dialog .navigation-dialog-scroll{padding:16px}.journal-toolbar,.journal-editor{grid-template-columns:minmax(0,1fr)}.journal-sheet{min-height:380px;padding:24px 18px 36px}.journal-sheet h3{font-size:22px}.journal-dialog .navigation-dialog-actions{gap:6px}.journal-dialog .navigation-dialog-actions>button{font-size:12px;padding:8px 10px}}

/* Shared paper-craft rendering, after workspace responsive geometry. */
.journal-stage{background-color:#ece8dd;background-image:radial-gradient(#8f80631c .7px,transparent .7px);background-size:7px 7px}
:is(.journal-preview,.journal-thumb-render)[data-template] .journal-sheet{width:100%;height:auto;max-height:none;aspect-ratio:auto;border:1px solid #d9cdb7;border-radius:3px 9px 12px 3px;padding:clamp(24px,4vw,38px) clamp(14px,3vw,28px) 44px clamp(28px,4vw,42px);background-color:var(--craft-paper,#fffaf0);background-image:radial-gradient(#98836813 .6px,transparent .6px),linear-gradient(90deg,#826e5122,transparent 8%,transparent 94%,#826e510b);background-size:5px 5px,100% 100%;box-shadow:3px 3px 0 #e9dfca,5px 5px 0 #fff9ec,7px 7px 0 #d9cbb3,9px 11px 18px #4a3c2b26;overflow:hidden}
:is(.journal-preview,.journal-thumb-render)[data-template] .journal-sheet[data-background=sage]{background-color:#eef0df}:is(.journal-preview,.journal-thumb-render)[data-template] .journal-sheet[data-background=sunset]{background-color:#faead8}
.journal-sheet:before{content:'';position:absolute;top:14px;left:46%;width:72px;height:18px;transform:rotate(-5deg);background:var(--craft-tape,#bdcdb299);clip-path:polygon(3% 0,98% 0,96% 18%,100% 30%,96% 44%,99% 58%,95% 74%,98% 100%,0 100%,4% 76%,0 63%,4% 48%,0 30%);pointer-events:none;z-index:1}
.journal-sheet:after{content:'';position:absolute;top:0;right:0;width:25px;height:25px;background:linear-gradient(225deg,#e5dccb 48%,#a3917340 50%,transparent 54%);pointer-events:none}
.journal-paper-binding{position:absolute;top:0;bottom:0;left:10px;width:8px;border-left:1px dashed var(--craft-accent,#657c68);border-right:1px dashed #b5a58566;pointer-events:none}
:is(.journal-preview,.journal-thumb-render)[data-template=postcard] .journal-paper-binding{left:0;width:18px;border:0;background:linear-gradient(90deg,#92735550,#fbf1df 50%,#92735526 95%)}
:is(.journal-preview,.journal-thumb-render)[data-template=osmanthus] .journal-paper-binding{border-color:#bfaa57;background:repeating-linear-gradient(0deg,transparent 0 18px,#b8943c33 19px 21px)}
.journal-sheet .journal-eyebrow{display:inline-block;padding:4px 10px;background:#eee5d2;color:var(--craft-ink,#405345);border:1px dashed #b2a087;font-size:10px;letter-spacing:2px;transform:rotate(-2deg)}
.journal-sheet h3{color:var(--craft-ink,#405345);font-family:'KaiTi','STKaiti','Noto Serif SC','SimSun',serif}
.journal-sheet[data-kind=cover] h3{padding:16px 8px;border-top:1px solid #c6b898;border-bottom:3px double #c6b898;text-align:center}
:is(.journal-preview,.journal-thumb-render)[data-template=classic] .journal-sheet[data-kind=cover] h3{border:1px dashed #94a087;background:#e5e9d780;box-shadow:0 0 0 4px #fffaf0,inset 0 0 0 4px #f5f4e6}
:is(.journal-preview,.journal-thumb-render)[data-template=postcard] .journal-sheet[data-kind=cover] h3{border:3px double #b89d77;background:#fffaf0;box-shadow:3px 4px 0 #dcc6a34d;transform:rotate(-1deg)}
:is(.journal-preview,.journal-thumb-render)[data-template=osmanthus] .journal-sheet[data-kind=cover] h3{border-color:#c7b15d;background:#f5e9ba66;box-shadow:inset 0 0 0 5px #fffbee}
.journal-sheet .journal-caption{font-family:'KaiTi','STKaiti','SimSun',serif;font-size:15px;line-height:2;background:repeating-linear-gradient(transparent 0 29px,#a08b6418 29px 30px);color:var(--craft-ink,#405345)}
.journal-sheet[data-kind=route] ol{padding-left:0;list-style:none;counter-reset:paper-stop}
.journal-sheet[data-kind=route] li{counter-increment:paper-stop;position:relative;padding:8px 12px 8px 30px;margin:10px 0;border:1px dashed #bba681;background:#fffdf5;box-shadow:2px 3px 0 #dacbae55;transform:rotate(-.6deg)}
.journal-sheet[data-kind=route] li:nth-child(even){transform:rotate(.6deg)}
.journal-sheet[data-kind=route] li:before{content:counter(paper-stop);position:absolute;left:10px;color:#a8792c;font-family:serif}
.journal-sheet[data-kind=members] .journal-sheet-content>p,.journal-sheet[data-kind=timeline] .journal-sheet-content>p{padding:12px;border:1px dashed #d1c1a1;background:#fffdf5;box-shadow:2px 3px 0 #d8caaa44}
.journal-sheet-photos{gap:22px;padding:4px 5px 12px}
.journal-sheet-photos .journal-photo-open{position:relative;box-sizing:border-box;padding:8px 8px 26px;background:#fffefa;border:1px solid #e0d6bf;border-radius:0;box-shadow:3px 5px 8px #68563a26;transform:rotate(-1deg)}
.journal-sheet-photos .journal-photo-open:nth-child(even){transform:rotate(1deg)}
.journal-sheet-photos .journal-photo-open:before{content:'';position:absolute;top:-10px;left:30%;width:42%;height:19px;background:var(--craft-tape,#bdcdb299);transform:rotate(4deg);pointer-events:none;z-index:1}
.journal-sheet-photos .journal-photo-open img{max-height:300px;object-fit:contain;border-radius:0}
.journal-sheet-photos[data-layout=postcard] img{padding:0;box-shadow:none;background:transparent}
.journal-pop-up{margin:22px 0;border-bottom:1px dashed #c2b08c;min-width:0}
.journal-pop-up summary,.journal-paper-pocket summary{cursor:pointer;color:var(--craft-ink,#405345);font:600 11px/1.6 system-ui;overflow-wrap:anywhere}
.journal-pop-up summary{padding:8px 0}.journal-pop-up summary::marker{color:var(--craft-accent,#657c68)}
.journal-paper-scene{position:relative;aspect-ratio:20/11;perspective:600px;background:linear-gradient(#f8efdb,#e9dec0);border:8px solid #fffcf2;box-shadow:inset 0 0 0 1px #d3c3a0,2px 5px 8px #69543820;overflow:hidden;transform-origin:bottom}
.journal-scene-landscape{display:block;width:100%;height:100%;transform:rotateX(8deg);filter:drop-shadow(0 5px 2px #55674a24)}
.paper-cloud{fill:#fffdf6;stroke:#e4d8bd;stroke-width:2}.paper-sun{fill:#ddbb65;stroke:#fff7db;stroke-width:4}
.paper-mountain-back{fill:#b4c4a2;stroke:#f3f4e2;stroke-width:4}.paper-mountain-front{fill:#7f9f88;stroke:#dfe7cd;stroke-width:5}.paper-river{fill:#c2dcd1;stroke:#eef6ea;stroke-width:3}
.journal-scene-mascot{position:absolute;bottom:5%;left:42%;height:48%;width:24%;object-fit:contain;filter:drop-shadow(3px 5px 1px #43573535);pointer-events:none}
.journal-scene-fold{position:absolute;bottom:0;left:34%;width:33%;height:8%;background:linear-gradient(90deg,#e5d5af,#fff4d6,#c4b389);clip-path:polygon(10% 0,85% 0,100% 100%,0 100%);pointer-events:none}
:is(.journal-preview,.journal-thumb-render)[data-template=postcard] .journal-paper-scene{transform:rotate(-1deg);border-bottom-width:18px;box-shadow:4px 7px 0 #d8c3a1,7px 11px 8px #69543826}
:is(.journal-preview,.journal-thumb-render)[data-template=osmanthus] .journal-paper-scene{background:radial-gradient(circle at 82% 20%,#e5c66a 0 7%,transparent 7.5%),linear-gradient(#fcf1d0,#ece0b5)}
.journal-paper-pocket{position:relative;margin:25px 3px 8px;padding:12px 14px;background:#eadbbd;border:1px solid #ccb792;border-radius:2px;box-shadow:2px 4px 0 #d7c6a344;min-width:0}
.journal-paper-pocket:before{content:'';display:block;width:28px;height:8px;position:absolute;top:-1px;left:calc(50% - 14px);background:var(--craft-paper,#fffaf0);border-radius:0 0 18px 18px;pointer-events:none}
.journal-paper-pocket summary{padding:3px 0;list-style-position:inside}
.journal-pocket-card{position:relative;margin:14px 0 0;padding:14px;background:#fffdf5;border:1px solid #d7c8aa;box-shadow:3px 4px 0 #af956340;transform:rotate(-1deg)}
.journal-pop-up[data-animate=true][open] .journal-paper-scene{animation:journal-paper-open .4s ease-out}.journal-paper-pocket[data-animate=true][open] .journal-pocket-card{animation:journal-card-out .25s ease-out}
.journal-pocket-card p{font-family:'KaiTi','STKaiti','SimSun',serif;margin:8px 0;line-height:1.8}
:is(.journal-preview,.journal-thumb-render)[data-template=osmanthus] .journal-paper-pocket{background-color:#f2e4b7;background-image:radial-gradient(#bfa55233 1px,transparent 1px);background-size:9px 9px}
.journal-thumb-paper{border-radius:2px;border-color:#d5c6aa;background-color:#fff8e8;box-shadow:2px 2px 0 #e7dcc6;background-image:linear-gradient(90deg,#93795522,transparent 12%);border-left:3px double #b8a37f}
.journal-thumb-paper small{font-family:'KaiTi','STKaiti',serif}.journal-thumb-paper strong{font-family:'KaiTi','STKaiti','SimSun',serif}.journal-thumb-paper img{box-sizing:border-box;border:3px solid #fffdf5;box-shadow:1px 2px 3px #80643d22}
@keyframes journal-paper-open{from{opacity:.3;transform:rotateX(24deg) scaleY(.82)}to{opacity:1;transform:rotateX(0) scaleY(1)}}
@keyframes journal-card-out{from{opacity:.3;clip-path:inset(0 0 100% 0)}to{opacity:1;clip-path:inset(0)}}
@media(prefers-reduced-motion:reduce){.journal-paper-scene,.journal-pocket-card{animation:none!important}}
@media(max-width:560px){:is(.journal-preview,.journal-thumb-render)[data-template] .journal-sheet{padding-left:26px;padding-right:12px}.journal-sheet .journal-caption{font-size:13px}.journal-paper-scene{border-width:4px}.journal-paper-pocket{padding:10px 8px;margin-left:0;margin-right:0}.journal-pocket-card{padding:10px}.journal-sheet-photos{padding-left:1px;padding-right:1px}.journal-sheet-photos .journal-photo-open{padding:5px 5px 20px}}

/* Formats change the book's structure, not just the decoration. Content height
   is intrinsic; only the surrounding canvas scrolls. No fixed slide crop. */
.journal-preview[data-format=spread],.journal-preview[data-format=album],.journal-preview[data-format=concertina]{max-width:880px}
.journal-dialog[data-mode=read] .journal-preview[data-spread=false]{grid-template-columns:minmax(0,1fr)}
.journal-sheet-content,.journal-written-leaf,.journal-visual-leaf{min-width:0}
.journal-written-leaf:empty{display:none}
.journal-pop-up{margin-top:0}.journal-visual-leaf>.journal-paper-pocket{margin-top:16px}
.journal-written-leaf>.journal-caption{margin-top:18px}
.journal-sheet[data-kind=members] .journal-written-leaf>p,.journal-sheet[data-kind=timeline] .journal-written-leaf>p{padding:12px;border:1px dashed #d1c1a1;background:#fffdf5;box-shadow:2px 3px 0 #d8caaa44}
:is(.journal-preview,.journal-thumb-render)[data-template] .journal-sheet:not([data-format=stitched]){min-height:320px;padding:22px 24px 40px}
.journal-sheet[data-format=spread] .journal-sheet-content,.journal-sheet[data-format=album] .journal-sheet-content{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:34px;align-items:start}
.journal-sheet[data-format=spread] .journal-paper-binding{left:calc(50% - 9px);width:18px;background:linear-gradient(90deg,transparent,#806a3c22 48%,#fff9e8 52%,transparent);border:0}
.journal-sheet[data-format=spread]:before,.journal-sheet[data-format=album]:before,.journal-sheet[data-format=concertina]:before{display:none}
.journal-sheet[data-format=spread] .journal-sheet-heading h3{font-size:22px;text-align:left;transform:none;margin:12px 0 18px;padding:14px 8px}
.journal-sheet[data-format=spread] .journal-paper-scene{transform:none;border-bottom-width:16px}
.journal-sheet[data-format=spread] .journal-pop-up>summary{padding-top:0}
.journal-gate-cover{display:flex;perspective:500px;margin-top:12px;min-height:120px;border:3px double #bda37c;background:#c1a77b}
.journal-gate-cover>span{display:grid;place-items:center;flex:1;background:linear-gradient(90deg,#e7d6b1,#fff8e6,#e7d6b1);border-right:1px solid #9b835c;color:#87694b;font:700 28px/1 serif}
.journal-pop-up[open] .journal-gate-cover{display:none}
.journal-gate-wings{position:absolute;inset:0;display:flex;perspective:500px;pointer-events:none}
.journal-gate-wings>span{position:absolute;top:0;bottom:0;width:29%;display:grid;place-items:center;border:1px solid #b3a07b;background:linear-gradient(90deg,#e7d6b1,#fff8e6);box-shadow:3px 2px 5px #5b46273d;font:700 26px/1 serif;color:#947754}
.journal-gate-wings>span:first-child{left:0;transform:rotateY(-64deg);transform-origin:left}
.journal-gate-wings>span:last-child{right:0;transform:rotateY(64deg);transform-origin:right}
.journal-pop-up[data-animate=true][open] .journal-gate-wings>span:first-child{animation:journal-gate-left .45s ease-out}.journal-pop-up[data-animate=true][open] .journal-gate-wings>span:last-child{animation:journal-gate-right .45s ease-out}
:is(.journal-preview,.journal-thumb-render)[data-template=osmanthus]{--craft-accent:#628978;--craft-tape:#d6bc8799;--craft-paper:#f7f0dd;--craft-ink:#415d4e}
:is(.journal-preview,.journal-thumb-render)[data-template=osmanthus] .journal-sheet[data-format=album]{background-color:#37574b;background-image:repeating-linear-gradient(0deg,transparent 0 3px,#ffffff08 3px 4px);border:10px solid #304e44;box-shadow:2px 6px 0 #bca887,7px 10px 16px #263c302e;border-radius:5px}
.journal-sheet[data-format=album] .journal-sheet-content{gap:20px}
.journal-sheet[data-format=album] .journal-written-leaf,.journal-sheet[data-format=album] .journal-visual-leaf{padding:16px;background:#fcf6e5;box-shadow:3px 4px 0 #182b213d}
.journal-sheet[data-format=album] .journal-paper-binding{left:calc(50% - 2px);width:4px;opacity:.4;border-color:#e3d4ac}
.journal-sheet[data-format=album] .journal-sheet-heading h3{font-size:22px;text-align:left;border:0;background:transparent;box-shadow:none;padding:12px 0;margin:0 0 18px}
.journal-waterfall{position:relative;min-width:0;padding-bottom:12px}
.journal-waterfall>small{display:block;margin-bottom:16px;color:#526858}
.journal-waterfall-card{position:relative;margin:0 0 8px;border:1px solid #b9a97e;background:#fff9e8;box-shadow:3px 5px 0 #cbbb9555;transform:rotate(-.8deg);overflow-wrap:anywhere}
.journal-waterfall-card:nth-child(odd){transform:rotate(.8deg)}
.journal-waterfall-card summary{padding:13px 12px;border-bottom:1px dashed #c8b488;color:#5c6249;font:600 12px/1.6 system-ui;cursor:pointer;background:linear-gradient(90deg,#e6d9b7,#f6edda)}
.journal-mechanism-card{padding:14px;min-width:0;animation:none}.journal-mechanism-card p{margin:0;font-family:'KaiTi','STKaiti',serif}
.journal-mechanism-card .journal-photo-open,.journal-concertina-panel .journal-photo-open{position:relative;box-sizing:border-box;width:100%;padding:6px 6px 22px;border:1px solid #dacdaf;background:#fffdf5;box-shadow:2px 4px 5px #66563526}
.journal-mechanism-card .journal-photo-open img,.journal-concertina-panel .journal-photo-open img{display:block;width:100%;height:auto;max-height:250px;object-fit:contain}
.journal-waterfall-card[data-animate=true][open] .journal-mechanism-card{animation:journal-waterfall-open .35s ease-out;transform-origin:top}
:is(.journal-preview,.journal-thumb-render)[data-template=accordion]{--craft-accent:#687e93;--craft-tape:#b8c9d099;--craft-paper:#f5f2e8;--craft-ink:#445b6a}
.journal-sheet[data-format=concertina] .journal-paper-binding{display:none}
.journal-sheet[data-format=concertina] .journal-sheet-heading{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:18px;border-bottom:1px dashed #aeb9ba}
.journal-sheet[data-format=concertina] .journal-sheet-heading h3{border:0;background:none;padding:0;text-align:left;font-size:22px;flex:1;min-width:0}
.journal-sheet[data-format=concertina] .journal-sheet-content{display:flex;flex-direction:column;gap:14px}
.journal-concertina summary{cursor:pointer;font:600 12px/1.6 system-ui;color:#445b6a;margin-bottom:16px}
.journal-concertina-strip{display:grid;grid-template-columns:repeat(var(--fold-count,3),minmax(0,1fr));perspective:900px;padding:3px 0 10px}
.journal-concertina-panel{min-width:0;padding:14px 12px;box-sizing:border-box;background:linear-gradient(90deg,#d5d9d5,#fffdf1 14%,#fffdf1 85%,#d5d9d5);border-top:1px solid #bdc3bb;border-bottom:1px solid #bdc3bb;border-right:1px dashed #97a39d;box-shadow:0 5px 0 #bdc3bb66}
.journal-concertina-panel:first-child{border-left:1px solid #bdc3bb}.journal-concertina-panel:nth-child(even){background:linear-gradient(90deg,#fdfaf0,#e6e8df 12%,#e6e8df 85%,#fdfaf0)}
.journal-concertina-panel h4{font-size:13px;margin:0 0 16px;color:#526a73}.journal-concertina-panel p{margin:0;font-family:'KaiTi','STKaiti',serif}
.journal-concertina[data-animate=true][open] .journal-concertina-strip{animation:journal-accordion-open .4s ease-out;transform-origin:left}
.journal-thumbnails[data-format=spread] .journal-thumb-paper,.journal-thumbnails[data-format=album] .journal-thumb-paper,.journal-thumbnails[data-format=concertina] .journal-thumb-paper{aspect-ratio:4/3;min-height:76px;border-left:1px solid #b9b59c;background-image:linear-gradient(90deg,transparent 47%,#79684733 50%,transparent 53%)}
@keyframes journal-gate-left{from{transform:rotateY(0)}to{transform:rotateY(-64deg)}}@keyframes journal-gate-right{from{transform:rotateY(0)}to{transform:rotateY(64deg)}}
@keyframes journal-waterfall-open{from{opacity:.3;transform:rotateX(-35deg)}to{opacity:1;transform:rotateX(0)}}@keyframes journal-accordion-open{from{opacity:.4;transform:scaleX(.65)}to{opacity:1;transform:scaleX(1)}}
@media(max-width:560px){:is(.journal-preview,.journal-thumb-render)[data-template] .journal-sheet:not([data-format=stitched]){padding:16px 12px 34px;min-height:260px}.journal-sheet[data-format=spread] .journal-sheet-content,.journal-sheet[data-format=album] .journal-sheet-content{display:flex;flex-direction:column;gap:18px}.journal-sheet[data-format=spread] .journal-visual-leaf,.journal-sheet[data-format=album] .journal-visual-leaf{order:-1;width:100%;box-sizing:border-box}.journal-sheet[data-format=spread] .journal-paper-binding,.journal-sheet[data-format=album] .journal-paper-binding{display:none}.journal-sheet[data-format=album] .journal-written-leaf{box-sizing:border-box;width:100%;padding:12px}.journal-sheet[data-format=album] .journal-visual-leaf{padding:12px}.journal-concertina-strip{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:12px}.journal-concertina-panel{padding:10px 7px}.journal-concertina-panel h4{font-size:11px}.journal-concertina-panel p{font-size:12px}.journal-gate-cover{min-height:95px}.journal-sheet[data-format=concertina] .journal-sheet-heading h3{font-size:18px}}
@media(prefers-reduced-motion:reduce){.journal-gate-wings>span,.journal-mechanism-card,.journal-concertina-strip{animation:none!important}}

/* Element controls are editing affordances only. Reader and miniature renders
   use the same paper renderer without editable wrappers or delete buttons. */
.journal-canvas-element{position:relative;min-width:0;outline:1px dashed #b6a381;outline-offset:-1px;padding:8px 28px 8px 8px;margin:10px 0;cursor:pointer;border-radius:3px}
.journal-canvas-element.is-selected,.journal-surface[data-mode=edit] .journal-sticker.is-selected{outline:2px dashed #17796b;outline-offset:1px;background-color:#def1e226}
.journal-canvas-element:focus-visible,.journal-sticker:focus-visible,.journal-page-thumb:focus-visible{outline:2px solid #17796b;outline-offset:2px}
.journal-surface .journal-element-remove{position:absolute;top:3px;right:3px;z-index:70;width:24px;height:24px;min-height:24px;display:grid;place-items:center;padding:0;margin:0;border:1px solid #bbaa8c;border-radius:50%;background:#fffdf4;color:#8a493a;font:18px/1 system-ui;cursor:pointer;box-shadow:0 1px 3px #53432a20}
.journal-surface .journal-element-remove:hover{background:#fff0e8;border-color:#ae6651}
.journal-surface[data-mode=edit] .journal-sticker[data-canvas-type]{outline:1px dashed #b6a381;overflow:visible}
.journal-sheet-heading>.journal-canvas-element{flex:1;min-width:0}
.journal-canvas-element>.journal-caption{margin:0}
.journal-canvas-element>.journal-paper-pocket{margin:0}
.journal-visual-leaf .journal-canvas-element>.journal-photo-open{display:block;width:100%;box-sizing:border-box}
.journal-photo-tools [data-photo-id]{border:1px dashed #d7c3a4;padding:6px;box-sizing:border-box}
.journal-facts>p{padding:12px;border:1px dashed #d1c1a1;background:#fffdf5;box-shadow:2px 3px 0 #d8caaa44}
.journal-structure-controls{grid-column:1/-1;display:flex;gap:16px;flex-wrap:wrap;padding-top:12px;border-top:1px solid #dce7df}
.journal-structure-controls label{display:flex;flex-direction:row;align-items:center;gap:6px}
.journal-surface .journal-structure-controls input[type=checkbox]{width:16px;height:16px;margin:0;padding:0;accent-color:#17796b}
.journal-selection-bar{margin:0;padding:12px 18px;background:#f2f7f2;border-bottom:1px solid #dce7df;color:#547664;font-size:12px}
.journal-sticker-library{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:12px}
.journal-sticker-library>button{display:flex;flex-direction:column;align-items:center;gap:7px;padding:10px!important;border:1px solid #d9e3d9;background:#fff;font-size:11px!important}
.journal-asset-preview{width:60px;height:60px;display:grid;place-items:center;position:relative;color:#176f63}
.journal-asset-preview img,.journal-asset-preview svg{width:100%;height:100%;object-fit:contain;display:block}
.journal-asset-preview[data-text]:after{content:attr(data-text);display:grid;place-items:center;width:100%;min-height:36px;padding:4px;box-sizing:border-box;border:1px dashed #b58a40;background:#fff0cf;font:700 10px/1.4 system-ui;border-radius:4px}
.journal-asset-preview[data-asset=pin]:after{border:2px solid #176f63;border-radius:50%;height:50px;width:50px;font-size:30px;background:#f5faf0}
.journal-thumb-viewport{position:relative;min-width:0;width:100%;overflow:hidden;pointer-events:none;background:#f8f5e9}
.journal-thumb-render{position:absolute;top:0;transform-origin:top left;max-width:none!important;pointer-events:none;user-select:none}
.journal-thumb-render .journal-sheet{margin:0;box-shadow:none!important}
.journal-thumb-render .journal-paper-scene,.journal-thumb-render .journal-pocket-card,.journal-thumb-render .journal-gate-wings>span,.journal-thumb-render .journal-mechanism-card,.journal-thumb-render .journal-concertina-strip{animation:none!important}
.journal-page-thumb{box-sizing:border-box;cursor:pointer;user-select:none}

/* Contextual editing tools sit below the canvas; the left rail stays beside it. */
.journal-workspace-grid{grid-template-columns:148px minmax(0,1fr);grid-template-rows:clamp(460px,calc(100dvh - 340px),660px) auto;height:auto;max-height:none;min-height:0}
.journal-page-rail{grid-column:1;grid-row:1/3;align-self:stretch;height:auto;position:relative;top:auto;contain:size;overflow:hidden}
.journal-stage{grid-column:2;grid-row:1;min-height:0}
.journal-workspace-grid,.journal-stage,.journal-page-rail,.journal-thumbnails{overflow-anchor:none}
.journal-surface .journal-photo-add{display:grid;place-items:center;box-sizing:border-box;justify-self:stretch;width:100%;height:auto;aspect-ratio:1;margin:0;padding:12px;min-height:0;border:1px solid #d6c8aa;border-radius:2px;outline:1px dashed #b5c8bb;outline-offset:-10px;background:#fffdf5;box-shadow:2px 4px 8px #68563a16;user-select:none}
.journal-paper-photo-scene{aspect-ratio:auto;background:#fffaf0;overflow:visible}
.journal-paper-photo-scene .journal-sheet-photos{margin-top:0;padding:4px 4px 12px}
.journal-waterfall>.journal-photo-add{margin-top:14px}
.journal-concertina-strip>.journal-photo-add{align-self:start}
.journal-photo-add-circle{display:grid;place-items:center;box-sizing:border-box;width:54px;height:54px;border:1.5px solid #90b4a5;border-radius:50%;color:#176f63;background:#ffffffa6;font:300 32px/1 system-ui;pointer-events:none}
.journal-photo-add:hover .journal-photo-add-circle,.journal-photo-add:focus-visible .journal-photo-add-circle{background:#e5f2eb;border-color:#176f63}
.journal-facts[data-text-role=facts][style] :is(p,li,h4){font-size:inherit}
.journal-page-settings{grid-column:1/-1;padding:10px 12px;border:1px solid #dbe5df;border-radius:9px}
.journal-page-settings>summary{cursor:pointer;font-size:12px;color:#526a61}.journal-page-settings>label{margin-top:12px}
.journal-text-help,.journal-facts-help{grid-column:1/-1;font-size:12px;line-height:1.7;color:#71847a;margin:0}
.journal-property-panel [data-text-target]{grid-column:span 2}
.journal-property-panel label:has([data-font-size]){grid-column:span 1}
.journal-property-panel [data-font-reset]{align-self:flex-start;padding:4px 8px;font-size:11px;min-height:0}
.journal-canvas-heading [data-journal-fold-preview]{margin-left:auto;padding:4px 9px;min-height:0;font-size:11px}
.journal-pop-up[data-mechanism=scene] .journal-photo-open{transform:perspective(700px) rotateX(-9deg);transform-origin:bottom;box-shadow:0 10px 6px -5px #5e5b3d40}
.journal-pop-up[data-mechanism=scene] .journal-photo-open:after{content:'';position:absolute;bottom:2px;left:22%;width:56%;height:12px;background:linear-gradient(90deg,#d7c49f,#fff7de,#d7c49f);clip-path:polygon(8% 0,92% 0,100% 100%,0 100%);pointer-events:none}
.journal-pop-up[data-mechanism=scene][data-animate=true][open] .journal-photo-open{animation:journal-photo-rise .5s ease-out}
@keyframes journal-photo-rise{from{transform:perspective(700px) rotateX(-72deg);opacity:.35}to{transform:perspective(700px) rotateX(-9deg);opacity:1}}
@media(prefers-reduced-motion:reduce){.journal-pop-up[data-mechanism=scene] .journal-photo-open{animation:none!important}}
@media(max-width:560px){.journal-property-panel [data-text-target],.journal-property-panel label:has([data-font-size]){grid-column:1/-1}}
.journal-inspector{grid-column:2;grid-row:2;border-left:0;border-top:1px solid #dbe5df;max-height:none;overflow:visible}
.journal-property-tabs{position:static;justify-content:flex-start}
.memories-page .journal-property-tabs button{flex:0 1 130px;font-size:12px}
.journal-property-panel{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start}
.journal-property-panel [data-control=text]{grid-column:span 2}
.journal-property-panel>.journal-photo-tools,.journal-property-panel>.journal-materials,.journal-property-panel>.journal-sticker-controls{grid-column:1/-1}
.journal-workbench .journal-photo-tools>div{width:150px}
.journal-workbench .journal-sticker-controls{grid-template-columns:repeat(4,minmax(0,1fr))}
.journal-workbench[data-empty=true] .journal-stage{grid-column:1/-1;grid-row:1}
@media(max-width:1100px){.journal-workspace-grid{grid-template-columns:120px minmax(0,1fr)}}
@media(max-width:900px){.journal-workspace-grid{grid-template-rows:clamp(420px,calc(100dvh - 285px),620px) auto}.journal-inspector{grid-column:2}.journal-property-panel{grid-template-columns:repeat(2,minmax(0,1fr))}.journal-workbench .journal-sticker-controls{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.journal-workspace-grid{grid-template-columns:84px minmax(0,1fr)}.journal-property-panel{grid-template-columns:minmax(0,1fr)}.journal-property-panel [data-control=text]{grid-column:auto}.journal-workbench .journal-sticker-controls{grid-template-columns:1fr}.journal-canvas-element{padding-left:6px;padding-right:28px}.journal-workbench .journal-photo-tools>div{width:calc(50% - 5px)}}

/* Independently sized components, arranged together without shared row sizing. */
.journal-workspace-grid{--journal-canvas-height:clamp(540px,calc(100dvh - 260px),760px);grid-template-rows:auto;gap:14px;align-items:start}
.journal-main-panels{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;align-content:start;min-width:0}
.journal-workbench-panel{box-sizing:border-box;border:1px solid #d5e1d9;border-radius:12px;box-shadow:0 4px 12px #183c2909}
.journal-page-rail{grid-column:auto;grid-row:auto;height:clamp(540px,calc(100dvh - 180px),840px);max-height:calc(100dvh - 112px);align-self:start;position:sticky;top:88px}
.journal-stage{grid-column:auto;grid-row:auto;height:var(--journal-canvas-height)}
.journal-inspector{grid-column:auto;grid-row:auto;border:1px solid #d5e1d9;height:auto;overflow:hidden}
.journal-page-tools .journal-edit-actions{grid-template-columns:repeat(2,minmax(0,1fr))}
.journal-page-tools button:first-child{grid-column:1/-1}
.journal-workbench[data-empty=true] .journal-main-panels{grid-column:1/-1}
.journal-workbench[data-empty=true] .journal-stage{height:auto;grid-column:auto;grid-row:auto}
@media(max-width:900px){.journal-workspace-grid{--journal-canvas-height:clamp(500px,calc(100dvh - 205px),720px);grid-template-rows:auto}}
@media(max-width:560px){.journal-workspace-grid,.journal-main-panels{gap:8px}}
.journal-sheet .journal-fold-control{list-style:none;text-align:right;padding:3px 0;cursor:pointer}
.journal-fold-control::marker{content:''}.journal-fold-control::-webkit-details-marker{display:none}
.journal-fold-icon{display:inline-grid;place-items:center;width:28px;height:28px;border:1px solid #bcae8d;border-radius:50%;background:#fffaf0;color:#6d735b;vertical-align:middle}
.journal-fold-icon svg{width:16px;height:16px;pointer-events:none}
details[open]>.journal-fold-control .journal-fold-icon svg{transform:rotate(180deg)}

/* The paper is sized by its base content, never by expanded mechanisms. */
:is(.journal-preview,.journal-thumb-render)[data-template] .journal-sheet{overflow:visible}
.journal-sheet details[data-paper-state-key]{position:relative;display:flow-root;isolation:isolate}
.journal-sheet details[data-paper-state-key]>summary{position:relative;z-index:12}
.journal-fold-content{position:absolute;top:100%;left:0;right:0;z-index:8;box-sizing:border-box;min-width:0;max-height:400px;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;background:var(--craft-paper,#fffaf0);border-radius:3px;box-shadow:0 5px 16px #59462624}
.journal-waterfall-card,.journal-waterfall-card:nth-child(odd){transform:none}
.journal-waterfall-card .journal-mechanism-card{transform:rotate(-.8deg);transform-origin:top}
.journal-pop-up[data-mechanism=gate]{min-height:180px}
.journal-gate-cover{position:absolute;top:100%;left:0;right:0}
.journal-pop-up[open] .journal-gate-cover{display:flex;visibility:hidden}
.journal-stage,.journal-reading-canvas{contain:paint;overflow-x:hidden;scrollbar-gutter:stable}
.journal-reading-canvas{box-sizing:border-box;min-width:0;height:clamp(240px,calc(100dvh - 230px),680px);padding:16px;overflow-y:auto;background:#eaf0ec;border:1px solid #d5e1d9;border-radius:10px;overflow-anchor:none}
.journal-thumb-render .journal-fold-content{max-height:220px;box-shadow:none}
@media(max-width:560px){.journal-pop-up[data-mechanism=gate]{min-height:155px}}

/* Editing hints live outside the actual element outline, not in its hinge. */
.journal-element-slot{position:relative;min-width:0;margin:12px 0}
.journal-surface .journal-element-hint{display:block;box-sizing:border-box;max-width:100%;padding:2px 0;margin:0 0 6px;border:0;border-radius:0;background:none;box-shadow:none;color:#80674d;font:600 11px/1.6 system-ui;text-align:left;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;min-height:0}
.journal-element-slot>.journal-canvas-element{margin:0}
.journal-canvas-element:is([data-canvas-type=mechanism],[data-canvas-type=pocket]){padding:0}
.journal-canvas-element:is([data-canvas-type=mechanism],[data-canvas-type=pocket])>details>summary{padding-right:30px}
.journal-canvas-element>.journal-waterfall>details>summary{padding-right:30px}

/* A fixed door frame; photos scroll within it instead of stretching the doors.
   The invisible open cover still reserves the exact same footprint as closed. */
.journal-sheet .journal-pop-up[data-mechanism=gate]{min-height:0}
.journal-sheet .journal-pop-up[data-mechanism=gate]>summary{padding:3px 0;pointer-events:none}
.journal-pop-up[data-mechanism=gate]>summary>.journal-fold-icon{pointer-events:auto;margin-right:30px}
.journal-gate-cover{position:relative;top:auto;left:auto;right:auto;box-sizing:border-box;min-height:0;aspect-ratio:4/3;margin:3px 0 0;pointer-events:auto}
.journal-pop-up[data-mechanism=gate]>.journal-fold-content{scrollbar-gutter:auto;scrollbar-width:none}
.journal-pop-up[data-mechanism=gate] .journal-paper-photo-scene{box-sizing:border-box;width:100%;aspect-ratio:4/3;overflow:hidden;animation:none}
.journal-pop-up[data-mechanism=gate] .journal-sheet-photos{position:absolute;inset:0;box-sizing:border-box;margin:0;padding:16px 12px;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;display:flex;flex-direction:column;gap:14px}
.journal-pop-up[data-mechanism=gate] .journal-sheet-photos>*{flex-shrink:0}
.journal-pop-up[data-mechanism=gate] .journal-gate-wings{z-index:2}

/* Raise the entire selected branch, including the owner's floating mechanism.
   Raising a nested photo alone cannot escape its parent's stacking context. */
.journal-visual-leaf,.journal-written-leaf,.journal-sheet-heading{position:relative}
.journal-sheet .is-active-branch{z-index:30}
.journal-sheet .is-selected{z-index:40}

/* Shared canvas-only zoom: the rail, tools and document keep their own sizes. */
.journal-zoom-layer{min-width:0;margin:0 auto;transform-origin:top left}
.journal-stage,.journal-reading-canvas{overflow-x:auto}
.journal-canvas-heading{position:relative;z-index:50;flex-wrap:wrap;align-items:center}
.journal-zoom-tools{display:flex;align-items:center;gap:5px;flex-wrap:wrap;margin-left:auto;max-width:100%;color:#4c6c61}
.journal-surface .journal-zoom-tools button{font:600 11px/1.4 system-ui;min-height:26px;padding:3px 7px;white-space:nowrap}
.journal-zoom-tools input[type=range]{width:80px;max-width:18vw;accent-color:#176f63}
.journal-zoom-tools output{font:600 11px/1.4 system-ui;min-width:32px}
.journal-surface .journal-craft-tools{grid-column:1/-1;min-width:0}
.journal-craft-tools h3{font:700 15px/1.5 system-ui;margin:18px 0 10px;color:#24483d}
.journal-craft-help{font:12px/1.8 system-ui;color:#71847a}
.journal-craft-library{display:grid;grid-template-columns:repeat(auto-fill,minmax(128px,1fr));gap:12px;margin:12px 0}
.journal-craft-card{display:flex;flex-direction:column;min-width:0;gap:6px}
.journal-surface .journal-craft-library .journal-craft-add{display:flex;flex:1;flex-direction:column;align-items:stretch;gap:8px;min-width:0;padding:10px;border:1px solid #d7e2d9;border-radius:9px;background:#fafcf8;text-align:left;font:11px/1.6 system-ui;color:#47665a}
.journal-surface .journal-craft-card>[data-demo-mechanism]{width:100%;font:600 12px/1.5 system-ui;padding:6px 10px}
.journal-craft-demo{width:min(660px,calc(100vw - 24px))}
.journal-demo-help,.journal-demo-note{font:13px/1.8 system-ui;color:#647a6d}
.journal-demo-stage{display:grid;place-items:center;box-sizing:border-box;min-height:280px;height:clamp(280px,48dvh,420px);padding:24px;background:#f2edde;border:1px solid #dfd6c1;border-radius:10px;overflow:hidden;contain:paint;overscroll-behavior:contain}
.journal-demo-sample{position:relative;width:260px}
.journal-demo-model{position:absolute;width:260px;transform-origin:top left}
.journal-demo-model.is-measuring *{transition:none!important;animation:none!important}
.journal-demo-model .journal-module-frame{width:240px;height:175px;margin:12px auto 18px;aspect-ratio:auto}
.journal-demo-model .journal-module-caption{max-height:58px;overflow:auto;font-size:13px!important;line-height:1.6!important;margin:0;text-align:center}
.journal-demo-sample .journal-module-title{font-size:16px!important;color:#665442}
.journal-demo-sample .journal-module-caption{color:#665442}
@media(max-width:560px){.journal-demo-stage{height:320px}}
.journal-craft-mini{display:grid;place-items:center;height:68px;border:1px dashed #b99e7b;background:repeating-linear-gradient(45deg,#faf0da,#faf0da 8px,#f2e7d0 8px,#f2e7d0 9px);color:#92765b;font:38px/1 serif}
.journal-craft-library small{font-size:10px;color:#71847a}.journal-custom-settings{padding:12px;border:1px solid #b9cfbf;border-radius:10px;background:#f4f8f0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.journal-custom-settings :is(h3,p,.journal-mechanism-photos,.journal-edit-actions){grid-column:1/-1;margin:0}
.journal-mechanism-photos{display:flex;gap:12px;flex-wrap:wrap}.journal-surface .journal-mechanism-photos label{flex-direction:row;align-items:center}.journal-surface .journal-mechanism-photos input[type=checkbox]{width:16px;height:16px;padding:0;accent-color:#176f63}

/* A composition is a whole open spread, not two stacked slideshow cards.
   All sixteen layouts use these same zones and editing components. */
.journal-sheet[data-composition]{min-height:560px!important;padding:28px 26px 48px!important;border-radius:3px;background-color:#f9f2df;background-image:linear-gradient(90deg,transparent 49%,#77634422 49.6%,#fffaf077 50.4%,transparent 51%),radial-gradient(#94836b14 .7px,transparent .7px);background-size:100% 100%,5px 5px}
.journal-sheet[data-composition]>.journal-paper-binding{left:calc(50% - 5px)!important;width:10px!important;border:0!important;background:repeating-linear-gradient(0deg,transparent 0 36px,#918475 36px 39px,transparent 39px 44px);opacity:.55;z-index:0}
.journal-composition-grid{position:relative;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px 24px;align-items:start;min-height:400px}
.journal-composition-grid>.journal-sheet-heading{display:block!important;margin:0!important;border:0!important;padding:0 10px}
.journal-composition-grid .journal-eyebrow{font:10px/1.5 system-ui;letter-spacing:3px}
.journal-composition-grid .journal-sheet-heading h3{font:700 28px/1.5 'KaiTi','STKaiti',serif;border:0!important;background:none!important;box-shadow:none!important;margin:0!important;padding:4px 0!important;text-align:left!important}
.journal-composition-grid>[style*='grid-area: text']{border:1px dashed #a89373;border-radius:40% 30% 42% 20%;padding:20px!important;min-width:0;background:#fffdf555}
.journal-composition-grid>[style*='grid-area: hero']{border:1px dashed #ae8f70;border-radius:8px;padding:10px;transform:rotate(-1deg);min-width:0}
.journal-composition-grid>[style*='grid-area: pocket']{align-self:center;transform:rotate(1deg)}
.journal-composition-grid .journal-element-hint{font-size:10px}.journal-composition-grid .journal-caption{font:15px/1.9 'KaiTi','STKaiti',serif}
.journal-composition-flourish{text-align:center;letter-spacing:5px;margin:24px 0 8px;padding:12px 0;border-top:1px dashed #aa9478;border-bottom:1px dashed #aa9478;color:#aa835b;font:11px/1.6 system-ui}
.journal-sheet[data-composition='reference-06'] [style*='grid-area: hero'],.journal-sheet[data-composition='reference-05'] [style*='grid-area: hero']{border-radius:32% 24% 30% 25%;padding:18px;transform:none}
.journal-sheet[data-composition='reference-08'] .journal-composition-flourish,.journal-sheet[data-composition='reference-14'] .journal-composition-flourish{border-style:double;border-width:4px;border-color:#c7b49a}
.journal-custom-grid{position:relative;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 24px;margin-top:24px;align-items:start;min-width:0;container:journal-craft-layout / inline-size}
@container journal-craft-layout (max-width:380px){.journal-custom-grid>.journal-module-slot[data-side]{grid-column:1/-1}}
.journal-module-column{display:flex;flex-direction:column;gap:22px;min-width:0;position:relative}
.journal-sheet[data-composition] .journal-module-frame{aspect-ratio:16/9}
.journal-sheet[data-composition] .journal-eyebrow{background:none;border:0;box-shadow:none}
.journal-sheet[data-composition][data-template=osmanthus] .journal-element-hint{color:#e2c990}
.journal-preserved-photos{grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr))}
.journal-sheet[data-composition][data-template=osmanthus]{background-color:#303b37;color:#ede8d8}
.journal-sheet[data-composition][data-template=osmanthus] :is(.journal-caption,.journal-eyebrow,.journal-facts,.journal-sheet-heading h3){color:#eee5ce!important}
.journal-sheet[data-composition][data-template=osmanthus] [style*='grid-area: text']{background:#ffffff08;border-color:#dfd0b2}
.journal-sheet[data-composition][data-template=osmanthus] .journal-module-slot .journal-canvas-element[data-canvas-type=customMechanism]{background:#fbf0db}
.journal-module-slot{min-width:0;position:relative}.journal-module-slot[data-side=left]{grid-column:1}.journal-module-slot[data-side=right]{grid-column:2}.journal-module-slot[data-side=full]{grid-column:1/-1}
.journal-module-slot>.journal-element-slot{margin:0}.journal-module-slot .journal-canvas-element[data-canvas-type=customMechanism]{padding:12px 10px;border-radius:5px;background:#fffcf5}
.journal-craft-module{position:relative;box-sizing:border-box;min-width:0;padding-top:26px;--module-pink:#d9aaa4;--module-paper:#f4dfb7;--craft-step:0;--craft-angle:0deg}
.journal-module-title{font:700 16px/1.5 'KaiTi','STKaiti',serif!important;margin:0 28px 12px 0;color:#6b5543}
.journal-module-frame{position:relative;box-sizing:border-box;aspect-ratio:4/3;margin:10px 5px 26px;perspective:900px;isolation:isolate;container-type:size;border:1px dashed #b9a380;background:repeating-linear-gradient(45deg,#fffaf0,#fffaf0 8px,#f7efd9 8px,#f7efd9 9px);overflow:visible}
.journal-module-inner,.journal-module-covers{position:absolute;inset:0;transform-style:preserve-3d;pointer-events:none}
.journal-craft-module[data-open=false] .journal-module-plate,.journal-craft-module[data-open=false] .journal-module-plate button{pointer-events:none}
.journal-module-plate{position:absolute;left:12%;top:12%;width:76%;height:76%;box-sizing:border-box;padding:8px;border:1px solid #c8b79a;background:#fffdf4;box-shadow:2px 4px 8px #4b392d22;transform-origin:center;transition:transform .5s ease,opacity .4s ease;pointer-events:auto;overflow:hidden}
.journal-module-plate>.journal-canvas-element{box-sizing:border-box;width:100%;height:100%;margin:0;padding:4px 27px 4px 4px}
.journal-module-plate .journal-photo-open{width:100%;height:100%;display:block;padding:0!important;transform:none!important}
.journal-module-plate .journal-photo-open img{width:100%;height:100%;max-height:none;object-fit:contain}
.journal-surface .journal-module-plate .journal-photo-add{height:100%;aspect-ratio:auto;padding:6px}
.journal-module-plate .journal-photo-add-circle{width:38px;height:38px;font-size:26px}
.journal-module-placeholder{display:grid;place-items:center;height:100%;background:#ece6d7;color:#c0aa80;font:32px/1 serif}
.journal-module-photo-slot{position:relative;box-sizing:border-box;width:100%;height:100%;min-width:0;min-height:0}
.journal-module-photo-slot>.journal-canvas-element{box-sizing:border-box;width:100%;height:100%;margin:0;padding:3px}
.journal-module-photo-slot>.journal-canvas-element.journal-draggable{padding:3px}
.journal-module-photo-slot>.journal-photo-open{width:100%;height:100%;display:block}
.journal-surface .journal-module-photo-slot>.journal-photo-add{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto;padding:3px;outline-offset:-3px;box-shadow:none}
.journal-module-photo-slot>.journal-photo-add small{font:10px/1.2 system-ui;color:#547265;pointer-events:none}
.journal-module-photo-slot .journal-photo-add-circle{width:clamp(16px,14cqw,38px);height:clamp(16px,14cqw,38px);font-size:22px}
.journal-surface .journal-module-photo-slot[data-filled=true]>.journal-photo-add{inset:auto 1px 1px auto;z-index:75;width:23px;height:23px;min-height:0;padding:1px;outline:0;border-radius:50%;background:#fffdf5}
.journal-module-photo-slot[data-filled=true]>.journal-photo-add .journal-photo-add-circle{width:19px;height:19px;border:0;font-size:16px}
.journal-module-photo-slot>.journal-photo-add:disabled{opacity:.45;cursor:not-allowed}
.journal-mechanism-photos{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}
.journal-surface .journal-mechanism-photos label{display:flex;flex-direction:column;align-items:stretch}
.journal-module-upload{position:absolute;inset:20%;z-index:60;display:grid;place-items:center;pointer-events:none}
.journal-module-upload>.journal-photo-add{pointer-events:auto}
.journal-craft-module[data-open=false] .journal-module-upload{visibility:hidden;pointer-events:none}
.journal-craft-module[data-open=false] .journal-module-upload>.journal-photo-add{pointer-events:none}
.journal-module-upload[data-empty=false]{inset:auto auto 8px 50%;width:42px;height:42px;transform:translateX(-50%)}
.journal-surface .journal-module-upload[data-empty=false]>.journal-photo-add{width:42px;height:42px;padding:0;border-radius:50%;background:#fffdf4;box-shadow:0 2px 6px #53432a22}
.journal-module-upload[data-empty=false] .journal-photo-add-circle{width:30px;height:30px;font-size:24px}
.journal-module-covers{pointer-events:none;z-index:5}
.journal-surface button.journal-module-covers{position:absolute;inset:0;display:block;width:100%;height:100%;min-height:0;margin:0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;pointer-events:auto;cursor:pointer}
.journal-craft-module[data-open=true] button.journal-module-covers{pointer-events:none}
.journal-surface button.journal-module-covers:focus-visible{outline:2px solid #176f63;outline-offset:3px}
.journal-module-flap{position:absolute;inset:0;display:grid;place-items:center;border:1px solid #b78f85;background:linear-gradient(130deg,var(--module-pink),#f5d2c7);box-shadow:2px 4px 5px #60493222;transition:transform .55s ease,opacity .4s ease;backface-visibility:visible;color:#a66f62;font:32px/1 serif}
.journal-module-caption{font:14px/1.9 'KaiTi','STKaiti',serif!important;color:#705b47;white-space:pre-wrap;overflow-wrap:anywhere}
.journal-surface .journal-module-control{position:absolute;top:0;right:0;z-index:60;display:grid;place-items:center;width:28px;height:28px;min-height:0;padding:0;border:1px solid #bba382;border-radius:50%;background:#fffaf0;color:#826b52;font:18px/1 system-ui}
.journal-surface[data-mode=edit] .journal-module-control{right:30px}
.journal-surface .journal-module-action{position:absolute;left:0;right:34px;top:0;height:26px;min-height:0;padding:2px 4px;margin:0;width:auto;border:1px solid #bdad8b;border-radius:6px;background:#fffaf0;color:#665442;font:600 11px/1.4 system-ui;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.journal-surface[data-mode=edit] .journal-module-action{left:26px;right:62px}
.journal-craft-module[data-craft-type=gate] .journal-module-flap{width:50%;right:auto;transform-origin:left}.journal-craft-module[data-craft-type=gate] .journal-module-flap:nth-child(2){left:50%;transform-origin:right}
.journal-craft-module[data-craft-type=gate][data-open=true] .journal-module-flap:first-child{transform:rotateY(-125deg)}.journal-craft-module[data-craft-type=gate][data-open=true] .journal-module-flap:nth-child(2){transform:rotateY(125deg)}
.journal-craft-module[data-craft-type=flap] .journal-module-flap{transform-origin:top}.journal-craft-module[data-craft-type=flap][data-open=true] .journal-module-flap{transform:rotateX(155deg);opacity:.65}
.journal-craft-module[data-craft-type=petal] .journal-module-flap{inset:25%;border-radius:60% 60% 8% 60%;transform:rotate(calc(var(--flap)*90deg)) translateY(-40%);transform-origin:center}
.journal-craft-module[data-craft-type=petal][data-open=true] .journal-module-flap{transform:rotate(calc(var(--flap)*90deg)) translateY(-100%) rotateX(150deg);opacity:.7}
.journal-craft-module[data-craft-type=wheel] .journal-module-frame{border:0;background:none;overflow:visible;--wheel-size:min(100cqw,100cqh)}.journal-craft-module[data-craft-type=wheel] .journal-module-inner,.journal-surface .journal-craft-module[data-craft-type=wheel] .journal-module-covers{inset:auto;left:50%;top:50%;width:var(--wheel-size);height:var(--wheel-size);translate:-50% -50%;border-radius:50%}.journal-craft-module[data-craft-type=wheel] .journal-module-inner{transform:none;background:var(--module-paper)}.journal-craft-module[data-craft-type=wheel] .journal-module-plate{border-radius:50%;transform:none}
.journal-craft-module[data-craft-type=wheel] .journal-module-plate[data-active=false]{visibility:hidden}.journal-craft-module[data-craft-type=wheel][data-open=true] .journal-module-covers{display:none}.journal-craft-module[data-craft-type=wheel] .journal-module-flap{border-radius:50%;background:conic-gradient(#e8c99b 0 25%,#d0b18b 25% 50%,#e8c99b 50% 75%,#d0b18b 75%)}
.journal-craft-module[data-craft-type=waterfall] .journal-module-plate{transform:translateY(calc(var(--plate)*5%));transform-origin:top;z-index:calc(5 - var(--plate))}.journal-craft-module[data-craft-type=waterfall][data-open=true] .journal-module-plate[data-active=true]{transform:translateY(8%);z-index:10}.journal-craft-module[data-craft-type=waterfall][data-open=true] .journal-module-plate[data-turned=true]{transform:translateY(-4%) rotateX(155deg);opacity:.3;z-index:0;pointer-events:none}
.journal-craft-module[data-craft-type=waterfall] .journal-module-flap{inset:auto 35% -15%;height:20%;background:var(--module-pink);font-size:18px}.journal-craft-module[data-craft-type=waterfall][data-open=true] .journal-module-flap{transform:translateY(15%)}
.journal-craft-module[data-craft-type=accordion] .journal-module-plate{left:calc(12% + var(--plate)*5%);width:22%;top:10%;height:80%;transform:rotateY(74deg);transform-origin:left;border-right-style:dashed;background:linear-gradient(90deg,#d2c1a4,#fffdf4 20%,#fffdf4 80%,#d2c1a4)}.journal-craft-module[data-craft-type=accordion] .journal-module-plate:nth-child(even){transform:rotateY(-74deg);transform-origin:right;background:linear-gradient(90deg,#fffdf4,#dfd3bb 50%,#fffdf4)}.journal-craft-module[data-craft-type=accordion][data-open=true] .journal-module-plate{left:calc(6% + var(--plate)*22%);transform:rotateY(0deg)}
.journal-craft-module:is([data-craft-type=accordion],[data-craft-type=bridge],[data-craft-type=fan]) .journal-module-flap{inset:20%;background:var(--module-paper)}
.journal-craft-module:is([data-craft-type=accordion],[data-craft-type=bridge],[data-craft-type=fan],[data-craft-type=waterfall],[data-craft-type=explosion])[data-open=true] .journal-module-covers{opacity:0;visibility:hidden}
.journal-craft-module[data-craft-type=pocket] .journal-module-flap{inset:48% 0 0;background:var(--module-paper);clip-path:polygon(0 0,40% 0,45% 15%,55% 15%,60% 0,100% 0,100% 100%,0 100%)}.journal-craft-module[data-craft-type=pocket][data-open=true] .journal-module-plate{transform:translateY(-22%) rotate(-5deg)}
.journal-craft-module[data-craft-type=slider] .journal-module-flap{right:22%;background:var(--module-paper)}.journal-craft-module[data-craft-type=slider][data-open=true] .journal-module-plate{transform:translateX(32%)}
.journal-craft-module[data-craft-type=explosion] .journal-module-frame{--tile:min(32cqw,32cqh);aspect-ratio:1}
.journal-craft-module[data-craft-type=explosion] .journal-module-plate,.journal-craft-module[data-craft-type=explosion] .journal-module-flap{width:var(--tile);height:var(--tile);inset:auto;left:calc(50% - var(--tile)/2);top:calc(50% - var(--tile)/2);transform:none;transform-origin:center;padding:3px;border-radius:0}
.journal-craft-module[data-craft-type=explosion] .journal-module-plate:not(.journal-explosion-center){z-index:2}
.journal-craft-module[data-craft-type=explosion][data-open=true] .journal-module-plate:nth-child(2){transform:translateY(-100%)}
.journal-craft-module[data-craft-type=explosion][data-open=true] .journal-module-plate:nth-child(3){transform:translateX(100%)}
.journal-craft-module[data-craft-type=explosion][data-open=true] .journal-module-plate:nth-child(4){transform:translateY(100%)}
.journal-craft-module[data-craft-type=explosion][data-open=true] .journal-module-plate:nth-child(5){transform:translateX(-100%)}
.journal-craft-module[data-craft-type=cross] .journal-module-plate,.journal-craft-module[data-craft-type=cross] .journal-module-flap{inset:auto;left:6%;top:6%;width:44%;height:44%;padding:3px;transform:none;border-radius:0}
.journal-craft-module[data-craft-type=cross] :is(.journal-module-plate,.journal-module-flap):nth-child(even){left:50%}
.journal-craft-module[data-craft-type=cross] :is(.journal-module-plate,.journal-module-flap):nth-child(n+3){top:50%}
.journal-module-center-photo{display:block;width:100%;height:100%;object-fit:contain}
.journal-craft-module[data-craft-type=cross] .journal-module-flap:nth-child(1),.journal-craft-module[data-craft-type=cross] .journal-module-flap:nth-child(2){transform-origin:top}
.journal-craft-module[data-craft-type=cross] .journal-module-flap:nth-child(3),.journal-craft-module[data-craft-type=cross] .journal-module-flap:nth-child(4){transform-origin:bottom}
.journal-craft-module[data-craft-type=cross][data-open=true] .journal-module-flap:nth-child(1){transform:rotateY(-145deg);transform-origin:left;opacity:.35}
.journal-craft-module[data-craft-type=cross][data-open=true] .journal-module-flap:nth-child(2){transform:rotateX(145deg);opacity:.35}
.journal-craft-module[data-craft-type=cross][data-open=true] .journal-module-flap:nth-child(3){transform:rotateX(-145deg);opacity:.35}
.journal-craft-module[data-craft-type=cross][data-open=true] .journal-module-flap:nth-child(4){transform:rotateY(145deg);transform-origin:right;opacity:.35}
.journal-craft-module[data-craft-type=fan] .journal-module-plate{left:30%;top:10%;width:55%;height:78%;transform-origin:0 100%;transform:rotate(0deg)}.journal-craft-module[data-craft-type=fan][data-open=true] .journal-module-plate{transform:rotate(calc((var(--plate) - 1.5)*28deg))}.journal-craft-module[data-craft-type=fan] .journal-module-plate[data-active=true]{z-index:10;outline:2px solid #b69c6f}
.journal-craft-module[data-craft-type=bridge] .journal-module-inner{transform-origin:50% 100%;transition:transform .5s ease}
.journal-craft-module[data-craft-type=bridge] .journal-module-plate{left:calc(4% + var(--plate)*23%);top:20%;width:23%;height:60%;transform:none;overflow:visible;background:linear-gradient(90deg,#d3bea0,#fffdf4 12%,#fffdf4 88%,#d3bea0);border-right-style:dashed}
.journal-craft-module[data-craft-type=bridge] .journal-module-plate>.journal-photo-open,.journal-craft-module[data-craft-type=bridge] .journal-module-plate>.journal-canvas-element{overflow:hidden}
.journal-craft-module[data-craft-type=bridge] .journal-module-plate:after{content:'';position:absolute;left:8%;right:8%;top:100%;height:35%;background:linear-gradient(#c1aa83,#efe0bf);transform:scaleY(0);transform-origin:top;transition:transform .5s ease;clip-path:polygon(0 0,100% 0,80% 100%,20% 100%);pointer-events:none}
.journal-craft-module[data-craft-type=bridge][data-open=true] .journal-module-inner{transform:translateY(-12%) rotateX(32deg)}
.journal-craft-module[data-craft-type=bridge][data-open=true] .journal-module-plate:after{transform:scaleY(1)}
@media(prefers-reduced-motion:reduce){.journal-module-plate,.journal-module-flap,.journal-module-inner{transition:none!important}}
@media(max-width:560px){.journal-zoom-tools{gap:3px;margin-left:0}.journal-zoom-tools input[type=range]{width:52px}.journal-custom-settings{grid-template-columns:minmax(0,1fr)}.journal-custom-grid{gap:18px 14px}.journal-craft-module .journal-module-title{font-size:13px!important}.journal-module-frame{margin-left:0;margin-right:0}}

/* Zoom is an independent component between the canvas and the inspector. */
.journal-zoom-panel{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0;padding:10px 14px;background:#fff}
.journal-zoom-label{font:12px/1.5 system-ui;color:#6a8073;white-space:nowrap}
.journal-reading-canvas+.journal-zoom-panel{margin:12px 0}
.journal-workbench[data-empty=true] .journal-zoom-panel{display:none}
.journal-surface .journal-element-move{position:absolute;top:3px;left:3px;z-index:65;display:grid;place-items:center;width:22px;height:22px;min-height:22px;padding:0;border:1px solid #a7c1b2;border-radius:5px;background:#f5fff9;color:#336e58;font:17px/1 system-ui;cursor:grab;touch-action:none}
.journal-draggable{touch-action:none;user-select:none;-webkit-user-select:none;cursor:grab}
.journal-draggable.is-dragging,.journal-draggable.is-dragging .journal-element-move{cursor:grabbing}
.journal-canvas-element.journal-draggable{padding-left:28px}
.journal-canvas-element.journal-draggable:is([data-canvas-type=mechanism],[data-canvas-type=pocket],[data-canvas-type=customMechanism]){padding-left:0}
.journal-canvas-element[data-canvas-type=moduleTitle]{margin-right:32px}
.journal-sheet[data-template=collage][data-composition]{background-color:#303b37;color:#efe6d1;--craft-ink:#eee0c4;--craft-accent:#d8b870;--craft-paper:#f5ebd8}
.journal-sheet[data-template=collage] :is(.journal-caption,.journal-eyebrow,.journal-facts,.journal-sheet-heading h3){color:#eee6d0}
.journal-sheet[data-template=collage] .journal-element-hint{color:#e8cda1}
.journal-sheet[data-template=collage] .journal-composition-flourish{border-style:dotted;border-width:3px;color:#e4c389}
.journal-sheet[data-template=bloom][data-composition]{background-color:#f9eee6;--craft-paper:#fff8ee;--craft-tape:#e0b7b499;--craft-ink:#87615e;--craft-accent:#ad797c;background-image:radial-gradient(ellipse at 50% 45%,#e6bcbd33 0 27%,transparent 27.5%),linear-gradient(90deg,transparent 49%,#a97e7b33 50%,transparent 51%),radial-gradient(#b382791a .7px,transparent .7px);background-size:100% 100%,100% 100%,6px 6px}
.journal-sheet[data-template=bloom] .journal-module-slot[data-side=right] .journal-module-frame{aspect-ratio:1;border-radius:40%;background:#f9e9de}
.journal-sheet[data-template=bloom] .journal-composition-flourish{color:#b18177;border:0;font-size:14px;letter-spacing:12px}
.journal-sheet[data-template=postbox][data-composition]{background-color:#f6edd7;--craft-paper:#fdf4df;--craft-ink:#635a49;--craft-accent:#a08449;background-image:linear-gradient(90deg,transparent 49%,#846e3c22 50%,transparent 51%),repeating-linear-gradient(0deg,transparent 0 27px,#a6916a18 27px 28px);background-size:auto}
.journal-sheet[data-template=postbox] .journal-composition-flourish{border-style:dashed;letter-spacing:4px}
.journal-sheet[data-template=postbox] .journal-module-slot[data-side=right] .journal-module-frame{aspect-ratio:3/4}
@media(max-width:560px){.journal-zoom-panel{padding:9px;gap:6px;flex-wrap:wrap}.journal-zoom-tools{margin-left:auto}.journal-zoom-tools input[type=range]{width:56px}}

/* One physical paper specification per template, shared by editor, reader and
   thumbnails. Content never determines page size; only canvas zoom does. */
:is(.journal-preview,.journal-thumb-render)[data-template] .journal-sheet[data-fixed-paper]{width:var(--journal-page-width)!important;height:var(--journal-page-height)!important;min-height:0!important;max-height:none;aspect-ratio:auto;padding:24px 26px 40px!important;flex-shrink:0}
.journal-sheet[data-fixed-paper]:not(.journal-designed-page)>.journal-sheet-heading{position:absolute;left:5%;top:4%;width:90%;max-height:17%;overflow:auto;margin:0}
.journal-sheet[data-fixed-paper]:not(.journal-designed-page)>.journal-sheet-content{position:absolute;left:5%;top:24%;width:90%;height:67%;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px;min-height:0;align-items:start}
.journal-sheet[data-fixed-paper]:not(.journal-designed-page) .journal-written-leaf{min-height:0;max-height:100%;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin}
.journal-sheet[data-fixed-paper]:not(.journal-designed-page) .journal-written-leaf>.journal-sheet-heading{display:none}
.journal-sheet[data-fixed-paper]:not(.journal-designed-page) .journal-visual-leaf{min-width:0;width:auto;order:0;padding:6px!important}
.journal-sheet[data-fixed-paper]:not(.journal-designed-page)[data-format=stitched]>.journal-sheet-content{display:flex;flex-direction:column;gap:24px}
.journal-sheet[data-fixed-paper]:not(.journal-designed-page)[data-format=stitched] .journal-visual-leaf{width:100%;box-sizing:border-box;flex:0 0 48%}
.journal-sheet[data-fixed-paper]:not(.journal-designed-page)[data-format=stitched] .journal-written-leaf{width:100%;flex:1;max-height:46%}
.journal-sheet[data-fixed-paper]:not(.journal-designed-page)>.journal-custom-grid{position:absolute;left:6%;right:6%;top:30%;margin:0;z-index:20}
.journal-custom-grid:has(.is-selected){z-index:40!important}
.journal-sheet[data-fixed-paper]:not(.journal-designed-page) .journal-sheet-photos{max-height:300px;overflow:auto;scrollbar-width:thin}
.journal-sheet[data-fixed-paper]:not(.journal-designed-page) .journal-pop-up[data-mechanism=gate] .journal-sheet-photos{max-height:none}
.journal-sheet[data-fixed-paper]:not(.journal-designed-page) .journal-sheet-heading h3{font-size:24px}
.journal-sheet[data-fixed-paper]:not(.journal-designed-page)>.journal-sheet-heading>.journal-canvas-element{margin:4px 0;padding-top:4px;padding-bottom:4px}
.journal-sheet[data-fixed-paper]:not(.journal-designed-page)>.journal-sheet-heading h3{margin:4px 0!important;padding:6px 8px!important;line-height:1.3}
.journal-sheet[data-fixed-paper]:not(.journal-designed-page)[data-format=stitched] .journal-visual-leaf{flex-basis:58%}
.journal-sheet[data-fixed-paper]:not(.journal-designed-page)[data-format=stitched] .journal-written-leaf{max-height:38%}
.journal-sheet[data-fixed-paper]:not(.journal-designed-page) .journal-visual-leaf>.journal-element-slot{margin:0 0 12px}
.journal-sheet[data-fixed-paper]:not(.journal-designed-page)[data-format=stitched] .journal-pop-up{min-height:190px;margin:0}
.journal-sheet[data-fixed-paper]:not(.journal-designed-page)[data-format=stitched] .journal-paper-photo-scene{height:160px;aspect-ratio:auto;overflow:hidden}
.journal-sheet[data-fixed-paper]:not(.journal-designed-page)[data-format=stitched] .journal-paper-photo-scene .journal-sheet-photos{box-sizing:border-box;height:160px;max-height:160px;margin:0;display:flex;flex-direction:column;overflow:auto}
.journal-sheet[data-fixed-paper]:not(.journal-designed-page)[data-format=stitched] .journal-paper-photo-scene .journal-sheet-photos>*{flex:0 0 145px}
.journal-sheet[data-fixed-paper]:not(.journal-designed-page)[data-format=stitched] .journal-paper-photo-scene .journal-sheet-photos>.journal-photo-add{align-self:center;flex:0 0 145px;width:145px;height:145px;aspect-ratio:1}
.journal-sheet[data-fixed-paper]:not(.journal-designed-page)[data-format=stitched] .journal-paper-photo-scene img{width:100%;height:130px;object-fit:contain}
.journal-sheet[data-fixed-paper]:not(.journal-designed-page)[data-format=concertina] .journal-concertina{min-height:270px}
.journal-sheet[data-fixed-paper]:not(.journal-designed-page) .journal-waterfall>.journal-photo-add{width:85px;height:85px;aspect-ratio:1;margin:8px auto}
.journal-sheet[data-fixed-paper]:not(.journal-designed-page) .journal-visual-leaf>.journal-sheet-photos{max-height:180px}
.journal-sheet[data-fixed-paper]:not(.journal-designed-page) .journal-visual-leaf>.journal-sheet-photos>.journal-photo-add{justify-self:center;width:145px;height:145px;aspect-ratio:1}
.journal-sheet[data-fixed-paper]:not(.journal-designed-page) .journal-pop-up[data-mechanism=gate]>.journal-fold-content{width:240px;max-width:100%;left:50%;transform:translateX(-50%)}
.journal-sheet[data-fixed-paper]:not(.journal-designed-page) .journal-gate-cover{width:240px;max-width:100%;margin-left:auto;margin-right:auto}
.journal-sheet[data-fixed-paper]:not(.journal-designed-page) .journal-pocket-card{box-sizing:border-box;max-height:130px;overflow:auto;margin:0;padding:10px;overscroll-behavior:contain;scrollbar-width:thin}
.journal-sheet[data-fixed-paper]:not(.journal-designed-page)[data-format=concertina] .journal-concertina{min-height:200px}
.journal-sheet[data-fixed-paper]:not(.journal-designed-page) .journal-concertina-strip{box-sizing:border-box;height:180px;grid-template-columns:repeat(var(--fold-count,3),minmax(0,1fr));grid-template-rows:minmax(0,1fr)}
.journal-sheet[data-fixed-paper]:not(.journal-designed-page) .journal-concertina-panel{box-sizing:border-box;min-height:0;height:100%;overflow:auto;scrollbar-width:thin;overscroll-behavior:contain}
.journal-sheet[data-fixed-paper]:not(.journal-designed-page) .journal-concertina-panel img{max-height:110px;object-fit:contain}
.journal-sheet[data-fixed-paper]:not(.journal-designed-page) .journal-mechanism-card{box-sizing:border-box;max-height:150px;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin}
.journal-sheet[data-fixed-paper]:not(.journal-designed-page) .journal-custom-grid{top:26%;gap:18px;align-content:start}
.journal-sheet[data-fixed-paper]:not(.journal-designed-page) .journal-custom-grid .journal-module-frame{width:var(--native-module-width);height:var(--native-module-height);aspect-ratio:auto}
.journal-sheet[data-fixed-paper]:not(.journal-designed-page) .journal-custom-grid .journal-craft-module>.journal-canvas-element{margin-top:2px;margin-bottom:2px;padding-top:2px;padding-bottom:2px}
.journal-sheet[data-fixed-paper]:not(.journal-designed-page) .journal-custom-grid .journal-module-title{max-height:32px;overflow:auto;font-size:12px!important;line-height:1.4!important;margin:0;scrollbar-width:thin}
.journal-sheet[data-fixed-paper]:not(.journal-designed-page) .journal-custom-grid .journal-module-caption{max-height:28px;overflow:auto;font-size:12px!important;line-height:1.4!important;margin:0;scrollbar-width:thin}
.journal-sheet[data-fixed-paper]:not(.journal-designed-page) .journal-waterfall:has(>.journal-photo-add){display:grid;grid-template-columns:minmax(0,1fr) 85px;column-gap:8px}
.journal-sheet[data-fixed-paper]:not(.journal-designed-page) .journal-waterfall:has(>.journal-photo-add)>details{grid-column:1}
.journal-sheet[data-fixed-paper]:not(.journal-designed-page) .journal-waterfall>.journal-photo-add{grid-column:2;grid-row:1/4;align-self:start;margin:0}
.journal-sheet[data-fixed-paper]:not(.journal-designed-page) .journal-visual-leaf{position:static}
.journal-sheet[data-fixed-paper]:not(.journal-designed-page) .journal-visual-leaf>[data-element-position=pocket]{position:absolute;top:68%;left:0;width:48%;box-sizing:border-box;margin:0}
.journal-sheet[data-fixed-paper]:not(.journal-designed-page):is([data-format=spread],[data-format=album]) .journal-visual-leaf>[data-element-position=pocket]{left:52%}
.journal-sheet[data-fixed-paper]:not(.journal-designed-page)[data-format=stitched] .journal-visual-leaf>[data-element-position=pocket]{width:100%}
.journal-sheet[data-fixed-paper]:not(.journal-designed-page) .journal-pocket-card{max-height:var(--native-pocket-height,80px)}
.journal-sheet .journal-paper-pocket{box-sizing:border-box;height:calc(var(--native-pocket-height,100px) + 58px);padding:0;margin:0;background:var(--craft-paper,#fffaf0);overflow:hidden;transform:none}
.journal-sheet .journal-paper-pocket>summary{box-sizing:border-box;height:50px;margin:0;padding:9px 32px 9px 28px;background:#eadbbd;border-bottom:1px solid #ccb792;white-space:nowrap;overflow:hidden}
.journal-sheet .journal-paper-pocket>summary:before{content:'回忆口袋';float:left;padding:5px 0;font:600 12px/1.5 system-ui}
.journal-paper-pocket>.journal-fold-content{overflow:hidden;scrollbar-gutter:auto;background:transparent;box-shadow:none;border-radius:0}
.journal-sheet .journal-paper-pocket .journal-pocket-card{box-sizing:border-box;width:100%;height:var(--native-pocket-height,100px);max-height:var(--native-pocket-height,100px);padding:10px;margin:0;transform:none;box-shadow:0 3px 4px #af956326;overflow-x:hidden;overflow-y:auto;scrollbar-gutter:auto;overscroll-behavior:contain}
.journal-sheet[data-fixed-paper]:not(.journal-designed-page)[data-format=stitched] .journal-written-leaf{position:absolute;bottom:0;left:0;right:0;max-height:18%}
.journal-sheet[data-fixed-paper]:not(.journal-designed-page)[data-format=stitched] .journal-written-leaf{top:49%;bottom:auto;max-height:16%}

/* Eighteen complete spreads use one positioned-page renderer. The catalog
   supplies placement and dimensions; the twelve mechanisms keep one behavior. */
.journal-sheet.journal-designed-page{padding:0!important;background-color:var(--design-paper,#f7edd8)!important;color:var(--design-ink,#624d36);background-image:radial-gradient(#8a785914 .65px,transparent .7px),linear-gradient(90deg,transparent 49.5%,#7e624226 50%,transparent 50.8%);background-size:5px 5px,100% 100%}
.journal-designed-page[data-template=collage]{--design-paper:#303d39;--design-ink:#f3e9cc;--design-accent:#e6b56c;--design-pale:#ece1c6;--module-pink:#c98f8d;--module-paper:#d8bc88;--craft-ink:#f3e9cc}
.journal-designed-page[data-template=bloom]{--design-paper:#f7efe7;--design-ink:#815956;--design-accent:#b97d83;--design-pale:#f6e3dd;--module-pink:#dcaeb3;--module-paper:#d5ddc3;--craft-ink:#815956}
.journal-designed-page[data-template=postbox]{--design-paper:#f1e8d4;--design-ink:#465f6a;--design-accent:#b77250;--design-pale:#f9f0da;--module-pink:#b5c8c8;--module-paper:#dab788;--craft-ink:#465f6a}
.journal-designed-page[data-background=sage]{--design-paper:#e6eddf;--design-ink:#405345;--design-accent:#70856a;--design-pale:#f3f4e6;--craft-ink:#405345}
.journal-designed-page[data-background=sunset]{--design-paper:#f6e4d4;--design-ink:#785846;--design-accent:#ad7656;--design-pale:#fff1dd;--craft-ink:#785846}
.journal-page-layout{position:absolute;inset:0;isolation:isolate}
.journal-design-slot{position:absolute;box-sizing:border-box;min-width:0;z-index:2;transform-origin:center}
.journal-design-slot:has(.is-active-branch){z-index:30}.journal-design-slot:has(.is-selected){z-index:40}
.journal-designed-page>.journal-paper-binding{display:block!important;left:calc(50% - 3px)!important;width:6px!important;opacity:.45;border:0;background:repeating-linear-gradient(0deg,transparent 0 27px,var(--design-accent) 27px 30px)}
.journal-designed-page .journal-design-slot>.journal-sheet-heading{margin:0;border:0;padding:0;display:block!important}
.journal-designed-page .journal-eyebrow{color:var(--design-accent)!important;border:0;background:transparent;font-size:10px;letter-spacing:3px;padding:0 2px;transform:none}
.journal-designed-page .journal-sheet-heading h3{box-sizing:border-box;max-height:calc(var(--design-box-height) - 34px);overflow:auto;scrollbar-width:thin;font:700 28px/1.4 'KaiTi','STKaiti',serif;margin:0!important;padding:0!important;border:0!important;box-shadow:none!important;background:transparent!important;text-align:left!important;color:var(--design-ink)!important;transform:none!important}
.journal-designed-page .journal-design-slot[data-design-role=text]>.journal-canvas-element,.journal-designed-page .journal-design-slot[data-design-role=facts]>.journal-canvas-element{box-sizing:border-box;height:100%;margin:0;padding-top:6px;padding-bottom:6px}
.journal-designed-page .journal-caption{box-sizing:border-box;max-height:calc(var(--design-box-height) - 16px);overflow:auto;scrollbar-width:thin;overscroll-behavior:contain;font:15px/1.8 'KaiTi','STKaiti',serif;background:none;margin:0;padding:4px 6px;white-space:pre-wrap;color:var(--design-ink)!important}
.journal-designed-page .journal-facts{box-sizing:border-box;max-height:calc(var(--design-box-height) - 16px);overflow:auto;scrollbar-width:thin;overscroll-behavior:contain;padding:0 4px;color:var(--design-ink)!important}
.journal-designed-page .journal-facts :is(p,li,h4){color:inherit;font-size:12px;line-height:1.7;margin:0 0 7px;padding:4px 6px;box-shadow:none;border:0;border-bottom:1px dashed color-mix(in srgb,var(--design-accent) 50%,transparent);background:transparent;transform:none}
.journal-designed-page .journal-facts h4{font-size:14px}.journal-designed-page .journal-facts ol{padding-left:20px}
.journal-designed-page .journal-design-slot[data-design-role=text]{border:1px dashed var(--design-accent);border-radius:45% 35% 42% 28%;padding:6px;background:color-mix(in srgb,var(--design-pale) 10%,transparent)}
.journal-designed-page .journal-module-slot{height:100%;grid-column:auto}
.journal-designed-page .journal-module-slot>.journal-element-slot{margin:0}
.journal-designed-page .journal-module-slot .journal-canvas-element[data-canvas-type=customMechanism]{background:transparent;padding:4px!important;border-radius:2px}
.journal-designed-page .journal-module-frame{width:var(--design-module-width)!important;height:var(--design-module-height)!important;aspect-ratio:auto!important;margin:5px auto 8px;border-radius:2px;background:var(--design-pale)}
.journal-designed-page .journal-craft-module[data-craft-type=wheel] .journal-module-frame{border-radius:50%}
.journal-designed-page .journal-module-title{font-size:12px!important;line-height:1.4!important;margin:0!important;color:var(--design-ink)}
.journal-designed-page [data-canvas-type=moduleTitle]{padding-top:3px;padding-bottom:3px;margin-top:0;margin-bottom:0}
.journal-designed-page .journal-module-caption{max-height:30px;overflow:auto;font-size:12px!important;line-height:1.5!important;margin:0;color:var(--design-ink)}
.journal-designed-page .journal-element-hint{font:600 9px/1.4 system-ui;color:var(--design-accent);margin-bottom:3px}
.journal-designed-page .journal-module-flap{background:linear-gradient(135deg,var(--module-pink),color-mix(in srgb,var(--module-pink) 75%,#fff));color:color-mix(in srgb,var(--design-ink) 50%,transparent)}
.journal-designed-page .journal-craft-module:is([data-craft-type=slider],[data-craft-type=pocket],[data-craft-type=bridge],[data-craft-type=fan]) .journal-module-flap{background:var(--module-paper)}
.journal-design-photo-tray{box-sizing:border-box;width:100%;height:100%;padding:7px 7px 17px;border:1px solid #c7bca4;background:#fffdf3;box-shadow:3px 4px 0 #292f2724;overflow:auto;scrollbar-width:thin;transform:rotate(-3deg)}
.journal-design-photo-tray:is([data-count='2'],[data-count='3'],[data-count='4']){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px}
.journal-design-photo-tray:is([data-count='3'],[data-count='4']){grid-template-rows:repeat(2,minmax(0,1fr))}
.journal-design-slot[data-design-role=photo-1] .journal-design-photo-tray{transform:rotate(4deg)}
.journal-design-photo-tray>.journal-canvas-element{box-sizing:border-box;margin:0;width:100%;height:100%;padding:3px 27px 3px 3px}
.journal-design-photo-tray .journal-photo-open{display:block;width:100%;height:100%}
.journal-design-photo-tray img{display:block;max-width:100%;width:100%;height:100%;object-fit:contain}
.journal-surface .journal-design-photo-tray>.journal-photo-add{width:100%;height:100%;min-height:0;aspect-ratio:auto;padding:0;background:#e7dfcf66}
.journal-design-photo-tray .journal-photo-add-circle{width:40px;height:40px;font-size:28px}
.journal-design-photo-blank{height:100%;background:repeating-linear-gradient(-45deg,#d2c5aa33 0 1px,transparent 1px 8px)}
.journal-design-art{position:absolute;inset:0;pointer-events:none;color:var(--design-accent);z-index:0}
.journal-design-thread{position:absolute;inset:3%;opacity:.5}.journal-design-thread svg{width:100%;height:100%}
.journal-design-star{position:absolute;right:8%;top:43%;font:40px/1 serif;transform:rotate(15deg)}
.journal-design-stamp{position:absolute;left:44%;top:8%;border:2px dotted currentColor;border-radius:50%;width:46px;height:46px;display:grid;place-items:center;font:9px/1.5 serif;transform:rotate(-18deg);opacity:.65}
.journal-design-index{position:absolute;left:7%;bottom:3%;font:9px/1 system-ui;letter-spacing:3px;opacity:.7}
.journal-design-art[data-ornament=orbit] .journal-design-thread{inset:20% 14%;border:1px dashed currentColor;border-radius:50%;transform:rotate(-20deg)}
.journal-design-art[data-ornament=orbit] svg{display:none}
.journal-design-art[data-ornament=ledger] .journal-design-thread{inset:14% 7%;background:repeating-linear-gradient(0deg,transparent 0 29px,#ad91651c 29px 30px)}
.journal-design-art[data-ornament=postage] .journal-design-stamp{left:81%;top:37%;width:64px;height:64px;border-width:3px}
.journal-design-art[data-ornament=ribbon] .journal-design-thread{inset:47% 3% auto;height:17px;border-top:2px dashed currentColor;border-bottom:2px dashed currentColor;transform:rotate(-5deg)}
.journal-design-art[data-ornament=ribbon] svg{display:none}
.journal-design-art[data-ornament=constellation] .journal-design-star{left:45%;top:37%;font-size:52px}
.journal-designed-page[data-template=bloom] .journal-design-slot[data-design-role=text]{border-radius:10px 40px 10px 40px;background:#ead4cf40}
.journal-designed-page[data-template=postbox] .journal-design-slot[data-design-role=text]{border-radius:2px;background:#fff9e855;border-top:3px double var(--design-accent)}
.journal-designed-page[data-kind=route] .journal-sheet-heading{transform:rotate(2deg)}
.journal-designed-page[data-kind=notes] .journal-sheet-heading{transform:rotate(-2deg)}

/* Original Guilin paper furniture. Fonts are self-hosted, unmodified OFL faces;
   lettering stays real editable text and user font-size overrides still win. */
@font-face{font-family:'Journal Brush';src:url('/assets/fonts/journal/MaShanZheng-Regular.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Journal Hand';src:url('/assets/fonts/journal/LongCang-Regular.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
.journal-sheet{--journal-heading-font:'Journal Brush','KaiTi',serif;--journal-note-font:'Journal Hand','KaiTi',serif;--journal-art-ink:#856a45}
.journal-sheet[data-template=bloom]{--journal-heading-font:'Journal Hand','KaiTi',serif;--journal-art-ink:#a06b75}
.journal-sheet[data-template=postbox]{--journal-art-ink:#547378}
.journal-sheet[data-template=collage]{--journal-art-ink:#e0bc75}
.journal-sheet .journal-sheet-heading h3{font-family:var(--journal-heading-font)!important;font-weight:400!important;letter-spacing:1px;text-shadow:1px 2px 0 #bc9f6a18}
.journal-sheet :is(.journal-caption,.journal-module-caption){font-family:var(--journal-note-font)!important}
.journal-designed-page .journal-caption{font-size:18px;line-height:1.65}
.journal-sheet .journal-module-title{font-family:var(--journal-heading-font)!important;font-weight:400!important}
.journal-paper-art{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden;border-radius:inherit;user-select:none;-webkit-user-select:none}
.journal-paper-cut{position:absolute;object-fit:contain;filter:drop-shadow(1px 2px 0 #6e573422);opacity:.94;pointer-events:none}
.journal-paper-lettering{position:absolute;right:7%;bottom:1.7%;color:var(--journal-art-ink);font:18px/1.2 'Journal Hand','KaiTi',serif;letter-spacing:3px;transform:rotate(-2deg);opacity:.85}
.journal-sheet:not(.journal-designed-page) .journal-paper-lettering{left:40%;right:auto;font-size:14px}
.journal-sheet:not(.journal-designed-page)>.journal-paper-art .journal-paper-cut{opacity:.74}
.journal-designed-page>.journal-paper-art{z-index:1}.journal-designed-page>.journal-page-layout{z-index:2}
.journal-sheet[data-template=collage] .journal-design-thread{opacity:.65}
.journal-designed-page .journal-design-star{display:none}
.journal-designed-page .journal-design-stamp{font-family:'Journal Brush','KaiTi',serif;font-size:12px;letter-spacing:1px;outline:1px solid currentColor;outline-offset:3px;opacity:.72}
.journal-designed-page .journal-design-index{letter-spacing:2px;font-family:'Journal Hand',serif;font-size:12px}
.journal-sheet[data-template=collage] .journal-design-slot[data-design-role=text]{border:2px dotted #dfbd8588;background:#f5e8ce08;box-shadow:inset 0 0 0 5px #ecd0a008}
.journal-sheet[data-template=bloom] .journal-design-slot[data-design-role=text]{border:1px solid #c69b9b99;outline:2px dotted #c99b9b55;outline-offset:4px;background:repeating-linear-gradient(0deg,#fff9f222 0 25px,#c99b9b25 25px 26px)}
.journal-sheet[data-template=postbox] .journal-design-photo-tray{border-style:dashed;border-width:2px;background:#fffaf0;box-shadow:3px 4px 0 #a1785222}
.journal-sheet[data-template=postbox] .journal-eyebrow{font-family:'Journal Brush','KaiTi',serif;letter-spacing:5px}
.journal-designed-page .journal-design-photo-tray:after{content:'';position:absolute;left:26%;top:-5px;width:43%;height:16px;background:repeating-linear-gradient(80deg,#c7a27466 0 3px,#d5b88788 3px 6px);transform:rotate(4deg);pointer-events:none}
.journal-surface .journal-module-action{border-style:dashed;border-radius:2px 9px 3px 9px;background:linear-gradient(100deg,#f8ecd0,#fffaf0 60%);box-shadow:1px 2px 0 #a68a5b22;color:#65563e}
.journal-surface .journal-module-control{border-style:dotted;box-shadow:0 0 0 2px #fff8e9,1px 3px 0 2px #bd9e6c22;background:#f9e9be;color:#826137}
.journal-module-frame{perspective:none;background:radial-gradient(#b49b7022 .6px,transparent .8px) 0 0/6px 6px,#fcf7e9;border:1px solid #baa27877}
.journal-module-inner,.journal-module-covers{transform-style:flat}
.journal-module-placeholder{background:repeating-linear-gradient(-45deg,#d2c5aa22 0 1px,transparent 1px 9px),#f7f1e4;box-shadow:inset 0 0 0 3px #fffcf5;border:1px dashed #bdae91;box-sizing:border-box}
.journal-module-flap{background:repeating-linear-gradient(0deg,transparent 0 17px,#fff6df28 17px 18px),linear-gradient(135deg,var(--module-pink),#ead2b3);border:1px solid #a8896c;box-shadow:inset 0 0 0 4px #fff8e92e,inset 0 0 0 5px #9e7c632b,2px 3px 0 #71563a22}
.journal-craft-seal{position:absolute;left:24%;top:22%;width:52%;height:56%;display:grid;place-items:center;filter:drop-shadow(1px 2px 0 #80654033);pointer-events:none}
.journal-craft-seal img{width:100%;height:100%;object-fit:contain;pointer-events:none}
.journal-craft-lettering{position:absolute;left:20%;right:20%;bottom:9%;text-align:center;font:clamp(11px,10cqw,30px)/1.2 'Journal Brush','KaiTi',serif;letter-spacing:.3em;color:#795b43;transform:rotate(-5deg);pointer-events:none}
.journal-craft-module:is([data-craft-type=waterfall],[data-craft-type=explosion],[data-craft-type=petal]) .journal-craft-lettering{display:none}
.journal-craft-module[data-craft-type=pocket] .journal-craft-lettering{left:6%;right:auto;bottom:9%;font-size:clamp(10px,8cqw,22px);writing-mode:vertical-rl}
.journal-craft-module[data-craft-type=accordion] .journal-craft-lettering{bottom:15%;left:29%;right:29%}
.journal-craft-module[data-craft-type=bridge] .journal-craft-lettering{bottom:18%;left:30%;right:30%}
.journal-craft-module[data-open=true] .journal-craft-lettering{visibility:hidden}
.journal-craft-module[data-craft-type=gate] .journal-module-flap{border-radius:35% 0 0 3px}
.journal-craft-module[data-craft-type=gate] .journal-module-flap:nth-child(2){border-radius:0 35% 3px 0}
.journal-craft-module[data-craft-type=flap] .journal-module-flap{clip-path:polygon(0 0,91% 0,100% 11%,100% 100%,0 100%)}
.journal-craft-module[data-craft-type=slider] .journal-module-flap{border-radius:9px;background:linear-gradient(0deg,#d8bea0 0 20%,#eee1c7 20% 78%,#cfb395 78%)}
.journal-sheet .journal-paper-pocket>summary{background-image:url('/assets/journal-art/osmanthus-corner-v1.png');background-repeat:no-repeat;background-size:auto 42px;background-position:70% 50%}
.journal-fold-icon{border-style:dotted;background-color:#faf0d7;box-shadow:0 0 0 2px #fffaf0,1px 3px 0 #b59a6922}
.journal-craft-module[data-craft-type=waterfall] .journal-craft-seal{left:39%;top:88%;width:22%;height:24%}
.journal-craft-module[data-craft-type=explosion] .journal-craft-seal{left:36%;top:34%;width:28%;height:32%}
.journal-craft-module[data-craft-type=pocket] .journal-craft-seal{top:55%;height:40%;width:40%;left:30%}
.journal-craft-module[data-craft-type=wheel] .journal-craft-seal{left:24%;top:24%;width:52%;height:52%}
.journal-craft-module[data-craft-type=slider] .journal-craft-seal{left:9%;top:25%;width:58%;height:50%}
.journal-craft-module[data-open=true] .journal-craft-seal{visibility:hidden}

/* Stable folded/open states: no perspective squeeze, morphing photos or
   simulated 3D supports. The unfolded cut-paper silhouette owns its photo slots. */
.journal-craft-module[data-open=false] .journal-module-inner{visibility:hidden}
.journal-craft-module:is([data-craft-type=gate],[data-craft-type=flap],[data-craft-type=petal],[data-craft-type=cross])[data-open=true] .journal-module-covers{visibility:hidden;opacity:0}
.journal-craft-module:is([data-craft-type=gate],[data-craft-type=flap],[data-craft-type=petal],[data-craft-type=cross]) .journal-module-flap{transform:none!important}
.journal-craft-module[data-craft-type=petal] .journal-module-flap{transform:rotate(calc(var(--flap)*90deg)) translateY(-38%)!important}
.journal-craft-module:is([data-craft-type=accordion],[data-craft-type=bridge]) .journal-module-inner{transform:none!important;transition:none}
.journal-craft-module:is([data-craft-type=accordion],[data-craft-type=bridge]) .journal-module-plate{transform:none!important;transition:opacity .18s ease}
.journal-craft-module[data-craft-type=accordion] .journal-module-plate,.journal-craft-module[data-craft-type=accordion][data-open=true] .journal-module-plate{left:calc(6% + var(--plate)*22%);top:10%;width:22%;height:80%;background:#fffaf0;border:1px solid #b7a386;border-right-style:dashed;box-shadow:inset -3px 0 0 #b39b6820}
.journal-craft-module[data-craft-type=accordion] .journal-module-plate:nth-child(even){background:#f1e7d5;box-shadow:inset 3px 0 0 #b39b6820}
.journal-craft-module[data-craft-type=accordion] .journal-module-flap{inset:10% 25%;background:repeating-linear-gradient(90deg,#ead5ad 0 24%,#c1ab89 24% 25%,#f5e5c4 25% 49%,#c1ab89 49% 50%);border-radius:3px}
.journal-craft-module[data-craft-type=bridge] .journal-module-frame{background:transparent;border-color:transparent}
.journal-craft-module[data-craft-type=bridge] .journal-module-inner{inset:3%;background:linear-gradient(90deg,#f8e8c8 0 49.6%,#bc9164 49.6% 50.4%,#f2dfbe 50.4%);clip-path:polygon(0 26%,25% 0,50% 26%,75% 0,100% 26%,100% 100%,0 100%)}
.journal-craft-module[data-craft-type=bridge] .journal-module-inner:before{content:'';position:absolute;inset:0;background:linear-gradient(153deg,transparent 0 22%,#658278 22% 25%,transparent 25%) 0 0/50% 32% repeat-x;pointer-events:none}
.journal-craft-module[data-craft-type=bridge] .journal-module-plate,.journal-craft-module[data-craft-type=bridge][data-open=true] .journal-module-plate{left:calc(6% + var(--plate)*23%);top:37%;width:19%;height:53%;padding:3px;border:2px solid #8e9c87;border-radius:45% 45% 2px 2px;background:#fffaf0;overflow:hidden;box-shadow:0 3px 0 #aa886433}
.journal-craft-module[data-craft-type=bridge] .journal-module-plate:after{display:none}
.journal-craft-module[data-craft-type=bridge] .journal-module-flap{inset:12% 27%;background:linear-gradient(90deg,#efdfbe 49%,#b99c78 49% 51%,#f8ebd2 51%);clip-path:polygon(0 23%,50% 0,100% 23%,100% 100%,0 100%)}
.journal-craft-module[data-craft-type=bridge] .journal-craft-seal{left:32%;top:32%;width:36%;height:42%}
.journal-craft-module[data-craft-type=explosion] .journal-module-plate{transition:opacity .18s ease}
.journal-craft-module[data-craft-type=waterfall][data-open=true] .journal-module-plate[data-turned=true]{transform:translateY(-4%)!important;opacity:0;visibility:hidden}
.journal-craft-module[data-craft-type=pocket][data-open=true] .journal-module-plate{transform:translateY(-22%)}
.journal-pop-up[data-mechanism=gate] .journal-gate-wings{display:none}
.journal-pop-up .journal-paper-scene,.journal-pop-up .journal-photo-open,.journal-concertina-strip,.journal-waterfall-card .journal-mechanism-card{perspective:none!important;transform:none!important;animation:none!important}
.journal-pop-up[data-mechanism=gate] .journal-gate-cover{background:#ecd6ac}
.journal-pop-up[data-mechanism=gate] .journal-gate-cover>span{font-family:'Journal Brush','KaiTi',serif;font-weight:400;background-image:url('/assets/journal-art/osmanthus-corner-v1.png'),linear-gradient(90deg,#f3e6c9,#fff7e6);background-size:80% auto,auto;background-position:50% 85%;background-repeat:no-repeat;font-size:28px}
@media(prefers-reduced-motion:reduce){.journal-module-inner,.journal-module-covers,.journal-module-plate{transition:none!important}}

/* Actual paper-cut handles own the hit silhouette, rather than an icon sitting
   inside a generic rectangular/circular button. The same control is used in
   the editor, reader and demo; only its attachment point varies by mechanism. */
.journal-module-action[hidden]{display:none!important}
.journal-craft-module{padding-top:3px;--trigger-paper:#f0bfbb;--trigger-edge:#a77769;--trigger-ink:#624e3c}
.journal-sheet[data-template=collage] .journal-craft-module{--trigger-paper:#e1ba6e;--trigger-edge:#9a753d;--trigger-ink:#594630}
.journal-sheet[data-template=bloom] .journal-craft-module{--trigger-paper:#e6b8c3;--trigger-edge:#ab7e86;--trigger-ink:#764e59}
.journal-sheet[data-template=postbox] .journal-craft-module{--trigger-paper:#a7c2bd;--trigger-edge:#638b83;--trigger-ink:#365951}
.journal-surface .journal-craft-module .journal-paper-trigger{position:absolute;left:calc(50% - 22px);right:auto;top:auto;bottom:-25px;width:44px;height:44px;min-height:0;margin:0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;filter:drop-shadow(1px 2px 0 #856d4b44);cursor:pointer;overflow:visible;z-index:80;touch-action:manipulation}
.journal-paper-trigger svg{display:block;width:100%;height:100%;pointer-events:none}
.journal-dialog[data-mode=read] .journal-paper-trigger text{display:none}
.journal-stage{scroll-margin-top:88px}
.journal-surface .journal-paper-trigger:focus-visible{filter:drop-shadow(0 0 3px #126e59);outline:0}
.journal-surface .journal-craft-module[data-craft-type=wheel] .journal-paper-trigger{left:auto;right:-17px;top:calc(50% - 22px);bottom:auto}
.journal-surface .journal-craft-module[data-craft-type=pocket] .journal-paper-trigger{left:calc(50% - 22px);right:auto;top:calc(12% - 22px);bottom:auto}
.journal-surface .journal-craft-module[data-craft-type=slider] .journal-paper-trigger{left:calc(88% - 22px);right:auto;top:calc(50% - 22px);bottom:auto}
/* The card and its paper-cut handle share one displacement, in frame units.
   This stays attached at every aspect ratio/zoom, in editor, reader and demo. */
.journal-craft-module:is([data-craft-type=pocket],[data-craft-type=slider]) .journal-module-frame{--pull-x:0cqw;--pull-y:0cqh}
.journal-craft-module[data-craft-type=pocket][data-open=true] .journal-module-frame{--pull-y:-16.72cqh}
.journal-craft-module[data-craft-type=slider][data-open=true] .journal-module-frame{--pull-x:24.32cqw}
.journal-craft-module:is([data-craft-type=pocket],[data-craft-type=slider]) :is(.journal-module-inner,.journal-paper-trigger){transform:translate(var(--pull-x),var(--pull-y));transition:transform .5s ease}
.journal-craft-module:is([data-craft-type=pocket],[data-craft-type=slider]) .journal-module-plate{transform:none!important}
.journal-craft-module:is([data-craft-type=pocket],[data-craft-type=slider])[data-open=false] .journal-module-inner{visibility:visible}
.journal-craft-module:is([data-craft-type=pocket],[data-craft-type=slider])[data-open=false] .journal-module-photo-slot{visibility:hidden;pointer-events:none}
.journal-craft-module[data-craft-type=slider][data-open=true] .journal-module-inner{z-index:6}
@media(prefers-reduced-motion:reduce){.journal-paper-trigger{transition:none!important}}
.journal-module-frame{margin-top:5px;margin-bottom:29px}
.journal-module-flap{background-image:repeating-linear-gradient(0deg,transparent 0 17px,#fff9eb44 17px 18px),repeating-linear-gradient(90deg,transparent 0 23px,#94795013 23px 24px);background-color:var(--module-pink)}
.journal-craft-module[data-craft-type=waterfall] .journal-module-flap{inset:10% 12% 10%;height:auto;box-shadow:3px 4px 0 #fff6df,5px 7px 0 #b79b75,7px 10px 0 #fff6df;border-radius:3px}
.journal-craft-module[data-craft-type=waterfall] .journal-paper-trigger{bottom:-22px}
.journal-module-photo-slot>.journal-photo-open,.journal-module-photo-slot>.journal-canvas-element>.journal-photo-open{position:absolute;inset:0;width:100%;height:100%;box-sizing:border-box;margin:0;padding:0;display:block;overflow:hidden}
.journal-module-photo-slot .journal-photo-open img{position:absolute;left:50%;top:50%;translate:-50% -50%;display:block;width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain;aspect-ratio:auto;transform:none}
.journal-demo-instructions{margin:8px 34px 15px 0;color:#587369;font:13px/1.7 system-ui}
.journal-art-cell{display:block;overflow:hidden;pointer-events:none}
.journal-asset-preview>.journal-art-cell{width:100%;height:100%}
.journal-craft-library .journal-craft-mini{border:0;background:none;--trigger-paper:#e8c3aa;--trigger-edge:#a67c67;--trigger-ink:#725441}
.journal-craft-mini svg{display:block;width:60px;height:60px;filter:drop-shadow(1px 2px 0 #aa896a33)}
.journal-sheet[data-template=collage] .journal-paper-lettering{color:#e7c581}
.journal-sheet[data-template=bloom] .journal-design-stamp{border-style:solid;outline-style:dotted}
.journal-sheet[data-template=postbox] .journal-design-stamp{border-radius:5px;transform:rotate(8deg)}

/* Library cards preview the real unfolded model, not its handle. */
.journal-craft-library .journal-craft-mini{position:relative;display:block;height:92px;overflow:hidden;border:1px dashed #c8b998;background:#f3eddf}
.journal-craft-mini>.journal-craft-module{position:absolute;left:50%;top:50%;width:200px;transform:translate(-50%,-50%) scale(.32);pointer-events:none}
.journal-craft-mini .journal-module-frame{width:180px;height:112px;aspect-ratio:auto;margin:12px auto 18px}
.journal-craft-mini *{pointer-events:none!important}
.journal-craft-add[aria-pressed=true]{outline:2px solid #17796b;outline-offset:1px}
.journal-craft-card-actions{display:flex;gap:6px}
.journal-surface .journal-craft-card-actions button{flex:1;padding:7px 8px;font:600 12px/1.5 system-ui}

/* Text is a paper element, not a nested scrolling viewport. The shared layout
   expands it into free space and creates related continuation cards as needed. */
.journal-flow-measure{position:absolute;left:0;top:0;visibility:hidden;pointer-events:none;height:auto}
.journal-sheet{-webkit-text-size-adjust:none;text-size-adjust:none}
.journal-designed-page .journal-flow-content,.journal-designed-page .journal-sheet-heading h3{max-height:none!important;height:auto;overflow:visible!important;overflow-wrap:anywhere}
.journal-designed-page .journal-flow-content{display:flow-root;box-sizing:border-box;width:100%;margin:0!important;padding:0!important}
.journal-fact-columns[data-columns='2']{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.journal-fact-card{min-width:0;white-space:pre-wrap}
.journal-designed-page .journal-flow-content[data-text-role=title]{font:400 28px/1.4 var(--journal-heading-font);color:var(--design-ink);letter-spacing:1px}
.journal-designed-page .journal-flow-slot{padding:4px 6px!important;border:0!important;outline:1px dashed color-mix(in srgb,var(--design-accent) 55%,transparent);outline-offset:-1px}
.journal-designed-page .journal-flow-slot>.journal-canvas-element{box-sizing:border-box;height:auto!important;min-height:0;margin:0!important;padding:0!important}
.journal-designed-page .journal-flow-slot[data-flow-type=facts]{border:1px dashed color-mix(in srgb,var(--design-accent) 55%,transparent);border-radius:3px;background:color-mix(in srgb,var(--design-pale) 8%,transparent)}
.journal-designed-page .journal-flow-content[data-text-role=facts][style*="font-size"] :is(p,li,h4){font-size:inherit}
.journal-designed-page .journal-module-caption{max-height:none;overflow:visible}

/* A mounted photo follows its physical leaf, not an old independent offset. */
.journal-module-photo-slot>.journal-canvas-element{padding:0;translate:none}

/* Keep unfolded paper visible and flat rather than hiding it or squeezing it
   with perspective. Stack/wheel/fan/box covers still intentionally disappear. */
.journal-craft-module:is([data-craft-type=gate],[data-craft-type=flap],[data-craft-type=petal],[data-craft-type=cross])[data-open=true] .journal-module-covers{visibility:visible;opacity:1;pointer-events:none}
.journal-craft-module:is([data-craft-type=gate],[data-craft-type=flap],[data-craft-type=petal],[data-craft-type=cross])[data-open=true] .journal-module-flap{opacity:.55;pointer-events:none}
.journal-craft-module[data-craft-type=gate][data-open=true] .journal-module-flap:first-child{transform:translateX(-100%)!important}
.journal-craft-module[data-craft-type=gate][data-open=true] .journal-module-flap:nth-child(2){transform:translateX(100%)!important}
.journal-craft-module[data-craft-type=flap][data-open=true] .journal-module-flap{transform:translateY(-100%)!important}
.journal-craft-module[data-craft-type=petal][data-open=true] .journal-module-flap{transform:rotate(calc(var(--flap)*90deg)) translateY(-105%)!important}
.journal-craft-module[data-craft-type=cross][data-open=true] .journal-module-flap:nth-child(1){transform:translateX(-100%)!important}
.journal-craft-module[data-craft-type=cross][data-open=true] .journal-module-flap:nth-child(2){transform:translateY(-100%)!important}
.journal-craft-module[data-craft-type=cross][data-open=true] .journal-module-flap:nth-child(3){transform:translateY(100%)!important}
.journal-craft-module[data-craft-type=cross][data-open=true] .journal-module-flap:nth-child(4){transform:translateX(100%)!important}

/* One heading spans a route group; columns continue its list without repeating
   the title. Facts use the same handwritten family as the page's other notes. */
.journal-sheet .journal-facts{font-family:var(--journal-note-font);font-size:14px;line-height:1.7}
.journal-designed-page .journal-facts :is(p,li,h4){font-family:inherit;font-size:inherit}
.journal-designed-page .journal-facts h4{font-weight:600;line-height:1.5;margin:0 0 8px}
.journal-fact-group{min-width:0}.journal-fact-group+.journal-fact-group{margin-top:12px}
.journal-sheet [data-journal-font=brush]{font-family:'Journal Brush','KaiTi',serif!important}
.journal-sheet [data-journal-font=hand]{font-family:'Journal Hand','KaiTi',serif!important}
.journal-sheet [data-journal-font=song]{font-family:'SimSun','Songti SC',serif!important}
.journal-sheet [data-journal-font=kai]{font-family:'KaiTi','STKaiti',serif!important}
.journal-sheet [data-journal-font=sans]{font-family:system-ui,'Microsoft YaHei',sans-serif!important}
.journal-sheet .journal-facts[data-journal-font] :is(p,li,h4){font-family:inherit!important}
.journal-sheet [data-text-align=left]{text-align:left!important}
.journal-sheet [data-text-align=center]{text-align:center!important}
.journal-sheet [data-text-align=right]{text-align:right!important}
.journal-sheet .journal-facts[data-text-align] :is(p,li,h4){text-align:inherit!important}
/* The title's compact frame is the selection boundary. Its original design
   allocation remains invisible and is used to position aligned headings. */
.journal-designed-page .journal-flow-slot[data-flow-type=title]{outline:0!important}
.journal-designed-page .journal-flow-slot[data-flow-type=title]>.journal-canvas-element{outline:1px dashed var(--design-accent)}
.journal-flow-slot>.journal-canvas-element>.journal-element-move{top:-12px;left:-12px}
.journal-flow-slot>.journal-canvas-element>.journal-element-remove{top:-12px;right:-12px}

/* Route order is down the left list, through the gutter, then down the right.
   Geometry is shared; templates supply only paper/ink decoration styles. */
.journal-fact-columns[data-route-flow=true]{position:relative;--route-arrow-ink:#bb8b47}
.journal-fact-columns[data-route-flow=true][data-columns='2']{gap:28px}
.journal-route-stops>li{position:relative}
.journal-designed-page .journal-route-stops>li:not(:last-child){margin-bottom:7px}
.journal-route-arrow{display:block;overflow:visible;pointer-events:none;user-select:none;fill:none;stroke:var(--route-arrow-ink);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.journal-route-step-arrow{position:absolute;left:calc(50% - 6px);bottom:-11px;width:12px;height:12px}
.journal-route-transfer{position:absolute;inset:0;width:100%;height:100%}
.journal-route-transfer path{vector-effect:non-scaling-stroke;stroke-width:1.4}
.journal-route-arrow-petal,.journal-route-arrow-ticket{display:none}
.journal-sheet[data-template=collage] .journal-fact-columns{--route-arrow-ink:#e7c581}
.journal-sheet[data-template=collage] .journal-route-arrow-line{stroke-dasharray:3 3}
.journal-sheet[data-template=bloom] .journal-fact-columns{--route-arrow-ink:#ae7586}
.journal-sheet[data-template=bloom] .journal-route-arrow-petal{display:block;fill:#e4b8bd77;stroke-width:.9}
.journal-sheet[data-template=postbox] .journal-fact-columns{--route-arrow-ink:#658d86}
.journal-sheet[data-template=postbox] .journal-route-arrow-line{stroke-dasharray:5 2 1 2}
.journal-sheet[data-template=postbox] .journal-route-arrow-ticket{display:block;stroke-width:.7;fill:#f5e4c566}

/* The rectangular frame is a layout/hit-test anchor, not a sheet of paper.
   Physical leaves, covers, the wheel disc and the bridge silhouette keep their
   own paper fills; the shared anchor must never paint a white backing tile. */
.journal-craft-module .journal-module-frame{background:none!important;border-color:transparent!important;box-shadow:none}
.journal-module-slot .journal-canvas-element[data-canvas-type=customMechanism]{background:transparent}

/* Theme-specific printed stock, not a uniform flat slide background. Subtle
   repeat patterns stay behind all movable text, photos and physical leaves. */
.journal-sheet.journal-designed-page[data-template=collage]{background-color:#263f3c;background-image:radial-gradient(ellipse at 8% 4%,#cadca315,transparent 40%),radial-gradient(ellipse at 85% 85%,#dfbc6c15,transparent 45%),repeating-linear-gradient(115deg,#ffffff03 0 1px,transparent 1px 5px),radial-gradient(#d8d8b51c .65px,transparent .9px);background-size:auto,auto,7px 7px,9px 9px}
.journal-sheet.journal-designed-page[data-template=bloom]{background-color:#fff4eb;background-image:radial-gradient(ellipse at 0 10%,#dea5b84a,transparent 38%),radial-gradient(ellipse at 100% 98%,#b4c5ac44,transparent 40%),repeating-linear-gradient(0deg,transparent 0 29px,#b7968620 29px 30px),radial-gradient(#c6919b22 .7px,transparent 1px);background-size:auto,auto,100% 30px,8px 8px}
.journal-sheet.journal-designed-page[data-template=postbox]{background-color:#f6ead4;background-image:linear-gradient(105deg,#a979381a,transparent 35%,#fff8e744),repeating-linear-gradient(0deg,transparent 0 22px,#987f5e18 22px 23px),repeating-linear-gradient(90deg,transparent 0 22px,#987f5e18 22px 23px),radial-gradient(#957f5b22 .6px,transparent .9px);background-size:auto,23px 23px,23px 23px,6px 6px}
.journal-sheet.journal-designed-page[data-background=sage]{background-color:#e1e9d9}
.journal-sheet.journal-designed-page[data-background=sunset]{background-color:#f1d9bd}
.journal-template-switch{width:min(620px,calc(100vw - 24px));max-height:88dvh;padding:0}
.journal-template-switch .navigation-dialog-scroll{padding:24px;overflow:auto;min-height:0}
.journal-template-switch h2{padding-right:32px;font-size:22px}
.journal-template-switch p{line-height:1.8;overflow-wrap:anywhere}
.journal-template-switch .navigation-dialog-actions{flex-shrink:0;justify-content:flex-end;padding:14px 20px}
.journal-designed-page .journal-design-stamp{display:block;width:72px;height:72px;padding:0;border:0!important;outline:0!important;border-radius:0;overflow:visible;fill:currentColor;font-family:'Journal Brush','KaiTi',serif;letter-spacing:normal;opacity:.8;white-space:nowrap}
.journal-design-art svg.journal-design-stamp{display:block}
.journal-design-art[data-ornament=postage] .journal-design-stamp{width:76px;height:76px;border:0}
.journal-stamp-ring{font-family:'Journal Brush','KaiTi',serif;white-space:nowrap}
.journal-paper-lettering.journal-curved-lettering{width:220px;height:72px;overflow:visible;fill:currentColor;font:20px 'Journal Hand','KaiTi',serif;letter-spacing:3px;bottom:3%;transform:rotate(-6deg)}
.journal-designed-page .journal-flow-content[data-text-role=title]{text-shadow:1px 1px 0 color-mix(in srgb,var(--design-accent) 30%,transparent);text-decoration-line:underline;text-decoration-color:color-mix(in srgb,var(--design-accent) 45%,transparent);text-decoration-thickness:4px;text-underline-offset:7px;text-decoration-skip-ink:auto}
@supports(background-clip:text){.journal-sheet[data-template=collage] .journal-flow-content[data-text-role=title]{background:linear-gradient(115deg,#fff2bd,#dca75b 45%,#fff0bc 75%);background-clip:text;color:transparent;text-shadow:none}.journal-sheet[data-template=bloom] .journal-flow-content[data-text-role=title]{background:linear-gradient(110deg,#865064,#c28191 60%,#72654f);background-clip:text;color:transparent;text-shadow:none}}
.journal-sheet[data-template=postbox] .journal-flow-content[data-text-role=title]{text-shadow:1px 1px 0 #f9edd2,2px 2px 0 #a37c5055;letter-spacing:2px;text-decoration-style:dashed;text-decoration-thickness:2px}
.journal-designed-page .journal-design-art:after{content:'';position:absolute;inset:2.7%;border:1px dashed currentColor;border-radius:12px;opacity:.15;pointer-events:none}
.journal-sheet[data-template=bloom] .journal-design-art:after{border-style:double;border-width:3px;border-radius:40% 4% 40% 4% / 6% 40% 6% 40%;opacity:.12}
.journal-sheet[data-template=postbox] .journal-design-art:after{border-radius:0;border-style:dotted;border-width:2px;inset:2%}

/* Retain the black-card chalk/gold family; the other books are different
   printed objects, not recolours of the same dotted notebook. */
.journal-sheet.journal-designed-page[data-template=bloom]{background-color:#fffaf4;background-image:radial-gradient(ellipse at 0 0,#cf9ba447,transparent 38%),radial-gradient(ellipse at 100% 100%,#b5c9aa55,transparent 44%),repeating-linear-gradient(112deg,#947b6210 0 .5px,transparent .5px 7px);background-size:auto,auto,13px 17px}
.journal-sheet[data-template=bloom] .journal-design-thread{opacity:.18;background:none;border:0}
.journal-sheet[data-template=bloom] .journal-design-star,.journal-sheet[data-template=bloom] .journal-design-index{display:none}
.journal-sheet[data-template=bloom] .journal-design-art:after{inset:4%;border:1px solid #b9c5a4;border-radius:42% 8% 40% 10% / 7% 34% 8% 40%;opacity:.3}
.journal-sheet[data-template=bloom] .journal-flow-content[data-text-role=title]{background:none;color:#9a6876;text-shadow:1px 1px #fff;text-decoration:none;font-family:'Journal Hand','KaiTi',serif;font-style:italic}
.journal-sheet[data-template=bloom] .journal-design-photo-tray{border:1px solid #d1bcaa;background:#fffdf9;box-shadow:2px 3px 8px #79694d18;border-radius:2px 2px 18px 2px;transform:rotate(-5deg)}
.journal-sheet.journal-designed-page[data-template=postbox]{background-color:#f0e4cd;background-image:linear-gradient(90deg,#b65f4c 0 9px,#eadfc9 9px 18px,#5e8179 18px 27px,#eadfc9 27px 36px),linear-gradient(105deg,#ac834a18,transparent 42%,#fff9eb70),repeating-linear-gradient(0deg,transparent 0 3px,#8e755910 3px 4px);background-size:36px 7px,auto,100% 5px;background-position:0 0,0 0,0 0;background-repeat:repeat-x,no-repeat,repeat}
.journal-sheet[data-template=postbox] .journal-design-art:after{inset:2% 3%;border:1px solid #9d8c70;border-radius:0;opacity:.28}
.journal-sheet[data-template=postbox] .journal-design-star{display:none}
.journal-sheet[data-template=postbox] .journal-design-thread{opacity:.18;border-radius:0}
.journal-sheet[data-template=postbox] .journal-flow-content[data-text-role=title]{font-family:'SimSun','Songti SC',serif;font-weight:700;letter-spacing:4px;text-decoration:none;text-shadow:1px 1px #b58a4b33}
.journal-sheet[data-template=postbox] .journal-design-photo-tray{transform:rotate(1deg);border:1px solid #b4a183;outline:2px dashed #faf2e0;outline-offset:2px;box-shadow:3px 3px 0 #7c6b4b22;border-radius:0}
.journal-sheet[data-template=bloom] .journal-design-stamp,.journal-sheet[data-template=postbox] .journal-design-stamp{transform:rotate(-5deg);opacity:.9}

/* A cumulative four-quadrant wheel. New cards enter at upper left; carrier
   and counter-rotation share timing so existing pictures orbit CCW upright. */
.journal-craft-module[data-craft-type=wheel] .journal-module-inner{transform:none!important;overflow:visible;background:none;box-shadow:none}
.journal-wheel-dial{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.journal-wheel-orbit{position:absolute;inset:0;pointer-events:none;transform:rotate(var(--wheel-turn,0deg));transition:transform .72s cubic-bezier(.22,.7,.3,1)}
.journal-craft-module[data-craft-type=wheel] .journal-module-plate,.journal-craft-module[data-craft-type=wheel] .journal-module-plate:nth-child(n){left:8%;top:8%;width:40%;height:40%;padding:2px;border:1px solid #b4a181;border-radius:3px;box-shadow:1px 2px 0 #6b5b4422;transform:rotate(calc(-1 * var(--wheel-turn,0deg)));outline:0;background:#fffaf0;transition:transform .72s cubic-bezier(.22,.7,.3,1)}
.journal-craft-module[data-craft-type=wheel] .journal-module-plate[data-revealed=false]{visibility:hidden;opacity:0;pointer-events:none}
.journal-craft-module[data-craft-type=wheel] .journal-module-plate[data-revealed=true]{visibility:visible;opacity:1;pointer-events:auto}
.journal-craft-module[data-craft-type=wheel][data-open=true] .journal-module-plate[data-active=true] .journal-module-photo-slot{animation:journal-wheel-pop .55s ease-out both}
.journal-craft-module[data-craft-type=wheel][data-open=false] .journal-module-plate{visibility:hidden;opacity:0;animation:none}
.journal-craft-module[data-craft-type=wheel] .journal-module-covers{z-index:5}
.journal-page-thumb .journal-wheel-orbit,.journal-craft-mini .journal-wheel-orbit{transition:none}
.journal-page-thumb .journal-craft-module[data-craft-type=wheel] .journal-module-photo-slot,.journal-craft-mini .journal-craft-module[data-craft-type=wheel] .journal-module-photo-slot,.is-measuring .journal-craft-module[data-craft-type=wheel] .journal-module-photo-slot{animation:none!important}
@keyframes journal-wheel-pop{from{transform:scale(.65);opacity:0}to{transform:scale(1);opacity:1}}
@media(prefers-reduced-motion:reduce){.journal-wheel-orbit{transition:none}.journal-craft-module[data-craft-type=wheel] .journal-module-photo-slot{animation:none!important}}
.journal-sheet.journal-designed-page[data-background=sage]{background-color:#e1e9d9}
.journal-sheet.journal-designed-page[data-background=sunset]{background-color:#f1d9bd}

/* Photo mats are movable as a unit, whether empty or filled. The shared move
   handle leaves the upload button and individual photo controls independent. */
.journal-design-slot>[data-canvas-type=photoFrame]{box-sizing:border-box;width:100%;height:100%;margin:0;padding:0!important;overflow:visible;background:none;border-radius:0}
.journal-design-slot>[data-canvas-type=photoFrame]>.journal-element-move{left:-12px;top:-14px;z-index:80}
.journal-design-slot>[data-canvas-type=photoFrame]>.journal-design-photo-tray{width:100%;height:100%}

/* A frame shapes its paper, never the proportions of the photograph. Photo
   controls sit outside the selected photo instead of consuming a narrow slot. */
.journal-surface .journal-design-photo-tray>.journal-canvas-element[data-canvas-type=photo]{padding:0;margin:0;min-height:0}
.journal-surface :is(.journal-design-photo-tray,.journal-module-photo-slot) .journal-photo-open{box-sizing:border-box;min-width:0;min-height:0;aspect-ratio:auto}
.journal-surface :is(.journal-design-photo-tray,.journal-module-photo-slot) .journal-photo-open img{box-sizing:content-box;padding:0;border:0;object-fit:contain;object-position:center;aspect-ratio:auto}
.journal-surface .journal-module-plate{overflow:visible;padding:3px}
.journal-surface .journal-module-photo-slot>.journal-canvas-element[data-canvas-type=photo]{padding:0;overflow:visible}
.journal-surface .journal-design-photo-tray{overflow:visible}
.journal-surface :is(.journal-design-photo-tray,.journal-module-photo-slot) [data-canvas-type=photo]>.journal-element-remove{top:-26px;right:0;visibility:hidden;pointer-events:none}
.journal-surface :is(.journal-design-photo-tray,.journal-module-photo-slot) [data-canvas-type=photo].is-selected>.journal-element-remove,
.journal-surface :is(.journal-design-photo-tray,.journal-module-photo-slot) [data-canvas-type=photo]:focus-within>.journal-element-remove{visibility:visible;pointer-events:auto}
.journal-surface :is(.journal-design-photo-tray,.journal-module-photo-slot) [data-canvas-type=photo].is-selected{z-index:80}
.journal-craft-module[data-craft-type=wheel] .journal-module-plate,.journal-craft-module[data-craft-type=wheel] .journal-module-plate:nth-child(n){left:6%;top:6%;width:44%;height:44%;padding:0}
.journal-craft-module[data-craft-type=cross] .journal-module-plate{left:1%;top:1%;width:49%;height:49%;padding:0;border-width:1px}
.journal-craft-module[data-craft-type=cross] .journal-module-plate:nth-child(even){left:50%}
.journal-craft-module[data-craft-type=cross] .journal-module-plate:nth-child(n+3){top:50%}
.journal-craft-module[data-craft-type=bridge] .journal-module-plate,.journal-craft-module[data-craft-type=bridge][data-open=true] .journal-module-plate{left:calc(2% + var(--plate)*24%);width:22.5%;padding:0;border-width:1px;overflow:visible}
/* Keep the house silhouette on a non-interactive backing, not a clip that
   cuts the photographs and their editor controls at the same time. */
.journal-craft-module[data-craft-type=bridge] .journal-module-inner{clip-path:none;background:none}
.journal-craft-module[data-craft-type=bridge] .journal-module-inner:before{background:linear-gradient(90deg,#f8e8c8 0 49.6%,#bc9164 49.6% 50.4%,#f2dfbe 50.4%);clip-path:polygon(0 26%,25% 0,50% 26%,75% 0,100% 26%,100% 100%,0 100%)}
.journal-craft-module[data-craft-type=cross] .journal-module-frame{min-width:100px;min-height:90px}
.journal-craft-module[data-craft-type=bridge] .journal-module-frame{min-width:200px;min-height:100px}
/* At small CSS zoom, Chromium rounds real borders to device pixels: four
   nested 1px borders can eat most of a small window. Printed edges must not
   participate in photo sizing. */
.journal-craft-module .journal-module-frame{border-width:0}
.journal-craft-module:is([data-craft-type=cross],[data-craft-type=bridge],[data-craft-type=wheel]) .journal-module-plate{border-width:0;box-shadow:inset 0 0 0 1px #b4a181,1px 2px 0 #6b5b4422}
/* Dense user galleries keep their existing bounded scroll area. Rows reserve
   real photo space plus an outside control gutter instead of overflowing paper. */
.journal-design-photo-tray:not([data-count='1'],[data-count='2'],[data-count='3'],[data-count='4']){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:minmax(90px,1fr);gap:30px 8px;padding-top:30px;overflow:auto}

/* Approved reference edition: shared geometry, independent paper identities. */
.journal-designed-page[data-edition=reference-20261021][data-template=collage]{--design-paper:#192b40;--design-ink:#f3e8cb;--design-accent:#e5ba6c;--design-pale:#e3d5b3;--module-pink:#344a62;--module-paper:#d2b986;--craft-ink:#f3e8cb;background-image:radial-gradient(ellipse at 80% 18%,#39577366,transparent 48%),radial-gradient(#e9c98418 .65px,transparent .8px),linear-gradient(90deg,transparent 49.4%,#050d2266 50%,transparent 50.8%);background-size:100% 100%,9px 9px,100% 100%}
.journal-designed-page[data-edition=reference-20261021][data-template=bloom]{--design-paper:#f3f0db;--design-ink:#4b6048;--design-accent:#ac752e;--design-pale:#faf4de;--module-pink:#d3dcc0;--module-paper:#e6d7ac;--craft-ink:#4b6048;background-image:radial-gradient(ellipse at 4% 0,#b6c79255,transparent 45%),radial-gradient(#a799691b .6px,transparent .8px),linear-gradient(90deg,transparent 49.5%,#89765028 50%,transparent 50.8%);background-size:100% 100%,5px 5px,100% 100%}
.journal-designed-page[data-edition=reference-20261021][data-template=postbox]{--design-paper:#eaddbf;--design-ink:#314e58;--design-accent:#a54435;--design-pale:#fff5da;--module-pink:#b45d48;--module-paper:#d4bd8e;--craft-ink:#314e58;background-image:repeating-linear-gradient(0deg,transparent 0 42px,#7c644412 42px 43px),radial-gradient(#8c70451e .7px,transparent .8px),linear-gradient(90deg,transparent 49.4%,#82633b30 50%,transparent 50.8%);background-size:auto,6px 6px,100% 100%}
.journal-designed-page[data-edition=reference-20261021] .journal-design-art:after{border:0;box-shadow:none;background:none}
.journal-designed-page[data-edition=reference-20261021] .journal-design-slot:is([data-design-role^=illustration],[data-design-role=printed-lettering]){pointer-events:none;z-index:0}
.journal-designed-page[data-edition=reference-20261021] .journal-design-slot[data-design-role=text]{border:0;border-radius:0;background:none;padding:0}
.journal-designed-page[data-edition=reference-20261021] .journal-paper-cut{filter:drop-shadow(1px 3px 2px #19160622);opacity:1}
.journal-designed-page[data-edition=reference-20261021] .journal-flow-content[data-text-role=title]{text-decoration:none;line-height:1.28;letter-spacing:1px}
.journal-designed-page[data-edition=reference-20261021][data-template=collage] .journal-flow-content[data-text-role=title]{font-family:'Journal Brush','KaiTi',serif;background:linear-gradient(100deg,#f6dda2,#e6b76b 65%,#fff1c5);background-clip:text;color:transparent;text-shadow:none}
.journal-designed-page[data-edition=reference-20261021][data-template=bloom] .journal-flow-content[data-text-role=title]{font-family:'Journal Hand','KaiTi',serif;font-size:32px;letter-spacing:2px;font-style:normal;background:none;color:#49613d;text-shadow:1px 2px #fff9e8}
.journal-designed-page[data-edition=reference-20261021][data-template=postbox] .journal-flow-content[data-text-role=title]{font-family:'SimSun','Songti SC',serif;font-weight:700;letter-spacing:3px;background:none;color:#a34434;text-shadow:1px 1px #fff2cf,2px 2px #9f77432b}
.journal-designed-page[data-edition=reference-20261021][data-template=bloom] .journal-facts :is(p,li){border-bottom-style:dotted}
.journal-designed-page[data-edition=reference-20261021][data-template=postbox] .journal-facts h4{background:#a5443510;border-left:3px solid #a54435;padding-left:9px}
.journal-edition-lettering{position:absolute;display:grid;place-content:center;color:var(--design-accent);font:22px/1.5 'Journal Hand','KaiTi',serif;letter-spacing:4px}
.journal-edition-lettering[data-lettering-style=vertical]{writing-mode:vertical-rl;text-orientation:upright}
/* Editable cover copy is a sibling of the real button: no nested buttons. */
.journal-craft-module[data-cover-style] .journal-module-covers{display:block;pointer-events:none}
.journal-surface button.journal-cover-surface{position:absolute;inset:0;width:100%;height:100%;min-height:0;border:0;margin:0;padding:0;background:transparent;box-shadow:none;border-radius:0;pointer-events:auto;z-index:1}
.journal-cover-content{position:absolute;inset:8% 10%;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;z-index:2;pointer-events:none;text-align:center;color:var(--design-ink,#654c35)}
.journal-cover-content>.journal-canvas-element{pointer-events:auto;box-sizing:border-box;flex:0 0 auto;max-width:100%;margin:0!important;padding:2px 4px!important;background:transparent!important;min-height:0}
.journal-designed-page .journal-cover-content :is(.journal-module-title,.journal-module-caption){max-height:none;overflow:visible;font-family:'Journal Hand','KaiTi',serif;line-height:1.3!important;text-align:center;color:inherit!important;background:transparent;margin:0!important;padding:0!important;white-space:pre-wrap;overflow-wrap:anywhere}
.journal-designed-page .journal-cover-content .journal-module-title{font-size:19px!important;font-weight:400;letter-spacing:1px}
.journal-designed-page .journal-cover-content .journal-module-caption{font-size:13px!important;max-width:22em}
.journal-cover-content .journal-element-move{left:-17px;top:-17px}.journal-cover-content .journal-element-remove{top:-17px;right:-17px}
.journal-cover-art{display:block;width:100%;height:60%;min-height:0;flex:1 1 0;object-fit:contain;overflow:hidden}
.journal-craft-module[data-open=true] :is(.journal-cover-content,.journal-cover-surface){opacity:0;visibility:hidden;pointer-events:none!important}
.journal-craft-module[data-cover-style] .journal-module-flap{background-image:radial-gradient(#fff9e326 .6px,transparent .8px);background-size:4px 4px}
.journal-craft-module[data-cover-style=window] .journal-cover-content{inset:12% 16%;border-block:1px solid currentColor}
.journal-craft-module[data-cover-style=film] .journal-cover-content{inset:15%;color:#343c40;border-block:4px dotted #48535c}
.journal-craft-module[data-cover-style=ticket] .journal-cover-content{inset:12%;color:#743d2b;border-block:1px dashed #a04b36;letter-spacing:2px}
.journal-craft-module[data-cover-style=mail] .journal-cover-content{color:#843f31;border:1px solid #a6503733;background:#fff4db66;padding:3%}
.journal-craft-module[data-cover-style=herb] .journal-cover-content{color:#4f613d}.journal-craft-module[data-cover-style=herb] .journal-module-flap{background-color:#d4dec1}
.journal-craft-module[data-cover-style=specimen] .journal-cover-content{color:#766137;border-block:1px dotted #917d4c}
.journal-craft-module[data-cover-style=nightbox] .journal-cover-content{color:#ead29d}.journal-craft-module[data-cover-style=nightbox] .journal-module-flap{background-color:#334d62}
.journal-craft-module[data-cover-style=moon] .journal-cover-content{color:#4c4d55}.journal-craft-module[data-cover-style=moon] .journal-module-flap{background:radial-gradient(circle at 35% 30%,#f7e8b6,#d1bd83)}
.journal-craft-module[data-cover-style=landscape] .journal-cover-content{inset:23% 32%;color:#715737}
.journal-craft-module[data-craft-type=pocket][data-cover-style] .journal-cover-content{top:50%;bottom:5%}
.journal-craft-module[data-craft-type=slider][data-cover-style] .journal-cover-content{right:32%}
.journal-craft-module[data-craft-type=bridge][data-cover-style] .journal-cover-content{inset:30% 31% 8%}
.journal-craft-module[data-craft-type=accordion][data-cover-style] .journal-cover-content{inset:14% 28%;gap:2px}
.journal-craft-module:is([data-craft-type=petal],[data-craft-type=explosion])[data-cover-style] .journal-cover-content{inset:28%;gap:2px}
.journal-craft-module:is([data-craft-type=petal],[data-craft-type=explosion])[data-cover-style] .journal-module-caption{font-size:12px!important}
.journal-craft-module:is([data-craft-type=petal],[data-craft-type=explosion])[data-cover-style] .journal-module-title{font-size:16px!important}
/* 07-M3: static circular lettering, an ordinary fan booklet in the center. */
.journal-design-slot:has(.journal-craft-module[data-ring=static]) .journal-craft-module{height:100%;display:grid;place-items:center}
.journal-design-slot:has(.journal-craft-module[data-ring=static]) :is(.journal-module-slot,.journal-element-slot,[data-canvas-type=customMechanism]){height:100%}
.journal-craft-module[data-ring=static] .journal-module-frame{margin:0}
.journal-craft-ring{position:absolute;left:50%;top:50%;width:150%;aspect-ratio:1;translate:-50% -50%;pointer-events:none;z-index:0}
.journal-craft-ring>svg:not(.journal-ring-art){position:absolute;inset:0;width:100%;height:100%;overflow:visible;font:17px 'Journal Hand','KaiTi',serif;fill:var(--design-ink,#4b6048)}
.journal-ring-art{position:absolute;width:83%;height:83%;left:8.5%;top:8.5%;opacity:.72;object-fit:contain}
.journal-craft-module[data-ring=static] .journal-module-inner{z-index:1}
.journal-designed-page[data-edition=reference-20261021][data-template=collage] [data-cover-style=film] .journal-cover-content{color:#f2d9a3;border-color:#d9bd80}
/* Printed cover art needs a real face, not a tiny icon squeezed by a caption. */
.journal-craft-module:has(.journal-cover-art)[data-craft-type=accordion] .journal-module-flap{inset:4% 10%}
.journal-craft-module:has(.journal-cover-art)[data-craft-type=accordion] .journal-cover-content{inset:7% 14%}
.journal-craft-module:has(.journal-cover-art)[data-craft-type=bridge] .journal-module-flap{inset:3% 17%}
.journal-craft-module:has(.journal-cover-art)[data-craft-type=bridge] .journal-cover-content{inset:19% 21% 6%}
.journal-craft-module:has(.journal-cover-art) .journal-cover-art{flex-basis:42%;height:42%;min-height:42%}
.journal-craft-module:has(.journal-cover-art) .journal-cover-content .journal-module-title{font-size:17px!important}
.journal-craft-module:has(.journal-cover-art) .journal-cover-content .journal-module-caption{font-size:12px!important}
.journal-surface[data-mode=read] .journal-designed-page[data-edition=reference-20261021] .journal-flow-slot{outline:0!important;border:0!important}

/* Titles stay on one line; the shared fitter reduces only rendered size,
   never edits the stored wording or the user's chosen font. */
.journal-designed-page :is(.journal-module-title,[data-text-role=title]){white-space:nowrap;overflow-wrap:normal;text-overflow:ellipsis;overflow:hidden!important}
.journal-designed-page :is(.journal-module-title,[data-text-role=title])[style*="--journal-title-fit"]{font-size:var(--journal-title-fit)!important}
.journal-designed-page :is(.journal-route-card,.journal-timeline-card){padding:4px 6px!important}
.journal-designed-page .journal-route-card .journal-flow-content{max-height:none;overflow:visible}
.journal-designed-page[data-edition=reference-20261021][data-template=collage] [data-cover-style=film] .journal-module-flap{background:#273c55;border-color:#ad956b}
.journal-designed-page[data-edition=reference-20261021][data-template=collage] [data-cover-style=film] .journal-cover-content{color:#ffebbd;border-color:#dcc38d}
/* The four unused corners sit outside the five real explosion panels.
   Decoration is static and never intercepts a photograph or trigger. */
.journal-explosion-corners{position:absolute;inset:0;z-index:0;pointer-events:none;color:var(--design-accent,#997647)}
.journal-explosion-corner{position:absolute;width:28%;height:28%;display:grid;place-items:center;box-sizing:border-box;font:22px/1.2 'Journal Hand','KaiTi',serif;letter-spacing:3px;opacity:.86}
.journal-explosion-corner[data-corner=nw]{left:1%;top:1%;rotate:-8deg}
.journal-explosion-corner[data-corner=ne]{right:1%;top:1%;rotate:7deg}
.journal-explosion-corner[data-corner=sw]{left:1%;bottom:1%;rotate:5deg}
.journal-explosion-corner[data-corner=se]{right:1%;bottom:1%;rotate:-5deg}
.journal-corner-art{width:100%;height:100%;object-fit:contain}
.journal-designed-page [data-fact-card=timeline] p{line-height:1.6;margin:0 0 5px;padding:3px 4px}
