@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/bricolage-grotesque-vietnamese-wght-normal.BUzh504Q.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/bricolage-grotesque-latin-ext-wght-normal.CcLUaPy7.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/bricolage-grotesque-latin-wght-normal.DLoelf7F.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans Variable;font-style:normal;font-display:swap;font-weight:100 1000;src:url(/_astro/dm-sans-latin-ext-wght-normal.BOFOeGcA.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans Variable;font-style:normal;font-display:swap;font-weight:100 1000;src:url(/_astro/dm-sans-latin-wght-normal.Xz1IZZA0.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--pink:#ff2a7f;--pink-dark:#d4125f;--pink-soft:#ffe3ee;--ink:#16111c;--ink-2:#3b3445;--muted:#6b6475;--line:#eadfe4;--cream:#fff8f3;--paper:#fff;--sand:#f6ece4;--teal:#0d9488;--sun:#ffc83d;--sky:#dff1ff;--radius:18px;--radius-sm:10px;--shadow:0 1px 2px #3c0a280d, 0 14px 34px -14px #a0145a38;--shadow-lg:0 2px 4px #3c0a280d, 0 34px 64px -22px #a0145a57;--font-head:"Bricolage Grotesque Variable", "Trebuchet MS", system-ui, sans-serif;--font-body:"DM Sans Variable", system-ui, -apple-system, "Segoe UI", sans-serif;--wrap:1180px}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{font-family:var(--font-body);color:var(--ink);background:var(--cream);margin:0;font-size:1.0625rem;line-height:1.65}img,svg{max-width:100%;display:block}a{color:var(--pink-dark);text-underline-offset:3px}a:hover{color:var(--pink)}h1,h2,h3,h4{font-family:var(--font-head);letter-spacing:-.015em;margin:0 0 .5em;font-weight:800;line-height:1.12}h1{letter-spacing:-.03em;font-size:clamp(2.4rem,6vw,4.6rem);line-height:1.04}h2{letter-spacing:-.025em;font-size:clamp(1.8rem,3.8vw,2.9rem)}h3{font-size:1.25rem}p{margin:0 0 1em}:focus-visible{outline:3px solid var(--pink);outline-offset:3px;border-radius:6px}.skip{background:var(--ink);color:#fff;z-index:100;border-radius:8px;padding:10px 16px;position:absolute;top:8px;left:-999px}.skip:focus{left:8px}.wrap{width:min(var(--wrap), 100% - 32px);margin-inline:auto}.narrow{width:min(760px,100% - 32px);margin-inline:auto}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.eyebrow{color:var(--pink-dark);background:var(--pink-soft);border-radius:999px;align-items:center;gap:8px;margin-bottom:18px;padding:5px 14px 5px 10px;font-size:.92rem;font-weight:700;display:inline-flex}.eyebrow:before{content:"";background:var(--pink);border-radius:50%;width:8px;height:8px}.bg-ink .eyebrow{color:#ff8fba;background:#ff2a7f2e}.lead{color:var(--ink-2);max-width:60ch;font-size:1.2rem}.btn{--bg:var(--pink);--fg:#fff;border:2px solid var(--bg);background:var(--bg);color:var(--fg);font:700 1rem var(--font-body);cursor:pointer;border-radius:999px;justify-content:center;align-items:center;gap:8px;min-height:48px;padding:13px 24px;text-decoration:none;transition:transform .18s,box-shadow .18s,background .18s;display:inline-flex;box-shadow:0 8px 20px -10px #ff2a7f8c}.btn.ghost{box-shadow:none}.btn:hover{color:var(--fg);background:var(--pink-dark);border-color:var(--pink-dark);transform:translateY(-2px);box-shadow:0 14px 28px -10px #ff2a7fa6}.btn:active{transform:translateY(0)}.btn.ghost{--bg:transparent;--fg:var(--ink);border-color:var(--ink)}.btn.ghost:hover{background:var(--ink);color:#fff;border-color:var(--ink);box-shadow:none}.btn.dark{--bg:var(--ink);border-color:var(--ink)}.btn.dark:hover{background:#000;border-color:#000;box-shadow:0 10px 24px -8px #00000080}.btn.sm{min-height:40px;padding:8px 16px;font-size:.92rem}.btn.danger{--bg:transparent;--fg:#b4113f;border-color:#e7b3c3}.btn.danger:hover{color:#fff;box-shadow:none;background:#b4113f;border-color:#b4113f}.btn.light{--bg:#fff;--fg:var(--ink);border-color:#fff}.btn.light:hover{background:var(--pink-soft);color:var(--ink);border-color:var(--pink-soft)}.btn[disabled]{opacity:.5;pointer-events:none}.btn svg{flex:none;width:20px;height:20px}.site-header{z-index:50;backdrop-filter:blur(14px);background:#fff8f3db;border-bottom:1px solid #0000;transition:border-color .2s,box-shadow .2s;position:sticky;top:0}.site-header.scrolled{border-color:var(--line);box-shadow:0 6px 20px -14px #16111c66}.head-in{justify-content:space-between;align-items:center;gap:16px;min-height:68px;display:flex}.brand img{width:auto;height:36px}.nav{align-items:center;gap:6px;display:flex}.nav a:not(.btn){color:var(--ink);border-radius:999px;padding:8px 14px;font-size:.98rem;font-weight:600;text-decoration:none}.nav a:not(.btn):hover,.nav a[aria-current=page]:not(.btn){background:var(--pink-soft);color:var(--pink-dark)}.menu-btn{border:2px solid var(--ink);cursor:pointer;background:0 0;border-radius:12px;justify-content:center;align-items:center;width:46px;height:46px;display:none}.menu-btn svg{width:24px;height:24px}@media (width<=880px){.menu-btn{display:inline-flex}.nav{background:var(--cream);border-bottom:1px solid var(--line);flex-direction:column;align-items:stretch;padding:12px 16px 20px;display:none;position:absolute;inset:68px 0 auto;box-shadow:0 20px 30px -20px #0000004d}.nav.open{display:flex}.nav a:not(.btn){padding:14px;font-size:1.05rem}}.crumbs{color:var(--muted);padding:18px 0 0;font-size:.9rem}.crumbs ol{flex-wrap:wrap;gap:4px 8px;margin:0;padding:0;list-style:none;display:flex}.crumbs li+li:before{content:"/";color:#c8bcc3;margin-right:8px}.crumbs a{color:var(--muted);text-decoration:none}.crumbs a:hover{color:var(--pink-dark);text-decoration:underline}.crumbs [aria-current]{color:var(--ink);font-weight:600}.site-footer{background:var(--ink);color:#d9d2de;margin-top:96px;padding:64px 0 28px;position:relative}.site-footer:before{content:"";background:radial-gradient(circle at 10px 0, var(--cream) 10px, transparent 11px) 0 0 / 20px 14px repeat-x;height:14px;position:absolute;top:-1px;left:0;right:0}.foot-grid{grid-template-columns:1.4fr repeat(3,1fr);gap:40px;display:grid}.site-footer h2{color:#fff;text-transform:uppercase;letter-spacing:.1em;font-size:1rem;font-family:var(--font-body)}.site-footer ul{gap:8px;margin:0;padding:0;list-style:none;display:grid}.site-footer a{color:#d9d2de;text-decoration:none}.site-footer a:hover{color:var(--pink);text-decoration:underline}.foot-brand img{filter:brightness(0)invert();height:38px;margin-bottom:14px}.foot-brand p{color:#b6adbd;max-width:34ch;font-size:.95rem}.foot-bottom{color:#9f96a7;border-top:1px solid #2f2738;flex-wrap:wrap;justify-content:space-between;gap:8px 24px;margin-top:44px;padding-top:22px;font-size:.88rem;display:flex}@media (width<=820px){.foot-grid{grid-template-columns:1fr 1fr}.foot-brand{grid-column:1/-1}}section{position:relative}.sec{padding:clamp(56px,8vw,104px) 0}.sec-head{max-width:680px;margin-bottom:44px}.sec-head.center{text-align:center;margin-inline:auto}.sec-head.center .eyebrow{justify-content:center}.bg-ink{background:var(--ink);color:#f2edf5}.bg-ink h2,.bg-ink h3{color:#fff}.bg-ink .lead{color:#cfc6d6}.bg-pink{background:var(--pink);color:#fff}.bg-sand{background:var(--sand)}.bg-paper{background:#fff}.hero{background:linear-gradient(180deg, #ffe9f1 0%, #fff3ea 62%, var(--cream) 100%);padding:clamp(40px,6vw,84px) 0 0;position:relative;overflow:hidden}.hero-grid{z-index:2;grid-template-columns:1.05fr 1fr;align-items:center;gap:40px;padding-bottom:84px;display:grid;position:relative}.hero h1{margin-bottom:20px}.hero h1 em{color:var(--pink);white-space:nowrap;font-style:normal;position:relative}.hero h1 em:after{content:"";background:var(--sun);z-index:-1;border-radius:6px;height:.16em;position:absolute;bottom:-.04em;left:0;right:0;transform:skew(-8deg)}.hero-cta{flex-wrap:wrap;gap:12px;margin:28px 0 26px;display:flex}.hero-badges{color:var(--ink-2);flex-wrap:wrap;gap:8px 18px;margin:0;padding:0;font-size:.95rem;font-weight:600;list-style:none;display:flex}.hero-badges li{align-items:center;gap:8px;display:inline-flex}.hero-badges svg{width:18px;height:18px;color:var(--pink)}.hero-art{aspect-ratio:600/520;filter:drop-shadow(0 40px 50px #78144638);width:100%;max-width:580px;margin-inline:auto;position:relative}.hero-art .scene{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.float-card{box-shadow:var(--shadow-lg);background:#fff;border:1px solid #f3e6ec;border-radius:16px;padding:14px 16px;font-size:.92rem;animation:6s ease-in-out infinite bob;position:absolute}.float-card strong{font-family:var(--font-head);font-size:1rem;display:block}.float-card small{color:var(--muted)}.fc-1{width:230px;top:7%;left:-7%}.fc-2{width:220px;animation-delay:-2s;top:42%;right:-6%}.fc-3{width:210px;animation-delay:-4s;bottom:9%;left:-4%}.fc-row{align-items:center;gap:10px;display:flex}.dot{background:var(--pink);border-radius:50%;flex:none;width:10px;height:10px}.chip{background:var(--pink-soft);color:var(--pink-dark);border-radius:999px;align-items:center;gap:6px;padding:3px 10px;font-size:.78rem;font-weight:700;display:inline-flex}@keyframes bob{0%,to{transform:translateY(0)rotate(-.4deg)}50%{transform:translateY(-10px)rotate(.4deg)}}.hero-wave{z-index:3;pointer-events:none;width:100%;height:70px;margin-top:-70px;display:block;position:relative}@media (width<=900px){.hero-grid{grid-template-columns:1fr}.hero-art{margin-top:10px}.fc-1{width:190px;left:-2%}.fc-2{width:180px;right:-2%}.fc-3{width:180px;left:0}}@media (prefers-reduced-motion:reduce){.float-card,.route-dash,.plane{animation:none!important}html{scroll-behavior:auto}*{transition-duration:.01ms!important}}.route-dash{stroke-dasharray:3 12;animation:28s linear infinite dash}@keyframes dash{to{stroke-dashoffset:-600px}}.plane{transform-origin:50%;animation:9s ease-in-out infinite fly}@keyframes fly{0%,to{transform:translate(0)rotate(0)}50%{transform:translate(14px,-10px)rotate(-4deg)}}.steps{counter-reset:s;grid-template-columns:repeat(3,1fr);gap:20px;display:grid}.step{border:1px solid var(--line);box-shadow:var(--shadow);background:#fff;border-radius:22px;padding:32px 28px 28px;transition:transform .2s,box-shadow .2s;position:relative}.step:hover{box-shadow:var(--shadow);transform:translateY(-4px)}.step:before{counter-increment:s;content:counter(s);background:var(--pink);color:#fff;width:40px;height:40px;font:800 1.2rem var(--font-head);border-radius:12px;place-items:center;display:grid;position:absolute;top:-18px;left:24px;transform:rotate(-6deg)}.step h3{margin-top:10px}.step p{color:var(--ink-2);margin:0}@media (width<=820px){.steps{grid-template-columns:1fr;gap:32px}}.demo{box-shadow:var(--shadow-lg);border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:22px;overflow:hidden}.demo-bar{border-bottom:1px solid var(--line);background:#f4ecef;align-items:center;gap:8px;padding:12px 16px;display:flex}.demo-bar i{background:#e0d2d8;border-radius:50%;width:11px;height:11px}.demo-bar i:first-child{background:#ff7aa8}.demo-bar i:nth-child(2){background:var(--sun)}.demo-bar i:nth-child(3){background:#6ee7b7}.demo-bar span{color:var(--muted);margin-left:10px;font-size:.85rem;font-weight:600}.demo-body{gap:14px;padding:18px;display:grid}.demo-tabs{gap:6px;padding-bottom:2px;display:flex;overflow-x:auto}.demo-tabs button{color:var(--ink-2);font:700 .92rem var(--font-body);cursor:pointer;white-space:nowrap;background:#f4ecef;border:0;border-radius:999px;padding:9px 16px;transition:background .15s,color .15s}.demo-tabs button[aria-selected=true]{background:var(--ink);color:#fff}.demo-list{align-content:start;gap:8px;min-height:230px;display:grid}.demo-item{background:#fff9fb;border:1px solid #f4dfe8;border-radius:14px;grid-template-columns:56px 1fr auto;align-items:center;gap:12px;padding:10px 14px;animation:.35s both pop;display:grid}.demo-item b{font-family:var(--font-head);color:var(--pink-dark)}.demo-item small{color:var(--muted);display:block}@keyframes pop{0%{opacity:0;transform:translateY(8px)}}.cards{grid-template-columns:repeat(3,1fr);gap:22px;display:grid}.cards.two{grid-template-columns:repeat(2,1fr)}.cards.four{grid-template-columns:repeat(4,1fr)}@media (width<=960px){.cards,.cards.four{grid-template-columns:repeat(2,1fr)}}@media (width<=620px){.cards,.cards.two,.cards.four{grid-template-columns:1fr}}.card{border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:22px;flex-direction:column;text-decoration:none;transition:transform .22s,box-shadow .22s,border-color .22s;display:flex;overflow:hidden;box-shadow:inset 0 1px #fffc,0 2px 6px #3c0a280a}.card:hover{box-shadow:var(--shadow-lg);color:var(--ink);border-color:#0000;transform:translateY(-6px)}.card-top{color:#fff;flex-direction:column;justify-content:flex-end;min-height:140px;padding:22px 22px 18px;display:flex;position:relative;overflow:hidden}.card-top:after{content:"";background:#ffffff29;border-radius:50%;width:130px;height:130px;position:absolute;top:-30px;right:-30px}.card-top:before{content:"";border:6px solid #ffffff2e;border-radius:50%;width:60px;height:60px;position:absolute;top:40px;right:30px}.card-top h3{color:#fff;z-index:1;margin:0;font-size:1.35rem;position:relative}.card-top .chip{color:#fff;background:#ffffff38;position:absolute;top:16px;left:18px}.card-body{flex-direction:column;flex:1;gap:10px;padding:18px 22px 22px;display:flex}.card-body p{color:var(--ink-2);margin:0;font-size:.97rem}.card-meta{color:var(--pink-dark);justify-content:space-between;gap:8px;margin-top:auto;padding-top:6px;font-size:.95rem;font-weight:700;display:flex}.gcard{gap:10px;padding:24px}.gcard h3{margin:4px 0 6px;font-size:1.2rem}.gcard p{color:var(--ink-2);margin:0;font-size:.96rem}.tag{background:var(--pink-soft);color:var(--pink-dark);border-radius:999px;align-self:flex-start;padding:4px 12px;font-size:.8rem;font-weight:700}.split{grid-template-columns:1fr 1fr;align-items:center;gap:clamp(28px,6vw,80px);display:grid}@media (width<=880px){.split{grid-template-columns:1fr}.split.rev .split-visual{order:-1}}.ticks{gap:12px;margin:22px 0;padding:0;list-style:none;display:grid}.ticks li{align-items:flex-start;gap:12px;display:flex}.ticks svg{width:22px;height:22px;color:var(--pink);flex:none;margin-top:3px}.bg-ink .ticks svg{color:var(--sun)}.pack{box-shadow:var(--shadow-lg);color:var(--ink);background:#fff;border-radius:22px;padding:24px}.pack h3{justify-content:space-between;align-items:center;display:flex}.bar{background:#f3e6ec;border-radius:999px;height:10px;margin:6px 0 16px;overflow:hidden}.bar i{background:linear-gradient(90deg, var(--pink), #ff7aa8);border-radius:999px;width:0;height:100%;transition:width .35s;display:block}.pack-list{gap:8px;display:grid}.check{border:1px solid var(--line);cursor:pointer;user-select:none;border-radius:12px;align-items:center;gap:12px;padding:10px 14px;transition:background .15s,border-color .15s;display:flex}.check:hover{border-color:var(--pink)}.check input{appearance:none;cursor:pointer;background:#fff;border:2px solid #cdbfc7;border-radius:7px;flex:none;place-items:center;width:22px;height:22px;margin:0;transition:all .15s;display:grid}.check input:checked{background:var(--pink);border-color:var(--pink)}.check input:checked:after{content:"";border:3px solid #fff;border-width:0 3px 3px 0;width:6px;height:11px;transform:rotate(45deg)translate(-1px,-1px)}.check:has(input:checked){background:#fff4f8}.check:has(input:checked) span{color:var(--muted);text-decoration:line-through}.pdf-stack{max-width:420px;height:420px;margin-inline:auto;position:relative}.pdf-page{aspect-ratio:210/297;width:270px;box-shadow:var(--shadow-lg);color:var(--ink);background:#fff;border-radius:6px;padding:22px;font-size:.62rem;line-height:1.4;transition:transform .35s;position:absolute;overflow:hidden}.pdf-page h4{margin:40px 0 4px;font-size:1.15rem}.pdf-page.p1{top:30px;left:0;transform:rotate(-7deg)}.pdf-page.p2{z-index:2;top:10px;left:70px;transform:rotate(-1deg)}.pdf-page.p3{top:40px;left:140px;transform:rotate(6deg)}.pdf-stack:hover .p1{transform:rotate(-11deg)translate(-14px)}.pdf-stack:hover .p3{transform:rotate(10deg)translate(14px)}.pdf-bar{background:var(--pink);border-radius:4px;width:46px;height:8px}.pdf-row{border-bottom:1px solid #eee;gap:8px;padding:5px 0;display:flex}.pdf-row b{width:34px;color:var(--pink-dark);flex:none}.pdf-box{border:1.2px solid #888;border-radius:2px;flex:none;width:9px;height:9px;margin-top:2px}@media (width<=480px){.pdf-stack{height:380px}.pdf-page{width:220px;padding:16px;font-size:.55rem}.pdf-page.p2{left:50px}.pdf-page.p3{left:100px}}.strip{background:var(--ink);color:#fff;border-radius:26px;grid-template-columns:1.2fr 1fr;align-items:center;gap:32px;padding:clamp(28px,5vw,56px);display:grid;position:relative;overflow:hidden}.strip:after{content:"";background:var(--pink);opacity:.9;border-radius:50%;width:260px;height:260px;position:absolute;bottom:-80px;right:-80px}.strip>*{z-index:1;position:relative}.strip h2{color:#fff}.strip p{color:#d9d2de}@media (width<=800px){.strip{grid-template-columns:1fr}}.page-head{padding:28px 0 8px}.page-head h1{margin-top:18px;font-size:clamp(2rem,4.6vw,3.2rem)}.page-head .lead{margin-top:8px}.prose{color:#2a2431;font-size:1.08rem}.prose h2{margin-top:1.9em;font-size:clamp(1.5rem,3vw,2rem)}.prose h3{margin-top:1.5em}.prose ul,.prose ol{padding-left:1.3em}.prose li{margin-bottom:.5em}.prose li::marker{color:var(--pink);font-weight:700}.prose blockquote{border-left:5px solid var(--pink);background:var(--pink-soft);border-radius:0 12px 12px 0;margin:1.5em 0;padding:14px 22px}.prose table{border-collapse:collapse;width:100%;margin:1.4em 0;font-size:.98rem}.prose th,.prose td{text-align:left;border-bottom:1px solid var(--line);padding:10px 12px}.prose th{background:var(--sand)}.meta-line{color:var(--muted);flex-wrap:wrap;gap:6px 18px;margin-top:14px;font-size:.92rem;display:flex}.callout{border:2px solid var(--ink);border-radius:var(--radius);box-shadow:6px 6px 0 var(--pink);background:#fff;margin:40px 0;padding:24px}.callout h2{margin-bottom:8px;font-size:1.4rem}.callout p{margin-bottom:14px}.two-col{grid-template-columns:minmax(0,1fr) 300px;align-items:start;gap:48px;display:grid}.aside{gap:18px;display:grid;position:sticky;top:90px}.aside .box{border:1px solid var(--line);border-radius:var(--radius);background:#fff;padding:20px}.aside h2{font-size:1.05rem;font-family:var(--font-body);text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.aside ul{gap:10px;margin:0;padding:0;list-style:none;display:grid}.aside a{font-weight:600;text-decoration:none}.aside a:hover{text-decoration:underline}@media (width<=900px){.two-col{grid-template-columns:1fr}.aside{position:static}}.pills{flex-wrap:wrap;gap:8px;margin:0 0 28px;padding:0;list-style:none;display:flex}.pills a{border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:999px;padding:8px 16px;font-size:.94rem;font-weight:600;text-decoration:none;transition:all .15s;display:inline-block}.pills a:hover,.pills a[aria-current=page]{background:var(--ink);color:#fff;border-color:var(--ink)}details.faq{border:1px solid var(--line);background:#fff;border-radius:14px;margin-bottom:10px;padding:4px 20px}details.faq summary{cursor:pointer;justify-content:space-between;gap:12px;padding:14px 0;font-weight:700;list-style:none;display:flex}details.faq summary:after{content:"+";color:var(--pink);font-size:1.4rem;line-height:1;transition:transform .2s}details.faq[open] summary:after{transform:rotate(45deg)}details.faq p{color:var(--ink-2)}.reveal{opacity:0;transition:opacity .6s,transform .6s;transform:translateY(22px)}.reveal.in{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none}}.no-js .reveal{opacity:1;transform:none}.editor-shell{padding:24px 0 0}.editor-top{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:20px;display:flex}.editor-top h1{margin:0;font-size:clamp(1.8rem,4vw,2.6rem)}.save-state{color:var(--muted);align-items:center;gap:8px;font-size:.88rem;display:inline-flex}.save-state:before{content:"";background:#22c55e;border-radius:50%;width:9px;height:9px}.save-state.dirty:before{background:var(--sun)}.tabs{border:1px solid var(--line);scrollbar-width:none;background:#fff;border-radius:999px;gap:6px;margin-bottom:22px;padding:6px;display:flex;overflow-x:auto}.tabs button{min-width:max-content;font:700 .98rem var(--font-body);color:var(--ink-2);cursor:pointer;background:0 0;border:0;border-radius:999px;flex:1;justify-content:center;align-items:center;gap:8px;padding:11px 18px;transition:background .15s,color .15s;display:inline-flex}.tabs button:hover{background:var(--pink-soft)}.tabs button[aria-selected=true]{background:var(--ink);color:#fff}.tabs .count{background:var(--pink);color:#fff;border-radius:999px;padding:1px 8px;font-size:.75rem}@media (width<=560px){.tabs button{padding:10px 14px;font-size:.9rem}}.panel[hidden]{display:none}.panel{animation:.3s both pop}.form-card{border:1px solid var(--line);border-radius:var(--radius);background:#fff;padding:clamp(18px,3vw,30px)}.form-grid{grid-template-columns:repeat(6,1fr);gap:16px;display:grid}.field{grid-column:span 6;align-content:start;gap:6px;display:grid}.field.s2{grid-column:span 2}.field.s3{grid-column:span 3}.field.s4{grid-column:span 4}@media (width<=720px){.field.s2,.field.s3,.field.s4{grid-column:span 6}}label,.label{font-size:.92rem;font-weight:700}input[type=text],input[type=date],input[type=time],input[type=number],select,textarea{width:100%;font:500 1rem var(--font-body);color:var(--ink);border:2px solid var(--line);background:#fffdfc;border-radius:12px;min-height:48px;padding:11px 14px;transition:border-color .15s,box-shadow .15s}textarea{resize:vertical;min-height:96px}input:focus,select:focus,textarea:focus{border-color:var(--pink);outline:none;box-shadow:0 0 0 4px #ff2a7f26}.hint{color:var(--muted);font-size:.85rem}.row-actions{flex-wrap:wrap;gap:10px;margin-top:22px;display:flex}.tpl-grid{grid-template-columns:repeat(3,1fr);gap:12px;margin-top:12px;display:grid}@media (width<=820px){.tpl-grid{grid-template-columns:1fr 1fr}}@media (width<=520px){.tpl-grid{grid-template-columns:1fr}}.tpl-btn{text-align:left;border:2px solid var(--line);cursor:pointer;font:inherit;color:var(--ink);background:#fff;border-radius:14px;gap:2px;padding:14px 16px;transition:all .15s;display:grid}.tpl-btn:hover{border-color:var(--pink);transform:translateY(-2px)}.tpl-btn strong{font-family:var(--font-head)}.tpl-btn span{color:var(--muted);font-size:.85rem}.day-tabs{scrollbar-width:thin;align-items:center;gap:8px;padding:4px 2px 10px;display:flex;overflow-x:auto}.day-tab{border:2px solid var(--line);cursor:pointer;font:700 .95rem var(--font-body);color:var(--ink);text-align:left;background:#fff;border-radius:14px;flex:none;min-height:52px;padding:8px 16px;line-height:1.25;transition:all .15s}.day-tab small{color:var(--muted);font-size:.76rem;font-weight:500;display:block}.day-tab:hover{border-color:var(--pink)}.day-tab[aria-selected=true]{background:var(--ink);border-color:var(--ink);color:#fff}.day-tab[aria-selected=true] small{color:#d9d2de}.day-tab.drop-over{border-color:var(--pink);background:var(--pink-soft);color:var(--ink)}.day-add{font:700 .95rem var(--font-body);cursor:pointer;color:var(--pink-dark);background:0 0;border:2px dashed #d9c4cd;border-radius:14px;flex:none;min-height:52px;padding:8px 16px}.day-add:hover{background:var(--pink-soft);border-color:var(--pink)}.day-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin:10px 0 16px;display:flex}.day-head .title-in{font:800 1.4rem var(--font-head);background:0 0;border:2px solid #0000;border-radius:12px;flex:260px;min-height:46px;padding:6px 10px}.day-head .title-in:hover{border-color:var(--line);background:#fff}.day-head .title-in:focus{background:#fff}.day-tools{flex-wrap:wrap;gap:8px;display:flex}.items{border-radius:16px;gap:12px;min-height:100px;padding:4px;display:grid}.items.drop-over{background:var(--pink-soft);outline:2px dashed var(--pink)}.empty{text-align:center;color:var(--muted);background:#fffdfc;border:2px dashed #e3d3da;border-radius:16px;padding:34px 20px}.item{border:1px solid var(--line);border-left:6px solid var(--cat,var(--pink));background:#fff;border-radius:14px;grid-template-columns:auto 74px 1fr auto;align-items:start;gap:14px;padding:14px 16px;transition:box-shadow .15s,opacity .15s,transform .15s;display:grid}.item:hover{box-shadow:var(--shadow)}.item.dragging{opacity:.4}.item.drop-before{box-shadow:0 -4px 0 0 var(--pink)}.item.done{background:#f8f4f6}.item.done .item-main strong{color:var(--muted);text-decoration:line-through}.drag{cursor:grab;color:#b8a9b1;touch-action:none;user-select:none;padding:4px 0;font-size:1.2rem;line-height:1}.item .time{font:800 1.1rem var(--font-head);color:var(--ink);padding-top:2px}.item-main strong{font-size:1.05rem;display:block}.item-main .place{color:var(--ink-2);font-size:.95rem;font-weight:600}.item-main .addr,.item-main .note{color:var(--muted);margin:3px 0 0;font-size:.9rem}.cat-chip{letter-spacing:.04em;text-transform:uppercase;color:#fff;background:var(--cat);border-radius:999px;margin-bottom:4px;padding:2px 9px;font-size:.72rem;font-weight:700;display:inline-block}.item-tools{flex-wrap:wrap;justify-content:flex-end;gap:4px;max-width:210px;display:flex}.icon-btn{border:1px solid var(--line);cursor:pointer;width:40px;height:40px;color:var(--ink-2);background:#fff;border-radius:10px;place-items:center;padding:0;transition:all .15s;display:inline-grid}.icon-btn:hover{background:var(--pink-soft);color:var(--pink-dark);border-color:var(--pink)}.icon-btn.del:hover{color:#b4113f;background:#fde8ee;border-color:#e7b3c3}.icon-btn svg{width:19px;height:19px}.item .check-done{margin-top:2px}.item .check-done input{appearance:none;cursor:pointer;background:#fff;border:2px solid #cdbfc7;border-radius:50%;place-items:center;width:26px;height:26px;margin:0;transition:all .15s;display:grid}.item .check-done input:checked{background:#22c55e;border-color:#22c55e}.item .check-done input:checked:after{content:"";border:3px solid #fff;border-width:0 3px 3px 0;width:6px;height:11px;transform:rotate(45deg)translate(-1px,-1px)}@media (width<=720px){.item .drag{display:none}.item .time{grid-column:2}.item-main{grid-column:1/-1}.item-tools{grid-column:1/-1;justify-content:flex-start;max-width:none}.item{grid-template-columns:34px 1fr}.item .check-done{grid-area:1/1}}.add-bar{flex-wrap:wrap;gap:10px;margin-top:16px;display:flex}.stat-row{color:var(--muted);flex-wrap:wrap;gap:8px 20px;font-size:.92rem;display:flex}dialog{width:min(640px,100% - 24px);max-height:calc(100dvh - 24px);color:var(--ink);background:#fff;border:0;border-radius:22px;padding:0;box-shadow:0 40px 80px -20px #00000080}dialog::backdrop{backdrop-filter:blur(3px);background:#16111c8c}.dlg-in{max-height:calc(100dvh - 24px);padding:clamp(18px,4vw,30px);overflow:auto}.dlg-in h2{font-size:1.5rem}.dlg-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;margin-top:22px;display:flex}.pack-top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin-bottom:18px;display:flex}.pack-grid{grid-template-columns:repeat(2,1fr);align-items:start;gap:18px;display:grid}@media (width<=820px){.pack-grid{grid-template-columns:1fr}}.pcat{border:1px solid var(--line);border-radius:var(--radius);background:#fff;padding:18px}.pcat-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:4px;display:flex}.pcat-head h3{margin:0;font-size:1.15rem}.pcat-head small{color:var(--muted);font-weight:600}.pitem{border-bottom:1px solid #f4ecef;align-items:center;gap:10px;padding:6px 0;display:flex}.pitem label{cursor:pointer;flex:1;align-items:center;gap:12px;min-height:40px;font-weight:500;display:flex}.pitem input[type=checkbox]{appearance:none;cursor:pointer;background:#fff;border:2px solid #cdbfc7;border-radius:7px;flex:none;place-items:center;width:22px;height:22px;margin:0;transition:all .15s;display:grid}.pitem input[type=checkbox]:checked{background:var(--pink);border-color:var(--pink)}.pitem input[type=checkbox]:checked:after{content:"";border:3px solid #fff;border-width:0 3px 3px 0;width:6px;height:11px;transform:rotate(45deg)translate(-1px,-1px)}.pitem input:checked+span{color:var(--muted);text-decoration:line-through}.padd{gap:8px;margin-top:12px;display:flex}.padd input{min-height:42px;padding:8px 12px}.new-cat{flex:320px;gap:8px;max-width:460px;display:flex}.sug-box{background:var(--pink-soft);border-radius:var(--radius);margin-bottom:22px;padding:20px}.sug-box h3{margin-bottom:6px}.sug-row{flex-wrap:wrap;gap:10px;margin-top:12px;display:flex}.prev-tools{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:18px;display:flex}.paper-wrap{border-radius:var(--radius);background:#e9dfe4;padding:clamp(12px,3vw,36px);overflow-x:auto}.paper{color:#1b1620;max-width:794px;box-shadow:var(--shadow-lg);background:#fff;border-radius:4px;margin:0 auto 24px;padding:clamp(20px,5vw,56px);font-size:.95rem;line-height:1.5}.paper h1,.paper h2,.paper h3{color:#16111c}.cover{border-top:10px solid var(--pink);flex-direction:column;justify-content:space-between;min-height:520px;padding-top:28px;display:flex}.cover .brand-line{font:800 1rem var(--font-head);letter-spacing:.04em;color:var(--pink-dark);align-items:center;gap:8px;display:flex}.cover .cv-title{font:800 clamp(2rem, 6vw, 3.4rem)/1.12 var(--font-head);letter-spacing:-.015em;color:#16111c;margin:0 0 10px}.field-err{color:#b4113f;background:#fff0f4;border:1px solid #f3c3d2;border-radius:10px;margin:14px 0 0;padding:8px 12px;font-size:.95rem;font-weight:600}.cover .dest{font:700 1.4rem var(--font-head);color:var(--ink-2)}.cover .period{color:var(--muted);margin-top:6px;font-size:1.05rem}.cover .notes{border-left:4px solid var(--pink);color:var(--ink-2);white-space:pre-wrap;margin-top:28px;padding-left:14px}.cover .foot{color:var(--muted);font-size:.85rem}.pv-day{break-inside:avoid-page;margin-bottom:26px}.pv-day h2{border-left:6px solid var(--pink);background:#fff0f6;border-radius:0 10px 10px 0;margin-bottom:8px;padding:8px 14px;font-size:1.35rem}.pv-day h2 small{font:500 .85rem var(--font-body);color:var(--muted);margin-left:8px}.pv-row{break-inside:avoid;border-bottom:1px solid #eee;grid-template-columns:58px 1fr;gap:10px;padding:8px 4px;display:grid}.pv-row .t{color:var(--pink-dark);font-weight:800}.pv-row .cat{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-size:.72rem;font-weight:700}.pv-row .sub{color:#555;font-size:.9rem}.pv-row.done .what{color:#888;text-decoration:line-through}.pv-pack{column-count:2;column-gap:28px}.pv-pack .grp{break-inside:avoid;margin-bottom:14px}.pv-pack h3{border-bottom:2px solid #ffd0e2;margin-bottom:4px;padding-bottom:3px;font-size:1rem}.pv-pack li{align-items:center;gap:8px;padding:2px 0;font-size:.92rem;list-style:none;display:flex}.pv-pack ul{margin:0;padding:0}.pv-box{border:1.5px solid #666;border-radius:2px;flex:none;width:12px;height:12px;display:inline-block;position:relative}.pv-box.on{background:var(--pink);border-color:var(--pink)}@media (width<=600px){.pv-pack{column-count:1}}.toast{background:var(--ink);color:#fff;opacity:0;pointer-events:none;z-index:200;text-align:center;border-radius:999px;max-width:calc(100% - 32px);padding:12px 20px;font-size:.95rem;font-weight:600;transition:all .3s;position:fixed;bottom:24px;left:50%;transform:translate(-50%,30px)}.toast.show{opacity:1;transform:translate(-50%)}@media print{@page{margin:14mm}body{background:#fff;font-size:11pt}.site-header,.site-footer,.crumbs,.editor-top,.tabs,.prev-tools,.panel:not(#panel-prev),.toast,.skip,.page-head,.seo-below,dialog,noscript{display:none!important}.panel#panel-prev{animation:none;display:block!important}.paper-wrap{background:0 0;padding:0;overflow:visible}.paper{box-shadow:none;max-width:none;margin:0;padding:0}.cover{page-break-after:always;min-height:250mm}*{-webkit-print-color-adjust:exact;print-color-adjust:exact}}
