:root{--color-bg: #05080F;--color-bg-deep: #020408;--color-bg-glass: rgba(15, 25, 45, .4);--color-bg-elevated: rgba(30, 45, 75, .5);--color-frost: #A0D2EB;--color-frost-dim: rgba(160, 210, 235, .2);--color-frost-glow: rgba(160, 210, 235, .1);--color-amber: #FFB347;--color-amber-dim: rgba(255, 179, 71, .2);--color-amber-glow: rgba(255, 179, 71, .1);--color-violet: #C084FC;--color-violet-glow: rgba(192, 132, 252, .15);--color-text-primary: #F8FAFC;--color-text-secondary: #94A3B8;--color-text-muted: #64748B;--color-border: rgba(255, 255, 255, .08);--color-border-bright: rgba(255, 255, 255, .15);--radius-sm: 8px;--radius-md: 16px;--radius-lg: 24px;--radius-xl: 32px;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-6: 1.5rem;--space-8: 2rem;--space-12: 3rem;--shadow-glass: 0 8px 32px 0 rgba(0, 0, 0, .5);--transition-smooth: all .4s cubic-bezier(.16, 1, .3, 1);--font-display: "Outfit", sans-serif;--font-body: "Inter", system-ui, -apple-system, sans-serif;--text-xs: .75rem;--text-sm: .8125rem;--text-base: .9375rem;--text-md: 1rem;--text-lg: 1.125rem;--text-xl: 1.375rem;--text-2xl: 1.75rem;--text-3xl: 2.25rem;--leading-tight: 1.25;--leading-normal: 1.55;--leading-relaxed: 1.7;--nav-height: 4.25rem;--header-height: 3.5rem;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--content-max: 480px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}body{font-family:var(--font-body);background-color:var(--color-bg);color:var(--color-text-primary);line-height:1.5;overflow-x:hidden;min-height:100vh;position:relative;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body:before{content:"";position:fixed;top:0;left:0;width:100%;height:100%;background:radial-gradient(at 0% 0%,var(--color-frost-glow) 0,transparent 50%),radial-gradient(at 100% 100%,var(--color-amber-glow) 0,transparent 50%),radial-gradient(at 50% 0%,rgba(192,132,252,.05) 0,transparent 50%);z-index:-2}body:after{content:"";position:fixed;top:0;left:0;width:100%;height:100%;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3%3Ffilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E");opacity:.03;pointer-events:none;z-index:-1}#root{position:relative;z-index:1;min-height:100dvh;display:flex;flex-direction:column}.app-container{width:100%;max-width:var(--content-max);margin:0 auto;min-height:100vh;position:relative;display:flex;flex-direction:column}img,svg{display:block;max-width:100%}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;background:none;border:none;outline:none}ul,ol{list-style:none}h1,h2,h3,h4,.outfit{font-family:var(--font-display);letter-spacing:-.02em;font-weight:600}.font-display{font-family:var(--font-display);font-weight:400}.text-gradient-amber{background:linear-gradient(135deg,var(--color-amber),#FFD388);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.text-gradient-frost{background:linear-gradient(135deg,var(--color-frost),#B8DBF5);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.glass-card{background:var(--color-bg-glass);backdrop-filter:blur(24px) saturate(150%);-webkit-backdrop-filter:blur(24px) saturate(150%);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-6);box-shadow:var(--shadow-glass);transition:var(--transition-smooth)}.glass-card:hover{border:1px solid var(--color-border-bright)}.glass-card:active{transform:scale(.98)}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-text-muted);border-radius:var(--radius-full)}.page{flex:1;display:flex;flex-direction:column;padding:var(--space-4);max-width:var(--content-max);margin:0 auto;width:100%}.page-header{margin-bottom:var(--space-6)}.page-title{font-family:var(--font-display);font-size:var(--text-2xl);line-height:var(--leading-tight);margin-bottom:var(--space-2)}.page-subtitle{font-size:var(--text-sm);color:var(--color-text-secondary);line-height:var(--leading-normal)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);border-radius:var(--radius-md);font-family:var(--font-display);font-weight:600;font-size:var(--text-sm);letter-spacing:.01em;transition:var(--transition-smooth);position:relative;overflow:hidden;cursor:pointer}.btn-primary{background:linear-gradient(135deg,var(--color-amber),#FF8C00);color:#000;border:none;box-shadow:0 4px 15px #ffb34733}.btn-primary:active{transform:scale(.96)}.btn-secondary{background:var(--color-bg-elevated);color:var(--color-text-primary);border:1px solid var(--color-border)}.btn-ghost{color:var(--color-text-secondary)}.btn-ghost:hover,.btn-ghost:active{color:var(--color-text-primary);background:#ffffff0d}.badge{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:600;letter-spacing:.03em;text-transform:uppercase}.badge-amber{background:var(--color-amber-glow);color:var(--color-amber);border:1px solid rgba(244,165,53,.2)}.badge-frost{background:var(--color-frost-glow);color:var(--color-frost);border:1px solid rgba(124,185,232,.2)}.badge-mint{background:var(--color-mint-glow);color:#6ecba0;border:1px solid rgba(110,203,160,.2)}.badge-rose{background:var(--color-rose-glow);color:#e87c9f;border:1px solid rgba(232,124,159,.2)}.badge-violet{background:var(--color-violet-glow);color:var(--color-violet);border:1px solid rgba(167,139,250,.2)}.progress-ring-container{position:relative;display:inline-flex;align-items:center;justify-content:center}.progress-ring-label{position:absolute;font-family:var(--font-display);font-size:var(--text-xl);color:var(--color-text-primary)}.tab-bar{display:flex;gap:var(--space-2);padding:var(--space-1);background:var(--color-bg-elevated);border-radius:var(--radius-full);overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;position:relative}.tab-bar::-webkit-scrollbar{display:none}.tab-bar:after{content:"";position:sticky;right:0;top:0;bottom:0;width:40px;background:linear-gradient(90deg,transparent,var(--color-bg-deep));pointer-events:none;z-index:10;flex-shrink:0}.tab-item{flex-shrink:0;padding:var(--space-2) var(--space-4);border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:500;color:var(--color-text-secondary);transition:all var(--duration-fast) var(--ease-out);white-space:nowrap}.tab-item.active{background:var(--color-bg-card);color:var(--color-amber);box-shadow:var(--shadow-sm)}.bento-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-auto-rows:minmax(140px,auto);gap:var(--space-4);padding-bottom:var(--space-12)}.bento-item{position:relative;overflow:hidden}.bento-item-lg{grid-column:span 2;min-height:180px}.bento-item-tall{grid-row:span 2}.section-card{background:var(--color-bg-glass);backdrop-filter:blur(16px) saturate(1.2);-webkit-backdrop-filter:blur(16px) saturate(1.2);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-5);display:flex;align-items:center;gap:var(--space-4);transition:transform var(--duration-normal) var(--ease-out),box-shadow var(--duration-normal) var(--ease-out),border-color var(--duration-normal) var(--ease-out);cursor:pointer;text-decoration:none}.section-card:active{transform:scale(.97)}.section-card-icon{width:52px;height:52px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-size:1.5rem;flex-shrink:0}.section-card-content{flex:1;min-width:0}.section-card-title{font-weight:600;font-size:var(--text-md);line-height:var(--leading-tight);margin-bottom:var(--space-1)}.section-card-desc{font-size:var(--text-xs);color:var(--color-text-secondary);line-height:var(--leading-normal)}.section-card-arrow{color:var(--color-text-muted);font-size:var(--text-lg);flex-shrink:0}.expand-card{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;transition:border-color var(--duration-normal) var(--ease-out)}.expand-card.expanded{border-color:#f4a53540}.expand-card-header{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5);cursor:pointer;user-select:none;-webkit-user-select:none}.expand-card-header:active{background:#ffffff05}.expand-card-icon{font-size:1.25rem;flex-shrink:0}.expand-card-title{flex:1;font-weight:600;font-size:var(--text-base)}.expand-card-chevron{color:var(--color-text-muted);transition:transform var(--duration-normal) var(--ease-out);font-size:var(--text-sm)}.expand-card.expanded .expand-card-chevron{transform:rotate(180deg)}.expand-card-body{padding:0 var(--space-5) var(--space-5)}.expand-card-body p{color:var(--color-text-secondary);font-size:var(--text-sm);line-height:var(--leading-relaxed);margin-bottom:var(--space-3)}.expand-card-body p:last-child{margin-bottom:0}.flashcard-container{perspective:1000px;width:100%;aspect-ratio:3 / 2;cursor:pointer}.flashcard{width:100%;height:100%;position:relative;transform-style:preserve-3d;transition:transform .6s var(--ease-out)}.flashcard.flipped{transform:rotateY(180deg)}.flashcard-face{position:absolute;top:0;right:0;bottom:0;left:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-6);border-radius:var(--radius-xl);border:1px solid var(--color-border);text-align:center}.flashcard-front{background:linear-gradient(145deg,var(--color-bg-card),var(--color-bg-elevated))}.flashcard-back{background:linear-gradient(145deg,#1A2D50,var(--color-bg-card));transform:rotateY(180deg)}.flashcard-word{font-family:var(--font-display);font-size:var(--text-2xl);margin-bottom:var(--space-3)}.flashcard-hint{font-size:var(--text-sm);color:var(--color-text-secondary)}.flashcard-translation{font-size:var(--text-xl);font-weight:600;margin-bottom:var(--space-2)}.flashcard-example{font-size:var(--text-sm);color:var(--color-text-secondary);font-style:italic;max-width:280px}.phrase-block{background:var(--color-bg-elevated);border-left:3px solid var(--color-amber);border-radius:0 var(--radius-sm) var(--radius-sm) 0;padding:var(--space-3) var(--space-4);margin-bottom:var(--space-3)}.phrase-danish{font-weight:600;font-size:var(--text-base);margin-bottom:var(--space-1)}.phrase-translation{font-size:var(--text-sm);color:var(--color-text-secondary)}.timer-display{font-family:var(--font-display);font-size:var(--text-3xl);text-align:center;color:var(--color-amber);letter-spacing:.05em}.timer-label{text-align:center;font-size:var(--text-sm);color:var(--color-text-secondary);margin-top:var(--space-2)}.template-block{background:var(--color-bg-deep);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-4);font-size:var(--text-sm);line-height:var(--leading-relaxed);color:var(--color-text-secondary);white-space:pre-wrap;word-break:break-word;position:relative}.template-block .highlight{color:var(--color-amber);font-weight:600}.template-copy-btn{position:absolute;top:var(--space-2);right:var(--space-2);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);font-size:var(--text-xs);color:var(--color-frost);background:var(--color-bg-elevated);border:1px solid var(--color-border);opacity:.7;transition:opacity var(--duration-fast)}.template-copy-btn:active{opacity:1}.stat-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-3)}.stat-card{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-4);text-align:center}.stat-value{font-family:var(--font-display);font-size:var(--text-xl);margin-bottom:var(--space-1)}.stat-label{font-size:var(--text-xs);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em}.list-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) 0;border-bottom:1px solid var(--color-border)}.list-item:last-child{border-bottom:none}.list-bullet{width:6px;height:6px;border-radius:var(--radius-full);background:var(--color-amber);flex-shrink:0}.list-text{font-size:var(--text-sm);color:var(--color-text-secondary);line-height:var(--leading-normal)}.list-text strong{color:var(--color-text-primary);font-weight:600}.progress-bar{height:6px;background:var(--color-bg-elevated);border-radius:var(--radius-full);overflow:hidden}.progress-bar-fill{height:100%;border-radius:var(--radius-full);transition:width var(--duration-slow) var(--ease-out)}.progress-bar-fill.amber{background:linear-gradient(90deg,var(--color-amber-dim),var(--color-amber))}.progress-bar-fill.frost{background:linear-gradient(90deg,var(--color-frost-dim),var(--color-frost))}.progress-bar-fill.mint{background:linear-gradient(90deg,#4A9B76,var(--color-mint))}@keyframes fadeInUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse-glow{0%,to{opacity:.5}50%{opacity:1}}.animate-in{animation:fadeInUp var(--duration-slow) var(--ease-out) both}.delay-1{animation-delay:80ms}.delay-2{animation-delay:.16s}.delay-3{animation-delay:.24s}.delay-4{animation-delay:.32s}.delay-5{animation-delay:.4s}@media(min-width:481px){.page{padding:var(--space-6)}}.top-nav-bar{position:sticky;top:0;left:0;right:0;height:calc(var(--nav-height) + var(--safe-top));padding-top:var(--safe-top);background:var(--color-bg-glass);backdrop-filter:blur(24px) saturate(180%);-webkit-backdrop-filter:blur(24px) saturate(180%);border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-around;z-index:1000;box-shadow:0 4px 20px #0006}.nav-item{flex:1;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative}.nav-item-active-indicator{position:absolute;bottom:0;width:24px;height:3px;background:var(--color-amber);border-radius:var(--radius-full) var(--radius-full) 0 0;box-shadow:0 0 12px var(--color-amber)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
