@charset "utf-8";

html, body{
    font-family: 'arial';
}
* {
    margin: 0px;
    padding: 0px;
    box-sizing: border-box;
}
ul, ol, li {
    list-style: none;
}
a {
    text-decoration: none;
    outline: 0;
}

figure{
    width: 100%;
    height: 100vh;
    overflow: hidden;
    position: relative;
    background: linear-gradient(25deg, violet, pink);
}

/* 커스텀 스크롤바 스타일 */
::-webkit-scrollbar {
    width: 12px;
    height: 12px;
}

::-webkit-scrollbar-track {
    background: rgba(255, 255, 255, 0.1);
    border-radius: 10px;
}

::-webkit-scrollbar-thumb {
    background: linear-gradient(135deg, rgba(102, 126, 234, 0.8), rgba(118, 75, 162, 0.8));
    border-radius: 10px;
    border: 2px solid rgba(255, 255, 255, 0.1);
    transition: all 0.3s ease;
}

::-webkit-scrollbar-thumb:hover {
    background: linear-gradient(135deg, rgba(102, 126, 234, 1), rgba(118, 75, 162, 1));
    border: 2px solid rgba(255, 255, 255, 0.2);
}

::-webkit-scrollbar-thumb:active {
    background: linear-gradient(135deg, rgba(74, 90, 226, 1), rgba(100, 60, 140, 1));
}

/* Firefox 스크롤바 */
* {
    scrollbar-width: thin;
    scrollbar-color: rgba(102, 126, 234, 0.8) rgba(255, 255, 255, 0.1);
}

figure h1{
    position: absolute;
    top: 7vh;
    left: 4vw;
    font-size: 0;
}

figure h1 strong{
    display: block;
    font-size: 36px;
    color: #fff;
    line-height: 1.4;
    letter-spacing: 1px;
}

figure h1 span{
    font-size: 12px;
    color: #fff;
    opacity: 0.8;
    line-height: 1;
    letter-spacing: 1px;
}

figure .menu{
    position: absolute;
    top: 8vh;
    right: 4vw;
    font-size: 24px;
    color: #fff;
}

figure  > p{
    position: absolute;
    bottom: 7vh;
    left: 50%;
    transform: translateX(-50%);
    font-size: 12px;
    line-height: 1;
    color: #fff;
    letter-spacing: 2px;
    opacity: 0.8;
}

figure section{
    width: 700px;
    height: 1120px;
    position: absolute;
    left: 50%;
    top: 140%;
    margin-top: -560px;
    margin-left: -350px;
    /* border: 1px solid aqua; */
    transition: 1s;
}

figure section article{
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
}

figure section article .inner{
    width: 100%;
    height: 100%;
    background: #f0f7ff;
    padding: 5vh 2.5vw 8vh;
    box-sizing: border-box;
    display : flex;
    justify-content: center;
    align-content: space-between;
    flex-wrap: wrap;
    border-radius: 10px;
    box-shadow: 10px 10px 20px rgba(0,0,0,0.1);
    opacity: 0.5;
    transform: scale(0.8);
    transition: opacity 1s, transform 1s;
}

figure section article.on .inner{
    opacity: 0.9;
    transform: scale(1.1);
    margin-top: 200px;
}

figure section article.on{
    z-index: 10;
}

figure section article .inner .pic{
    width: 15vw;
    height: 15vw;
    margin: 0 auto;
    border-radius: 50%;
    background-repeat: no-repeat;
    background-position: 200%;
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
}

figure section article .inner .pic::before,
figure section article .inner .pic::after{
    content: '';
    display: block;
    width: inherit;
    height: inherit;
    border-radius: inherit;
    position: absolute;
    top: 0;
    left: 0;
    background-image: inherit;
    background-position: center;
    background-repeat: inherit;
    background-size: cover;
    transform-origin: center center;
}

figure section article .inner .pic::before{
    transform: translateY(10%);
    filter: blur(20px) brightness(1.6);
}

figure section article .inner .pic .dot{
    width: 3vw;
    height: 3vw;
    border-radius: 50%;
    background: #e4f1ff;
    position: relative;
    z-index: 3;
    box-shadow: inset 5px 5px 10px rgba(0,0,0,0.1);
}

figure section article .inner .txt{
    text-align: center;
    position: relative;
    z-index: 3;
}

figure section article .inner .txt h2{
    font-size: 20px;
    color: #222;
    margin-bottom: 2vh;
}

figure section article .inner .txt p{
    font-size: 12px;
    margin-bottom: 3vh;
    color: #777;
}

figure section article .inner .txt ul{
    display: flex;
    justify-content: space-around;
}

figure section article .inner .txt ul li{
    cursor: pointer;
    opacity: 0.6;
    transition: 0.5s;
}

figure section article .inner .txt ul li.play{
    transform: scale(1.5);
    opacity: 0.9;
}

figure section article .inner .txt ul li:hover{
    transform: scale(1.5);
    opacity: 0.8;
}

figure section article .inner .txt ul li.play:hover{
    transform: scale(2);
    opacity: 1;
}

/* Base64 Encode/Decode Styles */
/* Article-specific styles - 각 article별로 독립적인 스타일 적용 가능 */
figure section article .inner.article-text-encoders,
figure section article .inner.article-js-minify,
figure section article .inner.article-color-tools,
figure section article .inner.article-text-date,
figure section article .inner.article-data-sql,
figure section article .inner.article-lorem,
figure section article .inner.article-diff,
figure section article .inner.article-etc {
    padding: 3vh 2vw;
    overflow-y: auto;
    max-height: 100%;
}

figure section article .inner.article-text-encoders .txt,
figure section article .inner.article-js-minify .txt,
figure section article .inner.article-color-tools .txt,
figure section article .inner.article-text-date .txt,
figure section article .inner.article-data-sql .txt,
figure section article .inner.article-lorem .txt,
figure section article .inner.article-diff .txt,
figure section article .inner.article-etc .txt {
    width: 100%;
    text-align: left;
}

/* Diff Comparison 섹션의 txt를 flex 컨테이너로 설정하여 남은 공간 활용 */
figure section article .inner.article-diff .txt {
    display: flex;
    flex-direction: column;
    height: 100%;
}

figure section article .inner.article-text-encoders h2,
figure section article .inner.article-js-minify h2,
figure section article .inner.article-color-tools h2,
figure section article .inner.article-text-date h2,
figure section article .inner.article-data-sql h2,
figure section article .inner.article-lorem h2,
figure section article .inner.article-diff h2,
figure section article .inner.article-etc h2 {
    font-size: 24px;
    margin-bottom: 1vh;
    color: #222;
}

figure section article .inner.article-text-encoders h3,
figure section article .inner.article-js-minify h3,
figure section article .inner.article-color-tools h3,
figure section article .inner.article-text-date h3,
figure section article .inner.article-data-sql h3,
figure section article .inner.article-lorem h3,
figure section article .inner.article-diff h3,
figure section article .inner.article-etc h3 {
    font-size: 18px;
    margin: 2vh 0 1vh 0;
    color: #333;
    border-bottom: 2px solid #ddd;
    padding-bottom: 0.5vh;
}

figure section article .inner.article-text-encoders p,
figure section article .inner.article-js-minify p,
figure section article .inner.article-color-tools p,
figure section article .inner.article-text-date p,
figure section article .inner.article-data-sql p,
figure section article .inner.article-lorem p,
figure section article .inner.article-diff p,
figure section article .inner.article-etc p {
    font-size: 12px;
    color: #777;
    margin-bottom: 2vh;
}

figure section article .inner.article-text-encoders .encode-section,
figure section article .inner.article-text-encoders .decode-section,
figure section article .inner.article-js-minify .encode-section,
figure section article .inner.article-js-minify .decode-section,
figure section article .inner.article-color-tools .encode-section,
figure section article .inner.article-color-tools .decode-section,
figure section article .inner.article-text-date .encode-section,
figure section article .inner.article-text-date .decode-section,
figure section article .inner.article-data-sql .encode-section,
figure section article .inner.article-data-sql .decode-section,
figure section article .inner.article-lorem .encode-section,
figure section article .inner.article-lorem .decode-section,
figure section article .inner.article-diff .encode-section,
figure section article .inner.article-diff .decode-section,
figure section article .inner.article-etc .encode-section,
figure section article .inner.article-etc .decode-section {
    margin-bottom: 3vh;
}

/* Diff Comparison 섹션의 decode-section을 flex로 설정하여 남은 공간 활용 */
figure section article .inner.article-diff .decode-section {
    display: flex;
    flex-direction: column;
    flex: 1;
    margin-bottom: 0 !important;
    min-height: 0;
}

/* Diff Comparison 섹션의 고정 요소들 크기 고정 */
figure section article .inner.article-diff h3,
figure section article .inner.article-diff .decode-section > div[style*="display: flex"] {
    flex-shrink: 0;
}

figure section article .inner.article-diff .decode-btn-wrapper {
    flex-shrink: 0;
}

/* Diff Comparison 섹션의 label 여백 최소화 */
figure section article .inner.article-diff label[for="output_diff"] {
    margin-bottom: 0.3vh !important;
    flex-shrink: 0;
}

figure section article .inner.article-text-encoders .decode-btn-wrapper,
figure section article .inner.article-js-minify .decode-btn-wrapper,
figure section article .inner.article-color-tools .decode-btn-wrapper,
figure section article .inner.article-text-date .decode-btn-wrapper,
figure section article .inner.article-data-sql .decode-btn-wrapper,
figure section article .inner.article-lorem .decode-btn-wrapper,
figure section article .inner.article-diff .decode-btn-wrapper,
figure section article .inner.article-etc .decode-btn-wrapper {
    display: flex;
    justify-content: flex-end;
    margin: 1vh 0;
}

figure section article .inner.article-text-encoders label,
figure section article .inner.article-js-minify label,
figure section article .inner.article-color-tools label,
figure section article .inner.article-text-date label,
figure section article .inner.article-data-sql label,
figure section article .inner.article-lorem label,
figure section article .inner.article-diff label,
figure section article .inner.article-etc label {
    display: block;
    font-size: 12px;
    color: #555;
    margin-bottom: 0.5vh;
    font-weight: bold;
}

figure section article .inner.article-text-encoders textarea,
figure section article .inner.article-js-minify textarea,
figure section article .inner.article-color-tools textarea,
figure section article .inner.article-text-date textarea,
figure section article .inner.article-data-sql textarea,
figure section article .inner.article-lorem textarea,
figure section article .inner.article-diff textarea,
figure section article .inner.article-etc textarea {
    width: 100%;
    height: 120px;
    padding: 1vh;
    border: 1px solid #ddd;
    border-radius: 5px;
    font-size: 12px;
    font-family: 'Courier New', monospace;
    resize: none;
    box-sizing: border-box;
    margin-bottom: 0;
}

figure section article .inner.article-text-encoders textarea:focus,
figure section article .inner.article-js-minify textarea:focus,
figure section article .inner.article-color-tools textarea:focus,
figure section article .inner.article-text-date textarea:focus,
figure section article .inner.article-data-sql textarea:focus,
figure section article .inner.article-lorem textarea:focus,
figure section article .inner.article-diff textarea:focus,
figure section article .inner.article-etc textarea:focus {
    outline: none;
    border-color: #4a90e2;
    box-shadow: 0 0 5px rgba(74, 144, 226, 0.3);
}

figure section article .inner.article-text-encoders .options-with-btn,
figure section article .inner.article-js-minify .options-with-btn,
figure section article .inner.article-color-tools .options-with-btn,
figure section article .inner.article-text-date .options-with-btn,
figure section article .inner.article-data-sql .options-with-btn,
figure section article .inner.article-lorem .options-with-btn,
figure section article .inner.article-diff .options-with-btn,
figure section article .inner.article-etc .options-with-btn {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2vw;
    margin: 1vh 0;
}

figure section article .inner.article-text-encoders .options,
figure section article .inner.article-js-minify .options,
figure section article .inner.article-color-tools .options,
figure section article .inner.article-text-date .options,
figure section article .inner.article-data-sql .options,
figure section article .inner.article-lorem .options,
figure section article .inner.article-diff .options,
figure section article .inner.article-etc .options {
    display: flex;
    gap: 0.2vw;
    margin: 0;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
}

figure section article .inner.article-text-encoders .option,
figure section article .inner.article-js-minify .option,
figure section article .inner.article-color-tools .option,
figure section article .inner.article-text-date .option,
figure section article .inner.article-data-sql .option,
figure section article .inner.article-lorem .option,
figure section article .inner.article-diff .option,
figure section article .inner.article-etc .option {
    display: flex;
    align-items: center;
    margin-bottom: 0;
    font-weight: normal;
}

figure section article .inner.article-text-encoders .option select,
figure section article .inner.article-js-minify .option select,
figure section article .inner.article-color-tools .option select,
figure section article .inner.article-text-date .option select,
figure section article .inner.article-data-sql .option select,
figure section article .inner.article-lorem .option select,
figure section article .inner.article-diff .option select,
figure section article .inner.article-etc .option select {
    margin-right: 1vw;
    padding: 0.5vh 1vw;
    border: 1px solid #667eea;
    border-radius: 5px;
    font-size: 11px;
    background: white;
    color: #333;
    cursor: pointer;
    transition: all 0.3s;
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23667eea' d='M6 9L1 4h10z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 0.8vw center;
    background-size: 12px;
    padding-right: 2.5vw;
}

figure section article .inner.article-text-encoders .option select:hover,
figure section article .inner.article-js-minify .option select:hover,
figure section article .inner.article-color-tools .option select:hover,
figure section article .inner.article-text-date .option select:hover,
figure section article .inner.article-data-sql .option select:hover,
figure section article .inner.article-lorem .option select:hover,
figure section article .inner.article-diff .option select:hover,
figure section article .inner.article-etc .option select:hover {
    border-color: #764ba2;
    background-color: rgba(102, 126, 234, 0.05);
    box-shadow: 0 0 5px rgba(102, 126, 234, 0.2);
}

figure section article .inner.article-text-encoders .option select:focus,
figure section article .inner.article-js-minify .option select:focus,
figure section article .inner.article-color-tools .option select:focus,
figure section article .inner.article-text-date .option select:focus,
figure section article .inner.article-data-sql .option select:focus,
figure section article .inner.article-lorem .option select:focus,
figure section article .inner.article-diff .option select:focus,
figure section article .inner.article-etc .option select:focus {
    outline: none;
    border-color: #4a90e2;
    box-shadow: 0 0 5px rgba(74, 144, 226, 0.3);
    background-color: rgba(102, 126, 234, 0.05);
}

/* Text & Date Tools 섹션의 모든 select 요소 너비 통일 */
figure section article .inner.article-text-date select {
    width: 220px !important;
}

/* Lorem Ipsum Generator 섹션의 select와 input 요소 너비 통일 */
figure section article .inner.article-lorem select,
figure section article .inner.article-lorem input[type="number"] {
    width: 110px !important;
}

/* Diff Comparison 섹션의 output-wrapper가 남은 공간을 차지하도록 */
figure section article .inner.article-diff .output-wrapper {
    flex: 1;
    display: flex;
    flex-direction: column;
    min-height: 0;
    margin-top: 0.5vh !important;
    margin-bottom: 0 !important;
}

/* Diff Comparison 섹션의 output 영역이 남은 공간을 모두 차지 */
figure section article .inner.article-diff #output_diff {
    flex: 1;
    min-height: 0;
    overflow-y: auto !important;
    resize: none !important;
    box-sizing: border-box !important;
    padding: 0.8vh !important;
}

figure section article .inner.article-text-encoders .option input[type="checkbox"],
figure section article .inner.article-js-minify .option input[type="checkbox"],
figure section article .inner.article-color-tools .option input[type="checkbox"],
figure section article .inner.article-text-date .option input[type="checkbox"],
figure section article .inner.article-data-sql .option input[type="checkbox"],
figure section article .inner.article-lorem .option input[type="checkbox"],
figure section article .inner.article-diff .option input[type="checkbox"],
figure section article .inner.article-etc .option input[type="checkbox"] {
    margin-right: 0.5vw;
}

figure section article .inner.article-text-encoders .action-btn,
figure section article .inner.article-js-minify .action-btn,
figure section article .inner.article-color-tools .action-btn,
figure section article .inner.article-text-date .action-btn,
figure section article .inner.article-data-sql .action-btn,
figure section article .inner.article-lorem .action-btn,
figure section article .inner.article-diff .action-btn,
figure section article .inner.article-etc .action-btn {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    color: white;
    border: none;
    padding: 1vh 2vw;
    border-radius: 5px;
    font-size: 12px;
    cursor: pointer;
    margin: 0;
    display: flex;
    align-items: center;
    gap: 1vw;
    transition: all 0.3s;
    flex-shrink: 0;
    width: 180px;
    justify-content: center;
}

figure section article .inner.article-text-encoders .action-btn:hover,
figure section article .inner.article-js-minify .action-btn:hover,
figure section article .inner.article-color-tools .action-btn:hover,
figure section article .inner.article-text-date .action-btn:hover,
figure section article .inner.article-data-sql .action-btn:hover,
figure section article .inner.article-lorem .action-btn:hover,
figure section article .inner.article-diff .action-btn:hover,
figure section article .inner.article-etc .action-btn:hover {
    transform: scale(1.05);
    box-shadow: 0 5px 15px rgba(102, 126, 234, 0.4);
}

figure section article .inner.article-text-encoders .output-wrapper,
figure section article .inner.article-js-minify .output-wrapper,
figure section article .inner.article-color-tools .output-wrapper,
figure section article .inner.article-text-date .output-wrapper,
figure section article .inner.article-data-sql .output-wrapper,
figure section article .inner.article-lorem .output-wrapper,
figure section article .inner.article-diff .output-wrapper,
figure section article .inner.article-etc .output-wrapper {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
}


/* Color Picker Styles */
figure section article .inner.article-text-encoders .color-picker-wrapper,
figure section article .inner.article-js-minify .color-picker-wrapper,
figure section article .inner.article-color-tools .color-picker-wrapper,
figure section article .inner.article-text-date .color-picker-wrapper,
figure section article .inner.article-data-sql .color-picker-wrapper,
figure section article .inner.article-lorem .color-picker-wrapper,
figure section article .inner.article-diff .color-picker-wrapper,
figure section article .inner.article-etc .color-picker-wrapper {
    margin-bottom: 2vh;
}

figure section article .inner.article-text-encoders .color-values-display,
figure section article .inner.article-js-minify .color-values-display,
figure section article .inner.article-color-tools .color-values-display,
figure section article .inner.article-text-date .color-values-display,
figure section article .inner.article-data-sql .color-values-display,
figure section article .inner.article-lorem .color-values-display,
figure section article .inner.article-diff .color-values-display,
figure section article .inner.article-etc .color-values-display {
    display: flex;
    flex-direction: column;
    gap: 0.5vh;
}

figure section article .inner.article-text-encoders .color-value-item,
figure section article .inner.article-js-minify .color-value-item,
figure section article .inner.article-color-tools .color-value-item,
figure section article .inner.article-text-date .color-value-item,
figure section article .inner.article-data-sql .color-value-item,
figure section article .inner.article-lorem .color-value-item,
figure section article .inner.article-diff .color-value-item,
figure section article .inner.article-etc .color-value-item {
    display: flex;
    align-items: center;
    gap: 1vw;
}

figure section article .inner.article-text-encoders .color-value-item label,
figure section article .inner.article-js-minify .color-value-item label,
figure section article .inner.article-color-tools .color-value-item label,
figure section article .inner.article-text-date .color-value-item label,
figure section article .inner.article-data-sql .color-value-item label,
figure section article .inner.article-lorem .color-value-item label,
figure section article .inner.article-diff .color-value-item label,
figure section article .inner.article-etc .color-value-item label {
    width: 50px;
    font-weight: bold;
    font-size: 11px;
    margin: 0;
}

figure section article .inner.article-text-encoders .copy-btn,
figure section article .inner.article-js-minify .copy-btn,
figure section article .inner.article-color-tools .copy-btn,
figure section article .inner.article-text-date .copy-btn,
figure section article .inner.article-data-sql .copy-btn,
figure section article .inner.article-lorem .copy-btn,
figure section article .inner.article-diff .copy-btn,
figure section article .inner.article-etc .copy-btn {
    background: #4a90e2;
    color: white;
    border: none;
    padding: 0.8vh 1.5vw;
    border-radius: 5px;
    font-size: 11px;
    cursor: pointer;
    margin-top: 0.5vh;
    display: flex;
    align-items: center;
    gap: 0.5vw;
    transition: all 0.3s;
    width: 180px;
    justify-content: center;
}

figure section article .inner.article-text-encoders .copy-btn:hover,
figure section article .inner.article-js-minify .copy-btn:hover,
figure section article .inner.article-color-tools .copy-btn:hover,
figure section article .inner.article-text-date .copy-btn:hover,
figure section article .inner.article-data-sql .copy-btn:hover,
figure section article .inner.article-lorem .copy-btn:hover,
figure section article .inner.article-diff .copy-btn:hover,
figure section article .inner.article-etc .copy-btn:hover {
    background: #357abd;
    transform: scale(1.05);
}

/* 모든 셀렉트박스에 대한 통일된 스타일 (인라인 스타일이 있는 것들도 포함) */
figure section article .inner.article-text-encoders select,
figure section article .inner.article-js-minify select,
figure section article .inner.article-color-tools select,
figure section article .inner.article-text-date select,
figure section article .inner.article-data-sql select,
figure section article .inner.article-lorem select,
figure section article .inner.article-diff select,
figure section article .inner.article-etc select {
    border: 1px solid #667eea !important;
    border-radius: 5px !important;
    background: white !important;
    color: #333 !important;
    cursor: pointer;
    transition: all 0.3s;
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23667eea' d='M6 9L1 4h10z'/%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: right 0.8vw center !important;
    background-size: 12px !important;
    padding-right: 2.5vw !important;
}

figure section article .inner.article-text-encoders select:hover,
figure section article .inner.article-js-minify select:hover,
figure section article .inner.article-color-tools select:hover,
figure section article .inner.article-text-date select:hover,
figure section article .inner.article-data-sql select:hover,
figure section article .inner.article-lorem select:hover,
figure section article .inner.article-diff select:hover,
figure section article .inner.article-etc select:hover {
    border-color: #764ba2 !important;
    background-color: rgba(102, 126, 234, 0.05) !important;
    box-shadow: 0 0 5px rgba(102, 126, 234, 0.2) !important;
}

figure section article .inner.article-text-encoders select:focus,
figure section article .inner.article-js-minify select:focus,
figure section article .inner.article-color-tools select:focus,
figure section article .inner.article-text-date select:focus,
figure section article .inner.article-data-sql select:focus,
figure section article .inner.article-lorem select:focus,
figure section article .inner.article-diff select:focus,
figure section article .inner.article-etc select:focus {
    outline: none !important;
    border-color: #4a90e2 !important;
    box-shadow: 0 0 5px rgba(74, 144, 226, 0.3) !important;
    background-color: rgba(102, 126, 234, 0.05) !important;
}

@keyframes ani {
    0%{transform: rotate(0deg)}
    100%{transform: rotate(360deg)}
}
@keyframes ani2 {
    0%{transform: translateY(10%) rotate(0deg)}
    100%{transform: translateY(10%) rotate(360deg)}
}

figure section article .inner .pic.on::after{
    animation: ani 4s linear infinite;
}

figure section article .inner .pic.on::before{
    animation: ani2 4s linear infinite;
}


figure .btnNext{
    width: 60px;
    height: 60px;
    position: absolute;
    top: 50%;
    right: 50%;
    transform: translate(500px, -50%);
    display: flex;
    align-items: center;
    text-align: right;
    cursor: pointer;
}

figure .btnNext span{
    font-size: 11px;
    line-height: 1;
    color: #fff;
    opacity: 1;
    transform: translateX(-30%);
    transition: 0.5s;
}

figure .btnNext::before{
    content: '';
    display: block;
    width: 100%;
    height: 1px;
    background: #fff;
    position: absolute;
    top: 50%;
    left: 0;
    transform-origin: right center;
    transform: rotate(180deg);
    transition: 0.5s;

}

figure .btnNext::after{
    content: '';
    display: block;
    width: 100%;
    height: 1px;
    background: #fff;
    position: absolute;
    bottom: 50%;
    left: 0;
    transform-origin: right center;
    transform: rotate(-180deg);
    transition: 0.5s;

}

figure .btnNext:hover span{
    opacity: 0;
    transform: translateX(-100%);
}

figure .btnNext:hover::before{
    transform: rotate(-30deg);
}
figure .btnNext:hover::after{
    transform: rotate(30deg);
}
figure .btnPrev{
    width: 60px;
    height: 60px;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-500px, -50%);
    display: flex;
    align-items: center;
    text-align: center;
    cursor: pointer;
}

figure .btnPrev span{
    font-size: 11px;
    line-height: 1;
    color: #fff;
    opacity: 1;
    transform: translateX(30%);
    transition: 0.5s;
}

figure .btnPrev::before{
    content: '';
    display: block;
    width: 100%;
    height: 1px;
    background: #fff;
    position: absolute;
    top: 50%;
    left: 0;
    transform-origin: left center;
    transform: rotate(180deg);
    transition: 0.5s;

}

figure .btnPrev::after{
    content: '';
    display: block;
    width: 100%;
    height: 1px;
    background: #fff;
    position: absolute;
    bottom: 50%;
    left: 0;
    transform-origin: left center;
    transform: rotate(180deg);
    transition: 0.5s;

}

figure .btnPrev:hover span{
    opacity: 0;
    transform: translateX(100%);
}

figure .btnPrev:hover::before{
    transform: rotate(-30deg);
}
figure .btnPrev:hover::after{
    transform: rotate(30deg);
}

@media  screen and (max-width: 1240px){
    figure section{
        width: 525px;
        height: 840px;
        margin-left: -262.5px;
        margin-top: -420px;
    }
}
@media  screen and (max-width: 1024px){
    figure section{
        width: 525px;
        height: 945px;
        margin-left: -262.5px;
        margin-top: -472.5px;
    }
}
@media  screen and (max-width: 600px){
    figure section{
        margin-top: -210px;
        margin-left: -175px;
        width: 350px;
        height: 437.5px;
    }
    figure .menu{
        right: 2vw;
    }
    figure .btnPrev{
        transform: translate(-325px, -50%);
    }
    figure .btnNext{
        transform: translate(325px, -50%);
    }
}

/* 환율 계산기 스타일 */
figure section article .inner.article-etc .exchange-calc-wrapper {
    display: flex;
    gap: 1vw;
    align-items: center;
    flex-wrap: wrap;
    justify-content: center;
}

figure section article .inner.article-etc .exchange-calc-input {
    width: 120px;
    padding: 0.5vh;
    border: 1px solid #667eea;
    border-radius: 5px;
    font-size: 12px;
    text-align: right;
    background: white;
    transition: all 0.3s;
    box-sizing: border-box;
}

figure section article .inner.article-etc .exchange-calc-input:first-of-type {
    width: 120px;
}

figure section article .inner.article-etc .exchange-calc-input:last-of-type {
    width: 150px;
}

figure section article .inner.article-etc .exchange-calc-input:hover {
    border-color: #764ba2;
    background-color: rgba(102, 126, 234, 0.05);
    box-shadow: 0 0 5px rgba(102, 126, 234, 0.2);
}

figure section article .inner.article-etc .exchange-calc-input:focus {
    outline: none;
    border-color: #4a90e2;
    box-shadow: 0 0 5px rgba(74, 144, 226, 0.3);
    background-color: rgba(102, 126, 234, 0.05);
}

figure section article .inner.article-etc .exchange-calc-select {
    padding: 0.5vh 1vw;
    border: 1px solid #667eea;
    border-radius: 5px;
    font-size: 11px;
    background: white;
    color: #333;
    cursor: pointer;
    transition: all 0.3s;
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23667eea' d='M6 9L1 4h10z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 0.8vw center;
    background-size: 12px;
    padding-right: 2.5vw;
}

figure section article .inner.article-etc .exchange-calc-select:hover {
    border-color: #764ba2;
    background-color: rgba(102, 126, 234, 0.05);
    box-shadow: 0 0 5px rgba(102, 126, 234, 0.2);
}

figure section article .inner.article-etc .exchange-calc-select:focus {
    outline: none;
    border-color: #4a90e2;
    box-shadow: 0 0 5px rgba(74, 144, 226, 0.3);
    background-color: rgba(102, 126, 234, 0.05);
}

figure section article .inner.article-etc .exchange-calc-equals {
    font-size: 14px;
    color: #333;
}

/* Cron preset 버튼 스타일 */
figure section article .inner.article-etc .cron-preset-wrapper {
    display: flex;
    gap: 1vw;
    flex-wrap: wrap;
    margin-bottom: 1vh;
    justify-content: center;
}

figure section article .inner.article-etc .cron-preset {
    padding: 0.5vh 1vw;
    border: 1px solid #667eea;
    border-radius: 5px;
    font-size: 10px;
    cursor: pointer;
    background: white;
    color: #333;
    transition: all 0.3s;
}

figure section article .inner.article-etc .cron-preset:hover {
    border-color: #764ba2;
    background: linear-gradient(135deg, rgba(102, 126, 234, 0.1) 0%, rgba(118, 75, 162, 0.1) 100%);
    color: #667eea;
    transform: scale(1.05);
    box-shadow: 0 2px 8px rgba(102, 126, 234, 0.3);
}

figure section article .inner.article-etc .cron-preset:active {
    transform: scale(0.98);
}

/* 환율 차트 상위 div 높이 고정 */
figure section article .inner.article-etc .chart-container {
    height: 322px !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
}

/* 환율 차트 높이 고정 */
figure section article .inner.article-etc #exchange_rate_chart {
    height: 300px !important;
    width: 100% !important;
    display: block !important;
    box-sizing: border-box !important;
}