/* Counter, day finder, and the original wordmark. */
.wordmark{font:italic 30px Georgia,'Times New Roman',serif;letter-spacing:-1.5px}
.wordmark span{font-weight:400}
.day-count h1{font-size:clamp(26px,4vw,38px);letter-spacing:5px;font-weight:400;margin:0 0 17px}
.day-label{font-size:15px;letter-spacing:5px;margin-left:5px;margin-bottom:12px}
.day-number{gap:18px}
.day-number strong{display:flex;gap:.035em;letter-spacing:0;perspective:900px}
.flip-digit{position:relative;display:inline-block;width:.64em;height:1.13em;line-height:1.13;letter-spacing:-.04em;border-radius:8px;background:#f8ecd5;box-shadow:0 2px 0 #dcbf9735,inset 0 0 0 1px #e9d4b43d;perspective:500px}
.flip-digit:after{content:'';position:absolute;left:0;right:0;top:50%;height:1px;background:#cba77d2e;pointer-events:none;z-index:3}
.digit-value,.flip-leaf{display:block;text-align:center;width:100%;height:100%;font:inherit;line-height:1.13}
.flip-leaf{position:absolute;inset:0;opacity:0;background:#f8ecd5;border-radius:8px;backface-visibility:hidden;transform-origin:center center}
.flipping .flip-leaf{animation:digit-flip 115ms ease-in forwards}
.official-twinkle-logo{display:block;width:min(100%,340px);height:auto;margin:2px 0 25px;overflow:hidden;mix-blend-mode:multiply}
.search-slide{display:flex;align-items:center;justify-content:center;padding:35px 8%}
.day-search{width:min(620px,100%)}
.day-search h2{font-size:clamp(25px,3.5vw,35px);font-weight:400;letter-spacing:2px;margin-bottom:30px}
.day-search-field{display:flex;align-items:center;gap:10px;border-bottom:1px solid #d3ae81;padding:0 2px 12px;margin-bottom:24px}
.day-search-field input{background:none;border:0;border-radius:0;font-size:14px;padding:8px 0;min-width:0;width:100%;color:var(--ink);outline-offset:2px}
.day-search-field input::placeholder{color:#b39a7e}
.day-search-field>span:last-child{font-size:25px;color:#b79367}
.search-results{max-height:46dvh;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#e0c59c transparent}
.day-result{width:100%;border:0;border-bottom:1px solid var(--line);padding:15px 5px;display:flex;align-items:center;justify-content:space-between;gap:20px;text-align:left;background:transparent;transition:background .15s}
.day-result:hover{background:#f6e8ce}
.day-result>span:first-child{display:flex;align-items:center;gap:25px;min-width:0}
.result-date{color:#9c7d57;font-size:11px;letter-spacing:1px;flex-shrink:0}
.result-title{font-size:14px}
.result-arrow{color:#b9956a;font-size:16px;flex-shrink:0}
.search-empty{font-size:13px;color:#ac9273;text-align:center;padding:25px 0}
@keyframes digit-flip{0%{opacity:1;transform:rotateX(0);filter:brightness(1)}80%{opacity:1;filter:brightness(.92)}100%{opacity:0;transform:rotateX(-90deg);filter:brightness(.85)}}
@media(max-width:760px){.wordmark{font-size:28px}}
@media(max-width:520px){
  .wordmark{font-size:27px}.day-count h1{font-size:27px;letter-spacing:4px;margin-bottom:18px}.day-label{font-size:13px;letter-spacing:4px}
  .day-number strong{font-size:clamp(100px,28vw,150px)}.day-number{gap:12px}.day-number>span{font-size:17px}
  .flip-digit,.flip-leaf{border-radius:6px}.search-slide{padding:28px 25px 38px}.day-search h2{font-size:25px;letter-spacing:1px;margin-bottom:24px}
  .day-result{padding:13px 3px}.day-result>span:first-child{gap:15px}.result-date{font-size:10px;letter-spacing:.5px}.result-title{font-size:12px}
  .search-results{max-height:49dvh}.official-twinkle-logo{margin:8px 0 22px;width:100%}
}
@media(max-height:560px){
  .day-count h1{font-size:23px;margin-bottom:6px}.day-label{font-size:11px;margin-bottom:3px}.day-number strong{font-size:90px}
  .search-slide{padding:20px 9%}.day-search h2{font-size:24px;margin-bottom:15px}.day-search-field{margin-bottom:10px;padding-bottom:3px}
  .day-result{padding:8px 5px}.search-results{max-height:42dvh}
}
@media(prefers-reduced-motion:reduce){.flipping .flip-leaf{animation:none;opacity:0}}

/* Fonts are bundled with the site; no external font requests at runtime. */
:root{--hand-font:'Microsoft YaHei','PingFang SC','Heiti SC',Arial,sans-serif}
body{font-family:var(--hand-font)}
.site-header nav a,.collection-label{font-family:Georgia,'Times New Roman',serif;font-style:italic}
.site-header nav{font-size:15px;gap:35px}
.day-count h1{display:flex;align-items:center;justify-content:center;gap:15px;margin-bottom:14px;letter-spacing:0}
.person-name{font-family:var(--hand-font);font-size:clamp(48px,6vw,72px);font-weight:400;line-height:1.35;color:#a76d40;letter-spacing:2px}
.name-join{font:400 29px/1.5 var(--hand-font);color:#9a8065;margin:0 2px}
.day-label{font-family:var(--hand-font);font-size:23px;letter-spacing:6px;margin:0 0 14px 6px}
.day-number>span{font:400 23px var(--hand-font)}
.entry-date,.visual-caption,.result-date,.upcoming-date,.slide-position{font-family:var(--font)}
.entry-copy h2{font-size:clamp(29px,3.5vw,43px);font-weight:400}
.entry-open{font-size:17px}
.entry-place,.entry-tag{font-size:15px}
.detail-description{font-size:18px;line-height:2}
.event-dialog h2,.page-heading h1,.calendar-content h2{font-family:var(--hand-font);font-weight:400}

/* Matte paper, a binding edge, and a sheet that falls away from the top. */
.flip-digit{background:#faeed8;border-radius:5px;box-shadow:0 3px 0 #e7d4b7,0 8px 19px #96724612,inset 0 0 0 1px #ead6b445;perspective:900px}
.flip-digit:before{content:'';position:absolute;top:-7px;left:0;right:0;height:17px;z-index:4;pointer-events:none;background:radial-gradient(circle at 24% 50%,#b9a181 0 1.8px,#fff5e6 2px 3px,transparent 3.5px),radial-gradient(circle at 76% 50%,#b9a181 0 1.8px,#fff5e6 2px 3px,transparent 3.5px)}
.flip-digit:after{display:none}
.flip-leaf{background:linear-gradient(180deg,#fbf0dd,#f8e9d0);border-radius:5px;transform-origin:50% 0%;box-shadow:0 6px 14px #86603a14}
.flipping .flip-leaf{animation:calendar-sheet 430ms cubic-bezier(.25,.55,.3,1) forwards;will-change:transform,opacity}
@keyframes calendar-sheet{0%{opacity:1;transform:rotateX(0) translateY(0);filter:brightness(1)}35%{opacity:1;transform:rotateX(-28deg) translateY(1%);filter:brightness(.98)}75%{opacity:.9;transform:rotateX(-72deg) translateY(12%);filter:brightness(.92)}100%{opacity:0;transform:rotateX(-118deg) translateY(40%);filter:brightness(.88)}}
.home-page.is-turning{scroll-snap-type:none!important}

/* A quiet search page. Results float below without shifting its center. */
.day-search{position:relative;width:min(510px,100%);text-align:center;transform:translateY(-12px)}
.day-search h2{font:400 clamp(29px,4vw,39px)/1.65 var(--hand-font);letter-spacing:2px;margin:0 0 27px}
.day-search-field{display:flex;align-items:center;margin:0 auto;padding:0 18px;width:min(380px,100%);height:54px;border:1px solid #ddc7a7;border-radius:30px;background:#fffaf03d;transition:border-color .25s,background .25s,box-shadow .25s}
.day-search-field:focus-within{border-color:#bb966d;background:#fffaf0;box-shadow:0 5px 20px #c3a27a0c}
.day-search-field input{font:16px var(--hand-font);height:100%;width:100%;padding:0;border:0;outline:none;background:none;letter-spacing:.6px;text-align:center}
.day-search-field input:focus-visible{outline:none}
.day-search-field input::placeholder{font-size:14px;color:#b39c7f}
.search-icon{width:19px;height:19px;flex-shrink:0;stroke:#b9a081;stroke-width:1.4;fill:none;pointer-events:none}
.search-panel{position:absolute;top:calc(100% + 18px);left:50%;transform:translateX(-50%);width:min(475px,100%);text-align:left}
.search-results{max-height:min(30dvh,260px);overflow:auto;background:#fcf6eae8;backdrop-filter:blur(12px);border-radius:10px;box-shadow:0 8px 28px #8b67380a}
.day-result{padding:13px 15px}
.day-result:last-child{border-bottom:0}
.result-title{font-size:16px}
.search-empty{padding:15px;font-size:15px}

/* The top corner is fixed first; the rest of the photograph settles flat. */
.entry-visual{position:relative;transform:none;transform-origin:8% 3%;overflow:visible;transition:box-shadow .25s}
.timeline-entry:not(.is-landed) .entry-visual{opacity:0}
.entry-visual:hover{transform:none}
.entry-visual:before{content:'';position:absolute;z-index:2;top:2px;left:-8px;width:65px;height:22px;pointer-events:none;transform:rotate(-34deg);background:linear-gradient(105deg,#e5cda19e,#f2dfb9ba,#e1c79c9e);border:1px solid #d9bc8738;box-shadow:0 1px 2px #8e6a3510}
.is-landed .entry-visual{animation:photo-press 1050ms cubic-bezier(.18,.65,.25,1) both}
.is-landed .entry-visual:before{animation:tape-fix 700ms ease-out both}
@keyframes photo-press{0%{opacity:.08;transform:perspective(1100px) rotateY(-19deg) rotateX(10deg) rotateZ(-2deg);box-shadow:20px 28px 38px #72542d20}22%{opacity:1}68%{transform:perspective(1100px) rotateY(-3deg) rotateX(2deg) rotateZ(-.3deg);box-shadow:5px 10px 24px #72542d13}100%{opacity:1;transform:perspective(1100px) rotateY(0) rotateX(0) rotateZ(0);box-shadow:0 7px 24px #72542d0d}}
@keyframes tape-fix{0%{opacity:0;transform:translateY(-7px) rotate(-34deg)}32%{opacity:.8;transform:translateY(0) rotate(-34deg)}100%{opacity:1;transform:translateY(0) rotate(-34deg)}}
@media(max-width:520px){
  .site-header nav{font-size:13px;gap:23px}.person-name{font-size:49px;letter-spacing:1px}.name-join{font-size:24px}.day-count h1{gap:9px;margin-bottom:13px}.day-label{font-size:21px;margin-bottom:15px}.day-number>span{font-size:22px}
  .day-search{width:100%;transform:translateY(-25px)}.day-search h2{font-size:30px;letter-spacing:1px;margin-bottom:25px}.day-search-field{width:min(305px,100%);height:50px}
  .day-search-field input{font-size:16px}.search-panel{width:100%}.search-results{max-height:30dvh}.result-title{font-size:14px}.day-result{padding:12px 10px}.day-result>span:first-child{gap:12px}
  .entry-copy h2{font-size:29px}.entry-open{font-size:15px}.detail-description{font-size:17px}.entry-visual:before{width:55px;height:19px;left:-5px}
}
@media(max-height:560px){
  .person-name{font-size:38px}.name-join{font-size:22px}.day-count h1{margin-bottom:2px}.day-label{font-size:17px;margin-bottom:5px}.day-search h2{font-size:29px;margin-bottom:16px}.search-results{max-height:28dvh}.day-result{padding:7px 12px}
}
@media(prefers-reduced-motion:reduce){
  .flipping .flip-leaf{animation:none;opacity:0}.is-landed .entry-visual,.is-landed .entry-visual:before{animation:none;opacity:1;transform:none}
  .entry-visual:before{transform:rotate(-34deg)!important}
  .timeline-entry:not(.is-landed) .entry-visual{opacity:1}
}

/* Requested editorial simplification. */
#page-wishes .wishlist-heading{padding:65px 0 45px;text-align:center}
#page-wishes .wishlist-heading h1{font:italic clamp(44px,7vw,68px)/1.25 Georgia,'Times New Roman',serif;letter-spacing:-1.8px;margin:0}
.wish-list{margin-left:auto;margin-right:auto}
.stars-copy{display:flex;align-items:center;justify-content:center;padding:0}
.stars-copy .official-twinkle-logo{width:min(100%,355px);margin:0}

/* There is no tape or other decoration on the photograph. */
.entry-visual:before,.entry-visual:after{content:none!important;display:none!important;animation:none!important}
.entry-visual{transform-origin:3% 2%;transition:box-shadow .3s}
.is-landed .entry-visual{animation:photo-settle 1200ms cubic-bezier(.16,.7,.22,1) both}
@keyframes photo-settle{0%{opacity:0;transform:perspective(1200px) rotateY(-8deg) rotateX(4deg);box-shadow:12px 22px 30px #72542d18}18%{opacity:1}70%{opacity:1;transform:perspective(1200px) rotateY(-.8deg) rotateX(.4deg);box-shadow:2px 7px 22px #72542d0c}100%{opacity:1;transform:perspective(1200px) rotateY(0) rotateX(0);box-shadow:0 6px 22px #72542d0b}}

/* A paper leaf is drawn as a continuous bend rather than a rigid rectangle. */
.curled-leaf{background:none!important;box-shadow:none!important;border-radius:0;transform:none!important;transform-style:preserve-3d;pointer-events:none;animation:none!important;will-change:opacity}
.paper-strip{position:absolute;left:0;width:100%;overflow:hidden;transform-origin:50% 0%;backface-visibility:visible;will-change:transform;background:#fbefdc}
.paper-strip:first-child{border-radius:5px 5px 0 0}.paper-strip:last-child{border-radius:0 0 5px 5px}
.paper-text{position:absolute;left:0;width:100%;display:block;text-align:center;font:inherit;letter-spacing:inherit;pointer-events:none}
@media(max-width:520px){#page-wishes .wishlist-heading{padding:48px 0 35px}#page-wishes .wishlist-heading h1{font-size:49px}.stars-copy .official-twinkle-logo{width:100%}}
@media(prefers-reduced-motion:reduce){.is-landed .entry-visual{animation:none;transform:none;opacity:1}.curled-leaf{display:none}}

/* Final Chinese font choice: clean, locally available sans serif. */
:root{--hand-font:'Microsoft YaHei','PingFang SC','Heiti SC','SimHei',Arial,sans-serif}
body{font-family:var(--hand-font)}
.person-name{font-family:var(--hand-font);font-size:clamp(60px,7vw,88px);font-weight:700;letter-spacing:3px;color:#bd8d52;-webkit-text-stroke:1px #8e6039;paint-order:stroke fill;text-shadow:0 2px 0 #bd8e5415}
.name-join{font:400 26px/1.5 var(--hand-font);color:#9a8065}
.day-label{font:400 20px/1.6 var(--hand-font);letter-spacing:5px}
.day-number>span{font:400 21px var(--hand-font)}
.entry-copy h2{font-size:clamp(26px,3.3vw,39px);font-weight:400}
.entry-open,.entry-place{font-size:14px}.entry-tag{font-size:11px}
.detail-description{font-size:15px;line-height:2}
.day-search h2{font-size:clamp(26px,3.6vw,34px)}
.day-search-field input{font-size:15px}.result-title{font-size:14px}
@media(max-width:520px){.person-name{font-size:53px;letter-spacing:2px;-webkit-text-stroke:1px #9c683d}.name-join{font-size:24px}.day-label{font-size:18px}.day-count h1{gap:10px}.entry-copy h2{font-size:25px}.entry-open{font-size:12px}.detail-description{font-size:15px}.day-search h2{font-size:27px}.result-title{font-size:12px}}
@media(max-height:560px){.person-name{font-size:39px}.name-join{font-size:21px}.day-label{font-size:15px}}
.curl-surface{position:absolute;display:block;pointer-events:none;filter:drop-shadow(2px 7px 5px #73512c24)}
@media(max-width:520px){.day-number strong{font-size:clamp(74px,var(--count-vw,28vw),150px)}}

/* A short calendar gesture: intact paper, top binding, a diagonal falling edge. */
.calendar-leaf{position:absolute;inset:0;display:block;text-align:center;font:inherit;line-height:1.13;letter-spacing:inherit;opacity:0;pointer-events:none;transform-origin:14% 0%;backface-visibility:hidden;z-index:2;border-radius:5px;background:linear-gradient(145deg,#fcf2df 20%,#f8e9cd 85%,#ead5b0);box-shadow:0 5px 12px #73512c22;will-change:transform,opacity}
.calendar-leaf:after{content:'';position:absolute;right:0;bottom:0;width:18%;height:16%;border-radius:0 0 5px 0;background:linear-gradient(135deg,transparent 45%,#d5b58338 65%,#fff6e5 67%);pointer-events:none}
.is-counting .digit-value{filter:blur(.2px)}
.entry-visual{display:block}.entry-open{display:inline-flex;align-items:center;gap:18px}
.day-page{max-width:1180px;margin:0 auto;padding:38px 52px 100px;min-height:calc(100dvh - var(--header-height))}
.day-back{display:inline-flex;color:#9b7c59;font-size:13px;letter-spacing:.5px;margin-bottom:54px;padding:8px 0}
.day-back:hover{color:#a26532}
.day-heading{max-width:850px;margin:0 auto 40px;text-align:left}
.day-date{font:12px/1.8 var(--font);letter-spacing:2px;color:#ab8b65;margin:0 0 14px}
.day-title{font:400 clamp(30px,4vw,47px)/1.5 var(--hand-font);letter-spacing:1px;margin:0;outline:none}
.day-story{max-width:850px;margin:0 auto 78px;padding-bottom:46px;border-bottom:1px solid #dfcdb350}
.day-paragraph{font-size:16px;line-height:2.2;white-space:pre-wrap;overflow-wrap:anywhere;margin:0 0 24px;color:#725e4b}
.day-paragraph:last-child{margin-bottom:0}
.day-photos{margin:0 auto;display:flex;flex-direction:column;gap:88px}
.day-photo{margin:0;display:grid;grid-template-columns:minmax(0,2.1fr) minmax(160px,.85fr);gap:clamp(28px,5vw,68px);align-items:start}
.day-photo-link{display:block;min-width:0;background:#f7ecd92b}
.day-photo-link img{display:block;width:100%;height:auto;object-fit:contain;border-radius:2px;box-shadow:0 9px 32px #8861360d}
.day-photo-caption{padding-top:22px;min-width:0}
.photo-caption-title{font:400 20px/1.8 var(--hand-font);margin:0 0 18px;overflow-wrap:anywhere}
.photo-caption-text{font-size:14px;line-height:2;white-space:pre-wrap;overflow-wrap:anywhere;margin:0 0 25px;color:#8b735b}
.photo-footer{display:flex;flex-direction:column;gap:16px;font-size:11px;color:#ad9272}
.photo-date{letter-spacing:1px;min-width:0;overflow-wrap:anywhere}.photo-original{font-size:12px;color:#a07648;width:fit-content;padding-bottom:3px;border-bottom:1px solid #dbc3a1;flex-shrink:0;white-space:nowrap}
.day-photo.has-no-caption{display:block;max-width:930px;width:100%;margin:0 auto}
.has-no-caption .day-photo-caption{padding:15px 0 0}.has-no-caption .photo-footer{flex-direction:row;justify-content:space-between;align-items:center;gap:12px}
.day-empty{color:#b39a7d;font-size:14px;padding:35px 0;text-align:center}
@media(max-width:700px){.day-page{padding:22px 24px 65px}.day-back{margin-bottom:34px}.day-heading{margin-bottom:28px}.day-title{font-size:30px}.day-date{font-size:11px;letter-spacing:1px}.day-story{margin-bottom:45px;padding-bottom:30px}.day-paragraph{font-size:15px;line-height:2.05}.day-photos{gap:48px}.day-photo{grid-template-columns:minmax(0,1fr);gap:0}.day-photo-caption{padding:17px 0 0}.photo-caption-title{font-size:17px;margin-bottom:9px}.photo-caption-text{font-size:14px;margin-bottom:14px}.photo-footer{flex-direction:row;justify-content:space-between;align-items:center;gap:10px;font-size:10px}.photo-original{font-size:11px}}
@media(prefers-reduced-motion:reduce){.calendar-leaf{display:none}.is-counting .digit-value{filter:none}}
