<?xml version="1.0" encoding="utf-8"?>
<xbrl
  xmlns="http://www.xbrl.org/2003/instance"
  xmlns:dei="http://xbrl.sec.gov/dei/2026"
  xmlns:iso4217="http://www.xbrl.org/2003/iso4217"
  xmlns:link="http://www.xbrl.org/2003/linkbase"
  xmlns:us-gaap="http://fasb.org/us-gaap/2026"
  xmlns:xbrldi="http://xbrl.org/2006/xbrldi"
  xmlns:xlink="http://www.w3.org/1999/xlink">
    <link:schemaRef xlink:href="tayd-20260831.xsd" xlink:type="simple"/>
    <context id="D260601_260831">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
        </entity>
        <period>
            <startDate>2026-06-01</startDate>
            <endDate>2026-08-31</endDate>
        </period>
    </context>
    <context id="I260831">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
        </entity>
        <period>
            <instant>2026-08-31</instant>
        </period>
    </context>
    <context id="D260601_260831_StClStock-CommonStock">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2026-06-01</startDate>
            <endDate>2026-08-31</endDate>
        </period>
    </context>
    <context id="I260831_StClStock-CommonStock">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2026-08-31</instant>
        </period>
    </context>
    <context id="D260601_260831_StClStock-Rights">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:RightsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2026-06-01</startDate>
            <endDate>2026-08-31</endDate>
        </period>
    </context>
    <context id="B26Q4_StClStock-CommonStock">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2026-10-01</instant>
        </period>
    </context>
    <context id="I260531">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
        </entity>
        <period>
            <instant>2026-05-31</instant>
        </period>
    </context>
    <context id="D250601_250831">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
        </entity>
        <period>
            <startDate>2025-06-01</startDate>
            <endDate>2025-08-31</endDate>
        </period>
    </context>
    <context id="I250531">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
        </entity>
        <period>
            <instant>2025-05-31</instant>
        </period>
    </context>
    <context id="D260601_260831_StEqComps-CommonStock">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2026-06-01</startDate>
            <endDate>2026-08-31</endDate>
        </period>
    </context>
    <context id="D250601_250831_StEqComps-CommonStock">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-06-01</startDate>
            <endDate>2025-08-31</endDate>
        </period>
    </context>
    <context id="I250831">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
        </entity>
        <period>
            <instant>2025-08-31</instant>
        </period>
    </context>
    <context id="D260601_260831_StEqComps-AddPaidInCap">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2026-06-01</startDate>
            <endDate>2026-08-31</endDate>
        </period>
    </context>
    <context id="D250601_250831_StEqComps-AddPaidInCap">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-06-01</startDate>
            <endDate>2025-08-31</endDate>
        </period>
    </context>
    <context id="D260601_260831_TimingOfTransferOfGoodOrService-TransferredOverTime">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:TimingOfTransferOfGoodOrServiceAxis">us-gaap:TransferredOverTimeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2026-06-01</startDate>
            <endDate>2026-08-31</endDate>
        </period>
    </context>
    <context id="D260601_260831_TimingOfTransferOfGoodOrService-TransferredAtPointInTime">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000096536</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:TimingOfTransferOfGoodOrServiceAxis">us-gaap:TransferredAtPointInTimeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2026-06-01</startDate>
            <endDate>2026-08-31</endDate>
        </period>
    </context>
    <unit id="USD">
        <measure>iso4217:USD</measure>
    </unit>
    <unit id="Shares">
        <measure>shares</measure>
    </unit>
    <unit id="UsdPerShare">
        <divide>
            <unitNumerator>
                <measure>iso4217:USD</measure>
            </unitNumerator>
            <unitDenominator>
                <measure>shares</measure>
            </unitDenominator>
        </divide>
    </unit>
    <dei:DocumentFiscalPeriodFocus contextRef="D260601_260831" id="fact1">Q1</dei:DocumentFiscalPeriodFocus>
    <us-gaap:CommonStockParOrStatedValuePerShare
      contextRef="I260831_StClStock-CommonStock"
      decimals="INF"
      id="fact2"
      unitRef="UsdPerShare">0.025</us-gaap:CommonStockParOrStatedValuePerShare>
    <dei:EntityCentralIndexKey contextRef="D260601_260831" id="fact3">0000096536</dei:EntityCentralIndexKey>
    <dei:CurrentFiscalYearEndDate contextRef="D260601_260831" id="fact4">--05-31</dei:CurrentFiscalYearEndDate>
    <dei:AmendmentFlag contextRef="D260601_260831" id="fact5">false</dei:AmendmentFlag>
    <dei:DocumentFiscalYearFocus contextRef="D260601_260831" id="fact6">2027</dei:DocumentFiscalYearFocus>
    <dei:DocumentType contextRef="D260601_260831" id="ixv-3802">10-Q</dei:DocumentType>
    <dei:DocumentQuarterlyReport contextRef="D260601_260831" id="ixv-3803">true</dei:DocumentQuarterlyReport>
    <dei:DocumentPeriodEndDate contextRef="D260601_260831" id="ixv-3804">2026-08-31</dei:DocumentPeriodEndDate>
    <dei:DocumentTransitionReport contextRef="D260601_260831" id="ixv-3805">false</dei:DocumentTransitionReport>
    <dei:EntityFileNumber contextRef="D260601_260831" id="ixv-3806">0-3498</dei:EntityFileNumber>
    <dei:EntityRegistrantName contextRef="D260601_260831" id="ixv-3807">Taylor Devices, Inc.</dei:EntityRegistrantName>
    <dei:EntityIncorporationStateCountryCode contextRef="D260601_260831" id="ixv-3808">NY</dei:EntityIncorporationStateCountryCode>
    <dei:EntityTaxIdentificationNumber contextRef="D260601_260831" id="ixv-3809">16-0797789</dei:EntityTaxIdentificationNumber>
    <dei:EntityAddressAddressLine1 contextRef="D260601_260831" id="ixv-3810">90 Taylor Drive</dei:EntityAddressAddressLine1>
    <dei:EntityAddressCityOrTown contextRef="D260601_260831" id="ixv-3811">North Tonawanda</dei:EntityAddressCityOrTown>
    <dei:EntityAddressStateOrProvince contextRef="D260601_260831" id="ixv-3812">NY</dei:EntityAddressStateOrProvince>
    <dei:EntityAddressPostalZipCode contextRef="D260601_260831" id="ixv-3813">14120</dei:EntityAddressPostalZipCode>
    <dei:CityAreaCode contextRef="D260601_260831" id="ixv-3814">716</dei:CityAreaCode>
    <dei:LocalPhoneNumber contextRef="D260601_260831" id="ixv-3815">694-0800</dei:LocalPhoneNumber>
    <dei:Security12bTitle
      contextRef="D260601_260831_StClStock-CommonStock"
      id="ixv-129">Common Stock, $&lt;span style="-sec-ix-hidden:fact2"&gt;.025&lt;/span&gt; par value per share</dei:Security12bTitle>
    <dei:Security12bTitle contextRef="D260601_260831_StClStock-Rights" id="ixv-3816">Preferred Stock Purchase Rights</dei:Security12bTitle>
    <dei:TradingSymbol
      contextRef="D260601_260831_StClStock-CommonStock"
      id="ixv-3817">TAYD</dei:TradingSymbol>
    <dei:SecurityExchangeName
      contextRef="D260601_260831_StClStock-CommonStock"
      id="ixv-3818">NASDAQ</dei:SecurityExchangeName>
    <dei:SecurityExchangeName contextRef="D260601_260831_StClStock-Rights" id="ixv-3819">NASDAQ</dei:SecurityExchangeName>
    <dei:EntityCurrentReportingStatus contextRef="D260601_260831" id="ixv-3820">Yes</dei:EntityCurrentReportingStatus>
    <dei:EntityInteractiveDataCurrent contextRef="D260601_260831" id="ixv-3821">Yes</dei:EntityInteractiveDataCurrent>
    <dei:EntityFilerCategory contextRef="D260601_260831" id="ixv-3822">Non-accelerated Filer</dei:EntityFilerCategory>
    <dei:EntitySmallBusiness contextRef="D260601_260831" id="ixv-3823">true</dei:EntitySmallBusiness>
    <dei:EntityEmergingGrowthCompany contextRef="D260601_260831" id="ixv-3824">false</dei:EntityEmergingGrowthCompany>
    <dei:EntityShellCompany contextRef="D260601_260831" id="ixv-3825">false</dei:EntityShellCompany>
    <dei:EntityCommonStockSharesOutstanding
      contextRef="B26Q4_StClStock-CommonStock"
      decimals="INF"
      id="ixv-3826"
      unitRef="Shares">3229865</dei:EntityCommonStockSharesOutstanding>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="I260831"
      decimals="INF"
      id="ixv-3827"
      unitRef="USD">3600212</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="I260531"
      decimals="INF"
      id="ixv-3828"
      unitRef="USD">904823</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:ShortTermInvestments
      contextRef="I260831"
      decimals="INF"
      id="ixv-3829"
      unitRef="USD">45478228</us-gaap:ShortTermInvestments>
    <us-gaap:ShortTermInvestments
      contextRef="I260531"
      decimals="INF"
      id="ixv-3830"
      unitRef="USD">40574152</us-gaap:ShortTermInvestments>
    <us-gaap:AccountsReceivableNetCurrent
      contextRef="I260831"
      decimals="INF"
      id="ixv-3831"
      unitRef="USD">3371041</us-gaap:AccountsReceivableNetCurrent>
    <us-gaap:AccountsReceivableNetCurrent
      contextRef="I260531"
      decimals="INF"
      id="ixv-3832"
      unitRef="USD">3931831</us-gaap:AccountsReceivableNetCurrent>
    <us-gaap:InventoryNet
      contextRef="I260831"
      decimals="INF"
      id="ixv-3833"
      unitRef="USD">9355773</us-gaap:InventoryNet>
    <us-gaap:InventoryNet
      contextRef="I260531"
      decimals="INF"
      id="ixv-3834"
      unitRef="USD">7529043</us-gaap:InventoryNet>
    <us-gaap:ContractWithCustomerAssetNetCurrent
      contextRef="I260831"
      decimals="INF"
      id="ixv-3835"
      unitRef="USD">2332086</us-gaap:ContractWithCustomerAssetNetCurrent>
    <us-gaap:ContractWithCustomerAssetNetCurrent
      contextRef="I260531"
      decimals="INF"
      id="ixv-3836"
      unitRef="USD">8032246</us-gaap:ContractWithCustomerAssetNetCurrent>
    <us-gaap:OtherAssetsCurrent
      contextRef="I260831"
      decimals="INF"
      id="ixv-3837"
      unitRef="USD">1934767</us-gaap:OtherAssetsCurrent>
    <us-gaap:OtherAssetsCurrent
      contextRef="I260531"
      decimals="INF"
      id="ixv-3838"
      unitRef="USD">1450157</us-gaap:OtherAssetsCurrent>
    <us-gaap:AssetsCurrent
      contextRef="I260831"
      decimals="INF"
      id="ixv-3839"
      unitRef="USD">66072107</us-gaap:AssetsCurrent>
    <us-gaap:AssetsCurrent
      contextRef="I260531"
      decimals="INF"
      id="ixv-3840"
      unitRef="USD">62422252</us-gaap:AssetsCurrent>
    <us-gaap:InventoryNoncurrent
      contextRef="I260831"
      decimals="INF"
      id="ixv-3841"
      unitRef="USD">1120485</us-gaap:InventoryNoncurrent>
    <us-gaap:InventoryNoncurrent
      contextRef="I260531"
      decimals="INF"
      id="ixv-3842"
      unitRef="USD">1205996</us-gaap:InventoryNoncurrent>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="I260831"
      decimals="INF"
      id="ixv-3843"
      unitRef="USD">11995536</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="I260531"
      decimals="INF"
      id="ixv-3844"
      unitRef="USD">12306100</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="I260831"
      decimals="INF"
      id="ixv-3845"
      unitRef="USD">242592</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="I260531"
      decimals="INF"
      id="ixv-3846"
      unitRef="USD">248148</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:OtherAssetsNoncurrent
      contextRef="I260831"
      decimals="INF"
      id="ixv-3847"
      unitRef="USD">290447</us-gaap:OtherAssetsNoncurrent>
    <us-gaap:OtherAssetsNoncurrent
      contextRef="I260531"
      decimals="INF"
      id="ixv-3848"
      unitRef="USD">289388</us-gaap:OtherAssetsNoncurrent>
    <us-gaap:DeferredIncomeTaxAssetsNet
      contextRef="I260831"
      decimals="INF"
      id="ixv-3849"
      unitRef="USD">1273000</us-gaap:DeferredIncomeTaxAssetsNet>
    <us-gaap:DeferredIncomeTaxAssetsNet
      contextRef="I260531"
      decimals="INF"
      id="ixv-3850"
      unitRef="USD">1273000</us-gaap:DeferredIncomeTaxAssetsNet>
    <us-gaap:Assets
      contextRef="I260831"
      decimals="INF"
      id="ixv-3851"
      unitRef="USD">80994167</us-gaap:Assets>
    <us-gaap:Assets
      contextRef="I260531"
      decimals="INF"
      id="ixv-3852"
      unitRef="USD">77744884</us-gaap:Assets>
    <us-gaap:AccountsPayableCurrent
      contextRef="I260831"
      decimals="INF"
      id="ixv-3853"
      unitRef="USD">1043280</us-gaap:AccountsPayableCurrent>
    <us-gaap:AccountsPayableCurrent
      contextRef="I260531"
      decimals="INF"
      id="ixv-3854"
      unitRef="USD">574264</us-gaap:AccountsPayableCurrent>
    <us-gaap:AccruedLiabilitiesCurrent
      contextRef="I260831"
      decimals="INF"
      id="ixv-3855"
      unitRef="USD">2041936</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:AccruedLiabilitiesCurrent
      contextRef="I260531"
      decimals="INF"
      id="ixv-3856"
      unitRef="USD">2946494</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:ContractWithCustomerLiabilityCurrent
      contextRef="I260831"
      decimals="INF"
      id="ixv-3857"
      unitRef="USD">4538752</us-gaap:ContractWithCustomerLiabilityCurrent>
    <us-gaap:ContractWithCustomerLiabilityCurrent
      contextRef="I260531"
      decimals="INF"
      id="ixv-3858"
      unitRef="USD">1367083</us-gaap:ContractWithCustomerLiabilityCurrent>
    <us-gaap:AccruedIncomeTaxesCurrent
      contextRef="I260831"
      decimals="INF"
      id="ixv-3859"
      unitRef="USD">4892</us-gaap:AccruedIncomeTaxesCurrent>
    <us-gaap:AccruedIncomeTaxesCurrent
      contextRef="I260531"
      decimals="INF"
      id="ixv-3860"
      unitRef="USD">4892</us-gaap:AccruedIncomeTaxesCurrent>
    <us-gaap:LiabilitiesCurrent
      contextRef="I260831"
      decimals="INF"
      id="ixv-3861"
      unitRef="USD">7628860</us-gaap:LiabilitiesCurrent>
    <us-gaap:LiabilitiesCurrent
      contextRef="I260531"
      decimals="INF"
      id="ixv-3862"
      unitRef="USD">4892733</us-gaap:LiabilitiesCurrent>
    <us-gaap:CommonStocksIncludingAdditionalPaidInCapital
      contextRef="I260831"
      decimals="INF"
      id="ixv-3863"
      unitRef="USD">18267710</us-gaap:CommonStocksIncludingAdditionalPaidInCapital>
    <us-gaap:CommonStocksIncludingAdditionalPaidInCapital
      contextRef="I260531"
      decimals="INF"
      id="ixv-3864"
      unitRef="USD">18211487</us-gaap:CommonStocksIncludingAdditionalPaidInCapital>
    <us-gaap:RetainedEarningsAccumulatedDeficit
      contextRef="I260831"
      decimals="INF"
      id="ixv-3865"
      unitRef="USD">69560761</us-gaap:RetainedEarningsAccumulatedDeficit>
    <us-gaap:RetainedEarningsAccumulatedDeficit
      contextRef="I260531"
      decimals="INF"
      id="ixv-3866"
      unitRef="USD">69103828</us-gaap:RetainedEarningsAccumulatedDeficit>
    <us-gaap:StockholdersEquityBeforeTreasuryStock
      contextRef="I260831"
      decimals="INF"
      id="ixv-3867"
      unitRef="USD">87828471</us-gaap:StockholdersEquityBeforeTreasuryStock>
    <us-gaap:StockholdersEquityBeforeTreasuryStock
      contextRef="I260531"
      decimals="INF"
      id="ixv-3868"
      unitRef="USD">87315315</us-gaap:StockholdersEquityBeforeTreasuryStock>
    <us-gaap:TreasuryStockValue
      contextRef="I260831"
      decimals="INF"
      id="ixv-3869"
      unitRef="USD">14463164</us-gaap:TreasuryStockValue>
    <us-gaap:TreasuryStockValue
      contextRef="I260531"
      decimals="INF"
      id="ixv-3870"
      unitRef="USD">14463164</us-gaap:TreasuryStockValue>
    <us-gaap:StockholdersEquity
      contextRef="I260831"
      decimals="INF"
      id="ixv-3871"
      unitRef="USD">73365307</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="I260531"
      decimals="INF"
      id="ixv-3872"
      unitRef="USD">72852151</us-gaap:StockholdersEquity>
    <us-gaap:LiabilitiesAndStockholdersEquity
      contextRef="I260831"
      decimals="INF"
      id="ixv-3873"
      unitRef="USD">80994167</us-gaap:LiabilitiesAndStockholdersEquity>
    <us-gaap:LiabilitiesAndStockholdersEquity
      contextRef="I260531"
      decimals="INF"
      id="ixv-3874"
      unitRef="USD">77744884</us-gaap:LiabilitiesAndStockholdersEquity>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="D260601_260831"
      decimals="INF"
      id="ixv-3875"
      unitRef="USD">7300239</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="D250601_250831"
      decimals="INF"
      id="ixv-3876"
      unitRef="USD">9918350</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="D260601_260831"
      decimals="INF"
      id="ixv-3877"
      unitRef="USD">5141303</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="D250601_250831"
      decimals="INF"
      id="ixv-3878"
      unitRef="USD">5479606</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:GrossProfit
      contextRef="D260601_260831"
      decimals="INF"
      id="ixv-3879"
      unitRef="USD">2158936</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="D250601_250831"
      decimals="INF"
      id="ixv-3880"
      unitRef="USD">4438744</us-gaap:GrossProfit>
    <us-gaap:ResearchAndDevelopmentExpense
      contextRef="D260601_260831"
      decimals="INF"
      id="ixv-3881"
      unitRef="USD">152074</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:ResearchAndDevelopmentExpense
      contextRef="D250601_250831"
      decimals="INF"
      id="ixv-3882"
      unitRef="USD">80817</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:SellingGeneralAndAdministrativeExpense
      contextRef="D260601_260831"
      decimals="INF"
      id="ixv-3883"
      unitRef="USD">1968408</us-gaap:SellingGeneralAndAdministrativeExpense>
    <us-gaap:SellingGeneralAndAdministrativeExpense
      contextRef="D250601_250831"
      decimals="INF"
      id="ixv-3884"
      unitRef="USD">2112660</us-gaap:SellingGeneralAndAdministrativeExpense>
    <us-gaap:OperatingIncomeLoss
      contextRef="D260601_260831"
      decimals="INF"
      id="ixv-3885"
      unitRef="USD">38454</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="D250601_250831"
      decimals="INF"
      id="ixv-3886"
      unitRef="USD">2245267</us-gaap:OperatingIncomeLoss>
    <us-gaap:OtherNonoperatingIncomeExpense
      contextRef="D260601_260831"
      decimals="INF"
      id="ixv-3887"
      unitRef="USD">418479</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:OtherNonoperatingIncomeExpense
      contextRef="D250601_250831"
      decimals="INF"
      id="ixv-3888"
      unitRef="USD">383817</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="D260601_260831"
      decimals="INF"
      id="ixv-3889"
      unitRef="USD">456933</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="D250601_250831"
      decimals="INF"
      id="ixv-3890"
      unitRef="USD">2629084</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="D260601_260831"
      decimals="128"
      id="ixv-3891"
      unitRef="USD">0</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="D250601_250831"
      decimals="INF"
      id="ixv-3892"
      unitRef="USD">439000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:NetIncomeLoss
      contextRef="D260601_260831"
      decimals="INF"
      id="ixv-3893"
      unitRef="USD">456933</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="D250601_250831"
      decimals="INF"
      id="ixv-3894"
      unitRef="USD">2190084</us-gaap:NetIncomeLoss>
    <us-gaap:EarningsPerShareBasic
      contextRef="D260601_260831"
      decimals="INF"
      id="ixv-3895"
      unitRef="UsdPerShare">0.14</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareDiluted
      contextRef="D260601_260831"
      decimals="INF"
      id="ixv-3896"
      unitRef="UsdPerShare">0.14</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareBasic
      contextRef="D250601_250831"
      decimals="INF"
      id="ixv-3897"
      unitRef="UsdPerShare">0.7</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareDiluted
      contextRef="D250601_250831"
      decimals="INF"
      id="ixv-3898"
      unitRef="UsdPerShare">0.7</us-gaap:EarningsPerShareDiluted>
    <us-gaap:CommonStockValue
      contextRef="I260531"
      decimals="INF"
      id="ixv-3899"
      unitRef="USD">107316</us-gaap:CommonStockValue>
    <us-gaap:CommonStockValue
      contextRef="I250531"
      decimals="INF"
      id="ixv-3900"
      unitRef="USD">104835</us-gaap:CommonStockValue>
    <us-gaap:StockIssuedDuringPeriodValueEmployeeStockPurchasePlan
      contextRef="D260601_260831_StEqComps-CommonStock"
      decimals="128"
      id="ixv-3901"
      unitRef="USD">0</us-gaap:StockIssuedDuringPeriodValueEmployeeStockPurchasePlan>
    <us-gaap:StockIssuedDuringPeriodValueEmployeeStockPurchasePlan
      contextRef="D250601_250831_StEqComps-CommonStock"
      decimals="INF"
      id="ixv-3902"
      unitRef="USD">1</us-gaap:StockIssuedDuringPeriodValueEmployeeStockPurchasePlan>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="D260601_260831_StEqComps-CommonStock"
      decimals="INF"
      id="ixv-3903"
      unitRef="USD">121</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="D250601_250831_StEqComps-CommonStock"
      decimals="INF"
      id="ixv-3904"
      unitRef="USD">85</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:CommonStockValue
      contextRef="I260831"
      decimals="INF"
      id="ixv-3905"
      unitRef="USD">107437</us-gaap:CommonStockValue>
    <us-gaap:CommonStockValue
      contextRef="I250831"
      decimals="INF"
      id="ixv-3906"
      unitRef="USD">104921</us-gaap:CommonStockValue>
    <us-gaap:AdditionalPaidInCapital
      contextRef="I260531"
      decimals="INF"
      id="ixv-3907"
      unitRef="USD">18104171</us-gaap:AdditionalPaidInCapital>
    <us-gaap:AdditionalPaidInCapital
      contextRef="I250531"
      decimals="INF"
      id="ixv-3908"
      unitRef="USD">14544580</us-gaap:AdditionalPaidInCapital>
    <us-gaap:StockIssuedDuringPeriodValueEmployeeStockPurchasePlan
      contextRef="D260601_260831_StEqComps-AddPaidInCap"
      decimals="INF"
      id="ixv-3909"
      unitRef="USD">703</us-gaap:StockIssuedDuringPeriodValueEmployeeStockPurchasePlan>
    <us-gaap:StockIssuedDuringPeriodValueEmployeeStockPurchasePlan
      contextRef="D250601_250831_StEqComps-AddPaidInCap"
      decimals="INF"
      id="ixv-3910"
      unitRef="USD">1316</us-gaap:StockIssuedDuringPeriodValueEmployeeStockPurchasePlan>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="D260601_260831_StEqComps-AddPaidInCap"
      decimals="INF"
      id="ixv-3911"
      unitRef="USD">55399</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="D250601_250831_StEqComps-AddPaidInCap"
      decimals="INF"
      id="ixv-3912"
      unitRef="USD">46992</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:AdditionalPaidInCapital
      contextRef="I260831"
      decimals="INF"
      id="ixv-3913"
      unitRef="USD">18160273</us-gaap:AdditionalPaidInCapital>
    <us-gaap:AdditionalPaidInCapital
      contextRef="I250831"
      decimals="INF"
      id="ixv-3914"
      unitRef="USD">14592888</us-gaap:AdditionalPaidInCapital>
    <us-gaap:RetainedEarningsAccumulatedDeficit
      contextRef="I260531"
      decimals="INF"
      id="ixv-3915"
      unitRef="USD">69103828</us-gaap:RetainedEarningsAccumulatedDeficit>
    <us-gaap:RetainedEarningsAccumulatedDeficit
      contextRef="I250531"
      decimals="INF"
      id="ixv-3916"
      unitRef="USD">60540154</us-gaap:RetainedEarningsAccumulatedDeficit>
    <us-gaap:NetIncomeLoss
      contextRef="D260601_260831"
      decimals="INF"
      id="ixv-3917"
      unitRef="USD">456933</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="D250601_250831"
      decimals="INF"
      id="ixv-3918"
      unitRef="USD">2190084</us-gaap:NetIncomeLoss>
    <us-gaap:RetainedEarningsAccumulatedDeficit
      contextRef="I260831"
      decimals="INF"
      id="ixv-3919"
      unitRef="USD">69560761</us-gaap:RetainedEarningsAccumulatedDeficit>
    <us-gaap:RetainedEarningsAccumulatedDeficit
      contextRef="I250831"
      decimals="INF"
      id="ixv-3920"
      unitRef="USD">62730238</us-gaap:RetainedEarningsAccumulatedDeficit>
    <us-gaap:TreasuryStockValue
      contextRef="I260531"
      decimals="INF"
      id="ixv-3921"
      unitRef="USD">14463164</us-gaap:TreasuryStockValue>
    <us-gaap:TreasuryStockValue
      contextRef="I250531"
      decimals="INF"
      id="ixv-3922"
      unitRef="USD">13145192</us-gaap:TreasuryStockValue>
    <us-gaap:TreasuryStockValueAcquiredCostMethod
      contextRef="D260601_260831"
      decimals="128"
      id="ixv-3923"
      unitRef="USD">0</us-gaap:TreasuryStockValueAcquiredCostMethod>
    <us-gaap:TreasuryStockValueAcquiredCostMethod
      contextRef="D250601_250831"
      decimals="INF"
      id="ixv-3924"
      unitRef="USD">31496</us-gaap:TreasuryStockValueAcquiredCostMethod>
    <us-gaap:TreasuryStockValue
      contextRef="I260831"
      decimals="INF"
      id="ixv-3925"
      unitRef="USD">14463164</us-gaap:TreasuryStockValue>
    <us-gaap:TreasuryStockValue
      contextRef="I250831"
      decimals="INF"
      id="ixv-3926"
      unitRef="USD">13176688</us-gaap:TreasuryStockValue>
    <us-gaap:StockholdersEquity
      contextRef="I260831"
      decimals="INF"
      id="ixv-3927"
      unitRef="USD">73365307</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="I250831"
      decimals="INF"
      id="ixv-3928"
      unitRef="USD">64251359</us-gaap:StockholdersEquity>
    <us-gaap:NetIncomeLoss
      contextRef="D260601_260831"
      decimals="INF"
      id="ixv-3929"
      unitRef="USD">456933</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="D250601_250831"
      decimals="INF"
      id="ixv-3930"
      unitRef="USD">2190084</us-gaap:NetIncomeLoss>
    <us-gaap:Depreciation
      contextRef="D260601_260831"
      decimals="INF"
      id="ixv-3931"
      unitRef="USD">525855</us-gaap:Depreciation>
    <us-gaap:Depreciation
      contextRef="D250601_250831"
      decimals="INF"
      id="ixv-3932"
      unitRef="USD">452838</us-gaap:Depreciation>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="D260601_260831"
      decimals="INF"
      id="ixv-3933"
      unitRef="USD">5556</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="D250601_250831"
      decimals="INF"
      id="ixv-3934"
      unitRef="USD">5556</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="D260601_260831"
      decimals="128"
      id="ixv-3935"
      unitRef="USD">0</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="D250601_250831"
      decimals="INF"
      id="ixv-3936"
      unitRef="USD">500000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:GainLossOnSaleOfPropertyPlantEquipment
      contextRef="D260601_260831"
      decimals="INF"
      id="ixv-3937"
      unitRef="USD">-26947</us-gaap:GainLossOnSaleOfPropertyPlantEquipment>
    <us-gaap:GainLossOnSaleOfPropertyPlantEquipment
      contextRef="D250601_250831"
      decimals="128"
      id="ixv-3938"
      unitRef="USD">0</us-gaap:GainLossOnSaleOfPropertyPlantEquipment>
    <us-gaap:IncreaseDecreaseInAccountsReceivable
      contextRef="D260601_260831"
      decimals="INF"
      id="ixv-3939"
      unitRef="USD">-560790</us-gaap:IncreaseDecreaseInAccountsReceivable>
    <us-gaap:IncreaseDecreaseInAccountsReceivable
      contextRef="D250601_250831"
      decimals="INF"
      id="ixv-3940"
      unitRef="USD">-1076264</us-gaap:IncreaseDecreaseInAccountsReceivable>
    <us-gaap:IncreaseDecreaseInInventories
      contextRef="D260601_260831"
      decimals="INF"
      id="ixv-3941"
      unitRef="USD">1741219</us-gaap:IncreaseDecreaseInInventories>
    <us-gaap:IncreaseDecreaseInInventories
      contextRef="D250601_250831"
      decimals="INF"
      id="ixv-3942"
      unitRef="USD">492108</us-gaap:IncreaseDecreaseInInventories>
    <us-gaap:IncreaseDecreaseInContractWithCustomerAsset
      contextRef="D260601_260831"
      decimals="INF"
      id="ixv-3943"
      unitRef="USD">-5700160</us-gaap:IncreaseDecreaseInContractWithCustomerAsset>
    <us-gaap:IncreaseDecreaseInContractWithCustomerAsset
      contextRef="D250601_250831"
      decimals="INF"
      id="ixv-3944"
      unitRef="USD">-656358</us-gaap:IncreaseDecreaseInContractWithCustomerAsset>
    <us-gaap:IncreaseDecreaseInOtherCurrentAssets
      contextRef="D260601_260831"
      decimals="INF"
      id="ixv-3945"
      unitRef="USD">484610</us-gaap:IncreaseDecreaseInOtherCurrentAssets>
    <us-gaap:IncreaseDecreaseInOtherCurrentAssets
      contextRef="D250601_250831"
      decimals="INF"
      id="ixv-3946"
      unitRef="USD">371606</us-gaap:IncreaseDecreaseInOtherCurrentAssets>
    <us-gaap:IncreaseDecreaseInAccountsPayable
      contextRef="D260601_260831"
      decimals="INF"
      id="ixv-3947"
      unitRef="USD">469016</us-gaap:IncreaseDecreaseInAccountsPayable>
    <us-gaap:IncreaseDecreaseInAccountsPayable
      contextRef="D250601_250831"
      decimals="INF"
      id="ixv-3948"
      unitRef="USD">-87217</us-gaap:IncreaseDecreaseInAccountsPayable>
    <us-gaap:IncreaseDecreaseInAccruedLiabilities
      contextRef="D260601_260831"
      decimals="INF"
      id="ixv-3949"
      unitRef="USD">-904558</us-gaap:IncreaseDecreaseInAccruedLiabilities>
    <us-gaap:IncreaseDecreaseInAccruedLiabilities
      contextRef="D250601_250831"
      decimals="INF"
      id="ixv-3950"
      unitRef="USD">-1929267</us-gaap:IncreaseDecreaseInAccruedLiabilities>
    <us-gaap:IncreaseDecreaseInContractWithCustomerLiability
      contextRef="D260601_260831"
      decimals="INF"
      id="ixv-3951"
      unitRef="USD">3171669</us-gaap:IncreaseDecreaseInContractWithCustomerLiability>
    <us-gaap:IncreaseDecreaseInContractWithCustomerLiability
      contextRef="D250601_250831"
      decimals="INF"
      id="ixv-3952"
      unitRef="USD">-1517274</us-gaap:IncreaseDecreaseInContractWithCustomerLiability>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities
      contextRef="D260601_260831"
      decimals="INF"
      id="ixv-3953"
      unitRef="USD">7786539</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities
      contextRef="D250601_250831"
      decimals="INF"
      id="ixv-3954"
      unitRef="USD">483628</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment
      contextRef="D260601_260831"
      decimals="INF"
      id="ixv-3955"
      unitRef="USD">242238</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment
      contextRef="D250601_250831"
      decimals="INF"
      id="ixv-3956"
      unitRef="USD">184987</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:PaymentsForProceedsFromShortTermInvestments
      contextRef="D260601_260831"
      decimals="INF"
      id="ixv-3957"
      unitRef="USD">4904076</us-gaap:PaymentsForProceedsFromShortTermInvestments>
    <us-gaap:PaymentsForProceedsFromShortTermInvestments
      contextRef="D250601_250831"
      decimals="INF"
      id="ixv-3958"
      unitRef="USD">-647903</us-gaap:PaymentsForProceedsFromShortTermInvestments>
    <us-gaap:PaymentsForProceedsFromOtherInvestingActivities
      contextRef="D260601_260831"
      decimals="INF"
      id="ixv-3959"
      unitRef="USD">1059</us-gaap:PaymentsForProceedsFromOtherInvestingActivities>
    <us-gaap:PaymentsForProceedsFromOtherInvestingActivities
      contextRef="D250601_250831"
      decimals="INF"
      id="ixv-3960"
      unitRef="USD">1092</us-gaap:PaymentsForProceedsFromOtherInvestingActivities>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities
      contextRef="D260601_260831"
      decimals="INF"
      id="ixv-3961"
      unitRef="USD">-5147373</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities
      contextRef="D250601_250831"
      decimals="INF"
      id="ixv-3962"
      unitRef="USD">461824</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:ProceedsFromIssuanceOfCommonStock
      contextRef="D260601_260831"
      decimals="INF"
      id="ixv-3963"
      unitRef="USD">56223</us-gaap:ProceedsFromIssuanceOfCommonStock>
    <us-gaap:ProceedsFromIssuanceOfCommonStock
      contextRef="D250601_250831"
      decimals="INF"
      id="ixv-3964"
      unitRef="USD">48394</us-gaap:ProceedsFromIssuanceOfCommonStock>
    <us-gaap:PaymentsForRepurchaseOfCommonStock
      contextRef="D260601_260831"
      decimals="128"
      id="ixv-3965"
      unitRef="USD">0</us-gaap:PaymentsForRepurchaseOfCommonStock>
    <us-gaap:PaymentsForRepurchaseOfCommonStock
      contextRef="D250601_250831"
      decimals="INF"
      id="ixv-3966"
      unitRef="USD">31496</us-gaap:PaymentsForRepurchaseOfCommonStock>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities
      contextRef="D260601_260831"
      decimals="INF"
      id="ixv-3967"
      unitRef="USD">56223</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities
      contextRef="D250601_250831"
      decimals="INF"
      id="ixv-3968"
      unitRef="USD">16898</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
      contextRef="D260601_260831"
      decimals="INF"
      id="ixv-3969"
      unitRef="USD">2695389</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
      contextRef="D250601_250831"
      decimals="INF"
      id="ixv-3970"
      unitRef="USD">962350</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="I260531"
      decimals="INF"
      id="ixv-3971"
      unitRef="USD">904823</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="I250531"
      decimals="INF"
      id="ixv-3972"
      unitRef="USD">1190656</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="I260831"
      decimals="INF"
      id="ixv-3973"
      unitRef="USD">3600212</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="I250831"
      decimals="INF"
      id="ixv-3974"
      unitRef="USD">2153006</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:BasisOfPresentationAndSignificantAccountingPoliciesTextBlock contextRef="D260601_260831" id="ixv-2127">&lt;p style="font:10pt Times New Roman;margin:0;margin-left:27pt;color:#000000;text-align:justify"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:-27pt"&gt;1.&lt;/kbd&gt;The accompanying unaudited condensed consolidated financial statements have been prepared in accordance with accounting principles generally accepted in the United States of America for interim financial information and with the instructions to Form 10-Q. Accordingly, they do not include all the information and footnotes required by accounting principles generally accepted in the United States of America for complete financial statements. In the opinion of the management of Taylor Devices, Inc. (referred to herein as the &#x201c;Company,&#x201d; &#x201c;we&#x201d; or &#x201c;our&#x201d;), the accompanying unaudited condensed consolidated financial statements contain all adjustments (consisting of only normal recurring accruals) necessary to present fairly the financial position as of August 31, 2026 and May 31, 2026, the results of operations for the three months ended August 31, 2026 and 2025, and cash flows for the three months ended August 31, 2026 and 2025. The accompanying unaudited condensed consolidated financial statements should be read in conjunction with the audited consolidated financial statements and notes thereto contained in the Company's Annual Report on Form 10-K for the year ended &lt;span style="-sec-ix-hidden:fact4"&gt;May 31&lt;/span&gt;, 2026, filed with the U.S. Securities and Exchange Commission (&#x201c;SEC&#x201d;) on August 18, 2026 (the &#x201c;Form 10-K&#x201d;). &#160;&lt;/p&gt;
</us-gaap:BasisOfPresentationAndSignificantAccountingPoliciesTextBlock>
    <us-gaap:BasisOfAccountingPolicyPolicyTextBlock contextRef="D260601_260831" id="ixv-2130">The accompanying unaudited condensed consolidated financial statements have been prepared in accordance with accounting principles generally accepted in the United States of America for interim financial information and with the instructions to Form 10-Q. Accordingly, they do not include all the information and footnotes required by accounting principles generally accepted in the United States of America for complete financial statements. In the opinion of the management of Taylor Devices, Inc. (referred to herein as the &#x201c;Company,&#x201d; &#x201c;we&#x201d; or &#x201c;our&#x201d;), the accompanying unaudited condensed consolidated financial statements contain all adjustments (consisting of only normal recurring accruals) necessary to present fairly the financial position as of August 31, 2026 and May 31, 2026, the results of operations for the three months ended August 31, 2026 and 2025, and cash flows for the three months ended August 31, 2026 and 2025. The accompanying unaudited condensed consolidated financial statements should be read in conjunction with the audited consolidated financial statements and notes thereto contained in the Company's Annual Report on Form 10-K for the year ended &lt;span style="-sec-ix-hidden:fact4"&gt;May 31&lt;/span&gt;, 2026, filed with the U.S. Securities and Exchange Commission (&#x201c;SEC&#x201d;) on August 18, 2026 (the &#x201c;Form 10-K&#x201d;).</us-gaap:BasisOfAccountingPolicyPolicyTextBlock>
    <us-gaap:SubsequentEventsTextBlock contextRef="D260601_260831" id="ixv-2133">&lt;p style="font:10pt Times New Roman;margin:0;margin-left:27pt;color:#000000;text-align:justify"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:-27pt"&gt;2.&lt;/kbd&gt;The Company has evaluated events and transactions for potential recognition or disclosure in the financial statements through the date the financial statements were issued.&#160;&lt;/p&gt;
</us-gaap:SubsequentEventsTextBlock>
    <us-gaap:SubsequentEventsPolicyPolicyTextBlock contextRef="D260601_260831" id="ixv-3975">The Company has evaluated events and transactions for potential recognition or disclosure in the financial statements through the date the financial statements were issued.</us-gaap:SubsequentEventsPolicyPolicyTextBlock>
    <us-gaap:CommitmentsAndContingenciesDisclosureTextBlock contextRef="D260601_260831" id="ixv-2137">&lt;p style="font:10pt Times New Roman;margin:0;margin-left:27pt;color:#000000;text-align:justify"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:-27pt"&gt;3.&lt;/kbd&gt;There is no provision nor shall there be any provisions for profit sharing, dividends, or any other benefits of any nature at any time for this fiscal year.&#160;&lt;/p&gt;
</us-gaap:CommitmentsAndContingenciesDisclosureTextBlock>
    <us-gaap:CommitmentsAndContingenciesPolicyTextBlock contextRef="D260601_260831" id="ixv-3976">There is no provision nor shall there be any provisions for profit sharing, dividends, or any other benefits of any nature at any time for this fiscal year.</us-gaap:CommitmentsAndContingenciesPolicyTextBlock>
    <us-gaap:EarningsPerShareTextBlock contextRef="D260601_260831" id="ixv-2141">&lt;p style="font:10pt Times New Roman;margin:0;margin-left:27pt;color:#000000;text-align:justify"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:-27pt"&gt;4.&lt;/kbd&gt;For the three-month periods ended August 31, 2026 and 2025, the net income was divided by 3,227,434 and 3,146,140, respectively, which is net of treasury shares, to calculate the net income per share.&#160;&lt;/p&gt;
</us-gaap:EarningsPerShareTextBlock>
    <us-gaap:EarningsPerSharePolicyTextBlock contextRef="D260601_260831" id="ixv-3977">For the three-month periods ended August 31, 2026 and 2025, the net income was divided by 3,227,434 and 3,146,140, respectively, which is net of treasury shares, to calculate the net income per share.</us-gaap:EarningsPerSharePolicyTextBlock>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="D260601_260831"
      decimals="INF"
      id="ixv-3978"
      unitRef="Shares">3227434</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="D250601_250831"
      decimals="INF"
      id="ixv-3979"
      unitRef="Shares">3146140</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock contextRef="D260601_260831" id="ixv-2145">&lt;p style="font:10pt Times New Roman;margin:0;margin-left:27pt;color:#000000;text-align:justify"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:-27pt"&gt;5.&lt;/kbd&gt;The results of operations for the three-month period ended August 31, 2026 are not necessarily indicative of the results to be expected for the full year.&#160;&lt;/p&gt;
</us-gaap:OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock>
    <us-gaap:NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock contextRef="D260601_260831" id="ixv-2149">&lt;p style="font:10pt Times New Roman;margin:0;margin-left:27pt;color:#000000;text-align:justify"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:-27pt"&gt;6.&lt;/kbd&gt;In November 2024, the Financial Accounting Standards Board (the &#x201c;FASB&#x201d;) issued ASU 2025-03, &#x201c;Income Statement &#x2013;&#160;Reporting Comprehensive Income &#x2013;&#160;Expense Disaggregation Disclosures (Subtopic 220-40): Disaggregation of Income Statement Expenses&#x201d; to enhance disclosure of specified categories of expenses (purchases of inventory, employee compensation, depreciation, and intangible asset amortization) included in certain expense captions presented on the face of the income statement. &#160;ASU 2025-03 is effective for annual periods beginning after December 15, 2026, and for interim periods within fiscal years beginning after December 15, 2027, with early adoption permitted on a prospective basis for financial statements issued for reporting periods after the forementioned effective date. &#160;The Company is currently evaluating the potential effect that the updated standard will have on the financial statements and related disclosures.&#160;&lt;/p&gt;
 &lt;p style="font:10pt Times New Roman;margin:0;margin-left:36pt;color:#000000"&gt;&#160;&lt;/p&gt;
 &lt;p style="font:10pt Times New Roman;margin:0;margin-left:27pt;color:#000000;text-align:justify"&gt;Other recently issued FASB Accounting Standards Codification guidance has either been implemented or is not significant to the Company.&lt;/p&gt;
</us-gaap:NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock>
    <us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock contextRef="D260601_260831" id="ixv-2150">&lt;p style="font:10pt Times New Roman;margin:0;margin-left:27pt;color:#000000;text-align:justify"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:-27pt"&gt;6.&lt;/kbd&gt;In November 2024, the Financial Accounting Standards Board (the &#x201c;FASB&#x201d;) issued ASU 2025-03, &#x201c;Income Statement &#x2013;&#160;Reporting Comprehensive Income &#x2013;&#160;Expense Disaggregation Disclosures (Subtopic 220-40): Disaggregation of Income Statement Expenses&#x201d; to enhance disclosure of specified categories of expenses (purchases of inventory, employee compensation, depreciation, and intangible asset amortization) included in certain expense captions presented on the face of the income statement. &#160;ASU 2025-03 is effective for annual periods beginning after December 15, 2026, and for interim periods within fiscal years beginning after December 15, 2027, with early adoption permitted on a prospective basis for financial statements issued for reporting periods after the forementioned effective date. &#160;The Company is currently evaluating the potential effect that the updated standard will have on the financial statements and related disclosures.&#160;&lt;/p&gt;
 &lt;p style="font:10pt Times New Roman;margin:0;margin-left:36pt;color:#000000"&gt;&#160;&lt;/p&gt;
 &lt;p style="font:10pt Times New Roman;margin:0;margin-left:27pt;color:#000000;text-align:justify"&gt;Other recently issued FASB Accounting Standards Codification guidance has either been implemented or is not significant to the Company.&lt;/p&gt;
</us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock>
    <us-gaap:NewAccountingPronouncementOrChangeInAccountingPrincipleDescription contextRef="D260601_260831" id="ixv-3980">In November 2024, the Financial Accounting Standards Board (the &#x201c;FASB&#x201d;) issued ASU 2025-03, &#x201c;Income Statement &#x2013;&#160;Reporting Comprehensive Income &#x2013;&#160;Expense Disaggregation Disclosures (Subtopic 220-40): Disaggregation of Income Statement Expenses&#x201d; to enhance disclosure of specified categories of expenses (purchases of inventory, employee compensation, depreciation, and intangible asset amortization) included in certain expense captions presented on the face of the income statement. &#160;ASU 2025-03 is effective for annual periods beginning after December 15, 2026, and for interim periods within fiscal years beginning after December 15, 2027, with early adoption permitted on a prospective basis for financial statements issued for reporting periods after the forementioned effective date. &#160;The Company is currently evaluating the potential effect that the updated standard will have on the financial statements and related disclosures.</us-gaap:NewAccountingPronouncementOrChangeInAccountingPrincipleDescription>
    <us-gaap:InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock contextRef="D260601_260831" id="ixv-2156">&lt;p style="font:10pt Times New Roman;margin:0;margin-left:27pt;color:#000000;text-align:justify"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:-27pt"&gt;7.&lt;/kbd&gt;Short-term Investments:&#160;&lt;/p&gt;
 &lt;p style="font:10pt Times New Roman;margin:0;text-indent:-27pt;margin-left:27pt"&gt;&#160;&lt;/p&gt;
 &lt;p style="font:10pt Times New Roman;margin:0;margin-left:27pt;color:#000000;text-align:justify"&gt;At times, the Company invests excess funds in liquid interest earning instruments. Short-term investments at August 31, 2026 and May 31, 2026 include money market funds, U.S. treasury securities and corporate bonds stated at fair value, which approximates cost. Unrealized holding gains and losses would be presented as a separate component of accumulated other comprehensive income, net of deferred income taxes. Realized gains and losses on the sale of investments are determined using the specific identification method.&lt;/p&gt;
 &lt;p style="font:10pt Times New Roman;margin:0;text-indent:-27pt;margin-left:27pt;color:#000000"&gt;&#160;&lt;/p&gt;
 &lt;p style="font:10pt Times New Roman;margin:0;margin-left:27pt;color:#000000;text-align:justify"&gt;The short-term investments are valued using pricing models maximizing the use of observable inputs for similar securities. This includes basing value on yields currently available on comparable securities of issuers with similar credit ratings.&lt;/p&gt;
</us-gaap:InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock>
    <us-gaap:InvestmentPolicyTextBlock contextRef="D260601_260831" id="ixv-2160">&lt;p style="font:10pt Times New Roman;margin:0;margin-left:27pt;color:#000000;text-align:justify"&gt;At times, the Company invests excess funds in liquid interest earning instruments. Short-term investments at August 31, 2026 and May 31, 2026 include money market funds, U.S. treasury securities and corporate bonds stated at fair value, which approximates cost. Unrealized holding gains and losses would be presented as a separate component of accumulated other comprehensive income, net of deferred income taxes. Realized gains and losses on the sale of investments are determined using the specific identification method.&lt;/p&gt;
</us-gaap:InvestmentPolicyTextBlock>
    <us-gaap:FairValueMeasurementPolicyPolicyTextBlock contextRef="D260601_260831" id="ixv-2163">&lt;p style="font:10pt Times New Roman;margin:0;margin-left:27pt;color:#000000;text-align:justify"&gt;The short-term investments are valued using pricing models maximizing the use of observable inputs for similar securities. This includes basing value on yields currently available on comparable securities of issuers with similar credit ratings.&lt;/p&gt;
</us-gaap:FairValueMeasurementPolicyPolicyTextBlock>
    <us-gaap:InventoryDisclosureTextBlock contextRef="D260601_260831" id="ixv-2170">&lt;p style="font:10pt Times New Roman;margin:0;margin-left:27pt;color:#000000;text-align:justify"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:-27pt"&gt;8.&lt;/kbd&gt;Inventory:&#160;&lt;/p&gt;
 &lt;p style="font:10pt Times New Roman;margin:0;text-align:justify"&gt;&#160;&lt;/p&gt;
 &lt;table style="border-collapse:collapse;margin-left:auto;margin-right:auto"&gt;
&lt;tr&gt;
&lt;td style="width:189.05pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;text-align:justify"&gt;&#160;&lt;/p&gt;
 &lt;/td&gt;
&lt;td style="width:89.8pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;text-align:center"&gt;August 31, 2026&lt;/p&gt;
 &lt;/td&gt;
&lt;td style="width:4.15pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
 &lt;/td&gt;
&lt;td style="width:77pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;text-align:center"&gt;May 31, 2026&lt;/p&gt;
 &lt;/td&gt;
&lt;/tr&gt;
 &lt;tr&gt;
&lt;td style="width:189.05pt;border-top:0.75pt solid #000000;background-color:#EBEBEB" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0"&gt;Raw materials&lt;/p&gt;
 &lt;/td&gt;
&lt;td style="width:89.8pt;border-top:0.75pt solid #000000;background-color:#EBEBEB" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt"&gt;$&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:83pt"&gt;831,376&lt;/kbd&gt;&#160;&lt;/p&gt;
 &lt;/td&gt;
&lt;td style="width:4.15pt;border-top:0.75pt solid #000000;background-color:#EBEBEB" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
 &lt;/td&gt;
&lt;td style="width:77pt;border-top:0.75pt solid #000000;background-color:#EBEBEB" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt"&gt;$&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:70pt"&gt;642,141&lt;/kbd&gt;&#160;&lt;/p&gt;
 &lt;/td&gt;
&lt;/tr&gt;
 &lt;tr&gt;
&lt;td style="width:189.05pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0"&gt;Work-in-process&lt;/p&gt;
 &lt;/td&gt;
&lt;td style="width:89.8pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:83pt"&gt;8,202,689&lt;/kbd&gt;&#160;&lt;/p&gt;
 &lt;/td&gt;
&lt;td style="width:4.15pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
 &lt;/td&gt;
&lt;td style="width:77pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:70pt"&gt;6,697,444&lt;/kbd&gt;&#160;&lt;/p&gt;
 &lt;/td&gt;
&lt;/tr&gt;
 &lt;tr&gt;
&lt;td style="width:189.05pt;background-color:#EBEBEB" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0"&gt;Finished goods&lt;/p&gt;
 &lt;/td&gt;
&lt;td style="width:89.8pt;border-bottom:0.5pt solid #000000;background-color:#EBEBEB" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:83pt"&gt;356,708&lt;/kbd&gt;&#160;&lt;/p&gt;
 &lt;/td&gt;
&lt;td style="width:4.15pt;border-bottom:0.5pt solid #000000;background-color:#EBEBEB" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
 &lt;/td&gt;
&lt;td style="width:77pt;border-bottom:0.5pt solid #000000;background-color:#EBEBEB" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:70pt"&gt;224,458&lt;/kbd&gt;&#160;&lt;/p&gt;
 &lt;/td&gt;
&lt;/tr&gt;
 &lt;tr&gt;
&lt;td style="width:189.05pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0"&gt;&#160;&lt;/p&gt;
 &lt;/td&gt;
&lt;td style="width:89.8pt;border-top:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:83pt"&gt;9,390,773&lt;/kbd&gt;&#160;&lt;/p&gt;
 &lt;/td&gt;
&lt;td style="width:4.15pt;border-top:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
 &lt;/td&gt;
&lt;td style="width:77pt;border-top:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:70pt"&gt;7,564,043&lt;/kbd&gt;&#160;&lt;/p&gt;
 &lt;/td&gt;
&lt;/tr&gt;
 &lt;tr&gt;
&lt;td style="width:189.05pt;background-color:#EBEBEB" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0"&gt;Less allowance for obsolescence&lt;/p&gt;
 &lt;/td&gt;
&lt;td style="width:89.8pt;border-bottom:1pt solid #000000;background-color:#EBEBEB" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:83pt"&gt;35,000&lt;/kbd&gt;&#160;&lt;/p&gt;
 &lt;/td&gt;
&lt;td style="width:4.15pt;border-bottom:1pt solid #000000;background-color:#EBEBEB" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
 &lt;/td&gt;
&lt;td style="width:77pt;border-bottom:1pt solid #000000;background-color:#EBEBEB" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:70pt"&gt;35,000&lt;/kbd&gt;&#160;&lt;/p&gt;
 &lt;/td&gt;
&lt;/tr&gt;
 &lt;tr&gt;
&lt;td style="width:189.05pt;border-bottom:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0"&gt;&#160;&lt;/p&gt;
 &lt;/td&gt;
&lt;td style="width:89.8pt;border-top:1pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt"&gt;$&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:83pt"&gt;9,355,773&lt;/kbd&gt;&#160;&lt;/p&gt;
 &lt;/td&gt;
&lt;td style="width:4.15pt;border-top:1pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
 &lt;/td&gt;
&lt;td style="width:77pt;border-top:1pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt"&gt;$&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:70pt"&gt;7,529,043&lt;/kbd&gt;&#160;&lt;/p&gt;
 &lt;/td&gt;
&lt;/tr&gt;
 &lt;/table&gt;
</us-gaap:InventoryDisclosureTextBlock>
    <us-gaap:ScheduleOfInventoryCurrentTableTextBlock contextRef="D260601_260831" id="ixv-2174">&lt;table style="border-collapse:collapse;margin-left:auto;margin-right:auto"&gt;
&lt;tr&gt;
&lt;td style="width:189.05pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;text-align:justify"&gt;&#160;&lt;/p&gt;
 &lt;/td&gt;
&lt;td style="width:89.8pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;text-align:center"&gt;August 31, 2026&lt;/p&gt;
 &lt;/td&gt;
&lt;td style="width:4.15pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
 &lt;/td&gt;
&lt;td style="width:77pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;text-align:center"&gt;May 31, 2026&lt;/p&gt;
 &lt;/td&gt;
&lt;/tr&gt;
 &lt;tr&gt;
&lt;td style="width:189.05pt;border-top:0.75pt solid #000000;background-color:#EBEBEB" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0"&gt;Raw materials&lt;/p&gt;
 &lt;/td&gt;
&lt;td style="width:89.8pt;border-top:0.75pt solid #000000;background-color:#EBEBEB" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt"&gt;$&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:83pt"&gt;831,376&lt;/kbd&gt;&#160;&lt;/p&gt;
 &lt;/td&gt;
&lt;td style="width:4.15pt;border-top:0.75pt solid #000000;background-color:#EBEBEB" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
 &lt;/td&gt;
&lt;td style="width:77pt;border-top:0.75pt solid #000000;background-color:#EBEBEB" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt"&gt;$&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:70pt"&gt;642,141&lt;/kbd&gt;&#160;&lt;/p&gt;
 &lt;/td&gt;
&lt;/tr&gt;
 &lt;tr&gt;
&lt;td style="width:189.05pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0"&gt;Work-in-process&lt;/p&gt;
 &lt;/td&gt;
&lt;td style="width:89.8pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:83pt"&gt;8,202,689&lt;/kbd&gt;&#160;&lt;/p&gt;
 &lt;/td&gt;
&lt;td style="width:4.15pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
 &lt;/td&gt;
&lt;td style="width:77pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:70pt"&gt;6,697,444&lt;/kbd&gt;&#160;&lt;/p&gt;
 &lt;/td&gt;
&lt;/tr&gt;
 &lt;tr&gt;
&lt;td style="width:189.05pt;background-color:#EBEBEB" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0"&gt;Finished goods&lt;/p&gt;
 &lt;/td&gt;
&lt;td style="width:89.8pt;border-bottom:0.5pt solid #000000;background-color:#EBEBEB" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:83pt"&gt;356,708&lt;/kbd&gt;&#160;&lt;/p&gt;
 &lt;/td&gt;
&lt;td style="width:4.15pt;border-bottom:0.5pt solid #000000;background-color:#EBEBEB" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
 &lt;/td&gt;
&lt;td style="width:77pt;border-bottom:0.5pt solid #000000;background-color:#EBEBEB" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:70pt"&gt;224,458&lt;/kbd&gt;&#160;&lt;/p&gt;
 &lt;/td&gt;
&lt;/tr&gt;
 &lt;tr&gt;
&lt;td style="width:189.05pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0"&gt;&#160;&lt;/p&gt;
 &lt;/td&gt;
&lt;td style="width:89.8pt;border-top:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:83pt"&gt;9,390,773&lt;/kbd&gt;&#160;&lt;/p&gt;
 &lt;/td&gt;
&lt;td style="width:4.15pt;border-top:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
 &lt;/td&gt;
&lt;td style="width:77pt;border-top:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:70pt"&gt;7,564,043&lt;/kbd&gt;&#160;&lt;/p&gt;
 &lt;/td&gt;
&lt;/tr&gt;
 &lt;tr&gt;
&lt;td style="width:189.05pt;background-color:#EBEBEB" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0"&gt;Less allowance for obsolescence&lt;/p&gt;
 &lt;/td&gt;
&lt;td style="width:89.8pt;border-bottom:1pt solid #000000;background-color:#EBEBEB" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:83pt"&gt;35,000&lt;/kbd&gt;&#160;&lt;/p&gt;
 &lt;/td&gt;
&lt;td style="width:4.15pt;border-bottom:1pt solid #000000;background-color:#EBEBEB" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
 &lt;/td&gt;
&lt;td style="width:77pt;border-bottom:1pt solid #000000;background-color:#EBEBEB" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:70pt"&gt;35,000&lt;/kbd&gt;&#160;&lt;/p&gt;
 &lt;/td&gt;
&lt;/tr&gt;
 &lt;tr&gt;
&lt;td style="width:189.05pt;border-bottom:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0"&gt;&#160;&lt;/p&gt;
 &lt;/td&gt;
&lt;td style="width:89.8pt;border-top:1pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt"&gt;$&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:83pt"&gt;9,355,773&lt;/kbd&gt;&#160;&lt;/p&gt;
 &lt;/td&gt;
&lt;td style="width:4.15pt;border-top:1pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
 &lt;/td&gt;
&lt;td style="width:77pt;border-top:1pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt"&gt;$&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:70pt"&gt;7,529,043&lt;/kbd&gt;&#160;&lt;/p&gt;
 &lt;/td&gt;
&lt;/tr&gt;
 &lt;/table&gt;
</us-gaap:ScheduleOfInventoryCurrentTableTextBlock>
    <us-gaap:InventoryRawMaterials
      contextRef="I260831"
      decimals="INF"
      id="ixv-3981"
      unitRef="USD">831376</us-gaap:InventoryRawMaterials>
    <us-gaap:InventoryRawMaterials
      contextRef="I260531"
      decimals="INF"
      id="ixv-3982"
      unitRef="USD">642141</us-gaap:InventoryRawMaterials>
    <us-gaap:InventoryWorkInProcess
      contextRef="I260831"
      decimals="INF"
      id="ixv-3983"
      unitRef="USD">8202689</us-gaap:InventoryWorkInProcess>
    <us-gaap:InventoryWorkInProcess
      contextRef="I260531"
      decimals="INF"
      id="ixv-3984"
      unitRef="USD">6697444</us-gaap:InventoryWorkInProcess>
    <us-gaap:InventoryFinishedGoods
      contextRef="I260831"
      decimals="INF"
      id="ixv-3985"
      unitRef="USD">356708</us-gaap:InventoryFinishedGoods>
    <us-gaap:InventoryFinishedGoods
      contextRef="I260531"
      decimals="INF"
      id="ixv-3986"
      unitRef="USD">224458</us-gaap:InventoryFinishedGoods>
    <us-gaap:InventoryGross
      contextRef="I260831"
      decimals="INF"
      id="ixv-3987"
      unitRef="USD">9390773</us-gaap:InventoryGross>
    <us-gaap:InventoryGross
      contextRef="I260531"
      decimals="INF"
      id="ixv-3988"
      unitRef="USD">7564043</us-gaap:InventoryGross>
    <us-gaap:InventoryValuationReserves
      contextRef="I260831"
      decimals="INF"
      id="ixv-3989"
      unitRef="USD">35000</us-gaap:InventoryValuationReserves>
    <us-gaap:InventoryValuationReserves
      contextRef="I260531"
      decimals="INF"
      id="ixv-3990"
      unitRef="USD">35000</us-gaap:InventoryValuationReserves>
    <us-gaap:InventoryNet
      contextRef="I260831"
      decimals="INF"
      id="ixv-3991"
      unitRef="USD">9355773</us-gaap:InventoryNet>
    <us-gaap:InventoryNet
      contextRef="I260531"
      decimals="INF"
      id="ixv-3992"
      unitRef="USD">7529043</us-gaap:InventoryNet>
    <us-gaap:RevenueFromContractWithCustomerTextBlock contextRef="D260601_260831" id="ixv-2256">&lt;p style="font:10pt Times New Roman;margin:0;margin-left:27pt;color:#000000;text-align:justify"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:-27pt"&gt;9.&lt;/kbd&gt;Revenue Recognition:&#160;&lt;/p&gt;
 &lt;p style="font:10pt Times New Roman;margin:0;margin-left:27pt;color:#000000;text-align:justify"&gt;&#160;&lt;/p&gt;
 &lt;p style="font:10pt Times New Roman;margin-top:0pt;margin-bottom:12pt;margin-left:27pt;text-align:justify"&gt;Revenue is recognized (generally at fixed prices) when, or as, the Company transfers control of promised products or services to a customer in an amount that reflects the consideration to which the Company expects to be entitled in exchange for transferring those products or services.&lt;/p&gt;
 &lt;p style="font:10pt Times New Roman;margin-top:0pt;margin-bottom:12pt;margin-left:27pt;text-align:justify"&gt;A performance obligation is a promise in a contract to transfer a distinct good or service to the customer and is the unit of account. A contract&#x2019;s transaction price is allocated to each distinct performance obligation and recognized as revenue when, or as, the performance obligation is satisfied. The majority of our contracts have a single performance obligation as the promise to transfer the individual goods or services is not separately identifiable from other promises in the contracts which are, therefore, not distinct. Promised goods or services that are immaterial in the context of the contract are not separately assessed as performance obligations. &lt;/p&gt;
 &lt;p style="font:10pt Times New Roman;margin-top:0pt;margin-bottom:12pt;margin-left:27pt;text-align:justify"&gt;For contracts with customers in which the Company satisfies a promise to the customer to provide a product that has no alternative use to the Company and the Company has enforceable rights to payment for progress completed to date inclusive of profit, the Company satisfies the performance obligation and recognizes revenue over time (generally less than one year) using costs incurred to date relative to total estimated costs at completion to measure progress toward satisfying our performance obligations. Incurred costs represent work performed, which corresponds with, and thereby best depicts, the transfer of control to the customer. Contract costs include labor, material and overhead. Adjustments to cost estimates are made periodically, and losses expected to be incurred on contracts in progress are charged to operations in the period such losses are determined. Other sales to customers are recognized upon shipment to the customer based on contract prices and terms. In the three months ended August 31, 2026, 50% of revenue was recorded for contracts in which revenue was recognized over time, while 50% was recognized at a point in time. In the three months ended August 31, 2025, 55% of revenue was recorded for contracts in which revenue was recognized over time, while 45% was recognized at a point in time. &lt;/p&gt;
 &lt;p style="font:10pt Times New Roman;margin-top:0pt;margin-bottom:12pt;margin-left:27pt;text-align:justify"&gt;Progress payments are typically negotiated for long-term projects. Payments are otherwise due once performance obligations are complete (generally at shipment and transfer of title). For financial statement presentation purposes, the Company nets progress billings against the total costs incurred and estimated earnings recognized on uncompleted contracts. The asset, &#x201c;Costs and estimated earnings in excess of billings,&#x201d; represents revenues recognized in excess of amounts billed. The liability, &#x201c;Billings in excess of costs and estimated earnings,&#x201d; represents billings in excess of revenues recognized.&lt;/p&gt;
 &lt;p style="font:10pt Times New Roman;margin-top:0pt;margin-bottom:12pt;margin-left:27pt;text-align:justify"&gt;If applicable, the Company recognizes an asset for the incremental, material costs of obtaining a contract with a customer if the Company expects the benefit of those costs to be longer than one year and the costs are expected to be recovered. As of August 31, 2026 and May 31, 2026, the Company does not have material incremental costs on any open contracts with an original expected duration of greater than one year, and therefore such costs are expensed as incurred. These incremental costs include, but are not limited to, sales commissions incurred to obtain a contract with a customer.&lt;/p&gt;
</us-gaap:RevenueFromContractWithCustomerTextBlock>
    <us-gaap:RevenueFromContractWithCustomerPolicyTextBlock contextRef="D260601_260831" id="ixv-2260">&lt;p style="font:10pt Times New Roman;margin-top:0pt;margin-bottom:12pt;margin-left:27pt;text-align:justify"&gt;Revenue is recognized (generally at fixed prices) when, or as, the Company transfers control of promised products or services to a customer in an amount that reflects the consideration to which the Company expects to be entitled in exchange for transferring those products or services.&lt;/p&gt;
 &lt;p style="font:10pt Times New Roman;margin-top:0pt;margin-bottom:12pt;margin-left:27pt;text-align:justify"&gt;A performance obligation is a promise in a contract to transfer a distinct good or service to the customer and is the unit of account. A contract&#x2019;s transaction price is allocated to each distinct performance obligation and recognized as revenue when, or as, the performance obligation is satisfied. The majority of our contracts have a single performance obligation as the promise to transfer the individual goods or services is not separately identifiable from other promises in the contracts which are, therefore, not distinct. Promised goods or services that are immaterial in the context of the contract are not separately assessed as performance obligations. &lt;/p&gt;
 &lt;p style="font:10pt Times New Roman;margin-top:0pt;margin-bottom:12pt;margin-left:27pt;text-align:justify"&gt;For contracts with customers in which the Company satisfies a promise to the customer to provide a product that has no alternative use to the Company and the Company has enforceable rights to payment for progress completed to date inclusive of profit, the Company satisfies the performance obligation and recognizes revenue over time (generally less than one year) using costs incurred to date relative to total estimated costs at completion to measure progress toward satisfying our performance obligations. Incurred costs represent work performed, which corresponds with, and thereby best depicts, the transfer of control to the customer. Contract costs include labor, material and overhead. Adjustments to cost estimates are made periodically, and losses expected to be incurred on contracts in progress are charged to operations in the period such losses are determined. Other sales to customers are recognized upon shipment to the customer based on contract prices and terms. In the three months ended August 31, 2026, 50% of revenue was recorded for contracts in which revenue was recognized over time, while 50% was recognized at a point in time. In the three months ended August 31, 2025, 55% of revenue was recorded for contracts in which revenue was recognized over time, while 45% was recognized at a point in time. &lt;/p&gt;
 &lt;p style="font:10pt Times New Roman;margin-top:0pt;margin-bottom:12pt;margin-left:27pt;text-align:justify"&gt;Progress payments are typically negotiated for long-term projects. Payments are otherwise due once performance obligations are complete (generally at shipment and transfer of title). For financial statement presentation purposes, the Company nets progress billings against the total costs incurred and estimated earnings recognized on uncompleted contracts. The asset, &#x201c;Costs and estimated earnings in excess of billings,&#x201d; represents revenues recognized in excess of amounts billed. The liability, &#x201c;Billings in excess of costs and estimated earnings,&#x201d; represents billings in excess of revenues recognized.&lt;/p&gt;
 &lt;p style="font:10pt Times New Roman;margin-top:0pt;margin-bottom:12pt;margin-left:27pt;text-align:justify"&gt;If applicable, the Company recognizes an asset for the incremental, material costs of obtaining a contract with a customer if the Company expects the benefit of those costs to be longer than one year and the costs are expected to be recovered. As of August 31, 2026 and May 31, 2026, the Company does not have material incremental costs on any open contracts with an original expected duration of greater than one year, and therefore such costs are expensed as incurred. These incremental costs include, but are not limited to, sales commissions incurred to obtain a contract with a customer.&lt;/p&gt;
</us-gaap:RevenueFromContractWithCustomerPolicyTextBlock>
    <us-gaap:RevenuePerformanceObligationDescriptionOfTiming
      contextRef="D260601_260831_TimingOfTransferOfGoodOrService-TransferredOverTime"
      id="ixv-3993">recognizes revenue over time (generally less than one year)</us-gaap:RevenuePerformanceObligationDescriptionOfTiming>
    <us-gaap:RevenuePerformanceObligationSatisfiedOverTimeMethodUsedDescription
      contextRef="D260601_260831_TimingOfTransferOfGoodOrService-TransferredOverTime"
      id="ixv-3994">using costs incurred to date relative to total estimated costs at completion to measure progress toward satisfying our performance obligations</us-gaap:RevenuePerformanceObligationSatisfiedOverTimeMethodUsedDescription>
    <us-gaap:RevenuePerformanceObligationSatisfiedOverTimeMethodUsedExplanation
      contextRef="D260601_260831_TimingOfTransferOfGoodOrService-TransferredOverTime"
      id="ixv-3995">Incurred costs represent work performed, which corresponds with, and thereby best depicts, the transfer of control to the customer.</us-gaap:RevenuePerformanceObligationSatisfiedOverTimeMethodUsedExplanation>
    <us-gaap:RevenuePerformanceObligationSatisfiedAtPointInTimeTransferOfControl
      contextRef="D260601_260831_TimingOfTransferOfGoodOrService-TransferredAtPointInTime"
      id="ixv-3996">Other sales to customers are recognized upon shipment to the customer based on contract prices and terms.</us-gaap:RevenuePerformanceObligationSatisfiedAtPointInTimeTransferOfControl>
    <us-gaap:RevenuePerformanceObligationDescriptionOfPaymentTerms contextRef="D260601_260831" id="ixv-3997">Progress payments are typically negotiated for long-term projects. Payments are otherwise due once performance obligations are complete (generally at shipment and transfer of title).</us-gaap:RevenuePerformanceObligationDescriptionOfPaymentTerms>
    <us-gaap:AccountsPayableAccruedLiabilitiesAndOtherLiabilitiesDisclosureCurrentTextBlock contextRef="D260601_260831" id="ixv-2266">&lt;p style="font:10pt Times New Roman;margin:0;margin-left:27pt;text-align:justify"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:-27pt"&gt;10.&lt;/kbd&gt;Accrued Expenses: &#160;&lt;/p&gt;
 &lt;p style="font:10pt Times New Roman;margin:0;text-align:justify"&gt;&#160;&lt;/p&gt;
 &lt;table style="border-collapse:collapse;margin-left:auto;margin-right:auto"&gt;
&lt;tr&gt;
&lt;td style="width:189.05pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;text-align:justify"&gt;&#160;&lt;/p&gt;
 &lt;/td&gt;
&lt;td style="width:89.8pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;text-align:center"&gt; August 31, 2026&lt;/p&gt;
 &lt;/td&gt;
&lt;td style="width:4.15pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
 &lt;/td&gt;
&lt;td style="width:77pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;text-align:center"&gt;May 31, 2026&lt;/p&gt;
 &lt;/td&gt;
&lt;/tr&gt;
 &lt;tr&gt;
&lt;td style="width:189.05pt;border-top:0.75pt solid #000000;background-color:#EBEBEB" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0"&gt;Customer deposits&lt;/p&gt;
 &lt;/td&gt;
&lt;td style="width:89.8pt;border-top:0.75pt solid #000000;background-color:#EBEBEB" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt"&gt;$&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:83pt"&gt;33,618&lt;/kbd&gt;&#160;&lt;/p&gt;
 &lt;/td&gt;
&lt;td style="width:4.15pt;border-top:0.75pt solid #000000;background-color:#EBEBEB" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
 &lt;/td&gt;
&lt;td style="width:77pt;border-top:0.75pt solid #000000;background-color:#EBEBEB" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt"&gt;$&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:70pt"&gt;68,482&lt;/kbd&gt;&#160;&lt;/p&gt;
 &lt;/td&gt;
&lt;/tr&gt;
 &lt;tr&gt;
&lt;td style="width:189.05pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0"&gt;Personnel costs&lt;/p&gt;
 &lt;/td&gt;
&lt;td style="width:89.8pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:83pt"&gt;1,296,332&lt;/kbd&gt;&#160;&lt;/p&gt;
 &lt;/td&gt;
&lt;td style="width:4.15pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
 &lt;/td&gt;
&lt;td style="width:77pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:70pt"&gt;2,154,490&lt;/kbd&gt;&#160;&lt;/p&gt;
 &lt;/td&gt;
&lt;/tr&gt;
 &lt;tr&gt;
&lt;td style="width:189.05pt;background-color:#EBEBEB" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0"&gt;Other&lt;/p&gt;
 &lt;/td&gt;
&lt;td style="width:89.8pt;border-bottom:0.5pt solid #000000;background-color:#EBEBEB" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:83pt"&gt;711,986&lt;/kbd&gt;&#160;&lt;/p&gt;
 &lt;/td&gt;
&lt;td style="width:4.15pt;border-bottom:0.5pt solid #000000;background-color:#EBEBEB" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
 &lt;/td&gt;
&lt;td style="width:77pt;border-bottom:0.5pt solid #000000;background-color:#EBEBEB" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:70pt"&gt;723,522&lt;/kbd&gt;&#160;&lt;/p&gt;
 &lt;/td&gt;
&lt;/tr&gt;
 &lt;tr&gt;
&lt;td style="width:189.05pt;border-bottom:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0"&gt;&#160;&lt;/p&gt;
 &lt;/td&gt;
&lt;td style="width:89.8pt;border-top:1pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt"&gt;$&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:83pt"&gt;2,041,936&lt;/kbd&gt;&#160;&lt;/p&gt;
 &lt;/td&gt;
&lt;td style="width:4.15pt;border-top:1pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
 &lt;/td&gt;
&lt;td style="width:77pt;border-top:1pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt"&gt;$&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:70pt"&gt;2,946,494&lt;/kbd&gt;&#160;&lt;/p&gt;
 &lt;/td&gt;
&lt;/tr&gt;
 &lt;/table&gt;
</us-gaap:AccountsPayableAccruedLiabilitiesAndOtherLiabilitiesDisclosureCurrentTextBlock>
    <us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock contextRef="D260601_260831" id="ixv-2270">&lt;table style="border-collapse:collapse;margin-left:auto;margin-right:auto"&gt;
&lt;tr&gt;
&lt;td style="width:189.05pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;text-align:justify"&gt;&#160;&lt;/p&gt;
 &lt;/td&gt;
&lt;td style="width:89.8pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;text-align:center"&gt; August 31, 2026&lt;/p&gt;
 &lt;/td&gt;
&lt;td style="width:4.15pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
 &lt;/td&gt;
&lt;td style="width:77pt;border-bottom:0.75pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;text-align:center"&gt;May 31, 2026&lt;/p&gt;
 &lt;/td&gt;
&lt;/tr&gt;
 &lt;tr&gt;
&lt;td style="width:189.05pt;border-top:0.75pt solid #000000;background-color:#EBEBEB" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0"&gt;Customer deposits&lt;/p&gt;
 &lt;/td&gt;
&lt;td style="width:89.8pt;border-top:0.75pt solid #000000;background-color:#EBEBEB" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt"&gt;$&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:83pt"&gt;33,618&lt;/kbd&gt;&#160;&lt;/p&gt;
 &lt;/td&gt;
&lt;td style="width:4.15pt;border-top:0.75pt solid #000000;background-color:#EBEBEB" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
 &lt;/td&gt;
&lt;td style="width:77pt;border-top:0.75pt solid #000000;background-color:#EBEBEB" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt"&gt;$&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:70pt"&gt;68,482&lt;/kbd&gt;&#160;&lt;/p&gt;
 &lt;/td&gt;
&lt;/tr&gt;
 &lt;tr&gt;
&lt;td style="width:189.05pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0"&gt;Personnel costs&lt;/p&gt;
 &lt;/td&gt;
&lt;td style="width:89.8pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:83pt"&gt;1,296,332&lt;/kbd&gt;&#160;&lt;/p&gt;
 &lt;/td&gt;
&lt;td style="width:4.15pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
 &lt;/td&gt;
&lt;td style="width:77pt" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:70pt"&gt;2,154,490&lt;/kbd&gt;&#160;&lt;/p&gt;
 &lt;/td&gt;
&lt;/tr&gt;
 &lt;tr&gt;
&lt;td style="width:189.05pt;background-color:#EBEBEB" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0"&gt;Other&lt;/p&gt;
 &lt;/td&gt;
&lt;td style="width:89.8pt;border-bottom:0.5pt solid #000000;background-color:#EBEBEB" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:83pt"&gt;711,986&lt;/kbd&gt;&#160;&lt;/p&gt;
 &lt;/td&gt;
&lt;td style="width:4.15pt;border-bottom:0.5pt solid #000000;background-color:#EBEBEB" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
 &lt;/td&gt;
&lt;td style="width:77pt;border-bottom:0.5pt solid #000000;background-color:#EBEBEB" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0"&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:70pt"&gt;723,522&lt;/kbd&gt;&#160;&lt;/p&gt;
 &lt;/td&gt;
&lt;/tr&gt;
 &lt;tr&gt;
&lt;td style="width:189.05pt;border-bottom:0.5pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0"&gt;&#160;&lt;/p&gt;
 &lt;/td&gt;
&lt;td style="width:89.8pt;border-top:1pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt"&gt;$&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:83pt"&gt;2,041,936&lt;/kbd&gt;&#160;&lt;/p&gt;
 &lt;/td&gt;
&lt;td style="width:4.15pt;border-top:1pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0;color:#000080"&gt;&#160;&lt;/p&gt;
 &lt;/td&gt;
&lt;td style="width:77pt;border-top:1pt solid #000000;border-bottom:2.25pt solid #000000" valign="top"&gt;&lt;p style="font:10pt Times New Roman;margin:0"&gt;&lt;kbd style="position:absolute;font:10pt Times New Roman;margin-left:7pt"&gt;$&lt;/kbd&gt;&lt;kbd style="position:absolute;text-align:right;font:10pt Times New Roman;width:70pt"&gt;2,946,494&lt;/kbd&gt;&#160;&lt;/p&gt;
 &lt;/td&gt;
&lt;/tr&gt;
 &lt;/table&gt;
</us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock>
    <us-gaap:CustomerDepositsCurrent
      contextRef="I260831"
      decimals="INF"
      id="ixv-3998"
      unitRef="USD">33618</us-gaap:CustomerDepositsCurrent>
    <us-gaap:CustomerDepositsCurrent
      contextRef="I260531"
      decimals="INF"
      id="ixv-3999"
      unitRef="USD">68482</us-gaap:CustomerDepositsCurrent>
    <us-gaap:EmployeeRelatedLiabilitiesCurrent
      contextRef="I260831"
      decimals="INF"
      id="ixv-4000"
      unitRef="USD">1296332</us-gaap:EmployeeRelatedLiabilitiesCurrent>
    <us-gaap:EmployeeRelatedLiabilitiesCurrent
      contextRef="I260531"
      decimals="INF"
      id="ixv-4001"
      unitRef="USD">2154490</us-gaap:EmployeeRelatedLiabilitiesCurrent>
    <us-gaap:OtherAccruedLiabilitiesCurrent
      contextRef="I260831"
      decimals="INF"
      id="ixv-4002"
      unitRef="USD">711986</us-gaap:OtherAccruedLiabilitiesCurrent>
    <us-gaap:OtherAccruedLiabilitiesCurrent
      contextRef="I260531"
      decimals="INF"
      id="ixv-4003"
      unitRef="USD">723522</us-gaap:OtherAccruedLiabilitiesCurrent>
    <us-gaap:AccruedLiabilitiesCurrent
      contextRef="I260831"
      decimals="INF"
      id="ixv-4004"
      unitRef="USD">2041936</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:AccruedLiabilitiesCurrent
      contextRef="I260531"
      decimals="INF"
      id="ixv-4005"
      unitRef="USD">2946494</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:TradingSecuritiesAndCertainTradingAssetsTextBlock contextRef="D260601_260831" id="ixv-3344">&lt;p style="font:10pt Times New Roman;margin:0;color:#002060"&gt;&lt;a href="" id="Item5OtherInformation"&gt;&lt;/a&gt;&lt;b&gt;Item 5. Other Information&lt;/b&gt;&lt;/p&gt;
 &lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
 &lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&lt;i&gt;Trading Plans&lt;/i&gt;&lt;/p&gt;
 &lt;p style="font:10pt Times New Roman;margin:0;color:#000000"&gt;&#160;&lt;/p&gt;
 &lt;p style="font:10pt Times New Roman;margin:0"&gt;During the three months ended August 31, 2026, no director or officer of the Company adopted or terminated a &#x201c;Rule 10b5-1 trading arrangement&#x201d; or &#x201c;non-Rule 10b5-1 trading arrangement,&#x201d; as each term is defined in Item 408(a) of Regulation S-K.&lt;/p&gt;
</us-gaap:TradingSecuritiesAndCertainTradingAssetsTextBlock>
    <us-gaap:DescriptionOfTradingActivitiesAndManagementOfRelatedRisks contextRef="D260601_260831" id="ixv-4006">During the three months ended August 31, 2026, no director or officer of the Company adopted or terminated a &#x201c;Rule 10b5-1 trading arrangement&#x201d; or &#x201c;non-Rule 10b5-1 trading arrangement,&#x201d; as each term is defined in Item 408(a) of Regulation S-K.</us-gaap:DescriptionOfTradingActivitiesAndManagementOfRelatedRisks>
</xbrl>
