/* ====================================================
           PLAYFUL GEOMETRIC DESIGN SYSTEM TOKENS
        ==================================================== */
        :root {
            --dp-color-ground: #fffdf5;
            --dp-color-panel: #ffffff;
            --dp-color-ink: #253044;
            --dp-color-outline: #252b3a;
            --dp-color-accent: #6434df;
            --dp-color-accent-secondary: #ff78c5;
            --dp-color-accent-warm: #ffd05b;
            --dp-color-accent-fresh: #9bf1cd;
            --dp-color-field-soft: #e9fff5;
            --dp-color-selection: #f1ebff;
            --dp-color-rule-muted: #b8b6c5;
            --dp-typography-display: "Host Grotesk", sans-serif;
            --dp-typography-reading: "Instrument Sans", sans-serif;
            --dp-typography-reading-compact: 16px;
            --dp-typography-label: 14px;
            --dp-typography-metadata: 13px;
            --dp-typography-reading-leading: 1.65;
            --dp-spacing-gap-compact: 12px;
            --dp-radius-corner: 17px;
            --dp-border-outline-width: 3px;
            --dp-border-detail-width: 2px;
            --dp-motion-interaction: 180ms;

            /* Backward compatibility aliases */
            --primary-color: var(--dp-color-accent);
            --secondary-color: var(--dp-color-accent-fresh);
            --accent-color: var(--dp-color-accent-warm);
            --text-color: var(--dp-color-ink);
            --text-muted: #4e5a70;
            --light-bg: var(--dp-color-ground);
            --white: var(--dp-color-panel);
            --font-display: var(--dp-typography-display);
            --font-body: var(--dp-typography-reading);
            --box-shadow: 4px 4px 0 var(--dp-color-outline);
            --box-shadow-hover: 6px 6px 0 var(--dp-color-outline);
            --border-radius: var(--dp-radius-corner);
        }

        /* Base Resets & Ground */
        *,
        *::before,
        *::after {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
            -webkit-tap-highlight-color: transparent;
        }

        html {
            scroll-behavior: smooth;
            overflow-x: hidden;
            width: 100%;
            max-width: 100%;
            -webkit-text-size-adjust: 100%;
            -ms-text-size-adjust: 100%;
        }

        body {
            font-family: var(--dp-typography-reading);
            font-size: var(--dp-typography-reading-compact);
            line-height: var(--dp-typography-reading-leading);
            color: var(--dp-color-ink);
            background-color: var(--dp-color-ground);
            background-image:
                radial-gradient(circle, rgba(37, 43, 58, 0.08) 1px, transparent 1px);
            background-size: 24px 24px;
            -webkit-font-smoothing: antialiased;
            -moz-osx-font-smoothing: grayscale;
            overflow-x: hidden;
            width: 100%;
            max-width: 100%;
            position: relative;
        }

        img,
        svg,
        video,
        iframe {
            max-width: 100%;
            height: auto;
        }

        /* Accessibility focus visible */
        a:focus-visible,
        button:focus-visible,
        div[tabindex="0"]:focus-visible {
            outline: 3px solid var(--dp-color-accent);
            outline-offset: 4px;
        }

        a,
        button {
            touch-action: manipulation;
        }

        a {
            text-decoration: none;
            color: var(--dp-color-accent);
            font-weight: 600;
            transition: color var(--dp-motion-interaction) ease;
        }

        a:hover {
            color: #4b1fb9;
        }

        /* Typography Hierarchy */
        h1,
        h2,
        h3,
        h4 {
            font-family: var(--dp-typography-display);
            color: var(--dp-color-ink);
            line-height: 1.15;
            letter-spacing: -0.02em;
            overflow-wrap: break-word;
            word-break: break-word;
        }

        p,
        li,
        span {
            overflow-wrap: break-word;
        }

        h2 {
            font-size: clamp(1.8rem, 4vw, 2.75rem);
            text-align: center;
            margin-bottom: 24px;
            font-weight: 800;
            position: relative;
            display: inline-block;
        }

        .heading-badge {
            display: inline-flex;
            align-items: center;
            gap: 8px;
            background: var(--dp-color-accent-warm);
            color: var(--dp-color-outline);
            font-family: var(--dp-typography-reading);
            font-size: 0.75rem;
            font-weight: 700;
            text-transform: uppercase;
            letter-spacing: 0.08em;
            padding: 4px 14px;
            border-radius: 50px;
            border: 2px solid var(--dp-color-outline);
            box-shadow: 2px 2px 0 var(--dp-color-outline);
            margin-bottom: 10px;
        }

        .section-header-wrap {
            display: flex;
            flex-direction: column;
            align-items: center;
            text-align: center;
            margin-bottom: 36px;
        }

        .section-header-wrap h2 {
            margin-bottom: 6px;
        }

        /* Section Layouts */
        section {
            padding: 60px 24px;
            max-width: 1180px;
            margin: 0 auto;
        }

        .scroll-reveal {
            opacity: 1;
            transform: none;
        }

        /* ====================================================
           SCROLL PROGRESS & BACK TO TOP
        ==================================================== */
        #scroll-progress {
            position: fixed;
            top: 0;
            left: 0;
            height: 5px;
            width: 0%;
            background: var(--dp-color-accent);
            z-index: 9999;
            transition: width 0.1s linear;
            border-bottom: 1px solid var(--dp-color-outline);
        }

        #back-to-top {
            position: fixed;
            bottom: 28px;
            right: 28px;
            width: 48px;
            height: 48px;
            background: var(--dp-color-accent-warm);
            color: var(--dp-color-outline);
            border: var(--dp-border-outline-width) solid var(--dp-color-outline);
            border-radius: 50%;
            font-size: 1.15rem;
            font-weight: 800;
            cursor: pointer;
            box-shadow: 4px 4px 0 var(--dp-color-outline);
            display: flex;
            align-items: center;
            justify-content: center;
            opacity: 0;
            transform: translateY(16px);
            transition: opacity 0.25s, transform 0.25s, box-shadow 0.15s;
            z-index: 999;
        }

        #back-to-top.visible {
            opacity: 1;
            transform: translateY(0);
        }

        #back-to-top:hover {
            transform: translate(-2px, -2px);
            box-shadow: 6px 6px 0 var(--dp-color-outline);
            background: #ffe07d;
        }

        #back-to-top:active {
            transform: translate(2px, 2px);
            box-shadow: 2px 2px 0 var(--dp-color-outline);
        }

        /* ====================================================
           HEADER & NAVIGATION (Activity-Book Toolbar)
        ==================================================== */
        header {
            background-color: var(--dp-color-panel);
            border-bottom: var(--dp-border-outline-width) solid var(--dp-color-outline);
            position: sticky;
            top: 0;
            z-index: 200;
            box-shadow: 0 4px 0 rgba(37, 43, 58, 0.05);
        }

        nav {
            max-width: 1180px;
            margin: 0 auto;
            display: flex;
            justify-content: space-between;
            align-items: center;
            padding: 14px 24px;
        }

        .logo {
            display: flex;
            align-items: center;
            gap: 12px;
            text-decoration: none;
        }

        .logo-avatar {
            width: 44px;
            height: 44px;
            background: var(--dp-color-accent-fresh);
            border: var(--dp-border-outline-width) solid var(--dp-color-outline);
            border-radius: 12px;
            display: flex;
            align-items: center;
            justify-content: center;
            box-shadow: 2px 2px 0 var(--dp-color-outline);
            font-family: var(--dp-typography-display);
            font-weight: 800;
            font-size: 1.25rem;
            color: var(--dp-color-outline);
        }

        .logo-text {
            font-family: var(--dp-typography-display);
            font-size: 1.35rem;
            font-weight: 800;
            color: var(--dp-color-ink);
            line-height: 1.1;
            letter-spacing: -0.02em;
        }

        .logo-text span {
            color: var(--dp-color-accent);
            font-size: 0.72rem;
            font-family: var(--dp-typography-reading);
            font-weight: 700;
            display: block;
            letter-spacing: 0.04em;
            text-transform: uppercase;
        }

        .nav-links {
            display: flex;
            align-items: center;
            gap: 10px;
        }

        .nav-links a {
            font-family: var(--dp-typography-reading);
            font-weight: 700;
            font-size: 0.9rem;
            color: var(--dp-color-ink);
            padding: 8px 16px;
            border-radius: 50px;
            border: 2px solid transparent;
            transition: all var(--dp-motion-interaction) ease;
        }

        .nav-links a:hover {
            color: var(--dp-color-outline);
            background-color: var(--dp-color-selection);
            border-color: var(--dp-color-outline);
            box-shadow: 2px 2px 0 var(--dp-color-outline);
            transform: translate(-1px, -1px);
        }

        .nav-cta {
            background-color: var(--dp-color-accent) !important;
            color: var(--white) !important;
            border: 2px solid var(--dp-color-outline) !important;
            box-shadow: 2px 2px 0 var(--dp-color-outline);
        }

        .nav-cta:hover {
            background-color: #5125bf !important;
            color: var(--white) !important;
            box-shadow: 4px 4px 0 var(--dp-color-outline) !important;
        }

        .menu-toggle {
            display: none;
            flex-direction: column;
            justify-content: space-between;
            width: 38px;
            height: 38px;
            cursor: pointer;
            z-index: 205;
            padding: 8px 7px;
            background: var(--dp-color-ground);
            border: 2px solid var(--dp-color-outline);
            border-radius: 10px;
            box-shadow: 2px 2px 0 var(--dp-color-outline);
        }

        .menu-toggle span {
            display: block;
            height: 3px;
            width: 100%;
            background: var(--dp-color-outline);
            border-radius: 2px;
            transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
        }

        /* ====================================================
           HERO SECTION (Playful Geometric Two-Column Opening)
        ==================================================== */
        #hero {
            padding: 60px 24px 50px;
            position: relative;
        }

        .hero-grid {
            display: grid;
            grid-template-columns: 1.15fr 0.85fr;
            gap: 48px;
            align-items: center;
        }

        .hero-content {
            display: flex;
            flex-direction: column;
            align-items: flex-start;
        }

        .hero-badge {
            display: inline-flex;
            align-items: center;
            gap: 8px;
            background: var(--dp-color-accent-warm);
            color: var(--dp-color-outline);
            border: var(--dp-border-outline-width) solid var(--dp-color-outline);
            border-radius: 50px;
            padding: 6px 18px;
            font-size: 0.82rem;
            font-weight: 800;
            letter-spacing: 0.05em;
            text-transform: uppercase;
            box-shadow: 3px 3px 0 var(--dp-color-outline);
            margin-bottom: 20px;
        }

        .hero-badge i {
            color: var(--dp-color-accent);
        }

        #hero h1 {
            font-size: clamp(2.75rem, 5.5vw, 4.75rem);
            font-weight: 900;
            color: var(--dp-color-ink);
            line-height: 1.05;
            letter-spacing: -0.03em;
            margin-bottom: 14px;
        }

        #hero .hero-subtitle {
            font-family: var(--dp-typography-reading);
            font-size: 1.25rem;
            font-weight: 700;
            color: var(--dp-color-accent);
            margin-bottom: 12px;
            line-height: 1.4;
        }

        .typed-text-box {
            background: var(--white);
            border: var(--dp-border-outline-width) solid var(--dp-color-outline);
            border-radius: 14px;
            padding: 10px 18px;
            margin-bottom: 22px;
            box-shadow: 3px 3px 0 var(--dp-color-outline);
            display: inline-flex;
            align-items: center;
            gap: 10px;
            max-width: 100%;
        }

        .typed-indicator {
            width: 10px;
            height: 10px;
            border-radius: 50%;
            background: var(--dp-color-accent-secondary);
            border: 2px solid var(--dp-color-outline);
            flex-shrink: 0;
        }

        .typed-text {
            font-family: var(--dp-typography-reading);
            font-size: 1.05rem;
            font-weight: 600;
            color: var(--dp-color-ink);
            min-height: 28px;
            display: flex;
            align-items: center;
        }

        .hero-tags {
            display: flex;
            flex-wrap: wrap;
            gap: 10px;
            margin-bottom: 30px;
        }

        .hero-tag {
            background: var(--white);
            border: 2px solid var(--dp-color-outline);
            border-radius: 50px;
            padding: 6px 16px;
            font-size: 0.85rem;
            font-weight: 700;
            color: var(--dp-color-ink);
            box-shadow: 2px 2px 0 var(--dp-color-outline);
            transition: transform var(--dp-motion-interaction) ease;
        }

        .hero-tag:hover {
            transform: translateY(-2px);
            background: var(--dp-color-selection);
        }

        /* Buttons (Rounded outlined controls with colored fill & firm offset shadow) */
        .contact-buttons {
            display: flex;
            gap: 16px;
            flex-wrap: wrap;
            align-items: center;
        }

        .btn {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            gap: 10px;
            padding: 13px 26px;
            border-radius: 50px;
            font-family: var(--dp-typography-reading);
            font-weight: 800;
            font-size: 0.95rem;
            letter-spacing: 0.02em;
            text-transform: none;
            border: var(--dp-border-outline-width) solid var(--dp-color-outline);
            box-shadow: 4px 4px 0 var(--dp-color-outline);
            cursor: pointer;
            text-decoration: none;
            transition: transform var(--dp-motion-interaction) ease, box-shadow var(--dp-motion-interaction) ease, background-color var(--dp-motion-interaction) ease;
        }

        .btn:hover {
            transform: translate(-2px, -2px);
            box-shadow: 6px 6px 0 var(--dp-color-outline);
        }

        .btn:active {
            transform: translate(2px, 2px);
            box-shadow: 2px 2px 0 var(--dp-color-outline);
        }

        .btn-primary {
            background-color: var(--dp-color-accent);
            color: var(--white);
        }

        .btn-primary:hover {
            background-color: #5125bf;
            color: var(--white);
        }

        .btn-warm {
            background-color: var(--dp-color-accent-warm);
            color: var(--dp-color-outline);
        }

        .btn-warm:hover {
            background-color: #ffd875;
            color: var(--dp-color-outline);
        }

        .btn-secondary {
            background-color: var(--white);
            color: var(--dp-color-outline);
        }

        .btn-secondary:hover {
            background-color: var(--dp-color-selection);
            color: var(--dp-color-accent);
        }

        /* Hero Right Column: Static Assembly of Colorful Geometric Shapes */
        .hero-visual-assembly {
            position: relative;
            display: flex;
            justify-content: center;
            align-items: center;
            padding: 20px;
        }

        .shape-backdrop-violet {
            position: absolute;
            width: 320px;
            height: 380px;
            background: var(--dp-color-accent);
            border: var(--dp-border-outline-width) solid var(--dp-color-outline);
            border-radius: 140px 140px 24px 24px;
            top: 14px;
            right: 24px;
            z-index: 1;
            box-shadow: 6px 6px 0 var(--dp-color-outline);
        }

        .shape-arch-pink {
            position: absolute;
            width: 90px;
            height: 120px;
            background: var(--dp-color-accent-secondary);
            border: var(--dp-border-outline-width) solid var(--dp-color-outline);
            border-radius: 60px 60px 8px 8px;
            top: -16px;
            left: 20px;
            z-index: 0;
            box-shadow: 4px 4px 0 var(--dp-color-outline);
        }

        .shape-block-amber {
            position: absolute;
            width: 100px;
            height: 100px;
            background: var(--dp-color-accent-warm);
            border: var(--dp-border-outline-width) solid var(--dp-color-outline);
            border-radius: 20px;
            bottom: -12px;
            right: 0px;
            z-index: 3;
            box-shadow: 4px 4px 0 var(--dp-color-outline);
            transform: rotate(-6deg);
        }

        .shape-circle-mint {
            position: absolute;
            width: 80px;
            height: 80px;
            background: var(--dp-color-accent-fresh);
            border: var(--dp-border-outline-width) solid var(--dp-color-outline);
            border-radius: 50%;
            top: 40px;
            right: -10px;
            z-index: 0;
            box-shadow: 3px 3px 0 var(--dp-color-outline);
        }

        .hero-portrait-frame {
            position: relative;
            z-index: 2;
            width: 290px;
            height: 350px;
            border-radius: 130px 130px 22px 22px;
            border: var(--dp-border-outline-width) solid var(--dp-color-outline);
            background: var(--white);
            box-shadow: 8px 8px 0 var(--dp-color-outline);
            overflow: hidden;
            display: flex;
            align-items: center;
            justify-content: center;
        }

        .hero-portrait-frame img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            object-position: center top;
            display: block;
        }

        .hero-badge-float {
            position: absolute;
            bottom: 16px;
            left: 10px;
            z-index: 4;
            background: var(--white);
            border: var(--dp-border-outline-width) solid var(--dp-color-outline);
            border-radius: 16px;
            padding: 10px 16px;
            box-shadow: 4px 4px 0 var(--dp-color-outline);
            display: flex;
            align-items: center;
            gap: 10px;
            font-weight: 800;
            font-size: 0.85rem;
            color: var(--dp-color-ink);
            transform: rotate(-3deg);
        }

        .hero-badge-float .badge-icon {
            width: 32px;
            height: 32px;
            background: var(--dp-color-accent-fresh);
            border: 2px solid var(--dp-color-outline);
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 0.95rem;
            color: var(--dp-color-outline);
        }

        /* ====================================================
           FACT STRIP (Across Layered Mint & Outlined Bases)
        ==================================================== */
        .fact-strip-wrapper {
            max-width: 1180px;
            margin: 10px auto 40px;
            padding: 0 24px;
        }

        .fact-strip-mint-base {
            background-color: var(--dp-color-accent-fresh);
            border: var(--dp-border-outline-width) solid var(--dp-color-outline);
            border-radius: 24px;
            padding: 8px;
            box-shadow: 8px 8px 0 var(--dp-color-outline);
        }

        .fact-strip-inner {
            background-color: var(--white);
            border: 2px solid var(--dp-color-outline);
            border-radius: 18px;
            padding: 24px 28px;
            display: grid;
            grid-template-columns: repeat(4, 1fr);
            gap: 20px;
            align-items: center;
        }

        .fact-item {
            display: flex;
            align-items: center;
            gap: 16px;
            padding: 6px 12px;
            border-right: 2px dashed var(--dp-color-rule-muted);
        }

        .fact-item:last-child {
            border-right: none;
        }

        .fact-icon-badge {
            width: 48px;
            height: 48px;
            border-radius: 14px;
            border: 2px solid var(--dp-color-outline);
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 1.25rem;
            flex-shrink: 0;
            box-shadow: 2px 2px 0 var(--dp-color-outline);
        }

        .fact-item:nth-child(1) .fact-icon-badge {
            background: var(--dp-color-accent-warm);
        }

        .fact-item:nth-child(2) .fact-icon-badge {
            background: var(--dp-color-accent-secondary);
            color: white;
        }

        .fact-item:nth-child(3) .fact-icon-badge {
            background: var(--dp-color-accent-fresh);
        }

        .fact-item:nth-child(4) .fact-icon-badge {
            background: var(--dp-color-selection);
            color: var(--dp-color-accent);
        }

        .fact-text {
            display: flex;
            flex-direction: column;
        }

        .fact-number {
            font-family: var(--dp-typography-display);
            font-size: 2rem;
            font-weight: 800;
            color: var(--dp-color-ink);
            line-height: 1;
        }

        .fact-label {
            font-size: 0.8rem;
            font-weight: 700;
            color: var(--dp-color-ink);
            opacity: 0.85;
            text-transform: uppercase;
            letter-spacing: 0.04em;
            margin-top: 4px;
        }

        /* ====================================================
           SHARED BOOK CONTAINER WITH VIOLET OFFSET BACKING
        ==================================================== */
        .book-container {
            background-color: var(--white);
            border: var(--dp-border-outline-width) solid var(--dp-color-outline);
            border-radius: 28px;
            padding: 44px 40px;
            box-shadow: 10px 10px 0 var(--dp-color-accent);
            position: relative;
            margin-bottom: 50px;
        }

        /* Colored top tabs on book */
        .book-tabs {
            position: absolute;
            top: -26px;
            left: 32px;
            display: flex;
            gap: 10px;
            z-index: 10;
        }

        .book-tab {
            padding: 4px 16px;
            border: var(--dp-border-outline-width) solid var(--dp-color-outline);
            border-bottom: none;
            border-radius: 10px 10px 0 0;
            font-size: 0.75rem;
            font-weight: 800;
            text-transform: uppercase;
            letter-spacing: 0.05em;
            color: var(--dp-color-outline);
        }

        .tab-violet {
            background: var(--dp-color-accent);
            color: white;
        }

        .tab-amber {
            background: var(--dp-color-accent-warm);
        }

        .tab-pink {
            background: var(--dp-color-accent-secondary);
            color: white;
        }

        .tab-mint {
            background: var(--dp-color-accent-fresh);
        }

        /* ====================================================
           ABOUT SECTION (Speech-like Panel & Editorial Detail)
        ==================================================== */
        #about {
            padding: 40px 0 0;
        }

        .about-speech-panel {
            background-color: var(--dp-color-field-soft);
            border: var(--dp-border-outline-width) solid var(--dp-color-outline);
            border-radius: 22px;
            padding: 34px 38px;
            position: relative;
            box-shadow: 6px 6px 0 var(--dp-color-outline);
            cursor: pointer;
            transition: transform var(--dp-motion-interaction) ease, box-shadow var(--dp-motion-interaction) ease;
            margin-bottom: 30px;
        }

        .about-speech-panel:hover {
            transform: translate(-2px, -2px);
            box-shadow: 8px 8px 0 var(--dp-color-outline);
        }

        /* Speech notch indicator */
        .about-speech-panel::before {
            content: '';
            position: absolute;
            top: -14px;
            left: 48px;
            width: 22px;
            height: 22px;
            background: var(--dp-color-field-soft);
            border-top: var(--dp-border-outline-width) solid var(--dp-color-outline);
            border-left: var(--dp-border-outline-width) solid var(--dp-color-outline);
            transform: rotate(45deg);
        }

        #summary-text {
            font-size: 1.15rem;
            line-height: 1.85;
            color: var(--dp-color-ink);
        }

        #summary-text strong {
            color: var(--dp-color-accent);
            font-weight: 800;
        }

        .summary-click-hint {
            display: inline-flex;
            align-items: center;
            gap: 6px;
            background: var(--dp-color-accent-warm);
            color: var(--dp-color-outline);
            border: 2px solid var(--dp-color-outline);
            border-radius: 50px;
            padding: 4px 14px;
            font-size: 0.78rem;
            font-weight: 800;
            margin-top: 18px;
            box-shadow: 2px 2px 0 var(--dp-color-outline);
        }

        /* About Stats inside Section */
        .about-stats {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 20px;
            margin-top: 24px;
        }

        .stat-card {
            background: var(--white);
            border: var(--dp-border-outline-width) solid var(--dp-color-outline);
            border-radius: 18px;
            padding: 22px 18px;
            text-align: center;
            box-shadow: 4px 4px 0 var(--dp-color-outline);
            transition: transform var(--dp-motion-interaction) ease;
        }

        .stat-card:hover {
            transform: translateY(-3px);
            box-shadow: 6px 6px 0 var(--dp-color-outline);
        }

        .stat-card .stat-number {
            font-family: var(--dp-typography-display);
            font-size: 2.4rem;
            font-weight: 800;
            color: var(--dp-color-accent);
            display: block;
            line-height: 1;
        }

        .stat-card .stat-label {
            font-size: 0.85rem;
            font-weight: 700;
            color: var(--dp-color-ink);
            margin-top: 8px;
            text-transform: uppercase;
            letter-spacing: 0.04em;
        }

        /* ====================================================
           SKILLS SECTION (Pale-Mint Panel with Interactive Cards)
        ==================================================== */
        .skills-mint-wrapper {
            background-color: var(--dp-color-field-soft);
            border: var(--dp-border-outline-width) solid var(--dp-color-outline);
            border-radius: 32px;
            padding: 48px 36px;
            box-shadow: 10px 10px 0 var(--dp-color-outline);
            position: relative;
            margin-bottom: 50px;
        }

        .skills-intro {
            text-align: center;
            font-size: 1rem;
            font-weight: 700;
            color: var(--dp-color-accent);
            margin-top: -12px;
            margin-bottom: 32px;
        }

        .skills-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
            gap: 22px;
        }

        .skill-card {
            background-color: var(--white);
            padding: 26px 22px;
            border-radius: 20px;
            border: var(--dp-border-outline-width) solid var(--dp-color-outline);
            box-shadow: 5px 5px 0 var(--dp-color-outline);
            cursor: pointer;
            position: relative;
            display: flex;
            flex-direction: column;
            justify-content: space-between;
            transition: transform var(--dp-motion-interaction) ease, box-shadow var(--dp-motion-interaction) ease, background-color var(--dp-motion-interaction) ease;
        }

        .skill-card:hover {
            transform: translate(-3px, -3px);
            box-shadow: 8px 8px 0 var(--dp-color-outline);
            background-color: var(--dp-color-selection);
        }

        .skill-card-top {
            display: flex;
            align-items: center;
            justify-content: space-between;
            margin-bottom: 14px;
        }

        .skill-icon-bubble {
            width: 48px;
            height: 48px;
            border-radius: 14px;
            border: 2px solid var(--dp-color-outline);
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 1.5rem;
            box-shadow: 2px 2px 0 var(--dp-color-outline);
        }

        .skill-card:nth-child(1) .skill-icon-bubble {
            background: var(--dp-color-accent-warm);
        }

        .skill-card:nth-child(2) .skill-icon-bubble {
            background: var(--dp-color-accent-fresh);
        }

        .skill-card:nth-child(3) .skill-icon-bubble {
            background: var(--dp-color-accent-secondary);
        }

        .skill-card:nth-child(4) .skill-icon-bubble {
            background: var(--dp-color-selection);
        }

        .skill-card:nth-child(5) .skill-icon-bubble {
            background: var(--dp-color-accent-fresh);
        }

        .skill-card:nth-child(6) .skill-icon-bubble {
            background: var(--dp-color-accent-warm);
        }

        .skill-card:nth-child(7) .skill-icon-bubble {
            background: var(--dp-color-selection);
        }

        .skill-card:nth-child(8) .skill-icon-bubble {
            background: var(--dp-color-accent-secondary);
        }

        .skill-card h3 {
            font-size: 1.15rem;
            font-weight: 800;
            color: var(--dp-color-ink);
            margin-bottom: 8px;
        }

        .skill-card p {
            font-size: 0.92rem;
            color: var(--text-muted);
            line-height: 1.6;
            margin-bottom: 16px;
        }

        .skill-hint {
            display: inline-flex;
            align-items: center;
            gap: 6px;
            font-size: 0.8rem;
            font-weight: 800;
            color: var(--dp-color-accent);
            background: var(--dp-color-ground);
            border: 2px solid var(--dp-color-outline);
            border-radius: 50px;
            padding: 4px 12px;
            width: fit-content;
            box-shadow: 2px 2px 0 var(--dp-color-outline);
        }

        /* ====================================================
           EXPERIENCE SECTION (Numbered Process Strip)
        ==================================================== */
        .experience-book-container {
            background-color: var(--white);
            border: var(--dp-border-outline-width) solid var(--dp-color-outline);
            border-radius: 28px;
            padding: 44px 40px;
            box-shadow: 10px 10px 0 var(--dp-color-accent-secondary);
            position: relative;
            margin-bottom: 50px;
        }

        .timeline-process-strip {
            position: relative;
            margin-top: 24px;
        }

        /* Connecting Line */
        .timeline-process-strip::before {
            content: '';
            position: absolute;
            top: 24px;
            bottom: 24px;
            left: 28px;
            width: 4px;
            background: var(--dp-color-outline);
            border-radius: 2px;
            z-index: 1;
        }

        .timeline-row {
            display: flex;
            gap: 28px;
            position: relative;
            margin-bottom: 32px;
            z-index: 2;
        }

        .timeline-row:last-child {
            margin-bottom: 0;
        }

        /* Differently shaped badges along the connecting strip */
        .step-badge {
            width: 56px;
            height: 56px;
            border: var(--dp-border-outline-width) solid var(--dp-color-outline);
            display: flex;
            align-items: center;
            justify-content: center;
            font-family: var(--dp-typography-display);
            font-size: 1.35rem;
            font-weight: 900;
            color: var(--dp-color-outline);
            flex-shrink: 0;
            box-shadow: 3px 3px 0 var(--dp-color-outline);
            background: var(--white);
            z-index: 2;
        }

        /* Badges shaped uniquely as per design system */
        .badge-step-1 {
            border-radius: 50%;
            background: var(--dp-color-accent);
            color: white;
        }

        .badge-step-2 {
            border-radius: 14px;
            background: var(--dp-color-accent-secondary);
            color: white;
            transform: rotate(-3deg);
        }

        .badge-step-3 {
            border-radius: 24px 8px 24px 8px;
            background: var(--dp-color-accent-warm);
        }

        .badge-step-4 {
            border-radius: 16px 16px 4px 4px;
            background: var(--dp-color-accent-fresh);
        }

        .timeline-item {
            flex: 1;
            background: var(--white);
            padding: 26px 28px;
            border-radius: 20px;
            border: var(--dp-border-outline-width) solid var(--dp-color-outline);
            box-shadow: 5px 5px 0 var(--dp-color-outline);
            transition: transform var(--dp-motion-interaction) ease, box-shadow var(--dp-motion-interaction) ease;
        }

        .interactive-item {
            cursor: pointer;
        }

        .interactive-item:hover {
            transform: translate(-3px, -3px);
            box-shadow: 8px 8px 0 var(--dp-color-outline);
            background-color: #fffefb;
        }

        .timeline-item-header {
            display: flex;
            justify-content: space-between;
            align-items: flex-start;
            flex-wrap: wrap;
            gap: 10px;
            margin-bottom: 8px;
        }

        .timeline-item .section-tag {
            display: inline-flex;
            align-items: center;
            gap: 6px;
            font-size: 0.75rem;
            font-weight: 800;
            text-transform: uppercase;
            letter-spacing: 0.05em;
            color: var(--dp-color-outline);
            background: var(--dp-color-accent-warm);
            padding: 4px 12px;
            border-radius: 50px;
            border: 2px solid var(--dp-color-outline);
            box-shadow: 2px 2px 0 var(--dp-color-outline);
        }

        .tag-current {
            background: var(--dp-color-accent-fresh) !important;
            color: var(--dp-color-outline) !important;
        }

        .timeline-item h3 {
            font-size: 1.35rem;
            font-weight: 800;
            color: var(--dp-color-ink);
            margin-bottom: 4px;
        }

        .timeline-item .company {
            font-weight: 700;
            color: var(--dp-color-accent);
            font-size: 1.05rem;
            margin-bottom: 4px;
        }

        .timeline-item .duration {
            font-size: 0.85rem;
            font-weight: 600;
            color: var(--text-muted);
            margin-bottom: 16px;
            display: flex;
            align-items: center;
            gap: 6px;
        }

        .timeline-item ul {
            list-style: none;
            padding-left: 0;
            margin-bottom: 16px;
        }

        .timeline-item li {
            margin-bottom: 8px;
            padding-left: 26px;
            position: relative;
            font-size: 0.95rem;
            color: var(--dp-color-ink);
            line-height: 1.6;
        }

        .timeline-item li::before {
            content: '✦';
            position: absolute;
            left: 2px;
            color: var(--dp-color-accent);
            font-weight: 900;
            font-size: 1rem;
        }

        .click-hint {
            display: inline-flex;
            align-items: center;
            gap: 6px;
            font-size: 0.78rem;
            font-weight: 800;
            color: var(--dp-color-outline);
            background: var(--dp-color-ground);
            border: 2px solid var(--dp-color-outline);
            border-radius: 50px;
            padding: 4px 14px;
            box-shadow: 2px 2px 0 var(--dp-color-outline);
        }

        /* ====================================================
           EDUCATION SECTION (Numbered Badges & Qualifications)
        ==================================================== */
        .education-book-container {
            background-color: var(--white);
            border: var(--dp-border-outline-width) solid var(--dp-color-outline);
            border-radius: 28px;
            padding: 44px 40px;
            box-shadow: 10px 10px 0 var(--dp-color-accent);
            position: relative;
            margin-bottom: 50px;
        }

        .edu-badge {
            display: inline-flex;
            align-items: center;
            gap: 6px;
            font-size: 0.78rem;
            font-weight: 800;
            padding: 4px 14px;
            border-radius: 50px;
            border: 2px solid var(--dp-color-outline);
            box-shadow: 2px 2px 0 var(--dp-color-outline);
            margin-top: 8px;
        }

        .badge-completed {
            background: var(--dp-color-accent-fresh);
            color: var(--dp-color-outline);
        }

        .badge-current {
            background: var(--dp-color-accent-warm);
            color: var(--dp-color-outline);
        }

        /* Additional Information activity-book note */
        .info-bar {
            text-align: left;
            margin-top: 36px;
            padding: 20px 26px;
            background: var(--dp-color-field-soft);
            border-radius: 18px;
            font-size: 0.95rem;
            color: var(--dp-color-ink);
            border: var(--dp-border-outline-width) solid var(--dp-color-outline);
            box-shadow: 4px 4px 0 var(--dp-color-outline);
            display: flex;
            align-items: center;
            gap: 16px;
        }

        .info-bar-icon {
            width: 40px;
            height: 40px;
            background: var(--dp-color-accent-warm);
            border: 2px solid var(--dp-color-outline);
            border-radius: 10px;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 1.25rem;
            flex-shrink: 0;
            box-shadow: 2px 2px 0 var(--dp-color-outline);
        }

        .info-bar strong {
            color: var(--dp-color-accent);
        }

        /* ====================================================
           MINT BACK-COVER SHAPE & INSET DARK SLATE FOOTER
        ==================================================== */
        .closing-backcover-wrapper {
            background-color: var(--dp-color-accent-fresh);
            border-top: var(--dp-border-outline-width) solid var(--dp-color-outline);
            border-radius: 48px 48px 0 0;
            margin-top: 80px;
            padding-top: 60px;
            position: relative;
            overflow: hidden;
            box-shadow: 0 -8px 0 var(--dp-color-outline);
        }

        /* Sparse geometric confetti around edges (non-moving, pure activity-book aesthetic) */
        .confetti-piece {
            position: absolute;
            pointer-events: none;
            z-index: 1;
        }

        .confetti-diamond-violet {
            top: 24px;
            left: 40px;
            width: 22px;
            height: 22px;
            background: var(--dp-color-accent);
            border: 2px solid var(--dp-color-outline);
            transform: rotate(45deg);
        }

        .confetti-circle-pink {
            top: 36px;
            right: 80px;
            width: 26px;
            height: 26px;
            background: var(--dp-color-accent-secondary);
            border: 2px solid var(--dp-color-outline);
            border-radius: 50%;
        }

        .confetti-block-amber {
            top: 110px;
            left: 80px;
            width: 20px;
            height: 20px;
            background: var(--dp-color-accent-warm);
            border: 2px solid var(--dp-color-outline);
            border-radius: 4px;
            transform: rotate(18deg);
        }

        .confetti-arch-white {
            top: 95px;
            right: 48px;
            width: 26px;
            height: 36px;
            background: var(--white);
            border: 2px solid var(--dp-color-outline);
            border-radius: 14px 14px 2px 2px;
        }

        /* Closing statement container */
        .closing-container {
            max-width: 860px;
            margin: 0 auto 50px;
            padding: 0 24px;
            text-align: center;
            position: relative;
            z-index: 2;
        }

        .closing-container h3 {
            font-size: clamp(2.2rem, 4vw, 3.2rem);
            font-weight: 900;
            color: var(--dp-color-outline);
            margin-bottom: 12px;
        }

        .closing-container .footer-subtitle {
            font-size: 1.15rem;
            font-weight: 600;
            color: var(--dp-color-ink);
            margin-bottom: 28px;
        }

        .closing-actions {
            display: flex;
            justify-content: center;
            gap: 16px;
            flex-wrap: wrap;
        }

        /* Inset dark slate footer with broad curved top */
        footer#contact {
            background-color: var(--dp-color-outline);
            color: #e6ebf5;
            border-radius: 40px 40px 0 0;
            border-top: var(--dp-border-outline-width) solid var(--dp-color-outline);
            padding: 50px 24px 30px;
            position: relative;
            z-index: 2;
        }

        .footer-content {
            max-width: 900px;
            margin: 0 auto;
            text-align: center;
        }

        .footer-contact-pills {
            display: flex;
            justify-content: center;
            gap: 16px;
            flex-wrap: wrap;
            margin-bottom: 30px;
        }

        .footer-pill {
            display: inline-flex;
            align-items: center;
            gap: 10px;
            background: rgba(255, 255, 255, 0.08);
            border: 2px solid rgba(255, 255, 255, 0.2);
            padding: 10px 20px;
            border-radius: 50px;
            font-size: 0.95rem;
            color: #ffffff;
            transition: background var(--dp-motion-interaction) ease, border-color var(--dp-motion-interaction) ease;
        }

        .footer-pill a {
            color: #ffffff;
        }

        .footer-pill:hover {
            background: rgba(255, 255, 255, 0.16);
            border-color: var(--dp-color-accent-warm);
        }

        .footer-pill i {
            color: var(--dp-color-accent-warm);
            font-size: 1.1rem;
        }

        .social-links {
            display: flex;
            justify-content: center;
            gap: 18px;
            margin-bottom: 24px;
        }

        .social-links a {
            width: 48px;
            height: 48px;
            background: rgba(255, 255, 255, 0.08);
            border: 2px solid rgba(255, 255, 255, 0.2);
            border-radius: 14px;
            display: flex;
            align-items: center;
            justify-content: center;
            color: #ffffff;
            font-size: 1.4rem;
            transition: all var(--dp-motion-interaction) ease;
        }

        .social-links a:hover {
            background: var(--dp-color-accent-warm);
            color: var(--dp-color-outline);
            border-color: var(--dp-color-outline);
            transform: translateY(-3px);
            box-shadow: 2px 2px 0 var(--dp-color-accent);
        }

        .creator-note {
            border-top: 1px solid rgba(255, 255, 255, 0.15);
            padding-top: 24px;
            font-size: 0.85rem;
            color: #a4b3cf;
            text-align: center;
        }

        .creator-note a {
            color: var(--dp-color-accent-warm);
            font-weight: 700;
        }

        .creator-note a:hover {
            text-decoration: underline;
        }

        /* ====================================================
           MODAL (POP-UP) STYLES (Playful Geometric Activity Sheet)
        ==================================================== */
        .modal {
            display: none;
            position: fixed;
            z-index: 1000;
            left: 0;
            top: 0;
            width: 100%;
            height: 100%;
            overflow: auto;
            background-color: rgba(37, 43, 58, 0.7);
            animation: fadeIn 0.2s ease;
        }

        .modal-content {
            background-color: var(--white);
            margin: 6% auto;
            padding: 38px 36px 32px;
            border-radius: 26px;
            width: 90%;
            max-width: 640px;
            border: var(--dp-border-outline-width) solid var(--dp-color-outline);
            box-shadow: 10px 10px 0 var(--dp-color-outline);
            position: relative;
            animation: slideIn 0.3s cubic-bezier(0.22, 0.61, 0.36, 1);
        }

        .modal-top-tab {
            position: absolute;
            top: -18px;
            left: 32px;
            background: var(--dp-color-accent-warm);
            color: var(--dp-color-outline);
            border: var(--dp-border-outline-width) solid var(--dp-color-outline);
            border-bottom: none;
            border-radius: 8px 8px 0 0;
            padding: 2px 14px;
            font-size: 0.75rem;
            font-weight: 800;
            text-transform: uppercase;
        }

        .modal-content h3 {
            font-size: 1.5rem;
            font-weight: 900;
            color: var(--dp-color-ink);
            margin-bottom: 16px;
            padding-right: 40px;
        }

        .modal-content p,
        .modal-content div.modal-text {
            font-size: 1.05rem;
            color: var(--dp-color-ink);
            line-height: 1.8;
        }

        .modal-content div.modal-text strong {
            color: var(--dp-color-accent);
        }

        .modal-content ul {
            list-style: none;
            padding-left: 0;
            margin-top: 16px;
        }

        .modal-content ul li {
            margin-bottom: 12px;
            padding-left: 28px;
            position: relative;
            line-height: 1.7;
            font-size: 1rem;
        }

        .modal-content ul li::before {
            content: '★';
            position: absolute;
            left: 0;
            color: var(--dp-color-accent-warm);
            font-size: 1.1rem;
        }

        .modal-duration-tag {
            display: inline-flex;
            align-items: center;
            gap: 8px;
            background: var(--dp-color-selection);
            color: var(--dp-color-accent);
            font-size: 0.88rem;
            font-weight: 800;
            padding: 5px 16px;
            border-radius: 50px;
            margin-bottom: 18px;
            border: 2px solid var(--dp-color-outline);
            box-shadow: 2px 2px 0 var(--dp-color-outline);
        }

        .close-btn {
            position: absolute;
            top: 20px;
            right: 20px;
            width: 36px;
            height: 36px;
            border-radius: 50%;
            background: var(--dp-color-ground);
            border: 2px solid var(--dp-color-outline);
            color: var(--dp-color-outline);
            font-size: 20px;
            font-weight: 900;
            display: flex;
            align-items: center;
            justify-content: center;
            cursor: pointer;
            box-shadow: 2px 2px 0 var(--dp-color-outline);
            transition: all var(--dp-motion-interaction) ease;
        }

        .close-btn:hover {
            background: var(--dp-color-accent-secondary);
            color: white;
            transform: translate(-1px, -1px);
            box-shadow: 3px 3px 0 var(--dp-color-outline);
        }

        /* Keyframes */
        @keyframes fadeIn {
            from {
                opacity: 0;
            }

            to {
                opacity: 1;
            }
        }

        @keyframes slideIn {
            from {
                transform: translateY(-24px) scale(0.98);
                opacity: 0;
            }

            to {
                transform: translateY(0) scale(1);
                opacity: 1;
            }
        }

        /* ====================================================
           REDUCED MOTION PREFERENCES
        ==================================================== */
        @media (prefers-reduced-motion: reduce) {

            *,
            *::before,
            *::after {
                animation: none !important;
                transition: none !important;
                transform: none !important;
            }

            html {
                scroll-behavior: auto;
            }
        }

        /* ====================================================
           RESPONSIVE BEHAVIOR
        ==================================================== */
        @media (max-width: 1100px) {
            .hero-grid {
                gap: 32px;
            }

            .fact-strip-inner {
                grid-template-columns: repeat(2, 1fr);
            }

            .fact-item:nth-child(2) {
                border-right: none;
            }

            .book-container,
            .experience-book-container,
            .education-book-container,
            .skills-mint-wrapper {
                padding: 36px 28px;
            }
        }

        @media (max-width: 768px) {
            .hero-grid {
                grid-template-columns: 1fr;
                gap: 40px;
                text-align: center;
            }

            .hero-content {
                align-items: center;
            }

            .hero-tags {
                justify-content: center;
            }

            .contact-buttons {
                flex-direction: column;
                width: 100%;
                max-width: 320px;
            }

            .btn {
                width: 100%;
            }

            .nav-links {
                display: flex;
                flex-direction: column;
                position: fixed;
                top: 0;
                right: 0;
                background-color: var(--dp-color-panel);
                width: 76%;
                max-width: 300px;
                height: 100%;
                padding: 85px 24px 30px;
                border-left: var(--dp-border-outline-width) solid var(--dp-color-outline);
                box-shadow: -8px 0 0 rgba(37, 43, 58, 0.15);
                transform: translateX(110%);
                transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
                z-index: 202;
                overflow-y: auto;
            }

            .nav-links.open {
                transform: translateX(0);
            }

            .nav-links a {
                width: 100%;
                text-align: left;
                padding: 12px 18px;
                border: 2px solid var(--dp-color-outline);
                box-shadow: 2px 2px 0 var(--dp-color-outline);
                margin-bottom: 8px;
            }

            .menu-toggle {
                display: flex;
            }

            .fact-strip-inner {
                grid-template-columns: 1fr;
            }

            .fact-item {
                border-right: none;
                border-bottom: 2px dashed var(--dp-color-rule-muted);
                padding-bottom: 12px;
            }

            .fact-item:last-child {
                border-bottom: none;
            }

            .about-stats {
                grid-template-columns: 1fr;
            }

            .timeline-row {
                flex-direction: column;
                gap: 12px;
            }

            .timeline-process-strip::before {
                left: 27px;
            }

            .step-badge {
                width: 48px;
                height: 48px;
                font-size: 1.15rem;
            }

            .modal-content {
                padding: 30px 22px 24px;
                width: 94%;
                margin: 10% auto;
            }

            .closing-actions {
                flex-direction: column;
                max-width: 320px;
                margin: 0 auto;
            }
        }
