/* Full, self-hosted Vietnamese fonts. OFL licenses are bundled in fonts/. */
@font-face{font-family:'Be Vietnam Pro';src:url('/fonts/BeVietnamPro-Regular.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:'Be Vietnam Pro';src:url('/fonts/BeVietnamPro-Medium.ttf') format('truetype');font-style:normal;font-weight:500;font-display:swap}
@font-face{font-family:'Be Vietnam Pro';src:url('/fonts/BeVietnamPro-SemiBold.ttf') format('truetype');font-style:normal;font-weight:600 900;font-display:swap}
@font-face{font-family:'Lora';src:url('/fonts/Lora.ttf') format('truetype');font-style:normal;font-weight:400 700;font-display:swap}
@font-face{font-family:'Lora';src:url('/fonts/Lora-Italic.ttf') format('truetype');font-style:italic;font-weight:400 700;font-display:swap}
:root{--sans:'Be Vietnam Pro',Arial,sans-serif;--serif:'Lora',Georgia,serif;--muted:#677463;--rose:#a25f68}
body{font-size:14px;line-height:1.75}h1,h2{letter-spacing:0;line-height:1.4}h3{line-height:1.6}.eyebrow{font-size:10px;letter-spacing:1.5px;line-height:1.9}.sidebar-label{font-size:9px;letter-spacing:1px}.brand{gap:11px;font-size:29px;line-height:1.4}.brand small{font-size:7px;letter-spacing:1.4px}.brand-mark.ht-mark{font:500 19px/1 var(--serif);width:51px;height:56px;border-radius:26px 26px 9px 9px;letter-spacing:-1px;background:#f7f6ef;box-shadow:inset 0 0 0 4px #f0f1e9}.ht-mark span{position:static;font:italic 14px/1 var(--serif);background:transparent;color:#ad825b;align-self:center;margin:7px 0 0}.sidebar-bottom p{font-size:18px}.tiny{font-size:11px}.stat-label{font-size:12px}.stat-note{font-size:11px;line-height:1.65}.stat-value{font-size:27px;letter-spacing:0;line-height:1.4}.panel-heading h2{font-size:21px;line-height:1.5}.task-title{font-size:13px;line-height:1.8}.task-meta{font-size:11px}.task-row{padding:14px 0}.panel-subtitle,.progress-row,.text-button{font-size:11px}.decision-preview strong{font-size:13px}.decision-preview small{font-size:11px}.detail-label{font-size:11px}.tag{font-size:11px}.pill{font-size:10px}.journey-step strong{font-size:12px;line-height:1.7}.journey-step small{font-size:10px}.notice{font-size:12px}.message-text{font-size:14px}.message-meta{font-size:11px}label{font-size:12px}.page-heading p{font-size:13px}.page-heading h1{font-size:33px}.button{font-size:12px}.small{font-size:11px}.nav-link{font-size:12px}.note-panel p{font-size:18px;line-height:1.8}.note-panel .eyebrow{font-size:10px;letter-spacing:1.3px}.login-title{font-size:100px!important;line-height:1.4;letter-spacing:3px;margin-bottom:5px}.login-title span{font-style:italic;color:var(--rose)}.login-card .login-subtitle{font:italic 21px/1.6 var(--serif);color:var(--green);margin-bottom:25px}
.hero{background:radial-gradient(ellipse at 100% 0,#ead7c84d,transparent 55%),radial-gradient(ellipse at 0 80%,#e0e9d9,transparent 70%),#f0f2e9;min-height:325px;grid-template-columns:1.4fr 1fr}.hero-copy{padding:30px 37px}.hero .eyebrow{margin-bottom:4px;color:#92754c}.hero h1.ht-title{font-size:91px;line-height:1.28;letter-spacing:5px;margin:0 0 2px;color:var(--green)}.ht-title span{font-style:italic;font-size:.8em;color:#af7880;display:inline-block;margin:0 9px}.hero .hero-subtitle{font:italic 23px/1.6 var(--serif);color:#61795b;margin-bottom:15px}.hero-description{font-size:12px;color:#62715b;line-height:1.9;margin-bottom:18px}.hero-art{padding:25px 40px}.arch{transform:rotate(4deg);background:#fffdf5b3;width:206px;height:248px;padding-top:39px;box-shadow:0 0 0 8px #edf0e7,0 0 0 9px #ccd5be,13px 14px 28px #50644113}.arch-caption{line-height:1.6!important}.arch .big-year{font-family:var(--serif);font-size:45px;margin:14px 0}.arch .arch-note{font-size:9px;line-height:1.8}.seal{position:absolute;bottom:13px;right:3px;width:55px;height:55px;border-radius:50%;display:grid;place-items:center;background:#b9787b;color:#ffede7;font:italic 16px var(--serif);border:4px double #d8a9a3;box-shadow:2px 4px 10px #6c3e3a25;transform:rotate(-12deg)}.hero-art .botanical{height:235px;width:165px;right:0;bottom:-15px;color:#8eaa7d;z-index:2;pointer-events:none}.hero-heart{position:absolute;top:20px;right:26px;border:1px solid #cecec0;background:#fafbf37a;border-radius:50%;width:34px;height:34px;color:#ab7a7e;font-size:19px;z-index:3}.hero-heart:hover{background:#f7e4e2}
.moments-section{margin:34px 0 30px}.moments-title{position:relative;margin-bottom:19px;display:flex;flex-wrap:wrap;column-gap:16px;align-items:center}.moments-title>.eyebrow{width:100%;margin-bottom:5px;color:#9c7d55}.moments-title h2{font-size:25px;margin:0}.handdrawn-spark{font-size:35px;color:#b29568;line-height:1}.moments-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.love-card,.date-card{border-radius:12px;border:1px solid #e5dcd0;padding:23px;position:relative;overflow:hidden;display:flex;flex-direction:column;min-width:0}.love-card{background:linear-gradient(125deg,#f8eee8,#fcf4ee)}.date-card{background:#f0f1e7;border-color:#dde2d1}.moment-top{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:19px}.pill.rose{background:#f1dcd8;color:#965d62;font-size:9px;letter-spacing:.8px}.moment-top .pill{letter-spacing:.8px;font-size:9px}.letter-count,.date-duration{font-size:10px;color:#8b7a6b}.love-content{display:flex;gap:20px;align-items:center;flex:1}.love-content>div:last-child{flex:1;min-width:0}.love-content h3,.date-card h3{font:500 21px/1.6 var(--serif);margin:0 0 8px}.love-preview{font-size:12px;line-height:1.85;color:#866c66;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere;white-space:pre-wrap;margin-bottom:7px}.love-author{font-size:10px;color:#9f7c6b}.moment-actions{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:22px;flex-wrap:wrap}.rose-button{background:#b57c7e;color:white;border-color:#b57c7e}.rose-button:hover{background:#985f66}.envelope{position:relative;width:100px;height:73px;flex-shrink:0;background:#e6b5ac;border-radius:3px;box-shadow:0 7px 13px #b78c7920;transform:rotate(-6deg);margin-top:25px}.envelope:before{content:'';position:absolute;inset:0;clip-path:polygon(0 0,50% 62%,100% 0,100% 100%,0 100%);background:#ebc5ba;z-index:2;border-radius:3px}.envelope:after{content:'';position:absolute;inset:0;clip-path:polygon(0 100%,50% 43%,100% 100%);background:#f0d2c6;z-index:3}.envelope-paper{position:absolute;background:#fff9ed;bottom:17px;left:10px;width:80px;height:72px;border:1px solid #dfd0b9;display:grid;place-content:center;grid-auto-flow:column;color:#9e7367;font:20px var(--serif);padding-bottom:15px;transform:rotate(3deg)}.envelope-paper span{color:#b98b80;font-style:italic}.envelope-heart{position:absolute;left:39px;top:34px;color:#b2757a;font-size:23px;z-index:4}.date-card #date-idea{position:relative;flex:1;padding-right:35px}.date-symbol{position:absolute;right:0;top:-6px;font-size:35px;color:#9ca67e;line-height:1.4}.date-card p{font-size:12px;line-height:1.85;color:#707d62;margin:0}.date-card .button{background:#fafcf4;border-color:#ccd6bd}.footer-heart{border:0;background:transparent;color:#a9767d;font-size:24px;padding:0 8px;line-height:1;cursor:pointer}.celebration{position:fixed;inset:0;z-index:100;pointer-events:none;overflow:hidden}.celebration span{position:absolute;bottom:15%;line-height:1}
@media(hover:hover) and (prefers-reduced-motion:no-preference){.love-card:hover .envelope-paper{transform:translateY(-8px) rotate(1deg);transition:transform .3s}.hero-heart:hover{transform:scale(1.12)}.love-card,.date-card{transition:box-shadow .2s,transform .2s}.love-card:hover,.date-card:hover{box-shadow:0 8px 25px #243e3110;transform:translateY(-2px)}}
@media(max-width:1180px){.hero-copy{padding:28px}.hero h1.ht-title{font-size:77px}.hero .hero-subtitle{font-size:20px}.hero-art{padding:25px}.arch{width:168px;height:222px;padding:33px 10px 10px}.arch .big-year{font-size:38px}.arch .arch-note{font-size:8px;letter-spacing:1px}.moments-grid{gap:15px}.love-card,.date-card{padding:19px}.love-content{gap:13px}.envelope{width:80px;height:60px}.envelope-paper{width:64px;left:8px;height:60px;bottom:15px;font-size:18px}.envelope-heart{left:30px;top:25px}.love-content h3,.date-card h3{font-size:19px}.stat-value{font-size:24px}.brand{font-size:25px}.brand small{font-size:6px;letter-spacing:1px}.brand-mark.ht-mark{width:46px;height:51px}.panel-heading{flex-wrap:wrap}}
@media(max-width:900px){.brand{font-size:27px;margin-bottom:14px}.brand small{font-size:7px}.brand-mark.ht-mark{width:42px;height:45px;font-size:17px}.hero h1.ht-title{font-size:79px}.nav-link{font-size:12px;padding:9px 12px}.sidebar{padding-top:18px}.topbar{height:66px}.moment-actions .button,.moment-actions .text-button{font-size:11px}.hero-art{min-width:185px}.moments-title h2{font-size:23px}}
@media(max-width:640px){main{padding-top:18px}.hero{min-height:0;display:block}.hero-copy{padding:25px 23px}.hero h1.ht-title{font-size:77px;letter-spacing:3px;line-height:1.4}.hero .eyebrow{font-size:9px;max-width:230px;line-height:1.9}.hero .hero-subtitle{font-size:20px;line-height:1.7;max-width:250px}.hero-description{font-size:12px}.hero-tags{gap:7px}.tag{font-size:10px}.hero-art{display:none}.hero-heart{right:17px;top:21px}.stat{padding:14px}.stat-value{font-size:24px}.stat-note{font-size:10px}.stat-label{font-size:11px}.moments-section{margin:26px 0}.moments-title h2{font-size:22px}.moments-title>.eyebrow{font-size:9px;letter-spacing:1px}.handdrawn-spark{display:none}.moments-grid{grid-template-columns:1fr;gap:14px}.love-card,.date-card{padding:20px}.love-content{gap:18px}.love-content h3,.date-card h3{font-size:21px}.envelope{width:85px;height:64px}.envelope-paper{left:8px;width:69px}.envelope-heart{left:33px}.moment-actions{margin-top:19px}.panel-heading h2{font-size:21px}.text-button{font-size:11px}.page-heading{flex-wrap:wrap}.page-heading h1{font-size:29px}.page-heading p{font-size:12px}.task-title{font-size:13px}.task-meta{font-size:10px}.notice{font-size:11px}.detail-list{gap:16px}.detail-value{font-size:12px}.modal-head h2{font-size:24px}.login-title{font-size:94px!important}input:not([type=checkbox]),select,textarea{font-size:16px}.topic-list{max-width:100%}}
