/* 돌잔치 ③ 한옥 돌상 · 한지 + 짙은 나무 + 색동, 송명체 */
:root{
  --page:#E9E0D0; --paper:#F7F1E6; --fg:#3A2B20; --sub:#8B7A68; --line:#E2D6C2;
  --accent:#A8383B; --on-accent:#fff; --sun:#A8383B; --wood:#5B3F2B; --gold:#B8955A;
  --font:'Gowun Batang',serif; --disp:'Song Myung',serif;
  --card:#F7F1E6; --fab-bg:rgba(91,63,43,.6);
  --sd:linear-gradient(90deg,#C8373B 0 14.28%,#E9A23B 0 28.56%,#F3D774 0 42.84%,#4E9A64 0 57.12%,#3B6FB0 0 71.4%,#E68BA4 0 85.68%,#F7F1E6 0);
}
body{background:var(--page)}
.hj{max-width:480px;margin:0 auto;overflow:hidden;box-shadow:0 0 50px rgba(60,40,20,.15);
  background:var(--paper) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.55' numOctaves='3'/%3E%3CfeColorMatrix values='0 0 0 0 .5 0 0 0 0 .42 0 0 0 0 .3 0 0 0 .07 0'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E")}
.sakdong{height:10px;background:var(--sd);background-size:84px 100%}
.k{font:400 15px/1 var(--disp);letter-spacing:.5em;padding-left:.5em;color:var(--accent);margin-bottom:12px}
h2{font:400 24px/1.4 var(--disp);margin-bottom:22px}
.sub{color:var(--sub);font-size:13.5px;line-height:1.8;margin-bottom:16px}
.sec{padding:64px 26px 20px;text-align:center}
.cv{text-align:center;padding-bottom:20px}
.cv-k{font:400 17px/1 var(--disp);letter-spacing:.9em;padding-left:.9em;color:var(--wood);margin:34px 0 22px}
.arch{width:76%;margin:0 auto;border-radius:999px 999px 0 0;overflow:hidden;border:6px solid #fff;outline:1px solid var(--gold);outline-offset:4px;box-shadow:0 18px 40px rgba(60,40,20,.2)}
.arch img{width:100%;height:auto}
.cv h1{font:400 34px/1.3 var(--disp);margin-top:30px;letter-spacing:.08em}
.cv h1 small{display:block;font:400 17px var(--font);letter-spacing:.06em;margin-top:6px}
.cv-d{font-size:14px;color:var(--sub);line-height:1.9;margin-top:12px}
.lt{font-size:15px;line-height:2.1}
.pn{margin-top:18px;font-size:14px}.pn b{font:400 17px var(--disp)}
.nm{margin:34px auto 0;max-width:300px;border:1px solid var(--gold);padding:18px;position:relative}
.nm::before{content:"이름 풀이";position:absolute;top:-10px;left:50%;transform:translateX(-50%);background:var(--paper);padding:0 10px;font-size:12px;color:var(--gold);letter-spacing:.2em}
.nm-h{font:400 30px/1 var(--disp);color:var(--wood)}
.nm-t{font-size:13.5px;margin-top:10px;line-height:1.8}
.ds-ph{display:block;width:100%;border:6px solid #fff;box-shadow:0 10px 26px rgba(60,40,20,.16);margin-bottom:22px}
.ds-ph img{width:100%;height:auto}
.ds{text-align:left}
.ds div{display:grid;grid-template-columns:96px 1fr;gap:10px;padding:11px 0;border-top:1px solid var(--line)}
.ds dt{font:400 16px var(--disp);color:var(--accent)}
.ds dd{font-size:14px;line-height:1.7}
.dj{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:16px}
.dj li{background:#fff;padding:14px 10px;border-top:4px solid;border-image:var(--sd) 1}
.dj b{display:block;font:400 18px var(--disp)}
.dj span{font-size:12.5px;color:var(--sub)}
.big{font:400 30px/1.3 var(--disp);margin-bottom:6px}
.calw{background:#fff;padding:14px 10px;margin:8px 0 16px;border:1px solid var(--line)}
.cal td.on span{background:var(--accent)}
.dd{font-size:14.5px;margin-bottom:16px}.dd b{font:400 24px var(--disp);color:var(--accent)}
.place .ways,.place .maplinks{text-align:left}
.gps{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.gp{border:5px solid #fff;box-shadow:0 6px 14px rgba(60,40,20,.12)}
.gp img{width:100%;aspect-ratio:4/5;object-fit:cover}
.gb{margin-top:34px;text-align:left}
.gb-head{display:flex;justify-content:space-between;align-items:center}
.gb-head h3{font:400 19px var(--disp)}
.heart{text-align:left}.heart .k{text-align:center}
.cts{margin-top:18px}
.ft{text-align:center;padding:0 0 50px}
.ft-t{font:400 20px/1.5 var(--disp);margin:40px 0 20px}
.sh{display:flex;gap:8px;justify-content:center}
/* 문 열기 */
.hk-intro{position:fixed;inset:0;z-index:70;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#2A1C12;transition:opacity 1s,visibility 1s;overflow:hidden}
.hk-intro.gone{opacity:0;visibility:hidden}
.hk-back{position:absolute;inset:0;background:center/cover no-repeat;opacity:0;transform:scale(1.08);transition:opacity 1.4s .5s,transform 2.6s .5s}
.hk-intro.open .hk-back{opacity:1;transform:none}
.plaque{position:relative;z-index:3;display:flex;gap:18px;background:linear-gradient(#3B2618,#24170E);color:#E3C88E;padding:12px 26px;font:400 22px/1 var(--disp);letter-spacing:.3em;border:2px solid #7A5532;box-shadow:0 8px 20px rgba(0,0,0,.5);margin-bottom:26px;transition:opacity .8s}
.doors{position:relative;z-index:2;width:min(82vw,340px);aspect-ratio:.82;display:flex;perspective:1200px;border:10px solid var(--wood);border-top-width:16px;background:#1a110a;box-shadow:0 30px 60px rgba(0,0,0,.6)}
.door{flex:1;position:relative;background:#F3EBDD;
  background-image:linear-gradient(90deg,var(--wood) 0 3px,transparent 3px),linear-gradient(var(--wood) 0 3px,transparent 3px);background-size:33.33% 20%;background-position:-1px -1px;
  box-shadow:inset 0 0 0 5px var(--wood),inset 0 0 30px rgba(120,80,40,.25);transition:transform 1.8s cubic-bezier(.6,.05,.3,1)}
.door.l{transform-origin:left center}.door.r{transform-origin:right center}
.door::before{content:"";position:absolute;left:5px;right:5px;top:5px;height:8px;background:var(--sd);background-size:60px 100%}
.ring{position:absolute;top:50%;width:22px;height:22px;margin-top:-11px;border-radius:50%;border:3px solid var(--gold);box-shadow:0 2px 4px rgba(0,0,0,.4)}
.door.l .ring{right:8px}.door.r .ring{left:8px}
.hk-intro.open .door.l{transform:rotateY(-108deg)}
.hk-intro.open .door.r{transform:rotateY(108deg)}
.hk-intro.open .doors{background:transparent}
.hk-btn{position:relative;z-index:3;margin-top:28px;background:var(--accent);color:#fff;padding:14px 28px;font:400 16px var(--disp);letter-spacing:.14em;transition:opacity .6s}
.hk-n{position:relative;z-index:3;color:#CDB89A;font-size:12px;margin-top:12px;transition:opacity .6s}
.hk-intro.open .hk-btn,.hk-intro.open .hk-n,.hk-intro.open .plaque{opacity:0}
