:root{--paper: #f5efe0;--paper-warm: #fefcf6;--paper-tint: #ede4cf;--ink: #1a1a2e;--ink-soft: #4a4a5e;--ink-faint: #8a8693;--accent: #c4453a;--accent-dark: #9c342b;--sage: #5d7a4e;--sage-dark: #3e5435;--tan: #d4c8a8;--tan-soft: #e6dcc1;--shadow-card: 0 1px 0 var(--tan-soft), 0 2px 6px rgba(26, 26, 46, .04), 0 8px 24px rgba(26, 26, 46, .05);--shadow-card-hover: 0 1px 0 var(--tan-soft), 0 4px 12px rgba(26, 26, 46, .06), 0 16px 32px rgba(26, 26, 46, .08);--font-display: "Fraunces", "Times New Roman", serif;--font-body: "DM Sans", system-ui, -apple-system, sans-serif;--font-mono: "JetBrains Mono", "Courier New", monospace}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--paper);color:var(--ink);font-family:var(--font-body);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;min-height:100dvh}button{font-family:inherit;cursor:pointer}.app{position:relative;min-height:100vh;min-height:100dvh;max-width:1400px;margin:0 auto;padding:32px 20px 40px}.paper-grain{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;opacity:.35;mix-blend-mode:multiply;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.1 0 0 0 0 0.1 0 0 0 0 0.18 0 0 0 0.12 0'/></filter><rect width='200' height='200' filter='url(%23n)'/></svg>")}.app>*:not(.paper-grain):not(.modal-backdrop){position:relative;z-index:1}.header{margin-bottom:32px}.header-inner{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:16px}.header-title-block{flex:1;min-width:0}.eyebrow{font-family:var(--font-mono);font-size:11px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);margin:0}.header-top-row{display:flex;justify-content:space-between;align-items:center;gap:8px 20px;margin-bottom:18px;flex-wrap:wrap}.header-actions{display:inline-flex;align-items:center;gap:10px;font-family:var(--font-mono);font-size:11px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint)}.header-actions-dot,.header-actions-note{color:var(--ink-faint)}.title{font-family:var(--font-display);font-weight:900;font-size:clamp(2.5rem,7vw,4.5rem);line-height:.95;letter-spacing:-.02em;margin:0;color:var(--ink)}.title em{font-style:italic;font-weight:400;font-variation-settings:"opsz" 144;color:var(--accent)}.header-meta{display:flex;align-items:center;gap:12px;flex-shrink:0}.progress-block{text-align:right;line-height:1.1}.progress-count{font-family:var(--font-mono);font-size:clamp(1.5rem,4vw,2.25rem);font-weight:700;color:var(--ink);display:block}.progress-count strong{color:var(--accent);font-weight:700}.progress-divider{margin:0 2px;color:var(--ink-faint);font-weight:500}.progress-label{font-family:var(--font-mono);font-size:11px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);display:block;margin-top:2px}.icon-btn{width:36px;height:36px;border-radius:50%;border:1.5px solid var(--ink);background:transparent;color:var(--ink);font-family:var(--font-display);font-size:1.1rem;font-weight:700;font-style:italic;display:inline-flex;align-items:center;justify-content:center;padding:0;transition:background .15s,color .15s}.icon-btn:hover{background:var(--ink);color:var(--paper)}.progress-bar{height:3px;background:var(--tan-soft);border-radius:2px;overflow:hidden;position:relative}.progress-bar-fill{height:100%;background:var(--accent);transition:width .4s cubic-bezier(.4,0,.2,1)}.celebration{text-align:center;padding:24px 20px;margin-bottom:32px;background:var(--paper-warm);border:2px dashed var(--sage);border-radius:4px}.celebration-stamp{display:inline-block;font-family:var(--font-mono);font-weight:700;font-size:14px;letter-spacing:.2em;color:var(--sage);border:2px solid var(--sage);padding:6px 16px;border-radius:2px;margin-bottom:12px;transform:rotate(-1.5deg)}.celebration p{font-family:var(--font-display);font-style:italic;font-size:1.15rem;color:var(--ink);margin:0;max-width:480px;margin-inline:auto}.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}@media (min-width: 640px){.grid{grid-template-columns:repeat(3,1fr);gap:16px}}@media (min-width: 900px){.grid{grid-template-columns:repeat(4,1fr);gap:20px}}@media (min-width: 1280px){.grid{grid-template-columns:repeat(5,1fr)}}.card{position:relative;display:flex;flex-direction:column;text-align:left;background:var(--paper-warm);border:1px solid var(--tan);border-radius:3px;padding:18px 16px 20px;min-height:160px;box-shadow:var(--shadow-card);transition:transform .18s cubic-bezier(.4,0,.2,1),box-shadow .18s cubic-bezier(.4,0,.2,1);overflow:hidden;color:var(--ink)}@media (min-width: 640px){.card{min-height:200px;padding:22px 20px 24px}}.card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--tan)}.card:hover{transform:translateY(-2px) rotate(-.3deg);box-shadow:var(--shadow-card-hover)}.card:active{transform:translateY(0)}.card-number{font-family:var(--font-mono);font-size:10px;font-weight:500;letter-spacing:.1em;color:var(--ink-faint);margin-bottom:8px;display:block}@media (min-width: 640px){.card-number{font-size:11px;margin-bottom:12px}}.card-title{font-family:var(--font-display);font-style:italic;font-weight:700;font-size:1.4rem;line-height:1.05;letter-spacing:-.01em;color:var(--ink);margin-bottom:8px;display:block;font-variation-settings:"opsz" 36}@media (min-width: 640px){.card-title{font-size:1.65rem;margin-bottom:10px}}.card-clue{font-size:.85rem;line-height:1.4;color:var(--ink-soft);display:block;margin-top:auto}@media (min-width: 640px){.card-clue{font-size:.92rem}}.card--done{background:var(--paper-tint);border-color:var(--tan-soft)}.card--done .card-title,.card--done .card-clue{color:var(--ink-faint)}.card--done:before{background:var(--sage)}.card-stamp{position:absolute;bottom:14px;right:-8px;font-family:var(--font-mono);font-weight:700;font-size:13px;letter-spacing:.18em;color:var(--sage);border:2.5px solid var(--sage);padding:4px 10px;border-radius:2px;transform:rotate(-12deg);opacity:.88;pointer-events:none;background:#fff6}@media (min-width: 640px){.card-stamp{font-size:14px;padding:5px 12px;bottom:18px;right:-6px}}.text-btn{background:none;border:none;padding:0;font:inherit;color:var(--ink-soft);text-decoration:underline;text-underline-offset:3px;letter-spacing:inherit}.text-btn:hover{color:var(--accent)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#1a1a2e8c;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:100;animation:fade-in .18s ease-out}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes slide-down{0%{transform:translateY(-40px);opacity:0}to{transform:translateY(0);opacity:1}}.modal{position:absolute;top:env(safe-area-inset-top,0px);left:0;right:0;margin:0 auto;width:100%;max-width:460px;background:var(--paper-warm);border-radius:0 0 6px 6px;padding:28px 24px 32px;box-shadow:0 8px 32px #1a1a2e2e;animation:slide-down .22s cubic-bezier(.2,.8,.2,1);max-height:90vh;overflow-y:auto}@media (min-width: 640px){.modal{top:5vh;width:calc(100% - 40px);border-radius:6px;padding:36px 32px}}.modal-close{position:absolute;top:12px;right:12px;width:36px;height:36px;border:none;background:transparent;font-size:28px;line-height:1;color:var(--ink-soft);padding:0;border-radius:50%;display:inline-flex;align-items:center;justify-content:center}.modal-close:hover{background:var(--paper-tint);color:var(--ink)}.modal-number{font-family:var(--font-mono);font-size:11px;font-weight:500;letter-spacing:.18em;color:var(--ink-faint);margin:0 0 8px}.modal-title{font-family:var(--font-display);font-style:italic;font-weight:900;font-size:2.4rem;line-height:1;letter-spacing:-.02em;color:var(--ink);margin:0 0 16px;font-variation-settings:"opsz" 144}.modal-clue{font-size:1.05rem;line-height:1.5;color:var(--ink-soft);margin:0 0 24px}.modal-clue strong{color:var(--ink);font-weight:500}.modal-starters{background:var(--paper-tint);border-left:3px solid var(--sage);padding:14px 16px 16px;border-radius:0 3px 3px 0;margin-bottom:20px}.modal-starters-label{font-family:var(--font-mono);font-size:10px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--sage-dark);margin:0 0 10px}.modal-starters-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px}.modal-starters-list li{font-family:var(--font-display);font-style:italic;font-size:.98rem;line-height:1.35;color:var(--ink);padding-left:18px;position:relative}.modal-starters-list li:before{content:"—";position:absolute;left:0;top:0;color:var(--sage);font-style:normal;font-weight:700}.modal-notes-label{display:block;font-family:var(--font-mono);font-size:11px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);margin-top:24px}.modal-notes{display:block;width:100%;margin-top:8px;padding:12px 14px;border:1.5px solid var(--tan);border-radius:3px;background:var(--paper);font-family:var(--font-body);font-size:.95rem;line-height:1.4;color:var(--ink);resize:vertical;min-height:72px;letter-spacing:normal;text-transform:none}.modal-notes:focus{outline:none;border-color:var(--accent)}.modal-actions{display:flex;flex-direction:column;gap:10px}@media (min-width: 480px){.modal-actions{flex-direction:row}.modal-actions .btn{flex:1}}.btn{display:inline-flex;align-items:center;justify-content:center;padding:14px 20px;border-radius:3px;border:1.5px solid;font-family:var(--font-body);font-size:.95rem;font-weight:500;letter-spacing:.01em;transition:transform .1s ease,background .15s,color .15s,border-color .15s;cursor:pointer}.btn:active{transform:scale(.98)}.btn--primary{background:var(--accent);border-color:var(--accent);color:var(--paper-warm)}.btn--primary:hover{background:var(--accent-dark);border-color:var(--accent-dark)}.btn--secondary{background:transparent;border-color:var(--ink);color:var(--ink)}.btn--secondary:hover{background:var(--ink);color:var(--paper-warm)}.btn--block{width:100%;margin-top:12px}.modal-done-state{padding:18px 20px;background:var(--paper);border:1.5px dashed var(--sage);border-radius:3px;text-align:center}.modal-done-line{margin:0 0 12px;font-size:.95rem;color:var(--ink)}.modal-done-line strong{color:var(--sage-dark);font-weight:700}.modal-notes-display{font-family:var(--font-display);font-style:italic;color:var(--ink-soft);margin:0 0 16px;padding:0 8px}.modal--about .about-para{font-size:1rem;line-height:1.55;color:var(--ink);margin:0 0 14px}.modal--about .about-para strong{color:var(--accent-dark);font-weight:700}.about-para--small{font-size:.88rem!important;color:var(--ink-soft)!important;font-style:italic;padding-top:4px;border-top:1px solid var(--tan-soft);margin-top:18px!important}.modal--confirm{text-align:center}.confirm-message{font-family:var(--font-display);font-style:italic;font-size:1.25rem;color:var(--ink);margin:12px 0 24px}button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}textarea:focus-visible{outline:none}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
