.beach-home{--sky-top:#bdeaf6;--sky-mid:#daf3fb;--sky-low:#fdf4dd;--sea-far:#5fc7d6;--sea-mid:#3fb6cf;--sea-near:#2da3c4;--sand-far:#f6e3b4;--sand-near:#f4d98f;--board:#e7c79a;--ink:#2a3b46;--coral:#ff7a59;--coral-deep:#f0603e;--yellow:#ffd24a;--teal:#2bb6a8;--blue:#4aa3e0;--beige:#d9c3a4;--plum:#9a6cc7;--label-bg:#fffffff0;--shadow-soft:0 18px 40px #14465a2e;color:var(--ink);background:#cdeefb;font-family:Pretendard,system-ui,sans-serif;overflow-x:hidden}.beach-home .stage{width:100%;height:100svh;min-height:560px;position:relative;overflow:hidden}.beach-home .scene{width:100%;height:100%;display:block;position:absolute;inset:0}.beach-home .wordmark{z-index:40;color:#13414f;letter-spacing:-.01em;text-shadow:0 2px #ffffffb3,0 14px 26px #14465a2e;-webkit-user-select:none;user-select:none;font-family:Hahmlet,serif;font-size:clamp(28px,4.6vw,52px);font-weight:800;line-height:1;position:absolute;top:clamp(18px,3.2vw,34px);left:clamp(20px,3.6vw,44px)}.beach-home .wordmark .dot{color:var(--coral)}.beach-home .contact-pill{z-index:40;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#13414f;background:#ffffffd1;border:1.5px solid #ffffffb3;border-radius:999px;align-items:center;gap:7px;padding:8px 14px;font-size:clamp(12px,1.4vw,14px);font-weight:700;text-decoration:none;transition:transform .25s,box-shadow .25s;display:inline-flex;position:absolute;top:clamp(20px,3.2vw,36px);right:clamp(18px,3.6vw,40px);box-shadow:0 8px 20px #14465a29}.beach-home .contact-pill:hover{transform:translateY(-2px);box-shadow:0 12px 26px #14465a3d}.beach-home .group{transform-box:fill-box;transform-origin:bottom;pointer-events:none;outline:none;animation:none!important;transform:none!important}.beach-home .group *{animation:none!important}.beach-home .group:focus-visible .focus-ring{opacity:1}.beach-home .focus-ring{opacity:0;pointer-events:none;transition:opacity .2s}.beach-home .group .glow{opacity:0;pointer-events:none;transition:opacity .4s}.beach-home .group .village-art{pointer-events:none;transform-box:fill-box;transform-origin:bottom;transition:transform .35s cubic-bezier(.2,.9,.25,1.1),filter .3s}.beach-home .group .hit-area{cursor:pointer;fill:#0000;pointer-events:auto}.beach-home .group.is-active .village-art{filter:none;transform:none}.beach-home .group:hover .glow,.beach-home .group:focus-visible .glow{opacity:0}.beach-home .stage.has-active .group:not(.is-active),.beach-home .stage.has-active .group.is-active{opacity:1;filter:none}.beach-home .labels{z-index:30;pointer-events:none;position:absolute;inset:0}.beach-home .label{background:var(--label-bg);box-shadow:var(--shadow-soft);text-align:center;opacity:0;white-space:nowrap;border:2px solid #fff;border-radius:16px;padding:9px 15px 10px;transition:opacity .35s,transform .35s cubic-bezier(.2,.9,.25,1.1);position:absolute;transform:translate(-50%)translateY(8px)}.beach-home .label:after{content:"";background:var(--label-bg);border-bottom:2px solid #fff;border-right:2px solid #fff;width:16px;height:16px;position:absolute;bottom:-8px;left:50%;transform:translate(-50%)rotate(45deg)}.beach-home .label.show{opacity:1;transform:translate(-50%)translateY(0)}.beach-home .label .name{font-family:Hahmlet,serif;font-size:clamp(16px,2vw,21px);font-weight:700;line-height:1;display:block}.beach-home .label .sub{color:#5a6b75;margin-top:3px;font-family:Nanum Pen Script,cursive;font-size:clamp(15px,1.9vw,19px);display:block}.beach-home .label.elem .name{color:var(--coral-deep)}.beach-home .label.mid .name{color:#1d8aa8}.beach-home .label.visit .name{color:var(--plum)}.beach-home .hint{z-index:25;pointer-events:none;background:#ffffffe6;border:2px solid #fff;border-radius:999px;padding:5px 12px;font-family:Hahmlet,serif;font-size:clamp(12px,1.5vw,15px);font-weight:700;transition:opacity .3s;animation:3.4s ease-in-out infinite bob;position:absolute;transform:translate(-50%,-50%);box-shadow:0 8px 18px #14465a29}.beach-home .hint .tap{color:#7c8b94;margin-top:1px;font-family:Pretendard;font-size:.8em;font-weight:600;display:block}.beach-home .hint.elem{color:var(--coral-deep)}.beach-home .hint.mid{color:#1d8aa8;animation-delay:.6s}.beach-home .hint.visit{color:var(--plum);animation-delay:1.2s}.beach-home .stage.has-active .hint{opacity:0}@keyframes bob{0%,to{transform:translate(-50%,-50%)translateY(0)}50%{transform:translate(-50%,-50%)translateY(-6px)}}.beach-home .cloud{animation:60s linear infinite drift}.beach-home .cloud.c2{animation-duration:88s;animation-delay:-20s}.beach-home .cloud.c3{animation-duration:74s;animation-delay:-50s}@keyframes drift{0%{transform:translate(-6vw)}to{transform:translate(110vw)}}.beach-home .gull{animation:22s linear infinite gullPath}.beach-home .gull.g2{animation-duration:30s;animation-delay:-8s}@keyframes gullPath{0%{transform:translate(-60px)}50%{transform:translate(50vw,-22px)}to{transform:translate(110vw,6px)}}.beach-home .gull-wing{transform-box:fill-box;transform-origin:50%;animation:1.1s ease-in-out infinite flap}@keyframes flap{0%,to{transform:scaleY(1)}50%{transform:scaleY(.45)}}.beach-home .wave-a{animation:9s ease-in-out infinite waveShift}.beach-home .wave-b{animation:12s ease-in-out infinite reverse waveShift}@keyframes waveShift{0%,to{transform:translate(0)}50%{transform:translate(-26px)}}.beach-home .sparkle{animation:3s ease-in-out infinite twinkle}.beach-home .sparkle.s2{animation-delay:.7s}.beach-home .sparkle.s3{animation-delay:1.4s}.beach-home .sparkle.s4{animation-delay:2.1s}@keyframes twinkle{0%,to{opacity:.25;transform:scale(.7)}50%{opacity:.95;transform:scale(1.1)}}.beach-home .swimmer{transform-box:fill-box;transform-origin:50%;animation:3.2s ease-in-out infinite swimBob}.beach-home .swimmer.sw2{animation-duration:3.8s;animation-delay:-1.1s}@keyframes swimBob{0%,to{transform:translateY(0)rotate(0)}50%{transform:translateY(-5px)rotate(-2deg)}}.beach-home .dig-arm{transform-box:fill-box;transform-origin:90% 20%;animation:1.8s ease-in-out infinite dig}@keyframes dig{0%,to{transform:rotate(0)}50%{transform:rotate(26deg)}}.beach-home .flash{animation:4.5s ease-in-out infinite flash}@keyframes flash{0%,92%,to{opacity:0}94%{opacity:.95}96%{opacity:.2}}.beach-home .floaty{animation:5s ease-in-out infinite floaty}.beach-home .floaty.f2{animation-duration:6s;animation-delay:-1.6s}.beach-home .floaty.f3{animation-duration:5.6s;animation-delay:-3s}.beach-home .group.floaty{animation:none}@keyframes floaty{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.beach-home .bio{z-index:5;text-align:center;color:#5c5040;letter-spacing:.01em;background:linear-gradient(#fbf3df 0%,#f7ecd2 100%);border-top:2px solid #fff9;padding:14px clamp(16px,4vw,40px);font-size:clamp(12.5px,1.5vw,15px);position:relative}.beach-home .bio b{color:#3f3324;font-family:Hahmlet,serif;font-weight:700}.beach-home .bio .sep{color:#c8b48c;margin:0 8px}.beach-home .bio .tel{color:var(--coral-deep);white-space:nowrap;font-weight:700}.beach-home .watermark{z-index:60;color:#eaf7fb;letter-spacing:.02em;-webkit-user-select:none;user-select:none;pointer-events:none;background:#13414fdb;border-radius:999px;padding:6px 11px;font-size:12px;font-weight:600;position:fixed;bottom:12px;right:12px;box-shadow:0 6px 16px #0003}.beach-home .toast{z-index:70;color:#fff;opacity:0;pointer-events:none;background:#13414f;border-radius:14px;padding:13px 22px;font-size:15px;font-weight:700;transition:opacity .3s,transform .3s cubic-bezier(.2,.9,.25,1.1);position:fixed;bottom:64px;left:50%;transform:translate(-50%)translateY(20px);box-shadow:0 14px 36px #00000047}.beach-home .toast .em{margin-right:8px;font-family:Hahmlet,serif}.beach-home .toast.show{opacity:1;transform:translate(-50%)translateY(0)}@media (max-width:480px){.beach-home .stage{height:auto;min-height:0}.beach-home .scene{height:auto;position:static}.beach-home .label .sub{display:none}}@media (prefers-reduced-motion:reduce){.beach-home .cloud,.beach-home .gull,.beach-home .gull-wing,.beach-home .wave-a,.beach-home .wave-b,.beach-home .sparkle,.beach-home .swimmer,.beach-home .dig-arm,.beach-home .flash,.beach-home .floaty,.beach-home .hint{animation:none!important}}.beach-home .teacher-sec{color:#214b59;background:linear-gradient(#fbf3e0 0%,#f6ead0 100%);padding:clamp(54px,8vw,104px) 24px;font-family:Gowun Dodum,Pretendard,sans-serif;position:relative;overflow:hidden}.beach-home .teacher-sec .wave-top{width:100%;height:64px;display:block;position:absolute;top:-1px;left:0}.beach-home .teacher-wrap{z-index:1;grid-template-columns:1fr 1.1fr;align-items:center;gap:clamp(28px,5vw,64px);max-width:1000px;margin:0 auto;display:grid;position:relative}@media (max-width:760px){.beach-home .teacher-wrap{text-align:center;grid-template-columns:1fr}}.beach-home .t-eyebrow{color:#e6783c;letter-spacing:.02em;margin:0;font-family:Gowun Batang,serif;font-size:clamp(19px,2.6vw,24px);font-weight:700}.beach-home .t-name{color:#1c4250;letter-spacing:.01em;margin:.08em 0 .12em;font-family:Gowun Batang,serif;font-size:clamp(42px,7vw,66px);font-weight:700;line-height:1.04}.beach-home .t-role{color:#5a8597;letter-spacing:.04em;margin:0;font-family:Gowun Dodum,Pretendard,sans-serif;font-size:clamp(15px,2.2vw,18px);font-weight:400}.beach-home .t-poem{color:#3a6675;letter-spacing:.01em;margin:1.1em 0 1.5em;font-family:Gowun Batang,serif;font-size:clamp(16px,2.2vw,19px);line-height:2.05}.beach-home .t-cta{flex-wrap:wrap;justify-content:center;align-items:center;gap:14px;display:inline-flex}.beach-home .t-call{color:#fff;background:linear-gradient(135deg,#2aa6c4,#1b8aa6);border-radius:999px;align-items:center;gap:8px;padding:13px 22px;font-weight:800;text-decoration:none;transition:transform .2s;display:inline-flex;box-shadow:0 12px 24px #1b8aa652}.beach-home .t-call:hover{transform:translateY(-2px)}.beach-home .t-loc{color:#6b94a3;font-size:14px;font-weight:700}.beach-home .cv{background:#fffdf7;border:1px solid #ecdcc0;border-radius:26px;padding:clamp(24px,3vw,34px);position:relative;box-shadow:0 26px 54px #785a2824}.beach-home .cv-seal{color:#fff;background:#e6783c;border-radius:50%;justify-content:center;align-items:center;width:56px;height:56px;font-family:Hahmlet,serif;font-size:25px;font-weight:800;display:flex;position:absolute;top:-20px;right:26px;box-shadow:0 8px 18px #e6783c6b}.beach-home .cv-h{border-bottom:2px solid #f0e6d2;align-items:baseline;gap:10px;margin-bottom:6px;padding-bottom:12px;display:flex}.beach-home .cv-h b{color:#1c4250;font-family:Gowun Batang,serif;font-size:22px}.beach-home .cv-h em{color:#bd9a5e;letter-spacing:.18em;font-family:Gowun Batang,serif;font-size:13px;font-style:italic;font-weight:700}.beach-home .cv ul{text-align:left;margin:0;padding:0;list-style:none}.beach-home .cv li{border-bottom:1px dashed #efe6d4;align-items:flex-start;gap:14px;padding:14px 6px;display:flex}.beach-home .cv li:last-child{border-bottom:none}.beach-home .cv .mk{flex-shrink:0;font-size:23px;line-height:1.15}.beach-home .cv .main{color:#26424d;font-family:Gowun Dodum,Pretendard,sans-serif;font-size:clamp(15px,2.2vw,17px);font-weight:400;display:block}.beach-home .cv .sub{color:#8a7a5e;margin-top:3px;font-family:Gowun Dodum,Pretendard,sans-serif;font-size:13px;display:block}.beach-home .cv li.gold{background:linear-gradient(90deg,#d4a02824,#0000);border-radius:12px}.beach-home .cv li.gold .main{color:#b9821f}.beach-home{min-height:100vh;position:relative}.beach-home *{box-sizing:border-box}.beach-home .watermark,.beach-home .toast{display:none}.beach-home .beach-banner-slot{z-index:45;position:absolute;top:clamp(70px,9.5vh,104px);left:50%;transform:translate(-50%)}.beach-home .visitor-menu{z-index:46;opacity:0;visibility:hidden;pointer-events:none;background:#fffffff5;border:2px solid #fff;border-radius:18px;flex-direction:column;gap:6px;width:max-content;padding:10px;transition:opacity .3s,transform .3s cubic-bezier(.2,.9,.25,1.1);display:flex;position:absolute;top:40%;left:21%;transform:translate(-50%,8px);box-shadow:0 18px 40px #14465a3d}.beach-home .visitor-menu.open{opacity:1;visibility:visible;pointer-events:auto;transform:translate(-50%)}.beach-home .visitor-menu a{color:#214b59;white-space:nowrap;border-radius:12px;align-items:center;gap:10px;padding:9px 14px;font-family:Hahmlet,serif;font-size:15px;font-weight:700;text-decoration:none;transition:background .2s,transform .2s;display:flex}.beach-home .visitor-menu a:hover{background:#eaf7fb;transform:translate(2px)}.beach-home .visitor-menu a span{font-size:18px;line-height:1}@media (max-width:480px){.beach-home .visitor-menu{top:auto;bottom:16%;left:50%}}
