@import"https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;500;600;700&family=Nunito:wght@700;800&family=Syne:wght@500;700;800&display=swap";:root{font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{min-height:100vh}::selection{background:#d6a77259;color:#fff8ee}::-webkit-scrollbar{width:11px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#977c608c;border-radius:999px;border:2px solid transparent;background-clip:content-box}::-webkit-scrollbar-thumb:hover{background:#977c60cc;background-clip:content-box}:root{--nav-height: 88px;--radius-xl: 32px;--radius-lg: 24px;--radius-md: 18px;--radius-sm: 14px;--shadow-soft: 0 28px 80px rgba(7, 10, 18, .2);--shadow-card: 0 16px 40px rgba(10, 16, 28, .18);--transition-base: .22s ease}:root,:root[data-theme=dark]{--font-body: "IBM Plex Sans", sans-serif;--font-display: "Syne", sans-serif;--font-name: "Nunito", sans-serif;--font-mono: "Fira Code", monospace;--background: #0b1018;--background-alt: #111827;--surface: rgba(17, 24, 39, .82);--surface-strong: #152033;--surface-muted: rgba(250, 235, 215, .06);--text-color: #f8f4ec;--text-muted: #b7c1d1;--heading-color: #fffaf2;--accent: #d6a772;--accent-strong: #f0bb7b;--accent-soft: rgba(214, 167, 114, .16);--line: rgba(255, 248, 236, .12);--line-strong: rgba(255, 248, 236, .2);--hero-gradient: radial-gradient(circle at 15% 20%, rgba(214, 167, 114, .18), transparent 28%), radial-gradient(circle at 85% 18%, rgba(88, 115, 158, .2), transparent 24%), linear-gradient(135deg, #09111c 0%, #0f1728 42%, #142033 100%);--section-gradient: linear-gradient(180deg, rgba(255, 255, 255, .02), transparent 40%);--nav-bg: rgba(9, 14, 22, .76);--button-text: #071019;color-scheme:dark}:root[data-theme=light]{--background: #f3ede1;--background-alt: #ebe2d1;--surface: rgba(255, 251, 244, .82);--surface-strong: #fffaf1;--surface-muted: rgba(25, 34, 52, .05);--text-color: #1b2434;--text-muted: #5d6778;--heading-color: #111827;--accent: #a7662d;--accent-strong: #cb7d39;--accent-soft: rgba(167, 102, 45, .12);--line: rgba(17, 24, 39, .12);--line-strong: rgba(17, 24, 39, .2);--hero-gradient: radial-gradient(circle at 12% 18%, rgba(201, 143, 76, .15), transparent 28%), radial-gradient(circle at 85% 18%, rgba(76, 114, 168, .14), transparent 24%), linear-gradient(135deg, #f7f1e7 0%, #efe5d3 44%, #eadbc2 100%);--section-gradient: linear-gradient(180deg, rgba(17, 24, 39, .03), transparent 40%);--nav-bg: rgba(247, 241, 231, .8);--button-text: #fff8ef;color-scheme:light}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;min-height:100vh;font-family:var(--font-body);line-height:1.6;color:var(--text-color);background:linear-gradient(180deg,rgba(255,255,255,.02),transparent 40%),var(--background);transition:background-color var(--transition-base),color var(--transition-base)}html,body{overflow-x:clip}a,button,input,textarea,select{font:inherit}.ui-icon{width:1.05em;height:1.05em;flex:0 0 auto;display:inline-block;vertical-align:middle}button,select{border:0}section{position:relative;min-height:100svh;padding:calc(var(--nav-height) + 2rem) 5vw 4rem;scroll-margin-top:0}.app{width:100%;min-height:100vh;opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease}.app.loaded{opacity:1;transform:translateY(0)}.boot-overlay{position:fixed;inset:0;z-index:1200;display:flex;align-items:center;justify-content:center;padding:1.25rem;background:radial-gradient(circle at 50% 10%,rgba(214,167,114,.15),transparent 30%),#050a11e6;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);transition:opacity .38s ease,backdrop-filter .38s ease}.boot-panel{width:min(680px,100%);min-height:360px;position:relative;z-index:1;border-radius:28px;overflow:hidden;border:1px solid rgba(214,167,114,.26);box-shadow:0 24px 90px #00000073;background:linear-gradient(180deg,#080e18fc,#0a111cfa);transition:opacity .38s ease,transform .38s ease,filter .38s ease}.boot-overlay-closing{opacity:0;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.boot-panel-closing{opacity:0;transform:translateY(-10px) scale(.985);filter:blur(6px)}.boot-topbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.95rem 1.1rem;border-bottom:1px solid rgba(255,255,255,.08)}.boot-headline-row{margin-bottom:.9rem}.boot-headline{display:inline-flex;padding:.45rem .75rem;border-radius:999px;background:#d6a7721a;color:#f4e8d7;font-size:.95rem;letter-spacing:.06em;text-transform:uppercase}.boot-title,.boot-status-row,.boot-line,.boot-ready{font-family:var(--font-mono)}.boot-title{color:#f4e8d7;letter-spacing:.06em}.boot-skip{padding:.35rem .7rem;border-radius:999px;color:var(--text-muted);background:#ffffff0d;border:1px solid rgba(255,255,255,.08);cursor:pointer}.boot-body{padding:1.5rem 1.25rem 1.35rem}.boot-console{margin-top:.7rem;padding:1rem;border-radius:20px;border:1px solid rgba(255,255,255,.08);background:#00000038;box-shadow:inset 0 1px #ffffff08}.boot-status-row{display:flex;align-items:center;gap:.7rem;color:#d6a772}.boot-prompt{color:#7de38d}.boot-cursor{width:9px;height:1em;border-radius:2px;background:#7de38d;animation:cursor-blink 1s infinite}.boot-lines{min-height:6.7rem;margin-top:1rem}.boot-line{margin:0 0 .45rem;color:#c5cfdd;font-size:1rem;opacity:0;transform:translateY(6px);transition:opacity .18s ease,transform .18s ease}.boot-line-visible{opacity:1;transform:translateY(0)}.boot-progress-track{width:100%;height:7px;overflow:hidden;border-radius:999px;background:#ffffff14}.boot-progress-bar{width:100%;height:100%;transform-origin:left center;background:linear-gradient(90deg,#d6a772,#f0bb7b);animation:boot-progress 2.85s linear forwards}.boot-ready{margin:1rem 0 0;color:#7de38d;opacity:0;transition:opacity .18s ease}.boot-ready-visible{opacity:1}.site-footer{padding:1.5rem 5vw 2.5rem;text-align:center;color:var(--text-muted);border-top:1px solid var(--line);background:color-mix(in srgb,var(--background-alt) 72%,transparent)}.navbar-shell{position:fixed;top:1rem;left:0;right:0;z-index:1000;display:flex;justify-content:center;padding-inline:max(.75rem,env(safe-area-inset-left)) max(.75rem,env(safe-area-inset-right))}.navbar{position:relative;width:min(1180px,calc(100vw - 1.5rem));max-width:100%;min-height:var(--nav-height);display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:1rem 1.25rem;background:var(--nav-bg);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow-soft)}.logo{display:inline-flex;align-items:center;gap:.85rem;min-width:0;flex:0 0 auto}.logo-mark{display:inline-flex;align-items:center;justify-content:center;width:2.35rem;height:2.35rem;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--accent-strong));color:var(--button-text);font-family:var(--font-display);font-weight:800;box-shadow:0 10px 25px #d6a77240}.logo-copy{display:flex;flex-direction:column;gap:.2rem;min-width:0}.logo-heading{display:inline-flex;align-items:center;gap:.38rem;min-width:0}.logo-name{font-family:var(--font-name);font-size:1.12rem;font-weight:800;letter-spacing:.02em;color:var(--heading-color)}.logo-role{font-size:.76rem;text-transform:uppercase;letter-spacing:.18em;color:var(--text-muted)}.logo-cursor{width:.72rem;height:1.02rem;flex:0 0 auto;border-radius:2px;background:var(--accent);box-shadow:inset 0 0 0 1px #0c0e122e;animation:cursor-blink 1s infinite}.nav-controls{display:flex;align-items:center;justify-content:flex-end;gap:1rem;flex:1 1 auto;min-width:0}.nav-links{display:flex;align-items:center;gap:.6rem;padding:0;margin:0;list-style:none;flex-wrap:wrap}.nav-links a,.mobile-menu a{display:inline-flex;align-items:center;gap:.6rem;text-decoration:none;color:var(--text-color);padding:.72rem 1rem;border-radius:999px;border:1px solid transparent;transition:transform var(--transition-base),border-color var(--transition-base),background-color var(--transition-base)}.nav-links a:hover,.mobile-menu a:hover{background:var(--surface-muted);border-color:var(--line)}.nav-actions{display:flex;align-items:center;gap:.75rem;flex:0 0 auto;min-width:0}.language-switch{display:inline-flex;align-items:center;gap:.65rem;padding:.4rem .75rem;border-radius:999px;border:1px solid var(--line);background:var(--surface-muted);color:var(--text-color);cursor:pointer}.language-switch .ui-icon{color:var(--accent)}.language-switch span{font-weight:600;letter-spacing:.08em}.boot-replay-button,.theme-toggle,.responsiveBars{width:2.9rem;height:2.9rem;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;cursor:pointer;color:var(--text-color);background:var(--surface-muted);border:1px solid var(--line);transition:transform var(--transition-base),background-color var(--transition-base),border-color var(--transition-base)}.boot-replay-button:hover,.theme-toggle:hover,.responsiveBars:hover{transform:translateY(-1px);border-color:var(--line-strong)}.responsiveBars{display:none}.mobile-menu{position:absolute;top:calc(100% + .85rem);left:1rem;right:1rem;width:auto;max-width:calc(100% - 2rem);margin:0;padding:.75rem;list-style:none;border-radius:24px;border:1px solid var(--line);background:color-mix(in srgb,var(--background-alt) 84%,transparent);box-shadow:var(--shadow-card)}.mobile-menu li+li{margin-top:.25rem}.hero{display:flex;align-items:center;background:var(--hero-gradient);overflow:clip}.hero:before,.projects:before,.contact:before{content:"";position:absolute;inset:0;background:var(--section-gradient);pointer-events:none}.hero:after{content:"";position:absolute;inset:auto -10% 8% auto;width:min(32vw,420px);height:min(32vw,420px);border-radius:50%;background:radial-gradient(circle,rgba(214,167,114,.26) 0%,transparent 70%);filter:blur(12px);opacity:.8}.hero-container,.project-grid,.contact-container{position:relative;z-index:1}.hero-container{width:min(1380px,100%);margin:0 auto;display:grid;grid-template-columns:minmax(360px,.92fr) minmax(620px,1.18fr);align-items:center;gap:clamp(2.4rem,4vw,5rem)}#bg-particles{position:absolute;inset:0;pointer-events:none}#bg-particles canvas{width:100%;height:100%}.hero-content{position:relative;z-index:2;max-width:680px}.hero-badge{display:inline-flex;align-items:center;gap:.6rem;margin-bottom:1.5rem;padding:.55rem .95rem;border-radius:999px;border:1px solid var(--line);background:color-mix(in srgb,var(--surface) 90%,transparent);box-shadow:var(--shadow-card);color:var(--accent-strong)}.glitch{margin:0;font-family:var(--font-name);font-size:clamp(2.8rem,8vw,5rem);line-height:1;letter-spacing:-.03em;color:var(--heading-color);text-wrap:balance}.hero-subtitle{margin:1.25rem 0 0;font-size:clamp(1.15rem,2vw,1.65rem);font-weight:600;color:var(--accent)}.hero-desctiption{max-width:60ch;margin:1.25rem 0 0;font-size:1.05rem;color:var(--text-muted)}.cta-buttons{display:flex;flex-wrap:wrap;gap:1rem;margin-top:2.2rem}.cta-primary,.cta-secondary,.cta-tertiary,.cta-cv{display:inline-flex;align-items:center;gap:.7rem;justify-content:center;min-width:170px;padding:.95rem 1.35rem;border-radius:999px;text-decoration:none;border:1px solid var(--line);cursor:pointer;transition:transform var(--transition-base),border-color var(--transition-base),background-color var(--transition-base),box-shadow var(--transition-base)}.cta-primary{background:linear-gradient(135deg,var(--accent),var(--accent-strong));color:var(--button-text);border-color:transparent;box-shadow:0 14px 30px #d6a77247}.cta-secondary,.cta-tertiary{color:var(--text-color);background:color-mix(in srgb,var(--surface) 88%,transparent)}.cta-cv{color:#fff8ef;background:linear-gradient(135deg,#a7662d,#d6a772);border-color:transparent;box-shadow:0 16px 34px #a7662d47}.cta-cv:hover{box-shadow:0 18px 40px #a7662d57}.cv-download-trigger{width:auto}.cta-primary:hover,.cta-secondary:hover,.cta-tertiary:hover,.cta-cv:hover,.project-link:hover,.submit-button:hover:not(:disabled),.social-links a:hover{transform:translateY(-3px)}.social-links{display:flex;gap:.85rem;margin-top:2rem}.social-links a{width:3rem;height:3rem;display:inline-flex;align-items:center;justify-content:center;color:var(--text-color);background:var(--surface-muted);border-radius:50%;border:1px solid var(--line);transition:transform var(--transition-base),color var(--transition-base),border-color var(--transition-base);position:relative}.social-links a:after{content:attr(data-tooltip);position:absolute;left:50%;bottom:calc(100% + .6rem);transform:translate(-50%) translateY(4px);padding:.35rem .6rem;border-radius:999px;background:#080e18eb;color:#f5eadf;border:1px solid rgba(255,255,255,.12);font-size:.76rem;line-height:1;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity var(--transition-base),transform var(--transition-base)}:root[data-theme=light] .social-links a:after{background:#faf5ecf5;color:#1b2434;border-color:#1118271f}.social-links a:hover:after,.social-links a:focus-visible:after{opacity:1;transform:translate(-50%) translateY(0)}.hero-image-container{position:relative;min-height:100%;display:flex;justify-content:flex-end;z-index:1;overflow:visible;min-width:0}.hero-visual-stack{position:relative;display:block;width:min(100%,920px);margin-left:auto;padding:0}.code-display{position:relative;z-index:1;min-height:640px;border-radius:var(--radius-xl);overflow:hidden;border:1px solid var(--line);box-shadow:var(--shadow-soft);background:#060c14cc}.code-display pre{overflow-x:auto!important}.code-toolbar{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.9rem;min-height:58px;padding:.95rem 1.15rem;border-bottom:1px solid var(--line);background:linear-gradient(180deg,#141c2af0,#0d1422f0)}:root[data-theme=light] .code-toolbar{background:linear-gradient(180deg,#f0e7d8f5,#e9dfd0f5)}.code-toolbar-left,.code-toolbar-center,.code-toolbar-right{display:flex;align-items:center}.code-toolbar-center{gap:.65rem;justify-content:center;min-width:0}.code-toolbar-right{justify-content:flex-end}.code-dot{width:11px;height:11px;border-radius:50%;display:inline-block}.code-dot+.code-dot{margin-left:.45rem}.code-dot-red{background:#ff5f56}.code-dot-yellow{background:#ffbd2e}.code-dot-green{background:#27c93f}.code-toolbar-label,.code-toolbar-status{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted)}.code-toolbar-file{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:.3rem .65rem;border-radius:999px;background:#ffffff0f;color:var(--heading-color);font-size:.85rem;font-family:var(--font-mono)}:root[data-theme=light] .code-toolbar-file{background:#11182714}.projects{background:radial-gradient(circle at 12% 10%,var(--accent-soft),transparent 28%),var(--background)}.projects h2,.contact h2{margin:0 0 1rem;font-family:var(--font-display);font-size:clamp(2.2rem,5vw,3.8rem);line-height:1;letter-spacing:-.04em;color:var(--heading-color);text-align:center}.project-grid{width:min(1200px,100%);margin:3rem auto 0;display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.4rem;align-items:stretch}.project-card{display:flex;flex-direction:column;min-height:100%;border-radius:28px;overflow:hidden;border:1px solid var(--line);background:color-mix(in srgb,var(--surface) 92%,transparent);box-shadow:var(--shadow-card);content-visibility:auto;transition:transform var(--transition-base),border-color var(--transition-base),box-shadow var(--transition-base)}.project-card:hover{border-color:var(--line-strong);box-shadow:0 24px 52px #080e1838}.project-card-featured{border-color:#d6a77273;background:linear-gradient(180deg,rgba(214,167,114,.12),transparent 36%),color-mix(in srgb,var(--surface) 94%,transparent)}.project-image-shell{position:relative;aspect-ratio:16 / 10;overflow:hidden;border-bottom:1px solid var(--line)}.project-image{width:100%;height:100%;object-fit:cover;display:block}.project-image-shell:after{content:"";position:absolute;inset:auto 0 0;height:55%;background:linear-gradient(180deg,transparent,rgba(0,0,0,.35));pointer-events:none}.project-featured-badge{position:absolute;top:1rem;left:1rem;z-index:1;padding:.45rem .75rem;border-radius:999px;background:#0a1019c7;color:#fff6eb;border:1px solid rgba(255,255,255,.14);font-size:.82rem;font-weight:600}:root[data-theme=light] .project-featured-badge{background:#fff8eeeb;color:#1b2434;border-color:#11182724}.project-card-content{display:flex;flex:1;flex-direction:column;gap:1.35rem;padding:1.35rem}.project-copy{display:grid;gap:.9rem}.project-heading{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:.85rem}.project-card h3{margin:0;font-size:1.45rem;color:var(--heading-color)}.project-status{padding:.35rem .65rem;border-radius:999px;background:var(--accent-soft);color:var(--accent-strong);font-size:.82rem;font-weight:700}.project-card p,.projects-footer,.contact-subtitle{margin:0;color:var(--text-muted)}.project-tech{display:flex;flex-wrap:wrap;gap:.55rem}.project-tech span{padding:.45rem .75rem;border-radius:999px;border:1px solid var(--line);background:var(--surface-muted);font-size:.84rem}.project-actions{margin-top:auto}.project-link{display:inline-flex;align-items:center;gap:.7rem;padding:.82rem 1.05rem;border-radius:999px;text-decoration:none;border:1px solid var(--line);color:var(--text-color);background:var(--surface-muted);transition:transform var(--transition-base),border-color var(--transition-base),background-color var(--transition-base)}.project-link-disabled{opacity:.8;cursor:default}.projects-footer{width:min(760px,100%);margin:2.2rem auto 0;text-align:center}.contact{background:radial-gradient(circle at 85% 10%,var(--accent-soft),transparent 24%),var(--background-alt);display:flex;align-items:center}.contact-container{width:min(740px,100%);margin:0 auto}.contact-subtitle{max-width:56ch;margin:0 auto 2.2rem;text-align:center}.contact-form{padding:clamp(1.35rem,3vw,2.4rem);border-radius:30px;border:1px solid var(--line);background:color-mix(in srgb,var(--surface) 94%,transparent);box-shadow:var(--shadow-card)}.form-group{margin-bottom:1.2rem}.form-group label{display:inline-block;margin-bottom:.45rem;color:var(--heading-color);font-weight:600}.form-group input,.form-group textarea{width:100%;padding:.92rem 1rem;color:var(--text-color);background:color-mix(in srgb,var(--background) 80%,transparent);border:1px solid var(--line);border-radius:16px;transition:border-color var(--transition-base),box-shadow var(--transition-base),background-color var(--transition-base)}.form-group input::placeholder,.form-group textarea::placeholder{color:color-mix(in srgb,var(--text-muted) 85%,transparent)}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 4px #d6a7721f}.form-group input.error,.form-group textarea.error{border-color:#dc5f5f}.form-group textarea{resize:vertical;min-height:150px}.error-message{display:inline-block;margin-top:.35rem;color:#dc5f5f;font-size:.86rem}.status-message{margin-bottom:1rem;padding:.9rem 1rem;border-radius:16px;font-weight:600}.status-message.success{color:#69db96;background:#2b7a4929;border:1px solid rgba(105,219,150,.25)}.status-message.error{color:#f18c8c;background:#8c2d2d1f;border:1px solid rgba(241,140,140,.25)}.submit-button{width:100%;padding:1rem 1.4rem;border-radius:999px;cursor:pointer;font-weight:700;color:var(--button-text);background:linear-gradient(135deg,var(--accent),var(--accent-strong));box-shadow:0 14px 32px #d6a77238;transition:transform var(--transition-base),opacity var(--transition-base),box-shadow var(--transition-base)}.submit-button:disabled{cursor:not-allowed;opacity:.66;box-shadow:none}@keyframes cursor-blink{0%,49%{opacity:1}50%,to{opacity:0}}@keyframes boot-progress{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@media (max-width: 1180px){.hero-container{grid-template-columns:1fr;gap:2.5rem}.hero-content{max-width:100%}.hero-image-container{min-height:auto;justify-content:center}.hero-visual-stack,.code-display{width:100%}.code-display{min-height:auto}.project-card-featured{grid-column:span 2}}@media (max-width: 820px){:root{--nav-height: 78px}section{min-height:auto;padding-top:calc(var(--nav-height) + 1.35rem);padding-bottom:3rem}.navbar-shell{top:.75rem;padding-inline:.7rem}.navbar{padding:.85rem 1rem;gap:.85rem}.logo-role,.nav-links{display:none}.nav-controls{gap:.65rem}.nav-actions{gap:.45rem}.responsiveBars{display:inline-flex}.boot-replay-button,.theme-toggle,.responsiveBars{width:2.65rem;height:2.65rem}.language-switch{padding:.4rem .7rem;min-width:68px}.hero,.projects,.contact{padding-inline:1rem}.glitch{font-size:clamp(2.4rem,11vw,3.8rem)}.hero-badge{margin-bottom:1rem}.hero-subtitle{margin-top:.9rem}.hero-desctiption{margin-top:.95rem}.cta-buttons{margin-top:1.6rem}.social-links{margin-top:1.35rem}.hero-image-container{min-height:auto;justify-content:stretch}.hero-visual-stack{width:100%;margin-left:0}.code-display{border-radius:24px}.project-grid{grid-template-columns:1fr}.project-card-featured{grid-column:auto}}@media (max-width: 640px){section{padding-top:calc(var(--nav-height) + 1rem);padding-bottom:2.6rem}.navbar-shell{padding-inline:.55rem}.navbar{width:min(1180px,calc(100vw - 1.1rem));padding:.78rem .8rem}.logo{gap:.62rem}.logo-mark{width:2.05rem;height:2.05rem}.logo-name{font-size:1rem}.logo-cursor{width:.62rem;height:.9rem}.language-switch{min-width:58px;justify-content:center;padding-inline:.58rem}.language-switch .ui-icon,.boot-replay-button{display:none}.boot-replay-button,.theme-toggle,.responsiveBars{width:2.45rem;height:2.45rem}.cta-buttons,.social-links{justify-content:flex-start}.cta-buttons a{width:100%}.hero-container{gap:1.65rem}.code-toolbar{grid-template-columns:auto 1fr;gap:.6rem;padding:.8rem .95rem}.code-toolbar-right{display:none}.code-toolbar-file{max-width:132px;font-size:.78rem}.contact-form{border-radius:24px}.mobile-menu{left:0;right:0;max-width:100%}}.penelope-page{min-height:100vh;min-height:100dvh;background:linear-gradient(135deg,#5c1a3a,#7a2e52 12%,#9b4570 28%,#c27a95,#e8b4c8 68%,#f5e1e0 82%,#fdf0ef);display:flex;align-items:center;justify-content:center;overflow-x:hidden;overflow-y:auto;position:relative;font-family:Georgia,Times New Roman,serif;padding:1.5rem}.penelope-bg-hearts{position:absolute;inset:0;pointer-events:none;overflow:hidden}.bg-heart{position:absolute;animation:floatHeart 14s ease-in-out infinite;opacity:.2}.bg-heart-0{top:4%;left:4%;animation-delay:0s}.bg-heart-1{top:14%;left:14%;animation-delay:1.8s}.bg-heart-2{top:68%;left:6%;animation-delay:3.2s}.bg-heart-3{top:82%;left:18%;animation-delay:5s}.bg-heart-4{top:8%;right:6%;animation-delay:2.2s}.bg-heart-5{top:52%;left:7%;animation-delay:5.5s}.bg-heart-6{top:28%;left:2%;animation-delay:6.8s}.bg-heart-7{bottom:8%;left:12%;animation-delay:7.5s}.bg-heart-8{top:38%;right:4%;animation-delay:3.8s}.bg-heart-9{bottom:18%;right:6%;animation-delay:9s}.bg-heart-10{top:60%;left:1%;animation-delay:2.8s}.bg-heart-11{bottom:4%;right:14%;animation-delay:7s}@keyframes floatHeart{0%,to{transform:translateY(0) rotate(0) scale(1)}25%{transform:translateY(-14px) rotate(4deg) scale(1.03)}50%{transform:translateY(-18px) rotate(0) scale(1.05)}75%{transform:translateY(-10px) rotate(-3deg) scale(.98)}}.page-falling-petals{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:10}.falling-petal{position:absolute;top:-20px}.falling-petal.sway-right{animation:petalFallRight ease-in-out infinite}.falling-petal.sway-left{animation:petalFallLeft ease-in-out infinite}@keyframes petalFallRight{0%{transform:translateY(-20px) rotate(0) translate(0);opacity:0}3%{opacity:.65}12%{transform:translateY(8vh) rotate(35deg) translate(18px)}25%{transform:translateY(20vh) rotate(80deg) translate(-14px);opacity:.55}40%{transform:translateY(35vh) rotate(140deg) translate(22px);opacity:.45}55%{transform:translateY(50vh) rotate(200deg) translate(-10px);opacity:.35}70%{transform:translateY(65vh) rotate(260deg) translate(16px);opacity:.22}85%{transform:translateY(82vh) rotate(320deg) translate(-6px);opacity:.1}to{transform:translateY(105vh) rotate(380deg) translate(12px);opacity:0}}@keyframes petalFallLeft{0%{transform:translateY(-20px) rotate(0) translate(0);opacity:0}3%{opacity:.65}12%{transform:translateY(8vh) rotate(-30deg) translate(-16px)}25%{transform:translateY(20vh) rotate(-75deg) translate(12px);opacity:.55}40%{transform:translateY(35vh) rotate(-135deg) translate(-20px);opacity:.45}55%{transform:translateY(50vh) rotate(-195deg) translate(8px);opacity:.35}70%{transform:translateY(65vh) rotate(-255deg) translate(-14px);opacity:.22}85%{transform:translateY(82vh) rotate(-315deg) translate(5px);opacity:.1}to{transform:translateY(105vh) rotate(-370deg) translate(-10px);opacity:0}}.penelope-card{position:relative;z-index:2;background:linear-gradient(160deg,#fef5f3,#f8e8e2 35%,#f4ddd4);border-radius:18px;box-shadow:0 10px 50px #5014324d,0 2px 10px #00000014,inset 0 1px #ffffff80;max-width:900px;width:100%;min-height:460px;padding:2.5rem;overflow:visible}.penelope-content{display:flex;align-items:center;justify-content:center;gap:0;width:100%}.penelope-text{flex:1;max-width:320px;color:#4a2032}.penelope-dedication{font-size:1.15rem;font-style:italic;margin-bottom:1.3rem;color:#4a1e30;font-weight:600;min-height:1.6em}.penelope-quote{font-size:1rem;line-height:1.7;margin-bottom:1rem;color:#5a3040;min-height:1.4em}.penelope-highlight{color:#9b2d5e;font-weight:600;font-style:italic}.penelope-signature{font-size:1.1rem;margin-bottom:1.2rem;color:#7a3a5a;font-style:italic;font-weight:600}.typewriter-cursor{display:inline-block;color:#c0392b;font-weight:300;animation:cursorBlink .7s ease-in-out infinite;margin-left:1px}@keyframes cursorBlink{0%,to{opacity:1}50%{opacity:0}}.penelope-counter-section{margin-top:1rem}.penelope-counter-label{font-size:1rem;color:#5a2a3e;margin-bottom:.6rem;font-style:italic}.penelope-counter{display:flex;flex-wrap:wrap;align-items:baseline;gap:.2rem}.counter-value{font-size:1.5rem;font-weight:700;color:#c0392b;font-family:Georgia,serif;letter-spacing:-.02em}.counter-unit{font-size:.82rem;color:#7a4a5e;margin-right:.5rem}.penelope-tree-container{position:relative;display:flex;flex-direction:column;align-items:center;flex-shrink:0;width:380px;height:460px;overflow:visible;will-change:transform}.tree-trunk-wrap{position:absolute;bottom:0;left:50%;transform:translate(-50%);width:200px;height:260px;z-index:1}.tree-trunk-svg{width:100%;height:100%}.trunk-path{animation:trunkDraw 1.2s cubic-bezier(.4,0,.2,1) forwards;transform-origin:bottom center;opacity:0}@keyframes trunkDraw{0%{opacity:0;clip-path:inset(100% 0 0 0)}40%{opacity:1}to{opacity:1;clip-path:inset(0 0 0 0)}}.branch-path{stroke-dasharray:200;stroke-dashoffset:200;animation:branchGrow .8s cubic-bezier(.4,0,.2,1) forwards}.branch-left{animation-delay:.5s}.branch-right{animation-delay:.6s}.branch-left-2{animation-delay:.75s}.branch-right-2{animation-delay:.8s}.branch-top-l{animation-delay:.9s}.branch-top-r{animation-delay:.95s}@keyframes branchGrow{to{stroke-dashoffset:0}}.penelope-tree-crown{position:absolute;top:-20px;left:50%;transform:translate(-50%);width:380px;height:360px;z-index:2;overflow:visible}.tree-heart{position:absolute;opacity:0;transform:translate(-50%,-50%) scale(0);pointer-events:none}.penelope-tree-crown.blooming .tree-heart{animation:heartBloom .6s cubic-bezier(.22,1,.36,1) forwards}@keyframes heartBloom{0%{opacity:0;transform:translate(-50%,-50%) scale(0)}60%{opacity:.94;transform:translate(-50%,-50%) scale(1.08)}to{opacity:.92;transform:translate(-50%,-50%) scale(1)}}.penelope-tree-crown.glowing{animation:crownGlow 3s ease-in-out infinite}@keyframes crownGlow{0%,to{filter:drop-shadow(0 0 0px transparent)}50%{filter:drop-shadow(0 0 18px rgba(231,76,111,.25))}}@media (max-width: 850px){.penelope-card{max-width:95%;padding:2rem 1.5rem;min-height:auto}.penelope-tree-container{width:310px;height:400px}.penelope-tree-crown{width:310px;height:290px;top:-10px}.tree-trunk-wrap{width:170px;height:220px}.penelope-text{max-width:240px}}@media (max-width: 640px){.penelope-page{padding:2rem .8rem .8rem;align-items:flex-start}.penelope-card{padding:1.5rem 1.2rem;border-radius:14px}.penelope-content{flex-direction:column;gap:0}.penelope-text{max-width:100%;text-align:center;order:2;padding:0}.penelope-counter{justify-content:center}.penelope-tree-container{order:1;width:280px;height:360px}.penelope-tree-crown{width:270px;height:255px;top:-10px}.tree-trunk-wrap{width:155px;height:205px}.penelope-dedication{font-size:1.05rem}.penelope-quote{font-size:.92rem}.counter-value{font-size:1.25rem}.counter-unit{font-size:.75rem}}@media (max-width: 400px){.penelope-page{padding:1rem .5rem .5rem}.penelope-card{padding:1.2rem 1rem}.penelope-tree-container{width:240px;height:310px}.penelope-tree-crown{width:230px;height:220px;top:-5px}.tree-trunk-wrap{width:135px;height:180px}.penelope-dedication{font-size:.95rem;margin-bottom:.8rem}.penelope-quote{font-size:.85rem;margin-bottom:.7rem}.penelope-signature{margin-bottom:.2rem}.counter-value{font-size:1.1rem}.counter-unit{font-size:.7rem;margin-right:.3rem}.penelope-counter-label{font-size:.9rem}}
