:root{--bg: #0a0e23;--bg-2: #0f1530;--panel: #141b3d;--panel-hi: #1b2350;--bar: #0a0d20;--ink: #ecebf6;--ink-dim: #9aa0c8;--ink-faint: #5d6394;--line: #444d86;--line-soft: #232a55;--accent: #ff9d3d;--accent-d: #e87f15;--accent-ink: #1c1003;--accent-soft: #2a2238;--gold-50: #2a2440;--star: #f3f1ff;--ok: #5fd38a;--danger: #ff6b5e;--shadow-hard: 3px 3px 0 rgba(0, 0, 0, .45)}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:Galmuri11,Pretendard Variable,-apple-system,BlinkMacSystemFont,sans-serif;background-color:var(--bg);color:var(--ink);line-height:1.7;min-height:100dvh;-webkit-font-smoothing:none;font-smooth:never;position:relative;overflow-x:hidden}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-2;background-color:var(--bg);background-image:radial-gradient(1px 1px at 20px 32px,var(--star),transparent),radial-gradient(1px 1px at 80px 120px,#c9c6ef,transparent),radial-gradient(1px 1px at 160px 60px,var(--star),transparent),radial-gradient(1px 1px at 120px 180px,#b9c6ff,transparent),radial-gradient(2px 2px at 240px 220px,var(--star),transparent),radial-gradient(1px 1px at 300px 90px,#ffd9a8,transparent),radial-gradient(1px 1px at 360px 300px,var(--star),transparent),radial-gradient(1px 1px at 60px 280px,#c9c6ef,transparent);background-repeat:repeat;background-size:400px 360px;image-rendering:pixelated}body:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background-image:radial-gradient(1px 1px at 50px 100px,var(--accent),transparent),radial-gradient(1px 1px at 210px 40px,var(--star),transparent),radial-gradient(2px 2px at 330px 160px,#ffe1b3,transparent),radial-gradient(1px 1px at 150px 240px,var(--star),transparent);background-repeat:repeat;background-size:360px 320px;opacity:.5;animation:twinkle 4.5s steps(2) infinite alternate}@keyframes twinkle{0%{opacity:.25}to{opacity:.7}}img{image-rendering:pixelated}.container{width:100%;max-width:1040px;margin:0 auto;padding:0 20px}a{color:inherit}:focus-visible{outline:3px solid var(--accent);outline-offset:2px}::selection{background:var(--accent);color:var(--accent-ink)}.win{background:var(--panel);border:2px solid var(--line);box-shadow:inset 0 0 0 2px var(--panel-hi),var(--shadow-hard)}.win-title{display:flex;align-items:center;gap:8px;background:var(--bar);color:var(--ink);padding:8px 12px;font-size:.82rem;border-bottom:2px solid var(--line)}.win-title:before{content:"";width:9px;height:9px;background:var(--accent);box-shadow:12px 0 0 var(--ink-dim),24px 0 0 var(--line)}.site-header{position:sticky;top:0;z-index:100;background:var(--bar);border-bottom:3px solid var(--accent-d);box-shadow:0 2px #0006}.header-inner{display:flex;align-items:center;gap:18px;height:54px}.logo{display:flex;align-items:center;gap:9px;text-decoration:none;color:var(--ink);font-size:1.1rem;white-space:nowrap}.logo .logo-mark{width:30px;height:30px;display:grid;place-items:center;background:var(--bg-2);border:2px solid var(--line);padding:3px}.logo .logo-mark svg{display:block;image-rendering:auto}.logo span{font-size:.58rem;color:var(--accent);letter-spacing:.18em;text-transform:uppercase;align-self:center}.nav{display:flex;gap:2px;margin-left:auto}.nav a{color:var(--ink);text-decoration:none;font-size:.8rem;padding:7px 13px;border:2px solid transparent;display:flex;align-items:center;gap:6px;white-space:nowrap;transition:background .08s steps(2),color .08s steps(2)}.nav a:hover{background:#ff9d3d29}.nav a.active{background:var(--accent);color:var(--accent-ink)}.nav a.soon{color:var(--ink-faint);cursor:default}.nav a.soon:hover{background:transparent}.nav em{font-style:normal;font-size:.56rem;border:1px solid currentColor;padding:1px 5px;opacity:.8}.eyebrow{display:inline-block;background:var(--bar);color:var(--accent);border:2px solid var(--line);padding:4px 12px;font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;margin-bottom:18px;box-shadow:var(--shadow-hard)}.hero{text-align:center;padding:56px 0 36px}.hero h1{font-family:Galmuri14,Galmuri11,sans-serif;font-size:clamp(2rem,5vw,3rem);font-weight:400;line-height:1.25;margin-bottom:16px;color:var(--ink);text-shadow:3px 3px 0 var(--accent-d)}.hero p{color:var(--ink-dim);max-width:52ch;margin:0 auto;font-size:.92rem}.hero strong{color:var(--ink)}@keyframes popIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.reveal{opacity:0;animation:popIn .25s steps(4) forwards}.reveal-1{animation-delay:.02s}.reveal-2{animation-delay:.08s}.reveal-3{animation-delay:.14s}.reveal-4{animation-delay:.2s}@media (prefers-reduced-motion: reduce){.reveal{animation:none;opacity:1}body:after{animation:none}html{scroll-behavior:auto}}.feature-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-bottom:44px}.feature-card{text-align:left;background:var(--panel);border:2px solid var(--line);box-shadow:inset 0 0 0 2px var(--panel-hi),var(--shadow-hard);padding:20px;cursor:pointer;display:flex;flex-direction:column;gap:10px;color:var(--ink);font:inherit;transition:transform .06s steps(2),box-shadow .06s steps(2),border-color .08s steps(2)}.feature-card:hover:not(:disabled){transform:translate(-2px,-2px);border-color:var(--accent);box-shadow:inset 0 0 0 2px var(--panel-hi),5px 5px #00000080}.feature-card:active:not(:disabled){transform:translate(1px,1px);box-shadow:inset 0 0 0 2px var(--panel-hi),1px 1px #00000080}.feature-card.is-soon{cursor:default;opacity:.55}.feature-icon{width:42px;height:42px;display:grid;place-items:center;background:var(--gold-50);border:2px solid var(--line);font-size:1.4rem}.feature-title{font-size:1.05rem;display:flex;align-items:center;gap:8px}.feature-desc{font-size:.82rem;color:var(--ink-dim);line-height:1.65}.feature-go{margin-top:auto;padding-top:6px;display:inline-flex;align-items:center;gap:7px;font-size:.78rem;color:var(--accent)}.feature-go .go-icon{display:inline-grid;place-items:center;width:20px;height:20px;background:var(--accent);color:var(--accent-ink);border:2px solid var(--ink);font-size:.7rem}.soon-tag{font-style:normal;font-size:.58rem;border:1px solid var(--ink-faint);color:var(--ink-dim);padding:2px 6px}.coming-soon{text-align:center;padding:90px 20px}.coming-soon-icon{display:inline-grid;place-items:center;width:64px;height:64px;margin-bottom:18px;font-size:2rem;background:var(--gold-50);border:2px solid var(--line);box-shadow:var(--shadow-hard)}.coming-soon h1{font-family:Galmuri14,Galmuri11,sans-serif;font-size:1.7rem;font-weight:400;margin-bottom:12px;text-shadow:3px 3px 0 var(--accent-d)}.coming-soon p{color:var(--ink-dim);max-width:44ch;margin:0 auto 6px;font-size:.88rem}.coming-soon-note{color:var(--accent);margin-top:10px}.btn-link{display:inline-flex;align-items:center;gap:8px;margin-top:26px;text-decoration:none;font-size:.85rem;color:var(--ink);padding:9px 18px;background:var(--panel);border:2px solid var(--line);box-shadow:var(--shadow-hard);transition:transform .06s steps(2),box-shadow .06s steps(2)}.btn-link:hover{transform:translate(-1px,-1px);box-shadow:4px 4px #00000080;border-color:var(--accent)}.btn-link:active{transform:translate(1px,1px);box-shadow:1px 1px #00000080}.layout{display:grid;grid-template-columns:1.05fr .95fr;gap:18px;align-items:start}@media (max-width: 760px){.layout{grid-template-columns:1fr}}.card{background:var(--panel);border:2px solid var(--line);box-shadow:var(--shadow-hard)}.card-inner{padding:20px}.card-bar{display:flex;align-items:center;gap:8px;background:var(--bar);color:var(--ink);padding:8px 14px;font-size:.8rem;border-bottom:2px solid var(--line)}.card-bar:before{content:"";width:9px;height:9px;background:var(--accent)}.field{margin-bottom:16px}.field:last-child{margin-bottom:0}label{display:block;font-size:.78rem;color:var(--ink);margin-bottom:7px}input[type=number],input[type=text]{width:100%;background:var(--bg-2);border:2px solid var(--line);border-radius:0;padding:11px 13px;color:var(--ink);font-family:inherit;font-size:.95rem;box-shadow:inset 2px 2px #0000004d;transition:background .08s steps(2)}input::placeholder{color:var(--ink-faint)}input[type=number]:focus,input[type=text]:focus{outline:none;background:#0c1230;border-color:var(--accent-d);box-shadow:inset 2px 2px #0000004d,0 0 0 2px var(--accent)}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}.input-wrap{position:relative;display:flex;align-items:center}.input-wrap .suffix{position:absolute;right:12px;color:var(--ink-dim);font-size:.78rem;pointer-events:none}.input-wrap input{padding-right:60px}.hint{font-size:.74rem;color:var(--ink-dim);margin-top:7px;line-height:1.55}.exp-readout{margin-top:7px;font-size:.82rem;color:var(--accent)}.group{margin-bottom:18px;padding-top:16px;border-top:2px dashed var(--line-soft)}.group h3{font-size:.74rem;letter-spacing:.04em;color:var(--accent);margin-bottom:13px}.group h3:before{content:"▸ "}.row{display:grid;grid-template-columns:1fr 1fr;gap:11px}.row .field{margin-bottom:0}.job-row{display:flex;flex-wrap:wrap;gap:6px}.job-btn{background:var(--bg-2);border:2px solid var(--line);color:var(--ink);font:inherit;font-size:.8rem;padding:7px 13px;cursor:pointer;box-shadow:2px 2px #0006;transition:transform .06s steps(2),background .08s steps(2)}.job-btn:hover{background:var(--gold-50);transform:translate(-1px,-1px)}.job-btn:active{transform:translate(1px,1px)}.job-btn.active{background:var(--accent);color:var(--accent-ink);border-color:var(--accent-d)}.job-row.job-sub{margin-top:7px;padding-left:12px;border-left:3px solid var(--accent-d)}.job-row.job-sub .job-btn{font-size:.74rem;padding:5px 10px;box-shadow:none}.preset-job,.route-job{font-style:normal;font-size:.62rem;padding:1px 6px;border:1px solid var(--line);color:var(--ink-dim);white-space:nowrap}.preset-chip.active .preset-job{border-color:var(--accent-d);color:var(--accent-ink);opacity:.9}.preset-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:11px}.preset-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.preset-chip.is-dim{opacity:.4}.preset-chip.is-dim:hover{opacity:.7}.preset-chip{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:2px;background:var(--bg-2);border:2px solid var(--line);padding:7px 22px 7px 13px;cursor:pointer;color:var(--ink);font:inherit;box-shadow:2px 2px #0006;transition:transform .06s steps(2),background .08s steps(2)}.preset-chip:hover{background:var(--gold-50);transform:translate(-1px,-1px)}.preset-chip:active{transform:translate(1px,1px)}.preset-chip.active{background:var(--accent);color:var(--accent-ink);border-color:var(--accent-d)}.preset-label{font-size:.82rem;display:flex;align-items:baseline;gap:6px}.preset-range{font-style:normal;font-size:.62rem;color:var(--ink-dim)}.preset-chip.active .preset-range{color:var(--accent-ink);opacity:.85}.preset-exp{font-size:.66rem;color:var(--ink-dim)}.preset-chip.active .preset-exp{color:var(--accent-ink);opacity:.9}.preset-del{position:absolute;top:3px;right:4px;width:15px;height:15px;line-height:1;padding:0;border:none;background:transparent;color:inherit;font-size:.85rem;cursor:pointer;opacity:.6}.preset-del:hover{opacity:1;color:var(--danger)}.preset-add-btn{align-self:stretch;background:transparent;border:2px dashed var(--line-soft);padding:7px 15px;color:var(--ink-dim);font:inherit;font-size:.8rem;cursor:pointer;transition:border-color .08s steps(2),color .08s steps(2)}.preset-add-btn:hover{border-color:var(--accent-d);color:var(--accent)}.preset-add-form{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:13px;margin-bottom:11px;background:var(--gold-50);border:2px solid var(--line)}.preset-add-form input[type=text],.preset-add-form input[type=number]{width:auto;flex:1 1 110px;padding:9px 11px;font-size:.85rem}.preset-add-form .pa-lv{display:flex;align-items:center;gap:6px;flex:1 1 150px}.preset-add-form .pa-lv input{flex:1 1 60px;min-width:0}.preset-add-form .pa-lv span{color:var(--ink-dim)}.pa-jobs{display:flex;flex-direction:column;gap:7px;flex:1 1 100%}.pa-jobs-label{font-size:.76rem;color:var(--ink-dim)}.pa-jobs-label em{font-style:normal;color:var(--ink-faint);font-size:.68rem}.pa-jobgroup{display:flex;flex-wrap:wrap;align-items:center;gap:5px}.pa-job{background:var(--bg-2);border:2px solid var(--line);color:var(--ink);font:inherit;font-size:.72rem;padding:4px 9px;cursor:pointer}.pa-job:disabled{opacity:.35;cursor:default}.pa-job.on{background:var(--accent);color:var(--accent-ink);border-color:var(--accent-d)}.pa-job-grp{min-width:58px;font-weight:600;border-color:var(--accent-d)}.pa-job-grp:after{content:" 전체";font-size:.6rem;opacity:.7}.preset-add-form .pa-save{flex:0 0 auto;padding:9px 18px;border:2px solid var(--accent-d);background:var(--accent);color:var(--accent-ink);font-family:inherit;font-size:.82rem;cursor:pointer;box-shadow:2px 2px #0006;transition:transform .06s steps(2),box-shadow .06s steps(2)}.preset-add-form .pa-save:hover{transform:translate(-1px,-1px);box-shadow:3px 3px #0006}.preset-add-form .pa-save:active{transform:translate(1px,1px);box-shadow:1px 1px #0006}.error-box{margin-top:14px;padding:10px 13px;background:#2a1420;border:2px solid var(--danger);color:var(--danger);font-size:.82rem}.result-card{position:sticky;top:74px}.result-path{display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:18px}.badge{background:var(--bg-2);border:2px solid var(--line);padding:6px 13px;font-size:.82rem}.badge-target{background:var(--accent);border-color:var(--accent-d);color:var(--accent-ink)}.arrow{color:var(--ink-dim);font-size:.95rem}.result-main{display:flex;flex-direction:column;gap:11px}.result-stat{background:var(--bg-2);border:2px solid var(--line);padding:16px 18px;display:flex;flex-direction:column;gap:5px}.result-stat.highlight{background:var(--gold-50);border-color:var(--accent-d)}.stat-label{font-size:.72rem;color:var(--ink-dim)}.stat-label:before{content:"■ ";color:var(--accent);font-size:.6rem}.stat-value{font-family:Galmuri14,Galmuri11,sans-serif;font-size:1.7rem;color:var(--ink)}.result-stat.highlight .stat-value{color:var(--accent)}.stat-sub{font-size:.78rem;color:var(--ink-dim)}.route-card{margin-top:18px}.route-lead{font-size:.8rem;color:var(--ink-dim);margin-bottom:14px;line-height:1.6}.route-list{list-style:none;display:flex;flex-direction:column;gap:8px}.route-step{display:grid;grid-template-columns:26px 116px 1fr auto;align-items:center;gap:12px;background:var(--bg-2);border:2px solid var(--line);padding:10px 13px}.route-step.is-gap{border-style:dashed;opacity:.85}.route-num{display:grid;place-items:center;width:22px;height:22px;background:var(--accent);color:var(--accent-ink);border:2px solid var(--accent-d);font-size:.72rem}.route-step.is-gap .route-num{background:var(--line);color:var(--ink);border-color:var(--line-soft)}.route-band{font-size:.82rem;color:var(--accent);display:flex;align-items:center;gap:4px;white-space:nowrap}.route-arrow{color:var(--ink-faint)}.route-spot{font-size:.92rem;display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.route-eph{font-style:normal;font-size:.7rem;color:var(--ink-dim)}.route-step.is-gap .route-spot{color:var(--ink-dim)}.route-time{font-size:.8rem;color:var(--ink-dim);white-space:nowrap;text-align:right}.route-total{display:flex;align-items:center;justify-content:space-between;margin-top:14px;padding:12px 16px;background:var(--gold-50);border:2px solid var(--accent-d);font-size:.85rem}.route-total strong{font-family:Galmuri14,Galmuri11,sans-serif;font-size:1.3rem;font-weight:400;color:var(--accent)}.route-note{margin-top:12px;font-size:.74rem;color:var(--ink-dim);border:2px dashed var(--line-soft);padding:10px;line-height:1.6}@media (max-width: 520px){.route-step{grid-template-columns:22px 1fr;row-gap:4px}.route-band,.route-spot{grid-column:2}.route-time{grid-column:2;text-align:left}}.disclaimer{margin:36px auto 0;max-width:58ch;font-size:.74rem;color:var(--ink-dim);text-align:center;line-height:1.7;padding:12px;border:2px dashed var(--line-soft)}.disclaimer:before{content:"※ "}.site-footer{border-top:3px solid var(--accent-d);background:var(--bar);padding:22px 0;margin-top:56px}.site-footer p{text-align:center;color:var(--ink-dim);font-size:.76rem}@media (max-width: 720px){.feature-grid{grid-template-columns:1fr}.hero{padding:40px 0 28px}.nav a{padding:7px 9px;font-size:.74rem}.nav em{display:none}}
