:root{color-scheme:light;--ink:#183834;--muted:#526963;--green:#006c60;--line:#dce6e2;--soft:#f2f7f4;font-family:Arial,"Malgun Gothic","Apple SD Gothic Neo",sans-serif;color:var(--ink);background:#fff;font-synthesis:none}
*{box-sizing:border-box}body{margin:0;font-size:16px;line-height:1.65}button,select,a{-webkit-tap-highlight-color:transparent}button,select{font:inherit;color:inherit}button,a,select{touch-action:manipulation}button{min-height:48px;border:1px solid var(--line);border-radius:10px;background:#fff;padding:10px 18px;cursor:pointer;font-weight:700;line-height:1.4}button:hover:not(:disabled){border-color:var(--green);background:#eef7f3}button:disabled{opacity:.42;cursor:default}button.primary,button[aria-pressed="true"]{background:var(--green);color:#fff;border-color:var(--green)}button.primary:hover:not(:disabled),button[aria-pressed="true"]:hover{background:#00584e}a{color:var(--green)}:focus-visible{outline:3px solid #da9a24;outline-offset:4px}[hidden]{display:none!important}h1,h2,p{margin:0}h1,h2{word-break:keep-all}img{max-width:100%}
.site-header{max-width:1256px;margin:auto;padding:24px 28px;display:flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;min-width:0}.brand img{display:block;width:210px;height:auto;max-height:65px;object-fit:contain}.patient-links{display:flex;gap:24px;align-items:center}.patient-links a{text-decoration:none;min-height:44px;display:flex;align-items:center;gap:8px}.phone{font-size:14px}.phone b{font-size:16px}
main{max-width:1200px;margin:auto;padding:28px 28px 40px}.heading{margin-bottom:22px}.heading .eyebrow{font-size:14px;color:var(--green);font-weight:700;margin-bottom:2px}.heading h1{font-size:32px;letter-spacing:-1px;line-height:1.35;margin-bottom:6px}.heading>p:last-child{color:var(--muted)}
.tour-controls{margin-bottom:22px}.floor-select{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;max-width:610px}.floor-select button{padding:10px 5px}.experience{display:grid;grid-template-columns:minmax(0,1fr);gap:20px}.photo-area{min-width:0}.photo-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.view-badge{display:flex;gap:12px;align-items:center;min-width:0}.view-badge b{font-size:14px;background:#e5f2ec;color:#005e50;padding:4px 10px;border-radius:6px;flex-shrink:0}.view-badge h2{font-size:21px;line-height:1.35}#step-count{color:var(--muted);font-size:14px;font-variant-numeric:tabular-nums;white-space:nowrap}
#viewer{position:relative;aspect-ratio:16/9;width:100%;overflow:hidden;border-radius:12px 12px 0 0;background:#edf1ef;isolation:isolate}#fallback,#panorama{display:block;width:100%;height:100%;position:absolute;inset:0}#fallback{object-fit:contain;object-position:center;transform:none!important}#panorama{touch-action:none;cursor:grab}#panorama:active{cursor:grabbing}#panorama canvas{display:block;width:100%;height:100%}#viewer:fullscreen{aspect-ratio:auto;height:100%;border-radius:0;background:#101c19}
.playback-track{height:3px;background:#dbe8e0;overflow:hidden}.playback-track i{display:block;height:100%;width:0;background:var(--green)}
.step-navigation{display:grid;grid-template-columns:1fr 1.2fr 1fr;gap:10px;margin-top:14px}.step-navigation button{min-height:54px;font-size:16px;padding:10px 8px}.photo-meta{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:8px}.auto-status{font-size:14px;color:var(--muted);font-variant-numeric:tabular-nums}.photo-meta button{border:0;text-decoration:underline;text-underline-offset:4px;color:var(--green);flex-shrink:0;padding:8px;min-height:44px}
#loading{display:flex;align-items:center;gap:10px;background:var(--soft);padding:12px;margin-top:10px;border-radius:8px;font-size:14px}.spinner{height:18px;width:18px;flex-shrink:0;border:2px solid #c5d9ce;border-top-color:var(--green);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
.space-description{border-bottom:1px solid var(--line);padding:0 0 24px}.space-description h2{font-size:21px;margin-bottom:8px;line-height:1.45}.space-description>p{max-width:900px;color:var(--muted)}.step-notice{margin-top:10px;font-size:14px}#completed{background:var(--soft);padding:18px;border-radius:10px;margin-top:16px}#completed p{margin:4px 0 12px}
.space-picker{margin:26px 0}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:14px}.section-heading h2{font-size:20px}.route-row{display:flex;align-items:center;gap:10px}.route-row label{font-size:14px;white-space:nowrap}.route-row select{min-height:48px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:8px 34px 8px 12px;max-width:100%}#journey-steps{display:flex;flex-wrap:wrap;gap:8px}#journey-steps button{display:flex;align-items:center;gap:8px;text-align:left;padding:10px 14px}#journey-steps .number{display:none}#journey-steps button>span:last-child{display:flex;align-items:center;gap:8px}#journey-steps small{font-size:14px;font-weight:400;color:var(--muted)}#journey-steps [aria-current="step"]{border-color:var(--green);background:#e9f4ef;box-shadow:inset 0 0 0 1px var(--green)}#route-description{font-size:14px;color:var(--muted);margin-top:12px}
.more-views,.review-note{border-top:1px solid var(--line);padding:10px 0}summary{cursor:pointer;min-height:48px;padding:12px 2px;font-weight:700}.more-content{padding:12px 0;display:flex;flex-wrap:wrap;align-items:center;gap:16px}.mode-switch,.view-actions{display:flex;flex-wrap:wrap;gap:8px}.mode-switch button,.view-actions button{font-size:14px}.view-footer{display:flex;flex-wrap:wrap;gap:12px;font-size:14px;color:var(--muted);margin:12px 0}.view-footer #render-badge{font-weight:700;color:var(--green)}.scope-note,.review-note p{font-size:14px;color:var(--muted);max-width:940px}.review-note{margin-top:18px}.review-note summary{font-size:14px;font-weight:400}.review-note p{padding-bottom:8px}
dialog{border:0;border-radius:14px;padding:20px;max-width:min(1080px,94vw);width:1080px;max-height:92dvh;color:var(--ink);box-shadow:0 12px 60px #0005}dialog::backdrop{background:#10211dcc}.dialog-header{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:14px;position:sticky;top:-20px;background:white;z-index:2;padding:4px 0}.dialog-header strong{font-size:18px;line-height:1.4}.dialog-header button{flex-shrink:0}.dialog-header+img{display:block;width:100%;max-height:72dvh;object-fit:contain}dialog p{font-size:14px;margin-top:12px;color:var(--muted)}video{display:block;width:100%;max-height:62dvh;background:#101c19}.video-chapters{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.video-chapters button{font-size:14px;min-height:44px;padding:8px 12px}
.embedded .site-header,.embedded .heading{display:none}.embedded main{padding:20px;max-width:none}.embedded .tour-controls{margin-bottom:18px}.embedded #viewer{max-height:600px}
@media(min-width:1000px){.experience{grid-template-columns:minmax(0,1fr) 260px;gap:28px;align-items:start}.space-description{padding:46px 0 0;border-bottom:0}.space-description h2{font-size:21px}#viewer{aspect-ratio:4/3}.space-description>p{line-height:1.8}}
@media(max-width:680px){.site-header{padding:14px 16px;gap:14px}.brand img{width:155px;max-height:50px}.patient-links{gap:0}.patient-links>a:first-child{display:none}.phone{font-size:14px}.phone b{display:none}main{padding:20px 16px 30px}.heading{margin-bottom:18px}.heading h1{font-size:26px}.heading>p:last-child{font-size:15px}.floor-select{gap:6px}.floor-select button{font-size:16px;min-height:48px}.tour-controls{margin-bottom:18px}.photo-heading{margin-bottom:10px}.view-badge h2{font-size:18px}.view-badge{gap:8px}#viewer{aspect-ratio:4/3;border-radius:9px 9px 0 0}.step-navigation{gap:6px;margin-top:12px}.step-navigation button{font-size:15px;min-height:52px;padding:10px 4px}.photo-meta{gap:4px;align-items:center}.auto-status{font-size:14px;max-width:65%}.photo-meta button{font-size:14px;padding:8px 0}.experience{gap:20px}.space-description h2{font-size:19px}.space-description>p{font-size:16px;line-height:1.75}.space-description .step-notice{font-size:14px}.section-heading{align-items:flex-start;flex-direction:column;gap:12px}.section-heading h2{font-size:19px}.route-row{width:100%}.route-row select{flex:1}.space-picker{margin:22px 0}.more-content{align-items:stretch;flex-direction:column;gap:12px}.mode-switch{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.mode-switch button{font-size:14px;padding:9px 5px}.embedded main{padding:14px}.embedded #viewer{max-height:none}dialog{padding:14px;max-width:96vw;border-radius:10px}.dialog-header{top:-14px}.dialog-header strong{font-size:16px}.dialog-header+img{max-height:65dvh}.view-footer{gap:6px;flex-direction:column}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;scroll-behavior:auto!important}}
.photo-area{scroll-margin-top:20px}.embedded .photo-area{scroll-margin-top:144px}@media(max-width:720px){.embedded .photo-area{scroll-margin-top:104px}}
@media(min-width:1000px){#viewer{height:clamp(230px,calc(100dvh - 510px),520px);aspect-ratio:auto}.embedded #viewer{height:auto;aspect-ratio:4/3;max-height:600px}}
#viewer:fullscreen,.embedded #viewer:fullscreen{height:100dvh;max-height:none;width:100vw;aspect-ratio:auto}

/* 환자 따라가기: 개인정보 없는 가상 방문자를 실제 사진·재구성 장면 위에 표시한다. */
.heading{display:flex;justify-content:space-between;align-items:center;gap:24px}.heading>div>p:last-child{color:var(--muted)}#journey-start{flex-shrink:0;color:var(--green);background:#fff}
#journey-guide{position:absolute;z-index:3;left:50%;bottom:8px;width:170px;height:58%;transform:translateX(-50%);pointer-events:none;display:flex;align-items:flex-end;justify-content:center;transition:opacity .28s,transform .6s;filter:drop-shadow(0 14px 10px #0b1b1c4d)}#guide-person{display:block;max-width:100%;height:100%;object-fit:contain;object-position:center bottom;transform-origin:center bottom;animation:guide-step 2.2s ease-in-out infinite}.guide-name{position:absolute;top:1px;left:50%;transform:translateX(-50%);white-space:nowrap;background:#0f3f39e8;color:white;border:1px solid #ffffff70;padding:5px 9px;border-radius:18px;font-size:12px}.guide-path{position:absolute;left:50%;bottom:-9px;width:2px;height:42px;background:linear-gradient(#f3c06c,#f3c06c00);transform:translateX(-50%);z-index:-1}.walking-away{opacity:0;transform:translate(-50%,-48px) scale(.78)}@keyframes guide-step{0%,100%{transform:translateY(0) rotate(-.35deg)}50%{transform:translateY(-4px) rotate(.35deg)}}
.journey-stage{position:absolute;z-index:4;left:50%;top:14px;transform:translateX(-50%);display:flex;align-items:center;gap:9px;color:#173d36;background:#fffffff2;border:1px solid #fff;border-radius:24px;padding:8px 12px;font-size:13px;box-shadow:0 3px 15px #10283d18}.journey-stage i{width:30px;height:1px;background:#8eb4a8;position:relative}.journey-stage i::after{content:'›';position:absolute;right:-2px;top:-11px;color:var(--green);font-size:18px}.journey-stage strong{color:var(--green)}
.scene-next{position:absolute;z-index:5;right:16px;bottom:16px;display:grid;grid-template-columns:34px auto;column-gap:10px;align-items:center;background:#fffffff2;border-color:#fff;box-shadow:0 5px 20px #173a3c33;padding:9px 14px 9px 10px;text-align:left}.scene-next .round-arrow{grid-row:span 2;width:34px;height:34px;display:grid;place-items:center;border:1px solid #b9d5ca;border-radius:50%;font-size:20px}.scene-next>span:nth-child(2){font-size:13px}.scene-next small{font-size:11px;font-weight:400;color:var(--muted)}
#viewer[data-step=clinic] #journey-guide{left:29%;width:145px}#viewer[data-step=exam] #journey-guide{left:25%;width:145px}#viewer[data-step=ward] #journey-guide{left:52%;width:160px}#viewer[data-step=surgery] #journey-guide{left:30%;width:145px}#viewer[data-step=therapy] #journey-guide{left:52%;width:150px}#viewer[data-step=discharge] #journey-guide{left:64%;width:155px}#viewer[data-step=corridor6] #journey-guide{left:44%;width:150px}#viewer[data-step=meeting1] #journey-guide,#viewer[data-step=meeting2] #journey-guide{left:58%;width:145px}
#viewer[data-source=photo][data-step=arrival] #journey-guide,#viewer[data-source=photo][data-step=reception] #journey-guide{left:72%;bottom:22%;width:105px;height:42%}
@media(max-width:680px){.heading{display:block}.heading #journey-start{width:100%;margin-top:15px}.journey-stage{top:10px;right:10px;left:auto;transform:none;font-size:11px;padding:6px 8px}.journey-stage span{display:none}.journey-stage i{width:17px}#viewer #journey-guide{left:50%;width:105px;height:50%;bottom:5px}.guide-name{font-size:10px;padding:4px 7px}.scene-next{right:8px;bottom:8px;padding:7px 9px}.scene-next .round-arrow{width:30px;height:30px}.scene-next small{display:none}}
@media(prefers-reduced-motion:reduce){#guide-person{animation:none}.walking-away{transform:translateX(-50%)}}
