.gfb{--gfb-accent:#187543;--gfb-bg:#edf2ee;--gfb-height:700px;box-sizing:border-box;width:100%;max-width:1600px;margin:24px auto;border:1px solid #d8e2db;border-radius:16px;overflow:hidden;background:var(--gfb-bg);color:#20352a;font:14px/1.4 system-ui,-apple-system,sans-serif;isolation:isolate;box-shadow:0 12px 38px #0d322612}.gfb *{box-sizing:border-box}.gfb [hidden]{display:none!important}.gfb-header{display:flex;align-items:center;gap:22px;padding:20px 24px;background:#fff;border-bottom:1px solid #e3ebe6}.gfb-brand{flex-shrink:0}.gfb-brand img{display:block;max-width:155px;max-height:48px;object-fit:contain}.gfb-wordmark{font-size:21px;letter-spacing:1px;font-weight:850;color:var(--gfb-accent)}.gfb-wordmark small{display:block;font-size:8px;letter-spacing:2px;font-weight:600}.gfb .gfb-header h2{margin:0;font:600 16px/1.3 system-ui;color:#20352a}.gfb-hint{margin-left:auto;font-size:12px;color:#66796d}.gfb-toolbar{display:flex;gap:6px;align-items:center;flex-wrap:wrap;padding:10px 16px;background:#f9fbfa;border-bottom:1px solid #dfe8e1}.gfb button,.gfb .gfb-toolbar a{font:600 12px/1.3 system-ui;text-transform:none;letter-spacing:0;padding:9px 12px;border:1px solid #d8e2dc;border-radius:7px;background:#fff;color:#244632;text-decoration:none;cursor:pointer;margin:0;box-shadow:none;min-height:36px}.gfb button:hover,.gfb .gfb-toolbar a:hover{background:#e9f3ec;border-color:var(--gfb-accent)}.gfb button:disabled{opacity:.4;cursor:default}.gfb :focus-visible{outline:3px solid var(--gfb-accent);outline-offset:2px}.gfb-zoom{font-size:11px;min-width:40px;text-align:center}.gfb .gfb-share{margin-left:auto}.gfb-body{display:flex;height:var(--gfb-height);min-height:240px;position:relative}.gfb-viewport{flex:1;min-width:0;overflow:auto;position:relative;overscroll-behavior:contain;padding:28px;touch-action:pan-x pan-y}.gfb-book{position:relative;display:flex;margin:auto;perspective:2000px;transform-style:preserve-3d}.gfb-sheet{position:relative;flex:none;background:white;box-shadow:0 5px 20px #14261c30;overflow:hidden}.gfb-sheet canvas{display:block;width:100%;height:100%;object-fit:contain}.gfb-sheet + .gfb-sheet{border-left:1px solid #d1d4d0}.gfb-sheet + .gfb-sheet:after{content:"";position:absolute;inset:0 auto 0 0;width:16px;background:linear-gradient(90deg,#00000012,transparent);pointer-events:none}.gfb-flip{position:absolute;top:0;z-index:4;backface-visibility:hidden;transform-origin:left center;pointer-events:none;box-shadow:0 4px 20px #0003}.gfb-flip.gfb-backward{transform-origin:right center}.gfb-thumbs{width:150px;flex-shrink:0;background:#f7faf8;border-right:1px solid #dbe5de;overflow:auto;padding:12px;overscroll-behavior:contain}.gfb .gfb-thumb{display:block;width:100%;padding:6px;margin:0 0 10px;min-height:95px}.gfb-thumb canvas{display:block;max-width:100%;height:auto;margin:0 auto 4px}.gfb .gfb-thumb[aria-current="page"]{border:2px solid var(--gfb-accent);background:#e7f2ea}.gfb-status{margin:0!important;padding:7px 16px;font-size:12px;min-height:31px;text-align:center;color:#4c6353;background:#f8fbf9}.gfb-footer{display:flex;justify-content:center;align-items:center;gap:22px;padding:12px;background:#fff;border-top:1px solid #dfe7e1}.gfb-footer label{display:flex;align-items:center;gap:7px;font:13px system-ui;margin:0}.gfb .gfb-page-input{width:63px;min-height:36px;padding:6px;border:1px solid #cedbd2;border-radius:6px;color:#20352a;background:white;font:14px system-ui;margin:0}.gfb-footer button{background:var(--gfb-accent);color:white;border-color:transparent}.gfb-footer button:hover{color:#20352a}.gfb:fullscreen,.gfb.gfb-full-fallback{max-width:none;width:100%;height:100%;margin:0;border:0;border-radius:0;display:flex;flex-direction:column}.gfb:fullscreen .gfb-body,.gfb.gfb-full-fallback .gfb-body{height:auto;flex:1;min-height:0}.gfb.gfb-full-fallback{position:fixed;inset:0;z-index:2147483646;height:100dvh;background:var(--gfb-bg)}@media(max-width:700px){.gfb-header{padding:14px;gap:14px}.gfb-wordmark{font-size:17px}.gfb-header h2{font-size:14px!important}.gfb-hint{display:none}.gfb-body{height:min(var(--gfb-height),65vh);min-height:330px}.gfb-viewport{padding:16px}.gfb-toolbar{padding:8px;gap:4px}.gfb button,.gfb .gfb-toolbar a{padding:8px;font-size:11px}.gfb-toolbar button[data-action="full"] span{display:none}.gfb-footer{gap:10px;padding:10px 6px}.gfb-thumbs{width:105px;padding:6px}.gfb-brand img{max-width:105px;max-height:40px}}@media(prefers-reduced-motion:reduce){.gfb *{scroll-behavior:auto!important}}
.gfb-hotspot-layer{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);pointer-events:none}.gfb .gfb-hotspot{position:absolute;display:block;pointer-events:auto;background:transparent;border:1px solid transparent;border-radius:4px;min-height:0;min-width:0;margin:0;padding:0;cursor:pointer;text-decoration:none;box-shadow:none}.gfb .gfb-hotspot:hover,.gfb .gfb-hotspot:focus-visible{background:#18754318;border:2px solid var(--gfb-accent)}.gfb-hotspot-badge{position:absolute;right:2px;top:2px;width:23px;height:23px;border-radius:50%;background:var(--gfb-accent);color:white;display:grid;place-items:center;font:600 12px system-ui;box-shadow:0 1px 5px #0003}.gfb-video-dialog{padding:0;border:0;border-radius:12px;width:min(900px,94vw);max-height:94dvh;max-width:94vw;overflow:auto;background:#fff;color:#20352a;box-shadow:0 20px 80px #0005}.gfb-video-dialog::backdrop{background:#06160ddb}.gfb-video-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;gap:15px}.gfb-video-dialog iframe,.gfb-video-dialog video{display:block;width:100%;aspect-ratio:16/9;border:0;background:black;max-height:70dvh}.gfb-video-dialog p{padding:12px 16px;margin:0;font:13px/1.5 system-ui}.gfb-video-dialog a{color:#187543;text-decoration:underline}
.gfb button[data-action="full"] svg{vertical-align:middle}

/* 1.1: smooth page transition and pointer navigation. */
.gfb-outgoing{position:absolute;display:flex;z-index:5;pointer-events:none;perspective:2200px;transform-style:preserve-3d}
.gfb-outgoing .gfb-sheet{backface-visibility:hidden;will-change:transform,opacity}
.gfb-can-drag .gfb-viewport{touch-action:pan-y pinch-zoom}
.gfb-can-drag .gfb-sheet{cursor:grab;user-select:none;-webkit-user-select:none}
.gfb-dragging .gfb-sheet,.gfb-dragging .gfb-viewport{cursor:grabbing}


/* Continuous paper fold is composited in a lightweight canvas. */
.gfb-paper-fold{position:absolute;inset:0;z-index:8;pointer-events:none;max-width:none!important;max-height:none!important}
.gfb-dragging .gfb-viewport{touch-action:pan-y pinch-zoom;cursor:grabbing}
