/* 新装開店パーラー柊へようこそ！ — スタイルは .parlor-hiiragi 配下に限定 */

.ph-page {
    margin: 0;
    background: #0c1424;
}

.parlor-hiiragi {
    /* 仮のデザイントークン（公式カラーではない） */
    --ph-bg: #101a2b;
    --ph-surface: #fffaf1;
    --ph-text: #162337;
    --ph-sky: #8bd8f4;
    --ph-blue: #438fd0;
    --ph-vermillion: #d7473f;
    --ph-gold: #c89c4b;
    --ph-flower: #e7a9bd;
    --ph-panel-bg: #f4f7fb;
    --ph-panel-text: #1c2533;
    --ph-panel-border: #c9d3e0;
    --u: 7.2px;

    box-sizing: border-box;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(320px, 440px);
    height: 100vh;
    height: 100dvh;
    color: var(--ph-panel-text);
    font-family: "Hiragino Maru Gothic ProN", "Hiragino Sans", "BIZ UDPGothic", "Yu Gothic UI", "Meiryo", system-ui, sans-serif;
    background: var(--ph-bg);
}

.parlor-hiiragi *,
.parlor-hiiragi *::before,
.parlor-hiiragi *::after {
    box-sizing: inherit;
}

.parlor-hiiragi [hidden] {
    display: none !important;
}

/* ---------- ステージ配置 ---------- */

.parlor-hiiragi .ph-stage-area {
    position: relative;
    min-width: 0;
    min-height: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

.parlor-hiiragi .ph-stage {
    position: relative;
    width: 720px;
    height: 1280px;
    overflow: hidden;
    color: var(--ph-text);
    background:
        radial-gradient(circle at 18% 8%, rgba(139, 216, 244, 0.28), transparent 40%),
        radial-gradient(circle at 85% 92%, rgba(215, 71, 63, 0.18), transparent 45%),
        linear-gradient(180deg, #13223a 0%, #0f1a2c 100%);
}

.parlor-hiiragi .ph-stage-inner {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    gap: calc(var(--u) * 1.6);
    justify-content: center;
}

.parlor-hiiragi[data-align="top"] .ph-stage-inner { justify-content: flex-start; }
.parlor-hiiragi[data-align="bottom"] .ph-stage-inner { justify-content: flex-end; }

/* ---------- ヘッダー ---------- */

.parlor-hiiragi .ph-header {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: calc(var(--u) * 2);
    padding: calc(var(--u) * 1.6) calc(var(--u) * 2);
    border: calc(var(--u) * 0.6) solid var(--ph-sky);
    border-radius: calc(var(--u) * 3);
    background: linear-gradient(180deg, #2b6fb0 0%, #1c4f86 100%);
    box-shadow: 0 0 calc(var(--u) * 2.4) rgba(139, 216, 244, 0.45), inset 0 0 calc(var(--u) * 1.4) rgba(255, 255, 255, 0.25);
    flex: none;
}

.parlor-hiiragi .ph-title-block {
    text-align: center;
    min-width: 0;
}

.parlor-hiiragi .ph-subtitle {
    display: inline-block;
    padding: calc(var(--u) * 0.3) calc(var(--u) * 2);
    border-radius: 999px;
    background: var(--ph-vermillion);
    color: #fff;
    font-size: calc(var(--u) * 2.8);
    font-weight: 800;
    letter-spacing: 0.15em;
}

.parlor-hiiragi .ph-title {
    margin: calc(var(--u) * 0.6) 0 0;
    color: #fff;
    font-size: calc(var(--u) * 6.4);
    line-height: 1.15;
    font-weight: 900;
    text-shadow: 0 calc(var(--u) * 0.4) 0 #0f2f52, 0 0 calc(var(--u) * 1.6) rgba(139, 216, 244, 0.9);
}

.parlor-hiiragi .ph-title-tail {
    display: block;
    font-size: 0.62em;
}

.parlor-hiiragi .ph-deco {
    flex: none;
    width: calc(var(--u) * 9);
    height: auto;
}

.parlor-hiiragi .ph-deco-bell {
    position: absolute;
    right: calc(var(--u) * -1.6);
    top: calc(var(--u) * -3.2);
    width: calc(var(--u) * 5.6);
}

.parlor-hiiragi .ph-preview-badge {
    position: absolute;
    left: calc(var(--u) * 1.4);
    top: calc(var(--u) * -2);
    padding: calc(var(--u) * 0.4) calc(var(--u) * 1.4);
    border-radius: calc(var(--u) * 1);
    background: #fff3c4;
    color: #5a4300;
    border: 2px solid var(--ph-gold);
    font-size: calc(var(--u) * 2.2);
    font-weight: 800;
}

.parlor-hiiragi .ph-system-line {
    margin: 0;
    text-align: center;
    color: #dff4fc;
    font-size: calc(var(--u) * 3.2);
    font-weight: 700;
    flex: none;
}

/* ---------- リール ---------- */

.parlor-hiiragi .ph-machine {
    position: relative;
    flex: none;
    padding: calc(var(--u) * 2) calc(var(--u) * 2.4) calc(var(--u) * 1);
    border-radius: calc(var(--u) * 3);
    border: calc(var(--u) * 0.6) solid var(--ph-sky);
    background: var(--ph-surface);
    box-shadow: 0 calc(var(--u) * 1.2) 0 #2b6fb0;
    transition: box-shadow 0.4s ease, border-color 0.4s ease;
}

.parlor-hiiragi .ph-reel {
    margin-bottom: calc(var(--u) * 1.2);
}

.parlor-hiiragi .ph-reel-label {
    display: block;
    margin-bottom: calc(var(--u) * 0.4);
    color: var(--ph-vermillion);
    font-size: calc(var(--u) * 2.4);
    font-weight: 800;
}

.parlor-hiiragi .ph-reel-window {
    position: relative;
    height: calc(var(--u) * 10);
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: calc(var(--u) * 1.6);
    border: calc(var(--u) * 0.45) solid var(--ph-gold);
    background: #142742;
    box-shadow: inset 0 0 calc(var(--u) * 1.6) #000;
}

.parlor-hiiragi .ph-reel-text {
    position: relative;
    z-index: 1;
    padding: 0 calc(var(--u) * 1.2);
    color: #fff;
    text-align: center;
    font-size: calc(var(--u) * 4.6);
    font-weight: 900;
    line-height: 1.15;
    text-shadow: 0 0 calc(var(--u) * 1.2) var(--ph-sky);
}

.parlor-hiiragi .ph-reel-strip {
    position: absolute;
    left: 0;
    top: 0;
    height: 100%;
    display: none;
    align-items: center;
    white-space: nowrap;
}

.parlor-hiiragi .ph-reel.is-spinning .ph-reel-strip {
    display: flex;
    animation: ph-scroll 0.55s linear infinite;
}

.parlor-hiiragi .ph-reel.is-spinning .ph-reel-text {
    display: none;
}

.parlor-hiiragi .ph-reel-item {
    flex: none;
    min-width: calc(var(--u) * 30);
    padding: 0 calc(var(--u) * 2);
    text-align: center;
    color: #cfefff;
    font-size: calc(var(--u) * 4);
    font-weight: 800;
}

.parlor-hiiragi .ph-reel.is-stopped .ph-reel-text {
    animation: ph-pop 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

@keyframes ph-scroll {
    from { transform: translateX(0); }
    to { transform: translateX(-50%); }
}

/* 透明度は変えない（描画が止まった環境でも文字が消えないように） */
@keyframes ph-pop {
    from { transform: scale(1.3); }
    to { transform: scale(1); }
}

/* 筐体の SPIN ボタン（田中版と同じく筐体の一部。結果表示中もそのまま次を回せる） */
.parlor-hiiragi .ph-spin {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: calc(var(--u) * 1.2);
    width: 100%;
    height: calc(var(--u) * 9);
    margin: calc(var(--u) * 0.6) 0 calc(var(--u) * 1.4);
    border: none;
    border-radius: 999px;
    background: linear-gradient(180deg, #ffe08a 0%, var(--ph-gold) 55%, #b9822f 100%);
    color: #fff;
    font: inherit;
    font-size: calc(var(--u) * 4.6);
    font-weight: 900;
    letter-spacing: 0.06em;
    text-shadow: 0 calc(var(--u) * 0.25) 0 rgba(90, 50, 0, 0.6);
    box-shadow: 0 calc(var(--u) * 0.9) 0 var(--ph-vermillion), 0 calc(var(--u) * 1.4) calc(var(--u) * 1.4) rgba(0, 0, 0, 0.3);
    cursor: pointer;
    transition: transform 0.08s ease, box-shadow 0.08s ease;
}

.parlor-hiiragi .ph-spin:active:not(:disabled) {
    transform: translateY(calc(var(--u) * 0.9));
    box-shadow: 0 0 0 var(--ph-vermillion), inset 0 0 calc(var(--u) * 1.2) rgba(0, 0, 0, 0.35);
}

.parlor-hiiragi .ph-spin:disabled {
    background: #c9ccd3;
    color: #5d6472;
    text-shadow: none;
    box-shadow: none;
    transform: translateY(calc(var(--u) * 0.9));
    cursor: not-allowed;
}

.parlor-hiiragi .ph-spin:focus-visible {
    outline: calc(var(--u) * 0.5) solid #f0a020;
    outline-offset: calc(var(--u) * 0.4);
}

.parlor-hiiragi.has-card .ph-spin {
    height: calc(var(--u) * 7);
    font-size: calc(var(--u) * 3.8);
    margin-bottom: calc(var(--u) * 1.2);
}

/* 結果表示中はリールを詰めて本文の場所を確保 */
.parlor-hiiragi.has-card .ph-reel-window {
    height: calc(var(--u) * 6.6);
}

.parlor-hiiragi.has-card .ph-reel-text {
    font-size: calc(var(--u) * 3.4);
}

.parlor-hiiragi.has-card .ph-reel-label {
    font-size: calc(var(--u) * 2);
}

.parlor-hiiragi.has-card .ph-machine {
    padding-top: calc(var(--u) * 1.4);
}

/* 演出（難度とは無関係）。点滅や画面揺れは使わない */
.parlor-hiiragi .ph-machine.fx-enhanced {
    border-color: var(--ph-vermillion);
    box-shadow: 0 calc(var(--u) * 1.2) 0 #2b6fb0, 0 0 calc(var(--u) * 4) rgba(139, 216, 244, 0.8);
}

.parlor-hiiragi .ph-machine.fx-special {
    border-color: var(--ph-gold);
    box-shadow: 0 calc(var(--u) * 1.2) 0 #8a6a2e, 0 0 calc(var(--u) * 5) rgba(231, 169, 189, 0.85);
}

.parlor-hiiragi .ph-machine.fx-special::after {
    content: "神託";
    position: absolute;
    left: 50%;
    top: calc(var(--u) * -3.4);
    transform: translateX(-50%);
    padding: calc(var(--u) * 0.4) calc(var(--u) * 1.6);
    background: var(--ph-surface);
    border: 2px solid var(--ph-vermillion);
    color: var(--ph-vermillion);
    font-weight: 900;
    font-size: calc(var(--u) * 2.6);
    letter-spacing: 0.3em;
    border-radius: calc(var(--u) * 0.6);
}

/* ---------- 結果カード ---------- */

.parlor-hiiragi .ph-card {
    flex: 0 1 auto;
    min-height: 0;
    overflow: auto;
    padding: calc(var(--u) * 2.2) calc(var(--u) * 2.8);
    border-radius: calc(var(--u) * 2.4);
    background: var(--ph-surface);
    color: var(--ph-text);
    border: calc(var(--u) * 0.5) solid var(--ph-vermillion);
    box-shadow: 0 calc(var(--u) * 0.8) calc(var(--u) * 2.4) rgba(0, 0, 0, 0.35);
}

.parlor-hiiragi .ph-card-head {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: calc(var(--u) * 1.2);
}

.parlor-hiiragi .ph-chip {
    padding: calc(var(--u) * 0.3) calc(var(--u) * 1.4);
    border-radius: 999px;
    background: var(--ph-vermillion);
    color: #fff;
    font-size: calc(var(--u) * 2.8);
    font-weight: 800;
}

.parlor-hiiragi .ph-card-title {
    color: #1c4f86;
    font-size: calc(var(--u) * 4.2);
    font-weight: 900;
    line-height: 1.2;
}

.parlor-hiiragi .ph-card-performance {
    margin: calc(var(--u) * 0.8) 0 0;
    color: #3b4a60;
    font-size: calc(var(--u) * 2.8);
    font-weight: 700;
}

.parlor-hiiragi .ph-card-body {
    margin: calc(var(--u) * 1.2) 0 0;
    font-size: calc(var(--u) * 5);
    font-weight: 800;
    line-height: 1.45;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}

.parlor-hiiragi .ph-card-body.is-long {
    font-size: calc(var(--u) * 4.4);
}

.parlor-hiiragi .ph-card-extra {
    margin: calc(var(--u) * 1.2) 0 0;
    padding: calc(var(--u) * 0.8) calc(var(--u) * 1.4);
    border-left: calc(var(--u) * 0.8) solid var(--ph-vermillion);
    background: #fde9e4;
    color: #7a1f19;
    font-size: calc(var(--u) * 3.4);
    font-weight: 800;
}

.parlor-hiiragi .ph-card-example {
    margin: calc(var(--u) * 1.2) 0 0;
    color: #3b4a60;
    font-size: calc(var(--u) * 2.8);
    line-height: 1.45;
}

.parlor-hiiragi .ph-card-foot {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    gap: calc(var(--u) * 1);
    margin-top: calc(var(--u) * 1.4);
}

.parlor-hiiragi .ph-card-fallback {
    color: #55627a;
    font-size: calc(var(--u) * 2.4);
}

.parlor-hiiragi .ph-timer {
    padding: calc(var(--u) * 0.4) calc(var(--u) * 1.6);
    border-radius: 999px;
    background: #1c4f86;
    color: #fff;
    font-size: calc(var(--u) * 3.6);
    font-weight: 900;
    font-variant-numeric: tabular-nums;
}

.parlor-hiiragi .ph-timer.is-paused {
    background: #6c7a90;
}

.parlor-hiiragi .ph-timer.is-zero {
    background: var(--ph-gold);
    color: #2c2000;
}

.parlor-hiiragi .ph-choice {
    margin-top: calc(var(--u) * 1.2);
    padding: calc(var(--u) * 1) calc(var(--u) * 1.4);
    border-radius: calc(var(--u) * 1.4);
    background: #e6f6fd;
    border: 2px dashed var(--ph-blue);
}

.parlor-hiiragi .ph-choice-label {
    font-size: calc(var(--u) * 2.6);
    font-weight: 800;
    color: #1c4f86;
}

.parlor-hiiragi .ph-choice-options {
    display: flex;
    gap: calc(var(--u) * 1.2);
    margin-top: calc(var(--u) * 0.6);
}

.parlor-hiiragi .ph-choice-option {
    flex: 1;
    padding: calc(var(--u) * 0.8);
    border-radius: calc(var(--u) * 1);
    background: #fff;
    border: 2px solid var(--ph-sky);
    text-align: center;
    font-size: calc(var(--u) * 3.4);
    font-weight: 800;
}

.parlor-hiiragi .ph-choice-option.is-adopted {
    border-color: var(--ph-vermillion);
    background: #fff1ee;
}

.parlor-hiiragi .ph-choice-adopted {
    margin-top: calc(var(--u) * 0.6);
    font-size: calc(var(--u) * 2.6);
    font-weight: 800;
    color: var(--ph-vermillion);
}

/* ---------- 休憩 ---------- */

.parlor-hiiragi .ph-rest-overlay {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: calc(var(--u) * 2);
    background: rgba(16, 26, 43, 0.92);
    color: #fff;
    text-align: center;
    z-index: 5;
}

.parlor-hiiragi .ph-rest-title {
    font-size: calc(var(--u) * 7);
    font-weight: 900;
    color: var(--ph-sky);
}

.parlor-hiiragi .ph-rest-sub {
    font-size: calc(var(--u) * 3.2);
    font-weight: 700;
}

/* ---------- 横向きステージ ---------- */

.parlor-hiiragi[data-orientation="landscape"] .ph-stage-inner {
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
    grid-template-rows: auto auto minmax(0, 1fr);
    column-gap: calc(var(--u) * 2.4);
    row-gap: calc(var(--u) * 1.4);
    align-content: center;
}

.parlor-hiiragi[data-orientation="landscape"] .ph-header,
.parlor-hiiragi[data-orientation="landscape"] .ph-system-line {
    grid-column: 1 / -1;
}

.parlor-hiiragi[data-orientation="landscape"] .ph-header {
    padding-top: calc(var(--u) * 0.8);
    padding-bottom: calc(var(--u) * 0.8);
}

.parlor-hiiragi[data-orientation="landscape"] .ph-title {
    font-size: calc(var(--u) * 5);
}

.parlor-hiiragi[data-orientation="landscape"] .ph-title-tail {
    display: inline;
}

.parlor-hiiragi[data-orientation="landscape"] .ph-machine {
    grid-column: 1;
    grid-row: 3;
    align-self: start;
}

.parlor-hiiragi[data-orientation="landscape"] .ph-card {
    grid-column: 2;
    grid-row: 3;
    align-self: start;
    max-height: 100%;
}

.parlor-hiiragi[data-orientation="landscape"] .ph-deco-bell {
    display: none;
}

.parlor-hiiragi[data-orientation="landscape"]:not(.has-card) .ph-machine {
    grid-column: 1 / -1;
    justify-self: center;
    width: 70%;
}

/* ---------- 操作パネル ---------- */

.parlor-hiiragi .ph-controls {
    min-width: 0;
    overflow-y: auto;
    padding: 12px 14px 40px;
    background: var(--ph-panel-bg);
    border-left: 1px solid var(--ph-panel-border);
    font-size: 14px;
    line-height: 1.5;
}

.parlor-hiiragi .ph-panel-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 8px;
    margin-bottom: 8px;
}

.parlor-hiiragi .ph-state-pill {
    padding: 2px 10px;
    border-radius: 999px;
    background: #1c4f86;
    color: #fff;
    font-size: 12px;
    font-weight: 700;
}

.parlor-hiiragi .ph-alerts:empty {
    display: none;
}

.parlor-hiiragi .ph-alert {
    margin: 0 0 6px;
    padding: 6px 10px;
    border-radius: 6px;
    background: #fff3c4;
    border: 1px solid #d9b443;
    color: #4d3a00;
}

.parlor-hiiragi .ph-alert.is-error {
    background: #fde4e1;
    border-color: #d7473f;
    color: #6b1610;
}

.parlor-hiiragi .ph-section {
    margin: 0 0 10px;
    padding: 10px;
    border: 1px solid var(--ph-panel-border);
    border-radius: 8px;
    background: #fff;
}

.parlor-hiiragi .ph-section > summary {
    cursor: pointer;
    font-weight: 700;
}

.parlor-hiiragi .ph-btn-row {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    align-items: center;
    margin: 6px 0;
}

.parlor-hiiragi .ph-btn {
    min-height: 40px;
    padding: 6px 12px;
    border-radius: 8px;
    border: 1px solid #8796ad;
    background: #fff;
    color: var(--ph-panel-text);
    font: inherit;
    font-weight: 700;
    cursor: pointer;
}

.parlor-hiiragi .ph-btn:hover:not(:disabled) {
    background: #eef4fb;
}

.parlor-hiiragi .ph-btn:disabled {
    opacity: 0.45;
    cursor: not-allowed;
}

.parlor-hiiragi .ph-btn-primary {
    background: #1c4f86;
    border-color: #1c4f86;
    color: #fff;
    min-width: 9em;
}

.parlor-hiiragi .ph-btn-primary:hover:not(:disabled) {
    background: #2b6fb0;
}

.parlor-hiiragi .ph-btn-mute[aria-pressed="true"] {
    background: #fde4e1;
    border-color: #d7473f;
}

.parlor-hiiragi .ph-btn:focus-visible,
.parlor-hiiragi input:focus-visible,
.parlor-hiiragi select:focus-visible,
.parlor-hiiragi summary:focus-visible,
.parlor-hiiragi .ph-restore-controls:focus-visible {
    outline: 3px solid #f0a020;
    outline-offset: 2px;
}

.parlor-hiiragi .ph-inline {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.parlor-hiiragi .ph-help {
    margin: 4px 0;
    color: #56637a;
    font-size: 12px;
}

.parlor-hiiragi .ph-fieldset {
    margin: 8px 0 0;
    padding: 8px;
    border: 1px solid #dde4ee;
    border-radius: 6px;
}

.parlor-hiiragi .ph-fieldset:disabled {
    opacity: 0.6;
}

.parlor-hiiragi .ph-field {
    display: block;
    margin: 8px 0;
}

.parlor-hiiragi .ph-field-label {
    display: block;
    font-weight: 700;
    margin-bottom: 4px;
}

.parlor-hiiragi .ph-mode-row {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    align-items: center;
}

.parlor-hiiragi .ph-mode-current {
    font-weight: 800;
}

.parlor-hiiragi .ph-weights {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(118px, 1fr));
    gap: 6px;
}

.parlor-hiiragi .ph-weights label {
    display: flex;
    flex-direction: column;
    font-size: 12px;
}

.parlor-hiiragi .ph-weights input {
    width: 100%;
    min-height: 32px;
    font: inherit;
}

.parlor-hiiragi .ph-choice-ops {
    margin: 8px 0;
    padding: 8px;
    border-radius: 6px;
    background: #e6f6fd;
}

.parlor-hiiragi .ph-choice-suggest {
    margin: 4px 0 0;
    font-weight: 700;
    color: #7a1f19;
}

.parlor-hiiragi .ph-no-candidates {
    padding: 8px;
    border-radius: 6px;
    background: #fde4e1;
    color: #6b1610;
}

.parlor-hiiragi .ph-task-list,
.parlor-hiiragi .ph-history {
    margin: 8px 0 0;
    padding-left: 1.6em;
}

.parlor-hiiragi .ph-task {
    margin: 0 0 10px;
    padding: 6px 8px;
    border: 1px solid #dde4ee;
    border-radius: 6px;
}

.parlor-hiiragi .ph-task.is-blocked {
    background: #f6f7f9;
    color: #6b7588;
}

.parlor-hiiragi .ph-task-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 8px;
    font-size: 12px;
    color: #4a5670;
}

.parlor-hiiragi .ph-tag {
    padding: 0 6px;
    border-radius: 4px;
    background: #e8eef6;
}

.parlor-hiiragi .ph-tag.is-spicy {
    background: #fde4e1;
    color: #7a1f19;
}

.parlor-hiiragi .ph-tag.is-ok {
    background: #dff3e4;
    color: #145a2a;
}

.parlor-hiiragi .ph-tag.is-warn {
    background: #fff3c4;
    color: #5a4300;
}

.parlor-hiiragi .ph-task-body {
    margin: 4px 0;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}

.parlor-hiiragi .ph-task-sub {
    margin: 2px 0;
    font-size: 12px;
    color: #4a5670;
    overflow-wrap: anywhere;
}

.parlor-hiiragi .ph-history li {
    font-size: 12px;
    margin-bottom: 2px;
}

.parlor-hiiragi .ph-sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
}

/* ---------- 配信表示（操作パネルを隠す） ---------- */

.parlor-hiiragi.is-broadcast {
    grid-template-columns: minmax(0, 1fr);
}

.parlor-hiiragi.is-broadcast .ph-controls {
    display: none;
}

.parlor-hiiragi .ph-restore-controls {
    position: fixed;
    right: 6px;
    bottom: 6px;
    z-index: 20;
    padding: 6px 10px;
    border-radius: 6px;
    border: 1px solid #fff;
    background: rgba(0, 0, 0, 0.6);
    color: #fff;
    font: inherit;
    font-size: 12px;
    opacity: 0;
    transition: opacity 0.2s ease;
    cursor: pointer;
}

/* 配信に映らないよう普段は透明。マウスを動かす・Tab でフォーカスすると表示 */
.parlor-hiiragi.is-pointer-active .ph-restore-controls,
.parlor-hiiragi .ph-restore-controls:hover,
.parlor-hiiragi .ph-restore-controls:focus-visible {
    opacity: 1;
}

/* ---------- 小さい画面：縦に積む ---------- */

@media (max-width: 899px) {
    .parlor-hiiragi {
        display: block;
        height: auto;
        min-height: 100vh;
    }

    .parlor-hiiragi .ph-stage-area {
        display: block;
    }

    .parlor-hiiragi .ph-controls {
        border-left: 0;
        border-top: 1px solid var(--ph-panel-border);
        font-size: 15px;
    }

    .parlor-hiiragi.is-broadcast {
        height: 100vh;
        height: 100dvh;
    }

    .parlor-hiiragi.is-broadcast .ph-stage-area {
        display: flex;
        height: 100%;
    }
}

/* ---------- 動きを少なく ---------- */

.parlor-hiiragi.is-reduced-motion .ph-reel.is-spinning .ph-reel-strip {
    display: none;
    animation: none;
}

.parlor-hiiragi.is-reduced-motion .ph-reel.is-spinning .ph-reel-text {
    display: block;
    opacity: 0.6;
}

.parlor-hiiragi.is-reduced-motion .ph-reel.is-stopped .ph-reel-text {
    animation: none;
}

.parlor-hiiragi.is-reduced-motion .ph-machine {
    transition: none;
}

@media (prefers-reduced-motion: reduce) {
    .parlor-hiiragi .ph-reel.is-spinning .ph-reel-strip {
        display: none;
        animation: none;
    }

    .parlor-hiiragi .ph-reel.is-spinning .ph-reel-text {
        display: block;
        opacity: 0.6;
    }

    .parlor-hiiragi .ph-reel.is-stopped .ph-reel-text {
        animation: none;
    }

    .parlor-hiiragi .ph-machine {
        transition: none;
    }
}
