/* リセットCSS */
/*! destyle.css v4.0.1 | MIT License | https://github.com/nicolas-cusan/destyle.min.css */
*,::before,::after{box-sizing:border-box;border-style:solid;border-width:0;min-width:0}html{line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}body{margin:0}main{display:block}p,table,blockquote,address,pre,iframe,form,figure,dl{margin:0}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit;margin:0}ul,ol{margin:0;padding:0;list-style:none}dt{font-weight:700}dd{margin-left:0}hr{box-sizing:content-box;height:0;overflow:visible;border-top-width:1px;margin:0;clear:both;color:inherit}pre{font-family:monospace,monospace;font-size:inherit}address{font-style:inherit}a{background-color:transparent;text-decoration:none;color:inherit}abbr[title]{text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:inherit}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}svg,img,embed,object,iframe{vertical-align:bottom}button,input,optgroup,select,textarea{-webkit-appearance:none;appearance:none;vertical-align:middle;color:inherit;font:inherit;background:transparent;padding:0;margin:0;border-radius:0;text-align:inherit;text-transform:inherit}button,[type="button"],[type="reset"],[type="submit"]{cursor:pointer}button:disabled,[type="button"]:disabled,[type="reset"]:disabled,[type="submit"]:disabled{cursor:default}:-moz-focusring{outline:auto}select:disabled{opacity:inherit}option{padding:0}fieldset{margin:0;padding:0;min-width:0}legend{padding:0}progress{vertical-align:baseline}textarea{overflow:auto}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{outline-offset:-2px}[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}[type="number"]{-moz-appearance:textfield}label[for]{cursor:pointer}details{display:block}summary{display:list-item}[contenteditable]:focus{outline:auto}table{border-color:inherit;border-collapse:collapse}caption{text-align:left}td,th{vertical-align:top;padding:0}th{text-align:left;font-weight:700}
html{
    font-size: 62.5%;
}

body {
    /*font-family: 'Helvetica Neue', Arial, 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', Meiryo, sans-serif;*/
    font-family: "Roboto", "Noto Sans JP", serif;
    line-height: 1.6;
    color: #333;
    background-color:#3B3B3B;
}

/* ヘッダー */
.header {
    color: white;
    padding: 0;
    position: sticky;
    top: 0;
    z-index: 100;
}
.headerContainer {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    position: relative;
}


.logo {
    font-size: 3.2rem;
    font-weight: bold;
    position: relative; /* z-indexを有効にするため */
    z-index: 1; /* ボーダーより前面に配置 */
}

/* メインコンテナ */
.container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 20px;
    display: grid;
}

/* メインコンテンツ */
.mainContent {
   margin-top: 350px;
   color: #FFFFFF;
   font-size: 2rem;
   z-index: 100;
}
.mainContent section{
    margin-bottom: 32px;
    font-weight:200;
}

.mainContent h2{
    color:#D3D3D3;
    font-size:1.2rem;
    font-weight: 100;
    border-bottom:1px solid #5F5F5F;
    padding:4px;
    margin-bottom:8px;
}
.mainContent h2:before{
    content:"//";
}

.mainContent .BTC{
    font-size:5rem;
    max-width: 600px;
    margin:0 auto;
}
.mainContent .BTC li{
    position:relative;
}
.mainContent .BTC li:nth-child(1){
}
/* サービス */
.mainContent .serviceList{
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap:12px;
}
.mainContent .serviceItemTitle{
    margin:2rem 0;
}
.mainContent .serviceItemDetail{
    margin-bottom:2rem;
    font-size:1.6rem;
}

/* サービスアイテムのキャンバススタイル */
.seviceItemImg {
    width: 100%;
    max-width: 600px;
    aspect-ratio: 600 / 185; /* 青銅比 1:3.236 */
    background-color: #3B3B3B;
    overflow: hidden;
    margin-bottom: 8px;
}

.seviceItemImg canvas {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: contain;
}

.mainContent .tableList{
    display: grid;
    gap:12px;
    grid-template-columns: 180px 1fr
}
.mainContent .tableList input,
.mainContent .tableList textarea{
    width:100%;
    border:1px solid #5F5F5F;
    background-color:#444444;
    border-radius: 2px;
    color:#FFFFFF;
    padding:0 4px;
}
.mainContent button{
    display:block;
    text-align:center;
    border:1px solid #5F5F5F;
    background-color:#444444;
    width:40%;
    margin:3rem auto;
    padding:4px;
    border-radius: 2px;
    color:#FFFFFF;
}

/* p5.js キャンバス */
#canvasContainer {
    display: flex;
    position: absolute;
    top: -100px;
    left: 0;
    right: 0;
    justify-content: center;
    align-items: center;
    margin: 0 auto;
    background-color: #3B3B3B;
    width: 100%;
    max-width: 600px;
    min-width: 300px;
    /* コンテナも正方形を維持 */
    aspect-ratio: 1 / 1;
    overflow: hidden;
    z-index: 10;
}

#canvasContainer canvas {
    /* 固定サイズ600x600のCanvasをコンテナに合わせてスケール */
    width: 100%;
    height: 100%;
    max-width: 100%;
    display: block;
    /* アスペクト比を維持して正方形を保持 */
    aspect-ratio: 1 / 1;
    object-fit: contain;
    /* 高品質なスケーリングを指定 */
    image-rendering: -webkit-optimize-contrast;
    image-rendering: crisp-edges;
}


/* トースト通知 */
.toast {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) scale(0);
    background-color: #EFE27E;
    color: white;
    width: 200px;
    height: 200px;
    border-radius: 50%;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4);
    z-index: 1000;
    opacity: 0;
    transition: all 0.4s cubic-bezier(0.68, -0.55, 0.265, 1.55);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.4rem;
}

.toast.show {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
}

.toast-content {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    gap: 8px;
    padding: 20px;
}

.toast-icon {
    font-size: 3rem;
    font-weight: bold;
    line-height: 1;
}

.toast-message {
    font-weight: 400;
    font-size: 1.2rem;
    line-height: 1.3;
}

/* フッター */
.footer {
    color: white;
    text-align: center;
    padding: 2rem 0;
    margin-top: 3rem;
}

/* レスポンシブデザイン */
@media (max-width: 768px) {
    .container {
        grid-template-columns: 1fr;
        padding: 10px;
    }
    /* モバイル用キャンバス調整 */
    #canvasContainer {
        margin: 0 auto;
        padding: 0.5rem;
        top: -50px;
        max-width: 90vw; /* ビューポート幅の90%まで */
        min-width: 400px;
    }
    
    #canvasContainer canvas {
        /* モバイルでも高品質なスケーリング */
        image-rendering: auto;
        /* モバイルでも正方形を維持 */
        aspect-ratio: 1 / 1;
    }
    
    .mainContent .serviceList{
        grid-template-columns: 1fr;
        gap: 20px;
    }
    
    .seviceItemImg {
        max-width: 100%;
    }
    
    .mainContent .tableList{
        grid-template-columns: 1fr;
        gap:4px;
    }
    .mainContent .tableList dd{
        margin-bottom:8px;
    }
    /* モバイル用トースト調整 */
    .toast {
        width: 160px;
        height: 160px;
        font-size: 1.2rem;
    }
    
    .toast-icon {
        font-size: 2.5rem;
    }
    
    .toast-message {
        font-size: 1rem;
    }
}

@media (max-width: 480px) {
    .headerContainer {
        padding: 0 10px; /* モバイル用パディング */
    }
    
    .headerContainer::after {
        left: 10px;  /* モバイル用パディングに合わせる */
        right: 10px;
    }
    /* 小さな画面用キャンバス調整 */
    #canvasContainer {
        margin: 0 auto;
        padding: 0.25rem;
        top: 0;
        max-width: 95vw; /* より小さな画面では95%まで */
        min-width: 400px;
    }
} 