/* WordPress and TSUTO Private Space integration. Functional logic remains in the plugin. */
html{scroll-behavior:smooth} body{margin:0;background:#fff;color:#24211f} img{max-width:100%;height:auto}
body.admin-bar .site-header,body.admin-bar .private-header{top:32px}
main[lang="ja"],.tsuto-wrap[lang="ja"]{line-break:strict;word-break:normal;word-break:auto-phrase;overflow-wrap:normal}
.tsuto-font-small{font-size:94%}.tsuto-font-large{font-size:106%}
.language-switch a,.private-language a,.mobile-language a{color:inherit;text-decoration:none}.language-switch a[aria-current="true"],.private-language a[aria-current="true"]{color:var(--burgundy);text-decoration:underline;text-underline-offset:5px}
.functional-shell{position:relative;min-height:100vh;padding:170px clamp(24px,7vw,110px) 100px;overflow:hidden;background:linear-gradient(180deg,#fff 0 42%,var(--ivory) 42%)}
.functional-heading{position:relative;z-index:2;max-width:900px;margin:0 auto 55px}.functional-heading h1{max-width:840px;margin:18px 0 0;font-family:"Cormorant Garamond","Noto Serif JP",serif;font-weight:400;font-size:clamp(2.65rem,6vw,5.8rem);line-height:1.04;letter-spacing:-.025em}.functional-heading .my-kanji{position:absolute;z-index:-1;top:-145px;right:0;font-family:"Noto Serif JP",serif;font-size:clamp(14rem,28vw,30rem);color:rgba(117,21,29,.035)}
.plugin-content{position:relative;z-index:3;max-width:1050px;margin:0 auto}.connection-kanji{position:absolute;top:100px;right:-.05em;font-family:"Noto Serif JP",serif;font-size:clamp(16rem,35vw,38rem);line-height:1;color:rgba(117,21,29,.035)}
.my-functional-shell{background:#f8f5ef}.my-functional-shell .my-symbol{position:static;width:95px;margin-top:35px;opacity:.8}
.plugin-content .tsuto-wrap{--ink:#24211f;--muted:#756f68;--paper:#f8f5ef;--accent:var(--burgundy);max-width:980px;margin:0;font-family:"Montserrat","Noto Sans JP",sans-serif}.plugin-content .tsuto-language{display:none}.plugin-content .tsuto-card,.plugin-content .tsuto-message,.plugin-content .tsuto-sealed,.plugin-content .tsuto-settings{border:1px solid rgba(117,21,29,.18);border-radius:0;box-shadow:none}.plugin-content .tsuto-portal{padding:clamp(28px,5vw,64px)}.plugin-content .tsuto-wrap h1,.plugin-content .tsuto-wrap h2{font-family:"Cormorant Garamond","Noto Serif JP",serif;font-weight:400}.plugin-content .tsuto-paths{gap:0}.plugin-content .tsuto-path{min-height:190px;border-radius:0;border-color:rgba(117,21,29,.22);background:#fff;padding:clamp(24px,4vw,48px)}.plugin-content .tsuto-path:first-child{background:var(--burgundy);color:#fff!important}.plugin-content .tsuto-path:first-child span{color:rgba(255,255,255,.72)}.plugin-content .tsuto-path:hover{transform:none;border-color:var(--burgundy);box-shadow:none}.plugin-content .tsuto-wrap button,.plugin-content .tsuto-button,.plugin-content .tsuto-profile-button{border-radius:0;background:var(--burgundy);font-weight:500;letter-spacing:.06em}.plugin-content .tsuto-wrap input[type=password],.plugin-content .tsuto-wrap input[type=email],.plugin-content .tsuto-wrap input[type=text],.plugin-content .tsuto-wrap textarea{border-radius:0;border-color:#cfc6bd;padding:14px 16px}.generic-page{min-height:100vh;padding:160px 24px 80px}.generic-content{max-width:900px;margin:auto}.generic-content h1{font-family:"Cormorant Garamond","Noto Serif JP",serif;font-size:clamp(3rem,7vw,6rem);font-weight:400}.error-page{min-height:100vh;display:grid;place-items:center;padding:150px 24px 70px;background:var(--ivory)}.error-shell{max-width:760px;text-align:center}.error-shell>span{display:block;color:var(--burgundy);font:500 .8rem "Montserrat",sans-serif;letter-spacing:.3em}.error-shell img{width:100px;margin:35px auto}.error-shell h1{font:400 clamp(2.7rem,7vw,6rem)/1.05 "Cormorant Garamond","Noto Serif JP",serif}.error-shell p{max-width:590px;margin:25px auto;line-height:1.9}.error-shell a{display:inline-block;margin-top:20px;color:var(--burgundy);text-underline-offset:6px}
@media(max-width:782px){body.admin-bar .site-header,body.admin-bar .private-header{top:46px}}
@media(max-width:700px){.functional-shell{padding:125px 18px 70px;background:linear-gradient(180deg,#fff 0 30%,var(--ivory) 30%)}.functional-heading{margin-bottom:36px}.functional-heading h1{font-size:clamp(2.35rem,12vw,4rem);line-height:1.13}.connection-kanji{top:140px;font-size:80vw}.plugin-content .tsuto-portal{padding:24px 18px}.plugin-content .tsuto-paths{grid-template-columns:1fr}.plugin-content .tsuto-path:last-child{grid-column:auto}.plugin-content .tsuto-path{min-height:145px}.private-actions>a{display:none}}
@media(max-width:600px){body.admin-bar .site-header,body.admin-bar .private-header{top:0}}

/* Mobile typography pass — meaningful Japanese phrases remain together. */
@media(max-width:700px){
  main[lang="ja"] .hero h1{font-size:clamp(32px,10.8vw,42px);line-height:1.48;letter-spacing:-.035em}
  main[lang="ja"] .about h2,
  main[lang="ja"] .origin h2,
  main[lang="ja"] .gift h2,
  main[lang="ja"] .pendant h2,
  main[lang="ja"] .nfc h2,
  main[lang="ja"] .space h2,
  main[lang="ja"] .privacy h2{font-size:clamp(27px,8vw,32px);line-height:1.62;letter-spacing:-.025em}
  main[lang="ja"] .closing h2{font-size:clamp(25px,7.5vw,30px);line-height:1.75;letter-spacing:0}
  main[lang="en"] .hero h1{font-size:clamp(40px,11vw,44px);line-height:1.08}
  main[lang="en"] .about h2,
  main[lang="en"] .origin h2,
  main[lang="en"] .gift h2,
  main[lang="en"] .pendant h2,
  main[lang="en"] .nfc h2,
  main[lang="en"] .space h2,
  main[lang="en"] .privacy h2,
  main[lang="en"] .faq h2{font-size:clamp(32px,9vw,36px);line-height:1.12;text-wrap:balance}
  main[lang="ja"] .hero h1,
  main[lang="ja"] .about h2,
  main[lang="ja"] .origin h2,
  main[lang="ja"] .gift h2,
  main[lang="ja"] .pendant h2,
  main[lang="ja"] .nfc h2,
  main[lang="ja"] .privacy h2,
  main[lang="ja"] .closing h2,
  main[lang="ja"] .functional-heading h1{word-break:keep-all;overflow-wrap:normal}
  main[lang="ja"] .space-card.primary h3{font-size:clamp(27px,8.2vw,32px);line-height:1.5;word-break:keep-all;overflow-wrap:normal}
  .functional-heading{margin-bottom:52px}
  .functional-heading h1{font-size:clamp(28px,8.5vw,34px);line-height:1.55;letter-spacing:-.02em;text-wrap:balance}
  .my-functional-shell .functional-heading{margin-bottom:64px}
  .plugin-content .tsuto-wrap h1{font-size:clamp(26px,7.5vw,30px);line-height:1.48;text-wrap:balance}
  .plugin-content .tsuto-profile>.tsuto-card{padding:30px 22px}
  .plugin-content .tsuto-profile-auth{gap:38px;margin-top:38px}
  .plugin-content .tsuto-profile-auth form+form{padding-top:34px}
  .plugin-content .tsuto-key-entry{margin-top:36px}
  .plugin-content .tsuto-path{padding:30px 24px;min-height:160px}
  .plugin-content .tsuto-path strong{line-height:1.55}
  .plugin-content .tsuto-path span{line-height:1.75}
  .journey h3{font-size:clamp(23px,7vw,27px);line-height:1.48;text-wrap:balance}
  .error-shell h1{font-size:clamp(27px,8.2vw,32px);line-height:1.55;text-wrap:balance}
  main[lang="ja"] .error-shell h1{word-break:keep-all;overflow-wrap:normal}
}

@media(max-width:360px){
  .functional-shell{padding-left:16px;padding-right:16px}
  .plugin-content .tsuto-profile>.tsuto-card{padding-left:18px;padding-right:18px}
  .private-header{padding-left:16px;padding-right:16px}
}

/* Notification interface supplied by TSUTO Private Space 0.7+. */
.plugin-content .tsuto-notification-center{border-radius:0;border-color:rgba(117,21,29,.22);background:#fbf5f2}
.plugin-content .tsuto-notification-total>span{background:var(--burgundy)}
.plugin-content .tsuto-notification-settings{border-color:rgba(117,21,29,.22)}
.plugin-content .tsuto-wrap .tsuto-notify-toggle{border:1px solid #bdb4aa!important;background:#fff!important;color:#24211f!important;letter-spacing:.02em}
.plugin-content .tsuto-wrap .tsuto-notify-toggle.is-on{border-color:#79a183!important;background:#edf8f0!important;color:#1f6632!important}
@media(max-width:700px){
  .plugin-content .tsuto-connection-actions .tsuto-notify-form{flex-basis:100%}
  .plugin-content .tsuto-connection-actions .tsuto-notify-toggle{width:100%}
}

/* Protected My TSUTO, TSUTO no Ma and TSUTO no Wa. */
.plugin-content .tsuto-protected-callout,.plugin-content .tsuto-invite-accept{border-radius:0;border-color:rgba(117,21,29,.22);background:#fbf5f2}
.plugin-content .tsuto-groups,.plugin-content .tsuto-tsunagare{border-color:rgba(117,21,29,.18)}
.plugin-content .tsuto-group-pill,.plugin-content .tsuto-contact{border-radius:0}
.plugin-content .tsuto-group-assign select{border-radius:0;border-color:#cfc6bd}
.plugin-content .tsuto-invite-ready{border-radius:0;background:#edf8f0}
.plugin-content .tsuto-active-mark{border-radius:0}
.plugin-content .tsuto-wa-card,.plugin-content .tsuto-wa-create,.plugin-content .tsuto-wa-chat,.plugin-content .tsuto-wa-side>section{border-radius:0;border-color:rgba(117,21,29,.2)}
.plugin-content .tsuto-wa-card,.plugin-content .tsuto-wa-side>section{background:#f8f5ef}
.plugin-content .tsuto-wa-message{border-radius:0}
.plugin-content .tsuto-wa-heading>div>p:last-child,.plugin-content .tsuto-wa-room-head>p:last-child{max-width:680px}

/* 1.7 — TSUTO NFC first-use experience. */
.plugin-content .tsuto-ceremony{border-color:rgba(117,21,29,.22);border-radius:0;background:#fff;box-shadow:none}
.plugin-content .tsuto-ceremony:before{border-color:rgba(117,21,29,.18)}
.plugin-content .tsuto-ceremony h1{font-family:"Cormorant Garamond","Noto Serif JP",serif;font-weight:400;line-height:1.12}
.plugin-content .tsuto-ceremony-mark{font-family:"Noto Serif JP",serif;color:rgba(117,21,29,.04)}
.plugin-content .tsuto-receiver-entry,.plugin-content .tsuto-reveal{background:linear-gradient(145deg,#fff 0 62%,#f8f5ef 100%)}
.plugin-content .tsuto-receiver-key{border-color:rgba(117,21,29,.24);border-radius:0;background:#fbf5f2}
.plugin-content .tsuto-key-copy code{border-color:rgba(117,21,29,.24);border-radius:0;color:var(--burgundy)}
@media(max-width:700px){.plugin-content .tsuto-ceremony{width:100%;max-width:100%;min-height:520px}.plugin-content .tsuto-ceremony h1{font-size:clamp(30px,8.7vw,38px);line-height:1.45}.plugin-content .tsuto-ceremony-copy{max-width:100%}}
.plugin-content .tsuto-package-station{background:#fbf5f2}.plugin-content .tsuto-package-ready{background:#f7fbf8}.plugin-content .tsuto-package-keys>div{border-radius:0;border-color:rgba(117,21,29,.22)}.plugin-content .tsuto-package-keys code{color:var(--burgundy)}
.plugin-content .tsuto-public-entry,.plugin-content .tsuto-emotional-waiting,.plugin-content .tsuto-reveal{max-width:860px;background:#fff}.plugin-content .tsuto-emotional-waiting{background:linear-gradient(180deg,#fff 0%,#f8f5ef 100%)}.plugin-content .tsuto-ceremony-logo{width:clamp(92px,10vw,126px)}.plugin-content .tsuto-sender-compose{max-width:920px}.plugin-content .tsuto-sender-compose .tsuto-ceremony-logo{margin-left:0}.plugin-content .tsuto-sender-compose h1,.plugin-content .tsuto-sender-compose .tsuto-ceremony-copy{max-width:720px}
@media(max-width:700px){.plugin-content .tsuto-ceremony-logo{width:88px;margin-bottom:28px}.plugin-content .tsuto-sender-compose .tsuto-ceremony-logo{margin-left:auto}.plugin-content .tsuto-sender-compose{text-align:center}.plugin-content .tsuto-sender-compose .tsuto-ceremony-compose{text-align:left}}

/* 1.3 — coherent typography and collision-free functional page layout. */
:root{
  --tsuto-display-size:clamp(56px,5.4vw,82px);
  --tsuto-section-size:clamp(40px,3.8vw,58px);
  --tsuto-functional-size:clamp(44px,4.6vw,68px);
  --tsuto-card-size:clamp(26px,2.2vw,34px);
  --tsuto-copy-size:clamp(15px,1.15vw,17px);
}
main[lang="ja"] h1,main[lang="ja"] h2,main[lang="ja"] h3,.tsuto-wrap[lang="ja"] h1,.tsuto-wrap[lang="ja"] h2,.tsuto-wrap[lang="ja"] h3{
  line-break:strict;word-break:normal;word-break:auto-phrase;overflow-wrap:normal;text-wrap:pretty;
}
main[lang="en"] h1,main[lang="en"] h2,main[lang="en"] h3,.tsuto-wrap[lang="en"] h1,.tsuto-wrap[lang="en"] h2,.tsuto-wrap[lang="en"] h3{
  overflow-wrap:normal;text-wrap:balance;
}
.hero h1{max-width:1050px;font-size:var(--tsuto-display-size);line-height:1.12}
.about h2,.origin h2,.gift .section-heading h2,.pendant h2,.nfc h2,.space h2,.privacy h2,.faq h2{
  font-size:var(--tsuto-section-size);line-height:1.2;letter-spacing:-.025em;
}
main[lang="ja"] .hero h1{max-width:9.5em;line-height:1.42;letter-spacing:-.035em}
main[lang="ja"] .about h2,main[lang="ja"] .origin h2,main[lang="ja"] .gift .section-heading h2,main[lang="ja"] .pendant h2,main[lang="ja"] .nfc h2,main[lang="ja"] .space h2,main[lang="ja"] .privacy h2,main[lang="ja"] .faq h2{line-height:1.5;letter-spacing:-.025em}
main[lang="ja"] .faq h2,main[lang="ja"] .space-card h3,main[lang="ja"] .space-card.primary h3{white-space:normal;word-break:normal;word-break:auto-phrase;overflow-wrap:normal}
.hero-lede,.about-copy>div>p:first-child,.origin-copy>p:last-child,.pendant-intro,.nfc-heading>p:last-child,.space-heading>p:last-child,.privacy>div>p:last-child{
  max-width:680px;font-size:var(--tsuto-copy-size);line-height:1.85;
}
main[lang="en"] .hero-lede,main[lang="en"] .about-copy>div>p:first-child,main[lang="en"] .origin-copy>p:last-child,main[lang="en"] .pendant-intro,main[lang="en"] .nfc-heading>p:last-child,main[lang="en"] .space-heading>p:last-child,main[lang="en"] .privacy>div>p:last-child{font-size:clamp(19px,1.45vw,22px);line-height:1.65}
.functional-heading{max-width:1050px;margin:0 auto 36px}
.functional-heading h1{max-width:900px;font-size:var(--tsuto-functional-size);line-height:1.12;letter-spacing:-.025em}
.tsuto-functional-page[lang="ja"] .functional-heading h1{max-width:12em;line-height:1.48;letter-spacing:-.03em}
.functional-symbol-row{position:relative;z-index:4;width:100%;max-width:1050px;margin:0 auto 34px}
.functional-shell .functional-symbol-row>.private-symbol{position:static;display:block;width:88px;margin:0;opacity:.95}
.my-functional-shell .functional-heading{margin-bottom:42px}
.my-functional-shell .my-symbol{position:static;width:82px;margin:28px 0 0;opacity:.95}
.plugin-content .tsuto-wrap h1{font-size:clamp(38px,3.7vw,54px);line-height:1.2;letter-spacing:-.02em}
.plugin-content .tsuto-wrap h2{font-size:var(--tsuto-card-size);line-height:1.3;letter-spacing:-.015em}
.plugin-content .tsuto-wrap h3{font-size:clamp(22px,2vw,29px);line-height:1.4}
.plugin-content .tsuto-wrap p,.plugin-content .tsuto-wrap label,.plugin-content .tsuto-wrap input,.plugin-content .tsuto-wrap textarea,.plugin-content .tsuto-wrap select{line-height:1.75}
.error-shell h1{max-width:760px;margin-left:auto;margin-right:auto;font-size:var(--tsuto-functional-size);line-height:1.2}
.closing h2{max-width:900px;font-size:clamp(38px,3.8vw,56px);line-height:1.35}
main[lang="ja"] .closing h2{max-width:18em;line-height:1.58}

@media(max-width:700px){
  :root{--tsuto-display-size:clamp(37px,10.2vw,44px);--tsuto-section-size:clamp(30px,8.2vw,35px);--tsuto-functional-size:clamp(32px,8.8vw,39px);--tsuto-card-size:clamp(25px,7vw,30px);--tsuto-copy-size:15px}
  .hero h1{line-height:1.16}
  main[lang="ja"] .hero h1{max-width:10.5em;line-height:1.5;letter-spacing:-.025em}
  .about h2,.origin h2,.gift .section-heading h2,.pendant h2,.nfc h2,.space h2,.privacy h2,.faq h2{line-height:1.28}
  main[lang="ja"] .about h2,main[lang="ja"] .origin h2,main[lang="ja"] .gift .section-heading h2,main[lang="ja"] .pendant h2,main[lang="ja"] .nfc h2,main[lang="ja"] .space h2,main[lang="ja"] .privacy h2,main[lang="ja"] .faq h2{line-height:1.58}
  .functional-heading{margin-bottom:28px}
  .functional-heading h1{max-width:100%;font-size:var(--tsuto-functional-size);line-height:1.24}
  .tsuto-functional-page[lang="ja"] .functional-heading h1{max-width:11em;line-height:1.55}
  .tsuto-functional-page[lang="ja"] .my-functional-shell .functional-heading h1{box-sizing:border-box;max-width:calc(100% - 12px);padding-right:12px}
  .functional-symbol-row{margin-bottom:28px}
  .functional-shell .functional-symbol-row>.private-symbol{width:66px}
  .my-functional-shell .functional-heading{margin-bottom:40px}
  .functional-heading .my-kanji{top:-118px;right:0;font-size:clamp(190px,57vw,224px)}
  .my-functional-shell .my-symbol{width:66px;margin-top:24px}
  .plugin-content .tsuto-wrap h1{font-size:clamp(29px,8vw,34px);line-height:1.35}
  .plugin-content .tsuto-wrap h2{font-size:var(--tsuto-card-size);line-height:1.42}
  .plugin-content .tsuto-wrap h3{font-size:clamp(21px,6vw,25px);line-height:1.48}
  .plugin-content .tsuto-wrap[lang="ja"] h1,.plugin-content .tsuto-wrap[lang="ja"] h2,.plugin-content .tsuto-wrap[lang="ja"] h3{line-height:1.55}
  .closing h2{max-width:18em;font-size:clamp(29px,8vw,34px);line-height:1.45}
  main[lang="ja"] .closing h2{max-width:17em;line-height:1.65}
  .error-shell h1{font-size:var(--tsuto-functional-size);line-height:1.5}
}

@media(min-width:701px) and (max-width:1100px){
  .functional-shell{padding-left:48px;padding-right:48px}
  .functional-heading,.functional-symbol-row,.plugin-content{max-width:900px}
}

/* 1.5.5 - Mobile width safety.
 * Japanese protected phrases must not enlarge flex or grid children beyond
 * the screen, and mobile browsers must not inflate the type automatically. */
html{
  max-width:100%;
  overflow-x:clip;
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
}
body{
  max-width:100%;
  overflow-x:hidden;
}

@media(max-width:700px){
  .site-header,.private-header,.hero,.functional-shell,.generic-page,.error-page{
    box-sizing:border-box;
    width:100%;
    max-width:100%;
  }

  .hero-content,.hero-content>*,.functional-heading,.functional-symbol-row,
  .plugin-content,.plugin-content .tsuto-wrap,.plugin-content .tsuto-card,
  .plugin-content .tsuto-portal,.plugin-content .tsuto-path,
  .plugin-content .tsuto-profile-auth>*,.plugin-content .tsuto-wa-layout>*,
  .space-grid>*,.space-card,.about-copy>*,.section-heading>*,.privacy>*{
    min-width:0;
    max-width:100%;
  }

  .hero-content{
    box-sizing:border-box;
    width:100%;
  }

  .hero h1{
    box-sizing:border-box;
    width:100%;
    max-width:100%;
  }

  main[lang="ja"] .hero h1{
    max-width:100%;
    font-size:clamp(31px,9.7vw,39px);
    line-height:1.5;
  }

  main[lang="en"] .hero h1{
    max-width:100%;
    font-size:clamp(35px,10.2vw,40px);
    line-height:1.08;
  }

  .functional-shell{
    padding-left:max(18px,env(safe-area-inset-left));
    padding-right:max(18px,env(safe-area-inset-right));
  }

  .functional-heading,.functional-symbol-row,.plugin-content{
    box-sizing:border-box;
    width:100%;
  }

  .functional-heading h1,
  .plugin-content .tsuto-wrap h1,
  .plugin-content .tsuto-wrap h2,
  .plugin-content .tsuto-wrap h3{
    box-sizing:border-box;
    width:100%;
    max-width:100%;
    white-space:normal;
  }

  .tsuto-functional-page[lang="ja"] .functional-heading h1{
    max-width:100%;
    padding-right:8px;
    font-size:clamp(28px,8.2vw,33px);
    line-height:1.58;
  }

  .tsuto-functional-page[lang="en"] .functional-heading h1{
    font-size:clamp(28px,8.2vw,32px);
    line-height:1.3;
    letter-spacing:-.018em;
    text-wrap:balance;
  }

  .plugin-content .tsuto-wrap{
    box-sizing:border-box;
    width:auto;
  }

  .plugin-content .tsuto-wrap p,
  .plugin-content .tsuto-wrap label,
  .plugin-content .tsuto-wrap a,
  .plugin-content .tsuto-wrap button,
  .plugin-content .tsuto-wrap input,
  .plugin-content .tsuto-wrap textarea,
  .plugin-content .tsuto-wrap select{
    max-width:100%;
  }

  .plugin-content .tsuto-wrap button,
  .plugin-content .tsuto-button,
  .plugin-content .tsuto-profile-button{
    box-sizing:border-box;
    white-space:normal;
    overflow-wrap:anywhere;
  }

  .hero-kanji,.connection-kanji,.functional-heading .my-kanji{
    pointer-events:none;
  }
}

@media(max-width:380px){
  .site-header,.private-header{padding-left:16px;padding-right:16px}
  .hero{padding-left:20px;padding-right:20px}
  .section-pad,.privacy,.closing{padding-left:20px;padding-right:20px}
  main[lang="ja"] .hero h1{font-size:clamp(30px,9.4vw,36px)}
  main[lang="en"] .hero h1{font-size:clamp(33px,10vw,38px)}
  .functional-shell{padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}
  .tsuto-functional-page[lang="ja"] .functional-heading h1,
  .tsuto-functional-page[lang="en"] .functional-heading h1{font-size:clamp(27px,8vw,30px)}
  .plugin-content .tsuto-portal,.plugin-content .tsuto-profile>.tsuto-card{padding-left:18px;padding-right:18px}
}

/* 1.5.7 - Purpose-built phone composition.
 * Mobile images are shown in their entirety; Japanese titles use native
 * kinsoku/phrase wrapping; decorative kanji remain inside the canvas. */
@media(max-width:700px){
  main[lang="ja"] h1,main[lang="ja"] h2,main[lang="ja"] h3,
  .tsuto-wrap[lang="ja"] h1,.tsuto-wrap[lang="ja"] h2,.tsuto-wrap[lang="ja"] h3{
    white-space:normal!important;
    word-break:normal!important;
    word-break:auto-phrase!important;
    overflow-wrap:normal!important;
  }

  main[lang="en"] h1,main[lang="en"] h2,main[lang="en"] h3,
  .tsuto-wrap[lang="en"] h1,.tsuto-wrap[lang="en"] h2,.tsuto-wrap[lang="en"] h3{
    max-width:100%;
    white-space:normal!important;
    overflow-wrap:break-word;
  }

  .mobile-language a{
    display:inline-block;
    width:auto;
    grid-template-columns:none;
    border:0;
    padding:6px 3px;
    font:inherit;
    line-height:1.2;
  }

  .origin-image{
    min-height:0;
    height:auto;
    background:var(--paper);
  }

  .origin-image img,
  .pendant-visual img,
  .nfc-visual img,
  .pendant-life img{
    display:block;
    width:100%;
    max-width:100%;
    height:auto;
    object-fit:contain;
    object-position:center;
  }

  .pendant-visual{
    min-height:0;
    height:auto;
  }

  .pendant-visual img{
    box-sizing:border-box;
    padding:68px 18px 24px;
  }

  .nfc-visual{
    height:auto;
    aspect-ratio:auto;
  }

  .pendant-life{
    height:auto;
    min-height:0;
  }

  .plugin-content>.wp-block-uagb-image,
  .plugin-content>.wp-block-image{
    box-sizing:border-box;
    width:100%;
    max-width:100%;
    margin:34px 0;
  }

  .plugin-content .wp-block-uagb-image__figure,
  .plugin-content .wp-block-image{
    width:100%;
    max-width:100%;
    margin-left:0;
    margin-right:0;
  }

  .plugin-content .wp-block-uagb-image img,
  .plugin-content .wp-block-image img{
    display:block;
    width:100%!important;
    max-width:100%!important;
    height:auto!important;
    aspect-ratio:auto!important;
    object-fit:contain!important;
    object-position:center!important;
  }

  .hero-kanji{
    top:155px;
    right:18px;
    font-size:clamp(165px,48vw,190px);
  }

  .gift-kanji{
    top:22%;
    right:18px;
    font-size:clamp(185px,56vw,215px);
  }

  .connection-kanji{
    top:145px;
    right:16px;
    font-size:clamp(175px,50vw,200px);
  }

  .functional-heading .my-kanji{
    top:-52px;
    right:12px;
    font-size:clamp(155px,44vw,175px);
  }

  .not-found-kanji{
    right:16px;
    bottom:16px;
    font-size:clamp(165px,48vw,190px);
  }

  .pendant-visual>p,
  .pendant-life figcaption,
  .nfc-visual figcaption{
    max-width:48%;
    box-sizing:border-box;
    padding:5px 7px;
    font-size:7px;
    line-height:1.35;
    letter-spacing:.08em;
  }

  .pendant-visual>p{
    top:12px;
    left:12px;
  }

  .pendant-life figcaption{
    top:10px;
    right:auto;
    bottom:auto;
    left:10px;
  }

  .nfc-visual figcaption{
    right:10px;
    bottom:10px;
  }
}

/* 2.0 — first touch: the giver binds a free NFC to an unused scratch pair. */
.plugin-content .tsuto-first-touch{
  border-color:rgba(117,21,29,.24);
  background:linear-gradient(180deg,#fff 0%,#faf7f1 100%);
}
.plugin-content .tsuto-first-touch:after{
  display:none;
}
.plugin-content .tsuto-first-touch .tsuto-kicker{
  color:var(--burgundy);
  font-size:clamp(1rem,2vw,1.16rem);
  letter-spacing:.2em;
}
.plugin-content .tsuto-first-touch form{
  margin-right:auto;
  margin-left:auto;
  text-align:left;
}
.plugin-content .tsuto-first-touch input:focus{
  border-color:var(--burgundy);
  outline:2px solid rgba(117,21,29,.12);
  outline-offset:2px;
}
@media(max-width:700px){
  .plugin-content .tsuto-first-touch{
    min-height:560px;
    padding-right:24px;
    padding-left:24px;
  }
  .plugin-content .tsuto-first-touch h1{
    max-width:15em;
    margin-right:auto;
    margin-left:auto;
  }
}

/* 2.0.2 — quieter functional page headings and corrected phone spacing. */
.tsuto-functional-page .functional-heading>h1{
  margin-top:0;
}

/* 2.0.3 — the introductory photograph belongs to the entrance, not the room. */
.tsuto-functional-page .plugin-content.has-tsuto-room-access>.wp-block-uagb-image:first-child,
.tsuto-functional-page .plugin-content.has-tsuto-room-access>.wp-block-image:first-child,
.tsuto-functional-page .plugin-content:has(.tsuto-room-authenticated)>.wp-block-uagb-image:first-child,
.tsuto-functional-page .plugin-content:has(.tsuto-room-authenticated)>.wp-block-image:first-child{
  display:none!important;
}
.tsuto-functional-page .functional-shell.has-tsuto-room-access>.functional-heading,
.tsuto-functional-page .functional-shell.has-tsuto-room-access>.functional-symbol-row,
.tsuto-functional-page .functional-shell:has(.tsuto-room-authenticated)>.functional-heading,
.tsuto-functional-page .functional-shell:has(.tsuto-room-authenticated)>.functional-symbol-row{
  display:none!important;
}
.tsuto-functional-page .plugin-content .tsuto-room-head .tsuto-link{
  border-color:var(--burgundy)!important;
  background:var(--burgundy)!important;
  color:#fff!important;
}
.tsuto-functional-page .plugin-content .tsuto-profile-logout .tsuto-link{
  border-color:var(--burgundy)!important;
  background:var(--burgundy)!important;
  color:#fff!important;
}
@media(max-width:700px){
  .tsuto-functional-page .functional-shell{
    padding-top:72px;
  }
  .tsuto-functional-page .plugin-content img.uag-image-2060{
    width:150px!important;
    height:auto!important;
    max-width:50%!important;
  }
}
