:root{--psg-paper: #fbf8f3;--psg-panel: #ffffff;--psg-panel-2: #f4f0e8;--psg-line: #e7e0d3;--psg-ink: #1f2430;--psg-muted: #646a78;--psg-accent: #0f766e;--psg-coral: #f0624d;--psg-radius: 18px;--primary: #0f766e;--primary-dark: #0b5953;--border: #e7e0d3;--surface: #ffffff;--shadow-soft: 0 10px 28px rgba(31, 36, 48, 0.07);--surface-muted: #f7f3ec;--text-main: #1f2430;--text-muted: #646a78;}
.psg-sprite{position: absolute;width: 0;height: 0;overflow: hidden;}
[data-temp]{--tone: #0f766e;--tone-2: #5eead4;--tone-ink: #0b5953;}
[data-temp="reserved"]{--tone: #6366f1;--tone-2: #a5b4fc;--tone-ink: #3730a3;}
[data-temp="outgoing"]{--tone: #f59e0b;--tone-2: #fdba74;--tone-ink: #b45309;}
[data-temp="analytical"]{--tone: #0ea5e9;--tone-2: #5eead4;--tone-ink: #0369a1;}
[data-temp="creative"]{--tone: #d946ef;--tone-2: #f9a8d4;--tone-ink: #a21caf;}
[data-temp="empathetic"]{--tone: #f43f5e;--tone-2: #fda4af;--tone-ink: #be123c;}
[data-temp="driven"]{--tone: #16a34a;--tone-2: #bef264;--tone-ink: #15803d;}
.psg-desk{background: var(--psg-paper);border: 1px solid var(--psg-line);border-radius: 26px;padding: 22px;margin: 8px 0 56px;color: var(--psg-ink);box-shadow: 0 20px 44px rgba(31, 36, 48, 0.06);}
.psg-desk [hidden]{display: none !important;}
.psg-controls{background: var(--psg-panel);border: 1px solid var(--psg-line);border-radius: var(--psg-radius);padding: 18px 20px;margin-bottom: 20px;}
.psg-byline{display: flex;flex-wrap: wrap;justify-content: space-between;gap: 4px 14px;font-size: 12.5px;color: var(--psg-muted);padding-bottom: 12px;margin-bottom: 14px;border-bottom: 1px dashed var(--psg-line);}
.psg-byline .author-link{color: var(--primary-dark);font-weight: 700;text-decoration: none;}
.psg-byline .author-link:hover{text-decoration: underline;}
.psg-field{border: 0;padding: 0;margin: 0 0 14px;min-width: 0;}
.psg-field legend{float: none;width: auto;padding: 0;margin-bottom: 8px;font-size: 11.5px;font-weight: 800;letter-spacing: .12em;text-transform: uppercase;color: var(--psg-muted);}
.psg-temps{display: flex;flex-wrap: wrap;gap: 8px;}
.psg-temp{position: relative;margin: 0;cursor: pointer;}
.psg-temp input,.psg-depth input{position: absolute;opacity: 0;pointer-events: none;}
.psg-temp span{display: inline-flex;align-items: center;gap: 7px;padding: 8px 14px;border-radius: 12px;border: 1px solid var(--psg-line);background: var(--psg-panel-2);font-size: 14px;font-weight: 600;color: var(--psg-ink);transition: border-color .18s ease, background .18s ease, box-shadow .18s ease;}
.psg-temp svg{width: 16px;height: 16px;fill: none;stroke: var(--tone-ink);stroke-width: 2;stroke-linecap: round;stroke-linejoin: round;}
.psg-temp:hover span{border-color: var(--tone);background: #fff;}
.psg-temp input:checked + span{background: color-mix(in srgb, var(--tone) 14%, #fff);border-color: var(--tone);color: var(--tone-ink);box-shadow: inset 0 -3px 0 var(--tone);}
.psg-temp input:focus-visible + span,.psg-depth input:focus-visible + span{outline: 2px solid var(--psg-accent);outline-offset: 2px;}
.psg-bar{display: flex;flex-wrap: wrap;align-items: flex-end;justify-content: space-between;gap: 14px;}
.psg-bar .psg-field{margin: 0;}
.psg-depth{display: inline-flex;flex-wrap: wrap;gap: 4px;padding: 4px;border-radius: 12px;background: var(--psg-panel-2);border: 1px solid var(--psg-line);}
.psg-depth label{margin: 0;cursor: pointer;position: relative;}
.psg-depth span{display: block;padding: 7px 14px;border-radius: 9px;font-size: 14px;font-weight: 700;color: var(--psg-muted);line-height: 1.25;transition: background .18s ease, color .18s ease;}
.psg-depth small{display: block;font-size: 11px;font-weight: 600;opacity: .8;}
.psg-depth input:checked + span{background: var(--psg-ink);color: #fff;}
.psg-roll{display: inline-flex;align-items: center;justify-content: center;gap: 10px;min-width: 230px;padding: 14px 24px;border: 0;border-radius: 14px;background: var(--psg-accent);color: #fff;font-size: 16px;font-weight: 800;line-height: 1.2;cursor: pointer;box-shadow: 0 6px 0 #0b4f4a, 0 12px 24px rgba(15, 118, 110, 0.25);transition: transform .12s ease, box-shadow .12s ease, background .2s ease;}
.psg-roll svg{width: 20px;height: 20px;fill: none;stroke: #fff;stroke-width: 2;}
.psg-roll:hover{background: #0d6b64;}
.psg-roll:active{transform: translateY(4px);box-shadow: 0 2px 0 #0b4f4a, 0 6px 14px rgba(15, 118, 110, 0.2);}
.psg-roll:focus-visible{outline: 2px solid var(--psg-ink);outline-offset: 3px;}
.psg-roll:disabled{cursor: wait;opacity: .85;}
.psg-roll.is-busy svg{animation: psg-tumble .6s linear infinite;}
.psg-status{margin: 12px 0 0;font-size: 13px;color: var(--psg-muted);}
.psg-status.is-error{color: #be123c;font-weight: 600;}
.psg-card{position: relative;background: var(--psg-panel);border: 1px solid var(--psg-line);border-top: 6px solid var(--tone);border-radius: var(--psg-radius);padding: 24px;box-shadow: 0 14px 34px color-mix(in srgb, var(--tone) 14%, transparent);transition: border-color .35s ease, box-shadow .35s ease;}
.psg-card.is-rolling .psg-head,.psg-card.is-rolling .psg-core,.psg-card.is-rolling .psg-drive{animation: psg-in .45s ease-out both;}
.psg-card.is-rolling .psg-core{animation-delay: .06s;}
.psg-card.is-rolling .psg-drive{animation-delay: .12s;}
.psg-head{display: flex;align-items: flex-start;gap: 18px;padding-bottom: 18px;margin-bottom: 18px;border-bottom: 1px solid var(--psg-line);}
.psg-emblem{flex: 0 0 auto;width: 64px;height: 64px;display: grid;place-items: center;border-radius: 50%;background: color-mix(in srgb, var(--tone) 14%, #fff);border: 2px solid var(--tone);}
.psg-emblem svg{width: 30px;height: 30px;fill: none;stroke: var(--tone-ink);stroke-width: 2;stroke-linecap: round;stroke-linejoin: round;}
.psg-head-text{min-width: 0;flex: 1;}
.psg-kicker{margin: 0 0 4px;font-size: 12px;font-weight: 800;letter-spacing: .14em;text-transform: uppercase;color: var(--tone-ink);}
.psg-title{margin: 0 0 6px;font-family: Georgia, 'Times New Roman', serif;font-size: clamp(1.6rem, 3.4vw, 2.3rem);font-weight: 700;line-height: 1.1;color: var(--psg-ink);}
.psg-summary{margin: 0;font-size: 16px;color: var(--psg-muted);}
.psg-core{display: grid;grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);gap: 22px;margin-bottom: 20px;}
.psg-block-title{margin: 0 0 10px;font-size: 11.5px;font-weight: 800;letter-spacing: .14em;text-transform: uppercase;color: var(--psg-muted);}
.psg-block-title-flaw{margin-top: 18px;color: #b4432f;}
.psg-traits{list-style: none;margin: 0;padding: 0;display: flex;flex-wrap: wrap;gap: 7px;}
.psg-traits li{padding: 6px 12px;border-radius: 8px;background: color-mix(in srgb, var(--tone) 12%, #fff);color: var(--tone-ink);font-size: 14px;font-weight: 700;}
.psg-flaws{list-style: none;margin: 0;padding: 0;display: grid;gap: 6px;}
.psg-flaws li{position: relative;padding: 8px 12px 8px 30px;border-radius: 10px;background: #fff4f1;border: 1px solid #fbd5cc;font-size: 14.5px;line-height: 1.45;color: #4a2a22;}
.psg-flaws li::before{content: '';position: absolute;left: 12px;top: 14px;width: 8px;height: 8px;border-radius: 2px;background: var(--psg-coral);transform: rotate(45deg);}
.psg-five{list-style: none;margin: 0;padding: 0;display: grid;gap: 11px;}
.psg-five-top{display: flex;justify-content: space-between;align-items: baseline;font-size: 14px;}
.psg-five-label{font-weight: 700;color: var(--psg-ink);}
.psg-five-top b{font-variant-numeric: tabular-nums;color: var(--tone-ink);}
.psg-five-track{position: relative;height: 8px;margin: 5px 0 3px;border-radius: 99px;background: #ede8de;overflow: hidden;}
.psg-five-track::after{content: '';position: absolute;left: 50%;top: 0;bottom: 0;width: 2px;background: rgba(31, 36, 48, 0.18);}
.psg-five-track i{display: block;height: 100%;border-radius: 99px;background: linear-gradient(90deg, var(--tone-2), var(--tone));transition: width .5s cubic-bezier(.3, .9, .3, 1);}
.psg-five-read{font-size: 12.5px;color: var(--psg-muted);}
.psg-drive{margin: 0;display: grid;grid-template-columns: repeat(6, minmax(0, 1fr));gap: 10px;}
.psg-line{position: relative;padding: 12px 46px 12px 14px;border-radius: 12px;background: var(--psg-panel-2);border: 1px solid var(--psg-line);transition: border-color .2s ease, background .2s ease;}
.psg-line{grid-column: span 2;}
.psg-line-want,.psg-line-fear{grid-column: span 3;}
.psg-line-want{background: #effaf7;border-color: #c5ebe2;}
.psg-line-fear{background: #fff4f1;border-color: #fbd5cc;}
.psg-line-twist{grid-column: 1 / -1;background: color-mix(in srgb, var(--tone) 8%, #fff);border-style: dashed;border-color: var(--tone);}
.psg-line.is-locked{border-color: var(--psg-ink);box-shadow: inset 3px 0 0 var(--psg-ink);}
.psg-line dt{margin-bottom: 4px;font-size: 11px;font-weight: 800;letter-spacing: .14em;text-transform: uppercase;color: var(--psg-muted);}
.psg-line-want dt{color: var(--psg-accent);}
.psg-line-fear dt{color: #b4432f;}
.psg-line-twist dt{color: var(--tone-ink);}
.psg-line dd{margin: 0;font-size: 14.5px;line-height: 1.5;color: var(--psg-ink);}
.psg-line-twist dd{font-family: Georgia, 'Times New Roman', serif;font-size: 17px;font-style: italic;}
.psg-lock{position: absolute;top: 10px;right: 10px;width: 30px;height: 30px;display: grid;place-items: center;padding: 0;border-radius: 8px;border: 1px solid var(--psg-line);background: #fff;color: var(--psg-muted);cursor: pointer;transition: all .18s ease;}
.psg-lock svg{width: 15px;height: 15px;fill: none;stroke: currentColor;stroke-width: 2;stroke-linecap: round;stroke-linejoin: round;}
.psg-lock:hover{color: var(--psg-ink);border-color: var(--psg-ink);}
.psg-lock:focus-visible{outline: 2px solid var(--psg-accent);outline-offset: 2px;}
.psg-lock.is-locked{background: var(--psg-ink);border-color: var(--psg-ink);color: #fff;}
.psg-foot{display: flex;flex-wrap: wrap;gap: 10px;margin-top: 18px;padding-top: 16px;border-top: 1px solid var(--psg-line);}
.psg-btn{display: inline-flex;align-items: center;justify-content: center;padding: 10px 18px;border-radius: 10px;border: 1px solid var(--psg-ink);background: var(--psg-ink);color: #fff;font-size: 14px;font-weight: 700;line-height: 1.2;cursor: pointer;transition: transform .15s ease, background .2s ease;}
.psg-btn:hover{transform: translateY(-1px);background: #343b4d;}
.psg-btn:focus-visible{outline: 2px solid var(--psg-accent);outline-offset: 2px;}
.psg-btn.is-done{background: #15803d;border-color: #15803d;}
.psg-btn-ghost{background: #fff;color: var(--psg-ink);border-color: var(--psg-line);}
.psg-btn-ghost:hover{background: #fff;border-color: var(--psg-muted);}
.psg-history{margin-top: 18px;}
.psg-history-title{margin: 0 0 8px;font-size: 11.5px;font-weight: 800;letter-spacing: .12em;text-transform: uppercase;color: var(--psg-muted);}
.psg-history-list{list-style: none;margin: 0;padding: 0;display: flex;flex-wrap: wrap;gap: 8px;}
.psg-history-empty{margin: 0;font-size: 13px;color: var(--psg-muted);}
.psg-past{display: inline-flex;align-items: center;gap: 8px;padding: 7px 12px;border-radius: 10px;border: 1px solid var(--psg-line);background: #fff;color: var(--psg-ink);font-size: 13.5px;font-weight: 600;cursor: pointer;transition: border-color .18s ease;}
.psg-past:hover{border-color: var(--tone);}
.psg-past.is-current{border-color: var(--tone);box-shadow: inset 0 -2px 0 var(--tone);}
.psg-past-dot{width: 9px;height: 9px;border-radius: 50%;background: var(--tone);}
.psg-read,.psg-limits{margin: 0 auto 52px;color: var(--psg-ink);}
.psg-read h2,.psg-limits h2{margin: 0 0 14px;font-size: clamp(1.45rem, 2.6vw, 1.9rem);font-weight: 800;line-height: 1.2;color: var(--psg-ink);}
.psg-read h3{margin: 0 0 6px;font-size: 1.08rem;font-weight: 800;}
.psg-read p{margin: 0 0 14px;font-size: 16.5px;line-height: 1.7;color: #363b48;}
.psg-anatomy{list-style: none;counter-reset: psg;margin: 18px 0 0;padding: 0;display: grid;grid-template-columns: repeat(2, minmax(0, 1fr));gap: 12px;}
.psg-anatomy li{counter-increment: psg;position: relative;padding: 16px 18px 16px 58px;border-radius: 14px;background: #fff;border: 1px solid var(--border);box-shadow: var(--shadow-soft);}
.psg-anatomy li::before{content: counter(psg);position: absolute;left: 16px;top: 16px;width: 30px;height: 30px;display: grid;place-items: center;border-radius: 50%;background: var(--psg-accent);color: #fff;font-weight: 800;font-size: 14px;}
.psg-anatomy b{display: block;margin-bottom: 2px;font-size: 15.5px;}
.psg-anatomy span{font-size: 15px;line-height: 1.55;color: #363b48;}
.psg-table-wrap{overflow-x: auto;margin: 16px 0;border-radius: 14px;border: 1px solid var(--border);background: #fff;box-shadow: var(--shadow-soft);}
.psg-table{width: 100%;min-width: 600px;border-collapse: collapse;font-size: 14.5px;}
.psg-table caption{caption-side: bottom;padding: 10px 16px;font-size: 13px;color: var(--psg-muted);}
.psg-table th,.psg-table td{padding: 13px 16px;text-align: left;vertical-align: top;border-bottom: 1px solid var(--border);}
.psg-table thead th{background: var(--surface-muted);font-size: 12px;font-weight: 800;letter-spacing: .1em;text-transform: uppercase;}
.psg-table tbody th{white-space: nowrap;font-weight: 800;}
.psg-table tbody tr:last-child th,.psg-table tbody tr:last-child td{border-bottom: 0;}
.psg-temp-grid{list-style: none;margin: 16px 0 0;padding: 0;display: grid;grid-template-columns: repeat(3, minmax(0, 1fr));gap: 12px;}
.psg-temp-grid li{padding: 16px 18px;border-radius: 14px;background: #fff;border: 1px solid var(--border);border-left: 5px solid var(--tone);}
.psg-temp-name{display: block;margin-bottom: 4px;font-weight: 800;color: var(--tone-ink);}
.psg-temp-grid p{margin: 0 0 8px;font-size: 15px;line-height: 1.5;}
.psg-temp-grid small{font-size: 12.5px;font-weight: 600;color: var(--psg-muted);}
.psg-scenes{display: grid;grid-template-columns: repeat(3, minmax(0, 1fr));gap: 14px;margin: 18px 0;}
.psg-scene{padding: 18px;border-radius: 16px;background: #fff;border: 1px solid var(--border);box-shadow: var(--shadow-soft);}
.psg-scene-tag{display: inline-block;margin-bottom: 8px;padding: 3px 10px;border-radius: 6px;background: var(--psg-ink);color: #fff;font-size: 11.5px;font-weight: 800;letter-spacing: .1em;text-transform: uppercase;}
.psg-scene p{margin: 0;font-size: 15px;}
.psg-limits{padding: 24px 26px;border-radius: 18px;background: #fff4f1;border: 1px dashed #f3a493;}
.psg-limits ul{margin: 0;padding-left: 20px;}
.psg-limits li{margin-bottom: 8px;font-size: 15.5px;line-height: 1.65;color: #43302a;}
.psg-limits li:last-child{margin-bottom: 0;}
@keyframes psg-in{from{opacity: 0;transform: translateY(8px);}to{opacity: 1;transform: none;}}
@keyframes psg-tumble{to{transform: rotate(360deg);}}
@media (max-width: 991.98px){.psg-drive{grid-template-columns: 1fr 1fr;}.psg-line,.psg-line-want,.psg-line-fear{grid-column: span 1;}.psg-line-wide,.psg-line-twist{grid-column: 1 / -1;}.psg-temp-grid,.psg-scenes{grid-template-columns: 1fr 1fr;}}
@media (max-width: 767.98px){.psg-core{grid-template-columns: 1fr;}.psg-anatomy{grid-template-columns: 1fr;}.psg-roll{width: 100%;}.psg-bar .psg-field{width: 100%;}.psg-depth{display: flex;}.psg-depth label{flex: 1;}.psg-depth span{text-align: center;}}
@media (max-width: 575.98px){.psg-desk{padding: 12px;border-radius: 18px;}.psg-controls{padding: 14px;}.psg-card{padding: 18px 14px;}.psg-head{gap: 12px;}.psg-emblem{width: 48px;height: 48px;}.psg-emblem svg{width: 24px;height: 24px;}.psg-drive{grid-template-columns: 1fr;}.psg-line,.psg-line-want,.psg-line-fear,.psg-line-wide,.psg-line-twist{grid-column: 1 / -1;}.psg-temp-grid,.psg-scenes{grid-template-columns: 1fr;}.psg-btn{flex: 1 1 auto;}}
@media (prefers-reduced-motion: reduce){.psg-card.is-rolling .psg-head,.psg-card.is-rolling .psg-core,.psg-card.is-rolling .psg-drive,.psg-roll.is-busy svg{animation: none;}.psg-five-track i{transition: none;}}