:root{--green:#345d43;--muted:#7e8b78;--line:#e3e7db;color:#2e4637;background:#f8f6ef;font-size:15px}body{background:#f8f6ef}.sidebar{width:200px;background:#fcfaf3;padding:30px 19px;border-color:#e8e7dc}.workspace{margin-left:200px}.sidebar .brand{font-size:19px;gap:8px;letter-spacing:0}.sidebar .brand img{width:49px;height:55px;object-fit:contain}.sidebar .brand small{font-size:8px;letter-spacing:2.1px;font-weight:500}.sidebar .nav-label{font-size:10px;margin:43px 0 18px 13px;letter-spacing:1px;color:#939b86}.sidebar .primary-nav{display:grid;gap:8px}.sidebar .nav-item{font-size:13px;font-weight:500;margin:0;padding:14px 13px;border-radius:11px;gap:10px;color:#76836d;transition:background .18s}.sidebar .nav-item svg{width:19px;height:19px}.sidebar .nav-item.active{background:#e6eddb;color:#355a40;box-shadow:inset 0 -3px 0 #d9e3cb;font-weight:650}.side-bottom{font-size:11px}.side-bottom .small-note{font-size:11px;line-height:1.9;margin:25px 10px;color:#8b967d}.topbar{background:#fcfaf5;border-color:#e8e7dd}.journey-topbar{height:78px;padding:0 38px}.town-wordmark{font-size:12px;color:#839076;letter-spacing:.5px}.town-wordmark>span{margin:0 12px;color:#b8bfae}.journal-link{margin-left:auto;display:flex;align-items:center;gap:8px;font-size:11px;color:#78886c}.journal-link svg{width:16px;height:16px}.journey-main{padding:34px 38px 0;max-width:1240px}.page-eyebrow{font-size:9px;letter-spacing:2.3px;font-weight:600;color:#97a183}.welcome-heading{display:flex;justify-content:space-between;align-items:center;margin:8px 0 26px;gap:15px}.welcome-heading h1,.map-heading h1,.journal-heading h1{font-size:31px;font-weight:650;line-height:1.5;letter-spacing:.5px;margin:6px 0 9px}.welcome-heading p,.map-heading p,.journal-heading p{font-size:12px;color:#87917b;line-height:1.9}.date-pill{font-size:10px;border:1px solid #e3e6d8;border-radius:22px;padding:8px 12px;color:#8d977f;white-space:nowrap;background:#fcfaf3}.departure-hero{position:relative;isolation:isolate;min-height:330px;border:1px solid #e3e6d6;border-radius:22px;overflow:hidden;background:#e8edda;display:grid;grid-template-columns:1.15fr 1fr;box-shadow:0 5px 0 #e7e9dc}.departure-hero:before{content:"";position:absolute;z-index:-1;inset:0;background:linear-gradient(90deg,#f4f4e8 0%,#f4f4e8f2 34%,#e9eedb88 65%,#e9eedb20),url('/assets/journey/town-morning.png') center 55%/cover}.departure-copy{padding:35px 0 30px 34px;z-index:1}.destination-label{display:flex;align-items:center;gap:8px;font-size:10px;font-weight:600;color:#829262}.destination-label svg{width:14px;height:14px}.departure-copy h2{font-size:27px;line-height:1.55;font-weight:650;margin:19px 0 12px;max-width:360px;letter-spacing:.5px}.departure-copy>p{font-size:12px;line-height:1.9;color:#7d8b6f;max-width:315px}.lesson-time{display:flex;align-items:center;gap:6px;color:#8b9678;font-size:10px;margin:17px 0 20px}.lesson-time svg{width:13px;height:13px}.primary-journey{display:inline-flex;justify-content:center;align-items:center;gap:20px;background:#3c6348;color:#fffef3;border:1px solid #31583c;border-radius:10px;padding:13px 23px;font-size:12px;font-weight:600;box-shadow:0 4px 0 #294a33;transition:transform .15s,box-shadow .15s}.primary-journey:hover{color:white;background:#365d42;transform:translateY(-1px)}.primary-journey:active{transform:translateY(3px);box-shadow:0 1px 0 #294a33}.hero-companion{position:relative;display:flex;align-items:center;justify-content:flex-end;flex-direction:column;padding:20px 12px 20px 0}.companion-puppy{display:block;object-fit:contain}.home-puppy{width:270px;height:260px;max-width:100%;filter:drop-shadow(0 10px 7px #48573813);animation:puppy-arrive .65s ease-out both}.puppy-bubble{background:#fffdf3ed;border:1px solid #dce3cc;padding:11px 17px;border-radius:15px 15px 5px 15px;font-size:11px;color:#71805c;box-shadow:0 3px 0 #79845e09;margin-bottom:-15px;z-index:1;align-self:flex-end;margin-right:20px}.companion-name{font-size:9px;letter-spacing:1px;color:#748360;background:#fbfaf0b5;padding:5px 11px;border-radius:20px}.journey-stats{display:flex;align-items:center;gap:35px;padding:25px 20px 19px;margin-top:12px;border-bottom:1px dashed #dce3d1}.journey-stats>div{display:flex;align-items:baseline;gap:9px}.journey-stats strong{font-size:26px;font-weight:600;color:#4c6944}.journey-stats span{font-size:11px;color:#929c85}.journey-stats>a{margin-left:auto;display:flex;gap:8px;align-items:center;font-size:10px;color:#89967a}.journey-stats svg{width:14px;height:14px}.section-block{margin-top:35px}.section-title{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:18px}.section-title h2{font-size:19px;line-height:1.5;font-weight:650;margin-top:5px}.section-title>a,.section-title>span{font-size:10px;white-space:nowrap;color:#869575}.region-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.region-card{position:relative;display:block;padding:25px;border:1px solid #dfe6d4;border-radius:17px;background:#edf1e4;box-shadow:0 4px 0 #e1e7d5;transition:transform .18s}.region-card:hover{transform:translateY(-3px);color:inherit}.region-life{background:#f3ede0;border-color:#e8dfca;box-shadow:0 4px 0 #eae0cd}.region-symbol{width:42px;height:42px;border:1px solid #d1ddc1;display:grid;place-items:center;border-radius:13px;background:#f8faef;color:#7e9563;float:right}.region-life .region-symbol{color:#ac8e60;border-color:#e1d6be;background:#fbf5e9}.region-caption{font-size:8px;letter-spacing:1.6px;color:#98a386}.region-card h3{font-size:22px;font-weight:650;margin:11px 0 8px}.region-card p{font-size:11px;color:#8c987e;line-height:1.8}.region-card-bottom{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:9px;color:#879573;border-top:1px solid #dce4cf;padding-top:17px;margin-top:21px}.region-life .region-card-bottom{border-color:#e3dac6;color:#9c896a}.ready-lessons{display:grid;grid-template-columns:1fr 1fr;gap:12px}.ready-card{display:flex;gap:14px;align-items:center;padding:18px;border:1px solid #e2e7d9;border-radius:12px;background:#fffdf7;min-width:0}.ready-card>div{min-width:0}.ready-card h3{font-size:13px;font-weight:600;line-height:1.6}.ready-card p{font-size:10px;color:#9aa48e;margin-top:6px;line-height:1.6}.ready-card>span:last-child{margin-left:auto;color:#9aab83}.ready-icon{background:#eef2e4;color:#8a9b73;padding:9px;border-radius:10px}.ready-icon svg{width:16px;height:16px}.companion-note{display:flex;align-items:center;gap:20px;padding:15px 22px;background:#f0f0e3;border:1px solid #e3e5d4;border-radius:16px;margin-top:32px}.note-puppy{width:75px;height:86px}.companion-note h2{font-size:15px;margin-bottom:8px}.companion-note p{font-size:10px;line-height:1.9;color:#929b83}.companion-note>a{font-size:10px;color:#7c8d69;margin-left:auto;white-space:nowrap}.journey-footer{font-size:9px;padding:27px 0;line-height:1.8;color:#a0a88f}.journey-empty{padding:40px;border:1px dashed #d9e2cd;background:#fcfcf3;border-radius:16px;margin:20px 0;text-align:center}.journey-empty h2{font-size:20px}.journey-empty p{font-size:12px;color:#8d9b80;line-height:1.9;margin:15px 0 22px}.journey-empty button:not(.primary-journey){padding:12px 20px;background:#e4ecd8;border-radius:8px;font-size:12px}.storage-warning{font-size:12px;padding:12px 18px;border:1px solid #e3d2ae;color:#957844;background:#fff4d9;border-radius:10px;margin-bottom:20px}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
/* Map: places are stops, the connecting line is a navigation aid. */
.map-heading{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:25px}.map-heading .page-eyebrow{font-size:9px}.map-guide{position:relative;display:flex;align-items:center;flex-shrink:0}.map-puppy{width:125px;height:150px}.map-guide>.map-guide-copy{font-size:10px;line-height:1.8;color:#929d80;margin-left:0}.map-count{font-size:10px;color:#96a083;margin-top:15px}.map-count>span{background:#e8eddc;color:#7b8c64;padding:5px 9px;margin-left:10px;border-radius:20px;display:inline-block}.map-controls{display:flex;flex-wrap:wrap;gap:18px;align-items:center;justify-content:space-between;margin-bottom:22px}.region-tabs{display:flex;gap:7px;background:#eaeedf;padding:5px;border-radius:12px}.region-tabs button{padding:11px 15px;border-radius:9px;font-size:13px;color:#8d987d;min-width:135px}.region-tabs button>span{display:block;font-size:9px;margin-top:5px;font-weight:400;opacity:.8}.region-tabs button[aria-pressed=true]{background:#fffdf6;box-shadow:0 2px 4px #68744d15;color:#3c6142;font-weight:650}.map-filters{display:flex;align-items:center;gap:15px;flex-wrap:wrap}.map-search input{font:inherit;font-size:11px;background:#fffdf7;border:1px solid #dfe4d3;padding:12px 14px;border-radius:10px;width:255px;color:#556b46;max-width:100%}.available-filter{display:flex;align-items:center;gap:6px;font-size:10px;color:#839370;white-space:nowrap}.available-filter input{accent-color:#4b7148;width:15px;height:15px}.map-region-banner{display:flex;align-items:center;justify-content:space-between;gap:20px;background:linear-gradient(90deg,#e7eddbf7,#e7eddbdc,#e7eddb99),url('/assets/journey/town-morning.png') center 43%/cover;border-radius:16px;border:1px solid #dbe4cc;padding:25px 28px;margin-bottom:24px}.map-region-banner h2{font-size:25px;letter-spacing:2px;font-weight:650;margin:7px 0 10px}.map-region-banner p{font-size:10px;line-height:1.8;color:#839470}.map-region-total{font-size:31px;color:#7b925f;font-weight:600;white-space:nowrap}.map-region-total small{font-size:10px;font-weight:400;display:block;color:#8e9d7b;margin-top:6px}.place-card{border:1px solid #e0e6d7;background:#fffdf7;border-radius:15px;margin-bottom:15px;overflow:hidden;box-shadow:0 3px 0 #e8ebdf}.place-card summary{display:flex;align-items:center;gap:17px;padding:20px 24px;list-style:none;cursor:pointer}.place-card summary::-webkit-details-marker{display:none}.place-card summary:focus-visible{outline:2px solid #678555;outline-offset:-5px}.place-marker{display:grid;place-items:center;width:46px;height:46px;background:#f0f2e8;border:1px solid #e2e7d7;border-radius:13px;color:#9cae85;flex-shrink:0}.place-ready .place-marker{background:#e4ecd7;color:#739353}.place-description{display:grid;gap:6px;flex:1;min-width:0}.place-order{font-size:8px;letter-spacing:1.5px;color:#a2ab92}.place-description strong{font-size:16px;font-weight:650}.place-description>span:last-child{font-size:10px;color:#94a086}.place-progress{font-size:11px;color:#849572;text-align:right;white-space:nowrap}.place-progress small{display:block;font-size:9px;color:#a0aa93;margin-top:8px}.place-chevron{color:#96a683;margin-left:4px;transition:transform .2s}.place-card[open] .place-chevron{transform:rotate(180deg)}.place-card[open] summary{border-bottom:1px solid #edf0e3}.lesson-trail{position:relative;list-style:none;padding:12px 30px 16px;margin:0;background:#f8f9ef}.lesson-trail:before{content:"";position:absolute;top:44px;bottom:52px;left:60px;width:0;border-left:3px dashed #dbe3cd}.trail-stop{display:flex;position:relative;align-items:center;gap:20px;min-height:126px;padding:17px 0}.trail-number{position:relative;width:62px;height:62px;display:grid;place-items:center;flex-shrink:0;border-radius:50%;background:#eef1e5;border:3px solid #e1e7d4;box-shadow:0 4px 0 #d5ddc8;font-size:16px;font-weight:600;color:#a8b098;z-index:1}.is-ready .trail-number{background:#7a9b61;border-color:#edf2e1;box-shadow:0 4px 0 #5a7946;color:#fffdf2}.is-complete .trail-number{background:#d7b478;border-color:#fcf1d4;box-shadow:0 4px 0 #b28c53}.trail-number svg{width:25px;height:25px;stroke-width:2}.trail-copy{flex:1;min-width:0}.trail-label{font-size:9px;color:#9baa84}.is-ready .trail-label{color:#7e9a62}.is-complete .trail-label{color:#b3975c}.trail-copy h3{font-size:15px;font-weight:600;line-height:1.65;margin:7px 0}.trail-copy p{font-size:11px;color:#95a085;line-height:1.8;max-width:520px}.trail-meta{display:block;font-size:9px;color:#a6af98;margin-top:8px}.trail-enter{border-radius:9px;background:#e4ecd7;border:1px solid #d2dfc2;box-shadow:0 3px 0 #c8d8b5;padding:10px 16px;font-size:11px;color:#597747;white-space:nowrap;display:flex;gap:15px;align-items:center}.trail-enter:hover{background:#dae7ca}.trail-wait{font-size:10px;padding:10px 16px;color:#a6af98;border:1px dashed #e0e5d5;border-radius:9px;white-space:nowrap}.map-footnote{font-size:10px;line-height:1.9;color:#9aa58b;margin-top:24px}
/* Journal: each stamp is derived from one completed lesson. */
.journal-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;background:linear-gradient(120deg,#f5f0df,#eef0df);padding:20px 30px;border:1px solid #e5e5d2;border-radius:20px}.journal-heading .page-eyebrow{font-size:9px}.journal-puppy{width:155px;height:170px}.stamp-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.stamp-card{padding:25px 20px;text-align:center;background:#fffdf5;border:1px solid #e5dfc9;border-radius:14px;box-shadow:0 4px 0 #ece6d6;position:relative}.stamp-seal{height:83px;width:83px;margin:0 auto 17px;border:2px dashed #c4ad75;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:5px;color:#ac925b;box-shadow:0 0 0 5px #f4efdf;background:#faf5e6;transform:rotate(-8deg)}.stamp-seal svg{width:27px;height:27px}.stamp-seal span{font-size:9px;letter-spacing:1px}.stamp-place{font-size:9px;color:#a69a75;letter-spacing:1px}.stamp-card h3{font-size:14px;line-height:1.8;margin:10px 0;color:#6c7056}.stamp-card>p:last-of-type{font-size:9px;color:#a4ab93}.stamp-card>a{display:inline-block;margin-top:18px;font-size:10px;color:#8b9b74}.journal-blank{background:#fffdf6;border:1px dashed #dce2cc;border-radius:18px;padding:45px 20px;text-align:center}.blank-emblem{width:65px;height:65px;display:grid;place-items:center;background:#f0f0df;border-radius:50%;margin:0 auto 20px;color:#a5ac87}.blank-emblem svg{width:25px;height:25px}.journal-blank h2{font-size:19px;margin-bottom:12px}.journal-blank p{font-size:12px;color:#99a187;line-height:1.9;margin-bottom:25px}.journal-footnote{font-size:10px;line-height:1.9;color:#a0a98f;margin-top:27px}.journal-footnote a{text-decoration:underline;text-underline-offset:3px}
/* Quiet companion for the actual learning workspace. */
.practice-companion{display:flex;align-items:center;gap:15px;background:#edf1e1;border:1px solid #e0e6d2;padding:8px 19px;border-radius:13px;margin:0 0 22px}.practice-companion>.companion-puppy{width:63px;height:70px;object-fit:contain}.practice-companion strong{font-size:13px;font-weight:600}.practice-companion p{font-size:10px;color:#8a9879;line-height:1.8;margin-top:6px}.checkin-puppy{width:65px;height:77px;object-fit:contain;flex-shrink:0}.checkin{background:#eef1e1;border-color:#dfe6d0;border-radius:17px}.checkin-submit{box-shadow:0 3px 0 #284a32;border-radius:9px}.checkin-submit:disabled{box-shadow:none}.checkin-submit:disabled:not([data-complete]){background:#e0e7d3}.checkin-journal{display:inline-block;font-size:10px;color:#7a9064;text-decoration:underline;text-underline-offset:3px;margin-top:12px}.streak>svg{width:23px;height:23px;color:#8aa46d}.card{background:#fffdf8;border-radius:15px}.hero h1{font-size:30px}.practice-context{border-color:#e4e8d9}.primary-nav svg{stroke-width:1.5}
@keyframes puppy-arrive{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:1400px){.journey-main{padding-top:40px}.departure-hero{min-height:360px}.departure-copy{padding-top:42px}.home-puppy{width:300px;height:285px}.departure-copy h2{font-size:31px}.welcome-heading h1{font-size:35px}}
@media(max-width:1100px){.journey-main{padding:28px 25px 0}.journey-topbar{padding:0 25px}.map-guide>.map-guide-copy{display:none}.departure-copy{padding-left:25px}.departure-copy h2{font-size:24px}.home-puppy{width:230px;height:245px}.hero-companion{padding-right:4px}.puppy-bubble{margin-right:4px;font-size:10px}.region-card-bottom{align-items:start;flex-direction:column;gap:12px}.map-filters{width:100%}.map-search{flex:1}.map-search input{width:100%}.stamp-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.sidebar{position:relative;width:auto;padding:13px 18px 12px;display:block}.sidebar .brand{font-size:17px;display:inline-flex}.sidebar .brand img{width:41px;height:43px}.sidebar .brand small{font-size:7px}.sidebar .nav-label{display:none}.sidebar .primary-nav{display:flex;gap:7px;margin-top:13px;justify-content:space-between}.sidebar .nav-item{font-size:11px;width:auto;flex:1;justify-content:center;gap:7px;padding:11px 6px;white-space:nowrap}.sidebar .nav-item svg{width:15px;height:15px}.sidebar .side-bottom{position:absolute;right:19px;top:29px;display:block;margin:0}.sidebar .side-bottom .small-note{display:none}.sidebar .side-bottom>a{font-size:9px}.sidebar .side-bottom svg{display:none}.workspace{margin:0}.journey-topbar{height:53px;padding:0 20px}.town-wordmark{font-size:10px}.journal-link{font-size:9px;gap:5px}.journal-link svg{width:13px;height:13px}.journey-main{padding:26px 19px 0}.page-eyebrow{font-size:8px;letter-spacing:1.6px}.welcome-heading{margin-bottom:23px;align-items:start}.welcome-heading h1,.map-heading h1,.journal-heading h1{font-size:25px;line-height:1.55;letter-spacing:0}.welcome-heading p,.map-heading p,.journal-heading p{font-size:11px}.date-pill{display:none}.departure-hero{grid-template-columns:1fr;min-height:0}.departure-hero:before{background:linear-gradient(180deg,#f3f4e7 0%,#eff2e1e0 45%,#e7eddba0 80%),url('/assets/journey/town-morning.png') 65% bottom/auto 70%;background-repeat:no-repeat;background-color:#e9eddc}.departure-copy{padding:25px 23px 0}.departure-copy h2{font-size:25px;margin:15px 0 10px;max-width:none}.departure-copy>p{font-size:12px;max-width:none}.destination-label{font-size:9px}.lesson-time{margin:15px 0}.primary-journey{font-size:12px;padding:13px 20px}.hero-companion{padding:0 8px 17px;align-items:flex-end;margin-top:-7px;min-height:180px}.home-puppy{width:195px;height:190px;margin-right:4px}.puppy-bubble{position:absolute;left:20px;top:56px;right:auto;max-width:130px;font-size:10px;line-height:1.8;padding:10px 12px}.companion-name{font-size:8px;margin-right:35px;margin-top:-4px}.journey-stats{gap:25px;padding:22px 5px 18px;flex-wrap:wrap}.journey-stats strong{font-size:25px}.journey-stats span{font-size:10px}.journey-stats>a{font-size:9px;margin-left:0}.journey-stats>div{gap:7px}.section-block{margin-top:29px}.section-title h2{font-size:18px}.section-title>a,.section-title>span{font-size:9px}.region-grid{grid-template-columns:1fr 1fr;gap:12px}.region-card{padding:18px 15px;border-radius:14px}.region-symbol{width:32px;height:32px;float:none;margin-bottom:15px;border-radius:10px}.region-symbol svg{width:17px;height:17px}.region-caption{font-size:7px;letter-spacing:.7px}.region-card h3{font-size:20px;margin:10px 0 7px}.region-card p{font-size:10px}.region-card-bottom{font-size:8px;line-height:1.8;margin-top:16px;padding-top:13px}.ready-lessons{grid-template-columns:1fr}.ready-card{padding:16px;gap:12px}.ready-card h3{font-size:13px}.companion-note{gap:12px;padding:12px 15px;align-items:center;flex-wrap:wrap}.note-puppy{width:62px;height:72px}.companion-note>div{flex:1;min-width:0}.companion-note h2{font-size:13px;line-height:1.8}.companion-note p{font-size:10px}.companion-note>a{font-size:9px;margin:0 0 5px 74px}.journey-footer{font-size:8px;flex-direction:column;gap:7px}.map-heading{align-items:start;gap:0;position:relative}.map-heading>div:first-child{flex:1}.map-heading h1{max-width:260px}.map-heading p{max-width:260px}.map-guide{align-self:start;padding-top:22px;margin-right:-15px}.map-puppy{width:89px;height:112px}.map-count{font-size:9px;line-height:2.2}.map-count>span{margin:5px 0 0;display:block;width:max-content;padding:1px 9px}.map-controls{gap:17px}.region-tabs{width:100%;gap:5px}.region-tabs button{flex:1;min-width:0;padding:10px;font-size:12px}.region-tabs button>span{font-size:8px}.map-filters{gap:10px}.map-search input{font-size:10px;padding:11px}.available-filter{font-size:9px}.map-region-banner{padding:20px;gap:15px;margin-bottom:20px}.map-region-banner h2{font-size:23px}.map-region-banner p{font-size:9px;max-width:200px}.map-region-total{font-size:26px}.map-region-total small{font-size:8px;white-space:normal;max-width:70px;line-height:1.8}.place-card{border-radius:13px}.place-card summary{padding:18px 14px;gap:11px}.place-marker{width:35px;height:39px;border-radius:10px}.place-marker svg{width:18px;height:18px}.place-description strong{font-size:14px}.place-description>span:last-child{font-size:9px;line-height:1.7}.place-order{font-size:7px}.place-progress{font-size:9px}.place-progress small{font-size:8px}.place-chevron{margin:0;font-size:12px}.lesson-trail{padding:8px 14px 13px}.lesson-trail:before{left:37px;top:38px;bottom:63px;border-width:2px}.trail-stop{align-items:start;gap:13px;padding:19px 0;flex-wrap:wrap;min-height:135px}.trail-number{width:47px;height:47px;font-size:12px;margin-top:2px;border-width:2px}.trail-number svg{width:20px;height:20px}.trail-copy{width:calc(100% - 63px);flex:1}.trail-copy h3{font-size:13px;line-height:1.8;margin:6px 0}.trail-copy p{font-size:10px;line-height:1.9}.trail-label{font-size:8px}.trail-meta{font-size:8px}.trail-enter{margin-left:60px;font-size:10px;padding:9px 14px;margin-top:-4px}.trail-wait{margin-left:60px;font-size:9px;padding:6px 11px;margin-top:-3px}.map-footnote{font-size:9px}.journey-empty{padding:30px 17px}.journey-empty h2{font-size:18px}.journey-empty p{font-size:11px}.journal-heading{padding:18px;gap:4px}.journal-heading h1{font-size:22px}.journal-heading p{font-size:10px}.journal-puppy{width:100px;height:130px}.stamp-grid{gap:12px}.stamp-card{padding:21px 12px}.stamp-seal{width:65px;height:65px}.stamp-seal svg{width:23px;height:23px}.stamp-card h3{font-size:12px}.stamp-card>p:last-of-type{font-size:8px}.stamp-card>a{font-size:9px}.stamp-place{font-size:8px}.journal-footnote{font-size:9px}.journal-blank{padding:34px 18px}.journal-blank h2{font-size:17px}.journal-blank p{font-size:11px}.practice-companion{padding:8px 12px;gap:10px}.practice-companion>.companion-puppy{width:49px;height:61px}.practice-companion strong{font-size:12px}.practice-companion p{font-size:10px}.checkin-puppy{width:52px;height:67px}.checkin-heading{gap:10px}.hero h1{font-size:28px}.today{min-width:0}.today select{font-size:10px}.checkin-journal{font-size:11px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* A brief welcome from Kaikai, shown once per tab session on the home page. */
.home-intro{width:min(520px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow:auto;margin:auto;padding:0;border:1px solid #dce4cf;border-radius:26px;background:#fbfaf0;color:#3e5c43;box-shadow:0 24px 90px #1d352d35;text-align:center;opacity:1;transform:translateY(0) scale(1);transition:opacity .22s ease,transform .22s ease}
.home-intro::backdrop{background:#22382c99;backdrop-filter:blur(5px)}
.home-intro.is-leaving{opacity:0;transform:translateY(8px) scale(.98)}
.home-intro-card{padding:26px 38px 28px}
.home-intro-puppy{width:145px;height:145px;margin:0 auto 4px;display:grid;place-items:center}
.home-intro-image{width:100%;height:100%;filter:drop-shadow(0 9px 7px #48573816)}
.home-intro .page-eyebrow{margin:0 0 9px;color:#88996c;font-size:10px;letter-spacing:1.3px}
.home-intro h1{font-size:22px;line-height:1.55;margin:0 0 12px;font-weight:700}
.home-intro-card>p:not(.page-eyebrow){max-width:385px;margin:8px auto;color:#77876c;font-size:13px;line-height:1.9}
.home-intro-paws{height:18px;display:flex;justify-content:center;align-items:center;gap:7px;margin:17px 0 15px}
.home-intro-paws i{width:7px;height:7px;border-radius:50%;background:#9cac7e;animation:intro-paw .45s ease-out both}
.home-intro-paws i:nth-child(2){animation-delay:.16s}.home-intro-paws i:nth-child(3){animation-delay:.32s}
.home-intro-skip{min-height:44px;padding:10px 18px;border:1px solid #dce4cf;border-radius:22px;background:#fffef7;color:#728363;font-size:12px;cursor:pointer}
.home-intro-skip:hover{background:#f0f3e7;color:#45613f}
.home-page>.page-eyebrow,.home-page>.welcome-heading,.home-page>.departure-hero,.home-page>.journey-stats,.home-page>.section-block,.home-page>.companion-note{animation:home-arrive .48s cubic-bezier(.2,.7,.25,1) both}
.home-page>.welcome-heading{animation-delay:.05s}.home-page>.departure-hero{animation-delay:.1s}.home-page>.journey-stats{animation-delay:.2s}.home-page>.section-block{animation-delay:var(--home-delay,.32s)}.home-page>.companion-note{animation-delay:.54s}
.home-page .home-puppy{animation:puppy-arrive .65s ease-out both}
.home-page .puppy-bubble{animation:none}
.home-page .region-card,.home-page .ready-card{animation:home-card-arrive .45s ease-out both}
.home-page .region-card:nth-child(2),.home-page .ready-card:nth-child(2){animation-delay:calc(var(--home-delay,.32s) + .09s)}
.home-page .region-card:hover,.home-page .ready-card:hover{transform:translateY(-3px)}
.journey-celebration[open]{animation:celebration-arrive .35s cubic-bezier(.2,.8,.3,1) both}
.journey-celebration[open] .companion-puppy{animation:celebration-puppy .7s ease-out both}
.journey-celebration .celebration-praise{margin:12px 0 5px!important;font-size:13px!important;font-weight:650;color:#5f754d!important}
.journey-celebration .celebration-next-use{margin:8px 0 23px!important;padding:11px 14px;border:1px solid #e4e8d7;border-radius:13px;background:#f3f4e9;color:#78856c!important;font-size:12px!important}
@keyframes home-arrive{from{opacity:0;transform:translateY(13px)}to{opacity:1;transform:translateY(0)}}
@keyframes home-card-arrive{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:translateY(0)}}
@keyframes intro-paw{from{opacity:.35;transform:scale(.78)}to{opacity:1;transform:scale(1)}}
@keyframes celebration-arrive{from{opacity:0;transform:translateY(12px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes celebration-puppy{0%{transform:translateY(12px) scale(.9)}65%{transform:translateY(-8px) scale(1.04)}100%{transform:translateY(0) scale(1)}}
@media(max-width:480px){.home-intro-card{padding:20px 22px 23px}.home-intro-puppy{width:120px;height:120px}.home-intro h1{font-size:20px}.home-intro-card>p:not(.page-eyebrow){font-size:12px}.home-page .journey-stats{animation-delay:.16s}.home-page>.section-block{animation-delay:var(--home-delay,.28s)}}
@media(prefers-reduced-motion:reduce){.home-intro,.home-intro-image,.home-intro-paws i,.home-page>.page-eyebrow,.home-page>.welcome-heading,.home-page>.departure-hero,.home-page>.journey-stats,.home-page>.section-block,.home-page>.companion-note,.home-page .home-puppy,.home-page .puppy-bubble,.home-page .region-card,.home-page .ready-card,.journey-celebration[open],.journey-celebration[open] .companion-puppy{animation:none!important;transition:none!important;transform:none!important;opacity:1!important}}
.journey-celebration{border:1px solid #d9e3c9;border-radius:24px;background:#fbfaf0;padding:25px 35px 30px;text-align:center;max-width:calc(100vw - 34px);width:420px;color:#45613f;box-shadow:0 20px 80px #23352733}.journey-celebration::backdrop{background:#34452e55;backdrop-filter:blur(3px)}.journey-celebration .companion-puppy{width:175px;height:180px;margin:auto}.journey-celebration h2{font-size:24px;margin:13px 0}.journey-celebration>p:not(.page-eyebrow){font-size:12px;line-height:1.9;color:#8a9977;margin:15px 0 25px}.celebration-close{display:block;font-size:11px;margin:20px auto 0;color:#9aa48c;padding:5px}.journey-celebration .primary-journey{font-size:12px}
.archived-memory{display:block;font-size:10px;color:#a4ab93;margin-top:18px}.map-heading h1,.welcome-heading h1,.journal-heading h1{text-wrap:balance}
@media(min-width:761px){.departure-copy>p,.welcome-heading p,.map-heading p,.journal-heading p{font-size:13px}.ready-card p,.region-card p{font-size:12px}.trail-copy p{font-size:12px}.trail-copy h3{font-size:16px}.sidebar .nav-item{font-size:14px}.primary-journey{font-size:13px}}
@media(max-width:760px){.trail-copy p{font-size:12px}.trail-copy h3{font-size:14px}.trail-label,.trail-meta{font-size:10px}.place-description>span:last-child{font-size:10px}.region-card p{font-size:11px}.map-count{font-size:10px}.map-search input{font-size:12px}.available-filter{font-size:10px}.sidebar .nav-item{font-size:12px}.sidebar .side-bottom>a{font-size:10px}.welcome-heading p,.map-heading p{font-size:12px}.departure-copy>p{font-size:13px}}
.journey-celebration{padding:23px 30px 25px}
.journey-celebration .celebration-dog-stage{position:relative;width:205px;height:184px;margin:0 auto 2px;display:grid;place-items:center}
.journey-celebration .celebration-puppy{width:174px;height:178px;margin:0;filter:drop-shadow(0 8px 7px #48573816)}
.journey-celebration[open] .celebration-puppy{animation:none}
.celebration-bark{position:absolute;z-index:1;padding:7px 11px;border:1px solid #dce6ce;border-radius:14px 14px 14px 4px;background:#f4f6e9;color:#567148;font-size:17px;font-weight:750;line-height:1;opacity:0;transform:scale(.55) rotate(-8deg)}
.celebration-bark.bark-one{top:21px;right:2px;animation:celebration-bark-pop .28s cubic-bezier(.2,.8,.3,1.2) .08s both}
.celebration-bark.bark-two{top:54px;left:0;animation:celebration-bark-pop .28s cubic-bezier(.2,.8,.3,1.2) .4s both}
.journey-celebration h2.celebration-praise{margin:2px 0 8px!important;font-size:32px!important;line-height:1.35;opacity:0;animation:celebration-praise-in .35s ease-out .72s both}
.journey-celebration .celebration-lesson{margin:6px 0 4px!important;color:#698053!important;font-size:13px!important;font-weight:650}
.journey-celebration .celebration-next-use{margin:5px 0 20px!important;padding:9px 12px;border:0;border-radius:0;background:transparent;color:#8a9977!important;font-size:12px!important}
.journey-celebration .primary-journey{margin-top:2px}
.home-intro h1:focus{outline:none}

.onboarding-page{min-height:100dvh;display:grid;place-items:center;padding:28px 18px;background:radial-gradient(circle at 70% 20%,#edf2df 0,#f8f6ef 54%)}
.onboarding-card{width:min(650px,100%);padding:34px 40px 42px;border:1px solid #dfe7d4;border-radius:26px;background:#fffdf6;box-shadow:0 14px 45px #2d4c3214;text-align:center}
.onboarding-puppy{height:175px;display:grid;place-items:center}.onboarding-dog{width:175px;height:175px}
.onboarding-card h1{font-size:30px;line-height:1.45;margin:10px 0}.onboarding-card>p:not(.page-eyebrow){font-size:15px;line-height:1.8;color:#64775b;max-width:430px;margin:0 auto 22px}
.region-choice{display:flex;gap:10px;margin:12px 0 20px}.region-choice button{flex:1;min-width:0;border:1px solid #d8e3cb;border-radius:14px;background:#f7f8ef;color:#365943;padding:15px;text-align:left;cursor:pointer}.region-choice button[aria-pressed=true]{border-color:#4e7655;background:#e9f0e2;box-shadow:inset 0 0 0 1px #4e7655}.region-choice button:disabled{opacity:.65;cursor:wait}.region-choice strong,.region-choice span{display:block}.region-choice strong{font-size:18px}.region-choice span{font-size:12px;color:#71836b;margin-top:5px;line-height:1.55}
.onboarding-card .region-choice{margin:20px auto 0}.onboarding-card .region-choice button{padding:18px 20px}
.choice-hint{font-size:12px;color:#72836c;margin:0 0 4px}.section-block>.region-choice{max-width:470px;margin-bottom:18px}.section-block>.region-choice button{padding:10px 14px}.section-block>.region-choice strong{font-size:14px}.section-block>.region-choice span{font-size:10px}
.recommend-reason{font-size:10px;color:#668352;font-weight:650}.ready-card h3{margin-top:4px}.today-use-note{font-size:12px!important;color:#496d48!important;font-weight:650}
@media(max-width:760px){.onboarding-card{padding:20px 18px 26px}.onboarding-puppy{height:140px}.onboarding-dog{width:140px;height:140px}.onboarding-card h1{font-size:24px}.onboarding-card>p:not(.page-eyebrow){font-size:14px}.onboarding-card .region-choice{flex-direction:column}.onboarding-card .region-choice button{padding:14px 18px}.region-choice strong{font-size:16px}.section-block>.region-choice button{padding:9px 10px}.section-block>.region-choice span{font-size:10px}.recommend-reason{font-size:11px}}
@keyframes celebration-bark-pop{0%{opacity:0;transform:scale(.55) rotate(-8deg)}65%{opacity:1;transform:scale(1.12) rotate(3deg)}100%{opacity:1;transform:scale(1) rotate(0)}}
@keyframes celebration-praise-in{from{opacity:0;transform:translateY(7px) scale(.92)}to{opacity:1;transform:translateY(0) scale(1)}}
@media(max-width:480px){.journey-celebration{padding:18px 22px 23px}.journey-celebration .celebration-dog-stage{width:190px;height:170px}.journey-celebration .celebration-puppy{width:162px;height:166px}.journey-celebration h2.celebration-praise{font-size:30px!important}.celebration-bark.bark-one{right:0}.celebration-bark.bark-two{left:0}}
@media(prefers-reduced-motion:reduce){.celebration-bark{opacity:1;transform:none;animation:none!important}.journey-celebration h2.celebration-praise{opacity:1;transform:none;animation:none!important}.journey-celebration[open] .celebration-puppy{animation:none!important;transform:none!important}}
.map-guide.is-departing .map-puppy{animation:none}
.map-guide.is-departing>.map-guide-copy{color:#668052;font-weight:650}
.practice-companion.is-listening .companion-puppy{animation:none}
@media(prefers-reduced-motion:reduce){.map-guide.is-departing .map-puppy,.practice-companion.is-listening .companion-puppy{animation:none!important;transform:none!important}}
@media(max-width:760px){.map-guide.is-departing>.map-guide-copy{display:block;position:absolute;top:0;right:-2px;z-index:2;padding:5px 8px;border:1px solid #dce3cc;border-radius:11px 11px 3px 11px;background:#fffdf3ed;color:#668052;font-size:10px;line-height:1.4;white-space:nowrap;box-shadow:0 3px 8px #445a3010}}

/* The companion is a focusable character; its internal frames own its motion. */
.home-puppy[interactive],.map-puppy[interactive]{cursor:pointer;pointer-events:auto}

/* A single useful action replaces duplicate journal links on small screens. */
.journal-share{display:flex;align-items:center;gap:12px;margin:18px 0 0}
.journal-share button{border:1px solid #c9d8bc;background:#e9f0df;color:#345d43;border-radius:10px;padding:10px 14px;min-height:44px;font:inherit;font-size:13px;font-weight:600;cursor:pointer}
.journal-share button:hover{background:#dce9cf}
.hero-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.onboarding-share{min-height:43px;padding:10px 16px;border:1px solid #b9cfaa;border-radius:10px;background:#fffdf5ed;color:#3d6848;font:inherit;font-size:13px;font-weight:650;cursor:pointer}.onboarding-share:hover{background:#f0f5e9}.onboarding-share{margin-top:22px}.celebration-more{display:flex;align-items:center;justify-content:center;gap:20px;margin-top:22px}.celebration-more button,.celebration-more a{min-height:42px;padding:10px 3px;font:inherit;font-size:13px;color:#496b4e;text-decoration:underline;text-underline-offset:4px;cursor:pointer}.celebration-more button{background:transparent;border:0}.journey-celebration .celebration-close{min-height:42px;margin:10px auto 0}
@media(max-width:760px){body.journey-page .sidebar{height:0;min-height:0;padding:0;border:0;position:static}body.journey-page .sidebar>.brand,body.journey-page .sidebar>.nav-label,body.journey-page .sidebar>.side-bottom{display:none}body.journey-page .journey-main{padding-top:calc(20px + env(safe-area-inset-top,0px))}.journal-share{margin:14px 0 0}}
body.journal-view .journey-stats>a{display:none}
.level-choice{display:flex;gap:10px;margin:12px 0}.level-choice button{flex:1;min-width:0;min-height:72px;padding:12px 14px;border:1px solid #d8e3cb;border-radius:14px;background:#f7f8ef;color:#365943;text-align:left;cursor:pointer;font:inherit}.level-choice button[aria-pressed=true]{border-color:#4e7655;background:#e9f0e2;box-shadow:inset 0 0 0 1px #4e7655}.level-choice strong,.level-choice span{display:block}.level-choice span{font-size:12px;color:#64775b;line-height:1.5;margin-top:5px}.level-choice button:focus-visible,.region-choice button:focus-visible{outline:3px solid #587b42;outline-offset:3px}.level-choice button:disabled,.onboarding-confirm:disabled{opacity:.5;cursor:default}.choice-heading{font-size:15px;text-align:left;margin:22px 0 8px}.choice-error{font-size:13px;color:#9a442e}.onboarding-card .onboarding-confirm{width:100%;margin-top:15px;justify-content:center;font:inherit}.onboarding-card .onboarding-share{margin-top:12px}.onboarding-card .choice-error{margin:8px 0}.section-block>.level-choice{max-width:560px}.onboarding-card .region-choice{margin-top:8px}
@media(max-width:760px){.onboarding-card .region-choice{flex-direction:row}.onboarding-card .region-choice button{padding:12px}.level-choice{gap:7px}.level-choice button{padding:12px 9px}.level-choice strong{font-size:15px}.level-choice span{font-size:11px}.choice-heading{margin-top:18px}.onboarding-puppy{height:100px}.onboarding-dog{height:100px;width:100px}}
.ready-card h3{margin:0;min-width:0;flex:1}.ready-card>span:last-child{flex:none}
.choice-error:empty{display:none}
.home-regions .region-card-bottom{flex-direction:row;align-items:center;margin-top:14px;padding-top:12px}
.home-belief{margin-bottom:32px}
