body.homepage-preview {
    margin: 0;
    overflow: hidden;
    background: #17242c;
}

.homepage-preview > header,
.homepage-preview aside,
.homepage-preview .intro,
.homepage-preview .disclaimer,
.homepage-preview #export-result,
.homepage-preview #fps-meter,
.homepage-preview #fallback,
.homepage-preview #top,
.homepage-preview #bottom,
.homepage-preview #cap-detail,
.homepage-preview #fullscreen,
.homepage-preview #rotate,
.homepage-preview .export-size,
.homepage-preview #download {
    display: none;
}

.homepage-preview > main,
.homepage-preview .preview,
.homepage-preview #stage-shell {
    width: 100%;
    height: 100vh;
    max-width: none;
    margin: 0;
    padding: 0;
}

.homepage-preview > main,
.homepage-preview .preview {
    display: block;
    position: static;
}

.homepage-preview #stage-shell {
    display: grid;
    grid-template-rows: minmax(0, 1fr) auto;
}

.homepage-preview #stage {
    width: 100%;
    height: 100%;
    min-height: 0;
    border: 0;
    border-radius: 0;
    background: #17242c url('./bottle-poster.jpg') center / contain no-repeat;
    touch-action: pan-y pinch-zoom;
}

.homepage-preview #stage:focus-visible {
    outline: 3px solid #b8ebf5;
    outline-offset: -4px;
}

.homepage-preview #stage:not([data-model]) canvas {
    visibility: hidden;
}

.homepage-preview #loading {
    inset: auto 0 18px;
    width: fit-content;
    margin: auto;
    padding: 5px 11px;
    border-radius: 20px;
    color: #fff;
    background: #17242c;
    font-size: 12px;
}

.homepage-preview .model-badge {
    top: 12px;
    left: 12px;
    background: #17242c;
    color: #f3fbfc;
}

.homepage-preview .drag-hint {
    bottom: 12px;
    width: max-content;
    max-width: calc(100% - 24px);
    color: #f3fbfc;
    background: #17242c;
    text-align: center;
    white-space: normal;
}

.homepage-preview #stage:has(#loading:not([hidden])) .drag-hint {
    display: none;
}

.homepage-preview .view-tools {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, max-content)) repeat(2, 44px);
    justify-content: center;
    gap: 6px;
    margin: 0;
    padding: 8px;
    background: #17242c;
}

.homepage-preview .view-tools button {
    min-width: 44px;
    min-height: 44px;
    padding: 5px 9px;
    white-space: nowrap;
}

.homepage-preview .view-tools button:focus-visible {
    outline-color: #b8ebf5;
    outline-offset: 2px;
}

.homepage-preview .preview-announcement {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
}
