@charset "UTF-8";
:root{--cream:#f8f4ec;--paper:#fffdf8;--red:#a72d3d;--red-dark:#802030;--ink:#352b28;--muted:#8a7a70;--line:#ded6ca;--serif:"Georgia","STSong","SimSun",serif;--sans:"Microsoft YaHei","PingFang SC",sans-serif;--kai:"STKaiti","KaiTi",serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--sans);font-size:14px;line-height:1.8}button,input,textarea,select{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:wait;opacity:.6}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}button{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--red);outline-offset:4px}::selection{background:#efd1ce}h1,h2,h3,p{margin-top:0}button{border:0}button svg,a svg{width:18px;height:18px;flex-shrink:0}input[type="range"]{accent-color:var(--red);width:100%;padding:0}input[type="checkbox"]{accent-color:var(--red)}
.site-header{height:100px;max-width:1440px;margin:auto;padding:0 5.5%;display:flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid var(--line)}.brand{font:italic 31px var(--serif);white-space:nowrap;letter-spacing:-1.3px}.brand-dot{color:var(--red)}.nav{display:flex;align-items:center;gap:36px}.nav a{position:relative;color:#7b6a61;font-size:13px;padding:8px 0}.nav a.active{color:var(--red)}.nav a.active:after{content:"";position:absolute;bottom:0;left:calc(50% - 2px);width:4px;height:4px;background:var(--red);border-radius:50%}.header-actions{display:flex;align-items:center;gap:13px}.mode-button{background:transparent;display:flex;align-items:center;gap:7px;color:var(--muted);font-size:12px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:44px;padding:10px 22px;border:1px solid var(--red);background:var(--red);color:var(--paper);border-radius:3px;font-size:13px;transition:background .2s,transform .2s}.btn:hover{background:var(--red-dark);transform:translateY(-1px)}.btn.secondary{background:transparent;color:var(--red);border-color:#d6b8b5}.btn.secondary:hover{background:#f1e4dd}.btn.small{min-height:36px;padding:6px 12px;font-size:12px}.btn.neutral{background:var(--paper);color:var(--ink);border-color:var(--line)}.icon-btn{background:transparent;width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;flex-shrink:0}.icon-btn:hover{background:#ede4d9}.text-link{display:inline-flex;align-items:center;gap:12px;background:none;color:var(--red);padding:5px 0;border-bottom:1px solid #cda9a3;font-size:13px}.eyebrow{font:11px var(--sans);text-transform:uppercase;letter-spacing:3px;color:var(--red);display:flex;align-items:center;gap:12px}.eyebrow:before{content:"";width:25px;height:1px;background:currentColor}.page{max-width:1280px;margin:auto;padding:64px 40px 80px}.hero{max-width:1440px;margin:auto;padding:65px 5.5% 45px;display:grid;grid-template-columns:44% 56%;min-height:675px;position:relative}.hero-copy{padding:21px 0 50px;position:relative;z-index:2}.hero h1{font-family:var(--serif);font-size:clamp(60px,6.5vw,96px);line-height:1.15;font-weight:400;letter-spacing:-5px;color:var(--red);margin:27px 0 24px}.hero h1 .zh-line{font-size:.64em;letter-spacing:4px;display:block;line-height:1.55;color:var(--ink)}.hero h1 em{font-weight:400}.hero-description{color:var(--muted);font-size:13px;line-height:2.15;letter-spacing:1px;margin:0 0 29px}.hero-actions{display:flex;align-items:center;gap:24px;flex-wrap:wrap}.hero-footnote{font:italic 12px var(--serif);color:var(--muted);margin-top:43px;display:flex;align-items:center;gap:13px}.hero-footnote:before{content:"";height:1px;width:37px;background:var(--line)}.hero-art{position:relative;min-height:530px;margin-left:10px}.hero-art:before{content:"";position:absolute;border:1px solid #e1d6c6;border-radius:50%;width:78%;height:92%;top:0;left:12%;transform:rotate(25deg)}.main-photo{position:absolute;top:12px;left:12%;width:63%;padding:13px 13px 40px;background:var(--paper);transform:rotate(-5deg);box-shadow:0 18px 44px #62452d20;z-index:1}.main-photo img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:50% 38%}.photo-caption{font:italic 13px var(--serif);color:var(--muted);position:absolute;bottom:12px;left:18px}.small-photo{position:absolute;right:0;bottom:28px;width:45%;padding:10px 10px 36px;background:var(--paper);transform:rotate(9deg);box-shadow:0 12px 35px #62452d29;z-index:2}.small-photo img{aspect-ratio:1;object-fit:cover;object-position:center 30%}.date-stamp{position:absolute;right:3%;top:16px;z-index:3;border:1px solid #be8e83;color:var(--red);width:91px;height:91px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;transform:rotate(13deg);background:#f8f4eceb;font:10px var(--sans);letter-spacing:2px}.date-stamp strong{font:28px var(--serif);letter-spacing:1px}.handwritten{font-family:var(--kai);font-size:20px;color:var(--red);position:absolute;bottom:1px;left:4%;transform:rotate(-7deg);z-index:3}.hero-spark{position:absolute;color:var(--red);font-size:60px;line-height:1;right:1%;top:155px;font-weight:200}.issue-strip{max-width:1280px;margin:0 auto;padding:19px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:20px;color:var(--muted);font-size:11px;letter-spacing:2px}.issue-strip .domain{color:var(--red);letter-spacing:2px}.section{max-width:1280px;margin:0 auto;padding:75px 0}.section-top{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:30px}.section h2{font:400 36px/1.4 var(--serif);letter-spacing:2px;margin:10px 0 0}.section h2 em{font-size:20px;color:var(--red);letter-spacing:0;margin-left:14px}.birthday-card{display:grid;grid-template-columns:50% 50%;background:#eee5d8;min-height:395px;overflow:hidden}.birthday-visual{position:relative;overflow:hidden;min-height:395px}.birthday-visual img{height:100%;width:100%;object-fit:cover}.birthday-visual:after{content:"NOV. 06";position:absolute;left:25px;bottom:5px;font:italic 64px var(--serif);color:#fffaf0}.birthday-card-copy{padding:42px 45px;position:relative;display:flex;flex-direction:column;align-items:start;justify-content:center}.issue-number{font:11px var(--sans);letter-spacing:3px;color:var(--red);margin-bottom:23px}.birthday-card h3{font:400 36px/1.55 var(--serif);letter-spacing:2px;margin:0 0 18px}.birthday-card p{font-size:13px;color:#807165;line-height:2}.birthday-card .text-link{margin-top:8px}.small-note{font-size:11px!important;color:var(--muted);margin-top:16px;margin-bottom:0}.photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px}.memory-card{min-width:0;position:relative;cursor:pointer;text-align:left;background:none;padding:0}.memory-image{position:relative;overflow:hidden;background:#e9e1d6;aspect-ratio:4/3}.memory-image img{height:100%;width:100%;object-fit:cover;transition:transform .5s}.memory-card:hover .memory-image img{transform:scale(1.035)}.memory-card:nth-child(3n + 2) .memory-image{aspect-ratio:4/3}.memory-card .memory-title{font:400 21px var(--serif);margin:13px 0 8px}.memory-meta{font-size:10px;letter-spacing:1.5px;color:var(--muted);display:flex;justify-content:space-between}.memory-tag{position:absolute;left:12px;top:12px;background:#fffaf0eb;color:#806b60;font-size:10px;padding:3px 8px;letter-spacing:1px}.endnote{max-width:1280px;margin:20px auto 0;padding:65px 0;border-top:1px solid var(--line);text-align:center}.endnote p{font:26px var(--kai);letter-spacing:3px;margin-bottom:12px}.endnote span{font:italic 13px var(--serif);color:var(--muted)}.site-footer{max-width:1280px;margin:auto;padding:26px 0 32px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:20px;color:var(--muted);font-size:11px}.site-footer .footer-brand{color:var(--red);font:italic 18px var(--serif)}.page-title{font:400 52px/1.35 var(--serif);letter-spacing:2px;margin:20px 0 15px}.page-intro{color:var(--muted);font-size:13px}.page-head{margin-bottom:44px}.head-row{display:flex;justify-content:space-between;align-items:center;gap:20px}.tabs{display:flex;gap:26px;border-bottom:1px solid var(--line);margin:30px 0}.tab{background:none;padding:13px 0;color:var(--muted);border-bottom:2px solid transparent;font-size:13px}.tab.active{color:var(--red);border-bottom-color:var(--red)}.empty-state{text-align:center;padding:65px 20px;background:#f0e9de;border:1px dashed #d5c6b4;margin:25px 0}.empty-state h3{font:26px var(--serif);margin:12px 0}.empty-state p{color:var(--muted);font-size:13px}.empty-icon{color:var(--red);font:42px var(--serif)}.notice{display:flex;align-items:center;gap:10px;padding:12px 17px;border:1px solid #e5d7c6;background:#f3ede2;color:#8b6a53;font-size:12px;border-radius:3px;margin-bottom:24px}.notice svg{width:17px;min-width:17px;height:17px}.badge{font:10px var(--sans);letter-spacing:1px;color:var(--red);background:#f0ded9;padding:4px 8px;border-radius:2px}.badge.published{background:#e4e9df;color:#53634d}.badge.draft{background:#ede5d7;color:#8b7359}.toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.studio{max-width:1440px;margin:0 auto;padding:30px 4% 65px}.studio-top{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px}.studio-top h1{font:30px var(--serif);margin:0}.save-status{font-size:11px;color:var(--muted);display:flex;align-items:center;gap:6px}.save-dot{height:6px;width:6px;background:#6c8465;border-radius:50%;display:inline-block}.save-status.error{color:#b32235}.save-status.error .save-dot{background:#b32235}.studio-layout{display:grid;grid-template-columns:390px minmax(0,1fr);gap:35px;align-items:start}.editor-panel{border:1px solid var(--line);background:var(--paper);min-width:0}.editor-scroll{padding:24px;max-height:calc(100vh - 240px);overflow:auto;scrollbar-width:thin;scrollbar-color:#d9c8b9 transparent}.editor-panel h2{font-size:15px;font-weight:400;margin:0 0 18px}.editor-section{padding:22px 0;border-bottom:1px solid #ebe4da}.editor-section:first-child{padding-top:0}.editor-section:last-child{border:0}.field{display:block;font-size:12px;color:#7f6d60;margin-bottom:16px}.field>span{display:block;margin-bottom:6px}.field input:not([type="color"]):not([type="range"]):not([type="checkbox"]),.field textarea,.field select{width:100%;border:1px solid #ddd3c5;border-radius:3px;background:#fffefb;padding:9px 11px;color:var(--ink);outline-offset:2px}.field textarea{resize:vertical;min-height:90px;line-height:1.9}.field textarea.poem-input{font-family:var(--kai);font-size:18px;min-height:165px}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.field input[type="color"]{width:100%;height:36px;padding:3px;border:1px solid var(--line);background:var(--paper);border-radius:3px;cursor:pointer}.field .range-value{float:right;color:var(--red);font-variant-numeric:tabular-nums}.field-hint{font-size:11px;color:var(--muted);line-height:1.7;margin:0 0 13px}.editor-section summary{cursor:pointer;font-size:13px;margin:0 0 18px;color:var(--ink)}.selected-photo-list{display:flex;gap:8px;overflow:auto;padding:5px 2px 12px;margin-bottom:13px}.selected-thumb{flex:0 0 57px;border:2px solid transparent;border-radius:3px;padding:3px;background:#f1ebe2;position:relative}.selected-thumb.active{border-color:var(--red)}.selected-thumb img{width:47px;height:53px;object-fit:cover}.selected-thumb span{position:absolute;right:3px;bottom:3px;background:var(--paper);font-size:9px;padding:0 4px}.photo-controls{display:flex;justify-content:space-between;gap:6px;margin:10px 0 18px}.photo-controls .btn{padding:6px 9px;font-size:11px}.preview-column{position:sticky;top:24px;min-width:0}.preview-label{font-size:10px;color:var(--muted);letter-spacing:2px;margin:0 0 10px;display:flex;align-items:center;justify-content:space-between}.preview-frame{border:1px solid var(--line);background:var(--paper);padding:32px;max-height:calc(100vh - 220px);overflow:auto;min-height:500px;scrollbar-width:thin}.preview-frame .article{max-width:650px}.preview-frame .article h1{font-size:37px}.preview-frame .chapter{padding:30px 0}.preview-frame .poem-content{font-size:26px}.preview-frame .photo-block{margin:24px 0}.preview-frame .article-photos{margin:0}.preview-frame .letter-content{font-size:14px}.editor-mobile-tabs{display:none}.article{max-width:900px;margin:0 auto}.article-header{text-align:center;padding:55px 15px 45px}.article-header .eyebrow{justify-content:center}.article-header h1{font:400 60px/1.35 var(--serif);letter-spacing:3px;margin:23px 0}.article-subtitle{color:var(--muted);font-size:13px;line-height:2;white-space:pre-wrap;overflow-wrap:anywhere}.article-date{font:italic 13px var(--serif);color:var(--red);margin:22px 0 0}.article-cover{padding:14px;background:var(--paper);border:1px solid var(--line);margin-bottom:45px}.article-cover img{width:100%;max-height:720px;object-fit:contain}.chapter{padding:55px 0;border-bottom:1px solid var(--line)}.chapter-label{display:flex;gap:12px;align-items:center;font-size:10px;letter-spacing:3px;color:var(--red);margin-bottom:22px}.chapter-label span{font:italic 26px var(--serif);letter-spacing:0}.chapter-title{font:400 30px/1.5 var(--serif);letter-spacing:2px;margin-bottom:30px}.prose{white-space:pre-wrap;overflow-wrap:anywhere;line-height:2.3;font-size:16px}.placeholder-text{color:#a69787;font-size:13px;line-height:2;text-align:center;border:1px dashed #ddd1bf;padding:28px;white-space:pre-wrap}.poem-page{text-align:center;padding:35px 15px;background:#fffaf1;border-top:2px solid var(--red);position:relative}.poem-page:after{content:"诗";display:block;border:1px solid var(--red);color:var(--red);width:27px;line-height:27px;margin:30px auto 0;font-family:var(--kai);font-size:16px}.poem-title{font:400 28px var(--kai);margin-bottom:30px;letter-spacing:4px}.poem-content{font-family:var(--kai);font-size:30px;line-height:2.15;white-space:pre-wrap;overflow-wrap:anywhere;letter-spacing:2px}.letter-content{font:17px/2.4 var(--serif);white-space:pre-wrap;overflow-wrap:anywhere;padding:20px 5%}.future-content{text-align:center;font-family:var(--kai);font-size:25px;white-space:pre-wrap;overflow-wrap:anywhere;line-height:2.2;padding:35px 15px}.photo-block{padding:30px;margin:40px 0;overflow:hidden;perspective:1000px}.photo-inner{margin:auto;transform-style:preserve-3d;transition:transform .3s;width:var(--photo-width,100%)}.styled-photo{max-width:100%;width:100%;height:auto;display:block;border-style:solid;background:#fffdf8;cursor:zoom-in}.photo-story{margin:28px auto 0;max-width:620px;overflow-wrap:anywhere}.photo-story h3{font:400 24px/1.5 var(--serif);margin:0 0 9px}.photo-story .prose{font-size:14px;line-height:2.1}.photo-story-meta{font-size:10px;color:var(--muted);letter-spacing:1px;margin-bottom:15px}.photo-block.layout-side{display:grid;grid-template-columns:1.1fr 1fr;gap:30px;align-items:center}.photo-block.layout-side .photo-story{margin:0}.photo-block.layout-side .photo-story h3{font-size:23px}.article-footer{padding:50px 0;text-align:center}.article-footer p{font:italic 22px var(--serif);color:var(--red)}.article-actions{position:sticky;top:0;z-index:4;background:#f8f4ecf2;backdrop-filter:blur(10px);border-bottom:1px solid var(--line);padding:12px 0;display:flex;justify-content:space-between;align-items:center;gap:12px}.record-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px}.record-tile{border-bottom:1px solid var(--line);padding-bottom:20px;min-width:0}.record-tile .memory-image{margin-bottom:16px}.record-tile h3{font:23px var(--serif);margin:10px 0;overflow-wrap:anywhere}.record-tile p{font-size:12px;color:var(--muted);white-space:pre-line;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.record-tile-actions{display:flex;gap:16px;margin-top:15px}.record-tile .blank-cover{height:230px;background:#eee2d7;display:flex;align-items:center;justify-content:center;font:55px var(--kai);color:var(--red)}
dialog{border:1px solid var(--line);background:var(--cream);color:var(--ink);border-radius:5px;padding:0;width:min(850px,94vw);max-height:90vh;box-shadow:0 20px 90px #30201745}dialog::backdrop{background:#261f1bb3;backdrop-filter:blur(5px)}.modal-head{display:flex;justify-content:space-between;align-items:center;padding:22px 26px;border-bottom:1px solid var(--line);gap:20px}.modal-head h2{font:25px var(--serif);margin:0}.modal-body{padding:24px 26px;max-height:63vh;overflow:auto}.modal-foot{padding:17px 26px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:20px;font-size:12px;color:var(--muted)}.picker-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px}.picker-item{padding:6px;background:var(--paper);border:2px solid transparent;position:relative;cursor:pointer}.picker-item.selected{border-color:var(--red)}.picker-item img{aspect-ratio:1;object-fit:cover;width:100%}.picker-item .picker-name{font-size:10px;color:var(--muted);display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:4px}.picker-check{position:absolute;right:9px;top:9px;width:22px;height:22px;border-radius:50%;background:var(--red);color:white;display:flex;align-items:center;justify-content:center;font-size:13px}.template-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.template-card{background:var(--paper);border:1px solid var(--line);padding:30px 16px;text-align:center}.template-card:hover{border-color:var(--red);background:#f5e9e2}.template-card .template-symbol{font:40px var(--kai);color:var(--red);display:block;margin-bottom:15px}.template-card strong{font-size:15px;font-weight:400}.template-card p{font-size:11px;color:var(--muted);margin:10px 0 0}.lightbox{width:min(1200px,96vw);background:#191714;border:0}.lightbox .modal-head{color:var(--cream);border-color:#ffffff25;padding:10px 20px}.lightbox .modal-head h2{font:13px var(--sans)}.lightbox .icon-btn:hover{background:#ffffff20}.lightbox .modal-body{padding:15px;max-height:80vh;display:flex;justify-content:center}.lightbox img{max-height:74vh;width:auto;object-fit:contain}.toast{position:fixed;bottom:30px;left:50%;transform:translate(-50%,20px);background:#44362e;color:var(--paper);padding:12px 23px;border-radius:4px;max-width:90vw;z-index:100;opacity:0;transition:.2s;pointer-events:none;font-size:13px}.toast.show{opacity:1;transform:translate(-50%,0)}.loading{min-height:80vh;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:15px;color:var(--muted)}.fatal{max-width:620px;margin:15vh auto;padding:30px}.mobile-only{display:none}.subtle{color:var(--muted);font-size:11px}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;clip:rect(0,0,0,0);overflow:hidden}.fade-in{animation:enter .65s ease-out both}@keyframes enter{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:1600px){.hero{min-height:730px}.hero-art{min-height:565px}.hero-copy{padding-top:45px}}
@media(max-width:1350px){.issue-strip,.section,.endnote,.site-footer{margin-left:5.5%;margin-right:5.5%}.hero{min-height:640px;padding-top:50px}.hero-art{min-height:500px}.hero h1{font-size:80px}.hero h1 .zh-line{font-size:48px}.studio-layout{grid-template-columns:355px minmax(0,1fr);gap:24px}.studio{padding-left:3%;padding-right:3%}}
@media(max-width:1000px){.site-header{height:85px;padding:0 4%;gap:18px}.brand{font-size:26px}.nav{gap:20px}.header-actions .btn{padding:8px 12px}.hero{padding:45px 5% 30px;min-height:580px;grid-template-columns:45% 55%}.hero h1{font-size:65px;letter-spacing:-3px}.hero h1 .zh-line{font-size:38px}.hero-art{min-height:450px}.date-stamp{width:75px;height:75px}.hero-actions{gap:16px}.hero-actions .btn{padding:10px 14px}.hero-description{font-size:12px}.hero-footnote{margin-top:28px}.small-photo{bottom:40px}.hero-spark{font-size:45px}.birthday-card-copy{padding:30px}.birthday-card h3{font-size:30px}.birthday-card,.birthday-visual{min-height:350px}.photo-grid,.record-list{gap:20px}.section{padding:55px 0}.studio-layout{grid-template-columns:320px minmax(0,1fr);gap:18px}.editor-scroll{padding:18px}.preview-frame{padding:22px}.preview-frame .article h1{font-size:30px}.preview-frame .photo-block{padding:20px}.preview-frame .photo-block.layout-side{display:block}.preview-frame .photo-story{margin-top:22px}.page{padding:45px 5% 65px}.photo-block.layout-side{gap:20px}.photo-block{padding:25px}}
@media(max-width:760px){.site-header{height:auto;min-height:82px;flex-wrap:wrap;gap:0;padding:18px 5% 10px}.brand{font-size:28px}.header-actions{margin-left:auto;gap:9px}.header-actions .btn{min-height:35px;padding:6px 10px;font-size:11px}.mode-button{font-size:10px;gap:4px}.mode-button svg{width:15px}.nav{order:3;width:100%;justify-content:center;gap:42px;margin-top:14px}.nav a{font-size:12px;padding:5px 0 10px}.hero{display:flex;flex-direction:column;padding:30px 6% 20px;min-height:0}.hero-copy{padding:8px 0 10px}.hero h1{font-size:76px;margin:24px 0 18px}.hero h1 .zh-line{font-size:45px;letter-spacing:3px;line-height:1.5}.hero-description{font-size:12px;margin-bottom:23px;max-width:310px}.hero-actions{gap:24px}.hero-footnote{display:none}.hero-art{margin:24px auto 0;width:100%;max-width:450px;min-height:470px}.main-photo{width:65%;left:7%;top:18px}.small-photo{width:44%;right:1%;bottom:35px}.date-stamp{right:4%;top:12px}.hero-spark{right:1%;top:140px}.handwritten{left:3%;bottom:8px;font-size:18px}.issue-strip{margin-left:6%;margin-right:6%;padding:15px 0;gap:8px;font-size:9px;letter-spacing:1px}.issue-strip>span:nth-child(2){display:none}.issue-strip .domain{letter-spacing:1px}.section{margin:0 6%;padding:43px 0}.section-top{align-items:start;margin-bottom:23px;gap:15px}.section h2{font-size:28px;letter-spacing:1px}.section h2 em{font-size:15px;margin-left:7px}.section-top .text-link{font-size:11px;white-space:nowrap;margin-top:27px}.eyebrow{font-size:9px;letter-spacing:2px;gap:8px}.eyebrow:before{width:19px}.birthday-card{display:flex;flex-direction:column}.birthday-visual{min-height:0;height:260px}.birthday-visual img{object-position:center 40%}.birthday-visual:after{font-size:47px;bottom:10px;left:22px}.birthday-card-copy{padding:28px}.birthday-card h3{font-size:28px;margin-bottom:10px}.issue-number{margin-bottom:15px;font-size:9px}.birthday-card p{font-size:12px}.photo-grid,.record-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:23px 15px}.memory-card .memory-title{font-size:17px;margin:10px 0 5px}.memory-meta{font-size:9px;letter-spacing:.4px}.memory-tag{font-size:9px;left:7px;top:7px;padding:2px 6px}.endnote{padding:38px 0;margin:0 6%}.endnote p{font-size:21px;letter-spacing:1px}.site-footer{margin:0 6%;padding:20px 0;flex-wrap:wrap;gap:8px}.site-footer>span:last-child{width:100%;font-size:10px}.page{padding:32px 6% 50px}.page-title{font-size:39px;margin:16px 0}.page-head{margin-bottom:26px}.head-row{align-items:start}.head-row .btn{white-space:nowrap;padding:8px 12px;margin-top:18px}.tabs{gap:23px;margin:22px 0}.tab{font-size:12px}.notice{font-size:11px;align-items:start;padding:11px 13px}.notice svg{margin-top:3px}.studio{padding:24px 5% 45px}.studio-top{align-items:start;gap:10px;flex-wrap:wrap;margin-bottom:18px}.studio-top h1{font-size:25px}.studio-top>.toolbar{gap:7px}.studio-top .btn{font-size:11px;min-height:36px;padding:7px 11px}.save-status{width:100%;margin-bottom:4px}.studio-layout{display:block}.editor-scroll{max-height:none;padding:22px}.preview-column{position:static}.preview-frame{max-height:none;min-height:0;padding:22px 18px}.editor-mobile-tabs{display:flex;gap:0;background:#eae1d5;padding:4px;margin-bottom:17px;border-radius:3px}.editor-mobile-tabs button{width:50%;padding:9px;background:transparent;color:var(--muted);border-radius:2px;font-size:12px}.editor-mobile-tabs button.active{background:var(--paper);color:var(--red);box-shadow:0 1px 5px #68473012}.studio-layout[data-mobile-tab="edit"] .preview-column{display:none}.studio-layout[data-mobile-tab="preview"] .editor-panel{display:none}.article-header{padding:35px 0 25px}.article-header h1{font-size:39px;letter-spacing:1px;margin:20px 0}.article-cover{padding:8px;margin-bottom:25px}.chapter{padding:35px 0}.chapter-title{font-size:25px;margin-bottom:23px}.chapter-label{font-size:9px;letter-spacing:2px;margin-bottom:17px}.poem-page{padding:28px 15px}.poem-content{font-size:25px;letter-spacing:1px}.poem-title{font-size:25px}.letter-content{font-size:15px;padding:10px 0;line-height:2.3}.future-content{font-size:22px;padding:20px 5px}.photo-block{padding:21px 15px!important;margin:25px 0!important}.photo-block.layout-side{display:block}.photo-block.layout-side .photo-story{margin-top:25px}.photo-story h3{font-size:21px}.photo-story .prose{font-size:13px}.photo-inner{max-width:100%}.article-actions{font-size:11px}.article-actions .btn{padding:6px 10px;min-height:34px;font-size:11px}.article-actions .text-link{font-size:11px}.record-tile h3{font-size:20px}.record-tile .blank-cover{height:150px;font-size:40px}.record-tile-actions{gap:12px}.record-tile-actions .text-link{font-size:11px}.record-tile p{font-size:11px}.picker-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.modal-head{padding:17px 18px}.modal-head h2{font-size:21px}.modal-body{padding:18px;max-height:61vh}.modal-foot{padding:14px 18px;font-size:11px}.template-grid{gap:10px}.template-card{padding:24px 9px}.template-card .template-symbol{font-size:32px}.template-card strong{font-size:13px}.template-card p{font-size:10px}.lightbox .modal-body{padding:6px}.lightbox .modal-head{padding:8px 12px}.placeholder-text{font-size:12px;padding:22px 14px}.preview-frame .article h1{font-size:31px}.mobile-only{display:block}}
@media(max-width:380px){.brand{font-size:25px}.header-actions .btn{padding:6px 8px}.hero h1{font-size:65px}.hero h1 .zh-line{font-size:39px}.hero-art{min-height:410px}.hero-actions{gap:17px}.mode-button span{display:none}.date-stamp{width:68px;height:68px}.handwritten{font-size:17px}.section h2 em{display:none}.photo-grid,.record-list{gap:20px 12px}.photo-controls .btn{font-size:10px;padding:6px 8px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}
/* Keep the decorative ellipse inside narrow viewports without cropping photos. */
@media(max-width:1000px){.hero-art:before{width:65%;left:10%;height:86%;transform:rotate(8deg)}}
@media(min-width:761px){.handwritten{bottom:-22px}.hero{padding-bottom:65px}}
@media(max-width:760px){.hero-art:before{width:65%;left:10%;height:86%;transform:rotate(8deg)}.hero h1{font-size:clamp(44px,13vw,65px);letter-spacing:-2px}.hero h1 .zh-line{font-size:40px}.section h2 em{white-space:nowrap}}
@media(max-width:760px){.small-photo{bottom:55px}.handwritten{font-size:17px;bottom:0}}

/* The home is a single-screen magazine carousel. Reading pages retain scrolling. */
.home-screen{height:100dvh;overflow:hidden}.home-screen #app{height:100%;display:flex;flex-direction:column}.home-screen .site-header{width:100%;flex:0 0 100px;z-index:10}.home-carousel{flex:1;min-height:0;display:grid;grid-template-rows:minmax(0,1fr) 66px 44px;width:100%;max-width:1440px;margin:auto}.carousel-stage{position:relative;min-height:0;overflow:hidden}.home-slide{position:absolute;inset:0;opacity:0;visibility:hidden;transform:translateX(24px);transition:opacity .65s,transform .65s,visibility .65s;pointer-events:none}.home-slide.active{opacity:1;visibility:visible;transform:none;pointer-events:auto}.home-slide .hero{height:100%;min-height:0;padding:25px 5.5% 20px;grid-template-columns:46% 54%;align-items:center;gap:0}.home-slide .hero-copy{padding:0;align-self:center;min-width:0}.home-slide .hero h1{font-size:clamp(52px,6vw,83px);margin:22px 0 20px;letter-spacing:-3px}.home-slide .hero .zh-line{font-size:clamp(29px,3.25vw,47px);letter-spacing:3px;line-height:1.55;max-width:10em;margin-top:16px}.home-slide .hero-description{font-size:12px;line-height:2;margin-bottom:25px}.home-slide .hero-footnote{margin-top:30px}.home-slide .hero-art{min-height:0;height:100%;max-height:620px;width:100%;margin:0;align-self:center}.home-slide .main-photo{height:78%;max-height:520px;width:62%;padding:12px 12px 36px;top:7%;left:9%}.home-slide .main-photo img{height:100%;aspect-ratio:auto;object-fit:cover;object-position:center 38%}.home-slide .small-photo{height:43%;width:44%;right:1%;bottom:5%;padding:9px 9px 33px}.home-slide .small-photo img{height:100%;aspect-ratio:auto;object-fit:cover;object-position:center 32%}.home-slide .hero-art:before{height:85%;top:3%;width:70%;left:12%;transform:rotate(10deg)}.home-slide .hero-spark{top:35%;right:0;font-size:52px}.home-slide .date-stamp{top:6%;right:2%;width:82px;height:82px}.cover-edit{position:absolute;left:3%;top:5%;z-index:4;background:#fffdf8dd;color:var(--red)}.carousel-controls{display:flex;align-items:center;justify-content:space-between;margin:0 5.5%;border-top:1px solid var(--line);gap:16px}.carousel-index{display:flex;align-items:baseline;gap:10px;font:italic 25px var(--serif);color:var(--red);min-width:80px}.carousel-index>span:last-child{font:10px var(--sans);color:var(--muted)}.carousel-dots{display:flex;gap:28px}.carousel-dots button{background:transparent;display:flex;align-items:center;gap:9px;color:var(--muted);padding:10px 0}.carousel-dots button>span{width:5px;height:5px;border-radius:50%;background:#c9b9ab;transition:width .3s}.carousel-dots button.active>span{width:21px;border-radius:3px;background:var(--red)}.carousel-dots button.active{color:var(--red)}.carousel-dots em{font:11px var(--sans)}.carousel-arrows{display:flex;gap:3px}.carousel-arrows .icon-btn{width:32px;height:32px;color:var(--red);font-size:15px}.home-carousel .issue-strip{width:89%;margin:0 auto;padding:0;border-bottom:0;font-size:9px;letter-spacing:1.3px}.carousel-birthday{height:100%;padding:30px 5.5%;display:grid;grid-template-columns:50% 50%;align-items:stretch}.carousel-issue-photo{position:relative;min-height:0;overflow:hidden}.carousel-issue-photo img{height:100%;width:100%;object-fit:cover}.carousel-issue-photo>span{position:absolute;bottom:0;left:20px;font:italic clamp(40px,6vw,85px) var(--serif);color:var(--paper)}.carousel-issue-copy{background:#efe5d8;padding:35px 11%;display:flex;flex-direction:column;justify-content:center;align-items:start;gap:15px;min-width:0}.issue-large-number{font:italic 50px var(--serif);color:#c9ab98;margin-top:5px;line-height:1}.carousel-issue-copy h2{font:400 clamp(26px,3vw,44px)/1.45 var(--serif);margin:0;overflow-wrap:anywhere}.carousel-issue-copy p{color:var(--muted);font-size:12px;line-height:2;margin:0}.carousel-issue-copy .small-note{margin:0}.carousel-journal{padding:35px 5.5% 15px;height:100%;display:flex;flex-direction:column;justify-content:center;overflow:hidden}.carousel-journal h2{font:400 39px var(--serif);letter-spacing:2px;margin:14px 0}.carousel-journal .section-top{margin-bottom:23px}.carousel-journal .page-intro{margin:0;font-size:12px}.carousel-journal .photo-grid,.carousel-journal .record-list{max-height:65%;min-height:0;overflow:hidden}.carousel-journal .memory-image{aspect-ratio:4/3;max-height:260px}.carousel-journal .memory-title{font-size:20px}.carousel-journal .record-tile h3{font-size:23px}.carousel-journal .record-tile p{display:none}.carousel-journal .blank-cover{height:180px}.carousel-journal-note{text-align:center;font:italic 15px var(--serif);color:var(--red);margin-top:25px}.user-menu{position:relative;font-size:12px;color:var(--muted)}.user-menu summary{cursor:pointer;list-style:none;padding:9px 0 9px 9px;white-space:nowrap;max-width:120px;overflow:hidden;text-overflow:ellipsis}.user-menu summary::-webkit-details-marker{display:none}.user-menu>div{position:absolute;right:0;top:100%;background:var(--paper);padding:8px;min-width:140px;border:1px solid var(--line);box-shadow:0 6px 20px #30201712;z-index:25}.user-menu a,.user-menu button{display:block;width:100%;text-align:left;padding:10px;background:none;font-size:12px;color:var(--ink)}.user-menu a:hover,.user-menu button:hover{background:#f2e7dc}
.home-slide .small-photo img{width:100%}
.auth-shell{min-height:100dvh;max-width:1440px;margin:auto;padding:35px 5.5% 0;display:flex;flex-direction:column}.auth-layout{display:grid;grid-template-columns:1.25fr 1fr;gap:10%;align-items:center;flex:1;min-height:650px;padding:35px 0 60px}.auth-intro{position:relative}.auth-intro h1{font:400 clamp(35px,4.4vw,64px)/1.5 var(--serif);letter-spacing:3px;margin:28px 0;color:var(--ink)}.auth-intro h1 em{font-style:normal;color:var(--red)}.auth-intro p{font-size:14px;color:var(--muted);line-height:2.2}.auth-intro>span{font:italic 14px var(--serif);color:var(--red);display:block;margin-top:45px}.auth-orbit{position:absolute;right:20%;bottom:-70px;width:120px;height:120px;border:1px solid #dbc8b2;border-radius:50%;transform:rotate(30deg)}.auth-orbit span{position:absolute;top:-24px;left:5px;font-size:55px;color:var(--red);line-height:1;background:var(--cream)}.auth-card{padding:38px;background:var(--paper);border:1px solid var(--line);box-shadow:0 18px 50px #64482408}.auth-card h2{font:32px var(--serif);margin:17px 0}.auth-card .field{margin-bottom:20px}.auth-card .btn{width:100%;margin-top:5px}.auth-note{border-top:1px solid var(--line);margin-top:24px;padding-top:17px;font-size:11px;color:var(--muted);text-align:center}.auth-footer{border-top:1px solid var(--line);padding:20px 0;color:var(--muted);font-size:11px;text-align:center}.form-error{font-size:12px;color:var(--red);min-height:0;line-height:1.8;margin:10px 0}.form-error:empty{display:none}.admin-layout{display:grid;grid-template-columns:340px minmax(0,1fr);gap:55px}.admin-layout h2{font:25px var(--serif);margin:0 0 22px}.account-create{align-self:start;background:var(--paper);padding:28px;border:1px solid var(--line)}.account-row{border:1px solid var(--line);padding:26px;margin-bottom:20px;background:var(--paper)}.account-row h3{font:25px var(--serif);margin:0}.account-row .head-row{margin-bottom:15px}.account-row .field{margin-bottom:13px}.account-row .toolbar{margin-top:18px}
.welcoming{overflow:hidden!important}.welcome-overlay{position:fixed;inset:0;background:#291c23;color:#fff5e4;z-index:1000;display:flex;flex-direction:column;overflow:hidden}.firework-canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.welcome-top{padding:28px 5%;display:flex;justify-content:space-between;align-items:center;gap:20px;z-index:1}.welcome-top .brand{color:#f7e2c5}.welcome-skip{background:none;color:#cbb9b1;font-size:12px;padding:10px}.welcome-center{position:relative;z-index:1;margin:auto;width:min(1100px,94%);text-align:center;padding:20px 0}.welcome-center .eyebrow{justify-content:center;color:#d2b898}.welcome-name{font:26px var(--kai);letter-spacing:4px;margin:35px 0 0}.welcome-lettering{width:100%;height:auto;overflow:visible;filter:drop-shadow(0 0 15px #edc99c35)}.welcome-lettering text{font-family:Georgia,"STKaiti",serif;font-style:italic;fill:transparent;stroke:#f6dbad;stroke-width:.65;stroke-dasharray:1000;stroke-dashoffset:1000;animation:write-path 4s ease forwards}.welcome-lettering textPath{animation:letter-arrive 4s ease both}.welcome-subtitle{font:18px var(--kai);letter-spacing:5px;color:#dbc5b4;opacity:0;animation:welcome-fade 1.5s 2.5s forwards}.welcome-enter{background:#f1dbc0;color:#58333a;border-color:#f1dbc0;margin-top:23px;opacity:0;transform:translateY(10px);transition:opacity 1s,transform 1s;pointer-events:none}.welcome-enter:hover{background:#fff0da}.welcome-ready .welcome-enter,.reduced .welcome-enter{opacity:1;transform:none;pointer-events:auto}.welcome-bottom{position:relative;z-index:1;text-align:center;font-size:10px;letter-spacing:3px;color:#a58d84;padding:28px}.welcome-error{font-size:12px;color:#eebabc;min-height:20px;margin:12px 0 0}.reduced .welcome-lettering text{fill:#f6dbad;stroke-dashoffset:0}.reduced .welcome-subtitle{opacity:1}@keyframes write-path{0%{stroke-dashoffset:1000;fill:transparent}70%{fill:transparent}100%{stroke-dashoffset:0;fill:#f6dbad}}@keyframes letter-arrive{from{letter-spacing:6px}to{letter-spacing:0}}@keyframes welcome-fade{to{opacity:1}}
@media(max-height:760px) and (min-width:761px){.home-slide .hero h1{font-size:58px;margin:13px 0}.home-slide .hero .zh-line{font-size:33px;margin-top:9px}.home-slide .hero-description{margin-bottom:15px}.home-slide .hero-footnote{display:none}.home-slide .hero-art{max-height:430px}.carousel-issue-copy{gap:10px;padding:22px 10%}.issue-large-number{font-size:35px}.carousel-issue-copy .small-note{display:none}.carousel-journal{padding-top:20px}.carousel-journal h2{font-size:30px}.carousel-journal .section-top{margin-bottom:15px}.carousel-journal .memory-image{max-height:175px}.carousel-journal-note{margin-top:12px;font-size:12px}}
@media(max-width:1050px) and (min-width:761px){.site-header{padding-left:4%;padding-right:4%;gap:16px}.site-header .nav{gap:18px}.header-actions{gap:9px}.header-actions .btn{padding:7px 10px;font-size:11px}.user-menu summary{max-width:65px;font-size:11px}.mode-button{font-size:10px}.home-slide .hero h1{font-size:60px}.home-slide .hero .zh-line{font-size:34px;letter-spacing:2px}.home-slide .hero-footnote{font-size:10px}.home-slide .hero-actions{gap:15px}.home-slide .hero-actions .btn{font-size:11px;padding:9px 12px}.home-slide .hero-actions .text-link{font-size:11px}.home-slide .date-stamp{width:65px;height:65px}.home-slide .date-stamp strong{font-size:23px}.carousel-issue-copy{padding:25px 9%;gap:12px}.carousel-issue-copy h2{font-size:30px}.carousel-journal h2{font-size:31px}.admin-layout{grid-template-columns:300px minmax(0,1fr);gap:30px}}
@media(max-width:760px){.home-screen .site-header{flex-basis:116px;min-height:116px;padding-top:14px;padding-bottom:7px}.header-actions{gap:8px}.user-menu summary{max-width:56px;padding:7px 0;font-size:10px}.header-actions .mode-button span{display:none}.header-actions .btn{font-size:10px;padding:6px 8px;gap:6px}.header-actions .btn svg{width:14px}.home-carousel{grid-template-rows:minmax(0,1fr) 57px 35px}.home-slide .hero{display:grid;grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr);padding:17px 6% 10px;height:100%;align-items:stretch}.home-slide .hero-copy{padding:0;align-self:start}.home-slide .hero h1{font-size:43px;line-height:1.12;letter-spacing:-2px;margin:12px 0}.home-slide .hero .zh-line{font-size:28px;letter-spacing:1px;max-width:none;margin-top:9px;line-height:1.45}.home-slide .hero-description{font-size:10px;line-height:1.8;margin:0 0 12px}.home-slide .hero-description br{display:none}.home-slide .hero-actions{gap:18px}.home-slide .hero-actions .btn{font-size:10px;min-height:34px;padding:6px 11px;gap:7px}.home-slide .hero-actions .text-link{font-size:10px}.home-slide .hero-footnote{display:none}.home-slide .hero-art{height:100%;width:100%;margin:0;min-height:0;max-width:480px;justify-self:center}.home-slide .main-photo{top:7%;height:83%;width:54%;left:12%;padding:7px 7px 26px}.home-slide .small-photo{width:37%;height:48%;bottom:5%;right:6%;padding:6px 6px 24px}.home-slide .photo-caption{font-size:10px;left:9px;bottom:7px}.home-slide .date-stamp{top:9%;right:6%;width:60px;height:60px;font-size:7px;letter-spacing:1px}.home-slide .date-stamp strong{font-size:22px}.home-slide .hero-spark{font-size:32px;right:6%;top:38%}.home-slide .cover-edit{top:5%;left:3%;width:29px;height:29px}.home-slide .hero-art:before{height:86%;width:68%;left:14%;top:3%}.carousel-controls{margin:0 6%;gap:6px}.carousel-index{font-size:20px;min-width:43px;gap:4px}.carousel-index>span:last-child{font-size:8px}.carousel-dots{gap:12px}.carousel-dots button{gap:5px}.carousel-dots em{font-size:9px}.carousel-dots button>span{width:4px;height:4px}.carousel-dots button.active>span{width:12px}.carousel-arrows{gap:0}.carousel-arrows .icon-btn{width:25px;height:32px;font-size:12px}.carousel-arrows .icon-btn svg{width:15px}.home-carousel .issue-strip{font-size:8px;letter-spacing:.4px}.home-carousel .issue-strip>span:nth-child(2){display:block}.home-carousel .issue-strip>span:first-child{display:none}.home-carousel .issue-strip .domain{letter-spacing:.5px}.carousel-birthday{padding:18px 6%;grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) auto}.carousel-issue-photo>span{font-size:47px;left:16px}.carousel-issue-copy{padding:20px 24px;gap:11px}.carousel-issue-copy .eyebrow{font-size:8px}.carousel-issue-copy h2{font-size:27px}.issue-large-number{display:none}.carousel-issue-copy p{font-size:11px;line-height:1.8}.carousel-issue-copy .btn{font-size:11px;min-height:36px;padding:7px 13px}.carousel-issue-copy .text-link{font-size:11px}.carousel-issue-copy .small-note{display:none}.carousel-journal{padding:24px 6% 10px;justify-content:center}.carousel-journal .section-top{display:block;margin-bottom:22px}.carousel-journal .section-top .text-link{margin-top:12px}.carousel-journal h2{font-size:30px;margin:14px 0}.carousel-journal .page-intro{font-size:11px}.carousel-journal .photo-grid,.carousel-journal .record-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;max-height:62%}.carousel-journal .photo-grid>*:nth-child(n+3),.carousel-journal .record-list>*:nth-child(n+3){display:none}.carousel-journal .memory-image{aspect-ratio:3/4;max-height:270px}.carousel-journal .memory-title{font-size:18px}.carousel-journal .memory-meta{font-size:9px}.carousel-journal-note{font-size:12px;margin-top:22px}.auth-shell{padding:24px 6% 0}.auth-layout{grid-template-columns:1fr;gap:28px;min-height:0;padding:35px 0}.auth-intro h1{font-size:32px;margin:15px 0;line-height:1.4}.auth-intro h1 br{display:none}.auth-intro p,.auth-intro>span,.auth-orbit{display:none}.auth-card{padding:25px}.auth-card h2{font-size:28px}.auth-card .issue-number{font-size:9px}.auth-footer{font-size:10px}.admin-layout{grid-template-columns:1fr;gap:35px}.account-create{padding:22px}.account-row{padding:20px}.admin-page .page-title{font-size:36px}.account-row h3{font-size:22px}.welcome-top{padding:21px 6%}.welcome-top .brand{font-size:24px}.welcome-skip{font-size:10px}.welcome-name{font-size:23px;letter-spacing:2px;margin-top:34px}.welcome-center .eyebrow{font-size:8px;letter-spacing:1.5px}.welcome-lettering{width:125%;max-width:none;margin:10px -12.5%}.welcome-subtitle{font-size:16px;letter-spacing:2px}.welcome-enter{font-size:12px}.welcome-bottom{font-size:8px;letter-spacing:1.5px}.welcome-center{overflow:hidden}}
@media(max-width:380px){.home-screen .site-header .brand{font-size:24px}.carousel-dots{gap:8px}.carousel-dots em{font-size:8px}.carousel-arrows .icon-btn{width:23px}.home-slide .hero h1{font-size:37px}.home-slide .hero .zh-line{font-size:25px}.home-slide .hero-actions{gap:13px}.home-slide .hero-description{font-size:9px}}
@media(max-height:650px) and (max-width:760px){.home-slide .hero .eyebrow,.home-slide .hero-description{display:none}.home-slide .hero h1{font-size:30px;margin:6px 0}.home-slide .hero .zh-line{font-size:22px;margin-top:4px}.carousel-birthday{grid-template-columns:44% 56%;grid-template-rows:1fr;padding:10px 6%}.carousel-issue-copy{padding:15px;gap:9px}.carousel-issue-copy h2{font-size:23px}.carousel-issue-copy p,.carousel-issue-copy .text-link{display:none}.carousel-issue-photo>span{font-size:25px;left:5px}.carousel-journal .section-top{margin-bottom:13px}.carousel-journal h2{font-size:24px;margin:8px 0}.carousel-journal .page-intro,.carousel-journal-note{display:none}.carousel-journal .memory-image{max-height:145px;aspect-ratio:4/3}.carousel-journal .memory-title{font-size:15px}.carousel-journal .memory-meta{display:none}}
@media(max-height:510px) and (min-width:761px){.home-slide .hero{padding-top:10px;padding-bottom:10px}.home-slide .hero h1{font-size:35px;margin:7px 0}.home-slide .hero .zh-line{font-size:23px;letter-spacing:1px;margin-top:4px;line-height:1.3}.home-slide .hero-description,.home-slide .hero-footnote{display:none}.home-slide .hero-actions{margin-top:9px}.home-slide .hero-actions .btn{min-height:31px;padding:5px 11px;font-size:10px}.home-slide .hero-actions .text-link{font-size:10px}.home-slide .hero .eyebrow{font-size:8px}.home-slide .date-stamp{height:46px;width:46px;font-size:6px;letter-spacing:0}.home-slide .date-stamp strong{font-size:17px}.home-slide .hero-spark{font-size:24px}.home-slide .photo-caption{font-size:9px}.home-slide .small-photo{padding-bottom:22px}.home-slide .main-photo{padding-bottom:26px}.carousel-birthday{padding-top:10px;padding-bottom:10px}.carousel-issue-copy{padding:12px 22px;gap:7px}.carousel-issue-copy h2{font-size:22px}.carousel-issue-copy .eyebrow{font-size:7px;letter-spacing:1px}.carousel-issue-copy p,.carousel-issue-copy .text-link,.carousel-issue-copy .small-note,.issue-large-number{display:none}.carousel-issue-copy .btn{min-height:30px;padding:5px 10px;font-size:10px}.carousel-journal{padding:10px 5.5%}.carousel-journal .section-top{margin-bottom:8px}.carousel-journal .page-intro,.carousel-journal-note{display:none}.carousel-journal h2{font-size:22px;margin:8px 0}.carousel-journal .eyebrow{font-size:8px}.carousel-journal .photo-grid,.carousel-journal .record-list{max-height:none}.carousel-journal .memory-image{max-height:80px;aspect-ratio:4/3}.carousel-journal .memory-title{font-size:15px;margin:6px 0}.carousel-journal .memory-meta{display:none}}

/* One theme navigation, with understated position marks beneath the stage. */
.carousel-dots{gap:13px}.carousel-dots button{padding:12px 6px;min-width:25px;justify-content:center}.carousel-dots button>span{width:18px;height:3px;border-radius:3px}.carousel-dots button.active>span{width:35px}.nav a[aria-current="page"]{color:var(--red)}
.record-tile .blank-cover{position:relative;padding:24px;background:linear-gradient(145deg,#f4e7da,#f4dcd9);font:400 30px/1.65 var(--kai);color:var(--red);letter-spacing:2px;text-align:center;overflow:hidden}.record-tile .blank-cover:before{content:"";position:absolute;inset:12px;border:1px solid #c7958145;pointer-events:none}.record-tile .blank-cover>span{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere;max-width:100%}.carousel-journal .record-tile .blank-cover{font-size:30px;min-height:130px}
/* A bright, warm welcome; each grapheme is drawn in its own time slot. */
.welcome-overlay{--welcome-letter:#a34153;background:radial-gradient(ellipse at 12% 12%,#f6d8c5 0,transparent 48%),radial-gradient(ellipse at 90% 75%,#f2d0d3 0,transparent 52%),linear-gradient(130deg,#fff8e9,#fff5ee 48%,#fce9e5);color:#72483c}.welcome-top .brand{color:#a34153}.welcome-skip{color:#8a665c;border:1px solid #cfa39866;border-radius:25px;padding:9px 17px;background:#fff9f05e}.welcome-center .eyebrow{color:#ab7955}.welcome-name{color:#875346;letter-spacing:3px}.welcome-lettering{filter:drop-shadow(0 2px 8px #b8796420);max-height:38dvh}.welcome-lettering text{fill:none;stroke:none;stroke-dasharray:none;stroke-dashoffset:0;animation:none}.welcome-lettering textPath{animation:none;white-space:pre}.welcome-glyph{opacity:0;fill:transparent;stroke:var(--welcome-letter);stroke-width:.7;stroke-dasharray:160;stroke-dashoffset:160;animation:glyph-write var(--glyph-time) linear var(--glyph-delay) both}.welcome-pen{filter:drop-shadow(0 0 5px #dc9548)}.welcome-subtitle{color:#9b6858;animation-delay:1.8s}.welcome-enter{background:#a83d51;color:#fff9ef;border-color:#a83d51;box-shadow:0 6px 23px #a83d5120;border-radius:3px}.welcome-enter:hover{background:#902c40}.welcome-bottom{color:#a27b65;padding-top:15px}.welcome-bottom>span{display:block;font:16px var(--kai);letter-spacing:3px;margin-bottom:12px}.welcome-bottom small{font-size:9px;letter-spacing:2.5px}.welcome-error{color:#a34153}.welcome-glow{position:absolute;width:38vw;height:38vw;border-radius:50%;filter:blur(65px);opacity:.42;pointer-events:none}.glow-one{background:#f4c9ba;left:-14%;top:-15%}.glow-two{background:#f8dfad;right:-15%;top:0}.glow-three{background:#f1bac7;right:0;bottom:-35%}.welcome-garden{position:absolute;inset:0;pointer-events:none;overflow:hidden}.welcome-petal{position:absolute;left:var(--x);top:var(--y);width:12px;height:22px;border-radius:90% 5% 85% 12%;background:linear-gradient(140deg,#e7a9a0,#f7d3c6);opacity:.38;animation:petal-drift var(--drift) ease-in-out var(--delay) infinite alternate}.welcome-petal.petal-1{width:8px;height:14px;background:linear-gradient(140deg,#d38d9b,#eeb8be);opacity:.3}.welcome-petal.petal-2{width:5px;height:10px;background:#d2a765;opacity:.4}.welcome-heart{position:absolute;color:#c7858e;opacity:.42;animation:heart-float 8s ease-in-out infinite alternate}.welcome-heart svg{width:100%;height:100%}.heart-one{width:60px;height:60px;left:9%;top:24%;transform:rotate(-17deg)}.heart-two{width:46px;height:46px;right:10%;bottom:22%;transform:rotate(13deg);animation-delay:-3s}.heart-three{width:25px;height:25px;right:19%;top:18%;transform:rotate(12deg);animation-delay:-5s}.welcome-ribbons{position:absolute;inset:0;width:100%;height:100%;stroke:#c38d7280;stroke-width:1;fill:none}.welcome-ribbons path+path{stroke:#e6b39b88;stroke-width:3}.welcome-flower{position:absolute;font:85px/1 var(--serif);color:#d2a072;opacity:.3}.flower-one{left:4%;bottom:17%;transform:rotate(20deg)}.flower-two{right:6%;top:16%;font-size:60px;color:#cf8c99;transform:rotate(-12deg)}.welcome-twinkle{position:absolute;color:#bd8f4d;font-size:38px;opacity:.55}.twinkle-one{left:23%;top:13%}.twinkle-two{right:23%;bottom:15%;font-size:23px}.reduced .welcome-glyph{opacity:1;fill:var(--welcome-letter);stroke-dashoffset:0;animation:none}.reduced .welcome-lettering text{fill:none}.reduced .welcome-pen{display:none}.reduced .welcome-petal,.reduced .welcome-heart{animation:none}.reduced .welcome-subtitle{opacity:1}@keyframes glyph-write{0%{opacity:0;stroke-dashoffset:160;fill:transparent}5%{opacity:1}75%{opacity:1;stroke-dashoffset:0;fill:transparent}100%{opacity:1;stroke-dashoffset:0;fill:var(--welcome-letter)}}@keyframes petal-drift{from{transform:translate(0,-12px) rotate(var(--turn))}to{transform:translate(16px,23px) rotate(calc(var(--turn) + 48deg))}}@keyframes heart-float{from{translate:0 -7px}to{translate:7px 9px}}
@media(max-width:760px){.welcome-top .brand{font-size:24px}.welcome-skip{font-size:9px;padding:8px 11px}.welcome-lettering{width:110%;margin:8px -5%;max-height:36dvh}.welcome-center{width:94%;padding:15px 0}.welcome-name{font-size:23px;margin-top:29px}.welcome-center .eyebrow{font-size:8px;letter-spacing:1.5px}.welcome-subtitle{font-size:17px}.welcome-bottom{padding-bottom:23px}.welcome-bottom>span{font-size:13px;letter-spacing:1px}.welcome-bottom small{font-size:7px;letter-spacing:1.7px}.heart-one{left:7%;top:22%;width:36px;height:36px}.heart-two{right:7%;bottom:19%;width:29px;height:29px}.heart-three{right:12%;top:30%}.welcome-flower{font-size:50px}.flower-one{left:3%;bottom:14%}.flower-two{right:1%;top:16%;font-size:43px}.welcome-twinkle{font-size:25px}.welcome-ribbons{opacity:.65}.carousel-dots{gap:10px}.carousel-dots button>span{width:15px;height:3px}.carousel-dots button.active>span{width:28px}.carousel-journal .record-tile .blank-cover{font-size:25px;min-height:120px;padding:18px}.record-tile .blank-cover{font-size:25px;padding:20px}}
@media(max-height:550px){.welcome-top{padding-top:12px;padding-bottom:12px}.welcome-center{padding:0}.welcome-center .eyebrow{display:none}.welcome-name{margin:0;font-size:18px}.welcome-lettering{max-height:26dvh;margin-top:0;margin-bottom:0}.welcome-subtitle{margin:0;font-size:14px}.welcome-enter{margin-top:12px;min-height:33px;font-size:11px;padding:7px 15px}.welcome-bottom{padding:5px 0 10px}.welcome-bottom>span{font-size:12px;margin-bottom:4px}.welcome-bottom small{font-size:7px}.welcome-error{min-height:0;margin:4px 0}.welcome-flower{font-size:45px}.carousel-journal .record-tile .blank-cover{font-size:20px;min-height:75px;height:80px}}

/* A persistent animated border, independent of carousel playback. */
.home-sky{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden;contain:strict}.home-sky[hidden]{display:none}.home-screen #app{position:relative;z-index:1}.sky-region{position:absolute;overflow:hidden;pointer-events:none;--travel:calc(100dvh + 130px)}.sky-top{left:0;right:0;top:0;height:100px;--travel:240px;background:linear-gradient(180deg,#efdfd226,transparent)}.sky-left,.sky-right{top:100px;bottom:0;width:clamp(18px,5.1vw,95px)}.sky-left{left:0}.sky-right{right:0}.sky-star{position:absolute;left:var(--sx);top:-40px;font-style:normal;font-size:13px;line-height:1;color:#be9167;opacity:0;filter:drop-shadow(0 0 4px #f2d7ac88);animation:sky-fall var(--duration) linear var(--delay) infinite!important}.sky-star.star-kind-1{font-size:7px;color:#c8929b}.sky-star.star-kind-2{font-size:4px;color:#ac8564}.sky-meteor{position:absolute;left:var(--sx);top:-100px;width:1px;height:66px;opacity:0;background:linear-gradient(to top,#bf8d60dd,#d9ad8650,transparent);transform-origin:bottom;animation:sky-meteor-fall var(--duration) linear var(--delay) infinite!important}.sky-meteor:after{content:"";position:absolute;bottom:0;left:-1.5px;width:4px;height:4px;background:#d5a475;border-radius:50%;box-shadow:0 0 7px #e1b685}.sky-top .sky-meteor{height:48px}.sky-top .sky-star{font-size:11px}@keyframes sky-fall{0%{opacity:0;transform:translate3d(0,0,0) rotate(var(--turn))}8%{opacity:.58}82%{opacity:.5}100%{opacity:0;transform:translate3d(13px,var(--travel),0) rotate(calc(var(--turn) + 85deg))}}@keyframes sky-meteor-fall{0%{opacity:0;transform:translate3d(-12px,0,0) rotate(-16deg)}12%{opacity:.65}80%{opacity:.45}100%{opacity:0;transform:translate3d(30px,var(--travel),0) rotate(-16deg)}}
/* Only two content categories. Media cards share a compact, paged collection. */
.journal-category-tabs{margin:12px 0 25px;gap:30px}.journal-category-tabs .tab{font-size:13px;padding:10px 0}.media-record-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px 18px}.media-record-grid .memory-image{display:block;width:100%;aspect-ratio:4/3;height:auto;max-height:none;margin-bottom:8px}.media-record-grid .memory-image img{width:100%;height:100%;object-fit:cover}.media-record-grid .memory-title,.media-record-grid .record-tile h3{font:400 17px/1.5 var(--serif);margin:7px 0 4px;letter-spacing:0}.media-record-grid .memory-meta{font-size:9px;letter-spacing:.4px}.media-record-grid .memory-tag{font-size:9px;left:7px;top:7px;padding:2px 6px}.media-record-grid .record-tile{padding-bottom:12px}.media-record-grid .record-tile p{display:none}.media-record-grid .record-tile-actions{gap:12px;margin-top:6px}.media-record-grid .record-tile-actions .text-link{font-size:10px;gap:5px}.media-record-grid .record-tile-actions svg{width:13px;height:13px}.media-pagination{display:flex;align-items:center;justify-content:center;gap:25px;margin-top:35px;color:var(--muted);font-size:12px}.media-pagination button:disabled{cursor:default;opacity:.35}.journal-overview{justify-content:flex-start;padding-top:30px;padding-bottom:15px}.journal-overview .section-top{margin-bottom:4px}.journal-overview .section-top h2{font-size:35px;margin:12px 0}.journal-overview .journal-category-tabs{margin:0 0 18px;flex-shrink:0}.journal-overview-content{min-height:0;flex:1;overflow:hidden}.journal-overview-content>.text-record-list{max-height:100%;overflow:hidden}.journal-overview-content .empty-state{padding:25px;margin:5px 0}.journal-overview-content .empty-state h3{font-size:23px}.journal-overview .media-record-grid{gap:15px 18px}.journal-overview .media-record-grid .memory-image{height:clamp(65px,14dvh,150px);aspect-ratio:auto;max-height:none}.journal-overview .media-record-grid .memory-title,.journal-overview .media-record-grid .record-tile h3{font-size:16px;margin:5px 0 2px}.journal-overview .media-record-grid .memory-meta{font-size:8px}.journal-overview .media-record-grid .record-tile-actions{margin-top:3px}.journal-overview .media-record-grid .record-tile{padding-bottom:6px}
@media(max-width:1000px){.media-record-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:18px 13px}.journal-overview .media-record-grid{gap:15px 13px}.journal-overview .media-record-grid .memory-image{height:clamp(65px,13dvh,140px)}}
@media(max-width:760px){.sky-top{height:116px}.sky-left,.sky-right{top:116px;width:5%}.sky-star{font-size:9px}.sky-meteor{height:45px}.media-record-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:17px 10px}.media-record-grid .memory-title,.media-record-grid .record-tile h3{font-size:14px}.media-record-grid .memory-meta{font-size:8px;letter-spacing:0}.media-record-grid .memory-tag{font-size:8px;left:4px;top:4px;padding:1px 4px}.media-record-grid .record-tile-actions{flex-wrap:wrap;gap:3px 10px}.media-record-grid .record-tile-actions .text-link{font-size:9px}.journal-category-tabs{margin:10px 0 22px;gap:25px}.journal-category-tabs .tab{font-size:12px}.journal-overview{padding-top:22px}.journal-overview .section-top{display:flex;align-items:center;margin-bottom:0}.journal-overview .section-top h2{font-size:29px;margin:10px 0}.journal-overview .section-top .text-link{margin-top:15px;font-size:10px}.journal-overview .page-intro{font-size:10px}.journal-overview .journal-category-tabs{margin:0 0 15px}.journal-overview .media-record-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:15px 10px}.journal-overview .media-record-grid>*:nth-child(n+7){display:none}.journal-overview .media-record-grid .memory-image{height:clamp(70px,13dvh,125px)}.journal-overview .media-record-grid .memory-title,.journal-overview .media-record-grid .record-tile h3{font-size:13px}.journal-overview .media-record-grid .memory-meta{font-size:7px}.journal-overview .text-record-list{max-height:100%;grid-template-columns:repeat(2,minmax(0,1fr))}.journal-overview-content .empty-state{padding:25px 14px}.journal-overview-content .empty-state h3{font-size:22px}.media-pagination{gap:15px;font-size:11px}}
@media(max-height:700px){.journal-overview{padding-top:15px}.journal-overview .section-top h2{font-size:27px;margin:8px 0}.journal-overview .journal-category-tabs{margin:0 0 12px}.journal-overview .media-record-grid .memory-image{height:clamp(50px,11dvh,85px)}.journal-overview .media-record-grid{gap:11px 13px}.journal-overview .media-record-grid .memory-title{font-size:13px}.journal-overview .media-record-grid .memory-meta{display:none}}
@media(max-height:510px){.journal-overview .section-top h2{font-size:22px;margin:5px 0}.journal-overview .journal-category-tabs{margin:0 0 8px}.journal-overview .journal-category-tabs .tab{padding:5px 0;font-size:11px}.journal-overview .media-record-grid>*:nth-child(n+5){display:none}.journal-overview .media-record-grid .memory-image{height:55px}.journal-overview .media-record-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.journal-overview .media-record-grid .memory-title{font-size:11px}.journal-overview-content .empty-state{padding:8px}.journal-overview-content .empty-state .empty-icon,.journal-overview-content .empty-state p{display:none}.journal-overview-content .empty-state h3{font-size:17px;margin:5px}.journal-overview-content .empty-state .btn{min-height:30px;padding:5px 10px;font-size:10px}}
@media(prefers-reduced-motion:reduce){.sky-star,.sky-meteor{animation-duration:calc(var(--duration) * 2)!important}}
.journal-overview .media-record-grid .record-tile-actions,.journal-overview .media-record-grid .record-tile .memory-meta{display:none}.journal-overview .media-record-grid .memory-title,.journal-overview .media-record-grid .record-tile h3{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.5}.journal-overview .media-record-grid .record-tile{padding-bottom:3px}
@media(max-height:510px){.journal-overview .media-record-grid .memory-image{height:35px}.journal-overview .text-record-list .record-tile-actions,.journal-overview .text-record-list .memory-meta{display:none}.journal-overview .text-record-list .blank-cover{height:60px;min-height:0;font-size:19px}.journal-overview .text-record-list .record-tile{padding-bottom:5px}}
@media(max-height:510px){.journal-overview{padding-top:8px;padding-bottom:8px}.journal-overview .section-top{margin-bottom:0}.journal-overview .media-record-grid .memory-image{height:30px}}
.photo-note-modal{width:min(520px,92vw)}.photo-note-body{padding:20px 24px;max-height:76dvh}.photo-note-image{width:100%;height:min(38dvh,330px);object-fit:contain;background:#eee5d9;border-radius:2px;margin-bottom:20px}.photo-note-body .field{margin-bottom:10px}.photo-note-body .field input{font-size:14px}.photo-note-options{display:flex;justify-content:space-between;align-items:center;gap:15px;font-size:12px;color:var(--muted);margin:12px 0}.photo-note-options input{accent-color:var(--red)}.photo-note-buttons{display:flex;justify-content:flex-end;gap:12px;margin-top:21px}.photo-note-caption{font:20px/1.9 var(--kai);text-align:center;margin:8px 0;overflow-wrap:anywhere}.photo-note-card .memory-title{font-family:var(--kai)}
@media(max-width:760px){.photo-note-body{padding:17px 18px}.photo-note-image{height:min(36dvh,300px);margin-bottom:17px}.photo-note-body .field input{font-size:16px}.photo-note-options{font-size:11px}.photo-note-buttons{margin-top:17px}.photo-note-caption{font-size:19px}}
@media(max-height:500px){.photo-note-modal .modal-head{padding:10px 18px}.photo-note-body{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:center;padding:14px 18px;max-height:72dvh}.photo-note-image{height:52dvh;margin:0}.photo-note-buttons{margin-top:12px}.photo-note-caption{font-size:17px}}
.adaptive-sky{z-index:0;contain:strict}.adaptive-sky-canvas{display:block;width:100%;height:100%;pointer-events:none}#app{position:relative;z-index:1}.photo-date-badge{position:absolute;right:7px;bottom:7px;background:#fffaf0e8;color:#846253;padding:2px 6px;border-radius:2px;font:10px/1.7 var(--sans);letter-spacing:.5px;pointer-events:none}.photo-note-date-field small{font-size:10px;color:var(--muted);font-weight:400}.photo-note-view-date{display:block;text-align:center;font:12px var(--sans);letter-spacing:1px;color:var(--muted);margin:4px 0 10px}.photo-note-image{height:min(33dvh,300px)}
@media(max-width:760px){.photo-note-image{height:min(27dvh,240px)}.photo-date-badge{font-size:8px;right:4px;bottom:4px;padding:1px 4px;letter-spacing:0}.photo-note-view-date{font-size:11px}}
@media(max-height:500px){.photo-note-image{height:52dvh}.photo-note-date-field{margin-bottom:8px}.photo-note-body .field>span{font-size:11px}.photo-note-body .field input{padding:6px 9px}.photo-note-options{margin:8px 0}.photo-note-buttons{margin-top:10px}}
.sky-keepsakes{position:absolute;inset:0;pointer-events:none}.sky-keepsake{position:absolute;pointer-events:none;opacity:.67;filter:drop-shadow(0 3px 7px #a77e6b0a);animation:keepsake-breathe 7s ease-in-out infinite}.sky-keepsake[hidden]{display:none}.sky-keepsake svg{display:block;width:100%;height:100%;overflow:visible}.sky-cat .cat-tail{transform-origin:62px 93px;animation:cat-tail-sway 6s ease-in-out infinite}.sky-love{animation-delay:-2s}.sky-love-small{animation-delay:-4s;opacity:.5}@keyframes keepsake-breathe{0%,100%{opacity:.55}50%{opacity:.75}}@keyframes cat-tail-sway{0%,100%{transform:rotate(-3deg)}50%{transform:rotate(5deg)}}
@media(prefers-reduced-motion:reduce){.sky-keepsake,.sky-cat .cat-tail{animation:none!important}}
.photo-note-gallery{min-width:0}.photo-note-thumbs{display:flex;gap:7px;overflow:auto;padding:0 0 10px;margin-top:-10px}.photo-note-thumbs button{flex:0 0 42px;height:43px;background:transparent;border:1px solid transparent;padding:2px;border-radius:2px}.photo-note-thumbs button.active{border-color:var(--red)}.photo-note-thumbs img{width:100%;height:100%;object-fit:cover}.photo-note-original{margin:12px 0;font-size:11px;color:var(--muted)}.photo-note-original summary{cursor:pointer}.photo-note-original>div{white-space:pre-wrap;overflow-wrap:anywhere;max-height:180px;overflow:auto;font-size:13px;line-height:2;margin-top:8px;color:var(--ink)}
/* Journal heading animation and rose-pink masthead. */
.site-header .brand{font-size:44px;color:#cf7195;letter-spacing:-1.6px;line-height:1.1}.site-header .brand-dot{color:inherit}
.journal-overview .section-top.journal-heading{display:grid;grid-template-columns:minmax(0,1fr) minmax(190px,260px) minmax(0,1fr);align-items:center;gap:20px;flex-shrink:0}
.journal-heading>.text-link{justify-self:end;align-self:end;margin-bottom:12px;white-space:nowrap}
.journal-walk{width:100%;height:164px;margin:0;pointer-events:none;mask-image:radial-gradient(ellipse 78% 85% at 50% 53%,#000 48%,transparent 86%)}
.journal-walk picture{display:block;width:100%;height:100%}.journal-walk img{display:block;width:100%;height:100%;object-fit:contain}
@media(max-width:1050px) and (min-width:761px){.site-header .brand{font-size:39px}.journal-overview .section-top.journal-heading{grid-template-columns:minmax(0,1fr) 225px minmax(0,1fr);gap:12px}.journal-walk{height:155px}}
@media(max-width:760px){.site-header .brand{font-size:34px}.journal-overview .section-top.journal-heading{grid-template-columns:minmax(0,1fr) 122px;gap:0 8px;align-items:center;margin-bottom:8px}.journal-heading>.text-link{grid-column:2;justify-self:end;align-self:center;margin:0 0 5px;font-size:10px}.journal-walk{height:106px;grid-column:2;grid-row:1}.journal-heading .eyebrow{font-size:8px;letter-spacing:1.5px}.journal-heading .page-intro{font-size:10px;line-height:1.8;margin-bottom:0}.journal-overview .section-top.journal-heading h2{font-size:28px}.home-screen .site-header .brand{font-size:34px}}
@media(max-width:380px){.home-screen .site-header .brand,.site-header .brand{font-size:30px}.journal-overview .section-top.journal-heading{grid-template-columns:minmax(0,1fr) 104px}.journal-walk{height:94px}}
@media(max-height:650px){.journal-walk{height:105px}.journal-overview .section-top.journal-heading h2{margin:7px 0}}
@media(max-height:510px){.journal-walk{height:68px}.journal-heading>.text-link{margin-bottom:4px}}
/* Blend the illustration's paper into the page, then dissolve the street edges. */
.journal-walk{mix-blend-mode:multiply;-webkit-mask-image:linear-gradient(to right,transparent 0%,#000 17%,#000 83%,transparent 100%),linear-gradient(to bottom,transparent 0%,#000 14%,#000 87%,transparent 100%);mask-image:linear-gradient(to right,transparent 0%,#000 17%,#000 83%,transparent 100%),linear-gradient(to bottom,transparent 0%,#000 14%,#000 87%,transparent 100%);-webkit-mask-composite:source-in;mask-composite:intersect}
.journal-walk img{filter:grayscale(1) contrast(1.15) brightness(1.12)}
.journal-walk{background:var(--cream);mix-blend-mode:normal;isolation:isolate}.journal-walk img{mix-blend-mode:multiply}
/* Unified dated journal, with compact entries rather than duplicate full cards. */
.journal-timeline{list-style:none;margin:0;max-width:890px;padding:0 0 5px}.timeline-item{position:relative;padding:0 0 24px}.timeline-month{font:italic 24px var(--serif);color:var(--red);padding:8px 0 20px}.timeline-row{display:grid;grid-template-columns:78px minmax(0,1fr);gap:20px}.timeline-day{font:30px var(--serif);color:#a98c83;text-align:center;position:relative;padding-top:8px}.timeline-day:after{content:'';position:absolute;right:-12px;top:16px;width:5px;height:5px;border-radius:50%;background:#cb8d9c}.timeline-day small{display:block;font:10px var(--sans);margin-top:5px}.timeline-day>span{font:11px var(--sans)}.timeline-entry{border-left:1px solid #ddc7c4;border-bottom:1px solid var(--line);padding:10px 0 22px 22px;min-width:0}.timeline-title{display:block;font:25px/1.5 var(--serif);margin:9px 0}.timeline-text-heading{display:flex;align-items:center;gap:16px;color:var(--muted);font-size:10px}.timeline-text p{font-size:12px;color:var(--muted);line-height:1.9;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;white-space:pre-line}.timeline-text .text-link{font-size:11px}.timeline-media .photo-note-card{width:100%;display:grid;grid-template-columns:125px minmax(0,1fr);grid-template-rows:auto 1fr;column-gap:20px;align-items:start}.timeline-media .memory-image{grid-row:1/3;width:125px;height:100px;aspect-ratio:auto}.timeline-media .memory-title{font:21px/1.6 var(--serif);margin:5px 0 8px;white-space:normal}.timeline-media .memory-meta{font-size:9px;letter-spacing:.3px}.timeline-media .memory-tag{font-size:8px;left:5px;top:5px;padding:2px 5px}.timeline-media .photo-date-badge{display:none}.timeline-compact .timeline-month{font-size:18px;padding:3px 0 11px}.timeline-compact .timeline-item{padding-bottom:12px}.timeline-compact .timeline-row{grid-template-columns:55px minmax(0,1fr);gap:14px}.timeline-compact .timeline-entry{padding:5px 0 12px 18px}.timeline-compact .timeline-day{font-size:23px}.timeline-compact .timeline-media .photo-note-card{grid-template-columns:90px minmax(0,1fr);column-gap:15px}.timeline-compact .timeline-media .memory-image{width:90px;height:70px}.timeline-compact .memory-title,.timeline-compact .timeline-title{font-size:18px}.timeline-compact .timeline-text p{-webkit-line-clamp:2;font-size:11px;margin:5px 0}.timeline-more{margin-left:88px;margin-bottom:15px}.journal-overview-content:has(.journal-timeline){overflow:auto;scrollbar-width:thin;scrollbar-color:#d9babd transparent;padding-right:10px}
/* Birthday cover: a small collection of prints with air around each image. */
.carousel-birthday{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:35px;align-items:center;background:transparent}
.carousel-issue-photo.issue-photo-composition{overflow:visible;display:flex;flex-direction:column;align-items:center;justify-content:center;align-self:center;gap:14px;min-width:0;height:min(100%,520px)}
.issue-photo-eyebrow{font:9px var(--sans);letter-spacing:3px;color:var(--muted)}.issue-print-stack{position:relative;width:min(100%,430px);height:330px;flex-shrink:1;min-height:180px}
.issue-print{position:absolute;margin:0;background:#fffdf8;padding:10px 10px 25px;box-shadow:0 10px 25px #74544115;display:flex;align-items:center;justify-content:center}.issue-print img{width:100%;height:100%;object-fit:contain}.issue-print figcaption{position:absolute;bottom:7px;left:10px;right:10px;text-align:center;font:italic 11px var(--serif);color:#a58b7d}.issue-print-0{left:6%;top:6%;width:49%;height:70%;transform:rotate(-7deg)}.issue-print-1{right:2%;top:18%;width:42%;height:62%;transform:rotate(7deg)}.issue-print-2{left:31%;bottom:-2%;width:41%;height:40%;transform:rotate(-3deg)}.issue-date-mark{text-align:center;margin-top:8px}.issue-date-mark strong{font:italic 40px var(--serif);font-weight:400;color:var(--red);letter-spacing:3px}.issue-date-mark span{display:block;font:italic 12px var(--serif);color:var(--muted);margin-top:4px}.carousel-issue-copy{background:transparent;padding:30px 6%;gap:20px;border-left:1px solid #dfd0c6}.carousel-issue-copy .issue-large-number{font-size:37px;opacity:.65}.carousel-issue-copy h2{font-size:clamp(25px,2.7vw,37px)}
/* Reader and live preview share the same saved two/three-column album. */
.birthday-photo-grid{display:grid;grid-template-columns:repeat(var(--album-columns,2),minmax(0,1fr));gap:22px;align-items:start;max-width:920px;margin:26px auto}
.birthday-photo-grid .photo-block{margin:0;display:block;min-width:0;overflow:hidden}.birthday-photo-grid .photo-inner{max-width:340px;margin:auto}.birthday-photo-grid .styled-photo{height:auto;max-height:300px;object-fit:contain;width:100%}.birthday-photo-grid .photo-story{margin-top:18px}.birthday-photo-grid .photo-story h3{font-size:20px}.birthday-photo-grid .photo-story .prose{font-size:12px;line-height:1.9}.birthday-photo-grid .field-hint{font-size:11px}.birthday-photo-grid .photo-story-meta{font-size:10px}
.preview-frame .birthday-photo-grid{gap:12px}.preview-frame .birthday-photo-grid .photo-block{padding:12px!important}.preview-frame .birthday-photo-grid .styled-photo{max-height:210px}
@media(max-width:760px){.timeline-row{grid-template-columns:44px minmax(0,1fr);gap:12px}.timeline-entry{padding-left:16px}.timeline-month{font-size:21px}.timeline-day{font-size:24px}.timeline-media .photo-note-card{grid-template-columns:90px minmax(0,1fr);column-gap:12px}.timeline-media .memory-image{width:90px;height:78px}.timeline-media .memory-title{font-size:17px}.timeline-title{font-size:21px}.timeline-compact .timeline-row{grid-template-columns:32px minmax(0,1fr);gap:10px}.timeline-compact .timeline-media .photo-note-card{grid-template-columns:65px minmax(0,1fr);column-gap:10px}.timeline-compact .timeline-media .memory-image{width:65px;height:60px}.timeline-compact .memory-title{font-size:14px}.timeline-compact .timeline-entry{padding-left:12px}.timeline-more{margin-left:54px}.journal-category-tabs{gap:24px}.carousel-birthday{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) auto;gap:12px;padding:20px 6%}.carousel-issue-photo.issue-photo-composition{height:100%;gap:8px;width:min(100%,330px);justify-self:center}.issue-print-stack{height:100%;min-height:155px;max-height:225px}.issue-photo-eyebrow{font-size:7px;letter-spacing:2px}.issue-date-mark{margin:0}.issue-date-mark strong{font-size:24px}.issue-date-mark span{display:none}.issue-print{padding:6px 6px 20px}.issue-print figcaption{font-size:8px;bottom:5px}.carousel-issue-copy{border-left:0;border-top:1px solid #dfd0c6;padding:17px 0 0;gap:10px;align-items:center;text-align:center}.carousel-issue-copy h2{font-size:26px}.carousel-issue-copy p{font-size:11px}.carousel-issue-copy .eyebrow{font-size:8px;letter-spacing:1.5px}.carousel-issue-copy .text-link{font-size:10px}.birthday-photo-grid{gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}.birthday-photo-grid .photo-block{padding:12px!important;margin:0!important}.birthday-photo-grid .styled-photo{max-height:210px}.birthday-photo-grid .photo-story h3{font-size:17px}}
@media(max-width:480px){.birthday-photo-grid{grid-template-columns:1fr;max-width:340px}.birthday-photo-grid .styled-photo{max-height:260px}}
@media(max-height:650px){.issue-print-stack{height:225px}.issue-date-mark strong{font-size:28px}.carousel-issue-copy{gap:11px;padding-top:15px;padding-bottom:15px}.carousel-issue-copy h2{font-size:25px}.carousel-issue-copy .issue-large-number{display:none}}
@media(max-height:600px) and (max-width:760px){.carousel-birthday{grid-template-columns:1fr 1fr;grid-template-rows:1fr;gap:18px}.issue-print-stack{min-height:100px}.issue-date-mark{display:none}.carousel-issue-copy{border-top:0;border-left:1px solid #dfd0c6;padding:10px}.carousel-issue-copy h2{font-size:20px}.carousel-issue-copy .eyebrow{display:none}}
/* Keep the chronology view as a right-aligned utility. */
.journal-category-tabs [data-tab="timeline"]{margin-left:auto;order:3;display:inline-flex;align-items:center;gap:7px}.journal-category-tabs [data-tab="timeline"]:before{content:'';width:10px;height:10px;border:1px solid currentColor;border-radius:50%;background:linear-gradient(currentColor,currentColor) 4px 2px/1px 4px no-repeat,linear-gradient(currentColor,currentColor) 4px 5px/3px 1px no-repeat}
/* A smaller title page keeps the first chapter within reach. */
.page:has(>.birthday-article){padding-top:30px}.birthday-article .article-header{padding:28px 20px 24px}.birthday-article .article-header h1{font-size:38px;line-height:1.45;letter-spacing:2px;margin:14px 0}.birthday-article .article-header .eyebrow{font-size:9px;letter-spacing:2px}.birthday-article .article-subtitle{font-size:12px;line-height:1.8;margin:8px 0}.birthday-article .article-date{font-size:12px;margin-top:14px}.birthday-article .article-header+.chapter{padding-top:35px}
/* This seal is an original ancient-script-inspired design, not an attested oracle glyph. */
.poem-page:after{content:none}.poetry-seal{display:block;width:42px;height:45px;margin:25px auto 0;color:#ad3547;transform:rotate(-3deg)}.poetry-seal svg{display:block;width:100%;height:100%}
.brand-lockup{display:flex;align-items:center;gap:10px;flex-shrink:0}.stargazer{display:block;width:74px;height:58px;background:transparent;color:#88736c;border:0;padding:0;cursor:pointer;flex-shrink:0;border-radius:12px}.stargazer svg{width:100%;height:100%;overflow:visible}.stargazer:focus-visible{outline:1px solid #d18b9e;outline-offset:3px}.stargazer-star{transform-origin:79px 14px;animation:header-star-glow 4s ease-in-out infinite}.stargazer-girl{transform-origin:25px 48px;animation:header-look-up 6s ease-in-out infinite}.stargazer-boy{transform-origin:46px 48px;animation:header-look-up 6s 1s ease-in-out infinite}.stargazer-meteor{stroke-dasharray:27;stroke-dashoffset:27;opacity:0}.stargazer-heart{opacity:0;transform-origin:42px 12px}.stargazer.is-wishing .stargazer-meteor{animation:header-shooting-star 1.8s ease-out both}.stargazer.is-wishing .stargazer-heart{animation:header-heart 2.3s ease-out both}.stargazer:hover .stargazer-star{stroke:#bd5b83}
@keyframes header-star-glow{0%,100%{opacity:.45;transform:scale(.85)}50%{opacity:1;transform:scale(1.1)}}@keyframes header-look-up{0%,100%{transform:rotate(0)}50%{transform:rotate(-3deg)}}@keyframes header-shooting-star{0%{stroke-dashoffset:27;opacity:0}20%{opacity:1}55%{stroke-dashoffset:0;opacity:1}100%{stroke-dashoffset:-27;opacity:0}}@keyframes header-heart{0%,20%{opacity:0;transform:translateY(4px) scale(.6)}50%{opacity:.85;transform:translateY(0) scale(.9)}100%{opacity:0;transform:translateY(-6px) scale(1)}}
@media(max-width:1050px){.brand-lockup{gap:5px}.stargazer{width:61px;height:51px}.site-header .nav{gap:16px}}
@media(max-width:760px){.stargazer{width:50px;height:44px}.birthday-article .article-header{padding:23px 13px 20px}.birthday-article .article-header h1{font-size:29px;letter-spacing:1px;margin:12px 0}.birthday-article .article-header .eyebrow{font-size:8px;letter-spacing:1px}.page:has(>.birthday-article){padding-top:24px}.poetry-seal{width:36px;height:39px}.journal-category-tabs [data-tab="timeline"]{gap:5px}}
@media(max-width:480px){.stargazer{display:none}.brand-lockup{gap:0}}
@media(prefers-reduced-motion:reduce){.stargazer *{animation:none!important}.stargazer.is-wishing .stargazer-heart{opacity:.8}}
/* Compact birthday chapters; retain line breaks inside the author's text. */
.birthday-article>.chapter{padding:14px 0 0;margin:0;min-height:0}.birthday-article .article-header+.chapter{padding-top:16px}.birthday-article .chapter-label{margin-bottom:16px}.birthday-article>.chapter:first-of-type>.prose{font-family:"Times New Roman",Times,"SimSun",serif;text-align:center;line-height:1.8;margin:8px 0 18px}.birthday-article .birthday-photo-grid{margin-top:18px;margin-bottom:12px}.birthday-article .poem-page{padding:20px 15px 18px}.birthday-article .poem-title{margin-top:0;margin-bottom:15px}.birthday-article .poetry-seal{margin-top:18px}.birthday-article .letter-content{padding:0 5% 14px}.birthday-article .future-content{padding:8px 15px 14px}.birthday-article .article-footer{padding:26px 0 30px}
/* Four-and-a-half-second birthday overture, using local vector artwork only. */
body.birthday-celebrating{overflow:hidden!important}.birthday-celebration{position:fixed;inset:0;width:100vw;height:100dvh;max-width:none;max-height:none;padding:0;margin:0;border:0;overflow:hidden;color:#a64061;background:radial-gradient(ellipse at 50% 44%,#fffdf4 0%,#fff1e4 45%,#f4d8dd 100%);z-index:2000}.birthday-celebration::backdrop{background:#f7e5df}.birthday-celebration[open]{display:grid;place-items:center;animation:birthday-intro-appear .35s ease-out}.birthday-intro-center{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;text-align:center;width:min(760px,90vw);animation:birthday-cake-arrive .8s cubic-bezier(.2,.7,.3,1) both}.birthday-intro-kicker{font:10px var(--sans);letter-spacing:4px;color:#bc8b79;margin-bottom:15px}.birthday-intro-center h1{font:italic 68px/1.15 "Georgia","Times New Roman",serif;font-weight:400;letter-spacing:-2px;margin:0;color:#b24f72;text-shadow:0 2px #fff8}.birthday-cake{width:min(400px,60vw);height:auto;margin:14px 0 0;filter:drop-shadow(0 15px 28px #b47b5820)}.birthday-intro-center p{font:italic 21px "Times New Roman",serif;color:#a77d6c;margin:3px 0 22px}.birthday-intro-skip{position:absolute;top:28px;right:4%;z-index:5;background:#fff8;border:1px solid #d4aaa650;border-radius:24px;padding:10px 17px;color:#a67570;display:flex;align-items:center;gap:8px;font-size:11px}.birthday-intro-progress{width:90px;height:2px;background:#d5aa9b30;border-radius:2px;overflow:hidden}.birthday-intro-progress span{display:block;height:100%;background:#c47e93;transform-origin:left;animation:birthday-intro-progress 4.5s linear both}.birthday-balloon-field,.birthday-confetti{position:absolute;inset:0;pointer-events:none;overflow:hidden}.birthday-balloon{position:absolute;width:78px;height:96px;background:radial-gradient(ellipse at 28% 25%,#ffffff85,transparent 48%),var(--balloon);border-radius:49% 51% 49% 51%/44% 44% 56% 56%;box-shadow:inset -7px -9px 18px #ab627518;opacity:.8;animation:birthday-balloon-float 5.5s var(--delay) ease-in-out infinite alternate}.birthday-balloon:before{content:'';position:absolute;bottom:-6px;left:calc(50% - 5px);border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:8px solid var(--balloon)}.birthday-balloon:after{content:'';position:absolute;left:50%;top:calc(100% + 6px);width:15px;height:100px;border-left:1px solid #c2a59280;border-radius:50%;transform:rotate(-6deg)}.balloon-0{left:5%;top:20%;transform:rotate(-12deg)}.balloon-1{right:5%;top:18%;transform:rotate(12deg)}.balloon-2{left:14%;top:58%;width:57px;height:72px}.balloon-3{right:14%;top:61%;width:62px;height:79px}.balloon-4{left:22%;top:7%;width:46px;height:59px;opacity:.5}.balloon-5{right:24%;top:5%;width:51px;height:65px;opacity:.5}.balloon-6{left:-2%;top:72%;width:92px;height:112px;opacity:.5}.balloon-7{right:-2%;top:73%;width:92px;height:112px;opacity:.5}.birthday-confetti i{position:absolute;left:var(--left);top:-10%;width:5px;height:10px;border-radius:1px;background:var(--confetti);opacity:.5;animation:birthday-confetti-fall 5s var(--delay) linear infinite}.birthday-confetti i:nth-child(3n){border-radius:50%;width:5px;height:5px}.birthday-flame{transform-box:fill-box;transform-origin:50% 100%;animation:birthday-candle-flicker 1.1s ease-in-out infinite alternate}.birthday-flame:nth-child(2){animation-delay:-.6s}.birthday-flame:nth-child(3){animation-delay:-.3s}
@keyframes birthday-intro-appear{from{opacity:0}to{opacity:1}}@keyframes birthday-cake-arrive{from{opacity:0;transform:translateY(22px) scale(.94)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes birthday-intro-progress{from{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes birthday-balloon-float{from{translate:0 10px;rotate:-4deg}to{translate:0 -25px;rotate:5deg}}@keyframes birthday-confetti-fall{from{transform:translate(0,-10vh) rotate(var(--turn))}to{transform:translate(35px,115vh) rotate(calc(var(--turn) + 230deg))}}@keyframes birthday-candle-flicker{from{transform:scale(.96,1.02) rotate(-3deg);opacity:.85}to{transform:scale(1.03,.97) rotate(3deg);opacity:1}}
@media(max-width:760px){.birthday-intro-center h1{font-size:clamp(39px,9vw,60px);letter-spacing:-1px}.birthday-intro-kicker{font-size:8px;letter-spacing:2.5px}.birthday-cake{width:min(350px,84vw)}.birthday-intro-center p{font-size:18px}.birthday-balloon{width:48px;height:61px}.balloon-0{left:2%;top:22%}.balloon-1{right:2%;top:20%}.balloon-2{left:8%;top:68%;width:38px;height:49px}.balloon-3{right:7%;top:70%;width:42px;height:53px}.balloon-4,.balloon-5{top:8%;width:34px;height:43px}.balloon-6,.balloon-7{top:82%;width:60px;height:75px}.birthday-intro-skip{top:18px;font-size:10px;padding:8px 12px}.birthday-article>.chapter{padding-top:12px}.birthday-article .poem-page{padding:18px 12px 15px}}
@media(max-height:560px){.birthday-intro-center{flex-direction:row;flex-wrap:wrap;justify-content:center;gap:0 20px}.birthday-intro-center h1{font-size:42px;order:0;width:100%}.birthday-intro-kicker{margin-bottom:5px;width:100%}.birthday-cake{width:220px;margin:0}.birthday-intro-center p{font-size:17px}.birthday-intro-progress{display:none}}
@media(prefers-reduced-motion:reduce){.birthday-celebration *,.birthday-celebration[open]{animation:none!important;translate:none!important;rotate:none!important}.birthday-confetti i{display:none}.birthday-intro-progress span{transform:scaleX(1)}}
.birthday-intro-center .birthday-baby-name{font:24px/1.5 var(--kai);letter-spacing:4px;color:#ad5371;margin:13px 0 0}.birthday-salutes{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:1}.birthday-burst{position:absolute;width:1px;height:1px}.birthday-burst i{position:absolute;left:-2px;top:-5px;width:4px;height:11px;background:var(--ray);border-radius:3px;opacity:0;animation:birthday-salute-ray 1.8s var(--burst-delay) cubic-bezier(.18,.65,.3,1) infinite}.birthday-burst i:nth-child(3n){width:5px;height:5px;border-radius:50%}.birthday-burst em{position:absolute;left:-20px;top:-20px;width:40px;height:40px;border:1px solid #d6aa4c65;border-radius:50%;opacity:0;animation:birthday-salute-ring 1.8s var(--burst-delay) ease-out infinite}
@keyframes birthday-salute-ray{0%,8%{opacity:0;transform:translate(0,0) rotate(var(--ray-angle)) scale(.2)}18%{opacity:.95}70%{opacity:.75}100%{opacity:0;transform:translate(var(--dx),calc(var(--dy) + 18px)) rotate(var(--ray-angle)) scale(.55)}}@keyframes birthday-salute-ring{0%,8%{opacity:0;transform:scale(.1)}22%{opacity:.7}80%,100%{opacity:0;transform:scale(2.6)}}
@media(max-width:760px){.birthday-intro-center .birthday-baby-name{font-size:20px;letter-spacing:2px;margin-top:12px}.birthday-burst{transform:scale(.62)}}
@media(max-height:560px){.birthday-intro-center .birthday-baby-name{width:100%;margin:5px 0 0;font-size:18px;order:0}}
@media(prefers-reduced-motion:reduce){.birthday-salutes{display:none}}
/* The birthday scene remains open until the user chooses to enter. */
.birthday-intro-center .birthday-intro-enter{margin-top:4px;border-radius:25px;padding:11px 25px;background:#b35475;border-color:#b35475;color:#fffaf4;font-size:13px;box-shadow:0 7px 20px #b354751c}.birthday-intro-center .birthday-intro-enter:hover{background:#9c4363}.birthday-intro-center .birthday-intro-enter:focus-visible{outline:2px solid #b35475;outline-offset:5px}
@media(max-height:560px){.birthday-intro-center .birthday-intro-enter{font-size:11px;padding:8px 17px;min-height:34px}}
/* Crossfade the birthday scene and its native backdrop together. */
.birthday-celebration.is-leaving{animation:birthday-scene-out .65s cubic-bezier(.3,0,.25,1) both;pointer-events:none}.birthday-celebration.is-leaving::backdrop{animation:birthday-scene-out .65s cubic-bezier(.3,0,.25,1) both}.birthday-celebration.is-leaving .birthday-intro-enter{transform:none}.birthday-celebration.is-leaving button{cursor:default}
@keyframes birthday-scene-out{from{opacity:1}to{opacity:0}}
/* A small kitten hops between the actual word anchors, independently of carousel pause. */
.home-story-eyebrow{padding-top:29px;align-items:flex-end}.story-eyebrow-words{display:inline-block;position:relative;white-space:nowrap;--cat-a:-17px;--cat-for:150px;--cat-stories:245px}.story-hopping-cat{position:absolute;left:0;bottom:17px;width:46px;height:40px;pointer-events:none;animation:story-kitten-hop 6s linear infinite;transform-origin:50% 100%}.story-cat-direction{display:block;width:100%;height:100%;animation:story-kitten-turn 6s steps(1,end) infinite}.story-hopping-cat svg{width:100%;height:100%;overflow:visible}.story-cat-tail{transform-box:fill-box;transform-origin:10% 90%;animation:story-kitten-tail 1.1s ease-in-out infinite alternate}
@keyframes story-kitten-hop{0%,3%{transform:translate(var(--cat-a),0) scale(1.06,.9)}9%{transform:translate(calc((var(--cat-a) + var(--cat-for))/2),-22px) scale(.96,1.04)}18%,20%{transform:translate(var(--cat-for),0) scale(1.07,.9)}23%{transform:translate(var(--cat-for),0) scale(1)}32%{transform:translate(calc((var(--cat-for) + var(--cat-stories))/2),-25px) scale(.96,1.05)}42%,44%{transform:translate(var(--cat-stories),0) scale(1.07,.9)}48%{transform:translate(var(--cat-stories),0) scale(1)}57%{transform:translate(calc((var(--cat-for) + var(--cat-stories))/2),-25px) scale(.96,1.05)}67%,69%{transform:translate(var(--cat-for),0) scale(1.07,.9)}73%{transform:translate(var(--cat-for),0) scale(1)}82%{transform:translate(calc((var(--cat-a) + var(--cat-for))/2),-22px) scale(.96,1.04)}92%,95%{transform:translate(var(--cat-a),0) scale(1.07,.9)}100%{transform:translate(var(--cat-a),0) scale(1.06,.9)}}
@keyframes story-kitten-turn{0%{transform:scaleX(-1)}46%{transform:scaleX(1)}97%,100%{transform:scaleX(-1)}}@keyframes story-kitten-tail{from{transform:rotate(-7deg)}to{transform:rotate(9deg)}}
@media(max-width:760px){.home-story-eyebrow{padding-top:52px}.story-hopping-cat{width:35px;height:31px;bottom:14px}.home-slide .hero .home-story-eyebrow{font-size:8px;letter-spacing:1.7px}}
@media(prefers-reduced-motion:reduce){.story-hopping-cat{animation:none;transform:translate(var(--cat-a),0)}.story-cat-direction{animation:none;transform:scaleX(-1)}.story-cat-tail{animation:none}}
.record-origin{display:block;color:#a0807c;font:10px/1.6 var(--sans);letter-spacing:.3px;margin:5px 0 7px;overflow-wrap:anywhere}.record-origin small{font-size:9px;color:#a09288}.timeline-media .photo-note-card{grid-template-rows:auto auto 1fr}.timeline-media .memory-image{grid-row:1/4}.timeline-media .record-origin{grid-column:2;margin:0 0 6px;font-size:10px}.journal-overview .record-origin{font-size:8px;margin:3px 0}.journal-overview .record-origin small{font-size:7px}.photo-note-body>.record-origin{margin-top:10px}.journal-page .record-origin{margin-bottom:8px}
@media(max-width:760px){.record-origin{font-size:9px}.record-origin small{font-size:8px}.timeline-media .record-origin{font-size:9px}}
/* A single writing room for everyday prose, poems and letters. */
.writing-format{padding:16px;background:#f7eee6;border:1px solid var(--line);margin:20px 0;border-radius:8px}.writing-format h3{font:16px var(--serif);margin:0 0 14px}.writing-format .field{margin-bottom:12px}.writing-toggles{display:flex;align-items:center;gap:18px;flex-wrap:wrap;font:12px var(--sans)}.writing-toggles>label{display:flex;align-items:center;gap:6px}.writing-toggles>.field{margin:0 0 0 auto}.writing-toggles input[type=color]{width:52px;height:30px;padding:3px}.journal-text-input{min-height:300px;white-space:pre-wrap;overflow-wrap:anywhere}.journal-writing{white-space:pre-wrap;overflow-wrap:anywhere;max-width:100%;padding:0 5%}.journal-document .article-header{padding:32px 5% 24px}.journal-document .article-header h1{font-size:clamp(26px,4vw,46px);overflow-wrap:anywhere}.journal-document>.chapter{padding:14px 0 22px;min-height:0}.journal-inner-title{text-align:center;font:24px var(--serif);margin:0 0 22px}@media(max-width:600px){.writing-format{padding:12px}.writing-toggles{gap:12px}.journal-writing{padding:0 3%}.journal-text-input{min-height:260px}}

.btn.danger{background:transparent;color:#a52d40;border:1px solid #d6a2a9}.btn.danger:hover{background:#f9e6e8}.btn.danger:disabled{opacity:.5;cursor:wait}.photo-note-buttons .danger{margin-right:auto}


.auth-shell>.brand{align-self:flex-start;font-size:44px;line-height:1.1;letter-spacing:-1.6px;color:#cf7195}.auth-shell>.brand .brand-dot{color:inherit}@media(max-width:600px){.auth-shell>.brand{font-size:34px;letter-spacing:-1.2px}}

/* A transparent twelve-pose running cycle, travelling fully off stage each lap. */
.auth-shell{overflow:clip}.auth-shell .auth-layout{min-height:540px;padding-bottom:20px}.auth-meadow{position:relative;width:100vw;max-width:none;height:170px;flex:0 0 170px;align-self:center;overflow:hidden;pointer-events:none;isolation:isolate}.auth-meadow-grass{position:absolute;inset:0;background:url('assets/login-chase-meadow.svg') bottom center/1280px 180px repeat-x;opacity:.8}.auth-chase-runner{position:absolute;left:0;top:18px;width:157.193px;height:140px;animation:meadow-crossing 14s linear infinite;will-change:transform}.auth-chase-pair{width:100%;height:100%;background-image:url('assets/login-chase-sheet.webp');background-size:1200% 1200%;background-repeat:no-repeat;animation:meadow-running 1s steps(1,end) infinite;mix-blend-mode:multiply}.auth-meadow:before,.auth-meadow:after{content:'';position:absolute;top:0;bottom:0;width:28px;z-index:2}.auth-meadow:before{left:0;background:linear-gradient(90deg,var(--cream),transparent)}.auth-meadow:after{right:0;background:linear-gradient(270deg,var(--cream),transparent)}
@keyframes meadow-crossing{0%,3%{transform:translateX(-210px)}97%,100%{transform:translateX(calc(100vw + 210px))}}
@keyframes meadow-running{0.000000%{background-position:0.000000% 0.000000%}0.694444%{background-position:9.090909% 0.000000%}1.388889%{background-position:18.181818% 0.000000%}2.083333%{background-position:27.272727% 0.000000%}2.777778%{background-position:36.363636% 0.000000%}3.472222%{background-position:45.454545% 0.000000%}4.166667%{background-position:54.545455% 0.000000%}4.861111%{background-position:63.636364% 0.000000%}5.555556%{background-position:72.727273% 0.000000%}6.250000%{background-position:81.818182% 0.000000%}6.944444%{background-position:90.909091% 0.000000%}7.638889%{background-position:100.000000% 0.000000%}8.333333%{background-position:0.000000% 9.090909%}9.027778%{background-position:9.090909% 9.090909%}9.722222%{background-position:18.181818% 9.090909%}10.416667%{background-position:27.272727% 9.090909%}11.111111%{background-position:36.363636% 9.090909%}11.805556%{background-position:45.454545% 9.090909%}12.500000%{background-position:54.545455% 9.090909%}13.194444%{background-position:63.636364% 9.090909%}13.888889%{background-position:72.727273% 9.090909%}14.583333%{background-position:81.818182% 9.090909%}15.277778%{background-position:90.909091% 9.090909%}15.972222%{background-position:100.000000% 9.090909%}16.666667%{background-position:0.000000% 18.181818%}17.361111%{background-position:9.090909% 18.181818%}18.055556%{background-position:18.181818% 18.181818%}18.750000%{background-position:27.272727% 18.181818%}19.444444%{background-position:36.363636% 18.181818%}20.138889%{background-position:45.454545% 18.181818%}20.833333%{background-position:54.545455% 18.181818%}21.527778%{background-position:63.636364% 18.181818%}22.222222%{background-position:72.727273% 18.181818%}22.916667%{background-position:81.818182% 18.181818%}23.611111%{background-position:90.909091% 18.181818%}24.305556%{background-position:100.000000% 18.181818%}25.000000%{background-position:0.000000% 27.272727%}25.694444%{background-position:9.090909% 27.272727%}26.388889%{background-position:18.181818% 27.272727%}27.083333%{background-position:27.272727% 27.272727%}27.777778%{background-position:36.363636% 27.272727%}28.472222%{background-position:45.454545% 27.272727%}29.166667%{background-position:54.545455% 27.272727%}29.861111%{background-position:63.636364% 27.272727%}30.555556%{background-position:72.727273% 27.272727%}31.250000%{background-position:81.818182% 27.272727%}31.944444%{background-position:90.909091% 27.272727%}32.638889%{background-position:100.000000% 27.272727%}33.333333%{background-position:0.000000% 36.363636%}34.027778%{background-position:9.090909% 36.363636%}34.722222%{background-position:18.181818% 36.363636%}35.416667%{background-position:27.272727% 36.363636%}36.111111%{background-position:36.363636% 36.363636%}36.805556%{background-position:45.454545% 36.363636%}37.500000%{background-position:54.545455% 36.363636%}38.194444%{background-position:63.636364% 36.363636%}38.888889%{background-position:72.727273% 36.363636%}39.583333%{background-position:81.818182% 36.363636%}40.277778%{background-position:90.909091% 36.363636%}40.972222%{background-position:100.000000% 36.363636%}41.666667%{background-position:0.000000% 45.454545%}42.361111%{background-position:9.090909% 45.454545%}43.055556%{background-position:18.181818% 45.454545%}43.750000%{background-position:27.272727% 45.454545%}44.444444%{background-position:36.363636% 45.454545%}45.138889%{background-position:45.454545% 45.454545%}45.833333%{background-position:54.545455% 45.454545%}46.527778%{background-position:63.636364% 45.454545%}47.222222%{background-position:72.727273% 45.454545%}47.916667%{background-position:81.818182% 45.454545%}48.611111%{background-position:90.909091% 45.454545%}49.305556%{background-position:100.000000% 45.454545%}50.000000%{background-position:0.000000% 54.545455%}50.694444%{background-position:9.090909% 54.545455%}51.388889%{background-position:18.181818% 54.545455%}52.083333%{background-position:27.272727% 54.545455%}52.777778%{background-position:36.363636% 54.545455%}53.472222%{background-position:45.454545% 54.545455%}54.166667%{background-position:54.545455% 54.545455%}54.861111%{background-position:63.636364% 54.545455%}55.555556%{background-position:72.727273% 54.545455%}56.250000%{background-position:81.818182% 54.545455%}56.944444%{background-position:90.909091% 54.545455%}57.638889%{background-position:100.000000% 54.545455%}58.333333%{background-position:0.000000% 63.636364%}59.027778%{background-position:9.090909% 63.636364%}59.722222%{background-position:18.181818% 63.636364%}60.416667%{background-position:27.272727% 63.636364%}61.111111%{background-position:36.363636% 63.636364%}61.805556%{background-position:45.454545% 63.636364%}62.500000%{background-position:54.545455% 63.636364%}63.194444%{background-position:63.636364% 63.636364%}63.888889%{background-position:72.727273% 63.636364%}64.583333%{background-position:81.818182% 63.636364%}65.277778%{background-position:90.909091% 63.636364%}65.972222%{background-position:100.000000% 63.636364%}66.666667%{background-position:0.000000% 72.727273%}67.361111%{background-position:9.090909% 72.727273%}68.055556%{background-position:18.181818% 72.727273%}68.750000%{background-position:27.272727% 72.727273%}69.444444%{background-position:36.363636% 72.727273%}70.138889%{background-position:45.454545% 72.727273%}70.833333%{background-position:54.545455% 72.727273%}71.527778%{background-position:63.636364% 72.727273%}72.222222%{background-position:72.727273% 72.727273%}72.916667%{background-position:81.818182% 72.727273%}73.611111%{background-position:90.909091% 72.727273%}74.305556%{background-position:100.000000% 72.727273%}75.000000%{background-position:0.000000% 81.818182%}75.694444%{background-position:9.090909% 81.818182%}76.388889%{background-position:18.181818% 81.818182%}77.083333%{background-position:27.272727% 81.818182%}77.777778%{background-position:36.363636% 81.818182%}78.472222%{background-position:45.454545% 81.818182%}79.166667%{background-position:54.545455% 81.818182%}79.861111%{background-position:63.636364% 81.818182%}80.555556%{background-position:72.727273% 81.818182%}81.250000%{background-position:81.818182% 81.818182%}81.944444%{background-position:90.909091% 81.818182%}82.638889%{background-position:100.000000% 81.818182%}83.333333%{background-position:0.000000% 90.909091%}84.027778%{background-position:9.090909% 90.909091%}84.722222%{background-position:18.181818% 90.909091%}85.416667%{background-position:27.272727% 90.909091%}86.111111%{background-position:36.363636% 90.909091%}86.805556%{background-position:45.454545% 90.909091%}87.500000%{background-position:54.545455% 90.909091%}88.194444%{background-position:63.636364% 90.909091%}88.888889%{background-position:72.727273% 90.909091%}89.583333%{background-position:81.818182% 90.909091%}90.277778%{background-position:90.909091% 90.909091%}90.972222%{background-position:100.000000% 90.909091%}91.666667%{background-position:0.000000% 100.000000%}92.361111%{background-position:9.090909% 100.000000%}93.055556%{background-position:18.181818% 100.000000%}93.750000%{background-position:27.272727% 100.000000%}94.444444%{background-position:36.363636% 100.000000%}95.138889%{background-position:45.454545% 100.000000%}95.833333%{background-position:54.545455% 100.000000%}96.527778%{background-position:63.636364% 100.000000%}97.222222%{background-position:72.727273% 100.000000%}97.916667%{background-position:81.818182% 100.000000%}98.611111%{background-position:90.909091% 100.000000%}99.305556%{background-position:100.000000% 100.000000%}100%{background-position:0% 0%}}
@media(max-width:600px){.auth-shell .auth-layout{padding-bottom:12px}.auth-meadow{height:145px;flex-basis:145px}.auth-chase-runner{top:0;animation-duration:9s}.auth-meadow-grass{background-position:center bottom -8px}}
@media(prefers-reduced-motion:reduce){.auth-chase-runner{animation:none;left:calc(50% - 78px);transform:none}.auth-chase-pair{animation:none;background-position:0% 0%}}
/* 登登连连看: photo-detail matching, separate from journal content editing. */
.journal-game-entry{display:flex;align-items:center;gap:16px;padding:18px 22px;margin:0 0 26px;border:1px solid #e4c9cc;border-radius:12px;background:linear-gradient(110deg,#fff9f1,#f7e7e6);color:var(--ink);transition:transform .2s,border-color .2s}.journal-game-entry:hover{transform:translateY(-2px);border-color:#cf7195}.game-entry-symbol{font:38px var(--serif);color:#c56d88}.journal-game-entry strong{display:block;font:24px var(--kai);color:var(--red)}.journal-game-entry small{display:block;font:11px/1.7 var(--sans);color:var(--muted);margin-top:4px}.game-entry-play{margin-left:auto;white-space:nowrap;color:var(--red);font-size:12px}.journal-game-entry.compact{padding:9px 15px;margin:0 0 15px;border-radius:8px;gap:12px}.compact .game-entry-symbol{font-size:26px}.compact strong{font-size:19px}.compact small{font-size:9px}.compact .game-entry-play{font-size:10px}
.game-page{padding-top:38px}.game-topline{display:flex;align-items:center;justify-content:space-between;gap:25px;margin-bottom:25px}.game-topline h1{font:clamp(34px,4vw,52px)/1.5 var(--kai);margin:12px 0 5px;letter-spacing:3px}.game-topline h1>span{font-size:28px;color:#cd8a9d;display:inline-block;transform:rotate(15deg);margin-left:12px}.game-topline p{color:var(--muted);font-size:13px;line-height:1.8;margin:0}.game-layout{display:grid;grid-template-columns:minmax(0,1.85fr) minmax(225px,1fr);gap:40px;align-items:start}.game-play-area{background:#fffdf8;border:1px solid #e6d9ce;border-radius:18px;padding:20px 18px 22px;min-width:0;box-shadow:0 16px 50px #815a4010}.game-stats{display:flex;gap:18px;justify-content:space-between;padding:3px 10px 16px;border-bottom:1px solid var(--line);font:11px var(--sans);color:var(--muted);flex-wrap:wrap}.game-stats b{font:21px var(--serif);color:var(--red);font-variant-numeric:tabular-nums}.game-board-shell{position:relative;width:100%;max-width:650px;margin:6px auto 0;border-radius:12px;background:radial-gradient(ellipse at center,#f5e7df50,transparent 75%)}.game-board{position:absolute;left:calc(100% / (var(--cols) + 2));right:calc(100% / (var(--cols) + 2));top:calc(100% / (var(--rows) + 2));bottom:calc(100% / (var(--rows) + 2));display:grid;grid-template-columns:repeat(var(--cols),minmax(0,1fr));grid-template-rows:repeat(var(--rows),minmax(0,1fr));gap:6px}.game-tile{position:relative;min-width:0;min-height:0;padding:3px;border-radius:9px;border:1px solid #dbc9b9;background:#fffaf3;box-shadow:0 3px 8px #54352015;transition:transform .15s,box-shadow .15s,border-color .15s;cursor:pointer;overflow:hidden;touch-action:manipulation}.game-tile:hover:not(:disabled){transform:translateY(-2px);border-color:#cf7195}.game-tile:focus-visible{outline:3px solid #af405a;outline-offset:2px;z-index:2}.game-tile.selected{border:3px solid #b83350;padding:1px;box-shadow:0 0 0 3px #e9bac34a;transform:scale(1.035);z-index:1}.game-tile:disabled{cursor:default;opacity:1}.game-tile.hinted{outline:3px solid #aa9e62;outline-offset:1px;animation:game-hint 1s ease-in-out infinite alternate}.game-crop{position:relative;display:block;width:100%;height:100%;overflow:hidden;border-radius:5px;background:#efe3d6}.game-crop img{position:absolute;max-width:none;max-height:none;object-fit:fill;pointer-events:none;user-select:none;-webkit-user-drag:none}.game-link-line{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible;z-index:4}.game-link-line polyline{fill:none;stroke:#be3559;stroke-width:.065;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 .05px #e0a4ad)}.game-link-line circle{fill:#be3559}.game-message{font:12px/1.8 var(--sans);text-align:center;min-height:23px;color:#9d6166;margin:3px 4px 16px}.game-controls{display:flex;justify-content:center;gap:9px;flex-wrap:wrap}.game-controls .btn{font-size:11px;padding:10px 14px}.game-controls .btn>span{color:var(--muted);margin-left:5px}.game-controls button:disabled{opacity:.4;cursor:default}.game-side{padding:26px 10px 15px}.game-side-doodle{font:48px var(--serif);color:#cf8f9c}.game-side h2{font:26px/1.7 var(--kai);margin:10px 0 14px}.game-side>p{color:var(--muted);font:13px/2 var(--sans)}.game-side ul{margin:23px 0 25px;padding-left:18px;color:#96887d;font:12px/2.1 var(--sans)}.game-difficulty{border-block:1px solid var(--line);padding:18px 0;margin-top:25px}.game-difficulty>span{font-size:11px;color:var(--muted)}.game-difficulty>div{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.game-difficulty button{padding:9px 10px;border:1px solid #dfcbbf;background:#fff8ef;border-radius:6px;font-size:11px;color:#9a7b72}.game-difficulty button.active{background:#aa344b;border-color:#aa344b;color:#fff9f1}.game-local-note{font-size:10px!important;margin-top:22px}.game-win,.game-pause-cover{position:absolute;inset:5%;z-index:5;border-radius:14px;background:#fff9f0f5;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:20px;box-shadow:0 12px 35px #6a3c3020}.game-win>span{font-size:26px;color:#cb7296;letter-spacing:8px}.game-win h2{font:clamp(22px,3vw,32px) var(--kai);line-height:1.7}.game-win p{font:12px var(--sans);color:var(--muted)}.game-win .btn,.game-pause-cover .btn{margin-top:15px}.game-pause-cover>span{font:27px var(--kai);color:#ab606b}.game-empty{padding:80px 20px;text-align:center;color:var(--muted)}@keyframes game-hint{to{box-shadow:0 0 0 5px #b8ad7833}}
@media(max-width:760px){.game-layout{grid-template-columns:1fr;gap:20px}.game-topline{align-items:flex-start;gap:10px}.game-topline>.text-link{font-size:10px;white-space:nowrap;margin-top:25px}.game-topline h1{font-size:35px;letter-spacing:1px}.game-topline h1>span{font-size:20px;margin-left:5px}.game-topline p{font-size:11px}.game-play-area{padding:14px 6px 18px;border-radius:12px}.game-side{padding:8px 12px 15px}.game-side-doodle{display:none}.game-side h2{font-size:24px}.game-stats{gap:9px;padding-inline:8px;font-size:10px}.game-stats b{font-size:19px}.game-board{gap:4px}.game-tile{padding:2px;border-radius:6px}.game-crop{border-radius:3px}.game-tile.selected{padding:0}.journal-game-entry{padding:13px;gap:10px}.journal-game-entry strong{font-size:21px}.journal-game-entry small{font-size:10px;max-width:200px}.game-entry-symbol{font-size:30px}.game-entry-play{font-size:10px}.game-page{padding-top:23px}.game-message{font-size:11px}.game-win{inset:3%;padding:12px}.game-win h2{font-size:23px}}
@media(prefers-reduced-motion:reduce){.game-tile,.journal-game-entry{transition:none}.game-tile.hinted{animation:none}}
.game-combo{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;color:#b24665;font:12px/1.8 var(--sans);padding:12px 8px 0}.game-combo small{color:var(--muted);font-size:10px}.game-levels{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;margin:22px 0}.game-levels button{padding:9px 0;border:1px solid #dfcbbf;background:#fff8ef;border-radius:5px;color:#a26574;font:12px var(--sans)}.game-levels button[aria-current]{color:white;background:#b44060;border-color:#b44060}.game-levels button:disabled{opacity:.35;cursor:default}.game-storage-warning{font-size:11px;text-align:center;color:#a44743}.game-stats [data-game-time]{font-variant-numeric:tabular-nums}.game-board-shell{max-width:600px}.game-side ul{line-height:1.9}.game-side{padding-top:10px}@media(max-width:760px){.game-levels{max-width:390px}.game-combo{font-size:10px}.game-board{gap:3px}.game-tile{border-radius:4px}}
.game-reward-editor{margin-top:50px;border-top:1px solid var(--line);padding:35px 0;max-width:860px}.game-reward-editor h2{font:30px var(--kai);margin:12px 0 20px}.game-reward-editor form{max-width:650px}.game-reward-editor textarea{font:20px/1.9 var(--kai);min-height:220px}.game-reward-editor [role=status]{font:12px var(--sans);color:var(--red)}.game-reward-letter{max-width:760px;margin:20px auto 0;padding:50px clamp(22px,6vw,70px);background:linear-gradient(145deg,#fffdf8,#fcf0e9);border:1px solid #e7c8cb;border-radius:8px;box-shadow:0 18px 60px #825c4510;text-align:center}.game-reward-stars{color:#cb7896;font:30px var(--serif);letter-spacing:10px;margin:22px 0}.game-reward-letter h1{font:clamp(27px,4vw,42px)/1.7 var(--kai);color:#a63d57;margin:12px 0 30px;overflow-wrap:anywhere}.game-reward-body{white-space:pre-wrap;text-align:left;font:clamp(18px,2vw,23px)/2.2 var(--kai);overflow-wrap:anywhere;color:#54413e}.game-reward-signature{text-align:right;font:22px/2 var(--kai);white-space:pre-wrap;margin-top:32px;color:#b45d76}.game-reward-actions{display:flex;justify-content:center;gap:25px;flex-wrap:wrap;margin:28px auto}.game-reward-editor #game-reward-preview{margin-top:30px}@media(max-width:760px){.game-reward-letter{padding:30px 22px}.game-reward-editor{margin-top:30px}.game-board{gap:3px}}

.lightbox .modal-body{flex-direction:column;align-items:center;overflow:auto}.lightbox .photo-full-image{max-height:66vh;max-width:100%;flex-shrink:0}.photo-full-tools{display:flex;align-items:center;justify-content:space-between;gap:15px;flex-wrap:wrap;padding:12px 4px 4px;width:100%;max-width:900px}.photo-load-status{font:11px var(--sans);color:#d9ccc1}.photo-full-tools .text-link{font-size:12px;color:#f1b5c8;border-color:#f1b5c866}.photo-note-image[data-action=lightbox]{cursor:zoom-in}

.icp-link{font:11px/1.8 var(--sans);color:var(--muted);text-decoration:none;white-space:nowrap}.icp-link:hover{text-decoration:underline;color:var(--red)}.auth-footer .icp-link{display:block;margin-top:7px}.home-legal{text-align:center;padding:8px 0 0}.site-footer .icp-link{margin-left:auto}@media(max-width:760px){.site-footer .icp-link{margin-left:0;width:100%;text-align:center}}
