:root {
    font-family: Fredoka,sans-serif;
    color: #4c4c39;
    background: #fff9ea;
    font-synthesis: none;
    font-weight: 600;
    --ink: #4c4c39;
    --cream: #fff9ea;
    --mint: #e9efda;
    --sage: #c0d0a7;
    --pink: #c87867;
    --lavender: #e8e1ee;
    --line: #64624b
}

* {
    box-sizing: border-box
}

html {
    scroll-behavior: smooth;
    scroll-padding-top: 35px
}

body {
    margin: 0
}

button,input {
    font: inherit
}

button,a {
    touch-action: manipulation;
    -webkit-tap-highlight-color: transparent
}

button {
    cursor: pointer;
    color: inherit;
    border: 0
}

a {
    color: inherit;
    text-decoration: none
}

img {
    display: block;
    max-width: 100%
}

svg {
    width: 24px;
    height: 24px;
    flex-shrink: 0
}

h1,h2,h3,p {
    margin: 0
}

h1,h2,h3,.brand,.button,.photo-caption {
    font-family: Fredoka,sans-serif
}

h1,h2,h3 {
    font-weight: 500
}

h2 {
    font-size: clamp(38px,4.3vw,59px);
    letter-spacing: -1px;
    line-height: 1.1
}

p {
    font-size: 15px;
    line-height: 1.85
}

.wrap {
    width: calc(100% - 96px);
    max-width: 1140px;
    margin-inline:auto}

.eyebrow {
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 2.2px;
    line-height: 1.6
}

.pink-word {
    color: #bc7565
}

.purple-word {
    color: #87769a
}

.handwritten {
    font-family: Fredoka,sans-serif;
    font-weight: 400
}

.button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 13px;
    padding: 0 25px;
    min-height: 49px;
    border: 1.7px solid var(--line);
    border-radius: 50px;
    font-size: 16px;
    box-shadow: 0 3px #64624b;
    transition: transform .2s,box-shadow .2s
}

.button svg {
    width: 18px;
    height: 18px
}

.button:hover {
    transform: translateY(2px);
    box-shadow: 0 1px 0 var(--line)
}

.button-sage {
    background: #c3d2a9
}

.button-cream {
    background: #fff8e8
}

.icon-button {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: transparent;
    display: flex;
    align-items: center;
    justify-content: center
}

.icon-button:hover {
    background: #4c4c3912
}

button:focus-visible,a:focus-visible,input:focus-visible {
    outline: 3px solid #9b7861;
    outline-offset: 5px
}

::selection {
    background: #e9bfaa;
    color: #403d32
}

.skip-link {
    position: fixed;
    top: 12px;
    left: 12px;
    z-index: 150;
    background: var(--ink);
    color: var(--cream);
    padding: 10px 15px;
    border-radius: 15px;
    visibility: hidden
}

.skip-link:focus {
    visibility: visible
}

.site-header {
    position: absolute;
    top: 27px;
    z-index: 30;
    width: 100%;
    padding: 0 6%
}

.navbar {
    position: relative;
    max-width: 1150px;
    margin: auto;
    background: #fffaedee;
    border: 1.7px solid var(--line);
    border-radius: 50px;
    box-shadow: 0 4px #77765b;
    min-height: 79px;
    padding: 12px 25px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 25px
}

.brand {
    display: flex;
    gap: 12px;
    align-items: center;
    font-size: 25px;
    letter-spacing: -.6px;
    white-space: nowrap
}

.brand img {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    border: 1.5px solid var(--line);
    object-fit: cover
}

.brand small {
    font-family: Fredoka,sans-serif;
    display: block;
    font-size: 7px;
    letter-spacing: 1.7px;
    margin-top: 5px;
    font-weight: 800
}

.desktop-links {
    display: flex;
    align-items: center;
    gap: 35px;
    font-size: 12px;
    font-weight: 800
}

.desktop-links a {
    position: relative
}

.desktop-links a:hover:after {
    content: "";
    height: 5px;
    border-radius: 50%;
    background: #ebc6a3;
    position: absolute;
    inset: auto 0 -7px
}

.social-links {
    display: flex;
    gap: 9px;
    align-items: center
}

.social-icon {
    height: 38px;
    width: 38px;
    border: 1.5px solid var(--line);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #e3e9d2;
    transform: rotate(-5deg)
}

.social-icon:nth-child(2) {
    background: #e9dfe9;
    transform: rotate(5deg)
}

.social-icon svg {
    width: 16px;
    height: 16px
}

.social-icon[href]:hover {
    transform: translateY(-3px)
}

.menu-toggle,.mobile-menu {
    display: none
}

.hero {
    height: 965px;
    position: relative;
    overflow: hidden;
    background: linear-gradient(180deg, rgba(233, 239, 218, .88), rgba(233, 239, 218, .62)), url(images/zen-garden.jpg) center/cover no-repeat #e9efda
}

.hero-copy {
    position: relative;
    text-align: center;
    padding-top: 174px;
    z-index: 3
}

.hero h1 {
    font-size: clamp(80px,9.6vw,143px);
    letter-spacing: -5px;
    line-height: 1.12;
    color: #fff7dc;
    -webkit-text-stroke: 2px #54503b;
    paint-order: stroke fill;
    text-shadow: 0 5px 0 #777958;
    position: relative;
    display: inline-block
}

.title-spark {
    position: absolute;
    right: -48px;
    top: -12px;
    font-size: 49px;
    color: #dbaf77;
    -webkit-text-stroke: 1px #67614c;
    text-shadow: none;
    transform: rotate(12deg)
}

.hero h2 {
    font-size: 34px;
    letter-spacing: .2px;
    font-weight: 400;
    margin-top: 15px
}

.hero-copy>p {
    font-size: 14px;
    line-height: 1.8;
    margin-top: 16px;
    color: #677055
}

.hero-copy>p em {
    font-family: Fredoka,sans-serif;
    font-size: 20px
}

.hero-actions {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 13px;
    margin-top: 22px
}

.hero-sticker {
    position: absolute;
    z-index: 4
}

.sticker-left {
    left: calc(50% - 473px);
    top: 485px;
    transform: rotate(-12deg);
    padding: 9px 9px 0;
    background: #fff9eb;
    border: 1.5px solid var(--line);
    box-shadow: 3px 5px #4c4c3924;
    width: 168px;
    border-radius: 12px
}

.sticker-left img {
    width: 100%;
    height: auto;
    aspect-ratio: 1;
    object-fit: cover;
    border-radius: 7px;
    border: 1px solid var(--line)
}

.sticker-left>span {
    display: block;
    text-align: center;
    font-family: Fredoka,sans-serif;
    font-size: 12px;
    white-space: nowrap;
    padding: 8px 0
}

.sticker-left>svg {
    position: absolute;
    right: -30px;
    top: -28px;
    width: 57px;
    height: 57px;
    transform: rotate(15deg)
}

.sticker-right {
    right: calc(50% - 485px);
    top: 465px;
    width: 185px;
    text-align: center;
    transform: rotate(9deg)
}

.sticker-right>svg {
    width: 118px;
    height: 100px;
    margin: auto
}

.sticker-right>span {
    display: block;
    font-family: Fredoka,sans-serif;
    font-size: 16px;
    line-height: 1.4;
    margin-top: 0
}

.hero-scroll {
    position: absolute;
    bottom: 42px;
    left: 50%;
    transform: translate(-50%);
    z-index: 3;
    white-space: nowrap;
    font-size: 10px;
    color: #495335;
    background: #fff9eacf;
    padding: 7px 17px;
    border: 1px dashed #8d9470;
    border-radius: 20px
}

.hero-scroll>span {
    margin-left: 7px
}

.scallop-edge {
    position: absolute;
    bottom: -1px;
    left: 0;
    height: 24px;
    width: 100%;
    background: radial-gradient(ellipse at 50% 100%,var(--cream) 70%,transparent 72%) 0 0/68px 32px repeat-x;
    pointer-events: none
}

.feeling-section {
    position: relative;
    padding: 95px 0 80px;
    background: #fff9ea
}

.feeling-layout {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 110px;
    align-items: center;
    max-width: 1000px
}

.feeling-art {
    position: relative;
    min-height: 395px;
    padding: 0 20px
}

.portrait-arch {
    border: 1.5px solid var(--line);
    border-radius: 48% 48% 24px 24px;
    background: #e8bba3;
    padding: 11px;
    transform: rotate(-4deg);
    box-shadow: 5px 7px #e9d9b9;
    overflow: hidden;
    width: 330px;
    height: 363px;
    margin: auto
}

.portrait-arch img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border: 1px solid var(--line);
    border-radius: 48% 48% 16px 16px
}

.arch-note {
    position: absolute;
    bottom: 5px;
    left: 50%;
    white-space: nowrap;
    transform: translate(-50%) rotate(-4deg);
    font-family: Fredoka,sans-serif;
    font-size: 17px
}

.art-flower {
    position: absolute;
    width: 100px;
    height: 100px;
    bottom: 31px;
    left: -20px;
    transform: rotate(-16deg)
}

.art-star {
    position: absolute;
    width: 58px;
    height: 58px;
    top: -25px;
    right: 1px
}

.little-label {
    position: absolute;
    right: -26px;
    bottom: 62px;
    background: #e7e8c6;
    border: 1.5px solid var(--line);
    border-radius: 50%;
    width: 98px;
    height: 98px;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    font-family: Fredoka,sans-serif;
    font-size: 18px;
    line-height: 1.2;
    transform: rotate(12deg);
    outline: 4px solid #e7e8c6;
    outline-offset: 2px
}

.feeling-copy h2 {
    margin: 19px 0 24px;
    font-size: 48px
}

.feeling-copy>p {
    font-size: 14px;
    color: #777663;
    line-height: 1.9;
    margin-top: 12px
}

.feeling-copy>p:first-of-type {
    color: #555642;
    font-weight: 800;
    font-size: 15px
}

.feeling-copy>.handwritten {
    display: block;
    font-size: 17px;
    transform: rotate(-3deg);
    margin-top: 25px;
    color: #a77461
}

.little-ways {
    display: grid;
    grid-template-columns: repeat(3,1fr);
    gap: 45px;
    text-align: center;
    max-width: 930px;
    margin-top: 70px
}

.little-ways>div {
    position: relative
}

.little-ways>div:not(:last-child):after {
    content: "✧";
    position: absolute;
    right: -34px;
    top: 66px;
    color: #bdac87;
    font-family: Fredoka,sans-serif;
    font-size: 27px
}

.little-ways svg {
    width: 86px;
    height: 86px;
    margin: auto
}

.little-ways h3 {
    font-size: 22px;
    letter-spacing: -.3px;
    font-weight: 400;
    margin-top: 5px
}

.little-ways p {
    font-size: 12px;
    color: #797965;
    margin-top: 6px
}

.scrapbook-section {
    background-color: #f2e8dc;
    background-image: linear-gradient(#b4977422 1px,transparent 1px),linear-gradient(90deg,#b4977422 1px,transparent 1px);
    background-size: 32px 32px;
    position: relative;
    padding: 84px 0 93px;
    overflow: hidden;
    border-top: 1px solid #dacbb4
}

.section-heading.centered {
    text-align: center
}

.section-heading h2 {
    margin: 17px 0 15px
}

.section-heading p {
    font-size: 14px;
    color: #777361
}

.centered .eyebrow {
    display: block
}

.heading-note {
    display: block;
    margin-top: 20px;
    font-size: 18px;
    transform: rotate(-3deg);
    color: #947459
}

.scrapbook-section .wrap {
    max-width: 1120px;
    position: relative;
    z-index: 1
}

.scrapbook-flower {
    position: absolute;
    left: -37px;
    top: 135px;
    width: 180px;
    height: 180px;
    transform: rotate(17deg);
    opacity: .8
}

.scrapbook-leaf {
    position: absolute;
    right: -33px;
    top: 300px;
    width: 150px;
    height: 150px;
    transform: rotate(-21deg);
    opacity: .65
}

.filter-list {
    display: flex;
    gap: 10px;
    align-items: center;
    justify-content: center;
    margin: 33px 0 45px
}

.filter-list button {
    font-size: 12px;
    font-weight: 700;
    border: 1.5px solid transparent;
    border-radius: 30px;
    padding: 9px 17px;
    background: #fff9ea6b;
    white-space: nowrap
}

.filter-list button.active {
    background: #c9d5b2;
    border-color: #757259;
    box-shadow: 0 2px #a9ab88
}

.filter-list button:hover {
    background: #fdf7e9
}

.scrapbook-grid {
    display: grid;
    grid-template-columns: 1fr 1.12fr 1fr;
    gap: 32px 37px;
    padding: 0 14px 15px;
    align-items: start
}

.scrapbook-photo {
    padding: 13px 13px 0;
    background: #fffbee;
    border: 1px solid #8d8570;
    box-shadow: 4px 7px #aa96852e;
    position: relative;
    border-radius: 3px;
    text-align: left;
    min-width: 0;
    transition: transform .25s,box-shadow .25s
}

.scrapbook-photo:hover {
    transform: translateY(-8px) rotate(0)!important;
    box-shadow: 5px 12px #aa968536;
    z-index: 5
}

.photo-position-0 {
    margin-top: 34px;
    transform: rotate(-5deg)
}

.photo-position-1 {
    transform: rotate(3deg)
}

.photo-position-2 {
    margin-top: 42px;
    transform: rotate(-3deg)
}

.photo-position-3 {
    transform: rotate(3deg);
    margin-top: 2px
}

.photo-position-4 {
    margin-top: 16px;
    transform: rotate(-3deg)
}

.photo-position-5 {
    transform: rotate(5deg);
    margin-top: 0
}

.photo-tape {
    position: absolute;
    width: 85px;
    height: 25px;
    top: -14px;
    left: 50%;
    transform: translate(-50%) rotate(-4deg);
    background: #c3cdadbc;
    border-inline:1px dashed #9ca18366;z-index: 3;
    clip-path: polygon(0 3%,3% 0,8% 4%,15% 0,22% 3%,31% 0,38% 3%,48% 0,57% 3%,66% 0,75% 2%,88% 0,97% 3%,100% 0,98% 98%,91% 95%,80% 100%,65% 97%,53% 100%,39% 97%,25% 100%,14% 97%,2% 100%)
}

.photo-position-1 .photo-tape,.photo-position-4 .photo-tape {
    background: #e9c1abae;
    transform: translate(-50%) rotate(5deg)
}

.photo-position-2 .photo-tape,.photo-position-5 .photo-tape {
    background: #cec4d7be
}

.scrapbook-image {
    display: block;
    overflow: hidden;
    position: relative;
    border: 1px solid #8e8872;
    background: #eae4d6
}

.scrapbook-image img {
    width: 100%;
    height: auto;
    aspect-ratio: 1/1.05;
    object-fit: cover
}

.photo-position-1 .scrapbook-image img {
    aspect-ratio: 1/1.1
}

.photo-caption {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    min-height: 59px;
    padding-block:12px;font-size: 15px;
    font-weight: 400;
    line-height: 1.3
}

.photo-caption svg {
    width: 17px;
    height: 17px;
    color: #b78373
}

.image-expand {
    position: absolute;
    bottom: 12px;
    right: 12px;
    width: 35px;
    height: 35px;
    background: var(--cream);
    border: 1px solid var(--line);
    border-radius: 50%;
    display: grid;
    place-items: center;
    opacity: 0;
    transition: opacity .2s
}

.image-expand svg {
    width: 18px
}

.scrapbook-photo:hover .image-expand,.scrapbook-photo:focus-visible .image-expand {
    opacity: 1
}

.gallery-more {
    display: flex;
    align-items: center;
    flex-direction: column;
    gap: 17px;
    margin-top: 55px
}

.gallery-more>span {
    font-size: 12px;
    color: #84715c;
    font-family: Fredoka,sans-serif
}

.scrapbook-section>.scallop-edge {
    --cream: #e8e1ee
}

.cinema-section {
    background: linear-gradient(180deg, rgba(232, 225, 238, .9), rgba(232, 225, 238, .66)), url(images/zen-pond.jpg) center/cover no-repeat #e8e1ee;
    padding: 78px 0 235px;
    position: relative;
    overflow: hidden
}

.cinema-section .section-heading p {
    color: #807486
}

.cinema-layout {
    max-width: 850px;
    margin: 45px auto 0;
    position: relative
}

.cinema-note {
    position: absolute;
    left: -165px;
    top: 80px;
    text-align: center;
    width: 135px;
    transform: rotate(-8deg)
}

.cinema-note svg {
    width: 78px;
    height: 78px;
    margin-bottom: 12px
}

.cinema-note span {
    display: block;
    font-family: Fredoka,sans-serif;
    font-size: 15px;
    line-height: 1.5;
    color: #766780
}

.tv-frame {
    background: #fff8e7;
    border: 2px solid #6b5e70;
    border-radius: 25px;
    padding: 0 14px;
    box-shadow: 7px 9px #9b8da6;
    position: relative
}

.tv-frame:after {
    content: "";
    position: absolute;
    width: 28%;
    height: 6px;
    background: #84778d;
    border-radius: 0 0 20px 20px;
    bottom: -15px;
    left: 36%
}

.tv-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 48px;
    gap: 20px;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: 1.6px;
    padding: 0 7px;
    color: #786580
}

.tv-top>span {
    display: flex;
    align-items: center;
    gap: 8px
}

.tv-top svg {
    width: 17px;
    height: 17px
}

.tv-top i {
    height: 7px;
    width: 7px;
    background: #a5b384;
    border: 1px solid #76815d;
    border-radius: 50%
}

.video-screen {
    aspect-ratio: 16/9;
    position: relative;
    overflow: hidden;
    border: 2px solid #6b5e70;
    border-radius: 14px;
    background: #342f39
}

.video-screen video {
    height: 100%;
    width: 100%;
    display: block;
    object-fit: contain
}

.screen-play {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%);
    width: 64px;
    height: 64px;
    background: #fff9ea;
    border: 2px solid #6b5e70;
    box-shadow: 2px 3px #6b5e70
}

.screen-play:hover {
    background: #d9ddc2
}

.video-error {
    position: absolute;
    bottom: 20px;
    left: 20px;
    right: 20px;
    padding: 15px;
    background: var(--cream);
    font-size: 13px
}

.tv-controls {
    display: flex;
    align-items: center;
    gap: 10px;
    height: 64px;
    color: #786580
}

.tv-controls .icon-button {
    width: 34px;
    height: 40px;
    flex-shrink: 0
}

.tv-controls svg {
    width: 19px;
    height: 19px
}

.playback-label {
    font-size: 8px;
    font-weight: 800;
    letter-spacing: 1px;
    min-width: 114px
}

.loop-label {
    font-size: 24px;
    line-height: 1
}

.tv-controls input {
    height: 30px;
    flex: 1;
    min-width: 30px;
    appearance: none;
    background: transparent;
    margin-inline:10px;cursor: pointer
}

.tv-controls input::-webkit-slider-runnable-track {
    height: 5px;
    border: 1px solid #877890;
    border-radius: 5px;
    background: linear-gradient(to right,#b6a6c2 var(--progress),#ece7dc var(--progress))
}

.tv-controls input::-webkit-slider-thumb {
    appearance: none;
    width: 14px;
    height: 14px;
    margin-top: -6px;
    border: 1.5px solid #74677b;
    border-radius: 50%;
    background: #e4c6ad
}

.tv-controls input::-moz-range-track {
    background: #d6cbdc;
    height: 5px;
    border-radius: 3px
}

.tv-controls input::-moz-range-thumb {
    background: #e4c6ad;
    width: 13px;
    height: 13px;
    border: 1.5px solid #74677b;
    border-radius: 50%
}

.cinema-footnote {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    margin-top: 29px;
    font-size: 12px;
    font-family: Fredoka,sans-serif;
    color: #786980
}

.cinema-footnote svg {
    width: 15px;
    height: 15px
}

.cinema-section>.scallop-edge {
    --cream: #f6e6db
}

.tv-frame:fullscreen,.tv-frame.theater-mode {
    border-radius: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    background: #342f39;
    padding: 20px;
    color: #fff9ea
}

.tv-frame.theater-mode {
    position: fixed;
    inset: 0;
    z-index: 120
}

.tv-frame:fullscreen .video-screen,.tv-frame.theater-mode .video-screen {
    max-height: calc(100vh - 160px);
    width: 100%;
    border: 0
}

.tv-frame.theater-mode .tv-controls,.tv-frame.theater-mode .tv-top,.tv-frame:fullscreen .tv-controls,.tv-frame:fullscreen .tv-top {
    color: #fff9ea
}

.breathe-section {
    background: #f6e6db;
    position: relative;
    padding: 86px 0 106px
}

.breathe-inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    max-width: 1020px;
    align-items: center;
    gap: 75px
}

.breathing-copy h2 {
    font-size: 55px;
    margin: 18px 0 24px;
    letter-spacing: -1px
}

.breathing-copy>p {
    font-size: 14px;
    line-height: 1.9;
    color: #827563;
    margin-bottom: 25px
}

.breathing-copy>.handwritten {
    display: block;
    font-size: 14px;
    color: #ad7a69;
    transform: rotate(-3deg);
    margin-top: 23px
}

.breath-art {
    height: 420px;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center
}

.breath-orbit {
    position: absolute;
    width: 390px;
    height: 390px;
    border: 1.5px dashed #b79e7e;
    border-radius: 50%;
    background: #e1dfbd80;
    transition: transform 6s ease-in-out
}

.breath-orbit:after {
    content: "";
    position: absolute;
    inset: 18px;
    border: 1px solid #b5b18966;
    border-radius: 50%
}

.breath-orbit.breathing {
    transform: scale(.85)
}

.breath-orbit.expanded {
    transform: scale(1.08);
    transition-duration: 4s
}

.breath-circle {
    width: 310px;
    height: 310px;
    position: relative;
    border: 1.5px solid #897b59;
    border-radius: 50%;
    background: #fff1cc;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 8px;
    box-shadow: 4px 5px #b5a27c35
}

.breath-circle>svg {
    width: 115px;
    height: 115px;
    margin-top: -4px
}

.breath-circle>span {
    font-family: Fredoka,sans-serif;
    font-size: 35px;
    font-weight: 400;
    margin-top: 1px
}

.breath-circle>small {
    font-size: 7px;
    font-weight: 800;
    letter-spacing: 1.3px;
    margin-top: 8px
}

.breath-flower {
    position: absolute;
    width: 79px;
    height: 79px;
    top: 4px;
    right: 15px;
    z-index: 3;
    transform: rotate(15deg)
}

.breath-star {
    position: absolute;
    width: 46px;
    height: 46px;
    bottom: 26px;
    left: -15px;
    z-index: 3;
    transform: rotate(-12deg)
}

.breath-note {
    position: absolute;
    bottom: -22px;
    left: 50%;
    transform: translate(-50%) rotate(3deg);
    white-space: nowrap;
    font-family: Fredoka,sans-serif;
    font-size: 15px;
    color: #8e775e
}

.site-footer {
    background: #d4dfc0;
    position: relative;
    border-top: 1px solid #7a805c;
    padding-top: 21px
}

.footer-garden {
    display: flex;
    align-items: flex-end;
    justify-content: center;
    gap: 18px;
    position: absolute;
    top: -39px;
    left: 50%;
    transform: translate(-50%);
    height: 40px;
    overflow: hidden;
    padding-top: 5px
}

.footer-garden svg {
    width: 45px;
    height: 45px
}

.footer-garden svg:nth-child(2n) {
    width: 35px;
    height: 35px;
    margin-bottom: -7px
}

.footer-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 25px;
    padding: 28px 0
}

.footer-top p {
    font-size: 12px;
    color: #6a7356;
    margin-right: auto;
    margin-left: 90px
}

.footer-top .brand small {
    font-size: 6px
}

.footer-bottom {
    border-top: 1px dashed #85916b77;
    display: flex;
    justify-content: space-between;
    gap: 20px;
    padding: 22px 0;
    font-size: 10px;
    color: #687151
}

.footer-bottom a {
    font-weight: 800
}

.footer-bottom a:hover {
    text-decoration: underline
}

.lightbox {
    position: fixed;
    inset: 0;
    z-index: 150;
    background: #34372eef;
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 28px;
    padding: 50px 70px;
    color: var(--cream)
}

.lightbox figure {
    margin: 0;
    max-width: min(78vw,calc(88vh - 45px));
    width: 100%
}

.lightbox figure>img {
    width: 100%;
    max-height: 80vh;
    object-fit: contain;
    border-radius: 10px;
    border: 2px solid var(--cream)
}

.lightbox figcaption {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    font-size: 14px;
    padding-top: 14px
}

.lightbox figcaption span {
    font-size: 11px;
    white-space: nowrap
}

.lightbox .icon-button {
    border: 1px solid #fff7;
    color: var(--cream);
    flex-shrink: 0
}

.lightbox .icon-button:hover {
    background: #fff2
}

.lightbox-close {
    position: absolute;
    top: 24px;
    right: 25px
}

.lightbox-prev svg {
    transform: rotate(180deg)
}

@media(min-width: 1600px) {
    .hero {
        background-size:1600px auto;
        background-color: #e9efda
    }

    .hero:before,.hero:after {
        content: "";
        position: absolute;
        top: 0;
        bottom: 0;
        width: calc((100% - 1480px)/2);
        z-index: 1;
        pointer-events: none
    }

    .hero:before {
        left: 0;
        background: linear-gradient(90deg,#e9efda 70%,transparent)
    }

    .hero:after {
        right: 0;
        background: linear-gradient(-90deg,#e9efda 70%,transparent)
    }
}

@media(max-width: 1150px) {
    .wrap {
        width:calc(100% - 70px)
    }

    .navbar {
        padding-inline:20px}

    .desktop-links {
        gap: 24px
    }

    .brand {
        font-size: 23px
    }

    .hero {
        height: 910px
    }

    .hero-copy {
        padding-top: 170px
    }

    .hero h1 {
        font-size: 115px
    }

    .hero h2 {
        font-size: 30px
    }

    .sticker-left {
        left: 7%;
        top: 500px;
        width: 145px
    }

    .sticker-left>span {
        font-size: 10px
    }

    .sticker-right {
        right: 5%;
        top: 485px;
        width: 165px
    }

    .sticker-right>span {
        font-size: 14px
    }

    .feeling-layout {
        gap: 70px
    }

    .feeling-copy h2 {
        font-size: 44px
    }

    .portrait-arch {
        width: 290px;
        height: 340px
    }

    .feeling-art {
        padding: 0;
        min-height: 380px
    }

    .art-flower {
        left: -9px;
        bottom: 40px;
        width: 85px;
        height: 85px
    }

    .little-label {
        right: -10px;
        bottom: 50px;
        width: 85px;
        height: 85px;
        font-size: 16px
    }

    .art-star {
        right: -10px
    }

    .cinema-layout {
        max-width: 780px
    }

    .cinema-note {
        display: none
    }

    .breath-orbit {
        width: 350px;
        height: 350px
    }

    .breath-circle {
        width: 285px;
        height: 285px
    }

    .breathing-copy h2 {
        font-size: 49px
    }

    .breathe-inner {
        gap: 45px
    }

    .scrapbook-grid {
        gap: 25px 26px
    }

    .photo-caption {
        font-size: 13px
    }

    .footer-top p {
        margin-left: 40px
    }
}

@media(max-width: 850px) {
    .wrap {
        width:calc(100% - 48px)
    }

    .site-header {
        padding-inline:24px;top: 22px
    }

    .navbar {
        min-height: 72px;
        gap: 15px;
        padding: 10px 17px
    }

    .brand {
        font-size: 21px;
        gap: 9px
    }

    .brand img {
        width: 42px;
        height: 42px
    }

    .brand small {
        font-size: 6px;
        letter-spacing: 1.2px
    }

    .desktop-links {
        font-size: 10px;
        gap: 20px
    }

    .social-links {
        gap: 7px
    }

    .social-icon {
        width: 33px;
        height: 33px
    }

    .social-icon svg {
        width: 14px;
        height: 14px
    }

    .hero {
        height: 880px;
        background-size: auto 880px
    }

    .hero-copy {
        padding-top: 160px
    }

    .hero h1 {
        font-size: 99px;
        letter-spacing: -4px
    }

    .title-spark {
        font-size: 35px;
        right: -35px;
        top: -8px
    }

    .hero h2 {
        font-size: 29px
    }

    .hero-copy>p {
        font-size: 13px
    }

    .hero-actions .button {
        font-size: 14px;
        padding-inline:20px;min-height: 46px
    }

    .sticker-left {
        left: 5%;
        top: 485px;
        width: 126px
    }

    .sticker-left>span {
        font-size: 9px
    }

    .sticker-left>svg {
        width: 40px;
        height: 40px;
        right: -22px;
        top: -22px
    }

    .sticker-right {
        right: 3%;
        width: 140px;
        top: 486px
    }

    .sticker-right>svg {
        width: 88px;
        height: 80px
    }

    .sticker-right>span {
        font-size: 12px
    }

    .hero-scroll {
        font-size: 9px;
        bottom: 37px
    }

    .feeling-section {
        padding-top: 76px;
        padding-bottom: 60px
    }

    .feeling-layout {
        gap: 40px
    }

    .portrait-arch {
        width: 260px;
        height: 300px
    }

    .feeling-art {
        min-height: 335px
    }

    .little-label {
        width: 73px;
        height: 73px;
        font-size: 14px;
        bottom: 33px;
        right: -3px
    }

    .art-flower {
        width: 74px;
        height: 74px;
        bottom: 33px;
        left: -13px
    }

    .arch-note {
        font-size: 13px;
        bottom: 0
    }

    .art-star {
        width: 42px;
        height: 42px;
        top: -20px;
        right: -10px
    }

    .feeling-copy h2 {
        font-size: 36px;
        margin-block:15px 19px}

    .feeling-copy>p {
        font-size: 12px;
        line-height: 1.8
    }

    .feeling-copy>p:first-of-type {
        font-size: 13px
    }

    .feeling-copy>.handwritten {
        font-size: 13px;
        margin-top: 18px
    }

    .eyebrow {
        font-size: 8px;
        letter-spacing: 1.6px
    }

    .little-ways {
        gap: 25px;
        margin-top: 48px
    }

    .little-ways svg {
        height: 70px;
        width: 70px
    }

    .little-ways h3 {
        font-size: 19px
    }

    .little-ways p {
        font-size: 11px
    }

    .little-ways>div:not(:last-child):after {
        right: -22px;
        font-size: 22px;
        top: 55px
    }

    .scrapbook-section {
        padding-block:65px 75px}

    .section-heading h2 {
        font-size: 44px
    }

    .section-heading p {
        font-size: 13px
    }

    .heading-note {
        font-size: 15px
    }

    .filter-list {
        margin-block:28px 35px}

    .filter-list button {
        font-size: 11px;
        padding: 8px 14px
    }

    .scrapbook-grid {
        gap: 22px 22px;
        padding-inline:9px}

    .scrapbook-photo {
        padding: 8px 8px 0
    }

    .photo-caption {
        font-size: 11px;
        min-height: 55px;
        gap: 5px
    }

    .photo-caption svg {
        width: 12px;
        height: 12px
    }

    .photo-tape {
        width: 66px;
        height: 21px;
        top: -12px
    }

    .cinema-section {
        padding-top: 60px;
        padding-bottom: 175px
    }

    .cinema-layout {
        margin-top: 32px
    }

    .breathe-inner {
        gap: 25px
    }

    .breathing-copy h2 {
        font-size: 43px
    }

    .breathing-copy>p {
        font-size: 12px
    }

    .breathing-copy .button {
        font-size: 14px;
        padding-inline:20px}

    .breathing-copy>.handwritten {
        font-size: 12px
    }

    .breath-orbit {
        height: 290px;
        width: 290px
    }

    .breath-circle {
        width: 245px;
        height: 245px
    }

    .breath-art {
        height: 345px
    }

    .breath-circle>svg {
        width: 92px;
        height: 92px
    }

    .breath-circle>span {
        font-size: 30px
    }

    .breath-circle>small {
        font-size: 6px;
        letter-spacing: 1px
    }

    .breath-flower {
        width: 64px;
        height: 64px;
        right: -8px;
        top: 12px
    }

    .breath-note {
        font-size: 11px;
        bottom: -10px
    }

    .breath-star {
        width: 35px;
        height: 35px;
        left: -2px;
        bottom: 17px
    }

    .footer-top p {
        margin-left: 10px;
        font-size: 11px
    }

    .footer-bottom {
        font-size: 9px;
        gap: 10px
    }

    .footer-bottom>span:last-child {
        font-size: 8px
    }
}

@media(max-width: 640px) {
    .wrap {
        width:calc(100% - 40px)
    }

    .site-header {
        top: 17px;
        padding-inline:14px}

    .navbar {
        min-height: 65px;
        padding: 9px 13px;
        gap: 10px;
        border-radius: 26px;
        box-shadow: 0 3px #77765b
    }

    .brand {
        font-size: 21px;
        gap: 8px
    }

    .brand img {
        width: 39px;
        height: 39px
    }

    .brand small {
        font-size: 5.5px;
        letter-spacing: 1.1px;
        margin-top: 4px
    }

    .navbar>.social-links {
        margin-left: auto;
        gap: 6px
    }

    .navbar .social-icon {
        height: 30px;
        width: 30px
    }

    .navbar .social-icon svg {
        width: 13px;
        height: 13px
    }

    .desktop-links {
        display: none
    }

    .menu-toggle {
        display: flex;
        width: 31px;
        height: 35px
    }

    .menu-toggle svg {
        width: 22px;
        height: 22px
    }

    .mobile-menu {
        position: absolute;
        top: calc(100% + 10px);
        left: -1px;
        right: -1px;
        background: #fff9ec;
        border: 1.5px solid var(--line);
        border-radius: 19px;
        box-shadow: 0 3px #77765b;
        display: grid;
        padding: 9px 18px
    }

    .mobile-menu a {
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: 13px 0;
        font-family: Fredoka,sans-serif;
        font-size: 16px;
        border-bottom: 1px dashed #ccc5ac
    }

    .mobile-menu a:last-child {
        border: 0
    }

    .mobile-menu svg {
        width: 16px
    }

    .hero {
        height: 830px;
        background-size: auto 735px;
        background-position: center bottom;
        background-color: #eaf0da
    }

    .hero-copy {
        padding-top: 142px;
        padding-inline:16px}

    .hero h1 {
        font-size: clamp(59px,14.5vw,90px);
        letter-spacing: -2.6px;
        -webkit-text-stroke: 1.5px #54503b;
        text-shadow: 0 3px 0 #777958;
        white-space: nowrap
    }

    .title-spark {
        font-size: 26px;
        top: -17px;
        right: -2px;
        transform: rotate(12deg)
    }

    .hero h2 {
        font-size: 24px;
        margin-top: 15px;
        letter-spacing: 0
    }

    .hero-copy>p {
        font-size: 13px;
        line-height: 1.65;
        margin-top: 14px
    }

    .hero-copy>p em {
        font-size: 18px
    }

    .hero-actions {
        gap: 10px;
        margin-top: 21px
    }

    .hero-actions .button {
        min-height: 44px;
        font-size: 13px;
        padding-inline:17px;gap: 9px
    }

    .hero-actions .button svg {
        width: 15px;
        height: 15px
    }

    .sticker-left {
        top: 443px;
        left: 6%;
        width: 95px;
        padding: 5px 5px 0;
        border-radius: 7px;
        transform: rotate(-12deg)
    }

    .sticker-left img {
        border-radius: 5px
    }

    .sticker-left>span {
        font-size: 7px;
        padding: 6px 0
    }

    .sticker-left>svg {
        width: 32px;
        height: 32px;
        right: -15px;
        top: -18px
    }

    .sticker-right {
        top: 456px;
        right: 1%;
        width: 112px;
        transform: rotate(8deg)
    }

    .sticker-right>svg {
        width: 71px;
        height: 66px
    }

    .sticker-right>span {
        font-size: 10px;
        line-height: 1.35
    }

    .hero-scroll {
        font-size: 8px;
        bottom: 33px;
        max-width: 90%;
        white-space: normal;
        text-align: center;
        padding: 6px 13px
    }

    .scallop-edge {
        height: 20px;
        background-size: 44px 25px
    }

    .feeling-section {
        padding-top: 56px;
        padding-bottom: 50px
    }

    .feeling-layout {
        display: flex;
        flex-direction: column;
        gap: 37px
    }

    .feeling-copy {
        order: 0;
        text-align: center
    }

    .feeling-art {
        order: 1;
        min-height: 355px;
        max-width: 360px;
        width: 100%;
        margin-top: 19px
    }

    .feeling-copy .eyebrow {
        font-size: 9px;
        letter-spacing: 1.7px
    }

    .feeling-copy h2 {
        font-size: 43px;
        margin: 14px 0 20px
    }

    .feeling-copy>p {
        font-size: 13px;
        max-width: 360px;
        margin: 13px auto 0
    }

    .feeling-copy>p:first-of-type {
        font-size: 14px
    }

    .feeling-copy>.handwritten {
        font-size: 15px;
        margin-top: 19px
    }

    .portrait-arch {
        width: 282px;
        height: 323px
    }

    .art-flower {
        width: 82px;
        height: 82px;
        left: 1px;
        bottom: 35px
    }

    .art-star {
        right: 0;
        top: -19px;
        width: 43px;
        height: 43px
    }

    .little-label {
        right: 0;
        bottom: 48px;
        width: 76px;
        height: 76px;
        font-size: 14px
    }

    .arch-note {
        bottom: 0;
        font-size: 15px
    }

    .little-ways {
        gap: 15px;
        margin-top: 39px;
        width: calc(100% - 32px)
    }

    .little-ways svg {
        width: 59px;
        height: 59px
    }

    .little-ways h3 {
        font-size: 16px;
        line-height: 1.15;
        max-width: 100px;
        margin: 6px auto 0
    }

    .little-ways p {
        font-size: 9px;
        line-height: 1.5;
        max-width: 95px;
        margin: 8px auto 0
    }

    .little-ways>div:not(:last-child):after {
        display: none
    }

    .scrapbook-section {
        padding-top: 53px;
        padding-bottom: 64px;
        background-size: 25px 25px
    }

    .section-heading h2 {
        font-size: 40px;
        line-height: 1.07;
        letter-spacing: -.8px;
        margin: 14px 0
    }

    .section-heading p {
        font-size: 12px;
        max-width: 290px;
        margin: auto
    }

    .section-heading .eyebrow {
        font-size: 8px;
        letter-spacing: 1.5px
    }

    .heading-note {
        font-size: 13px;
        margin-top: 17px
    }

    .scrapbook-flower {
        width: 90px;
        height: 90px;
        left: -33px;
        top: 30px;
        opacity: .6
    }

    .scrapbook-leaf {
        width: 90px;
        height: 90px;
        right: -38px;
        top: 130px;
        opacity: .5
    }

    .filter-list {
        gap: 4px;
        margin: 26px 0 36px;
        justify-content: space-between
    }

    .filter-list button {
        font-size: 10px;
        padding: 8px 9px
    }

    .scrapbook-grid {
        grid-template-columns: 1fr 1fr;
        gap: 23px 17px;
        padding: 0 6px 7px;
        align-items: start
    }

    .scrapbook-photo {
        padding: 7px 7px 0;
        box-shadow: 3px 5px #aa96852e
    }

    .photo-position-0 {
        margin-top: 7px;
        transform: rotate(-5deg)
    }

    .photo-position-1 {
        margin-top: 24px;
        transform: rotate(5deg)
    }

    .photo-position-2 {
        margin-top: 0;
        transform: rotate(3deg)
    }

    .photo-position-3 {
        margin-top: 14px;
        transform: rotate(-4deg)
    }

    .photo-position-4 {
        margin-top: 0;
        transform: rotate(-4deg)
    }

    .photo-position-5 {
        margin-top: 19px;
        transform: rotate(4deg)
    }

    .scrapbook-image img,.photo-position-1 .scrapbook-image img {
        aspect-ratio: 1/1.1
    }

    .photo-tape {
        width: 54px;
        height: 19px;
        top: -11px
    }

    .photo-caption {
        font-size: 12px;
        line-height: 1.15;
        min-height: 54px;
        padding: 10px 0;
        gap: 4px
    }

    .photo-caption>svg {
        width: 12px;
        height: 12px
    }

    .image-expand {
        display: none
    }

    .gallery-more {
        margin-top: 35px;
        gap: 14px
    }

    .gallery-more .button {
        font-size: 14px;
        min-height: 45px;
        padding-inline:22px}

    .gallery-more>span {
        font-size: 11px
    }

    .cinema-section {
        padding: 55px 0 129px;
        background-size: auto 100%;
        background-position: center bottom
    }

    .cinema-section .section-heading h2 {
        max-width: 320px;
        margin-inline:auto}

    .cinema-section .section-heading p {
        font-size: 12px;
        max-width: 290px
    }

    .cinema-layout {
        margin-top: 29px
    }

    .tv-frame {
        padding: 0 7px;
        border-radius: 17px;
        box-shadow: 4px 6px #9b8da6;
        border-width: 1.7px
    }

    .tv-top {
        min-height: 37px;
        font-size: 7px;
        letter-spacing: 1px;
        padding-inline:4px;gap: 8px
    }

    .tv-top .tv-top-right {
        font-size: 0;
        gap: 0
    }

    .tv-top svg {
        width: 14px;
        height: 14px
    }

    .tv-top i {
        width: 6px;
        height: 6px
    }

    .video-screen {
        border-width: 1.5px;
        border-radius: 9px
    }

    .tv-controls {
        height: 51px;
        gap: 3px
    }

    .tv-controls .icon-button {
        width: 31px;
        height: 39px
    }

    .tv-controls svg {
        width: 17px;
        height: 17px
    }

    .playback-label {
        display: none
    }

    .tv-controls input {
        margin-inline:4px}

    .loop-label {
        font-size: 19px;
        margin: 0 4px
    }

    .screen-play {
        width: 47px;
        height: 47px
    }

    .screen-play svg {
        width: 20px;
        height: 20px
    }

    .cinema-footnote {
        font-size: 10px;
        margin-top: 25px;
        gap: 6px
    }

    .cinema-footnote svg {
        width: 13px;
        height: 13px
    }

    .breathe-section {
        padding: 55px 0 77px
    }

    .breathe-inner {
        display: flex;
        flex-direction: column;
        gap: 43px
    }

    .breathing-copy {
        text-align: center
    }

    .breathing-copy h2 {
        font-size: 47px;
        line-height: 1.05;
        margin: 17px 0 22px
    }

    .breathing-copy>p {
        font-size: 13px;
        line-height: 1.8;
        margin-bottom: 22px
    }

    .breathing-copy>.handwritten {
        font-size: 13px;
        margin-top: 20px
    }

    .breathing-copy .button {
        min-height: 46px;
        font-size: 14px
    }

    .breath-art {
        height: 342px;
        width: 100%;
        max-width: 350px
    }

    .breath-orbit {
        width: 313px;
        height: 313px
    }

    .breath-circle {
        width: 267px;
        height: 267px
    }

    .breath-circle>svg {
        width: 106px;
        height: 106px
    }

    .breath-circle>span {
        font-size: 32px
    }

    .breath-circle>small {
        font-size: 6.5px
    }

    .breath-flower {
        width: 62px;
        height: 62px;
        top: 0;
        right: 6px
    }

    .breath-star {
        width: 39px;
        height: 39px;
        bottom: 16px;
        left: -2px
    }

    .breath-note {
        bottom: -25px;
        font-size: 13px
    }

    .footer-top {
        flex-wrap: wrap;
        gap: 22px 10px;
        padding-block:24px}

    .footer-top .brand {
        font-size: 23px
    }

    .footer-top .brand img {
        width: 43px;
        height: 43px
    }

    .footer-top p {
        order: 3;
        width: 100%;
        margin: 0;
        text-align: center;
        font-size: 11px;
        line-height: 1.6
    }

    .footer-top .social-links {
        margin-left: auto;
        gap: 8px
    }

    .footer-top .social-icon {
        width: 36px;
        height: 36px
    }

    .footer-top .social-icon svg {
        width: 15px;
        height: 15px
    }

    .footer-bottom {
        flex-direction: column;
        align-items: center;
        gap: 12px;
        font-size: 9px;
        padding-block:20px}

    .footer-bottom>span:last-child {
        font-size: 8px
    }

    .footer-bottom a {
        order: -1;
        font-size: 11px
    }

    .footer-garden {
        gap: 14px
    }

    .lightbox {
        padding: 65px 18px 95px;
        gap: 0
    }

    .lightbox figure {
        max-width: 100%;
        width: 100%
    }

    .lightbox figure>img {
        max-height: 72vh
    }

    .lightbox figcaption {
        font-size: 12px;
        line-height: 1.4
    }

    .lightbox-prev,.lightbox-next {
        position: absolute;
        bottom: 25px
    }

    .lightbox-prev {
        left: calc(50% - 60px)
    }

    .lightbox-next {
        right: calc(50% - 60px)
    }

    .lightbox-close {
        top: 15px;
        right: 18px
    }

    .tv-frame.theater-mode {
        padding: 15px
    }

    .tv-frame.theater-mode .tv-top-right {
        display: none
    }
}

@media(max-width: 360px) {
    .brand {
        font-size:18px
    }

    .brand img {
        height: 34px;
        width: 34px
    }

    .navbar {
        padding-inline:10px;gap: 6px
    }

    .navbar .social-icon {
        height: 27px;
        width: 27px
    }

    .navbar>.social-links {
        gap: 5px
    }

    .brand small {
        font-size: 5px
    }

    .hero h1 {
        font-size: 56px
    }

    .hero h2 {
        font-size: 22px
    }

    .hero-actions .button {
        padding-inline:14px;font-size: 12px
    }

    .hero-actions {
        gap: 8px
    }

    .sticker-left {
        left: 5%;
        width: 86px
    }

    .sticker-right {
        right: 0;
        width: 96px
    }

    .portrait-arch {
        width: 255px;
        height: 307px
    }

    .feeling-copy h2 {
        font-size: 39px
    }

    .filter-list button {
        font-size: 9px;
        padding: 8px 7px
    }

    .photo-caption {
        font-size: 10px
    }

    .photo-caption svg {
        width: 10px
    }

    .scrapbook-grid {
        gap: 20px 15px
    }

    .breathing-copy h2 {
        font-size: 42px
    }

    .breath-orbit {
        width: 280px;
        height: 280px
    }

    .breath-circle {
        width: 239px;
        height: 239px
    }

    .breath-circle>svg {
        height: 88px;
        width: 88px
    }

    .breath-circle>small {
        font-size: 5.5px
    }

    .breath-circle>span {
        font-size: 30px
    }
}

@media(prefers-reduced-motion:reduce) {
    html {
        scroll-behavior: auto
    }

    *,*:before,*:after {
        animation: none!important;
        transition: none!important
    }

    .scrapbook-photo:hover {
        transform: none
    }
}

.contract-area {
    max-width: 780px;
    margin-top: 12px
}

.contract-label {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 8px;
    font-size: 8px;
    font-weight: 800;
    letter-spacing: 1.8px;
    margin-bottom: 12px;
    color: #68734f
}

.contract-label svg {
    width: 15px;
    height: 15px
}

.contract-box {
    display: grid;
    grid-template-columns: 88px minmax(0,1fr) 88px;
    align-items: center;
    gap: 20px;
    background: #fff9e9;
    border: 1.5px solid #737657;
    border-radius: 19px;
    padding: 15px 16px;
    box-shadow: 0 3px #89936b
}

.contract-address {
    grid-column: 2;
    min-width: 0;
    text-align: center
}

.contract-address>span {
    display: block;
    font-size: 8px;
    letter-spacing: 1.7px;
    font-weight: 800;
    color: #838568;
    margin-bottom: 6px
}

.contract-address code {
    display: block;
    font-family: monospace;
    font-size: 14px;
    line-height: 1.6;
    overflow-wrap: anywhere;
    -webkit-user-select: all;
    user-select: all
}

.contract-copy {
    grid-column: 3;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    background: #d4dfbe;
    border: 1.5px solid #7a805c;
    border-radius: 12px;
    min-height: 44px;
    min-width: 88px;
    padding: 0 12px;
    font-family: Fredoka,sans-serif;
    font-size: 13px;
    flex-shrink: 0
}

.contract-copy:hover {
    background: #c4d1ac
}

.contract-copy svg {
    width: 17px;
    height: 17px
}

.copy-feedback {
    text-align: center;
    font-size: 11px;
    height: 28px;
    line-height: 28px;
    margin: 5px 0 8px;
    color: #657349
}

@media(max-width: 640px) {
    .contract-area {
        margin-top:0
    }

    .contract-box {
        grid-template-columns: 48px minmax(0,1fr) 48px;
        padding: 13px 12px;
        gap: 12px;
        border-radius: 14px
    }

    .contract-address code {
        font-size: 11px;
        line-height: 1.7
    }

    .contract-address>span {
        font-size: 7px;
        letter-spacing: 1.2px
    }

    .contract-copy {
        min-width: 48px;
        min-height: 52px;
        flex-direction: column;
        gap: 3px;
        font-size: 10px;
        padding: 7px
    }

    .contract-copy svg {
        width: 16px;
        height: 16px
    }

    .contract-label {
        font-size: 7px;
        letter-spacing: 1.3px
    }

    .copy-feedback {
        font-size: 10px
    }
}

:root {
    --ink: #303e3b;
    --line: #46534b;
    --cream: #fbf8ed;
    color: var(--ink);
    background: var(--cream)
}

html {
    scroll-padding-top: 30px
}

.wrap {
    max-width: 1220px
}

h2 {
    font-size: clamp(40px,4.5vw,64px);
    letter-spacing: -1.8px
}

.green-word {
    color: #6d8762
}

.site-header {
    top: 24px;
    padding: 0 4%
}

.navbar {
    max-width: 1280px;
    background: #fffdf4;
    border-radius: 24px;
    min-height: 78px;
    box-shadow: 0 4px #b7bbaa
}

.brand {
    color: #303e3b
}

.brand small {
    letter-spacing: 1.4px
}

.desktop-links {
    gap: 25px;
    font-size: 12px
}

.button {
    border-radius: 13px;
    min-height: 51px;
    box-shadow: 0 4px #485949
}

.button-sage {
    background: #d5e6b9
}

.button-cream {
    background: #fffdf4
}

.hero {
    background: #fbf8ed;
    height: auto;
    min-height: 0;
    padding-top: 154px;
    overflow: hidden
}

.hero-layout {
    display: grid;
    grid-template-columns: 44% 56%;
    align-items: center;
    min-height: 580px;
    padding-bottom: 50px
}

.hero-copy {
    text-align: left;
    padding: 0
}

.hero-tag {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    letter-spacing: 1.6px;
    font-size: 9px
}

.hero-tag>span {
    width: 7px;
    height: 7px;
    background: #7d9665;
    border-radius: 50%;
    box-shadow: 0 0 0 4px #e6ecd7;
    margin-right: 3px
}

.hero h1 {
    display: block;
    margin: 22px 0 24px;
    font-size: clamp(80px,8.2vw,118px);
    font-weight: 500;
    letter-spacing: -4.5px;
    line-height: .95;
    color: #334840;
    -webkit-text-stroke: 0;
    text-shadow: none;
    white-space: normal
}

.hero h1>span {
    color: #90a67a;
    -webkit-text-stroke: 1.5px #425649;
    paint-order: stroke fill;
    text-shadow: 0 4px 0 #d1d7bf
}

.hero .title-spark {
    width: 43px;
    height: 43px;
    top: 12px;
    right: 38px;
    color: var(--ink)
}

.hero-copy .hero-lead {
    font-size: 21px;
    font-weight: 800;
    line-height: 1.45;
    margin: 0
}

.hero-copy .hero-description {
    font-size: 14px;
    max-width: 385px;
    line-height: 1.8;
    margin: 18px 0 0;
    color: #68716a
}

.hero-actions {
    justify-content: flex-start;
    gap: 26px;
    margin-top: 27px
}

.hero-watch {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    font-size: 13px;
    font-weight: 800
}

.hero-watch svg {
    width: 18px;
    height: 18px
}

.hero-signoff {
    display: block;
    font-size: 16px;
    margin-top: 23px;
    color: #79836d
}

.hero-art {
    position: relative;
    width: 115%;
    margin-left: -2%
}

.hero-art>img {
    width: 100%;
    height: auto;
    mix-blend-mode: multiply
}

.art-caption {
    position: absolute;
    font-family: Fredoka,sans-serif;
    font-size: 15px;
    color: #636d6a
}

.caption-chaos {
    top: 3%;
    right: 12%;
    transform: rotate(5deg)
}

.caption-calm {
    bottom: 9%;
    left: 14%;
    transform: rotate(-5deg)
}

.cat-stamp {
    display: flex;
    align-items: center;
    gap: 10px;
    position: absolute;
    bottom: -7%;
    right: 16%;
    padding: 9px 17px 9px 9px;
    border: 1.5px solid var(--line);
    background: #fffdf4;
    border-radius: 15px;
    box-shadow: 3px 4px #d4d5c5;
    transform: rotate(5deg)
}

.cat-stamp img {
    width: 51px;
    height: 51px;
    border-radius: 10px;
    object-fit: cover
}

.cat-stamp span {
    font-size: 11px;
    line-height: 1.4
}

.cat-stamp strong {
    font-family: Fredoka,sans-serif;
    font-size: 17px;
    font-weight: 500
}

.mood-strip {
    padding: 19px 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 38px;
    background: #d8e3c5;
    border-block:1.5px solid #6c7962;font-size: 11px;
    font-weight: 800;
    letter-spacing: 2px;
    white-space: nowrap
}

.mood-strip svg {
    width: 23px;
    height: 23px
}

.story-section {
    padding: 94px 0 92px;
    background: radial-gradient(ellipse at 50% 90%,#e9ecd7 0,transparent 48%),#fbf8ed;
    overflow: hidden
}

.section-heading p {
    color: #69736b
}

.story-section .section-heading h2 {
    margin: 18px 0
}

.contrast-scene {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 28px;
    align-items: center;
    margin-top: 58px
}

.chaos-note,.calm-note {
    padding: 29px;
    border: 1.5px solid #566461;
    border-radius: 7px 22px 8px 18px;
    min-height: 350px;
    position: relative
}

.chaos-note {
    background: #e6ebed;
    transform: rotate(-3deg);
    box-shadow: 4px 5px #cad1d0
}

.calm-note {
    background: #e8edcf;
    transform: rotate(3deg);
    box-shadow: 4px 5px #c7cfb0
}

.note-number {
    font-size: 9px;
    font-weight: 800;
    letter-spacing: 1.4px
}

.contrast-scene h3 {
    font-size: 27px;
    margin-top: 17px
}

.contrast-scene p {
    font-size: 12px;
    line-height: 1.7
}

.paper-stack {
    height: 132px;
    position: relative;
    margin-top: 10px
}

.paper-stack span {
    background: #fffdf5;
    border: 1px solid #7a8888;
    padding: 9px 18px;
    position: absolute;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 1px;
    box-shadow: 2px 3px #cad1d0
}

.paper-stack span:nth-child(1) {
    top: 13px;
    left: 8px;
    transform: rotate(-8deg)
}

.paper-stack span:nth-child(2) {
    top: 48px;
    right: 0;
    transform: rotate(9deg);
    background: #f3d4c6
}

.paper-stack span:nth-child(3) {
    top: 85px;
    left: 0;
    transform: rotate(-3deg)
}

.scribble-chart {
    width: 100%;
    height: 40px;
    margin-top: 16px;
    fill: none;
    stroke: #a17c75;
    stroke-width: 2;
    stroke-linejoin: round
}

.calm-note>svg {
    display: block;
    width: 95px;
    height: 95px;
    margin: 16px auto
}

.calm-note>.handwritten {
    display: block;
    font-size: 16px;
    margin-top: 15px;
    color: #69815c
}

.calm-portal {
    position: relative;
    text-align: center;
    padding: 10px
}

.calm-portal>img {
    width: 100%;
    height: auto;
    border-radius: 50% 50% 45% 45%;
    border: 2px solid #758468;
    padding: 8px;
    background: #fffdf2;
    transform: rotate(-3deg)
}

.portal-orbit {
    position: absolute;
    inset: -25px -13px 15px;
    border: 1.5px dashed #bcc4a7;
    border-radius: 50%;
    transform: rotate(15deg)
}

.calm-portal>.handwritten {
    position: relative;
    display: block;
    margin-top: 22px;
    font-size: 20px
}

.calm-portal>svg {
    width: 64px;
    height: 64px;
    position: absolute;
    right: -8px;
    bottom: 48px
}

.act-section {
    background: #edf0e6;
    padding: 85px 0 45px;
    border-block:1px solid #bcc4b1;position: relative;
    background-image: linear-gradient(#bbc5b11c 1px,transparent 1px),linear-gradient(90deg,#bbc5b11c 1px,transparent 1px);
    background-size: 32px 32px
}

.act-intro {
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    gap: 70px;
    align-items: center
}

.act-intro h2 {
    margin-top: 20px;
    font-size: clamp(37px,4vw,57px)
}

.act-summary p {
    margin-top: 16px;
    font-size: 14px;
    line-height: 1.9;
    max-width: 470px
}

.act-pill {
    display: inline-block;
    background: #fffbed;
    border: 1px solid #8c9b7e;
    padding: 6px 12px;
    font-size: 8px;
    font-weight: 800;
    letter-spacing: 1.3px;
    border-radius: 6px;
    transform: rotate(-2deg)
}

.act-cards {
    margin-top: 45px;
    display: grid;
    grid-template-columns: repeat(3,1fr);
    gap: 22px
}

.act-cards article {
    position: relative;
    background: #fbf9ef;
    border: 1.5px solid #7b8970;
    padding: 30px;
    border-radius: 17px;
    box-shadow: 0 5px #d1d8c3
}

.card-index {
    position: absolute;
    top: 22px;
    right: 22px;
    font-family: Fredoka,sans-serif;
    color: #a2ae96;
    font-size: 22px
}

.act-cards svg {
    width: 55px;
    height: 55px;
    margin-bottom: 12px
}

.act-cards h3 {
    font-size: 27px;
    line-height: 1.15
}

.act-cards p {
    margin-top: 17px;
    font-size: 12px;
    line-height: 1.85;
    color: #687360
}

.act-source {
    margin-top: 36px;
    display: flex;
    align-items: center;
    gap: 25px
}

.act-source p {
    margin-right: auto;
    font-size: 11px;
    line-height: 1.8
}

.act-source a {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 11px;
    font-weight: 800;
    text-decoration: underline;
    text-underline-offset: 4px
}

.act-source svg {
    width: 15px;
    height: 15px
}

.community-note {
    font-size: 10px;
    color: #687360;
    margin-top: 22px;
    border-top: 1px dashed #b9c1af;
    padding-top: 17px
}

.scrapbook-section {
    padding: 90px 0 95px;
    background: #fbf7eb;
    background-image: radial-gradient(#c6c9b85c 1px,transparent 1px);
    background-size: 15px 15px
}

.scrapbook-section .scallop-edge {
    display: none
}

.scrapbook-flower {
    opacity: .5
}

.scrapbook-leaf {
    opacity: .6
}

.filter-list {
    margin: 28px 0 40px
}

.filter-list button.active {
    background: #d9e6c5
}

.scrapbook-grid {
    grid-template-columns: repeat(4,1fr);
    gap: 25px;
    padding: 0 10px 20px
}

.scrapbook-photo {
    border-radius: 6px;
    margin-top: 0;
    padding: 10px 10px 0;
    background: #fffdf6
}

.scrapbook-grid .photo-position-0,.scrapbook-grid .photo-position-1 {
    grid-column: span 2;
    transform: rotate(-2deg)
}

.scrapbook-grid .photo-position-1 {
    transform: rotate(2deg);
    margin-top: 22px
}

.scrapbook-grid .photo-position-2 {
    transform: rotate(2deg)
}

.scrapbook-grid .photo-position-3 {
    transform: rotate(-3deg)
}

.scrapbook-grid .photo-position-4 {
    transform: rotate(3deg)
}

.scrapbook-grid .photo-position-5 {
    transform: rotate(-2deg)
}

.scrapbook-grid .scrapbook-image img {
    aspect-ratio: 1
}

.scrapbook-grid .photo-position-0 img,.scrapbook-grid .photo-position-1 img {
    aspect-ratio: 1.35
}

.photo-caption {
    min-height: 54px;
    font-size: 16px
}

.cinema-section {
    padding-top: 90px
}

.cinema-section .section-heading h2 {
    max-width: none
}

.cinema-note {
    left: -60px
}

.tv-frame {
    background: #fdfbf3
}

.breathe-section {
    background: #f9f1db;
    background-image: radial-gradient(ellipse at 85% 50%,#e9edce 0,transparent 50%)
}

.breathing-copy h2 {
    max-width: 520px;
    font-size: clamp(48px,5vw,70px)
}

.site-footer {
    background: #d6e1c5
}

.footer-top {
    gap: 25px
}

.contract-area {
    max-width: 950px
}

.contract-address code {
    font-size: 14px
}

@media(min-width: 1500px) {
    .hero-layout {
        min-height:635px
    }

    .hero-art {
        width: 120%
    }
}

@media(max-width: 1100px) {
    .desktop-links {
        gap:15px;
        font-size: 10px
    }

    .navbar {
        gap: 16px
    }

    .navbar .brand {
        font-size: 24px
    }

    .hero .title-spark {
        right: 0
    }

    .hero h1 {
        font-size: 94px
    }

    .hero-layout {
        min-height: 575px
    }

    .hero-copy .hero-lead {
        font-size: 19px
    }

    .hero-actions {
        gap: 16px
    }

    .hero-actions .button {
        padding-inline:17px;font-size: 14px
    }

    .mood-strip {
        gap: 25px;
        font-size: 9px
    }

    .contrast-scene {
        gap: 18px
    }

    .chaos-note,.calm-note {
        padding: 22px
    }

    .contrast-scene h3 {
        font-size: 23px
    }

    .act-intro {
        gap: 40px
    }

    .act-cards article {
        padding: 25px
    }

    .act-cards h3 {
        font-size: 25px
    }
}

@media(max-width: 850px) {
    .desktop-links {
        display:none
    }

    .menu-toggle {
        display: flex
    }

    .navbar>.social-links {
        margin-left: auto
    }

    .hero {
        padding-top: 145px
    }

    .hero-layout {
        grid-template-columns: 1fr;
        text-align: center;
        padding-bottom: 60px
    }

    .hero-copy {
        text-align: center
    }

    .hero h1 {
        display: inline-block;
        font-size: 100px;
        margin-block:20px}

    .hero h1 br {
        display: none
    }

    .hero h1>span {
        display: block
    }

    .hero .title-spark {
        right: -53px;
        top: 25px
    }

    .hero-copy .hero-description {
        margin-inline:auto;max-width: 440px
    }

    .hero-actions {
        justify-content: center
    }

    .hero-art {
        width: 100%;
        max-width: 660px;
        margin: 20px auto 0
    }

    .hero-signoff {
        margin-top: 20px
    }

    .cat-stamp {
        right: 9%;
        bottom: -5%
    }

    .mood-strip {
        justify-content: flex-start;
        overflow: hidden;
        gap: 25px
    }

    .contrast-scene {
        grid-template-columns: 1fr 1fr;
        gap: 25px
    }

    .calm-portal {
        grid-row: 1;
        grid-column: 1/-1;
        max-width: 280px;
        margin: 0 auto 24px
    }

    .act-intro {
        grid-template-columns: 1fr;
        gap: 24px
    }

    .act-summary {
        max-width: 600px
    }

    .act-summary p {
        max-width: none
    }

    .act-cards {
        gap: 15px
    }

    .act-cards article {
        padding: 20px
    }

    .act-cards h3 {
        font-size: 23px
    }

    .act-cards p {
        font-size: 11px
    }

    .act-source {
        flex-wrap: wrap;
        gap: 14px 25px
    }

    .act-source p {
        width: 100%
    }

    .scrapbook-grid {
        gap: 20px
    }

    .photo-caption {
        font-size: 12px
    }
}

@media(max-width: 640px) {
    .wrap {
        width:calc(100% - 40px)
    }

    .site-header {
        top: 16px;
        padding: 0 16px
    }

    .navbar {
        min-height: 65px;
        padding: 9px 13px;
        border-radius: 19px;
        gap: 9px
    }

    .navbar .brand {
        font-size: 21px
    }

    .brand small {
        font-size: 6px;
        letter-spacing: 1px
    }

    .hero {
        padding-top: 119px
    }

    .hero-layout {
        padding-bottom: 45px
    }

    .hero-copy {
        padding: 0
    }

    .hero-tag {
        font-size: 7px;
        letter-spacing: 1.2px
    }

    .hero h1 {
        font-size: 78px;
        letter-spacing: -2.7px;
        margin: 21px 0 22px
    }

    .hero .title-spark {
        width: 27px;
        height: 27px;
        right: -24px;
        top: 9px
    }

    .hero-copy .hero-lead {
        font-size: 18px
    }

    .hero-copy .hero-description {
        font-size: 12px;
        max-width: 330px;
        margin-top: 16px;
        line-height: 1.75
    }

    .hero-actions {
        margin-top: 23px;
        gap: 22px
    }

    .hero-actions .button {
        min-height: 46px;
        font-size: 13px;
        padding-inline:17px}

    .hero-watch {
        font-size: 12px
    }

    .hero-signoff {
        font-size: 14px;
        margin-top: 20px
    }

    .hero-art {
        width: 116%;
        margin-left: -8%;
        margin-top: 18px
    }

    .art-caption {
        font-size: 11px
    }

    .caption-chaos {
        top: 1%;
        right: 12%
    }

    .caption-calm {
        bottom: 6%;
        left: 10%
    }

    .cat-stamp {
        bottom: -8%;
        right: 11%;
        padding: 6px 10px 6px 6px;
        gap: 7px;
        border-radius: 10px
    }

    .cat-stamp img {
        width: 36px;
        height: 36px
    }

    .cat-stamp span {
        font-size: 8px
    }

    .cat-stamp strong {
        font-size: 13px
    }

    .mood-strip {
        padding: 15px 20px;
        gap: 22px;
        font-size: 8px;
        letter-spacing: 1.2px
    }

    .mood-strip svg {
        width: 17px;
        height: 17px
    }

    .story-section {
        padding: 57px 0 60px
    }

    .story-section h2 {
        font-size: 38px;
        letter-spacing: -1px
    }

    .story-section .section-heading p {
        font-size: 12px
    }

    .contrast-scene {
        margin-top: 50px;
        grid-template-columns: 1fr;
        gap: 32px
    }

    .calm-portal {
        grid-column: auto;
        width: 230px;
        margin-bottom: 12px
    }

    .calm-portal>.handwritten {
        font-size: 18px
    }

    .portal-orbit {
        inset: -18px -10px 17px
    }

    .chaos-note,.calm-note {
        max-width: 380px;
        width: 100%;
        min-height: 0;
        padding: 25px;
        margin: auto
    }

    .chaos-note {
        transform: rotate(-2deg)
    }

    .calm-note {
        transform: rotate(2deg)
    }

    .contrast-scene h3 {
        font-size: 27px
    }

    .contrast-scene p {
        font-size: 12px
    }

    .paper-stack {
        height: 112px
    }

    .paper-stack span:nth-child(3) {
        top: 74px
    }

    .calm-note>svg {
        position: absolute;
        right: 20px;
        top: 62px;
        width: 62px;
        height: 62px
    }

    .calm-note p {
        margin-top: 26px;
        padding-right: 46px
    }

    .calm-note .handwritten {
        margin-top: 19px
    }

    .act-section {
        padding: 57px 0 34px
    }

    .act-intro h2 {
        font-size: 38px;
        letter-spacing: -1px;
        margin-top: 17px
    }

    .act-intro .eyebrow {
        font-size: 8px;
        letter-spacing: 1.3px
    }

    .act-intro {
        gap: 24px
    }

    .act-summary p {
        font-size: 12px
    }

    .act-cards {
        margin-top: 28px;
        grid-template-columns: 1fr;
        gap: 18px
    }

    .act-cards article {
        padding: 25px
    }

    .act-cards h3 {
        font-size: 27px
    }

    .act-cards p {
        font-size: 12px;
        margin-top: 12px
    }

    .act-cards svg {
        width: 50px;
        height: 50px;
        float: right;
        margin: 20px 0 0 15px
    }

    .card-index {
        top: 14px;
        right: 22px;
        font-size: 17px
    }

    .act-source {
        margin-top: 26px
    }

    .act-source p {
        font-size: 11px
    }

    .act-source a {
        font-size: 10px
    }

    .community-note {
        font-size: 9px;
        line-height: 1.7
    }

    .scrapbook-section {
        padding: 58px 0 62px
    }

    .section-heading h2 {
        font-size: 40px
    }

    .scrapbook-section .heading-note {
        font-size: 13px
    }

    .filter-list {
        gap: 5px;
        margin-bottom: 30px
    }

    .filter-list button {
        font-size: 9px;
        padding: 8px
    }

    .scrapbook-grid {
        grid-template-columns: 1fr 1fr;
        gap: 24px 15px;
        padding-inline:4px}

    .scrapbook-grid .photo-position-0,.scrapbook-grid .photo-position-1 {
        grid-column: span 1;
        margin-top: 0
    }

    .scrapbook-grid .photo-position-1 {
        margin-top: 16px
    }

    .scrapbook-grid .scrapbook-image img,.scrapbook-grid .photo-position-0 img,.scrapbook-grid .photo-position-1 img {
        aspect-ratio: 1
    }

    .scrapbook-photo {
        padding: 7px 7px 0
    }

    .photo-caption {
        font-size: 12px;
        min-height: 57px
    }

    .photo-tape {
        height: 17px
    }

    .cinema-section {
        padding-top: 57px
    }

    .cinema-section .section-heading h2 {
        max-width: 340px
    }

    .breathe-section {
        padding-top: 56px
    }

    .breathing-copy h2 {
        font-size: 47px;
        line-height: 1.1
    }

    .breathing-copy>p {
        font-size: 12px
    }

    .breath-art {
        max-width: 330px
    }

    .breath-orbit {
        width: 300px;
        height: 300px
    }

    .breath-circle {
        width: 260px;
        height: 260px
    }

    .contract-address code {
        font-size: 10px
    }

    .contract-label {
        font-size: 6.5px;
        letter-spacing: 1px
    }

    .contract-box {
        gap: 8px;
        padding-inline:9px}

    .footer-top {
        gap: 20px 10px
    }

    .footer-top .brand {
        font-size: 22px
    }
}

.scrapbook-grid .scrapbook-photo[hidden] {
    display: none
}

.gallery-more .button[hidden] {
    display: none
}

.scrapbook-grid .scrapbook-photo.is-wide {
    grid-column: span 2
}

.scrapbook-grid .scrapbook-photo.is-wide img {
    aspect-ratio: 1.35
}

.scrapbook-grid .scrapbook-photo.is-narrow {
    grid-column: span 1
}

.scrapbook-grid .scrapbook-photo.is-narrow img {
    aspect-ratio: 1
}

@media(max-width: 640px) {
    .scrapbook-grid .scrapbook-photo.is-wide {
        grid-column: span 1;
        margin-top: 0
    }

    .scrapbook-grid .scrapbook-photo.is-wide img {
        aspect-ratio: 1
    }
}

.hero-contract {
    max-width: 430px;
    margin: 26px 0 0
}

.hero-contract .contract-label {
    justify-content: flex-start;
    margin-bottom: 9px
}

.hero-contract .contract-box {
    grid-template-columns: minmax(0,1fr) auto;
    gap: 12px;
    padding: 12px 13px;
    border-radius: 15px
}

.hero-contract .contract-address {
    grid-column: 1;
    text-align: left
}

.hero-contract .contract-address code {
    font-size: 12px;
    line-height: 1.5
}

.hero-contract .contract-copy {
    grid-column: 2;
    min-height: 38px;
    min-width: 0;
    padding: 0 13px;
    font-size: 12px
}

.hero-contract .copy-feedback {
    text-align: left;
    height: auto;
    line-height: 1.5;
    margin: 7px 0 0
}

.hero-contract .copy-feedback:empty {
    margin: 0
}

@media(max-width: 850px) {
    .hero-contract {
        margin-inline: auto
    }

    .hero-contract .contract-label {
        justify-content: center
    }

    .hero-contract .contract-address {
        text-align: center
    }

    .hero-contract .copy-feedback {
        text-align: center
    }
}

@media(max-width: 640px) {
    .hero-contract {
        max-width: none;
        margin-top: 22px
    }

    .hero-contract .contract-address code {
        font-size: 11px
    }

    .hero-contract .contract-copy {
        flex-direction: row;
        min-height: 40px;
        padding: 0 11px;
        font-size: 11px
    }
}

@media(max-width: 360px) {
    .hero h1 {
        font-size:69px
    }

    .navbar .brand {
        font-size: 18px
    }

    .hero-actions {
        gap: 14px
    }

    .hero-watch {
        font-size: 11px
    }

    .hero-actions .button {
        padding-inline:12px}

    .story-section h2,.act-intro h2 {
        font-size: 34px
    }

    .wrap {
        width: calc(100% - 32px)
    }

    .breath-orbit {
        width: 270px;
        height: 270px
    }

    .breath-circle {
        width: 240px;
        height: 240px
    }
}

.hero-art>img {
    border-radius: 44% 46% 38% 40%
}

@media(max-width: 850px) {
    .hero h1 {
        display:block;
        width: max-content;
        margin: 20px auto;
        font-size: 88px
    }

    .hero h1 br {
        display: block
    }

    .hero h1>span {
        display: inline
    }
}

@media(max-width: 640px) {
    .hero h1 {
        font-size:70px;
        margin: 22px auto
    }

    .hero .title-spark {
        right: -8px;
        top: -5px
    }

    .hero-art>img {
        border-radius: 36% 38% 30% 34%
    }
}

@media(max-width: 360px) {
    .hero h1 {
        font-size:62px
    }
}

.scrapbook-grid .photo-position-0 img {
    object-position: center top
}

.art-caption {
    background: #fbf8eddf;
    padding: 2px 7px;
    border-radius: 5px
}

@media(max-width: 640px) {
    .calm-note>svg {
        position:static;
        float: right;
        margin: 20px 0 5px 8px
    }

    .calm-note p {
        padding-right: 0
    }
}

/* ---- Menu mobile ----
   Từ 850px trở xuống nav đổi sang nút bar. Khối link nằm ngay dưới thanh nav,
   mặc định ẩn, chỉ hiện khi script gắn class .is-open. */
@media(max-width: 850px) {
    .mobile-menu {
        position: absolute;
        top: calc(100% + 10px);
        left: -1px;
        right: -1px;
        z-index: 60;
        display: none;
        padding: 9px 18px;
        background: #fffdf4;
        border: 1.5px solid var(--line);
        border-radius: 19px;
        box-shadow: 0 4px #b7bbaa
    }

    .mobile-menu.is-open {
        display: grid
    }

    .mobile-menu a {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
        padding: 13px 0;
        font-family: Fredoka, sans-serif;
        font-size: 16px;
        border-bottom: 1px dashed #ccc5ac
    }

    .mobile-menu a:last-child {
        border: 0
    }

    .mobile-menu svg {
        width: 16px;
        flex-shrink: 0
    }
}

/* ---- Contract address ----
   Từ tablet trở lên địa chỉ phải nằm gọn một dòng: chữ co theo bề ngang màn,
   không cho ngắt giữa chuỗi. Dưới 640px vẫn cho xuống dòng như cũ vì
   màn hình quá hẹp để nhét 44 ký tự. */
@media(min-width: 641px) {
    .contract-address code {
        white-space: nowrap;
        overflow-wrap: normal;
        overflow: hidden;
        text-overflow: ellipsis
    }

    .hero-contract .contract-address code {
        font-size: clamp(9.5px, 1.05vw, 11.5px)
    }

    .contract-area:not(.hero-contract) .contract-address code {
        font-size: clamp(11px, 1.35vw, 14px)
    }
}

/* ---- Hero trên laptop ----
   Mặc định .hero-art rộng 115% và lùi trái 2%, nên ở dải laptop ảnh tràn
   đè lên cột chữ. Từ 851px đến 1499px cho ảnh đúng bằng cột của nó. */
@media(min-width: 851px) and (max-width: 1499px) {
    .hero-art {
        width: 100%;
        margin-left: 0
    }
}
