@font-face{font-family:Fraunces Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-vietnamese-wght-italic-BicUS2cM.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-ext-wght-italic-BfTTTDIL.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-wght-italic-Py8at3oI.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Literata Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/literata-cyrillic-ext-wght-normal-CGKlZYBf.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Literata Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/literata-cyrillic-wght-normal-DLqwHbi6.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Literata Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/literata-greek-ext-wght-normal-e3e57Shi.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Literata Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/literata-greek-wght-normal-CO1l-giJ.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Literata Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/literata-vietnamese-wght-normal-LcSrhZ7T.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Literata Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/literata-latin-ext-wght-normal-BnEbWgdZ.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Literata Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/literata-latin-wght-normal-DLxlUchJ.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Literata Variable;font-style:italic;font-display:swap;font-weight:200 900;src:url(/assets/literata-cyrillic-ext-wght-italic-DrMGjC4f.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Literata Variable;font-style:italic;font-display:swap;font-weight:200 900;src:url(/assets/literata-cyrillic-wght-italic-C2hF6zFe.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Literata Variable;font-style:italic;font-display:swap;font-weight:200 900;src:url(/assets/literata-greek-ext-wght-italic-f6xT_0ee.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Literata Variable;font-style:italic;font-display:swap;font-weight:200 900;src:url(/assets/literata-greek-wght-italic-9BAkQpca.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Literata Variable;font-style:italic;font-display:swap;font-weight:200 900;src:url(/assets/literata-vietnamese-wght-italic-LyOFdRXZ.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Literata Variable;font-style:italic;font-display:swap;font-weight:200 900;src:url(/assets/literata-latin-ext-wght-italic-CC1SwlwQ.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Literata Variable;font-style:italic;font-display:swap;font-weight:200 900;src:url(/assets/literata-latin-wght-italic-Bm_GJfSc.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--book-height:clamp(240px, 29svh, 300px);--book-width:calc(var(--book-height) * .75);--spine-width:44px;--shelf-top-gap:80px;--shelf-bottom-gap:40px}.library-main{min-height:calc(100svh - 81px);padding:18px 24px 30px;display:block}.library-main:focus{outline:none}.library-main>.notice{width:min(100%,820px);margin:0 auto 16px}.bookshelves{width:min(100%,1100px);margin:auto}.bookshelf{--inspection-book-height:clamp(288px, calc(var(--viewport-width,800px) * .9), 360px);--inspection-book-width:calc(var(--inspection-book-height) * .75);--inspection-depth:clamp(230px, calc(var(--viewport-width,800px) * .75 - 12px), 300px);--inspection-top-gap:clamp(136px, calc(var(--viewport-width,800px) * .4), 180px);--inspection-overhang:calc(var(--inspection-depth) * .6 - 48px);--inspection-footprint:min(calc(var(--viewport-width,800px) - 16px), calc(var(--inspection-book-width) * 1.5));--inspection-hit-height:calc(var(--inspection-book-height) + var(--inspection-depth) * .9 + 24px);min-width:0;position:relative}.bookshelf+.bookshelf{margin-top:12px}.bookshelf>h2{letter-spacing:-.3px;padding:0 20px;font-size:16px;font-weight:600;line-height:20px}.shelf-viewport{min-width:0;height:calc(var(--book-height) + var(--shelf-top-gap) + var(--shelf-bottom-gap));scrollbar-width:none;z-index:1;overscroll-behavior-x:contain;touch-action:pan-x pan-y pinch-zoom;perspective:1200px;position:relative;overflow:auto hidden}.bookshelf.has-inspected-book .shelf-viewport{height:calc(var(--inspection-top-gap) + var(--inspection-book-height) + var(--inspection-overhang) + 24px)}.bookshelf.has-inspected-book .shelf-track{padding-top:var(--inspection-top-gap)}.bookshelf.has-inspected-book:after{top:calc(var(--book-height) + var(--inspection-top-gap) + 20px)}.shelf-viewport::-webkit-scrollbar{display:none}.shelf-viewport:focus-visible{outline:2px solid var(--ink);outline-offset:-4px}.shelf-track{width:max-content;height:100%;padding:var(--shelf-top-gap) calc((var(--viewport-width,800px) - var(--spine-width)) / 2) var(--shelf-bottom-gap);box-sizing:border-box;align-items:flex-start;display:flex;position:relative}.bookshelf:after{content:"";left:0;right:0;top:calc(var(--book-height) + var(--shelf-top-gap) + 20px);background:var(--shelf);border-top:1px solid var(--rule);pointer-events:none;height:7px;position:absolute;box-shadow:0 8px 12px -9px #10181088}.shelf-empty{pointer-events:none;color:var(--muted);place-items:center;font-size:14px;display:grid;position:absolute;inset:0}.book-slot,.book-landing-space{flex:0 0 var(--spine-width);width:var(--spine-width);height:var(--book-height)}.book-slot{--jacket:#173e33;--jacket-ink:#fff2d4;isolation:isolate;perspective:1000px;transform:translateX(var(--shift,0px));color:#fff2d4;transition:transform .38s cubic-bezier(.2,.7,.2,1);position:relative}.book-slot.cafe{--jacket:#173e33;--jacket-ink:#fff2d4}.book-slot.laundrette{--jacket:#19374c;--jacket-ink:#f6e9cb}.book-slot.estuary{--jacket:#343d36;--jacket-ink:#f6e9cb}.book-slot.market{--jacket:#713b26;--jacket-ink:#fff3d6}.book-slot.depot{--jacket:#38263f;--jacket-ink:#f4ecdd}.book-slot.is-revealed{z-index:5}.book-slot.is-inspecting{--book-height:var(--inspection-book-height);--book-width:var(--inspection-book-width)}.book-object{left:calc((var(--spine-width) - var(--book-width)) / 2);width:var(--book-width);height:var(--book-height);transform-style:preserve-3d;transform:translateZ(calc(var(--book-width) / -2)) rotateY(90deg);pointer-events:none;transition:transform .56s cubic-bezier(.22,.7,.25,1),width .56s cubic-bezier(.22,.7,.25,1),height .56s cubic-bezier(.22,.7,.25,1),left .56s cubic-bezier(.22,.7,.25,1);position:absolute;top:0}.is-revealed .book-object{transform:translateY(-8px)translateZ(32px)rotateX(-3deg)rotateY(-26deg)}.is-revealed.is-back .book-object{transform:translateY(-8px)translateZ(32px)rotateX(-3deg)rotateY(148deg)}.is-inspecting .book-object{transform:translateZ(var(--inspection-depth)) rotateX(-3deg) rotateY(-26deg)}.is-inspecting.is-back .book-object{transform:translateZ(var(--inspection-depth)) rotateX(-3deg) rotateY(148deg)}.book-face{backface-visibility:hidden;color:var(--jacket-ink);background:var(--jacket);border-radius:2px;position:absolute;inset:0;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffff16}.book-front{transform:translateZ(calc(var(--spine-width) / 2))}.book-front:before{content:"";z-index:1;background:linear-gradient(#09271de0,#09271d9c 42%,#0000 78%);position:absolute;inset:0}.laundrette .book-front:before{background:linear-gradient(#0c213ad9,#0c213a99 42%,#0000 80%)}.estuary .book-front:before{background:linear-gradient(#232d27ed,#232d27b3 42%,#0000 80%)}.market .book-front:before{background:linear-gradient(#592d20f5,#592d20c4 42%,#0000 80%)}.depot .book-front:before{background:linear-gradient(#2c1e34f5,#2c1e34c4 42%,#0000 80%)}.book-front img{object-fit:cover;width:100%;height:100%}.book-front h3{z-index:2;letter-spacing:-.8px;text-wrap:balance;font-family:Fraunces Variable,Georgia,serif;font-size:clamp(29px,3.7svh,38px);font-weight:450;line-height:1.04;position:absolute;top:22px;left:23px;right:18px}.market .book-front h3{font-size:clamp(26px,3.25svh,32px)}.book-back{transform:rotateY(180deg) translateZ(calc(var(--spine-width) / 2));flex-direction:column;justify-content:center;padding:26px 22px;display:flex}.book-back p{flex-shrink:0;font-size:15px;line-height:1.65}.back-mark{margin-top:22px}.book-spine-face{top:0;left:calc((var(--book-width) - var(--spine-width)) / 2);width:var(--spine-width);background:var(--jacket);height:100%;color:var(--jacket-ink);transform:rotateY(-90deg) translateZ(calc(var(--book-width) / 2));backface-visibility:hidden;border-inline:1px solid #06180f66;justify-content:center;align-items:center;display:flex;position:absolute;box-shadow:inset 3px 0 4px #ffffff0a,inset -3px 0 5px #0003}.book-spine-face span{writing-mode:vertical-rl;text-orientation:mixed;white-space:nowrap;max-height:calc(100% - 24px);font-family:Fraunces Variable,Georgia,serif;font-size:20px;font-weight:450}.market .book-spine-face span{font-size:clamp(15px,1.8svh,18px)}.book-pages{top:3px;bottom:3px;left:calc((var(--book-width) - var(--spine-width)) / 2);width:calc(var(--spine-width) - 4px);transform:rotateY(90deg) translateZ(calc(var(--book-width) / 2 - 2px));backface-visibility:hidden;background:repeating-linear-gradient(90deg,#eee8d7 0 2px,#d9d2bf 2px 3px);position:absolute}.book-top-pages{left:2px;top:calc((var(--book-height) - var(--spine-width) + 4px) / 2);width:calc(100% - 4px);height:calc(var(--spine-width) - 4px);transform:rotateX(90deg) translateZ(calc(var(--book-height) / 2 - 2px));backface-visibility:hidden;background:repeating-linear-gradient(0deg,#eee8d7 0 2px,#d9d2bf 2px 3px);position:absolute}.book-flip{z-index:6;width:var(--spine-width);border-radius:2px;height:100%;padding:0;position:absolute;inset:0}.is-revealed .book-flip{left:calc((var(--spine-width) - var(--book-width)) / 2 - 6px);width:calc(var(--book-width) + 12px);height:calc(100% + 16px);top:-13px}.is-inspecting .book-flip{left:calc((var(--spine-width) - var(--inspection-footprint)) / 2);top:calc((var(--book-height) - var(--inspection-hit-height)) / 2 - 8px);width:var(--inspection-footprint);height:var(--inspection-hit-height)}.shelf-bookmark{width:16px;height:50px;transform-style:preserve-3d;pointer-events:none;opacity:0;transition:opacity .18s;position:absolute;top:-24px;left:calc(60% - 8px);transform:translateZ(0)rotateY(32deg)}.ribbon-cloth{transform-origin:50% 100%;clip-path:polygon(0 0,50% 6%,100% 0,100% 100%,0 100%);background:linear-gradient(90deg,#a94a37,#cf795a 28%,#d78a65 54%,#b9553e);width:100%;height:100%;display:block}.is-inspecting .shelf-bookmark{top:-40px}.has-bookmark .shelf-bookmark{opacity:1}.has-bookmark.is-inspecting .ribbon-cloth{animation:.7s ease-out ribbon-front}.has-bookmark.is-inspecting.is-back .ribbon-cloth{animation-name:ribbon-back}@keyframes ribbon-front{0%,to{transform:rotate(0)rotateX(0)}28%{transform:rotate(13deg)rotateX(-12deg)}60%{transform:rotate(-7deg)rotateX(7deg)}82%{transform:rotate(3deg)rotateX(-3deg)}}@keyframes ribbon-back{0%,to{transform:rotate(0)rotateX(0)}28%{transform:rotate(-13deg)rotateX(-12deg)}60%{transform:rotate(7deg)rotateX(7deg)}82%{transform:rotate(-3deg)rotateX(-3deg)}}.cover-wear{z-index:3;pointer-events:none;opacity:0;position:absolute;inset:0}.is-complete .cover-wear{opacity:.8;background:linear-gradient(135deg,#e9d7ae 0 2px,#0000 5px),linear-gradient(30deg,#d3bf96 0 3px,#0000 7px),linear-gradient(90deg,#e3cd9e88 0 1px,#0000 3px 97%,#cfb78288 99%),linear-gradient(0deg,#e0c99788 0 2px,#0000 5px 98%,#e0c99755 100%);box-shadow:inset 0 0 8px #b79d5c55}.is-complete .book-front img{filter:saturate(.88)contrast(.98)}.is-complete .book-front .cover-wear:before{content:"";border:13px solid #0000;filter:drop-shadow(-1px 2px 1px #0003);border-top-width:0;border-left-width:0;border-right-color:#cdbb95;position:absolute;top:0;right:0}.is-complete .cover-wear:after{content:"";background:#d1be9b;width:18px;height:1px;position:absolute;bottom:12px;left:1px;transform:rotate(-24deg);box-shadow:2px -6px #d1be9b88,3px -9px #d1be9b55}.is-complete .book-spine-face{box-shadow:inset 3px 0 5px #dfc59055,inset -3px 0 6px #0005}.is-complete .book-pages,.is-complete .book-top-pages{background:repeating-linear-gradient(90deg,#d1bd93 0 2px,#bba77c 2px 3px)}.shelf-actions{z-index:8;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;gap:12px;width:min(100%,400px);min-height:48px;margin:0 auto;display:grid;position:relative}.shelf-actions.is-empty{visibility:hidden}.shelf-book-actions{grid-area:1/2;align-items:stretch;gap:8px;width:100%;display:flex}.shelf-actions.is-inspecting .shelf-book-actions{grid-column:1/-1}.shelf-actions.is-inspecting .shelf-arrow{visibility:hidden;pointer-events:none}.shelf-actions .shelf-primary{flex:1;gap:8px;width:auto;min-width:0;min-height:44px;padding:10px 12px;font-size:14px}[data-shelf=collection] .shelf-primary{flex:none;min-width:90px}.shelf-remove{border:1px solid var(--rule);border-radius:2px;flex:1;min-width:0;min-height:44px;padding:9px 8px;font-size:14px;line-height:1.4}.shelf-remove:hover{background:color-mix(in srgb, var(--ink) 5%, transparent)}.shelf-arrow[data-shelf-action=previous]{grid-area:1/1}.shelf-arrow[data-shelf-action=next]{grid-area:1/3}.shelf-primary svg{width:17px;height:17px}.shelf-arrow{border-radius:3px;place-items:center;width:44px;height:44px;display:grid}.shelf-arrow:hover:not(:disabled){background:color-mix(in srgb, var(--ink) 7%, transparent)}.shelf-arrow:disabled{opacity:.3}@media (max-width:650px){:root{--shelf-top-gap:72px;--shelf-bottom-gap:32px}.library-main{padding:18px 16px 28px}.bookshelf>h2{padding-inline:4px}.bookshelf+.bookshelf{margin-top:18px}.shelf-actions{gap:6px}.book-back{padding:22px 18px}.book-back p{font-size:14px;line-height:1.6}}@media (prefers-reduced-motion:reduce){.book-slot,.book-object,.shelf-bookmark{transition:none!important}.ribbon-cloth{animation:none!important}}.measurement-panel{width:min(100%,720px)}.measurement-eyebrow{color:var(--muted);letter-spacing:1.4px;margin-bottom:12px;font-weight:650;font-size:12px!important}.measurement-panel h2{font-family:Fraunces Variable,Georgia,serif;font-size:32px;font-weight:450}.measurement-consent{cursor:pointer;align-items:center;gap:12px;min-height:56px;margin-top:20px;font-size:15px;font-weight:600;display:flex}.measurement-consent input{width:22px;height:22px;accent-color:var(--ink);flex-shrink:0}.measurement-note{color:var(--muted);margin:12px 0;line-height:1.7;font-size:14px!important}.measurement-actions{flex-wrap:wrap;gap:4px 16px;margin:16px 0;display:flex}.measurement-actions button{text-align:left;min-height:44px}#measurement-status:not(:empty),.measurement-confirm,.measurement-warning{background:var(--panel);border:1px solid var(--rule);border-radius:3px;margin:16px 0;padding:14px 16px;font-size:14px;line-height:1.7}#measurement-report h3{border-top:1px solid var(--rule);margin-top:28px;padding-top:24px;font-family:Fraunces Variable,Georgia,serif;font-size:23px;font-weight:450}.measurement-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 24px;margin:24px 0;display:grid}.measurement-metrics dt{color:var(--muted);font-size:13px;line-height:1.5}.measurement-metrics dd{font-variant-numeric:tabular-nums;margin:4px 0 0;font-family:Fraunces Variable,Georgia,serif;font-size:32px;font-weight:450}.measurement-table{width:100%;margin:24px 0}.measurement-table table{table-layout:fixed;border-collapse:collapse;width:100%;font-size:14px;line-height:1.5}.measurement-table caption{text-align:left;margin-bottom:12px;font-weight:650}.measurement-table th,.measurement-table td{border-bottom:1px solid var(--rule);text-align:right;vertical-align:top;overflow-wrap:anywhere;font-variant-numeric:tabular-nums;padding:10px 6px}.measurement-table th:first-child{text-align:left;width:45%}.measurement-table tbody th{font-weight:500}.measurement-table small{color:var(--muted);margin-top:4px;font-size:13px;display:block}.measurement-empty{margin:20px 0;font-size:15px;line-height:1.7}@media (max-width:650px){.measurement-metrics{gap:16px}.measurement-table table{font-size:13px}.measurement-table th:first-child{width:34%}.measurement-table th,.measurement-table td{padding-inline:4px}}
