@import"https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;600&family=DM+Mono:wght@400;500&display=swap";:root{--bg: #f5f1eb;--surface: #eee9e1;--border: #c8bfb0;--text-primary: #2c2520;--text-secondary: #7a6f65;--edge-grid: #c8bfb0;--edge-off: #a09080;--node-color: #A0742A;--crack-color: #A0742A;--crack-complete: #4a7c59;--violation-color: #c0392b;--excluded-color: #b0a090;--hint-color: #2c2520;--hint-satisfied: #4a7c59;--font-serif: "Cormorant Garamond", Georgia, serif;--font-mono: "DM Mono", "Courier New", monospace;--radius: 8px;--shadow: 0 4px 24px rgba(44, 37, 32, .12)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;background:var(--bg);color:var(--text-primary);font-family:var(--font-serif);-webkit-font-smoothing:antialiased}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23noise)' opacity='0.04'/%3E%3C/svg%3E");pointer-events:none;z-index:999}.app{min-height:100vh;display:flex;flex-direction:column;align-items:center}.status-bar{width:100%;max-width:480px;padding:28px 24px 16px;text-align:center;position:relative}.status-title{font-family:var(--font-mono);font-size:11px;font-weight:500;letter-spacing:.35em;color:var(--text-secondary);text-transform:uppercase;margin-bottom:6px}.status-date{font-family:var(--font-serif);font-size:22px;font-weight:600;color:var(--text-primary);letter-spacing:.01em}.status-bottom{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:8px;min-height:20px}.status-solved{font-family:var(--font-mono);font-size:11px;letter-spacing:.2em;color:var(--crack-complete);animation:fadeIn .4s ease}.status-timer{font-family:var(--font-mono);font-size:13px;font-weight:500;letter-spacing:.08em;color:var(--text-secondary);transition:color .3s}.status-timer.is-running{color:var(--text-primary)}.status-timer.is-complete{color:var(--crack-complete);font-weight:600}.game-area{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:16px 16px 32px;gap:24px;width:100%;text-align:center}.grid-wrapper{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:8px;transition:box-shadow .3s;display:inline-flex;align-items:center;justify-content:center;max-width:calc(100vw - 32px);margin:0 auto}.grid-wrapper.is-complete{box-shadow:0 0 0 2px var(--crack-complete),var(--shadow);animation:solveGlow .6s ease forwards}.grid-wrapper.is-shaking{animation:quake .7s ease-in-out;transform-origin:center}@keyframes solveGlow{0%{box-shadow:0 0 #4a7c5999,var(--shadow)}50%{box-shadow:0 0 0 6px #4a7c594d,var(--shadow)}to{box-shadow:0 0 0 2px var(--crack-complete),var(--shadow)}}.controls{display:flex;align-items:center;gap:16px}.reset-btn{font-family:var(--font-mono);font-size:12px;letter-spacing:.15em;color:var(--text-secondary);background:transparent;border:1px solid var(--border);border-radius:20px;padding:8px 20px;cursor:pointer;transition:color .15s,border-color .15s,background .15s}.reset-btn:hover:not(:disabled){color:var(--text-primary);border-color:var(--text-secondary);background:#2c25200a}.reset-btn:disabled{opacity:.35;cursor:not-allowed}.help-btn{width:34px;height:34px;border-radius:50%;border:1px solid var(--border);background:transparent;font-family:var(--font-mono);font-size:14px;color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:color .15s,border-color .15s}.help-btn:hover{color:var(--text-primary);border-color:var(--text-secondary)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#2c252073;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;z-index:100;padding:24px;animation:fadeIn .2s ease}.modal-card{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:40px 36px;max-width:360px;width:100%;text-align:center;animation:slideUp .3s ease}.modal-glyph{font-size:32px;color:var(--crack-complete);margin-bottom:16px}.modal-title{font-family:var(--font-serif);font-size:28px;font-weight:600;color:var(--text-primary);margin-bottom:6px;letter-spacing:.01em}.modal-subtitle{font-family:var(--font-mono);font-size:11px;letter-spacing:.2em;color:var(--text-secondary);margin-bottom:20px;text-transform:uppercase}.modal-body{font-family:var(--font-serif);font-size:16px;color:var(--text-secondary);line-height:1.6;margin-bottom:28px}.modal-close{font-family:var(--font-mono);font-size:12px;letter-spacing:.15em;color:var(--text-primary);background:transparent;border:1px solid var(--text-primary);border-radius:20px;padding:10px 28px;cursor:pointer;transition:background .15s,color .15s}.modal-close:hover{background:var(--text-primary);color:var(--bg)}.victory-time{font-family:var(--font-mono);font-size:36px;font-weight:500;letter-spacing:.04em;color:var(--crack-complete);margin:8px 0 20px}.victory-actions{display:flex;flex-direction:column;gap:10px;align-items:center}.share-btn{font-family:var(--font-mono);font-size:12px;letter-spacing:.15em;color:var(--bg);background:var(--text-primary);border:1px solid var(--text-primary);border-radius:20px;padding:10px 28px;cursor:pointer;transition:background .15s,color .15s;width:100%;max-width:220px}.share-btn:hover:not(:disabled){background:var(--crack-color);border-color:var(--crack-color)}.share-btn:disabled{opacity:.7;cursor:default}.share-fallback{width:100%;text-align:left}.share-fallback-hint{font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;color:var(--text-secondary);margin-bottom:6px}.share-fallback-text{font-family:var(--font-mono);font-size:12px;line-height:1.6;color:var(--text-primary);background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:10px 12px;white-space:pre-wrap;word-break:break-word;-webkit-user-select:all;user-select:all;cursor:text;width:100%}.instructions-card{text-align:left;max-height:90vh;overflow-y:auto}.instructions-card .modal-title{text-align:center;margin-bottom:24px}.instructions-list{list-style:none;display:flex;flex-direction:column;gap:0;margin-bottom:28px}.instructions-step{display:flex;align-items:flex-start;gap:14px;padding:14px 0;border-bottom:1px solid var(--border)}.instructions-step:last-child{border-bottom:none}.step-icon{font-size:18px;color:var(--text-secondary);flex-shrink:0;width:24px;text-align:center;padding-top:1px}.step-text{display:flex;flex-direction:column;gap:3px;flex:1}.step-heading{font-family:var(--font-mono);font-size:12px;font-weight:500;letter-spacing:.05em;color:var(--text-primary)}.step-body{font-family:var(--font-serif);font-size:14px;color:var(--text-secondary);line-height:1.55}.instructions-card .modal-close{display:block;margin:0 auto}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes quake{0%{transform:translate(0) rotate(0)}10%{transform:translate(-4px,-2px) rotate(-.5deg)}20%{transform:translate(5px,2px) rotate(.5deg)}30%{transform:translate(-5px,1px) rotate(-.3deg)}40%{transform:translate(4px,-2px) rotate(.4deg)}50%{transform:translate(-3px,2px) rotate(-.2deg)}60%{transform:translate(3px,-1px) rotate(.3deg)}70%{transform:translate(-2px,1px) rotate(-.1deg)}80%{transform:translate(2px) rotate(.1deg)}90%{transform:translate(-1px) rotate(0)}to{transform:translate(0) rotate(0)}}@keyframes hintPulse{0%,to{opacity:.3}50%{opacity:.9}}@keyframes timerPulse{0%,to{opacity:1}50%{opacity:.5}}.status-difficulty{font-family:var(--font-mono);font-size:11px;letter-spacing:.18em;color:var(--text-secondary);text-transform:uppercase;margin-top:2px}.back-today-btn{font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;color:var(--text-secondary);background:transparent;border:none;cursor:pointer;padding:0;transition:color .15s}.back-today-btn:hover{color:var(--text-primary)}.hint-toast{width:100%;max-width:480px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 18px;display:flex;align-items:flex-start;gap:12px;animation:slideUp .25s ease;margin:0 auto 8px}.hint-toast-text{font-family:var(--font-serif);font-size:14px;line-height:1.55;color:var(--text-primary);flex:1}.hint-toast-dismiss{font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;color:var(--text-secondary);background:transparent;border:1px solid var(--border);border-radius:12px;padding:4px 12px;cursor:pointer;flex-shrink:0;transition:color .15s,border-color .15s;white-space:nowrap}.hint-toast-dismiss:hover{color:var(--text-primary);border-color:var(--text-secondary)}.hint-btn{width:34px;height:34px;border-radius:50%;border:1px solid var(--border);background:transparent;font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:opacity .2s,border-color .15s}.hint-btn:hover:not(:disabled){border-color:var(--text-secondary)}.hint-btn.hint-used,.hint-btn:disabled{opacity:.35;cursor:not-allowed}.archive-btn{font-family:var(--font-mono);font-size:12px;letter-spacing:.15em;color:var(--text-secondary);background:transparent;border:1px solid var(--border);border-radius:20px;padding:8px 20px;cursor:pointer;transition:color .15s,border-color .15s,background .15s}.archive-btn:hover{color:var(--text-primary);border-color:var(--text-secondary);background:#2c25200a}.archive-card{max-height:80vh;overflow:hidden;display:flex;flex-direction:column;gap:16px}.archive-list{overflow-y:auto;flex:1;display:flex;flex-direction:column;gap:0}.archive-row{display:flex;align-items:center;justify-content:space-between;padding:12px 4px;border-bottom:1px solid var(--border);border-left:none;border-right:none;border-top:none;background:transparent;cursor:pointer;width:100%;text-align:left;transition:background .1s}.archive-row:hover{background:#2c25200a}.archive-row:first-child{border-top:1px solid var(--border)}.archive-date{font-family:var(--font-serif);font-size:15px;color:var(--text-primary);flex:1}.archive-difficulty{font-family:var(--font-mono);font-size:10px;letter-spacing:.15em;color:var(--text-secondary);text-transform:uppercase;flex:1;text-align:center}.archive-status{font-family:var(--font-mono);font-size:12px;color:var(--text-secondary);width:24px;text-align:right}.archive-status.solved{color:var(--crack-complete)}.loading-screen{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--bg);display:flex;align-items:center;justify-content:center;z-index:200}.loading-content{display:flex;flex-direction:column;align-items:center;gap:24px}.loading-maze{opacity:.7}.loading-label{font-family:var(--font-mono);font-size:11px;letter-spacing:.35em;color:var(--text-secondary);text-transform:uppercase}@keyframes mazeDrawForward{0%{stroke-dashoffset:1;stroke-dasharray:0 1000;opacity:.2}30%{opacity:1}to{stroke-dashoffset:0;stroke-dasharray:1000 0;opacity:1}}.stats-card{text-align:center}.stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px 16px;margin:24px 0}.stat-item{display:flex;flex-direction:column;align-items:center;gap:4px}.stat-value{font-family:var(--font-mono);font-size:28px;font-weight:600;color:var(--text-primary);letter-spacing:.02em}.stat-label{font-family:var(--font-mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--text-secondary)}.stats-streak-message{font-family:var(--font-serif);font-size:14px;color:var(--text-secondary);line-height:1.5;margin-bottom:16px;font-style:italic}.stats-footnote{font-family:var(--font-mono);font-size:10px;letter-spacing:.08em;color:var(--text-secondary);opacity:.6;margin-bottom:24px}.stats-btn{width:34px;height:34px;border-radius:50%;border:1px solid var(--border);background:transparent;font-size:16px;color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:color .15s,border-color .15s}.stats-btn:hover{color:var(--text-primary);border-color:var(--text-secondary)}.victory-stats{display:flex;align-items:center;justify-content:center;gap:16px;margin:4px 0 20px}.victory-stat{display:flex;flex-direction:column;align-items:center;gap:2px}.victory-stat-value{font-family:var(--font-mono);font-size:18px;font-weight:600;color:var(--text-primary)}.victory-stat-label{font-family:var(--font-mono);font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:var(--text-secondary)}.victory-stat-divider{width:1px;height:28px;background:var(--border)}@media(max-width:420px){.status-date{font-size:18px}.modal-card{padding:32px 24px}.modal-title{font-size:24px}}
