@keyframes fadeInUp {
    from { opacity: 0; transform: translateY(20px); }
    to { opacity: 1; transform: translateY(0); }
}
.animate-fade-in-up {
    animation: fadeInUp 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards;
    opacity: 0;
}
.delay-100 { animation-delay: 100ms; }
.delay-200 { animation-delay: 200ms; }
.delay-300 { animation-delay: 300ms; }

body::selection,
body *::selection {
    background: var(--laam-selection-bg, #ffffff);
    color: var(--laam-selection-text, #000000);
}

.hide-scrollbar::-webkit-scrollbar { display: none; }
.hide-scrollbar { -ms-overflow-style: none; scrollbar-width: none; }

.perspective-1000 { perspective: 1000px; }
.transform-style-3d { transform-style: preserve-3d; }

.tilt-card-inner { transition: transform 0.3s ease-out; }
.tilt-bg,
.tilt-content-inner,
.tilt-play-btn,
.tilt-button,
.tilt-category,
.tilt-grid,
.tilt-software,
.tilt-desc,
.tilt-icon-wrapper,
.game-genre,
.game-platform,
.game-card-inner,
.browser-bar,
.browser-address,
.bg-img {
    transition: all 0.5s ease;
}

.custom-scrollbar::-webkit-scrollbar { width: 6px; height: 6px; }
.custom-scrollbar::-webkit-scrollbar-track { background: #0a0a0a; border-radius: 10px; }
.custom-scrollbar::-webkit-scrollbar-thumb { background: #333; border-radius: 10px; }
.custom-scrollbar::-webkit-scrollbar-thumb:hover { background: #555; }

.tilt-card:hover .tilt-bg {
    filter: var(--laam-hover-filter, none) !important;
    transform: translateZ(var(--laam-bg-z, -30px)) scale(var(--laam-bg-hover-scale, 1.08)) !important;
}

.line-clamp-2,
.line-clamp-3 {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.line-clamp-2 { -webkit-line-clamp: 2; }
.line-clamp-3 { -webkit-line-clamp: 3; }

.laam-gradient-text {
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

.filter-toolbar .filter-btn { border-color: transparent; }
.filter-toolbar[data-filter-style="underline"] .filter-btn {
    border-width: 0 0 2px 0;
    border-radius: 0;
    padding-left: 0;
    padding-right: 0;
}
.filter-toolbar[data-filter-style="pills"] .filter-btn {
    border-width: 1px;
    border-radius: 999px;
}


.laam-portfolio-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 2rem;
    align-items: stretch;
}

.laam-portfolio-grid > .portfolio-card {
    min-width: 0;
}

@media (min-width: 768px) {
    .laam-portfolio-grid {
        --laam-grid-row-gap: 3rem;
        --laam-grid-card-min-height: 260px;
        grid-template-columns: repeat(var(--laam-grid-columns, 2), minmax(0, 1fr));
        grid-auto-flow: row dense;
        grid-auto-rows: minmax(var(--laam-grid-card-min-height), auto);
        gap: var(--laam-grid-row-gap);
    }

    .laam-portfolio-grid > .portfolio-card--normal {
        grid-column: span 1;
        grid-row: span 1;
    }

    .laam-portfolio-grid > .portfolio-card--wide {
        grid-column: 1 / -1;
        grid-row: span 1;
    }

    .laam-portfolio-grid > .portfolio-card--normal .tilt-card-inner,
    .laam-portfolio-grid > .portfolio-card--wide .tilt-card-inner {
        min-height: var(--laam-grid-card-min-height) !important;
    }

    .laam-portfolio-grid > .portfolio-card--tall {
        grid-column: span 1;
        grid-row: span 2;
        height: 100%;
    }

    .laam-portfolio-grid > .portfolio-card--tall .tilt-card-inner {
        height: 100%;
        min-height: calc(var(--laam-grid-card-min-height) + var(--laam-grid-card-min-height) + var(--laam-grid-row-gap)) !important;
        aspect-ratio: auto !important;
    }
}

@media (max-width: 767px) {
    .laam-portfolio-grid > .portfolio-card {
        grid-column: 1 / -1 !important;
        grid-row: auto !important;
    }

    .laam-portfolio-grid > .portfolio-card--tall .tilt-card-inner {
        min-height: 420px;
    }
}



.laam-home-cards-grid {
    --laam-grid-row-gap: 3rem;
    --laam-grid-card-min-height: 300px;
}

[data-section-variant="commercial"] .tilt-card:hover .tilt-category,
.laam-nav-commercial .tilt-card:hover .tilt-category,
.laam-nav-home .tilt-card:hover .tilt-category {
    color: #00ffcc !important;
}


[data-section-variant="animation"] .tilt-card:hover .tilt-grid { opacity: 1 !important; }
[data-section-variant="animation"] .tilt-card:hover .tilt-category { color: #9ca3af !important; }

[data-section-variant="webdev"] .tilt-card:hover .browser-bar {
    background: rgba(0,0,0,0.55) !important;
}

[data-section-variant="games"] .game-card-inner {
    border: 2px solid #333;
    background: #000;
}
[data-section-variant="games"] .tilt-card:hover .game-card-inner {
    border-color: #ff0055 !important;
    box-shadow: 0 0 30px rgba(255, 0, 85, 0.3) !important;
}
[data-section-variant="games"] .tilt-card:hover .game-genre {
    color: #ff0055 !important;
}
[data-section-variant="games"] .tilt-card:hover .game-platform {
    border-color: #ff0055 !important;
    color: white !important;
}

[data-section-variant="internal"] .tilt-card:hover .tilt-icon-wrapper {
    transform: scale(1.1) !important;
}

.blog-card .bg-img { transform: scale(1); }
.blog-card:hover .bg-img { transform: scale(1.05); }
.blog-card:hover h3 { color: #d1d5db; }
.blog-card:hover .blog-arrow { transform: translateX(0.45rem); }

.terminal-window {
    background: linear-gradient(180deg, rgba(17,17,17,0.95), rgba(10,10,10,0.92));
    border: 1px solid rgba(255,255,255,0.08);
    box-shadow: 0 20px 60px rgba(0,0,0,0.35);
}
.terminal-window .terminal-top {
    border-bottom: 1px solid rgba(255,255,255,0.06);
}

@media (min-width: 768px) {
    [data-section-variant="commercial"] .tilt-card:hover .tilt-content-inner,
    .laam-nav-home .tilt-card:hover .tilt-content-inner {
        transform: translateY(var(--laam-content-hover-translate, -16px)) !important;
        opacity: var(--laam-content-hover-opacity, 1) !important;
    }
    [data-section-variant="commercial"] .tilt-card:hover .tilt-play-btn,
    .laam-nav-home .tilt-card:hover .tilt-play-btn {
        opacity: 1 !important;
        transform: translateY(0) !important;
    }

    [data-section-variant="photography"] .tilt-card:hover .tilt-content-inner,
    [data-section-variant="webdev"] .tilt-card:hover .tilt-content-inner,
    [data-section-variant="games"] .tilt-card:hover .tilt-content-inner {
        transform: translateY(var(--laam-content-hover-translate, 0px)) !important;
        opacity: var(--laam-content-hover-opacity, 1) !important;
    }
    [data-section-variant="photography"] .tilt-card:hover .tilt-play-btn {
        opacity: 1 !important;
        transform: scale(1) !important;
    }

    [data-section-variant="animation"] .tilt-card:hover .tilt-content-inner {
        transform: translateY(var(--laam-content-hover-translate, -8px)) !important;
        opacity: var(--laam-content-hover-opacity, 1) !important;
    }
    [data-section-variant="animation"] .tilt-card:hover .tilt-play-btn {
        opacity: 1 !important;
        transform: scale(1) !important;
    }
    [data-section-variant="animation"] .tilt-card:hover .tilt-software {
        opacity: 1 !important;
        transform: translateY(0) !important;
    }

    [data-section-variant="internal"] .tilt-card:hover .tilt-content-inner {
        transform: translateY(var(--laam-content-hover-translate, 0px)) !important;
        opacity: var(--laam-content-hover-opacity, 1) !important;
    }
    [data-section-variant="internal"] .tilt-card:hover .tilt-desc {
        opacity: 1 !important;
    }
}

@media (max-width: 767px) {
    .tilt-content-inner {
        transform: translateY(var(--laam-content-hover-translate, 0px)) !important;
        opacity: var(--laam-content-hover-opacity, 1) !important;
    }
    [data-section-variant="commercial"] .tilt-play-btn,
    [data-section-variant="animation"] .tilt-play-btn,
    [data-section-variant="internal"] .tilt-desc {
        opacity: 1 !important;
        transform: scale(1) !important;
        display: block !important;
    }
    [data-section-variant="photography"] .tilt-play-btn {
        opacity: 1 !important;
        transform: scale(1) !important;
        display: none !important;
    }
    [data-section-variant="animation"] .tilt-software {
        display: none !important;
    }
}


.laam-card-label {
    font-size: clamp(0.6rem, 0.55rem + 0.25vw, 0.85rem);
    line-height: 1.2;
}



.tilt-card-inner,
.blog-card,
.laam-featured-card,
.laam-internal-card,
.laam-service-card,
.laam-about-profile-card {
    container-type: inline-size;
}

.laam-card-box {
    width: 100%;
    max-width: min(100%, 92%);
}

.laam-card-title,
.laam-blog-title,
.laam-internal-title,
.laam-cta-title,
.laam-about-title {
    overflow-wrap: anywhere;
    word-break: break-word;
    text-wrap: balance;
    hyphens: auto;
}

.laam-card-title {
    font-size: clamp(1.22rem, 8.2vw, 3.05rem);
    line-height: 0.94;
    max-width: 11ch;
}

.laam-card-title--wide {
    font-size: clamp(1.35rem, 7vw, 3.6rem);
    max-width: 14ch;
}

.laam-card-title--web {
    font-size: clamp(1.2rem, 6.8vw, 2.6rem);
    line-height: 1.02;
    max-width: 12ch;
}

.laam-card-title--photo {
    font-size: clamp(1.15rem, 6.6vw, 2.35rem);
    line-height: 1.02;
    max-width: 9.5ch;
}

.laam-card-title--game {
    font-size: clamp(1.35rem, 8vw, 3.1rem);
    line-height: 1.14;
    letter-spacing: 0.05em;
    word-spacing: 0.28em;
    max-width: 13ch;
}

.laam-blog-title {
    font-size: clamp(1.2rem, 6.4vw, 1.9rem);
    line-height: 1.08;
    max-width: 20ch;
}

.laam-blog-title--featured {
    font-size: clamp(1.8rem, 8vw, 3.35rem);
    line-height: 1.02;
    max-width: 12ch;
}

.laam-internal-title {
    font-size: clamp(1.55rem, 8vw, 2.7rem);
    line-height: 0.96;
    max-width: 11ch;
}

.laam-cta-title {
    font-size: clamp(1.65rem, 7vw, 3.4rem);
    line-height: 1.02;
    max-width: 18ch;
}

.laam-about-title {
    font-size: clamp(1.15rem, 5.6vw, 1.7rem);
    line-height: 1.1;
    max-width: 18ch;
}

@supports (font-size: 1cqw) {
    .laam-card-title {
        font-size: clamp(1.12rem, 9.6cqw, 3.05rem);
    }
    .laam-card-title--wide {
        font-size: clamp(1.28rem, 7.3cqw, 3.6rem);
    }
    .laam-card-title--web {
        font-size: clamp(1.15rem, 7cqw, 2.6rem);
    }
    .laam-card-title--photo {
        font-size: clamp(1.05rem, 6.8cqw, 2.3rem);
    }
    .laam-card-title--game {
        font-size: clamp(1.2rem, 8.5cqw, 3rem);
        line-height: 1.08;
    }
    .laam-blog-title {
        font-size: clamp(1.1rem, 7cqw, 1.95rem);
    }
    .laam-blog-title--featured {
        font-size: clamp(1.55rem, 8.5cqw, 3.35rem);
    }
    .laam-internal-title {
        font-size: clamp(1.35rem, 8cqw, 2.75rem);
    }
    .laam-cta-title {
        font-size: clamp(1.5rem, 7.2cqw, 3.4rem);
    }
    .laam-about-title {
        font-size: clamp(1.05rem, 5.8cqw, 1.75rem);
    }
}

[data-section-variant="photography"] .tilt-card-inner {
    background: #111;
    box-shadow: 0 16px 40px rgba(0,0,0,0.28);
}

[data-section-variant="photography"] .tilt-play-btn {
    display: none;
}

@media (min-width: 768px) {
    [data-section-variant="photography"] .tilt-play-btn {
        display: block;
    }
}

[data-section-variant="games"] .tilt-content-inner {
    width: 100%;
    max-width: 100%;
}

[data-section-variant="games"] .tilt-card .tilt-content-inner {
    text-align: center;
}

[data-section-variant="games"] .tilt-card:hover .tilt-button {
    box-shadow: 0 0 18px rgba(255,0,85,0.45) !important;
}

.prose a { text-decoration: underline; }
.nav-links { display: flex; gap: 0.75rem; }
.nav-links .page-numbers {
    padding: 0.65rem 1rem;
    border-radius: 999px;
    border: 1px solid rgba(255,255,255,0.15);
    color: #d4d4d4;
}
.nav-links .current,
.nav-links .page-numbers:hover {
    color: #000;
    background: #fff;
}


.laam-masonry {
    column-gap: 1.5rem;
}
@media (min-width: 768px) {
    .laam-masonry {
        column-gap: 2rem;
    }
}
.laam-masonry > .portfolio-card {
    display: inline-block;
    width: 100%;
    margin: 0 0 1.5rem;
    vertical-align: top;
}
@media (min-width: 768px) {
    .laam-masonry > .portfolio-card {
        margin-bottom: 2rem;
    }
}
[data-section-variant="photography"] .tilt-card-inner {
    margin-bottom: 0;
}
[data-section-variant="photography"] .tilt-content-inner {
    max-width: calc(100% - 3.5rem);
}

@media (hover: none), (pointer: coarse) {
    .tilt-content-inner {
        transform: translateY(var(--laam-content-hover-translate, 0px)) !important;
        opacity: var(--laam-content-hover-opacity, 1) !important;
    }
    [data-section-variant="commercial"] .tilt-play-btn,
    [data-section-variant="animation"] .tilt-play-btn,
    [data-section-variant="games"] .tilt-button,
    [data-section-variant="internal"] .tilt-desc,
    [data-section-variant="webdev"] .tilt-button,
    .laam-nav-home .tilt-play-btn {
        opacity: 1 !important;
        transform: none !important;
    }
    [data-section-variant="photography"] .tilt-play-btn {
        opacity: 1 !important;
        transform: scale(1) !important;
        display: none !important;
    }
    [data-section-variant="internal"] .tilt-desc {
        display: block !important;
    }
    [data-section-variant="internal"] .tilt-content-inner p.block.md\:hidden {
        display: none !important;
    }
    [data-section-variant="animation"] .tilt-software {
        display: none !important;
        opacity: 1 !important;
        transform: none !important;
    }
}

.laam-card-action-layer {
    display: block;
    position: absolute;
    inset: 0;
    z-index: 60;
    background: transparent;
    border: 0;
    cursor: pointer;
    pointer-events: auto;
}

.laam-card-action-layer--none {
    pointer-events: none;
    cursor: default;
}

.laam-card-action {
    padding: 0;
    appearance: none;
    -webkit-appearance: none;
    font: inherit;
}


.laam-modal--image,
.laam-modal__dialog--image_modal,
.laam-modal__body--image_modal,
.laam-modal__close--image_modal,
.laam-modal-hero--image_modal,
.laam-modal-caption-wrap--image_modal,
.laam-modal-title--image_modal {
    --laam-modal-max-width-desktop: 1800px;
    --laam-modal-max-width-mobile: 92vw;
    --laam-modal-body-padding-desktop: 28px;
    --laam-modal-body-padding-mobile: 16px;
    --laam-modal-border-radius: 28px;
    --laam-modal-media-radius: 22px;
    --laam-modal-close-size: 46px;
    --laam-modal-close-overlap-desktop: 16px;
    --laam-modal-close-overlap-mobile: 10px;
    --laam-modal-caption-top-padding: 22px;
}

.laam-modal--gallery,
.laam-modal__dialog--gallery_modal,
.laam-modal__body--gallery_modal,
.laam-modal__close--gallery_modal,
.laam-modal-hero--gallery_modal,
.laam-modal-caption-wrap--gallery_modal,
.laam-modal-title--gallery_modal {
    --laam-modal-max-width-desktop: 1800px;
    --laam-modal-max-width-mobile: 92vw;
    --laam-modal-body-padding-desktop: 28px;
    --laam-modal-body-padding-mobile: 16px;
    --laam-modal-border-radius: 28px;
    --laam-modal-media-radius: 22px;
    --laam-modal-close-size: 46px;
    --laam-modal-close-overlap-desktop: 16px;
    --laam-modal-close-overlap-mobile: 10px;
    --laam-modal-caption-top-padding: 22px;
}

.laam-modal--video,
.laam-modal__dialog--video_modal,
.laam-modal__body--video_modal,
.laam-modal__close--video_modal,
.laam-modal-hero--video_modal,
.laam-modal-caption-wrap--video_modal,
.laam-modal-title--video_modal,
.laam-embed-wrap--video_modal {
    --laam-modal-max-width-desktop: 1120px;
    --laam-modal-max-width-mobile: 92vw;
    --laam-modal-body-padding-desktop: 28px;
    --laam-modal-body-padding-mobile: 16px;
    --laam-modal-border-radius: 28px;
    --laam-modal-media-radius: 22px;
    --laam-modal-close-size: 46px;
    --laam-modal-close-overlap-desktop: 16px;
    --laam-modal-close-overlap-mobile: 10px;
    --laam-modal-caption-top-padding: 22px;
}

.laam-modal--embed,
.laam-modal__dialog--embed_modal,
.laam-modal__body--embed_modal,
.laam-modal__close--embed_modal,
.laam-modal-hero--embed_modal,
.laam-modal-caption-wrap--embed_modal,
.laam-modal-title--embed_modal,
.laam-embed-wrap--embed_modal {
    --laam-modal-max-width-desktop: 1120px;
    --laam-modal-max-width-mobile: 92vw;
    --laam-modal-body-padding-desktop: 28px;
    --laam-modal-body-padding-mobile: 16px;
    --laam-modal-border-radius: 28px;
    --laam-modal-media-radius: 22px;
    --laam-modal-close-size: 46px;
    --laam-modal-close-overlap-desktop: 16px;
    --laam-modal-close-overlap-mobile: 10px;
    --laam-modal-caption-top-padding: 22px;
}

.laam-modal {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 2rem;
    overflow-y: auto;
}

.laam-modal[hidden] { display: none !important; }

.laam-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(3, 4, 8, 0.82);
    backdrop-filter: blur(10px);
}

.laam-modal__dialog {
    position: relative;
    z-index: 2;
    width: min(1120px, calc(100vw - 3rem));
    max-height: calc(100vh - 3rem);
    margin: auto;
    overflow-x: hidden;
    overflow-y: auto;
    scrollbar-gutter: stable both-edges;
    background: linear-gradient(180deg, rgba(11,11,14,0.98), rgba(5,5,7,0.98));
    border: 1px solid rgba(255,255,255,0.12);
    border-radius: var(--laam-modal-border-radius, 28px);
    box-shadow: 0 30px 90px rgba(0,0,0,0.55);
}

.laam-modal__close {
    position: absolute;
    top: 18px;
    right: 18px;
    transform: none;
    z-index: 12;
    width: var(--laam-modal-close-size, 46px);
    height: var(--laam-modal-close-size, 46px);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    border: 1px solid rgba(255,255,255,0.14);
    background: rgba(17,24,39,0.82);
    backdrop-filter: blur(12px);
    color: #fff;
    font-size: 28px;
    line-height: 1;
    box-shadow: 0 12px 28px rgba(0,0,0,0.30);
}
.laam-modal__close:hover { background: rgba(31,41,55,0.92); }

.laam-modal__dialog,
.laam-modal__dialog * { box-sizing: border-box; }

.laam-modal__body { padding: var(--laam-modal-body-padding-desktop, 28px) var(--laam-modal-body-padding-desktop, 28px) calc(var(--laam-modal-body-padding-desktop, 28px) + 2px); }
.laam-modal__body > .laam-modal-hero:first-child { margin-top: 0; }
.laam-modal__body > :first-child { margin-top: 0; }
.laam-modal-hero {
    width: 100%;
    min-height: 320px;
    background: #0d0d11;
    border-radius: var(--laam-modal-media-radius, 22px);
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
}
.laam-modal-media {
    width: 100%;
    max-height: 76vh;
    object-fit: cover;
    display: block;
}
.laam-modal__dialog[data-modal-type="image_modal"],
.laam-modal__dialog[data-modal-type="gallery_modal"] {
    width: auto;
    max-width: min(var(--laam-modal-max-width-desktop, calc(100vw - 2rem)), calc(100vw - 2rem));
    max-height: none;
    overflow: visible;
    overflow-x: visible;
    overflow-y: visible;
    scrollbar-gutter: auto;
}
.laam-modal__dialog[data-modal-type="image_modal"] .laam-modal__body,
.laam-modal__dialog[data-modal-type="gallery_modal"] .laam-modal__body {
    display: inline-flex;
    flex-direction: column;
    align-items: flex-start;
    width: auto;
    max-width: calc(100vw - 2rem);
    box-sizing: border-box;
    padding-top: 28px;
    overflow: visible;
}
.laam-modal__dialog[data-modal-type="image_modal"] .laam-modal-hero,
.laam-modal__dialog[data-modal-type="gallery_modal"] .laam-modal-hero {
    width: auto;
    min-height: 0;
    max-width: none;
    background: transparent;
    align-self: flex-start;
}
.laam-modal__dialog[data-modal-type="image_modal"] .laam-modal-media,
.laam-modal__dialog[data-modal-type="gallery_modal"] .laam-modal-media {
    width: auto;
    max-width: min(calc(100vw - 5rem), var(--laam-modal-max-width-desktop, 1800px));
    height: auto;
    max-height: calc(100vh - 220px);
    object-fit: contain;
}
.laam-modal__dialog[data-modal-type="image_modal"] .laam-modal-caption-wrap,
.laam-modal__dialog[data-modal-type="gallery_modal"] .laam-modal-caption-wrap {
    width: min(var(--laam-media-width, 100%), min(calc(100vw - 5rem), 1800px));
    max-width: min(calc(100vw - 5rem), 1800px);
}
.laam-modal__dialog[data-modal-type="image_modal"] .laam-modal__close,
.laam-modal__dialog[data-modal-type="gallery_modal"] .laam-modal__close {
    top: calc(var(--laam-modal-close-overlap-desktop, 16px) * -1);
    right: calc(var(--laam-modal-close-overlap-desktop, 16px) * -1);
    transform: none;
}
.laam-modal-hero .laam-modal-media[controls],
.laam-modal-hero video.laam-modal-media {
    object-fit: contain;
    background: #000;
}

.laam-modal__dialog[data-modal-type="video_modal"],
.laam-modal__dialog[data-modal-type="embed_modal"] {
    width: min(980px, calc(100vw - 4rem));
    max-width: calc(100vw - 2rem);
    max-height: none;
    overflow: visible;
    overflow-x: visible;
    overflow-y: visible;
    scrollbar-gutter: auto;
}
.laam-modal__dialog[data-modal-type="video_modal"] .laam-modal__body,
.laam-modal__dialog[data-modal-type="embed_modal"] .laam-modal__body {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    padding-top: 28px;
    overflow-x: hidden;
    overflow-y: visible;
}
.laam-modal__dialog[data-modal-type="video_modal"] .laam-modal-hero,
.laam-modal__dialog[data-modal-type="embed_modal"] .laam-modal-hero {
    width: 100%;
    min-height: 0;
    max-width: 100%;
    background: transparent;
    align-self: stretch;
}
.laam-modal__dialog[data-modal-type="video_modal"] .laam-modal-caption-wrap,
.laam-modal__dialog[data-modal-type="embed_modal"] .laam-modal-caption-wrap {
    width: 100%;
    max-width: 100%;
}
.laam-modal__dialog[data-modal-type="video_modal"] .laam-modal__close,
.laam-modal__dialog[data-modal-type="embed_modal"] .laam-modal__close {
    top: -18px;
    right: -18px;
    transform: none;
}
.laam-modal-copy {
    margin-top: 1.25rem;
    color: #d1d5db;
}
.laam-modal-caption-wrap { padding: var(--laam-modal-caption-top-padding, 22px) 0 0.2rem; }
.laam-modal-title {
    font-size: clamp(1.6rem, 4vw, 3rem);
    font-weight: 800;
    line-height: 1.02;
    margin: 0;
    color: #fff;
}
.laam-modal-caption { margin: .65rem 0 0; color: #9ca3af; }
.laam-embed-wrap {
    position: relative;
    display: block;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    margin: 0;
    aspect-ratio: 16 / 9;
    background: #000;
    border-radius: 22px;
    overflow: hidden;
}
.laam-embed-wrap iframe,
.laam-embed-wrap video,
.laam-embed-wrap > div,
.laam-embed-wrap .wp-video {
    position: absolute !important;
    inset: 0;
    width: 100% !important;
    height: 100% !important;
    border: 0;
}

.laam-modal__body--image_modal,
.laam-modal__body--gallery_modal {
    display: inline-flex;
    flex-direction: column;
    align-items: flex-start;
    width: auto;
    max-width: min(var(--laam-modal-max-width-desktop, calc(100vw - 2rem)), calc(100vw - 2rem));
}

.laam-modal-hero--image_modal,
.laam-modal-hero--gallery_modal {
    width: auto;
    min-height: 0;
    max-width: none;
    background: transparent;
    align-self: flex-start;
}

.laam-modal-media--image_modal,
.laam-modal-media--gallery_modal {
    width: auto;
    max-width: min(calc(100vw - 5rem), var(--laam-modal-max-width-desktop, 1800px));
    height: auto;
    max-height: calc(100vh - 220px);
    object-fit: contain;
}

.laam-modal-caption-wrap--image_modal,
.laam-modal-caption-wrap--gallery_modal {
    width: min(var(--laam-media-width, 100%), min(calc(100vw - 5rem), var(--laam-modal-max-width-desktop, 1800px)));
    max-width: min(calc(100vw - 5rem), var(--laam-modal-max-width-desktop, 1800px));
}

.laam-modal__body--video_modal,
.laam-modal__body--embed_modal {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    width: 100%;
    max-width: 100%;
    overflow: hidden;
}

.laam-modal-hero--video_modal,
.laam-modal-hero--embed_modal,
.laam-embed-wrap--video_modal,
.laam-embed-wrap--embed_modal,
.laam-modal-caption-wrap--video_modal,
.laam-modal-caption-wrap--embed_modal {
    width: 100%;
    max-width: 100%;
}

.laam-modal__dialog--video_modal,
.laam-modal__dialog--embed_modal {
    overflow: visible;
    overflow-x: visible;
    overflow-y: visible;
}

.laam-modal--video,
.laam-modal--embed {
    overflow-x: hidden;
}

.laam-gallery-thumbs {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
    margin-top: 1rem;
}
.laam-gallery-thumb {
    width: 92px;
    height: 72px;
    border-radius: 14px;
    overflow: hidden;
    border: 1px solid rgba(255,255,255,0.14);
    padding: 0;
    background: #111;
    opacity: .75;
}
.laam-gallery-thumb.is-active,
.laam-gallery-thumb:hover { opacity: 1; border-color: rgba(255,255,255,0.42); }
.laam-gallery-thumb img { width: 100%; height: 100%; object-fit: cover; display:block; }

.laam-card-title--game {
    letter-spacing: 0.07em;
    word-spacing: 0.34em;
    line-height: 1.18;
    font-family: "Arial Black", Impact, sans-serif !important;
    max-width: 14ch;
    text-wrap: pretty;
}

.post-type-portfolio_item #post-body.columns-2 #postbox-container-1 { width: 320px; }
.post-type-portfolio_item .postbox .hndle,
.post-type-portfolio_item .postbox-header { background: #fff; }
.post-type-portfolio_item .laam-admin-subsection { margin-top: 16px; }
.post-type-portfolio_item .laam-admin-termish-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px 18px;
}
.post-type-portfolio_item .laam-admin-termish-grid .wide { grid-column: 1 / -1; }
.post-type-portfolio_item .laam-field { display: flex; flex-direction: column; gap: 8px; }
.post-type-portfolio_item .laam-field-label { font-weight: 600; color: #111827; }
.post-type-portfolio_item .laam-field input:not([type="checkbox"]):not([type="radio"]),
.post-type-portfolio_item .laam-field select,
.post-type-portfolio_item .laam-field textarea {
    width: 100%;
    min-height: 42px;
    border-radius: 10px;
    border: 1px solid #d0d5dd;
    padding: 10px 12px;
}
.post-type-portfolio_item .laam-field textarea { min-height: 110px; }
.post-type-portfolio_item .laam-checkbox-field { flex-direction: row; align-items: center; gap: 10px; }
.post-type-portfolio_item .laam-checkbox-field input { width: 18px; min-height: 18px; }
.post-type-portfolio_item .laam-check-tile { position: relative; display: flex !important; align-items: flex-start !important; gap: 12px; width: 100%; box-sizing: border-box; }
.post-type-portfolio_item .laam-check-tile__input { position: absolute !important; width: 1px !important; height: 1px !important; min-width: 1px !important; min-height: 1px !important; max-width: 1px !important; margin: 0 !important; padding: 0 !important; border: 0 !important; opacity: 0 !important; overflow: hidden !important; clip: rect(0 0 0 0) !important; clip-path: inset(50%) !important; white-space: nowrap !important; pointer-events: none !important; }
.post-type-portfolio_item .laam-check-tile__box { position: relative; display: inline-flex; width: 18px; height: 18px; min-width: 18px; flex: 0 0 18px; border: 1px solid #98a2b3; border-radius: 5px; background: #fff; box-sizing: border-box; margin-top: 2px; }
.post-type-portfolio_item .laam-check-tile__input:checked + .laam-check-tile__box { background: #2271b1; border-color: #2271b1; }
.post-type-portfolio_item .laam-check-tile__input:checked + .laam-check-tile__box::after { content: ""; position: absolute; left: 5px; top: 1px; width: 5px; height: 10px; border: solid #fff; border-width: 0 2px 2px 0; transform: rotate(45deg); }
.post-type-portfolio_item .laam-check-tile__body { display: flex; flex: 1 1 auto; flex-direction: column; gap: 4px; min-width: 0; max-width: 100%; }
.post-type-portfolio_item .laam-check-tile__title, .post-type-portfolio_item .laam-check-tile__meta { display: block; overflow-wrap: anywhere; }
.post-type-portfolio_item .laam-admin-subsection {
    background: #fcfcfd;
    border: 1px solid #eaecf0;
    border-radius: 16px;
    padding: 18px;
}
.post-type-portfolio_item .laam-admin-subsection__head { margin-bottom: 14px; }
.post-type-portfolio_item #poststuff #titlewrap,
.post-type-portfolio_item #poststuff #post-body-content {
    max-width: 1220px;
}
@media (max-width: 782px) {
  .post-type-portfolio_item .laam-admin-termish-grid { grid-template-columns: 1fr; }
  
.laam-modal--image,
.laam-modal__dialog--image_modal,
.laam-modal__body--image_modal,
.laam-modal__close--image_modal,
.laam-modal-hero--image_modal,
.laam-modal-caption-wrap--image_modal,
.laam-modal-title--image_modal {
    --laam-modal-max-width-desktop: 1800px;
    --laam-modal-max-width-mobile: 92vw;
    --laam-modal-body-padding-desktop: 28px;
    --laam-modal-body-padding-mobile: 16px;
    --laam-modal-border-radius: 28px;
    --laam-modal-media-radius: 22px;
    --laam-modal-close-size: 46px;
    --laam-modal-close-overlap-desktop: 16px;
    --laam-modal-close-overlap-mobile: 10px;
    --laam-modal-caption-top-padding: 22px;
}

.laam-modal--gallery,
.laam-modal__dialog--gallery_modal,
.laam-modal__body--gallery_modal,
.laam-modal__close--gallery_modal,
.laam-modal-hero--gallery_modal,
.laam-modal-caption-wrap--gallery_modal,
.laam-modal-title--gallery_modal {
    --laam-modal-max-width-desktop: 1800px;
    --laam-modal-max-width-mobile: 92vw;
    --laam-modal-body-padding-desktop: 28px;
    --laam-modal-body-padding-mobile: 16px;
    --laam-modal-border-radius: 28px;
    --laam-modal-media-radius: 22px;
    --laam-modal-close-size: 46px;
    --laam-modal-close-overlap-desktop: 16px;
    --laam-modal-close-overlap-mobile: 10px;
    --laam-modal-caption-top-padding: 22px;
}

.laam-modal--video,
.laam-modal__dialog--video_modal,
.laam-modal__body--video_modal,
.laam-modal__close--video_modal,
.laam-modal-hero--video_modal,
.laam-modal-caption-wrap--video_modal,
.laam-modal-title--video_modal,
.laam-embed-wrap--video_modal {
    --laam-modal-max-width-desktop: 1120px;
    --laam-modal-max-width-mobile: 92vw;
    --laam-modal-body-padding-desktop: 28px;
    --laam-modal-body-padding-mobile: 16px;
    --laam-modal-border-radius: 28px;
    --laam-modal-media-radius: 22px;
    --laam-modal-close-size: 46px;
    --laam-modal-close-overlap-desktop: 16px;
    --laam-modal-close-overlap-mobile: 10px;
    --laam-modal-caption-top-padding: 22px;
}

.laam-modal--embed,
.laam-modal__dialog--embed_modal,
.laam-modal__body--embed_modal,
.laam-modal__close--embed_modal,
.laam-modal-hero--embed_modal,
.laam-modal-caption-wrap--embed_modal,
.laam-modal-title--embed_modal,
.laam-embed-wrap--embed_modal {
    --laam-modal-max-width-desktop: 1120px;
    --laam-modal-max-width-mobile: 92vw;
    --laam-modal-body-padding-desktop: 28px;
    --laam-modal-body-padding-mobile: 16px;
    --laam-modal-border-radius: 28px;
    --laam-modal-media-radius: 22px;
    --laam-modal-close-size: 46px;
    --laam-modal-close-overlap-desktop: 16px;
    --laam-modal-close-overlap-mobile: 10px;
    --laam-modal-caption-top-padding: 22px;
}

.laam-modal {
    padding: 0.75rem;
    align-items: center;
  }
  .laam-modal__dialog {
    width: min(var(--laam-modal-max-width-mobile, calc(100vw - 1.5rem)), calc(100vw - 1.5rem));
    max-width: calc(100vw - 1.5rem);
    max-height: calc(100vh - 1.5rem);
    overflow-x: hidden;
    overflow-y: auto;
  }
  .laam-modal__body { padding: var(--laam-modal-body-padding-mobile, 16px) var(--laam-modal-body-padding-mobile, 16px) calc(var(--laam-modal-body-padding-mobile, 16px) + 4px); }
  .laam-modal__close {
    top: 10px;
    right: 10px;
    width: 42px;
    height: 42px;
    font-size: 24px;
  }
  .laam-modal__dialog[data-modal-type="image_modal"],
  .laam-modal__dialog[data-modal-type="gallery_modal"],
  .laam-modal__dialog[data-modal-type="video_modal"],
  .laam-modal__dialog[data-modal-type="embed_modal"] {
    width: min(var(--laam-modal-max-width-mobile, calc(100vw - 1.5rem)), calc(100vw - 1.5rem));
    max-width: calc(100vw - 1.5rem);
  }
  .laam-modal__dialog[data-modal-type="image_modal"] .laam-modal__body,
  .laam-modal__dialog[data-modal-type="gallery_modal"] .laam-modal__body,
  .laam-modal__dialog[data-modal-type="video_modal"] .laam-modal__body,
  .laam-modal__dialog[data-modal-type="embed_modal"] .laam-modal__body {
    display: flex;
    width: 100%;
    max-width: 100%;
    padding-top: 16px;
  }
  .laam-modal__dialog[data-modal-type="image_modal"] .laam-modal-hero,
  .laam-modal__dialog[data-modal-type="gallery_modal"] .laam-modal-hero,
  .laam-modal__dialog[data-modal-type="image_modal"] .laam-modal-caption-wrap,
  .laam-modal__dialog[data-modal-type="gallery_modal"] .laam-modal-caption-wrap,
  .laam-modal__dialog[data-modal-type="video_modal"] .laam-modal-hero,
  .laam-modal__dialog[data-modal-type="embed_modal"] .laam-modal-hero,
  .laam-modal__dialog[data-modal-type="video_modal"] .laam-modal-caption-wrap,
  .laam-modal__dialog[data-modal-type="embed_modal"] .laam-modal-caption-wrap,
  .laam-modal__dialog[data-modal-type="video_modal"] .laam-embed-wrap,
  .laam-modal__dialog[data-modal-type="embed_modal"] .laam-embed-wrap {
    width: 100%;
    max-width: 100%;
  }
  .laam-modal__dialog[data-modal-type="image_modal"] .laam-modal-media,
  .laam-modal__dialog[data-modal-type="gallery_modal"] .laam-modal-media {
    width: 100%;
    max-width: 100%;
    height: auto;
    max-height: calc(100vh - 210px);
    object-fit: contain;
  }
  .laam-modal__dialog[data-modal-type="image_modal"] .laam-modal__close,
  .laam-modal__dialog[data-modal-type="gallery_modal"] .laam-modal__close,
  .laam-modal__dialog[data-modal-type="video_modal"] .laam-modal__close,
  .laam-modal__dialog[data-modal-type="embed_modal"] .laam-modal__close {
    top: calc(var(--laam-modal-close-overlap-mobile, 10px) * -1);
    right: calc(var(--laam-modal-close-overlap-mobile, 10px) * -1);
  }
}

html.laam-modal-open, body.laam-modal-open { overflow: hidden; }


.laam-embed-help {
    display: flex;
    justify-content: flex-end;
    padding-top: 10px;
}
.laam-embed-help a {
    color: #9ca3af;
    font-size: 0.92rem;
    text-decoration: underline;
    text-underline-offset: 2px;
}
.laam-embed-help a:hover {
    color: #ffffff;
}
@media (max-width: 782px) {
    .laam-embed-help {
        padding-top: 8px;
    }
    .laam-embed-help a {
        font-size: 0.88rem;
    }
}


.laam-embed-shell {
    width: 100%;
    max-width: 100%;
}
.laam-embed-help {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 8px;
    padding-top: 10px;
    position: relative;
    z-index: 1;
}
.laam-embed-help a {
    color: #9ca3af;
    font-size: 0.92rem;
    text-decoration: underline;
    text-underline-offset: 2px;
    pointer-events: auto;
}
.laam-embed-help a:hover {
    color: #ffffff;
}
@media (max-width: 782px) {
    .laam-embed-help {
        padding-top: 8px;
    }
    .laam-embed-help a {
        font-size: 0.88rem;
    }
}



/* Homepage cinematic 3D hero */
.laam-home-hero-3d {
    background: radial-gradient(circle at var(--laam-home-hero-bg-x, 80%) var(--laam-home-hero-bg-y, 86%), var(--laam-home-hero-bg-inner, #43157d) 0%, var(--laam-home-hero-bg-mid, #120424) var(--laam-home-hero-bg-mid-stop, 58%), var(--laam-home-hero-bg-outer, #020208) 100%);
    isolation: isolate;
}

.laam-home-hero-3d__bg,
.laam-home-hero-3d__stars,
.laam-home-hero-3d__glow,
.laam-home-hero-3d__grid,
.laam-home-hero-3d__canvas,
.laam-home-hero-3d__shade,
.laam-home-hero-3d__vignette {
    position: absolute;
    inset: 0;
    pointer-events: none;
}

.laam-home-hero-3d__bg {
    z-index: 0;
    background:
        radial-gradient(circle at 78% 86%, rgba(170, 102, 255, 0.16) 0%, rgba(170, 102, 255, 0.08) 18%, rgba(170, 102, 255, 0) 44%),
        linear-gradient(180deg, rgba(2, 2, 8, 0.25) 0%, rgba(2, 2, 8, 0) 26%, rgba(2, 2, 8, 0.18) 100%);
}

.laam-home-hero-3d__stars {
    z-index: 1;
    opacity: 0.72;
    background-image:
        radial-gradient(circle at 2px 2px, var(--laam-home-hero-star, rgba(238, 242, 255, 0.95)) 0 1px, transparent 1.4px),
        radial-gradient(circle at 1px 1px, rgba(255, 255, 255, 0.55) 0 0.8px, transparent 1.2px),
        radial-gradient(circle at 2px 2px, rgba(163, 176, 255, 0.38) 0 1px, transparent 1.4px);
    background-size: 128px 128px, 184px 184px, 256px 256px;
    background-position: 0 0, 24px 48px, 60px 16px;
}

.laam-home-hero-3d__glow {
    inset: auto -6% -14% auto;
    width: min(76vw, 1100px);
    height: min(64vh, 760px);
    z-index: 2;
    background:
        radial-gradient(circle at 58% 54%, rgba(198, 135, 255, 0.16) 0%, rgba(198, 135, 255, 0.08) 20%, rgba(198, 135, 255, 0) 54%),
        radial-gradient(circle at 72% 78%, var(--laam-home-hero-glow, rgba(67, 21, 125, 0.78)) 0%, rgba(86, 27, 170, 0.42) 28%, rgba(86, 27, 170, 0.16) 48%, rgba(86, 27, 170, 0) 72%);
    filter: blur(10px);
    transform: translate3d(0, 0, 0);
}

.laam-home-hero-3d__grid {
    inset: auto -2% -18% auto;
    width: min(80vw, 1080px);
    height: min(54vh, 520px);
    z-index: 3;
    opacity: 0.95;
    transform-origin: bottom right;
    transform: perspective(1100px) rotateX(74deg) rotateZ(-12deg);
    background-image:
        linear-gradient(var(--laam-home-hero-grid, rgba(142, 70, 255, 0.18)) 1px, transparent 1px),
        linear-gradient(90deg, var(--laam-home-hero-grid, rgba(142, 70, 255, 0.18)) 1px, transparent 1px);
    background-size: 52px 52px;
    mask-image: linear-gradient(to top, rgba(0, 0, 0, 1) 38%, rgba(0, 0, 0, 0) 100%), linear-gradient(to left, rgba(0, 0, 0, 1) 58%, rgba(0, 0, 0, 0) 100%);
    mask-composite: intersect;
    box-shadow: 0 0 60px var(--laam-home-hero-grid-glow, rgba(142, 70, 255, 0.38));
}

.laam-home-hero-3d__canvas {
    z-index: 4;
    overflow: hidden;
}

.laam-home-hero-3d__canvas canvas {
    position: relative;
    display: block;
    width: 100% !important;
    height: 100% !important;
    filter: saturate(1.05) contrast(1.04);
}

.laam-home-hero-3d__shade {
    z-index: 5;
    background:
        linear-gradient(to right, rgba(2, 2, 8, 0.86) 0%, rgba(2, 2, 8, 0.72) 20%, rgba(2, 2, 8, 0.4) 44%, rgba(2, 2, 8, 0.12) 66%, rgba(2, 2, 8, 0.02) 100%),
        linear-gradient(to bottom, rgba(2, 2, 8, 0.12) 0%, rgba(2, 2, 8, 0) 32%, rgba(2, 2, 8, 0.08) 100%);
}

.laam-home-hero-3d__vignette {
    z-index: 6;
    background: radial-gradient(circle at center, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) var(--laam-home-hero-vignette-size, 70%), var(--laam-home-hero-vignette, rgba(0, 0, 0, 0.28)) 100%);
}

.laam-home-hero-3d__content {
    position: relative;
    z-index: 10;
    pointer-events: none;
}

.laam-home-hero-3d__content a,
.laam-home-hero-3d__content button {
    pointer-events: auto;
}

.laam-home-hero-3d__dot {
    background: var(--laam-home-hero-accent-2, #8e46ff);
    box-shadow: 0 0 14px var(--laam-home-hero-accent-2, #8e46ff);
}

.laam-home-hero-3d__subtitle {
    border-color: var(--laam-home-hero-accent-2, #8e46ff);
}

@media (max-width: 767px) {
    .laam-home-hero-3d__shade {
        background:
            linear-gradient(to bottom, rgba(2, 2, 8, 0.28) 0%, rgba(2, 2, 8, 0.44) 22%, rgba(2, 2, 8, 0.72) 56%, rgba(2, 2, 8, 0.9) 100%),
            linear-gradient(to right, rgba(2, 2, 8, 0.24) 0%, rgba(2, 2, 8, 0.08) 100%);
    }

    .laam-home-hero-3d__glow {
        width: 120vw;
        height: 54vh;
        right: -26vw;
        bottom: -10vh;
    }

    .laam-home-hero-3d__grid {
        width: 120vw;
        height: 34vh;
        right: -28vw;
        bottom: -10vh;
        transform: perspective(900px) rotateX(76deg) rotateZ(-10deg);
        background-size: 38px 38px;
    }

    .laam-home-hero-3d__content {
        padding-top: 8rem;
        width: 100%;
        max-width: 100%;
    }
}



.laam-gallery-thumb.is-broken,
.laam-gallery-thumb[hidden] {
    display: none !important;
}

.laam-gallery-viewer.is-empty .laam-modal-hero,
.laam-gallery-viewer.is-empty .laam-gallery-thumbs {
    display: none;
}

.laam-gallery-viewer.is-empty::after {
    content: 'No valid gallery images found.';
    display: block;
    padding: 32px;
    color: rgba(255, 255, 255, 0.72);
    text-align: center;
}


.laam-brand-icon {
    display: inline-block;
    width: 1em;
    height: 1em;
    min-width: 1em;
    min-height: 1em;
    background: currentColor;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: center;
    mask-position: center;
    -webkit-mask-size: contain;
    mask-size: contain;
    vertical-align: -0.125em;
}


/* Dynamic sidebar accent colours */
.laam-sidebar-link { color: rgba(148, 163, 184, 0.78); padding: 0.42rem 0.55rem; margin-left: -0.55rem; margin-right: -0.55rem; border-radius: 14px; }
.laam-sidebar-link svg, .laam-sidebar-link .laam-brand-icon { color: currentColor; }
.laam-sidebar-link:hover { color: var(--laam-sidebar-accent, var(--laam-accent, #ffffff)); background: color-mix(in srgb, var(--laam-sidebar-accent, #ffffff) 13%, transparent); }
.laam-sidebar-link.is-active { color: var(--laam-sidebar-selection-text, #ffffff); background: color-mix(in srgb, var(--laam-sidebar-selection-bg, #ffffff) 22%, transparent); }
.laam-sidebar-link.is-active svg, .laam-sidebar-link.is-active .laam-brand-icon { color: var(--laam-sidebar-accent, var(--laam-accent, #ffffff)); filter: drop-shadow(0 0 12px color-mix(in srgb, var(--laam-sidebar-accent, #fff) 45%, transparent)); }
.laam-sidebar-social { color: rgba(148, 163, 184, 0.78); }
.laam-sidebar-social:hover { color: var(--laam-sidebar-accent, var(--laam-accent, #ffffff)); }

/* Additional selectable portfolio card themes */
.portfolio-card-theme--graphics .tilt-card-inner,
.portfolio-card-theme--editorial .tilt-card-inner,
.portfolio-card-theme--minimal .tilt-card-inner,
.portfolio-card-theme--neon .tilt-card-inner { will-change: transform; }
.portfolio-card-theme--graphics .tilt-card-inner::after { content:''; position:absolute; inset:0; pointer-events:none; background:linear-gradient(135deg, rgba(255,255,255,.10), rgba(125,211,252,.055) 32%, transparent 58%, rgba(255,255,255,.035)); mix-blend-mode:screen; opacity:.52; }
.portfolio-card-theme--neon .tilt-card-inner::after { content:''; position:absolute; inset:0; pointer-events:none; background:repeating-linear-gradient(0deg, rgba(255,255,255,.05) 0 1px, transparent 1px 4px); opacity:.25; }
