:root{--p-paper: #f4ecd8;--p-paper-2: #ebe0c5;--p-ink: #2d2418;--p-ink-soft: #5a4e3a;--p-moss: #6b8e4e;--p-moss-deep: #4a6b34;--p-fog: #c9d3cf;--p-fog-deep: #8fa39e;--p-bloom: #c2566a;--p-bloom-soft: #e89aa6;--p-ochre: #c89545;--p-ochre-deep: #8b6520;--p-sky: #aac4cf;--p-sky-deep: #6b8a96;--p-violet: #6e5d8a;--p-rust: #a85a3a;--font-display: "Caprasimo", Georgia, serif;--font-hand: "Caveat", "Shadows Into Light", cursive;--font-body: "Manrope", system-ui, sans-serif;--font-scientific: "Kalam", cursive;--font-brand: "Poppins", system-ui, sans-serif;--font-mono: "JetBrains Mono", monospace;--display-weight: 400;--display-tracking: -.005em;--curso-1: #6b8a96;--curso-2: #8b3a4a;--curso-3: #4a6b34;--curso-4: #a85a3a;--curso-5: #8b6520}[data-palette=niebla]{--p-paper: #e8eef0;--p-paper-2: #d6dfe1;--p-ink: #1f2933;--p-ink-soft: #4a5560;--p-moss: #7a9b6b;--p-moss-deep: #4d6b46;--p-fog: #cfd9dc;--p-fog-deep: #7a8d92;--p-bloom: #a6526a;--p-bloom-soft: #d49aa8;--p-ochre: #b08654;--p-ochre-deep: #6e5028;--p-sky: #b8cdd4;--p-sky-deep: #5d7a86;--p-violet: #5e5278;--p-rust: #8e4d36}[data-palette=herbario]{--p-paper: #f8efd9;--p-paper-2: #efe1bf;--p-ink: #3a2a14;--p-ink-soft: #6e5230;--p-moss: #859c4d;--p-moss-deep: #5d6f2e;--p-fog: #ead8b8;--p-fog-deep: #b09765;--p-bloom: #c25548;--p-bloom-soft: #e89c8a;--p-ochre: #d49642;--p-ochre-deep: #8a5d18;--p-sky: #c4d2c0;--p-sky-deep: #768f74;--p-violet: #7c5d6b;--p-rust: #b8553a}*{box-sizing:border-box}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}html,body{margin:0;padding:0;font-family:var(--font-body);color:var(--p-ink);background:var(--p-paper);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}body{overflow:hidden;height:100vh}.paper-texture{position:relative}.paper-texture:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.18 0 0 0 0 0.14 0 0 0 0 0.08 0 0 0 0.18 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");mix-blend-mode:multiply;opacity:.45;z-index:1}.display{font-family:var(--font-display);font-weight:var(--display-weight, 300);letter-spacing:var(--display-tracking, -.01em);line-height:1}.hand{font-family:var(--font-hand);font-weight:400}.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;border-radius:999px;border:1.5px solid var(--p-ink);background:transparent;color:var(--p-ink);font-family:var(--font-body);font-size:.875rem;letter-spacing:.02em;text-transform:uppercase;cursor:pointer;transition:all .25s ease;text-decoration:none}.btn:hover{background:var(--p-ink);color:var(--p-paper)}.btn:focus-visible{outline:2px solid var(--p-moss-deep);outline-offset:3px}.btn-primary{background:var(--p-ink);color:var(--p-paper)}.btn-primary:hover{background:var(--p-moss-deep);border-color:var(--p-moss-deep)}.label-tag{font-family:var(--font-hand);font-size:1.4rem;color:var(--p-ink-soft);position:relative}.label-tag:after{content:"";display:block;position:absolute;bottom:-2px;left:0;height:1px;width:100%;background:currentColor;opacity:.3}.roman{font-family:var(--font-display);font-style:italic;font-weight:300;letter-spacing:.1em}.scroll-h-stage{position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden;cursor:grab}.scroll-h-stage.grabbing{cursor:grabbing}.scroll-h-track{position:absolute;top:0;left:0;height:100%;display:flex;will-change:transform}.scroll-v-stage{position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden;cursor:default}.scroll-v-track{position:absolute;top:0;left:0;width:100%;display:flex;flex-direction:column;will-change:transform}.no-scrollbar::-webkit-scrollbar{display:none}.no-scrollbar{scrollbar-width:none}.gloss{border-bottom:1px dashed var(--p-ochre-deep);cursor:help;color:var(--p-ochre-deep);font-style:italic}.gloss:hover{background:var(--p-ochre);color:var(--p-paper)}.hotspot{position:absolute;width:36px;height:36px;border-radius:50%;border:1.5px solid var(--p-ink);background:var(--p-paper);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:.75rem;color:var(--p-ink);cursor:pointer;transition:all .25s ease;box-shadow:0 2px 8px #00000026}.hotspot:after{content:"";position:absolute;top:-8px;right:-8px;bottom:-8px;left:-8px;border-radius:50%;border:1px solid var(--p-ink);opacity:.3;animation:pulse 2.5s infinite ease-out}.hotspot:hover{background:var(--p-ink);color:var(--p-paper);transform:scale(1.1)}.hotspot:focus-visible{outline:2px solid var(--p-moss-deep);outline-offset:3px}@keyframes pulse{0%{transform:scale(.9);opacity:.5}to{transform:scale(1.6);opacity:0}}@keyframes drift{0%{transform:translate(0) rotate(0)}50%{transform:translate(30px,-20px) rotate(180deg)}to{transform:translate(0) rotate(360deg)}}@keyframes sun-pulse{0%,to{filter:blur(2px);opacity:1}50%{filter:blur(4px);opacity:.85}}@keyframes fog-drift{0%,to{transform:translate(0);opacity:.45}50%{transform:translate(-30px);opacity:.65}}@keyframes bird-fly{0%{transform:translate(0)}to{transform:translate(1700px,-40px)}}@keyframes drift-soft{0%{transform:translate(0);opacity:.4}50%{transform:translate(-20px,-30px);opacity:.8}to{transform:translate(0);opacity:.4}}@keyframes float-up{0%{transform:translateY(20px);opacity:0}60%{opacity:.8}to{transform:translateY(-100px);opacity:0}}.fade-in{opacity:0;transform:translateY(20px);transition:opacity .8s ease,transform .8s ease}.fade-in.visible{opacity:1;transform:translateY(0)}.scroll-progress{position:fixed;bottom:24px;left:50%;transform:translate(-50%);z-index:50;display:flex;align-items:center;gap:12px;background:var(--p-paper);padding:8px 18px;border-radius:999px;border:1px solid var(--p-ink-soft);font-family:var(--font-body);font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--p-ink-soft);box-shadow:0 4px 16px #0000001a}.scroll-progress-bar{width:140px;height:2px;background:var(--p-fog);position:relative;border-radius:2px}.scroll-progress-fill{position:absolute;top:0;left:0;height:100%;background:var(--p-ink);border-radius:2px;transition:width .18s ease-out}.btn-back-herbario{position:fixed;top:18px;left:18px;z-index:35;background:var(--p-paper, #fdfaf2);border:1px solid var(--p-ink-soft, #6b5d3f);border-radius:999px;padding:8px 16px 8px 12px;cursor:pointer;font-size:13px;color:var(--p-ink, #2d2418);box-shadow:0 4px 14px #0000001a;transition:all .3s ease;display:inline-flex;align-items:center;gap:6px}.btn-back-herbario:hover{background:var(--p-ink, #2d2418);color:var(--p-paper, #fdfaf2);transform:translate(-2px);box-shadow:0 6px 18px #0000002e}.btn-back-herbario:focus-visible{outline:2px solid var(--p-moss-deep);outline-offset:3px}.btn-back-herbario .hand{font-size:1.05rem;letter-spacing:.02em}.btn-archivar{padding:6px 14px;font-size:11px;letter-spacing:.18em;text-transform:uppercase;font-family:var(--font-body);background:transparent;border:1px solid var(--accent);color:var(--accent);border-radius:2px;cursor:pointer;transition:background .2s ease,color .2s ease}.btn-archivar:hover,.btn-archivar:focus-visible{background:var(--accent);color:var(--p-paper)}.top-header{position:fixed;top:0;left:0;right:0;z-index:40;display:flex;justify-content:space-between;align-items:center;padding:18px 28px;pointer-events:none}.top-header.is-home{max-width:1400px;margin:0 auto;padding:60px 80px}.top-header>*{pointer-events:auto}.logo-mark{display:flex;align-items:center;gap:12px;cursor:pointer;color:var(--p-ink);background:none;border:none;padding:0;font:inherit;text-align:left}.logo-mark .logo-text{font-family:var(--font-display);font-size:1.05rem;line-height:1.05;font-style:italic;font-weight:400}.logo-mark .logo-text small{display:block;font-family:var(--font-hand);font-size:1rem;font-style:normal;color:var(--p-ink-soft)}.icon-btn{width:44px;height:44px;border-radius:50%;border:1.5px solid var(--p-ink);background:var(--p-paper);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .25s ease;color:var(--p-ink)}.icon-btn:hover{background:var(--p-ink);color:var(--p-paper)}.icon-btn:focus-visible{outline:2px solid var(--p-moss-deep);outline-offset:3px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#2d241899;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:100;display:flex;align-items:center;justify-content:center;padding:24px;animation:fade-in-overlay .3s ease}@keyframes fade-in-overlay{0%{opacity:0}to{opacity:1}}.modal-content{background:var(--p-paper);border-radius:8px;max-width:720px;width:100%;max-height:88vh;overflow-y:auto;position:relative;box-shadow:0 24px 60px #0000004d;animation:modal-pop .4s cubic-bezier(.34,1.56,.64,1)}@keyframes modal-pop{0%{transform:scale(.92) translateY(20px);opacity:0}to{transform:scale(1) translateY(0);opacity:1}}.modal-close{position:absolute;top:16px;right:16px;z-index:10}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}.field label{font-size:.8rem;letter-spacing:.05em;text-transform:uppercase;color:var(--p-ink-soft);font-weight:500}.field input,.field textarea,.field select{padding:10px 12px;background:var(--p-paper-2);border:1px solid var(--p-fog-deep);border-radius:4px;font-family:var(--font-body);font-size:.95rem;color:var(--p-ink);transition:border-color .2s}.field input:focus,.field textarea:focus,.field select:focus{outline:none;border-color:var(--p-moss-deep)}.field textarea{resize:vertical;min-height:80px;font-family:var(--font-body)}.watercolor-stain{position:absolute;pointer-events:none;filter:blur(.5px);mix-blend-mode:multiply;opacity:.55}.swipe-hint{position:fixed;bottom:72px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:8px;background:#00000073;color:#fff;font-family:var(--font-body);font-size:.75rem;padding:6px 14px;border-radius:20px;pointer-events:none;animation:swipe-hint-fade 3s ease forwards;z-index:900}@keyframes swipe-hint-fade{0%{opacity:0;transform:translate(-50%) translateY(6px)}20%{opacity:1;transform:translate(-50%) translateY(0)}70%{opacity:1}to{opacity:0}}@media (hover: hover){.swipe-hint{display:none}}@media (max-width: 720px){.top-header{padding:12px 16px}.scroll-progress{bottom:14px;padding:6px 14px;font-size:.65rem}.scroll-progress-bar{width:90px}}
