:root { --primary: #07e; --bg: #f4f4f9; --card-bg: white; --text: #333; --light-text: #555; --accent: #c50; }
html, body {padding: 0;margin: 0;}
body {font-size: 16px;font-family:'D2 coding';width:100%;background: var(--bg);color: var(--text);margin: 0;padding: 20px;box-sizing: border-box;line-height: 1.6;word-break: keep-all;letter-spacing: 0.25px;}
body * {padding: 0;margin: 0;}

.container { max-width:720px;margin: 0 auto;width: 100%; }

.card { background: var(--card-bg); padding: 1.5em 2em; border-radius: 20px; box-shadow: 0 10px 25px rgba(0, 0, 0, 0.05); width: 100%; box-sizing: border-box; border: 1px solid #eaeaea; position: relative; overflow: hidden; }
.card::before { 
    content: ""; position: absolute; top: 0; left: 0; width: 100%; height: 5px; 
    background: linear-gradient(90deg, var(--primary), var(--accent), var(--primary)); 
    background-size: 200% 100%;
    animation: flowLine 3s linear infinite; /* 추가 */
}

@keyframes flowLine {
    0% { background-position: 200% 0; }
    100% { background-position: 0 0; }
}

.card, .map-container {position:relative;z-index:2;}

.map-container {
    border-radius: 20px;
    overflow: hidden;
    width: 100%;
    box-sizing: border-box;
    margin-top: 1.5em;
    background-color: #fff;
    border: 1px solid #eaeaea;
}

.map-container #map {
    width: 100%;
    height: 300px;
    display: block;
}

.map-container .desc {padding-bottom:15px;}
.map-container .gps-marker {
    width: 14px;
    height: 14px;
    background: #07e;
    border: 2px solid white;
    border-radius: 50%;
    position: relative;
    box-shadow: 0 0 5px rgba(0,0,0,0.3);
    z-index: 10;
}

.map-container .gps-marker::after {
    content: '';
    position: absolute;
    width: 100%; height: 100%;
    top: -3px; left: -3px;
    border: 3px solid #07e;
    border-radius: 50%;
    animation: marker-pulse 1s ease-out infinite;
    transform-origin: center;
}

@keyframes marker-pulse {
    0% { transform: scale(1); opacity: 1; }
    100% { transform: scale(3); opacity: 0; }
}

.map-container, .content {margin-top:1em;background-color:#fff;}

h1 { font-size: 1.5em;color: var(--text); text-transform: uppercase; letter-spacing: 1px; text-align: center;margin-bottom: 1em;}
h2 { font-size: 1.25em;color: var(--light-text);text-align:center;text-align: center;font-weight: 500;}
.ip {margin:0.5em 0;text-align: center;color: var(--primary);font-size: 2.5em;line-height: 1;}
.ip input { font-size: 2.5em; font-weight: 800; color: var(--primary); }

.info {display: flex; justify-content: center; align-items: center; color: var(--light-text); font-weight: 600; font-size: 1.1em; }
.info img { height: 24px; margin-left: 8px; border-radius: 3px; border: 1px solid #eee; }
.desc {margin-top: 0.5em; color:#444; text-align:center;}
blockquote {margin-top: 1em;padding-top: 1em;text-align: left;border-top: 1px dotted #bbb;}

.content { width: 100%; background: var(--card-bg); padding: 2.5em; border-radius: 16px; border: 1px solid #eaeaea; box-sizing: border-box; text-align: left; animation: fadeIn 0.4s; }
.content h2 { font-size: 1.1em; font-weight: 600;color: var(--text); margin-bottom: 12px; display: flex; align-items: center; }
.content h2::before { content: "⚡"; margin-right: 8px; font-family:system-ui;}
.content p { font-size: 0.92em; color: var(--light-text); margin-bottom: 20px; word-break:keep-all;}

.tech-note { background: #fff9f4; border-radius: 10px; padding: 15px; font-size: 0.92em; border-left: 4px solid var(--accent); margin-top: 10px;}
.tech-note strong { color: var(--accent); }

.policies {white-space: pre-line;line-height: 1.5;word-break: keep-all;}
.policies strong {text-shadow: 1px 1px 2px #777;font-size:1.25em}
.policies + ul,
.policies ul {list-style: decimal;margin-left: 1.5em;}
.policies + ul {margin-top: 1.5em;}
.policies + ul li {}

@keyframes fadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }
footer { margin-top: 25px; text-align:center;}
footer ul {display:flex;font-size:0.8em;list-style:none;color:var(--light-text);justify-content: center;margin-top: .75em;}
footer ul li {position:relative;font-weight: 600;text-align: center;line-height:1;padding-right:10px; }
footer ul li ~ li {padding-left:10px;}
footer ul li ~ li:before {content:'';position:absolute;top:0;left:0;height:100%;width:1px;background-color:var(--primary);}
footer ul li a { color: var(--primary); text-decoration: none; cursor: pointer;	font-size: 1.1em; }
footer ul li a:hover { text-decoration: underline; }
.back-btn { display: inline-block; margin-top: 20px; color: var(--primary); text-decoration: none; font-weight: bold; cursor: pointer; }
#map {width:100%;height:400px;}

@media screen and (max-width: 768px) {
  body {font-size:15px}
}
@media screen and (max-width: 640px) {
  body {font-size:14px}
}
@media screen and (max-width: 425px) {
  body {font-size:13px}
  .card {padding:2em 0;}
}

.content-ad {width:100%;margin-top: 1em;}
.side-ad {position: fixed;top:2em;width: 180px;z-index:1;}
.side-ad.left-side {right: 50%;transform: translateX(-400px);}
.side-ad.right-side {left: 50%;transform: translateX(400px);}

@media (max-width: 1210px) {
  .side-ad { display: none; }
}