@import url('/assets/talisman-forest/v1/forest.css');

* { box-sizing: border-box; }
body { margin: 0; background: var(--forest-night, #07100a); color: var(--forest-parchment, #f2f4ed); font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
a { color: inherit; text-decoration: none; }
.shell { max-width: 1040px; margin: 0 auto; padding: 25px 20px 48px; }
.home-link { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; margin: 0 0 18px; padding: 8px 12px; border: 1px solid #4f7559; border-radius: 10px; background: #152018; color: #91d5a6; font-size: .82rem; font-weight: 800; }
.home-link:hover, .home-link:focus-visible { background: #243328; outline: 2px solid #91d5a6; outline-offset: 2px; }
.masthead { display: flex; gap: 18px; align-items: end; justify-content: space-between; border-bottom: 1px solid #26352a; padding-bottom: 22px; }
.eyebrow, .label, .status { color: #91d5a6; font-size: .72rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.eyebrow { margin: 0; }
.masthead h1 { margin: 7px 0 0; font-family: "Inknut Antiqua", Georgia, serif; font-size: clamp(2rem, 6vw, 3.75rem); line-height: 1; letter-spacing: -.045em; }
.version { color: #abb8aa; font-size: .82rem; margin: 0 0 5px; }
.intro { max-width: 730px; color: #c0c9be; font-size: 1.04rem; line-height: 1.55; margin: 22px 0 17px; }
.catalog-summary { display: flex; flex-wrap: wrap; gap: 9px; align-items: baseline; margin: 0 0 17px; color: #aeb9ab; font-size: .84rem; }
.catalog-summary strong { color: #f2f4ed; font-size: 1rem; }
.shelf-bar { display: flex; gap: 10px; overflow-x: auto; padding: 3px 2px 14px; scroll-snap-type: x proximity; border-bottom: 1px solid #26352a; }
.shelf-item { position: relative; flex: 0 0 120px; scroll-snap-align: start; }
.shelf-label { position: relative; display: flex; width: 100%; min-height: 112px; align-items: center; justify-content: center; gap: 7px; cursor: pointer; border: 1px solid #334235; border-radius: 12px; background: #151d16; color: #c7d0c4; text-align: center; font: 760 .73rem/1.12 Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; padding: 8px 28px 8px 26px; }
.shelf-label:hover, .shelf-label[aria-expanded="true"] { background: #243328; border-color: #91d5a6; color: #f2f4ed; }
.shelf-label-copy { display: grid; gap: 4px; }
.shelf-disclosure { position: absolute; top: 9px; bottom: 9px; left: 8px; display: flex; flex-direction: column; align-items: center; justify-content: space-between; }
.closed-box { width: 12px; height: 12px; border: 1px solid #aeb9ab; border-radius: 2px; background: #102017; box-shadow: inset 0 0 0 2px #1e3022; }
.expansion-mark { width: 17px; height: 17px; border: 2px solid #f2f4ed; border-radius: 50%; background: #91d5a6; box-shadow: inset 0 0 0 3px #234d30; transition: transform .16s ease, background .16s ease; }
.shelf-label[aria-expanded="true"] .closed-box { border-color: #91d5a6; background: #274a31; }
.shelf-label[aria-expanded="true"] .expansion-mark { transform: rotate(90deg); background: #d8f8e0; }
.shelf-move { position: absolute; right: 5px; width: 19px; height: 19px; border: 1px solid #4f7559; border-radius: 50%; background: #102017; color: #f2f4ed; font: 800 1rem/1 Inter, sans-serif; cursor: pointer; }
.shelf-move:hover, .shelf-move:focus-visible { background: #30513a; outline: 2px solid #91d5a6; outline-offset: 1px; }
.shelf-move:disabled { cursor: default; opacity: .35; }
.shelf-move-left { top: 28px; }
.shelf-move-right { bottom: 28px; }
.shelf-label-version, .component-version { color: #91d5a6; font-size: .66rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.picture { display: grid; place-items: center; width: 47px; height: 47px; border-radius: 10px; background: #23382a; font-size: 1.7rem; box-shadow: inset 0 0 0 1px #4a6750; }
.shelf-spaces { display: grid; grid-template-columns: repeat(auto-fit, minmax(285px, 1fr)); gap: 14px; padding-top: 18px; }
.shelf-space { display: none; min-height: 244px; align-content: space-between; gap: 18px; padding: 20px; background: #151d16; border: 1px solid #334235; border-radius: 15px; box-shadow: 0 12px 28px #00000024; }
.shelf-space[data-open="true"] { display: grid; }
.shelf-heading { display: flex; gap: 13px; align-items: center; }
.shelf-heading .picture { flex: 0 0 auto; }
.shelf-space h2 { font-family: "Inknut Antiqua", Georgia, serif; font-size: 1.25rem; margin: 4px 0 0; }
.shelf-space p { color: #bcc7ba; font-size: .93rem; line-height: 1.48; margin: 0; }
.shelf-space .component-version { margin: 5px 0 0; }
.feature-list { display: grid; gap: 7px; margin: 0; padding-left: 18px; color: #d0d8cc; font-size: .84rem; line-height: 1.38; }
.open { display: flex; align-items: center; justify-content: space-between; gap: 10px; border-radius: 10px; background: #243328; border: 1px solid #4f7559; color: #f4f7ee; font-weight: 800; padding: 13px 15px; }
.open:hover, .open:focus-visible { background: #30513a; outline: 2px solid #91d5a6; }
.empty-shelf { grid-column: 1 / -1; border: 1px dashed #3c5140; border-radius: 13px; color: #aeb9ab; padding: 28px; text-align: center; }
.empty-shelf[hidden] { display: none; }
.health-shelf { grid-column: 1 / -1; min-height: 0; }
.health-overview { display: grid; grid-template-columns: repeat(auto-fit, minmax(132px, 1fr)); gap: 9px; }
.health-overview > div { display: grid; gap: 3px; min-width: 0; padding: 10px; border: 1px solid #334235; border-radius: 10px; background: #102017; }
.health-overview span { color: #9eaa9d; font-size: .67rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.health-overview strong { overflow-wrap: anywhere; color: #f2f4ed; font-size: .87rem; }
.technical-sections { display: grid; gap: 20px; }
.technical-section { display: grid; gap: 9px; border-top: 1px solid #334235; padding-top: 17px; }
.technical-section h3 { margin: 0; color: #91d5a6; font-family: "Inknut Antiqua", Georgia, serif; font-size: 1rem; }
.technical-section > p, .technical-card-summary { margin: 0; color: #aeb9ab; font-size: .79rem; line-height: 1.42; }
.technical-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(235px, 1fr)); gap: 9px; }
.technical-card { display: grid; align-content: start; gap: 9px; min-width: 0; padding: 12px; border: 1px solid #334235; border-radius: 10px; background: #102017; }
.technical-card h4 { margin: 0; color: #eaf1e5; font-size: .88rem; overflow-wrap: anywhere; }
.technical-card h5 { margin: 3px 0 -1px; color: #91d5a6; font-size: .73rem; letter-spacing: .05em; text-transform: uppercase; }
.technical-facts { display: grid; grid-template-columns: minmax(82px, .7fr) minmax(0, 1.3fr); gap: 5px 9px; margin: 0; font-size: .75rem; line-height: 1.35; }
.technical-facts dt { color: #9eaa9d; font-weight: 800; }
.technical-facts dd { min-width: 0; margin: 0; color: #d8e0d5; overflow-wrap: anywhere; }
.asset-list { display: grid; gap: 6px; max-height: 240px; margin: 0; padding: 0; overflow: auto; list-style: none; color: #c7d0c4; font: .7rem/1.4 "SFMono-Regular", Consolas, monospace; }
.asset-list li { overflow-wrap: anywhere; border-left: 2px solid #4f7559; padding-left: 7px; }
.note-list { display: grid; gap: 5px; margin: 0; padding-left: 17px; color: #c7d0c4; font-size: .75rem; line-height: 1.38; }
.footer { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; justify-content: space-between; color: #9eaa9d; font-size: .82rem; padding: 22px 4px 0; }
.health { color: #91d5a6; font-weight: 750; }
.tassy-token { width: 58px; height: 58px; border-radius: 14px; object-fit: cover; box-shadow: 0 6px 18px #0008; }
.about { border: 1px solid #4f7559; border-radius: 9px; background: transparent; color: #91d5a6; padding: 8px 10px; font: inherit; font-weight: 750; cursor: pointer; }
dialog { max-width: min(520px, calc(100vw - 32px)); background: #152018; color: #f2f4ed; border: 1px solid #6fa77e; border-radius: 16px; box-shadow: 0 20px 65px #000; padding: 24px; }
dialog::backdrop { background: #000a; }
dialog h2 { margin: 0 0 8px; }
dialog p { color: #c0c9be; line-height: 1.5; }
dialog h3 { font-family: "Inknut Antiqua", Georgia, serif; font-size: 1rem; margin: 20px 0 8px; }
.about-close { float: right; }
@media (max-width: 560px) { .shell { padding: 20px 14px 36px; } .masthead { align-items: start; flex-direction: column; gap: 9px; } .shelf-label { flex-basis: 104px; min-height: 102px; } .shelf-spaces { grid-template-columns: 1fr; } .shelf-space { min-height: 220px; } }
