.hc-subpage-wrap {
width: 100%;
max-width: 1200px;
margin: 0 auto;
padding: 40px 24px 80px;
color: #f0f0f5;
font-family: ‘Inter’, system-ui, sans-serif;
box-sizing: border-box;
}
.hc-subpage-hero {
text-align: center;
margin-bottom: 56px;
padding-bottom: 32px;
border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
.hc-kicker {
display: inline-flex;
align-items: center;
gap: 8px;
background: rgba(181, 137, 255, 0.08);
border: 1px solid rgba(181, 137, 255, 0.25);
border-radius: 999px;
padding: 5px 14px;
font-family: ‘Consolas’, monospace;
font-size: 11.5px;
letter-spacing: 0.16em;
color: #b589ff;
text-transform: uppercase;
margin-bottom: 16px;
}
.hc-kicker-dot {
width: 6px;
height: 6px;
border-radius: 50%;
background: #00ff88;
box-shadow: 0 0 6px #00ff88;
}
.hc-subpage-h1 {
font-size: clamp(28px, 4.5vw, 46px);
font-weight: 800;
line-height: 1.15;
letter-spacing: -0.02em;
color: #ffffff;
margin: 0 0 16px;
}
.hc-subpage-desc {
font-size: clamp(15px, 1.8vw, 17px);
line-height: 1.6;
color: #9090a8;
max-width: 720px;
margin: 0 auto;
}
.hc-cat-section {
margin-bottom: 60px;
}
.hc-card {
background: #0e0e14;
border: 1px solid rgba(255, 255, 255, 0.08);
border-radius: 12px;
padding: 32px;
margin-bottom: 24px;
transition: transform 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}
.hc-card:hover {
border-color: rgba(0, 240, 255, 0.3);
box-shadow: 0 8px 30px rgba(0, 0, 0, 0.6), 0 0 15px rgba(0, 240, 255, 0.1);
}
.hc-feature-list {
list-style: none;
padding: 0;
margin: 0 0 20px;
display: flex;
flex-direction: column;
gap: 8px;
}
.hc-feature-list li {
font-size: 14px;
color: #c0c0d4;
display: flex;
align-items: flex-start;
gap: 8px;
line-height: 1.6;
}
.hc-feature-list li::before {
content: ‘▸’;
color: #00f0ff;
font-size: 12px;
margin-top: 1px;
}
.hc-legal-link {
color: #00f0ff;
text-decoration: underline;
font-weight: 600;
transition: color 0.15s ease;
}
.hc-legal-link:hover {
color: #ffffff;
}
.hc-badge-legal {
display: inline-block;
background: rgba(0, 240, 255, 0.1);
border: 1px solid rgba(0, 240, 255, 0.3);
border-radius: 4px;
padding: 2px 8px;
font-family: ‘Consolas’, monospace;
font-size: 11px;
color: #00f0ff;
margin-bottom: 12px;
}
@media (max-width: 768px) {
.hc-subpage-wrap { padding: 30px 16px 60px; }
.hc-card { padding: 22px 18px; }
}
LEGAL // DATA & PRIVACY
Privacy Policy
How HOLICEDE collects, processes, and protects information across our websites, applications, and tools. Last updated: September 29, 2026.
01 // Overview & Data Minimization
HOLICEDE is an independent software development laboratory based in Canada. We build custom web applications, entertainment software, and digital tools. We practice strict data minimization: we collect and retain only what is technically necessary to operate our applications, process authorized purchases, and deliver requested features.
We do not sell, rent, or monetize your personal information. We do not engage in cross-site behavioral tracking or third-party ad profiling.
02 // Browser-Only Calculators & Utilities
Browser utilities such as the Z-Offset 3D Print Cost Calculator and Lords Mobile Tools execute entirely client-side in your web browser. Input parameters, slicing metrics, and calculation data remain in your browser session and are never transmitted to or stored on our servers.
03 // Visitor Parking System (SCVisitor)
When building visitors register a vehicle via the SCVisitor application, the system collects:
- Guest Name
- Unit Number visited
- Vehicle License Plate
- Visitor Email Address (used solely to transmit automated parking permit confirmations)
Automated Deletion / Retention: Registration records are stored temporarily to issue and verify active parking authorization. An automated scheduled database routine permanently purges parking records 24 hours after permit expiration.
04 // YouTube API Services & YTKara Application
HOLICEDE’s karaoke entertainment application, YTKara (https://holicede.com/karaoke/), utilizes YouTube API Services to facilitate karaoke song discovery and playback in private party sessions.
A. Information Retrieved from YouTube API Services
When a licensed party host or joined guest submits an intentional search query or provides a direct YouTube link, YTKara may query YouTube API Services (specifically youtube.search.list and youtube.videos.list) to retrieve public metadata, including:
- YouTube Video IDs
- Video Titles and Track Names
- Channel / Artist Names
- Video Thumbnail URLs
- Embeddability and availability status
B. How YouTube Information is Used
Retrieved YouTube metadata is used exclusively to:
- Present search results so party participants can select songs
- Display active track and singer names in the shared queue and living room TV Stage HUD
- Stream and display selected karaoke tracks strictly via the official YouTube IFrame Embedded Player
C. Explicit Prohibitions & Non-Storage Guarantees
- No Video Downloads: YTKara does not download, rip, or record YouTube video or audio streams.
- No Rehosting / Mirroring: YTKara does not rehost, store, or redistribute YouTube video files. All video playback occurs directly from YouTube’s servers via the official YouTube embedded player.
- No Video Modification: YTKara does not alter, trim, inject ads into, or modify YouTube video content or underlying streams.
- No Scraping: YTKara interacts with YouTube solely through authorized, server-side YouTube API Services endpoints.
- No Quota Evasion: YTKara does not rotate keys or circumvent API quota restrictions.
D. Server-Side Caching Practices & 30-Day API Data Refresh/Deletion Policy
To optimize application performance, conserve upstream API bandwidth, and prevent redundant API queries, YTKara temporarily caches normalized search query results and public video metadata in a secured database table (ytkara_v2_search_cache). This cache stores only publicly available YouTube metadata (video IDs, titles, channel names, thumbnail URLs). It does not contain personal user data.
API Metadata Refresh & Deletion Lifecycle: Cached YouTube API metadata is temporary. In accordance with YouTube API Services policies, YTKara refreshes or deletes stored YouTube API resource metadata well within 30 days of retrieval. Specifically: (i) search result cache entries are served for a maximum freshness window of 7 days after retrieval and are then permanently deleted by a scheduled daily server-side maintenance job (each cache row carries an immutable fetched_at timestamp that is only renewed by a genuine YouTube API refresh — cache hits can never extend retention); (ii) karaoke queue records containing YouTube metadata are deleted no later than 14 days after creation; (iii) YouTube-derived fields in played-song history (video ID, title) are erased no later than 14 days after playback, retaining only the user-provided singer name and play timestamp; and (iv) demo catalog validation metadata is refreshed on a 24-hour lifecycle. No YouTube API metadata is stored longer than 30 calendar days without a fresh API retrieval — in practice, far less.
E. Party Session Expiration & Data Deletion
Private party rooms in YTKara are ephemeral sessions. Each room expires automatically after 8 hours or immediately when ended by the host. When a party room ends:
- Guest participant tokens and access permissions are immediately revoked
- The session playback state is terminated
- Queue records containing YouTube metadata are permanently deleted no later than 14 days after creation by the daily maintenance job
F. Cookies, Device Storage & Similar Technologies
YTKara stores, accesses, and collects information directly or indirectly on or from users’ devices and browsers — including by placing, accessing, or recognizing cookies and similar technologies — and permits the third parties listed below to do so when their embedded services run in your browser. The complete inventory used by YTKara:
- PHPSESSID (first-party cookie, HttpOnly, Secure, SameSite=Lax, browser-session lifetime): PHP session cookie used for CSRF security tokens on the karaoke API.
- ytkara_v2_guest (first-party cookie, HttpOnly, Secure, SameSite=Lax, up to 8 hours): authenticates a joined guest to a party room; stores only a random token, never credentials.
- ytkara_consent_v1 (first-party cookie + localStorage entry, 1 year): records your agreement to this Privacy Policy and the applicable Terms so the consent notice is not shown again.
- ytkara_singer_name (first-party localStorage entry, until cleared): remembers your singer display name on that device for faster rejoining.
- wordpress_logged_in_* / woocommerce_* (first-party Secure cookies): HOLICEDE account sign-in and checkout session for licensed hosts.
- YouTube IFrame Player API (third-party, Google): the embedded karaoke player on the TV Stage and Demo pages loads from youtube.com and may set or read Google/YouTube cookies and similar technologies under the Google Privacy Policy. YTKara loads this player only after you agree to this policy.
- i.ytimg.com (third-party, Google): song thumbnail images are served directly to your browser by YouTube’s servers.
- Google Fonts (fonts.googleapis.com / fonts.gstatic.com, third-party): typeface delivery; Google may log the request.
- cdnjs.cloudflare.com (third-party, Cloudflare): serves the QR-code library used to display room join codes.
Before using YTKara’s features, users are presented with a consent notice referencing this Privacy Policy and the Terms of Use, and agreement is persisted via the ytkara_consent_v1 mechanism described above. You can remove all YTKara first-party storage at any time via your browser’s “clear site data” controls. A karaoke-application-specific version of these disclosures is also published inside YTKara at https://holicede.com/karaoke/privacy.
G. Third-Party Terms & Privacy Policies
By using YouTube-powered search and playback features in YTKara, users agree to be bound by the YouTube Terms of Service.
For information regarding how Google collects and processes data, please review the Google Privacy Policy.
05 // Commercial Purchases & Payments
Customers purchasing commercial software licenses (such as YTKara Private — Lifetime Access at C$59.99 CAD) complete checkout via Stripe / WooCommerce.
HOLICEDE does not collect, receive, or store credit card numbers or payment card data. All payment processing is handled directly by Stripe’s certified PCI-compliant infrastructure. Customer email addresses are used solely for account authentication, digital software entitlement activation, and order receipts.
06 // Inquiries & Data Subject Requests
If you have questions about this Privacy Policy or wish to request information regarding your account data, please contact our administrative team at:
Email: admin@holicede.com
