:root{--bg: #fff7e8;--card: #ffffff;--primary: #f59e0b;--primary-dark: #d97706;--secondary: #60a5fa;--accent: #a78bfa;--success: #34d399;--danger: #fb7185;--text: #374151;--muted: #6b7280;--soft-brown: #a16207;--line: rgba(161, 98, 7, .16);--shadow: 0 18px 45px rgba(161, 98, 7, .14);--shadow-soft: 0 10px 25px rgba(55, 65, 81, .08);--radius-lg: 28px;--radius-md: 20px;--radius-sm: 14px;color:var(--text);background:var(--bg);font-family:Noto Sans TC,PingFang TC,Microsoft JhengHei,system-ui,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}html{min-height:100%;background:radial-gradient(circle at 14% 18%,rgba(96,165,250,.2),transparent 24%),radial-gradient(circle at 88% 12%,rgba(167,139,250,.18),transparent 25%),var(--bg)}body{min-width:320px;min-height:100vh;margin:0}body:before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(circle at 12% 34%,rgba(52,211,153,.12),transparent 18%),radial-gradient(circle at 84% 64%,rgba(245,158,11,.13),transparent 18%),linear-gradient(115deg,transparent 0 45%,rgba(255,255,255,.38) 49%,transparent 53% 100%);background-size:auto,auto,220% 220%;animation:page-light-sweep 16s ease-in-out infinite}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.58}h1,h2,h3,p{margin-top:0}h1,h2,h3{letter-spacing:0}.app-shell{min-height:100vh;animation:page-enter .42s ease both}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px clamp(16px,4vw,44px);background:#fff7e8eb;border-bottom:1px solid rgba(161,98,7,.12);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.brand-mark{display:inline-flex;align-items:center;gap:12px;min-width:220px;border:0;padding:0;color:var(--text);background:transparent;text-align:left}.brand-mark__badge{display:grid;width:48px;height:48px;place-items:center;color:#7c2d12;font-weight:900;background:linear-gradient(160deg,#fde68a,#f59e0b);border:3px solid #fff;border-radius:16px;box-shadow:var(--shadow-soft)}.brand-mark strong{display:block;font-size:1rem}.brand-mark small{display:block;color:var(--soft-brown);font-size:.78rem;font-weight:700}.topbar__nav,.topbar__user,.resource-row,.task-actions,.editor-actions{display:flex;align-items:center;gap:10px}.topbar__nav{flex-wrap:wrap;justify-content:center}.nav-button,.icon-button,.primary-button,.secondary-button,.mini-icon-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:999px;font-weight:800;line-height:1}.nav-button{padding:11px 15px;color:var(--soft-brown);background:#ffffffb8}.nav-button.is-active{color:#fff;background:var(--primary);box-shadow:0 10px 18px #f59e0b40}.topbar__hint,.user-chip{display:inline-flex;align-items:center;gap:8px;padding:10px 14px;border-radius:999px;background:#fff;color:var(--soft-brown);font-weight:800;box-shadow:var(--shadow-soft)}.icon-button,.mini-icon-button{width:42px;height:42px;color:var(--text);background:#fff;box-shadow:var(--shadow-soft)}.mini-icon-button{width:32px;height:32px}main{width:min(1180px,calc(100vw - 28px));margin:0 auto;padding:28px 0 56px}.primary-button,.secondary-button{min-height:44px;padding:0 18px;border:2px solid transparent}.primary-button{color:#fff;background:linear-gradient(180deg,#fbbf24,var(--primary));box-shadow:0 12px 24px #f59e0b42;transition:transform .18s ease,box-shadow .18s ease,filter .18s ease}.primary-button:hover:not(:disabled){transform:translateY(-2px) scale(1.01);filter:saturate(1.04);box-shadow:0 16px 28px #f59e0b52}.primary-button--large{min-height:56px;padding-inline:24px;font-size:1.05rem}.secondary-button{color:var(--soft-brown);background:#fff;border-color:#a1620729;box-shadow:var(--shadow-soft);transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.secondary-button:hover{transform:translateY(-1px);border-color:#f59e0b47;box-shadow:0 14px 28px #a1620721}.section-kicker{display:inline-flex;align-items:center;width:fit-content;margin-bottom:10px;color:var(--soft-brown);font-size:.86rem;font-weight:900}.page-heading{margin-bottom:22px}.page-heading h1,.hero-copy h1,.quest-intro-scene h1,.workshop-hero h1,.director-hero h1{color:#713f12;font-size:clamp(2rem,5vw,4.2rem);line-height:1.05;margin-bottom:16px}.page-heading p,.hero-copy p,.workshop-hero p,.director-hero p{color:var(--muted);font-size:1.07rem;line-height:1.8;max-width:700px}.role-page{display:grid;gap:24px}.island-hero{position:relative;overflow:hidden;display:grid;min-height:520px;grid-template-columns:1fr .9fr;align-items:center;gap:20px;padding:clamp(26px,5vw,62px);border-radius:36px;background:linear-gradient(90deg,#fff7e8f5,#fff7e8c7 30%,#fff7e82e 58%,#fff7e805),url(/assets/images/generated/home-hero.png) center / cover no-repeat;box-shadow:var(--shadow);isolation:isolate;animation:hero-arrive .52s ease both}.island-hero:before{content:"";position:absolute;inset:0;z-index:0;background:radial-gradient(circle at 73% 40%,rgba(255,255,255,.5),transparent 16%),linear-gradient(115deg,transparent 0 52%,rgba(255,255,255,.38) 56%,transparent 61% 100%);mix-blend-mode:screen;opacity:.75;animation:hero-shimmer 7s ease-in-out infinite}.hero-copy{position:relative;z-index:3}.hero-copy p{max-width:560px}.hero-motion-layer{position:absolute;inset:0;z-index:1;pointer-events:none}.hero-spark{position:absolute;width:14px;height:14px;border-radius:50%;background:#fff;box-shadow:0 0 18px #fffffff2,0 0 34px #f59e0bb3;animation:sparkle-float 4.6s ease-in-out infinite}.hero-spark--one{top:20%;right:42%}.hero-spark--two{top:15%;right:18%;width:10px;height:10px;animation-delay:-1.5s}.hero-spark--three{right:30%;bottom:24%;width:12px;height:12px;animation-delay:-2.4s}.hero-light-trail{position:absolute;left:44%;bottom:17%;width:38%;height:5px;border-radius:999px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.88),rgba(245,158,11,.76),transparent);box-shadow:0 0 18px #f59e0b61;transform:rotate(-9deg);animation:trail-glow 3.6s ease-in-out infinite}.hero-mini-panel{position:absolute;right:clamp(20px,4vw,52px);bottom:clamp(20px,4vw,44px);z-index:4;display:grid;gap:4px;width:min(210px,35vw);padding:16px 18px;border:2px solid rgba(255,255,255,.78);border-radius:22px;background:#ffffffb8;box-shadow:0 18px 36px #78350f29;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);animation:float-card 3.8s ease-in-out infinite}.hero-mini-panel span,.hero-mini-panel small{color:var(--soft-brown);font-weight:900}.hero-mini-panel strong{color:#713f12;font-size:1.08rem}.hero-cloud{position:absolute;width:150px;height:54px;border-radius:999px;background:#ffffffd9;box-shadow:40px 10px #ffffffa6,-34px 14px #ffffff8c}.hero-cloud--one{top:58px;left:48%}.hero-cloud--two{right:80px;bottom:74px;transform:scale(.8)}.hero-stars{position:absolute;top:84px;right:15%;color:#fff;font-size:2rem;font-weight:900}.floating-island{position:relative;display:grid;min-height:380px;place-items:center}.island-book{position:absolute;top:52px;right:20%;z-index:4;padding:12px 16px;border-radius:16px;color:#fff7ed;background:linear-gradient(135deg,#8b5cf6,#60a5fa);box-shadow:0 0 38px #ffffffdb,var(--shadow-soft);font-weight:900;transform:rotate(8deg)}.island-base{position:absolute;bottom:34px;width:min(360px,85%);height:120px;border-radius:55% 45% 48% 52%;background:radial-gradient(circle at 28% 25%,#86efac 0 18%,transparent 20%),radial-gradient(circle at 68% 26%,#fef08a 0 14%,transparent 16%),linear-gradient(180deg,#34d399 0 40%,#a16207 41% 74%,#78350f 75%);filter:drop-shadow(0 24px 22px rgba(161,98,7,.2))}.role-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.role-card{position:relative;overflow:hidden;display:flex;align-items:center;gap:16px;min-height:132px;padding:22px;border:3px solid #fff;border-radius:var(--radius-lg);color:var(--text);text-align:left;box-shadow:var(--shadow-soft);animation:card-pop .42s ease both;transition:transform .18s ease,box-shadow .18s ease}.role-card:after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 0 40%,rgba(255,255,255,.42) 48%,transparent 56% 100%);transform:translate(-110%);transition:transform .52s ease}.role-card:hover{transform:translateY(-4px) rotate(-.5deg);box-shadow:var(--shadow)}.role-card:hover:after{transform:translate(110%)}.role-card:nth-child(2){animation-delay:90ms}.role-card:nth-child(3){animation-delay:.18s}.role-card--sun{background:linear-gradient(135deg,#fef3c7,#fbbf24)}.role-card--sky{background:linear-gradient(135deg,#dbeafe,#93c5fd)}.role-card--violet{background:linear-gradient(135deg,#ede9fe,#c4b5fd)}.role-card__icon{display:grid;flex:0 0 auto;width:64px;height:64px;place-items:center;border-radius:22px;color:#7c2d12;background:#ffffffbf}.role-card__icon svg{width:34px;height:34px}.role-card__text strong,.role-card__text small{display:block}.role-card__text strong{margin-bottom:8px;font-size:clamp(1.25rem,2.5vw,1.55rem)}.role-card__text small{color:#374151c7;font-size:.98rem;font-weight:800;line-height:1.5}.sprite{position:relative;display:grid;width:var(--sprite-size);height:var(--sprite-size);place-items:center}.sprite--sm{--sprite-size: 72px}.sprite--md{--sprite-size: 108px}.sprite--lg{--sprite-size: 220px}.sprite__image{position:relative;z-index:2;display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 18px 20px rgba(120,53,15,.18));-webkit-user-select:none;user-select:none}.sprite__spark{position:absolute;z-index:3;width:calc(var(--sprite-size) * .12);height:calc(var(--sprite-size) * .12);border-radius:50%;background:#fff7ad;box-shadow:0 0 12px #fff7ade6,0 0 24px #f59e0b73;opacity:0;animation:sprite-spark 2.4s ease-in-out infinite}.sprite__spark--one{top:13%;right:15%}.sprite__spark--two{left:15%;bottom:24%;width:calc(var(--sprite-size) * .08);height:calc(var(--sprite-size) * .08);animation-delay:-1.1s}.sprite__shadow{position:absolute;bottom:2%;width:64%;height:10%;border-radius:50%;background:#78350f29}.sprite--idle .sprite__image,.sprite--hint .sprite__image{animation:breathe 2.8s ease-in-out infinite}.sprite--happy .sprite__image,.sprite--badge_get .sprite__image{animation:happy-bounce 1.3s ease-in-out infinite}.sprite--thinking .sprite__image,.sprite--warning .sprite__image{animation:thinking-tilt 2.2s ease-in-out infinite}@keyframes breathe{50%{transform:translateY(-4px) scale(1.02)}}@keyframes happy-bounce{45%{transform:translateY(-12px) rotate(-2deg)}}@keyframes thinking-tilt{50%{transform:rotate(-4deg)}}.student-home-page,.student-map-page,.teacher-dashboard,.director-dashboard,.portfolio-page,.quest-reader-page{display:grid;gap:22px;animation:page-enter .36s ease both}.student-home-page{display:grid;gap:22px}.self-hero{position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(0,1fr) 360px;align-items:center;gap:24px;min-height:500px;padding:clamp(26px,5vw,56px);border:4px solid #fff;border-radius:36px;background:linear-gradient(90deg,#fff7e8fa,#fff7e8bd 38%,#fff7e82e),url(/assets/images/generated/home-hero.png) center / cover no-repeat;box-shadow:var(--shadow);isolation:isolate}.self-hero:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 78% 34%,rgba(255,255,255,.62),transparent 16%),linear-gradient(115deg,transparent 0 46%,rgba(255,255,255,.34) 52%,transparent 60% 100%);mix-blend-mode:screen;animation:hero-shimmer 7s ease-in-out infinite;pointer-events:none}.self-hero__copy,.self-hero__mascot{position:relative;z-index:1}.self-hero h1{max-width:760px;margin-bottom:16px;color:#713f12;font-size:clamp(2.4rem,5vw,4.6rem);line-height:1.04}.self-hero p{max-width:640px;color:var(--text);font-size:1.12rem;font-weight:700;line-height:1.8}.self-hero__actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}.self-hero__mascot{display:grid;justify-items:center;gap:14px}.self-hero__speech{display:grid;gap:4px;width:min(260px,100%);padding:16px 18px;border:2px solid rgba(255,255,255,.82);border-radius:22px;background:#ffffffc7;box-shadow:0 18px 36px #78350f24;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);animation:float-card 3.8s ease-in-out infinite}.self-hero__speech strong{color:#713f12}.self-hero__speech span{color:var(--soft-brown);font-weight:900}.self-progress-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.self-stat-card,.self-panel{border:3px solid #fff;border-radius:var(--radius-lg);background:#ffffffd1;box-shadow:var(--shadow-soft);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.self-stat-card{display:grid;gap:8px;min-height:170px;padding:22px;animation:card-pop .42s ease both}.self-stat-card:nth-child(2){animation-delay:80ms}.self-stat-card:nth-child(3){animation-delay:.16s}.self-stat-card svg,.self-panel__heading>svg{width:44px;height:44px;padding:10px;border-radius:16px;color:#fff;background:linear-gradient(140deg,var(--primary),var(--accent));box-shadow:0 12px 24px #f59e0b33}.self-stat-card span{color:var(--soft-brown);font-weight:900}.self-stat-card strong{color:#713f12;font-size:2rem}.self-stat-card p{margin:0;color:var(--muted);line-height:1.6}.progress-meter--wide{height:14px}.self-learning-grid{display:grid;grid-template-columns:1.2fr .9fr .9fr;gap:18px;align-items:stretch}.self-panel{padding:22px}.self-panel--mission{background:linear-gradient(135deg,#ffffffe6,#fef3c7b8),#fff}.self-panel__heading{display:flex;align-items:center;gap:12px;margin-bottom:16px}.self-panel__heading h2{margin-bottom:5px;color:#713f12}.self-panel__heading p{margin:0;color:var(--muted);line-height:1.5}.today-solo-card,.latest-work-card{display:grid;gap:14px;padding:18px;border:2px solid rgba(245,158,11,.18);border-radius:22px;background:#fff}.today-solo-card{grid-template-columns:minmax(0,1fr) auto;align-items:center}.today-solo-card span{color:var(--soft-brown);font-weight:900}.today-solo-card h3{margin:5px 0 8px;color:#713f12;font-size:1.35rem}.today-solo-card p,.latest-work-card p,.self-suggestion{margin:0;color:var(--muted);line-height:1.65}.skill-orbit{position:relative;display:grid;width:min(240px,100%);aspect-ratio:1;margin:12px auto;place-items:center;border-radius:50%;background:radial-gradient(circle at center,#fff 0 30%,transparent 31%),conic-gradient(from 12deg,#f59e0b52,#60a5fa4d,#a78bfa47,#34d3994d,#f59e0b52);animation:gentle-spin 14s linear infinite}.skill-orbit span{position:absolute;display:grid;min-width:58px;min-height:36px;place-items:center;padding:0 10px;border-radius:999px;color:#2563eb;background:#eff6ff;font-size:.88rem;font-weight:900;animation:counter-spin 14s linear infinite}.skill-orbit__core{color:#fff!important;background:var(--primary)!important;font-size:1.1rem!important}.skill-orbit span:nth-child(2){top:10%}.skill-orbit span:nth-child(3){right:4%}.skill-orbit span:nth-child(4){bottom:10%}.skill-orbit span:nth-child(5){left:4%}.latest-work-card strong{color:#713f12;font-size:1.15rem}.latest-work-card--empty{min-height:210px;align-content:center;justify-items:start;background:linear-gradient(135deg,#fff,#f5f3ff)}.latest-work-card--empty svg{color:var(--primary)}.student-status-board,.today-mission-card,.workshop-hero,.director-hero{display:flex;align-items:center;justify-content:space-between;gap:22px;padding:24px;border:3px solid #fff;border-radius:var(--radius-lg);background:#ffffffb8;box-shadow:var(--shadow-soft);transition:transform .22s ease,box-shadow .22s ease}.student-status-board:hover,.today-mission-card:hover{transform:translateY(-2px);box-shadow:0 18px 42px #a1620724}.student-status-board__profile{display:flex;align-items:center;gap:18px}.student-status-board h1{margin-bottom:6px;color:#713f12;font-size:clamp(1.7rem,4vw,2.7rem)}.resource-row{flex-wrap:wrap}.resource-row span,.reward-stats span,.portfolio-entry__badges span{display:inline-flex;align-items:center;gap:7px;min-height:42px;padding:0 14px;border-radius:999px;background:#fff;color:var(--soft-brown);font-weight:900;box-shadow:var(--shadow-soft);animation:soft-bob 4.2s ease-in-out infinite}.resource-row span:nth-child(2){animation-delay:-1.1s}.resource-row span:nth-child(3){animation-delay:-2.2s}.today-mission-card{background:linear-gradient(135deg,#ffffffe6,#fef3c7db),radial-gradient(circle at 10% 20%,rgba(96,165,250,.18),transparent 22%)}.today-mission-card>svg{flex:0 0 auto;width:48px;height:48px;color:var(--primary)}.today-mission-card span{color:var(--soft-brown);font-weight:900}.today-mission-card strong{display:block;margin:5px 0;font-size:1.4rem}.today-mission-card p{margin-bottom:0;color:var(--muted)}.adventure-map{position:relative;overflow:hidden;min-height:680px;padding:28px;border:4px solid #fff;border-radius:36px;background:linear-gradient(180deg,#ffffffc7,#fff7e880),url(/assets/images/generated/myth-map-bg.png) center / cover no-repeat;box-shadow:var(--shadow);isolation:isolate}.adventure-map:before{content:"";position:absolute;inset:10px;border:2px dashed rgba(161,98,7,.12);border-radius:30px;pointer-events:none}.adventure-map:after{content:"";position:absolute;inset:0;z-index:0;background:linear-gradient(120deg,transparent 0 42%,rgba(255,255,255,.34) 48%,transparent 56% 100%),radial-gradient(circle at 30% 18%,rgba(255,255,255,.34),transparent 18%);opacity:.7;mix-blend-mode:screen;animation:map-light-scan 9s ease-in-out infinite;pointer-events:none}.map-ambient{position:absolute;inset:0;z-index:1;pointer-events:none}.map-cloud{position:absolute;width:150px;height:48px;border-radius:999px;background:#ffffff94;box-shadow:32px 9px #ffffff6b,-26px 12px #ffffff5c;animation:drift-cloud 13s linear infinite}.map-cloud--one{top:10%;left:-8%}.map-cloud--two{right:-10%;bottom:16%;transform:scale(.8);animation-duration:17s;animation-delay:-6s}.map-beacon{position:absolute;width:18px;height:18px;border-radius:50%;background:#fef08a;box-shadow:0 0 0 10px #fef08a3d,0 0 28px #f59e0ba3;animation:beacon-pulse 2.2s ease-in-out infinite}.map-beacon--one{top:30%;left:26%}.map-beacon--two{right:28%;bottom:26%;animation-delay:-1.1s}.map-path{position:absolute;z-index:1;inset:22% 9% 12%;border:8px dashed rgba(255,255,255,.55);border-left:0;border-bottom:0;border-radius:46% 54% 45% 55%;transform:rotate(5deg);animation:route-breathe 3.8s ease-in-out infinite}.map-title{position:relative;z-index:2;max-width:560px}.map-title h2{margin-bottom:8px;color:#713f12;font-size:clamp(1.8rem,4vw,2.8rem)}.map-title p{color:var(--muted);line-height:1.7}.map-card-grid{position:relative;z-index:2;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:28px}.quest-card{position:relative;overflow:hidden;display:grid;grid-template-rows:auto 1fr auto;gap:14px;min-height:285px;padding:18px;border:3px solid #fff;border-radius:26px;background:#ffffffd6;box-shadow:var(--shadow-soft);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transform-origin:center bottom;animation:card-pop .42s ease both;transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}.quest-card:hover{transform:translateY(-6px) rotate(-.6deg);border-color:#f59e0b6b;box-shadow:0 22px 42px #78350f29}.quest-card__shine{position:absolute;inset:0;background:linear-gradient(105deg,transparent 0 42%,rgba(255,255,255,.46) 50%,transparent 58% 100%);transform:translate(-120%);transition:transform .62s ease;pointer-events:none}.quest-card:hover .quest-card__shine{transform:translate(120%)}.quest-card.is-locked{filter:grayscale(.28);background:#ffffff9e}.quest-card--compact{grid-template-columns:auto 1fr;grid-template-rows:auto;min-height:unset;text-align:left;box-shadow:none}.quest-card__icon{position:relative;display:grid;width:92px;height:82px;place-items:center;border-radius:22px;color:var(--soft-brown);background:#ffffffa3}.quest-card__icon-image{display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 10px 10px rgba(120,53,15,.14));animation:icon-float 3.3s ease-in-out infinite}.quest-card__locked-icon{position:absolute;right:-2px;bottom:-2px;display:grid;width:36px;height:36px;place-items:center;border:3px solid #fff;border-radius:50%;color:#fff;background:#374151b8;box-shadow:var(--shadow-soft)}.quest-card__world{margin-bottom:5px;color:var(--soft-brown);font-size:.9rem;font-weight:900}.quest-card h3{margin-bottom:10px;color:#713f12;font-size:1.25rem;line-height:1.35}.quest-card__meta,.tag-row{display:flex;flex-wrap:wrap;gap:8px}.quest-card__meta span,.skill-tag{display:inline-flex;align-items:center;min-height:30px;padding:0 10px;border-radius:999px;background:#fff7ed;color:var(--soft-brown);font-size:.82rem;font-weight:900}.skill-tag{background:#eff6ff;color:#2563eb}.skill-tag--strong{color:#fff;background:var(--secondary)}.quest-card__button{width:100%}.quest-card__trail{position:absolute;top:17px;right:17px;display:flex;gap:5px;pointer-events:none}.quest-card__trail span{display:block;width:7px;height:7px;border-radius:50%;background:#f59e0b9e;animation:trail-dot 1.6s ease-in-out infinite}.quest-card__trail span:nth-child(2){animation-delay:.18s}.quest-card__trail span:nth-child(3){animation-delay:.36s}.reader-top{display:flex;align-items:center;justify-content:space-between;gap:14px}.step-trail{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.step-trail span{padding:9px 12px;border-radius:999px;background:#ffffffbf;color:var(--muted);font-size:.86rem;font-weight:900;transition:transform .18s ease,background .18s ease}.step-trail span.is-active{color:#fff;background:var(--primary);animation:active-step-pulse 2.2s ease-in-out infinite}.step-trail span.is-done{color:#065f46;background:#d1fae5}.quest-intro-scene,.reader-layout,.question-layout,.choice-layout,.completion-page{display:grid;gap:22px}.quest-intro-scene{position:relative;overflow:hidden;grid-template-columns:minmax(0,1fr) 360px;align-items:center;min-height:610px;padding:clamp(24px,5vw,54px);border:4px solid #fff;border-radius:36px;background:radial-gradient(circle at 74% 26%,rgba(255,255,255,.76),transparent 18%),linear-gradient(150deg,#dbeafe,#fef3c7 58%,#fde68a);box-shadow:var(--shadow);isolation:isolate}.quest-intro-scene:before{content:"";position:absolute;inset:0;z-index:0;background:radial-gradient(circle at 78% 60%,rgba(255,255,255,.68),transparent 13%),linear-gradient(115deg,transparent 0 38%,rgba(255,255,255,.38) 45%,transparent 52% 100%);animation:scene-glow 6s ease-in-out infinite;pointer-events:none}.quest-intro-scene__copy,.quest-intro-scene__art,.scene-runes{position:relative;z-index:1}.scene-runes{position:absolute;inset:0;pointer-events:none}.scene-runes span{position:absolute;width:18px;height:18px;border:3px solid rgba(245,158,11,.46);border-left-color:transparent;border-bottom-color:transparent;border-radius:8px;transform:rotate(45deg);animation:rune-orbit 6s ease-in-out infinite}.scene-runes span:nth-child(1){top:18%;right:22%}.scene-runes span:nth-child(2){right:12%;bottom:26%;animation-delay:-1.7s}.scene-runes span:nth-child(3){left:42%;bottom:16%;animation-delay:-3.4s}.world-label{width:fit-content;padding:10px 16px;border-radius:999px;color:#2563eb;background:#eff6ff;font-weight:900}.mission-scroll{max-width:640px;margin:20px 0;padding:22px;border:3px solid rgba(161,98,7,.12);border-radius:24px;background:#ffffffb8;animation:scroll-glow 3.6s ease-in-out infinite}.mission-scroll strong{color:var(--soft-brown)}.mission-scroll p{margin:8px 0 0;font-size:1.25rem;font-weight:900;line-height:1.55}.quest-intro-scene__art{display:grid;place-items:center}.reader-layout{grid-template-columns:minmax(0,1fr) 330px;align-items:start}.article-viewer,.story-reference-panel,.question-panel,.evidence-bag,.reader-next-panel,.coach-bubble,.workshop-panel,.director-panel,.portfolio-empty,.portfolio-entry,.reward-card,.completion-details>section,.quest-editor{border:3px solid #fff;border-radius:var(--radius-lg);background:#ffffffd1;box-shadow:var(--shadow-soft)}.article-viewer{padding:24px;animation:panel-lift .38s ease both}.story-reference-panel{overflow:hidden;background:linear-gradient(135deg,#ffffffe6,#eff6ffb8),#fff;animation:panel-lift .32s ease both}.story-reference-panel__top{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:18px 20px}.story-reference-panel__top h2{margin:0;color:#713f12;font-size:clamp(1.25rem,2.4vw,1.7rem)}.story-reference-panel .article-viewer{border:0;border-top:2px dashed rgba(161,98,7,.14);border-radius:0;box-shadow:none;background:#fffbebc2;animation:story-drop .26s ease both}.story-reference-panel .article-viewer__header{display:none}.story-reference-panel .article-paper{max-height:360px;overflow:auto;margin-top:0;background:#ffffffb8}.story-reference-panel .sentence-button{font-size:1rem}.article-viewer__header h2,.question-panel h2,.choice-scene h2,.completion-details h2{margin-bottom:10px;color:#713f12;font-size:clamp(1.55rem,3vw,2.2rem)}.article-viewer__header p,.question-note,.question-panel__evidence-count{color:var(--muted);line-height:1.7}.article-paper{display:grid;gap:18px;margin-top:22px;padding:20px;border-radius:24px;background:#fffbeb}.story-paragraph{display:flex;flex-wrap:wrap;align-items:flex-start;gap:10px;margin:0;line-height:2.05}.paragraph-badge{display:grid;width:32px;height:32px;flex:0 0 auto;place-items:center;border-radius:50%;color:#fff;background:var(--primary);font-weight:900}.sentence-button{max-width:100%;border:2px solid transparent;border-radius:14px;padding:6px 8px;background:transparent;color:var(--text);font-size:1.08rem;line-height:1.8;text-align:left;transition:transform .16s ease,background .16s ease,box-shadow .16s ease,border-color .16s ease}.sentence-button:hover{background:#60a5fa1a;transform:translateY(-1px)}.sentence-button.is-selected{border-color:#f59e0b61;background:#fef3c7;box-shadow:inset 0 -4px #f59e0b38;animation:evidence-marked .36s ease both}.evidence-bag{position:sticky;top:96px;padding:18px;transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}.evidence-bag.has-evidence{border-color:#f59e0b6b;box-shadow:0 18px 38px #f59e0b24}.evidence-bag__title{display:flex;align-items:center;gap:12px;margin-bottom:14px}.evidence-bag__title h3{margin-bottom:4px;color:#713f12}.evidence-bag__title p{margin:0;color:var(--muted);font-weight:800}.bag-icon{display:grid;width:50px;height:50px;place-items:center;border-radius:18px;color:#fff;background:linear-gradient(150deg,#a16207,#f59e0b);animation:bag-breathe 2.8s ease-in-out infinite}.evidence-bag__list{display:grid;gap:10px}.empty-evidence,.evidence-submit-card,.short-answer-note,.featured-work-card,.parent-report-preview{padding:16px;border-radius:18px;background:#fffbeb;color:var(--muted);line-height:1.7}.evidence-card{position:relative;padding:14px 42px 14px 14px;border:2px solid rgba(245,158,11,.18);border-radius:18px;background:#fff;animation:evidence-card-in .3s ease both}.evidence-card span{color:var(--primary-dark);font-weight:900}.evidence-card p{margin:6px 0 0;line-height:1.6}.evidence-card .mini-icon-button{position:absolute;top:10px;right:10px}.reader-next-panel{grid-column:1 / -1;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px}.coach-bubble{display:flex;align-items:center;gap:12px;padding:14px;background:linear-gradient(135deg,#fff,#f5f3ff);animation:coach-in .32s ease both;transition:transform .18s ease,box-shadow .18s ease}.coach-bubble:hover{transform:translateY(-2px);box-shadow:0 16px 30px #5b21b61f}.coach-bubble strong{display:block;margin-bottom:4px;color:#5b21b6}.coach-bubble p{margin:0;line-height:1.55}.question-layout{grid-template-columns:minmax(0,1fr) 330px;align-items:start}.question-main{display:grid;gap:16px}.question-panel{padding:24px;animation:panel-lift .34s ease both}.question-panel__top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.question-count{display:grid;width:58px;height:58px;place-items:center;border-radius:20px;color:#fff;background:var(--primary);font-weight:900}.option-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:18px 0}.answer-option{display:flex;align-items:center;gap:12px;min-height:74px;border:2px solid rgba(161,98,7,.12);border-radius:20px;padding:14px;background:#fff;color:var(--text);text-align:left;font-weight:800;line-height:1.45;transition:transform .16s ease,border-color .16s ease,background .16s ease,box-shadow .16s ease}.answer-option:hover{transform:translateY(-2px);border-color:#60a5fa57;box-shadow:0 14px 26px #60a5fa1f}.answer-option span,.choice-card__letter,.order-number{display:grid;width:36px;height:36px;flex:0 0 auto;place-items:center;border-radius:14px;color:#fff;background:var(--secondary);font-weight:900}.answer-option.is-selected{border-color:#f59e0b99;background:#fffbeb;box-shadow:inset 0 -5px #f59e0b38;animation:selected-pop .22s ease both}.question-panel__submit{width:100%;margin-top:4px}.order-list{display:grid;gap:10px;margin:18px 0}.order-item{display:flex;align-items:center;gap:12px;min-height:66px;padding:12px;border-radius:18px;background:#fff;box-shadow:var(--shadow-soft)}.order-item p{flex:1;margin:0;font-weight:800}.order-actions{display:flex;gap:6px}.order-actions button{display:grid;width:38px;height:38px;place-items:center;border:0;border-radius:12px;color:var(--soft-brown);background:#fff7ed}.short-answer-box{display:grid;gap:10px;margin-top:18px;color:var(--soft-brown);font-weight:900}textarea,input,select{width:100%;border:2px solid rgba(161,98,7,.16);border-radius:16px;padding:13px 14px;background:#fff;color:var(--text);line-height:1.6}textarea:focus,input:focus,select:focus,button:focus-visible{outline:3px solid rgba(96,165,250,.35);outline-offset:2px}.choice-layout{grid-template-columns:minmax(0,1fr) 310px;align-items:start}.choice-scene{padding:24px;border:4px solid #fff;border-radius:36px;background:linear-gradient(135deg,#ffffffe6,#ede9fed1);box-shadow:var(--shadow-soft)}.choice-scene>p{color:var(--muted);font-size:1.1rem;line-height:1.7}.choice-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:20px}.choice-card{position:relative;overflow:hidden;display:grid;align-content:start;gap:12px;min-height:210px;border:3px solid #fff;border-radius:24px;padding:18px;background:#fff;color:var(--text);text-align:left;box-shadow:var(--shadow-soft);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.choice-card:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 20% 10%,rgba(255,255,255,.78),transparent 22%);opacity:0;transition:opacity .18s ease}.choice-card:hover{transform:translateY(-4px);box-shadow:0 18px 36px #78350f24}.choice-card:hover:after{opacity:1}.choice-card strong{font-size:1.12rem;line-height:1.45}.choice-card p{margin:0;color:var(--muted);line-height:1.65}.choice-card.is-selected{border-color:#f59e0bb3;background:#fffbeb;animation:selected-pop .24s ease both}.choice-card--best.is-selected{border-color:#34d399b8;background:#ecfdf5}.choice-side{display:grid;gap:16px;justify-items:center}.completion-page{grid-template-columns:390px minmax(0,1fr);align-items:start}.reward-card{position:relative;overflow:hidden;padding:28px;text-align:center;background:linear-gradient(160deg,#fef3c7,#fff,#dbeafe);animation:reward-rise .52s ease both}.reward-card:before{content:"";position:absolute;inset:-30%;z-index:0;background:conic-gradient(from 90deg,transparent,rgba(255,255,255,.76),transparent,rgba(245,158,11,.18),transparent);opacity:.42;animation:reward-orbit 8s linear infinite}.reward-card>*{position:relative;z-index:1}.reward-confetti{position:absolute;inset:0;z-index:2;pointer-events:none}.reward-confetti span{position:absolute;top:12%;width:9px;height:16px;border-radius:4px;background:var(--primary);animation:confetti-fall 3.4s ease-in-out infinite}.reward-confetti span:nth-child(1){left:17%}.reward-confetti span:nth-child(2){left:35%;background:var(--secondary);animation-delay:-.8s}.reward-confetti span:nth-child(3){left:55%;background:var(--accent);animation-delay:-1.4s}.reward-confetti span:nth-child(4){left:72%;background:var(--success);animation-delay:-2.1s}.reward-confetti span:nth-child(5){left:85%;background:var(--danger);animation-delay:-2.7s}.reward-card__burst{margin-inline:auto;display:grid;width:78px;height:78px;place-items:center;border-radius:28px;color:#fff;background:linear-gradient(140deg,#f59e0b,#a78bfa);font-size:2.2rem;box-shadow:var(--shadow);animation:badge-pulse 2.2s ease-in-out infinite}.reward-card h2{margin:18px 0 10px;color:#713f12;font-size:2rem}.reward-card p{color:var(--muted);line-height:1.6}.reward-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:18px 0}.reward-stats span{justify-content:center}.badge-earned{display:flex;align-items:center;gap:12px;padding:16px;border-radius:20px;background:#fff;text-align:left}.badge-earned img{width:74px;height:74px;object-fit:contain;filter:drop-shadow(0 10px 10px rgba(120,53,15,.16));animation:badge-float 2.6s ease-in-out infinite}.badge-earned p{margin:4px 0 0}.completion-details{display:grid;gap:16px}.completion-details>section{display:flex;gap:16px;padding:22px}.completion-details svg{flex:0 0 auto;color:var(--primary)}.completion-details ol{margin:0;padding-left:22px;line-height:1.9;font-weight:900}.parent-copy{padding:14px;border-radius:16px;background:#eff6ff}.workshop-hero,.director-hero{background:radial-gradient(circle at 85% 20%,rgba(167,139,250,.22),transparent 22%),linear-gradient(135deg,#ffffffe6,#fef3c7b8)}.teacher-grid,.teacher-insights,.director-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.workshop-panel,.director-panel,.quest-editor{padding:20px}.workshop-panel--quests{max-height:760px;overflow:auto}.panel-heading{display:flex;align-items:center;gap:12px;margin-bottom:16px}.panel-heading>svg{width:42px;height:42px;padding:10px;border-radius:16px;color:#fff;background:linear-gradient(140deg,var(--primary),var(--accent))}.panel-heading h2{margin-bottom:4px;color:#713f12}.panel-heading p{margin:0;color:var(--muted);line-height:1.5}.teacher-quest-list{display:grid;gap:12px}.teacher-quest-button{border:0;border-radius:28px;padding:0;background:transparent}.teacher-quest-button.is-active .quest-card{border-color:#f59e0b99;background:#fffbeb}.selected-quest-panel{background:linear-gradient(180deg,#ffffffdb,#eff6ffcc),#fff}.class-status-list,.answer-rate-list,.short-answer-list{display:grid;gap:12px;margin-top:18px}.student-progress-card,.answer-rate-row{display:grid;grid-template-columns:minmax(130px,1fr) auto minmax(120px,.7fr) auto;align-items:center;gap:12px;padding:14px;border-radius:18px;background:#fff;box-shadow:var(--shadow-soft)}.student-progress-card strong,.student-progress-card span{display:block}.student-progress-card span,.student-progress-card p{margin:0;color:var(--muted);font-size:.92rem}.progress-meter{overflow:hidden;height:12px;border-radius:999px;background:#fef3c7}.progress-meter span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--success),var(--secondary))}.answer-rate-row{grid-template-columns:minmax(120px,1fr) minmax(120px,1fr) 52px}.short-answer-note strong{color:#713f12}.short-answer-note p{margin:8px 0 0}.quest-editor{display:grid;gap:18px}.quest-editor__header{display:flex;gap:14px;align-items:center}.quest-editor__header svg{width:50px;height:50px;padding:12px;border-radius:18px;color:#fff;background:var(--accent)}.quest-editor__header h2{margin-bottom:4px;color:#713f12}.quest-editor__header p{margin:0;color:var(--muted)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.form-grid--wide{align-items:start}.quest-editor label{display:grid;gap:7px;color:var(--soft-brown);font-weight:900}.metric-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.metric-card{display:grid;gap:8px;padding:22px;border:3px solid #fff;border-radius:var(--radius-lg);background:#ffffffd6;box-shadow:var(--shadow-soft)}.metric-card svg{width:42px;height:42px;padding:10px;border-radius:16px;color:#fff;background:var(--secondary)}.metric-card span{color:var(--muted);font-weight:800}.metric-card strong{color:#713f12;font-size:1.7rem}.radar-panel{grid-row:span 2}.radar-chart{display:block;width:min(100%,460px);margin:0 auto}.radar-chart text{fill:var(--soft-brown);font-size:10px;font-weight:800}.featured-work-card strong{color:#713f12;font-size:1.25rem}.featured-work-card span{color:#2563eb;font-weight:900}.parent-report-preview{margin:0;font-size:1.08rem}.portfolio-book{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.portfolio-empty{display:grid;min-height:320px;place-items:center;padding:34px;text-align:center}.portfolio-empty svg{color:var(--primary)}.portfolio-empty h2{color:#713f12}.portfolio-entry{padding:22px;background:linear-gradient(90deg,rgba(245,158,11,.08) 0 10px,transparent 10px),#ffffffdb}.portfolio-entry__top,.portfolio-entry__footer{display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--soft-brown);font-weight:900}.portfolio-entry h2{margin:16px 0 12px;color:#713f12}.portfolio-entry__badges{display:flex;flex-wrap:wrap;gap:8px}.portfolio-entry__section{margin-top:18px}.portfolio-entry__section h3{margin-bottom:8px;color:var(--soft-brown)}.portfolio-evidence{padding:12px;border-radius:16px;background:#fffbeb;line-height:1.65}.portfolio-evidence strong{margin-right:8px;color:var(--primary-dark)}.portfolio-entry__footer{flex-wrap:wrap;margin-top:18px;color:var(--muted);font-size:.92rem}.portfolio-entry__footer span{display:inline-flex;align-items:center;gap:6px}@keyframes page-enter{0%{opacity:.96;transform:translateY(10px)}}@keyframes page-light-sweep{0%,to{background-position:0 0,0 0,0% 50%}50%{background-position:0 0,0 0,100% 50%}}@keyframes hero-arrive{0%{opacity:.96;transform:translateY(14px) scale(.985)}}@keyframes hero-shimmer{0%,to{opacity:.45;transform:translate(-8%)}50%{opacity:.86;transform:translate(8%)}}@keyframes sparkle-float{0%,to{opacity:.38;transform:translateY(0) scale(.82)}50%{opacity:1;transform:translateY(-12px) scale(1.08)}}@keyframes trail-glow{0%,to{opacity:.42;transform:rotate(-9deg) scaleX(.86)}50%{opacity:1;transform:rotate(-9deg) scaleX(1.05)}}@keyframes float-card{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes card-pop{0%{opacity:.92;transform:translateY(12px) scale(.97)}}@keyframes sprite-spark{0%,to{opacity:0;transform:translateY(10px) scale(.62)}45%{opacity:1;transform:translateY(-6px) scale(1)}}@keyframes soft-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}@keyframes map-light-scan{0%,to{transform:translate(-18%);opacity:.36}50%{transform:translate(18%);opacity:.72}}@keyframes drift-cloud{0%{transform:translate(0)}to{transform:translate(1300px)}}@keyframes beacon-pulse{0%,to{transform:scale(.82);opacity:.5}50%{transform:scale(1.12);opacity:1}}@keyframes route-breathe{0%,to{opacity:.54;transform:rotate(5deg) scale(1)}50%{opacity:.9;transform:rotate(5deg) scale(1.01)}}@keyframes icon-float{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-5px) rotate(1.4deg)}}@keyframes trail-dot{0%,to{opacity:.28;transform:scale(.72)}50%{opacity:1;transform:scale(1)}}@keyframes active-step-pulse{0%,to{box-shadow:0 8px 18px #f59e0b29}50%{box-shadow:0 12px 26px #f59e0b52}}@keyframes scene-glow{0%,to{opacity:.45;transform:translate(-2%)}50%{opacity:.86;transform:translate(2%)}}@keyframes rune-orbit{0%,to{opacity:.35;transform:translateY(0) rotate(45deg)}50%{opacity:1;transform:translateY(-12px) rotate(225deg)}}@keyframes scroll-glow{0%,to{box-shadow:0 0 #f59e0b00}50%{box-shadow:0 12px 28px #f59e0b1f}}@keyframes panel-lift{0%{opacity:.94;transform:translateY(10px)}}@keyframes story-drop{0%{opacity:.92;transform:translateY(-8px)}}@keyframes evidence-marked{0%{transform:scale(.98)}60%{transform:scale(1.025)}}@keyframes bag-breathe{0%,to{transform:scale(1)}50%{transform:scale(1.06) rotate(-2deg)}}@keyframes evidence-card-in{0%{opacity:.88;transform:translateY(8px) rotate(-.6deg)}}@keyframes coach-in{0%{opacity:.92;transform:translateY(8px) scale(.98)}}@keyframes selected-pop{0%{transform:scale(.98)}70%{transform:scale(1.02)}}@keyframes reward-rise{0%{opacity:.94;transform:translateY(16px) scale(.98)}}@keyframes reward-orbit{to{transform:rotate(1turn)}}@keyframes confetti-fall{0%{opacity:0;transform:translateY(-26px) rotate(0)}18%{opacity:1}to{opacity:0;transform:translateY(260px) rotate(260deg)}}@keyframes badge-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.06) rotate(3deg)}}@keyframes badge-float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes gentle-spin{to{transform:rotate(1turn)}}@keyframes counter-spin{to{transform:rotate(-1turn)}}@media(max-width:980px){.topbar{align-items:flex-start;flex-direction:column}.topbar__user{width:100%;justify-content:space-between}.island-hero,.self-hero,.quest-intro-scene,.reader-layout,.question-layout,.choice-layout,.completion-page,.teacher-grid,.teacher-insights,.director-grid{grid-template-columns:1fr}.floating-island{min-height:280px}.role-grid,.self-progress-grid,.self-learning-grid,.map-card-grid,.choice-grid,.metric-grid,.portfolio-book{grid-template-columns:1fr}.student-status-board,.today-mission-card,.workshop-hero,.director-hero,.reader-next-panel{align-items:flex-start;flex-direction:column}.today-solo-card{grid-template-columns:1fr}.evidence-bag{position:static}.option-grid,.form-grid,.student-progress-card,.answer-rate-row{grid-template-columns:1fr}}@media(max-width:620px){main{width:min(100% - 18px,1180px);padding-top:14px}.topbar{padding:12px}.brand-mark{min-width:0}.brand-mark small{display:none}.topbar__nav{justify-content:flex-start}.nav-button span{font-size:.86rem}.island-hero,.self-hero,.adventure-map,.quest-intro-scene,.choice-scene{border-radius:26px;padding:20px}.sprite--lg{--sprite-size: 165px}.reward-stats{grid-template-columns:1fr}.step-trail{justify-content:flex-start}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}}
