/* Layered cover materials: stock, grain, print finish, binding and light. */
.book-surface{
 --paper-grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.76' numOctaves='3' seed='8' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Cpath fill='%23888' filter='url(%23n)' d='M0 0h180v180H0z'/%3E%3C/svg%3E");
 --hide-grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='150' height='150'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.12' numOctaves='3' seed='17' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3CfeComponentTransfer%3E%3CfeFuncR type='linear' slope='2.6' intercept='-.7'/%3E%3CfeFuncG type='linear' slope='2.6' intercept='-.7'/%3E%3CfeFuncB type='linear' slope='2.6' intercept='-.7'/%3E%3C/feComponentTransfer%3E%3C/filter%3E%3Cpath fill='%23888' filter='url(%23n)' d='M0 0h150v150H0z'/%3E%3C/svg%3E");
 --light-x:35%;--light-y:30%;--specular:.03;--grain-opacity:.2;
 background:var(--surface-body,linear-gradient(100deg,#fff1,transparent 35%,#0001)),var(--book-color);
}
.book-grain,.book-reflection,.book-binding,.book-underprint{position:absolute;inset:0;pointer-events:none;border-radius:inherit}
.book-grain{z-index:1;background:var(--grain-pattern,var(--paper-grain));background-size:var(--grain-size,130px 130px);opacity:var(--grain-opacity);mix-blend-mode:multiply}
.book-reflection{z-index:4;opacity:var(--specular);background:linear-gradient(108deg,transparent 20%,#fff0 33%,#fff5 49%,#fff0 65%,transparent 80%);background-size:240% 100%;background-position:var(--light-x) 50%;mix-blend-mode:screen;transition:opacity .3s}
.book-binding{z-index:5;box-shadow:inset 2px 0 2px #ffffff14,inset -3px 0 5px #0004;border:1px solid #ffffff16}
.album-spine.book-surface:before{background:none}
.album-spine.book-surface .album-spine-art{z-index:2;opacity:.75}
.album-spine.book-surface .album-spine-title,.album-spine.book-surface .album-spine-number{z-index:3;position:relative}
.album-spine.book-surface{box-shadow:inset 2px 0 5px #0004,inset -1px 0 1px #ffffff21,2px 2px 3px #0008}
.album-spine.book-surface:hover{box-shadow:inset 2px 0 5px #0004,12px 24px 24px #000b}
.album-spine.book-surface.is-dragging{box-shadow:none}

/* Five quiet surfaces: matte paper, kraft, linen, leather and frosted plastic. */
.material-matte{--specular:.025;--grain-opacity:.22;--surface-body:linear-gradient(105deg,#ffffff0c,transparent 50%,#0001)}
.material-kraft{--specular:.015;--grain-opacity:.42;--surface-body:repeating-linear-gradient(5deg,#3f290b0c 0 1px,transparent 1px 9px),linear-gradient(90deg,#0002,transparent 20%,#ffffff08 75%,#0001)}
.material-linen{--specular:.025;--grain-opacity:.3;--surface-body:repeating-linear-gradient(0deg,#0002 0 1px,#ffffff14 1px 2px,transparent 2px 4px),repeating-linear-gradient(90deg,#0002 0 1px,#ffffff0c 1px 2px,transparent 2px 4px)}
.material-leather{--grain-pattern:var(--hide-grain);--grain-opacity:.52;--grain-size:75px 75px;--specular:.045;--surface-body:linear-gradient(94deg,#0004,transparent 13%,#ffffff09 60%,#0002)}
.material-leather .book-binding{inset:3px;border:1px dashed #eac89a40;box-shadow:inset 0 0 1px #26180fcc}
.material-frosted{--specular:.085;--grain-opacity:.28;--grain-size:60px 60px;--surface-body:linear-gradient(115deg,#dbe8e333,#92bcc326 48%,#cce0dc33)}
.material-frosted .book-binding{border:1px solid #d0dedb33;box-shadow:inset 2px 0 3px #ffffff1a,inset -3px 0 6px #71938c26}
.album-spine.material-frosted .album-spine-art{inset:15% 5px 9%;height:auto;background:repeating-linear-gradient(162deg,transparent 0 16px,var(--book-accent) 17px 25px);opacity:.27;filter:blur(1px)}
.material-frosted .book-grain{mix-blend-mode:soft-light}

/* Print finishes affect the actual type, not just the cover colour. */
.finish-gold .album-spine-title,.finish-gold .cover-title-block h3{color:#c9af79;background:none;-webkit-text-fill-color:currentColor;text-shadow:0 1px 0 #0003}
.finish-silver .album-spine-title,.finish-silver .cover-title-block h3{color:#bdccc7;background:none;-webkit-text-fill-color:currentColor;text-shadow:0 1px 0 #0003}
.finish-deboss .album-spine-title,.finish-deboss .cover-title-block h3{color:var(--book-ink);text-shadow:0 1px 0 #ffffff26,0 -1px 1px #0006}
.finish-blind .album-spine-title,.finish-blind .cover-title-block h3{color:color-mix(in srgb,var(--book-color) 67%,#56564b);text-shadow:1px 1px 0 #ffffff40,-1px -1px 1px #0003}

/* Titles are printed into the stock rather than mounted on labels. */
.binding-label .album-spine-title{background:none;color:var(--book-ink);padding:0;box-shadow:none;font-size:clamp(10px,1.45cqw,20px);max-height:76%;overflow:hidden}
.binding-label.finish-gold .album-spine-title,.binding-label.finish-deboss .album-spine-title{background:none;-webkit-text-fill-color:currentColor;filter:none}
.binding-band .album-spine-title{background:none;padding:0;color:var(--book-ink);margin-bottom:0;box-shadow:none;font-size:clamp(10px,1.4cqw,20px)}
.binding-band .album-spine-art{display:none}
.binding-technical .album-spine-title{font-size:clamp(9px,1.2cqw,17px);letter-spacing:.13em}
.binding-technical .album-spine-number{padding:3px 2px;border:1px solid currentColor;opacity:.85}
.binding-monograph .album-spine-art{display:none}
.binding-monograph .album-spine-title{font-family:var(--serif);font-size:clamp(11px,1.9cqw,27px);padding-bottom:12px}
.binding-poster .album-spine-title{font-weight:700;font-size:clamp(13px,2.05cqw,29px);letter-spacing:-.055em}

/* Real cover typography, with seven different compositions. */
.album-cover-face.book-surface{padding:7%;gap:0;isolation:isolate;text-align:left}
.album-cover-face.book-surface:after{box-shadow:inset 8px 0 10px #0003,inset 12px 0 1px #ffffff26,inset 14px 0 4px #0002;z-index:6}
.book-surface .album-cover-meta{position:relative;z-index:3;font-size:clamp(6px,.86cqw,10px);line-height:1.4;letter-spacing:.07em}
.album-cover-meta>span:last-child{text-align:right}
.cover-title-block{position:relative;z-index:3;margin:auto 0;max-width:100%}
.cover-kicker{font-size:clamp(6px,.8cqw,10px);letter-spacing:.14em;display:block;margin-bottom:10%}
.album-cover-face .cover-title-block h3{font-family:var(--font);font-size:clamp(20px,5.9cqw,72px);font-weight:500;line-height:.92;letter-spacing:-.065em;margin:0;overflow-wrap:normal;word-break:normal}
.cover-chinese{font-size:clamp(9px,1.4cqw,17px);letter-spacing:.15em;display:block;margin-top:10%}
.cover-edition{position:absolute;top:14%;right:6%;font-size:clamp(50px,20cqw,250px);line-height:.8;letter-spacing:-.09em;color:var(--book-accent);opacity:.3;z-index:1}
.cover-colophon{position:relative;z-index:3;display:flex;justify-content:space-between;align-items:end;gap:12px;font-size:clamp(5px,.75cqw,9px);line-height:1.5;letter-spacing:.04em;margin-bottom:5%}
.cover-colophon>span:last-child{text-align:right}
.cover-material-note{position:relative;z-index:3;font-size:clamp(6px,.86cqw,10px);letter-spacing:.035em;border-top:1px solid currentColor;padding-top:4%;opacity:.75}
.cover-rule{display:none}
.album-cover-face .book-binding{inset:3px}

.cover-layout-label .cover-title-block{background:#e8e1cb;color:#2d352a;box-shadow:2px 3px 5px #0004;padding:12% 8%;margin:14% 0 auto;transform:rotate(-2deg);max-width:94%}
.cover-layout-label .cover-title-block h3{font-family:var(--serif);font-size:clamp(20px,5cqw,64px);line-height:.95;color:#303629;background:none;-webkit-text-fill-color:currentColor;filter:none;text-shadow:none;letter-spacing:-.025em}
.cover-layout-label .cover-edition{top:auto;bottom:15%;right:6%;opacity:.5;font-family:var(--serif);font-style:italic}
.cover-layout-label .cover-kicker{font-size:clamp(5px,.7cqw,9px);border-bottom:1px solid #30362966;padding-bottom:9%;margin-bottom:12%}
.cover-layout-band .cover-title-block{margin:auto -9% 22%;padding:8%;background:var(--book-accent);color:#1b2c2a;box-shadow:0 3px 7px #0005;transform:rotate(-3deg)}
.cover-layout-band .cover-title-block h3{font-size:clamp(21px,5.3cqw,66px);text-shadow:none;color:#192a25;letter-spacing:-.055em}
.cover-layout-band .cover-edition{font-size:clamp(80px,26cqw,300px);top:20%;opacity:.7;color:var(--book-ink)}
.cover-layout-band .cover-kicker{margin-bottom:5%}
.cover-layout-editorial .cover-title-block{margin:12% 0 auto}
.cover-layout-editorial .cover-edition{top:auto;bottom:14%;font-family:var(--serif);font-style:italic;opacity:.75}
.cover-layout-monograph .cover-title-block{text-align:center;margin:auto 6%}
.cover-layout-monograph .cover-title-block h3{font-family:var(--serif);font-weight:400;letter-spacing:-.02em;line-height:1.03}
.cover-layout-monograph .cover-edition{font-size:clamp(16px,2.2cqw,30px);top:auto;bottom:24%;right:0;left:0;text-align:center;color:var(--book-ink);opacity:.65;letter-spacing:.3em}
.cover-layout-monograph .cover-rule{display:block;position:absolute;inset:16% 7% 18%;border:1px solid currentColor;opacity:.32;pointer-events:none}
.cover-layout-monograph .cover-chinese{margin-top:15%}
.cover-layout-technical .book-underprint{background:linear-gradient(90deg,transparent 49.8%,#132b3430 50% 50.2%,transparent 50.3%),repeating-linear-gradient(0deg,transparent 0 39px,#213d3a20 39px 40px)}
.cover-layout-technical .cover-title-block{margin:25% 0 auto}
.cover-layout-technical .cover-title-block h3{font-size:clamp(19px,4.7cqw,60px);font-weight:700;letter-spacing:-.065em}
.cover-layout-technical .cover-edition{top:15%;font-size:clamp(22px,5cqw,66px);padding:3% 5%;border:1px solid currentColor;opacity:.8;color:var(--book-ink);letter-spacing:-.06em}
.cover-layout-technical .cover-kicker{margin-bottom:6%;letter-spacing:.06em}
.cover-layout-window .book-underprint{inset:7% 10%;transform:rotate(6deg);background:linear-gradient(148deg,transparent 0 33%,var(--book-accent) 34% 58%,transparent 59%),repeating-linear-gradient(0deg,#ffffff8c 0 35px,#28343b33 36px 37px);box-shadow:3px 3px 8px #0003}
.cover-layout-window .book-grain{backdrop-filter:blur(1px);opacity:.5;background-color:#eef5f533}
.cover-layout-window .cover-title-block{padding:8% 5%;border:1px solid #dcefea40;background:#d6e6df70;backdrop-filter:blur(4px);margin:auto 0 25%;box-shadow:0 1px 1px #ffffff1a}
.cover-layout-window .cover-title-block h3{font-weight:400;font-size:clamp(20px,4.7cqw,60px);color:#214048;background:none;-webkit-text-fill-color:currentColor;filter:none}
.cover-layout-window .cover-edition{opacity:.8;top:14%;font-size:clamp(50px,15cqw,180px);color:var(--book-ink)}
.cover-layout-poster .cover-title-block{margin:auto -3%;transform:rotate(-7deg)}
.cover-layout-poster .cover-title-block h3{font-weight:700;text-transform:uppercase;font-size:clamp(23px,6.8cqw,86px);line-height:.88;letter-spacing:-.08em}
.cover-layout-poster .cover-edition{top:auto;bottom:12%;opacity:.55;font-size:clamp(70px,25cqw,290px);mix-blend-mode:multiply}
.cover-layout-poster .cover-kicker{background:var(--book-ink);color:var(--book-color);padding:3%;display:inline-block;letter-spacing:.05em}
.cover-layout-poster .cover-chinese{letter-spacing:.04em}
@media(max-width:600px){
 .binding-label .album-spine-title,.binding-band .album-spine-title{font-size:9px;padding:6px 1px}
 .binding-technical .album-spine-title{font-size:8px;letter-spacing:.035em}
 .binding-monograph .album-spine-title{font-size:11px;padding-bottom:5px}
 .binding-poster .album-spine-title{font-size:12px}
 .book-surface .book-binding{border-width:.5px}
 .album-cover-face .cover-title-block h3{font-size:5.9cqw}
 .cover-layout-label .cover-title-block h3{font-size:5cqw}
 .cover-layout-technical .cover-title-block h3,.cover-layout-window .cover-title-block h3{font-size:4.7cqw}
 .cover-layout-poster .cover-title-block h3{font-size:6.8cqw}
}
@media(prefers-reduced-motion:reduce){.book-reflection{transition:none}}
