/* Ten-island challenge journey: all map art remains independently clickable. */
.page-student-home .level-island-main{height:calc(100vh - 76px);min-height:620px;overflow:hidden;background:#dceff7}
.level-island-journey{position:relative;height:100%;overflow:hidden;background:#dceff7;color:#4d5f54}
.level-journey-heading{position:absolute;z-index:10;top:24px;left:clamp(22px,4vw,64px);padding:17px 20px 18px;border:1px solid rgba(255,255,255,.88);border-radius:24px;background:rgba(255,253,244,.78);box-shadow:0 12px 28px rgba(67,90,78,.12);backdrop-filter:blur(10px)}
.level-journey-heading>span{display:block;color:#b37043;font-size:13px;font-weight:900;letter-spacing:.12em}.level-journey-heading h1{margin:3px 0 4px;color:#395f4b;font-size:clamp(27px,2.6vw,39px);letter-spacing:-.06em}.level-journey-heading p{margin:0;color:#6d7d71;font-size:15px;font-weight:700}
.level-journey-now{position:absolute;z-index:10;top:28px;right:clamp(22px,4vw,64px);display:grid;gap:2px;padding:12px 15px;border:1px solid rgba(255,255,255,.9);border-radius:18px;background:rgba(255,253,244,.78);box-shadow:0 10px 24px rgba(67,90,78,.1);backdrop-filter:blur(10px)}
.level-journey-now b{color:#416d50;font-size:16px}.level-journey-now span{color:#8a775b;font-size:13px;font-weight:800}
.level-journey-viewport{width:100%;height:100%;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none}.level-journey-viewport::-webkit-scrollbar{display:none}
.level-journey-track{display:flex;width:200%;min-width:1920px;height:100%}.level-map-panel{position:relative;flex:0 0 50%;min-width:960px;height:100%;scroll-snap-align:start;background-position:center;background-size:cover;background-repeat:no-repeat}.level-map-panel--one,.level-map-panel--two{background-image:url('../images/theme/growth-islands-background-v3.png')}
.level-island{position:absolute;z-index:3;display:block;width:clamp(145px,15vw,240px);padding:0;border:0;background:transparent;cursor:pointer;text-align:center;filter:none}.level-island img{display:block;width:100%;height:auto;max-height:38vh;object-fit:contain;filter:drop-shadow(0 12px 12px rgba(64,74,56,.18));transform:translateY(0) scale(1);transform-origin:center bottom;transition:transform .24s ease,filter .24s ease}.level-island>span:not(.level-island__seal){position:absolute;left:50%;bottom:-23px;display:grid;gap:1px;min-width:106px;padding:5px 9px;border:1px solid rgba(120,83,39,.18);border-radius:12px;background:rgba(255,250,235,.9);box-shadow:0 6px 13px rgba(71,64,46,.11);transform:translateX(-50%);color:#684822;white-space:nowrap}.level-island>span:not(.level-island__seal) b{font-size:16px}.level-island>span:not(.level-island__seal) small{font-size:12px;font-weight:850;color:#76846d}
.level-island:hover img,.level-island:focus-visible img{transform:translateY(-6px) scale(1.025);filter:drop-shadow(0 0 3px rgba(255,245,181,.98)) drop-shadow(0 0 12px rgba(255,194,55,.86)) drop-shadow(0 12px 12px rgba(64,74,56,.18))}.level-island:focus-visible{outline:none}.level-island:focus-visible>span:not(.level-island__seal){outline:3px solid rgba(116,186,123,.45);outline-offset:3px}.level-island.is-current img{animation:level-island-breathe 2.1s ease-in-out infinite}.level-island.is-current>span:not(.level-island__seal){border-color:#e7bd58;background:#fff4c9;color:#75571a}.level-island.is-current>span:not(.level-island__seal) small{color:#a66e26}.level-island.is-locked img{filter:drop-shadow(0 12px 12px rgba(64,74,56,.18));opacity:1}.level-island.is-locked>span:not(.level-island__seal){background:rgba(255,250,235,.92);color:#6f765f}.level-island.is-locked>span:not(.level-island__seal) small{color:#8b927d}
/* 未解锁的岛不再是可以按的按钮：用锁链封锁，指针与焦点都不可进入。 */
.level-island.is-locked,.level-island:disabled{cursor:not-allowed;user-select:none;opacity:1}.level-island.is-locked img{pointer-events:none}.level-island.is-locked:hover img{transform:none;filter:drop-shadow(0 12px 12px rgba(64,74,56,.18))}
.level-island__seal{position:absolute;z-index:4;left:50%;top:42%;display:flex;align-items:center;transform:translate(-50%,-50%);pointer-events:none}
.level-island__seal[hidden]{display:none}
.level-island__lock{display:grid;place-items:center;width:48px;height:48px;border:3px solid #c9a45c;border-radius:15px;background:radial-gradient(circle at 32% 28%,#fffaf0,#f0dfb6);box-shadow:0 8px 18px rgba(74,56,24,.28),inset 0 -4px 8px rgba(151,112,50,.18);font-size:23px;line-height:1}
.level-island--1{left:5%;top:31%}.level-island--2{left:24%;top:23%}.level-island--3{left:43%;top:35%}.level-island--4{left:62%;top:22%}.level-island--5{left:80%;top:34%}.level-island--6{left:5%;top:29%}.level-island--7{left:24%;top:35%}.level-island--8{left:43%;top:22%}.level-island--9{left:62%;top:36%}.level-island--10{left:80%;top:22%}
.level-map-scroll{position:absolute;z-index:8;bottom:34px;border:1px solid rgba(255,255,255,.9);border-radius:999px;background:rgba(255,253,244,.84);box-shadow:0 10px 24px rgba(67,90,78,.13);color:#527058;font:inherit;font-size:15px;font-weight:900;cursor:pointer;backdrop-filter:blur(8px);transition:transform .2s ease,background .2s ease}.level-map-scroll:hover,.level-map-scroll:focus-visible{background:#fff9e9;transform:translateY(-3px);outline:none}.level-map-scroll--next{right:29px;padding:12px 14px 12px 18px}.level-map-scroll--next b{margin-left:6px;font-size:20px}.level-map-scroll--back{left:29px;padding:12px 18px 12px 14px}.level-map-scroll--back b{margin-right:6px;font-size:20px}.level-journey-hint{position:absolute;z-index:6;bottom:11px;left:50%;margin:0;transform:translateX(-50%);color:#667e6d;font-size:13px;font-weight:900;text-shadow:0 1px 0 rgba(255,255,255,.8);white-space:nowrap}
.page-student-home .level-island-journey .v8-map-tool{z-index:12}.page-student-home .level-island-journey .v8-teacher-plane{left:clamp(310px,27vw,430px);top:18px}.page-student-home #island-letter-modal{z-index:510}.page-student-home #island-letter-modal .v8-modal__surface{border-color:#eddcae}.page-student-home #island-letter-modal .v8-modal__signature{font-size:13px;line-height:1.5}
@keyframes level-island-breathe{0%,100%{filter:drop-shadow(0 0 0 rgba(255,202,82,0)) drop-shadow(0 12px 12px rgba(64,74,56,.18))}50%{filter:drop-shadow(0 0 9px rgba(255,202,82,.8)) drop-shadow(0 12px 12px rgba(64,74,56,.18))}}

.level-challenge-modal[hidden]{display:none!important}.level-challenge-modal{position:fixed;z-index:500;inset:0;display:grid;place-items:center;padding:20px}.level-challenge-modal__backdrop{position:absolute;inset:0;background:rgba(36,55,61,.34);backdrop-filter:blur(6px)}.level-challenge-modal__card{position:relative;z-index:1;width:min(510px,calc(100vw - 32px));max-height:min(680px,calc(100vh - 32px));overflow:auto;padding:29px 30px 28px;border:1px solid rgba(255,255,255,.94);border-radius:30px;background:#fffdf7;box-shadow:0 28px 70px rgba(35,53,55,.28)}.level-challenge-modal__close{position:absolute;top:13px;right:14px;width:34px;height:34px;border:0;border-radius:50%;background:#f2eee3;color:#765e43;font-size:25px;line-height:1;cursor:pointer}.level-challenge-kicker{margin:0 0 6px;color:#a86f32;font-size:14px;font-weight:900;letter-spacing:.1em}.level-challenge-modal h2{margin:0;color:#42694d;font-size:31px;letter-spacing:-.05em}.level-challenge-lead{margin:9px 0 17px;color:#6f766e;font-size:16px;line-height:1.65}.level-challenge-list{display:grid;gap:9px;margin:0;padding:0;list-style:none}.level-challenge-list button{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;width:100%;padding:12px 13px;border:1px solid #e9e5d9;border-radius:17px;background:#fff;color:#53665a;font:inherit;text-align:left;cursor:pointer}.level-challenge-list button:hover,.level-challenge-list button:focus-visible{border-color:#a3cfa9;background:#f2f9ec;outline:none}.level-challenge-list i{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:#e5f1dc;color:#4c8058;font-style:normal;font-size:13px;font-weight:950}.level-challenge-list b{font-size:16px}.level-challenge-list small{font-size:13px;font-weight:850;color:#87918a}.level-challenge-list .done i{background:#e1f1e2;color:#408052}.level-challenge-list .now{border-color:#e7c66f;background:#fff9e5}.level-challenge-list .now i{background:#ffe7a6;color:#8b681e}.level-task-focus{margin-top:14px;padding:14px 15px;border-radius:18px;background:#edf7e8;color:#496651}.level-task-focus b{display:block;font-size:17px}.level-task-focus p{margin:4px 0 0;font-size:14px;line-height:1.6}.level-locked-note{padding:17px;border-radius:19px;background:#f4f5f0;color:#738078;line-height:1.7}.level-modal-close-button{margin-top:16px;padding:11px 15px;border:0;border-radius:14px;background:#e2efcf;color:#42694d;font:inherit;font-size:15px;font-weight:900;cursor:pointer}
.level-task-static{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;width:100%;padding:12px 13px;border:1px solid #e5e8de;border-radius:17px;background:#f8faf5;color:#69756b}.level-task-static i{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:#e5eee2;color:#5c7861;font-style:normal;font-size:13px;font-weight:950}.level-task-static b{font-size:16px}.level-task-static small{font-size:13px;font-weight:850;color:#87918a}.level-task-static.approved{border-color:#b8d9b9;background:#f0f8ec}.level-task-static.pending{border-color:#e8d48f;background:#fffbec}.level-task-static.returned{border-color:#eab7a5;background:#fff5ef}.level-task-feedback{margin:6px 8px 0;color:#a46043;font-size:13px;line-height:1.5}
.level-submit-methods{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:4px 0 12px}.level-submit-methods button{min-height:50px;padding:8px 6px;border:1px solid #dfe9d6;border-radius:15px;background:#f4faed;color:#527056;font:inherit;font-size:14px;font-weight:900;cursor:pointer;transition:transform .18s ease,border-color .18s ease,background .18s ease}.level-submit-methods button:hover,.level-submit-methods button:focus-visible{border-color:#9bc6a0;background:#e9f6e1;outline:none;transform:translateY(-2px)}.level-submit-methods button.active{border-color:#e4b84f;background:#fff3c8;color:#805e20;box-shadow:0 5px 12px rgba(201,157,50,.16)}.level-evidence-area{min-height:82px;margin-bottom:12px;padding:13px 14px;border:1px dashed #d7dfd0;border-radius:17px;background:#fbfcf7;color:#69776c}.level-evidence-field{display:grid;gap:7px;color:#4f6a55;font-size:15px;font-weight:900}.level-evidence-field input[type=file]{width:100%;padding:9px;border:1px solid #dfe7dc;border-radius:11px;background:#fff;color:#65746a;font:inherit;font-size:13px}.level-evidence-field textarea{min-height:92px;resize:vertical;padding:10px 11px;border:1px solid #dfe7dc;border-radius:11px;background:#fff;color:#4f5e52;font:inherit;line-height:1.6}.level-evidence-field textarea:focus,.level-evidence-field input[type=file]:focus{border-color:#8fbe95;outline:3px solid rgba(143,190,149,.2)}.level-evidence-field small{color:#89938b;font-size:12px;font-weight:700;line-height:1.45}.level-note-field{display:grid;gap:7px;margin-bottom:13px;color:#68766b;font-size:14px;font-weight:850}.level-note-field input{padding:10px 11px;border:1px solid #e3e7dd;border-radius:11px;background:#fff;color:#4f5e52;font:inherit}.level-note-field input:focus{border-color:#8fbe95;outline:3px solid rgba(143,190,149,.2)}.level-submit-button{width:100%;padding:12px 15px;border:0;border-radius:14px;background:#e9bc54;color:#5d481c;font:inherit;font-size:16px;font-weight:950;cursor:pointer;box-shadow:0 7px 14px rgba(190,143,39,.16)}.level-submit-button:hover:not(:disabled),.level-submit-button:focus-visible:not(:disabled){background:#f2c967;outline:3px solid rgba(229,184,75,.25);outline-offset:2px;transform:translateY(-1px)}.level-submit-button:disabled{cursor:not-allowed;background:#e8e9e3;color:#9aa29a;box-shadow:none}.level-submit-status{min-height:22px;margin:9px 0 0;color:#6e7b70;font-size:13px;line-height:1.5}.level-back-button{margin-top:3px;padding:8px 10px;border:0;border-radius:10px;background:transparent;color:#66806b;font:inherit;font-size:13px;font-weight:850;cursor:pointer}.level-back-button:hover,.level-back-button:focus-visible{background:#eef6e9;outline:none}
@media(min-width:901px){.page-student-home #island-letter-modal{left:clamp(310px,27vw,430px);top:110px}}
@media(max-width:900px){.page-student-home .level-island-main{height:calc(100vh - 76px);min-height:580px}.level-journey-heading{top:16px;left:16px;padding:12px 14px;border-radius:19px}.level-journey-heading h1{font-size:27px}.level-journey-heading p{font-size:13px}.level-journey-now{top:17px;right:16px;padding:9px 11px;border-radius:15px}.level-journey-now b{font-size:13px}.level-journey-now span{display:none}.level-journey-track{width:1920px}.level-map-panel{flex-basis:960px}.level-island{width:175px}.level-island img{max-height:34vh}.level-journey-hint{font-size:12px}.level-map-scroll{bottom:28px}.level-challenge-modal__card{padding:26px 20px 22px}.level-challenge-modal h2{font-size:27px}}
@media(prefers-reduced-motion:reduce){.level-journey-viewport{scroll-behavior:auto}.level-island img,.level-map-scroll{transition:none}.level-island.is-current img{animation:none}}
