:root {
    --bg: #0b0b0b;
    --fg: #f4f1ed;
    --muted: #aaa7a3;
    --orange: #ff7a2f;
    --line: #292724
}

* {
    box-sizing: border-box
}

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

body {
    margin: 0;
    background: var(--bg);
    color: var(--fg);
    font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
    line-height: 1.9;
    -webkit-font-smoothing: antialiased
}

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

button {
    font: inherit;
    cursor: pointer
}

button,
a {
    -webkit-tap-highlight-color: transparent
}

a:focus-visible,
button:focus-visible {
    outline: 2px solid var(--orange);
    outline-offset: 6px
}

em {
    font-style: normal;
    color: var(--orange)
}

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

strong {
    font-weight: 600;
    color: #eae6e0
}

header {
    position: absolute;
    z-index: 5;
    top: 0;
    left: 0;
    width: 100%;
    height: 105px;
    padding: 0 5.5%;
    display: flex;
    align-items: center;
    gap: 44px;
    border-bottom: 1px solid #ffffff0c
}

.brand {
    display: flex;
    align-items: center;
    gap: 13px;
    font-size: 27px;
    font-weight: 600;
    letter-spacing: .13em;
    line-height: 1.2
}

.brand small {
    display: block;
    font-size: 10px;
    letter-spacing: .3em;
    margin-top: 8px
}

.brand-mark {
    color: var(--orange);
    font-size: 43px;
    font-weight: 400
}

.brand img {
    width: 150px;
    height: 61px;
}

nav {
    display: flex;
    gap: 35px;
    margin-left: auto;
    font-size: 14px;
    letter-spacing: .06em
}

nav a:hover {
    color: var(--orange)
}

.header-cta {
    padding: 10px 25px;
    border: 1px solid #6c4a32;
    font-size: 14px
}

.header-cta:hover {
    background: #ff7a2f18
}

.hero {
    position: relative;
    min-height: 850px;
    height: 100svh;
    max-height: 1100px;
    overflow: hidden;
    background: radial-gradient(ellipse at 80% 63%, #27120644, transparent 50%)
}

canvas {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    opacity: .8
}

.hero-content {
    position: relative;
    z-index: 1;
    padding: 210px 0 150px;
    margin-left: 10%;
    max-width: 780px
}

.eyebrow {
    font-size: 32px;
    letter-spacing: .16em;
    color: var(--orange);
    font-weight: 500
}

.hero .eyebrow {
    display: flex;
    align-items: center;
    gap: 13px;
    color: #dad5ce
}

.eyebrow>span {
    width: 6px;
    height: 6px;
    background: var(--orange);
    border-radius: 50%;
    box-shadow: 0 0 15px var(--orange)
}

h1 {
    font-size: clamp(40px, 4.65vw, 74px);
    line-height: 1.5;
    letter-spacing: .045em;
    font-weight: 600;
    margin-top: 35px
}

.hero-sub {
    margin: 28px 0 36px;
    color: #c8c3bc;
    font-size: 18px;
    line-height: 2
}

.button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--orange);
    color: #170c05;
    min-height: 58px;
    padding: 16px 28px;
    font-size: 15px;
    letter-spacing: .04em;
    font-weight: 600;
    border: 1px solid var(--orange);
    transition: background .25s, transform .25s
}

.button:hover {
    background: #ff995e;
    transform: translateY(-2px)
}

.hero-note {
    font-size: 13px;
    color: var(--muted);
    margin-top: 15px
}

.hero-bottom {
    position: absolute;
    bottom: 52px;
    left: 10%;
    right: 6%;
    display: flex;
    justify-content: space-between;
    font-size: 12px;
    letter-spacing: .22em;
    color: #77716a
}

.trajectory {
    margin-left: auto;
    margin-right: 80px
}

.scroll {
    position: absolute;
    bottom: 48px;
    left: 5.5%;
    writing-mode: vertical-rl;
    font-size: 10px;
    letter-spacing: .2em;
    display: flex;
    align-items: center;
    gap: 16px;
    color: #898078
}

.scroll span {
    height: 50px;
    width: 1px;
    background: linear-gradient(var(--orange), transparent)
}

.section {
    max-width: 1180px;
    margin: auto;
    padding: 120px 35px
}

.section-label {
    font-size: 12px;
    letter-spacing: .22em;
    color: #96918b;
    display: flex;
    align-items: center;
    gap: 20px;
    margin-bottom: 52px
}

.section-label span {
    color: var(--orange);
    font-size: 14px
}

.opening-grid,
.reason-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 100px
}

h2 {
    font-size: clamp(29px, 3vw, 46px);
    line-height: 1.7;
    font-weight: 500;
    letter-spacing: .035em
}

.opening h2 {
    position: sticky;
    top: 120px;
    align-self: start
}

.opening-text>p {
    font-size: 16px;
    color: #aaa6a0;
    margin-bottom: 30px;
    line-height: 2.2
}

.questions {
    border-top: 1px solid var(--line);
    margin: 40px 0
}

.questions p {
    padding: 17px 0;
    border-bottom: 1px solid var(--line);
    font-size: 18px
}

.questions i {
    font-style: normal;
    font-size: 11px;
    color: var(--orange);
    margin-right: 25px;
    letter-spacing: .15em
}

.meaning {
    background: #11100e;
    position: relative;
    overflow: hidden;
    border-top: 1px solid #251d16;
    border-bottom: 1px solid #251d16
}

.meaning-inner {
    padding: 95px 30px;
    text-align: center;
    background: radial-gradient(ellipse at center bottom, #58301726, transparent 70%)
}

.meaning-intro {
    color: #aca49a;
    margin: 30px 0 25px;
    font-size: 16px
}

.meaning h2 {
    font-size: clamp(34px, 4.2vw, 62px);
    letter-spacing: .08em
}

.meaning-inner>p:last-of-type {
    font-size: 15px;
    margin-top: 25px;
    color: #ada59c
}

.glow-line {
    display: block;
    width: 1px;
    height: 80px;
    margin: 35px auto -95px;
    background: linear-gradient(var(--orange), #ff7a2f15);
    box-shadow: 0 0 15px #ff7a2f
}

.mobile-br {
    display: none
}

.section-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 40px;
    margin-bottom: 65px
}

.section-head>p {
    font-size: 15px;
    line-height: 2;
    color: var(--muted);
    padding-bottom: 8px
}

.benefit-list article {
    display: flex;
    align-items: start;
    gap: 38px;
    border-top: 1px solid var(--line);
    padding: 38px 0
}

.benefit-list article:last-child {
    border-bottom: 1px solid var(--line)
}

.number {
    font-size: 14px;
    letter-spacing: .1em;
    color: var(--orange);
    padding-top: 4px
}

.benefit-list h3 {
    font-size: 23px;
    font-weight: 500;
    letter-spacing: .03em
}

.benefit-list p {
    font-size: 16px;
    color: var(--muted);
    margin-top: 11px;
    max-width: 690px
}

.mini-line {
    margin-left: auto;
    margin-top: 17px;
    width: 110px;
    height: 1px;
    background: linear-gradient(#6c3620, var(--orange));
    position: relative
}

.mini-line:after {
    content: "";
    position: absolute;
    right: 0;
    top: -3px;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--orange);
    box-shadow: 0 0 13px #ff7a2f
}

.reason {
    border-top: 1px solid var(--line)
}

.reason-grid {
    gap: 90px
}

.reason-grid>div>p {
    color: var(--muted);
    font-size: 16px;
    margin-top: 28px
}

.connection {
    text-align: center;
    padding: 10px 15px
}

.connection>div {
    padding: 20px 15px
}

.connection span {
    font-size: 11px;
    color: #847b73;
    letter-spacing: .22em
}

.connection h3 {
    font-size: 24px;
    font-weight: 500;
    margin: 5px 0
}

.connection p {
    font-size: 14px;
    color: var(--muted)
}

.connection i {
    display: block;
    width: 1px;
    height: 32px;
    background: #77462a;
    margin: auto
}

.connection-center {
    border: 1px solid #77462a;
    background: radial-gradient(ellipse, #321b0c55, transparent)
}

.connection-center h3,
.connection-center span {
    color: var(--orange)
}

.program {
    border-top: 1px solid var(--line)
}

.steps {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 45px;
    margin: 65px 0 95px
}

.steps article {
    position: relative;
    padding-bottom: 40px;
    border-bottom: 1px solid #6b3a21
}

.steps article>span {
    font-size: 12px;
    letter-spacing: .15em;
    color: var(--orange)
}

.steps h3 {
    font-size: 28px;
    margin: 16px 0;
    font-weight: 500
}

.steps p {
    font-size: 16px;
    color: var(--muted)
}

.step-dot {
    position: absolute;
    bottom: -4px;
    left: 0;
    background: var(--orange);
    width: 7px;
    height: 7px;
    border-radius: 50%;
    box-shadow: 0 0 17px var(--orange)
}

.offer {
    border: 1px solid #493122;
    background: linear-gradient(120deg, #25190f55, #12110f);
    padding: 45px 50px;
    display: flex;
    justify-content: space-between;
    gap: 30px
}

.offer h3 {
    font-size: 27px;
    font-weight: 500;
    margin-top: 20px;
    line-height: 1.8
}

.offer-detail {
    min-width: 260px
}

.offer-detail>div {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 30px;
    margin-bottom: 20px
}

.offer-detail>div>span {
    font-size: 14px;
    color: var(--muted)
}

.offer-detail strong {
    font-size: 60px;
    line-height: 1.1;
    font-weight: 400;
    color: var(--orange)
}

.offer-detail strong span {
    font-size: 16px;
    margin-left: 8px;
    color: var(--fg)
}

.offer-detail .button {
    width: 100%
}

.contact {
    text-align: center;
    padding: 120px 25px 130px;
    background: radial-gradient(ellipse at 50% 75%, #46220c33, transparent 65%);
    border-top: 1px solid #2d2219;
    position: relative
}

.closing-small {
    font-size: 17px;
    margin: 40px 0 22px;
    color: var(--muted)
}

.contact h2 {
    font-size: clamp(28px, 3.2vw, 48px);
    line-height: 1.85
}

.closing-body {
    font-size: 16px;
    margin: 30px 0 37px;
    color: #b7afa5;
    line-height: 2.2
}

.contact .button {
    min-width: 310px
}

.contact-note {
    font-size: 12px;
    color: #827b72;
    margin-top: 20px
}

footer {
    display: flex;
    align-items: center;
    gap: 30px;
    padding: 45px 5.5%;
    border-top: 1px solid var(--line);
    color: #9c968d
}

footer .brand {
    color: var(--fg);
    font-size: 22px
}

footer .brand-mark {
    font-size: 35px
}

footer p {
    font-size: 12px
}

footer>small {
    font-size: 11px;
    margin-left: auto
}

footer>a:last-child {
    font-size: 12px
}

dialog {
    background: #15120f;
    color: var(--fg);
    border: 1px solid #6d482b;
    padding: 55px 40px;
    max-width: 550px;
    width: calc(100% - 40px)
}

dialog::backdrop {
    background: #000b;
    backdrop-filter: blur(6px)
}

dialog h2 {
    font-size: 30px;
    margin: 18px 0
}

dialog>p:not(.eyebrow) {
    font-size: 16px;
    color: var(--muted);
    margin-bottom: 20px
}

dialog .button {
    margin-top: 15px
}

.dialog-close {
    position: absolute;
    right: 13px;
    top: 6px;
    border: 0;
    color: var(--muted);
    background: transparent;
    font-size: 30px
}

@media(min-width:1600px) {
    .hero-content {
        margin-left: calc((100vw - 1280px)/2)
    }
}

@media(max-width:900px) {
    header {
        height: 85px;
        padding: 0 6%;
        gap: 20px
    }

    nav {
        gap: 20px;
        font-size: 12px
    }

    .header-cta {
        font-size: 12px;
        padding: 8px 16px
    }

    .hero {
        min-height: 780px
    }

    .hero-content {
        margin-left: 8%;
        padding-top: 200px
    }

    .opening-grid,
    .reason-grid {
        gap: 45px
    }

    .section {
        padding: 90px 30px
    }

    .mini-line {
        display: none
    }

    .section-head>p {
        max-width: 240px
    }

    .offer {
        padding: 35px
    }

    .offer-detail {
        min-width: 220px
    }

    footer {
        flex-wrap: wrap
    }

    footer p {
        display: none
    }
}

@media(max-width:600px) {
    header {
        height: 82px
    }

    .brand {
        font-size: 23px;
        gap: 10px
    }

    .brand-mark {
        font-size: 36px
    }

    .brand small {
        font-size: 8px
    }

    nav {
        display: none
    }

    .header-cta {
        margin-left: auto;
        font-size: 12px
    }

    .hero {
        height: calc(100svh - 5px);
        min-height: 735px;
        max-height: 900px
    }

    .hero-content {
        margin: 0;
        padding: 175px 24px 120px
    }

    .hero .eyebrow {
        font-size: 20px
    }

    h1 {
        font-size: clamp(33px, 8.7vw, 51px);
        line-height: 1.6;
        letter-spacing: .015em;
        margin-top: 27px
    }

    .hero-sub {
        font-size: 15px;
        margin: 25px 0 28px;
        line-height: 2.1
    }

    .hero .button {
        font-size: 13px;
        padding: 15px 16px
    }

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

    .hero-bottom {
        left: 24px;
        right: 24px;
        bottom: 35px;
        font-size: 10px
    }

    .trajectory {
        display: none
    }

    .scroll {
        display: none
    }

    .section {
        padding: 75px 24px
    }

    .section-label {
        margin-bottom: 32px;
        font-size: 10px;
        gap: 17px
    }

    .opening-grid,
    .reason-grid {
        grid-template-columns: 1fr;
        gap: 36px
    }

    .opening h2 {
        position: static
    }

    h2 {
        font-size: 29px;
        line-height: 1.7
    }

    .opening h2 br:last-of-type {
        display: none
    }

    .opening-text>p {
        font-size: 15px;
        line-height: 2.2
    }

    .questions {
        margin: 30px 0
    }

    .questions p {
        font-size: 16px
    }

    .questions i {
        margin-right: 18px
    }

    .meaning-inner {
        padding: 70px 22px
    }

    .meaning h2 {
        font-size: 36px;
        line-height: 1.75;
        letter-spacing: .04em
    }

    .meaning-intro {
        margin: 25px 0 20px
    }

    .meaning-inner>p:last-of-type {
        font-size: 14px
    }

    .glow-line {
        margin-bottom: -70px;
        height: 60px
    }

    .mobile-br {
        display: block
    }

    .section-head {
        display: block;
        margin-bottom: 35px
    }

    .section-head>p {
        margin-top: 23px;
        max-width: none;
        font-size: 14px
    }

    .benefit-list article {
        gap: 18px;
        padding: 28px 0
    }

    .number {
        font-size: 12px
    }

    .benefit-list h3 {
        font-size: 19px;
        line-height: 1.8
    }

    .benefit-list p {
        font-size: 14px;
        line-height: 2
    }

    .reason-grid>div>p {
        font-size: 15px;
        margin-top: 24px
    }

    .connection {
        padding: 0 20px
    }

    .steps {
        grid-template-columns: 1fr;
        gap: 30px;
        margin: 35px 0 50px
    }

    .steps article {
        padding: 0 0 26px 22px;
        border-bottom: 0;
        border-left: 1px solid #6b3a21
    }

    .steps h3 {
        font-size: 25px;
        margin: 9px 0
    }

    .steps p {
        font-size: 15px
    }

    .step-dot {
        left: -4px;
        top: 7px;
        bottom: auto
    }

    .offer {
        display: block;
        padding: 28px 24px
    }

    .offer .eyebrow {
        font-size: 12px
    }

    .offer h3 {
        font-size: 23px;
        margin: 14px 0 30px
    }

    .offer-detail>div {
        justify-content: start;
        gap: 35px
    }

    .offer-detail strong {
        font-size: 50px
    }

    .contact {
        padding: 80px 22px
    }

    .contact .eyebrow {
        font-size: 12px
    }

    .closing-small {
        margin-top: 30px
    }

    .contact h2 {
        font-size: clamp(25px, 6.7vw, 33px);
        letter-spacing: 0;
        line-height: 1.95
    }

    .closing-body {
        font-size: 14px;
        line-height: 2.3
    }

    .contact .button {
        min-width: 0;
        width: 100%;
        max-width: 340px
    }

    .contact-note {
        font-size: 11px;
        max-width: 300px;
        margin: 18px auto 0
    }

    footer {
        padding: 30px 24px;
        gap: 22px
    }

    footer>small {
        margin-left: auto
    }

    footer>a:last-child {
        width: 100%;
        text-align: right;
        font-size: 11px
    }

    dialog {
        padding: 45px 25px
    }
}

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

    .button {
        transition: none
    }

    canvas {
        opacity: .55
    }
}

/* 47扇子プロジェクト */
.sensu-hero {
    min-height: 850px
}

.sensu-hero .hero-content {
    max-width: 730px;
    padding-top: 205px
}

.sensu-hero h1 {
    font-size: clamp(45px, 5.2vw, 80px);
    line-height: 1.5;
    letter-spacing: .04em
}

.fan-visual {
    position: absolute;
    right: 0;
    top: 29%;
    width: 52%;
    height: 42%;
    overflow: hidden;
    opacity: .85;
    mask-image: linear-gradient(90deg, transparent, #000 22%, #000 82%, transparent);
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 22%, #000 82%, transparent)
}

.fan-visual img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: saturate(.7) brightness(.7);
    mask-image: linear-gradient(0deg, transparent, #000 30%, #000 75%, transparent)
}

.fan-visual>span {
    position: absolute;
    bottom: 0;
    right: 12%;
    font-size: 10px;
    letter-spacing: .25em;
    color: #a88361
}

.hero-content {
    z-index: 2
}

.sensu-hero canvas {
    z-index: 1
}

.sensu-hero .hero-sub {
    margin-top: 23px
}

.craft-parts,
.partner-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 36px
}

.craft-parts article {
    border-top: 1px solid #65391f;
    padding: 25px 0
}

.craft-parts article img {
    width: 100%;
    height: auto;
    object-fit: cover;
}

.craft-parts article>span,
.partner-grid article>span {
    font-size: 11px;
    letter-spacing: .15em;
    color: var(--orange)
}

.craft-parts h3 {
    font-size: 27px;
    font-weight: 500;
    margin: 12px 0
}

.craft-parts p,
.partner-grid p {
    font-size: 15px;
    color: var(--muted)
}

.craft-finish {
    padding: 40px;
    border: 1px solid var(--line);
    margin-top: 35px;
    text-align: center;
    background: radial-gradient(ellipse at center, #ff7a2f09, transparent)
}

.craft-finish h3 {
    font-size: 23px;
    font-weight: 500;
    margin: 16px 0
}

.craft-finish p {
    font-size: 15px;
    color: var(--muted)
}

.products {
    border-top: 1px solid var(--line)
}

.product-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 25px
}

.product-card {
    border: 1px solid #39342d;
    padding: 40px
}

.product-card.premium {
    border-color: #86512c;
    background: radial-gradient(ellipse at top right, #63320d30, transparent 70%)
}

.product-card h3 {
    font-size: 25px;
    font-weight: 500;
    margin: 15px 0
}

.product-card .product-tag {
    color: #ece2d8;
    margin: 18px 0 12px;
    font-size: 17px
}

.product-card>p {
    font-size: 15px;
    color: var(--muted)
}

.price {
    font-size: 48px;
    font-weight: 400;
    margin-top: 30px;
    color: var(--orange);
    line-height: 1.5
}

.price span {
    font-size: 17px;
    color: #d2c6b9;
    margin-right: 5px
}

.product-card small {
    font-size: 12px;
    color: #8f877e
}

.product-card ul {
    list-style: none;
    padding: 0;
    margin: 25px 0 0;
    border-top: 1px solid var(--line);
    padding-top: 20px
}

.product-card li {
    font-size: 14px;
    color: #b5ada4;
    padding: 4px 0
}

.product-card li:before {
    content: '·';
    color: var(--orange);
    margin-right: 12px
}

.source-note {
    font-size: 12px;
    color: #8d867e;
    line-height: 2;
    margin-top: 24px
}

.oem {
    display: flex;
    justify-content: space-between;
    gap: 45px;
    border-top: 1px solid var(--line);
    padding-top: 50px;
    margin-top: 50px
}

.oem h3 {
    font-size: 29px;
    font-weight: 500;
    margin: 14px 0
}

.oem p {
    font-size: 15px;
    color: var(--muted)
}

.oem>div:last-child {
    min-width: 230px;
    padding-top: 25px
}

.text-link {
    display: inline-block;
    border: 0;
    border-bottom: 1px solid #7d5032;
    padding: 5px 0;
    margin-top: 20px;
    font-size: 14px;
    color: var(--orange);
    background: transparent
}

.oem small {
    display: block;
    font-size: 12px;
    margin-top: 14px;
    color: #8c857d
}

.story {
    border-top: 1px solid var(--line)
}

.story-grid {
    display: grid;
    grid-template-columns: .8fr 1.2fr;
    gap: 85px;
    align-items: center
}

.story-number {
    font-family: Georgia, serif;
    font-size: 240px;
    line-height: 1;
    color: #ff7a2f;
    letter-spacing: -.08em;
    opacity: .65;
    text-align: center
}

.story-number span {
    font-family: sans-serif;
    font-size: 10px;
    letter-spacing: .25em;
    display: block;
    color: #b39f8e;
    margin-top: 35px
}

.story-grid>div>p {
    font-size: 16px;
    color: var(--muted);
    margin-top: 24px
}

.story-flow {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-top: 35px;
    font-size: 14px
}

.story-flow i {
    height: 1px;
    flex: 1;
    background: #6c4023
}

.partners {
    border-top: 1px solid var(--line)
}

.partner-grid article {
    padding: 25px 0;
    border-top: 1px solid var(--line)
}

.partner-grid h3 {
    font-size: 22px;
    font-weight: 500;
    margin: 15px 0
}

.shared-model {
    margin-top: 40px;
    padding: 40px 0;
    border-top: 1px solid #6e4427;
    border-bottom: 1px solid #6e4427;
    text-align: center
}

.shared-model h3 {
    font-size: 26px;
    font-weight: 500;
    margin: 18px 0
}

.shared-model p {
    font-size: 14px;
    color: var(--muted)
}

.project-steps {
    margin-bottom: 30px
}

.contact-note {
    max-width: none
}

dialog label {
    display: block;
    font-size: 14px;
    margin: 20px 0 8px
}

dialog select,
dialog textarea {
    width: 100%;
    font: inherit;
    font-size: 15px;
    color: #f2e9df;
    border: 1px solid #5c4735;
    padding: 12px;
    background: #0e0c0a;
    border-radius: 0
}

dialog textarea {
    resize: vertical
}

dialog small {
    display: block;
    font-size: 12px;
    color: var(--muted);
    margin-top: 16px
}

dialog #copy-status {
    font-size: 14px;
    margin-top: 16px;
    color: var(--orange)
}

dialog .dialog-close-action {
    display: block;
    margin-top: 15px
}

.contact h2 {
    font-size: clamp(30px, 3.5vw, 53px)
}

@media(max-width:900px) {
    .sensu-hero .hero-content {
        padding-top: 190px
    }

    .fan-visual {
        width: 62%;
        top: 37%;
        opacity: .6
    }

    .craft-parts,
    .partner-grid {
        gap: 22px
    }

    .product-card {
        padding: 28px
    }

    .price {
        font-size: 38px
    }

    .story-grid {
        gap: 35px
    }

    .story-number {
        font-size: 170px
    }

    .oem {
        gap: 30px
    }
}

@media(max-width:600px) {
    .sensu-hero {
        min-height: 770px
    }

    .sensu-hero .hero-content {
        padding: 155px 24px 120px
    }

    .sensu-hero h1 {
        font-size: clamp(39px, 10.3vw, 59px);
        line-height: 1.6
    }

    .sensu-hero .hero-sub {
        font-size: 15px
    }

    .fan-visual {
        top: 51%;
        height: 28%;
        width: 95%;
        right: -12%;
        opacity: .46;
        mask-image: linear-gradient(90deg, transparent, #000 25%, #000 80%, transparent)
    }

    .fan-visual>span {
        display: none
    }

    .sensu-hero .hero-note {
        max-width: 210px
    }

    .sensu-hero .button {
        position: relative;
        z-index: 3
    }

    .meaning h2 {
        font-size: 28px
    }

    .craft-parts,
    .partner-grid {
        grid-template-columns: 1fr;
        gap: 15px
    }

    .craft-parts article {
        padding: 22px 0 12px
    }

    .craft-parts h3 {
        font-size: 24px
    }

    .craft-finish {
        padding: 30px 20px;
        margin-top: 25px
    }

    .craft-finish .eyebrow {
        font-size: 10px
    }

    .craft-finish h3 {
        font-size: 21px
    }

    .craft-finish p {
        font-size: 14px
    }

    .product-grid {
        grid-template-columns: 1fr;
        gap: 20px
    }

    .product-card {
        padding: 28px 24px
    }

    .product-card h3 {
        font-size: 23px
    }

    .price {
        font-size: 45px
    }

    .source-note {
        font-size: 11px
    }

    .oem {
        display: block;
        padding-top: 35px;
        margin-top: 35px
    }

    .oem h3 {
        font-size: 25px
    }

    .oem p {
        font-size: 14px
    }

    .story-grid {
        grid-template-columns: 1fr;
        gap: 35px
    }

    .story-number {
        font-size: 150px;
        text-align: left
    }

    .story-number span {
        margin-top: 15px;
        margin-left: 10px
    }

    .story-grid>div>p {
        font-size: 15px
    }

    .story-flow {
        font-size: 12px;
        gap: 9px
    }

    .partner-grid h3 {
        font-size: 22px
    }

    .shared-model {
        margin-top: 25px;
        padding: 30px 10px
    }

    .shared-model h3 {
        font-size: 22px
    }

    .shared-model p {
        font-size: 13px
    }

    .closing-small {
        font-size: 14px
    }

    .contact h2 {
        font-size: 28px
    }

    .contact-note {
        font-size: 12px
    }

    .meaning-intro {
        font-size: 14px
    }
}