body{
    font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
    background:#F7F2E8;
    color:#262A2D;
    margin:0;
}

.container{
    max-width:520px;
    margin:0 auto;
    padding:28px 18px;
}

h1{
    font-size:2.1rem;
    margin-bottom:14px;
}

.tagline{
    color:#666;
    line-height:1.45;
}

.tagline{
    margin-bottom:34px;
}

.footer{
    margin-top:clamp(36px,8vh,72px);
    color:#9A7A3F;
    font-size:.95rem;
    line-height:1.45;
    text-align:right;
    white-space:nowrap;
}

.footer-capture{
    font-weight:650;
}

.footer-remember{
    font-style:italic;
    font-weight:650;
}

.landing-home{
    color:#262A2D;
    padding-top:clamp(64px,16vh,132px);
    text-align:center;
}

.landing-kicker{
    color:#263F4C;
    font-family:Georgia,"Times New Roman",serif;
    font-size:clamp(2.8rem,11vw,5rem);
    font-weight:500;
    letter-spacing:0;
    line-height:1;
    margin:0 0 20px;
}

.landing-title{
    color:#9A7A3F;
    font-family:Georgia,"Times New Roman",serif;
    font-size:clamp(1.16rem,4vw,1.7rem);
    font-style:italic;
    font-weight:400;
    letter-spacing:0;
    line-height:1.4;
    margin:0 auto clamp(34px,7vh,58px);
    max-width:34rem;
}

.landing-alpha p{
    color:#9A7A3F;
    font-size:.92rem;
    margin:0 0 8px;
}

.landing-alpha a{
    color:#263F4C;
    display:inline-block;
    font-size:1rem;
    font-weight:650;
    padding:8px 2px 4px;
    text-decoration:underline;
    text-decoration-color:#C1A46C;
    text-decoration-thickness:1px;
    text-underline-offset:5px;
}

.landing-alpha a:focus-visible{
    border-radius:12px;
    outline:2px solid rgba(154,122,63,.55);
    outline-offset:6px;
}

.garden-home{
    color:#262A2D;
    padding-top:clamp(18px,5vh,48px);
    text-align:center;
}

.garden-hero{
    margin:0 auto clamp(28px,6vh,46px);
    max-width:32rem;
}

.garden-kicker{
    color:#263F4C;
    font-family:Georgia,"Times New Roman",serif;
    font-size:clamp(2.45rem,10vw,4.6rem);
    font-weight:500;
    letter-spacing:0;
    line-height:1;
    margin:0 0 18px;
}

.garden-title{
    color:#9A7A3F;
    font-family:Georgia,"Times New Roman",serif;
    font-size:clamp(1.08rem,4vw,1.55rem);
    font-style:italic;
    font-weight:400;
    letter-spacing:0;
    line-height:1.38;
    margin:0;
}

.garden-grid{
    display:grid;
    gap:clamp(16px,4vw,26px);
    grid-template-columns:repeat(2,minmax(0,1fr));
    margin:0 auto;
    max-width:min(100%,620px);
}

.garden-journey{
    align-items:center;
    color:#263F4C;
    display:flex;
    flex-direction:column;
    font-family:Georgia,"Times New Roman",serif;
    font-size:clamp(1.08rem,4vw,1.45rem);
    gap:12px;
    min-width:0;
    padding:8px 4px 14px;
    text-align:center;
    text-decoration:none;
    transition:opacity .2s ease,transform .2s ease;
}

.garden-art{
    aspect-ratio:1;
    background:
        radial-gradient(circle at 68% 28%,rgba(247,242,232,.95) 0 13%,transparent 14%),
        linear-gradient(145deg,rgba(193,164,108,.22),rgba(49,90,107,.14));
    border-radius:44% 56% 48% 52%;
    display:block;
    overflow:hidden;
    position:relative;
    width:min(100%,clamp(112px,30vw,172px));
}

.garden-art-sky,
.garden-art-path,
.garden-art-sprig{
    position:absolute;
}

.garden-art-sky{
    background:rgba(49,90,107,.32);
    border-radius:999px;
    height:32%;
    left:18%;
    top:18%;
    width:64%;
}

.garden-art-path{
    background:rgba(154,122,63,.34);
    border-radius:48% 52% 0 0;
    bottom:-10%;
    height:48%;
    left:15%;
    transform:rotate(-4deg);
    width:70%;
}

.garden-art-sprig{
    border-left:2px solid rgba(91,124,91,.72);
    bottom:18%;
    height:42%;
    left:50%;
    transform:rotate(18deg);
}

.garden-art-sprig::before,
.garden-art-sprig::after{
    background:rgba(91,124,91,.62);
    border-radius:90% 10% 90% 10%;
    content:"";
    height:22px;
    position:absolute;
    width:12px;
}

.garden-art-sprig::before{
    left:-14px;
    top:8px;
    transform:rotate(-44deg);
}

.garden-art-sprig::after{
    left:2px;
    top:22px;
    transform:rotate(32deg);
}

.garden-journey-italy .garden-art{
    background:
        radial-gradient(circle at 66% 28%,rgba(247,242,232,.95) 0 13%,transparent 14%),
        linear-gradient(145deg,rgba(91,124,91,.24),rgba(193,164,108,.26));
}

.garden-journey-gene-therapy .garden-art{
    background:
        radial-gradient(circle at 68% 28%,rgba(247,242,232,.95) 0 13%,transparent 14%),
        linear-gradient(145deg,rgba(49,90,107,.20),rgba(91,124,91,.22));
}

.garden-journey-jamie .garden-art{
    background:
        radial-gradient(circle at 68% 28%,rgba(247,242,232,.95) 0 13%,transparent 14%),
        linear-gradient(145deg,rgba(193,164,108,.22),rgba(154,122,63,.16));
}

.garden-journey[href]:hover{
    opacity:.94;
    transform:translateY(-2px);
}

.garden-journey[href]:active{
    opacity:.86;
    transform:translateY(0);
}

.garden-journey[href]:focus-visible{
    border-radius:14px;
    outline:2px solid rgba(154,122,63,.55);
    outline-offset:6px;
}

.garden-journey-placeholder{
    cursor:default;
}

.garden-different{
    color:#9A7A3F;
    font-family:Georgia,"Times New Roman",serif;
    font-size:1rem;
    font-style:italic;
    margin-top:clamp(24px,5vh,38px);
}

.sr-only{
    clip:rect(0,0,0,0);
    border:0;
    height:1px;
    margin:-1px;
    overflow:hidden;
    padding:0;
    position:absolute;
    white-space:nowrap;
    width:1px;
}

.home-screen{
    color:#262A2D;
    margin-bottom:-12px;
    padding-top:clamp(28px,6vh,54px);
    text-align:center;
}

.home-hero{
    margin-bottom:clamp(42px,7vh,66px);
}

.home-garden-link{
    color:#263F4C;
    display:inline-block;
    font-size:.95rem;
    font-weight:650;
    margin-bottom:clamp(22px,5vh,42px);
    padding:6px 2px 4px;
    text-decoration:underline;
    text-decoration-color:#C1A46C;
    text-decoration-thickness:1px;
    text-underline-offset:5px;
}

.home-garden-link:focus-visible{
    border-radius:12px;
    outline:2px solid rgba(154,122,63,.55);
    outline-offset:6px;
}

.home-title{
    color:#262A2D;
    font-family:Georgia,"Times New Roman",serif;
    font-size:clamp(2.4rem,8vw,4.45rem);
    font-weight:500;
    letter-spacing:0;
    line-height:1.02;
    margin:0;
}

.home-title-ornament{
    align-items:center;
    color:#9A7A3F;
    display:flex;
    gap:12px;
    justify-content:center;
    margin-top:18px;
}

.home-title-ornament span{
    background:#C1A46C;
    display:block;
    height:1px;
    width:76px;
}

.home-title-ornament b{
    font-family:Georgia,"Times New Roman",serif;
    font-size:1.05rem;
    font-weight:400;
    line-height:1;
}

.home-invitation{
    margin-bottom:clamp(28px,5vh,42px);
}

.home-invitation-title{
    color:#263F4C;
    font-size:clamp(2.35rem,8vw,4.15rem);
    font-weight:680;
    letter-spacing:0;
    line-height:1.04;
    margin:0 0 18px;
}

.home-invitation-text{
    color:#9A7A3F;
    font-family:Georgia,"Times New Roman",serif;
    font-size:clamp(1.05rem,3.5vw,1.42rem);
    font-style:italic;
    line-height:1.45;
    margin:0 auto clamp(28px,5vh,46px);
    max-width:34rem;
}

.home-capture-paths{
    display:grid;
    gap:clamp(14px,4vw,28px);
    grid-template-columns:repeat(2,minmax(0,1fr));
    margin:0 auto;
    max-width:min(100%,560px);
}

.home-capture-path{
    align-items:center;
    box-sizing:border-box;
    color:#263F4C;
    display:flex;
    flex-direction:column;
    font-family:Georgia,"Times New Roman",serif;
    font-size:1.28rem;
    font-weight:500;
    gap:10px;
    min-width:0;
    padding:8px 4px 12px;
    text-align:center;
    text-decoration:none;
    transition:filter .2s ease,opacity .2s ease,transform .2s ease;
}

.home-capture-image{
    display:block;
    filter:drop-shadow(0 18px 18px rgba(38,42,45,.08));
    height:auto;
    max-width:100%;
    object-fit:contain;
    transition:filter .2s ease,transform .2s ease;
    width:min(100%,clamp(112px,31vw,178px));
}

.home-capture-image-speak{
    width:min(100%,clamp(116px,32vw,184px));
}

.home-capture-image-camera{
    width:min(100%,clamp(122px,33vw,190px));
}

.home-capture-image-write{
    width:min(100%,clamp(116px,32vw,184px));
}

.home-capture-image-photos{
    width:min(100%,clamp(118px,32vw,186px));
}

.home-capture-path[href]:hover{
    filter:brightness(1.02);
    transform:translateY(-2px);
}

.home-capture-path[href]:hover .home-capture-image{
    filter:drop-shadow(0 22px 20px rgba(38,42,45,.10));
}

.home-capture-path[href]:active{
    opacity:.92;
    transform:translateY(0);
}

.home-capture-path[href]:focus-visible,
.home-secondary:focus-visible{
    border-radius:12px;
    outline:2px solid rgba(154,122,63,.55);
    outline-offset:6px;
}

.home-capture-path-static{
    cursor:default;
}

.home-journey-option{
    margin-top:clamp(18px,4vh,34px);
}

.home-or{
    align-items:center;
    color:#9A7A3F;
    display:flex;
    font-family:Georgia,"Times New Roman",serif;
    font-size:.95rem;
    font-style:italic;
    gap:8px;
    justify-content:center;
    margin-bottom:6px;
}

.home-or::before,
.home-or::after{
    color:#C1A46C;
    content:"❦";
    font-size:.62rem;
    line-height:1;
}

.home-secondary{
    color:#263F4C;
    display:inline-block;
    font-size:1rem;
    font-weight:650;
    margin-top:0;
    padding:8px 2px 4px;
    text-align:center;
    text-decoration:underline;
    text-decoration-color:#C1A46C;
    text-decoration-thickness:1px;
    text-underline-offset:5px;
}

.back-link{
    text-decoration:none;
    color:#0A84FF;
    display:inline-block;
    margin-bottom:24px;
}

.intro{
    color:#555;
    margin-bottom:32px;
    font-size:1.05rem;
    line-height:1.45;
}

.button{
    display:block;
    width:100%;
    box-sizing:border-box;
    border:0;
    text-decoration:none;
    text-align:center;
    padding:18px 16px;
    border-radius:18px;
    font-size:1.1rem;
    font-weight:650;
    margin-bottom:18px;
    box-shadow:0 6px 18px rgba(0,0,0,.08);
    font-family:inherit;
    cursor:pointer;
}

.primary{
    color:white;
    background:linear-gradient(135deg,#0A84FF,#5AC8FA);
}

.secondary{
    color:#222;
    background:#f6f6f6;
}

.quiet{
    background:#fff;
    color:#333;
    font-size:.98rem;
    padding:14px 16px;
    border-radius:14px;
    box-shadow:0 3px 10px rgba(0,0,0,.06);
}

.button:active{
    transform:scale(.98);
}

.hidden{
    display:none !important;
}

.gentle-capture{
    display:flex;
    justify-content:space-between;
    gap:18px;
    margin-top:34px;
}

.gentle-choice{
    flex:1;
    text-align:center;
    text-decoration:none;
    color:#222;
    background:transparent;
    border:0;
    font-family:inherit;
    font-weight:650;
    font-size:1.05rem;
    padding:18px 6px;
    cursor:pointer;
}

.gentle-choice:active{
    transform:scale(.96);
}

.line-icon{
    font-size:2.4rem;
    font-weight:400;
    line-height:1;
    margin-bottom:12px;
    color:#333;
}

.soft-note{
    margin-top:30px;
    color:#777;
    font-size:.98rem;
}

.listening-indicator{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:5px;
    margin:18px 0 28px;
    color:#999;
}

.listening-indicator span{
    width:3px;
    height:18px;
    background:#cfcfcf;
    border-radius:999px;
    animation:listeningPulse 1s infinite ease-in-out;
}

.listening-indicator span:nth-child(2){ animation-delay:.1s; }
.listening-indicator span:nth-child(3){ animation-delay:.2s; }
.listening-indicator span:nth-child(4){ animation-delay:.3s; }
.listening-indicator span:nth-child(5){ animation-delay:.4s; }

.listening-indicator strong{
    margin-left:8px;
    font-size:.95rem;
}

@keyframes listeningPulse{
    0%,100%{ transform:scaleY(.45); opacity:.45; }
    50%{ transform:scaleY(1.2); opacity:1; }
}

.fade-ready{
    animation:softFadeIn 1.5s ease-in;
}

@keyframes softFadeIn{
    from{ opacity:0; transform:translateY(6px); }
    to{ opacity:1; transform:translateY(0); }
}

.save-progress-button{
    --progress:0%;
    background:linear-gradient(90deg,#0A84FF var(--progress),#5AC8FA var(--progress));
}

.appointment-garden,
.appointment-list,
.appointment-workspace,
.appointment-photo{
    color:#262A2D;
}

.appointment-garden{
    padding-top:clamp(24px,7vh,60px);
    text-align:center;
}

.appointment-garden-path{
    display:flex;
    justify-content:center;
    margin-top:clamp(28px,6vh,48px);
}

.appointment-header,
.appointment-workspace-header{
    margin-bottom:28px;
}

.appointment-kicker{
    color:#9A7A3F;
    font-family:Georgia,"Times New Roman",serif;
    font-size:1rem;
    font-style:italic;
    margin:0 0 8px;
}

.appointment-meta,
.appointment-purpose,
.appointment-consent,
.appointment-empty{
    color:#6D6358;
    line-height:1.45;
}

.appointment-purpose{
    font-family:Georgia,"Times New Roman",serif;
    font-style:italic;
}

.appointment-panel{
    margin:0 0 28px;
}

.appointment-panel h2{
    color:#263F4C;
    font-size:1.25rem;
    margin:0 0 14px;
}

.appointment-panel-heading{
    align-items:flex-start;
    display:flex;
    gap:14px;
    justify-content:space-between;
}

.appointment-state{
    color:#9A7A3F;
    font-size:.92rem;
    font-weight:650;
    margin-top:4px;
}

.appointment-confirmation{
    color:#5B7C5B;
    font-weight:650;
    min-height:1.4em;
}

.appointment-form label,
.appointment-note-form label{
    display:block;
    margin-bottom:16px;
}

.appointment-form span,
.appointment-note-form span{
    color:#6D6358;
    display:block;
    font-size:.92rem;
    font-weight:650;
    margin-bottom:6px;
}

.appointment-form input,
.appointment-form textarea,
.appointment-quick-thought,
.appointment-note-form textarea{
    background:rgba(255,255,255,.58);
    border:1px solid rgba(154,122,63,.28);
    border-radius:12px;
    box-sizing:border-box;
    color:#262A2D;
    font:inherit;
    padding:12px 13px;
    width:100%;
}

.appointment-form input:focus,
.appointment-form textarea:focus,
.appointment-quick-thought:focus,
.appointment-note-form textarea:focus{
    outline:2px solid rgba(154,122,63,.45);
    outline-offset:2px;
}

.appointment-form-grid{
    display:grid;
    gap:12px;
    grid-template-columns:repeat(2,minmax(0,1fr));
}

.appointment-primary{
    background:#315A6B;
    box-shadow:0 10px 22px rgba(49,90,107,.16);
}

.appointment-stack{
    display:grid;
    gap:12px;
}

.appointment-row{
    color:#263F4C;
    display:flex;
    gap:14px;
    justify-content:space-between;
    padding:10px 0;
    text-decoration:none;
}

.appointment-row small{
    color:#6D6358;
    display:block;
    line-height:1.4;
    margin-top:4px;
}

.appointment-row em{
    color:#9A7A3F;
    font-size:.9rem;
    font-style:normal;
}

.appointment-recorder-controls,
.appointment-action-grid{
    display:grid;
    gap:12px;
}

.appointment-recorder-controls .button,
.appointment-action-grid .button,
.appointment-inline-button{
    margin-bottom:0;
}

.appointment-elapsed{
    color:#263F4C;
    font-weight:650;
    margin-top:16px;
}

.appointment-panel-heading form{
    align-items:center;
    display:flex;
    flex:1;
    gap:8px;
    max-width:320px;
}

.appointment-inline-button{
    flex:0 0 auto;
    padding:11px 14px;
    width:auto;
}

.appointment-discuss-list{
    display:grid;
    gap:12px;
}

.appointment-discuss-item{
    border-left:2px solid #C1A46C;
    padding-left:12px;
}

.appointment-discuss-item p{
    line-height:1.45;
    margin:0 0 8px;
}

.appointment-discuss-item.is-discussed{
    opacity:.58;
}

.appointment-discuss-toggle{
    background:transparent;
    border:0;
    color:#263F4C;
    cursor:pointer;
    font:inherit;
    font-size:.95rem;
    font-weight:650;
    padding:4px 0;
    text-decoration:underline;
    text-decoration-color:#C1A46C;
    text-underline-offset:4px;
}

.appointment-note-form{
    margin-top:18px;
}

.appointment-timeline{
    display:grid;
    gap:14px;
}

.appointment-timeline-item{
    border-left:2px solid rgba(49,90,107,.28);
    padding-left:12px;
}

.appointment-timeline-item time{
    color:#9A7A3F;
    display:block;
    font-size:.86rem;
    margin-bottom:4px;
}

.appointment-timeline-item strong{
    color:#263F4C;
}

.appointment-timeline-item p{
    color:#6D6358;
    line-height:1.4;
    margin:6px 0 0;
}

@media (min-width:640px){
    .appointment-recorder-controls,
    .appointment-action-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

@media (max-width:520px){
    .appointment-form-grid,
    .appointment-panel-heading{
        display:block;
    }

    .appointment-panel-heading form{
        margin-top:12px;
        max-width:none;
    }
}

.save-progress-button.saving::after{
    content:"  • autosaving";
    opacity:.85;
    font-weight:500;
}

.reflection-form textarea{
    width:100%;
    box-sizing:border-box;
    border:0;
    border-radius:18px;
    padding:18px;
    font-size:1.05rem;
    font-family:inherit;
    box-shadow:0 8px 24px rgba(0,0,0,.10);
    margin-bottom:20px;
}

.moment-card{
    background:#fff;
    border-radius:18px;
    padding:22px;
    box-shadow:0 2px 10px rgba(0,0,0,.08);
    margin-top:24px;
}

.moment-card h2{
    margin-top:8px;
    font-size:1.25rem;
}

.moment-date{
    color:#777;
    font-size:.9rem;
}

.journey-play-button{
    margin-top:12px;
}

@media (max-width:480px){
    .container{
        padding:26px 16px;
    }

    h1{
        font-size:1.9rem;
    }

    .gentle-capture{
        gap:10px;
    }

    .line-icon{
        font-size:2.1rem;
    }

    .garden-home{
        padding-top:20px;
    }

    .landing-home{
        padding-top:54px;
    }

    .garden-hero{
        margin-bottom:24px;
    }

    .garden-grid{
        gap:14px 16px;
    }

    .garden-art{
        width:min(100%,128px);
    }

    .garden-journey{
        font-size:1.06rem;
        padding:4px 2px 10px;
    }

    .home-screen{
        padding-top:34px;
    }

    .home-hero{
        margin-bottom:38px;
    }

    .home-title-ornament{
        margin-top:14px;
    }

    .home-invitation-text{
        margin-bottom:24px;
    }

    .home-capture-paths{
        gap:14px 16px;
        max-width:360px;
    }

    .home-capture-path{
        font-size:1.12rem;
        padding:4px 2px 10px;
    }

    .home-capture-image,
    .home-capture-image-speak,
    .home-capture-image-camera,
    .home-capture-image-write,
    .home-capture-image-photos{
        width:min(100%,138px);
    }
}

@media (prefers-reduced-motion:reduce){
    .garden-journey,
    .home-capture-path,
    .home-capture-image{
        transition:none;
    }

    .garden-journey[href]:hover,
    .garden-journey[href]:active,
    .home-capture-path[href]:hover,
    .home-capture-path[href]:active{
        transform:none;
    }
}

.photo-review-layout{
    display:flex;
    align-items:flex-start;
    gap:20px;
}

.photo-reflection-actions{
    flex:1;
}

.photo-preview{
    width:50%;
    max-height:320px;
    object-fit:cover;
    border-radius:22px;
    box-shadow:0 8px 24px rgba(0,0,0,.10);
}

.photo-reflect-prompt{
    margin-top:0;
    margin-bottom:20px;
}

.photo-action-row{
    display:flex;
    gap:12px;
}

.photo-action-row .button{
    flex:1;
}

@media (max-width:480px){
    .photo-review-layout{
        flex-direction:row;
        gap:14px;
    }

    .photo-preview{
        width:46%;
        max-height:260px;
    }
}
