/* ============================================================
   Phosphor Duotone · 本地精简版（2026.9.20）
   仅含麦灵官网用到的 45 个图标 · 字体 assets/fonts/phosphor-duotone.woff2
   授权：MIT（Phosphor Icons）
   ============================================================ */
@font-face {
  font-family: "Phosphor-Duotone";
  src: url("../fonts/phosphor-duotone.woff2") format("woff2");
  font-weight: normal; font-style: normal; font-display: swap;
}
.ph-duotone {
  font-family: "Phosphor-Duotone" !important;
  speak: never; font-style: normal; font-weight: normal; font-variant: normal;
  text-transform: none; line-height: 1; display: inline-block;
  vertical-align: -0.125em;
  -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;
}
/* 双色调：::before 是淡色底衬，::after 是主色图形 */
.ph-duotone::before { opacity: .22; }
.ph-duotone.ph-arrows-clockwise:before { content: "\e094"; }
.ph-duotone.ph-arrows-clockwise:after { content: "\e095"; margin-left: -1em; }
.ph-duotone.ph-arrows-left-right:before { content: "\e0a0"; }
.ph-duotone.ph-arrows-left-right:after { content: "\e0a1"; margin-left: -1em; }
.ph-duotone.ph-brain:before { content: "\e74e"; }
.ph-duotone.ph-brain:after { content: "\e74f"; margin-left: -1em; }
.ph-duotone.ph-camera:before { content: "\e10e"; }
.ph-duotone.ph-camera:after { content: "\e10f"; margin-left: -1em; }
.ph-duotone.ph-chart-line-up:before { content: "\e156"; }
.ph-duotone.ph-chart-line-up:after { content: "\e157"; margin-left: -1em; }
.ph-duotone.ph-chat-circle:before { content: "\e168"; }
.ph-duotone.ph-chat-circle:after { content: "\e169"; margin-left: -1em; }
.ph-duotone.ph-check-circle:before { content: "\e184"; }
.ph-duotone.ph-check-circle:after { content: "\e185"; margin-left: -1em; }
.ph-duotone.ph-cloud:before { content: "\e1aa"; }
.ph-duotone.ph-cloud:after { content: "\e1ab"; margin-left: -1em; }
.ph-duotone.ph-coffee:before { content: "\e1c2"; }
.ph-duotone.ph-coffee:after { content: "\e1c3"; margin-left: -1em; }
.ph-duotone.ph-cube:before { content: "\e1da"; }
.ph-duotone.ph-cube:after { content: "\e1db"; margin-left: -1em; }
.ph-duotone.ph-currency-circle-dollar:before { content: "\e54c"; }
.ph-duotone.ph-currency-circle-dollar:after { content: "\e54d"; margin-left: -1em; }
.ph-duotone.ph-device-mobile:before { content: "\e1e0"; }
.ph-duotone.ph-device-mobile:after { content: "\e1e1"; margin-left: -1em; }
.ph-duotone.ph-download-simple:before { content: "\e20c"; }
.ph-duotone.ph-download-simple:after { content: "\e20d"; margin-left: -1em; }
.ph-duotone.ph-eye:before { content: "\e220"; }
.ph-duotone.ph-eye:after { content: "\e221"; margin-left: -1em; }
.ph-duotone.ph-floppy-disk:before { content: "\e248"; }
.ph-duotone.ph-floppy-disk:after { content: "\e249"; margin-left: -1em; }
.ph-duotone.ph-folders:before { content: "\e260"; }
.ph-duotone.ph-folders:after { content: "\e261"; margin-left: -1em; }
.ph-duotone.ph-gear-six:before { content: "\e272"; }
.ph-duotone.ph-gear-six:after { content: "\e273"; margin-left: -1em; }
.ph-duotone.ph-house:before { content: "\e2c2"; }
.ph-duotone.ph-house:after { content: "\e2c3"; margin-left: -1em; }
.ph-duotone.ph-infinity:before { content: "\e634"; }
.ph-duotone.ph-infinity:after { content: "\e635"; margin-left: -1em; }
.ph-duotone.ph-laptop:before { content: "\e586"; }
.ph-duotone.ph-laptop:after { content: "\e587"; margin-left: -1em; }
.ph-duotone.ph-lightbulb:before { content: "\e2dc"; }
.ph-duotone.ph-lightbulb:after { content: "\e2dd"; margin-left: -1em; }
.ph-duotone.ph-lightning:before { content: "\e2de"; }
.ph-duotone.ph-lightning:after { content: "\e2df"; margin-left: -1em; }
.ph-duotone.ph-lock:before { content: "\e2fa"; }
.ph-duotone.ph-lock:after { content: "\e2fb"; margin-left: -1em; }
.ph-duotone.ph-lock-key:before { content: "\e2fe"; }
.ph-duotone.ph-lock-key:after { content: "\e2ff"; margin-left: -1em; }
.ph-duotone.ph-magnifying-glass:before { content: "\e30c"; }
.ph-duotone.ph-magnifying-glass:after { content: "\e30d"; margin-left: -1em; }
.ph-duotone.ph-mailbox:before { content: "\ec1e"; }
.ph-duotone.ph-mailbox:after { content: "\ec1f"; margin-left: -1em; }
.ph-duotone.ph-mask-happy:before { content: "\e9f4"; }
.ph-duotone.ph-mask-happy:after { content: "\e9f5"; margin-left: -1em; }
.ph-duotone.ph-microphone:before { content: "\e326"; }
.ph-duotone.ph-microphone:after { content: "\e327"; margin-left: -1em; }
.ph-duotone.ph-mouse:before { content: "\e33a"; }
.ph-duotone.ph-mouse:after { content: "\e33b"; margin-left: -1em; }
.ph-duotone.ph-package:before { content: "\e390"; }
.ph-duotone.ph-package:after { content: "\e391"; margin-left: -1em; }
.ph-duotone.ph-palette:before { content: "\e6c8"; }
.ph-duotone.ph-palette:after { content: "\e6c9"; margin-left: -1em; }
.ph-duotone.ph-pencil-simple:before { content: "\e3b4"; }
.ph-duotone.ph-pencil-simple:after { content: "\e3b5"; margin-left: -1em; }
.ph-duotone.ph-person-arms-spread:before { content: "\ecfe"; }
.ph-duotone.ph-person-arms-spread:after { content: "\ecff"; margin-left: -1em; }
.ph-duotone.ph-plug:before { content: "\e946"; }
.ph-duotone.ph-plug:after { content: "\e947"; margin-left: -1em; }
.ph-duotone.ph-puzzle-piece:before { content: "\e596"; }
.ph-duotone.ph-puzzle-piece:after { content: "\e597"; margin-left: -1em; }
.ph-duotone.ph-question:before { content: "\e3e8"; }
.ph-duotone.ph-question:after { content: "\e3eb"; margin-left: -1em; }
.ph-duotone.ph-robot:before { content: "\e762"; }
.ph-duotone.ph-robot:after { content: "\e763"; margin-left: -1em; }
.ph-duotone.ph-rocket-launch:before { content: "\e3fe"; }
.ph-duotone.ph-rocket-launch:after { content: "\e401"; margin-left: -1em; }
.ph-duotone.ph-sketch-logo:before { content: "\e42c"; }
.ph-duotone.ph-sketch-logo:after { content: "\e42d"; margin-left: -1em; }
.ph-duotone.ph-sparkle:before { content: "\e6a2"; }
.ph-duotone.ph-sparkle:after { content: "\e6a3"; margin-left: -1em; }
.ph-duotone.ph-speaker-high:before { content: "\e44a"; }
.ph-duotone.ph-speaker-high:after { content: "\e44b"; margin-left: -1em; }
.ph-duotone.ph-star:before { content: "\e46a"; }
.ph-duotone.ph-star:after { content: "\e46b"; margin-left: -1em; }
.ph-duotone.ph-target:before { content: "\e47c"; }
.ph-duotone.ph-target:after { content: "\e47d"; margin-left: -1em; }
.ph-duotone.ph-users-three:before { content: "\e68e"; }
.ph-duotone.ph-users-three:after { content: "\e68f"; margin-left: -1em; }
.ph-duotone.ph-wrench:before { content: "\e5d4"; }
.ph-duotone.ph-wrench:after { content: "\e5d5"; margin-left: -1em; }

/* ============================================================
   图标在站内的呈现（2026.9.20）
   结构：<span class="bento-ico"><i class="ph-duotone ph-xxx"></i></span>
   双色调原理：::before 是 22% 透明度的底衬，::after 是主色图形
   ============================================================ */
.bento-ico .ph-duotone { font-size: 32px; color: #9db2ff; }
.bento-card:hover .bento-ico .ph-duotone { color: #bcc9ff; }
.skill-cat-ico.ph-duotone { font-size: 21px; color: #9db2ff; }
.skill-cat:hover .skill-cat-ico.ph-duotone { color: #bcc9ff; }
.bt-ico.ph-duotone { font-size: 15px; color: #a3b6ff; }
.bt-tab.is-active .bt-ico.ph-duotone { color: #cfd8ff; }
.m-icon .ph-duotone { font-size: 24px; color: #9db2ff; }
.ov-card .icon .ph-duotone { font-size: 21px; color: #a8bbff; }
.lm-vendor-name > span.ph-duotone { font-size: 15px; color: #9db2ff; }
.bento-face .bento-ico .ph-duotone { display: block; line-height: 1; }

/* 补充（2026.9.20 全站替换时新增用到） */
.ph-duotone.ph-alarm:before { content: "\e006"; }
.ph-duotone.ph-alarm:after { content: "\e007"; margin-left: -1em; }
.ph-duotone.ph-apple-logo:before { content: "\e516"; }
.ph-duotone.ph-apple-logo:after { content: "\e517"; margin-left: -1em; }
.ph-duotone.ph-backpack:before { content: "\e922"; }
.ph-duotone.ph-backpack:after { content: "\e923"; margin-left: -1em; }
.ph-duotone.ph-bank:before { content: "\e0b4"; }
.ph-duotone.ph-bank:after { content: "\e0b5"; margin-left: -1em; }
.ph-duotone.ph-binoculars:before { content: "\ea64"; }
.ph-duotone.ph-binoculars:after { content: "\ea65"; margin-left: -1em; }
.ph-duotone.ph-buildings:before { content: "\e102"; }
.ph-duotone.ph-buildings:after { content: "\e105"; margin-left: -1em; }
.ph-duotone.ph-caret-right:before { content: "\e13a"; }
.ph-duotone.ph-caret-right:after { content: "\e13b"; margin-left: -1em; }
.ph-duotone.ph-chart-bar:before { content: "\e150"; }
.ph-duotone.ph-chart-bar:after { content: "\e151"; margin-left: -1em; }
.ph-duotone.ph-circle:before { content: "\e18a"; }
.ph-duotone.ph-circle:after { content: "\e18b"; margin-left: -1em; }
.ph-duotone.ph-clipboard-text:before { content: "\e198"; }
.ph-duotone.ph-clipboard-text:after { content: "\e199"; margin-left: -1em; }
.ph-duotone.ph-clock:before { content: "\e19a"; }
.ph-duotone.ph-clock:after { content: "\e19b"; margin-left: -1em; }
.ph-duotone.ph-compass:before { content: "\e1c8"; }
.ph-duotone.ph-compass:after { content: "\e1c9"; margin-left: -1em; }
.ph-duotone.ph-diamond:before { content: "\e1ec"; }
.ph-duotone.ph-diamond:after { content: "\e1ed"; margin-left: -1em; }
.ph-duotone.ph-envelope:before { content: "\e214"; }
.ph-duotone.ph-envelope:after { content: "\e215"; margin-left: -1em; }
.ph-duotone.ph-envelope-simple:before { content: "\e218"; }
.ph-duotone.ph-envelope-simple:after { content: "\e219"; margin-left: -1em; }
.ph-duotone.ph-file-text:before { content: "\e23a"; }
.ph-duotone.ph-file-text:after { content: "\e23b"; margin-left: -1em; }
.ph-duotone.ph-first-aid:before { content: "\e56e"; }
.ph-duotone.ph-first-aid:after { content: "\e56f"; margin-left: -1em; }
.ph-duotone.ph-fish-simple:before { content: "\e72a"; }
.ph-duotone.ph-fish-simple:after { content: "\e72b"; margin-left: -1em; }
.ph-duotone.ph-globe-hemisphere-west:before { content: "\e28c"; }
.ph-duotone.ph-globe-hemisphere-west:after { content: "\e28d"; margin-left: -1em; }
.ph-duotone.ph-hand:before { content: "\e298"; }
.ph-duotone.ph-hand:after { content: "\e299"; margin-left: -1em; }
.ph-duotone.ph-hand-pointing:before { content: "\e29a"; }
.ph-duotone.ph-hand-pointing:after { content: "\e29b"; margin-left: -1em; }
.ph-duotone.ph-handshake:before { content: "\e582"; }
.ph-duotone.ph-handshake:after { content: "\e583"; margin-left: -1em; }
.ph-duotone.ph-hard-hat:before { content: "\ed46"; }
.ph-duotone.ph-hard-hat:after { content: "\ed47"; margin-left: -1em; }
.ph-duotone.ph-image:before { content: "\e2ca"; }
.ph-duotone.ph-image:after { content: "\e2cb"; margin-left: -1em; }
.ph-duotone.ph-keyboard:before { content: "\e2d8"; }
.ph-duotone.ph-keyboard:after { content: "\e2d9"; margin-left: -1em; }
.ph-duotone.ph-lifebuoy:before { content: "\e63a"; }
.ph-duotone.ph-lifebuoy:after { content: "\e63b"; margin-left: -1em; }
.ph-duotone.ph-link:before { content: "\e2e2"; }
.ph-duotone.ph-link:after { content: "\e2e3"; margin-left: -1em; }
.ph-duotone.ph-medal:before { content: "\e320"; }
.ph-duotone.ph-medal:after { content: "\e321"; margin-left: -1em; }
.ph-duotone.ph-moon:before { content: "\e330"; }
.ph-duotone.ph-moon:after { content: "\e331"; margin-left: -1em; }
.ph-duotone.ph-plant:before { content: "\ebae"; }
.ph-duotone.ph-plant:after { content: "\ebaf"; margin-left: -1em; }
.ph-duotone.ph-plus-circle:before { content: "\e3d6"; }
.ph-duotone.ph-plus-circle:after { content: "\e3d7"; margin-left: -1em; }
.ph-duotone.ph-push-pin:before { content: "\e3e2"; }
.ph-duotone.ph-push-pin:after { content: "\e3e3"; margin-left: -1em; }
.ph-duotone.ph-scales:before { content: "\e750"; }
.ph-duotone.ph-scales:after { content: "\e751"; margin-left: -1em; }
.ph-duotone.ph-shuffle:before { content: "\e422"; }
.ph-duotone.ph-shuffle:after { content: "\e423"; margin-left: -1em; }
.ph-duotone.ph-sun:before { content: "\e472"; }
.ph-duotone.ph-sun:after { content: "\e473"; margin-left: -1em; }
.ph-duotone.ph-traffic-cone:before { content: "\e9a8"; }
.ph-duotone.ph-traffic-cone:after { content: "\e9a9"; margin-left: -1em; }
.ph-duotone.ph-user:before { content: "\e4c2"; }
.ph-duotone.ph-user:after { content: "\e4c3"; margin-left: -1em; }
.ph-duotone.ph-warning:before { content: "\e4e0"; }
.ph-duotone.ph-warning:after { content: "\e4e1"; margin-left: -1em; }
.ph-duotone.ph-wifi-high:before { content: "\e4ea"; }
.ph-duotone.ph-wifi-high:after { content: "\e4eb"; margin-left: -1em; }
.ph-duotone.ph-windows-logo:before { content: "\e692"; }
.ph-duotone.ph-windows-logo:after { content: "\e693"; margin-left: -1em; }
