        :root {
            --paper-line: rgba(0, 0, 0, 0.05);
            --paper-bg: #fffdf5;
            --ink-color: #2d2d2d;
            --accent-blue: #bfdbfe;
            --accent-pink: #fbcfe8;
            --accent-green: #bbf7d0;
            --accent-mint: #99f6e4;
            --glass-border: rgba(255, 255, 255, 0.4);
            --glass-bg: rgba(255, 255, 255, 0.25);
            --terminal-bg: #f9fafb;
            --terminal-header-bg: #e5e7eb;
            --terminal-header-border: rgba(0, 0, 0, 0.06);
            --terminal-body-bg: radial-gradient(circle at top left, rgba(0, 0, 0, 0.04), transparent 55%);
            --terminal-code-bg: rgba(0, 0, 0, 0.03);
            --terminal-text: #111827;
        }

        body {
            -webkit-user-select: none;
            -moz-user-select: none;
            -ms-user-select: none;
            user-select: none;
        }

        .dark {
            --paper-line: rgba(255, 255, 255, 0.05);
            --paper-bg: #1a1a1a;
            --ink-color: #f0f0f0;
            --glass-border: rgba(255, 255, 255, 0.1);
            --glass-bg: rgba(0, 0, 0, 0.3);
            --terminal-bg: #1e1f1c;
            --terminal-header-bg: #202020;
            --terminal-header-border: rgba(255, 255, 255, 0.06);
            --terminal-body-bg: radial-gradient(circle at top left, rgba(255, 255, 255, 0.06), transparent 55%);
            --terminal-code-bg: rgba(0, 0, 0, 0.25);
            --terminal-text: #f8f8f2;
        }

        body {
            font-family: 'Patrick Hand', cursive;
            background-color: var(--paper-bg);
            color: var(--ink-color);
            overflow-x: hidden;
            transition: background-color 0.3s ease, color 0.3s ease;
        }

        h1,
        h2,
        h3,
        h4,
        h5,
        h6 {
            font-family: 'Amatic SC', cursive;
        }

        /* //lines */
        .notebook-bg {
            background-image: linear-gradient(var(--paper-line) 1px, transparent 1px);
            background-size: 100% 2rem;
            mask-image: linear-gradient(to bottom, black 80%, transparent 100%);
        }

        .squiggly {
            filter: url('#squiggle');
        }

        /* //border util */
        .hand-drawn-box {
            border-radius: 255px 15px 225px 15px / 15px 225px 15px 255px;
            border: 2px solid var(--ink-color);
        }

        .glass-panel {
            background: var(--glass-bg);
            backdrop-filter: blur(12px);
            -webkit-backdrop-filter: blur(12px);
            border: 1px solid var(--glass-border);
            box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.07);
        }

        .dark .glass-panel {
            background: rgba(30, 30, 30, 0.7);
            border: 1px solid rgba(255, 255, 255, 0.1);
        }

        /* //comet animation */
        #comet-animation {
            position: fixed;
            width: 80px;
            height: 80px;
            z-index: 9999;
            opacity: 0;
            --start-top: -10%;
            --start-left: 110%;
            --end-top: 80%;
            --end-left: -10%;
        }

        #comet-animation img {
            width: 100%;
            height: 100%;
            filter: drop-shadow(0 0 10px rgba(255, 200, 100, 0.6));
        }

        @keyframes cometFly {
            0% {
                top: var(--start-top);
                left: var(--start-left);
                opacity: 0;
                transform: scale(0.3, 0.1);
            }

            5% {
                opacity: 1;
                transform: scale(0.8, 0.4);
            }

            30% {
                opacity: 1;
                transform: scale(1, 0.7);
            }

            60% {
                opacity: 1;
                transform: scale(1.2, 1);
            }

            80% {
                opacity: 1;
                transform: scale(1, 1);
            }

            95% {
                opacity: 1;
                transform: scale(0.8, 0.8);
            }

            100% {
                top: var(--end-top);
                left: var(--end-left);
                opacity: 0;
                transform: scale(0.5, 0.5);
            }
        }

        /* Dramatic comet with curved path */
        @keyframes cometFlyDramatic {
            0% {
                top: var(--start-top);
                left: var(--start-left);
                opacity: 0;
                transform: scale(0.3, 0.1);
            }

            5% {
                opacity: 1;
                transform: scale(0.8, 0.4);
            }

            25% {
                top: var(--mid-top);
                left: var(--mid-left);
                opacity: 1;
                transform: scale(1, 0.7);
            }

            50% {
                opacity: 1;
                transform: scale(1.2, 1);
            }

            75% {
                opacity: 1;
                transform: scale(1, 1);
            }

            95% {
                opacity: 1;
                transform: scale(0.8, 0.8);
            }

            100% {
                top: var(--end-top);
                left: var(--end-left);
                opacity: 0;
                transform: scale(0.5, 0.5);
            }
        }

        /* //spotlight thing */
        .spotlight-overlay {
            background: radial-gradient(600px circle at var(--mouse-x) var(--mouse-y),
                    rgba(255, 255, 255, 0.15),
                    transparent 40%);
        }

        /* //tilt */
        .tilt-card {
            transition: transform 0.1s;
            transform-style: preserve-3d;
        }

        /* //gradient */
        .gradient-mesh {
            background: radial-gradient(at 0% 0%, hsla(253, 16%, 7%, 1) 0, transparent 50%),
                radial-gradient(at 50% 0%, hsla(225, 39%, 30%, 1) 0, transparent 50%),
                radial-gradient(at 100% 0%, hsla(339, 49%, 30%, 1) 0, transparent 50%);
            opacity: 0;
            transition: opacity 0.5s;
        }

        body:not(.dark) .gradient-mesh {
            background: radial-gradient(at 0% 0%, hsla(189, 100%, 86%, 1) 0, transparent 50%),
                radial-gradient(at 50% 100%, hsla(311, 100%, 89%, 1) 0, transparent 50%),
                radial-gradient(at 100% 0%, hsla(127, 100%, 84%, 1) 0, transparent 50%);
            opacity: 0.4;
        }

        /* //physicss */
        #physics-canvas {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            z-index: -1;
            pointer-events: none;
            opacity: 0.7;
        }

        #custom-cursor {
            position: fixed;
            top: 0;
            left: 0;
            width: 40px;
            height: 40px;
            pointer-events: none;
            transform: translate(-50%, -50%);
            z-index: 60;
            display: none;
        }

        #custom-cursor svg {
            width: 100%;
            height: 100%;
        }

        #link-cursor {
            position: fixed;
            top: 0;
            left: 0;
            width: 40px;
            height: 40px;
            pointer-events: none;
            transform: translate(-50%, -50%);
            z-index: 61;
            display: none;
        }

        #link-cursor svg {
            width: 100%;
            height: 100%;
        }

        @media (pointer: fine) {
            body {
                cursor: none;
            }

            a,
            a *,
            #theme-toggle,
            #theme-toggle * {
                cursor: none !important;
            }

            #custom-cursor {
                display: block;
                transition: opacity 0.15s ease;
            }

            body.link-hover #custom-cursor {
                opacity: 0;
            }

            body.link-hover #link-cursor {
                display: block;
            }
        }

        #slingshot-line {
            transition: opacity 0.1s;
        }

        /* drag select box styles (commented out)
        .drag-select-box {
            position: fixed;
            z-index: 55;
            border-radius: 10px;
            background: rgba(191, 219, 254, 0.22);
            border: 1px solid rgb(140, 245, 194);
            box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.6), 0 14px 35px rgba(15, 23, 42, 0.28);
            pointer-events: none;
            opacity: 0;
            width: 0;
            height: 0;
            transform: translateZ(0);
            transition: opacity 0.18s ease-out;
        }

        body.drag-select-active {
            -webkit-user-select: none;
            -moz-user-select: none;
            -ms-user-select: none;
            user-select: none;
        }

        .drag-select-highlight {
            position: relative;
            z-index: 5;
        }

        .drag-select-highlight::after {
            content: "";
            position: absolute;
            inset: -6px;
            border-radius: 15px;
            border: 2px solid #ffbf6b;
            box-shadow: 0 0 0 1px #ffd8a5, 0 10px 25px rgba(15, 23, 42, 0.28);
            pointer-events: none;
            mix-blend-mode: multiply;
        }
        */

        /* //scrollbar */
        ::-webkit-scrollbar {
            width: 10px;
        }

        ::-webkit-scrollbar-track {
            background: transparent;
        }

        ::-webkit-scrollbar-thumb {
            background: #cbd5e1;
            border-radius: 10px;
            border: 2px solid transparent;
            background-clip: content-box;
        }

        ::-webkit-scrollbar-thumb:hover {
            background-color: #94a3b8;
        }

        .doodle-line {
            overflow: visible;
        }

        .doodle-line path {
            fill: none;
            stroke: rgba(0, 0, 0, 0.85);
            stroke-width: 2.5;
            stroke-linecap: round;
            stroke-linejoin: round;
            vector-effect: non-scaling-stroke;
            stroke-opacity: 0.85;
        }

        .dark .doodle-line path {
            stroke: rgba(255, 255, 255, 0.9);
            stroke-opacity: 0.9;
        }

        .timeline-list {
            position: relative;
            padding-left: 1.75rem;
        }

        .timeline-list::before {
            content: "";
            position: absolute;
            left: 0.6rem;
            top: 0.25rem;
            bottom: 0.25rem;
            width: 2px;
            background: rgba(0, 0, 0, 0.12);
        }

        .dark .timeline-list::before {
            background: rgba(255, 255, 255, 0.18);
        }

        .timeline-item {
            position: relative;
            display: flex;
            gap: 0.75rem;
        }

        .timeline-marker {
            position: absolute;
            left: -0.12rem;
            top: 0.5rem;
            width: 0.8rem;
            height: 0.8rem;
            border-radius: 9999px;
            border: 2px solid var(--ink-color);
            background: var(--paper-bg);
            box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.02);
            transform-origin: center;
            transition: transform 0.2s ease, background-color 0.2s ease, border-color 0.2s ease;
        }

        .timeline-copy {
            margin-left: 1.25rem;
        }

        .timeline-date {
            font-size: 0.9rem;
            text-transform: uppercase;
            letter-spacing: 0.12em;
            margin-bottom: 0.1rem;
        }

        .timeline-label {
            font-size: 1.05rem;
        }

        .timeline-item-active .timeline-marker {
            transform: scale(1.15);
            background: #facc15;
            border-color: #fbbf24;
        }

        .timeline-item-active .timeline-date {
            text-decoration: underline;
        }

        .timeline-editor {
            background: var(--terminal-bg);
            border-color: #000;
            box-shadow: 0 18px 35px rgba(0, 0, 0, 0.45);
            overflow: hidden;
        }

        .dark .timeline-editor {
            background: var(--terminal-bg);
        }

        .timeline-editor-header {
            display: flex;
            align-items: center;
            justify-content: space-between;
            padding: 0.4rem 0.8rem;
            background: var(--terminal-header-bg);
            border-bottom: 1px solid var(--terminal-header-border);
            border-top-left-radius: inherit;
            border-top-right-radius: inherit;
        }

        .timeline-editor-dots span {
            display: inline-block;
            width: 0.6rem;
            height: 0.6rem;
            border-radius: 9999px;
            margin-right: 0.5rem;
        }

        .timeline-editor-dots span:nth-child(1) {
            background: #ed6a5e;
        }

        .timeline-editor-dots span:nth-child(2) {
            background: #f4bf4f;
        }

        .timeline-editor-dots span:nth-child(3) {
            background: #61c554;
        }

        .timeline-editor-title {
            font-size: 0.8rem;
            opacity: 0.8;
        }

        .timeline-editor-body {
            position: relative;
            padding: 0.75rem 1rem 0.9rem;
            font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
            font-size: 0.85rem;
            line-height: 1.5;
            min-height: 13rem;
            color: var(--terminal-text);
            background: var(--terminal-body-bg);
            overflow: hidden;
        }

        .timeline-code-block {
            position: absolute;
            inset: 0.4rem 0.75rem 0.6rem;
            margin: 0;
            padding: 0.4rem 0.75rem;
            border-radius: 0.5rem;
            background: var(--terminal-code-bg);
            color: var(--terminal-text);
            opacity: 0;
            pointer-events: none;
            white-space: pre;
            overflow: auto;
        }

        .timeline-code-block code {
            white-space: pre;
        }

        .timeline-code-block.is-active {
            opacity: 1;
            pointer-events: auto;
        }