html,body,#root{position:fixed;top:0;left:0;width:100%;height:100%;background:#b4a9a1}.loading-overlay{position:fixed;inset:0;z-index:10000;display:flex;align-items:center;justify-content:center;background-color:#b4a9a1;background-image:url(/threejs/my-photo-album/Blur_sceneCap.webp);background-size:cover;background-position:center;opacity:1;transition:opacity .8s ease;pointer-events:none;-webkit-user-select:none;user-select:none}.loading-overlay.is-hidden{opacity:0;pointer-events:none}.loading-title{margin:0;padding:0 8vw;font-family:Caveat,cursive;font-weight:500;font-size:clamp(2rem,5.5vw,4.5rem);line-height:1.15;text-align:center;color:#f6f4f0;visibility:hidden;overflow:visible;font-kerning:none;text-rendering:optimizeSpeed}.loading-title.is-split{visibility:visible}.loading-title .char{display:inline-block;will-change:transform,opacity}.loading-content{display:flex;flex-direction:column;align-items:center;justify-content:center}.loading-landscape-hint{display:none;flex-direction:column;align-items:center;gap:.55rem;margin-top:1.6rem;padding:0 10vw;opacity:0;transition:opacity .55s ease}.loading-landscape-hint.is-visible{opacity:1}.loading-landscape-icon{display:block;width:52px;height:auto;color:#f6f4f0}.loading-landscape-text{margin:0;font-family:Caveat,cursive;font-weight:500;font-size:clamp(1.05rem,4.2vw,1.45rem);line-height:1.3;text-align:center;color:#f6f4f0}@media(max-width:1024px)and (orientation:portrait){.loading-landscape-hint{display:flex}}.loading-status{position:absolute;left:0;right:0;bottom:6vh;margin:0;font-family:Caveat,cursive;font-size:clamp(1.2rem,2.5vw,1.8rem);text-align:center;color:#f6f4f0}.float-hint{pointer-events:none;-webkit-user-select:none;user-select:none;white-space:nowrap;font-family:Caveat,cursive;font-weight:600;font-size:42px;opacity:0;animation:globe-hint-float 2.4s ease-in-out infinite}@keyframes globe-hint-float{0%,to{transform:translateY(0)}50%{transform:translateY(-7px)}}.book-back{position:absolute;top:max(18px,env(safe-area-inset-top));left:max(18px,env(safe-area-inset-left));z-index:20;display:grid;place-items:center;width:32px;height:32px;padding:0;border:none;background:transparent;cursor:pointer;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .45s ease,visibility 0s linear .45s}.book-back.is-visible{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .45s ease,visibility 0s linear 0s}.book-back img{display:block;width:32px;height:32px;transform-origin:center}.book-back:hover img{animation:book-back-hover .7s linear(0,.09 6.5%,.36 19%,.64 31%,.98 44%,.75 54%,.98 66%,.9 72%,.98 80%,.95 84%,1)}@keyframes book-back-hover{0%{transform:scale(1) rotate(0)}45%{transform:scale(1.22) rotate(-12deg)}to{transform:scale(1) rotate(0)}}.book-back:focus-visible,.page-nav:focus-visible{outline:1px solid #2c2c2c;outline-offset:4px}.page-nav{position:absolute;top:0;bottom:0;z-index:20;display:grid;place-items:center;width:48px;height:48px;margin:auto 0;padding:0;border:none;background:transparent;cursor:pointer;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .45s ease,visibility 0s linear .45s}.page-nav.is-visible,.page-nav.is-visible:disabled{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .45s ease,visibility 0s linear 0s}.page-nav-prev{left:max(18px,env(safe-area-inset-left))}.page-nav-next{right:max(18px,env(safe-area-inset-right))}.page-nav-icon{display:grid;place-items:center}.page-nav-prev .page-nav-icon{transform:rotate(180deg)}.page-nav img{display:block;width:32px;height:32px;transform-origin:center;opacity:1;transition:opacity .35s ease}.page-nav.is-disabled{cursor:default}.page-nav.is-disabled img{opacity:.28}.page-nav:not(.is-disabled):hover img{animation:book-back-hover .7s linear(0,.09 6.5%,.36 19%,.64 31%,.98 44%,.75 54%,.98 66%,.9 72%,.98 80%,.95 84%,1)}.overlay-fab{position:absolute;bottom:max(18px,env(safe-area-inset-bottom));z-index:30;display:grid;place-items:center;width:48px;height:48px;padding:0;border:none;border-radius:50%;background:#f6f4f0e6;box-shadow:0 6px 18px #2c2c2c2e;color:#2c2c2c;cursor:pointer;text-decoration:none;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .45s ease,visibility 0s linear .45s,transform .2s ease,box-shadow .2s ease,background .2s ease}.overlay-fab.is-visible{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .45s ease,visibility 0s linear 0s,transform .2s ease,box-shadow .2s ease,background .2s ease}.overlay-fab-credits{left:max(18px,env(safe-area-inset-left))}.overlay-fab-github{right:max(18px,env(safe-area-inset-right))}.overlay-fab-icon{display:block;width:22px;height:22px}.overlay-fab-icon-github{width:24px;height:24px}.overlay-fab:hover,.overlay-fab:focus-visible{background:#f6f4f0;transform:translateY(-2px);box-shadow:0 10px 22px #2c2c2c38}.overlay-fab:focus-visible,.credits-modal-close:focus-visible,.credits-modal-dialog a:focus-visible{outline:1px solid #2c2c2c;outline-offset:4px}.credits-modal{position:fixed;inset:0;z-index:40;display:grid;place-items:center;padding:max(18px,env(safe-area-inset-top)) max(18px,env(safe-area-inset-right)) max(18px,env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left))}.credits-modal-backdrop{position:absolute;inset:0;border:none;padding:0;background:#2c2c2c61;cursor:pointer}.credits-modal-dialog{position:relative;z-index:1;width:min(440px,100%);max-height:min(72vh,640px);overflow:auto;padding:28px 28px 24px;border-radius:22px;background:#f6f4f0;box-shadow:0 18px 48px #2c2c2c47;color:#2c2c2c}.credits-modal-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.credits-modal-title{margin:0;font-family:Caveat,cursive;font-weight:600;font-size:clamp(1.8rem,3vw,2.3rem);line-height:1.1}.credits-modal-close{display:grid;place-items:center;flex-shrink:0;width:36px;height:36px;padding:0;border:none;border-radius:50%;background:transparent;color:#2c2c2c;cursor:pointer}.credits-modal-close svg{width:18px;height:18px}.credits-modal-close:hover{background:#b4a9a147}.credits-modal-intro{margin:0 0 16px;font-family:Caveat,cursive;font-size:1.2rem;line-height:1.35}.credits-modal-intro a,.credits-modal-list a{color:#2c2c2c}.credits-modal-list{margin:0;padding:0;list-style:none}.credits-modal-list li{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:9px 0;border-top:1px solid rgba(44,44,44,.12);font-family:Caveat,cursive;font-size:1.18rem;line-height:1.3}.credits-modal-license{flex-shrink:0;color:#2c2c2c9e;font-size:.95rem}
