:root{color:#fff;font-synthesis:none;text-rendering:optimizelegibility;--navy:#0a0a2e;--panel:#1a1a4ed1;--panel-strong:#191b4bf5;--gold:#ffd93d;--coral:#ff7474;--mint:#59dec5;--green:#79d77f;--lavender:#c9ceff;--muted:#b9c0df;background:#0a0a2e;font-family:Segoe UI,Inter,ui-rounded,system-ui,-apple-system,sans-serif}*{box-sizing:border-box;margin:0;padding:0}html{background:var(--navy);min-width:320px;min-height:100%}body{color:#fff;background:radial-gradient(circle at 10% 0,#6b73ff47,#0000 32rem),radial-gradient(circle at 92% 28%,#4ecdc429,#0000 28rem),linear-gradient(#0a0a2e 0%,#171747 52%,#0d1b3e 100%);min-width:320px;min-height:100vh;overflow-x:hidden}body:before{z-index:0;pointer-events:none;content:"";opacity:.8;background:radial-gradient(1px 1px at 10% 20%, #fff, transparent), radial-gradient(1px 1px at 30% 60%, #fff, transparent), radial-gradient(1px 1px at 50% 10%, #fff, transparent), radial-gradient(1px 1px at 70% 40%, #fff, transparent), radial-gradient(1px 1px at 90% 80%, #fff, transparent), radial-gradient(2px 2px at 15% 70%, var(--gold), transparent), radial-gradient(2px 2px at 45% 30%, var(--gold), transparent), radial-gradient(2px 2px at 75% 85%, var(--gold), transparent), radial-gradient(2px 2px at 85% 15%, var(--gold), transparent);position:fixed;inset:0}button,textarea,input{font:inherit}button{min-height:44px}button:focus-visible,textarea:focus-visible,input:focus-visible,.upload-label:focus-within{outline-offset:3px;outline:3px solid #fff09b}code{color:#fff5b8;background:#25265f;border-radius:.4rem;padding:.15rem .35rem}.loading-screen,.system-screen,.login-screen,.app-shell{z-index:1;position:relative}.loading-screen,.system-screen,.login-screen{place-items:center;min-height:100vh;padding:1.25rem;display:grid}.loading-screen{color:#f2f3ff;font-size:1.1rem;font-weight:700}.system-card,.login-card{text-align:center;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#181949e6;border:2px solid #ffffff29;border-radius:2rem;width:min(100%,34rem);padding:clamp(1.5rem,5vw,3.25rem);box-shadow:0 1.5rem 5rem #00000057}.system-icon,.hero-orbit,.start-icon{background:linear-gradient(145deg,#303384,#1b1c59);border:2px solid #ffffff2e;border-radius:50%;place-items:center;width:5.4rem;height:5.4rem;margin-bottom:1rem;font-size:3rem;display:inline-grid;box-shadow:0 0 0 .75rem #6b73ff17,0 0 2.5rem #4ecdc42e}.hero-orbit{animation:4s ease-in-out infinite float-card}.login-card h1,.system-card h1,.site-header h1{color:#fff}.login-card h1,.system-card h1{margin:.5rem 0 .75rem;font-size:clamp(2.1rem,7vw,3.35rem);line-height:1.02}@supports ((-webkit-background-clip:text) or (background-clip:text)){.login-card h1,.site-header h1,.certificate h3{background:linear-gradient(90deg, var(--gold), var(--coral), var(--mint));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}}.eyebrow{color:#cdd2ff;letter-spacing:.14em;text-transform:uppercase;margin:0 0 .45rem;font-size:.76rem;font-weight:900}.subtitle{color:#e1e4f8;margin:0 0 1.6rem;font-size:clamp(1rem,3vw,1.16rem)}.features,.stats{flex-wrap:wrap;justify-content:center;gap:.65rem;display:flex}.features{margin-bottom:1.65rem}.features span,.stats span{color:#fff;background:#ffffff1a;border:1px solid #ffffff2b;border-radius:999px;padding:.65rem .95rem;box-shadow:inset 0 1px #ffffff0f}.login-hint{color:#bdc4e3;margin:.85rem 0 0;font-size:.86rem;line-height:1.5}.login-form{text-align:left;gap:.72rem;display:grid}.login-form label,.answer-label{color:#fff;font-size:.92rem;font-weight:850}.login-form input,textarea{color:#fff;background:#0e0f39b8;border:2px solid #c9ceff47;border-radius:1rem;width:100%;transition:border-color .18s,background .18s,box-shadow .18s}.login-form input{min-height:50px;padding:.78rem .9rem}.login-form input:focus,textarea:focus{border-color:var(--gold);background:#141646e6;box-shadow:0 0 1.2rem #ffd93d1f}.auth-help{color:#bbc2e1;margin-top:-.35rem;font-size:.8rem}.login-form .btn-primary{margin-top:.4rem}.auth-switch{color:#e5e7ff;cursor:pointer;min-height:44px;text-decoration:underline;-webkit-text-decoration-color:var(--gold);text-decoration-color:var(--gold);text-underline-offset:.22rem;background:0 0;border:0;margin-top:.55rem;padding:.65rem;font-weight:800}.btn-primary,.btn-success,.btn-secondary,.btn-quiet{cursor:pointer;border:0;border-radius:999px;font-weight:900;transition:transform .18s,filter .18s,box-shadow .18s,opacity .18s}.btn-primary{color:#17172f;background:linear-gradient(135deg, var(--coral), var(--gold) 52%, var(--green));width:100%;padding:1rem 1.3rem;box-shadow:0 .75rem 2rem #ff747442}.btn-success{color:#07241d;background:linear-gradient(135deg, var(--green), var(--mint));flex:1;padding:.9rem 1.2rem;box-shadow:0 .6rem 1.5rem #59dec533}.btn-secondary,.btn-quiet{color:#fff;background:#ffffff1a;border:1px solid #ffffff29;padding:.8rem 1.1rem}.btn-quiet{padding:.65rem .95rem;font-size:.86rem}button:hover:not(:disabled){filter:brightness(1.08)saturate(1.06);transform:translateY(-2px)scale(1.01)}button:disabled{cursor:not-allowed;opacity:.55}.app-shell{width:min(100%,60rem);min-height:100vh;margin:0 auto;padding:0 1.25rem}.site-header{border-bottom:2px solid #ffffff1a;justify-content:space-between;align-items:center;gap:1rem;padding:1.5rem 0;display:flex}.site-header h1{margin:0;font-size:clamp(1.3rem,4vw,1.85rem)}.header-actions{align-items:center;gap:.65rem;display:flex}.score-pill{color:#2a1d00;white-space:nowrap;background:linear-gradient(135deg, var(--gold), #ffad63);border-radius:999px;padding:.68rem .95rem;font-weight:950;box-shadow:0 .35rem 1.2rem #ffd93d40}.app-main{padding:2rem 0 3rem}.start-main{min-height:calc(100vh - 12rem)}.welcome-row,.progress-copy,.section-heading{justify-content:space-between;align-items:center;gap:1rem;display:flex}.welcome-row{margin-bottom:1.3rem}.welcome-row p,.welcome-row h2{margin:0}.welcome-row p{color:#c2c8e5}.welcome-row h2{font-size:clamp(1.45rem,4vw,2rem)}.today-label{background:linear-gradient(135deg,#ff747438,#6b73ff52);border:1px solid #ffffff1f;border-radius:999px;padding:.58rem .85rem;font-size:.86rem;font-weight:800;color:#fff!important}.alert,.loading-card{border-radius:1rem;padding:.9rem 1rem;line-height:1.5}.alert.error{color:#ffe6e7;background:#b82d4147;border:1px solid #ff8d978c}.alert.success{color:#d7fff5;background:#17896f45;border:1px solid #59e1bd80}.alert.warning{color:#fff5c5;background:#9b6e0d47;border:1px solid #ffd93d80}.alert-with-action{justify-content:space-between;align-items:center;gap:.8rem;display:flex}.alert-with-action .btn-secondary{flex:none}.loading-card{color:#f0f1ff;text-align:center;background:#ffffff14;border:1px solid #ffffff1a}.start-card{text-align:center;background:radial-gradient(circle at 50% 0%, #ffd93d1f, transparent 20rem), var(--panel);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:2px solid #ffffff24;border-radius:2rem;width:min(100%,46rem);margin:2rem auto 0;padding:clamp(1.65rem,6vw,3.75rem);animation:3s ease-in-out infinite pulse-glow;box-shadow:0 0 2rem #ffd93d1f}.start-card h2{color:var(--gold);margin:.4rem 0 1rem;font-size:clamp(1.8rem,5vw,2.8rem);line-height:1.15}.start-copy{color:#e0e3f7;max-width:38rem;margin:0 auto 1.5rem;font-size:1.08rem;line-height:1.72}.start-note{color:#bdc4e3;margin:.95rem 0 0;font-size:.83rem;line-height:1.5}.progress-section{background:#fff1;border:1px solid #ffffff1f;border-radius:1.2rem;margin-bottom:1.3rem;padding:1.25rem}.progress-copy{color:#eef0ff;margin-bottom:.8rem}.progress-track{background:#ffffff14;border:1px solid #ffffff14;border-radius:999px;height:1rem;overflow:hidden}.progress-fill{background:linear-gradient(90deg, var(--mint), var(--green), var(--gold));border-radius:inherit;height:100%;transition:width .7s;box-shadow:0 0 1rem #59dec573}.badges-section{flex-wrap:wrap;justify-content:center;gap:.65rem;margin-bottom:1.3rem;display:flex}.badge-earned{color:#fff4b1;background:linear-gradient(135deg,#ffd93d2e,#ff747429);border:1px solid #ffd93d80;border-radius:999px;padding:.58rem .9rem;font-size:.92rem;animation:.5s ease-out both bounce-in;box-shadow:0 .4rem 1.25rem #ffd93d1a}.challenge-list{flex-direction:column;gap:1rem;margin-bottom:2rem;display:flex}.challenge-block{background:#ffffff0b;border:2px solid #ffffff17;border-radius:1.25rem;padding:1.5rem;transition:border-color .25s,box-shadow .25s,background .25s}.challenge-block.locked{color:#b7bedc;background:#ffffff06;border-color:#c9ceff21}.challenge-block.missed{background:#ff6b6b12;border-color:#ff828c4d}.challenge-block.done{background:#6bcb7714;border-color:#79d77f61}.challenge-block.today{background:radial-gradient(circle at 100% 0,#ffd93d1a,#0000 18rem),#1a1b4ded;border-color:#ffd93d8c;animation:2.5s ease-in-out infinite today-glow;box-shadow:0 0 1.8rem #ffd93d1f}.challenge-number{margin:0 0 .75rem;font-size:1.18rem;line-height:1.4}.challenge-block.locked .challenge-number{color:#c1c7e3}.challenge-block.missed .challenge-number,.challenge-missed-msg{color:#ff9da6}.challenge-block.done .challenge-number,.challenge-done-msg{color:#9aefad}.challenge-block.today .challenge-number{color:var(--gold);font-size:clamp(1.35rem,4vw,1.75rem)}.challenge-task{color:#eef0ff;border-left:4px solid var(--gold);background:#ffffff0b;border-radius:.85rem;margin:0 0 1.2rem;padding:1rem;font-size:1.05rem;line-height:1.75}.challenge-locked-msg,.challenge-missed-msg,.challenge-done-msg{text-align:center;margin:0;line-height:1.6}.challenge-locked-msg{color:#b7bedc;font-style:italic}.challenge-done-msg a{color:#74ead5;text-underline-offset:.18rem;font-weight:850}.challenge-done-msg span{color:#d2d7ef}.gallery-section{margin:2rem 0}.section-heading{align-items:end;margin-bottom:1rem}.section-heading h2,.section-heading p{margin-top:0}.section-heading h2{margin-bottom:0;font-size:clamp(1.5rem,4vw,2rem)}.section-heading>span{color:#c3c9e5;font-size:.86rem}.submission-gallery{grid-template-columns:repeat(3,minmax(0,1fr));gap:.9rem;display:grid}.submission-card{background:var(--panel-strong);border:2px solid #c9ceff29;border-radius:1.15rem;min-width:0;margin:0;transition:transform .18s,border-color .18s;overflow:hidden;box-shadow:0 .7rem 1.7rem #00000029}.submission-card:hover{border-color:#ffd93d80;transform:translateY(-3px)}.submission-card img{aspect-ratio:4/3;object-fit:cover;background:#292b72;width:100%;display:block}.submission-card figcaption{color:#f0f1ff;padding:.75rem .85rem;font-size:.86rem;line-height:1.45}.challenge-guide{color:#d7dbef;background:#ffffff0b;border:1px solid #ffffff1a;border-radius:.9rem;margin:1rem 0;padding:1rem}.challenge-guide h4{color:var(--gold);text-transform:uppercase;margin:0 0 .65rem;font-size:1rem;line-height:1.45}.challenge-guide.success{background:#6bcb7712;border-color:#79d77f57}.challenge-guide.success h4{color:#9aefad}.challenge-guide.error{background:#ff6b6b12;border-color:#ff828c57}.challenge-guide.error h4{color:#ff9da6}.challenge-guide ol,.challenge-guide ul{margin:0;padding-left:1.4rem;line-height:1.75}.challenge-guide li+li{margin-top:.25rem}.deadline{color:#fff;text-align:center;background:#ffd93d1a;border:1px solid #ffd93d66;border-radius:1rem;flex-wrap:wrap;justify-content:center;align-items:center;gap:.4rem;margin:0 0 1.25rem;padding:.9rem 1rem;line-height:1.45;display:flex}.deadline strong{color:#fff2a5;font-size:1.08em}.upload-form{gap:.95rem;display:grid}.upload-label{text-align:center;cursor:pointer;background:#ffffff12;border:2px dashed #ffd93d73;border-radius:1.1rem;gap:.32rem;padding:1.35rem;transition:background .18s,border-color .18s;display:grid;position:relative}.upload-label:hover{border-color:var(--gold);background:#ffd93d0f}.upload-label span{font-weight:900}.upload-label small,.char-count{color:#c3c9e5}.upload-label input{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.file-name{color:#99f0c5;overflow-wrap:anywhere;text-align:center;margin:0}textarea{resize:vertical;min-height:7rem;padding:1rem}textarea::placeholder{color:#aab2d5}.char-count{text-align:right;margin-top:-.55rem;font-size:.81rem}.upload-buttons{gap:.7rem;display:flex}.journey-ended{text-align:center;background:linear-gradient(135deg,#ff74741a,#4ecdc414);border:2px solid #ffffff24;border-radius:1.6rem;margin-top:2rem;padding:clamp(1.5rem,5vw,2.6rem)}.journey-ended>span{font-size:3.2rem;display:block}.journey-ended h2{color:var(--gold);margin:.75rem 0}.journey-ended p{color:#e0e3f7;max-width:38rem;margin:0 auto;line-height:1.7}.completed-section{text-align:center;padding:2rem 0}.certificate{color:#fff8dc;border:3px double var(--gold);background:radial-gradient(circle at 50% 0,#ffd93d33,#0000 18rem),linear-gradient(135deg,#ffd93d1a,#ff747414),#181937;border-radius:2rem;padding:clamp(1.6rem,5vw,3rem);box-shadow:0 0 2.5rem #ffd93d29}.trophy{font-size:4.5rem;animation:.7s ease-out both bounce-in;display:block}.certificate h3{color:var(--gold);text-transform:uppercase;margin:.4rem 0 1rem;font-size:clamp(2.1rem,7vw,3.6rem)}.stats{margin:1.5rem 0}.congrats{color:#fff1a7;font-style:italic;line-height:1.6}.print-button{margin-top:.85rem}footer{color:#bdc4e3;text-align:center;border-top:1px solid #ffffff1a;padding:1.5rem 0 2.5rem;font-size:.86rem;line-height:1.6}@keyframes float-card{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes pulse-glow{0%,to{box-shadow:0 0 1.5rem #ffd93d1a}50%{box-shadow:0 0 2.8rem #ffd93d3b}}@keyframes bounce-in{0%{opacity:0;transform:scale(.65)}65%{opacity:1;transform:scale(1.08)}to{transform:scale(1)}}@keyframes today-glow{0%,to{box-shadow:0 0 1.3rem #ffd93d14}50%{box-shadow:0 0 2.5rem #ffd93d33}}@media (width<=640px){.app-shell{padding:0 .85rem}.site-header,.welcome-row{align-items:flex-start}.site-header{padding:1rem 0}.header-actions{flex-direction:column;align-items:stretch}.score-pill,.btn-quiet{text-align:center}.welcome-row,.progress-copy,.section-heading{flex-direction:column;align-items:flex-start}.welcome-row{gap:.7rem}.today-label{align-self:flex-start}.progress-copy,.section-heading{gap:.3rem}.start-card{margin-top:1.25rem;padding:1.65rem 1.15rem}.challenge-block{padding:1rem}.challenge-guide{padding:.9rem}.submission-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.upload-buttons,.alert-with-action{flex-direction:column;align-items:stretch}.deadline{padding-inline:.75rem;font-size:.94rem}}@media (width<=380px){.site-header h1{font-size:1.18rem}.submission-gallery{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media print{body{color:#111;background:#fff}body:before,.site-header,.welcome-row,.progress-section,.badges-section,.challenge-list,.gallery-section,.journey-ended,footer,.print-button{display:none!important}.app-shell,.app-main,.completed-section{width:100%;max-width:none;margin:0;padding:0;animation:none}.certificate{color:#111;box-shadow:none;break-inside:avoid;background:#fff;border-color:#9a6b00}.certificate h3,.congrats{color:#5c4100;-webkit-text-fill-color:currentColor;background:0 0}}
