/* Public home page. All selectors are scoped to avoid changing application screens. */
.loom-home {
    background:#f8f9f5;
    color:#192722
}
.loom-home .navbar {
    background:#111e20!important;
    border-bottom:1px solid #ffffff20;
    padding:18px 0
}
.loom-home .navbar-brand {
    font-size:26px;
    font-weight:800;
    letter-spacing:-1px
}
.loom-home .navbar .nav-link {
    color:#e1e7e3;
    font-size:13px
}
.loom-home .navbar .nav-link:hover {
    color:#d1ef83
}
.loom-home .footer {
    background:#111e20!important
}
.loom-home .flash-messages:empty {
    display:none
}
.loom-home main {
    padding:0!important
}
.ll {
    --ink:#142426;
    --lime:#d1ef83;
    --muted:#62716b;
    font-family:Arial,"Noto Sans JP","Yu Gothic",Meiryo,sans-serif;
    line-height:1.85
}
.ll * {
    box-sizing:border-box
}
.ll a {
    color:inherit;
    text-decoration:none
}
.ll a:focus-visible,.ll summary:focus-visible {
    outline:3px solid #799d33;
    outline-offset:6px
}
.ll-wrap {
    width:min(1200px,calc(100% - 96px));
    margin:auto
}
.ll h1,.ll h2,.ll h3,.ll p {
    margin:0
}
.ll h2 {
    font-size:clamp(30px,3.4vw,46px);
    font-weight:750;
    line-height:1.5;
    letter-spacing:-.055em
}
.ll h3 {
    font-size:23px;
    font-weight:700;
    line-height:1.65;
    letter-spacing:-.03em
}
.ll-eyebrow {
    font-size:10px;
    font-weight:700;
    letter-spacing:2px;
    line-height:1.7;
    margin-bottom:24px!important
}
.ll-hero {
    background:var(--ink);
    color:#fff;
    padding:40px 0 0;
    overflow:hidden
}
.ll-hero>.ll-wrap>.ll-eyebrow {
    color:#b6c9c0;
    display:flex;
    align-items:center;
    gap:10px
}
.ll-dot {
    width:7px;
    height:7px;
    border-radius:50%;
    background:var(--lime);
    box-shadow:0 0 16px #d1ef8370
}
.ll-hero-grid {
    display:grid;
    grid-template-columns:1.05fr 1fr;
    gap:45px;
    align-items:center;
    padding:28px 0 70px
}
.ll-kicker {
    font-size:12px;
    letter-spacing:1px;
    color:#d3ded8;
    margin-bottom:22px!important
}
.ll h1 {
    font-size:clamp(40px,4.5vw,64px);
    font-weight:800;
    line-height:1.43;
    letter-spacing:-.065em
}
.ll h1 em {
    color:var(--lime);
    font-style:normal
}
.ll-intro {
    margin-top:28px!important;
    font-size:15px;
    line-height:2.1;
    color:#c5d0cb
}
.ll-actions {
    display:flex;
    gap:25px;
    align-items:center;
    flex-wrap:wrap;
    margin-top:30px
}
.ll-button {
    display:inline-flex;
    align-items:center;
    justify-content:space-between;
    gap:35px;
    min-height:55px;
    padding:14px 25px;
    border-radius:5px;
    font-size:14px;
    font-weight:700;
    transition:transform .2s,background .2s
}
.ll-button:hover {
    transform:translateY(-3px)
}
.ll .ll-lime {
    background:var(--lime);
    color:var(--ink)
}
.ll .ll-lime:hover {
    background:#e0ffa0
}
.ll-text-link {
    font-size:12px;
    border-bottom:1px solid #ffffff60;
    padding:8px 0
}
.ll-note {
    font-size:10px;
    color:#acbdb5;
    margin-top:16px!important
}
.ll-stage {
    position:relative;
    padding:30px 17px 35px;
    min-width:0
}
.ll-orbit {
    position:absolute;
    inset:-30px -90px;
    border:1px solid #d1ef831c;
    border-radius:50%;
    transform:rotate(-30deg)
}
.ll-orbit:after {
    content:"";
    position:absolute;
    inset:35px -30px;
    border:1px solid #d1ef831c;
    border-radius:50%
}
.ll-course {
    position:relative;
    background:#fff;
    border-radius:10px;
    overflow:hidden;
    color:var(--ink);
    transform:rotate(-3deg);
    box-shadow:0 35px 80px #0005;
    border:6px solid #ffffff12
}
.ll-course-nav {
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:15px;
    font-size:8px;
    border-bottom:1px solid #eee
}
.ll-course-nav strong {
    font-size:11px;
    letter-spacing:1px
}
.ll-mini-mark {
    color:#62812e;
    font-size:19px;
    vertical-align:middle
}
.ll-course-art {
    height:230px;
    background:#dfedbd;
    position:relative;
    overflow:hidden;
    padding:22px 25px
}
.ll-art-label {
    font-size:8px;
    line-height:1.6;
    letter-spacing:1px;
    position:relative;
    z-index:1
}
.ll-course-art>strong {
    display:block;
    position:relative;
    font-size:38px;
    line-height:1.35;
    margin-top:21px;
    letter-spacing:-2px
}
.ll-art-rings {
    position:absolute;
    width:230px;
    height:310px;
    border-radius:50%;
    border:35px solid #739552;
    right:-30px;
    top:-32px;
    transform:rotate(35deg);
    box-shadow:0 0 0 24px #a9c17b,0 0 0 48px #c8daa0
}
.ll-play {
    position:absolute;
    right:23px;
    bottom:23px;
    width:47px;
    height:47px;
    display:grid;
    place-items:center;
    background:#fff9;
    border:1px solid #fff;
    border-radius:50%;
    font-size:14px;
    backdrop-filter:blur(10px)
}
.ll-course-body {
    padding:23px
}
.ll-small-label {
    font-size:9px;
    color:#697968
}
.ll-course-body h2 {
    font-size:18px;
    letter-spacing:-.04em;
    margin-top:5px
}
.ll-course-body>p {
    font-size:10px;
    color:#758078;
    margin-top:7px
}
.ll-lesson {
    display:flex;
    gap:12px;
    align-items:center;
    background:#f4f6ef;
    border:1px solid #e8ecdf;
    border-radius:5px;
    padding:11px;
    margin-top:20px;
    font-size:10px
}
.ll-lesson-icon {
    background:#e4eccf;
    padding:8px;
    font-size:11px
}
.ll-lesson strong,.ll-lesson small {
    display:block
}
.ll-lesson small {
    color:#758078;
    font-size:8px
}
.ll-lesson>span:last-child {
    margin-left:auto
}
.ll-progress {
    height:4px;
    background:#e8eee2;
    margin-top:21px
}
.ll-progress>span {
    display:block;
    width:37.5%;
    background:#78994a;
    height:100%
}
.ll-progress-caption {
    display:flex;
    justify-content:space-between;
    font-size:8px;
    color:#697968;
    margin-top:7px
}
.ll-float {
    position:absolute;
    z-index:2;
    background:#fff;
    color:var(--ink);
    border:1px solid #e5e9df;
    border-radius:8px;
    padding:14px 19px;
    display:flex;
    gap:12px;
    align-items:center;
    box-shadow:0 15px 45px #0002
}
.ll-float-top {
    top:2px;
    right:-14px;
    transform:rotate(3deg)
}
.ll-float-bottom {
    bottom:13px;
    left:-28px;
    transform:rotate(2deg)
}
.ll-float small {
    display:block;
    font-size:8px;
    letter-spacing:1.3px;
    color:#71836c
}
.ll-float strong {
    display:block;
    font-size:11px
}
.ll-float-icon {
    width:32px;
    height:32px;
    display:grid;
    place-items:center;
    border-radius:50%;
    background:#ebf4d7;
    color:#4d6b2c;
    font-size:20px
}
.ll-mock-note {
    position:absolute;
    bottom:-22px;
    right:4px;
    font-size:9px;
    color:#a3b3ab
}
.ll-hero-bottom {
    padding:22px 0;
    display:flex;
    justify-content:space-between;
    border-top:1px solid #ffffff26;
    font-size:10px;
    color:#b7c7bf;
    letter-spacing:1px
}
.ll-hero-bottom a {
    font-size:9px
}
.ll-hero-bottom a span {
    margin-left:22px
}
.ll-capabilities {
    border-bottom:1px solid #dde2d8;
    background:#eff2e8
}
.ll-capabilities .ll-wrap {
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:24px 0;
    font-size:12px;
    font-weight:700;
    gap:15px;
    flex-wrap:wrap
}
.ll-capabilities b {
    font-size:14px;
    color:#809571;
    font-weight:400
}
.ll-section {
    padding:100px 0;
    scroll-margin-top:25px
}
.ll-section .ll-eyebrow {
    color:#607750
}
.ll-split {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:90px
}
.ll-split>div>p:not(.ll-eyebrow) {
    font-size:14px;
    color:#62716b;
    margin-top:20px
}
.ll-split .ll-lead {
    font-size:21px!important;
    font-weight:600;
    line-height:1.9;
    color:var(--ink)!important;
    margin-top:0!important
}
.ll-before-after {
    display:flex;
    justify-content:space-between;
    align-items:center;
    border-top:1px solid #d7dfd3;
    margin-top:30px;
    padding-top:22px;
    font-size:13px
}
.ll-before-after strong {
    color:#537433
}
.ll-experience {
    background:#eaf0e5
}
.ll-section-top {
    display:flex;
    justify-content:space-between;
    align-items:flex-end;
    gap:30px;
    margin-bottom:45px
}
.ll-section-top>p {
    font-size:14px;
    color:#62716b
}
.ll-feature-grid {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:20px
}
.ll-feature {
    padding:36px;
    background:#fbfcf8;
    border-radius:9px;
    position:relative;
    overflow:hidden
}
.ll-feature-large {
    grid-column:1/-1;
    display:grid;
    grid-template-columns:1fr 1fr;
    align-items:center;
    gap:50px
}
.ll-number {
    display:block;
    font-size:10px;
    font-weight:700;
    letter-spacing:1.7px;
    color:#66785a;
    margin-bottom:22px
}
.ll-feature p {
    font-size:13px;
    line-height:2;
    color:#62716b;
    margin:17px 0 24px;
    max-width:420px
}
.ll-tag {
    display:inline-block;
    padding:4px 10px;
    border:1px solid #dce4d4;
    font-size:10px;
    border-radius:3px;
    margin:0 5px 5px 0;
    color:#53644b
}
.ll-curriculum {
    background:#eaf0e1;
    border:1px solid #d7e0cc;
    padding:25px;
    border-radius:8px;
    transform:rotate(-2deg)
}
.ll-curriculum>div {
    display:flex;
    justify-content:space-between;
    font-size:9px;
    letter-spacing:1px;
    margin-bottom:20px
}
.ll-curriculum p {
    display:flex;
    align-items:center;
    gap:13px;
    padding:15px;
    background:#fff;
    margin:9px 0;
    border-radius:4px;
    max-width:none
}
.ll-curriculum i {
    font-size:11px;
    font-style:normal;
    background:#edf3e2;
    width:28px;
    height:28px;
    display:grid;
    place-items:center;
    color:#61773d
}
.ll-curriculum strong {
    font-size:12px
}
.ll-curriculum p>span {
    font-size:8px;
    margin-left:auto
}
.ll-symbol {
    position:absolute;
    right:35px;
    top:20px;
    font-size:60px;
    line-height:1;
    color:#759154
}
.ll-section-note {
    font-size:11px;
    color:#62716b;
    margin-top:22px!important
}
.ll-section-note a {
    text-decoration:underline;
    margin-left:10px
}
.ll-personas {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:26px
}
.ll-persona {
    display:block;
    border-top:1px solid #bbc7b4;
    padding-top:15px
}
.ll-persona-top {
    display:flex;
    justify-content:space-between;
    font-size:9px;
    letter-spacing:1.6px;
    margin-bottom:16px
}
.ll-persona-top b {
    font-size:18px;
    font-weight:400
}
.ll-persona-art {
    height:190px;
    display:flex;
    align-items:center;
    justify-content:center;
    position:relative;
    overflow:hidden;
    font-family:Georgia,serif;
    font-size:105px;
    letter-spacing:-10px;
    transition:transform .25s
}
.ll-persona:hover .ll-persona-art {
    transform:translateY(-4px)
}
.ll-persona-art>span {
    position:absolute;
    bottom:14px;
    left:18px;
    font-size:10px;
    letter-spacing:1px;
    font-family:Arial,"Yu Gothic",sans-serif
}
.ll-art-school {
    background:#e7e4dc;
    color:#766851
}
.ll-art-community {
    background:#e1e9d7;
    color:#68824e;
    font-size:140px
}
.ll-art-team {
    background:#e0e9e9;
    color:#456d73;
    font-size:135px
}
.ll-persona h3 {
    font-size:20px;
    margin:21px 0 12px
}
.ll-persona p {
    font-size:12px;
    color:#62716b
}
.ll-persona-link {
    display:inline-block;
    margin-top:20px;
    font-size:11px;
    font-weight:700;
    border-bottom:1px solid #bac6b2;
    padding-bottom:4px
}
.ll-more {
    display:flex;
    gap:30px;
    flex-wrap:wrap;
    align-items:center;
    margin-top:40px;
    padding-top:24px;
    border-top:1px solid #dce1d6;
    font-size:12px
}
.ll-more>span {
    color:#6b7c61
}
.ll-start {
    background:#e9eddf
}
.ll-dark-button {
    background:var(--ink);
    color:white!important
}
.ll-steps {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:40px
}
.ll-steps article {
    border-top:1px solid #bcc8b1;
    padding-top:20px
}
.ll-steps article>span {
    font-size:35px;
    font-family:Georgia,serif;
    color:#72805b
}
.ll-steps h3 {
    font-size:17px;
    margin:14px 0 12px
}
.ll-steps p {
    font-size:12px;
    color:#62716b
}
.ll-faq-layout {
    display:grid;
    grid-template-columns:.8fr 1.2fr;
    gap:70px
}
.ll-inline-link {
    display:inline-block;
    border-bottom:1px solid #b8c2b1;
    font-size:12px;
    margin-top:25px
}
.ll-faq details {
    border-bottom:1px solid #d8e0d2
}
.ll-faq details:first-child {
    border-top:1px solid #d8e0d2
}
.ll-faq summary {
    list-style:none;
    cursor:pointer;
    display:flex;
    gap:20px;
    justify-content:space-between;
    font-size:14px;
    font-weight:600;
    padding:23px 0
}
.ll-faq summary::-webkit-details-marker {
    display:none
}
.ll-faq summary:after {
    content:'+';
    font-size:22px;
    font-weight:400;
    line-height:1
}
.ll-faq details[open] summary:after {
    content:'−'
}
.ll-faq details p {
    font-size:13px;
    color:#62716b;
    padding:0 25px 25px 0
}
.ll-faq p a {
    text-decoration:underline
}
.ll-resources {
    padding:28px 0;
    border-top:1px solid #dce2d6
}
.ll-resources .ll-wrap {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:24px;
    flex-wrap:wrap
}
.ll-resources .ll-eyebrow {
    margin:0!important;
    font-size:8px
}
.ll-resources a {
    font-size:11px
}
.ll-resources a span {
    margin-left:12px
}
.ll-final {
    padding:80px 0 0;
    background:var(--ink);
    color:#fff;
    overflow:hidden;
    position:relative
}
.ll-final .ll-eyebrow {
    color:#b7caab
}
.ll-final h2 {
    font-size:clamp(32px,4vw,53px)
}
.ll-final h2 span {
    color:var(--lime)
}
.ll-final p:not(.ll-eyebrow) {
    font-size:14px;
    color:#b8c9c0;
    margin-top:20px
}
.ll-final-word {
    display:block;
    text-align:center;
    font-size:clamp(75px,17vw,260px);
    line-height:1;
    font-weight:800;
    letter-spacing:-.065em;
    color:#ffffff0b;
    margin-top:35px;
    user-select:none
}
.ll a:hover.ll-text-link,.ll a:hover.ll-inline-link {
    color:#8cae56
}
.loom-home:not(.has-sidebar) .navbar>.container-fluid {
    max-width:1200px;
    padding-left:0!important;
    padding-right:0!important;
    width:calc(100% - 96px)
}

@media(min-width:1600px) {
    .ll-hero-grid {
    padding:55px 0 90px
}

}
@media(max-width:1100px) {
    .ll-wrap {
    width:calc(100% - 64px)
}
.ll-hero-grid {
    gap:25px
}
.ll h1 {
    font-size:47px
}
.ll-stage {
    padding:30px 10px
}
.ll-course-art {
    height:205px
}
.ll-course-art>strong {
    font-size:32px
}
.ll-float {
    padding:12px
}
.ll-float-top {
    right:-5px
}
.ll-float-bottom {
    left:-5px
}
.ll-actions {
    gap:16px
}
.ll-text-link {
    font-size:11px
}
.ll-split {
    gap:45px
}
.ll-feature-large {
    gap:25px
}
.ll-curriculum {
    padding:18px
}
.ll-personas {
    gap:20px
}
.ll-faq-layout {
    gap:40px
}

}

@media(max-width:800px) {
    .ll-wrap {
    width:calc(100% - 40px)
}
.loom-home:not(.has-sidebar) .navbar>.container-fluid {
    width:calc(100% - 40px)
}
.ll-hero {
    padding-top:25px
}
.ll-hero-grid {
    grid-template-columns:1fr;
    padding-top:12px;
    gap:45px;
    padding-bottom:55px
}
.ll h1 {
    font-size:clamp(38px,8vw,60px)
}
.ll-kicker {
    font-size:11px
}
.ll-intro {
    font-size:14px
}
.ll-stage {
    width:100%;
    max-width:490px;
    margin:auto;
    padding:25px 15px 35px
}
.ll-course-art {
    height:225px
}
.ll-course-art>strong {
    font-size:38px
}
.ll-float-top {
    right:0
}
.ll-float-bottom {
    left:0
}
.ll-hero-bottom {
    font-size:8px;
    letter-spacing:0;
    gap:12px
}
.ll-hero-bottom a {
    font-size:8px
}
.ll-hero-bottom a span {
    margin-left:5px
}
.ll-capabilities .ll-wrap {
    justify-content:center;
    font-size:10px;
    gap:12px;
    padding:18px 0
}
.ll-capabilities b {
    font-size:10px
}
.ll-section {
    padding:65px 0
}
.ll-split,.ll-faq-layout {
    grid-template-columns:1fr;
    gap:30px
}
.ll h2 {
    font-size:31px
}
.ll-split .ll-lead {
    font-size:18px!important
}
.ll-section-top {
    align-items:flex-start;
    flex-direction:column;
    gap:20px;
    margin-bottom:30px
}
.ll-feature-grid {
    grid-template-columns:1fr
}
.ll-feature-large {
    grid-column:auto;
    grid-template-columns:1fr;
    gap:25px
}
.ll-feature {
    padding:25px
}
.ll-feature h3 {
    font-size:22px
}
.ll-curriculum {
    transform:none
}
.ll-personas {
    grid-template-columns:1fr;
    gap:35px
}
.ll-persona-art {
    height:200px
}
.ll-persona p {
    max-width:500px
}
.ll-persona h3 {
    margin-top:16px
}
.ll-more {
    gap:15px;
    font-size:11px
}
.ll-steps {
    grid-template-columns:1fr;
    gap:25px
}
.ll-steps article {
    display:grid;
    grid-template-columns:45px 1fr;
    column-gap:15px
}
.ll-steps article>span {
    grid-row:1/3
}
.ll-steps h3 {
    margin:0 0 10px
}
.ll-steps p {
    grid-column:2
}
.ll-faq summary {
    font-size:13px
}
.ll-resources .ll-wrap {
    align-items:flex-start;
    flex-direction:column;
    gap:18px
}
.ll-final {
    padding-top:60px
}
.ll-final h2 {
    font-size:32px
}
.ll-eyebrow {
    font-size:8px;
    letter-spacing:1.4px
}
.ll-note {
    font-size:9px
}
.ll-section-note a {
    display:inline-block;
    margin-left:0
}
.ll-final .ll-actions {
    gap:20px
}

}
@media(prefers-reduced-motion:reduce) {
    .ll *, .ll *:before,.ll *:after {
    transition:none!important;
    animation:none!important;
    scroll-behavior:auto!important
}

}


/* Story-based model cases: distinguish illustrative scenarios from testimonials. */
.ll-case-disclaimer {
    margin: -15px 0 30px !important;
    color: #62716b;
    font-size: 12px;
}
.ll-case-list {
    display: grid;
    gap: 28px;
}
.ll-case {
    display: grid;
    grid-template-columns: .8fr 1.2fr;
    border: 1px solid #dce2d6;
    border-radius: 10px;
    overflow: hidden;
    background: #fff;
}
.ll-case-cover {
    position: relative;
    min-height: 390px;
    padding: 28px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    overflow: hidden;
}
.ll-case-school { background: #e7e4dc; color: #625540; }
.ll-case-community { background: #e1e9d7; color: #496239; }
.ll-case-team { background: #e0e9e9; color: #345c62; }
.ll-case-cover-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    font-size: 10px;
    letter-spacing: 2px;
    position: relative;
    z-index: 1;
}
.ll-case-badge {
    font-size: 10px;
    letter-spacing: .04em;
    padding: 3px 10px;
    border: 1px solid currentColor;
    border-radius: 30px;
}
.ll-case-photo {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center top;
}
.ll-case-cover::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom,
        rgba(20, 24, 20, .28) 0%, rgba(20, 24, 20, 0) 28%,
        rgba(20, 24, 20, 0) 52%, rgba(20, 24, 20, .66) 100%);
}
.ll-case-cover-top,
.ll-case-profile { color: #fff; text-shadow: 0 1px 12px rgba(0, 0, 0, .35); }
.ll-case-profile { position: relative; z-index: 1; }
.ll-case-profile > span {
    display: block;
    font-size: 8px;
    letter-spacing: 1.3px;
    margin-bottom: 12px;
}
.ll-case-profile strong { display: block; font-size: 18px; }
.ll-case-profile p { font-size: 11px; margin-top: 5px; }
.ll-case-story { padding: 32px 36px; }
.ll-case-story h3 { font-size: 26px; line-height: 1.55; }
.ll-case-story dl { margin: 25px 0; }
.ll-case-story dl > div {
    display: grid;
    grid-template-columns: 78px 1fr;
    gap: 14px;
    padding: 14px 0;
    border-top: 1px solid #e6eadf;
}
.ll-case-story dt { font-size: 11px; font-weight: 700; padding-top: 2px; }
.ll-case-story dd { margin: 0; font-size: 12px; line-height: 1.95; color: #62716b; }
.ll-case-story .ll-case-outcome {
    background: #f0f4e9;
    padding: 16px;
    border: 0;
    border-radius: 5px;
    margin-top: 6px;
    grid-template-columns: 62px 1fr;
}
.ll-case-outcome dt { color: #496239; }
.ll-case-outcome dd { color: #3e5434; }
.ll-case-bottom { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; justify-content: space-between; }
.ll-case-bottom .ll-persona-link { margin-top: 0; }
@media (max-width: 800px) {
    .ll-case { grid-template-columns: 1fr; }
    .ll-case-cover { min-height: 300px; padding: 22px; }
    .ll-case-photo { object-position: center 15%; }
    .ll-case-profile strong { font-size: 16px; }
    .ll-case-story { padding: 25px 22px; }
    .ll-case-story h3 { font-size: 23px; }
    .ll-case-story dl > div { grid-template-columns: 1fr; gap: 7px; }
    .ll-case-story .ll-case-outcome { grid-template-columns: 1fr; padding: 14px; }
    .ll-case-disclaimer { margin-top: 0 !important; font-size: 11px; }
}
