@import"https://fonts.googleapis.com/css2?family=IBM+Plex+Sans+KR:wght@400;500;700&family=Nanum+Pen+Script&display=swap";@import"https://cdn.jsdelivr.net/gh/moonspam/NanumSquare@2.0/nanumsquare.css";@font-face{font-family:Escoredream;src:url(https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_six@1.2/S-CoreDream-4Regular.woff) format("woff");font-weight:400;font-display:swap}@font-face{font-family:Escoredream;src:url(https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_six@1.2/S-CoreDream-5Medium.woff) format("woff");font-weight:500;font-display:swap}@font-face{font-family:Escoredream;src:url(https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_six@1.2/S-CoreDream-7ExtraBold.woff) format("woff");font-weight:700;font-display:swap}@font-face{font-family:Escoredream;src:url(https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_six@1.2/S-CoreDream-8Heavy.woff) format("woff");font-weight:800;font-display:swap}@font-face{font-family:HsSantoki20;src:url(https://cdn.jsdelivr.net/gh/projectnoonnu/2405@1.0/HSSanTokki20-Regular.woff2) format("woff2");font-weight:400;font-display:swap}@font-face{font-family:OngleipKonkon;src:url(https://cdn.jsdelivr.net/gh/projectnoonnu/2412-1@1.0/Ownglyph_corncorn-Rg.woff2) format("woff2");font-weight:400;font-display:swap}@font-face{font-family:ImHyeMin;src:url(https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_2106@1.1/IM_Hyemin-Regular.woff2) format("woff2");font-weight:400;font-display:swap}@font-face{font-family:ImHyeMin;src:url(https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_2106@1.1/IM_Hyemin-Bold.woff2) format("woff2");font-weight:700;font-display:swap}@font-face{font-family:SchoolSafeDictation;src:url(https://cdn.jsdelivr.net/gh/projectnoonnu/2408-5@1.0/HakgyoansimBadasseugiTTF-L.woff2) format("woff2");font-weight:400;font-display:swap}@font-face{font-family:KyoboHandwriting2020ParkDoYeon;src:url(https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_2112@1.0/KyoboHandwriting2020A.woff) format("woff");font-weight:400;font-display:swap}:root{--bg-color: #f4f9fd;--bg-color-rgb: 244, 249, 253;--surface-color: #ffffff;--surface-color-hover: #eef6fd;--text-primary: #1f2937;--text-secondary: #6b7a90;--border-color: #d7e7f5;--accent-color: #69b8f7;--accent-color-strong: #53acef;--accent-color-soft: rgba(105, 184, 247, .14);--accent-contrast: #ffffff;--panel-muted: #edf6fd;--input-bg: #f8fbff;--error-color: #ef4444;--display-font-family: "IBM Plex Sans KR", "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;--entry-font-family: "ImHyeMin", "Nanum Pen Script", cursive;--shadow-sm: 0 10px 24px rgba(105, 184, 247, .12);--shadow-md: 0 20px 44px rgba(31, 41, 55, .08);--radius-sm: 12px;--radius-md: 18px;--radius-lg: 28px;--radius-full: 9999px;--transition: all .24s ease}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Noto Sans KR,Apple SD Gothic Neo,Malgun Gothic,sans-serif;background:var(--bg-color);color:var(--text-primary);line-height:1.5;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}#root{width:100vw;min-height:100vh;display:flex;justify-content:center}.app-container{width:100%;max-width:640px;min-height:100vh;margin:0 auto;padding:0 18px 88px;display:flex;flex-direction:column;position:relative}.app-banner{margin-top:16px;padding:12px 14px;border-radius:14px;border:1px solid rgba(239,68,68,.18);background:#ef444414;font-size:13px}.app-header{position:sticky;top:0;z-index:20;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:8px;padding:12px 0 10px;background:rgba(var(--bg-color-rgb),.94);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--border-color);margin-bottom:12px}.app-container.entry-modal-open .app-header{background:rgb(var(--bg-color-rgb));-webkit-backdrop-filter:none;backdrop-filter:none}.header-left-actions,.header-right-actions{display:flex;align-items:center;gap:8px;min-width:0;position:relative;z-index:1}.header-left-actions{justify-self:start}.header-right-actions{justify-self:end;flex-wrap:nowrap}.date-display{display:flex;flex-direction:column;align-items:center;justify-self:center;min-width:0;text-align:center;position:relative}.date-display h2{display:inline-flex;align-items:center;justify-content:center;gap:1px;font-family:var(--display-font-family);font-size:clamp(1.8rem,4vw,2.4rem);font-weight:800;line-height:1;letter-spacing:-.04em}.date-text-wrapper{position:relative;display:inline-flex}.date-text-btn,.date-separator{color:var(--accent-color-strong)}.date-text-btn{cursor:pointer;transition:var(--transition)}.date-text-btn:hover,.date-text-btn.active{opacity:.7}.date-separator{-webkit-user-select:none;user-select:none}.selected-diary-label{margin-top:2px;font-family:var(--entry-font-family);font-size:.9rem;color:var(--text-secondary)}.icon-btn,.icon-btn-small,.close-btn{border:none;background:transparent;color:var(--text-primary);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:var(--transition)}.icon-btn{width:40px;height:40px;border-radius:var(--radius-full);background:var(--surface-color);box-shadow:var(--shadow-sm)}.icon-btn:hover,.icon-btn.active,.close-btn:hover{background:var(--surface-color-hover);color:var(--accent-color-strong)}.search-btn.active{color:var(--accent-color-strong)}.today-btn{height:40px;padding:0 12px;border:1px solid var(--border-color);border-radius:var(--radius-full);background:var(--surface-color);color:var(--text-primary);font-size:12px;font-weight:700;cursor:pointer;box-shadow:var(--shadow-sm);transition:var(--transition)}.today-btn:hover{border-color:var(--accent-color);color:var(--accent-color-strong)}.search-bar{display:flex;align-items:center;gap:10px;padding:10px 14px;margin-bottom:12px;border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--surface-color);box-shadow:var(--shadow-sm);color:var(--text-secondary)}.search-bar input{flex:1;border:none;background:transparent;color:var(--text-primary);outline:none;min-height:32px;padding:0}.search-bar input::placeholder{color:transparent}.inline-dropdown-menu{position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%);min-width:72px;max-height:220px;overflow-y:auto;list-style:none;padding:6px;border:1px solid var(--border-color);border-radius:var(--radius-md);background:#fffffffa;box-shadow:var(--shadow-md);z-index:30}.inline-dropdown-item{padding:10px 14px;border-radius:10px;text-align:center;color:var(--accent-color-strong);cursor:pointer;transition:var(--transition)}.inline-dropdown-item:hover,.inline-dropdown-item.selected{background:var(--accent-color-soft)}.carousel-container{position:relative;flex:1;min-height:620px;display:flex;align-items:center;justify-content:center;overflow:hidden}.carousel-container.search-mode{display:block;min-height:0;overflow:visible}.empty-state{width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:8px;color:var(--text-secondary)}.empty-icon-wrap{width:88px;height:88px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--surface-color);color:var(--accent-color-strong);box-shadow:var(--shadow-sm)}.empty-state p{font-family:var(--display-font-family);font-size:1.9rem;font-weight:800;color:var(--text-primary)}.empty-entry-state p{font-family:var(--entry-font-family);font-size:1.27rem;font-weight:400}.empty-state span{font-family:var(--entry-font-family);font-size:15px}.entry-card{position:absolute;top:50%;left:50%;width:min(100%,360px);height:560px;display:flex;flex-direction:column;overflow:hidden;border-radius:var(--radius-lg);border:1px solid var(--border-color);background:var(--surface-color);box-shadow:var(--shadow-md);transition:transform .35s ease,opacity .35s ease}.entry-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--border-color)}.entry-year-title{font-family:var(--display-font-family);font-size:15px;font-weight:700}.entry-actions{display:flex;gap:8px}.icon-btn-small{width:32px;height:32px;border-radius:var(--radius-full)}.icon-btn-small:hover{background:var(--surface-color-hover)}.icon-btn-small.delete-btn:hover{color:var(--error-color)}.entry-photo-wrapper{height:350px;display:flex;align-items:center;justify-content:center;background:var(--panel-muted);overflow:hidden}.entry-photo{width:100%;height:100%;object-fit:contain}.entry-content{flex:1;padding:18px 20px 24px;overflow-y:auto}.entry-text{font-family:var(--entry-font-family);white-space:pre-wrap;word-break:break-word;font-size:15px;line-height:1.7}.search-results{display:flex;flex-direction:column;gap:12px;padding:6px 0 16px}.search-result-item{width:100%;border:1px solid var(--border-color);border-radius:22px;background:#ffffffd6;box-shadow:var(--shadow-sm);display:grid;grid-template-columns:104px 1fr;gap:14px;padding:12px;text-align:left;cursor:pointer}.search-result-thumb-wrap{width:104px;aspect-ratio:1;border-radius:18px;overflow:hidden;background:var(--panel-muted)}.search-result-thumb{width:100%;height:100%;object-fit:cover}.search-result-body{min-width:0;display:flex;flex-direction:column;justify-content:center;gap:8px}.search-result-date{font-family:var(--display-font-family);font-size:12px;font-weight:700;color:var(--accent-color-strong)}.search-result-text{font-family:var(--entry-font-family);display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:5;font-size:14px;line-height:1.6;color:var(--text-primary);word-break:break-word}.search-result-highlight{font-weight:800}.fab-container{position:fixed;right:max(18px,calc((100vw - 640px)/2 + 18px));bottom:28px;display:flex;gap:12px;z-index:25}.fab{width:62px;height:62px;border:1px solid var(--border-color);border-radius:var(--radius-full);background:var(--surface-color);color:var(--text-primary);box-shadow:var(--shadow-md);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:var(--transition)}.fab:hover{transform:translateY(-2px)}.fab.write-fab{background:var(--accent-color-strong);color:var(--accent-contrast);border-color:transparent}.fab.search-btn.active{color:var(--accent-color-strong);border-color:var(--accent-color);background:var(--surface-color-hover)}.modal-overlay{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:20px;background:#1f29373d;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);opacity:0;pointer-events:none;transition:opacity .2s ease}.entry-modal-overlay{background:#1f29376b;-webkit-backdrop-filter:none;backdrop-filter:none;transition:none}.modal-overlay.active{opacity:1;pointer-events:auto}.modal-content{width:100%;max-width:520px;max-height:90vh;display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--border-color);border-radius:var(--radius-lg);background:var(--surface-color);box-shadow:0 28px 56px #1f29371f;transform:translateY(16px);transition:transform .24s ease}.modal-overlay.active .modal-content{transform:translateY(0)}.entry-modal-content{box-shadow:0 16px 30px #1f29371f;transform:none;transition:none}.entry-modal-overlay.active .entry-modal-content{transform:none}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:22px 24px;border-bottom:1px solid var(--border-color)}.modal-header h3{font-family:var(--display-font-family);font-size:1.05rem;font-weight:800}.close-btn{width:36px;height:36px;border-radius:var(--radius-full)}.entry-form{display:flex;flex-direction:column;gap:18px;padding:20px 24px 24px;overflow-y:auto}.form-group{display:flex;flex-direction:column;gap:10px}label{font-size:14px;font-weight:700;color:var(--text-secondary)}input,select,textarea{width:100%;border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--input-bg);color:var(--text-primary);transition:var(--transition)}input,select{min-height:54px;padding:0 16px}textarea{min-height:220px;padding:16px;resize:none}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent-color);box-shadow:0 0 0 4px var(--accent-color-soft)}.text-input-group{flex:1}.hidden-file-input{display:none}.visually-hidden-file-input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.photo-upload-label,.photo-upload-trigger{width:100%;height:300px;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:0;border:2px dashed #8ea1b5;border-radius:var(--radius-md);background:var(--input-bg);color:inherit;cursor:pointer;transition:border-color .2s ease,background-color .2s ease,box-shadow .2s ease;appearance:none}.photo-upload-label:hover,.photo-upload-trigger:hover{border-color:var(--accent-color);background:var(--surface-color-hover)}.photo-upload-trigger:focus-visible{outline:none;border-color:var(--accent-color);box-shadow:0 0 0 4px var(--accent-color-soft)}.upload-placeholder{display:flex;flex-direction:column;align-items:center;gap:12px;color:var(--text-secondary)}.preview-image{width:100%;height:100%;display:block;object-fit:contain}.theme-picker-grid,.font-picker-row{display:flex;gap:12px;overflow-x:auto;padding:4px 2px 12px;scrollbar-width:thin;scroll-snap-type:x proximity}.theme-option{flex:0 0 72px;padding:0;border:none;background:transparent;color:var(--text-primary);display:flex;flex-direction:column;align-items:center;gap:8px;cursor:pointer;transition:var(--transition);box-shadow:none;scroll-snap-align:start}.theme-option:hover .theme-option-swatch{transform:translateY(-2px)}.theme-option-swatch{width:100%;aspect-ratio:1;border-radius:18px;background:var(--theme-option-accent, var(--accent-color));border:1px solid rgba(31,41,55,.08);box-shadow:var(--shadow-sm);transition:var(--transition)}.theme-option.active .theme-option-swatch{box-shadow:0 0 0 3px var(--surface-color),0 0 0 5px var(--theme-option-accent, var(--accent-color)),var(--shadow-sm)}.theme-option-label{width:100%;min-height:21px;font-size:14px;font-weight:700;line-height:1.5;color:var(--text-secondary);text-align:center;white-space:nowrap}.font-option{flex:0 0 136px;min-height:82px;padding:12px 14px 10px;border:1px solid var(--border-color);border-radius:18px;background:var(--surface-color);color:var(--text-primary);display:flex;flex-direction:column;justify-content:flex-start;align-items:flex-start;gap:2px;cursor:pointer;box-shadow:var(--shadow-sm);transition:var(--transition);scroll-snap-align:start}.font-option:hover{transform:translateY(-2px);border-color:var(--accent-color)}.font-option.active{border-color:var(--accent-color-strong);background:var(--surface-color-hover);box-shadow:0 0 0 2px var(--accent-color-soft),var(--shadow-sm)}.font-option-preview{width:100%;font-family:var(--font-option-family);font-size:1.05rem;line-height:1.5;text-align:left;word-break:keep-all}.font-option-preview-entry{font-size:1.15rem}.font-option .font-option-label{font-size:12px;font-weight:700;line-height:1.5;color:var(--text-secondary);text-align:left;white-space:normal}.theme-picker-grid::-webkit-scrollbar,.font-picker-row::-webkit-scrollbar{height:6px}.theme-picker-grid::-webkit-scrollbar-thumb,.font-picker-row::-webkit-scrollbar-thumb{background:#6b7a903d;border-radius:999px}.submit-btn{border:none;border-radius:var(--radius-md);background:var(--accent-color-strong);color:var(--accent-contrast);padding:15px 18px;font-size:16px;font-weight:800;cursor:pointer;transition:var(--transition)}.submit-btn:hover{background:var(--accent-color-strong)}.cal-modal-content{height:90vh}.cal-scroll-area{flex:1;overflow-y:auto;padding:20px 18px 28px;display:flex;flex-direction:column;gap:28px}.cal-month-title{margin-bottom:14px;font-size:16px;font-weight:800}.cal-weekdays,.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.cal-weekdays{margin-bottom:8px;color:var(--text-secondary);font-size:12px;text-align:center}.cal-grid{gap:6px}.cal-cell{aspect-ratio:1;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center}.cal-cell.empty{visibility:hidden}.cal-cell.no-entry span{color:var(--text-secondary);opacity:.45}.cal-cell.has-entry{cursor:pointer}.cal-thumb{width:100%;height:100%;object-fit:cover;border-radius:var(--radius-full)}.auth-shell{width:100%;min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--bg-color)}.auth-card{width:min(100%,420px);display:flex;flex-direction:column;gap:14px;padding:30px 26px;border:1px solid var(--border-color);border-radius:var(--radius-lg);background:var(--surface-color);box-shadow:var(--shadow-md)}.auth-card h1{font-size:30px;line-height:1.15}.auth-card p{color:var(--text-secondary)}.auth-badge{width:fit-content;padding:6px 12px;border-radius:var(--radius-full);background:var(--accent-color-soft);color:var(--accent-color-strong);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.auth-button{border:none;border-radius:var(--radius-md);background:var(--accent-color-strong);color:var(--accent-contrast);padding:14px 18px;font-weight:800;cursor:pointer}.auth-spinner{color:var(--accent-color-strong)}button:disabled{opacity:.65;cursor:wait}.spin{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media(max-width:640px){.app-container{padding-inline:14px}.app-header{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:6px}.header-right-actions .today-btn{padding-inline:10px}.header-right-actions{gap:6px}.date-display h2{font-size:2rem}.selected-diary-label{font-size:.76rem}.entry-card{width:min(100%,328px);height:530px}.entry-photo-wrapper{height:310px}.fab-container{right:14px;bottom:18px}.fab{width:58px;height:58px}.modal-content{max-width:100%}.entry-form,.modal-header{padding-inline:18px}.search-result-item{grid-template-columns:88px 1fr;gap:12px;padding:10px}.search-result-thumb-wrap{width:88px}.theme-picker-grid,.font-picker-row{gap:10px}}.bookshelf-container{flex:1;display:flex;flex-direction:column;gap:28px;padding:24px 0 12px}.bookshelf-header{display:grid;grid-template-columns:44px 1fr 44px;align-items:center;min-height:52px}.bookshelf-header-spacer{width:44px;height:44px}.bookshelf-title{font-family:var(--display-font-family);font-size:1.6rem;font-weight:800;text-align:center;color:var(--text-primary)}.bookshelf-logout-btn{justify-self:end;width:44px;height:44px;border:1px solid var(--border-color);border-radius:var(--radius-full);background:var(--surface-color);color:var(--text-primary);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:var(--shadow-sm);font-size:0;transition:var(--transition)}.bookshelf-logout-btn:hover{color:var(--accent-color-strong);background:var(--surface-color-hover)}.shelf-row{width:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px 18px;align-items:start}.book-wrapper{width:100%;display:flex;flex-direction:column;align-items:center;gap:10px}.book-item{width:100%;max-width:168px;height:224px;border:1px solid var(--border-color);border-radius:20px;background:var(--surface-color);display:flex;align-items:center;justify-content:center;overflow:hidden;cursor:pointer;box-shadow:var(--shadow-md);transition:var(--transition)}.book-item:hover{transform:translateY(-3px)}.book-cover-image{width:100%;height:100%;object-fit:cover;background:var(--input-bg)}.book-title-outside{width:100%;text-align:center}.book-title-outside h3{font-family:var(--display-font-family);font-size:15px;font-weight:800;color:var(--text-primary);word-break:keep-all}.book-theme-caption{margin-top:4px;display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--text-secondary)}.book-theme-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.book-item.add-new{border:2px dashed #9bb7cf;background:transparent;color:var(--text-secondary);box-shadow:none}.book-item.add-new:hover{border-color:var(--accent-color);color:var(--accent-color-strong);background:var(--surface-color-hover)}.book-list-menu{display:flex;flex-direction:column;gap:12px;padding:12px}.book-list-item{display:flex;align-items:center;gap:12px;padding:12px;border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--surface-color);cursor:pointer;transition:var(--transition)}.book-list-item:hover,.book-list-item.active{border-color:var(--accent-color);background:var(--surface-color-hover)}.book-list-thumb{width:52px;height:68px;border-radius:10px;object-fit:contain;background:var(--input-bg)}.book-list-info h4{font-size:15px;margin-bottom:4px}.book-list-info p{font-size:12px;color:var(--text-secondary)}.modal-logout-btn{justify-content:center}@media(max-width:640px){.shelf-row{gap:20px 12px}.bookshelf-title{font-size:1.45rem}.book-item{max-width:100%;height:180px;border-radius:18px}.book-title-outside h3{font-size:14px}}
