

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

:root{

    --bg:#071120;
    --surface:#111C2D;
    --surface-light:#162235;
    --text:#F8FAFC;
    --muted:#9CA3AF;
    --primary:#8B5CF6;
    --border:rgba(255,255,255,.08);
    --radius:18px;
}

body{
    background:
            radial-gradient(
                    circle at top,
                    rgba(0,183,168,.10) 0%,
                    transparent 35%
            ),
            linear-gradient(
                    180deg,
                    #071120 0%,
                    #091727 100%
            );
    color:var(--text);
    font-family:Inter,system-ui,sans-serif;
}

.page{
    max-width:480px;
    margin:auto;
    padding:18px;
}

.back{
    color:var(--muted);
    text-decoration:none;
    font-size:15px;
}

.topic{
    margin-top:15px;
}

.topic h1{
    margin-top:5px;
    font-size:40px;
    font-weight:700;
    line-height:1.5;
    letter-spacing:-1.5px;
    color:#ffffff;
    background:linear-gradient(
            120deg,
            #ffffff 25%,
            #ffffff 40%,
            #00D4C7 48%,
            #7C3AED 52%,
            #F6C343 56%,
            #ffffff 65%
    );
    background-size:300% 100%;
    -webkit-background-clip:text;
    background-clip:text;
    -webkit-text-fill-color:transparent;
    animation:titleShine 5s linear infinite;
}

@keyframes titleShine{
    0%{background-position:200% 0;}
    100%{background-position:-100% 0;}
}

.definition{
    margin-top:10px;
    color:#CBD5E1;
    font-size:17px;
    line-height:1.6;
}

.badges{
    display:flex;
    gap:10px;
    flex-wrap:wrap;
    margin-top:15px;
}

.badge{
    background:#1E293B;
    color:#C4B5FD;
    padding:8px 14px;
    border-radius:999px;
    font-size:16px;
    font-weight:600;
}

.section{
    margin-top:15px;
}

.section h2{
    font-size:22px;
    margin-bottom:16px;
}

.cards{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:14px;
}

.card{
    background:var(--surface);
    border:1px solid var(--border);
    border-radius:var(--radius);
    padding:18px;
}

.label{
    color:var(--muted);
    font-size:13px;
}

.value{
    margin-top:8px;
    font-size:16px;
    font-weight:600;
    line-height:1.5;
}

.article{
    background:var(--surface);
    border-radius:var(--radius);
    padding:20px;
    line-height:1.8;
    color:#D7DEE8;
    border:1px solid var(--border);
}

.safety{
    background:#2A1A10;
    border:1px solid #5A3A12;
}

/* ==========================
   HEADER
========================== */

.ency-header{
    position:sticky;
    top:0;
    z-index:1000;
    overflow:visible;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:5px;
    padding:10px;
    background:#071120;
}

/* ==========================
   BREADCRUMB
========================== */
.breadcrumb-pill{
    flex:1;
    display:flex;
    align-items:center;
    gap:0px;
    overflow-x:auto;
    white-space:nowrap;
    scrollbar-width:none;
}

.breadcrumb-pill::-webkit-scrollbar{
    display:none;
}

.crumb{
    display:flex;
    align-items:center;
    gap:6px;
    padding:7px 12px;
    border-radius:10px;
    text-decoration:none;
    font-size:15px;
    font-weight:600;
    transition:.2s;
    flex-shrink:0;
}

.crumb-home{
    width:38px;
    height:38px;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:0;
    border-radius:10px;
    background:linear-gradient(
            135deg,
            #069dd4,
            #0876b2
    );
    color:white;
}

.crumb-category{
    padding:10px 8px;
    border-radius:10px;
    background:rgba(168,85,247,.18);
    color:#E9D5FF;
}

.crumb-subcategory{
    padding:10px 8px;
    border-radius:10px;
    background:rgba(251,191,36,.18);
    color:#FDE68A;
}

.crumb-topic{
    padding:10px 8px;
    border-radius:10px;
    background:rgba(34,197,94,.18);
    color:#BBF7D0;
    font-weight:700;
    cursor:default;
}

.crumb:hover{
    opacity:1;
}

.crumb.active{
    font-weight:700;
}

.home svg{
    width:15px;
    height:15px;
}

.crumb-arrow{
    width:16px;
    height:16px;
    color:#C4B5FD;
    opacity:.85;
    flex-shrink:0;
}

/* ==========================
   MENU BUTTON
========================== */
.menu-btn{
    width:48px;
    height:48px;
    display:flex;
    align-items:center;
    justify-content:center;
    border:none;
    border-radius:16px;
    background:#111C2D;
    color:white;
    cursor:pointer;
    flex-shrink:0;
}

.menu-btn:hover{
    background:#1A2940;
}

.menu-btn svg{
    width:22px;
    height:22px;
}

/* ==========================================================
   INFO GROUP
========================================================== */
.info-group{
    margin-top:2rem;
}

.info-group-header{
    display:flex;
    align-items:center;
    gap:.65rem;
    margin-bottom:.9rem;
    color:#ffffff;
    font-size:1rem;
    font-weight:700;
}

.info-group-header svg{
    width:18px;
    height:18px;
}

.info-divider{
    flex:1;
    height:2px;
    opacity:.65;
}

.chip-list{
    display:flex;
    flex-wrap:wrap;
    gap:.75rem;
}

.info-chip{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:35px;
    padding:.2rem .7rem;
    border-radius:12px;
    text-decoration:none;
    color:#ffffff;
    font-size:.92rem;
    font-weight:500;
    background:rgba(255,255,255,.04);
    backdrop-filter:blur(12px);
    transition:.25s;
}

.info-divider-equipment{
    background:rgba(0,212,199,.45);
}

.info-chip-equipment{
    border:2px solid rgba(0,212,199,.55);
}

.info-icon-equipment{
    color:#00D4C7;
}

.info-chip-equipment svg{
    color:#00D4C7;
}

.info-divider-topic{
    background:rgba(251,191,36,.45);
}

.info-chip-topic{
    border:2px solid rgba(251,191,36,.45);
}

.info-icon-topic{
    color:#FBBF24;
}

/*==================================================*
 * MENU
 *==================================================*/

.ency-menu{
    position:absolute;
    top:calc(100% + 10px);
    right:0;
    min-width:240px;
    width:max-content;
    max-width:320px;
    background:#111C2D;
    border:1px solid var(--border);
    border-radius:18px;
    padding:12px;
    box-shadow:0 24px 60px rgba(0,0,0,.45);
    z-index:2000;
}

.ency-menu.hidden{
    display:none;
}

.ency-menu a{
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    min-height:40px;
    padding:0 20px;
    margin-bottom:10px;
    border-radius:14px;
    background:rgba(255,255,255,.03);
    border:1px solid rgba(255,255,255,.08);
    color:var(--text);
    text-decoration:none;
    font-size:15px;
    font-weight:600;
    text-align:center;
    transition:.25s;
}

.ency-menu a:last-child{
    margin-bottom:0;
}

.ency-menu a:hover{
    background:rgba(255,255,255,.06);
    border-color:rgba(0,212,199,.35);
}

.menu-wrapper{
    position:relative;
    flex-shrink:0;
}

/*==================================================*
 * FOOTER
 *==================================================*/

.home-footer{
    margin-top:48px;
    padding:32px 18px;
    border-top:1px solid rgba(255,255,255,.08);
    text-align:center;
}

.footer-copyright{
    color:var(--muted);
    font-size:15px;
    margin-bottom:14px;
}

.footer-links{
    display:flex;
    flex-wrap:wrap;
    justify-content:center;
    align-items:center;
    gap:10px;
}

.footer-links a{
    color:var(--text);
    text-decoration:none;
    font-size:15px;
    transition:.2s;
}

.footer-links a:hover{
    color:#00D4C7;
}

.footer-links span{
    color:rgba(255,255,255,.25);
}

/* subcategory css*/


.home-header {
    background: #001317;
    width: 100vw;
    margin-left: calc(50% - 50vw);
    padding-left: max(1rem, calc((100vw - 72rem) / 2));
    padding-right: max(1rem, calc((100vw - 72rem) / 2));
}

/* ==========================================================
   RELATED TOPIC PILLS
========================================================== */

.related-topic-pills{
    display:flex;
    flex-wrap:wrap;
    gap:.75rem;
    margin:1.25rem 0 1.5rem; /*top right bottom left*/
}


.related-topic-pill{
    display:inline-flex;
    align-items:center;
    gap:.45rem;
    padding:.7rem 1rem;
    border:1px solid rgba(124,79,224,.28);
    background:rgba(124,79,224,.07);
    color:#d5ccf2 !important;
    border-radius:10px;
    font-family:"Inter",sans-serif;
    font-size:.9rem;
    font-weight:600;
    line-height:1.2;
    text-decoration:none !important;
    transition:
            background .2s ease,
            border-color .2s ease,
            color .2s ease,
            transform .2s ease;
}

.related-topic-pill .lucide{
    width:1rem;
    height:1rem;
    color:#10d8c4;
    flex-shrink:0;
}

.related-topic-pill:hover{
    background:rgba(124,79,224,.14);
    border-color:rgba(124,79,224,.5);
    color:#eeeaff;
    transform:translateY(-1px);
}

/* ==========================================================
   MOBILE
========================================================== */
@media (max-width:768px){
    .related-topic-pills{
        gap:.6rem;
    }
    .related-topic-pill{
        padding:.65rem .9rem;
        font-size:.88rem;
    }
}

/* ==========================================================
   TOPIC EXPLORER
========================================================== */

.topic-explorer{
    margin:3rem 0 3rem;
    padding:1.5rem;
    border:1.5px solid rgba(114,145,168,.40);
    border-radius:1.75rem;
    background:
            linear-gradient(
                    145deg,
                    rgba(10,27,42,.82),
                    rgba(5,14,24,.72)
            );
    box-shadow:
            0 22px 60px rgba(0,0,0,.22);
    position:relative;
    overflow:hidden;
}

/* ==========================================================
   HEADING
========================================================== */

.topic-explorer-heading{
    margin-bottom:1.5rem;
}

.topic-explorer-heading h2{
    margin:0 0 .65rem;
    font-family:"Hanken Grotesk",sans-serif;
    font-size:clamp(1.45rem,5vw,1.9rem);
    font-weight:800;
    line-height:1.2;
    color:#f7f7f8;
}

.topic-explorer-heading p{
    margin:0;
    color:#c9cbd0;
    font-size:.98rem;
    line-height:1.6;
}

/* ==========================================================
   GRID
========================================================== */
.topic-explorer-grid{
    display:grid;
    grid-template-columns:1fr;
    gap:.4rem;
}

/* ==========================================================
   TOPIC CARD
========================================================== */
.topic-explorer-card{
    position:relative;
    align-items:center;
    min-width:0;
    background:
            linear-gradient(
                    145deg,
                    rgba(7,21,34,.95),
                    rgba(5,16,27,.9)
            );
    display:grid;
    grid-template-columns:
        2.5rem
        minmax(0,1fr)
        2.5rem;

    min-height:2rem;
    padding:0;
    border:1.5px solid rgba(114,145,168,.80);
    border-radius:1rem;
    background:rgba(7,21,34,.75);
    text-decoration:none !important;
    overflow:hidden;
    transition:
            border-color .2s ease,
            background .2s ease,
            transform .2s ease;
}

/* ==========================================================
   ICON
========================================================== */

.topic-icon{
    width:3rem;
    height:3rem;
    min-width:3rem;
    display:grid;
    place-items:center;
    border-radius:1rem;
    background:rgba(255,255,255,.05);
    border:1px solid rgba(255,255,255,.08);
}

.topic-icon .lucide{
    width:1.35rem;
    height:1.35rem;
}

/* Accent variants */
.topic-icon-teal{
    color:#10d8c4;
    background:rgba(16,216,196,.09);
    border-color:rgba(16,216,196,.2);
}

.topic-icon-gold{
    color:#ffb22e;
    background:rgba(255,178,46,.09);
    border-color:rgba(255,178,46,.2);
}

.topic-icon-purple{
    color:#a78bfa;
    background:rgba(124,79,224,.11);
    border-color:rgba(124,79,224,.25);
}

.topic-icon-pink{
    color:#f472b6;
    background:rgba(244,114,182,.09);
    border-color:rgba(244,114,182,.2);
}

.topic-icon-cyan{
    color:#22d3ee;
    background:rgba(34,211,238,.09);
    border-color:rgba(34,211,238,.2);
}

/* ==========================================================
   CARD CONTENT
========================================================== */
.topic-card-content{
    min-width:0;
    flex:1;
}

.topic-card-content h3{
    margin:0;
    font-family:"Hanken Grotesk",sans-serif;
    font-size:1rem;
    font-weight:700;
    line-height:1.3;
    color:#f7f7f8;
}

.topic-card-content p{
    margin:.3rem 0 0;
    font-size:.78rem;
    line-height:1.45;
    color:#9fa8b2;
}

/* ==========================================================
   MOBILE
========================================================== */
@media (max-width:768px){
    .topic-explorer{
        margin:2rem 0;
        padding:1.15rem;
        border-radius:1.5rem;
    }
    .topic-icon{
        width:2.75rem;
        height:2.75rem;
        min-width:2.75rem;
        border-radius:.9rem;
    }
    .topic-card-content h3{
        font-size:.98rem;
    }
    .topic-card-content p{
        font-size:.76rem;
    }
}

/* ==========================================================
   topic name card
========================================================== */
.topic-number{
    height:100%;
    min-height:0;
    display:grid;
    place-items:center;
    border-right:1px solid rgba(114,145,168,.32);
    color:#10d8c4;
    font-family:"Hanken Grotesk",sans-serif;
    font-size:1rem;
    font-weight:800;
}

.topic-name{
    min-width: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: .35rem .5rem;
    color: #f7f7f8;
    font-family: "Hanken Grotesk", sans-serif;
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.25;
    background: rgba(16,216,196,.05);
}

.topic-card-arrow{
    height:100%;
    min-height:0;
    display:grid;
    place-items:center;
    border-left:1px solid rgba(114,145,168,.32);
    color:#10d8c4;
}

/* ==========================================================
   FAQ
========================================================== */
.faq-list{
    display:flex;
    flex-direction:column;
    gap:1rem;
    margin-top:1.25rem;
}

.faq-item{
    position:relative;
    margin:0;
    padding:0;
}

/* ==========================================================
   QUESTION CAPSULE
========================================================== */
.faq-question{
    position:relative;
    z-index:2;
    width:100%;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:1rem;
    min-height:3rem;
    padding:.55rem .9rem;
    border:1px solid rgba(16,216,196,.35);
    border-radius:10px;
    background:#071522;
    color:#f7f7f8;
    font-family:"Hanken Grotesk",sans-serif;
    font-size:1rem;
    font-weight:700;
    line-height:1.35;
    text-align:left;
    cursor:pointer;
    list-style:none;
    transition:
            border-color .3s ease,
            background .3s ease;
}

.faq-question::-webkit-details-marker{
    display:none;
}

/* ==========================================================
   PLUS / CLOSE
========================================================== */
.faq-toggle{
    width:1.8rem;
    height:1.8rem;
    min-width:1.8rem;
    display:grid;
    place-items:center;
    color:#10d8c4;
    font-family:Inter,sans-serif;
    font-size:1.3rem;
    font-weight:400;
    line-height:1;
    transition:
            transform .5s ease;
}

/* ==========================================================
   ANSWER CURTAIN
========================================================== */
.faq-answer{
    position:relative;
    z-index:1;
    width:calc(100% - 2rem);
    margin:-1px 0 0 1rem;
    max-height:0;
    overflow:hidden;
    opacity:0;
    transform:translateY(-8px);
    border:2px solid rgba(114,145,168,.40);
    border-top:none;
    border-radius:0 0 .25rem .25rem;
    background:#071522;
    transition:
            max-height .75s cubic-bezier(.4,0,.2,1),
            opacity .45s ease,
            transform .75s cubic-bezier(.4,0,.2,1);
}

/* ==========================================================
   ANSWER CONTENT
========================================================== */
.faq-answer-inner{
    padding:1.15rem 1.25rem 1rem;
    color:#c9cbd0;
    font-size:.95rem;
    line-height:1.6;
}

/* ==========================================================
   OPEN
========================================================== */
.faq-item.is-open .faq-answer{
    max-height:300px;
    opacity:1;
    transform:translateY(0);
    border-color:rgba(114,145,168,.25);
}

.faq-item.is-open .faq-question{
    border-color:rgba(16,216,196,.55);
    background:#071522;
}

.faq-item.is-open .faq-toggle{
    transform:rotate(45deg);
}

/*Category template css */

/* ==========================================================
           CATEGORY — SUBCATEGORY EXPLORER
        ========================================================== */

.subcategory-explorer {
    width: 100%;
    margin-top: 2.5rem;
    padding: 1.5rem;

    border: 1px solid rgba(124, 79, 224, 0.45);
    border-radius: 2rem;

    background:
            linear-gradient(
                    145deg,
                    rgba(10, 27, 42, 0.92),
                    rgba(2, 10, 18, 0.96)
            );

    box-shadow:
            0 20px 55px rgba(0, 0, 0, 0.30),
            0 0 35px rgba(124, 79, 224, 0.08);
}


/* ==========================================================
   HEADING
========================================================== */

.subcategory-explorer-heading {
    margin-bottom: 1.5rem;
}

.subcategory-explorer-heading h2 {
    margin: 0;

    font-family: "Hanken Grotesk", sans-serif;
    font-size: 1.35rem;
    font-weight: 800;
    line-height: 1.2;
}

.subcategory-explorer-heading p {
    margin: 0.6rem 0 0;

    color: #c9cbd0;

    font-size: 0.95rem;
    line-height: 1.6;
}


/* ==========================================================
   LIST
========================================================== */

.subcategory-list {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}


/* ==========================================================
   CARD
========================================================== */

.subcategory-card {
    --accent: #10d8c4;

    position: relative;

    display: flex;
    align-items: center;

    min-height: 58px;

    padding: 0.65rem 4.4rem 0.65rem 1.25rem;

    border: 1px solid color-mix(
            in srgb,
            var(--accent) 65%,
            #1d3545
    );

    border-radius: 999px;

    background: rgba(2, 10, 18, 0.72);

    text-decoration: none;

    overflow: visible;

    transition:
            border-color 0.25s ease,
            background 0.25s ease,
            transform 0.25s ease,
            box-shadow 0.25s ease;
}


/* ==========================================================
   TITLE
========================================================== */

.subcategory-card-title {
    width: 100%;

    color: var(--accent);

    font-family: "Hanken Grotesk", sans-serif;
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.3;

    text-align: center;

    transition:
            color 0.25s ease,
            transform 0.25s ease;
}


/* ==========================================================
   COUNT CIRCLE
========================================================== */

.subcategory-count {
    position: absolute;

    top: 50%;
    right: -1px;

    width: 58px;
    height: 58px;

    transform: translateY(-50%);

    display: grid;
    place-items: center;

    border: 1px solid var(--accent);
    border-radius: 50%;

    background: #020a12;

    color: var(--accent);

    font-family: "Hanken Grotesk", sans-serif;
    font-size: 0.72rem;
    font-weight: 700;

    box-shadow:
            0 0 0 4px #020a12,
            0 0 18px color-mix(
                    in srgb,
                    var(--accent) 20%,
                    transparent
            );

    overflow: hidden;

    z-index: 2;
}


/* ==========================================================
   COUNT TEXT
========================================================== */

.count-label,
.count-number {
    grid-area: 1 / 1;

    white-space: nowrap;

    transition:
            opacity 0.35s ease,
            transform 0.35s ease;
}


/* Initial state */

.count-label {
    opacity: 1;
    transform: scale(1);
    font-size: 0.72rem;
    font-weight: 700;
}

.count-number {
    opacity: 0;
    transform: scale(0.65);
    font-size: 1.2rem;
    font-weight: 800;
}


/* Number visible */

.subcategory-count.show-number .count-label {
    opacity: 0;
    transform: scale(0.65);
}

.subcategory-count.show-number .count-number {
    opacity: 1;
    transform: scale(1);
}


/* ==========================================================
   HOVER
========================================================== */

.subcategory-card:hover {
    transform: translateY(-1px);

    background: color-mix(
            in srgb,
            var(--accent) 5%,
            #020a12
    );

    border-color: var(--accent);

    box-shadow:
            0 8px 24px rgba(0, 0, 0, 0.25),
            0 0 24px color-mix(
                    in srgb,
                    var(--accent) 14%,
                    transparent
            );
}

.subcategory-card:hover .subcategory-card-title {
    transform: translateX(-2px);
}


/* ==========================================================
   MOBILE
========================================================== */

@media (max-width: 480px) {

    .subcategory-explorer {
        padding: 1.25rem;

        border-radius: 1.75rem;
    }

    .subcategory-card {
        min-height: 54px;

        padding-left: 1rem;
        padding-right: 4rem;
    }

    .subcategory-card-title {
        font-size: 0.9rem;
    }

    .subcategory-count {
        width: 54px;
        height: 54px;

        font-size: 0.68rem;
    }

}


/* ==========================================================
   REDUCED MOTION
========================================================== */

@media (prefers-reduced-motion: reduce) {

    .subcategory-card,
    .subcategory-card-title,
    .count-label,
    .count-number {
        transition: none;
    }

}