.avatar{background:var(--color-accent-soft);width:2.5rem;height:2.5rem;color:var(--color-accent);font-size:var(--step--1);letter-spacing:.04em;object-fit:cover;-webkit-user-select:none;user-select:none;border-radius:50%;flex-shrink:0;place-items:center;font-weight:600;display:inline-grid}.avatar--sm{width:1.75rem;height:1.75rem;font-size:var(--step--2)}.avatar--lg{width:4rem;height:4rem;font-size:var(--step-1);font-family:var(--font-display)}.badge{border-radius:var(--radius-pill);font-size:var(--step--2);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;align-items:center;padding:.15rem .6rem;font-weight:600;line-height:1.4;display:inline-flex}.badge--neutral{background:var(--color-sunken);color:var(--color-text-muted)}.badge--accent{background:var(--color-accent-soft);color:var(--color-accent)}.badge--highlight{background:var(--color-highlight-soft);color:var(--color-highlight-text)}.badge--danger{background:var(--color-danger-soft);color:var(--color-danger)}.badge--success{background:var(--color-success-soft);color:var(--color-success)}.ink-blot.svelte-514rlf{width:100%;height:100%;display:block;overflow:visible}.ink-blot--animated.svelte-514rlf circle:where(.svelte-514rlf){transform-box:fill-box;transform-origin:50%;animation:svelte-514rlf-ink-splat .56s cubic-bezier(.2, 1.05, .3, 1) var(--delay) both}@keyframes svelte-514rlf-ink-splat{0%{transform:translate(var(--dx), var(--dy)) scale(.1)}to{transform:translate(0)scale(1)}}.book-cover{isolation:isolate;aspect-ratio:2/3;border-radius:3px var(--radius-sm) var(--radius-sm) 3px;background:linear-gradient(90deg, #00000047 0, #ffffff1a 3%, transparent 7%), linear-gradient(160deg, #ffffff14, transparent 55%), var(--cloth);color:#f6efe3;width:100%;box-shadow:var(--shadow-2);transition:transform var(--dur-base) var(--ease-out), box-shadow var(--dur-base) var(--ease-out);flex-direction:column;justify-content:space-between;padding:12% 11% 10%;display:flex;position:relative;overflow:hidden;container-type:inline-size}.book-cover:after{content:"";pointer-events:none;border:1px solid #f6efe359;border-radius:2px;position:absolute;inset:5% 5% 5% 7%}.book-cover--lg{box-shadow:var(--shadow-3)}.book-cover__blot{z-index:-1;aspect-ratio:1;color:#000;opacity:.2;width:85%;position:absolute;bottom:6%;right:-22%}.book-cover__title{font-family:var(--font-display);letter-spacing:-.01em;overflow-wrap:anywhere;-webkit-hyphens:auto;hyphens:auto;text-wrap:balance;font-size:clamp(.9rem,10cqi,1.6rem);font-weight:600;line-height:1.1}.book-cover--lg .book-cover__title{font-size:clamp(1.3rem,10cqi,2.1rem)}.book-cover__author{letter-spacing:.14em;text-transform:uppercase;opacity:.9;font-size:.72rem;font-weight:500}.btn{justify-content:center;align-items:center;gap:var(--space-2);min-height:2.75rem;padding:0 var(--space-5);border-radius:var(--radius-md);color:var(--color-text);font:inherit;font-size:var(--step--1);letter-spacing:.01em;white-space:nowrap;cursor:pointer;transition:background var(--dur-fast) var(--ease-standard), color var(--dur-fast) var(--ease-standard), border-color var(--dur-fast) var(--ease-standard), transform var(--dur-fast) var(--ease-out);background:0 0;border:1px solid #0000;font-weight:600;line-height:1.2;text-decoration:none;display:inline-flex}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--sm{min-height:2.25rem;padding:0 var(--space-4);font-size:var(--step--2)}.btn--lg{min-height:3.25rem;padding:0 var(--space-6);font-size:var(--step-0)}.btn--primary{background:var(--color-accent);color:var(--color-accent-contrast)}.btn--primary:hover:not(:disabled){background:var(--color-accent-hover)}.btn--secondary{border-color:var(--color-control-border)}.btn--secondary:hover:not(:disabled){border-color:var(--color-accent);color:var(--color-accent)}.btn--quiet{padding-inline:var(--space-2);color:var(--color-accent);text-underline-offset:.3em;text-decoration:underline;text-decoration-thickness:.08em}.btn--quiet:hover:not(:disabled){color:var(--color-accent-hover);text-decoration-thickness:.14em}.btn.is-loading{cursor:progress;opacity:1}.btn__spinner{border:2px solid;border-right-color:#0000;border-radius:50%;width:1em;height:1em;animation:.7s linear infinite btn-spin}@keyframes btn-spin{to{transform:rotate(360deg)}}.check{align-items:center;gap:var(--space-3);min-height:2.75rem;font-size:var(--step--1);color:var(--color-text);cursor:pointer;display:inline-flex}.check--disabled{opacity:.55;cursor:not-allowed}.check__input{appearance:none;border:1.5px solid var(--color-control-border);border-radius:var(--radius-sm);background:var(--color-surface);width:1.25rem;height:1.25rem;cursor:inherit;transition:background var(--dur-fast) var(--ease-standard), border-color var(--dur-fast) var(--ease-standard);flex-shrink:0;margin:0;position:relative}.check__input:after{content:"";background:var(--color-accent-contrast);-webkit-mask:var(--check-mark) center/80% no-repeat;mask:var(--check-mark) center/80% no-repeat;opacity:0;transition:transform var(--dur-base) var(--ease-out), opacity var(--dur-fast) var(--ease-standard);--check-mark:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3.5 8.5l3 3 6-7'/%3E%3C/svg%3E");position:absolute;inset:0;transform:scale(.4)}.check__input:checked,.check__input:indeterminate{border-color:var(--color-accent);background:var(--color-accent)}.check__input:checked:after,.check__input:indeterminate:after{opacity:1;transform:scale(1)}.check__input:indeterminate:after{--check-mark:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M4 8h8'/%3E%3C/svg%3E")}.check__input:hover:not(:disabled):not(:checked):not(:indeterminate){border-color:var(--color-text-muted)}.check__input:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.dialog{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface-raised);width:min(32rem,100% - 2rem);max-height:calc(100dvh - 2rem);color:var(--color-text);box-shadow:var(--shadow-3);padding:0;overflow:hidden}.dialog::backdrop{background:#100e0b8c}.dialog[open]{animation:dialog-in var(--dur-base) var(--ease-out)}.dialog__panel{gap:var(--space-4);padding:var(--space-5);flex-direction:column;display:flex}.dialog__header{justify-content:space-between;align-items:flex-start;gap:var(--space-4);display:flex}.dialog__title{font-size:var(--step-2);margin:0}.dialog__close{width:2.5rem;height:2.5rem;margin:calc(-1 * var(--space-2)) calc(-1 * var(--space-2)) 0 0;color:var(--color-text-muted);cursor:pointer;background:0 0;border:0;border-radius:50%;flex-shrink:0;place-items:center;display:grid}.dialog__close:hover{background:var(--color-sunken);color:var(--color-text)}.dialog__body{font-family:var(--font-reading);font-size:var(--step-0);color:var(--color-text-muted);line-height:1.6;overflow-y:auto}.dialog__actions{justify-content:flex-end;gap:var(--space-3);padding-top:var(--space-2);flex-wrap:wrap;display:flex}@keyframes dialog-in{0%{opacity:0;transform:translateY(.75rem)scale(.98)}}.logo{--logo-size:2rem;color:var(--color-text);align-items:center;gap:.5em;text-decoration:none;display:inline-flex}.logo--sm{--logo-size:1.5rem}.logo--lg{--logo-size:3rem}.logo__mark{width:var(--logo-size);height:var(--logo-size);color:var(--color-accent);transition:transform var(--dur-slow) var(--ease-out);flex-shrink:0;display:block}.logo__word{font-family:var(--font-display);font-size:calc(var(--logo-size) * .8);letter-spacing:-.02em;font-weight:600;line-height:1}.logo:is(a):hover .logo__mark{transform:rotate(-8deg)scale(1.08)}.nav-item{width:3.5rem;height:3.5rem;color:var(--color-text-muted);cursor:pointer;transition:color var(--dur-base) var(--ease-standard);background:0 0;border:0;border-radius:50%;place-items:center;padding:0;text-decoration:none;display:grid;position:relative}.nav-item:hover,.nav-item:focus-visible,.nav-item.is-active{color:var(--color-accent-contrast)}.nav-item__disc{z-index:0;background:var(--color-accent);opacity:0;transition:opacity var(--dur-fast) var(--ease-standard), transform var(--dur-base) var(--ease-out);pointer-events:none;border-radius:50%;position:absolute;inset:4%;transform:scale(.55)}.nav-item:not(.is-active):hover .nav-item__disc,.nav-item:not(.is-active):focus-visible .nav-item__disc{opacity:1;transform:scale(1)}.nav-item__blot{z-index:0;color:var(--color-accent);opacity:0;transition:opacity var(--dur-base) var(--ease-standard);pointer-events:none;position:absolute;inset:-12%}.nav-item.is-active .nav-item__blot{opacity:1}.nav-item__icon{z-index:1;display:grid;position:relative}.nav-item__tip{left:calc(100% + var(--space-3));z-index:10;padding:var(--space-1) var(--space-3);border-radius:var(--radius-md);background:var(--color-text);color:var(--color-bg);font-size:var(--step--1);white-space:nowrap;opacity:0;pointer-events:none;box-shadow:var(--shadow-2);transition:opacity var(--dur-fast) var(--ease-standard), translate var(--dur-base) var(--ease-out);font-weight:500;position:absolute;top:50%;translate:-.4rem -50%}.nav-item:hover .nav-item__tip,.nav-item:focus-visible .nav-item__tip{opacity:1;translate:0 -50%}@media (width<=48rem){.nav-item__tip{display:none}}.search-input{align-items:center;gap:var(--space-3);width:100%;height:2.75rem;padding:0 var(--space-4);border:1px solid var(--color-control-border);border-radius:var(--radius-pill);background:var(--color-surface);color:var(--color-text-muted);transition:border-color var(--dur-fast) var(--ease-standard);display:flex}.search-input:hover{border-color:var(--color-text-muted)}.search-input:focus-within{border-color:var(--color-focus);outline:2px solid var(--color-focus);outline-offset:2px}.search-input__field{min-width:0;color:var(--color-text);font:inherit;font-size:var(--step--1);background:0 0;border:0;outline:0;flex:1;padding:0}.search-input__field::-webkit-search-cancel-button{appearance:none}.field{gap:var(--space-1);flex-direction:column;width:100%;display:flex}.field__label{font-size:var(--step--1);color:var(--color-text);font-weight:600}.field__required{color:var(--color-text-muted)}.field__control{align-items:center;gap:var(--space-2);padding:0 var(--space-3);border:1px solid var(--color-control-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text-muted);transition:border-color var(--dur-fast) var(--ease-standard), background var(--dur-fast) var(--ease-standard);display:flex}.field__control:hover{border-color:var(--color-text-muted)}.field__control:focus-within{border-color:var(--color-focus);outline:2px solid var(--color-focus);outline-offset:2px}.field__input{min-width:0;min-height:2.75rem;color:var(--color-text);font:inherit;font-size:var(--step--1);background:0 0;border:0;outline:0;flex:1;padding:0}.field__input:disabled{cursor:not-allowed}.field__note{font-size:var(--step--1);color:var(--color-text-muted)}.field--disabled .field__control{opacity:.55;background:var(--color-sunken)}.field--error .field__control{border-color:var(--color-danger)}.field--error .field__note{color:var(--color-danger)}textarea.field__input{min-height:7rem;padding:var(--space-3) 0;resize:vertical;line-height:1.55}.theme-toggle{gap:var(--space-1);padding:var(--space-1);border:1px solid var(--color-border);border-radius:var(--radius-pill);background:var(--color-surface);display:inline-flex}.theme-toggle__option{width:2.25rem;height:2.25rem;color:var(--color-text-muted);cursor:pointer;transition:background var(--dur-fast) var(--ease-standard), color var(--dur-fast) var(--ease-standard);background:0 0;border:0;border-radius:50%;place-items:center;padding:0;display:grid}.theme-toggle__option:hover{color:var(--color-text)}.theme-toggle__option[aria-pressed=true]{background:var(--color-accent);color:var(--color-accent-contrast)}.book-card{gap:var(--space-3);color:inherit;flex-direction:column;text-decoration:none;display:flex}.book-card:hover .book-cover{box-shadow:var(--shadow-3);transform:translateY(-6px)rotate(-.6deg)}.book-card__caption{flex-direction:column;gap:.15rem;display:flex}.book-card__title{font-family:var(--font-display);font-size:var(--step-0);text-wrap:balance;transition:color var(--dur-fast) var(--ease-standard);font-weight:600;line-height:1.2}.book-card:hover .book-card__title{color:var(--color-book)}.book-card__author{font-size:var(--step--1);color:var(--color-text-muted)}.book-card__meta{align-items:center;gap:var(--space-1) var(--space-2);margin-top:var(--space-1);font-size:var(--step--2);color:var(--color-text-muted);font-variant-numeric:tabular-nums;flex-wrap:wrap;display:flex}.app-header{justify-content:space-between;align-items:center;gap:var(--space-4);width:100%;display:flex}.app-header__search{flex:1;min-width:0;max-width:30rem}.app-header__actions{align-items:center;gap:var(--space-3);flex-shrink:0;display:flex}.icon-nav{align-items:center;gap:var(--space-6);height:100%;padding:var(--space-4) 0;flex-direction:column;display:flex}.icon-nav__list{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}@media (width<=48rem){.icon-nav{inset:auto var(--space-4) calc(env(safe-area-inset-bottom,0px) + var(--space-4));z-index:30;width:fit-content;height:auto;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-pill);background:var(--color-surface-raised);box-shadow:var(--shadow-3);flex-direction:row;gap:0;margin-inline:auto;position:fixed}.icon-nav__logo{display:none}.icon-nav__list{flex-direction:row}}.shelf{--shelf-gutter:var(--space-6);--shelf-item-width:clamp(9.5rem, 15vw, 12rem);min-width:0}@media (width<=48rem){.shelf{--shelf-gutter:var(--space-4);--shelf-item-width:8.75rem}}.shelf__head{justify-content:space-between;align-items:center;gap:var(--space-4);display:flex}.shelf__title{margin:0}.shelf__controls{align-items:center;gap:var(--space-2);white-space:nowrap;flex-shrink:0;display:flex}.shelf__arrow{border:1px solid var(--color-control-border);width:2.5rem;height:2.5rem;color:var(--color-text);cursor:pointer;transition:background var(--dur-fast) var(--ease-standard), border-color var(--dur-fast) var(--ease-standard), color var(--dur-fast) var(--ease-standard), opacity var(--dur-fast) var(--ease-standard);background:0 0;border-radius:50%;place-items:center;display:grid}.shelf__arrow:hover:not(:disabled){border-color:var(--color-accent);background:var(--color-accent);color:var(--color-accent-contrast)}.shelf__arrow:disabled{opacity:.35;cursor:default}@media (width<=48rem){.shelf__arrow{display:none}}.shelf__track{gap:var(--space-5);margin:0 calc(-1 * var(--shelf-gutter));padding:var(--space-5) var(--shelf-gutter);overscroll-behavior-x:contain;scroll-padding-inline:var(--shelf-gutter);scroll-snap-type:x mandatory;scrollbar-width:none;list-style:none;display:flex;overflow-x:auto}.shelf__track::-webkit-scrollbar{display:none}.shelf__track:focus-visible{outline-offset:-4px}@media (width<=48rem){.shelf__track{gap:var(--space-4)}}.shelf__item{flex:0 0 var(--shelf-item-width);scroll-snap-align:start}.page{--page-nav-width:5rem;--page-header-height:5rem;grid-template-columns:var(--page-nav-width) minmax(0, 1fr);grid-template-rows:var(--page-header-height) 1fr;background:var(--color-bg);min-height:100dvh;color:var(--color-text);grid-template-areas:"nav header""nav main";display:grid}.page__skip{top:-4rem;left:var(--space-3);z-index:100;padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);background:var(--color-accent);color:var(--color-accent-contrast);font-size:var(--step--1);font-weight:600;position:absolute}.page__skip:focus{top:var(--space-3)}.page__nav{z-index:20;border-right:1px solid var(--color-border);grid-area:nav;height:100dvh;position:sticky;top:0}.page__header{padding-inline:var(--space-6);grid-area:header;align-items:center;display:flex}.page__main{min-width:0;padding:var(--space-5) var(--space-6) var(--space-9);grid-area:main}@media (width<=48rem){.page{grid-template:"header""main"1fr/minmax(0,1fr)}.page__nav{border:0;height:0;position:static}.page__header{padding:var(--space-3) var(--space-4)}.page__main{padding:var(--space-4) var(--space-4) calc(var(--space-9) + 3rem)}}
