:root{color-scheme:light;--ink:#302918;--muted:#6a604c;--green:#153f2a;--green-light:#245b36;--gold:#c89b3c;--line:#bda977;--paper:#f3e7c9;--atlas:url('./assets/region-atlas.png');font-family:system-ui,-apple-system,BlinkMacSystemFont,'Apple SD Gothic Neo','Malgun Gothic',sans-serif;font-size:16px}
*{box-sizing:border-box}body{margin:0;background:#e9e4db;color:var(--ink);line-height:1.5}button,input,a{-webkit-tap-highlight-color:transparent}button,input{font:inherit}button,a,input{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:default}a{color:inherit}img{max-width:100%}[hidden]{display:none!important}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid #316d97;outline-offset:4px}button{color:var(--ink)}
.guide-shell{max-width:1160px;min-height:calc(100svh - 48px);margin:24px auto;border:5px ridge var(--gold);outline:1px solid #70531e;background-color:var(--paper);background-image:var(--atlas);background-size:400% 400%;background-position:0 100%;box-shadow:0 3px 12px #432c1729;display:flex;flex-direction:column}
.atlas-art{background-image:var(--atlas);background-size:400% 400%;background-repeat:no-repeat}.masthead,.guide-footer{color:#f9e9bb;background-color:var(--green);background-image:var(--atlas);background-size:400% 400%;background-position:33.333% 100%}.masthead{min-height:112px;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:20px 28px;border-bottom:3px double var(--gold)}.brand{display:flex;align-items:center;gap:14px;text-decoration:none;min-width:0}.brand h1{font-family:ui-serif,'Noto Serif KR','Batang',serif;font-size:clamp(24px,3vw,36px);font-weight:750;letter-spacing:-.055em;margin:0;line-height:1.25;word-break:keep-all}.crest{width:54px;height:48px;background-position:100% 100%;flex:none}.songs-button{display:flex;align-items:center;justify-content:center;gap:10px;min-height:66px;padding:8px 14px 8px 8px;flex:none;border:2px solid #ecc86c;box-shadow:inset 0 0 0 2px #6f592a,0 2px 2px #061a14;border-radius:10px;text-decoration:none;font-weight:750;font-size:20px;background-color:#144126}.songs-button:hover{background-color:#28613b}.ocarina{width:78px;height:48px;background-position:66.667% 100%}.songs-button .icon{filter:invert(91%) sepia(24%) saturate(520%);width:21px}
main{padding:22px 24px 24px;flex:1;min-width:0}.toolbar{display:grid;gap:14px;padding-bottom:23px;border-bottom:1px solid #bba77788}.segmented{display:flex;border:1px solid #9c8150;background:#f4e7c69c;border-radius:9px;overflow:visible;min-height:46px;padding:3px;gap:3px}.segmented button{min-width:0;min-height:40px;flex:1;border:1px solid transparent;border-radius:6px;background:transparent;font-size:16px;font-weight:650;padding:7px 8px;white-space:nowrap}.segmented button[aria-pressed=true]{background:var(--green);color:#fff1c8;border-color:#e4be4e;box-shadow:0 0 0 1px #8e6b2f,inset 0 0 0 1px #43703d}.segmented button:hover:not([aria-pressed=true]){background:#c9b47e40}.search-field{min-height:48px;display:flex;align-items:center;gap:12px;padding:0 14px;border:1px solid #8e7b5b;border-radius:9px;background:#fffaf0b8;margin:0}.search-field:focus-within{outline:2px solid #316d97;outline-offset:2px}.search-field input{width:100%;min-width:0;min-height:46px;padding:8px 0;border:0;outline:0;background:transparent;color:var(--ink);font-size:16px}.search-field input::-webkit-search-cancel-button{display:none}.search-field input::placeholder{color:#756d5d}.icon{width:22px;height:22px;flex:none}.icon-button{padding:10px;border:0;background:transparent;display:flex;min-width:44px;min-height:44px;align-items:center;justify-content:center}.content-layout{display:grid;grid-template-columns:minmax(230px,.82fr) minmax(0,1.18fr);padding-top:22px;gap:25px}.region-panel{padding-right:24px;border-right:1px solid #ac956955;min-width:0}.section-heading{font-size:20px;line-height:1.2;margin:0 0 18px;padding:8px 12px;border-left:3px solid var(--gold);background:var(--green);color:#fff0c6;letter-spacing:-.02em}.region-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.region-button{display:block;width:100%;min-width:0;padding:0;position:relative;aspect-ratio:4/3;border:3px ridge #ae813b;border-radius:8px;background-color:var(--green);overflow:hidden;text-align:left;box-shadow:0 1px 2px #44300a33}.region-button[aria-pressed=true]{border-color:#ffd86a;outline:2px solid #be8b22;outline-offset:2px;box-shadow:0 0 0 1px #fff4be inset}.region-button:hover{filter:brightness(1.08)}.region-button .atlas-art{display:block;width:100%;height:100%}.region-card-label{position:absolute;bottom:0;left:0;right:0;display:block;background:#112f22ed;color:#fff0ce;padding:5px 7px;font-weight:700;font-size:14px;line-height:1.35;word-break:keep-all}.region-card-count{display:block;color:#e5d7b2;font-size:11px;font-weight:400;line-height:1.4}.secondary-button{display:flex;align-items:center;justify-content:center;gap:10px;min-height:46px;width:100%;margin-top:16px;border:1px solid #9c8150;border-radius:8px;background:#f8edcf9e;font-size:15px;font-weight:650;padding:8px 12px}.secondary-button:hover{background:#e9d7a7}.region-summary{color:var(--muted);font-size:12px;line-height:1.6;margin:14px 0 0}.quest-panel{min-width:0;outline:none;scroll-margin-top:15px}.region-hero{width:100%;aspect-ratio:4/3;max-height:225px;border:3px ridge #ae813b;border-radius:9px;margin-bottom:17px}.region-title-row{display:flex;align-items:center;justify-content:space-between;gap:14px}.region-title-row h2{font-size:clamp(23px,3vw,29px);letter-spacing:-.045em;margin:0;padding-left:12px;border-left:4px solid var(--green);line-height:1.2;word-break:keep-all}.age-badge{flex:none;white-space:nowrap;color:#fff0ca;background:var(--green-light);padding:3px 12px;font-size:13px;border-radius:20px}.region-scope{color:var(--muted);font-size:13px;line-height:1.7;margin:8px 0 12px;word-break:keep-all}.progress-row{display:flex;align-items:center;gap:16px;margin:14px 0 17px;font-size:17px;font-weight:700;letter-spacing:-.02em}.progress-row>span{white-space:nowrap}progress{width:100%;height:11px;appearance:none;accent-color:#2e6a36;border:1px solid #ac9569;border-radius:20px;overflow:hidden;background:#c5b085}progress::-webkit-progress-bar{background:#c5b085}progress::-webkit-progress-value{background:#327345;border-radius:20px}progress::-moz-progress-bar{background:#327345}.completion-filter{min-height:43px}.completion-filter button{min-height:37px;font-size:15px}.result-summary{margin:14px 0 4px;font-size:12px;color:var(--muted)}.quest-list{list-style:none;margin:0;padding:0}.quest-row{display:flex;align-items:center;gap:3px;min-height:83px;border-bottom:1px solid #a88d584d}.completion-control{display:flex;align-items:center;justify-content:center;width:46px;min-height:48px;flex:none;cursor:pointer}.completion-control input{width:26px;height:26px;margin:0;accent-color:var(--green);cursor:pointer;flex:none}.quest-link{display:flex;align-items:center;justify-content:space-between;gap:12px;flex:1;min-width:0;min-height:76px;padding:10px 0 10px 4px;text-decoration:none}.quest-link:hover .quest-name{text-decoration:underline;text-underline-offset:3px}.quest-text{min-width:0}.quest-name{font-size:16px;font-weight:700;line-height:1.55;word-break:keep-all;overflow-wrap:anywhere}.quest-subtitle{font-size:12px;color:var(--muted);margin-top:3px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}.quest-note{display:block;color:#6f624b;font-size:12px;margin-top:4px;line-height:1.5;word-break:keep-all}.quest-note:empty{display:none}.quest-complete .quest-name{color:#4d5c44}.completed-label{color:var(--green);font-weight:750}.quest-tag{display:inline-block;font-size:10px;line-height:1.6;font-weight:650;color:#fff5d8;background:var(--green-light);padding:1px 5px;border-radius:3px;margin-left:6px;vertical-align:2px;white-space:nowrap}.quest-tag[data-kind=collection]{background:#766640}.quest-link>.icon{width:21px;height:21px}.interaction-hint{display:flex;gap:9px;align-items:center;color:#665e4c;font-size:13px;line-height:1.6;margin:22px 0 0}.interaction-hint .icon{width:18px;height:18px}.guide-footer{text-align:center;padding:12px 16px;border-top:3px double var(--gold);font-size:13px}.guide-footer p{margin:0}.load-state{padding:60px 20px;text-align:center}.empty-state{text-align:center;padding:30px 12px}.empty-state h3{font-size:18px;margin:0 0 6px}.empty-state p{font-size:14px;color:var(--muted);margin:0}.empty-state .secondary-button{max-width:220px;margin:20px auto 0}.related{margin-top:20px;border-top:1px solid #bca575;padding-top:12px;font-size:13px}.related summary{min-height:44px;cursor:pointer;font-weight:650;padding-top:10px}.related ul{padding-left:20px;line-height:1.8}.related a{display:inline-block;min-height:34px;padding:4px 0;text-underline-offset:3px}.related p{font-size:12px;color:var(--muted)}.skip-link{position:fixed;z-index:2;top:-80px;left:15px;background:#fff9e7;padding:12px;border:2px solid #153f2a}.skip-link:focus{top:10px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.noscript{max-width:600px;margin:20px auto;padding:20px}.footer-warning{color:#fff0c6}
@media(min-width:1100px){.masthead{padding-inline:30px}.region-grid{gap:16px}.region-card-label{font-size:16px}.content-layout{gap:30px}.region-panel{padding-right:29px}.quest-link{min-height:84px}.quest-name{font-size:17px}}
@media(max-width:1190px) and (min-width:701px){.guide-shell{margin:16px 14px;min-height:calc(100svh - 32px)}.masthead{padding:18px 20px}.masthead h1{font-size:30px}.songs-button{min-height:58px;font-size:18px}.ocarina{width:65px;height:44px}main{padding:20px}.content-layout{gap:20px;grid-template-columns:minmax(215px,.85fr) minmax(0,1.15fr)}.region-panel{padding-right:19px}.region-grid{gap:10px}.region-hero{max-height:none;aspect-ratio:4/3}.region-title-row h2{font-size:24px}.quest-name{font-size:15px}.quest-note{font-size:11px}.region-card-label{font-size:13px;padding:4px 5px}}
@media(max-width:700px){body{background:#e9e0cc}.guide-shell{margin:8px;min-height:calc(100svh - 16px);border-width:4px}.masthead{min-height:94px;gap:8px;padding:12px 11px}.brand{gap:6px;flex:1}.brand h1{font-size:clamp(19px,5.8vw,26px);max-width:7em;line-height:1.2;letter-spacing:-.065em}.crest{width:32px;height:38px;flex:none}.songs-button{min-height:54px;gap:5px;padding:5px 9px 5px 3px;border-radius:8px;font-size:14px}.ocarina{width:47px;height:35px}.songs-button .icon{display:none}main{padding:13px 12px 18px}.toolbar{gap:11px;padding-bottom:0;border:0}.segmented{min-height:44px;padding:2px;gap:2px}.segmented button{min-height:39px;font-size:14px;padding:7px 4px}.search-field{min-height:45px;padding:0 10px;gap:9px}.search-field input{min-height:44px}.content-layout{display:block;padding-top:18px}.region-panel{padding:0 0 20px;border-right:0;border-bottom:1px solid #bba77788}.section-heading{font-size:18px;margin-bottom:12px;padding:7px 10px}.region-grid{gap:11px}.region-button{aspect-ratio:4/3}.region-card-label{font-size:14px;padding:4px 7px}.region-card-count{font-size:11px}.secondary-button{margin-top:13px;font-size:14px}.region-summary{margin-top:10px;font-size:11px}.quest-panel{padding-top:21px}.region-hero{display:none}.region-title-row h2{font-size:24px;padding-left:10px}.age-badge{font-size:11px;padding:3px 9px}.region-scope{font-size:12px;margin:7px 0 10px}.progress-row{font-size:15px;margin:10px 0 14px;gap:14px}.completion-filter{min-height:42px}.completion-filter button{min-height:36px}.quest-row{min-height:80px;gap:1px}.completion-control{width:40px}.completion-control input{width:25px;height:25px}.quest-link{padding-left:3px;gap:8px;min-height:78px}.quest-name{font-size:14px}.quest-note{font-size:11px}.quest-subtitle{font-size:11px}.quest-tag{margin-left:4px;font-size:9px}.quest-link>.icon{width:18px;height:18px}.interaction-hint{font-size:11px;margin-top:17px}.guide-footer{font-size:11px;padding:11px 10px}.result-summary{font-size:11px;margin-top:11px}}
@media(max-width:359px){.crest{display:none}.brand h1{font-size:21px;max-width:5.5em}.songs-button{font-size:13px}.ocarina{width:39px}.region-card-label{font-size:12px}.region-grid{gap:9px}.age-badge{font-size:10px}.region-title-row h2{font-size:22px}}
@media(prefers-reduced-motion:no-preference){button,a{transition:background-color .12s,border-color .12s,filter .12s}.quest-row{transition:background-color .12s}}
.region-hero{position:relative;overflow:hidden;height:180px;aspect-ratio:auto}.region-hero>.atlas-art{display:block;position:absolute;width:100%;aspect-ratio:4/3;top:50%;transform:translateY(-50%)}
.record-manager{max-width:650px;margin:8px auto 0;text-align:left;border-top:1px solid #c89b3c66;padding-top:3px}.record-manager summary{cursor:pointer;text-align:center;min-height:44px;display:list-item;list-style-position:inside;padding:11px 6px;font-weight:650;color:#fff0c6}.record-manager p{font-size:12px;line-height:1.7;margin:8px 0;color:#f2e5c5}.record-actions{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.record-actions button{flex:1 1 145px;min-height:44px;border:1px solid #c9a551;background:#f4e7c9;border-radius:6px;padding:9px 12px;font-size:13px;color:#243b28;font-weight:650}.record-actions button:hover{background:#fff1ce}.storage-warning{color:#ffe2a4!important;font-weight:650}.import-dialog{width:min(500px,calc(100% - 32px));max-height:calc(100svh - 40px);overflow:auto;padding:25px;border:3px ridge #b38a3f;border-radius:10px;background-color:var(--paper);color:var(--ink);background-image:var(--atlas);background-size:400% 400%;background-position:0 100%;box-shadow:0 10px 40px #0005}.import-dialog::backdrop{background:#071a12b8}.import-dialog h2{font-size:23px;line-height:1.35;margin:0 0 14px}.import-dialog p{font-size:14px;line-height:1.7;margin:10px 0;overflow-wrap:anywhere}.import-dialog .import-filename{font-size:12px;color:var(--muted)}.import-error{color:#9a291b;font-weight:650}.import-error:empty{display:none}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}.dialog-actions button{min-height:46px;min-width:90px;border:1px solid #9c8150;border-radius:7px;padding:10px 15px;background:#fff6dd;font-weight:650}.dialog-actions #apply-import{background:var(--green);color:#fff0c6;border-color:var(--gold)}.import-dialog .secondary-button{font-size:13px;margin-top:17px}
.storage-alert{position:fixed;bottom:16px;left:50%;transform:translateX(-50%);width:min(650px,calc(100% - 24px));z-index:3;display:flex;align-items:center;gap:12px;justify-content:space-between;background:#153f2a;color:#fff0c6;padding:12px 14px;border:2px solid #d2aa52;border-radius:9px;font-size:13px;box-shadow:0 3px 16px #0004}.storage-alert button{min-height:44px;white-space:nowrap;flex:none;border:1px solid #d2aa52;border-radius:6px;padding:8px 10px;background:#f4e7c9;font-weight:650;font-size:13px}
@media(max-width:700px){.completion-control{width:44px;min-width:44px}}
@media print{body{background:white}.guide-shell{margin:0;border:0;box-shadow:none;background:white}.toolbar,.region-panel,.completion-filter,.songs-button,.guide-footer,.region-hero,.interaction-hint,.related,.import-dialog,.storage-alert{display:none!important}.content-layout{display:block}.quest-panel{padding:0}.quest-row{break-inside:avoid}.quest-note{color:black}}
