@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/plus-jakarta-sans-latin-400-normal-Dhut76fR.woff2) format("woff2"),url(/assets/plus-jakarta-sans-latin-400-normal-BDKaGhyp.woff) format("woff")}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/plus-jakarta-sans-latin-500-normal-Bf-nb4oT.woff2) format("woff2"),url(/assets/plus-jakarta-sans-latin-500-normal-DYtqi0QS.woff) format("woff")}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/plus-jakarta-sans-latin-600-normal-DLTa1BUW.woff2) format("woff2"),url(/assets/plus-jakarta-sans-latin-600-normal-BR_Ojra4.woff) format("woff")}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/plus-jakarta-sans-latin-700-normal-CfpNZvy6.woff2) format("woff2"),url(/assets/plus-jakarta-sans-latin-700-normal-DqEcQeE5.woff) format("woff")}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/plus-jakarta-sans-latin-800-normal-CusIZhrK.woff2) format("woff2"),url(/assets/plus-jakarta-sans-latin-800-normal-BRNHt2w0.woff) format("woff")}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/plus-jakarta-sans-latin-ext-400-normal-D127hM_v.woff2) format("woff2"),url(/assets/plus-jakarta-sans-latin-ext-400-normal-2ppkqaOR.woff) format("woff")}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/plus-jakarta-sans-latin-ext-500-normal-9VZagAe1.woff2) format("woff2"),url(/assets/plus-jakarta-sans-latin-ext-500-normal-CqEEAICU.woff) format("woff")}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/plus-jakarta-sans-latin-ext-600-normal-DQgPU_Cg.woff2) format("woff2"),url(/assets/plus-jakarta-sans-latin-ext-600-normal-B0WRRYJ1.woff) format("woff")}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/plus-jakarta-sans-latin-ext-700-normal-BajbvANd.woff2) format("woff2"),url(/assets/plus-jakarta-sans-latin-ext-700-normal-8-d-IyIQ.woff) format("woff")}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/plus-jakarta-sans-latin-ext-800-normal-B6BjB2Ju.woff2) format("woff2"),url(/assets/plus-jakarta-sans-latin-ext-800-normal-BPkb-LBK.woff) format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/jetbrains-mono-latin-400-normal-V6pRDFza.woff2) format("woff2"),url(/assets/jetbrains-mono-latin-400-normal-6-qcROiO.woff) format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/jetbrains-mono-latin-500-normal-BWZEU5yA.woff2) format("woff2"),url(/assets/jetbrains-mono-latin-500-normal-CJOVTJB7.woff) format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/jetbrains-mono-latin-600-normal-C8RAYTDA.woff2) format("woff2"),url(/assets/jetbrains-mono-latin-600-normal-BfsvjouI.woff) format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/jetbrains-mono-latin-ext-400-normal-Bc8Ftmh3.woff2) format("woff2"),url(/assets/jetbrains-mono-latin-ext-400-normal-fXTG6kC5.woff) format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/jetbrains-mono-latin-ext-500-normal-Cut-4mMH.woff2) format("woff2"),url(/assets/jetbrains-mono-latin-ext-500-normal-ckzbgY84.woff) format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/jetbrains-mono-latin-ext-600-normal-BfB_LPfz.woff2) format("woff2"),url(/assets/jetbrains-mono-latin-ext-600-normal-DObL3zCW.woff) format("woff")}@tailwind base;@tailwind components;@tailwind utilities;:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-size:24px;color-scheme:dark;color:#ffffffde;background-color:#20010f;--wine: #20010f;--wine-2: #2c0716;--wine-3: #3a0b1e;--gold: #f5cd78;--pink: #fc5d92;--pink-2: #f0759e;--rose-text: #fbeef3;--rose-muted: #c7a3b2;--line: rgba(252, 93, 146, .2);--grad: linear-gradient(90deg, #f5cd78, #fc5d92);--font-display: "Plus Jakarta Sans", system-ui, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, Consolas, monospace;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-align:center}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.5;font-size:1rem;margin:0;min-width:320px;min-height:100vh;background-color:#20010f}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;text-size-adjust:100%}@media(max-width:1024px){:root{font-size:21px}}@media(max-width:640px){:root{font-size:18px}}h1{font-size:2.2rem}h2{font-size:1.8rem}h3{font-size:1.2rem}h4{font-size:1rem}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}#logo.fly-in{font-size:2.5em}@media(max-width:480px){#logo.fly-in{font-size:1.5rem}.heart-draw{width:80px;height:80px;stroke-width:2}}@media(min-width:481px)and (max-width:1024px){#logo.fly-in{font-size:1.7rem}.heart-draw{width:100px;height:100px;stroke-width:2.5}}@layer base{:root{--background: 0 0% 100%;--foreground: 0 0% 3.9%;--card: 0 0% 100%;--card-foreground: 0 0% 3.9%;--popover: 0 0% 100%;--popover-foreground: 0 0% 3.9%;--primary: 0 0% 9%;--primary-foreground: 0 0% 98%;--secondary: 0 0% 96.1%;--secondary-foreground: 0 0% 9%;--muted: 0 0% 96.1%;--muted-foreground: 0 0% 45.1%;--accent: 0 0% 96.1%;--accent-foreground: 0 0% 9%;--destructive: 0 84.2% 60.2%;--destructive-foreground: 0 0% 98%;--border: 0 0% 89.8%;--input: 0 0% 89.8%;--ring: 0 0% 3.9%;--chart-1: 12 76% 61%;--chart-2: 173 58% 39%;--chart-3: 197 37% 24%;--chart-4: 43 74% 66%;--chart-5: 27 87% 67%;--radius: .5rem}.dark{--background: 0 0% 3.9%;--foreground: 0 0% 98%;--card: 0 0% 3.9%;--card-foreground: 0 0% 98%;--popover: 0 0% 3.9%;--popover-foreground: 0 0% 98%;--primary: 0 0% 98%;--primary-foreground: 0 0% 9%;--secondary: 0 0% 14.9%;--secondary-foreground: 0 0% 98%;--muted: 0 0% 14.9%;--muted-foreground: 0 0% 63.9%;--accent: 0 0% 14.9%;--accent-foreground: 0 0% 98%;--destructive: 0 62.8% 30.6%;--destructive-foreground: 0 0% 98%;--border: 0 0% 14.9%;--input: 0 0% 14.9%;--ring: 0 0% 83.1%;--chart-1: 220 70% 50%;--chart-2: 160 60% 45%;--chart-3: 30 80% 55%;--chart-4: 280 65% 60%;--chart-5: 340 75% 55%}}@layer base{*{@apply border-border;}body{@apply bg-background text-foreground;}}.only-touch{display:none}@media(hover:none){.only-mouse,.ws-hint,.wd-hint,.sc-hint,.oc-hint{display:none!important}.only-touch{display:inline}}.home{--mx: 50vw;--my: -200px;position:relative;min-height:100vh;background:var(--wine);color:var(--rose-text);overflow-x:clip;isolation:isolate}.home-glow{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden}.home-blob{position:absolute;width:60vmax;height:60vmax;border-radius:50%;filter:blur(110px);opacity:.22}.home-blob-1{top:-20vmax;right:-25vmax;background:radial-gradient(circle,var(--pink),transparent 65%);animation:home-drift-1 30s ease-in-out infinite alternate}.home-blob-2{bottom:-30vmax;left:-25vmax;background:radial-gradient(circle,var(--gold),transparent 65%);opacity:.14;animation:home-drift-2 36s ease-in-out infinite alternate}@keyframes home-drift-1{to{transform:translate(-14vmax,16vmax) scale(1.1)}}@keyframes home-drift-2{to{transform:translate(16vmax,-12vmax) scale(1.15)}}.home-spotlight{position:absolute;left:0;top:0;width:520px;height:520px;border-radius:50%;transform:translate(calc(var(--mx) - 260px),calc(var(--my) - 260px));background:radial-gradient(circle,rgba(252,93,146,.12),transparent 65%);transition:transform .12s linear}.hero{position:relative;min-height:100vh;min-height:100svh;display:flex;align-items:center;justify-content:center;overflow:hidden;text-align:center;color:#fff;background:#000}.hero:after{content:"";position:absolute;left:0;right:0;bottom:0;height:28vh;background:linear-gradient(to bottom,transparent,var(--wine));pointer-events:none;z-index:1}.hero-orb{position:absolute;inset:0;z-index:0}.hero-flow{position:absolute;inset:0;display:block}.hero-inner{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;gap:.6rem;padding:0 1.5rem;box-sizing:border-box;max-width:100%;pointer-events:none}.hero-inner .hero-actions,.hero-inner .btn{pointer-events:auto}.hero h1{margin:0;line-height:1.1}.hero-title{font-size:inherit;margin-bottom:-.4rem}.hero-intro{max-width:100%;display:flex;flex-direction:column;align-items:center}.hero-code,.hero-comment{margin:0;min-height:1.6em;font-family:var(--font-mono);font-size:clamp(.85rem,1.5vw,1.1rem);letter-spacing:.01em;white-space:nowrap}.hero-code{width:calc(37ch + 1.8rem);max-width:100%;box-sizing:border-box;margin-bottom:.7rem;text-align:left;padding:.35rem .9rem;border-radius:10px;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);color:#ffffffd9;transition:opacity .8s ease 1.2s}.hero-code.is-done{opacity:.6}.hero-prompt{margin-right:.6em;color:var(--pink)}.hl-obj{color:#9fd0f5}.hl-fn{color:var(--gold)}.hl-punct{color:#fff9}.hl-str{color:#ffb3c9}.hero-comment{margin-top:.2rem;color:#ffffff8c;font-style:italic}.hero-caret{display:inline-block;width:.55em;height:1.1em;margin-left:2px;vertical-align:-.18em;background:var(--pink);animation:hero-blink 1s steps(1) infinite}@keyframes hero-blink{50%{opacity:0}}@media(max-width:560px){.hero-code,.hero-comment{font-size:12.5px}.hero-code{padding:.3rem .6rem}}@media(prefers-reduced-motion:reduce){.hero-caret{animation:none}}.fly-in span{display:inline-block;opacity:0;transform:translateY(-90%);animation:flyIn .6s ease-out forwards}@keyframes flyIn{to{opacity:1;transform:translateY(0)}}.heart-draw path{fill:none;stroke:var(--pink);stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:300;stroke-dashoffset:300;animation:drawHeart 2s ease-out forwards,heartBeat 1.6s ease-in-out infinite;animation-delay:2.9s,5s;transform-origin:50% 55%;filter:drop-shadow(0 0 8px rgba(252,93,146,.6))}@keyframes drawHeart{to{stroke-dashoffset:0}}@keyframes heartBeat{0%,to{transform:scale(1)}15%{transform:scale(1.08)}30%{transform:scale(1)}45%{transform:scale(1.05)}}.hero-sub{margin:.2rem 0 0;font-family:var(--font-display);font-size:clamp(1rem,1.6vw,1.25rem);color:#ffffffc7;opacity:0;animation:home-fade-up .9s ease 4.6s forwards}.hero-sub span{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;font-weight:600}.hero-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:.8rem;margin-top:1.4rem;opacity:0;animation:home-fade-up .9s ease 4.9s forwards}@keyframes home-fade-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.hero-scroll{position:absolute;bottom:32px;left:50%;z-index:3;width:28px;height:46px;padding:0;transform:translate(-50%);border:2px solid rgba(255,255,255,.5);border-radius:999px;background:transparent;cursor:pointer}.hero-scroll span{position:absolute;top:8px;left:50%;width:4px;height:8px;margin-left:-2px;border-radius:4px;background:var(--gold);animation:home-scroll 1.8s ease-in-out infinite}@keyframes home-scroll{0%{transform:translateY(0);opacity:1}70%{transform:translateY(16px);opacity:0}to{opacity:0}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.85rem 1.6rem;border-radius:999px;font-family:var(--font-display);font-size:1rem;font-weight:700;text-decoration:none;cursor:pointer;transition:transform .25s ease,box-shadow .25s ease,background .25s,color .25s,border-color .25s}.btn:focus-visible{outline:2px solid var(--gold);outline-offset:3px}.btn-primary{border:0;background:var(--grad);color:var(--wine);box-shadow:0 10px 30px #fc5d9259}.btn-primary:hover{color:var(--wine);transform:translateY(-2px);box-shadow:0 14px 38px #fc5d9280}.btn-ghost{border:1.5px solid rgba(255,255,255,.35);background:#ffffff0a;color:#fff;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.btn-ghost:hover{color:#fff;border-color:var(--pink);background:#fc5d921f;transform:translateY(-2px)}.section{position:relative;width:100%;max-width:1200px;margin:0 auto;padding:7rem 1.5rem 2rem;box-sizing:border-box;text-align:left;scroll-margin-top:40px}.section-last{padding-bottom:0}.sec-head{margin-bottom:3rem}.sec-kicker{display:inline-flex;align-items:center;gap:.75rem;font-family:var(--font-mono);font-size:.85rem;letter-spacing:.08em;text-transform:uppercase;color:var(--gold)}.sec-kicker:after{content:"";width:48px;height:1.5px;background:var(--grad)}.sec-title{margin:.6rem 0 0;font-family:var(--font-display);font-size:clamp(2.1rem,4.5vw,3.4rem);font-weight:800;line-height:1.08;letter-spacing:-.02em;color:var(--rose-text)}.sec-title em{font-style:normal;background:var(--grad);-webkit-background-clip:text;background-clip:text;padding-bottom:.12em;color:transparent}.sec-lead{max-width:40rem;margin:1rem 0 0;color:var(--rose-muted);font-size:1.05rem;line-height:1.7}.card{position:relative;border-radius:24px;border:1px solid var(--line);background:linear-gradient(160deg,#3a0b1ebf,#20010f99);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}.rv{opacity:0;transform:translateY(28px);transition:opacity .5s ease,transform .5s cubic-bezier(.2,.8,.2,1)}.rv.is-visible{opacity:1;transform:none}@media(max-width:640px){.section{padding:5rem 1rem 1.5rem}.sec-head{margin-bottom:2rem}.heart-draw{width:72px;height:72px}}@media(prefers-reduced-motion:reduce){.rv,.home-blob,.home-spotlight,.hero-sub,.hero-actions,.hero-scroll span,.heart-draw path{animation:none!important;transition:none!important;opacity:1!important;transform:none!important}.heart-draw path{stroke-dashoffset:0}}.about-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:4rem;align-items:start}.about-photo{position:sticky;top:120px;justify-self:center;width:min(100%,360px)}.about-photo-ring{position:relative;padding:5px;border-radius:32px;overflow:hidden;isolation:isolate}.about-photo-ring:before{content:"";position:absolute;inset:-50%;z-index:-1;background:conic-gradient(from 0deg,var(--gold),var(--pink),var(--wine-3),var(--gold));animation:about-spin 8s linear infinite}@keyframes about-spin{to{transform:rotate(360deg)}}.about-img{display:block;width:100%;aspect-ratio:4 / 5;object-fit:cover;border-radius:28px}.about-badge{position:absolute;padding:.55rem 1rem;border-radius:999px;border:1px solid var(--line);background:#20010fd1;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:var(--rose-text);font-family:var(--font-display);font-size:.85rem;font-weight:600;white-space:nowrap;box-shadow:0 10px 30px #00000059;animation:about-float 6s ease-in-out infinite}.about-badge:before{content:"";display:inline-block;width:8px;height:8px;margin-right:.5rem;border-radius:50%;background:var(--grad);vertical-align:middle}.badge-1{top:8%;left:-14%}.badge-2{top:46%;right:-16%;animation-delay:-2s}.badge-3{bottom:7%;left:-8%;animation-delay:-4s}@keyframes about-float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.about-text{padding:2.4rem 2.6rem}.about-text p{margin:0 0 1.1rem;font-size:.94rem;line-height:1.8;color:var(--rose-muted)}.about-text p:last-child{margin-bottom:0}.about-text .about-intro{font-family:var(--font-display);font-size:1.05rem;font-weight:500;line-height:1.6;color:var(--rose-text)}.about-text mark{background:linear-gradient(transparent 62%,#fc5d9259 62%);color:var(--rose-text);padding:0 2px}@media(min-width:961px){.about-text p,.about-text .about-intro{font-size:1.1rem}}@media(max-width:960px){.about-grid{grid-template-columns:minmax(0,1fr);gap:3rem}.about-photo{position:relative;top:0;width:min(78%,340px)}}@media(max-width:640px){.about-text{padding:1.6rem 1.4rem}.about-text .about-intro{font-size:1rem}.about-badge{font-size:.75rem;padding:.45rem .8rem}.badge-1{left:-10%}.badge-2{right:-12%}}@media(prefers-reduced-motion:reduce){.about-photo-ring:before,.about-badge{animation:none}}.about-col{display:grid;gap:1.4rem;min-width:0}.about-wish{position:relative;padding:2rem 2.4rem;border:1px solid rgba(252,93,146,.45)!important;background:radial-gradient(ellipse at 100% 0%,rgba(252,93,146,.22),transparent 60%),radial-gradient(ellipse at 0% 100%,rgba(245,205,120,.14),transparent 60%),#280414b3!important;overflow:hidden}.about-wish:before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:var(--grad)}.about-wish-kicker{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:#f5cd78}.about-wish-text{margin:.6rem 0 1.2rem;font-family:var(--font-display);font-size:clamp(1.2rem,1.6vw,1.45rem);font-weight:700;line-height:1.45;color:var(--rose-text)}.about-wish-text mark{background:linear-gradient(transparent 62%,#fc5d9266 62%);color:inherit;padding:0 2px}.about-wish-chips{display:flex;flex-wrap:wrap;gap:.5rem;margin:0 0 1.3rem;padding:0;list-style:none}.about-wish-chips li{display:inline-flex;align-items:center;gap:.4rem;padding:.45rem .85rem;border-radius:999px;font-size:.82rem;font-weight:600;color:var(--rose-text);background:#fc5d921f;border:1px solid rgba(252,93,146,.3)}.about-wish-chips li.is-soft{background:transparent;border-style:dashed;color:var(--rose-muted)}.about-wish-chips svg{color:#f5cd78;flex-shrink:0}.about-wish-cta{display:inline-flex;align-items:center;gap:.4rem;font-weight:700;font-size:.92rem;color:#fc5d92;text-decoration:none;transition:gap .2s}.about-wish-cta:hover{gap:.7rem}@media(max-width:640px){.about-wish{padding:1.5rem 1.3rem 1.5rem 1.5rem}}._wrapper_1pxeg_2{position:relative}._timeline_1pxeg_6{--progress: 0;position:relative;list-style:none;margin:0;padding:0}._timeline_1pxeg_6:before,._timeline_1pxeg_6:after{content:"";position:absolute;top:0;left:50%;width:3px;margin-left:-1.5px;border-radius:3px}._timeline_1pxeg_6:before{bottom:0;background:#fc5d9226}._timeline_1pxeg_6:after{height:calc(var(--progress) * 100%);background:linear-gradient(to bottom,var(--gold),var(--pink));box-shadow:0 0 14px #fc5d9299}._item_1pxeg_38{position:relative;width:50%;padding:0 3rem 2.2rem;box-sizing:border-box}._left_1pxeg_45{margin-right:auto;text-align:right}._right_1pxeg_50{margin-left:auto}._dot_1pxeg_54{position:absolute;top:1.6rem;width:18px;height:18px;border-radius:50%;background:var(--wine);border:3px solid var(--pink);z-index:1;transition:background .4s,box-shadow .4s}._left_1pxeg_45 ._dot_1pxeg_54{right:-9px}._right_1pxeg_50 ._dot_1pxeg_54{left:-9px}.is-visible>._dot_1pxeg_54{background:var(--gold);box-shadow:0 0 0 6px #f5cd782e}._card_1pxeg_79{display:inline-flex;flex-direction:column;gap:.3rem;padding:1.3rem 1.6rem;text-align:left;min-width:min(100%,320px);transition:transform .3s ease,border-color .3s ease}._card_1pxeg_79:hover{transform:translateY(-4px);border-color:#fc5d9280}._date_1pxeg_94{font-family:var(--font-mono);font-size:.82rem;color:var(--gold)}._title_1pxeg_100{margin:0;font-family:var(--font-display);font-size:1.2rem;font-weight:700;color:var(--rose-text);overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto}._place_1pxeg_111{color:var(--rose-muted);font-size:.95rem}._current_1pxeg_116 ._card_1pxeg_79{border-color:#fc5d928c;background:linear-gradient(160deg,#fc5d922e,#f5cd7814);box-shadow:0 16px 40px #fc5d9233}._now_1pxeg_122{position:absolute;top:-10px;right:16px;padding:.2rem .65rem;border-radius:999px;background:var(--grad);color:var(--wine);font-family:var(--font-display);font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em}._current_1pxeg_116 ._dot_1pxeg_54{animation:_cv-pulse_1pxeg_1 2s ease-in-out infinite}@keyframes _cv-pulse_1pxeg_1{0%,to{box-shadow:0 0 #fc5d928c}50%{box-shadow:0 0 0 10px #fc5d9200}}@media(max-width:900px){._timeline_1pxeg_6:before,._timeline_1pxeg_6:after{left:9px}._item_1pxeg_38,._left_1pxeg_45,._right_1pxeg_50{width:100%;margin:0;padding:0 0 1.6rem 2.6rem;text-align:left}._left_1pxeg_45 ._dot_1pxeg_54,._right_1pxeg_50 ._dot_1pxeg_54{left:0;right:auto}._title_1pxeg_100{font-size:1.05rem}._card_1pxeg_79{display:flex;min-width:0}}@media(prefers-reduced-motion:reduce){._current_1pxeg_116 ._dot_1pxeg_54{animation:none}}.glass-surface{position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden;transition:opacity .26s ease-out}.glass-surface__filter{width:100%;height:100%;pointer-events:none;position:absolute;inset:0;opacity:0;z-index:-1}.glass-surface__content{width:100%;height:100%;display:flex;align-items:center;justify-content:center;padding:.5rem;border-radius:inherit;position:relative;z-index:1}.glass-surface--svg{background:light-dark(hsl(0 0% 100% / var(--glass-frost, 0)),hsl(0 0% 0% / var(--glass-frost, 0)));-webkit-backdrop-filter:var(--filter-id) saturate(var(--glass-saturation, 1));backdrop-filter:var(--filter-id) saturate(var(--glass-saturation, 1));box-shadow:0 0 2px 1px light-dark(color-mix(in oklch,black,transparent 85%),color-mix(in oklch,white,transparent 65%)) inset,0 0 10px 4px light-dark(color-mix(in oklch,black,transparent 90%),color-mix(in oklch,white,transparent 85%)) inset,0 4px 16px #11111a0d,0 8px 24px #11111a0d,0 16px 56px #11111a0d,0 4px 16px #11111a0d inset,0 8px 24px #11111a0d inset,0 16px 56px #11111a0d inset}.glass-surface--fallback{background:#ffffff40;backdrop-filter:blur(12px) saturate(1.8) brightness(1.1);-webkit-backdrop-filter:blur(12px) saturate(1.8) brightness(1.1);border:1px solid rgba(255,255,255,.3);box-shadow:0 8px 32px #1f268733,0 2px 16px #1f26871a,inset 0 1px #fff6,inset 0 -1px #fff3}@media(prefers-color-scheme:dark){.glass-surface--fallback{background:#ffffff1a;backdrop-filter:blur(12px) saturate(1.8) brightness(1.2);-webkit-backdrop-filter:blur(12px) saturate(1.8) brightness(1.2);border:1px solid rgba(255,255,255,.2);box-shadow:inset 0 1px #fff3,inset 0 -1px #ffffff1a}}@supports not (backdrop-filter: blur(10px)){.glass-surface--fallback{background:#fff6;box-shadow:inset 0 1px #ffffff80,inset 0 -1px #ffffff4d}.glass-surface--fallback:before{content:"";position:absolute;inset:0;background:#ffffff26;border-radius:inherit;z-index:-1}}@supports not (backdrop-filter: blur(10px)){@media(prefers-color-scheme:dark){.glass-surface--fallback{background:#0006}.glass-surface--fallback:before{background:#ffffff0d}}}.glass-surface:focus-visible{outline:2px solid light-dark(#007aff,#0a84ff);outline-offset:2px}.nav{position:fixed;top:16px;left:0;right:0;z-index:1000;display:flex;justify-content:center;padding:0 16px;pointer-events:none;font-family:var(--font-display)}.nav-bar{pointer-events:auto;max-width:100%;transition:box-shadow .3s ease}.nav-bar .glass-surface__content{gap:.25rem;padding:0 .5rem}.nav.is-scrolled .nav-bar{box-shadow:0 12px 40px #00000059}.nav-logo{display:inline-flex;align-items:center;gap:.5rem;padding:.3rem .9rem .3rem .35rem;border:0;background:transparent;color:#fff;font:inherit;font-weight:700;cursor:pointer;border-radius:999px}.nav-logo:hover{border-color:transparent}.nav-logo-mark{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:var(--grad);color:var(--wine);font-weight:800}.nav-logo-text{letter-spacing:.02em}.nav-list{display:flex;align-items:center;gap:.15rem;list-style:none;margin:0;padding:0}.nav-link{position:relative;padding:.55rem 1rem;border:0;border-radius:999px;background:transparent;color:#ffffffc7;font:inherit;font-size:.95rem;font-weight:500;white-space:nowrap;cursor:pointer;transition:color .25s,background .25s}.nav-link:hover{color:#fff;background:#ffffff14;border-color:transparent}.nav-link.is-active{color:var(--wine);background:var(--grad);font-weight:700}.nav-link:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.nav-lang{display:inline-flex;align-items:center;gap:2px;margin-left:.35rem;padding:3px;border:1px solid rgba(255,255,255,.18);border-radius:999px;background:#ffffff0f;font:inherit;font-size:.78rem;font-weight:700;cursor:pointer}.nav-lang span{padding:.3rem .55rem;border-radius:999px;color:#fff9;transition:background .25s,color .25s}.nav-lang span.on{color:var(--wine);background:var(--grad)}.nav-lang:hover span:not(.on){color:#fff}.nav-lang:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.nav-burger{display:none;align-items:center;justify-content:center;width:44px;height:44px;padding:0;border:0;border-radius:50%;background:#ffffff14;color:#fff;cursor:pointer}.nav-mobile{display:none}@media(max-width:900px){.nav-list{display:none}.nav-lang{margin-left:auto}.nav-burger{display:inline-flex;margin-left:.4rem}.nav-bar{width:100%!important}.nav-bar .glass-surface__content{justify-content:space-between}.nav-mobile{pointer-events:auto;position:absolute;top:72px;left:16px;right:16px;display:flex;flex-direction:column;gap:.25rem;margin:0;padding:.6rem;list-style:none;border-radius:24px;border:1px solid var(--line);background:#20010feb;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:0 20px 50px #00000073;opacity:0;transform:translateY(-8px) scale(.98);visibility:hidden;transition:opacity .25s ease,transform .25s ease,visibility .25s}.nav-mobile.is-open{opacity:1;transform:none;visibility:visible}.nav-mobile .nav-link{width:100%;text-align:left;padding:.9rem 1.1rem;font-size:1.05rem;border-radius:16px}}.signature{display:block;width:min(86vw,760px);height:auto;overflow:visible;filter:drop-shadow(0 0 18px rgba(252,93,146,.35))}.sig-stroke{fill:none;stroke:url(#sig-grad);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;opacity:0}.sig-fill{fill:url(#sig-grad);opacity:0}.sig-shine{fill:url(#sig-shine);pointer-events:none}.signature.is-ready .sig-stroke{opacity:1;stroke-dasharray:var(--len);stroke-dashoffset:var(--len);animation:sig-draw var(--dur) cubic-bezier(.45,0,.55,1) var(--delay) forwards,sig-stroke-out .8s ease calc(var(--delay) + var(--dur) + .4s) forwards}.signature.is-ready .sig-fill{animation:sig-fill .6s ease var(--fdelay) forwards}@keyframes sig-draw{to{stroke-dashoffset:0}}@keyframes sig-stroke-out{to{opacity:.25}}@keyframes sig-fill{to{opacity:1}}@media(prefers-reduced-motion:reduce){.signature.is-ready .sig-stroke{animation:none;stroke-dasharray:none;opacity:.25}.signature.is-ready .sig-fill{animation:none;opacity:1}.sig-shine{display:none}}.pf-featured{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.4rem}.pf-card{--accent: var(--pink);position:relative;display:flex;flex-direction:column;border-radius:26px;overflow:hidden;text-decoration:none;color:inherit;background:linear-gradient(160deg,#3a0b1ecc,#20010fb3);border:1px solid var(--line);transition:transform .45s cubic-bezier(.2,.8,.2,1),border-color .3s,box-shadow .45s,opacity .5s ease}.pf-card:hover{color:inherit;transform:translateY(-8px);border-color:color-mix(in srgb,var(--accent) 60%,transparent);box-shadow:0 24px 60px #00000073,0 0 40px color-mix(in srgb,var(--accent) 25%,transparent)}.pf-card:focus-visible{outline:2px solid var(--gold);outline-offset:4px}.pf-cover{position:relative;aspect-ratio:16 / 10;overflow:hidden;background:#0b0b10}.pf-cover img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .7s cubic-bezier(.2,.8,.2,1)}.pf-card:hover .pf-cover img{transform:scale(1.06)}.pf-cover:after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 30%,rgba(255,255,255,.14) 45%,transparent 60%);transform:translate(-100%);transition:transform .9s ease}.pf-card:hover .pf-cover:after{transform:translate(100%)}.pf-body{display:flex;flex-direction:column;gap:.5rem;padding:1.4rem 1.5rem 1.6rem;flex:1}.pf-kind{font-family:var(--font-mono);font-size:.75rem;letter-spacing:.04em;text-transform:uppercase;color:var(--accent)}.pf-title{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin:0;font-family:var(--font-display);font-size:1.2rem;font-weight:800;color:var(--rose-text)}.pf-arrow{flex-shrink:0;color:var(--rose-muted);transition:transform .3s ease,color .3s}.pf-card:hover .pf-arrow{transform:translate(3px,-3px);color:var(--accent)}.pf-text{margin:0;color:var(--rose-muted);font-size:.95rem;line-height:1.6}.pf-tags{display:flex;flex-wrap:wrap;gap:.4rem;list-style:none;margin:auto 0 0;padding:.6rem 0 0}.pf-tags li{padding:.25rem .7rem;border-radius:999px;border:1px solid rgba(255,255,255,.14);font-size:.78rem;color:var(--rose-text)}.pf-more-title{margin:4rem 0 1.2rem;font-family:var(--font-display);font-size:1.3rem;font-weight:700;color:var(--rose-text)}.pf-more{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.pf-mini{overflow:hidden}.pf-mini-img{aspect-ratio:16 / 10;overflow:hidden;background:radial-gradient(circle at 50% 40%,#fc5d922e,#20010fe6)}.pf-mini-img img{width:100%;height:100%;display:block;object-fit:cover;opacity:.85;filter:saturate(.85)}.pf-mini-img.is-contain img{object-fit:contain;padding:.8rem;box-sizing:border-box}.pf-mini-body{display:flex;flex-direction:column;gap:.2rem;padding:1rem 1.1rem 1.2rem}.pf-mini-body strong{font-family:var(--font-display);font-size:1.05rem;color:var(--rose-text)}.pf-mini-body span{font-size:.88rem;color:var(--rose-muted)}.pf-mini-body em{margin-top:.4rem;font-style:normal;font-family:var(--font-mono);font-size:.72rem;color:var(--gold)}@media(max-width:1100px){.pf-more{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:680px){.pf-featured{grid-template-columns:minmax(0,1fr)}}@media(min-width:681px){.pf-featured>.pf-card:last-child:nth-child(odd){grid-column:1 / -1;flex-direction:row}.pf-featured>.pf-card:last-child:nth-child(odd) .pf-cover{flex:0 0 55%;aspect-ratio:16 / 10}.pf-featured>.pf-card:last-child:nth-child(odd) .pf-body{justify-content:center;padding:2rem}}.pf-badge{position:absolute;top:.9rem;left:.9rem;z-index:2;padding:.45rem .85rem;border-radius:999px;font-family:var(--font-display);font-size:.95rem;font-weight:800;letter-spacing:.06em;color:#fff;background:linear-gradient(120deg,#ec407a,#ff7aa8);box-shadow:0 6px 18px #ec407a73;transform:rotate(-2deg)}.skills-marquee{position:relative;margin:0 -1.5rem 3rem;padding:1.1rem 0;overflow:hidden;border-top:1px solid var(--line);border-bottom:1px solid var(--line);mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent)}.skills-track{display:flex;width:max-content;animation:skills-scroll 40s linear infinite}.skills-marquee:hover .skills-track{animation-play-state:paused}.skills-track span{display:inline-flex;align-items:center;gap:1.4rem;padding-right:1.4rem;font-family:var(--font-display);font-size:clamp(1.4rem,3vw,2.2rem);font-weight:800;white-space:nowrap;color:transparent;-webkit-text-stroke:1px rgba(251,238,243,.45)}.skills-track span:nth-child(3n+1){color:var(--rose-text);-webkit-text-stroke:0}.skills-track i{font-style:normal;font-size:.6em;color:var(--pink);-webkit-text-stroke:0}@keyframes skills-scroll{to{transform:translate(-50%)}}.skills-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:1rem}.skills-card{grid-column:span 2;padding:1.6rem;transition:transform .3s ease,border-color .3s ease,opacity .45s ease}.skills-card:nth-child(4),.skills-card:nth-child(5){grid-column:span 3}.skills-card:hover{transform:translateY(-5px);border-color:#fc5d9280}.skills-icon{display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:14px;background:var(--grad);color:var(--wine);box-shadow:0 10px 26px #fc5d924d}.skills-card h3{margin:1rem 0 .9rem;font-family:var(--font-display);font-size:1.15rem;font-weight:700;color:var(--rose-text)}.skills-card ul{display:flex;flex-wrap:wrap;gap:.45rem;list-style:none;margin:0;padding:0}.skills-card li{padding:.35rem .8rem;border-radius:999px;border:1px solid rgba(255,255,255,.14);background:#ffffff0a;font-size:.88rem;color:var(--rose-text);transition:border-color .25s,background .25s}.skills-card li:hover{border-color:var(--gold);background:#f5cd781a}@media(max-width:960px){.skills-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.skills-card,.skills-card:nth-child(4),.skills-card:nth-child(5){grid-column:span 1}.skills-card:nth-child(5){grid-column:1 / -1}}@media(max-width:640px){.skills-grid{grid-template-columns:minmax(0,1fr)}.skills-marquee{margin:0 -1rem 2rem}}@media(prefers-reduced-motion:reduce){.skills-track{animation:none}}.contact-card{position:relative;overflow:hidden;padding:4.5rem 3rem;border-radius:36px;text-align:center;border:1px solid rgba(252,93,146,.35);background:radial-gradient(ellipse at 50% 120%,rgba(252,93,146,.35),transparent 60%),radial-gradient(ellipse at 10% -10%,rgba(245,205,120,.18),transparent 50%),linear-gradient(160deg,var(--wine-3),var(--wine))}.contact-card .sec-kicker{justify-content:center}.contact-card .sec-kicker:before{content:"";width:48px;height:1.5px;background:var(--grad)}.contact-title{margin:1rem auto 0;max-width:18ch;font-family:var(--font-display);font-size:clamp(2.4rem,6vw,4.6rem);font-weight:800;line-height:1.02;letter-spacing:-.03em;color:var(--rose-text)}.contact-title em{font-style:normal;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}.contact-text{max-width:36rem;margin:1.4rem auto 0;color:var(--rose-muted);font-size:1.08rem;line-height:1.7}.contact-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:.8rem;margin-top:2.2rem}.contact-heart{position:absolute;right:-2rem;bottom:-5rem;font-size:18rem;line-height:1;color:#fc5d9214;pointer-events:none;animation:contact-beat 2.4s ease-in-out infinite}@keyframes contact-beat{0%,to{transform:scale(1)}12%{transform:scale(1.05)}24%{transform:scale(1)}36%{transform:scale(1.03)}}.footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;margin-top:3rem;padding:1.6rem 0 2rem;border-top:1px solid var(--line);color:var(--rose-muted);font-size:.9rem}.footer-icons{display:flex;gap:.6rem}.footer-made b{color:var(--pink)}.footer-top{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;padding:0;border-radius:50%;border:1px solid var(--line);background:transparent;color:var(--rose-text);cursor:pointer;transition:background .25s,color .25s,transform .25s}.footer-top:hover{background:var(--grad);color:var(--wine);border-color:transparent;transform:translateY(-3px)}@media(max-width:640px){.contact-card{padding:3rem 1.4rem;border-radius:28px}.contact-title{font-size:min(2.3rem,7.8vw)}.contact-text{font-size:1rem}.contact-card .sec-kicker:before,.contact-card .sec-kicker:after{display:none}.footer{justify-content:center;text-align:center}}@media(prefers-reduced-motion:reduce){.contact-heart{animation:none}}.cf,.cf-done{position:relative;z-index:1;max-width:40rem;margin:2.2rem auto 0;text-align:left}.cf{display:grid;grid-template-columns:minmax(0,1fr);gap:1rem}.cf-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1rem}.cf-field{display:grid;gap:.45rem}.cf-field span{font-family:var(--font-mono);font-size:.75rem;letter-spacing:.06em;text-transform:uppercase;color:var(--rose-muted)}.cf-field input,.cf-field textarea{width:100%;box-sizing:border-box;padding:.9rem 1rem;border:1px solid rgba(252,93,146,.25);border-radius:16px;font:inherit;font-size:1rem;color:var(--rose-text);background:#14020a73;transition:border-color .2s,box-shadow .2s,background .2s}.cf-field textarea{resize:vertical;min-height:8rem}.cf-field input::placeholder,.cf-field textarea::placeholder{color:#ffdce859}.cf-field input:focus,.cf-field textarea:focus{outline:none;border-color:#fc5d92bf;background:#14020aa6;box-shadow:0 0 0 4px #fc5d9226}.cf-bot{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}.cf-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:1rem}.cf-privacy{flex:1 1 16rem;margin:0;font-size:.8rem;line-height:1.55;color:var(--rose-muted);opacity:.8}.cf-send{display:inline-flex;align-items:center;gap:.5rem;white-space:nowrap}.cf-send:disabled{opacity:.7;cursor:wait}.cf-spin{animation:cf-spin .9s linear infinite}@keyframes cf-spin{to{transform:rotate(360deg)}}.cf-error{margin:0;font-size:.9rem;color:#ff9fbf}.cf-done{display:grid;justify-items:center;gap:.6rem;padding:2rem 1rem;text-align:center;animation:cf-pop .5s cubic-bezier(.2,.8,.2,1)}.cf-done-icon{display:grid;place-items:center;width:64px;height:64px;border-radius:50%;color:var(--wine);background:var(--grad);box-shadow:0 10px 30px #fc5d9266}.cf-done-title{margin:.4rem 0 0;font-family:var(--font-display);font-size:1.5rem;font-weight:800;color:var(--rose-text)}.cf-done-text{margin:0 0 .6rem;color:var(--rose-muted)}@keyframes cf-pop{0%{opacity:0;transform:scale(.94)}}@media(max-width:640px){.cf-row{grid-template-columns:minmax(0,1fr)}.cf-send{width:100%;justify-content:center}}.project-loading{min-height:100vh}.not-found{min-height:100vh;display:grid;place-content:center;justify-items:center;gap:.8rem;padding:7rem 1.5rem 3rem;text-align:center;box-sizing:border-box}.not-found-code{font-family:var(--font-mono);font-size:clamp(4rem,18vw,8rem);font-weight:600;line-height:1;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;padding-bottom:.1em}.not-found h1{margin:0;font-family:var(--font-display);font-size:clamp(1.6rem,5vw,2.4rem);color:var(--rose-text)}.not-found p{margin:0 0 1rem;color:var(--rose-muted)}
