:root{--paper: #ece4d2;--paper-deep: #e2d7bf;--ink: #2b2620;--ink-soft: #5a5244;--accent: #8a4b2f;--pine: #4a5d43;--line: #c9bda1;--card: #f6f1e4}*{margin:0;padding:0;box-sizing:border-box}html{background:var(--paper)}body{font-family:Noto Sans KR,sans-serif;color:var(--ink);background:radial-gradient(1200px 500px at 50% -100px,#f8f3e6 0%,transparent 70%),var(--paper);line-height:1.65;-webkit-font-smoothing:antialiased}.hub{max-width:720px;margin:0 auto;padding:0 20px calc(40px + env(safe-area-inset-bottom))}.hero{text-align:center;padding:56px 8px 40px}.hero-kicker{font-size:14px;letter-spacing:.35em;color:var(--ink-soft);margin-bottom:10px}.hero-title{font-family:Nanum Myeongjo,serif;font-size:clamp(52px,14vw,84px);font-weight:800;letter-spacing:.12em;line-height:1.1}.hero-intro{margin:22px auto 0;max-width:34em;font-size:15px;color:var(--ink-soft);text-align:left;text-wrap:pretty}.hero-progress{margin-top:28px;display:flex;flex-direction:column;align-items:center;gap:8px}.hero-stones{display:flex;gap:6px}.stone{width:14px;height:10px;border-radius:45% 45% 40% 40%;background:var(--line);opacity:.55}.stone-on{background:var(--pine);opacity:1}.hero-count{font-size:13px;color:var(--ink-soft);letter-spacing:.08em}.trail{list-style:none;position:relative;padding:8px 0 24px}.trail:before{content:"";position:absolute;top:0;bottom:0;left:50%;border-left:2px dashed var(--line);transform:translate(-1px)}.pass{position:relative;margin:26px 0;display:flex}.pass-marker{position:absolute;left:50%;top:26px;transform:translate(-50%);width:34px;height:34px;border-radius:50%;background:var(--card);border:2px solid var(--line);display:flex;align-items:center;justify-content:center;font-family:Nanum Myeongjo,serif;font-weight:700;font-size:15px;color:var(--ink-soft);z-index:1}.pass-cleared .pass-marker{border-color:var(--pine);font-size:17px}.pass-open .pass-marker{border-color:var(--accent);color:var(--accent)}.pass-body{width:calc(50% - 34px);background:var(--card);border:1px solid var(--line);border-radius:14px;padding:18px 18px 16px;text-decoration:none;color:inherit;display:block}.pass.left .pass-body{margin-right:auto}.pass.right .pass-body{margin-left:auto}a.pass-body{transition:transform .15s ease,box-shadow .15s ease}a.pass-body:hover{transform:translateY(-2px);box-shadow:0 6px 18px #2b26201f}.pass-ordinal{font-size:12px;letter-spacing:.2em;color:var(--ink-soft);display:flex;align-items:center;gap:8px}.pass-badge{background:var(--pine);color:#f4f1e6;border-radius:999px;font-size:11px;letter-spacing:.1em;padding:1px 9px}.pass-title{font-family:Nanum Myeongjo,serif;font-size:24px;font-weight:800;margin-top:6px;line-height:1.3}.pass-genre{display:inline-block;margin-top:6px;font-size:12px;color:var(--accent);border:1px solid currentColor;border-radius:999px;padding:0 10px;letter-spacing:.12em}.pass-subtitle{margin-top:12px;font-weight:700;font-size:15px}.pass-blurb{margin-top:6px;font-size:14px;color:var(--ink-soft);text-wrap:pretty}.pass-quote{margin-top:12px;padding:8px 12px;border-left:3px solid var(--line);font-family:Nanum Myeongjo,serif;font-size:13.5px;color:var(--ink-soft);background:var(--paper-deep);border-radius:0 8px 8px 0}.pass-cta{margin-top:14px;font-weight:700;font-size:14px;color:var(--accent)}.pass-cleared .pass-cta{color:var(--pine)}.pass-soon .pass-body{opacity:.62;border-style:dashed;background:transparent}.pass-soon-note{margin-top:10px;font-size:13px;color:var(--ink-soft)}.summit{text-align:center;padding:36px 20px 44px;border-top:2px dashed var(--line);margin-top:8px}.summit-mark{font-size:42px}.summit h2{font-family:Nanum Myeongjo,serif;font-size:26px;margin-top:8px;letter-spacing:.15em}.summit p{margin:14px auto 0;max-width:30em;font-size:14.5px;color:var(--ink-soft);text-wrap:pretty}.summit-open h2{color:var(--pine)}.credit{text-align:center;font-size:12.5px;color:var(--ink-soft);padding-top:8px;line-height:2}.credit a{color:inherit}@media(max-width:560px){.trail:before{left:20px}.pass-marker{left:20px;top:20px}.pass-body,.pass.left .pass-body,.pass.right .pass-body{width:auto;margin-left:48px;margin-right:0}.hero{padding-top:44px}}
