/* 모든 "User-Agent-Stylesheet"의 스타일을 제거하되 'display' 속성은 유지.
   - "symbol *" 부분은 Firefox SVG 스프라이트 버그를 해결하기 위한 것.
   - "html" 요소는 제외. 그렇지 않으면 Chrome의 버그로 인해 CSS 하이픈 속성이 깨짐 */
*:where(:not(html, iframe, canvas, img, svg, video, audio):not(svg *, symbol *)) {
    all: unset;
    display: revert;
}

/* 선호하는 box-sizing 값 */
*,
*::before,
*::after {
    box-sizing: border-box;
}

/* 모바일 Safari에서 가로 모드에서의 폰트 크기 증가 문제 해결 */
html {
    -moz-text-size-adjust: none;
    -webkit-text-size-adjust: none;
    text-size-adjust: none;
}

/* 앵커 태그에 대한 포인터 커서 다시 적용 */
a,
button {
    cursor: revert;
}

/* 목록 스타일(불릿/숫자) 제거 */
ol,
ul,
menu,
summary {
    list-style: none;
}

/* 이미지가 컨테이너를 초과하지 못하도록 설정 */
img {
    max-inline-size: 100%;
    max-block-size: 100%;
}

/* 테이블 내 셀 간 간격 제거 */
table {
    border-collapse: collapse;
}

/* Safari - <body> 텍스트 입력란에 user-select:none을 사용할 때 문제 해결 */
input,
textarea {
    -webkit-user-select: auto;
}

/* Safari에서 textarea 요소에 대한 'white-space' 속성 복원 */
textarea {
    white-space: revert;
}

/* meter 요소를 스타일링할 수 있도록 최소한의 스타일 적용 */
meter {
    -webkit-appearance: revert;
    appearance: revert;
}

/* 서식이 지정된 텍스트 - 이 기능에만 사용 */
:where(pre) {
    all: revert;
    box-sizing: border-box;
}

/* 입력 플레이스홀더의 기본 텍스트 불투명도 재설정 */
::placeholder {
    color: unset;
}

/* 'hidden' 속성의 기능 수정.
   display:revert; 속성을 요소에 대한 속성으로 되돌립니다. */
:where([hidden]) {
    display: none;
}

/* Chromium 브라우저의 버그 되돌리기
    - contenteditable 속성이 제대로 작동하도록 수정합니다.
   - Safari의 경우 wrapper 요소에 user-select:none을 사용할 경우 -webkit-user-select: auto; 추가 */
:where([contenteditable]:not([contenteditable='false'])) {
    -moz-user-modify: read-write;
    -webkit-user-modify: read-write;
    overflow-wrap: break-word;
    -webkit-line-break: after-white-space;
    -webkit-user-select: auto;
}

/* 드래그 가능한 기능을 다시 적용합니다. - Chromium 및 Safari에만 존재. */
:where([draggable='true']) {
    -webkit-user-drag: element;
}

/* Modal 기본 동작 되돌리기 */
:where(dialog:modal) {
    all: revert;
    box-sizing: border-box;
}

/* details 요약 웹킷 스타일 제거 */
::-webkit-details-marker {
    display: none;
}
