:root{--bg: #E8EDE4;--ink: #2e2a2d;--muted: rgba(46, 42, 45, .65);--paper: #f7f2ea;--paper2: #fbf7f0;--shadow: 0 12px 30px rgba(0, 0, 0, .18);--softshadow: 0 8px 18px rgba(0, 0, 0, .12);--radius: 18px;--font: ui-rounded, system-ui, -apple-system, "SF Pro Rounded", "SF Pro Text", Inter, Arial, sans-serif;--shelf-color: #c7a892;--shelf-dark: #b89786;--vignette-color: rgba(45, 42, 40, .12);--blob-color-1: rgba(180, 160, 140, .04);--blob-color-2: rgba(160, 175, 155, .035);--blob-color-3: rgba(170, 155, 140, .03);--dust-color: rgba(255, 252, 245, .03);--string-light-glow: rgba(255, 235, 200, .2)}*{box-sizing:border-box}html,body{height:100%}body{margin:0;font-family:var(--font);color:var(--ink);background:var(--bg);background-image:repeating-linear-gradient(0deg,transparent 0px,transparent 3px,rgba(0,0,0,.012) 3px,rgba(0,0,0,.018) 4px,rgba(0,0,0,.012) 5px,transparent 5px,transparent 8px),repeating-linear-gradient(90deg,transparent 0px,transparent 4px,rgba(0,0,0,.01) 4px,rgba(0,0,0,.016) 5px,rgba(0,0,0,.01) 6px,transparent 6px,transparent 10px),radial-gradient(circle at 20% 35%,rgba(0,0,0,.008) 1px,transparent 1px),radial-gradient(circle at 75% 60%,rgba(0,0,0,.006) 1px,transparent 1px),radial-gradient(circle at 45% 80%,rgba(0,0,0,.007) 1px,transparent 1px);background-size:10px 10px,12px 12px,100px 100px,80px 80px,120px 120px}.app{min-height:100vh;display:flex;flex-direction:column;align-items:center;padding:28px 14px 40px;position:relative;overflow:hidden}.app:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;background:radial-gradient(ellipse 120% 100% at 50% 40%,transparent 0%,transparent 50%,var(--vignette-color) 100%)}.app:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;background:radial-gradient(ellipse 45% 55% at 85% 20%,var(--blob-color-1) 0%,var(--blob-color-1) 40%,transparent 70%),radial-gradient(ellipse 50% 45% at 10% 75%,var(--blob-color-2) 0%,var(--blob-color-2) 35%,transparent 65%),radial-gradient(ellipse 35% 40% at 25% 35%,var(--blob-color-3) 0%,var(--blob-color-3) 30%,transparent 60%)}.title{margin-top:8px;margin-bottom:20px;letter-spacing:.5px;color:#1a1a1a;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;width:100%;max-width:900px}.titleText{font-family:Dancing Script,cursive;font-size:34px;font-weight:700;text-transform:lowercase;letter-spacing:1px;grid-column:2;justify-self:center;text-align:center;flex:1}.headerActions{display:flex;align-items:center;gap:12px;position:fixed;top:20px;right:20px;z-index:50}.loginButton{padding:8px 16px;border-radius:20px;border:1px solid rgba(46,42,45,.2);background:var(--paper);color:var(--ink);font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;font-family:var(--font)}.loginButton:hover{background:var(--paper2);border-color:#2e2a2d4d}.loginButton.userInfo{display:flex;align-items:center;gap:8px;padding:6px 12px}.userAvatar{width:28px;height:28px;border-radius:50%;object-fit:cover}.userAvatarButton{border:none;background:transparent;padding:0;cursor:pointer;display:inline-flex;align-items:center}.userAvatarButton:hover .userAvatar{box-shadow:0 0 0 2px #2e2a2d1a}.userName{font-size:14px;color:var(--ink)}.userNameButton{background:transparent;border:none;padding:0;font-size:14px;color:var(--ink);cursor:pointer;font-family:var(--font)}.userNameButton:hover{text-decoration:underline}.signOutButton{padding:4px 12px;border:none;background:transparent;color:var(--muted);font-size:12px;cursor:pointer;border-radius:12px;transition:all .2s}.signOutButton:hover{background:#2e2a2d0d;color:var(--ink)}.signInButton{background:#4285f4;color:#fff;border-color:#4285f4}.signInButton:hover{background:#357ae8;border-color:#357ae8}.loginButtonSlot{display:flex;align-items:center}.googleSignInButton{display:flex;justify-content:center;align-items:center;min-height:44px}.googleSignInButton__container{display:flex;justify-content:center}.googleSignInButton__fallback{padding:12px 18px;border-radius:999px;border:1px solid rgba(46,42,45,.2);background:var(--paper);color:var(--ink);font-size:14px;font-weight:600;font-family:var(--font);cursor:pointer;transition:all .2s;min-width:200px}.googleSignInButton__fallback:hover{background:var(--paper2);border-color:#2e2a2d4d}.googleSignInButton--card{width:100%}.shelfStage{width:min(1100px,96vw);display:flex;justify-content:center}.shelfScene{position:relative;width:min(1000px,96vw);min-height:min(720px,calc(100vh - 220px));padding:18px 20px 40px;display:flex;flex-direction:column}.shelfScene--centered{justify-content:center}.shelfSection{margin-bottom:20px;position:relative;z-index:1}.shelfSection:last-of-type{margin-bottom:0}.shelfSign{position:relative;display:flex;justify-content:center;align-items:center;margin:0 auto 1px;width:fit-content}.signSvg{width:100%;height:auto;display:block}.signLabel{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-family:Handlee,cursive;font-weight:700;letter-spacing:1px;text-transform:uppercase;white-space:nowrap;pointer-events:none}.signWooden{width:200px;filter:drop-shadow(0 4px 8px rgba(0,0,0,.2))}.signWooden .signLabel{font-size:13px;color:#3a2a10;text-shadow:0 1px 0 rgba(255,255,255,.15),0 -1px 0 rgba(0,0,0,.2)}.signMetal{width:180px;filter:drop-shadow(0 4px 10px rgba(0,0,0,.25))}.signMetal .signLabel{font-size:12px;color:#e8e4dc;text-shadow:0 1px 2px rgba(0,0,0,.4),0 0 8px rgba(0,0,0,.2);letter-spacing:1.5px}.shelfRow{position:relative;margin:0 auto;width:100%;display:flex;flex-direction:column;z-index:1}.floatingSign{position:absolute;top:-5px;z-index:20;pointer-events:none}.floatingSign .shelfSign{margin:0}.bookWrapper{position:relative;display:flex;align-items:flex-end}.shelfRow:not(:first-child){margin-top:32px}.shelfBooks--withSigns{padding-top:50px;position:relative}.shelfRow--noSignAbove{margin-top:25px!important}.shelfRow:before{content:"";position:absolute;top:50%;left:50%;width:110%;height:180%;transform:translate(-50%,-45%);background:radial-gradient(ellipse 60% 50% at 50% 55%,rgba(255,250,240,.06) 0%,rgba(255,250,240,.03) 40%,transparent 70%);pointer-events:none;z-index:-1}.shelfBooks{display:flex;align-items:flex-end;justify-content:center;gap:3px;padding:0 18px;min-height:140px;margin-bottom:0}.shelfPlank{height:14px;border-radius:999px;background:linear-gradient(180deg,var(--shelf-color),var(--shelf-dark));box-shadow:0 8px 16px #0000002e,0 0 40px 8px #3c32280f,0 2px 8px #0000001a;position:relative;margin-top:0}.shelfRow--tagAnchor .shelfPlank:before{content:"";position:absolute;right:33px;top:-12px;width:20px;height:16px;border:2px solid #a4835f;border-bottom:none;border-radius:12px 12px 0 0;background:linear-gradient(180deg,#c8b08a,#7c5f3f) 50% 9px / 2px 10px no-repeat;opacity:.85;pointer-events:none;z-index:2;filter:drop-shadow(0 1px 1px rgba(0,0,0,.12))}.shelfPlank:after{content:"";position:absolute;top:-20px;left:-10px;right:-10px;bottom:-30px;background:radial-gradient(ellipse 100% 80% at 50% 100%,rgba(40,35,30,.04) 0%,rgba(40,35,30,.02) 50%,transparent 80%);pointer-events:none;z-index:-1;border-radius:50%}.book{border:0;cursor:pointer;width:var(--book-width, 62px);height:var(--book-height, 160px);background:transparent;position:relative;padding:0;transition:transform .15s ease,box-shadow .15s ease;display:flex;align-items:stretch;transform-origin:bottom center;transform:rotate(var(--tilt, 0deg));overflow:hidden}.book:hover{transform:translateY(-6px) rotate(0)!important;z-index:10}.book:hover .bookCover{box-shadow:0 16px 22px #0003}.bookHoverWrapper{position:relative;display:flex;align-items:flex-end;justify-content:center}.catalogCard{position:absolute;bottom:calc(100% + 16px);left:50%;transform:translate(-50%) translateY(10px) scale(.96) rotate(-2deg);opacity:0;pointer-events:none;transition:opacity .18s ease,transform .22s cubic-bezier(.18,.89,.36,1.08);z-index:12}.bookHoverWrapper:hover .catalogCard,.bookHoverWrapper:focus-within .catalogCard{opacity:1;transform:translate(-50%) translateY(0) scale(1) rotate(-1deg)}.catalogCardPaper{min-width:170px;max-width:240px;padding:12px 18px 14px;border-radius:12px;background:linear-gradient(160deg,#fffffff5,#f4ebdefa),repeating-linear-gradient(0deg,transparent,transparent 14px,rgba(214,191,160,.32) 14px,rgba(214,191,160,.32) 15px),repeating-linear-gradient(90deg,rgba(96,76,58,.04) 0px,rgba(96,76,58,.04) 1px,transparent 1px,transparent 6px);border:1px solid rgba(130,104,80,.35);box-shadow:0 16px 26px #0003,inset 0 1px #ffffff80;position:relative}.catalogCardPaper:before{content:"";position:absolute;left:50%;bottom:-12px;width:28px;height:16px;background:linear-gradient(180deg,#f8f1e5fa,#ebdfcefa);border:1px solid rgba(130,104,80,.35);border-top:0;border-radius:0 0 9px 9px;transform:translate(-50%);clip-path:polygon(0 0,100% 0,68% 100%,32% 100%);box-shadow:0 8px 12px #0000001f}.catalogCardPaper:after{content:"";position:absolute;top:6px;right:8px;bottom:10px;left:8px;border-radius:10px;border:1px solid rgba(255,255,255,.4);box-shadow:inset 0 0 0 1px #0000000a;pointer-events:none}.catalogCardTitle{font-family:Handlee,cursive;font-size:20px;line-height:1.05;margin-bottom:6px;color:#2f231b;text-transform:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.catalogCardAuthor{font-family:Courier New,Courier,monospace;font-size:11px;letter-spacing:.9px;color:#2d241eb3;text-transform:uppercase}.book.dragging{opacity:.4;cursor:grabbing}.book:not(.dragging){cursor:grab}.book:active:not(.dragging){cursor:grabbing}.book.dragOver{transform:translate(12px) rotate(4deg)!important;z-index:5}.book.dragOver.lastBook{transform:translate(6px) rotate(2deg)!important}.book.dragOver.lastBook.insertAfter{transform:translate(-12px) rotate(-4deg)!important}.book.neighborLeft{transform:translate(-8px) rotate(-3deg)!important}.book.neighborRight{transform:translate(8px) rotate(3deg)!important}.bookPages{width:8px;height:100%;background:linear-gradient(180deg,#faf6f0,#f0e8dc);border-radius:2px 0 0 2px;box-shadow:inset -1px 0 2px #00000014;flex-shrink:0}.book.tilted .bookPages{display:none}.book.tilted{z-index:2}.book[style*=--spine-image] .bookPages{display:none}.bookCover{flex:1;background-image:linear-gradient(180deg,var(--c1),var(--c2));background-size:cover;background-position:center;background-repeat:no-repeat;border-radius:4px 10px 10px 4px;box-shadow:0 10px 14px #00000029;position:relative;overflow:hidden}.book[style*=--spine-image] .bookCover{background-image:var(--spine-image),linear-gradient(180deg,var(--c1),var(--c2));background-size:cover,cover;background-position:center,center}.bookInset{position:absolute;top:8px;right:6px;bottom:8px;left:4px;border-radius:3px 6px 6px 3px;border:1.5px solid rgba(255,255,255,.15);box-shadow:inset 0 0 0 1px #00000008;pointer-events:none}.bookText{position:absolute;top:8px;right:5px;bottom:8px;left:3px;display:flex;flex-direction:column;justify-content:center;align-items:center;writing-mode:vertical-rl;transform:rotate(180deg);text-align:center;color:#141214e6;padding:2px 0;text-shadow:0 1px 2px rgba(255,255,255,.8),0 -1px 2px rgba(255,255,255,.8),1px 0 2px rgba(255,255,255,.8),-1px 0 2px rgba(255,255,255,.8),0 0 4px rgba(255,255,255,.6),0 2px 4px rgba(0,0,0,.3)}.bookTitle{font-weight:600;font-size:var(--font-size, 11px);letter-spacing:.3px;line-height:1.3;text-transform:uppercase;overflow:hidden;text-overflow:ellipsis;word-break:break-word;max-width:100%}.bookTitleLine{display:block;white-space:nowrap}.book.lightText .bookText{color:#fffffff2;text-shadow:0 1px 2px rgba(0,0,0,.8),0 -1px 2px rgba(0,0,0,.8),1px 0 2px rgba(0,0,0,.8),-1px 0 2px rgba(0,0,0,.8),0 0 4px rgba(0,0,0,.6),0 2px 4px rgba(0,0,0,.5)}.book.lightText .bookTitle{text-shadow:0 1px 2px rgba(0,0,0,.2)}.book.lightText .bookInset{border-color:#ffffff1f}.readingProgress{position:absolute;bottom:0;left:0;right:0;height:4px;background:#00000026;border-radius:0 0 10px 4px;overflow:hidden}.readingProgressBar{height:100%;background:linear-gradient(90deg,#4fffb0,#1fffe1);transition:width .5s ease;box-shadow:0 0 8px #4fffb066}.generateSpinner{width:14px;height:14px;border:2px solid rgba(46,42,45,.2);border-top-color:#2e2a2db3;border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.book.generating .bookCover{animation:spineCoverCharge 26s cubic-bezier(.22,.61,.36,1) forwards}.book.generating .bookCover:before,.book.generating .bookCover:after{content:"";position:absolute;pointer-events:none;border-radius:inherit}.book.generating .bookCover:before{top:0;right:0;bottom:0;left:0;background-image:radial-gradient(70% 120% at 50% 100%,rgba(255,236,170,.95) 0%,rgba(255,214,120,.55) 45%,rgba(255,214,120,.15) 70%,transparent 80%),linear-gradient(180deg,#fff7d600,#ffe8a540 40%,#ffd678d9),repeating-linear-gradient(180deg,#fff8de33 0,#fff8de33 2px,#fff8de00 2px,#fff8de00 6px);background-size:100% 140%,100% 200%,100% 100%;background-position:50% 120%,50% 100%,50% 0;mix-blend-mode:screen;transform-origin:bottom;opacity:0;animation:spineChargeRise 26s cubic-bezier(.22,.61,.36,1) forwards,spineChargeShimmer 2.8s ease-in-out infinite}.book.generating .bookCover:after{left:0;right:0;top:100%;height:28%;background:linear-gradient(180deg,#fff0,#fff6cce6 48%,#ffd57500);mix-blend-mode:screen;opacity:0;animation:spineChargeScan 4.6s ease-in-out infinite,spineChargeRamp 26s ease-out forwards}@keyframes spineCoverCharge{0%{box-shadow:0 10px 14px #00000029;filter:saturate(1) brightness(1)}35%{box-shadow:0 10px 14px #00000029,0 0 6px #ffd5752e;filter:saturate(1.05) brightness(1.02)}65%{box-shadow:0 10px 14px #00000029,0 0 12px #ffd57559;filter:saturate(1.12) brightness(1.04)}88%{box-shadow:0 10px 14px #00000029,0 0 18px #ffd5758c;filter:saturate(1.2) brightness(1.06)}to{box-shadow:0 10px 14px #00000029,0 0 22px #ffd575a6;filter:saturate(1.25) brightness(1.08)}}@keyframes spineChargeRise{0%{opacity:.1;transform:scaleY(.05);filter:blur(4px)}30%{opacity:.3;transform:scaleY(.35);filter:blur(2.6px)}60%{opacity:.55;transform:scaleY(.65);filter:blur(1.6px)}85%{opacity:.8;transform:scaleY(.92);filter:blur(1px)}to{opacity:.95;transform:scaleY(1.05);filter:blur(.6px)}}@keyframes spineChargeShimmer{0%,to{background-position:50% 120%,50% 100%,50% 0}50%{background-position:50% 90%,50% 0%,50% 0}}@keyframes spineChargeScan{0%{transform:translateY(0)}to{transform:translateY(-220%)}}@keyframes spineChargeRamp{0%{opacity:0;filter:blur(4px)}45%{opacity:.35;filter:blur(3px)}80%{opacity:.7;filter:blur(1.4px)}to{opacity:.9;filter:blur(.8px)}}.bookHoverWrapper.spineGenerating .spineMagic,.bookHoverWrapper.spineCelebrating .spineMagic{opacity:1}.spineMagic{position:absolute;top:-18px;right:-20px;bottom:-16px;left:-20px;pointer-events:none;opacity:0;z-index:11}.spineMagic:before,.spineMagic:after{content:"";position:absolute;pointer-events:none;opacity:0;border-radius:16px}.spineMagic:before{top:6px;right:6px;bottom:6px;left:6px;background:radial-gradient(ellipse at 50% 120%,rgba(255,240,182,.8) 0%,rgba(255,216,126,.35) 55%,transparent 75%);filter:blur(6px);mix-blend-mode:screen;transform:scale(.7)}.spineMagic:after{top:-6px;right:-6px;bottom:-6px;left:-6px;background:conic-gradient(from 140deg,#fff4c800,#ffdd8859,#fff4c800 240deg,#ffdd8847 320deg,#fff4c800 360deg);filter:blur(2px);mix-blend-mode:screen;transform:rotate(0) scale(.85)}.spineMagic .magicStar{position:absolute;width:var(--star-size, 10px);height:var(--star-size, 10px);background:radial-gradient(circle at 35% 35%,#fff8c2,#ffe066 45%,#f5c842 70%,#d4a528);clip-path:polygon(50% 0%,60% 35%,98% 35%,67% 57%,78% 92%,50% 70%,22% 92%,33% 57%,2% 35%,40% 35%);filter:drop-shadow(0 2px 4px rgba(90,70,25,.25));opacity:.85}.spineMagic .magicStar.s1{top:6%;left:16%;--float-x: -4px;--float-y: -6px;--burst-x: -24px;--burst-y: -32px}.spineMagic .magicStar.s2{top:10%;right:18%;--float-x: 5px;--float-y: -8px;--burst-x: 26px;--burst-y: -36px;--star-size: 12px}.spineMagic .magicStar.s3{top:44%;left:-4%;--float-x: -6px;--float-y: 4px;--burst-x: -32px;--burst-y: 6px}.spineMagic .magicStar.s4{top:64%;right:-6%;--float-x: 6px;--float-y: 6px;--burst-x: 34px;--burst-y: 16px}.spineMagic .magicStar.s5{bottom:10%;left:20%;--float-x: -5px;--float-y: 7px;--burst-x: -20px;--burst-y: 30px;--star-size: 9px}.spineMagic .magicStar.s6{bottom:6%;right:16%;--float-x: 6px;--float-y: 8px;--burst-x: 22px;--burst-y: 28px;--star-size: 11px}.bookHoverWrapper.spineGenerating .magicStar{animation:spineStarFloat 1.6s ease-in-out infinite}.bookHoverWrapper.spineGenerating .magicStar.s2{animation-delay:-.4s}.bookHoverWrapper.spineGenerating .magicStar.s3{animation-delay:-.8s}.bookHoverWrapper.spineGenerating .magicStar.s4{animation-delay:-.2s}.bookHoverWrapper.spineGenerating .magicStar.s5{animation-delay:-1s}.bookHoverWrapper.spineGenerating .magicStar.s6{animation-delay:-.6s}.bookHoverWrapper.spineCelebrating .magicStar{animation:spineStarCelebrate .9s ease-out forwards}.bookHoverWrapper.spineGenerating .spineMagic:before{animation:spineAuraCharge 26s ease-out forwards}.bookHoverWrapper.spineGenerating .spineMagic:after{animation:spineSigilSpin 10s linear infinite,spineSigilCharge 26s ease-out forwards}.bookHoverWrapper.spineCelebrating .spineMagic:before{animation:spineAuraPop .6s ease-out forwards}.spineMagic .magicBurst{position:absolute;left:50%;top:50%;width:150%;height:150%;transform:translate(-50%,-50%) scale(.2);border-radius:50%;opacity:0;background:radial-gradient(circle,rgba(255,247,214,.9) 0%,rgba(255,229,147,.7) 35%,rgba(245,200,66,.2) 60%,transparent 70%);filter:blur(.5px)}.spineMagic .magicBurst.b2{width:180%;height:180%;background:radial-gradient(circle,rgba(255,238,188,.9) 0%,rgba(255,206,102,.6) 40%,rgba(222,165,46,.2) 65%,transparent 72%)}.bookHoverWrapper.spineCelebrating .magicBurst{animation:spineBurst .9s ease-out forwards}.bookHoverWrapper.spineCelebrating .magicBurst.b2{animation-delay:.08s}.book.celebrating .bookCover{animation:spineRevealSnap .14s ease-out,spineRevealGlow .7s ease-out}@keyframes spineStarFloat{0%,to{transform:translate(0) scale(.9) rotate(0);opacity:.7}50%{transform:translate(var(--float-x),var(--float-y)) scale(1.1) rotate(18deg);opacity:1}}@keyframes spineStarCelebrate{0%{opacity:0;transform:translate(0) scale(.2) rotate(0)}60%{opacity:1}to{opacity:0;transform:translate(var(--burst-x),var(--burst-y)) scale(1.4) rotate(160deg)}}@keyframes spineBurst{0%{opacity:0;transform:translate(-50%,-50%) scale(.2)}40%{opacity:.9}to{opacity:0;transform:translate(-50%,-50%) scale(1.2)}}@keyframes spineAuraCharge{0%{opacity:.1;transform:scale(.7)}40%{opacity:.25;transform:scale(.82)}75%{opacity:.45;transform:scale(.96)}to{opacity:.6;transform:scale(1.08)}}@keyframes spineSigilSpin{to{transform:rotate(360deg) scale(.85)}}@keyframes spineSigilCharge{0%{opacity:0}60%{opacity:.18}to{opacity:.4}}@keyframes spineAuraPop{0%{opacity:.6;transform:scale(1)}to{opacity:0;transform:scale(1.2)}}@keyframes spineRevealSnap{0%{transform:scale(.98);filter:brightness(1.18) saturate(1.25)}to{transform:scale(1);filter:brightness(1) saturate(1)}}@keyframes spineRevealGlow{0%{box-shadow:0 0 #f5c84233}40%{box-shadow:0 0 18px #f5c84280}to{box-shadow:0 0 #f5c84200}}.bookWithChips{display:flex;flex-direction:column;align-items:center;position:relative}.readingChips{display:flex;justify-content:center;margin-bottom:4px;position:relative;height:22px}.readingChip{width:22px;height:22px;border-radius:50%;background:linear-gradient(135deg,#faf6f0,#efe5d8);border:1.5px solid rgba(46,42,45,.15);display:flex;align-items:center;justify-content:center;font-family:Handlee,cursive;font-size:9px;font-weight:700;color:#2e2a2dcc;box-shadow:0 2px 4px #0000001a;position:absolute;left:calc(50% + (var(--chip-index, 0) - 1.5) * 14px);transform:translate(-50%);z-index:calc(10 - var(--chip-index, 0));cursor:default;transition:transform .15s ease,box-shadow .15s ease}.readingChip:hover{transform:translate(-50%) translateY(-2px);box-shadow:0 4px 8px #00000026;z-index:20}.readingChip.overflowChip{background:linear-gradient(135deg,#e8e4dc,#d8d4cc);font-size:8px}.addedByBadge{position:absolute;top:6px;right:4px;width:18px;height:18px;border-radius:50%;background:linear-gradient(135deg,#ffffffe6,#faf6f0e6);border:1px solid rgba(46,42,45,.12);display:flex;align-items:center;justify-content:center;font-family:Handlee,cursive;font-size:7px;font-weight:700;color:#2e2a2dbf;box-shadow:0 1px 3px #0000001a;cursor:default;z-index:5;transition:transform .15s ease}.addedByBadge:hover{transform:scale(1.1)}.book.lightText .addedByBadge{background:linear-gradient(135deg,#fffffff2,#faf6f0f2);color:#2e2a2dd9}.hangingTagWrapper{display:flex;justify-content:flex-end;padding-right:12px;position:relative;z-index:6;height:0;overflow:visible;pointer-events:none}.hangingTagBetween{transform:translateY(-22px)}.hangingTagBottom{transform:translateY(-6px)}.hangingTag{display:flex;flex-direction:column;align-items:center;background:transparent;border:none;padding:0;cursor:pointer;transform-origin:top center;transition:transform .25s cubic-bezier(.34,1.2,.64,1);position:absolute;right:0;top:0;z-index:8;pointer-events:auto;transform:rotate(-6deg)}.hangingTag:hover{transform:rotate(-3deg)}.hangingTag:active{transform:rotate(-8deg) scale(.98)}.hangingTagString{width:34px;height:82px;margin-bottom:-28px;transform:translateY(-40px);filter:drop-shadow(0 1px 1px rgba(0,0,0,.12));flex-shrink:0;z-index:9}.hangingTagSvg{width:86px;height:auto;filter:drop-shadow(0 6px 10px rgba(0,0,0,.18)) drop-shadow(0 2px 3px rgba(0,0,0,.12));transition:filter .2s ease}.hangingTag:hover .hangingTagSvg{filter:drop-shadow(0 8px 14px rgba(0,0,0,.2)) drop-shadow(0 3px 5px rgba(0,0,0,.14))}.hangingTagText{font-family:Dancing Script,cursive;font-size:12px;font-weight:700;fill:#6a5643;letter-spacing:.2px}@keyframes tagSway{0%,to{transform:rotate(-6deg)}25%{transform:rotate(-5deg)}75%{transform:rotate(-7deg)}}.hangingTag{animation:tagSway 4s ease-in-out infinite}.hangingTag:hover{animation:none}.decor{-webkit-user-select:none;user-select:none;pointer-events:none;flex-shrink:0;align-self:flex-end;position:relative;transform:translateY(0)}.decorPlant{height:85px;width:auto;margin-right:10px;margin-bottom:0}.decorPlantSmall{height:70px;width:auto;margin-right:10px;margin-bottom:0}.decorCoffee{height:75px;width:auto;margin-left:10px;margin-bottom:-3px;user-select:none;-webkit-user-select:none;pointer-events:all}.coffeeMugContainer{display:inline-block;position:relative;cursor:grab;user-select:none;-webkit-user-select:none;will-change:transform;transition:transform .4s cubic-bezier(.34,1.56,.64,1)}.coffeeMugContainer.dragging{cursor:grabbing;transition:none}.coffeeMugContainer svg{pointer-events:all}.steamWisp{transform-origin:center bottom;animation:steamFloat 3s ease-in-out infinite}.steamWisp1{animation-delay:0s}.steamWisp2{animation-delay:-1s}.steamWisp3{animation-delay:-2s}@keyframes steamFloat{0%,to{opacity:.5;transform:translateY(0) translate(0) scaleY(1)}25%{opacity:.7;transform:translateY(-2px) translate(1px) scaleY(1.05)}50%{opacity:.4;transform:translateY(-4px) translate(-1px) scaleY(1.1)}75%{opacity:.6;transform:translateY(-2px) translate(.5px) scaleY(1.03)}}.coffeeMugContainer.dragging .steamWisp{animation-play-state:paused;opacity:.3}.coffeeDroplet{animation:dropletFall var(--duration, 1s) cubic-bezier(.4,0,1,1) forwards;pointer-events:none}@keyframes dropletFall{0%{opacity:.9;transform:translate(0) scale(1)}to{opacity:0;transform:translate(var(--drift, 0),var(--fall, 40px)) scale(.6)}}.rocketContainer{display:inline-block;position:relative;cursor:pointer;user-select:none;-webkit-user-select:none;transform-origin:bottom center;transition:transform .1s ease;align-self:flex-end}.rocketContainer:hover:not(.launching){transform:scale(1.05)}.rocketContainer:active:not(.launching){transform:scale(.98)}.rocketContainer.launching{animation:rocketTakeoff 1.4s cubic-bezier(.25,.46,.45,.94) forwards;pointer-events:none}@keyframes rocketTakeoff{0%{transform:translateY(0) rotate(0) scale(1);opacity:1}5%{transform:translateY(2px) rotate(-2deg) scale(1);opacity:1}8%{transform:translateY(-2px) rotate(2deg) scale(1);opacity:1}11%{transform:translateY(1px) rotate(-1deg) scale(1);opacity:1}20%{transform:translateY(-30px) rotate(var(--flight-rotation, 0deg)) scale(1);opacity:1}90%{transform:translate(calc(var(--flight-x, 0px) * .9)) translateY(calc(var(--flight-y, -800px) * .9)) rotate(var(--flight-rotation, 0deg)) scale(1);opacity:1}to{transform:translate(var(--flight-x, 0px)) translateY(var(--flight-y, -800px)) rotate(var(--flight-rotation, 0deg)) scale(1);opacity:0}}.exhaustFlames .flame{transform-origin:center top;animation:flameFlicker .08s ease-in-out infinite alternate}.exhaustFlames .flame1{animation-delay:0s}.exhaustFlames .flame2{animation-delay:.02s}.exhaustFlames .flame3{animation-delay:.04s}@keyframes flameFlicker{0%{transform:scaleY(.9) scaleX(.95);opacity:.9}to{transform:scaleY(1.15) scaleX(1.05);opacity:1}}.exhaustFlames .smoke{animation:smokeRise .5s ease-out forwards}.exhaustFlames .smoke1{animation-delay:.05s}.exhaustFlames .smoke2{animation-delay:.1s}.exhaustFlames .smoke3{animation-delay:.15s}@keyframes smokeRise{0%{transform:translateY(0) scale(1);opacity:.4}to{transform:translateY(20px) scale(2);opacity:0}}.rocketGone{display:inline-block;flex-shrink:0;width:32px;height:95px;margin-right:10px}.decorRocket{height:95px;width:auto;margin-right:10px;margin-bottom:-35px;pointer-events:all}.decorLamp{height:150px;width:auto;margin-left:10px;margin-bottom:-15px;align-self:flex-end}.oilLampContainer{display:inline-block;position:relative;cursor:pointer;user-select:none;-webkit-user-select:none;transition:transform .2s ease}.oilLampContainer:hover:not(.lit){transform:scale(1.03)}.oilLampContainer:active:not(.lit){transform:scale(.98)}.oilLampContainer svg{pointer-events:all}.lampGlow{animation:lampGlowPulse 1.5s ease-in-out infinite}@keyframes lampGlowPulse{0%,to{opacity:1}50%{opacity:.7}}.lampFlame .flameOuter{animation:flameFlickerOuter .15s ease-in-out infinite alternate;transform-origin:center bottom}.lampFlame .flameInner{animation:flameFlickerInner .12s ease-in-out infinite alternate;transform-origin:center bottom}.lampFlame .flameCore{animation:flameFlickerCore .1s ease-in-out infinite alternate;transform-origin:center bottom}@keyframes flameFlickerOuter{0%{transform:scaleX(1) scaleY(1);opacity:.9}to{transform:scaleX(.92) scaleY(1.06);opacity:1}}@keyframes flameFlickerInner{0%{transform:scaleX(1) scaleY(1) translateY(0);opacity:.95}to{transform:scaleX(.88) scaleY(1.08) translateY(-1px);opacity:1}}@keyframes flameFlickerCore{0%{transform:scaleX(1) scaleY(1);opacity:.9}to{transform:scaleX(.85) scaleY(1.1);opacity:1}}.oilLampContainer:not(.lit) .lampGlow,.oilLampContainer:not(.lit) .lampFlame{animation:lampFadeOut .8s ease-out forwards}@keyframes lampFadeOut{0%{opacity:1}to{opacity:0}}.wallDecorations{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;overflow:hidden}.moldingLine{position:absolute;left:5%;right:5%;top:40%;height:2px;background:linear-gradient(90deg,transparent,rgba(139,105,20,.06) 10%,rgba(139,105,20,.1) 50%,rgba(139,105,20,.06) 90%,transparent);border-radius:1px}.wallFrameStack{position:absolute;left:28px;top:50px;display:flex;flex-direction:column;gap:12px}.wallFrame{width:42px;height:auto;opacity:.65;filter:drop-shadow(0 2px 4px rgba(0,0,0,.08));transition:opacity .3s ease}.wallFrame:hover{opacity:.8}.wallSconce{position:absolute;right:35px;top:55px}.wallSconceContainer{display:inline-block}.wallSconceSvg{width:50px;height:auto;opacity:.6;filter:drop-shadow(0 2px 6px rgba(0,0,0,.1))}.sconceGlowPulse{animation:sconceGlowPulse 3s ease-in-out infinite}@keyframes sconceGlowPulse{0%,to{opacity:1}50%{opacity:.6}}.sconceFlame{animation:sconceFlameFlicker .15s ease-in-out infinite alternate;transform-origin:center bottom}.sconceFlameInner{animation:sconceFlameFlickerInner .12s ease-in-out infinite alternate;transform-origin:center bottom}@keyframes sconceFlameFlicker{0%{transform:scaleX(1) scaleY(1);opacity:.65}to{transform:scaleX(.9) scaleY(1.08);opacity:.75}}@keyframes sconceFlameFlickerInner{0%{transform:scaleX(1) scaleY(1);opacity:.75}to{transform:scaleX(.85) scaleY(1.1);opacity:.85}}@media (max-width: 760px){.wallFrameStack{left:18px;top:40px;gap:10px}.wallFrame{width:36px;opacity:.55}.wallSconce{right:22px;top:45px}.wallSconceSvg{width:42px;opacity:.5}.moldingLine{top:38%;height:1.5px}}@media (max-width: 480px){.wallFrameStack{left:12px;top:35px;gap:8px}.wallFrame{width:30px;opacity:.45}.wallSconce{right:14px;top:38px}.wallSconceSvg{width:36px;opacity:.4}}.modalBackdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#1412148c;display:flex;align-items:center;justify-content:center;padding:20px;animation:fadeIn .15s ease;z-index:100}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modalWrap{width:min(820px,96vw)}.openBook{display:grid;grid-template-columns:1fr 12px 1fr;gap:0;background:transparent;filter:drop-shadow(0 20px 40px rgba(0,0,0,.25))}.bookSpine{background:linear-gradient(90deg,#d4c4b0,#c9b89e 15%,#b8a68a,#c9b89e 85%,#d4c4b0);position:relative;z-index:2}.bookSpine:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:repeating-linear-gradient(180deg,transparent 0px,transparent 8px,rgba(0,0,0,.03) 8px,rgba(0,0,0,.03) 9px)}.openBook.hasSpine{grid-template-columns:1fr auto 1fr}.openBook.hasSpine .bookSpine{background:none;overflow:hidden;box-shadow:inset 0 0 10px #00000080}.openBook.hasSpine .bookSpine:before{display:none}.bookSpine img{height:100%;width:auto;display:block}.page{background:linear-gradient(165deg,#faf6f0,#f5ede3,#efe5d8);padding:28px 28px 50px;position:relative;overflow:hidden;min-height:420px}.page.left{border-radius:8px 0 0 8px;box-shadow:-4px 0 12px #00000014,inset -20px 0 30px -20px #0000000f}.page.left:after{content:"";position:absolute;top:0;right:0;width:30px;height:100%;background:linear-gradient(90deg,transparent,rgba(0,0,0,.04));pointer-events:none}.page.right{border-radius:0 8px 8px 0;box-shadow:4px 0 12px #00000014,inset 20px 0 30px -20px #0000000f}.page.right:before{content:"";position:absolute;top:0;left:0;width:30px;height:100%;background:linear-gradient(270deg,transparent,rgba(0,0,0,.04));pointer-events:none}.openBook .bookTitle{font-family:Handlee,cursive;font-size:26px;font-weight:700;color:var(--ink);margin-bottom:4px;line-height:1.2}.openBook .bookAuthor{font-family:Handlee,cursive;font-size:16px;font-weight:400;color:#2e2a2db3;margin-bottom:20px}.section{margin:16px 0}.label{font-family:Handlee,cursive;font-size:13px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:#2e2a2da6;margin-bottom:8px}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{font-family:Handlee,cursive;background:#2e2a2d12;border:1px solid rgba(46,42,45,.12);padding:6px 14px;border-radius:999px;font-weight:400;font-size:14px;color:#2e2a2dcc}.impactRow{display:flex;align-items:center;gap:12px}.impactLabel{font-family:Handlee,cursive;font-size:14px;color:#2e2a2d8c;font-weight:400;white-space:nowrap}.impactSlider{flex:1;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:6px;border-radius:999px;background:linear-gradient(90deg,#d4dbc8,#9aab8a);outline:none;cursor:default}.impactSlider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;background:#2e2a2d;border:2px solid #faf6f0;box-shadow:0 2px 6px #0003;cursor:default}.impactSlider::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:#2e2a2d;border:2px solid #faf6f0;box-shadow:0 2px 6px #0003;cursor:default}.meAndBook{margin-top:20px}.whyLabel{font-family:Handlee,cursive;font-size:13px;font-style:italic;color:#2e2a2d80;margin-bottom:4px}.whyText{font-family:Handlee,cursive;font-size:15px;color:#2e2a2dcc;line-height:1.5}.reviewText{font-family:Handlee,cursive;font-weight:400;color:#2e2a2dd9;line-height:1.7;font-size:16px;padding-right:8px;max-height:340px;overflow:auto}.reviewText::-webkit-scrollbar{width:4px}.reviewText::-webkit-scrollbar-track{background:transparent}.reviewText::-webkit-scrollbar-thumb{background:#2e2a2d26;border-radius:2px}.closeLink{position:absolute;right:20px;bottom:16px;border:0;background:transparent;font-family:Handlee,cursive;font-size:15px;color:#2e2a2d80;font-weight:400;text-transform:lowercase;cursor:pointer;transition:color .15s ease}.closeLink:hover{color:#2e2a2dcc}.circleInfo{margin-top:16px;padding-top:16px;border-top:1px dashed rgba(46,42,45,.15)}.circleValue{font-family:Handlee,cursive;font-size:15px;color:#2e2a2dcc;font-weight:600}.circleNames{font-family:Handlee,cursive;font-size:14px;color:#2e2a2dbf;line-height:1.5}.circleName{white-space:nowrap}.circleActions{margin-top:20px;margin-bottom:50px;display:flex;flex-direction:column;gap:10px}.circleActionBtn{border:0;padding:10px 18px;border-radius:999px;font-family:Handlee,cursive;font-weight:700;font-size:13px;text-transform:uppercase;letter-spacing:.5px;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease}.circleActionBtn:hover{transform:translateY(-1px)}.circleActionBtn.startReading{background:linear-gradient(135deg,#9bd3ff,#73c1ff);color:#1e2d4ae6;box-shadow:0 3px 10px #73c1ff4d}.circleActionBtn.startReading:hover{box-shadow:0 5px 14px #73c1ff66}.circleActionBtn.markFinished{background:linear-gradient(135deg,#b8f2d1,#8fe9bd);color:#1e3c2de6;box-shadow:0 3px 10px #8fe9bd4d}.circleActionBtn.markFinished:hover{box-shadow:0 5px 14px #8fe9bd66}.finishedBadge{font-family:Handlee,cursive;font-size:13px;color:#2e2a2d80;font-style:italic;text-align:center;padding:8px}.generateSpineAction{margin-top:20px;margin-bottom:50px}.circleActionBtn.generateSpineBtn{background:linear-gradient(135deg,#ffe066,#f5c842);color:#3c321ef2;box-shadow:0 3px 10px #f5c84259;display:flex;align-items:center;justify-content:center;gap:8px;font-weight:700}.circleActionBtn.generateSpineBtn:hover{box-shadow:0 5px 14px #f5c84280;background:linear-gradient(135deg,#ffeb80,#f8d055)}.circleActionBtn.generateSpineBtn:active{transform:translateY(0)}.circleActionBtn.generateSpineBtn:disabled{opacity:.6;cursor:not-allowed;transform:none}.circleActionBtn.generateSpineBtn svg{width:18px;height:18px;flex-shrink:0;filter:drop-shadow(0 1px 2px rgba(0,0,0,.1))}.circleActionBtn.generateSpineBtn .generateSpinner{width:14px;height:14px;border-color:#3c321e33;border-top-color:#3c321ecc}.actions{position:absolute;left:20px;bottom:16px}.deleteBtn{border:0;background:transparent;font-family:Handlee,cursive;font-size:13px;color:#2e2a2d66;cursor:pointer;padding:4px 8px;border-radius:4px;transition:all .15s ease}.deleteBtn:hover{background:#b450501a;color:#b45050cc}.addCard{width:min(460px,92vw);margin:0 auto;background:linear-gradient(180deg,var(--paper2),var(--paper));border-radius:20px;box-shadow:var(--shadow);padding:24px 22px 20px;max-height:90vh;overflow-y:auto}.addTitle{font-family:Handlee,cursive;font-size:22px;font-weight:700;text-transform:uppercase;letter-spacing:1px;margin-bottom:16px;color:var(--ink)}.addCard .label{font-family:Handlee,cursive;font-size:13px;font-weight:400;letter-spacing:1.5px;text-transform:uppercase;color:#2e2a2da6;margin-bottom:8px}.field{margin:14px 0}input,textarea{width:100%;border-radius:999px;border:1px solid rgba(46,42,45,.14);background:#ffffff8c;padding:12px 16px;font:inherit;font-weight:600;outline:none;transition:border-color .15s ease,box-shadow .15s ease}input:focus,textarea:focus{border-color:#2e2a2d59;box-shadow:0 0 0 3px #2e2a2d14}textarea{resize:vertical;border-radius:16px}.seg{display:flex;gap:0;border:1px solid rgba(46,42,45,.2);border-radius:999px;overflow:hidden;background:#ffffff8c}.seg button{flex:1;border:none;background:transparent;padding:12px 16px;font-family:Handlee,cursive;font-weight:700;letter-spacing:.8px;cursor:pointer;text-transform:uppercase;font-size:13px;color:#2e2a2da6;transition:all .15s ease}.seg button.on{background:#231f21e0;color:#fff}.seg button:not(.on):hover{background:#2e2a2d0f}.addCard .impactRow{display:flex;align-items:center;gap:12px}.addCard .impactRow .small{font-family:Handlee,cursive;font-size:13px;color:#2e2a2d80;font-weight:400;white-space:nowrap}.addCard .impact{flex:1;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:6px;border-radius:999px;background:linear-gradient(90deg,#d4dbc8,#9aab8a);outline:none;cursor:pointer;padding:0;border:none}.addCard .impact::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;background:#2e2a2d;border:2px solid #faf6f0;box-shadow:0 2px 6px #0003;cursor:pointer}.addCard .impact::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:#2e2a2d;border:2px solid #faf6f0;box-shadow:0 2px 6px #0003;cursor:pointer}.footer{display:flex;justify-content:center;align-items:center;margin-top:18px;gap:16px}button.ghost{border:0;background:transparent;font-family:Handlee,cursive;font-size:15px;color:#2e2a2d80;font-weight:400;text-transform:uppercase;letter-spacing:.5px;cursor:pointer;padding:10px 16px;transition:color .15s ease}button.ghost:hover{color:#2e2a2dcc}button.primary{border:0;background:#231f21e0;color:#fff;padding:12px 24px;border-radius:999px;font-family:Handlee,cursive;font-weight:700;font-size:14px;text-transform:uppercase;letter-spacing:.5px;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease}button.primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #00000026}button.primary:disabled{opacity:.45;cursor:not-allowed}.stars{display:flex;gap:4px}.star{border:0;background:transparent;font-size:22px;cursor:pointer;color:#d4a84a;padding:0;line-height:1;transition:transform .1s ease}.star:not(.ro):hover{transform:scale(1.15)}.star.ro{cursor:default}.colorGrid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.colorDot{width:22px;height:22px;border-radius:999px;border:2px solid rgba(46,42,45,.12);cursor:pointer;background:#ddd;transition:transform .1s ease,border-color .1s ease}.colorDot:hover{transform:scale(1.1)}.colorDot.on{border-color:#2e2a2d99;transform:scale(1.15);box-shadow:0 2px 6px #00000026}.colorDot[data-color=pink]{background:#f58aa0}.colorDot[data-color=babyPink]{background:#ffc4cc}.colorDot[data-color=bubblegumPink]{background:#ff6b8a}.colorDot[data-color=rosePink]{background:#c56879}.colorDot[data-color=coral]{background:#ff9b8a}.colorDot[data-color=lavender]{background:#b19cff}.colorDot[data-color=lilac]{background:#c9b5ea}.colorDot[data-color=peach]{background:#ffc49e}.colorDot[data-color=cream]{background:#f1d9ad}.colorDot[data-color=tan]{background:#c9b899}.colorDot[data-color=mustard]{background:#d9b438}.colorDot[data-color=goldenYellow]{background:#e8b83a}.colorDot[data-color=mint]{background:#8fe9bd}.colorDot[data-color=sage]{background:#a3bb94}.colorDot[data-color=pistachio]{background:#b8d0a5}.colorDot[data-color=sky]{background:#73c1ff}.colorDot[data-color=periwinkle]{background:#95a3c9}.colorDot[data-color=mediumBlue]{background:#4a6a88}.colorDot[data-color=navy]{background:#1e2d4a}.colorDot[data-color=darkIndigo]{background:#2a2a48}.colorDot[data-color=slate]{background:#4a4a58}.colorDot[data-color=charcoal]{background:#3a3a44}.title{display:grid;align-items:center;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);position:relative;width:100%;max-width:900px}.createLibraryWrapper{position:fixed;top:20px;left:20px;z-index:50}.guestNameBadge{font-family:Handlee,cursive;font-size:13px;font-weight:400;color:#2e2a2d99;background:#ffffff73;padding:6px 14px;border-radius:999px;border:1px solid rgba(46,42,45,.1);white-space:nowrap}.syncBadge{position:absolute;right:0;top:calc(50% + 28px);transform:translateY(-50%);font-family:Handlee,cursive;font-size:10px;font-weight:700;color:#4fffb0;background:#1e2823d9;padding:4px 10px;border-radius:999px;letter-spacing:.5px;text-transform:uppercase;white-space:nowrap;animation:syncPulse 2s ease-in-out infinite}@keyframes syncPulse{0%,to{opacity:1}50%{opacity:.7}}.loadingState{font-family:Handlee,cursive;font-size:18px;color:#2e2a2d80;text-align:center;padding:60px 20px;animation:loadingFade 1.5s ease-in-out infinite}@keyframes loadingFade{0%,to{opacity:.5}50%{opacity:1}}.guestNameModal{background:linear-gradient(180deg,var(--paper2),var(--paper));border-radius:20px;box-shadow:var(--shadow);padding:32px 28px 28px;text-align:center;max-width:340px;margin:0 auto}.guestNameTitle{font-family:Handlee,cursive;font-size:22px;font-weight:700;color:var(--ink);margin:0 0 6px}.guestNameSubtitle{font-family:Handlee,cursive;font-size:15px;color:#2e2a2d99;margin:0 0 20px}.guestNameInput{width:100%;border-radius:999px;border:1px solid rgba(46,42,45,.14);background:#ffffff8c;padding:14px 18px;font-family:Handlee,cursive;font-size:16px;font-weight:600;outline:none;text-align:center;transition:border-color .15s ease,box-shadow .15s ease;margin-bottom:16px}.guestNameInput:focus{border-color:#2e2a2d59;box-shadow:0 0 0 3px #2e2a2d14}.guestNameInput::placeholder{color:#2e2a2d59;font-weight:400}.guestNameButton{border:0;background:#231f21e0;color:#fff;padding:14px 32px;border-radius:999px;font-family:Handlee,cursive;font-weight:700;font-size:15px;text-transform:uppercase;letter-spacing:.5px;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,opacity .15s ease}.guestNameButton:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #00000026}.guestNameButton:disabled{opacity:.45;cursor:not-allowed}.authGateModal{background:linear-gradient(180deg,var(--paper2),var(--paper));border-radius:22px;box-shadow:var(--shadow);padding:30px 28px 26px;text-align:center;max-width:420px;margin:0 auto;position:relative;overflow:hidden}.authGateModal:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,#c7a892,#d9c3b0,#c7a892)}.authGateBadge{display:inline-flex;align-items:center;gap:6px;background:#2e2a2d14;border:1px solid rgba(46,42,45,.12);color:#2e2a2d99;border-radius:999px;padding:6px 12px;font-family:Handlee,cursive;font-size:12px;letter-spacing:1px;text-transform:uppercase;margin-bottom:12px}.authGateTitle{font-family:Handlee,cursive;font-size:24px;font-weight:700;color:var(--ink);margin:0 0 6px}.authGateSubtitle{font-family:Handlee,cursive;font-size:15px;color:#2e2a2d99;margin:0 0 20px}.authGateSteps{display:grid;gap:12px;text-align:left;margin-bottom:18px}.authGateStep{display:grid;grid-template-columns:28px 1fr;gap:12px;align-items:start;padding:12px 14px;border-radius:16px;background:#fff9;border:1px solid rgba(46,42,45,.1);box-shadow:0 6px 12px #00000014}.authGateStepNum{width:24px;height:24px;border-radius:50%;background:#2e2a2dd9;color:#fff;font-size:12px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;font-family:var(--font)}.authGateStepTitle{font-family:Handlee,cursive;font-size:14px;color:var(--ink);margin-bottom:2px}.authGateStepText{font-size:13px;color:#2e2a2d99}.authGateActions{display:flex;flex-direction:column;gap:10px;align-items:center}.authGateGhost{width:100%;display:inline-flex;align-items:center;justify-content:center}.authGateFineprint{margin:14px 0 0;font-size:12px;color:#2e2a2d73}.wallAtmosphere{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;overflow:hidden}.crownMoldingLine{position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(180deg,rgba(60,50,40,.04) 0%,rgba(60,50,40,.02) 50%,transparent 100%);box-shadow:0 1px #ffffff08}.windowLight{position:absolute;top:0;left:0;width:60%;height:70%;overflow:hidden;transform:rotate(-25deg) translate(-20%) translateY(-10%);opacity:.85}.lightBand{position:absolute;left:var(--band-offset, 0%);top:0;width:8%;height:200%;background:linear-gradient(180deg,rgba(255,250,235,.08) 0%,rgba(255,250,235,.06) 30%,rgba(255,250,235,.04) 70%,transparent 100%);filter:blur(2px)}.stringLights{position:absolute;top:0;right:0;bottom:0;left:0}.stringLight{position:absolute;border-radius:50%;background:#ffebc840;box-shadow:0 0 var(--glow-size, 4px) #ffebc826,0 0 calc(var(--glow-size, 4px) * 2) #ffdcb414;filter:blur(.5px)}.dustMotes{position:absolute;top:0;right:0;bottom:0;left:0}.dustMote{position:absolute;border-radius:50%;background:#fffcf5cc;filter:blur(.8px);animation:dustDrift linear infinite;will-change:transform}@keyframes dustDrift{0%,to{transform:translate(0)}25%{transform:translate(calc(var(--drift-x, 5px) * .5),calc(var(--drift-y, 3px) * -.3))}50%{transform:translate(var(--drift-x, 5px),var(--drift-y, 3px))}75%{transform:translate(calc(var(--drift-x, 5px) * .3),calc(var(--drift-y, 3px) * .7))}}.wallAccents{position:absolute;top:0;right:0;bottom:0;left:0}.wallClock{position:absolute;top:18%;right:8%;width:50px;height:50px;opacity:1}.wallFrame{position:absolute;top:18%;left:6%;width:76px;height:96px;opacity:.85}.filmGrain{position:absolute;top:0;right:0;bottom:0;left:0;opacity:.025;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");background-size:200px 200px;mix-blend-mode:overlay}@keyframes grainShift{0%,to{transform:translate(0)}10%{transform:translate(-1px,1px)}20%{transform:translate(1px,-1px)}30%{transform:translate(-1px,-1px)}40%{transform:translate(1px,1px)}50%{transform:translate(-1px)}60%{transform:translate(1px)}70%{transform:translateY(1px)}80%{transform:translateY(-1px)}90%{transform:translate(1px,-1px)}}@media (max-width: 760px){.openBook{grid-template-columns:1fr;gap:0}.bookSpine{display:none}.page.left{border-radius:8px 8px 0 0;box-shadow:0 -4px 12px #00000014}.page.left:after{display:none}.page.right{border-radius:0 0 8px 8px;box-shadow:0 4px 12px #00000014}.page.right:before{display:none}.shelfScene{min-height:min(760px,calc(100vh - 200px))}.colorGrid{grid-template-columns:repeat(6,1fr)}.shelfRow{margin-bottom:24px}.signWooden{width:180px}.signWooden .signLabel{font-size:11px}.signMetal{width:210px}.signMetal .signLabel{font-size:10px;letter-spacing:1px}.guestNameBadge{font-size:11px;padding:5px 10px}}@media (max-width: 480px){.colorGrid{grid-template-columns:repeat(5,1fr)}.shelfScene{min-height:min(780px,calc(100vh - 180px))}.signWooden{width:160px}.signWooden .signLabel{font-size:10px;letter-spacing:.5px}.signMetal{width:190px}.signMetal .signLabel{font-size:9px;letter-spacing:.8px}}@media (min-width: 1440px){.shelfStage{width:min(1000px,96vw)}.shelfScene{width:min(920px,96vw)}.signWooden{width:220px}.signMetal{width:200px}}@media (min-width: 1920px){.shelfStage{width:min(1100px,96vw)}.shelfScene{width:min(1000px,96vw)}.signWooden{width:240px}.signMetal{width:210px}}.createLibraryCta{display:inline-flex;align-items:center;gap:6px;border:0;background:linear-gradient(135deg,#2e2a2d,#3a363a);color:#fff;padding:8px 14px;border-radius:999px;font-family:Handlee,cursive;font-weight:700;font-size:12px;letter-spacing:.3px;cursor:pointer;box-shadow:0 3px 10px #00000026;transition:transform .15s ease,box-shadow .15s ease}.createLibraryCta:hover{transform:translateY(-1px);box-shadow:0 5px 14px #0003}.ctaIcon{font-size:14px;font-weight:400;opacity:.8}.ctaText{text-transform:uppercase}.createCircleModal{background:linear-gradient(180deg,var(--paper2),var(--paper));border-radius:20px;box-shadow:var(--shadow);padding:28px 26px 24px;max-width:400px;margin:0 auto}.createCircleTitle{font-family:Handlee,cursive;font-size:24px;font-weight:700;color:var(--ink);margin:0 0 4px;text-align:center}.createCircleSubtitle{font-family:Handlee,cursive;font-size:15px;color:#2e2a2d8c;margin:0 0 22px;text-align:center}.slugInputWrapper{display:flex;align-items:center;background:#ffffff8c;border:1px solid rgba(46,42,45,.14);border-radius:999px;padding:0 4px 0 16px;transition:border-color .15s ease,box-shadow .15s ease}.slugInputWrapper:focus-within{border-color:#2e2a2d59;box-shadow:0 0 0 3px #2e2a2d14}.slugPrefix{font-family:Handlee,cursive;font-size:14px;color:#2e2a2d66;font-weight:400}.slugInput{flex:1;border:none;background:transparent;padding:12px 8px;font:inherit;font-weight:600;outline:none;border-radius:0}.slugError{font-family:Handlee,cursive;font-size:12px;color:#c56060;margin:6px 0 0 16px}.circleNotFound{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:40px 20px;background:var(--bg);background-image:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,0,0,.015) 2px,rgba(0,0,0,.015) 4px),repeating-linear-gradient(90deg,transparent,transparent 2px,rgba(0,0,0,.015) 2px,rgba(0,0,0,.015) 4px)}.notFoundCard{background:linear-gradient(165deg,#faf6f0,#f5ede3,#efe5d8);border-radius:24px;box-shadow:0 20px 50px #0000001f,0 8px 20px #00000014;padding:48px 40px;text-align:center;max-width:400px;width:100%;position:relative;overflow:hidden}.notFoundCard:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,#c7a892,#b89786,#c7a892)}.notFoundIcon{margin-bottom:20px;opacity:.7}.notFoundTitle{font-family:Handlee,cursive;font-size:28px;font-weight:700;color:var(--ink);margin:0 0 12px}.notFoundSlug{margin:0 0 16px}.slugHighlight{font-family:ui-monospace,SF Mono,Monaco,monospace;font-size:15px;color:#2e2a2d99;background:#2e2a2d0f;padding:6px 14px;border-radius:8px;display:inline-block}.notFoundMessage{font-family:Handlee,cursive;font-size:16px;color:#2e2a2da6;line-height:1.6;margin:0 0 28px}.notFoundActions{display:flex;flex-direction:column;align-items:center;gap:12px}.createThisLibraryBtn{border:0;background:linear-gradient(135deg,#2e2a2d,#3a363a);color:#fff;padding:14px 28px;border-radius:999px;font-family:Handlee,cursive;font-weight:700;font-size:15px;letter-spacing:.5px;cursor:pointer;box-shadow:0 6px 18px #0000002e;transition:transform .15s ease,box-shadow .15s ease}.createThisLibraryBtn:hover{transform:translateY(-2px);box-shadow:0 8px 24px #00000038}.goHomeLink{border:0;background:transparent;font-family:Handlee,cursive;font-size:14px;color:#2e2a2d80;cursor:pointer;padding:8px 16px;transition:color .15s ease}.goHomeLink:hover{color:#2e2a2dbf}.grand-library-container{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:0;padding:0;background-color:#2d1b12;width:100%;min-height:100vh;box-sizing:border-box;overflow-x:hidden;position:relative;z-index:1}.library-bay-placeholder{height:72vh;background-color:#5d4037;border:none;border-radius:0;box-shadow:inset 10px 0 20px #0006;display:flex;flex-direction:column;position:relative;overflow:hidden}.app.app--grand{align-items:stretch;padding:0;min-height:100vh}.grandLibraryTitle{text-align:center;padding:0;margin:0;position:absolute;top:18px;left:0;right:0;z-index:2;pointer-events:none}.libraryBayInterior{flex:1;display:flex;align-items:stretch;justify-content:center;background:linear-gradient(180deg,#c9a57b,#b78d62);box-shadow:inset 0 14px 22px #0000002e,inset 0 -18px 26px #0003,inset 0 0 0 1px #563a2540}.libraryBayContent{width:100%;display:flex;justify-content:center;align-items:flex-start;padding:10px 8px 0}.libraryBayInterior .shelfStage{width:100%;justify-content:center}.libraryBayInterior .shelfScene{width:100%;min-height:0;padding:22px 12px 54px}.app--grand .libraryBayInterior{overflow:hidden}.app--grand .libraryBayInterior .shelfScene{transform:scale(.8);transform-origin:top center;padding:12px 6px 36px}.app--grand .libraryBayInterior .shelfBooks{min-height:100px;padding:0 10px}.app--grand .libraryBayInterior .shelfPlank{height:10px}.app--grand .libraryBayInterior .book{--book-width: 50px;--book-height: 130px;--font-size: 9px}.app--grand .libraryBayInterior .bookPages{width:6px}.crownMolding{height:42px;background:linear-gradient(180deg,#d9b68a,#c49a6a 55%,#9a6c42);border-bottom:4px solid rgba(92,63,39,.8);box-shadow:inset 0 6px 8px #fff3,inset 0 -6px 10px #0000002e,0 10px 18px #00000040;position:relative;z-index:2}.crownMolding:before{content:"";position:absolute;left:8px;right:8px;top:6px;height:6px;border-radius:999px;background:linear-gradient(90deg,#fff1dcb3,#c89e7033,#fff1dcb3);opacity:.65}.crownMolding:after{content:"";position:absolute;left:10px;right:10px;bottom:6px;height:2px;background:#50341e8c;opacity:.6}.crownMoldingLip{position:absolute;left:6px;right:6px;bottom:-8px;height:10px;border-radius:0 0 6px 6px;background:linear-gradient(180deg,#976940e6,#5f3f27f2);box-shadow:0 6px 10px #00000038}.baseCabinet{height:96px;padding:12px 16px;display:flex;gap:0;background:linear-gradient(180deg,#c69e74fa,#a77b53fa);border-top:4px solid rgba(120,86,58,.9);box-shadow:inset 0 12px 16px #0000001f,inset 0 -12px 16px #0003;position:relative}.baseCabinet:before{content:"";position:absolute;left:12px;right:12px;top:6px;height:2px;background:#ffe8cd59;pointer-events:none}.cabinetDoor{flex:1;position:relative;border:2px solid rgba(98,68,44,.65);border-radius:8px;background:linear-gradient(180deg,#e0be968c,#ba8e63b3);box-shadow:inset 0 2px 4px #ffffff59,inset 0 -10px 12px #0000002e}.cabinetDoorLeft{border-right:3px solid rgba(86,60,38,.7)}.cabinetDoorRight{border-left:3px solid rgba(86,60,38,.7)}.cabinetDoor:after{content:"";position:absolute;top:50%;width:12px;height:12px;border-radius:50%;background:radial-gradient(circle at 30% 30%,#f6dfb2,#d3a45b 55%,#9a6c2f);border:1px solid rgba(122,85,40,.9);box-shadow:0 2px 3px #00000040;transform:translateY(-50%)}.cabinetDoorLeft:after{right:10px}.cabinetDoorRight:after{left:10px}.structural-column{width:24px;height:100%;background:linear-gradient(90deg,#3e2723,#8d6e63,#3e2723);position:absolute;right:0;top:0;z-index:10;box-shadow:-2px 0 5px #00000080}.columnSconce{position:absolute;top:32px;right:18px;transform:translate(50%);z-index:12;pointer-events:none}.columnSconce:before{content:"";position:absolute;left:50%;top:-8px;width:140px;height:120px;transform:translate(-50%);background:radial-gradient(circle at 50% 30%,#ffe2b273,#ffd08e40,#ffb45a00 70%);filter:blur(2px);opacity:.7;z-index:0}.columnSconceIcon{position:relative;z-index:1}.columnSconceIcon .wallSconceSvg{width:44px;opacity:.75}.columnPlaque{position:absolute;top:90px;right:18px;transform:translate(50%);z-index:12;pointer-events:none}.woodenPlaque{position:relative;width:150px}.plaqueSvg{width:100%;height:auto;display:block;filter:drop-shadow(0 6px 10px rgba(0,0,0,.28))}.plaqueLabel{position:absolute;top:50%;left:50%;transform:translate(-50%,-52%);font-family:Handlee,cursive;font-size:13px;letter-spacing:.8px;color:#3a2a10;text-transform:lowercase;white-space:nowrap;text-shadow:0 1px 0 rgba(255,255,255,.2);pointer-events:none}@media (max-width: 760px){.columnSconce{top:26px;right:14px}.columnSconce:before{width:120px;height:100px}.columnSconceIcon .wallSconceSvg{width:38px}.createLibraryWrapper{top:14px;left:14px}}@media (max-width: 480px){.columnSconce{top:22px;right:12px}.columnSconce:before{width:100px;height:86px}.columnSconceIcon .wallSconceSvg{width:32px;opacity:.7}.createLibraryWrapper{top:12px;left:12px}.createLibraryCta{padding:6px 12px;font-size:11px}.notFoundCard{padding:36px 28px}.notFoundTitle{font-size:24px}.createThisLibraryBtn{padding:12px 24px;font-size:14px}}.guestNameBadge{font-size:14px;color:var(--muted);margin-top:0}.app--personal{--me-paper: #fbf3e6;--me-paper-strong: #f1e0cc;--me-wood: #c99e78;--me-wood-dark: #a8744f;--me-ink: #2e2a2d}.personalLibrariesContainer{width:100%;max-width:1100px;padding:20px 16px 40px;position:relative;z-index:1}.personalHeader .titleText{font-size:32px}.meHero{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:24px;align-items:stretch;margin-bottom:32px}.meHeroCard{background:linear-gradient(165deg,var(--me-paper) 0%,var(--me-paper-strong) 100%);border-radius:26px;padding:28px 28px 24px;box-shadow:var(--shadow);position:relative;overflow:hidden;animation:riseIn .5s ease both}.meHeroCard:before{content:"";position:absolute;top:0;left:0;right:0;height:6px;background:linear-gradient(90deg,var(--me-wood),#d7b18c,var(--me-wood))}.meHeroCard:after{content:"";position:absolute;right:-60px;top:-80px;width:200px;height:200px;background:radial-gradient(circle at 40% 40%,rgba(255,255,255,.5),transparent 70%);opacity:.7}.meHeroTop{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:20px}.meBadge{font-family:Handlee,cursive;font-size:12px;letter-spacing:1px;text-transform:uppercase;color:#2e2a2da6;background:#2e2a2d14;padding:6px 12px;border-radius:999px}.meMeta{font-family:ui-monospace,SF Mono,Monaco,monospace;font-size:12px;color:#2e2a2d99}.meProfile{display:flex;gap:16px;align-items:center;margin-bottom:18px;position:relative;z-index:1}.meAvatar{width:58px;height:58px;border-radius:50%;object-fit:cover;border:2px solid rgba(255,255,255,.8);box-shadow:0 6px 16px #00000026;background:#ffffff80}.meProfileText{display:flex;flex-direction:column;gap:6px}.meHeroTitle{font-family:Handlee,cursive;font-size:26px;margin:0;color:var(--me-ink)}.meHeroSubtitle{margin:0;font-size:15px;color:#2e2a2da6;line-height:1.5}.meHeroActions{display:flex;flex-wrap:wrap;gap:12px;position:relative;z-index:1}.mePrimaryButton{border:0;background:linear-gradient(135deg,#2e2a2d,#3a3438);color:#fff;padding:12px 22px;border-radius:999px;font-family:Handlee,cursive;font-size:14px;letter-spacing:.4px;cursor:pointer;box-shadow:0 6px 16px #0000002e;transition:transform .15s ease,box-shadow .15s ease}.mePrimaryButton:hover{transform:translateY(-1px);box-shadow:0 8px 20px #00000038}.meGhostButton{border:1px solid rgba(46,42,45,.18);background:#ffffff80;color:#2e2a2db3;padding:12px 20px;border-radius:999px;font-family:Handlee,cursive;font-size:13px;cursor:pointer;transition:border-color .15s ease,color .15s ease,transform .15s ease}.meGhostButton:hover{border-color:#2e2a2d59;color:#2e2a2dd9;transform:translateY(-1px)}.meStats{display:grid;gap:16px}.meStatCard{background:linear-gradient(175deg,#ffffffb3,#f1e2d2d9);border-radius:20px;padding:18px 18px 22px;border:1px solid rgba(46,42,45,.1);box-shadow:var(--softshadow);position:relative;overflow:hidden;animation:riseIn .6s ease both}.meStatCard:after{content:"";position:absolute;left:0;right:0;bottom:0;height:6px;background:linear-gradient(90deg,var(--me-wood-dark),var(--me-wood),var(--me-wood-dark))}.meStatLabel{font-family:Handlee,cursive;font-size:13px;text-transform:uppercase;letter-spacing:1px;color:#2e2a2d99}.meStatValue{font-family:Handlee,cursive;font-size:24px;margin-top:8px;color:var(--me-ink)}.meStatCaption{margin-top:4px;font-size:13px;color:#2e2a2d8c}.meLibrarySection{display:flex;flex-direction:column;gap:16px}.meSectionHeader{display:flex;align-items:center;justify-content:space-between;gap:12px}.meSectionHeader h3{margin:0;font-family:Handlee,cursive;font-size:22px;color:var(--me-ink)}.meTextButton{border:0;background:transparent;font-family:Handlee,cursive;font-size:14px;color:#2e2a2d99;cursor:pointer;transition:color .15s ease}.meTextButton:hover{color:#2e2a2dd9}.librariesGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:18px}.meLibrariesGrid{animation:riseIn .6s ease both}.libraryCard{background:linear-gradient(165deg,#fffc,#f3e6d6f2);border-radius:20px;padding:20px;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;border:1px solid rgba(46,42,45,.12);box-shadow:var(--softshadow);position:relative;overflow:hidden;animation:liftIn .5s ease both;animation-delay:calc(var(--stagger, 0) * .05s)}.libraryCard:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--me-wood),#dfbf9f,var(--me-wood));opacity:.9}.libraryCard:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:#2e2a2d40}.libraryCardTop{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:14px}.libraryCardBadge{font-family:Handlee,cursive;font-size:11px;letter-spacing:.8px;text-transform:uppercase;color:#2e2a2d99;background:#2e2a2d14;padding:4px 10px;border-radius:999px}.libraryCardSlug{font-family:ui-monospace,SF Mono,Monaco,monospace;font-size:12px;color:#2e2a2d8c}.libraryCard h3{margin:0 0 6px;font-size:19px;font-weight:600;color:var(--me-ink)}.libraryCardMeta{margin:0;font-size:13px;color:#2e2a2d99;font-family:Handlee,cursive}.librarySlug{margin:0;font-size:14px;color:var(--muted);font-family:monospace}.libraryCard.createCard{border:2px dashed rgba(46,42,45,.2);background:#ffffff59;display:flex;align-items:center;justify-content:center;min-height:140px}.createCardContent{text-align:center}.createCardIcon{font-size:32px;color:#2e2a2d80;display:block;margin-bottom:8px}.createCardContent p{margin:0;color:#2e2a2d8c;font-size:14px;font-family:Handlee,cursive}.meAuthCard{max-width:520px;margin:30px auto 0;padding:36px 32px;background:linear-gradient(165deg,var(--me-paper) 0%,var(--me-paper-strong) 100%);border-radius:26px;box-shadow:var(--shadow);text-align:center;position:relative;overflow:hidden;animation:riseIn .5s ease both}.meAuthCard:before{content:"";position:absolute;top:0;left:0;right:0;height:6px;background:linear-gradient(90deg,var(--me-wood),#d7b18c,var(--me-wood))}.meAuthActions{margin-top:22px;display:flex;flex-wrap:wrap;gap:12px;justify-content:center}.emptyState{text-align:center;padding:46px 20px}.emptyState p{font-size:16px;color:var(--muted);margin-bottom:20px}.meEmptyState .mePrimaryButton{margin-top:8px}.createLibraryButton{padding:12px 24px;border-radius:24px;border:none;background:var(--ink);color:#fff;font-size:16px;font-weight:500;cursor:pointer;transition:all .2s}.createLibraryButton:hover{background:#1a1819;transform:translateY(-1px)}@keyframes riseIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes liftIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 960px){.meHero{grid-template-columns:1fr}}@media (max-width: 560px){.personalLibrariesContainer{padding:16px 12px 32px}.meHeroCard{padding:22px}.meHeroTitle{font-size:22px}.meHeroActions{flex-direction:column;align-items:stretch}.mePrimaryButton,.meGhostButton{width:100%;justify-content:center}.meStatCard{padding:16px 16px 20px}}.authCallback{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;text-align:center}.authCallback h2{font-size:24px;margin-bottom:16px}.errorState{text-align:center;padding:60px 20px;color:#d32f2f;font-size:18px}.toast-container{position:fixed;bottom:24px;left:50%;transform:translate(-50%);z-index:9999;display:flex;flex-direction:column;gap:8px;pointer-events:none}.toast{display:flex;align-items:center;gap:10px;padding:12px 20px;border-radius:12px;background:var(--ink);color:#fff;font-size:14px;font-weight:500;box-shadow:0 8px 24px #00000040;animation:toastSlideIn .3s cubic-bezier(.18,.89,.32,1.28);pointer-events:auto}.toast--success{background:linear-gradient(135deg,#2d7a3f,#1e5a2f)}.toast--error{background:linear-gradient(135deg,#c53030,#9a2424)}.toast--info{background:linear-gradient(135deg,#2563eb,#1d4ed8)}.toast-icon{font-size:16px;font-weight:700}.toast-message{white-space:nowrap}@keyframes toastSlideIn{0%{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.share-button{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:20px;border:1px solid rgba(46,42,45,.2);background:var(--paper);color:var(--ink);font-size:13px;font-weight:500;font-family:var(--font);cursor:pointer;transition:all .2s}.share-button:hover{background:var(--paper2);border-color:#2e2a2d4d;transform:translateY(-1px)}.share-button:active{transform:translateY(0)}.share-button:disabled{opacity:.6;cursor:not-allowed}.share-icon{flex-shrink:0}.share-text{white-space:nowrap}.share-button--header{position:fixed;top:20px;right:140px;z-index:50}.book-spine-skeleton{position:relative;border-radius:4px 10px 10px 4px;background:linear-gradient(180deg,#c8beb44d,#b4aaa066);overflow:hidden}.skeleton-shimmer{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.4) 50%,transparent 100%);animation:shimmer 1.5s infinite}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.shelf-skeleton-container{display:flex;flex-direction:column;gap:32px;padding:20px}.shelf-skeleton{display:flex;flex-direction:column}.shelf-skeleton-books{display:flex;align-items:flex-end;justify-content:center;gap:4px;min-height:140px;padding:0 18px}.shelf-skeleton-wood{height:14px;border-radius:999px;background:linear-gradient(180deg,#c8aa9666,#b4968280)}.loadingState{text-align:center;padding:60px 20px;color:var(--muted);font-size:16px}
