*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}:root{--primary: #4a5568;--primary-dark: #2d3748;--primary-light: #cbd5e0;--success: #48bb78;--warning: #ed8936;--danger: #f56565;--text: #1a202c;--text-light: #718096;--bg: #ffffff;--bg-secondary: #f7fafc;--border: #e2e8f0;--shadow: rgba(0, 0, 0, .1)}body{font-family:Mulish,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--text);background:var(--bg-secondary);line-height:1.6;overscroll-behavior-y:contain;touch-action:pan-y}.app{min-height:100vh;display:flex;flex-direction:column}.home-page{max-width:1200px;margin:0 auto;padding:2rem 1rem;flex:1}.hero{text-align:center;padding:3rem 1rem;background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%);color:#fff;border-radius:1rem;margin-bottom:3rem}.hero h1{font-size:2.5rem;margin-bottom:.5rem;font-weight:700}.hero p{font-size:1.25rem;opacity:.95;margin-bottom:1.5rem}.hero-cta{margin-top:2rem;display:flex;flex-direction:column;align-items:center;gap:.75rem}.btn-play-now{background:#fff;color:var(--primary-dark);padding:1rem 2.5rem;font-size:1.25rem;font-weight:700;border:none;border-radius:.75rem;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 12px #0003;touch-action:manipulation;-webkit-user-select:none;user-select:none}.btn-play-now:hover{transform:translateY(-2px);box-shadow:0 6px 20px #0000004d;background:#f7fafc}.btn-play-now:active{transform:translateY(0) scale(.98)}.hero-subtext{font-size:.875rem;opacity:.85;margin:0}.stats-section{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;max-width:800px;margin:0 auto 2.5rem;padding:1.5rem;background:var(--bg);border-radius:1rem;box-shadow:0 2px 8px #00000014}.stat-item{text-align:center}.stat-number{font-size:2rem;font-weight:800;color:var(--primary);margin-bottom:.25rem}.stat-label{font-size:.8125rem;color:var(--text-light);font-weight:600;text-transform:uppercase;letter-spacing:.05em}.difficulty-selection{margin-bottom:2.5rem}.difficulty-selection h2{text-align:center;font-size:1.75rem;font-weight:700;margin-bottom:.5rem;color:var(--text)}.section-description{text-align:center;font-size:1rem;color:var(--text-light);margin-bottom:1.5rem}.difficulty-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;max-width:1000px;margin:0 auto}.difficulty-card{background:var(--bg);border:2px solid var(--difficulty-color, var(--primary));border-radius:.5rem;padding:1.25rem 1rem;cursor:pointer;transition:all .3s ease;text-align:center;min-height:140px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:.5rem;box-shadow:0 2px 8px #00000014;touch-action:manipulation;-webkit-user-select:none;user-select:none}.difficulty-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000026;background:var(--difficulty-color);color:#fff}.difficulty-card:active{transform:translateY(0) scale(.98)}.difficulty-card h3{font-size:1.25rem;font-weight:700;margin:0;color:var(--difficulty-color, var(--primary));transition:color .3s ease}.difficulty-card:hover h3{color:#fff}.difficulty-card p{font-size:.8125rem;margin:0;color:var(--text-light);transition:color .3s ease;line-height:1.4}.difficulty-card:hover p{color:#fffffff2}.difficulty-card .puzzle-count{font-size:.75rem;font-weight:600;padding:.25rem .75rem;background:var(--bg-secondary);border-radius:1rem;color:var(--text-light);transition:all .3s ease}.difficulty-card:hover .puzzle-count{background:#fff3;color:#fff}.puzzles-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem;margin-bottom:3rem}.puzzle-card{background:var(--bg);border:1px solid var(--border);border-radius:.75rem;padding:1.5rem;text-decoration:none;color:var(--text);transition:all .2s ease;box-shadow:0 1px 3px var(--shadow)}.puzzle-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px var(--shadow);border-color:var(--primary)}.card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem}.card-header h3{font-size:1.25rem;font-weight:600;flex:1;margin-right:.5rem}.difficulty-badge{padding:.25rem .75rem;border-radius:1rem;font-size:.75rem;font-weight:600;text-transform:uppercase;white-space:nowrap}.difficulty-badge.easy{background:#d1fae5;color:#065f46}.difficulty-badge.medium{background:#fed7aa;color:#92400e}.difficulty-badge.hard{background:#fecaca;color:#991b1b}.difficulty-badge.extreme{background:#ddd6fe;color:#5b21b6}.card-body{color:var(--text-light)}.card-category{font-size:.875rem;margin-bottom:.25rem}.card-author{font-size:.875rem;font-style:italic}.benefits{margin-bottom:2.5rem}.benefits h2{text-align:center;font-size:1.75rem;font-weight:700;margin-bottom:1.5rem;color:var(--text)}.benefits-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;max-width:1000px;margin:0 auto}.benefit-card{background:var(--bg);padding:1.25rem 1rem;border-radius:.5rem;text-align:center;border:1px solid var(--border);transition:all .3s ease}.benefit-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a;border-color:var(--primary-light)}.benefit-icon{font-size:2rem;margin-bottom:.5rem;line-height:1}.benefit-card h3{font-size:1rem;font-weight:700;margin-bottom:.5rem;color:var(--text)}.benefit-card p{font-size:.8125rem;line-height:1.4;color:var(--text-light);margin:0}.about{background:var(--bg);padding:2rem;border-radius:.75rem;border:1px solid var(--border)}.about h2{font-size:1.75rem;margin-bottom:1rem;color:var(--primary)}.about p{font-size:1rem;line-height:1.8;color:var(--text-light)}.puzzle-page{max-width:900px;margin:0 auto;padding:2rem 1rem;flex:1}.puzzle-nav{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:2rem;flex-wrap:wrap}.nav-link{color:var(--primary);text-decoration:none;font-weight:500;transition:color .2s}.nav-link:hover{color:var(--primary-dark)}.puzzle-nav .puzzle-info{display:flex;align-items:center;gap:.75rem;margin:0}.puzzle-nav h2{font-size:1.5rem;color:var(--text);margin:0}.cryptogram-puzzle{background:var(--bg);border-radius:.75rem;padding:2rem;border:1px solid var(--border);box-shadow:0 1px 3px var(--shadow)}.puzzle-header{margin-bottom:2rem}.puzzle-info{display:flex;gap:.5rem;margin-bottom:1rem;flex-wrap:wrap}.puzzle-info .difficulty,.puzzle-info .category{padding:.5rem 1rem;border-radius:.5rem;font-size:.875rem;font-weight:600;background:var(--bg-secondary);color:var(--text)}.puzzle-progress{display:flex;align-items:center;gap:1rem}.progress-bar{flex:1;height:.5rem;background:var(--bg-secondary);border-radius:1rem;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,var(--primary),var(--success));transition:width .3s ease}.progress-text{font-size:.875rem;font-weight:600;color:var(--text-light);white-space:nowrap}.puzzle-content{font-size:1.5rem;line-height:2.5;margin-bottom:2rem;text-align:center;font-family:Mulish,sans-serif;word-spacing:.5em;letter-spacing:-.02em}.word-container{display:inline;white-space:nowrap}.word-space{display:inline}.punctuation-inline{display:inline;font-weight:500}.letter-inline{display:inline;cursor:pointer;transition:all .2s;font-weight:600;position:relative;touch-action:manipulation;-webkit-user-select:none;user-select:none}.letter-inline.encoded{color:var(--primary);text-decoration:underline;text-decoration-style:dotted;padding:.25rem .375rem;border-radius:.25rem}.letter-inline.encoded:hover{background:var(--primary);color:#fff;text-decoration:none}.letter-inline.encoded:active{transform:scale(1.05)}.letter-inline.guessed{text-decoration:none}.letter-inline.guessed.correct{color:var(--success)}.letter-inline.guessed.incorrect{color:var(--danger)}.letter-inline.guessed:hover{background:var(--bg-secondary);border-radius:.25rem;padding:.125rem .25rem}.letter-inline.highlighted{background:var(--warning);color:#fff;border-radius:.25rem;padding:.125rem .25rem}.letter-inline.active{display:inline-block}.letter-input-wrapper{display:inline-flex;flex-direction:column;align-items:center;background:var(--primary);color:#fff;border-radius:.375rem;padding:.25rem .5rem;min-width:2rem;line-height:1.2}.letter-input{font-weight:700;font-size:1.25rem}.encoded-hint{font-size:.625rem;opacity:.8;font-family:monospace}.puzzle-options{margin-bottom:1rem;text-align:center}.checkbox-label{display:inline-flex;align-items:center;gap:.5rem;font-size:.875rem;color:var(--text-light);cursor:pointer}.checkbox-label input[type=checkbox]{width:1rem;height:1rem;cursor:pointer}.solved-message{text-align:center;padding:2rem;background:linear-gradient(135deg,var(--success) 0%,#059669 100%);color:#fff;border-radius:.75rem;margin-bottom:2rem}.solved-message h3{font-size:1.75rem;margin-bottom:.5rem}.quote-author{font-size:1.125rem;font-style:italic;opacity:.95}.puzzle-controls{display:flex;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}.btn-hint,.btn-reset,.btn-nav,.btn-home{padding:.875rem 1.75rem;border:none;border-radius:.5rem;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s;text-decoration:none;display:inline-block;text-align:center;min-height:48px;touch-action:manipulation;-webkit-user-select:none;user-select:none}.btn-hint{background:var(--primary);color:#fff}.btn-hint:hover{background:var(--primary-dark)}.btn-hint:active{transform:scale(.98)}.btn-reset{background:var(--bg-secondary);color:var(--text);border:1px solid var(--border)}.btn-reset:hover{background:var(--border)}.btn-reset:active{transform:scale(.98)}.btn-print{background:var(--success);color:#fff}.btn-print:hover{background:#059669}.btn-print:active{transform:scale(.98)}.btn-nav,.btn-home{background:var(--primary);color:#fff}.btn-nav:hover,.btn-home:hover{background:var(--primary-dark)}.btn-nav:active,.btn-home:active{transform:scale(.98)}.hint-box{padding:1rem;background:var(--bg-secondary);border-left:4px solid var(--warning);border-radius:.375rem;margin-bottom:1rem}.hint-box p{color:var(--text-light);font-size:.875rem}.instructions{padding:1rem;background:var(--bg-secondary);border-radius:.375rem;text-align:center}.instructions p{color:var(--text-light);font-size:.875rem}.puzzle-navigation{display:flex;gap:1rem;justify-content:center;margin-top:2rem;flex-wrap:wrap}.btn-new-puzzle{background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%);color:#fff;font-size:1.125rem;padding:1rem 2.5rem;box-shadow:0 4px 12px #00000026}.btn-new-puzzle:hover{background:linear-gradient(135deg,var(--primary-dark) 0%,var(--primary) 100%);box-shadow:0 6px 16px #0003;transform:translateY(-2px)}.app-footer{background:var(--bg);border-top:1px solid var(--border);padding:2rem 1rem;text-align:center;color:var(--text-light);margin-top:3rem}.error-page{max-width:600px;margin:4rem auto;padding:2rem;text-align:center}.error-page h1{font-size:2rem;margin-bottom:1rem;color:var(--danger)}@media (max-width: 768px){.hero h1{font-size:2rem}.hero p{font-size:1rem}.hero{padding:2rem 1rem;margin-bottom:2rem}.btn-play-now{font-size:1.125rem;padding:.875rem 2rem}.stats-section{grid-template-columns:1fr;gap:1.25rem;padding:1.25rem}.stat-number{font-size:1.75rem}.benefits-grid{grid-template-columns:repeat(2,1fr);gap:.75rem}.benefit-card{padding:1rem .75rem}.benefit-icon{font-size:1.75rem}.benefit-card h3{font-size:.9375rem}.benefit-card p{font-size:.75rem}.puzzles-grid{grid-template-columns:1fr;gap:1rem}.cryptogram-puzzle{padding:1.25rem}.puzzle-content{font-size:1.375rem;line-height:2.5}.letter-inline.encoded{padding:.375rem .5rem;margin:.125rem}.puzzle-controls{flex-direction:column;gap:.75rem}.btn-hint,.btn-reset,.btn-nav,.btn-home{width:100%;min-height:52px;font-size:1.0625rem}.puzzle-navigation{flex-direction:column;gap:.75rem}.home-page{padding:1.5rem 1rem}.difficulty-selection h2{font-size:1.625rem}.difficulty-grid{grid-template-columns:repeat(2,1fr);gap:.75rem}.difficulty-card{min-height:130px;padding:1rem .75rem}.difficulty-card h3{font-size:1.125rem}.difficulty-card p{font-size:.75rem}.difficulty-card .puzzle-count{font-size:.6875rem}.btn-new-puzzle{width:100%;font-size:1rem;padding:1rem 2rem}.puzzle-page{padding:1.5rem 1rem}}@media (max-width: 480px){.hero{padding:1.75rem 1rem}.hero h1{font-size:1.75rem}.hero p{font-size:.9375rem}.btn-play-now{font-size:1rem;padding:.875rem 1.75rem}.hero-subtext{font-size:.8125rem}.stats-section{padding:1rem;gap:1rem}.stat-number{font-size:1.5rem}.stat-label{font-size:.75rem}.difficulty-grid{grid-template-columns:1fr;gap:.75rem}.difficulty-card{min-height:120px}.benefits-grid{grid-template-columns:1fr;gap:.75rem}.puzzle-content{font-size:1.25rem;line-height:2.25}.letter-inline.encoded{padding:.375rem .5rem}.cryptogram-puzzle{padding:1rem}.card-header h3{font-size:1.125rem}.difficulty-badge{font-size:.6875rem;padding:.25rem .625rem}.btn-hint,.btn-reset,.btn-nav,.btn-home{min-height:56px;padding:1rem 1.5rem}}@media (hover: none) and (pointer: coarse){.letter-inline.encoded:hover{background:var(--primary);color:#fff}.puzzle-card:hover,.filter-button:hover{transform:none}}.printable-puzzle{display:none}@media print{body *{visibility:hidden}.printable-puzzle,.printable-puzzle *{visibility:visible}.printable-puzzle{display:block;position:absolute;left:0;top:0;width:100%;padding:2rem;background:#fff}.print-header{text-align:center;margin-bottom:2rem}.print-header h2{font-size:2rem;margin-bottom:.5rem}.print-difficulty,.print-category{font-size:1rem;color:#666;margin:.25rem 0}.print-content{font-size:1.25rem;line-height:3;text-align:center;margin-bottom:2rem;font-family:Mulish,sans-serif;word-spacing:.5em;letter-spacing:-.02em}.print-word{display:inline;white-space:nowrap;margin-right:.5rem}.print-word-space{display:inline;width:.5rem}.print-letter{display:inline-flex;flex-direction:column;align-items:center;margin:0 .125rem}.print-blank{font-size:1.5rem;font-weight:700;border-bottom:2px solid #000;min-width:1.5rem;text-align:center;color:transparent}.print-encoded{font-size:.75rem;font-family:monospace;color:#666}.print-punctuation{font-size:1.25rem;font-weight:600}.print-hint{margin-top:2rem;padding:1rem;border:1px solid #ccc;background:#f9f9f9;font-size:1rem}.puzzle-content,.puzzle-controls,.puzzle-options,.instructions,.solved-message,.hint-box,.puzzle-header,.puzzle-nav,.puzzle-navigation,.app-footer{display:none!important}}
