@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700;800&family=Fraunces:opsz,wght,SOFT,WONK@9..144,700,50,1;9..144,900,50,1&display=swap');
:root{--ink:#34435e;--muted:#758095;--paper:#fffaf2;--bg:#f9efe5;--rose:#f7ccd5;--blue:#d7e8fa;--yellow:#ffe5a4;--mint:#d9eee1;--lilac:#e7dcf7;--peach:#ffdcc8;--stroke:#36435c;--shadow:0 6px 0 #34435e14,0 14px 30px #57475610}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);font-family:'DM Sans',system-ui,sans-serif;background:radial-gradient(ellipse at 4% 0%,#f9d8e0 0,transparent 31%),radial-gradient(ellipse at 100% 20%,#e0eafa 0,transparent 28%),var(--bg)}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #d5779a;outline-offset:3px}a{color:inherit}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:Fraunces,Georgia,serif;line-height:1.12}h1{font-size:clamp(2.5rem,7vw,5.5rem);letter-spacing:-.05em}h2{font-size:clamp(1.8rem,4vw,2.6rem)}h3{font-size:1.3rem}.shell{max-width:1240px;margin:auto;padding:24px 20px 110px}.topbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:24px}.logo{display:flex;align-items:center;gap:10px;font-family:Fraunces,Georgia,serif;font-weight:900;font-size:2rem;text-decoration:none}.logo-badge{display:grid;place-items:center;width:51px;height:51px;background:var(--rose);border:2px solid var(--ink);border-radius:18px;transform:rotate(-8deg);box-shadow:3px 4px 0 var(--ink)}.topactions{display:flex;gap:9px;flex-wrap:wrap;justify-content:flex-end}.btn{border:2px solid var(--ink);border-radius:15px;padding:11px 17px;background:#fff;box-shadow:3px 4px 0 var(--ink);color:var(--ink);font-weight:800;transition:transform .16s,box-shadow .16s;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:8px}.btn:hover:not(:disabled){transform:translate(1px,2px);box-shadow:2px 2px 0 var(--ink)}.btn.primary{background:var(--yellow)}.btn.rose{background:var(--rose)}.btn.mint{background:var(--mint)}.btn.small{padding:7px 11px;font-size:.85rem;border-radius:11px}.btn.plain{border:0;box-shadow:none;background:transparent}.tag{display:inline-block;border-radius:100px;padding:6px 12px;font-size:.72rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;background:#fff;border:1.5px solid #34435e50}.hero{background:var(--paper);border:2px solid var(--ink);border-radius:30px;padding:clamp(22px,4vw,48px);position:relative;overflow:hidden;box-shadow:var(--shadow);min-height:340px}.hero h1{max-width:650px;margin:18px 0 12px}.hero p{font-size:1.12rem;max-width:550px;line-height:1.65}.hero-art{position:absolute;right:-20px;bottom:-18px;width:40%;max-width:440px;min-width:240px;pointer-events:none}.hero-content{position:relative;z-index:2}.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:26px}.ribbon{background:var(--ink);color:white;display:inline-block;padding:8px 18px;transform:rotate(-2deg);font-size:.78rem;font-weight:800;letter-spacing:.11em}.section-title{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:35px 0 17px}.section-title h2{margin:0}.town{background:linear-gradient(160deg,#dcecf5,#f7e8d7 65%,#d8e9d7);border:2px solid var(--ink);border-radius:28px;overflow:hidden;position:relative;box-shadow:var(--shadow)}.town svg{display:block;width:100%;height:auto}.town svg .building{cursor:pointer;transition:transform .15s;transform-box:fill-box;transform-origin:center}.town svg .building:hover{transform:translateY(-7px)}.town-note{position:absolute;bottom:13px;left:15px;background:#fffdf2e8;border:1.5px solid var(--ink);padding:9px 12px;border-radius:12px;font-size:.76rem;font-weight:800}.module-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px}.module-card{border:2px solid var(--ink);border-radius:22px;min-height:170px;padding:18px;text-align:left;box-shadow:4px 5px 0 var(--ink);transition:transform .15s;display:flex;flex-direction:column;align-items:flex-start;gap:10px;color:var(--ink)}.module-card:hover{transform:translateY(-5px)}.module-card .emoji{font-size:2rem;filter:drop-shadow(2px 3px 0 #34435e20)}.module-card strong{font-family:Fraunces,Georgia,serif;font-size:1.25rem;line-height:1.12}.module-card small{font-size:.82rem;line-height:1.35;color:#485770}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;margin:20px 0 28px}.page-head h1{font-size:clamp(2.3rem,6vw,4.5rem);margin:12px 0}.page-head p{line-height:1.6;max-width:650px}.paper{background:#fffdf8;border:2px solid var(--ink);border-radius:22px;box-shadow:var(--shadow);padding:22px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:17px}.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}.stack{display:grid;gap:14px}.row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.between{justify-content:space-between}.muted{color:var(--muted)}.eyebrow{text-transform:uppercase;letter-spacing:.14em;font-weight:900;font-size:.73rem;color:#9c728b}.card{border:1.5px solid #34435e70;border-radius:17px;padding:17px;background:white;box-shadow:2px 3px 0 #34435e1a;min-width:0}.card h3{margin-bottom:8px}.card p{line-height:1.6}.card .meta{font-size:.8rem;color:var(--muted)}.card img,.card video{width:100%;max-height:350px;object-fit:cover;border-radius:12px;margin-top:10px}.input,.select,.textarea{display:block;width:100%;padding:12px 14px;border:1.7px solid #7b8296;border-radius:12px;background:white;color:var(--ink);margin-top:6px}.textarea{min-height:120px;resize:vertical}label{display:block;font-weight:800;font-size:.91rem}.field{margin-bottom:14px}.field-hint{font-size:.78rem;color:var(--muted);margin-top:6px}.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}.pill{border:1.5px solid #8790a0;background:white;padding:8px 13px;border-radius:999px;color:var(--ink);font-weight:700}.pill.active{background:var(--yellow);border-color:var(--ink)}.memory-card{background:#fff;border:1.5px solid var(--ink);border-radius:19px;padding:17px;box-shadow:3px 4px 0 #34435e1c}.memory-card h3{margin:9px 0}.memory-card p{white-space:pre-wrap;line-height:1.6}.memory-media{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:9px;margin-top:12px}.memory-media img,.memory-media video{width:100%;height:185px;object-fit:cover;border-radius:12px;border:1px solid #e1d8d4}.timeline{display:grid;gap:14px}.notice{padding:15px 18px;border-radius:15px;background:#fff4d3;border:1.5px dashed #b78a53;line-height:1.55}.success{background:#dcf2df;border-color:#7caa85}.auth{max-width:510px;margin:8vh auto 0}.auth h1{font-size:3.2rem}.auth .paper{padding:28px}.auth .logo{margin-bottom:24px}.split{display:flex;gap:10px;align-items:center;justify-content:space-between}.footer{margin-top:48px;text-align:center;color:#7b8293;font-size:.84rem}.empty{padding:32px;border:2px dashed #aab0bb;border-radius:18px;text-align:center;background:#ffffff90}.smalltext{font-size:.82rem}.divider{border:0;border-top:1px dashed #bfc2c9;margin:18px 0}.hidden{display:none!important}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);z-index:999;background:var(--ink);color:#fff;padding:13px 20px;border-radius:13px;max-width:90%;box-shadow:0 9px 28px #3335;display:none}.tabs{display:flex;gap:8px;flex-wrap:wrap}.tabs button{border:1.5px solid var(--ink);background:white;border-radius:11px;padding:8px 12px;font-weight:800}.tabs button.active{background:var(--yellow)}.gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.gallery .memory-card{padding:10px}.gallery .memory-media img{height:160px}.story{background:repeating-linear-gradient(#fffefa,#fffefa 30px,#e6e1db 31px);border:2px solid var(--ink);padding:22px;border-radius:6px;box-shadow:5px 7px 0 #34435e25;transform:rotate(-.5deg)}.story h2{text-align:center;border-bottom:4px double var(--ink);padding-bottom:12px}.comic-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.comic-panel{min-height:160px;border:3px solid var(--ink);background:linear-gradient(145deg,#f7d5df,#dceafb);padding:12px;display:flex;align-items:flex-end;position:relative}.comic-panel span{background:#fff;border:2px solid var(--ink);border-radius:22px;padding:9px;font-weight:700;line-height:1.4;max-width:100%}.comic-panel:before{content:'✦';position:absolute;top:8px;right:12px;font-size:35px;color:#e5a46d}.locked{filter:blur(4px);user-select:none}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.cal-day{min-height:70px;padding:7px;background:white;border:1px solid #d4d2d2;border-radius:9px;font-size:.76rem}.cal-day.today{border:2px solid #c96d8c}.cal-dot{display:block;border-radius:6px;background:#f7ccd5;margin-top:4px;padding:3px;font-size:.68rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.search{max-width:360px}.loading{min-height:30vh;display:grid;place-items:center}@media(max-width:950px){.module-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.hero-art{opacity:.4}.grid3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:650px){.shell{padding:16px 13px 90px}.module-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.module-card{padding:14px;min-height:157px;border-radius:17px}.module-card strong{font-size:1.04rem}.module-card small{font-size:.76rem}.hero{min-height:345px;padding:22px}.hero-art{width:66%;opacity:.18}.hero h1{font-size:3.2rem}.grid2,.grid3{grid-template-columns:1fr}.paper{padding:16px}.page-head{display:block}.page-head h1{font-size:2.6rem}.gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.cal-day{min-height:54px;padding:4px}.cal-dot{font-size:.6rem}.topbar{align-items:flex-start}.topactions{gap:4px}.topactions .btn{font-size:.75rem;padding:8px}.town-note{font-size:.62rem}.auth{margin-top:2vh}}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
/* 2H20 — Interface scrapbook illustrée, fidèle à la référence */
:root{--ink:#18243b;--bg:#f5ecde;--paper:#fffaf2;--shadow:0 7px 20px #36445b18}body{background:#e8e6e0;color:var(--ink)}h1,h2,h3{font-family:'Trebuchet MS','DM Sans',sans-serif;letter-spacing:-.045em;font-weight:900}.app-frame{display:grid;grid-template-columns:232px minmax(0,1fr);max-width:1700px;min-height:100vh;margin:auto;background:radial-gradient(ellipse at 70% 0%,#d2dcfc,transparent 36%),radial-gradient(ellipse at 100% 60%,#fcd0b8,transparent 35%),#f8f0df;box-shadow:0 0 45px #313a4d18}.sidebar{background:#fffaf2ec;border-right:1px solid #ddd1c4;padding:22px 12px;display:flex;flex-direction:column;gap:16px;position:sticky;top:0;height:100vh;overflow:auto}.brand-logo{color:#111f36;text-decoration:none;position:relative;display:flex;flex-direction:column;align-items:center;margin:7px 0 19px;transform:rotate(-4deg)}.brand-logo strong{font-size:3.8rem;line-height:1;font-weight:1000;letter-spacing:-.11em;text-shadow:3px 3px 0 #f89f9f}.brand-logo small{font-size:.68rem;font-weight:900;letter-spacing:.06em}.brand-crown{font-size:1.4rem;color:#ecb752;transform:rotate(15deg);margin-left:-68px;margin-bottom:-4px}.side-nav{display:grid;gap:3px}.nav-link{display:flex;align-items:center;gap:13px;padding:10px 11px;background:transparent;border:0;border-radius:13px;text-align:left;font-weight:750;color:#26324b;min-height:42px;font-size:.87rem}.nav-link:hover{background:#f2e9f3}.nav-link.active{background:#a8bdf1;color:#142238;box-shadow:inset 0 -2px 0 #6c8ed5}.nav-glyph{font-size:1.35rem;width:25px;text-align:center;line-height:1}.side-profile{margin-top:auto;border:1px solid #ebdfd3;background:#fffdf6;padding:13px;border-radius:19px;text-align:center;box-shadow:0 5px 12px #34435e10}.online-dot{display:inline-block;width:10px;height:10px;border-radius:50%;background:#2cc59d;margin-right:6px}.side-profile small{font-size:.7rem}.profile-faces{display:flex;justify-content:center;align-items:center;gap:9px;margin:12px 0 3px}.profile-faces span{width:65px;height:65px;display:grid;place-items:center;border-radius:50%;font-size:2.6rem;background:#d9e8fa;border:3px solid #fff;box-shadow:0 2px 7px #34435e30}.profile-faces span:first-child{background:#fbd1c5}.profile-faces b{color:#f06d8b}.profile-names{font-weight:800;font-size:.75rem}.profile-names span{color:#e57892}.signout{background:none;border:0;color:#67738a;font-size:.72rem;text-decoration:underline;margin-top:12px}.main-panel{min-width:0}.app-content{padding:15px 18px 40px}.mobile-top,.mobile-dock{display:none}.dashboard{max-width:1420px;margin:auto}.welcome-hero{height:225px;border-radius:25px;position:relative;display:flex;align-items:center;overflow:hidden;background:radial-gradient(circle at 12% 18%,#c0d5fc 0,#d3d6f8 30%,transparent 55%),linear-gradient(120deg,#f5d4d6,#fff0bd 70%,#d7eaf0);margin-bottom:14px;box-shadow:0 5px 14px #36435e10}.welcome-hero:after{content:'♡  ✧  ♡  ✧';position:absolute;right:17%;top:16px;font-size:2rem;transform:rotate(-11deg);opacity:.35;pointer-events:none}.hero-couple{height:100%;width:43%;background:url('assets/nous-illustration.webp') center 43% / cover no-repeat;flex:none;mask-image:linear-gradient(to right,#000 72%,transparent 100%)}.welcome-copy{z-index:2;margin-left:-35px;flex:1;min-width:0}.welcome-copy h1{font-family:'Trebuchet MS','DM Sans',sans-serif;font-size:clamp(1.7rem,3.4vw,3.5rem);line-height:.98;letter-spacing:-.06em;margin:4px 0 9px;transform:rotate(-2deg)}.welcome-copy h1 em{font-style:normal;background:#ffe28e;box-decoration-break:clone;padding:1px 8px;border-radius:7px}.welcome-copy p{font-size:.98rem;font-weight:700;margin:0}.hero-doodle{color:#f05e83;font-size:1.3rem}.welcome-buttons{display:flex;gap:8px;margin-top:16px;flex-wrap:wrap}.welcome-buttons button{background:#fffdf7;border:1px solid #d6c6bd;border-radius:12px;padding:8px 11px;font-size:.75rem;font-weight:900;color:#273451;box-shadow:0 3px 0 #36435e12}.welcome-buttons button:first-child{background:#f6c6d5}.sticky-note{align-self:flex-start;margin:15px 17px 0 0;transform:rotate(5deg);background:#ffe9a8;padding:12px 13px;box-shadow:3px 5px 9px #28304626;font-size:.78rem;line-height:1.55;min-width:138px;z-index:2}.sticky-note span{display:block;text-align:center;font-size:1rem;font-weight:900}.dash-layout{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(260px,.9fr);gap:14px;align-items:start}.dash-main,.dash-side{min-width:0;display:grid;gap:14px}.dash-card{background:#fffdf6;border:1px solid #e9ddd0;border-radius:22px;padding:14px;box-shadow:0 6px 16px #36435e16;min-width:0}.dash-title{display:flex;align-items:center;gap:8px;margin-bottom:12px}.dash-title h2{font-size:1.55rem;margin:0;flex:1;letter-spacing:-.055em}.icon-sticker{font-size:1.4rem}.circle-add{background:#a9c7f8;border:0;width:35px;height:35px;border-radius:50%;font-size:1.4rem;font-weight:800}.dash-expand{background:none;border:0;font-size:1.1rem}.dash-calendar{background:#fffaf0}.dash-cal-tools{display:flex;gap:8px;align-items:center;margin-bottom:10px}.dash-cal-tools button{border:1px solid #eee0d4;border-radius:9px;background:#fff;padding:4px 11px;font-weight:800}.dash-cal-tools strong{font-size:.9rem;text-transform:capitalize}.dash-cal-tools .cal-view{margin-left:auto;background:#bce4d4}.dash-cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px;background:#eee4d8;border:1px solid #eee4d8;border-radius:12px;overflow:hidden}.weekday{text-align:center;padding:9px 0;font-size:.67rem;font-weight:900;background:#fff9f1}.day-cell{height:69px;background:#fffaf2;padding:5px;min-width:0;position:relative;font-size:.7rem}.day-cell.today>span{background:#4f8ce8;color:white;border-radius:50%;padding:3px 7px}.day-cell.other{background:#f4eee8}.event-chip{display:block;max-width:100%;background:#f6c2d3;color:#34435e;border:0;border-radius:5px;padding:3px 4px;margin-top:5px;font-size:.6rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:left}.dash-section-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:8px 0 -5px}.dash-section-heading h2{margin:0;font-size:1.5rem}.dash-section-heading span{font-size:.72rem;color:#68718a}.illustrated-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.illustrated-tile{display:flex;flex-direction:column;min-width:0;overflow:hidden;background:var(--tile);border:1px solid #fff9ee;border-radius:17px;text-align:left;padding:0;box-shadow:0 5px 12px #36435e20;color:#1b2b42;transition:transform .2s}.illustrated-tile:hover{transform:translateY(-4px)}.tile-head{display:flex;align-items:center;gap:5px;padding:9px 9px 4px;min-height:45px}.tile-head strong{font-size:.87rem;font-weight:1000;line-height:1.05;letter-spacing:-.03em}.tile-emoji{font-size:1.4rem}.tile-art{height:100px;position:relative;display:grid;place-items:center;background:radial-gradient(ellipse at 25% 35%,#fff9edcc,transparent 60%),repeating-linear-gradient(120deg,#ffffff25 0 12px,transparent 12px 30px);overflow:hidden}.tile-art-photo{background-position:center;background-size:cover}.tile-art>span{font-size:3.7rem;filter:drop-shadow(3px 4px 0 #1c2a3b22);transform:rotate(-8deg)}.tile-art i,.tile-art b{position:absolute;font-size:1.6rem;top:4px;left:12px;color:#e86b8b}.tile-art b{left:auto;right:15px;top:auto;bottom:4px;color:#ffffff}.illustrated-tile p{font-size:.69rem;line-height:1.3;padding:8px 10px 0;margin:0;min-height:40px}.tile-footer{font-size:.71rem;font-weight:900;margin:8px 7px 7px;border-radius:9px;background:#ffffffa8;padding:8px;display:flex;justify-content:space-between;gap:5px}.tile-footer b{font-size:1rem}.dash-side .dash-card{padding:13px}.dash-side .dash-title h2{font-size:1.13rem}.little-badge{background:#f16e93;color:white;border-radius:50%;width:25px;height:25px;display:grid;place-items:center;font-weight:900}.request-card{background:#ffdcc6}.request-content{background:#fff8ee;border-radius:14px;padding:13px;position:relative;margin-top:8px}.request-icon{font-size:2.5rem;float:left;margin-right:10px}.request-content strong{font-size:.9rem}.request-content p{font-size:.77rem;color:#6e7380;margin:6px 0}.request-content button,.adventure-card button,.memory-side button{background:#a6dcc4;border:0;border-radius:10px;padding:9px 13px;font-weight:900;font-size:.74rem;margin-top:8px}.dash-notifications{background:#fffdf8}.notice-line{display:flex;align-items:center;gap:9px;text-align:left;width:100%;background:#fff8f0;border:1px solid #f1e8e0;border-radius:12px;padding:10px 8px;margin:6px 0;color:var(--ink)}.notice-icon{width:36px;height:36px;border-radius:9px;background:#fbd6e2;display:grid;place-items:center;font-size:1.2rem;flex:none}.notice-line>span:nth-child(2){min-width:0;flex:1}.notice-line strong{display:block;font-size:.75rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.notice-line small{display:block;font-size:.66rem;color:#828797}.notice-arrow{font-weight:900}.adventure-card{background:linear-gradient(135deg,#c8d8fc,#b3d9f2)}.adventure-card h2{font-size:1.45rem;margin:8px 0}.adventure-card p{font-size:.84rem}.adventure-card button{background:#ffe19b}.memory-side{background:#fbe4e8}.memory-side h2{font-size:1.3rem;margin:8px 0}.memory-side p{font-size:.85rem}.memory-side button{background:#b8c7f8}.main-panel>.footer,.footer{padding:14px 10px;margin-top:5px}.app-content>.page-head,.app-content>.paper,.app-content>.grid2,.app-content>.row,.app-content>.notice,.app-content>.auth,.app-content>.grid3{max-width:1170px;margin-left:auto;margin-right:auto}.page-head{padding:16px 4px}.page-head h1{font-size:clamp(2rem,4vw,3.7rem)}.paper{border-color:#e2d5c9;border-width:1px}.btn{border-color:#28374d;border-width:1.5px;box-shadow:2px 3px 0 #34435e35}.auth{margin-top:5vh}.town{display:none}
@media(max-width:1100px){.app-frame{grid-template-columns:195px minmax(0,1fr)}.sidebar{padding:15px 7px}.brand-logo strong{font-size:3rem}.nav-link{font-size:.8rem;padding:8px}.dash-layout{grid-template-columns:minmax(0,1fr)}.dash-side{grid-template-columns:repeat(2,minmax(0,1fr))}.welcome-copy h1{font-size:clamp(1.5rem,4vw,2.7rem)}}
@media(max-width:760px){.app-frame{display:block}.sidebar{position:fixed;left:0;top:0;bottom:0;width:245px;z-index:120;transform:translateX(-105%);transition:transform .2s;box-shadow:10px 0 30px #1e284450}.nav-open .sidebar{transform:translateX(0)}.mobile-top{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;background:#fff8ed;border-bottom:1px solid #e8dfd5}.mini-logo{font-weight:1000;text-decoration:none;font-size:1.6rem;letter-spacing:-.08em}.mini-logo span{color:#f06e91}.mobile-menu{border:0;border-radius:12px;background:#c3d4fb;padding:8px 12px;font-weight:900}.mobile-dock{display:flex;position:fixed;bottom:0;left:0;right:0;background:#fffaf1f5;backdrop-filter:blur(12px);border-top:1px solid #ded6cf;justify-content:space-around;z-index:110;padding:7px 5px max(8px,env(safe-area-inset-bottom))}.mobile-dock button{border:0;background:none;display:grid;place-items:center;gap:0;font-size:1.3rem;color:#2a3650}.mobile-dock small{font-size:.58rem;font-weight:900}.app-content{padding:10px 9px 95px}.welcome-hero{height:230px}.hero-couple{width:53%;background-position:49% 35%}.welcome-copy{margin-left:-35px}.welcome-copy h1{font-size:clamp(1.6rem,5vw,2.5rem)}.welcome-copy p{font-size:.8rem}.sticky-note{display:none}.dash-layout{gap:10px}.dash-side{grid-template-columns:1fr 1fr;gap:10px}.dash-side .dash-card{padding:10px}.dash-calendar{padding:9px}.day-cell{height:62px}.illustrated-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.tile-head{padding:7px 6px 3px;min-height:43px}.tile-head strong{font-size:.72rem}.tile-emoji{font-size:1.1rem}.tile-art{height:85px}.illustrated-tile p{font-size:.62rem;padding:6px 7px 0}.tile-footer{font-size:.62rem;padding:6px;margin:5px}.dash-section-heading h2{font-size:1.25rem}}
@media(max-width:460px){.welcome-hero{height:215px}.hero-couple{width:52%}.welcome-copy{margin-left:-30px}.welcome-copy h1{font-size:1.6rem}.welcome-copy p{font-size:.72rem}.welcome-buttons{gap:5px;margin-top:11px}.welcome-buttons button{font-size:.65rem;padding:6px}.dash-side{grid-template-columns:1fr}.illustrated-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.tile-art{height:102px}.tile-head strong{font-size:.82rem}.day-cell{height:56px;padding:3px}.event-chip{font-size:.55rem}.dash-cal-tools strong{font-size:.76rem}.dash-title h2{font-size:1.3rem}.dash-section-heading span{font-size:.65rem}}
@import url('https://fonts.googleapis.com/css2?family=Kalam:wght@400;700&family=Nunito:wght@400;600;700;800;900&display=swap');
.welcome-copy h1{font-family:'Kalam','Trebuchet MS',sans-serif;font-weight:700;line-height:1.08}.dash-title h2,.dash-section-heading h2,.tile-head strong{font-family:'Kalam','Trebuchet MS',sans-serif;font-weight:700}.brand-logo strong{font-family:'Nunito',system-ui,sans-serif;font-weight:1000}
@media print{.sidebar,.mobile-dock,.mobile-top,.btn,.signout{display:none!important}.app-frame{display:block}.app-content{padding:0}.paper,.dash-card{box-shadow:none;break-inside:avoid}}
