:root{--bg-primary:#0B0914;--bg-secondary:#141124;--bg-section:#1C1635;--bg-card:#17122A;--bg-card-hover:#221B3D;--gold:#F2C14E;--gold-lit:#F7D07A;--gold-dim:#c9982b;--amber:#E89B3B;--amber-dim:#b8741e;--midnight:#3A4A6B;--midnight-dim:#2a3652;--text-primary:#F5F4FA;--text-muted:#CAC6D8;--text-dim:#9C97B0;--text-faint:#837D9B;--glow-gold:0 0 40px rgba(242, 193, 78, 0.25);--glow-gold-sm:0 0 16px rgba(242, 193, 78, 0.15);--glow-amber:0 0 30px rgba(232, 155, 59, 0.2);--shadow-sm:0 2px 12px rgba(0, 0, 0, 0.4);--shadow-md:0 8px 32px rgba(0, 0, 0, 0.5);--shadow-lg:0 20px 60px rgba(0, 0, 0, 0.6);--shadow-card:0 4px 24px rgba(0, 0, 0, 0.5),0 0 0 1px rgba(242, 193, 78, 0.06);--font-heading:'Trirong',Georgia,'Times New Roman',serif;--font-body:'Sarabun',system-ui,-apple-system,sans-serif;--text-xs:0.8125rem;--text-sm:0.9375rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:2rem;--text-display-sm:clamp(1.75rem, 3vw, 2.5rem);--text-display-md:clamp(2rem, 4vw, 3rem);--text-display-lg:clamp(2rem, 5vw, 4rem);--text-lead:clamp(1.125rem, 2vw, 1.25rem);--on-gold:#1a1000;--veil-surface:rgba(255, 255, 255, 0.05);--veil-surface-lit:rgba(255, 255, 255, 0.08);--veil-line:rgba(255, 255, 255, 0.1);--veil-line-lit:rgba(255, 255, 255, 0.2);--lamp-edge:rgba(242, 193, 78, 0.06);--lamp-edge-soft:rgba(242, 193, 78, 0.1);--lamp-edge-lit:rgba(242, 193, 78, 0.15);--lamp-edge-mid:rgba(242, 193, 78, 0.2);--lamp-edge-strong:rgba(242, 193, 78, 0.3);--danger:#f87171;--danger-veil:rgba(248, 113, 113, 0.1);--danger-edge:rgba(248, 113, 113, 0.3);--success:#4CAF50;--success-deep:#3d9142;--on-success:#06210a;--success-veil:rgba(76, 175, 80, 0.1);--success-edge:rgba(76, 175, 80, 0.3);--info:#6C81A8;--lamp-flare:#ffdf8c;--on-photo:#ffffff;--on-light:#333333;--scrim-nav:rgba(11, 9, 20, 0.92);--scrim-panel:rgba(11, 9, 20, 0.85);--scrim-modal:rgba(4, 3, 10, 0.88);--crop-canvas:#000;--crop-chrome:#120e1f;--book-spine:#1a1a1a;--avatar-initial:5rem;--avatar-initial-sm:3.5rem;--space-xs:4px;--space-sm:8px;--space-md:16px;--space-lg:24px;--space-xl:40px;--space-2xl:64px;--space-3xl:96px;--space-4xl:128px;--radius-2xs:2px;--radius-xs:4px;--radius-sm:6px;--radius-md:10px;--radius-lg:12px;--radius-xl:6px;--radius-pill:99px;--transition-fast:0.15s cubic-bezier(0.4, 0, 0.2, 1);--transition-base:0.3s cubic-bezier(0.4, 0, 0.2, 1);--transition-slow:0.5s cubic-bezier(0.4, 0, 0.2, 1);--transition-spring:0.4s cubic-bezier(0.16, 1, 0.3, 1);--ease-enter:520ms cubic-bezier(.16, 1, .3, 1);--ease-exit:240ms cubic-bezier(.4, 0, 1, 1);--ease-hover:180ms cubic-bezier(.33, 1, .68, 1);--ease-veil:700ms cubic-bezier(.76, 0, .24, 1)}*,::after,::before{box-sizing:border-box;margin:0;padding:0}[hidden]{display:none!important}.nowrap{white-space:nowrap}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}html{scroll-behavior:smooth;font-size:16px;-webkit-text-size-adjust:100%}body{font-family:var(--font-body);background-color:var(--bg-primary);background-image:radial-gradient(circle at 15% 50%,rgba(242,193,78,.03),transparent 25%),radial-gradient(circle at 85% 30%,rgba(242,193,78,.03),transparent 25%);background-attachment:fixed;color:var(--text-primary);line-height:1.6;min-height:100vh;display:flex;flex-direction:column}img{max-width:100%;height:auto;display:block}a{color:inherit;text-decoration:none}ol,ul{list-style:none}button{font-family:var(--font-body);cursor:pointer;border:none;background:0 0}:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:var(--radius-xs)}@media (prefers-reduced-motion:reduce){*,::after,::before{animation-duration:0s!important;transition-duration:0s!important}html{scroll-behavior:auto}.js .fade-up,.js .reveal,.js .reveal-left,.js .reveal-right,.js .stagger-children>*{opacity:1!important;transform:none!important}}.container{width:100%;max-width:1200px;margin:0 auto;padding:0 var(--space-xl)}@media (max-width:768px){.container{padding:0 var(--space-lg)}}@media (max-width:480px){.container{padding:0 var(--space-md)}}.js .fade-up,.js .reveal,.js .reveal-left,.js .reveal-right{opacity:0;transition:opacity var(--transition-slow),transform var(--transition-slow)}.js .reveal{transform:translateY(24px)}.js .reveal-left{transform:translateX(-32px)}.js .reveal-right{transform:translateX(32px)}.js .fade-up{transform:translateY(20px)}.js .fade-up.visible,.js .reveal-left.visible,.js .reveal-right.visible,.js .reveal.visible{opacity:1;transform:translate(0)}@keyframes revealFailsafe{to{opacity:1;transform:translate(0)}}.js .fade-up,.js .reveal,.js .reveal-left,.js .reveal-right,.js .stagger-children>*{animation:revealFailsafe 10ms linear 4s forwards}.js .fade-up.visible,.js .reveal-left.visible,.js .reveal-right.visible,.js .reveal.visible,.js .stagger-children.visible>*{animation:none}.js .stagger-children>*{opacity:0;transform:translateY(20px);transition:opacity .5s ease,transform .5s ease}.stagger-children.visible>:first-child{transition-delay:0s}.stagger-children.visible>:nth-child(2){transition-delay:0.1s}.stagger-children.visible>:nth-child(3){transition-delay:0.2s}.stagger-children.visible>:nth-child(4){transition-delay:0.3s}.stagger-children.visible>*{opacity:1;transform:translateY(0)}.section-label{display:inline-flex;align-items:center;gap:var(--space-sm);font-family:var(--font-body);font-size:var(--text-xs);font-weight:600;letter-spacing:.15em;text-transform:uppercase;color:var(--gold);margin-bottom:var(--space-md)}.section-label::before{content:'';display:block;width:24px;height:1px;background:var(--gold);opacity:.7}.section-header{text-align:center;margin-bottom:var(--space-3xl)}.section-title{font-family:var(--font-heading);font-size:var(--text-display-md);font-weight:600;color:var(--text-primary);line-height:1.2;margin-bottom:var(--space-md)}.section-sub{font-size:var(--text-base);color:var(--text-muted);max-width:480px;margin:0 auto;line-height:1.8}.navbar{position:fixed;top:0;left:0;right:0;z-index:1000;padding:var(--space-lg) 0;transition:background var(--transition-base),box-shadow var(--transition-base),backdrop-filter var(--transition-base)}.navbar.scrolled{background:var(--scrim-nav);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);padding:var(--space-md) 0;box-shadow:0 1px 0 rgba(242,193,78,.08),var(--shadow-sm)}.navbar-inner{display:flex;align-items:center;justify-content:space-between;max-width:1200px;margin:0 auto;padding:0 var(--space-xl)}.navbar-logo{font-family:var(--font-heading);font-size:var(--text-xl);font-weight:700;letter-spacing:.12em;color:var(--gold);text-shadow:var(--glow-gold-sm);transition:text-shadow var(--transition-base);flex-shrink:0}.mobile-navbar-profile-btn{display:none!important}@media (max-width:900px){.mobile-navbar-profile-btn.logged-in{display:flex!important}}.navbar-logo:hover{text-shadow:var(--glow-gold)}.navbar-links{display:flex;align-items:center;gap:var(--space-xl)}.nav-link{font-size:var(--text-sm);font-weight:500;color:var(--text-muted);letter-spacing:.02em;transition:color var(--transition-fast);position:relative}.nav-link::after{content:'';position:absolute;bottom:-2px;left:0;right:0;height:1px;background:var(--gold);transform:scaleX(0);transition:transform var(--transition-fast);transform-origin:left}.nav-link.active,.nav-link:hover{color:var(--text-primary)}.nav-link.active::after,.nav-link:hover::after{transform:scaleX(1)}.nav-link.active{text-shadow:0 0 10px rgba(242,193,78,.5)}.navbar-hamburger{display:none;flex-direction:column;gap:5px;padding:12px;margin:-12px;cursor:pointer;background:0 0;border:none;min-width:44px;min-height:44px;align-items:center;justify-content:center}.navbar-hamburger span{display:block;width:22px;height:1.5px;background:var(--text-muted);transition:transform var(--transition-base),opacity var(--transition-base)}.navbar-hamburger.open span:first-child{transform:translateY(6.5px) rotate(45deg)}.navbar-hamburger.open span:nth-child(2){opacity:0}.navbar-hamburger.open span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}.mobile-nav{display:none;position:fixed;inset:0;background:var(--scrim-panel);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);z-index:999;flex-direction:column;align-items:center;justify-content:center;padding:2rem 0;overflow-y:auto;gap:2.5rem;opacity:0;visibility:hidden;transition:opacity var(--transition-base),visibility var(--transition-base)}.mobile-nav.open{opacity:1;visibility:visible}.mobile-nav .nav-link{font-family:var(--font-heading);font-size:var(--text-2xl);font-weight:600;color:var(--text-muted);letter-spacing:.05em;text-decoration:none;text-shadow:0 2px 8px rgba(0,0,0,.4);display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 var(--space-md);transform:translateY(30px);opacity:0;transition:color var(--transition-base),transform var(--transition-spring),opacity var(--transition-base),text-shadow var(--transition-base)}.mobile-nav.open .nav-link{opacity:1;transform:translateY(0)}.mobile-nav.open .nav-link:first-child{transition-delay:0.1s}.mobile-nav.open .nav-link:nth-child(2){transition-delay:0.15s}.mobile-nav.open .nav-link:nth-child(3){transition-delay:0.2s}.mobile-nav.open .nav-link:nth-child(4){transition-delay:0.25s}.mobile-nav.open .nav-link:nth-child(5){transition-delay:0.3s}.mobile-nav .nav-link:active,.mobile-nav .nav-link:hover{color:var(--gold);transform:translateY(-4px) scale(1.05);text-shadow:var(--glow-gold-sm)}.mobile-nav .nav-link::after{display:none}.navbar .nav-cart-btn-mobile{display:none}@media (max-width:768px){.navbar-links{display:none}.navbar-hamburger{display:flex}.mobile-nav{display:flex}.navbar-inner{padding:0 var(--space-lg);gap:var(--space-sm)}.navbar .nav-cart-btn-mobile{display:inline-flex;margin-left:auto;flex-shrink:0}}.section-hero{position:relative;min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;background:radial-gradient(ellipse 80% 60% at 50% 20%,rgba(242,193,78,.08) 0,rgba(232,155,59,.04) 40%,transparent 70%),var(--bg-primary)}.hero-sky{position:absolute;inset:0;z-index:0;pointer-events:none;background-image:radial-gradient(ellipse 70% 50% at 12% 8%,rgba(58,74,107,.2),transparent 70%),radial-gradient(ellipse 55% 45% at 88% 18%,rgba(58,74,107,.14),transparent 70%),radial-gradient(1px 1px at 34px 58px,rgba(245,244,250,.55),transparent),radial-gradient(1px 1px at 128px 22px,rgba(245,244,250,.4),transparent),radial-gradient(1px 1px at 219px 143px,rgba(245,244,250,.6),transparent),radial-gradient(1px 1px at 76px 231px,rgba(245,244,250,.35),transparent),radial-gradient(1px 1px at 297px 91px,rgba(245,244,250,.5),transparent),radial-gradient(1px 1px at 411px 264px,rgba(245,244,250,.45),transparent),radial-gradient(1px 1px at 168px 388px,rgba(245,244,250,.55),transparent),radial-gradient(1px 1px at 355px 447px,rgba(245,244,250,.38),transparent),radial-gradient(1px 1px at 49px 462px,rgba(245,244,250,.48),transparent),radial-gradient(1px 1px at 478px 37px,rgba(245,244,250,.42),transparent);background-size:100% 100%,100% 100%,520px 520px,520px 520px,520px 520px,520px 520px,520px 520px,520px 520px,520px 520px,520px 520px,520px 520px,520px 520px;background-repeat:no-repeat,no-repeat,repeat,repeat,repeat,repeat,repeat,repeat,repeat,repeat,repeat,repeat;-webkit-mask-image:radial-gradient(circle 620px at var(--lamp-x,68%) var(--lamp-y,45%),transparent 0%,#000 78%),linear-gradient(to bottom,#000 55%,transparent 92%);mask-image:radial-gradient(circle 620px at var(--lamp-x,68%) var(--lamp-y,45%),transparent 0%,#000 78%),linear-gradient(to bottom,#000 55%,transparent 92%);-webkit-mask-composite:source-in;mask-composite:intersect;transform:translate3d(var(--sky-x,0),var(--sky-y,0),0);transition:transform .9s cubic-bezier(.16, 1, .3, 1);will-change:transform}.hero-sky::after,.hero-sky::before{content:"";position:absolute;inset:-8%;background-repeat:repeat}.hero-sky::before{background-image:radial-gradient(1.4px 1.4px at 91px 116px,rgba(245,244,250,.8),transparent),radial-gradient(1.4px 1.4px at 268px 49px,rgba(245,244,250,.65),transparent),radial-gradient(1.4px 1.4px at 402px 302px,rgba(245,244,250,.75),transparent),radial-gradient(1.4px 1.4px at 577px 188px,rgba(245,244,250,.6),transparent),radial-gradient(1.4px 1.4px at 664px 561px,rgba(245,244,250,.7),transparent),radial-gradient(1.4px 1.4px at 190px 642px,rgba(245,244,250,.55),transparent),radial-gradient(1.4px 1.4px at 497px 693px,rgba(245,244,250,.72),transparent);background-size:730px 730px;animation:skyBreatheA 9s ease-in-out infinite}.hero-sky::after{background-image:radial-gradient(2px 2px at 132px 404px,rgba(245,244,250,.95),rgba(245,244,250,.1) 45%,transparent 70%),radial-gradient(2px 2px at 351px 183px,rgba(245,244,250,.85),rgba(245,244,250,.08) 45%,transparent 70%),radial-gradient(2px 2px at 606px 497px,rgba(245,244,250,.9),rgba(245,244,250,.1) 45%,transparent 70%),radial-gradient(2px 2px at 823px 636px,rgba(245,244,250,.8),rgba(245,244,250,.08) 45%,transparent 70%);background-size:910px 910px;animation:skyBreatheB 14s ease-in-out infinite}@keyframes skyBreatheA{0%,100%{opacity:.75}50%{opacity:1}}@keyframes skyBreatheB{0%,100%{opacity:1}50%{opacity:.72}}@media (prefers-reduced-motion:reduce){.hero-sky{transition:none}.hero-sky::after,.hero-sky::before{animation:none}}@media (max-width:768px){.hero-sky::after{display:none}.hero-sky{-webkit-mask-image:linear-gradient(to bottom,#000 50%,transparent 88%);mask-image:linear-gradient(to bottom,#000 50%,transparent 88%)}}.hero-lamp{position:absolute;left:0;top:0;width:1100px;height:1100px;margin:-550px 0 0 -550px;background:radial-gradient(circle at 50% 50%,rgba(242,193,78,.14) 0,rgba(242,193,78,.045) 30%,transparent 58%);pointer-events:none;mix-blend-mode:screen;transform:translate3d(68%,45%,0);transition:transform .6s cubic-bezier(.16, 1, .3, 1);will-change:transform}@media (pointer:coarse),(prefers-reduced-motion:reduce){.hero-lamp{transition:none}}.hero-line{position:absolute;bottom:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--lamp-edge-mid),transparent);transform:scaleX(0);transform-origin:center;animation:drawLine .9s cubic-bezier(.16,1,.3,1) .3s forwards}@keyframes drawLine{to{transform:scaleX(1)}}@media (prefers-reduced-motion:reduce){.hero-line{transform:scaleX(1);animation:none}}.hero-split{position:relative;z-index:1;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:var(--space-4xl);max-width:1200px;width:100%;padding:140px var(--space-xl) var(--space-4xl);margin:0 auto}.hero-text-side{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-md)}.hero-split .hero-text-side>*{margin-bottom:0}.hero-split .hero-text-side .btn{margin-top:var(--space-sm)}.hero-book-side{display:flex;justify-content:center;align-items:center;perspective:1200px;animation:bookFloatIdle 6s ease-in-out infinite}@keyframes bookFloatIdle{0%,100%{transform:translateY(0)}50%{transform:translateY(-15px)}}.hero-book-3d{position:relative;width:100%;max-width:320px;transform:rotateY(-17deg) rotateX(3deg);transition:transform var(--ease-enter),box-shadow var(--ease-enter);box-shadow:-20px 26px 44px -18px rgba(0,0,0,.8);border-radius:var(--radius-2xs) var(--radius-xs) var(--radius-xs) var(--radius-2xs)}.hero-book-3d:hover{box-shadow:-24px 34px 56px -20px rgba(0,0,0,.85)}.hero-book-3d img{width:100%;height:auto;border-radius:var(--radius-xs) var(--radius-sm) var(--radius-sm) var(--radius-xs);display:block}@media (max-width:900px){.hero-split{grid-template-columns:1fr;text-align:center;gap:var(--space-lg);padding:116px var(--space-lg) var(--space-xl)}.hero-text-side{align-items:center}.hero-book-3d{transform:rotateY(0) rotateX(0)}}@media (max-width:600px){.section-hero{min-height:0}.hero-split{padding:104px var(--space-lg) var(--space-2xl);gap:var(--space-md)}.hero-text-side{gap:var(--space-sm)}.hero-book-3d{max-width:240px}}.hero-badge{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-md);padding:8px 20px;background:0 0;border:1px solid var(--lamp-edge-mid);border-radius:var(--radius-pill)}.hero-brand-icon{width:20px;height:20px;color:var(--gold)}.hero-brand-text{font-family:var(--font-heading);font-size:var(--text-xs);font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--gold)}.hero-title{font-family:var(--font-heading);font-size:var(--text-display-lg);font-weight:700;line-height:1.3;color:var(--text-primary);margin-bottom:var(--space-sm);text-align:left}@media (max-width:900px){.hero-title{text-align:center}}.hero-title .text-highlight{color:var(--gold);display:inline-block;line-height:1.2;padding:0 .1em;margin:0 -.1em}@supports ((background-clip:text) or (-webkit-background-clip:text)){.hero-title .text-highlight{background:linear-gradient(135deg,var(--gold) 0,var(--lamp-flare) 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}}@media (forced-colors:active){.hero-title .text-highlight{background:0 0;-webkit-text-fill-color:currentColor;color:currentColor}}.hero-tagline{font-size:var(--text-lead);color:var(--text-muted);line-height:1.7;margin-bottom:var(--space-2xl);font-weight:400;text-align:left}@media (max-width:900px){.hero-tagline{text-align:center}}.hero-visual-col{display:flex;justify-content:center;align-items:center;perspective:1000px}.hero-book-showcase{position:relative;width:100%;max-width:320px;transform-style:preserve-3d;transform:rotateY(-15deg) rotateX(5deg);animation:floatBook 6s ease-in-out infinite}@media (max-width:768px){.hero-book-showcase{max-width:120px;margin:0 auto}}.hero-book-img{width:100%;height:auto;border-radius:var(--radius-xs) var(--radius-sm) var(--radius-sm) var(--radius-xs);box-shadow:6px 0 8px -6px rgba(0,0,0,.9) inset,-1px 0 2px var(--veil-line) inset,20px 20px 40px rgba(0,0,0,.8),5px 5px 15px rgba(0,0,0,.5);position:relative;z-index:2}.hero-book-shadow{position:absolute;top:50%;left:50%;width:110%;height:110%;transform:translate(-50%,-50%);background:radial-gradient(circle,var(--lamp-edge-lit) 0,transparent 60%);z-index:1;filter:blur(20px)}@keyframes floatBook{0%,100%{transform:rotateY(-15deg) rotateX(5deg) translateY(0)}50%{transform:rotateY(-10deg) rotateX(8deg) translateY(-15px)}}.hero-cta-btn{display:inline-flex;align-items:center;gap:var(--space-sm);padding:var(--space-md) var(--space-xl);background:var(--gold);color:var(--on-gold);font-weight:700;font-size:var(--text-sm);border-radius:var(--radius-xl);transition:transform var(--transition-spring),box-shadow var(--transition-base);box-shadow:inset 0 1px 1px rgba(255,255,255,.4),inset 0 -1px 2px rgba(0,0,0,.2),0 4px 12px var(--lamp-edge-lit);cursor:pointer;transition-delay:0.4s!important;letter-spacing:.02em}.hero-cta-btn:hover{transform:translateY(-2px) scale(1.02);box-shadow:inset 0 1px 1px rgba(255,255,255,.5),inset 0 -1px 2px rgba(0,0,0,.2),0 6px 16px var(--lamp-edge-mid)}.hero-cta-btn:active{transform:translateY(0) scale(.98)}.scroll-indicator{position:absolute;bottom:var(--space-xl);left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:var(--space-xs);color:var(--text-muted);font-size:var(--text-xs);letter-spacing:.2em;text-transform:uppercase;animation:lampBreathe 6s ease-in-out infinite;cursor:pointer}@keyframes lampBreathe{0%,100%{opacity:.72}50%{opacity:1}}@media (prefers-reduced-motion:reduce){.scroll-indicator{animation:none;opacity:1}}@keyframes float{0%,100%{transform:translate(-50%,0)}50%{transform:translate(-50%,8px)}}.scroll-indicator:hover{opacity:1;color:var(--gold)}.scroll-arrow{width:1px;height:40px;background:linear-gradient(to bottom,rgba(242,193,78,.6),transparent);position:relative;animation:scrollLine 2s ease-in-out infinite}@keyframes scrollFade{from{opacity:0;transform:translateX(-50%) translateY(10px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}@keyframes scrollLine{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform:scaleY(1);transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}@media (max-width:768px){.hero-split .hero-content{padding:0}.desktop-only{display:none!important}.hero-animation-zone{max-width:100%}.book-spine:first-child,.book-spine:nth-child(10),.book-spine:nth-child(9){display:none}}.section-about{padding:var(--space-4xl) 0;background:var(--bg-secondary);position:relative;overflow:hidden}.section-about::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--lamp-edge-lit),transparent)}.section-about::after{content:'';position:absolute;bottom:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--lamp-edge-lit),transparent)}.about-grid{display:grid;grid-template-columns:280px 1fr;gap:var(--space-3xl);align-items:center}.about-image-wrap{display:flex;justify-content:center}.author-avatar{position:relative;width:min(390px,72vw);aspect-ratio:1;height:auto}.author-avatar-frame{width:100%;height:100%;border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--veil-line);box-shadow:0 24px 44px -20px rgba(0,0,0,.85);background:var(--bg-card);display:flex;align-items:center;justify-content:center;font-family:var(--font-heading);font-size:var(--avatar-initial);color:var(--gold);position:relative}.author-avatar-frame canvas,.author-avatar-frame img{width:100%;height:100%;object-fit:cover;display:block}.about-text .section-label{margin-bottom:var(--space-sm)}.about-name{font-family:var(--font-heading);font-size:var(--text-display-sm);font-weight:700;color:var(--text-primary);margin-bottom:var(--space-lg);line-height:1.2}.about-bio{font-size:var(--text-base);color:var(--text-muted);line-height:1.9;margin-bottom:var(--space-xl)}.about-story{padding:var(--space-lg);background:var(--bg-card);border-radius:var(--radius-md);box-shadow:var(--shadow-sm),inset 1px 1px 0 var(--lamp-edge-lit)}.about-story,.author-avatar-frame,.book-card{position:relative;transition:transform .15s cubic-bezier(.16, 1, .3, 1),box-shadow .3s ease;will-change:transform}.about-story::before,.book-card::before{content:'';position:absolute;inset:0;border-radius:inherit;background:radial-gradient(600px circle at var(--mouse-x,50%) var(--mouse-y,50%),rgba(242,193,78,.05),transparent 40%);opacity:var(--hover-opacity, 0);transition:opacity .3s ease;pointer-events:none;z-index:2}.author-avatar-frame::after{content:'';position:absolute;inset:0;border-radius:inherit;background:radial-gradient(300px circle at var(--mouse-x,50%) var(--mouse-y,50%),rgba(242,193,78,.12),transparent 50%);opacity:var(--hover-opacity, 0);transition:opacity .3s ease;pointer-events:none;z-index:10}.about-story h3{font-family:var(--font-heading);font-size:var(--text-lg);color:var(--gold);margin-bottom:var(--space-sm);font-weight:600}.about-story p{font-size:var(--text-sm);color:var(--text-muted);line-height:1.8}@media (max-width:900px){.about-grid{grid-template-columns:1fr;text-align:center;gap:var(--space-2xl)}.about-image-wrap{justify-content:center}.about-story{text-align:left}.section-label{justify-content:center}}@media (max-width:768px){.author-avatar{width:160px;height:160px}.author-avatar-frame{font-size:var(--avatar-initial-sm)}}.section-books{padding:var(--space-4xl) 0;background:var(--bg-primary);position:relative;overflow:hidden}.section-books::after{content:'';position:absolute;inset:0;background:radial-gradient(800px circle at var(--mouse-x,50%) var(--mouse-y,50%),rgba(242,193,78,.04),transparent 50%);opacity:var(--hover-opacity, 0);transition:opacity .4s ease;pointer-events:none;z-index:0}.section-books .container{position:relative;z-index:1}.section-books::before{content:'';position:absolute;top:0;left:25%;right:25%;height:1px;background:linear-gradient(90deg,transparent,var(--lamp-edge-mid),transparent)}.books-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));gap:34px;margin-inline:auto}.books-grid:has(> .book-card:only-child){max-width:380px}.books-grid:has(> .book-card:nth-child(2):last-child){max-width:800px}.books-toolbar{display:flex;gap:var(--space-md);margin-bottom:var(--space-xl);flex-wrap:wrap;align-items:center;justify-content:space-between}.books-toolbar:not(:has(> :not([hidden]))){display:none}.search-box{flex:1;min-width:250px;position:relative}.search-box input{width:100%;padding:12px var(--space-md) 12px 48px;border-radius:var(--radius-pill);background:var(--veil-surface);border:1px solid var(--veil-line);color:var(--text-primary);font-family:var(--font-body);font-size:var(--text-base);transition:border-color var(--transition-fast),background var(--transition-fast)}.search-box input::placeholder{color:var(--text-dim)}.search-box input:hover{background:var(--veil-surface-lit)}.search-box input:focus{outline:0;border-color:var(--gold);background:var(--veil-surface-lit)}.search-box>svg{position:absolute;left:var(--space-md);top:50%;transform:translateY(-50%);color:var(--text-dim);pointer-events:none}.filter-box{display:flex;gap:var(--space-sm);flex-wrap:wrap}.filter-chip{display:inline-flex;align-items:center;gap:6px;padding:10px 18px;min-height:44px;background:0 0;color:var(--gold);font-family:var(--font-body);font-size:var(--text-sm);font-weight:600;border:1px solid var(--lamp-edge-strong);border-radius:var(--radius-pill);cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast)}.filter-chip:hover{background:var(--lamp-edge);border-color:var(--gold)}.filter-chip.active{background:var(--gold);color:var(--on-gold);border-color:transparent}.filter-chip-count{font-size:var(--text-xs);font-weight:700;opacity:.65}.books-show-more{display:flex;justify-content:center;margin-top:var(--space-xl)}.books-empty,.books-error{grid-column:1/-1;display:flex;flex-direction:column;align-items:center;gap:var(--space-md);padding:var(--space-3xl) var(--space-lg);text-align:center;color:var(--text-dim)}.books-loading{grid-column:1/-1;display:flex;flex-direction:column;align-items:center;gap:var(--space-md);padding:var(--space-3xl) 0;color:var(--text-dim);font-size:var(--text-sm)}.loading-spinner{width:32px;height:32px;border:2px solid var(--lamp-edge-lit);border-top-color:var(--gold);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.book-card{background:0 0;border:none;padding:0;cursor:pointer;transition:transform var(--ease-hover);display:flex;flex-direction:column;position:relative}.book-card:hover{transform:translateY(-4px)}.book-card .book-cover{box-shadow:0 20px 36px -18px rgba(0,0,0,.85);transition:box-shadow var(--ease-hover)}.book-card:hover .book-cover{box-shadow:0 26px 44px -18px rgba(0,0,0,.9)}.book-badge-new{position:absolute;top:var(--space-md);right:var(--space-md);background:var(--gold);color:var(--on-gold);font-size:var(--text-xs);font-weight:800;letter-spacing:.1em;text-transform:uppercase;padding:4px var(--space-sm);border-radius:var(--radius-xs);z-index:2;box-shadow:inset 0 1px 1px rgba(255,255,255,.4),inset 0 -1px 1px rgba(0,0,0,.2),0 2px 8px var(--lamp-edge-lit)}.book-cover{width:100%;aspect-ratio:2/3;height:auto;display:block;object-fit:contain;background:var(--bg-section);border-radius:var(--radius-sm);box-shadow:0 4px 12px rgba(0,0,0,.2);transition:transform var(--transition-slow)}.book-cover-wrap{flex-shrink:0;position:relative;padding:var(--space-lg) var(--space-lg) 0 var(--space-lg)}.wishlist-btn{position:absolute;top:var(--space-md);left:var(--space-md);background:rgba(0,0,0,.4);border:1px solid var(--veil-line);color:var(--on-photo);border-radius:50%;width:36px;height:36px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all var(--transition-base);z-index:10;backdrop-filter:blur(4px)}.wishlist-btn:hover{background:var(--lamp-edge-mid);border-color:var(--gold);color:var(--gold);transform:scale(1.1)}.wishlist-btn.active{background:var(--lamp-edge-mid);border-color:var(--gold);color:var(--gold)}.skeleton{animation:skeleton-loading 1.5s infinite linear}@keyframes skeleton-loading{0%{opacity:.5}50%{opacity:1}100%{opacity:.5}}.book-cover-placeholder{width:100%;aspect-ratio:2/3;background:linear-gradient(160deg,var(--bg-section) 0,var(--bg-card) 100%);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-sm);color:var(--text-faint);font-family:var(--font-heading);font-size:var(--text-xs);letter-spacing:.1em;padding:var(--space-xl);text-align:center}.book-cover-placeholder svg{width:48px;height:48px;opacity:.3;color:var(--gold)}.book-card-body{padding:var(--space-lg);display:flex;flex-direction:column;flex:1;gap:var(--space-sm)}.book-genre{font-size:var(--text-xs);font-weight:600;letter-spacing:.15em;text-transform:uppercase;color:var(--amber)}.book-title{font-family:var(--font-heading);font-size:var(--text-2xl);font-weight:700;color:var(--text-primary);line-height:1.3;margin-top:.25rem;margin-bottom:.5rem;letter-spacing:.01em;text-shadow:0 2px 8px rgba(0,0,0,.6)}.book-desc{font-size:var(--text-sm);color:var(--text-muted);line-height:1.7;flex:1;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.book-footer{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);margin-top:var(--space-md);padding-top:var(--space-md);border-top:1px solid rgba(242,193,78,.07)}.book-price{font-family:var(--font-heading);font-size:var(--text-2xl);font-weight:700;color:var(--gold);text-shadow:var(--glow-gold-sm)}.book-price-unit{font-size:var(--text-xs);font-weight:400;color:var(--text-dim);margin-left:3px}.btn-buy{display:inline-flex;align-items:center;gap:6px;padding:8px var(--space-md);background:var(--gold);color:var(--on-gold);font-weight:700;font-size:var(--text-sm);border-radius:var(--radius-xl);border:none;cursor:pointer;transition:transform var(--transition-spring),box-shadow var(--transition-base),filter var(--transition-fast);box-shadow:0 2px 12px var(--lamp-edge-strong);white-space:nowrap}.btn-buy:hover{transform:scale(1.05);box-shadow:0 4px 20px rgba(242,193,78,.45);filter:brightness(1.05)}.btn-buy:active{transform:scale(.97)}.btn-buy svg{width:14px;height:14px}@media (max-width:768px){.books-grid{grid-template-columns:1fr;gap:var(--space-md)}.book-card{flex-direction:row;align-items:stretch;border-radius:var(--radius-md)}.book-cover-wrap{width:128px;flex-shrink:0;padding:var(--space-sm);display:flex;align-items:center;position:static}.book-card-body{padding:var(--space-sm) var(--space-md);gap:4px;justify-content:center;min-width:0}.book-title{font-size:var(--text-lg);line-height:1.25;margin-bottom:2px}.book-desc{-webkit-line-clamp:2;line-clamp:2;font-size:var(--text-xs);margin-bottom:auto}.book-footer{margin-top:4px;padding-top:var(--space-sm)}.book-price{font-size:var(--text-lg)}.btn-buy{padding:6px var(--space-md);font-size:var(--text-xs)}.book-badge-new{position:static;align-self:flex-start;padding:2px var(--space-sm);box-shadow:none;max-width:calc(100% - 44px - var(--space-sm))}.book-card{position:relative}.wishlist-btn{top:var(--space-sm);right:var(--space-sm);left:auto}.book-genre,.book-title{margin-right:calc(44px + var(--space-xs))}}.section-why{padding:var(--space-4xl) 0;background:var(--bg-section);position:relative}.section-why::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--lamp-edge-lit),transparent)}.why-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-xl)}.why-card{padding:var(--space-xl);background:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--lamp-edge);text-align:center;display:flex;flex-direction:column;align-items:center;gap:var(--space-md);transition:transform var(--transition-spring),box-shadow var(--transition-base),border-color var(--transition-base)}.why-card:hover{transform:translateY(-6px);box-shadow:0 16px 48px rgba(0,0,0,.4),0 0 0 1px rgba(242,193,78,.12);border-color:var(--lamp-edge-lit)}.why-icon{width:56px;height:56px;border-radius:50%;background:rgba(242,193,78,.08);display:flex;align-items:center;justify-content:center;color:var(--gold);box-shadow:0 0 20px var(--lamp-edge-soft);transition:box-shadow var(--transition-base),background var(--transition-base)}.why-card:hover .why-icon{background:rgba(242,193,78,.12);box-shadow:0 0 30px var(--lamp-edge-mid)}.why-icon svg{width:24px;height:24px}.why-title{font-family:var(--font-heading);font-size:var(--text-lg);font-weight:600;color:var(--text-primary);line-height:1.3}.why-desc{font-size:var(--text-sm);color:var(--text-muted);line-height:1.8}@media (max-width:900px){.why-grid{grid-template-columns:1fr;max-width:480px;margin:0 auto}}.footer{background:var(--bg-primary);border-top:1px solid rgba(242,193,78,.08);padding:var(--space-3xl) 0 var(--space-xl)}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:var(--space-3xl);margin-bottom:var(--space-2xl)}.footer-logo{font-family:var(--font-heading);font-size:var(--text-xl);font-weight:700;letter-spacing:.12em;color:var(--gold);margin-bottom:var(--space-md);text-shadow:var(--glow-gold-sm)}.footer-brand>p{font-size:var(--text-sm);color:var(--text-dim);line-height:1.7;margin-bottom:var(--space-lg)}.footer-social{display:flex;gap:var(--space-md);flex-wrap:wrap}.social-link{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;background:var(--bg-card);border:1px solid var(--lamp-edge-soft);color:var(--text-dim);transition:color var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast),transform var(--transition-spring)}.social-link:hover{color:var(--gold);border-color:var(--lamp-edge-strong);box-shadow:0 0 12px var(--lamp-edge-lit);transform:translateY(-2px)}.social-link svg{width:18px;height:18px}.footer-col h3{font-family:var(--font-heading);font-size:var(--text-sm);font-weight:600;color:var(--text-primary);letter-spacing:.05em;margin-bottom:var(--space-lg);text-transform:uppercase}.footer-col ul{display:flex;flex-direction:column;gap:var(--space-sm)}.footer-col ul a{font-size:var(--text-sm);color:var(--text-dim);transition:color var(--transition-fast)}.footer-col ul a:hover{color:var(--gold)}.footer-col p{font-size:var(--text-sm);color:var(--text-dim);line-height:1.7;margin-bottom:var(--space-sm)}.footer-bottom{border-top:1px solid var(--lamp-edge);padding-top:var(--space-lg);text-align:center}.footer-bottom p{font-size:var(--text-xs);color:var(--text-dim)}@media (max-width:900px){.footer-grid{grid-template-columns:1fr 1fr;gap:var(--space-xl)}.footer-brand{grid-column:1/-1}}@media (max-width:480px){.footer-grid{grid-template-columns:1fr}}.btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:var(--space-md) var(--space-xl);background:var(--gold);color:var(--on-gold);font-weight:700;font-size:var(--text-sm);border-radius:var(--radius-xl);border:none;cursor:pointer;transition:transform var(--ease-hover),background var(--ease-hover),box-shadow var(--ease-hover);box-shadow:0 10px 20px -12px rgba(0,0,0,.8);letter-spacing:.02em}.btn-primary:hover{background:var(--gold-lit);transform:translateY(-2px);box-shadow:0 14px 26px -12px rgba(0,0,0,.85)}.btn-primary:active{transform:translateY(0) scale(.97)}.btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-outline{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:var(--space-md) var(--space-xl);background:0 0;color:var(--gold);font-weight:600;font-size:var(--text-sm);border-radius:var(--radius-xl);border:1px solid var(--lamp-edge-strong);cursor:pointer;transition:border-color var(--transition-fast),background var(--transition-fast),transform var(--transition-spring)}.btn-outline:hover{background:var(--lamp-edge);border-color:var(--gold);transform:translateY(-1px)}.toast-container{position:fixed;bottom:var(--space-xl);left:50%;transform:translateX(-50%);z-index:9999;display:flex;flex-direction:column;gap:var(--space-sm);pointer-events:none}.toast{padding:var(--space-md) var(--space-lg);background:var(--bg-card);border:1px solid var(--lamp-edge-lit);border-radius:var(--radius-md);color:var(--text-primary);font-size:var(--text-sm);box-shadow:var(--shadow-md);opacity:0;transform:translateY(20px);animation:toastIn .3s ease forwards,toastOut .3s ease 3s forwards;pointer-events:all;max-width:90vw;text-align:center}.toast.error{border-color:var(--danger-edge);color:var(--danger)}.toast.success{border-color:var(--lamp-edge-strong);color:var(--gold)}@keyframes toastIn{to{opacity:1;transform:translateY(0)}}@keyframes toastOut{to{opacity:0;transform:translateY(-10px)}}.nav-auth-container{display:flex;align-items:center;margin-left:var(--space-md)}.nav-user-menu{display:flex;align-items:center;gap:var(--space-sm)}.nav-user-name{color:var(--gold);font-weight:500;font-size:var(--text-sm);transition:text-shadow var(--transition-fast)}.nav-profile-btn{transition:background var(--transition-fast),box-shadow var(--transition-fast)}.nav-profile-btn:hover{background:var(--veil-surface)!important;box-shadow:inset 0 0 0 1px var(--veil-line)}.nav-profile-btn:hover .nav-user-name{text-shadow:0 0 8px rgba(255,255,255,.3)}.nav-logout-btn{background:0 0;border:none;color:var(--text-faint);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:4px;border-radius:var(--radius-xs);transition:color var(--transition-fast),background var(--transition-fast)}.nav-logout-btn:hover{color:var(--text-primary);background:var(--veil-surface)}.auth-modal-container{max-width:400px;padding:var(--space-xl)}@media (max-width:768px){.auth-modal-container{padding:var(--space-lg);width:calc(100% - var(--space-md) * 2)}}.auth-header{margin-bottom:var(--space-xl)}.auth-title{font-family:var(--font-heading);color:var(--gold);font-size:var(--text-2xl);margin-bottom:var(--space-xs)}.auth-subtitle{color:var(--text-muted);font-size:var(--text-sm)}.auth-form{display:flex;flex-direction:column;gap:var(--space-md);margin-bottom:var(--space-lg)}.auth-form .form-group{display:flex;flex-direction:column;position:relative}.password-toggle-btn{position:absolute;right:12px;top:50%;transform:translateY(-50%);background:0 0;border:none;color:var(--text-muted);cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;transition:color .2s ease}.password-toggle-btn:hover{color:var(--gold)}.auth-form input{background:var(--bg-primary);border:1px solid var(--lamp-edge-mid);color:var(--text-primary);padding:var(--space-md);border-radius:var(--radius-sm);font-family:var(--font-body);font-size:var(--text-base);transition:border-color var(--transition-fast)}.auth-form input#authPassword{padding-right:48px}.auth-form input:focus{outline:0;border-color:var(--gold)}.auth-error-msg{color:var(--danger);font-size:var(--text-sm);text-align:center;background:var(--danger-veil);padding:var(--space-sm);border-radius:var(--radius-sm)}.auth-form .input-with-toggle{position:relative;display:flex;flex-direction:column}.auth-form .auth-readonly-field{opacity:.75;cursor:default}.auth-field-hint{margin:var(--space-xs) 0 0;color:var(--text-dim);font-size:var(--text-xs);line-height:1.6}.auth-submit-btn{margin-top:var(--space-sm);width:100%}.auth-divider{display:flex;align-items:center;text-align:center;margin:var(--space-lg) 0;color:var(--text-faint);font-size:var(--text-sm)}.auth-divider::after,.auth-divider::before{content:'';flex:1;border-bottom:1px solid var(--veil-surface)}.auth-divider span{padding:0 var(--space-md)}.auth-social{margin-bottom:var(--space-lg)}.btn-social{display:flex;align-items:center;justify-content:center;gap:var(--space-sm);width:100%;padding:var(--space-md);background:var(--bg-card);color:var(--text-primary);border:1px solid var(--veil-line);border-radius:var(--radius-sm);font-family:var(--font-body);font-size:var(--text-sm);font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.btn-social:hover{background:var(--bg-card-hover);border-color:var(--veil-line-lit)}.auth-footer{font-size:var(--text-sm);color:var(--text-muted);border-top:1px solid var(--veil-surface);padding-top:var(--space-md)}.auth-toggle-btn{background:0 0;border:none;color:var(--gold);font-family:var(--font-body);font-size:var(--text-sm);font-weight:500;cursor:pointer;margin-left:4px;padding:0;text-decoration:underline;text-underline-offset:2px}.auth-toggle-btn:hover{color:var(--text-primary)}@keyframes shimmer{0%{background-position:-1000px 0}100%{background-position:1000px 0}}.skeleton-box{background:var(--bg-card-hover);background-image:linear-gradient(90deg,var(--bg-card-hover) 0,var(--lamp-edge) 40px,var(--bg-card-hover) 80px);background-size:1000px 100%;animation:shimmer 2s infinite linear}.nav-profile-btn{transition:opacity var(--transition-base),background var(--transition-base)}.nav-profile-btn:hover{background:var(--veil-surface)!important;opacity:.9}.profile-avatar-wrapper{position:relative;width:160px;height:160px;margin:0 auto 1.5rem}.profile-avatar-large{width:100%;height:100%;border-radius:50%;object-fit:cover;border:2px solid var(--gold)}.profile-avatar-upload-btn{position:absolute;bottom:0;right:0;width:28px;height:28px;background:var(--gold);color:var(--on-gold);border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:var(--shadow-sm);transition:transform var(--transition-fast)}.profile-avatar-upload-btn:hover{transform:scale(1.1)}.profile-email-display{text-align:center;margin-bottom:1.5rem;font-size:var(--text-sm)}.profile-select{width:100%;padding:.8rem 1rem;border-radius:var(--radius-sm);border:1px solid var(--veil-line);background-color:rgba(0,0,0,.2);color:var(--text-primary);font-family:var(--font-body);font-size:var(--text-sm);transition:border-color var(--transition-base);appearance:none}.profile-select:focus{outline:0;border-color:var(--gold)}.profile-select option{background-color:var(--bg-card);color:var(--text-primary)}.cropper-face,.cropper-view-box{border-radius:50%}.cropper-view-box{outline:0;box-shadow:0 0 0 4px var(--on-photo)}.cropper-modal{opacity:.8!important}.cropper-center,.cropper-dashed,.cropper-line,.cropper-point{display:none!important}.cropper-bg{background-image:none!important;background-color:transparent!important}#cropZoomSlider{-webkit-appearance:none;appearance:none;width:250px;height:4px;background:var(--veil-line-lit);border-radius:var(--radius-2xs);outline:0;cursor:pointer}#cropZoomSlider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background:var(--on-photo);cursor:pointer;transition:transform .1s}#cropZoomSlider::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--on-photo);cursor:pointer;border:none;transition:transform .1s}#cropZoomSlider::-webkit-slider-thumb:hover{transform:scale(1.2)}#cropZoomSlider::-moz-range-thumb:hover{transform:scale(1.2)}.profile-avatar-wrapper{position:relative;width:100px;height:100px;margin:0 auto var(--space-md);border-radius:50%}.profile-avatar-large{width:100px;height:100px;border-radius:50%;object-fit:cover;border:2px solid var(--gold);background:var(--bg-card)}.profile-avatar-upload-btn{position:absolute;bottom:0;right:0;background:var(--gold);color:var(--on-gold);width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 2px 4px rgba(0,0,0,.5);transition:transform var(--transition-fast),background var(--transition-fast)}.profile-avatar-upload-btn:hover{transform:scale(1.1);background:var(--on-photo)}.profile-email-display{color:var(--text-dim);font-size:var(--text-sm);margin-bottom:var(--space-md);text-align:center}.profile-select{width:100%;padding:12px 16px;background-color:var(--veil-surface);border:1px solid var(--veil-line);border-radius:var(--radius-sm);color:var(--text-primary);font-family:var(--font-body);font-size:var(--text-base);transition:all var(--transition-fast);appearance:none}.profile-select:focus{outline:0;border-color:var(--gold);box-shadow:0 0 0 2px var(--lamp-edge-mid);background-color:var(--veil-line)}.profile-select option{background-color:var(--bg-card);color:var(--text-primary)}.avatar-crop-modal{opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s ease;z-index:10000;background:var(--crop-chrome)}.avatar-crop-modal.active{opacity:1;visibility:visible;pointer-events:all}.avatar-crop-modal .modal-container{max-width:500px;background:0 0;box-shadow:none;padding:0}.cropper-face,.cropper-view-box{border-radius:50%}.toast-container{position:fixed;top:24px;right:24px;z-index:9999;display:flex;flex-direction:column;gap:12px;pointer-events:none}.toast{background:var(--bg-card);border:1px solid var(--veil-line);box-shadow:0 10px 30px rgba(0,0,0,.5);border-radius:var(--radius-sm);padding:14px 18px;display:flex;align-items:center;gap:12px;min-width:250px;max-width:350px;transform:translateX(120%);opacity:0;transition:all var(--transition-spring);pointer-events:auto}.toast.show{transform:translateX(0);opacity:1}.toast.hide{transform:translateX(120%);opacity:0}.toast-icon{flex-shrink:0;display:flex}.toast-message{flex:1;font-family:var(--font-body);font-size:var(--text-sm);color:var(--text-primary);line-height:1.4}.toast-close{background:0 0;border:none;color:var(--text-muted);font-size:var(--text-xl);cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center;transition:color .2s}.toast-close:hover{color:var(--on-photo)}.toast-success .toast-icon{color:var(--success)}.toast-error .toast-icon{color:var(--danger)}.toast-info .toast-icon{color:var(--info)}.toast-warning .toast-icon{color:var(--amber)}.bookpage{flex:1;padding:calc(80px + var(--space-3xl)) 0 var(--space-3xl)}.bookpage-crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-sm);font-size:var(--text-sm);color:var(--text-dim);margin-bottom:var(--space-xl)}.bookpage-crumbs a{color:var(--text-muted);transition:color var(--transition-fast)}.bookpage-crumbs a:hover{color:var(--gold)}.bookpage-crumbs span[aria-hidden]{color:var(--text-faint)}.bookpage-main{display:grid;grid-template-columns:minmax(240px,340px) 1fr;gap:var(--space-2xl);align-items:start}.bookpage-cover{max-width:340px}.bookpage-cover.is-missing::before{content:"";display:block;width:100%;aspect-ratio:2/3;background:var(--bg-section);border:1px dashed var(--veil-line);border-radius:var(--radius-2xs) var(--radius-sm) var(--radius-sm) var(--radius-2xs)}.bookpage-cover img{width:100%;aspect-ratio:2/3;object-fit:contain;background:var(--bg-section);border-radius:var(--radius-2xs) var(--radius-sm) var(--radius-sm) var(--radius-2xs);box-shadow:0 24px 44px -20px rgba(0,0,0,.85)}.bookpage-info .book-genre{display:inline-block;padding:4px 14px;border:1px solid var(--lamp-edge-strong);border-radius:var(--radius-pill);color:var(--gold);font-size:var(--text-xs);font-weight:500;letter-spacing:normal;text-transform:none}.bookpage-title{font-family:var(--font-heading);font-size:var(--text-display-md);font-weight:700;line-height:1.16;color:var(--text-primary);margin:var(--space-md) 0 var(--space-md)}.bookpage-desc{font-size:var(--text-lg);line-height:1.8;color:var(--text-muted);max-width:560px}.bookpage-facts{margin:var(--space-xl) 0;max-width:560px}.bookpage-facts>div{display:grid;grid-template-columns:150px 1fr;gap:var(--space-lg);padding:15px 0;border-bottom:1px solid var(--veil-line)}.bookpage-facts>div:last-child{border-bottom:none}.bookpage-facts dt{font-size:var(--text-sm);font-weight:400;color:var(--text-dim);margin:0}.bookpage-facts dd{font-size:var(--text-base);color:var(--text-primary);margin:0}@media (max-width:560px){.bookpage-facts>div{grid-template-columns:1fr;gap:2px;padding:12px 0}}.bookpage-buybar{max-width:560px;display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-lg);padding:var(--space-lg) 0;border-top:1px solid var(--veil-line);border-bottom:1px solid var(--veil-line)}.bookpage-price{font-family:var(--font-heading);font-size:var(--text-display-sm);font-weight:600;color:var(--gold);line-height:1}.bookpage-price .book-price-unit{font-size:var(--text-xl);font-weight:500;margin-left:2px}.bookpage-buy{flex:1;min-width:200px}.bookpage-buybar .btn-cart{border:1px solid var(--lamp-edge-strong);border-radius:var(--radius-xl);background:0 0;color:var(--gold);padding:var(--space-md) var(--space-lg);font-size:var(--text-sm);font-weight:600;width:auto;height:auto;transition:background var(--ease-hover),border-color var(--ease-hover)}.bookpage-buybar .btn-cart:hover{background:var(--lamp-edge);border-color:var(--gold)}.bookpage-buybar .btn-cart.in-cart{background:var(--lamp-edge-soft);border-color:var(--gold);color:var(--gold)}.bookpage-note{font-size:var(--text-sm);color:var(--text-dim);margin-top:var(--space-md)}.bookpage-highlights{margin-top:var(--space-xl);max-width:560px}.bookpage-highlights h2{font-family:var(--font-heading);font-size:var(--text-2xl);font-weight:600;color:var(--text-primary);margin-bottom:var(--space-lg)}.bookpage-highlights ul{display:flex;flex-direction:column}.bookpage-highlights li{display:flex;align-items:flex-start;gap:var(--space-md);padding:var(--space-md) 0;border-bottom:1px solid var(--veil-line);font-size:var(--text-base);line-height:1.7;color:var(--text-muted)}.bookpage-highlights li:last-child{border-bottom:none}.bookpage-highlights li svg{flex-shrink:0;width:18px;height:18px;margin-top:5px;color:var(--gold)}@media (max-width:900px){.bookpage-main{grid-template-columns:1fr;gap:var(--space-xl)}.bookpage-cover{position:static;max-width:240px;margin:0 auto}}@media (max-width:480px){.bookpage{padding-top:calc(72px + var(--space-xl))}.bookpage-buybar{gap:var(--space-md)}.bookpage-buy{width:100%}}.book-title a{color:inherit;text-decoration:none;transition:color var(--transition-fast)}.book-title a:hover{color:var(--gold)}.btn-owned{background:var(--success)!important;color:var(--on-success)!important;border-color:transparent!important;border-radius:var(--radius-xl)!important}.btn-owned svg{margin-right:6px}.nav-cart-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:var(--radius-pill);background:var(--veil-surface);border:1px solid var(--veil-line);color:var(--text-muted);cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast)}.nav-cart-btn:hover{background:var(--veil-surface-lit);border-color:var(--lamp-edge-strong);color:var(--gold)}.nav-cart-count{position:absolute;top:-2px;right:-2px;min-width:20px;height:20px;padding:0 5px;display:flex;align-items:center;justify-content:center;background:var(--gold);color:var(--on-gold);font-size:var(--text-xs);font-weight:800;border-radius:var(--radius-pill);box-shadow:0 2px 8px var(--lamp-edge-lit)}.book-actions{display:flex;align-items:center;gap:var(--space-sm)}.btn-cart{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:44px;min-height:44px;padding:0 var(--space-md);background:0 0;color:var(--gold);border:1px solid var(--lamp-edge-strong);border-radius:var(--radius-pill);cursor:pointer;font-family:var(--font-body);font-size:var(--text-sm);font-weight:600;transition:background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast)}.btn-cart:hover{background:var(--lamp-edge);border-color:var(--gold)}.btn-cart.in-cart{background:var(--gold);color:var(--on-gold);border-color:transparent}.cart-panel{position:fixed;inset:0;z-index:1200;background:var(--scrim-modal);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);opacity:0;visibility:hidden;transition:opacity var(--transition-base),visibility var(--transition-base)}.cart-panel.active{opacity:1;visibility:visible}.cart-drawer{position:absolute;top:0;right:0;height:100%;width:min(420px,100%);display:flex;flex-direction:column;background:var(--bg-card);border-left:1px solid var(--lamp-edge-mid);box-shadow:var(--shadow-lg);transform:translateX(100%);transition:transform var(--transition-spring)}.cart-panel.active .cart-drawer{transform:translateX(0)}.cart-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-lg);border-bottom:1px solid var(--veil-line)}.cart-header h2{font-family:var(--font-heading);font-size:var(--text-xl);font-weight:600;color:var(--text-primary)}.cart-close{width:44px;height:44px;border-radius:var(--radius-pill);background:var(--veil-surface);border:1px solid var(--veil-line);color:var(--text-muted);cursor:pointer;font-size:var(--text-base);transition:background var(--transition-fast),color var(--transition-fast)}.cart-close:hover{background:var(--veil-surface-lit);color:var(--text-primary)}.cart-items{flex:1;overflow-y:auto;padding:var(--space-md) var(--space-lg);display:flex;flex-direction:column;gap:var(--space-sm)}.cart-item{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-sm);background:var(--veil-surface);border-radius:var(--radius-sm)}.cart-item img{width:48px;aspect-ratio:2/3;height:auto;object-fit:contain;background:var(--bg-section);border-radius:var(--radius-xs);flex-shrink:0}.cart-item-info{flex:1;min-width:0}.cart-item-title{font-size:var(--text-sm);font-weight:600;color:var(--text-primary);line-height:1.35}.cart-item-price{font-size:var(--text-sm);color:var(--gold);font-weight:700;margin-top:2px}.cart-item-remove{width:44px;height:44px;flex-shrink:0;border-radius:var(--radius-pill);background:0 0;border:1px solid transparent;color:var(--text-dim);cursor:pointer;transition:color var(--transition-fast),background var(--transition-fast)}.cart-item-remove:hover{color:var(--danger);background:var(--danger-veil)}.cart-empty{display:flex;flex-direction:column;align-items:center;gap:var(--space-md);padding:var(--space-3xl) var(--space-lg);color:var(--text-dim);text-align:center}.cart-footer{padding:var(--space-lg);border-top:1px solid var(--veil-line);background:var(--bg-card)}.cart-summary{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:var(--space-md)}.cart-summary span{color:var(--text-dim);font-size:var(--text-sm)}.cart-summary strong{font-family:var(--font-heading);font-size:var(--text-2xl);color:var(--gold)}.cart-checkout{width:100%}.cart-note{margin-top:var(--space-sm);font-size:var(--text-xs);color:var(--text-faint);text-align:center}.success-booklist{display:inline-block;margin:var(--space-sm) 0;text-align:left;color:var(--text-muted);font-size:var(--text-sm);line-height:1.8}@media (max-width:768px){.book-actions{gap:6px}.btn-cart{padding:0 10px}.cart-drawer{width:100%}}.subscribe{padding:var(--space-3xl) 0;background:var(--bg-secondary)}.subscribe-box{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-sm) var(--space-xl);padding:var(--space-xl) var(--space-2xl);background:var(--bg-card);border:1px solid var(--lamp-edge-mid);border-radius:var(--radius-lg);box-shadow:var(--shadow-card)}.subscribe-copy{flex:1;min-width:260px}.subscribe-copy h2{font-family:var(--font-heading);font-size:var(--text-2xl);font-weight:600;color:var(--text-primary);margin-bottom:var(--space-sm)}.subscribe-copy p{color:var(--text-muted);font-size:var(--text-base);line-height:1.7}.subscribe-form{display:flex;gap:var(--space-sm);flex-wrap:wrap;flex:1;min-width:min(280px,100%)}.subscribe-form input{flex:1;min-width:180px;padding:14px var(--space-md);background:var(--bg-primary);border:1px solid var(--lamp-edge-mid);border-radius:var(--radius-pill);color:var(--text-primary);font-family:var(--font-body);font-size:var(--text-base);transition:border-color var(--transition-fast)}.subscribe-form input::placeholder{color:var(--text-dim)}.subscribe-form input:focus{outline:0;border-color:var(--gold)}.subscribe-status{flex-basis:100%;margin:0;font-size:var(--text-sm);min-height:1.4em}.subscribe-status.is-ok{color:var(--success)}.subscribe-status.is-error{color:var(--danger)}@media (max-width:768px){.subscribe-box{padding:var(--space-lg);gap:var(--space-lg)}.subscribe-form{flex-direction:column}.subscribe-form .btn-primary,.subscribe-form input{width:100%}}.books-offline-note{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-md);padding:var(--space-md) var(--space-lg);background:var(--danger-veil);border:1px solid var(--danger-edge);border-radius:var(--radius-md);color:var(--text-muted);font-size:var(--text-sm)}.books-offline-note p{margin:0}.modal-close,.password-toggle-btn,.social-link,.wishlist-btn{min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center}.password-toggle-btn svg,.social-link svg{flex-shrink:0}.wishlist-btn{width:44px;height:44px;padding:0}.auth-toggle-btn,.btn-buy{min-height:44px}.auth-toggle-btn{padding:0 var(--space-sm);display:inline-flex;align-items:center}.navbar-logo{display:inline-flex;align-items:center;min-height:44px}@media (pointer:coarse){.footer-bottom a,.footer-col ul a,.footer-col ul button{display:inline-flex;align-items:center;min-height:44px}}@media (pointer:fine){.footer-col ul a,.footer-col ul button{display:inline-flex;align-items:center;min-height:24px}}.contact-textarea{width:100%;min-height:100px;padding:var(--space-md);background:var(--bg-primary);border:1px solid var(--lamp-edge-mid);border-radius:var(--radius-sm);color:var(--text-primary);font-family:var(--font-body);font-size:var(--text-base);resize:vertical;transition:border-color var(--transition-fast)}.contact-textarea::placeholder{color:var(--text-dim)}.contact-textarea:focus{outline:0;border-color:var(--gold)}.my-book-item{display:flex;gap:var(--space-md);padding:var(--space-md);background:var(--veil-surface);border-radius:var(--radius-md);align-items:center}.my-book-cover{width:60px;height:90px;flex-shrink:0;object-fit:cover;border-radius:var(--radius-xs);box-shadow:var(--shadow-sm)}.my-book-body{flex:1;min-width:0}.my-book-title{font-weight:600;font-size:var(--text-base);color:var(--text-primary);margin-bottom:2px}.my-book-meta{font-size:var(--text-xs);color:var(--text-dim);margin-bottom:var(--space-sm)}.my-book-actions{display:flex;flex-wrap:wrap;gap:var(--space-sm);margin-top:var(--space-sm)}.my-book-btn{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 var(--space-md);font-size:var(--text-sm);font-weight:600;border-radius:var(--radius-xl)}.my-book-download{border-color:var(--lamp-edge-mid);color:var(--text-muted)}.my-book-download:hover:not(:disabled){border-color:var(--gold);color:var(--gold);background:var(--lamp-edge)}.my-book-download:disabled{opacity:.6;cursor:progress}@media (max-width:480px){.my-book-actions>.my-book-btn{flex:1 1 100%;justify-content:center}}.profile-row{display:flex;gap:var(--space-md);padding:var(--space-md);background:var(--veil-surface);border-radius:var(--radius-md);align-items:center}.profile-row-link{display:flex;gap:var(--space-md);align-items:center;flex:1;min-width:0;text-decoration:none;color:inherit}.profile-row-cover{width:40px;height:60px;flex-shrink:0;object-fit:cover;border-radius:var(--radius-xs)}.profile-row-body{flex:1;min-width:0}.profile-row-title{display:block;color:var(--text-primary);font-weight:500;margin-bottom:2px}.profile-row-link:hover .profile-row-title{color:var(--gold)}.profile-row-sub{color:var(--text-dim);font-size:var(--text-xs)}.profile-row-price{display:block;color:var(--gold);font-size:var(--text-sm)}.profile-row-status{color:var(--success);font-weight:600;font-size:var(--text-sm);flex-shrink:0}.profile-row-remove{flex-shrink:0;min-height:44px;padding:0 var(--space-md);font-size:var(--text-sm);border-color:var(--danger-edge);color:var(--danger);border-radius:var(--radius-xl)}.profile-row-remove:hover{background:var(--danger-veil);border-color:var(--danger)}.bookpage-info a.book-genre{min-height:44px;display:inline-flex;align-items:center;text-decoration:none;transition:background var(--transition-fast),border-color var(--transition-fast)}.bookpage-info a.book-genre:hover{background:var(--lamp-edge);border-color:var(--gold)}@media (min-width:901px){.bookpage-info{position:sticky;top:calc(80px + var(--space-lg));max-width:620px}}.bookpage-assurance{list-style:none;margin:var(--space-md) 0 0;padding:0;max-width:560px}.bookpage-assurance li{padding:10px 0;border-bottom:1px solid var(--veil-line);color:var(--text-muted);font-size:var(--text-sm);line-height:1.6}.bookpage-assurance li:last-child{border-bottom:none}.bookpage-author{display:flex;gap:var(--space-lg);align-items:flex-start;margin-top:var(--space-3xl);padding-top:var(--space-xl);border-top:1px solid var(--veil-line)}.bookpage-author-avatar{width:64px;height:64px;flex-shrink:0;border-radius:50%;object-fit:cover;background:var(--bg-section)}.bookpage-author-body{flex:1;min-width:0}.bookpage-author-name{font-family:var(--font-heading);font-size:var(--text-lg);font-weight:600;color:var(--text-primary);margin:0 0 4px}.bookpage-author-line{color:var(--text-muted);font-size:var(--text-sm);line-height:1.7;max-width:560px;margin:0 0 var(--space-sm)}.bookpage-author-links{display:flex;flex-wrap:wrap;gap:var(--space-md);margin:0}.bookpage-author-links a{display:inline-flex;align-items:center;min-height:44px;color:var(--gold);font-size:var(--text-sm);text-decoration:none;border-bottom:1px solid transparent}.bookpage-author-links a:hover{border-bottom-color:var(--gold)}@media (max-width:900px){.bookpage-sticky-buy{position:fixed;left:0;right:0;bottom:0;z-index:900;display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);padding:var(--space-sm) var(--space-md);padding-bottom:calc(var(--space-sm) + env(safe-area-inset-bottom,0px));background:var(--scrim-nav);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--veil-line);transform:translateY(110%);transition:transform var(--ease-enter)}.bookpage-sticky-buy.visible{transform:translateY(0)}.bookpage-sticky-buy .bookpage-price{font-size:var(--text-2xl)}.bookpage-sticky-buy .btn-primary{min-height:48px;padding:0 var(--space-xl)}.bookpage{padding-bottom:88px}}@media (min-width:901px){.bookpage-sticky-buy{display:none}}@media (pointer:coarse){.footer-col ul button{min-width:44px;justify-content:flex-start}}@media (pointer:coarse){.bookpage-crumbs a{display:inline-flex;align-items:center;min-height:44px}.bookpage-author-links a{min-width:44px;justify-content:center}}.app-native #cartPanel,.app-native #checkoutModal,.app-native .bookpage-buybar,.app-native .bookpage-sticky-buy,.app-native .cart-panel,.app-native .nav-cart-btn{display:none!important}.app-native .book-price,.app-native .bookpage-price{display:none!important}.app-native .auth-divider,.app-native .auth-social{display:none!important}.app-native .book-actions>*{display:none!important}.app-native .book-actions::after{content:'เปิดให้ซื้อในแอปเร็วๆ นี้';display:block;width:100%;padding:var(--space-sm) 0;text-align:center;font-size:var(--text-sm);color:var(--text-dim)}.auth-forgot-btn{display:block;width:100%;margin-top:var(--space-md);padding:var(--space-sm);background:0 0;border:none;color:var(--text-dim);font-family:var(--font-body);font-size:var(--text-xs);text-decoration:underline;cursor:pointer;transition:color var(--transition-fast)}.auth-forgot-btn:hover:not(:disabled){color:var(--gold)}.auth-forgot-btn:disabled{opacity:.6;cursor:default}.claim-msg--ok{color:var(--gold)}