:root{--background:#fffaf8;--surface:#fff;--surface-soft:#fff2ee;--surface-deep:#ffe7df;--text:#292833;--text-muted:#766f76;--line:#f0dcd7;--brand:#ef7887;--brand-dark:#d8586c;--brand-deep:#a83d54;--brand-light:#ffe0dc;--peach:#ffb7a2;--peach-light:#fff0e8;--warning:#8a5b47;--warning-bg:#fff5e9;--danger:#ad3c52;--shadow:0 24px 70px #56323917;--shadow-soft:0 12px 36px #56323912;--radius-xl:36px;--radius-lg:26px;--radius-md:18px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:radial-gradient(circle at 8% 8%, #ffd0c157, transparent 24rem), radial-gradient(circle at 94% 42%, #f7aab733, transparent 26rem), var(--background);min-height:100vh;color:var(--text);margin:0;font-family:Pretendard,Apple SD Gothic Neo,Noto Sans KR,Arial,sans-serif;line-height:1.65}a{color:inherit;text-decoration:none}button,input{font:inherit}button{border:0}button:disabled{cursor:not-allowed;opacity:.58}.visually-hidden{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.site-header{z-index:20;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#fffaf8e0;border-bottom:1px solid #f0dcd7b8;position:sticky;top:0}.header-inner,.footer-inner,.section-shell{width:min(1080px,100% - 40px);margin-inline:auto}.header-inner{justify-content:space-between;align-items:center;gap:28px;width:min(1200px,100% - 24px);min-height:58px;display:flex}.brand{align-items:center;display:inline-flex}.brand img{width:240px;height:auto;display:block}.main-nav{color:#67616a;align-items:center;gap:8px;font-size:14px;font-weight:750;display:flex}.main-nav a{border-radius:999px;padding:9px 15px;transition:color .15s,background .15s}.main-nav a:hover,.main-nav a:focus-visible{background:var(--surface-soft);color:var(--brand-dark);outline:none}.hero{isolation:isolate;border-radius:var(--radius-xl);box-shadow:var(--shadow);text-align:center;background:radial-gradient(circle at 18% 22%,#ffbeaa8f,#0000 15rem),radial-gradient(circle at 86% 78%,#ee7a8b40,#0000 16rem),linear-gradient(145deg,#fffffff5,#fff0eadb);border:1px solid #f0dcd7d1;margin-top:48px;padding-block:94px 70px;position:relative;overflow:hidden}.hero:before,.hero:after{z-index:-1;content:"";pointer-events:none;position:absolute}.hero:before{background:#ffffff61;border:1px solid #ef788733;border-radius:54% 46% 62% 38%/63% 54% 46% 37%;width:190px;height:230px;top:-92px;right:10%;transform:rotate(22deg)}.hero:after{border:22px solid #ffffff6b;border-radius:50%;width:116px;height:116px;bottom:-54px;left:7%}.eyebrow{width:fit-content;color:var(--brand-dark);letter-spacing:.17em;background:#ffffffb8;border:1px solid #d8586c2e;border-radius:999px;margin:0 auto 18px;padding:7px 13px;font-size:11px;font-weight:850}.hero h1{color:#2c2a36;letter-spacing:-.06em;max-width:800px;margin:0 auto;font-size:clamp(40px,6vw,66px);line-height:1.12}.hero-copy{max-width:650px;color:var(--text-muted);margin:24px auto 0;font-size:18px}.service-chips{flex-wrap:wrap;justify-content:center;gap:9px;margin-top:30px;display:flex}.service-chips span{color:#6a5d64;background:#ffffffd1;border:1px solid #ef788733;border-radius:999px;padding:8px 14px;font-size:13px;font-weight:750;box-shadow:0 5px 16px #6f41490d}.analysis-section,.lesions-section{padding-block:64px 28px}.section-heading{align-items:flex-start;gap:14px;margin-bottom:22px;display:flex}.section-heading h2{color:#302d38;letter-spacing:-.04em;margin:0;font-size:27px}.section-heading p{color:var(--text-muted);margin:2px 0 0}.step-number{background:linear-gradient(145deg, var(--peach-light), var(--brand-light));min-width:38px;height:38px;color:var(--brand-dark);letter-spacing:.04em;border-radius:13px;place-items:center;margin-top:2px;font-size:12px;font-weight:850;display:grid}.upload-card{border-radius:var(--radius-xl);min-height:380px;box-shadow:var(--shadow);text-align:center;background:linear-gradient(#ffffffe6,#fffcfaf0),repeating-linear-gradient(45deg,#0000,#0000 16px,#ef788706 16px 32px);border:1.5px dashed #eda5ac;flex-direction:column;justify-content:center;align-items:center;padding:42px;display:flex}.upload-card.interactive{transition:border-color .15s,background .15s,box-shadow .15s,transform .15s}.upload-card.is-dragging{border-color:var(--brand);background:linear-gradient(145deg,#fff7f4,#ffe9e4);transform:translateY(-2px);box-shadow:0 26px 70px #d8586c29}.upload-card strong{color:#35313c;margin-top:18px;font-size:20px}.upload-card p{color:var(--text-muted);margin:6px 0 24px;font-size:14px}.upload-symbol{color:#fff;background:linear-gradient(145deg,#ffd6c7,#f392a2);border:1px solid #f2c3c3;border-radius:42% 58% 58% 42%/58% 44% 56% 42%;place-items:center;width:72px;height:72px;font-size:34px;font-weight:300;display:grid;position:relative;transform:rotate(-7deg);box-shadow:0 14px 26px #d8586c2e}.upload-symbol:after{content:"";border:2px solid #ffffffc7;border-radius:10px;position:absolute;inset:17px}.button{cursor:pointer;border-radius:15px;justify-content:center;align-items:center;min-height:50px;padding:0 24px;font-weight:800;transition:background .15s,border-color .15s,box-shadow .15s,transform .15s;display:inline-flex}.button-primary{background:linear-gradient(135deg, var(--brand), #e86378);color:#fff;box-shadow:0 10px 22px #d8586c38}.button-primary:hover{background:linear-gradient(135deg, #e96f80, var(--brand-dark));box-shadow:0 13px 28px #d8586c47}.button-secondary{border:1px solid var(--line);background:var(--surface);color:var(--text)}.button-secondary:hover{background:var(--surface-soft);border-color:#e9abb3}.button:focus-visible{outline-offset:3px;outline:3px solid #ef78873d}.button:active{transform:translateY(1px)}.selected-file{flex-direction:column;align-items:center;width:min(100%,580px);display:flex}.image-preview{aspect-ratio:4/3;background:var(--surface-soft);border:8px solid #fff;border-radius:24px;width:min(100%,430px);position:relative;overflow:hidden;box-shadow:0 15px 38px #442b311f}.image-preview img{object-fit:contain}.file-meta{text-align:left;justify-content:space-between;gap:12px;width:min(100%,430px);margin-top:16px;display:flex}.file-meta strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;margin:0;font-size:14px;overflow:hidden}.file-meta span{color:var(--text-muted);flex:none;font-size:13px}.button-row{justify-content:center;gap:10px;margin-top:24px;display:flex}.analyze-button{min-width:136px}.spinner{border:2px solid #ffffff73;border-top-color:#fff;border-radius:50%;width:17px;height:17px;margin-right:8px;animation:.7s linear infinite spin}.error-message{color:var(--danger);background:#fff0f2;border:1px solid #efc4ca;border-radius:15px;margin-top:16px;padding:14px 17px;font-size:14px;font-weight:750}@keyframes spin{to{transform:rotate(360deg)}}.result-modal-backdrop{z-index:100;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#2d222794;place-items:center;padding:28px;animation:.18s ease-out modal-backdrop-in;display:grid;position:fixed;inset:0}.result-modal{background:var(--background);border:1px solid #ffffffb8;border-radius:30px;grid-template-rows:auto minmax(0,1fr) auto;width:min(1040px,100%);max-height:min(920px,100dvh - 56px);animation:.22s ease-out modal-content-in;display:grid;overflow:hidden;box-shadow:0 36px 100px #331f274d}.result-modal-header{border-bottom:1px solid var(--line);background:#fffaf8f2;justify-content:space-between;align-items:flex-start;gap:24px;padding:24px 28px 20px;display:flex}.result-modal-kicker{color:var(--brand-dark);letter-spacing:.14em;font-size:10px;font-weight:850}.result-modal-header h2{letter-spacing:-.04em;margin:2px 0 0;font-size:28px;line-height:1.2}.result-modal-header p{color:var(--text-muted);margin:4px 0 0;font-size:13px}.result-modal-close{border:1px solid var(--line);background:var(--surface);width:42px;height:42px;color:var(--text-muted);cursor:pointer;border-radius:14px;flex:none;place-items:center;font-size:28px;line-height:1;transition:background .15s,color .15s,transform .15s;display:grid}.result-modal-close:hover{background:var(--surface-soft);color:var(--brand-deep)}.result-modal-close:focus-visible{outline-offset:3px;outline:3px solid #ef788742}.result-modal-close:active{transform:scale(.96)}.result-modal-body{overscroll-behavior:contain;min-height:0;padding:24px 28px;overflow-y:auto}.result-modal .result-section{margin-top:0}.result-modal .top-result h3{overflow-wrap:anywhere;text-transform:none;font-size:clamp(24px,3.2vw,36px)}.result-modal .prediction-name{text-overflow:clip;text-transform:none;white-space:normal;overflow:visible}.result-modal-footer{border-top:1px solid var(--line);background:var(--surface);justify-content:flex-end;padding:16px 28px;display:flex}.result-modal-footer .button{min-width:120px}@keyframes modal-backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes modal-content-in{0%{opacity:0;transform:translateY(12px)scale(.985)}to{opacity:1;transform:translateY(0)scale(1)}}.result-section{margin-top:60px;scroll-margin-top:96px}.result-card,.result-information-card,.gradcam-card{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-soft)}.result-card{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);display:grid;overflow:hidden}.top-result{background:radial-gradient(circle at 90% 10%,#ffffffad,#0000 9rem),linear-gradient(145deg,#ffe8df,#f6a1ae);flex-direction:column;justify-content:center;padding:46px;display:flex;position:relative;overflow:hidden}.top-result:after{content:"";border:18px solid #ffffff3b;border-radius:54% 46% 62% 38%/63% 54% 46% 37%;width:110px;height:130px;position:absolute;bottom:-48px;right:-46px;transform:rotate(18deg)}.result-kicker,.info-label{color:var(--brand-deep);letter-spacing:.1em;text-transform:uppercase;font-size:11px;font-weight:850}.top-result h3{letter-spacing:-.045em;text-transform:capitalize;margin:10px 0 0;font-size:clamp(28px,4vw,42px);line-height:1.16}.english-name{color:#3e3138ad;margin:5px 0 0}.score-line{align-items:baseline;gap:12px;margin-top:30px;display:flex}.score-line strong{color:#8f3449;letter-spacing:-.04em;font-size:40px;line-height:1}.score-line span{color:#3e3138b3;font-size:13px;font-weight:750}.prediction-language{color:#3e3138b8;margin:16px 0 0;font-size:13px}.top-three{padding:42px}.subsection-title{justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;display:flex}.subsection-title h3{letter-spacing:-.03em;margin:0;font-size:20px}.subsection-title>span{background:var(--surface-soft);color:var(--text-muted);border-radius:999px;padding:4px 9px;font-size:11px}.top-three ol{gap:22px;margin:0;padding:0;list-style:none;display:grid}.prediction-row{grid-template-columns:30px minmax(0,1fr) auto;align-items:center;gap:11px;margin-bottom:8px;display:grid}.rank{background:var(--brand-light);width:27px;height:27px;color:var(--brand-dark);border-radius:9px;place-items:center;font-size:12px;font-weight:850;display:grid}.prediction-name{text-overflow:ellipsis;text-transform:capitalize;white-space:nowrap;font-size:14px;font-weight:750;overflow:hidden}.prediction-row strong{font-size:14px}.score-track{background:#f4e8e5;border-radius:99px;height:8px;overflow:hidden}.score-track span{border-radius:inherit;background:linear-gradient(90deg, var(--peach), var(--brand));height:100%;display:block}.result-detail-grid{grid-template-columns:minmax(280px,.78fr) minmax(0,1.22fr);align-items:start;gap:18px;margin-top:18px;display:grid}.result-detail-grid .result-information-card{margin:0;padding:30px}.result-detail-grid .information-grid{grid-template-columns:1fr}.result-detail-grid .information-description,.result-detail-grid .caution-block{grid-column:auto}.information-empty,.lesion-empty-information{background:var(--background);text-align:center;border:1px solid #f3e2de;border-radius:16px;padding:22px}.information-empty p,.lesion-empty-information p{color:var(--text-muted);margin:4px 0 0;font-size:13px}.information-grid,.lesion-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.information-description,.lesion-description{grid-column:1/-1}.information-block,.lesion-detail-block{background:var(--background);border:1px solid #f3e3df;border-radius:16px;padding:22px}.information-block p,.information-block ul,.lesion-detail-block p,.lesion-detail-block ul{color:var(--text-muted);margin:10px 0 0;font-size:14px}.information-block ul,.lesion-detail-block ul{padding-left:20px}.caution-block,.lesion-caution{background:var(--warning-bg);grid-column:1/-1}.gradcam-card{flex-direction:column;gap:22px;margin:0;padding:30px;display:flex;overflow:hidden}.gradcam-heading h3{margin:5px 0;font-size:22px}.gradcam-heading p{color:var(--text-muted);margin:0;font-size:14px}.gradcam-image-frame{aspect-ratio:1;border:7px solid var(--surface-soft);background:var(--surface-soft);border-radius:20px;place-items:center;display:grid;overflow:hidden}.gradcam-image-frame img{object-fit:contain;width:100%;height:100%;display:block}.gradcam-empty{background:linear-gradient(145deg, var(--surface-soft), #fff8f5);text-align:center;border:1px dashed #e8c9c5;border-radius:20px;flex-direction:column;justify-content:center;align-items:center;min-height:280px;padding:28px;display:flex}.gradcam-empty>span{background:var(--brand-light);width:58px;height:58px;color:var(--brand-dark);border-radius:50%;place-items:center;margin-bottom:14px;font-size:27px;display:grid}.gradcam-empty strong{font-size:15px}.gradcam-empty p{max-width:260px;color:var(--text-muted);margin:6px 0 0;font-size:13px}.disclaimer-card{border-radius:var(--radius-md);color:var(--warning);background:linear-gradient(135deg,#fff8ef,#fff1ea);border:1px solid #f1d8ca;align-items:flex-start;gap:15px;margin-block:30px 82px;padding:21px 23px;display:flex}.disclaimer-card p{margin:3px 0 0;font-size:14px}.result-disclaimer,.catalog-disclaimer{width:100%;margin-block:18px 0}.notice-mark{background:#ffffff7a;border:1px solid;border-radius:50%;flex:none;place-items:center;width:26px;height:26px;font-family:Georgia,serif;font-weight:700;display:grid}.lesions-hero{border:1px solid var(--line);border-radius:var(--radius-xl);box-shadow:var(--shadow-soft);text-align:center;background:radial-gradient(circle at 82% 18%,#f07f8f45,#0000 14rem),linear-gradient(145deg,#fff,#fff0ea);margin-top:48px;padding-block:74px 58px;position:relative;overflow:hidden}.lesions-hero:after{content:"";border:20px solid #ef78871f;border-radius:52% 48% 61% 39%/62% 53% 47% 38%;width:130px;height:150px;position:absolute;bottom:-88px;right:7%;transform:rotate(20deg)}.lesions-hero h1{letter-spacing:-.05em;margin:0;font-size:clamp(34px,5vw,54px);line-height:1.15}.lesions-hero>p{max-width:650px;color:var(--text-muted);margin:20px auto 0;font-size:17px}.lesion-list{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:14px;display:grid}.lesion-card{border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-soft);background:#ffffffeb;overflow:hidden}.lesion-card summary{cursor:pointer;grid-template-columns:42px minmax(0,1fr) 34px;align-items:center;gap:15px;min-height:94px;padding:18px 20px;list-style:none;display:grid}.lesion-card summary::-webkit-details-marker{display:none}.lesion-card summary:hover,.lesion-card summary:focus-visible{background:var(--surface-soft);outline:none}.lesion-card[open]{border-color:#edb8bc;box-shadow:0 16px 44px #86424e1c}.lesion-index{background:linear-gradient(145deg, var(--peach-light), var(--brand-light));width:40px;height:40px;color:var(--brand-dark);border-radius:46% 54% 58% 42%/58% 44% 56% 42%;place-items:center;font-size:12px;font-weight:850;display:grid}.lesion-title{flex-direction:column;min-width:0;display:flex}.lesion-title strong{overflow-wrap:anywhere;text-transform:capitalize;font-size:16px}.lesion-title>span{overflow-wrap:anywhere;color:var(--text-muted);font-size:11px}.lesion-toggle{width:30px;height:30px;color:var(--brand-dark);border:1px solid #efc9ca;border-radius:50%;place-items:center;font-size:20px;line-height:1;transition:transform .15s,background .15s;display:grid}.lesion-card[open] .lesion-toggle{background:var(--brand-light);transform:rotate(45deg)}.lesion-card-content{border-top:1px solid var(--line);padding:20px}.catalog-status{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);min-height:230px;box-shadow:var(--shadow-soft);text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:32px;display:flex}.catalog-status p{color:var(--text-muted);margin:4px 0 0;font-size:13px}.catalog-status .button{margin-top:20px}.catalog-error{border-color:#efc4ca}.catalog-spinner{border:3px solid var(--brand-light);border-top-color:var(--brand);border-radius:50%;width:30px;height:30px;margin-bottom:14px;animation:.7s linear infinite spin}.catalog-disclaimer{margin-block:26px 48px}.site-footer{border-top:1px solid var(--line);background:#ffffffc2}.footer-inner{min-height:124px;color:var(--text-muted);justify-content:space-between;align-items:center;gap:20px;font-size:13px;display:flex}.footer-inner img{width:108px;height:auto}.footer-inner div{text-align:right}.footer-inner p{color:#5d5760;margin:0;font-weight:700}.footer-inner span{font-size:11px}@media (max-width:760px){.result-modal-backdrop{padding:0}.result-modal{border:0;border-radius:0;width:100%;min-height:100dvh;max-height:100dvh}.result-modal-header{padding:18px 18px 15px}.result-modal-header h2{font-size:24px}.result-modal-header p{max-width:250px}.result-modal-close{width:40px;height:40px}.result-modal-body{padding:18px 14px 24px}.result-modal-footer{padding:12px 14px calc(12px + env(safe-area-inset-bottom))}.result-modal-footer .button{width:100%}.header-inner,.footer-inner,.section-shell{width:min(100% - 28px,1080px)}.header-inner{width:calc(100% - 20px);min-height:50px}.brand img{width:162px}.main-nav{gap:2px;font-size:12px}.main-nav a{padding:8px 10px}.hero,.lesions-hero{border-radius:28px;margin-top:24px}.hero{padding:66px 22px 50px}.hero h1{font-size:clamp(36px,11vw,48px)}.hero-copy,.lesions-hero>p{font-size:15px}.analysis-section,.lesions-section{padding-block:48px 24px}.section-heading h2{font-size:24px}.upload-card{border-radius:28px;min-height:320px;padding:28px 18px}.button-row{flex-direction:column;width:100%}.button-row .button{width:100%}.result-section{margin-top:48px}.result-card,.result-detail-grid,.lesion-list{grid-template-columns:1fr}.top-result,.top-three,.result-detail-grid .result-information-card,.result-detail-grid .gradcam-card{padding:28px 22px}.information-grid,.lesion-detail-grid{grid-template-columns:1fr}.gradcam-empty{min-height:220px}.information-description,.lesion-description,.caution-block,.lesion-caution{grid-column:auto}.lesions-hero{padding:56px 22px 44px}.lesion-card summary{grid-template-columns:38px minmax(0,1fr) 30px;gap:12px;min-height:84px;padding:16px}.lesion-index{width:36px;height:36px}.lesion-card-content{padding:16px}.footer-inner{flex-direction:column;justify-content:center;align-items:flex-start;gap:10px;min-height:138px}.footer-inner div{text-align:left}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important}}
