:root{color-scheme:dark}*{box-sizing:border-box}html{scroll-behavior:smooth}body.gw-library{margin:0;color:#f0f9ff;background:radial-gradient(ellipse at 80% -12%,#154467 0,transparent 43%),#07131f;font:16px/1.7 system-ui,-apple-system,"Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;min-height:100vh}a{color:inherit}.lib-container{width:min(1100px,calc(100% - 36px));margin:auto}.lib-header{border-bottom:1px solid #24465b;background:#071522aa}.lib-header-inner{min-height:76px;display:flex;align-items:center;justify-content:space-between;gap:15px}.lib-brand{font-weight:850;font-size:26px;text-decoration:none;letter-spacing:.11em}.lib-brand span,.lib-dot{color:#39cbed}.lib-brand small{font-size:9px;letter-spacing:.22em;font-weight:600;margin-left:10px;color:#b4cbd8}.lib-back{border:1px solid #315771;border-radius:50px;padding:8px 17px;text-decoration:none;font-size:13px;color:#bfeafd}.lib-back:hover,.lib-back:focus-visible{border-color:#39cbed;color:#fff}.lib-intro{padding:76px 0 65px;border-bottom:1px solid #23516b}.lib-overline{margin:0 0 14px;color:#63dcf4;font-size:11px;letter-spacing:.22em;font-weight:750}.lib-intro-grid{display:grid;grid-template-columns:1fr .75fr;gap:40px;align-items:center}.lib-number{color:#a8c3d3;font-size:12px;letter-spacing:.18em;margin:0 0 11px}.lib-intro h1{font-size:clamp(45px,7vw,80px);letter-spacing:.07em;line-height:1.15;margin:0 0 27px}.lib-lead{font-weight:750;line-height:1.55;font-size:clamp(19px,2.7vw,29px);margin:0 0 15px}.lib-sub{color:#afc6d3;font-size:14px;margin:0}.lib-deco{min-height:260px;border:1px solid #295c74;border-radius:22px;background:linear-gradient(135deg,#13334799,#091a29);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;box-shadow:0 14px 65px #0004}.lib-deco>span{font-size:10px;letter-spacing:.28em;text-align:center;color:#7caabf}.lib-books{height:122px;display:flex;align-items:end;gap:9px;border-bottom:3px solid #53dcf3;padding:0 12px 0}.lib-books i{height:100px;width:25px;border:1px solid #59c9e0;border-radius:4px 4px 0 0;background:linear-gradient(125deg,#153e5b,#0c2233);box-shadow:inset 5px 0 #ffffff0a}.lib-books i:nth-child(2){height:118px;background:#174c65}.lib-books i:nth-child(3){height:92px;background:#114f60}.lib-books i:nth-child(4){height:109px;background:#584831;border-color:#dca869;transform:rotate(-8deg);transform-origin:bottom}.lib-books i:nth-child(5){height:104px}.lib-books i:nth-child(6){height:112px;background:#20526a}.lib-collection{padding:56px 0 110px}.lib-section-head{display:flex;justify-content:space-between;align-items:end;gap:12px;margin-bottom:26px}.lib-section-head h2{font-size:clamp(24px,4vw,34px);margin:0}.lib-count{font-size:13px;color:#9fbccc;margin:0 0 5px}.lib-controls{display:flex;gap:14px;align-items:center;justify-content:space-between;margin:0 0 24px}.lib-controls[hidden],.lib-empty[hidden]{display:none}.lib-search{flex:1;max-width:530px}.lib-search input,.lib-sort select{background:#10273a;color:#fff;border:1px solid #38627a;border-radius:10px;padding:12px 14px;font:inherit;width:100%}.lib-sort{display:flex;gap:10px;align-items:center;font-size:12px;color:#bbd2df}.lib-sort select{width:auto}.lib-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.lib-card{background:#102639;border:1px solid #285774;border-radius:16px;overflow:hidden;display:flex;flex-direction:column;min-width:0;transition:transform .2s,border-color .2s}.lib-card:hover{transform:translateY(-3px);border-color:#4dcff0}.lib-cover{aspect-ratio:3/2;background:linear-gradient(145deg,#15445d,#0c1725);display:flex;align-items:center;justify-content:center;color:#5dbbd1;font-weight:750;letter-spacing:.2em}.lib-cover img{width:100%;height:100%;object-fit:cover}.lib-card-body{padding:18px;flex:1;display:flex;flex-direction:column}.lib-type{font-size:10px;letter-spacing:.15em;color:#78cfe4}.lib-card h3{font-size:19px;line-height:1.45;margin:8px 0}.lib-card p{font-size:13px;color:#bacbd5;line-height:1.7;margin:0 0 20px}.lib-card a{font-size:14px;text-decoration:none;font-weight:750;color:#67dbf5;margin-top:auto}.lib-card a:hover{text-decoration:underline}.lib-empty{border:1px dashed #386178;border-radius:18px;padding:65px 20px;text-align:center;background:linear-gradient(135deg,#0d293a77,#081824);color:#acc6d5}.lib-empty-symbol{border:1px solid #2b5466;width:max-content;padding:12px 20px;margin:0 auto 25px;border-radius:9px;color:#65c7df;letter-spacing:.2em;font-size:12px}.lib-empty h3{font-size:clamp(18px,3vw,24px);color:#e3f7ff;margin:0 0 10px}.lib-empty p{margin:0;font-size:14px}.lib-pagination{display:flex;justify-content:center;gap:10px;margin-top:25px}.lib-pagination:empty{display:none}.lib-pagination button{background:#102b40;border:1px solid #38627a;border-radius:9px;color:#d9f8ff;min-width:43px;min-height:43px;cursor:pointer}.lib-pagination button[aria-current=page]{background:#1e6987;color:#fff;border-color:#58c9e9}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}@media(max-width:700px){.lib-container{width:min(100% - 26px,1100px)}.lib-header-inner{min-height:65px}.lib-intro{padding:43px 0 38px}.lib-intro-grid{grid-template-columns:1fr;gap:25px}.lib-deco{min-height:150px}.lib-books{height:88px;transform:scale(.65);margin-bottom:-16px}.lib-deco>span{font-size:8px}.lib-collection{padding:40px 0 70px}.lib-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.lib-card-body{padding:13px}.lib-card h3{font-size:16px}.lib-card p{font-size:12px}.lib-controls{flex-wrap:wrap}.lib-search{flex-basis:100%;max-width:none}.lib-section-head{align-items:start}.lib-empty{padding:48px 15px}}@media(max-width:360px){.lib-brand small{display:none}.lib-grid{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.lib-card{transition:none}}

.lib-mag-entrance{margin:40px 0 0}.lib-mag-link{display:flex;flex-direction:column;gap:10px;border:1px solid #366c86;border-radius:18px;padding:26px 30px;background:linear-gradient(115deg,#153e54,#0c2030);text-decoration:none}.lib-mag-link:hover{border-color:#57d8f0}.lib-mag-kicker{color:#65d6ed;font-size:11px;letter-spacing:.16em}.lib-mag-link strong{font-size:clamp(24px,4vw,34px);line-height:1.3}.lib-mag-desc{font-size:14px;color:#b7d0de}.lib-mag-action{color:#ffbf75;font-weight:700;font-size:14px}@media(max-width:600px){.lib-mag-link{padding:22px}}

/* TOPページと共通のブランドロゴ（2026-10-14） */
.lib-header .lib-brand{display:inline-flex;align-items:center;gap:12px;min-width:0;letter-spacing:normal;font-weight:400}
.lib-header .lib-brand img{display:block;width:48px;height:48px;object-fit:contain;flex:none}
.lib-header .lib-brand-words{display:flex;flex-direction:column;min-width:0;gap:0;line-height:1.18}
.lib-header .lib-brand-words strong{font-size:19px;font-weight:800;letter-spacing:.015em;white-space:nowrap}
.lib-header .lib-brand-words small{margin:5px 0 0;color:#b4cbd8;font-size:9px;line-height:1.2;letter-spacing:.12em;font-weight:600;white-space:nowrap}
@media(max-width:500px){.lib-header .lib-brand{gap:8px}.lib-header .lib-brand img{width:39px;height:39px}.lib-header .lib-brand-words strong{font-size:16px}.lib-header .lib-brand-words small{font-size:8px;letter-spacing:.04em}.lib-header .lib-back{padding:7px 11px;font-size:12px}}
@media(max-width:360px){.lib-header .lib-brand-words small{display:none}}


/* Gadgetworks 文庫 – library storefront 2026-10-14: scoped overrides */
.lib-intro.lib-intro-editorial{position:relative;isolation:isolate;overflow:hidden;margin-top:22px;padding:clamp(40px,6vw,76px) clamp(20px,4vw,48px);border:1px solid #2b6680;border-radius:22px;background:#0b2030;min-height:300px;box-shadow:0 15px 50px #0002}
.lib-intro-editorial:before{content:"";position:absolute;inset:0;z-index:-2;background:linear-gradient(135deg,#173d50,#0b2030);opacity:.19}
.lib-intro-editorial:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(92deg,#081927 0%,#0b2132ee 38%,#0b2434bd 78%,#0d263ac9 100%)}
.lib-intro-editorial .lib-intro-grid{grid-template-columns:minmax(0,1.25fr) minmax(150px,.55fr);gap:24px}
.lib-intro-editorial .lib-number{color:#71cee1}
.lib-intro-editorial h1{font-size:clamp(46px,6.5vw,72px);margin-bottom:9px}
.lib-hero-category{font-size:clamp(16px,2.4vw,23px);font-weight:850;letter-spacing:.05em;margin:0 0 17px;color:#f0fbff}
.lib-intro-editorial .lib-lead{font-size:clamp(17px,2.3vw,25px);margin-bottom:10px}
.lib-intro-editorial .lib-sub{color:#d0e4ed;line-height:1.9;max-width:620px}
.lib-editorial-mark{align-self:center;justify-self:end;display:flex;flex-direction:column;align-items:center;padding:27px 18px;min-width:175px;max-width:240px;width:100%;border:1px solid #7fd5e057;border-radius:15px;background:#071a289c;text-align:center;box-shadow:0 0 40px #030e1970;backdrop-filter:blur(2px)}
.lib-editorial-mark>span{font-size:10px;color:#83d4e7;letter-spacing:.17em;white-space:nowrap}
.lib-editorial-mark strong{font-size:clamp(32px,4vw,49px);line-height:1.5;letter-spacing:.12em}
.lib-editorial-mark small{font-size:8px;color:#b5d6e4;letter-spacing:.09em;white-space:nowrap}
.lib-mag-entrance{margin:24px 0 0}
.lib-mag-link{position:relative;gap:5px;flex-direction:column;border-color:#255774;padding:19px 24px;border-radius:14px;background:linear-gradient(110deg,#15354a,#0c2435)}
.lib-mag-link strong{font-size:clamp(18px,2.5vw,24px)}
.lib-mag-desc{font-size:12px}
.lib-mag-action{font-size:13px;color:#7fd5ef}
.lib-collection{padding-top:50px}
.lib-shelf-desc{margin:8px 0 0;color:#adc7d5;font-size:13px}
.lib-grid{gap:17px}
.lib-card{background:#0c2232;border-color:#2b5268;border-radius:13px}
.lib-cover{position:relative;aspect-ratio:4/5;overflow:hidden;letter-spacing:normal}
.lib-cover-generated{isolation:isolate;display:flex;flex-direction:column;justify-content:space-between;align-items:center;text-align:center;padding:18px 12px 15px;border-bottom:1px solid #4b809477;--c1:#103e53;--c2:#102031;--c3:#70cced;background:radial-gradient(ellipse at 80% 15%,color-mix(in srgb,var(--c3) 33%,transparent),transparent 53%),linear-gradient(146deg,var(--c1),var(--c2));color:#fff}
.lib-cover-generated:before{content:"";position:absolute;inset:11px;z-index:-1;border:1px solid #ffffff33;border-radius:2px;box-shadow:inset 0 0 0 3px #ffffff0b}
.lib-cover-generated:after{content:"";position:absolute;inset:33% -15% auto;height:70%;transform:rotate(-20deg);z-index:-2;background:radial-gradient(ellipse at center,color-mix(in srgb,var(--c3) 48%,transparent),transparent 62%);opacity:.55}
.lib-cover-imprint{letter-spacing:.2em;font-size:clamp(7px,.7vw,10px);font-weight:750;color:#d7f6ff}
.lib-cover-ornament{font-size:clamp(14px,2vw,26px);font-weight:300;line-height:1;color:var(--c3);text-shadow:0 0 12px var(--c3)}
.lib-cover-title{font-size:clamp(15px,1.8vw,24px);line-height:1.45;letter-spacing:.04em;max-width:95%;max-height:4.4em;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow-wrap:anywhere;text-shadow:0 2px 8px #000b}
.lib-cover-colophon{color:#dce9f3;font-size:clamp(6px,.6vw,9px);letter-spacing:.14em}
.lib-cover-theme-0{--c1:#3a223d;--c2:#121b35;--c3:#f6acd1}
.lib-cover-theme-1{--c1:#204b52;--c2:#111a2f;--c3:#69e3dc}
.lib-cover-theme-2{--c1:#44362c;--c2:#1d192b;--c3:#eec589}
.lib-cover-theme-3{--c1:#263859;--c2:#0a192d;--c3:#83aaff}
.lib-cover-theme-4{--c1:#4b2740;--c2:#221528;--c3:#ff8eaa}
.lib-cover-theme-5{--c1:#244735;--c2:#112a29;--c3:#bae89c}
.lib-cover-theme-6{--c1:#463735;--c2:#13202d;--c3:#f0b7a5}
.lib-cover-theme-7{--c1:#174554;--c2:#101b34;--c3:#a9c9ec}
.lib-card-body{padding:15px}
.lib-card h3{margin:5px 0 8px;font-size:clamp(15px,1.6vw,18px)}
.lib-card p{margin-bottom:13px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;min-height:3.8em}
.lib-card a{font-size:13px}
@media(max-width:700px){.lib-intro.lib-intro-editorial{margin-top:12px;min-height:0;padding:34px 19px}.lib-intro-editorial .lib-intro-grid{grid-template-columns:1fr;gap:17px}.lib-intro-editorial:before{background-position:65% center;opacity:.13}.lib-intro-editorial:after{background:linear-gradient(90deg,#081927ee,#081927c9)}.lib-editorial-mark{justify-self:start;flex-direction:row;width:auto;max-width:none;min-width:0;padding:9px 14px;gap:9px;border-radius:8px}.lib-editorial-mark strong{font-size:19px}.lib-editorial-mark small{display:none}.lib-editorial-mark>span{font-size:9px}.lib-collection{padding-top:34px}.lib-cover-generated{padding:13px 8px 12px}.lib-cover-title{font-size:clamp(14px,3.8vw,19px)}.lib-card-body{padding:12px}.lib-card p{font-size:12px}}
@media(max-width:360px){.lib-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.lib-cover-generated{padding:11px 7px}.lib-cover-title{font-size:13px}.lib-card-body{padding:9px}.lib-card h3{font-size:14px}}

/* 4 genre × 4 variation = 16 automatic book cover styles (no generated image APIs). */
.lib-genre-filters{display:flex;flex-wrap:wrap;gap:9px;margin:-4px 0 20px}
.lib-genre-filters[hidden]{display:none}
.lib-genre-filters button{border:1px solid #375c75;border-radius:999px;padding:9px 14px;background:#0e2a3c;color:#d3e9f4;font:inherit;font-size:12px;cursor:pointer;min-height:40px}
.lib-genre-filters button[aria-pressed="true"]{border-color:#62d4ee;background:#17627c;color:#fff;box-shadow:0 0 0 1px #6bdbf655}
.lib-genre-filters button:hover,.lib-genre-filters button:focus-visible{border-color:#9de8f7}
.lib-cover-generated{--c1:#20425b;--c2:#101a2c;--c3:#81c5d7;position:relative;overflow:hidden}
.lib-cover-generated.lib-genre-suspense{--c1:#391e33;--c2:#101521;--c3:#e17b82}
.lib-cover-generated.lib-genre-human{--c1:#385746;--c2:#1c2a2c;--c3:#e7c58c}
.lib-cover-generated.lib-genre-romance{--c1:#7e4563;--c2:#3e274d;--c3:#ffcfce}
.lib-cover-generated.lib-genre-light-novel{--c1:#235b83;--c2:#2c296d;--c3:#9deaff}
.lib-cover-generated.lib-genre-unclassified{--c1:#27445c;--c2:#192638;--c3:#8fb0d0}
.lib-cover-generated.lib-cover-variant-1{background:radial-gradient(circle at 20% 72%,color-mix(in srgb,var(--c3) 35%,transparent),transparent 55%),linear-gradient(125deg,var(--c1),var(--c2))}
.lib-cover-generated.lib-cover-variant-2{background:repeating-linear-gradient(155deg,transparent 0 46px,#ffffff07 47px 49px),radial-gradient(circle at 90% 16%,color-mix(in srgb,var(--c3) 35%,transparent),transparent 56%),linear-gradient(155deg,var(--c2),var(--c1))}
.lib-cover-generated.lib-cover-variant-3{background:linear-gradient(90deg,#ffffff08 0 17%,transparent 17% 100%),radial-gradient(circle at 65% 45%,color-mix(in srgb,var(--c3) 24%,transparent),transparent 59%),linear-gradient(20deg,var(--c1),var(--c2))}
.lib-cover-generated .lib-cover-genre{z-index:1;color:#f7f8fc;font-size:clamp(9px,1.1vw,12px);letter-spacing:.08em;font-weight:700;border:1px solid #ffffff56;border-radius:2px;padding:2px 6px;max-width:100%;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;line-height:1.45}
.lib-cover-generated .lib-cover-title{z-index:1;margin:auto 0;font-size:clamp(15px,1.75vw,23px)}
.lib-cover-generated .lib-cover-ornament{display:block;position:absolute;left:22%;right:22%;top:37%;height:1px;background:linear-gradient(90deg,transparent,var(--c3),transparent);opacity:.65;pointer-events:none}
.lib-cover-generated .lib-cover-ornament:after{content:"";position:absolute;top:-4px;left:calc(50% - 4px);width:9px;height:9px;border:1px solid var(--c3);transform:rotate(45deg);background:var(--c2)}
.lib-cover-generated .lib-cover-colophon{z-index:1}
@media(max-width:700px){.lib-genre-filters{gap:7px;margin-bottom:17px}.lib-genre-filters button{font-size:11px;padding:8px 10px}.lib-cover-generated .lib-cover-genre{font-size:9px}.lib-cover-generated .lib-cover-title{font-size:clamp(13px,3.4vw,18px)}}

/* Bookshelf: cover links to the same detail page as the text link. */
.lib-card .lib-cover-link{display:block;width:100%;margin:0;color:inherit;text-decoration:none;font-size:inherit;font-weight:inherit;line-height:normal;}
.lib-card .lib-cover-link:hover{text-decoration:none;}
.lib-card .lib-cover-link:focus-visible{outline:3px solid #67dbf5;outline-offset:-3px;}
.lib-card .lib-cover-link .lib-cover{width:100%;}
