/* =========================================
   RESET
========================================= */

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}


/* =========================================
   BODY
========================================= */

 {
    margin: 0;
    min-height: 100vh;

    display: flex;
    align-items: flex-start;
    justify-content: center;

    padding-top: 10px;

    background: #ffffff;

    font-family:
        Georgia,
        "Times New Roman",
        serif;
}


/* =========================================
   NOTICE BOARD
========================================= */

.notice-board {

    width: 600px;
    height: 380px;

    flex: 0 0 600px;

    padding: 6px 9px 8px;

    position: relative;

    background: #ffffff;

    border: 2px solid #1828ff;

    box-shadow:
        0 0 0 1px #5964ff inset,
        0 0 12px rgba(0, 0, 0, 0.18);

    overflow: hidden;
}


/* =========================================
   HEADER
========================================= */

.notice-header {

    width: 100%;
    height: 58px;

    position: relative;

    display: flex;
    align-items: center;
    justify-content: center;

    margin-bottom: 10px;

    background: linear-gradient(
        100deg,
        #111dff 0%,
        #075fff 50%,
        #14b9df 100%
    );

    overflow: visible;
}


/* HEADER TEXT */

.notice-header h1 {

    position: relative;
    z-index: 5;

    color: #ffffff;

    font-family:
        "DM Serif Display",
        Georgia,
        "Times New Roman",
        serif;

    font-size: 32px;

    font-weight: 400;

    letter-spacing: -1px;

    text-transform: uppercase;
}


/* =========================================
   LEFT RIBBON
========================================= */

.notice-header::before {

    content: "";

    position: absolute;

    left: 0;
    top: 0;

    width: 40px;
    height: 58px;

    background: #ffffff;

    clip-path: polygon(
        0 0,
        100% 0,
        58% 50%,
        100% 100%,
        0 100%
    );
}


/* =========================================
   RIGHT RIBBON
========================================= */

.notice-header::after {

    content: "";

    position: absolute;

    right: 0;
    top: 0;

    width: 40px;
    height: 58px;

    background: #ffffff;

    clip-path: polygon(
        0 0,
        100% 0,
        100% 100%,
        0 100%,
        42% 50%
    );
}


/* =========================================
   CONTENT BOX
========================================= */

.notice-content {

    position: relative;

    width: 100%;
    height: 298px;

    border: 2px solid #b8ddff;

    background: #ffffff;

    padding: 18px 14px 0;

    box-shadow:
        0 0 8px rgba(0, 100, 255, 0.12);

    overflow: hidden;
}


/* =========================================
   SCROLL AREA
========================================= */

.notice-scroll-area {

    position: absolute;

    left: 0;
    right: 0;

    top: 0;
    bottom: 43px;

    padding: 18px 44px 0;

    overflow-y: auto;
    overflow-x: hidden;

    /*
       Hide scrollbar
    */

    scrollbar-width: none;

    cursor: grab;

    /*
       Important for touch scrolling
    */

    touch-action: pan-y;

    /*
       Smooth manual scrolling
    */

    scroll-behavior: smooth;
}


/* Chrome / Edge / Safari */

.notice-scroll-area::-webkit-scrollbar {
    display: none;
}


/* Active dragging */

.notice-scroll-area.dragging {
    cursor: grabbing;
    scroll-behavior: auto;
}


/* =========================================
   TRACK
========================================= */

.notice-track {

    width: 100%;

    display: block;

    /*
       JS controls the scrolling.

       No CSS transform animation here.
    */
}


/* =========================================
   NOTICE ITEM
========================================= */

.notice-item {

    position: relative;

    margin-bottom: 12px;

    padding-bottom: 15px;

    border-bottom: 1px solid #d2d2d2;
}


/* =========================================
   NOTICE TEXT
========================================= */

.notice-item p {

    margin: 0;

    color: #050505;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size: 20px;

    font-weight: 400;

    line-height: 1.35;
}


/* =========================================
   BULLET
========================================= */

.bullet {

    margin-right: 4px;

    font-weight: bold;
}


/* =========================================
   NEW BADGE
========================================= */

.new-badge {

    display: inline-block;

    position: relative;

    top: -2px;

    margin-left: 7px;

    vertical-align: middle;

    color: #ff0066;

    font-family: Arial, sans-serif;

    font-size: 11px;

    font-weight: 900;

    letter-spacing: -1px;

    text-shadow:
        1px 1px 0 #ffff00,
        -1px -1px 0 #ffffff;

    transform-origin: center;

    animation:
        newPulse 1s infinite,
        newShake 2s infinite;
}


/* =========================================
   NEW PULSE
========================================= */

@keyframes newPulse {

    0% {
        transform: scale(1);
        opacity: 1;
    }

    25% {
        transform: scale(1.10);
        opacity: 0.9;
    }

    50% {
        transform: scale(1.22);
        opacity: 0.65;
    }

    75% {
        transform: scale(1.10);
        opacity: 0.9;
    }

    100% {
        transform: scale(1);
        opacity: 1;
    }
}


/* =========================================
   NEW SHAKE
========================================= */

@keyframes newShake {

    0%,
    45%,
    100% {
        rotate: 0deg;
    }

    48% {
        rotate: -5deg;
    }

    51% {
        rotate: 5deg;
    }

    54% {
        rotate: -4deg;
    }

    57% {
        rotate: 4deg;
    }

    60% {
        rotate: 0deg;
    }
}


/* =========================================
   VIEW ALL
========================================= */

.view-all-wrapper {

    position: absolute;

    z-index: 50;

    left: 28px;
    bottom: 0;

    background: #ffffff;
}


/* =========================================
   VIEW ALL BUTTON
========================================= */

.view-all {

    display: inline-block;

    padding: 7px 12px 9px;

    background: #ffb900;

    color: #000000;

    font-family: Arial, sans-serif;

    font-size: 20px;

    line-height: 1;

    text-decoration: none;

    transition: all 0.2s ease;
}


.view-all:hover {

    background: #f3a900;

    transform: translateY(-1px);
}


/* =========================================
   MOBILE
========================================= */

@media (max-width: 620px) {

    body {

        padding: 5px;

        overflow-x: auto;
    }

    .notice-board {

        width: 600px;

        min-width: 600px;

        height: 380px;

        margin: 0 auto;
    }
}