/* ==========================================================================
 * Rich Editor Toolkit — anchored editing, redaction, color, speech-to-text
 * ========================================================================== */
.---expand-notepad .-foot-snap-left,
.---expand-notepad .-foot-snap-right {
	display: none;
}

.---show-notepad .-foot-find {
	display: none;
}

.---show-notepad .-foot-note {
	display: flex;
	pointer-events: auto;
}

.---expand-notepad .-foot-note {
	width: 100%;
	z-index: 100;
	align-self: end;
	clip-path: unset;
	position: relative;
	overflow: inherit;
	min-width: 78.125vw;
	min-height: 78.125vw;
	pointer-events: auto;
	background: #0000;
}

.---show-notepad .-foot-note::before {
	inset: 0;
	content: "";
	position: absolute;
	clip-path: var(--squircle);
}

.---expand-notepad .-foot-note::before {
	background: #1b1b1b;
}

.---expand-notepad .-foot-note-tool {
	min-height: 100%;
	border-width: 0;
	margin: 0 3.125vw;
	background: var(--dimmer);
	min-width: -webkit-fill-available;
}

.---expand-notepad .-foot-note-sticker {
	width: 0;
	opacity: 0;
	margin: 0;
	min-width: 0;
	border-width: 0;
}

.---expand-notepad .-foot-note-text {
	display: block;
	max-height: 46.875vw;
	background: #0000;
	overflow: hidden auto;
	padding: 3.125vw 4.6875vw;
}

.---expand-notepad .-foot-note-vibe {
	display: none;
}

.---expand-notepad .-foot-note::after {
	box-shadow: 0 0 3.125vw #000;
}

.---expand-notepad .-foot-toolbar {
	overflow: visible;
}

.---expand-notepad .-foot-note-phantom {
	align-items: flex-start;
	padding: 3.125vw 4.6875vw;
}

.---expand-notepad .-foot-note-area {
	clip-path: unset;
	background: #0000;
}

.-punch-hole-box {
	display: flex;
	position: relative;
	align-items: center;
	justify-content: center;
	color: var(--hole-color);
}

.-punch-hole {
	height: auto;
	display: flex;
	width: 9.375vw;
	position: relative;
	min-width: 8.125vw;
	border-radius: 50%;
	aspect-ratio: 1 / 1;
	align-items: center;
	justify-content: center;
	background: var(--dimmer);
	border: 0.9375vw solid #0000;
}

.-punch-hole .material-symbols-rounded {
	width: 100%;
	height: 100%;
	display: flex;
	align-items: center;
	border-radius: 50%;
	justify-content: center;
}

.-create-image-description {
	border: 0;
	outline: 0;
	color: #fff;
	margin: 0 4.6875vw;
	min-height: 31.25vw;
	padding: 4.6875vw;
	resize: none;
	font-size: 3.75vw;
	line-height: 5vw;
	font-family: "Nunito";
	clip-path: var(--squircle);
	background: var(--dimmer);
}

.-create-image-title {
	display: block !important;
}

.-foot:not(.---show-notepad) .-foot-note {
	display: none;
}

.---expand-notepad .-foot-note-cogs {
	opacity: 1;
	min-height: 15.625vw;
	pointer-events: auto;
}

.---notepad-switch {
	margin: 0;
	min-width: 100%;
	background: unset;
	min-height: fit-content;
	padding: 0 0 0 3.125vw;
}

.---notepad-switch .-widget-icon {
	display: none;
}

.---notepad-switch .-widget-label {
	color: #fff;
}

:is(.-add-ons-dial, .-edit-tools-dial) {
	display: flex;
	position: fixed;
	touch-action: none;
	aspect-ratio: 1/1;
	border-radius: 50%;
	pointer-events: none;
	transform-origin: 50% 50%;
	backdrop-filter: blur(1.5625vw);
	border: 1.25vw solid var(--dimmer);
	transform: translate(-50%, -50%) scale(0.001);
	transition: transform 0.36s cubic-bezier(.2,.85,.2,1);
	z-index: var(--orbit-z);
}

.-add-ons-dial {
	--orbit-z: 6500;
}

.-edit-tools-dial {
	--orbit-z: 6600;
}

.-add-ons-dial.---open {
	pointer-events: auto;
	transform: translate(-50%, -50%) scale(1);
}

.-add-on {
	top: 50%;
	left: 50%;
	opacity: 0;
	display: flex;
	width: 12.5vw;
	position: absolute;
	aspect-ratio: 1/1;
	align-items: center;
	border-radius: 50%;
	justify-content: center;
	transform-origin: 50% 50%;
	transition: opacity 0.45s;
	color: var(--add-on-color);
	background: var(--dimmer);
	border: 1.25vw solid #0000;
	transform: translate(-50%, -50%);
	text-shadow: 0.15625vw 0.15625vw 0.9375vw #00000080;
}

.-add-ons-dial.---open .-add-on {
	opacity: 1;
}

.-add-on .material-symbols-rounded {
	width: 100%;
	height: 100%;
	display: flex;
	font-size: 6.875vw;
	align-items: center;
	background: #1b1b1b;
	justify-content: center;
	border-radius: inherit;
}

.-add-on.---add-on-bounce {
	animation: add-on-bounce .32s cubic-bezier(.2,.9,.25,1.35);
}

.-add-on-ripple {
	z-index: 6499;
	width: 12.5vw;
	height: 12.5vw;
	opacity: .55;
	position: fixed;
	border-radius: 50%;
	pointer-events: none;
	transform: translate(-50%, -50%) scale(.75);
	border: 0.625vw solid var(--add-on-ripple-color);
	box-shadow: 0 0 2.5vw var(--add-on-ripple-color);
	animation: add-on-ripple .5s ease-out forwards;
}

.---notepad-switch .-widget-switch {
	margin: 0;
}

.---expand-notepad .-foot-plus {
	width: 0;
	opacity: 0;
	min-width: 0;
	border-width: 0;
	margin: 0 0 0 3.125vw;
}

.---expand-notepad .-foot-note-tool-rail {
	overflow: auto hidden;
	min-height: calc(100% - 31.25vw);
	overscroll-behavior-inline: contain;
}

.-edit-tools-dial.---open {
	pointer-events: auto;
	transform: translate(-50%, -50%) scale(1);
}

.-edit-tool {
	top: 50%;
	left: 50%;
	opacity: 0;
	display: flex;
	width: 12.5vw;
	position: absolute;
	aspect-ratio: 1/1;
	align-items: center;
	border-radius: 50%;
	justify-content: center;
	transform-origin: 50% 50%;
	transition: opacity 0.45s;
	background: var(--dimmer);
	border: 1.25vw solid #0000;
	color: var(--edit-tool-color);
	transform: translate(-50%, -50%);
	text-shadow: 0.15625vw 0.15625vw 0.9375vw #00000080;
}

.-edit-tools-dial.---open .-edit-tool {
	opacity: 1;
}

.-edit-tool .material-symbols-rounded {
	width: 100%;
	height: 100%;
	display: flex;
	font-size: 6.875vw;
	align-items: center;
	background: #1b1b1b;
	justify-content: center;
	border-radius: inherit;
}

.-editor-toolkit-layer {
	inset: 0;
	z-index: 7200;
	display: none;
	position: fixed;
	padding: 6.25vw;
	align-items: center;
	justify-content: center;
	background: rgb(0 0 0 / 45%);
	backdrop-filter: blur(3.125vw);
}

.-editor-toolkit-layer.---show-editor-toolkit {
	display: flex;
}

.-editor-toolkit {
	width: 87.5vw;
	max-height: 81.25vh;
	display: flex;
	gap: 3.125vw;
	overflow: hidden;
	position: relative;
	flex-flow: column;
	padding: 4.6875vw;
	clip-path: var(--squircle);
	background: rgb(28 28 28 / 88%);
	box-shadow: 0 0 9.375vw rgb(0 0 0 / 55%);
}

.-editor-toolkit-head {
	display: flex;
	min-height: 12.5vw;
	align-items: center;
	justify-content: space-between;
}

.-editor-toolkit-title {
	font-size: 5vw;
	font-family: "Nunito";
	font-weight: 800;
}

.-editor-toolkit-close {
	width: 10vw;
	display: flex;
	aspect-ratio: 1/1;
	align-items: center;
	border-radius: 50%;
	justify-content: center;
	background: var(--dimmer);
}

.-editor-toolkit-body {
	display: flex;
	min-height: 0;
	gap: 1.5625vw;
	flex-flow: column;
	overflow: hidden auto;
	clip-path: var(--squircle);
}

.-editor-toolkit-item {
	display: flex;
	min-height: 12.5vw;
	padding: 0 3.125vw;
	align-items: center;
	font-size: 3.75vw;
	font-family: "Nunito";
	clip-path: var(--squircle-small);
	background: rgb(255 255 255 / 6%);
}

.-editor-toolkit-controls {
	display: flex;
	gap: 3.125vw;
	flex-flow: column;
}

.-editor-toolkit-range {
	width: 100%;
	height: 12.5vw;
	margin: 0;
	appearance: none;
	background: transparent;
	touch-action: none;
}

.-editor-toolkit-range::-webkit-slider-runnable-track {
	height: 1.25vw;
	border-radius: 6.25vw;
	background: linear-gradient(90deg, var(--app-accent) var(--slider-fill), var(--dimmer) var(--slider-fill));
}

.-editor-toolkit-range::-webkit-slider-thumb {
	width: 6.25vw;
	height: 6.25vw;
	margin-top: -2.5vw;
	appearance: none;
	border-radius: 50%;
	background: #fff;
}

.-editor-color-grid {
	display: grid;
	gap: 2.5vw;
	grid-template-columns: repeat(6, 1fr);
}

.-editor-color-swatch {
	width: 100%;
	aspect-ratio: 1/1;
	border-radius: 50%;
	background: var(--editor-color);
}

.-redacted {
	filter: blur(1.5625vw);
}

.---add-ons-mode .material-symbols-rounded {
	font-size: 7.5vw;
}

.---expand-notepad .-foot-note-text > div,
.---expand-notepad .-foot-note-text > p {
	min-height: 5vw;
	margin: 0 0 1.5625vw;
}

/* Anchored rich-editor micro toolkit. */

.-edit-tool-toolbar {
	top: 50%;
	left: 50%;
	opacity: 0;
	gap: 1.5625vw;
	z-index: 30000;
	position: fixed;
	display: flex;
	max-width: 87.5vw;
	padding: 1.5625vw;
	align-items: center;
	pointer-events: none;
	border-radius: 6.25vw;
	overflow: auto hidden;
	background: #1b1b1b;
	backdrop-filter: blur(1.5625vw);
	transform: translate(-50%, -50%);
	transition: opacity 0.3s, transform 0.3s;
	box-shadow: 0 0.9375vw 2.5vw #000000aa;
}

.-edit-tool-toolbar.---show-edit-tool-toolbar {
	opacity: 1;
	pointer-events: auto;
}

.-edit-tool-toolbar-punch-hole,
.-vibe-annotation-hole {
	display: flex;
	width: 9.375vw;
	height: 9.375vw;
	min-width: 9.375vw;
	position: relative;
	aspect-ratio: 1/1;
	align-items: center;
	border-radius: 50%;
	justify-content: center;
	transition: background 0.3s;
	background: rgb(255 255 255 / 10%);
}

.-edit-tool-toolbar-punch-hole .material-symbols-rounded,
.-vibe-annotation-hole .material-symbols-rounded {
	font-size: 5vw;
	color: var(--toolbar-color, #fff);
}

.-edit-tool-toolbar-value {
	display: flex;
	min-width: 9.375vw;
	height: 9.375vw;
	padding: 0 2.1875vw;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	font-size: 3.4375vw;
	font-family: "Delius";
	color: #fff;
	background: var(--surface);
}

.-edit-tool-toolbar.---color-toolbar {
	width: 87.5vw;
	flex-flow: row wrap;
	justify-content: center;
	border-radius: 6.25vw;
}

.-edit-color-head {
	width: 100%;
	display: flex;
	gap: 1.5625vw;
	align-items: center;
}

.-edit-color-hex {
	border: 0;
	outline: 0;
	height: 10.9375vw;
	color: #fff;
	padding: 0 3.125vw;
	font-size: 3.4375vw;
	font-family: "Nunito";
	width: -webkit-fill-available;
	background: var(--surface);
	clip-path: var(--squircle-small);
}

.-edit-color-opacity {
	width: 10.9375vw;
	height: 10.9375vw;
	min-width: 10.9375vw;
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: "Delius";
	font-size: 3.125vw;
	background: var(--surface);
	clip-path: var(--squircle-small);
}

.-edit-color-touch {
	width: 9.375vw;
	height: 9.375vw;
	min-width: 9.375vw;
	border-radius: 50%;
	background: var(--rgba-color);
	box-shadow: inset 0 0 0 0.3125vw rgb(255 255 255 / 16%);
}

.-edit-tool-toolbar.---slider-toolbar {
	transform: translate(-50%, -150%);
}

.-edit-tools-dial,
.-editor-toolkit-item[data-font-item] {
	font-size: 4.375vw;
	min-height: 15.625vw;
}

.-orbit-core {
	top: 50%;
	left: 50%;
	z-index: 5;
	width: 12.5vw;
	height: 12.5vw;
	display: flex;
	position: absolute;
	align-items: center;
	border-radius: 50%;
	justify-content: center;
	pointer-events: none;
	transform: translate(-50%,-50%);
	background: var(--orbit-core-color,#326d10);
}

.-orbit-core .material-symbols-rounded {
	width: 100%;
	height: 100%;
	display: flex;
	font-size: 7.5vw;
	align-items: center;
	justify-content: center;
	border-radius: inherit;
}

.-add-ons-core {
	--orbit-core-color: #155797;
	color: #fff;
}

.-add-ons-dial > .-orbit-core,
.-edit-tools-dial > .-orbit-core {
	width: 12.5vw;
	height: 12.5vw;
	min-width: 12.5vw;
	aspect-ratio: 1/1;
	border: 1.25vw solid var(--dimmer);
	filter: drop-shadow(0 0 0.9375vw #000);
	text-shadow: 0.15625vw 0.15625vw 0.46875vw #000;
}

.-edit-tools-core {
	color: #fff;
	--orbit-core-color: #7b4fd6;
}

.-add-ons-dial.---open > .-orbit-core,
.-edit-tools-dial.---open > .-orbit-core {
	pointer-events: auto;
}

.-speech-waveform {
	display: none;
	gap: 0.9375vw;
	height: 9.375vw;
	min-width: 100%;
	position: relative;
	margin: 0 3.125vw;
	align-items: center;
	justify-content: center;
	width: -webkit-fill-available;
}

.-speech-waveform span {
	width: 0.625vw;
	position: relative;
	margin: 3.125vw 0;
	border-radius: 6.25vw;
	background: #FF9800;
	transform-origin: center;
	height: -webkit-fill-available;
	transition: transform 0.08s linear;
	transform: scaleY(var(--speech-level, .28));
}

.-speech-waveform span:nth-child(1) {
	animation-delay: -0.72s;
}

.---speech-to-text-mode .-foot-note-phantom {
	opacity: 0 !important;
}

.-edit-tool-active-dot {
	right: 0.3125vw;
	bottom: 0.3125vw;
	z-index: 3;
	width: 2.5vw;
	height: 2.5vw;
	position: absolute;
	border-radius: 50%;
	pointer-events: none;
	background: var(--edit-tool-color);
	box-shadow: 0 0 1.25vw color-mix(in srgb, var(--edit-tool-color) 50%, transparent);
}

.-text-anchor-trigger {
	color: #88d6ff;
	background: rgb(136 214 255 / 12%);
	text-decoration-line: underline;
	text-decoration-style: dotted;
	text-decoration-color: #88d6ff;
	text-underline-offset: 0.625vw;
	border-radius: 1.5625vw;
	padding: 0 0.625vw;
	box-decoration-break: clone;
	-webkit-box-decoration-break: clone;
}

.-editor-anchor-target {
	min-height: 12.5vw;
	display: flex;
	padding: 2.34375vw 3.125vw;
	align-items: center;
	font-size: 3.4375vw;
	line-height: 5vw;
	font-family: "Nunito";
	background: var(--dimmer);
	clip-path: var(--squircle-small);
	transition: background 0.25s;
}

.-editor-anchor-target.---selected-anchor-target {
	background: rgb(136 214 255 / 18%);
}

.-editor-anchor-empty {
	min-height: 31.25vw;
	display: flex;
	padding: 4.6875vw;
	align-items: center;
	text-align: center;
	font-size: 3.75vw;
	line-height: 5.625vw;
	font-family: "Nunito";
	justify-content: center;
	background: var(--dimmer);
	clip-path: var(--squircle);
}

.-editor-anchor-done {
	min-height: 12.5vw;
	display: flex;
	align-items: center;
	font-size: 3.75vw;
	font-family: "Nunito";
	justify-content: center;
	background: #88d6ff;
	color: #121212;
	clip-path: var(--squircle-small);
}

.---speech-to-text-mode .-foot-note-count {
	display: none;
}

.---speech-to-text-mode .-speech-waveform {
	display: flex;
}

.---speech-to-text-mode .-foot-note-text {
	opacity: 1;
	pointer-events: auto;
	overflow: hidden auto;
}

.---speech-to-text-mode:not(.---speech-has-text) .-foot-note-text {
	opacity: 0;
}

.-speech-transcript-token {
	display: inline;
	animation: speech-transcript-in 0.28s ease both;
}

.-speech-transcript-interim {
	opacity: 0.72;
	color: var(--app-accent);
	transition: opacity 0.18s, color 0.18s;
}

.-speech-transcript-interim::after {
	content: " ...";
	color: #FF9800;
	letter-spacing: 0.3125vw;
}

.-redact-key-row {
	min-height: 15.625vw;
	padding: 0 3.125vw;
	font-family: "Nunito";
	clip-path: var(--squircle-small);
	background: rgb(255 255 255 / 8%);
	justify-content: space-between;
}

.-redact-key-pin {
	font-family: "Slackey";
	font-size: 5vw;
	letter-spacing: 0.625vw;
	color: #ffac8b;
	text-shadow: 0.15625vw 0.15625vw 0.46875vw #000;
}

.-redact-key-copy {
	width: 9.375vw;
	height: 9.375vw;
	display: flex;
	min-width: 9.375vw;
	align-items: center;
	border-radius: 50%;
	justify-content: center;
	background: var(--dimmer);
}

.-redact-key-copy .material-symbols-rounded {
	font-size: 5.625vw;
	color: #88d6ff;
}

.-notes-rail {
	width: 100%;
	display: flex;
	gap: 3.125vw;
	overflow: auto hidden;
	scroll-behavior: smooth;
	scroll-snap-type: x mandatory;
	overscroll-behavior-inline: contain;
}

.-key-note-preview {
	display: -webkit-box;
	line-height: 5vw;
	font-size: 3.75vw;
	overflow: hidden;
	font-family: "Nunito";
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	white-space: normal;
	clip-path: var(--squircle);
	background: var(--surface);
	border: 3.125vw solid #0000;
}

.-range-attachment {
	text-decoration-line: underline;
	text-decoration-style: dotted;
	text-underline-offset: 0.625vw;
	text-decoration-color: var(--app-accent);
}

.-first-letter-style::first-letter {
	color: var(--first-letter-color, inherit);
	font-family: var(--first-letter-family, inherit);
	font-size: var(--first-letter-size, inherit);
	font-weight: var(--first-letter-weight, inherit);
	font-style: var(--first-letter-font-style, inherit);
	font-variant-caps: var(--first-letter-variant, normal);
	text-transform: var(--first-letter-transform, none);
	letter-spacing: var(--first-letter-letter-spacing, normal);
	word-spacing: var(--first-letter-word-spacing, normal);
	line-height: var(--first-letter-line-height, normal);
	background: var(--first-letter-background, transparent);
	text-shadow: var(--first-letter-text-shadow, none);
	text-decoration-line: var(--first-letter-decoration-line, none);
	text-decoration-style: var(--first-letter-decoration-style, solid);
	text-decoration-color: var(--first-letter-decoration-color, currentColor);
	text-underline-offset: var(--first-letter-underline-offset, auto);
}

.-range-attachment.---range-attachment-active {
	background: rgb(58 239 197 / 10%);
}

.-redact-revealed-text {
	font-family: "Nunito";
	white-space: pre-wrap;
}

.-notepad-send-bubble {
	z-index: 50000;
	width: 3.125vw;
	height: 3.125vw;
	position: fixed;
	border-radius: 50%;
	pointer-events: none;
	background: var(--bubble-color, #88d6ff);
	transform: translate(-50%, -50%) scale(.25);
	animation: notepad-send-burst .72s cubic-bezier(.16,.8,.2,1) forwards;
}

.-note-lock-badge {
	display: flex;
	width: 6.25vw;
	height: 6.25vw;
	align-items: center;
	border-radius: 50%;
	justify-content: center;
	color: #88d6ff;
	background: var(--dimmer);
}

.-anchor-target-flash {
	animation: anchor-note-flash .9s ease-out;
}

.-hivergo-swatch {
	width: 81.25vw;
	display: flex;
	gap: 2.34375vw;
	flex-flow: column;
}

.-hivergo-swatch-head {
	display: flex;
	height: 9.375vw;
	gap: 1.5625vw;
	align-items: center;
	justify-content: space-between;
}

.-hivergo-swatch-value {
	display: flex;
	height: 9.375vw;
	padding: 0 3.125vw;
	align-items: center;
	font-size: 3.4375vw;
	font-family: "Delius";
	clip-path: var(--squircle-small);
	background: rgb(255 255 255 / 10%);
}

.-hivergo-swatch-slider {
	width: 100%;
	height: 9.375vw;
	margin: 0;
	appearance: none;
	background: transparent;
}

.-hivergo-swatch-slider::-webkit-slider-runnable-track {
	height: 9.375vw;
	border-radius: 6.25vw;
	background: var(--swatch-track);
}

.-hivergo-swatch-slider::-webkit-slider-thumb {
	width: 7.5vw;
	height: 7.5vw;
	margin-top: 0.9375vw;
	appearance: none;
	border-radius: 50%;
	border: 0.9375vw solid #fff;
	background: var(--swatch-color, #fff);
	filter: drop-shadow(0 0 0.9375vw #000);
}

.-hivergo-swatch-opacity {
	width: 100%;
	display: flex;
	height: 9.375vw;
	align-items: center;
}

.-vibe-reactors-core,
.-vibe-dial-core,
.-face-scrub-core {
	top: 50%;
	left: 50%;
	z-index: 8;
	min-width: 18.75vw;
	position: absolute;
	transform: translate(-50%, -50%);
}

.-face-scrub-core {
	pointer-events: none;
}

.-face-scrub-core .-vibes-icon .material-symbols-rounded {
	color: var(--app-accent);
}

.-vibe-dial.-face-scrub-dial .-vibe-reactor-name {
	opacity: 1;
}

.-vibe-dial.-vibe-reactors-dial .-vibe-candidate,
.-vibe-dial.-face-scrub-dial .-vibe-candidate {
	width: 18.75vw;
	overflow: visible;
	background: #0000;
	border: 1.5625vw solid var(--dimmer);
}

.-prime-badge {
	z-index: 6;
	display: grid;
	width: 10vw;
	height: auto;
	right: 0;
	bottom: 0;
	position: absolute;
	aspect-ratio: 1/1;
	place-items: center;
	border-radius: 50%;
	color: #fff;
	background: var(--app-accent);
	border: 1.5625vw solid var(--app-theme);
}

.-prime-badge span {
	z-index: 2;
	width: 100%;
	height: 100%;
	display: flex;
	align-items: center;
	border-radius: inherit;
	justify-content: center;
	font-size: 5vw;
	background: #0000;
	color: inherit;
}

.-prime-badge.---prime-inactive {
	color: var(--app-muted);
	background: var(--field-surface);
}

.-prime-none {
	--prime-badge-color: var(--no-prime);
}

.-prime-nectar {
	--prime-badge-color: var(--prime-nectar);
}

.-prime-honey {
	--prime-badge-color: var(--prime-honey);
}

.-prime-sky {
	--prime-badge-color: var(--prime-sky);
}

.-punch-hole-text {
	display: flex;
	height: 8.75vw;
	color: #cdcdcd;
	position: relative;
	font-size: 3.125vw;
	align-items: center;
	justify-content: center;
	margin: auto 0 auto 1.5625vw;
}
