:root{font-family:"Noto Serif SC",Songti SC,serif;color:#38271d;background:#efe8db;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button{cursor:pointer}.hero,.map{min-height:100vh;background:url(/route-map.png) center/cover fixed}.hero{display:grid;place-items:center;text-align:center;padding:30px}.title{margin-top:-15vh;text-shadow:0 2px 0 #fff8df}.title small,.eyebrow{color:#a72b20;letter-spacing:.15em}.title h1,.map-intro h1{font-size:clamp(42px,12vw,72px);line-height:1.12;color:#b72a1f;margin:20px 0}.title p{font-size:20px}.title button,.paper>button,.finish button,.submit{border:0;border-radius:999px;padding:14px 34px;background:linear-gradient(#cf3d2d,#9e2017);color:#fff;box-shadow:0 8px 20px #7d190c44}.paper{max-width:680px;min-height:100vh;margin:auto;padding:28px 22px 80px;background:#fffaf0 url(/route-map.png) center/cover fixed}.card{min-height:auto;margin-top:10vh;border-radius:18px;box-shadow:0 20px 60px #5b291e33}.register label{display:block;margin:22px 0}.register input:not([type=checkbox]){display:block;width:100%;margin-top:8px;padding:14px;border:1px solid #c9ad88;border-radius:10px;background:#fff}.consent{font-size:14px}.error{color:#b3261e;min-height:20px}.back{background:none!important;color:#a52b20!important;box-shadow:none!important;padding:8px!important}.map header{position:sticky;top:0;z-index:2;display:flex;justify-content:space-between;padding:15px 18px;background:#a6261df0;color:#fff}.map header span{font-size:13px}.map-intro{text-align:center;padding:42px 18px 10px}.map-intro h1{font-size:42px}.route{max-width:520px;margin:auto;padding:20px 28px 100px;position:relative}.route:before{content:"";position:absolute;left:50%;top:30px;bottom:80px;border-left:4px dashed #bc4a37}.node{position:relative;display:flex;flex-direction:column;align-items:center;width:190px;margin:45px 0;padding:15px;border:0;background:#fff7e4e8;border-radius:20px;box-shadow:0 8px 20px #6a251c33;color:#7b2018}.node:nth-child(2n){margin-left:auto}.node i{display:grid;place-items:center;width:58px;height:58px;border-radius:50%;background:#bf3024;color:#fff;font-style:normal;font-size:25px}.node span{font-size:22px;font-weight:700;margin:8px}.node small{color:#806d5f}.node.locked{filter:grayscale(1);opacity:.66}.node.passed i{background:#d59e22}.lesson{text-align:center}.subtitle{font-size:22px;color:#a52b20}.lesson-visual{height:220px;display:grid;place-items:center;margin:22px 0;border-radius:50% 50% 20px 20px;background:linear-gradient(145deg,#f8d890,#b52d22);color:#fff;font-size:34px;font-weight:700}.lesson section{text-align:left;margin:38px 0;padding:20px;border-left:5px solid #b52c21;background:#fffaf0}.lesson section p{font-size:17px;line-height:2}.finish{padding:25px;background:#f7e5c0;border-radius:14px}.question{margin:24px 0;padding:20px;background:#fff;border:1px solid #ead8b9;border-radius:14px}.question button{width:100%;text-align:left;margin:7px 0;padding:13px;border:1px solid #d7c4a3;border-radius:9px;background:#fff}.question button.selected{border-color:#b72a1f;background:#fff0e8;color:#a5241b}.submit{width:100%}.result{text-align:center}.medal{font-size:80px;color:#dda520}.result strong{display:block;font-size:62px;color:#b52c21}.explain{text-align:left;margin:14px 0;padding:15px;background:#fff;border-radius:10px}@media (max-width:420px){.map-intro h1{font-size:36px}.node{width:160px}.paper{padding-inline:16px}}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;display:grid;place-items:center;padding:20px;background:#28130c6b;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}.registration-dialog{position:relative;width:min(92vw,390px);padding:28px 24px 24px;text-align:left;border:1px solid rgba(255,255,255,.72);border-radius:22px;background:linear-gradient(145deg,#fffdf5f0,#f8e8cae3);box-shadow:0 24px 70px #3d140d59,inset 0 1px #fff}.registration-dialog h2{margin:6px 0;font-size:28px;color:#92251d}.registration-dialog>p:not(.eyebrow):not(.error){margin-top:4px;color:#6f5a4d;font-size:14px}.registration-dialog label{display:block;margin:17px 0;color:#5a4033;font-weight:700}.registration-dialog input:not([type=checkbox]){display:block;width:100%;margin-top:7px;padding:12px 14px;border:1px solid rgba(151,99,66,.35);border-radius:12px;outline:none;background:#ffffffbf;transition:.2s}.registration-dialog input:focus{border-color:#b53227;box-shadow:0 0 0 3px #b532271f}.registration-dialog .consent{font-size:13px;font-weight:400}.dialog-close{position:absolute;right:12px;top:10px;border:0;background:transparent;color:#775b4c;font-size:28px}.primary{width:100%;border:0;border-radius:999px;padding:13px;background:linear-gradient(135deg,#d14835,#9f2119);color:#fff;box-shadow:0 8px 20px #7e1b1247}button:disabled{cursor:not-allowed;opacity:.5}.modal-enter-active,.modal-leave-active,.modal-enter-active .registration-dialog,.modal-leave-active .registration-dialog{transition:.24s}.modal-enter-from,.modal-leave-to{opacity:0}.modal-enter-from .registration-dialog,.modal-leave-to .registration-dialog{transform:translateY(18px) scale(.97)}.consent a{color:#9f2119}.certificate-actions{display:grid;gap:10px;margin:24px 0}.certificate-actions button,.certificate-actions a{border:0;border-radius:999px;padding:14px 24px;background:linear-gradient(135deg,#d59e22,#a92a20);color:#fff;text-decoration:none;box-shadow:0 8px 20px #7d190c33}.quiz-page{position:relative;isolation:isolate;min-height:100vh;padding:24px 16px 80px;overflow:hidden;background:linear-gradient(#f7ebcf99,#efd6aabd),url(/route-map.png) center/cover fixed}.quiz-page:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-2;background:linear-gradient(155deg,rgba(255,255,255,.25),transparent 42%,rgba(169,42,29,.09))}.glass{border:1px solid rgba(255,255,255,.62);background:linear-gradient(145deg,#ffffffa3,#fff6e273);box-shadow:0 15px 42px #5b2c1b24,inset 0 1px #ffffffeb,inset 0 -1px #ffffff47;backdrop-filter:blur(18px) saturate(1.16);-webkit-backdrop-filter:blur(18px) saturate(1.16)}.quiz-header{position:sticky;top:12px;z-index:5;max-width:680px;margin:0 auto 22px;padding:15px 20px;border-radius:22px;display:flex;align-items:center;justify-content:space-between}.quiz-header h1,.quiz-header p{margin:2px 0}.quiz-header>span{display:grid;place-items:center;min-width:64px;height:42px;border-radius:999px;background:#a02b1f1a;color:#91291f;font-weight:800}.quiz-list{max-width:680px;margin:auto}.quiz-page .question{position:relative;margin:18px 0;padding:22px;border-radius:24px;transition:border-color .35s,background .35s,box-shadow .35s}.question-meta{display:flex;justify-content:space-between;color:#8a5b42;font-size:13px}.quiz-page .question h2{font-size:19px;line-height:1.55;margin:12px 0 18px}.quiz-page .option{display:flex;align-items:center;gap:12px;width:100%;margin:9px 0;padding:13px 14px;text-align:left;border:1px solid rgba(135,89,60,.2);border-radius:15px;background:#ffffff7a;color:#493328;transition:transform .18s,background .25s,border-color .25s,box-shadow .25s}.quiz-page .option:not(:disabled):active{transform:scale(.99)}.option-letter{display:grid;place-items:center;flex:0 0 30px;height:30px;border-radius:50%;background:#915b341a;font-weight:800}.quiz-page .option i{margin-left:auto;font-size:20px;font-style:normal}.quiz-page .option.selected{border-color:#bd5036;background:#ffe0c2b8;box-shadow:0 5px 18px #aa42261f}.quiz-page .question.correct{border-color:#2f8e5b7a;background:linear-gradient(145deg,#eefff5c2,#d3f3e080);box-shadow:0 16px 42px #21704626,inset 0 1px #fff}.quiz-page .question.wrong{border-color:#c1413573;background:linear-gradient(145deg,#fff6f1c7,#fadad280);box-shadow:0 16px 42px #912b2124,inset 0 1px #fff}.quiz-page .option.correct{border-color:#45a771;background:#d1f4e0d4;color:#17653c}.quiz-page .option.wrong{border-color:#cf5a4c;background:#ffd7cfd9;color:#8f241b}.quiz-page .option.muted{opacity:.58}.confirm-answer,.complete-quiz{width:100%;margin-top:14px;padding:12px;border:0;border-radius:999px;background:linear-gradient(135deg,#c64c35,#97251c);color:#fff;font-weight:800;box-shadow:0 8px 20px #7c241633}.feedback{margin-top:16px;padding:14px 16px;border-radius:15px;text-align:left}.feedback p{margin:7px 0 0;line-height:1.65}.feedback.success{background:#d6f6e2a8;color:#17633b}.feedback.failure{background:#ffded7a8;color:#88261d}.complete-quiz{display:block;position:relative;max-width:680px;margin:26px auto 0;color:#fff;background:linear-gradient(135deg,#be3b2aed,#841e16f2)}.quiz-alert{position:relative;z-index:4;max-width:680px;margin:0 auto 14px;padding:12px 16px;border-radius:12px;background:#fff0ed;color:#9d281e}.ambient{position:fixed;z-index:-1;width:280px;height:280px;border-radius:50%;filter:blur(55px);opacity:.32;animation:float-light 10s ease-in-out infinite}.ambient-one{left:-90px;top:18%;background:#f6bd61}.ambient-two{right:-100px;top:55%;background:#ce6553;animation-delay:-4s}@keyframes float-light{50%{transform:translate3d(20px,-24px,0) scale(1.08)}}@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.glass{background:#fffaeef0}}@media (prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}@media (max-width:420px){.quiz-page{padding-inline:12px}.quiz-page .question{padding:18px 15px;border-radius:20px}.quiz-header{top:8px}.registration-dialog{padding-inline:20px}}.hero{background-position:center;background-size:cover}.title h1,.map-intro h1{white-space:pre-line}.map{min-height:100vh;background:#ead7ae}.map-canvas{position:relative;width:min(100%,680px);aspect-ratio:941/1672;margin:auto;background-position:center;background-repeat:no-repeat;background-size:100% 100%;overflow:hidden}.map-canvas .map-intro{position:absolute;z-index:1;top:3%;left:5%;width:62%;padding:0;text-align:left}.map-canvas .map-intro h1{margin:0;font-size:clamp(24px,7vw,44px);color:var(--primary);text-shadow:0 1px #fff6dc}.map-canvas .map-intro p{margin:8px 0;color:#775448}.map-anchor{position:absolute;z-index:2;width:34px;height:34px;padding:0;border:3px solid rgba(255,247,222,.95);border-radius:50%;transform:translate(-50%,-50%);background:var(--primary);color:#fff;box-shadow:0 4px 12px #5d1c1252,0 0 0 3px #ad2f202e}.map-anchor i{display:grid;place-items:center;width:100%;height:100%;font-style:normal;font-weight:800}.map-anchor>span{position:absolute;top:50%;width:116px;padding:8px 9px;border:1px solid rgba(255,255,255,.7);border-radius:12px;transform:translateY(-50%);background:#fff8e5e6;color:#6f251d;box-shadow:0 5px 16px #4e23162b;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);text-align:left}.map-anchor.left>span{right:44px;text-align:right}.map-anchor.right>span{left:44px}.map-anchor span b,.map-anchor span small{display:block}.map-anchor span b{font-size:14px;white-space:nowrap}.map-anchor span small{margin-top:2px;font-size:10px;color:#8d7565}.map-anchor.locked{filter:grayscale(1);opacity:.7}.map-anchor.passed{background:var(--accent)}.lesson-story{position:relative;margin:28px 0;padding:12px 24px 12px 35px;border:1px solid rgba(255,255,255,.75);border-radius:24px;background:linear-gradient(145deg,#fffdf5e3,#f7e4c2b8);box-shadow:0 18px 44px #5b2d1a21,inset 0 1px #fff;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);text-align:left}.lesson-story:before{content:"";position:absolute;left:20px;top:42px;bottom:42px;width:2px;background:linear-gradient(var(--primary,#b72a1f),rgba(183,42,31,.1))}.lesson .lesson-story section{position:relative;margin:0;padding:23px 0;border:0;border-radius:0;background:transparent}.lesson .lesson-story section+section{border-top:1px solid rgba(157,99,60,.18)}.lesson .lesson-story section:before{content:"";position:absolute;left:-20px;top:33px;width:9px;height:9px;border-radius:50%;background:var(--primary,#b72a1f);box-shadow:0 0 0 4px #b72a1f1f}.lesson .lesson-story h2{margin:0 0 8px;color:var(--primary,#a52b20);font-size:19px}.lesson .lesson-story p{margin:0;font-size:16px;line-height:1.9}.quiz-page{--glass-alpha:var(--glass-opacity,.64);background-position:center;background-size:cover}.quiz-page .glass{background:linear-gradient(145deg,rgba(255,255,255,var(--glass-alpha)),#fff6e273)}.quiz-page .eyebrow{color:var(--primary)}.answering{margin:10px 0 0;color:#8a5b42;font-size:13px}.quiz-page.static .ambient{display:none}.quiz-page.static *{animation:none!important;transition:none!important}@media (max-width:420px){.map-anchor{width:29px;height:29px}.map-anchor>span{width:96px;padding:6px 7px}.map-anchor.left>span{right:37px}.map-anchor.right>span{left:37px}.map-anchor span b{font-size:12px}.map-anchor span small{font-size:9px}.lesson-story{padding-right:17px}}.hero{grid-template-columns:minmax(0,1fr)}.title{width:100%;max-width:650px;min-width:0;justify-self:stretch;overflow:hidden}.title h1{font-size:clamp(31px,8.5vw,58px)}.title p{font-size:clamp(15px,4.5vw,20px);overflow-wrap:anywhere}.title h1{color:var(--primary,#b72a1f)}.title button,.primary,.finish button,.complete-quiz{background:linear-gradient(135deg,var(--primary,#c63b2d),color-mix(in srgb,var(--primary,#9e2017) 72%,#4a120e))}.map header{background:color-mix(in srgb,var(--primary,#a6261d) 92%,transparent)}.lesson .map-back{display:inline-flex;align-items:center;gap:8px;margin-bottom:18px;padding:9px 15px!important;border:1px solid color-mix(in srgb,var(--primary,#a52b20) 55%,transparent)!important;border-radius:999px;background:#fffaeeb8!important;color:var(--primary,#a52b20)!important;box-shadow:0 7px 20px #5b29191f,inset 0 1px #ffffffe6!important;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:transform .16s,box-shadow .16s}.lesson .map-back span{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:color-mix(in srgb,var(--primary,#a52b20) 12%,transparent)}.lesson .map-back:active{transform:scale(.96);box-shadow:0 3px 10px #5b29191a!important}.lesson-visual{position:relative;isolation:isolate;overflow:hidden;height:260px;padding:24px;background-position:center;background-size:cover!important}.lesson-visual:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;background:linear-gradient(180deg,#35170d05 10%,#45180fc7)}.lesson-visual:not(.illustrated):after{background:linear-gradient(145deg,#f8d8902e,#5916118f)}.visual-copy{align-self:end;width:100%;text-align:left;text-shadow:0 2px 10px rgba(46,16,10,.5)}.visual-copy p,.visual-copy h1{margin:0;color:#fff}.visual-copy>p:first-child{margin-bottom:5px;font-size:13px;letter-spacing:.18em;opacity:.84}.visual-copy h1{font-size:clamp(32px,9vw,48px);line-height:1.15}.visual-copy>p:last-child{margin-top:7px;font-size:17px;opacity:.9}.quiz-page .complete-quiz:not(.ready){border-color:#756f6733;background:linear-gradient(145deg,#a39e946b,#706d685c);color:#ffffffb8;box-shadow:inset 0 1px #fff6;filter:saturate(.35)}.quiz-page .complete-quiz.ready{border-color:color-mix(in srgb,var(--accent,#d59e22) 68%,white);background:linear-gradient(120deg,var(--primary,#a52b20),var(--accent,#d59e22),var(--primary,#8d1f18));background-size:200% 100%;color:#fff;box-shadow:0 13px 32px color-mix(in srgb,var(--primary,#a52b20) 34%,transparent),0 0 0 4px color-mix(in srgb,var(--accent,#d59e22) 18%,transparent),inset 0 1px #ffffffb3;filter:none;animation:ready-pulse .8s ease-out,ready-shimmer 2.8s ease-in-out infinite}.quiz-page .complete-quiz.ready:active{transform:scale(.98)}.quiz-page .complete-quiz.submitting{animation:none;filter:saturate(.75);cursor:wait}@keyframes ready-pulse{0%{transform:translateY(8px) scale(.97);opacity:.72}55%{transform:translateY(-4px) scale(1.015)}to{transform:none;opacity:1}}@keyframes ready-shimmer{50%{background-position:100% 0}}.quiz-page.static .complete-quiz.ready{animation:none}@media (prefers-reduced-motion:reduce){.quiz-page .complete-quiz.ready{animation:none}.lesson .map-back{transition:none}}@media (max-width:420px){.lesson-visual{height:230px;padding:20px}.visual-copy h1{font-size:34px}.visual-copy>p:last-child{font-size:15px}}.lesson-visual:after{z-index:0}.visual-copy{position:relative;z-index:1}.map-canvas .map-intro{top:1.8%;left:1.8%;display:flex;width:58%;min-height:39%;padding:2.5% 2.5% 3%;flex-direction:column;justify-content:center}.map-canvas .map-intro h1{font-size:clamp(38px,9vw,82px);line-height:1.04;letter-spacing:-.04em}.map-canvas .map-intro p{margin-top:18px;font-size:clamp(16px,2vw,22px);letter-spacing:.08em}@media (max-width:520px){.map-canvas .map-intro{width:61%;min-height:38%;padding-left:3%}.map-canvas .map-intro h1{font-size:clamp(34px,9vw,47px)}.map-canvas .map-intro p{margin-top:10px;font-size:14px;line-height:1.45}}
