{"id":1218,"date":"2026-09-04T10:40:17","date_gmt":"2026-09-04T03:40:17","guid":{"rendered":"https:\/\/grownoola.com\/id\/?page_id=1218"},"modified":"2026-11-03T05:59:05","modified_gmt":"2026-11-02T22:59:05","slug":"procrastination-decoded","status":"publish","type":"page","link":"https:\/\/grownoola.com\/id\/procrastination-decoded\/","title":{"rendered":"Kenapa Kamu Sering Menunda? Kenali Pola Prokrastinasi yang Menahanmu."},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"1218\" class=\"elementor elementor-1218\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-33139f9a e-flex e-con-boxed e-con e-parent\" data-id=\"33139f9a\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-89c9c5f7 elementor-widget elementor-widget-html\" data-id=\"89c9c5f7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!doctype html>\r\n<html lang=\"id\">\r\n<head>\r\n<meta charset=\"utf-8\">\r\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1, viewport-fit=cover\">\r\n<title>Tes Prokrastinasi: Kenapa Kamu Sering Menunda? | Grownoola<\/title>\r\n<meta name=\"robots\" content=\"index, follow\">\r\n<meta name=\"description\" content=\"Cari tahu kenapa kamu sering menunda lewat tes prokrastinasi singkat. Kenali pola yang menahanmu dan temukan langkah yang lebih sesuai.\">\r\n<meta name=\"theme-color\" content=\"#fffdf9\">\r\n<link rel=\"icon\" type=\"image\/webp\" href=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/001_procrastination-decoded-icon-400.webp\">\r\n<link rel=\"apple-touch-icon\" href=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/001_procrastination-decoded-icon-400.webp\">\r\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\r\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\r\n<link rel=\"stylesheet\" href=\"https:\/\/fonts.googleapis.com\/css2?family=Kalam:wght@700&family=Plus+Jakarta+Sans:wght@200..800&display=swap\">\r\n<style>\r\n\/* ===== embed-shield: browser defaults the WordPress theme \/ Elementor change ===== *\/\r\n:root:not(#pd-embed) body { font-weight: 400; letter-spacing: normal; }\r\n:root:not(#pd-embed) :where(.site-header, #konten, .site-footer, #quiz, .skip-link) :is(h1, h2, h3, h4, h5, h6) {\r\n  font-family: inherit; font-weight: bold; letter-spacing: inherit; line-height: inherit; text-transform: none;\r\n}\r\n:root:not(#pd-embed) :where(.site-header, #konten, .site-footer, #quiz) h1 { font-size: 2em; }\r\n:root:not(#pd-embed) :where(.site-header, #konten, .site-footer, #quiz) h2 { font-size: 1.5em; }\r\n:root:not(#pd-embed) :where(.site-header, #konten, .site-footer, #quiz) h3 { font-size: 1.17em; }\r\n:root:not(#pd-embed) :where(.site-header, #konten, .site-footer, #quiz) h4 { font-size: 1em; }\r\n:root:not(#pd-embed) :where(.site-header, #konten, .site-footer, #quiz) h5 { font-size: .83em; }\r\n:root:not(#pd-embed) :where(.site-header, #konten, .site-footer, #quiz) h6 { font-size: .67em; }\r\n:root:not(#pd-embed) :where(.site-header, #konten, .site-footer, #quiz, .skip-link) a:where(:any-link) { text-decoration: underline; }\r\n\r\n\/* ===== fonts ===== *\/\r\n\/* Plus Jakarta Sans 200-800 and Kalam 700 load from Google Fonts (see <link> above); the relative\r\n   local .ttf font files do not exist on grownoola.com, so they 404ed inside WordPress.\r\n   Google's subsets leave out \"\u2192\" (U+2192), so that one glyph is embedded here, cut from the same font file. *\/\r\n@font-face {\r\n  font-family: \"Plus Jakarta Sans\";\r\n  src: url(data:font\/woff2;base64,d09GMgABAAAAAAOIABMAAAAACCAAAAMiAAISLQAAAAAAAAAAAAAAAAAAAAAAAAAAGyAcKj9IVkFSTD9NVkFSRgZgP1NUQVSBHAA0L1wRCAo4TDBoATYCJAMICwYABCAFhhoHIAwHG+YGERWkmZD8SLBtUa+\/CCHs2rCycyd1hCSdPP+w5ue5byb5E1jGMqNkspVkW8cgt3pBFYCyzWZlWhjrMoka8OL5g1AJAP+fe8d\/rQbF69bWXF8adaI4\/dSgNUGyAH8Jfc\/G1jDCdIMFgLsCBfPWb689Rs5MTiYnSTsVDC21XA4+9OiTdVqYTADB0KY2V8w406++4OZrLSSJtmYuDq2f+ZkKK7G1qLe9Dfa3P0Eh35wqgCoCOmXpTTffeB1y++WX3QyCsWBpp1hT\/j78u6+tI\/KEHvVQnY6jcJKca\/McKIyVCk4+7qjjvL3qqX+gnT5ZTW9mLkagFtZXWKkR0SnM1WFjddtll9+chituvuDqjMRMS21udwc73tkuF0jrYwTSy9ZoUCpPUK8jkKn8mtHV6bQPOPewWZnciMoYW4UGczUCRrZWoi0Lq56aTNjoOpCHmWOuKd05e\/AxeYJmJaRJi49Jj2xN+szLyhT5lXTU6WRAvU6GNCsRmUzMAAVaFMaYDWgB1bXTLlt16egUJ1+YGfZYvUVttPKyv37a6q+\/r\/p8tvooIAhYrMBisNkdZabld3gbbHx\/po2XLBmv\/fbbtf\/8M326b+68YzjJ77\/\/05r388\/z7p42GnSj43ff\/fiNNur3nerHsujL4bD7y1crV351N0HN3uacZ9684bwZe\/\/WNc2XsPalrRfChheePnty0WRm7\/j2OfQVCB+Uupf832dDRByy6g5716d2FpSLTTlbTwBAI5hljUbaAd4nI1Z7H2W6z9E42K9o7Zjd0bNnrgz0bZtnE9IYZw1ac7MOPcP8jL7pPseUcf5FZ2Z1GOhqIYZm10qMjGvH2caGRd23B+Ff2KaFpFQYWbIvGX32tackmVKXCqRkRwPJlQtwdN60m45CC4QkCQsxlK183rR9VcVyHPw8ggv4D\/W8QKWRDZoULN\/qpvLmp6WUK9SL7f1qtmpv6pLtafgq1Za8R11Y2xAQkfPSNBDAk7dCrpkrFx5yuZP+zvzgh7WHzinZLHTNVv4uM366q5HRkFqofEATpJ7Nt+DTIA4TPRHmlzO598X2UQ==) format(\"woff2\");\r\n  font-style: normal;\r\n  font-weight: 200 800;\r\n  font-display: swap;\r\n  unicode-range: U+2192;\r\n}\r\n\r\n\/* ===== base.css ===== *\/\r\n\/* #ProcrastinationDecoded homepage v5\r\n   Part 1: hero + header + quiz styles carried over from the approved v2\/v4 baseline.\r\n   Asset paths are relative to this file (homepage-v5\/). *\/\r\n\/* =========================================================\r\n   Tokens\r\n   ========================================================= *\/\r\n:root {\r\n  --ivory: #fbf8f1;\r\n  --ink: #131845;\r\n  --ink-soft: #2a2e58;\r\n  --body: #585d8e;\r\n  --violet: #6b3df0;\r\n  --violet-2: #9a5cff;\r\n  --lavender: #ece8ff;\r\n  --lavender-2: #e4e1fb;\r\n  --amber: #f39f0c;\r\n  --amber-2: #f8bf30;\r\n  --ray: #f6b51e;\r\n  --focus: #6b3df0;\r\n\r\n  --font-sans: \"Plus Jakarta Sans\", \"Segoe UI\", system-ui, -apple-system, sans-serif;\r\n  --font-hand: \"Kalam\", \"Segoe Print\", \"Comic Sans MS\", cursive;\r\n  --font-emoji: \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Noto Color Emoji\", sans-serif;\r\n\r\n  --gutter: clamp(16px, 5vw, 32px);\r\n  --ease-out: cubic-bezier(.22, 1, .36, 1);\r\n}\r\n\r\n\/* =========================================================\r\n   Base\r\n   ========================================================= *\/\r\n:root:not(#pd-embed) *, :root:not(#pd-embed) *::before, :root:not(#pd-embed) *::after { box-sizing: border-box; }\r\nhtml:root:not(#pd-embed) { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }\r\n:root:not(#pd-embed) body {\r\n  margin: 0;\r\n  min-width: 320px;\r\n  background: var(--ivory);\r\n  color: var(--ink);\r\n  font-family: var(--font-sans);\r\n  font-size: 16px;\r\n  line-height: 1.5;\r\n  -webkit-font-smoothing: antialiased;\r\n  overflow-x: hidden;\r\n}\r\n:root:not(#pd-embed) img { display: block; max-width: 100%; height: auto; }\r\n:root:not(#pd-embed) a { color: inherit; }\r\n:root:not(#pd-embed) ul { margin: 0; padding: 0; list-style: none; }\r\n:root:not(#pd-embed) :focus-visible { outline: 3px solid var(--focus); outline-offset: 3px; }\r\n\r\n:root:not(#pd-embed) .visually-hidden {\r\n  position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;\r\n  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;\r\n}\r\n:root:not(#pd-embed) .skip-link {\r\n  position: absolute; left: 12px; top: -60px; z-index: 100;\r\n  padding: 10px 16px; border-radius: 12px; background: var(--ink); color: #fff;\r\n  font-weight: 700; text-decoration: none; transition: top .2s var(--ease-out);\r\n}\r\n:root:not(#pd-embed) .skip-link:focus { top: 12px; }\r\n\r\n:root:not(#pd-embed) .emoji { font-family: var(--font-emoji); font-weight: 400; letter-spacing: 0; }\r\n\r\n\/* Tight crop of assets that ship with transparent padding.\r\n   The box takes the visible artwork's aspect ratio; the image is shifted so\r\n   its padding falls outside the box. Values come from the alpha bounding box. *\/\r\n:root:not(#pd-embed) .crop { position: relative; display: block; aspect-ratio: var(--vw) \/ var(--vh); }\r\n:root:not(#pd-embed) .crop img {\r\n  position: absolute; max-width: none;\r\n  width: calc(var(--fw) \/ var(--vw) * 100%);\r\n  left: calc(var(--x) \/ var(--vw) * -100%);\r\n  top: calc(var(--y) \/ var(--vh) * -100%);\r\n}\r\n:root:not(#pd-embed) .crop--logo   { --fw: 2135; --x: 168; --y: 170; --vw: 1836; --vh: 402; }\r\n:root:not(#pd-embed) .crop--lockup { --fw: 2149; --x: 174; --y: 166; --vw: 1808; --vh: 412; }\r\n\r\n\/* =========================================================\r\n   Stage (background + all hero layers)\r\n   ========================================================= *\/\r\n:root:not(#pd-embed) .stage {\r\n  position: relative;\r\n  isolation: isolate;\r\n  overflow-x: clip;\r\n  min-height: 100vh;\r\n  min-height: 100svh;\r\n  padding-bottom: clamp(12px, 4vw, 40px);\r\n  background:\r\n    url(\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/mobile-background-homepage-8780665677.webp\") center top \/ cover no-repeat,\r\n    var(--ivory);\r\n}\r\n:root:not(#pd-embed) .ambient { position: absolute; inset: 0; z-index: -1; pointer-events: none; }\r\n:root:not(#pd-embed) .ambient img { width: 100%; height: 100%; object-fit: fill; }\r\n\r\n\/* Mobile hero: keep the soft ambient composition, without the heart ornament. *\/\r\n@media (max-width: 719px) {\r\n  :root:not(#pd-embed) .ambient img {\r\n    -webkit-mask-image: radial-gradient(ellipse 14% 8% at 91% 8%, transparent 0 70%, #000 86%);\r\n    mask-image: radial-gradient(ellipse 14% 8% at 91% 8%, transparent 0 70%, #000 86%);\r\n  }\r\n  :root:not(#pd-embed) .lockup-ray { display: none; }\r\n}\r\n\/* Tablet retains the ambient background but removes the hero's heart and lockup rays. *\/\r\n@media (min-width: 720px) and (max-width: 1179px) {\r\n  :root:not(#pd-embed) .ambient img {\r\n    -webkit-mask-image: radial-gradient(ellipse 20% 18% at 90% 15%, transparent 0 72%, #000 88%);\r\n    mask-image: radial-gradient(ellipse 20% 18% at 90% 15%, transparent 0 72%, #000 88%);\r\n  }\r\n  :root:not(#pd-embed) .lockup-ray { display: none; }\r\n}\r\n\r\n\/* =========================================================\r\n   Header \/ navigation (mobile first)\r\n   ========================================================= *\/\r\n:root:not(#pd-embed) .site-header {\r\n  position: relative; z-index: 30;\r\n  padding: clamp(14px, 4.5vw, 24px) var(--gutter) 0;\r\n}\r\n:root:not(#pd-embed) .nav-shell {\r\n  position: relative;\r\n  display: flex; align-items: center; justify-content: space-between; gap: 16px;\r\n  max-width: 1080px; margin-inline: auto;\r\n}\r\n:root:not(#pd-embed) .brand { display: block; flex: none; border-radius: 10px; text-decoration: none; }\r\n:root:not(#pd-embed) .brand .crop { height: clamp(24px, 6.4vw, 30px); }\r\n\r\n:root:not(#pd-embed) .menu-toggle {\r\n  display: grid; place-items: center;\r\n  width: 48px; height: 48px; flex: none;\r\n  border: 0; border-radius: 50%;\r\n  background: var(--lavender-2);\r\n  color: var(--ink);\r\n  cursor: pointer;\r\n  box-shadow: 0 6px 16px -8px rgba(80, 66, 170, .45);\r\n  transition: background-color .2s, transform .2s var(--ease-out);\r\n}\r\n:root:not(#pd-embed) .menu-toggle:hover { background: #dcd7fa; }\r\n:root:not(#pd-embed) .menu-toggle:active { transform: scale(.96); }\r\n:root:not(#pd-embed) .menu-toggle__bars { position: relative; width: 20px; height: 14px; }\r\n:root:not(#pd-embed) .menu-toggle__bars span {\r\n  position: absolute; left: 0; width: 100%; height: 2.5px; border-radius: 2px;\r\n  background: currentColor;\r\n  transition: transform .25s var(--ease-out), opacity .2s, top .25s var(--ease-out);\r\n}\r\n:root:not(#pd-embed) .menu-toggle__bars span:nth-child(1) { top: 0; }\r\n:root:not(#pd-embed) .menu-toggle__bars span:nth-child(2) { top: 5.75px; }\r\n:root:not(#pd-embed) .menu-toggle__bars span:nth-child(3) { top: 11.5px; }\r\n:root:not(#pd-embed) .menu-toggle[aria-expanded=\"true\"] .menu-toggle__bars span:nth-child(1) { top: 5.75px; transform: rotate(45deg); }\r\n:root:not(#pd-embed) .menu-toggle[aria-expanded=\"true\"] .menu-toggle__bars span:nth-child(2) { opacity: 0; }\r\n:root:not(#pd-embed) .menu-toggle[aria-expanded=\"true\"] .menu-toggle__bars span:nth-child(3) { top: 5.75px; transform: rotate(-45deg); }\r\n\r\n\/* Dropdown panel on small screens *\/\r\n:root:not(#pd-embed) .site-nav {\r\n  position: absolute; top: calc(100% + 12px); right: 0;\r\n  width: min(300px, calc(100vw - 2 * var(--gutter)));\r\n  padding: 10px;\r\n  border: 1px solid rgba(226, 222, 247, .9);\r\n  border-radius: 22px;\r\n  background: rgba(255, 255, 255, .97);\r\n  box-shadow: 0 24px 48px -18px rgba(62, 48, 140, .35);\r\n  opacity: 0; visibility: hidden; transform: translateY(-8px);\r\n  transition: opacity .2s, transform .25s var(--ease-out), visibility 0s linear .25s;\r\n}\r\n:root:not(#pd-embed) .site-nav.is-open {\r\n  opacity: 1; visibility: visible; transform: none;\r\n  transition: opacity .2s, transform .25s var(--ease-out), visibility 0s;\r\n}\r\n:root:not(#pd-embed) .nav-links { display: grid; gap: 2px; }\r\n:root:not(#pd-embed) .nav-links a, :root:not(#pd-embed) .nav-login {\r\n  display: flex; align-items: center;\r\n  min-height: 48px; padding: 0 16px;\r\n  border-radius: 14px;\r\n  font-weight: 500; font-size: 16px; color: var(--ink-soft);\r\n  text-decoration: none;\r\n  transition: background-color .2s, color .2s;\r\n}\r\n:root:not(#pd-embed) .nav-links a:hover { background: #f4f2ff; color: var(--ink); }\r\n:root:not(#pd-embed) .nav-links a[aria-current=\"page\"] { background: var(--lavender); color: var(--ink); font-weight: 700; }\r\n:root:not(#pd-embed) .nav-login {\r\n  justify-content: center; margin-top: 8px;\r\n  border: 1.5px solid #e2def2; border-radius: 999px;\r\n  font-weight: 700; color: var(--ink);\r\n  background: #fff;\r\n}\r\n:root:not(#pd-embed) .nav-login:hover { border-color: #cfc8f3; background: #faf9ff; }\r\n\r\n\/* =========================================================\r\n   Hero copy (mobile first)\r\n   ========================================================= *\/\r\n:root:not(#pd-embed) .hero {\r\n  position: relative; z-index: 2;\r\n  padding: clamp(30px, 9vw, 52px) var(--gutter) 0;\r\n  text-align: center;\r\n}\r\n:root:not(#pd-embed) .hero-copy {\r\n  display: flex; flex-direction: column; align-items: center;\r\n  max-width: 44rem; margin-inline: auto;\r\n}\r\n:root:not(#pd-embed) .lockup { position: relative; margin: 0; width: clamp(188px, 50vw, 250px); }\r\n:root:not(#pd-embed) .lockup-ray { position: absolute; width: 17%; color: var(--ray); pointer-events: none; }\r\n:root:not(#pd-embed) .lockup-ray--left { left: -22%; top: 18%; }\r\n:root:not(#pd-embed) .lockup-ray--right { right: -15%; top: 26%; width: 10%; transform: scaleX(-1) rotate(8deg); }\r\n\r\n:root:not(#pd-embed) .hero-title {\r\n  margin: clamp(14px, 4vw, 22px) 0 0;\r\n  font-weight: 800;\r\n  font-size: clamp(21px, 6.7vw, 54px);\r\n  line-height: 1.1;\r\n  letter-spacing: -0.04em;\r\n  color: var(--ink);\r\n}\r\n:root:not(#pd-embed) .hero-title .line { display: block; }\r\n:root:not(#pd-embed) .hero-title .emoji { font-size: .76em; margin-left: .1em; vertical-align: .04em; }\r\n:root:not(#pd-embed) .accent-violet, :root:not(#pd-embed) .accent-amber {\r\n  -webkit-background-clip: text; background-clip: text;\r\n  -webkit-text-fill-color: transparent; color: transparent;\r\n  \/* keep descenders \/ italics inside the painted area *\/\r\n  padding-bottom: .06em;\r\n}\r\n:root:not(#pd-embed) .hero-title .stop { margin-left: -.045em; }\r\n:root:not(#pd-embed) .accent-violet { background-image: linear-gradient(100deg, #6a36ee 0%, #8a4dff 55%, #a66eff 100%); }\r\n:root:not(#pd-embed) .accent-amber  { background-image: linear-gradient(100deg, #f39a0b 0%, #f8b92a 45%, #f6a714 75%, #ef8d0a 100%); }\r\n\r\n:root:not(#pd-embed) .hero-lead {\r\n  margin: clamp(14px, 3.8vw, 22px) 0 0;\r\n  max-width: 34em;\r\n  font-size: clamp(16px, 4.1vw, 18px);\r\n  line-height: 1.6;\r\n  color: var(--body);\r\n  text-wrap: pretty;\r\n}\r\n\r\n:root:not(#pd-embed) .cta {\r\n  display: inline-flex; align-items: center; justify-content: center; gap: clamp(8px, 2.6vw, 12px);\r\n  width: min(100%, 360px);\r\n  min-height: 58px;\r\n  margin-top: clamp(20px, 5.5vw, 30px);\r\n  padding: 0 clamp(16px, 5vw, 28px);\r\n  white-space: nowrap;\r\n  border: 1px solid rgba(232, 150, 8, .55);\r\n  border-radius: 999px;\r\n  background: linear-gradient(180deg, #ffd964 0%, #fcc53a 48%, #f7b51b 100%);\r\n  box-shadow:\r\n    inset 0 1.5px 0 rgba(255, 255, 255, .65),\r\n    inset 0 -3px 0 rgba(224, 135, 0, .28),\r\n    0 14px 30px -12px rgba(242, 160, 12, .75),\r\n    0 4px 10px -4px rgba(200, 120, 0, .35);\r\n  color: var(--ink);\r\n  font-weight: 700;\r\n  font-size: clamp(16px, 4.6vw, 20px);\r\n  letter-spacing: -0.01em;\r\n  text-decoration: none;\r\n  transition: transform .2s var(--ease-out), box-shadow .2s var(--ease-out), filter .2s;\r\n}\r\n:root:not(#pd-embed) .cta:hover {\r\n  transform: translateY(-2px);\r\n  filter: saturate(1.08) brightness(1.02);\r\n  box-shadow:\r\n    inset 0 1.5px 0 rgba(255, 255, 255, .7),\r\n    inset 0 -3px 0 rgba(224, 135, 0, .28),\r\n    0 20px 36px -12px rgba(242, 160, 12, .85),\r\n    0 6px 12px -4px rgba(200, 120, 0, .35);\r\n}\r\n:root:not(#pd-embed) .cta:active { transform: translateY(0) scale(.99); }\r\n:root:not(#pd-embed) .cta:focus-visible { outline-offset: 4px; }\r\n:root:not(#pd-embed) .cta__icon { width: 1.5em; height: 1.5em; flex: none; }\r\n\r\n\/* =========================================================\r\n   Mobile \/ tablet illustration\r\n   ========================================================= *\/\r\n:root:not(#pd-embed) .m-art {\r\n  position: relative; z-index: 2;\r\n  width: calc(100% + 2 * var(--gutter));\r\n  max-width: 620px;\r\n  margin: clamp(10px, 3.5vw, 26px) calc(-1 * var(--gutter)) 0;\r\n  aspect-ratio: 941 \/ 890;\r\n  text-align: left;\r\n}\r\n:root:not(#pd-embed) .m-art > * { position: absolute; }\r\n:root:not(#pd-embed) .m-art__hero   { left: 1.5%;  top: 1%;    width: 83.5%; }\r\n:root:not(#pd-embed) .m-art__niat   { left: 3%;    top: 4%;    width: 33.6%; }\r\n:root:not(#pd-embed) .m-art__mood   { left: .7%;   top: 38.8%; width: 28%;  }\r\n:root:not(#pd-embed) .m-art__besok  { left: 71.5%; top: 30%;   width: 30.4%; }\r\n:root:not(#pd-embed) .m-art__bubble { left: 4.5%;  top: 22.5%; width: 10.5%; }\r\n:root:not(#pd-embed) .m-art__paper--a { right: 1.5%; top: 21.5%; width: 11%; transform: rotate(18deg); opacity: .75; }\r\n:root:not(#pd-embed) .m-art__paper--b { left: 74%;   top: 79%;   width: 14%; transform: rotate(-14deg); opacity: .7; }\r\n:root:not(#pd-embed) .m-art__leaf { left: -30%; top: -9%; width: 40%; z-index: 3; transform: rotate(-30deg) scaleX(-1); opacity: .75; pointer-events: none; }\r\n:root:not(#pd-embed) .m-art__note {\r\n  right: 4%; top: 2.5%;\r\n  margin: 0;\r\n  font-family: var(--font-hand);\r\n  font-weight: 700;\r\n  font-size: clamp(12.5px, 3.45vw, 22px);\r\n  line-height: 1.02;\r\n  color: #25256e;\r\n  text-align: left;\r\n  transform: rotate(-11deg);\r\n  transform-origin: 100% 0;\r\n}\r\n:root:not(#pd-embed) .m-art__note span { display: block; }\r\n:root:not(#pd-embed) .m-art__note span:nth-child(2) { padding-left: .35em; }\r\n:root:not(#pd-embed) .m-art__note span:nth-child(3) { padding-left: .5em; }\r\n:root:not(#pd-embed) .m-art__note svg { display: block; width: 3.4em; margin: .15em 0 0 1.2em; color: var(--ray); }\r\n\r\n:root:not(#pd-embed) .float { animation: float 6s ease-in-out infinite; }\r\n:root:not(#pd-embed) .float--b { animation-duration: 7s; animation-delay: -2s; }\r\n:root:not(#pd-embed) .float--c { animation-duration: 6.5s; animation-delay: -4s; }\r\n@keyframes float {\r\n  0%, 100% { translate: 0 0; }\r\n  50% { translate: 0 -6px; }\r\n}\r\n\r\n\/* =========================================================\r\n   Foreground plants (shared by every breakpoint)\r\n   ========================================================= *\/\r\n:root:not(#pd-embed) .plants { position: absolute; inset: 0; z-index: 4; pointer-events: none; }\r\n:root:not(#pd-embed) .plant { position: absolute; bottom: 0; width: clamp(150px, 46vw, 380px); }\r\n:root:not(#pd-embed) .plant--left  { left: -9%; }\r\n:root:not(#pd-embed) .plant--right { right: -9%; }\r\n\r\n\r\n\/* Desktop-only art is hidden until the desktop breakpoint *\/\r\n:root:not(#pd-embed) .d-art, :root:not(#pd-embed) .d-glow { display: none; }\r\n\r\n\/* =========================================================\r\n   Tablet (768+): stacked composition, more air\r\n   ========================================================= *\/\r\n@media (min-width: 768px) {\r\n  :root:not(#pd-embed) .hero { padding-top: 56px; }\r\n  :root:not(#pd-embed) .hero-copy { max-width: 50rem; }\r\n  :root:not(#pd-embed) .hero-title { font-size: clamp(40px, 5.8vw, 56px); }\r\n  :root:not(#pd-embed) .hero-lead { font-size: 18px; }\r\n  :root:not(#pd-embed) .cta { width: auto; min-width: 380px; min-height: 64px; font-size: 20px; }\r\n  :root:not(#pd-embed) .m-art { width: 100%; margin: 28px auto 0; }\r\n  :root:not(#pd-embed) .plant { width: clamp(220px, 32vw, 380px); left: auto; right: auto; }\r\n  :root:not(#pd-embed) .plant--left { left: -40px; }\r\n  :root:not(#pd-embed) .plant--right { right: -40px; }\r\n  :root:not(#pd-embed) .m-art__leaf { display: none; }\r\n}\r\n\r\n\/* =========================================================\r\n   Wide screens: floating pill navigation\r\n   --u maps 1 px of the 1672\u00d7941 reference onto the viewport.\r\n   ========================================================= *\/\r\n@media (min-width: 1024px) {\r\n  :root {\r\n    --u: clamp(.64px, min(100vw \/ 1672, 100vh \/ 941), 1.4px);\r\n    --u: clamp(.64px, min(100vw \/ 1672, 100svh \/ 941), 1.4px);\r\n  }\r\n  :root:not(#pd-embed) .site-header { padding: calc(32 * var(--u)) var(--gutter) 0; }\r\n  :root:not(#pd-embed) .nav-shell {\r\n    width: fit-content;\r\n    min-width: calc(914 * var(--u));\r\n    max-width: 100%;\r\n    min-height: max(58px, calc(75 * var(--u)));\r\n    padding: 0 calc(30 * var(--u)) 0 calc(42 * var(--u));\r\n    gap: max(24px, calc(40 * var(--u)));\r\n    border: 1px solid rgba(236, 232, 250, .95);\r\n    border-radius: 999px;\r\n    background: rgba(255, 255, 255, .94);\r\n    box-shadow:\r\n      0 18px 44px -20px rgba(86, 70, 170, .28),\r\n      0 2px 6px -2px rgba(86, 70, 170, .08);\r\n    -webkit-backdrop-filter: blur(10px);\r\n    backdrop-filter: blur(10px);\r\n  }\r\n  :root:not(#pd-embed) .brand .crop { height: max(24px, calc(32 * var(--u))); }\r\n  :root:not(#pd-embed) .menu-toggle { display: none; }\r\n\r\n  :root:not(#pd-embed) .site-nav {\r\n    position: static; flex: 1;\r\n    display: flex; align-items: center;\r\n    width: auto; padding: 0; border: 0; border-radius: 0;\r\n    background: none; box-shadow: none;\r\n    opacity: 1; visibility: visible; transform: none; transition: none;\r\n  }\r\n  :root:not(#pd-embed) .nav-links {\r\n    display: flex; align-items: center; gap: calc(2 * var(--u));\r\n    margin: 0 calc(60 * var(--u)) 0 auto;\r\n  }\r\n  :root:not(#pd-embed) .nav-links a {\r\n    min-height: max(38px, calc(42 * var(--u)));\r\n    padding: 0 max(14px, calc(22 * var(--u)));\r\n    border-radius: 999px;\r\n    font-size: max(14px, calc(16 * var(--u)));\r\n  }\r\n  :root:not(#pd-embed) .nav-login {\r\n    margin: 0;\r\n    min-height: max(44px, calc(46 * var(--u)));\r\n    padding: 0 max(24px, calc(36 * var(--u)));\r\n    font-size: max(14px, calc(16 * var(--u)));\r\n  }\r\n}\r\n\r\n\/* =========================================================\r\n   Desktop (1180+): reference composition\r\n   ========================================================= *\/\r\n@media (min-width: 1180px) {\r\n  :root:not(#pd-embed) .stage {\r\n    min-height: max(100vh, calc(941 * var(--u)));\r\n    min-height: max(100svh, calc(941 * var(--u)));\r\n    padding-bottom: 0;\r\n    background:\r\n      url(\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/003_latar-gradasi-lembut.webp\") center \/ cover no-repeat,\r\n      var(--ivory);\r\n  }\r\n  :root:not(#pd-embed) .ambient, :root:not(#pd-embed) .m-art, :root:not(#pd-embed) .lockup-ray { display: none; }\r\n\r\n  :root:not(#pd-embed) .hero { padding: calc(58 * var(--u)) var(--gutter) calc(60 * var(--u)); }\r\n  :root:not(#pd-embed) .hero-copy { max-width: none; }\r\n  :root:not(#pd-embed) .lockup { width: calc(318 * var(--u)); min-width: 200px; }\r\n  :root:not(#pd-embed) .hero-title {\r\n    margin-top: calc(14 * var(--u));\r\n    font-size: max(40px, calc(60 * var(--u)));\r\n    line-height: 1.04;\r\n    letter-spacing: -0.034em;\r\n  }\r\n  :root:not(#pd-embed) .hero-lead {\r\n    margin-top: calc(26 * var(--u));\r\n    max-width: 30.9em;\r\n    \/* v15: 110% of the original desktop lead size for easier reading. *\/\r\n    font-size: max(17.6px, calc(23.1 * var(--u)));\r\n    line-height: 1.55;\r\n  }\r\n  :root:not(#pd-embed) .cta {\r\n    width: calc(502 * var(--u)); min-width: 320px;\r\n    min-height: max(56px, calc(86 * var(--u)));\r\n    margin-top: calc(40 * var(--u));\r\n    gap: calc(16 * var(--u));\r\n    font-size: max(18px, calc(27 * var(--u)));\r\n  }\r\n\r\n  \/* Decorative art frame \u2014 mirrors the reference canvas, centred *\/\r\n  :root:not(#pd-embed) .d-art, :root:not(#pd-embed) .d-glow {\r\n    display: block;\r\n    position: absolute; top: 0; left: 50%;\r\n    width: calc(1672 * var(--u)); height: calc(941 * var(--u));\r\n    margin-left: calc(-836 * var(--u));\r\n    pointer-events: none;\r\n  }\r\n  :root:not(#pd-embed) .d-glow { z-index: 0; }\r\n  :root:not(#pd-embed) .d-art { z-index: 1; }\r\n  :root:not(#pd-embed) .d-art > *, :root:not(#pd-embed) .d-glow > * { position: absolute; }\r\n\r\n  :root:not(#pd-embed) .d-glow span { border-radius: 50%; filter: blur(calc(18 * var(--u))); }\r\n  :root:not(#pd-embed) .d-glow .g1 { left: calc(-60 * var(--u)); top: calc(370 * var(--u)); width: calc(190 * var(--u)); aspect-ratio: 1; background: radial-gradient(closest-side, rgba(250, 214, 120, .55), rgba(250, 214, 120, 0)); }\r\n  :root:not(#pd-embed) .d-glow .g2 { left: calc(1160 * var(--u)); top: calc(620 * var(--u)); width: calc(180 * var(--u)); aspect-ratio: 1; background: radial-gradient(closest-side, rgba(250, 214, 120, .5), rgba(250, 214, 120, 0)); }\r\n  :root:not(#pd-embed) .d-glow .g3 { left: calc(150 * var(--u)); top: calc(40 * var(--u)); width: calc(320 * var(--u)); aspect-ratio: 1; background: radial-gradient(closest-side, rgba(196, 180, 255, .35), rgba(196, 180, 255, 0)); }\r\n\r\n  :root:not(#pd-embed) .d-naya    { left: calc(59 * var(--u));   top: calc(135 * var(--u)); width: calc(533 * var(--u)); }\r\n  :root:not(#pd-embed) .d-nico    { left: calc(1084 * var(--u)); top: calc(115 * var(--u)); width: calc(543 * var(--u)); }\r\n  :root:not(#pd-embed) .d-niat    { left: calc(-30 * var(--u));  top: calc(61 * var(--u));  width: calc(300 * var(--u)); }\r\n  :root:not(#pd-embed) .d-mood    { left: calc(1391 * var(--u)); top: calc(71 * var(--u));  width: calc(300 * var(--u)); }\r\n  :root:not(#pd-embed) .d-masih   { left: calc(-49 * var(--u));  top: calc(477 * var(--u)); width: calc(340 * var(--u)); }\r\n  :root:not(#pd-embed) .d-mikir   { left: calc(1399 * var(--u)); top: calc(391 * var(--u)); width: calc(305 * var(--u)); }\r\n\r\n  :root:not(#pd-embed) .d-ray { color: var(--ray); }\r\n  :root:not(#pd-embed) .d-ray--naya { left: calc(392 * var(--u));  top: calc(166 * var(--u)); width: calc(66 * var(--u)); }\r\n  :root:not(#pd-embed) .d-ray--nico { left: calc(1206 * var(--u)); top: calc(152 * var(--u)); width: calc(66 * var(--u)); transform: scaleX(-1); }\r\n  :root:not(#pd-embed) .d-ray--cta  { left: calc(508 * var(--u));  top: calc(652 * var(--u)); width: calc(64 * var(--u)); transform: scaleX(-1) rotate(-20deg); }\r\n\r\n  :root:not(#pd-embed) .d-doodle--clock { left: calc(116 * var(--u));  top: calc(330 * var(--u)); width: calc(54 * var(--u)); color: #a88af7; }\r\n  :root:not(#pd-embed) .d-doodle--cloud { left: calc(1548 * var(--u)); top: calc(308 * var(--u)); width: calc(62 * var(--u)); color: #a88af7; }\r\n  :root:not(#pd-embed) .d-doodle--swirl { left: calc(1498 * var(--u)); top: calc(614 * var(--u)); width: calc(52 * var(--u)); color: #f1c47a; }\r\n\r\n  \/* Plants hug the viewport corners, level with the characters' feet *\/\r\n  :root:not(#pd-embed) .plants { inset: 0 0 auto 0; height: calc(941 * var(--u)); }\r\n  :root:not(#pd-embed) .plant--left  { left: 0;  width: calc(410 * var(--u)); }\r\n  :root:not(#pd-embed) .plant--right { right: calc(-24 * var(--u)); width: calc(372 * var(--u)); }\r\n}\r\n\r\n\/* =========================================================\r\n   Pattern quiz (dialog)\r\n   ========================================================= *\/\r\n:root:not(#pd-embed) .cta { font-family: inherit; cursor: pointer; }\r\nhtml.quiz-lock:root:not(#pd-embed) { overflow: hidden; }\r\n\r\n:root:not(#pd-embed) .quiz {\r\n  width: min(540px, calc(100vw - 32px));\r\n  max-width: none; max-height: min(92vh, 860px); max-height: min(92dvh, 860px);\r\n  margin: auto; padding: 0;\r\n  border: 1px solid rgba(226, 221, 250, .95);\r\n  border-radius: 30px;\r\n  background:\r\n    radial-gradient(120% 60% at 100% 0%, rgba(210, 196, 255, .38), transparent 60%),\r\n    radial-gradient(90% 50% at 0% 100%, rgba(255, 214, 120, .22), transparent 60%),\r\n    #fffdf8;\r\n  color: var(--ink);\r\n  box-shadow: 0 40px 90px -30px rgba(40, 30, 110, .45), 0 2px 8px rgba(40, 30, 110, .08);\r\n  overflow: hidden;\r\n}\r\n:root:not(#pd-embed) .quiz[open] { display: flex; flex-direction: column; animation: quiz-in .38s var(--ease-out) both; }\r\n:root:not(#pd-embed) .quiz::backdrop { background: rgba(22, 20, 60, .5); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }\r\n@keyframes quiz-in { from { opacity: 0; transform: translateY(22px) scale(.98); } }\r\n\r\n:root:not(#pd-embed) .quiz__scroll {\r\n  position: relative; flex: 1; min-height: 0; overflow-y: auto; overscroll-behavior: contain;\r\n  padding: 22px 28px 28px;\r\n  scrollbar-width: thin; scrollbar-color: #ddd6f7 transparent;\r\n}\r\n:root:not(#pd-embed) .quiz__bar { display: flex; align-items: center; gap: 12px; margin-bottom: 22px; padding-right: 56px; }\r\n:root:not(#pd-embed) .quiz__icon-btn {\r\n  display: grid; place-items: center; flex: none;\r\n  width: 44px; height: 44px; border: 0; border-radius: 50%;\r\n  background: var(--lavender); color: var(--ink);\r\n  font: inherit; cursor: pointer;\r\n  transition: background-color .2s, transform .2s var(--ease-out);\r\n}\r\n:root:not(#pd-embed) .quiz__icon-btn:hover { background: #dfd8fd; }\r\n:root:not(#pd-embed) .quiz__icon-btn:active { transform: scale(.94); }\r\n:root:not(#pd-embed) .quiz__icon-btn svg { width: 20px; height: 20px; }\r\n:root:not(#pd-embed) .quiz__icon-btn[hidden] { display: none; }\r\n:root:not(#pd-embed) .quiz__progress { flex: 1; min-width: 0; }\r\n:root:not(#pd-embed) .quiz__meta { display: flex; justify-content: space-between; gap: 8px; margin-bottom: 7px; font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: #6c6f96; }\r\n:root:not(#pd-embed) .quiz__meta span:last-child { letter-spacing: .02em; color: #9a9cbc; white-space: nowrap; }\r\n:root:not(#pd-embed) .quiz__track { height: 8px; border-radius: 99px; background: #eeebfa; overflow: hidden; }\r\n:root:not(#pd-embed) .quiz__fill { height: 100%; width: 0; border-radius: inherit; background: linear-gradient(90deg, var(--violet), #a978ff 45%, var(--amber-2)); transition: width .45s var(--ease-out); }\r\n\r\n:root:not(#pd-embed) .quiz__step { animation: step-in .32s var(--ease-out) both; }\r\n@keyframes step-in { from { opacity: 0; transform: translateX(14px); } }\r\n:root:not(#pd-embed) .quiz__q-emoji {\r\n  display: grid; place-items: center; width: 56px; height: 56px; margin-bottom: 14px;\r\n  border-radius: 18px; background: linear-gradient(145deg, #f1edff, #fff4d6);\r\n  box-shadow: inset 0 0 0 1px rgba(160, 130, 250, .18);\r\n  font-size: 28px;\r\n}\r\n:root:not(#pd-embed) .quiz__q { margin: 0 0 20px; font-size: clamp(18px, 4.6vw, 21px); font-weight: 800; line-height: 1.4; letter-spacing: -.015em; }\r\n:root:not(#pd-embed) .quiz__q:focus { outline: none; }\r\n:root:not(#pd-embed) .quiz__options { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }\r\n:root:not(#pd-embed) .quiz__opt {\r\n  display: flex; align-items: center; gap: 14px; width: 100%; min-height: 64px;\r\n  padding: 12px 16px 12px 12px;\r\n  border: 1.5px solid #e9e5f7; border-radius: 18px;\r\n  background: rgba(255, 255, 255, .88);\r\n  color: var(--ink); font: inherit; font-size: 15.5px; font-weight: 600; line-height: 1.4; text-align: left;\r\n  cursor: pointer;\r\n  transition: border-color .2s, background-color .2s, transform .2s var(--ease-out), box-shadow .2s;\r\n}\r\n:root:not(#pd-embed) .quiz__opt:hover { border-color: #b9a3ff; transform: translateX(3px); box-shadow: 0 10px 22px -16px rgba(90, 60, 200, .55); }\r\n:root:not(#pd-embed) .quiz__opt-emoji { display: grid; place-items: center; flex: none; width: 42px; height: 42px; border-radius: 13px; background: #f4f1ff; font-size: 22px; transition: background-color .2s, transform .25s var(--ease-out); }\r\n:root:not(#pd-embed) .quiz__opt:hover .quiz__opt-emoji { transform: rotate(-6deg) scale(1.06); }\r\n:root:not(#pd-embed) .quiz__opt-text { flex: 1; }\r\n:root:not(#pd-embed) .quiz__opt-key { flex: none; display: grid; place-items: center; width: 24px; height: 24px; border-radius: 7px; border: 1px solid #e3def5; color: #9a9cbc; font-size: 12px; font-weight: 700; }\r\n:root:not(#pd-embed) .quiz__opt[aria-pressed=\"true\"] { border-color: var(--amber); background: #fff6dc; box-shadow: 0 0 0 3px rgba(248, 191, 48, .25); }\r\n:root:not(#pd-embed) .quiz__opt[aria-pressed=\"true\"] .quiz__opt-emoji { background: #ffe9a8; }\r\n:root:not(#pd-embed) .quiz__opt[aria-pressed=\"true\"] .quiz__opt-key { border-color: var(--amber); background: var(--amber-2); color: var(--ink); }\r\n:root:not(#pd-embed) .quiz__hint { margin: 16px 0 0; font-size: 12.5px; color: #9a9cbc; text-align: center; }\r\n@media (hover: none) { :root:not(#pd-embed) .quiz__opt-key, :root:not(#pd-embed) .quiz__hint { display: none; } }\r\n\r\n\/* Loading *\/\r\n:root:not(#pd-embed) .quiz__loading { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 18px; min-height: 380px; text-align: center; }\r\n:root:not(#pd-embed) .quiz__glass { display: grid; place-items: center; width: 92px; height: 92px; border-radius: 50%; background: linear-gradient(145deg, #efe9ff, #fff1c9); font-size: 44px; box-shadow: 0 16px 36px -18px rgba(107, 61, 240, .6); }\r\n:root:not(#pd-embed) .quiz__glass span { display: inline-block; animation: glass-flip 1.6s var(--ease-out) infinite; }\r\n@keyframes glass-flip { 0%, 30% { transform: rotate(0); } 60%, 100% { transform: rotate(180deg); } }\r\n:root:not(#pd-embed) .quiz__load-track { width: min(300px, 80%); height: 10px; border-radius: 99px; background: #eeebfa; overflow: hidden; }\r\n:root:not(#pd-embed) .quiz__load-fill { height: 100%; width: 0; border-radius: inherit; background: linear-gradient(90deg, var(--violet), var(--amber-2)); }\r\n:root:not(#pd-embed) .quiz__load-pct { font-size: 38px; font-weight: 800; letter-spacing: -.04em; }\r\n:root:not(#pd-embed) .quiz__load-label { margin: 0; font-size: 14px; font-weight: 600; color: #6c6f96; }\r\n:root:not(#pd-embed) .grad-text { background: linear-gradient(100deg, var(--violet), #b06cff 45%, var(--amber)); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: transparent; }\r\n\r\n\/* Result *\/\r\n:root:not(#pd-embed) .quiz__result { text-align: center; }\r\n:root:not(#pd-embed) .r-badge { display: flex; width: fit-content; margin-inline: auto; align-items: center; gap: 6px; padding: 7px 14px; border-radius: 99px; background: #f1eeff; color: #5b4fa8; font-size: 14px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }\r\n:root:not(#pd-embed) .r-tag { display: block; width: fit-content; margin: 10px auto 16px; padding: 5px 14px; border: 1px solid var(--amber-2); border-radius: 99px; background: #fff5d6; color: #8a5a00; font-size: 15px; font-weight: 800; }\r\n:root:not(#pd-embed) .r-icon { display: grid; place-items: center; width: 84px; height: 84px; margin: 0 auto 10px; border-radius: 26px; background: linear-gradient(145deg, #efe9ff, #fff1c9); font-size: 44px; box-shadow: 0 16px 34px -20px rgba(107, 61, 240, .7); }\r\n:root:not(#pd-embed) .r-title { margin: 0; font-size: clamp(23px, calc(5.4vw + 2px), 27px); font-weight: 800; line-height: 1.25; letter-spacing: -.025em; }\r\n:root:not(#pd-embed) .r-title:focus { outline: none; }\r\n:root:not(#pd-embed) .r-pct { margin: 6px 0 2px; font-size: clamp(46px, calc(12vw + 2px), 58px); font-weight: 800; line-height: 1.05; letter-spacing: -.05em; }\r\n:root:not(#pd-embed) .r-pct-caption { max-width: 330px; margin: 0 auto 16px; font-size: 16px; line-height: 1.5; color: #7a7da3; }\r\n:root:not(#pd-embed) .r-desc { margin: 0 auto 18px; max-width: 440px; font-size: 17.5px; line-height: 1.7; color: var(--body); }\r\n:root:not(#pd-embed) .r-box { margin: 12px 0 0; padding: 16px 18px; border-radius: 18px; text-align: left; font-size: 17px; line-height: 1.6; }\r\n:root:not(#pd-embed) .r-box h3 { margin: 0 0 8px; font-size: 17px; font-weight: 800; letter-spacing: -.01em; }\r\n:root:not(#pd-embed) .r-box ul { margin: 0; padding-left: 20px; list-style: disc; }\r\n:root:not(#pd-embed) .r-box li::marker { color: currentColor; }\r\n:root:not(#pd-embed) .r-box--relate li::marker { color: var(--amber); }\r\n:root:not(#pd-embed) .r-box--cost li::marker { color: #e0556d; }\r\n:root:not(#pd-embed) .r-box--grow li::marker { color: #2f9e5e; }\r\n:root:not(#pd-embed) .r-box li + li { margin-top: 6px; }\r\n:root:not(#pd-embed) .r-box--relate { background: #fff5d6; } :root:not(#pd-embed) .r-box--relate h3 { color: #8a5a00; }\r\n:root:not(#pd-embed) .r-box--insight { background: #f1eeff; color: #3d3f6b; }\r\n:root:not(#pd-embed) .r-box--insight strong { color: var(--ink); }\r\n:root:not(#pd-embed) .r-box--cost { background: #ffecef; } :root:not(#pd-embed) .r-box--cost h3 { color: #b4233c; }\r\n:root:not(#pd-embed) .r-box--grow { background: #e8f7ee; } :root:not(#pd-embed) .r-box--grow h3 { color: #1d7a45; }\r\n:root:not(#pd-embed) .r-duo { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 12px; text-align: left; }\r\n:root:not(#pd-embed) .r-tendencies { grid-template-columns: repeat(3, minmax(0, 1fr)); }\r\n:root:not(#pd-embed) .r-mini { padding: 14px 15px; border: 1px solid #e9e5f7; border-radius: 18px; background: rgba(255, 255, 255, .8); }\r\n:root:not(#pd-embed) .r-mini small { display: block; margin-bottom: 6px; font-size: 13px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: #8a8cb0; }\r\n:root:not(#pd-embed) .r-mini strong { display: block; font-size: 16.5px; line-height: 1.35; }\r\n:root:not(#pd-embed) .r-mini span { display: block; margin-top: 4px; font-size: 15px; line-height: 1.45; color: var(--body); }\r\n:root:not(#pd-embed) .r-mini span.r-code-pill { display: inline-flex; align-items: center; width: fit-content; margin: 0 0 8px; padding: 5px 10px; border: 1px solid #ddd5ff; border-radius: 999px; background: #f1edff; color: #6541d8; font-size: 12px; font-weight: 800; letter-spacing: .055em; line-height: 1.2; text-transform: uppercase; }\r\n:root:not(#pd-embed) .r-mini b { color: var(--violet); }\r\n\/* v16: tendency cards follow the hub's \"Urutan belajarmu\" look (numbered step badge + per-role tint) *\/\r\n:root:not(#pd-embed) .r-tendencies .r-mini { border-color: #eee8f8; border-radius: 16px; background: linear-gradient(145deg, #fff 0%, #fbf8ff 100%); }\r\n:root:not(#pd-embed) .r-tendencies .r-mini:nth-child(2) { background: linear-gradient(145deg, #fff 0%, #fffaf0 100%); }\r\n:root:not(#pd-embed) .r-tendencies .r-mini:nth-child(3) { background: linear-gradient(145deg, #fff 0%, #f4f5ff 100%); }\r\n:root:not(#pd-embed) .r-mini small.r-step { display: flex; align-items: flex-start; gap: 8px; margin-bottom: 10px; color: #7a56c0; font-size: 13px; line-height: 1.3; }\r\n:root:not(#pd-embed) .r-mini:nth-child(2) small.r-step { color: #a27620; }\r\n:root:not(#pd-embed) .r-mini:nth-child(3) small.r-step { color: #5266b1; }\r\n:root:not(#pd-embed) .r-mini small.r-step b { display: grid; place-items: center; flex: none; width: 26px; height: 26px; border-radius: 50%; background: #eee5ff; color: inherit; font-size: 12px; letter-spacing: 0; }\r\n:root:not(#pd-embed) .r-mini:nth-child(2) small.r-step b { background: #fff0ca; }\r\n:root:not(#pd-embed) .r-mini:nth-child(3) small.r-step b { background: #e6eafe; }\r\n:root:not(#pd-embed) .r-mini small.r-step span { display: block; margin: 0; padding-top: 4px; font-size: inherit; line-height: inherit; color: inherit; }\r\n:root:not(#pd-embed) .r-tendencies .r-mini strong { color: #171940; font-weight: 800; }\r\n:root:not(#pd-embed) .r-loop { margin-top: 12px; padding: 18px; border-radius: 18px; background: #f7f5ff; text-align: left; }\r\n:root:not(#pd-embed) .r-loop h3 { margin: 0 0 14px; font-size: 17px; font-weight: 800; text-align: center; }\r\n:root:not(#pd-embed) .r-loop ol { margin: 0; padding: 0; list-style: none; counter-reset: loop; }\r\n:root:not(#pd-embed) .r-loop li { position: relative; display: flex; gap: 12px; padding-bottom: 12px; font-size: 16.5px; line-height: 1.45; counter-increment: loop; }\r\n:root:not(#pd-embed) .r-loop li::before { content: counter(loop); display: grid; place-items: center; flex: none; width: 26px; height: 26px; border-radius: 50%; background: var(--ink); color: #fff; font-size: 14px; font-weight: 800; z-index: 1; }\r\n:root:not(#pd-embed) .r-loop li:not(:last-child)::after { content: \"\"; position: absolute; left: 12px; top: 26px; bottom: 0; width: 2px; background: #d9d3f5; }\r\n:root:not(#pd-embed) .r-loop li:last-child { padding-bottom: 0; }\r\n:root:not(#pd-embed) .r-loop li span { padding-top: 3px; }\r\n:root:not(#pd-embed) .r-disclaimer { margin: 14px 0 0; font-size: 14px; line-height: 1.5; color: #9a9cbc; }\r\n:root:not(#pd-embed) .r-cta-ink {\r\n  display: inline-flex; align-items: center; justify-content: center; gap: 8px; width: 100%; min-height: 54px; margin-top: 14px; padding: 0 22px;\r\n  border: 0; border-radius: 999px; background: var(--ink); color: #fff; font: inherit; font-size: 17.5px; font-weight: 700; text-decoration: none; cursor: pointer;\r\n  transition: transform .2s var(--ease-out), box-shadow .2s;\r\n}\r\n:root:not(#pd-embed) .r-cta-ink:hover { transform: translateY(-2px); box-shadow: 0 14px 26px -14px rgba(19, 24, 69, .7); }\r\n:root:not(#pd-embed) .r-cta-final {\r\n  display: flex; align-items: center; gap: 12px; width: 100%; margin-top: 18px; padding: 14px 22px; text-align: center;\r\n  border: 1px solid rgba(232, 150, 8, .55); border-radius: 22px;\r\n  background: linear-gradient(180deg, #ffd964 0%, #fcc53a 48%, #f7b51b 100%);\r\n  box-shadow: inset 0 1.5px 0 rgba(255, 255, 255, .65), 0 14px 30px -12px rgba(242, 160, 12, .75);\r\n  color: var(--ink); font: inherit; font-size: 17px; line-height: 1.35; text-decoration: none; cursor: pointer;\r\n  animation: cta-pulse 2.4s ease-in-out infinite;\r\n  transition: transform .2s var(--ease-out);\r\n}\r\n:root:not(#pd-embed) .r-cta-final:hover { transform: translateY(-2px); animation-play-state: paused; }\r\n:root:not(#pd-embed) .r-cta-final__copy { flex: 1; display: flex; flex-direction: column; }\r\n:root:not(#pd-embed) .r-cta-final__copy strong { font-weight: 800; }\r\n:root:not(#pd-embed) .r-cta-final__glass { font-size: 24px; display: inline-block; animation: hourglass-cycle 3.2s var(--ease-out) infinite; }\r\n:root:not(#pd-embed) .r-cta-arrow { display: inline-block; font-weight: 800; animation: nudge 1.4s ease-in-out infinite; }\r\n@keyframes nudge { 50% { transform: translateX(4px); } }\r\n@keyframes hourglass-cycle {\r\n  0%, 20% { transform: rotate(0deg); }\r\n  45%, 55% { transform: rotate(180deg); }\r\n  80%, 100% { transform: rotate(360deg); }\r\n}\r\n@keyframes cta-pulse {\r\n  0% { box-shadow: inset 0 1.5px 0 rgba(255, 255, 255, .65), 0 0 0 0 rgba(247, 181, 27, .5); }\r\n  70% { box-shadow: inset 0 1.5px 0 rgba(255, 255, 255, .65), 0 0 0 14px rgba(247, 181, 27, 0); }\r\n  100% { box-shadow: inset 0 1.5px 0 rgba(255, 255, 255, .65), 0 0 0 0 rgba(247, 181, 27, 0); }\r\n}\r\n:root:not(#pd-embed) .r-restart { display: inline-flex; align-items: center; min-height: 44px; margin-top: 8px; padding: 0 14px; border: 0; border-radius: 12px; background: none; color: #6c6f96; font: inherit; font-size: 16px; font-weight: 700; cursor: pointer; }\r\n:root:not(#pd-embed) .r-restart:hover { color: var(--ink); background: #f3f1fb; }\r\n:root:not(#pd-embed) .r-reveal > * { animation: step-in .45s var(--ease-out) both; }\r\n\r\n@media (max-width: 560px) {\r\n  :root:not(#pd-embed) .quiz {\r\n    width: 100%; max-height: 94vh; max-height: 94dvh;\r\n    margin: auto 0 0; border-radius: 26px 26px 0 0; border-bottom: 0;\r\n  }\r\n  :root:not(#pd-embed) .quiz[open] { animation: sheet-in .52s cubic-bezier(.22, .86, .24, 1) both; }\r\n  :root:not(#pd-embed) .quiz__scroll { padding: 16px 18px calc(24px + env(safe-area-inset-bottom)); }\r\n  :root:not(#pd-embed) .quiz__opt { min-height: 60px; font-size: 15px; }\r\n  :root:not(#pd-embed) .r-duo { grid-template-columns: 1fr; }\r\n}\r\n@media (max-width: 899px) {\r\n  :root:not(#pd-embed) .r-tendencies { grid-template-columns: 1fr; }\r\n}\r\n@keyframes sheet-in {\r\n  from { transform: translateY(100%); opacity: 0; }\r\n  55% { opacity: 1; }\r\n  to { transform: translateY(0); opacity: 1; }\r\n}\r\n@media (prefers-reduced-motion: reduce) {\r\n  :root:not(#pd-embed) .quiz[open] { animation-duration: .01ms; }\r\n}\r\n\r\n\/* The close button is moved to the scroll container by quiz.js, so it alone can stay sticky. *\/\r\n:root:not(#pd-embed) #quizClose {\r\n  position: sticky; top: 0; z-index: 20;\r\n  float: none; margin: 0 0 -44px auto;\r\n}\r\n\r\n\/* Desktop: question and all four answers visible at once, no scrolling.\r\n   Wider dialog + 2\u00d72 answer grid; spacing tightens further on short windows.\r\n   (The long result screen may still scroll; that is intended.) *\/\r\n@media (min-width: 900px) {\r\n  :root:not(#pd-embed) .quiz { width: min(780px, calc(100vw - 48px)); max-height: calc(100vh - 32px); max-height: calc(100dvh - 32px); }\r\n  :root:not(#pd-embed) .quiz__scroll { padding: 22px 30px 26px; }\r\n  :root:not(#pd-embed) .quiz__options { grid-template-columns: 1fr 1fr; gap: 12px; }\r\n  :root:not(#pd-embed) .quiz__opt { align-items: center; min-height: 92px; padding: 14px 16px 14px 14px; }\r\n  :root:not(#pd-embed) .quiz__opt:hover { transform: translateY(-2px); }\r\n  :root:not(#pd-embed) .quiz__q { max-width: 36em; }\r\n}\r\n@media (min-width: 900px) and (max-height: 720px) {\r\n  :root:not(#pd-embed) .quiz__scroll { padding: 16px 26px 20px; }\r\n  :root:not(#pd-embed) .quiz__bar { margin-bottom: 14px; }\r\n  :root:not(#pd-embed) .quiz__q-emoji { width: 44px; height: 44px; margin-bottom: 10px; border-radius: 14px; font-size: 22px; }\r\n  :root:not(#pd-embed) .quiz__q { margin-bottom: 14px; font-size: 19px; }\r\n  :root:not(#pd-embed) .quiz__opt { min-height: 78px; padding: 10px 14px 10px 12px; font-size: 15px; }\r\n  :root:not(#pd-embed) .quiz__opt-emoji { width: 36px; height: 36px; font-size: 19px; }\r\n  :root:not(#pd-embed) .quiz__hint { margin-top: 10px; }\r\n}\r\n@media (min-width: 900px) and (max-height: 560px) {\r\n  :root:not(#pd-embed) .quiz__q-emoji { display: none; }\r\n  :root:not(#pd-embed) .quiz__hint { display: none; }\r\n  :root:not(#pd-embed) .quiz__opt { min-height: 66px; }\r\n}\r\n\r\n\/* =========================================================\r\n   Motion\r\n   ========================================================= *\/\r\n@media (prefers-reduced-motion: no-preference) {\r\n  :root:not(#pd-embed) .reveal { animation: reveal .7s var(--ease-out) both; }\r\n  :root:not(#pd-embed) .reveal--2 { animation-delay: .08s; }\r\n  :root:not(#pd-embed) .reveal--3 { animation-delay: .16s; }\r\n  :root:not(#pd-embed) .reveal--4 { animation-delay: .24s; }\r\n  @keyframes reveal {\r\n    from { opacity: 0; transform: translateY(14px); }\r\n    to { opacity: 1; transform: none; }\r\n  }\r\n}\r\n@media (prefers-reduced-motion: reduce) {\r\n  :root:not(#pd-embed) *, :root:not(#pd-embed) *::before, :root:not(#pd-embed) *::after {\r\n    animation-duration: .01ms !important;\r\n    animation-iteration-count: 1 !important;\r\n    transition-duration: .01ms !important;\r\n  }\r\n  :root:not(#pd-embed) .float { animation: none; }\r\n}\r\n\r\n\/* ===== sections.css ===== *\/\r\n\/* #ProcrastinationDecoded homepage v5\r\n   Part 2: header placement, one continuous atmosphere, sections 01\u201303 and footer.\r\n   Follows mockups\/homepage-harmony-v12. Asset paths are relative to this file.\r\n\r\n   Stacking model (all inside <main>, which is the only stacking context):\r\n     z -1  soft lavender\/amber glows of every section (they overlap neighbours,\r\n           but always sit under every piece of content)\r\n     z  1  Naya & Nico\r\n     z  2  blurred foreground props (plants, books, desks, pots)\r\n     z  3  headings, cards, copy, CTAs\r\n   Layout ranges: mobile < 720, tablet 720\u20131099, desktop \u2265 1100.\r\n   --k maps 1 px of the 1672-wide mockup onto the viewport. *\/\r\n\r\n:root {\r\n  --canvas: #fffdf9;\r\n  --k: calc(min(100vw, 1672px) \/ 1672);\r\n  --hdr-h: calc(clamp(14px, 4.5vw, 24px) + 48px);\r\n  --card-border: rgba(221, 214, 252, .95);\r\n  --card-bg: rgba(255, 255, 255, .88);\r\n  --card-shadow: 0 26px 50px -32px rgba(84, 62, 180, .38), 0 2px 6px -2px rgba(84, 62, 180, .08);\r\n}\r\n@media (min-width: 1024px) {\r\n  :root { --hdr-h: calc(32 * var(--u) + max(58px, calc(75 * var(--u)))); }\r\n}\r\n\r\nhtml:root:not(#pd-embed) { background: var(--canvas); }\r\n:root:not(#pd-embed) body { background: var(--canvas); overflow-x: clip; }\r\n:root:not(#pd-embed) main { position: relative; isolation: isolate; overflow-x: clip; }\r\n\r\n\/* ---------- Header sits over the hero, outside <main> ---------- *\/\r\n:root:not(#pd-embed) .site-header { position: absolute; top: 0; left: 0; right: 0; }\r\n\r\n\/* ---------- Hero: same geometry as v2, background dissolves into the canvas ---------- *\/\r\n:root:not(#pd-embed) .stage { padding-top: var(--hdr-h); background: none; overflow-x: clip; }\r\n@media (min-width: 1180px) { :root:not(#pd-embed) .stage { background: none; } }\r\n:root:not(#pd-embed) .stage::before {\r\n  content: \"\"; position: absolute; inset: 0 0 -80px; z-index: -1; pointer-events: none;\r\n  background: url(\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/mobile-background-homepage-8780665677.webp\") center top \/ cover no-repeat;\r\n  -webkit-mask-image: linear-gradient(#000 0%, #000 72%, transparent 100%);\r\n  mask-image: linear-gradient(#000 0%, #000 72%, transparent 100%);\r\n}\r\n\/* Tablet uses the same uploaded mobile hero atmosphere; desktop switches at 1180px. *\/\r\n@media (min-width: 720px) and (max-width: 1179px) {\r\n  :root:not(#pd-embed) .stage::before {\r\n    background-image: url(\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/mobile-background-homepage-8780665677.webp\");\r\n    background-position: center top;\r\n  }\r\n}\r\n@media (min-width: 1180px) {\r\n  :root:not(#pd-embed) .stage::before { background-image: url(\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/003_latar-gradasi-lembut.webp\"); background-position: center; }\r\n}\r\n:root:not(#pd-embed) .plants { -webkit-mask-image: linear-gradient(#000 70%, transparent 100%); mask-image: linear-gradient(#000 70%, transparent 100%); }\r\n:root:not(#pd-embed) .ambient { -webkit-mask-image: linear-gradient(#000 72%, transparent 100%); mask-image: linear-gradient(#000 72%, transparent 100%); }\r\n\r\n\/* =========================================================\r\n   Shared section frame + atmosphere\r\n   ========================================================= *\/\r\n:root:not(#pd-embed) .pd-sec { position: relative; padding: 64px var(--gutter) 72px; }\r\n:root:not(#pd-embed) .pd-sec::before, :root:not(#pd-embed) .site-footer::before {\r\n  content: \"\"; position: absolute; inset: -150px 0; z-index: -1; pointer-events: none;\r\n  background: var(--glow);\r\n  -webkit-mask-image: linear-gradient(transparent, #000 150px, #000 calc(100% - 150px), transparent);\r\n  mask-image: linear-gradient(transparent, #000 150px, #000 calc(100% - 150px), transparent);\r\n}\r\n:root:not(#pd-embed) .s01 { --glow:\r\n  radial-gradient(ellipse 34% 26% at 2% 26%, #cbb9ff5c, transparent 98%),\r\n  radial-gradient(ellipse 32% 28% at 99% 22%, #d4bfff5c, transparent 98%),\r\n  radial-gradient(ellipse 30% 22% at 4% 82%, #ffe1a540, transparent 98%),\r\n  radial-gradient(ellipse 30% 22% at 97% 80%, #ffe3b245, transparent 98%); }\r\n:root:not(#pd-embed) .s02 { --glow:\r\n  radial-gradient(ellipse 34% 28% at 0% 30%, #dccaff55, transparent 98%),\r\n  radial-gradient(ellipse 30% 30% at 100% 36%, #d0bfff50, transparent 98%),\r\n  radial-gradient(ellipse 46% 20% at 50% 96%, #fff0cc55, transparent 98%); }\r\n:root:not(#pd-embed) .s03 { --glow:\r\n  radial-gradient(ellipse 30% 26% at 1% 22%, #cbb9ff50, transparent 98%),\r\n  radial-gradient(ellipse 30% 26% at 99% 18%, #d4bfff55, transparent 98%),\r\n  radial-gradient(ellipse 30% 24% at 3% 78%, #ffe1a545, transparent 98%),\r\n  radial-gradient(ellipse 30% 24% at 98% 74%, #ffe3b24a, transparent 98%); }\r\n:root:not(#pd-embed) .site-footer { --glow:\r\n  radial-gradient(ellipse 30% 40% at 2% 34%, #cbb9ff48, transparent 98%),\r\n  radial-gradient(ellipse 34% 44% at 98% 20%, #d4bfff50, transparent 98%),\r\n  radial-gradient(ellipse 30% 34% at 96% 92%, #ffe3b238, transparent 98%); }\r\n\r\n:root:not(#pd-embed) .sec-inner { position: relative; max-width: 1672px; margin-inline: auto; text-align: center; }\r\n:root:not(#pd-embed) .sec-inner > * { position: relative; z-index: 3; }\r\n\r\n\/* Blurred foreground props. They may overhang into the next section. *\/\r\n:root:not(#pd-embed) .fg { position: absolute; inset: 0; z-index: 2; pointer-events: none; }\r\n:root:not(#pd-embed) .fg img {\r\n  position: absolute; display: block; max-width: none; height: auto; pointer-events: none; user-select: none;\r\n  \/* the artwork touches its own bottom edge; fade it so no straight cut shows when it overhangs a join *\/\r\n  -webkit-mask-image: linear-gradient(#000 55%, transparent 96%);\r\n  mask-image: linear-gradient(#000 55%, transparent 96%);\r\n}\r\n\r\n\/* Soft ornaments that straddle a section boundary *\/\r\n:root:not(#pd-embed) .bridge { position: absolute; left: 0; right: 0; top: 0; height: 0; z-index: 2; pointer-events: none; }\r\n:root:not(#pd-embed) .bridge > * { position: absolute; display: block; pointer-events: none; }\r\n:root:not(#pd-embed) .bridge img {\r\n  max-width: none; filter: blur(1.5px); opacity: .55;\r\n  -webkit-mask-image: radial-gradient(ellipse 50% 50% at 50% 50%, #000 45%, transparent 100%);\r\n  mask-image: radial-gradient(ellipse 50% 50% at 50% 50%, #000 45%, transparent 100%);\r\n}\r\n:root:not(#pd-embed) .bit { width: 12px; height: 16px; border-radius: 3px; background: #d6c2fa; filter: blur(1.4px); opacity: .7; }\r\n:root:not(#pd-embed) .bit--amber { background: #ffdca0; }\r\n:root:not(#pd-embed) .bridge .heart { width: 30px; height: 28px; color: #f3c56b; opacity: .55; filter: blur(.6px); }\r\n\r\n\/* Heading *\/\r\n:root:not(#pd-embed) .sec-title {\r\n  position: relative; width: fit-content; max-width: 100%; margin: 0 auto;\r\n  font-family: var(--font-sans); font-weight: 800;\r\n  font-size: clamp(27px, 7.4vw, 34px); line-height: 1.12; letter-spacing: -0.04em;\r\n  color: var(--ink); text-wrap: balance;\r\n}\r\n:root:not(#pd-embed) .sec-title .line { display: block; }\r\n:root:not(#pd-embed) .sec-title .stop { margin-left: -.03em; }\r\n:root:not(#pd-embed) .sec-ray { position: absolute; width: .9em; color: var(--ray); pointer-events: none; }\r\n:root:not(#pd-embed) .sec-ray--tl { left: -.85em; top: -.5em; transform: scaleX(-1) rotate(-6deg); }\r\n:root:not(#pd-embed) .sec-ray--br { right: -.85em; bottom: -.25em; transform: rotate(160deg); }\r\n@media (max-width: 519px) {\r\n  :root:not(#pd-embed) .sec-ray--tl { left: 0; top: -1.05em; }\r\n  :root:not(#pd-embed) .sec-ray--br { right: -.35em; }\r\n}\r\n\r\n\/* CTA rows reuse the hero .cta pill *\/\r\n:root:not(#pd-embed) .cta-row { display: flex; align-items: center; justify-content: center; gap: 6px; margin-top: 24px; }\r\n:root:not(#pd-embed) .cta.cta--section { margin-top: 0; }\r\n:root:not(#pd-embed) .cta-ray { display: none; flex: none; width: 34px; color: var(--ray); }\r\n:root:not(#pd-embed) .cta-ray--l { transform: scaleX(-1) rotate(-60deg); }\r\n:root:not(#pd-embed) .cta-ray--r { transform: rotate(120deg); }\r\n:root:not(#pd-embed) .cta-note { margin: 12px 0 0; font-size: 13.5px; color: #5d618c; }\r\n\r\n\/* Card surface *\/\r\n:root:not(#pd-embed) .s01-card, :root:not(#pd-embed) .stat, :root:not(#pd-embed) .case, :root:not(#pd-embed) .letter {\r\n  border: 1px solid var(--card-border); background: var(--card-bg); box-shadow: var(--card-shadow);\r\n  -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);\r\n}\r\n\r\n\/* Tight crops of transparent WebPs (alpha bounding boxes) *\/\r\n:root:not(#pd-embed) .crop--cal-plan    { --fw: 1374; --x: 260; --y: 144; --vw: 900;  --vh: 860; }\r\n:root:not(#pd-embed) .crop--cal-miss    { --fw: 1388; --x: 260; --y: 144; --vw: 912;  --vh: 848; }\r\n:root:not(#pd-embed) .crop--icon-thesis { --fw: 1536; --x: 236; --y: 188; --vw: 1116; --vh: 688; }\r\n:root:not(#pd-embed) .crop--icon-report { --fw: 1584; --x: 256; --y: 204; --vw: 1220; --vh: 636; }\r\n:root:not(#pd-embed) .crop--envelope    { --fw: 1536; --x: 336; --y: 164; --vw: 936;  --vh: 692; }\r\n:root:not(#pd-embed) .crop--s01-naya { --fw: 1319; --x: 44; --y: 112; --vw: 1236; --vh: 1056; }\r\n:root:not(#pd-embed) .crop--s01-nico { --fw: 1536; --x: 28; --y: 12;  --vw: 1488; --vh: 1012; }\r\n\r\n\/* =========================================================\r\n   01 \u00b7 Waktu jalan\r\n   ========================================================= *\/\r\n:root:not(#pd-embed) .s01__notes { display: none; }\r\n\/* Wall notes: words stay HTML in Kalam (decorative, aria-hidden) *\/\r\n:root:not(#pd-embed) .pd-wall-note {\r\n  position: absolute; display: grid; place-items: center; aspect-ratio: 4 \/ 5; padding: .8em;\r\n  border-radius: 8px; background: #f2eaff; box-shadow: 0 14px 35px #5342981c;\r\n  color: #283569; font-family: var(--font-hand); font-weight: 700; line-height: 1.15; text-align: center;\r\n  transform: rotate(-8deg); pointer-events: none;\r\n}\r\n:root:not(#pd-embed) .pd-wall-note--cream { background: #fff5d8; transform: rotate(8deg); }\r\n\r\n:root:not(#pd-embed) .s01-flow {\r\n  position: relative;\r\n  display: grid; grid-template-columns: 1fr 1fr; gap: 30px;\r\n  max-width: 420px; margin: 24px auto 0; padding: 0; list-style: none;\r\n}\r\n:root:not(#pd-embed) .s01-flow::before {\r\n  content: \"\"; position: absolute; left: calc(50% - 15px); top: 50%; width: 30px; border-top: 2px dashed #b9a6ff;\r\n}\r\n:root:not(#pd-embed) .s01-flow::after {\r\n  content: \"\"; position: absolute; left: 50%; top: 50%; z-index: 1;\r\n  width: 24px; height: 24px; margin: -12px 0 0 -12px; border-radius: 50%;\r\n  background: var(--violet) url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h13M13 6l6 6-6 6'\/%3E%3C\/svg%3E\") center \/ 60% no-repeat;\r\n  box-shadow: 0 0 0 4px rgba(236, 232, 255, .95), 0 8px 18px -8px rgba(107, 61, 240, .7);\r\n}\r\n:root:not(#pd-embed) .s01-card {\r\n  display: grid; grid-template-rows: auto auto 1fr; justify-items: center; align-content: start; row-gap: 6px;\r\n  padding: 14px 10px 16px; border-radius: 20px; text-align: center;\r\n}\r\n:root:not(#pd-embed) .s01-card__label { margin: 0; font-size: 13px; font-weight: 800; letter-spacing: .03em; text-transform: uppercase; color: var(--violet); }\r\n:root:not(#pd-embed) .s01-card__art { width: 76%; max-width: 110px; }\r\n:root:not(#pd-embed) .s01-card__text { margin: 0; font-size: 14px; font-weight: 600; line-height: 1.35; color: var(--ink); text-wrap: balance; }\r\n\r\n:root:not(#pd-embed) .s01-thoughts { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; max-width: 420px; margin: 22px auto 0; }\r\n:root:not(#pd-embed) .bubble {\r\n  position: relative; display: grid; place-items: center; margin: 0;\r\n  padding: 10px 12px; border-radius: 24px;\r\n  font-size: 13.5px; font-weight: 600; line-height: 1.35; color: var(--ink-soft);\r\n}\r\n:root:not(#pd-embed) .bubble::before, :root:not(#pd-embed) .bubble::after { content: \"\"; position: absolute; border-radius: 50%; background: inherit; }\r\n:root:not(#pd-embed) .bubble::before { width: 11px; height: 11px; top: -13px; }\r\n:root:not(#pd-embed) .bubble::after  { width: 6px; height: 6px; top: -22px; }\r\n:root:not(#pd-embed) .bubble--lav { background: #ece7ff; }\r\n:root:not(#pd-embed) .bubble--lav::before { left: 16%; } :root:not(#pd-embed) .bubble--lav::after { left: 10%; }\r\n:root:not(#pd-embed) .bubble--cream { background: #fff1d2; }\r\n:root:not(#pd-embed) .bubble--cream::before { right: 16%; } :root:not(#pd-embed) .bubble--cream::after { right: 10%; }\r\n\r\n:root:not(#pd-embed) .s01-duo { display: flex; align-items: flex-end; justify-content: space-between; gap: 4%; margin: 18px calc(-1 * var(--gutter)) 0; }\r\n:root:not(#pd-embed) .s01-duo > * { flex: none; }\r\n:root:not(#pd-embed) .s01-duo__naya { width: 52%; margin-left: -6%; }\r\n:root:not(#pd-embed) .s01-duo__nico { width: 62%; margin-right: -9%; }\r\n\r\n:root:not(#pd-embed) .s01-note { max-width: 34em; margin: 20px auto 0; font-size: 18px; line-height: 1.6; color: var(--body); text-wrap: pretty; }\r\n:root:not(#pd-embed) .s01-lead { max-width: 30em; margin: 10px auto 0; font-size: 16.5px; font-weight: 700; line-height: 1.5; color: var(--ink); text-wrap: balance; }\r\n:root:not(#pd-embed) .s01-lead span { display: block; }\r\n\r\n:root:not(#pd-embed) .s01 .fg__l { left: -48%; bottom: -70px; width: 120%; opacity: .5; }\r\n:root:not(#pd-embed) .s01 .fg__r { right: -52%; bottom: -40px; width: 120%; opacity: .5; }\r\n\r\n\/* =========================================================\r\n   02 \u00b7 Data penundaan (two separate studies)\r\n   ========================================================= *\/\r\n:root:not(#pd-embed) .s02 { padding-bottom: 88px; }\r\n:root:not(#pd-embed) .s02-duo { position: absolute; inset: 0; z-index: 1; pointer-events: none; }\r\n:root:not(#pd-embed) .s02-duo img {\r\n  position: absolute; max-width: none; height: auto;\r\n  -webkit-mask-image: linear-gradient(#000 62%, transparent 92%);\r\n  mask-image: linear-gradient(#000 62%, transparent 92%);\r\n}\r\n\/* mobile: large seated mascots flank the centred cards, faces clear of the cards *\/\r\n:root:not(#pd-embed) .s02-duo__naya { left: -9vw; top: 118px; width: 60vw; max-width: 330px; }\r\n:root:not(#pd-embed) .s02-duo__nico { right: -16vw; top: 150px; width: 60vw; max-width: 330px; }\r\n\r\n:root:not(#pd-embed) .s02-stats { display: grid; gap: 14px; width: min(54vw, 290px); margin: 24px auto 0; }\r\n:root:not(#pd-embed) .stat { display: flex; flex-direction: column; padding: 16px 12px 14px; border-radius: 22px; }\r\n:root:not(#pd-embed) .stat__label { margin: 0; font-size: 13px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; color: var(--ink); }\r\n:root:not(#pd-embed) .stat__value { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; width: fit-content; margin: 4px auto 0; }\r\n:root:not(#pd-embed) .stat__approx { font-size: 18px; font-weight: 800; letter-spacing: -.02em; line-height: 1; color: var(--violet); }\r\n:root:not(#pd-embed) .stat__num {\r\n  font-size: clamp(40px, 12.4vw, 62px); font-weight: 800; line-height: 1.04; letter-spacing: -.055em;\r\n  background: linear-gradient(170deg, #9f6bff 0%, #6a36ee 55%, #5a2ae0 100%);\r\n  -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: transparent;\r\n  padding: 0 .04em .04em;\r\n}\r\n:root:not(#pd-embed) .stat__ray { position: absolute; right: calc(100% - 2px); bottom: .55em; width: 18px; color: var(--ray); transform: scaleX(-1) rotate(-20deg); }\r\n:root:not(#pd-embed) .stat__desc { margin: 6px auto 0; font-size: 14px; font-weight: 600; line-height: 1.45; color: var(--ink-soft); text-wrap: balance; }\r\n\r\n:root:not(#pd-embed) .s02-bridge { max-width: 30em; margin: 28px auto 0; font-size: 15.5px; line-height: 1.5; color: var(--ink-soft); text-wrap: balance; }\r\n:root:not(#pd-embed) .s02-bridge strong { display: block; margin-bottom: 4px; font-size: 22px; font-weight: 800; letter-spacing: -.02em; color: var(--ink); }\r\n:root:not(#pd-embed) .s02-bridge em { font-style: normal; font-weight: 700; color: var(--violet); }\r\n\r\n:root:not(#pd-embed) .sources { max-width: 640px; margin: 16px auto 0; font-size: 13px; line-height: 1.6; color: #545978; text-align: left; }\r\n:root:not(#pd-embed) .sources summary {\r\n  display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 2px 6px;\r\n  min-height: 44px; padding: 8px 12px; border-radius: 14px; cursor: pointer; list-style: none; text-align: center;\r\n  transition: background-color .2s;\r\n}\r\n:root:not(#pd-embed) .sources summary::-webkit-details-marker { display: none; }\r\n:root:not(#pd-embed) .sources summary:hover { background: rgba(236, 232, 255, .6); }\r\n:root:not(#pd-embed) .sources__more { display: inline-flex; align-items: center; gap: 4px; font-weight: 700; color: #5b3fd0; text-decoration: none; white-space: nowrap; }\r\n:root:not(#pd-embed) .sources__more::after { content: \"\u25be\"; transition: transform .2s; }\r\n:root:not(#pd-embed) .sources[open] .sources__more::after { transform: rotate(180deg); }\r\n:root:not(#pd-embed) .sources__body { margin-top: 6px; padding: 14px 18px; border-radius: 18px; background: rgba(255, 255, 255, .92); border: 1px solid #ebe6fb; }\r\n:root:not(#pd-embed) .sources__body p { margin: 0; }\r\n:root:not(#pd-embed) .sources__body p + p { margin-top: 8px; }\r\n:root:not(#pd-embed) .sources__body strong { color: var(--ink); }\r\n:root:not(#pd-embed) .sources a { color: #5b3fd0; font-weight: 700; text-underline-offset: 2px; }\r\n:root:not(#pd-embed) .sources a:hover { color: var(--ink); }\r\n\r\n:root:not(#pd-embed) .s02 .fg__l { left: -34vw; bottom: -20px; width: 80vw; opacity: .7; }\r\n:root:not(#pd-embed) .s02 .fg__r { right: -30vw; bottom: -10px; width: 76vw; opacity: .7; }\r\n\r\n\/* =========================================================\r\n   03 \u00b7 Dua contoh penundaan\r\n   ========================================================= *\/\r\n:root:not(#pd-embed) .s03-cases { display: grid; gap: 16px; max-width: 520px; margin: 26px auto 0; }\r\n:root:not(#pd-embed) .case { position: relative; display: flex; flex-direction: row; min-height: 196px; overflow: hidden; border-radius: 20px; text-align: center; }\r\n:root:not(#pd-embed) .case__media { position: relative; flex: 0 0 45%; display: flex; align-items: flex-end; overflow: hidden; background: linear-gradient(180deg, rgba(244, 240, 255, .7), rgba(255, 255, 255, 0)); }\r\n:root:not(#pd-embed) .case__media img { display: block; width: 100%; height: 100%; object-fit: cover; }\r\n:root:not(#pd-embed) .case--naya .case__media img { object-position: 46% 100%; }\r\n:root:not(#pd-embed) .case--nico .case__media img { object-position: 64% 100%; }\r\n:root:not(#pd-embed) .case__body { flex: 1; min-width: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 12px 10px 14px; }\r\n:root:not(#pd-embed) .case__icon { width: 66%; max-width: 120px; margin-bottom: 6px; }\r\n:root:not(#pd-embed) .case__tag {\r\n  display: inline-block; margin: 0; padding: 3px 9px; border-radius: 999px;\r\n  background: linear-gradient(180deg, #8657ff, #6b3df0); color: #fff;\r\n  font-size: 12px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase;\r\n}\r\n:root:not(#pd-embed) .case__title { margin: 6px 0 0; font-size: 17px; font-weight: 800; line-height: 1.18; letter-spacing: -.03em; color: var(--ink); text-wrap: balance; }\r\n:root:not(#pd-embed) .case__quote { align-self: stretch; margin: 8px 0 0; padding: 8px 8px; border-radius: 12px; background: #efebff; font-size: 13.5px; line-height: 1.4; color: var(--ink-soft); text-wrap: balance; }\r\n:root:not(#pd-embed) .case__aside { margin: 7px 0 0; font-size: 14.375px; line-height: 1.45; color: var(--body); text-wrap: balance; }\r\n\r\n:root:not(#pd-embed) .s03-bridge { position: relative; max-width: 30em; margin: 26px auto 0; font-size: 16.5px; font-weight: 800; line-height: 1.4; letter-spacing: -.015em; color: var(--ink); text-wrap: balance; }\r\n:root:not(#pd-embed) .s03-bridge__ask { display: block; color: var(--violet); }\r\n:root:not(#pd-embed) .s03-bridge .sec-ray { display: none; }\r\n\r\n:root:not(#pd-embed) .letter {\r\n  display: grid; grid-template-columns: 56px 1fr; grid-template-areas: \"art from\" \"art msg\";\r\n  align-items: center; gap: 6px 12px;\r\n  max-width: 560px; margin: 18px auto 0; padding: 14px; border-radius: 18px;\r\n  background: linear-gradient(180deg, rgba(243, 239, 255, .96), rgba(236, 231, 255, .92));\r\n  text-align: left;\r\n}\r\n:root:not(#pd-embed) .letter__art { grid-area: art; width: 56px; }\r\n:root:not(#pd-embed) .letter__from { grid-area: from; font-size: 14.5px; font-weight: 800; line-height: 1.3; color: var(--violet); }\r\n:root:not(#pd-embed) .letter__msg { grid-area: msg; margin: 0; padding: 9px 12px; border-radius: 12px; background: rgba(255, 255, 255, .95); box-shadow: 0 6px 16px -12px rgba(84, 62, 180, .5); }\r\n:root:not(#pd-embed) .letter__msg p { margin: 0; font-size: 15px; font-weight: 600; line-height: 1.45; color: var(--ink); }\r\n\r\n:root:not(#pd-embed) .s03-benefit { max-width: 36em; margin: 18px auto 0; font-size: 17.25px; line-height: 1.6; color: var(--ink-soft); text-wrap: pretty; }\r\n\r\n:root:not(#pd-embed) .s03 .fg__l { left: -40vw; bottom: -60px; width: 90vw; opacity: .55; }\r\n:root:not(#pd-embed) .s03 .fg__r { right: -46vw; bottom: -40px; width: 90vw; opacity: .55; }\r\n\r\n\/* =========================================================\r\n   Footer\r\n   ========================================================= *\/\r\n:root:not(#pd-embed) .site-footer { position: relative; isolation: isolate; padding: 56px var(--gutter) 0; overflow-x: clip; }\r\n:root:not(#pd-embed) .site-footer::before { inset: -120px 0 0; -webkit-mask-image: linear-gradient(transparent, #000 160px); mask-image: linear-gradient(transparent, #000 160px); }\r\n:root:not(#pd-embed) .footer__inner { position: relative; z-index: 3; max-width: 1180px; margin-inline: auto; }\r\n:root:not(#pd-embed) .footer__top { display: grid; grid-template-columns: 1fr 1fr; gap: 26px 16px; }\r\n:root:not(#pd-embed) .footer__brand { grid-column: 1 \/ -1; }\r\n:root:not(#pd-embed) .footer__logo { width: 190px; }\r\n:root:not(#pd-embed) .footer__desc { max-width: 24em; margin: 12px 0 0; font-size: 15.5px; line-height: 1.6; color: #3c4190; }\r\n:root:not(#pd-embed) .footer__lockup { width: 230px; margin-top: 16px; }\r\n:root:not(#pd-embed) .footer__nav { display: contents; }\r\n:root:not(#pd-embed) .footer__heading { margin: 0 0 4px; font-size: 16px; font-weight: 800; letter-spacing: -.02em; color: var(--ink); }\r\n:root:not(#pd-embed) .footer__link { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 2px 6px; min-height: 40px; font-size: 14.5px; color: #3c4190; text-decoration: none; }\r\n:root:not(#pd-embed) a.footer__link { text-underline-offset: 4px; transition: color .2s; }\r\n:root:not(#pd-embed) a.footer__link:hover { color: var(--violet); text-decoration: underline; }\r\n:root:not(#pd-embed) .footer__link.is-pending { cursor: default; }\r\n\r\n:root:not(#pd-embed) .footer__duo { position: relative; grid-column: 1 \/ -1; justify-self: center; width: min(92%, 420px); margin: 8px 0 -2px; }\r\n:root:not(#pd-embed) .footer__ray { position: absolute; width: 12%; color: var(--ray); }\r\n:root:not(#pd-embed) .footer__ray--l { left: 6%; top: 3%; transform: scaleX(-1); }\r\n:root:not(#pd-embed) .footer__ray--r { right: 4%; top: 0; }\r\n:root:not(#pd-embed) .footer__legal { display: grid; gap: 4px; padding: 16px 0 28px; border-top: 1.5px solid #cdc4f3; font-size: 13.5px; line-height: 1.55; color: #3c4190; }\r\n:root:not(#pd-embed) .footer__legal p { margin: 0; }\r\n:root:not(#pd-embed) .footer__copy { font-weight: 600; }\r\n:root:not(#pd-embed) .site-footer .fg { z-index: 0; overflow: clip; }\r\n:root:not(#pd-embed) .site-footer .fg__l { left: -26vw; bottom: 0; width: 50vw; opacity: .45; }\r\n:root:not(#pd-embed) .site-footer .fg__r { right: -30vw; bottom: 0; width: 54vw; opacity: .45; }\r\n\r\n@media (min-width: 400px) {\r\n  :root:not(#pd-embed) .footer__legal { grid-template-columns: auto 1fr; gap: 20px; align-items: start; }\r\n}\r\n\r\n\/* =========================================================\r\n   Tablet 720\u20131099\r\n   ========================================================= *\/\r\n@media (min-width: 720px) {\r\n  :root:not(#pd-embed) .pd-sec { padding: 84px var(--gutter) 88px; }\r\n  :root:not(#pd-embed) .sec-title { font-size: clamp(38px, 5.2vw, 54px); line-height: 1.08; }\r\n  :root:not(#pd-embed) .cta-row { gap: 12px; margin-top: 30px; }\r\n  :root:not(#pd-embed) .cta-ray { display: block; width: 44px; }\r\n\r\n  \/* 01 *\/\r\n  :root:not(#pd-embed) .s01__notes { display: none; position: absolute; inset: 0; z-index: 0; pointer-events: none; }\r\n  :root:not(#pd-embed) .s01__note { position: absolute; font-family: var(--font-hand); }\r\n  :root:not(#pd-embed) .s01__note--a { left: 2%; top: 190px; width: 104px; font-size: 14px; }\r\n  :root:not(#pd-embed) .s01__note--b { display: none; }\r\n  :root:not(#pd-embed) .s01__note--c { right: 2%; top: 196px; width: 100px; font-size: 14px; background: #f4f1fb; transform: rotate(6deg); }\r\n  :root:not(#pd-embed) .s01-flow { gap: 64px; max-width: 560px; margin-top: 34px; }\r\n  :root:not(#pd-embed) .s01-flow::before { left: calc(50% - 32px); width: 64px; }\r\n  :root:not(#pd-embed) .s01-flow::after { width: 34px; height: 34px; margin: -17px 0 0 -17px; }\r\n  :root:not(#pd-embed) .s01-card { padding: 20px 18px 22px; border-radius: 24px; row-gap: 10px; }\r\n  :root:not(#pd-embed) .s01-card__label { font-size: 18px; }\r\n  :root:not(#pd-embed) .s01-card__art { width: 132px; max-width: none; }\r\n  :root:not(#pd-embed) .s01-card__text { font-size: 17px; }\r\n  :root:not(#pd-embed) .s01-thoughts { gap: 64px; max-width: 540px; margin-top: 30px; }\r\n  :root:not(#pd-embed) .bubble { padding: 14px 18px; font-size: 16px; }\r\n  :root:not(#pd-embed) .s01-duo { max-width: 900px; margin: 12px auto 0; }\r\n  :root:not(#pd-embed) .s01-note { margin-top: 24px; font-size: 19.8px; }\r\n  :root:not(#pd-embed) .s01-lead { font-size: 19px; }\r\n  :root:not(#pd-embed) .s01 .fg__l { left: -26%; width: 80%; }\r\n  :root:not(#pd-embed) .s01 .fg__r { right: -30%; width: 80%; }\r\n\r\n  \/* 02 *\/\r\n  :root:not(#pd-embed) .s02-duo img { -webkit-mask-image: linear-gradient(#000 52%, transparent 78%); mask-image: linear-gradient(#000 52%, transparent 78%); }\r\n  :root:not(#pd-embed) .s02-duo__naya { left: -6vw; top: 150px; width: 44vw; max-width: 420px; }\r\n  :root:not(#pd-embed) .s02-duo__nico { right: -8vw; top: 170px; width: 44vw; max-width: 420px; }\r\n  :root:not(#pd-embed) .s02-stats { width: min(46vw, 400px); gap: 18px; margin-top: 34px; }\r\n  :root:not(#pd-embed) .stat { padding: 24px 22px 20px; border-radius: 26px; }\r\n  :root:not(#pd-embed) .stat__label { font-size: 16px; }\r\n  :root:not(#pd-embed) .stat__approx { font-size: 24px; }\r\n  :root:not(#pd-embed) .stat__num { font-size: 72px; }\r\n  :root:not(#pd-embed) .stat__ray { width: 26px; }\r\n  :root:not(#pd-embed) .stat__desc { font-size: 16px; }\r\n  :root:not(#pd-embed) .s02-bridge { font-size: 18px; }\r\n  :root:not(#pd-embed) .s02-bridge strong { font-size: 28px; }\r\n  :root:not(#pd-embed) .s02 .fg__l { left: -18vw; width: 56vw; }\r\n  :root:not(#pd-embed) .s02 .fg__r { right: -16vw; width: 52vw; }\r\n\r\n  \/* 03 *\/\r\n  :root:not(#pd-embed) .s03-cases { max-width: 720px; gap: 20px; margin-top: 34px; }\r\n  :root:not(#pd-embed) .case { min-height: 300px; border-radius: 26px; }\r\n  :root:not(#pd-embed) .case__media { flex-basis: 46%; }\r\n  :root:not(#pd-embed) .case__body { padding: 20px 22px 22px; }\r\n  :root:not(#pd-embed) .case__icon { width: 52%; max-width: 190px; margin-bottom: 8px; }\r\n  :root:not(#pd-embed) .case__tag { padding: 4px 13px; font-size: 12.5px; }\r\n  :root:not(#pd-embed) .case__title { font-size: 26px; }\r\n  :root:not(#pd-embed) .case__quote { padding: 12px 14px; font-size: 18px; border-radius: 16px; }\r\n  :root:not(#pd-embed) .case__aside { font-size: 16.675px; }\r\n  :root:not(#pd-embed) .s03-bridge { max-width: none; font-size: 21px; }\r\n  :root:not(#pd-embed) .s03-bridge__ask { display: inline; }\r\n  :root:not(#pd-embed) .letter { grid-template-columns: 96px 1fr; max-width: 700px; padding: 18px 24px; column-gap: 20px; border-radius: 22px; }\r\n  :root:not(#pd-embed) .letter__art { width: 96px; }\r\n  :root:not(#pd-embed) .letter__from { font-size: 17px; align-self: end; }\r\n  :root:not(#pd-embed) .letter__msg p { font-size: 17px; }\r\n  :root:not(#pd-embed) .s03-benefit { font-size: 19.55px; }\r\n  :root:not(#pd-embed) .s03-benefit span { display: block; }\r\n  :root:not(#pd-embed) .s03 .fg__l { left: -20vw; width: 60vw; }\r\n  :root:not(#pd-embed) .s03 .fg__r { right: -24vw; width: 60vw; }\r\n\r\n  \/* footer *\/\r\n  :root:not(#pd-embed) .site-footer { padding-top: 76px; }\r\n  :root:not(#pd-embed) .footer__top { gap: 32px 40px; }\r\n  :root:not(#pd-embed) .footer__logo { width: 250px; }\r\n  :root:not(#pd-embed) .footer__desc { font-size: 18px; }\r\n  :root:not(#pd-embed) .footer__lockup { width: 300px; }\r\n  :root:not(#pd-embed) .footer__heading { font-size: 18px; }\r\n  :root:not(#pd-embed) .footer__link { font-size: 16px; min-height: 44px; }\r\n  :root:not(#pd-embed) .footer__duo { width: min(70%, 520px); }\r\n  :root:not(#pd-embed) .footer__legal { gap: 32px; padding: 20px 0 32px; font-size: 15px; }\r\n  :root:not(#pd-embed) .site-footer .fg__l { left: -10vw; width: 32vw; }\r\n  :root:not(#pd-embed) .site-footer .fg__r { right: -12vw; width: 34vw; }\r\n}\r\n\r\n@media (min-width: 900px) {\r\n  :root:not(#pd-embed) .s01__notes { display: block; }\r\n}\r\n\r\n\/* =========================================================\r\n   Desktop \u22651100: v12 desktop composition, scaled by --k\r\n   ========================================================= *\/\r\n@media (min-width: 1100px) {\r\n  :root:not(#pd-embed) .pd-sec { padding: calc(76 * var(--k)) 0 calc(76 * var(--k)); }\r\n  :root:not(#pd-embed) .sec-title { font-size: max(44px, calc(64 * var(--k))); line-height: 1.06; letter-spacing: -.042em; }\r\n  :root:not(#pd-embed) .cta-row { gap: calc(14 * var(--k)); margin-top: calc(28 * var(--k)); }\r\n  :root:not(#pd-embed) .cta.cta--section {\r\n    width: auto; min-width: max(330px, calc(496 * var(--k)));\r\n    min-height: max(58px, calc(80 * var(--k)));\r\n    padding: 0 calc(40 * var(--k)); gap: calc(14 * var(--k));\r\n    font-size: max(18px, calc(26 * var(--k)));\r\n  }\r\n  :root:not(#pd-embed) .cta-ray { width: max(36px, calc(52 * var(--k))); }\r\n  :root:not(#pd-embed) .cta-note { font-size: max(13px, calc(15 * var(--k))); }\r\n  \/* absolutely placed art is anchored to a centred 1672-wide frame:\r\n     calc(50% - 836 * var(--k)) is 0 up to 1672 px and grows beyond it *\/\r\n\r\n  \/* 01 *\/\r\n  :root:not(#pd-embed) .s01__notes { max-width: 1672px; margin-inline: auto; }\r\n  :root:not(#pd-embed) .s01__note { font-size: max(13px, calc(21 * var(--k))); }\r\n  :root:not(#pd-embed) .s01__note--a { left: calc(96 * var(--k)); top: calc(96 * var(--k)); width: calc(160 * var(--k)); font-size: max(13px, calc(21 * var(--k))); }\r\n  :root:not(#pd-embed) .s01__note--b { display: grid; left: calc(262 * var(--k)); top: calc(168 * var(--k)); width: calc(96 * var(--k)); font-size: max(11px, calc(15 * var(--k))); }\r\n  \/* Bring the future note into the headline's visual orbit on desktop. *\/\r\n  :root:not(#pd-embed) .s01__note--c { right: calc(180 * var(--k)); top: calc(70 * var(--k)); width: calc(150 * var(--k)); font-size: max(13px, calc(21 * var(--k))); }\r\n\r\n  :root:not(#pd-embed) .s01-flow { gap: calc(90 * var(--k)); max-width: calc(684 * var(--k)); margin-top: calc(34 * var(--k)); }\r\n  :root:not(#pd-embed) .s01-flow::before { left: calc(50% - 44 * var(--k)); width: calc(88 * var(--k)); }\r\n  :root:not(#pd-embed) .s01-flow::after { width: calc(40 * var(--k)); height: calc(40 * var(--k)); margin: calc(-20 * var(--k)) 0 0 calc(-20 * var(--k)); }\r\n  :root:not(#pd-embed) .s01-card { padding: calc(24 * var(--k)) calc(20 * var(--k)) calc(26 * var(--k)); border-radius: calc(28 * var(--k)); row-gap: calc(10 * var(--k)); }\r\n  :root:not(#pd-embed) .s01-card__label { font-size: max(16px, calc(24 * var(--k))); letter-spacing: .01em; }\r\n  :root:not(#pd-embed) .s01-card__art { width: calc(140 * var(--k)); }\r\n  :root:not(#pd-embed) .s01-card__text { font-size: max(16px, calc(22 * var(--k))); }\r\n  :root:not(#pd-embed) .s01-thoughts { gap: calc(90 * var(--k)); max-width: calc(560 * var(--k)); margin-top: calc(30 * var(--k)); }\r\n  :root:not(#pd-embed) .bubble { padding: calc(16 * var(--k)) calc(22 * var(--k)); font-size: max(15px, calc(20 * var(--k))); border-radius: calc(40 * var(--k)); }\r\n\r\n  :root:not(#pd-embed) .s01-duo { position: absolute; inset: 0; z-index: 1; display: block; margin: 0; max-width: none; pointer-events: none; }\r\n  :root:not(#pd-embed) .s01-duo > * { position: absolute; bottom: calc(10 * var(--k)); margin: 0; }\r\n  :root:not(#pd-embed) .s01-duo__naya { left: calc(-20 * var(--k)); width: calc(500 * var(--k)); }\r\n  :root:not(#pd-embed) .s01-duo__nico { right: calc(-60 * var(--k)); width: calc(620 * var(--k)); }\r\n\r\n  :root:not(#pd-embed) .s01-note { max-width: calc(660 * var(--k)); margin-top: calc(28 * var(--k)); font-size: max(18px, calc(22.8 * var(--k))); }\r\n  :root:not(#pd-embed) .s01-lead { max-width: calc(690 * var(--k)); margin-top: calc(10 * var(--k)); font-size: max(17px, calc(23 * var(--k))); line-height: 1.4; }\r\n  :root:not(#pd-embed) .s01 .fg__l { left: calc(50% - 836 * var(--k) - 260 * var(--k)); bottom: calc(-120 * var(--k)); width: calc(900 * var(--k)); opacity: .55; }\r\n  :root:not(#pd-embed) .s01 .fg__r { right: calc(50% - 836 * var(--k) - 150 * var(--k)); bottom: calc(-70 * var(--k)); width: calc(820 * var(--k)); opacity: .55; }\r\n\r\n  \/* 02 *\/\r\n  :root:not(#pd-embed) .s02 { padding-bottom: calc(90 * var(--k)); }\r\n  :root:not(#pd-embed) .s02-duo img { -webkit-mask-image: linear-gradient(#000 56%, transparent 79%); mask-image: linear-gradient(#000 56%, transparent 79%); }\r\n  :root:not(#pd-embed) .s02-duo__naya { left: calc(50% - 836 * var(--k) + 30 * var(--k)); top: calc(30 * var(--k)); width: calc(640 * var(--k)); max-width: none; }\r\n  :root:not(#pd-embed) .s02-duo__nico { right: calc(50% - 836 * var(--k) - 40 * var(--k)); top: calc(20 * var(--k)); width: calc(640 * var(--k)); max-width: none; }\r\n  :root:not(#pd-embed) .s02-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: calc(22 * var(--k)); width: calc(804 * var(--k)); margin-top: calc(34 * var(--k)); }\r\n  :root:not(#pd-embed) .stat { padding: calc(32 * var(--k)) calc(30 * var(--k)) calc(28 * var(--k)); border-radius: calc(30 * var(--k)); }\r\n  :root:not(#pd-embed) .stat__label { font-size: max(16px, calc(25 * var(--k))); letter-spacing: .01em; }\r\n  :root:not(#pd-embed) .stat__value { min-height: calc(150 * var(--k)); margin-top: calc(4 * var(--k)); }\r\n  :root:not(#pd-embed) .stat__approx { font-size: max(20px, calc(34 * var(--k))); }\r\n  :root:not(#pd-embed) .stat__num { font-size: max(64px, calc(116 * var(--k))); }\r\n  :root:not(#pd-embed) .stat__ray { width: calc(44 * var(--k)); }\r\n  :root:not(#pd-embed) .stat__desc { font-size: max(15px, calc(21 * var(--k))); }\r\n  :root:not(#pd-embed) .s02-bridge { max-width: calc(760 * var(--k)); margin-top: calc(30 * var(--k)); font-size: max(16px, calc(23 * var(--k))); }\r\n  :root:not(#pd-embed) .s02-bridge strong { font-size: max(22px, calc(34 * var(--k))); }\r\n  :root:not(#pd-embed) .sources { max-width: calc(780 * var(--k)); margin-top: calc(14 * var(--k)); font-size: max(13px, calc(14.5 * var(--k))); }\r\n  :root:not(#pd-embed) .s02 .fg__l { left: calc(50% - 836 * var(--k) - 200 * var(--k)); bottom: calc(-40 * var(--k)); width: calc(820 * var(--k)); opacity: .9; }\r\n  :root:not(#pd-embed) .s02 .fg__r { right: calc(50% - 836 * var(--k) - 230 * var(--k)); bottom: calc(-30 * var(--k)); width: calc(800 * var(--k)); opacity: .9; }\r\n\r\n  \/* 03 *\/\r\n  :root:not(#pd-embed) .s03-cases { grid-template-columns: 1fr 1fr; gap: calc(30 * var(--k)); max-width: calc(1476 * var(--k)); margin-top: calc(32 * var(--k)); }\r\n  :root:not(#pd-embed) .case { min-height: calc(388 * var(--k)); border-radius: calc(30 * var(--k)); }\r\n  :root:not(#pd-embed) .case__media { flex-basis: 48%; }\r\n  :root:not(#pd-embed) .case__body { padding: calc(22 * var(--k)) calc(28 * var(--k)) calc(26 * var(--k)); }\r\n  :root:not(#pd-embed) .case__icon { width: 58%; max-width: none; margin-bottom: calc(8 * var(--k)); }\r\n  :root:not(#pd-embed) .case__tag { padding: calc(4 * var(--k)) calc(16 * var(--k)); font-size: max(12px, calc(15 * var(--k))); }\r\n  :root:not(#pd-embed) .case__title { margin-top: calc(10 * var(--k)); font-size: max(21px, calc(32 * var(--k))); }\r\n  :root:not(#pd-embed) .case__quote { margin-top: calc(12 * var(--k)); padding: calc(14 * var(--k)) calc(18 * var(--k)); font-size: max(16px, calc(23 * var(--k))); border-radius: calc(18 * var(--k)); }\r\n  :root:not(#pd-embed) .case__aside { font-size: max(15.525px, calc(18.4 * var(--k))); }\r\n  :root:not(#pd-embed) .s03-bridge { width: fit-content; margin-top: calc(30 * var(--k)); font-size: max(18px, calc(30 * var(--k))); }\r\n  :root:not(#pd-embed) .s03-bridge .sec-ray { display: block; width: calc(46 * var(--k)); }\r\n  :root:not(#pd-embed) .s03-bridge .sec-ray--l { left: calc(-66 * var(--k)); top: -.1em; transform: scaleX(-1) rotate(-50deg); }\r\n  :root:not(#pd-embed) .s03-bridge .sec-ray--r { right: calc(-66 * var(--k)); top: -.1em; transform: rotate(130deg); }\r\n  :root:not(#pd-embed) .letter { grid-template-columns: calc(140 * var(--k)) 1fr; max-width: calc(978 * var(--k)); margin-top: calc(24 * var(--k)); padding: calc(18 * var(--k)) calc(34 * var(--k)); column-gap: calc(34 * var(--k)); border-radius: calc(26 * var(--k)); }\r\n  :root:not(#pd-embed) .letter__art { width: calc(140 * var(--k)); }\r\n  :root:not(#pd-embed) .letter__from { font-size: max(16px, calc(23 * var(--k))); }\r\n  :root:not(#pd-embed) .letter__msg p { font-size: max(16px, calc(23 * var(--k))); }\r\n  :root:not(#pd-embed) .s03-benefit { max-width: calc(820 * var(--k)); margin-top: calc(20 * var(--k)); font-size: max(17.825px, calc(23 * var(--k))); }\r\n  :root:not(#pd-embed) .s03 .fg__l { left: calc(50% - 836 * var(--k) - 160 * var(--k)); bottom: calc(-150 * var(--k)); width: calc(720 * var(--k)); }\r\n  :root:not(#pd-embed) .s03 .fg__r { right: calc(50% - 836 * var(--k) - 200 * var(--k)); bottom: calc(-120 * var(--k)); width: calc(720 * var(--k)); }\r\n\r\n  \/* footer *\/\r\n  :root:not(#pd-embed) .site-footer { padding: calc(80 * var(--k)) calc(110 * var(--k)) 0; }\r\n  :root:not(#pd-embed) .footer__inner { max-width: calc(1460 * var(--k)); }\r\n  :root:not(#pd-embed) .footer__top { grid-template-columns: minmax(0, 1fr) auto auto calc(500 * var(--k)); align-items: center; gap: 0 calc(56 * var(--k)); }\r\n  :root:not(#pd-embed) .footer__brand { grid-column: auto; }\r\n  :root:not(#pd-embed) .footer__logo { width: max(200px, calc(280 * var(--k))); }\r\n  :root:not(#pd-embed) .footer__desc { font-size: max(15px, calc(21 * var(--k))); }\r\n  :root:not(#pd-embed) .footer__lockup { width: max(240px, calc(310 * var(--k))); margin-top: calc(26 * var(--k)); }\r\n  :root:not(#pd-embed) .footer__brand, :root:not(#pd-embed) .footer__group { align-self: start; margin-top: calc(80 * var(--k)); }\r\n  :root:not(#pd-embed) .footer__heading { line-height: 1.45; }\r\n  :root:not(#pd-embed) .footer__heading { font-size: max(17px, calc(26 * var(--k))); margin-bottom: calc(10 * var(--k)); white-space: nowrap; }\r\n  :root:not(#pd-embed) .footer__link { font-size: max(15px, calc(21 * var(--k))); min-height: max(40px, calc(52 * var(--k))); white-space: nowrap; }\r\n  :root:not(#pd-embed) .footer__duo { grid-column: auto; align-self: end; justify-self: end; width: 100%; margin: calc(-50 * var(--k)) 0 -2px; }\r\n  :root:not(#pd-embed) .footer__legal { gap: calc(40 * var(--k)); padding: calc(26 * var(--k)) 0 calc(50 * var(--k)); font-size: max(14px, calc(18 * var(--k))); }\r\n  :root:not(#pd-embed) .site-footer .fg__l { left: calc(-60 * var(--k)); width: calc(300 * var(--k)); bottom: calc(-40 * var(--k)); opacity: .6; }\r\n  :root:not(#pd-embed) .site-footer .fg__r { right: calc(-140 * var(--k)); width: calc(380 * var(--k)); bottom: calc(-30 * var(--k)); opacity: .6; }\r\n\r\n  \/* ornaments across section joins *\/\r\n  :root:not(#pd-embed) .bridge .leaf { width: calc(330 * var(--k)); }\r\n}\r\n\r\n\/* ---------- Boundary ornaments (positions per join) ---------- *\/\r\n:root:not(#pd-embed) .bridge .leaf { width: 150px; height: auto; }\r\n:root:not(#pd-embed) .bridge--01 .leaf { left: -70px; top: -120px; transform: rotate(-16deg); }\r\n:root:not(#pd-embed) .bridge--01 .bit { right: 12%; top: -30px; }\r\n:root:not(#pd-embed) .bridge--01 .heart { right: 7%; top: 40px; }\r\n:root:not(#pd-embed) .bridge--02 .leaf { right: -80px; top: -110px; transform: rotate(18deg) scaleX(-1); }\r\n:root:not(#pd-embed) .bridge--02 .bit { left: 10%; top: -20px; }\r\n:root:not(#pd-embed) .bridge--03 .leaf { left: -80px; top: -140px; transform: rotate(-12deg); }\r\n:root:not(#pd-embed) .bridge--03 .bit { right: 14%; top: -40px; }\r\n:root:not(#pd-embed) .bridge--04 .leaf { right: -90px; top: -130px; transform: rotate(14deg) scaleX(-1); opacity: .4; }\r\n:root:not(#pd-embed) .bridge--04 .bit { left: 16%; top: -10px; }\r\n:root:not(#pd-embed) .bridge--04 .heart { left: 8%; top: -60px; }\r\n@media (min-width: 1100px) {\r\n  :root:not(#pd-embed) .bridge .leaf { width: calc(330 * var(--k)); }\r\n  :root:not(#pd-embed) .bridge--01 .leaf { left: calc(-150 * var(--k)); top: calc(-230 * var(--k)); }\r\n  :root:not(#pd-embed) .bridge--02 .leaf { right: calc(-150 * var(--k)); top: calc(-220 * var(--k)); }\r\n  :root:not(#pd-embed) .bridge--03 .leaf { left: calc(-160 * var(--k)); top: calc(-260 * var(--k)); }\r\n  :root:not(#pd-embed) .bridge--04 .leaf { right: calc(-170 * var(--k)); top: calc(-250 * var(--k)); }\r\n}\r\n\r\n@media (prefers-reduced-motion: reduce) {\r\n  :root:not(#pd-embed) .float, :root:not(#pd-embed) .reveal { animation: none !important; transform: none; opacity: 1; }\r\n}\r\n\r\n\/* ===== v9.css ===== *\/\r\n\/* #ProcrastinationDecoded homepage v9 (baseline: v8; future-self scene appended at the end as section 6)\r\n   v6 notes:\r\n   1. Sticky, compact header with in-page jump links + \"Mulai tes\"\r\n   2. Yellow emphasis bursts tied to the real text\/buttons instead of fixed coordinates\r\n   3. Gentle scroll reveal (progressive enhancement, off for reduced motion) *\/\r\n\r\n\/* =========================================================\r\n   1. Header\r\n   ========================================================= *\/\r\nhtml:root:not(#pd-embed) { scroll-padding-top: 84px; }\r\n@media (prefers-reduced-motion: no-preference) { html:root:not(#pd-embed) { scroll-behavior: smooth; } }\r\n\r\n:root:not(#pd-embed) .site-header {\r\n  position: fixed; top: 0; left: 0; right: 0; z-index: 40;\r\n  transition: padding .35s var(--ease-out), background-color .3s, box-shadow .3s;\r\n}\r\n:root:not(#pd-embed) .nav-shell { transition: min-height .35s var(--ease-out), box-shadow .3s, background-color .3s; }\r\n:root:not(#pd-embed) .brand .crop { transition: height .35s var(--ease-out); }\r\n\r\n\/* current section: colour + tint only (no weight change, so the pill never jiggles) *\/\r\n:root:not(#pd-embed) .nav-links a[aria-current] { background: var(--lavender); color: var(--ink); font-weight: 600; }\r\n\r\n\/* \"Mulai tes\": small yellow pill that opens the same quiz *\/\r\n:root:not(#pd-embed) .nav-cta {\r\n  display: inline-flex; align-items: center; justify-content: center; gap: 8px;\r\n  width: 100%; min-height: 48px; margin-top: 8px; padding: 0 20px;\r\n  border: 1px solid rgba(232, 150, 8, .55); border-radius: 999px;\r\n  background: linear-gradient(180deg, #ffd964 0%, #fcc53a 48%, #f7b51b 100%);\r\n  box-shadow: inset 0 1.5px 0 rgba(255, 255, 255, .65), 0 8px 18px -10px rgba(242, 160, 12, .8);\r\n  color: var(--ink); font: inherit; font-size: 16px; font-weight: 700; white-space: nowrap; cursor: pointer;\r\n  transition: transform .2s var(--ease-out), filter .2s, box-shadow .2s;\r\n}\r\n:root:not(#pd-embed) .nav-cta:hover { transform: translateY(-1px); filter: saturate(1.08) brightness(1.02); }\r\n:root:not(#pd-embed) .nav-cta:active { transform: none; }\r\n:root:not(#pd-embed) .nav-cta__icon { width: 1.3em; height: 1.3em; flex: none; }\r\n\r\n\/* Periodic CTA attention cue. The quiet part of each cycle is intentionally long,\r\n   so the buttons feel inviting instead of restless. *\/\r\n:root:not(#pd-embed) :where(.cta, .nav-cta) {\r\n  position: relative;\r\n  isolation: isolate;\r\n  overflow: hidden;\r\n}\r\n:root:not(#pd-embed) :where(.cta, .nav-cta)::after {\r\n  content: \"\";\r\n  position: absolute;\r\n  z-index: 2;\r\n  top: -65%;\r\n  bottom: -65%;\r\n  left: -34%;\r\n  width: 24%;\r\n  pointer-events: none;\r\n  opacity: 0;\r\n  translate: -280% 0;\r\n  rotate: 14deg;\r\n  background: linear-gradient(90deg, transparent, rgba(255,255,255,.18) 22%, rgba(255,255,255,.92) 50%, rgba(255,246,197,.55) 72%, transparent);\r\n  filter: blur(.4px);\r\n}\r\n\r\n@media (prefers-reduced-motion: no-preference) {\r\n  :root:not(#pd-embed) :where(.cta, .nav-cta) {\r\n    animation: cta-soft-wiggle 7.2s cubic-bezier(.22,.9,.32,1) infinite;\r\n  }\r\n  :root:not(#pd-embed) :where(.cta, .nav-cta)::after {\r\n    animation: cta-gold-shine 7.2s ease-in-out infinite;\r\n  }\r\n  :root:not(#pd-embed) .nav-cta,\r\n  :root:not(#pd-embed) .nav-cta::after { animation-delay: 1.15s; }\r\n\r\n  :root:not(#pd-embed) .cta-row .cta-ray {\r\n    transform-origin: 50% 50%;\r\n    animation: cta-ray-wiggle 7.2s cubic-bezier(.22,.9,.32,1) infinite;\r\n    filter: drop-shadow(0 3px 5px rgba(245,166,15,.16));\r\n  }\r\n  :root:not(#pd-embed) .cta-row:nth-of-type(even) .cta,\r\n  :root:not(#pd-embed) .cta-row:nth-of-type(even) .cta::after,\r\n  :root:not(#pd-embed) .cta-row:nth-of-type(even) .cta-ray { animation-delay: .65s; }\r\n}\r\n\r\n@keyframes cta-soft-wiggle {\r\n  0%, 80%, 100% { rotate: 0deg; scale: 1; }\r\n  82% { rotate: -1deg; scale: 1.012; }\r\n  84% { rotate: .9deg; scale: 1.018; }\r\n  86% { rotate: -.55deg; scale: 1.012; }\r\n  88% { rotate: .3deg; scale: 1.006; }\r\n  90% { rotate: 0deg; scale: 1; }\r\n}\r\n@keyframes cta-gold-shine {\r\n  0%, 72% { translate: -280% 0; opacity: 0; }\r\n  75% { opacity: .15; }\r\n  82% { translate: 610% 0; opacity: .92; }\r\n  85%, 100% { translate: 610% 0; opacity: 0; }\r\n}\r\n@keyframes cta-ray-wiggle {\r\n  0%, 79%, 100% { rotate: 0deg; scale: 1; opacity: 1; }\r\n  82% { rotate: -7deg; scale: 1.08; opacity: .9; }\r\n  85% { rotate: 6deg; scale: 1.14; opacity: 1; }\r\n  88% { rotate: -3deg; scale: 1.06; }\r\n  91% { rotate: 0deg; scale: 1; }\r\n}\r\n\r\n@media (prefers-reduced-motion: reduce) {\r\n  :root:not(#pd-embed) :where(.cta, .nav-cta),\r\n  :root:not(#pd-embed) :where(.cta, .nav-cta)::after,\r\n  :root:not(#pd-embed) .cta-row .cta-ray { animation: none !important; }\r\n}\r\n\r\n\/* phones\/tablets: transparent over the hero, frosted bar once scrolled *\/\r\n@media (max-width: 1023.98px) {\r\n  :root:not(#pd-embed) .site-header.is-scrolled {\r\n    padding-top: 8px; padding-bottom: 8px;\r\n    background: rgba(255, 253, 249, .9);\r\n    -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);\r\n    box-shadow: 0 10px 30px -22px rgba(62, 48, 140, .45);\r\n  }\r\n  :root:not(#pd-embed) .site-header.is-scrolled .brand .crop { height: 26px; }\r\n  html:root:not(#pd-embed) { scroll-padding-top: 72px; }\r\n}\r\n\r\n\/* desktop: the floating pill tightens and lifts *\/\r\n@media (min-width: 1024px) {\r\n  :root:not(#pd-embed) .nav-cta { width: auto; margin: 0; min-height: max(44px, calc(46 * var(--u))); padding: 0 max(18px, calc(26 * var(--u))); font-size: max(14px, calc(16 * var(--u))); }\r\n  :root:not(#pd-embed) .nav-links { margin-right: calc(40 * var(--u)); }\r\n  :root:not(#pd-embed) .site-header.is-scrolled { padding-top: 12px; }\r\n  :root:not(#pd-embed) .site-header.is-scrolled .nav-shell {\r\n    min-height: 58px; background: rgba(255, 255, 255, .96);\r\n    box-shadow: 0 16px 40px -22px rgba(86, 70, 170, .42), 0 2px 6px -2px rgba(86, 70, 170, .1);\r\n  }\r\n  :root:not(#pd-embed) .site-header.is-scrolled .brand .crop { height: max(22px, calc(28 * var(--u))); }\r\n  :root:not(#pd-embed) .site-header.is-scrolled .nav-links a { min-height: 38px; }\r\n  :root:not(#pd-embed) .site-header.is-scrolled .nav-cta { min-height: 40px; }\r\n}\r\n\r\n\/* =========================================================\r\n   2. Yellow emphasis bursts (#i-burst is drawn pointing right)\r\n   ========================================================= *\/\r\n:root:not(#pd-embed) .ray { display: inline-block; flex: none; color: var(--ray); overflow: visible; pointer-events: none; }\r\n:root:not(#pd-embed) .ray--right  { transform: none; }\r\n:root:not(#pd-embed) .ray--left   { transform: scaleX(-1); }\r\n:root:not(#pd-embed) .ray--upleft { transform: rotate(-135deg); }\r\n:root:not(#pd-embed) .nowrap { white-space: nowrap; }\r\n\r\n\/* Headings: the burst is part of the line, so it follows the real first word \/ final punctuation.\r\n   Negative margins cancel its width, so the centred text does not shift. *\/\r\n:root:not(#pd-embed) .sec-title .ray { width: .62em; height: .62em; }\r\n:root:not(#pd-embed) .ray--lead { margin: 0 .14em 0 -.76em; vertical-align: .58em; }\r\n:root:not(#pd-embed) .ray--tail { margin: 0 -.78em 0 .16em; vertical-align: -.04em; }\r\n\r\n\/* CTA rows: mirrored pair, vertically centred on the pill, origin facing the button *\/\r\n:root:not(#pd-embed) .cta-row { gap: 8px; }\r\n:root:not(#pd-embed) .cta-ray { display: none; width: 34px; height: 34px; }\r\n:root:not(#pd-embed) .cta-ray--ghost { visibility: hidden; }\r\n:root:not(#pd-embed) .cta-row--hero { margin-top: clamp(20px, 5.5vw, 30px); }\r\n:root:not(#pd-embed) .cta-row--hero .cta { margin-top: 0; }\r\n@media (min-width: 520px) { :root:not(#pd-embed) .cta-ray { display: inline-block; } }\r\n@media (min-width: 720px) { :root:not(#pd-embed) .cta-ray { width: 42px; height: 42px; } :root:not(#pd-embed) .cta-row { gap: 10px; } }\r\n@media (min-width: 1100px) {\r\n  :root:not(#pd-embed) .cta-row { gap: calc(12 * var(--k)); }\r\n  :root:not(#pd-embed) .cta-ray { width: max(36px, calc(50 * var(--k))); height: max(36px, calc(50 * var(--k))); }\r\n}\r\n@media (min-width: 1180px) {\r\n  :root:not(#pd-embed) .cta-row--hero { margin-top: calc(40 * var(--u)); gap: calc(12 * var(--u)); }\r\n  :root:not(#pd-embed) .cta-row--hero .cta-ray { width: max(36px, calc(52 * var(--u))); height: max(36px, calc(52 * var(--u))); }\r\n}\r\n\r\n\/* Statistics: off the number's top-left corner, clear of the digits *\/\r\n:root:not(#pd-embed) .stat__numwrap { position: relative; display: inline-block; }\r\n:root:not(#pd-embed) .stat__numwrap .stat__ray {\r\n  position: absolute; left: 0; top: 0; right: auto; bottom: auto;\r\n  width: 20px; height: 20px; transform: translate(-78%, -18%) rotate(-135deg);\r\n}\r\n@media (min-width: 720px) { :root:not(#pd-embed) .stat__numwrap .stat__ray { width: 26px; height: 26px; } }\r\n@media (min-width: 1100px) { :root:not(#pd-embed) .stat__numwrap .stat__ray { width: max(24px, calc(38 * var(--k))); height: max(24px, calc(38 * var(--k))); } }\r\n\r\n\/* Bridge line in section 03: mirrored pair centred on the single desktop line *\/\r\n:root:not(#pd-embed) .s03-bridge .bridge-ray { display: none; }\r\n@media (min-width: 1100px) {\r\n  :root:not(#pd-embed) .s03-bridge .bridge-ray { display: block; position: absolute; top: 50%; width: calc(40 * var(--k)); height: calc(40 * var(--k)); }\r\n  :root:not(#pd-embed) .s03-bridge .bridge-ray--l { right: 100%; margin-right: calc(12 * var(--k)); transform: translateY(-50%) scaleX(-1); }\r\n  :root:not(#pd-embed) .s03-bridge .bridge-ray--r { left: 100%; margin-left: calc(12 * var(--k)); transform: translateY(-50%); }\r\n}\r\n\r\n\/* =========================================================\r\n   3. Scroll reveal (site.js adds .reveal-ready only when it can observe)\r\n   ========================================================= *\/\r\n@media (prefers-reduced-motion: no-preference) {\r\n  .js.reveal-ready:root:not(#pd-embed) [data-reveal] {\r\n    transition: opacity .6s var(--ease-out), translate .7s var(--ease-out);\r\n    transition-delay: var(--d, 0ms);\r\n  }\r\n  .js.reveal-ready:root:not(#pd-embed) [data-reveal]:not(.is-in) { opacity: 0; translate: 0 22px; }\r\n}\r\n\r\n\/* =========================================================\r\n   4. Section 05 \u00b7 Konsekuensi menunda (carousel pamungkas)\r\n   Same stacking model as the other sections: glow z-1, props z2, content z3.\r\n   ========================================================= *\/\r\n:root:not(#pd-embed) .final-consequences {\r\n  --glow:\r\n    radial-gradient(ellipse 34% 24% at 0% 30%, #cbb9ff5a, transparent 98%),\r\n    radial-gradient(ellipse 32% 26% at 100% 22%, #d4bfff58, transparent 98%),\r\n    radial-gradient(ellipse 44% 18% at 50% 58%, #fff0cc4d, transparent 98%),\r\n    radial-gradient(ellipse 30% 22% at 6% 88%, #ffe1a540, transparent 98%),\r\n    radial-gradient(ellipse 30% 22% at 96% 90%, #ffe3b245, transparent 98%);\r\n  padding-bottom: 40px;\r\n}\r\n:root:not(#pd-embed) .final-consequences__eyebrow {\r\n  margin: 0 0 10px; font-family: var(--font-hand); font-weight: 700;\r\n  font-size: 19px; line-height: 1.2; color: var(--violet);\r\n}\r\n:root:not(#pd-embed) .final-consequences__title { max-width: 980px; }\r\n@media (max-width: 719px) { :root:not(#pd-embed) .final-consequences__title { font-size: clamp(23px, 6.3vw, 30px); line-height: 1.14; } }\r\n@media (min-width: 720px) { :root:not(#pd-embed) .final-consequences__closing-lead { display: block; } }\r\n:root:not(#pd-embed) .final-consequences__lead {\r\n  \/* v15: 115% size for the consequence-section lead and its bold conclusion. *\/\r\n  max-width: 34em; margin: 14px auto 0; font-size: 17.825px; line-height: 1.6; color: var(--body); text-wrap: balance;\r\n}\r\n:root:not(#pd-embed) .final-consequences__outro { margin-top: 18px; }\r\n:root:not(#pd-embed) .final-consequences__closing {\r\n  max-width: 26em; margin: 0 auto; font-size: 21px; font-weight: 800; line-height: 1.28; letter-spacing: -.03em;\r\n  color: var(--ink); text-wrap: balance;\r\n}\r\n:root:not(#pd-embed) .final-consequences__sub { margin: 10px auto 0; font-size: 17.825px; line-height: 1.55; color: var(--body); }\r\n:root:not(#pd-embed) .final-consequences .cta-row { margin-top: 22px; }\r\n\r\n\/* ---------- carousel ---------- *\/\r\n:root:not(#pd-embed) .carousel { position: relative; z-index: 3; margin: 26px calc(-1 * var(--gutter)) 0; }\r\n:root:not(#pd-embed) .carousel__viewport {\r\n  --card-gap: 14px;\r\n  --card-w: calc(100vw \/ 1.13 - var(--card-gap));\r\n  position: relative; overflow: hidden;\r\n  touch-action: pan-y; cursor: grab; user-select: none; -webkit-user-select: none;\r\n  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 18px, #000 calc(100% - 18px), transparent 100%);\r\n  mask-image: linear-gradient(90deg, transparent 0, #000 18px, #000 calc(100% - 18px), transparent 100%);\r\n}\r\n:root:not(#pd-embed) .carousel__viewport.is-dragging { cursor: grabbing; }\r\n:root:not(#pd-embed) .carousel__viewport:focus-visible { outline: 3px solid var(--focus); outline-offset: -3px; }\r\n:root:not(#pd-embed) .carousel__track { display: flex; gap: var(--card-gap); width: max-content; padding: 14px 0 26px; will-change: transform; }\r\n\r\n:root:not(#pd-embed) .consequence-card {\r\n  flex: none; width: var(--card-w); display: flex; flex-direction: column; overflow: hidden;\r\n  border: 1px solid rgba(214, 205, 250, .95); border-radius: 22px;\r\n  background: rgba(255, 255, 255, .92);\r\n  box-shadow: 0 22px 44px -30px rgba(84, 62, 180, .45), 0 2px 6px -2px rgba(84, 62, 180, .08);\r\n}\r\n:root:not(#pd-embed) .consequence-card__media { display: block; aspect-ratio: 1 \/ 1; overflow: hidden; background: linear-gradient(160deg, #efeaff, #fff4dd); }\r\n:root:not(#pd-embed) .consequence-card__media img { display: block; width: 100%; height: 100%; object-fit: cover; pointer-events: none; }\r\n:root:not(#pd-embed) .consequence-card__copy { padding: 14px 16px 18px; text-align: center; }\r\n:root:not(#pd-embed) .consequence-card__title { margin: 0; font-size: 19px; font-weight: 800; line-height: 1.22; letter-spacing: -.025em; color: var(--ink); text-wrap: balance; }\r\n:root:not(#pd-embed) .consequence-card__body { margin: 6px 0 0; font-size: 14.5px; line-height: 1.45; color: var(--body); text-wrap: balance; }\r\n\r\n:root:not(#pd-embed) .carousel__controls { display: flex; align-items: center; justify-content: center; gap: 10px; margin-top: 2px; padding-inline: var(--gutter); }\r\n:root:not(#pd-embed) .carousel__arrow {\r\n  display: grid; place-items: center; flex: none; width: 46px; height: 46px; padding: 0;\r\n  border: 1px solid rgba(214, 205, 250, .95); border-radius: 50%;\r\n  background: rgba(255, 255, 255, .95); color: var(--violet); cursor: pointer;\r\n  box-shadow: 0 10px 22px -14px rgba(84, 62, 180, .55);\r\n  transition: transform .2s var(--ease-out), background-color .2s, box-shadow .2s;\r\n}\r\n:root:not(#pd-embed) .carousel__arrow:hover { background: #fff; transform: translateY(-1px); box-shadow: 0 14px 26px -14px rgba(84, 62, 180, .6); }\r\n:root:not(#pd-embed) .carousel__arrow:active { transform: scale(.95); }\r\n:root:not(#pd-embed) .carousel__arrow svg { width: 20px; height: 20px; }\r\n:root:not(#pd-embed) .carousel__dots { display: flex; align-items: center; }\r\n:root:not(#pd-embed) .carousel__dot { position: relative; width: 26px; height: 32px; padding: 0; border: 0; background: none; cursor: pointer; }\r\n:root:not(#pd-embed) .carousel__dot::before {\r\n  content: \"\"; position: absolute; left: 50%; top: 50%; width: 8px; height: 8px; margin: -4px 0 0 -4px;\r\n  border-radius: 99px; background: #d9d1f7; transition: width .3s var(--ease-out), margin .3s var(--ease-out), background-color .3s;\r\n}\r\n:root:not(#pd-embed) .carousel__dot:hover::before { background: #b9a6ff; }\r\n:root:not(#pd-embed) .carousel__dot[aria-current=\"true\"]::before { width: 20px; margin-left: -10px; background: var(--violet); }\r\n\r\n\/* props + boundary ornament *\/\r\n:root:not(#pd-embed) .final-consequences .fg__l { left: -34vw; bottom: 30px; width: 70vw; opacity: .5; }\r\n:root:not(#pd-embed) .final-consequences .fg__r { right: -40vw; bottom: 10px; width: 90vw; opacity: .45; }\r\n:root:not(#pd-embed) .bridge--05 .leaf { right: -80px; top: -120px; transform: rotate(16deg) scaleX(-1); opacity: .45; }\r\n:root:not(#pd-embed) .bridge--05 .bit { left: 12%; top: -24px; }\r\n\r\n\/* softer, slightly springy entrance for this section only *\/\r\n@media (prefers-reduced-motion: no-preference) {\r\n  .js.reveal-ready:root:not(#pd-embed) .final-consequences [data-reveal] {\r\n    transition: opacity .6s cubic-bezier(.22, 1, .36, 1), translate .7s cubic-bezier(.34, 1.32, .64, 1);\r\n    transition-delay: var(--d, 0ms);\r\n  }\r\n  .js.reveal-ready:root:not(#pd-embed) .final-consequences [data-reveal]:not(.is-in) { translate: 0 18px; }\r\n}\r\n\r\n@media (min-width: 420px) {\r\n  :root:not(#pd-embed) .carousel__viewport { --card-w: calc(100vw \/ 1.16 - var(--card-gap)); }\r\n}\r\n\/* Tablet: desktop landscape art, ~2.3 cards *\/\r\n@media (min-width: 720px) {\r\n  :root:not(#pd-embed) .final-consequences { padding-bottom: 48px; }\r\n  :root:not(#pd-embed) .final-consequences__eyebrow { font-size: 22px; }\r\n  :root:not(#pd-embed) .final-consequences__lead { font-size: 19.55px; }\r\n  :root:not(#pd-embed) .final-consequences__lead span { display: block; }\r\n  :root:not(#pd-embed) .final-consequences__closing { font-size: 28px; }\r\n  :root:not(#pd-embed) .final-consequences__sub { font-size: 19.55px; }\r\n  :root:not(#pd-embed) .carousel { margin-top: 32px; }\r\n  :root:not(#pd-embed) .carousel__viewport {\r\n    --card-gap: 18px; --card-w: calc(100vw \/ 2.3 - var(--card-gap));\r\n    -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 5%, #000 95%, transparent 100%);\r\n    mask-image: linear-gradient(90deg, transparent 0, #000 5%, #000 95%, transparent 100%);\r\n  }\r\n  :root:not(#pd-embed) .consequence-card { border-radius: 26px; }\r\n  :root:not(#pd-embed) .consequence-card__media { aspect-ratio: 3 \/ 2; }\r\n  :root:not(#pd-embed) .consequence-card__copy { padding: 16px 20px 20px; }\r\n  :root:not(#pd-embed) .consequence-card__title { font-size: 21px; }\r\n  :root:not(#pd-embed) .consequence-card__body { font-size: 15px; }\r\n  :root:not(#pd-embed) .carousel__arrow { width: 48px; height: 48px; }\r\n  :root:not(#pd-embed) .final-consequences .fg__l { left: -14vw; width: 36vw; }\r\n  :root:not(#pd-embed) .final-consequences .fg__r { right: -18vw; width: 44vw; }\r\n}\r\n\/* Desktop: ~2.9 cards across a slightly wider-than-copy stage *\/\r\n@media (min-width: 1100px) {\r\n  :root:not(#pd-embed) .final-consequences { padding-bottom: calc(56 * var(--k)); }\r\n  :root:not(#pd-embed) .final-consequences__eyebrow { font-size: max(18px, calc(26 * var(--k))); margin-bottom: calc(12 * var(--k)); }\r\n  :root:not(#pd-embed) .final-consequences__title { max-width: calc(1000 * var(--k)); }\r\n  :root:not(#pd-embed) .final-consequences__lead { max-width: calc(740 * var(--k)); margin-top: calc(16 * var(--k)); font-size: max(18.4px, calc(23 * var(--k))); }\r\n  :root:not(#pd-embed) .final-consequences__outro { margin-top: calc(22 * var(--k)); }\r\n  :root:not(#pd-embed) .final-consequences__closing { max-width: calc(1120 * var(--k)); font-size: max(24px, calc(40 * var(--k))); line-height: 1.18; }\r\n  :root:not(#pd-embed) .final-consequences__sub { margin-top: calc(12 * var(--k)); font-size: max(18.4px, calc(23 * var(--k))); }\r\n  :root:not(#pd-embed) .final-consequences .cta-row { margin-top: calc(26 * var(--k)); }\r\n  :root:not(#pd-embed) .carousel { margin: calc(36 * var(--k)) auto 0; max-width: 1760px; }\r\n  :root:not(#pd-embed) .carousel__viewport {\r\n    --card-gap: max(18px, calc(24 * var(--k)));\r\n    --card-w: calc(min(100vw, 1760px) \/ 2.9 - var(--card-gap));\r\n    -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 7%, #000 93%, transparent 100%);\r\n    mask-image: linear-gradient(90deg, transparent 0, #000 7%, #000 93%, transparent 100%);\r\n  }\r\n  :root:not(#pd-embed) .carousel__track { padding: calc(18 * var(--k)) 0 calc(34 * var(--k)); }\r\n  :root:not(#pd-embed) .consequence-card { border-radius: calc(30 * var(--k)); }\r\n  :root:not(#pd-embed) .consequence-card__copy { padding: calc(18 * var(--k)) calc(24 * var(--k)) calc(24 * var(--k)); }\r\n  :root:not(#pd-embed) .consequence-card__title { font-size: max(19px, calc(27 * var(--k))); }\r\n  :root:not(#pd-embed) .consequence-card__body { font-size: max(14.5px, calc(18 * var(--k))); }\r\n  :root:not(#pd-embed) .carousel__controls { gap: calc(14 * var(--k)); }\r\n  :root:not(#pd-embed) .final-consequences .fg__l { left: calc(50% - 836 * var(--k) - 150 * var(--k)); bottom: calc(40 * var(--k)); width: calc(520 * var(--k)); opacity: .55; }\r\n  :root:not(#pd-embed) .final-consequences .fg__r { right: calc(50% - 836 * var(--k) - 200 * var(--k)); bottom: calc(10 * var(--k)); width: calc(700 * var(--k)); opacity: .5; }\r\n  :root:not(#pd-embed) .bridge--05 .leaf { width: calc(330 * var(--k)); right: calc(-150 * var(--k)); top: calc(-240 * var(--k)); }\r\n}\r\n\r\n\/* Reduced motion: no drifting track, no springy entrance (handled in JS + the rules above) *\/\r\n@media (prefers-reduced-motion: reduce) {\r\n  :root:not(#pd-embed) .carousel__track { will-change: auto; }\r\n}\r\n\r\n\/* =========================================================\r\n   5. v8 \u00b7 copy revision (homepage-copywriting-before-after-v1.xlsx)\r\n   Only layout needed for the longer copy + the Naya crop fix.\r\n   ========================================================= *\/\r\n\r\n\/* ---------- header: three links + \"Mulai tes\", no \"Beranda\" ---------- *\/\r\n@media (min-width: 1024px) {\r\n  \/* Keep every desktop jump link at the normal weight, including the active section. *\/\r\n  :root:not(#pd-embed) .nav-links a[aria-current] { font-weight: 500; }\r\n  :root:not(#pd-embed) .nav-shell { min-width: calc(860 * var(--u)); }\r\n  :root:not(#pd-embed) .site-nav { gap: max(20px, calc(34 * var(--u))); }   \/* same breathing room as logo \u2192 links *\/\r\n  :root:not(#pd-embed) .nav-links { margin: 0 auto; }            \/* links sit centred between logo and CTA *\/\r\n}\r\n\r\n\/* Desktop shared active-menu pill: glide and gently overshoot into place. *\/\r\n@media (min-width: 1024px) {\r\n  :root:not(#pd-embed) .nav-links.has-fluid-pill { position: relative; isolation: isolate; }\r\n  :root:not(#pd-embed) .nav-links.has-fluid-pill::before {\r\n    content: \"\"; position: absolute; pointer-events: none; z-index: -1;\r\n    left: var(--pill-x, 0px); top: var(--pill-y, 0px);\r\n    width: var(--pill-w, 0px); height: var(--pill-h, 0px);\r\n    border-radius: 999px; background: var(--lavender);\r\n    opacity: var(--pill-visible, 0);\r\n    transition: left .65s cubic-bezier(.22, 1.35, .36, 1),\r\n      width .65s cubic-bezier(.22, 1.35, .36, 1),\r\n      top .3s ease, height .3s ease, opacity .2s ease;\r\n  }\r\n  :root:not(#pd-embed) .nav-links.has-fluid-pill a[aria-current] { background: transparent; }\r\n  :root:not(#pd-embed) .nav-links.has-fluid-pill.pill-snap::before { transition: none; }\r\n}\r\n@media (prefers-reduced-motion: reduce) {\r\n  :root:not(#pd-embed) .nav-links.has-fluid-pill::before { transition: none; }\r\n}\r\n\r\n\/* ---------- hero lead: three short paragraphs ---------- *\/\r\n:root:not(#pd-embed) .hero-lead p { margin: 0; }\r\n:root:not(#pd-embed) .hero-lead p + p { margin-top: .55em; }\r\n:root:not(#pd-embed) .hero-lead strong { font-weight: 700; color: var(--ink-soft); }\r\n\/* keep the bold question in one piece where the line is wide enough (phones wrap it naturally) *\/\r\n@media (min-width: 720px) { :root:not(#pd-embed) .hero-lead strong { white-space: nowrap; } }\r\n\r\n\/* ---------- 01 \u00b7 Resolusimu ---------- *\/\r\n:root:not(#pd-embed) .s01-card__line { display: block; }\r\n:root:not(#pd-embed) .s01-urgency { max-width: 34em; margin: 12px auto 0; font-size: 18px; line-height: 1.6; color: var(--body); text-wrap: pretty; }\r\n:root:not(#pd-embed) .s01-lead { margin-top: 14px; }\r\n@media (min-width: 720px) { :root:not(#pd-embed) .s01-urgency { font-size: 19.8px; } }\r\n@media (min-width: 1100px) {\r\n  :root:not(#pd-embed) .s01-urgency { max-width: calc(660 * var(--k)); margin-top: calc(14 * var(--k)); font-size: max(18px, calc(22.8 * var(--k))); }\r\n  :root:not(#pd-embed) .s01-lead { margin-top: calc(16 * var(--k)); }\r\n}\r\n\r\n\/* ---------- 02 \u00b7 Faktanya ---------- *\/\r\n:root:not(#pd-embed) .stat__desc strong { font-weight: 800; color: var(--violet); }\r\n:root:not(#pd-embed) .stat__meaning {\r\n  margin: 10px 0 0; padding-top: 10px; border-top: 1px dashed #e1dbf7;\r\n  \/* v15: 115% size for the explanatory copy beneath each statistic. *\/\r\n  font-size: 14.375px; line-height: 1.5; color: var(--body); text-wrap: balance;\r\n}\r\n\/* v15: 115% size for the bridge paragraph; its bold question keeps its own scale. *\/\r\n:root:not(#pd-embed) .s02-bridge { max-width: 34em; font-size: 17.25px; line-height: 1.6; }\r\n:root:not(#pd-embed) .s02-bridge p { margin: 0; }\r\n:root:not(#pd-embed) .s02-bridge__ask { margin-top: 10px !important; font-size: 18px; font-weight: 800; line-height: 1.35; letter-spacing: -.02em; color: var(--ink); text-wrap: balance; }\r\n@media (min-width: 720px) {\r\n  :root:not(#pd-embed) .stat__desc { font-size: 15px; }\r\n  :root:not(#pd-embed) .stat__meaning { font-size: 16.1px; }\r\n  :root:not(#pd-embed) .s02-bridge { font-size: 19.55px; }\r\n  :root:not(#pd-embed) .s02-bridge__ask { font-size: 22px; }\r\n}\r\n@media (min-width: 1100px) {\r\n  :root:not(#pd-embed) .stat__desc { font-size: max(15px, calc(19 * var(--k))); }\r\n  :root:not(#pd-embed) .stat__meaning { margin-top: calc(14 * var(--k)); padding-top: calc(14 * var(--k)); font-size: max(15.525px, calc(18.4 * var(--k))); }\r\n  :root:not(#pd-embed) .s02-bridge { max-width: calc(820 * var(--k)); font-size: max(17.825px, calc(23 * var(--k))); }\r\n  :root:not(#pd-embed) .s02-bridge__ask { margin-top: calc(12 * var(--k)) !important; font-size: max(20px, calc(30 * var(--k))); }\r\n}\r\n\r\n\/* ---------- 03 \u00b7 Kenali polamu ---------- *\/\r\n:root:not(#pd-embed) .s03-bridge {\r\n  width: auto; max-width: 36em; margin-inline: auto;\r\n  \/* v15: 115% size for the story that bridges the two example cards. *\/\r\n  font-size: 17.25px; font-weight: 500; line-height: 1.6; letter-spacing: 0; color: var(--ink-soft);\r\n}\r\n:root:not(#pd-embed) .s03-bridge p { margin: 0; }\r\n:root:not(#pd-embed) .s03-bridge__ask {\r\n  display: block !important; position: relative; width: fit-content; max-width: 100%;\r\n  margin: 10px auto 0 !important; font-size: 17px; font-weight: 800; line-height: 1.35; letter-spacing: -.015em;\r\n  color: var(--violet); text-wrap: balance;\r\n}\r\n:root:not(#pd-embed) .s03-benefit strong { display: block; margin-top: 8px; font-weight: 800; color: var(--ink); }\r\n@media (min-width: 720px) {\r\n  :root:not(#pd-embed) .s03-bridge { font-size: 19.55px; }\r\n  :root:not(#pd-embed) .s03-bridge__ask { font-size: 21px; }\r\n}\r\n@media (min-width: 1100px) {\r\n  :root:not(#pd-embed) .s03-bridge { width: auto; max-width: calc(980 * var(--k)); font-size: max(18.4px, calc(23 * var(--k))); }\r\n  :root:not(#pd-embed) .s03-bridge__ask { max-width: calc(900 * var(--k)); margin-top: calc(12 * var(--k)) !important; font-size: max(19px, calc(28 * var(--k))); }\r\n}\r\n\r\n\/* ---------- longer CTA labels may wrap on narrow phones instead of overflowing ---------- *\/\r\n@media (max-width: 519px) {\r\n  :root:not(#pd-embed) .cta.cta--section { font-size: clamp(15px, 4.2vw, 18px); white-space: normal; text-wrap: balance; line-height: 1.25; padding-block: 10px; }\r\n  :root:not(#pd-embed) .cta.cta--section span { text-align: center; }\r\n}\r\n\r\n\/* ---------- 05 \u00b7 Konsekuensi: two-paragraph lead ---------- *\/\r\n:root:not(#pd-embed) .final-consequences__lead p { margin: 0; }\r\n:root:not(#pd-embed) .final-consequences__lead p + p { margin-top: .5em; }\r\n:root:not(#pd-embed) .final-consequences__lead-strong { font-weight: 700; color: var(--ink-soft); }\r\n\r\n\/* ---------- Naya crop (section 03) ----------\r\n   The tight art is 1358\u00d71069 (\u22481.27:1) with a transparent background, and the purple\r\n   worry spiral sits at ~13\u201326% from its left edge. object-fit: cover inside a box that is\r\n   narrower than the art hid that strip. Fix: anchor the cover window to the left and make\r\n   the image box slightly shorter than the media box (bottom-aligned, so the desk still\r\n   sits on the card floor). A shorter box is relatively wider, so cover keeps more of the\r\n   art's width. The empty strip above her head is transparent card background, not a gap.\r\n   Values are tuned per layout range from measured media boxes. *\/\r\n\/* mobile < 720: the media column is narrow and tall (\u22480.52\u20130.66:1), so both cutouts use a\r\n   74% tall box. Naya keeps ~10\u201371% of her art (spiral, face, hands, notebook); Nico gets the same\r\n   height for balance and a window that keeps his spiral (~33\u201342%) and face. *\/\r\n:root:not(#pd-embed) .case--naya .case__media img,\r\n:root:not(#pd-embed) .case--nico .case__media img { align-self: flex-end; height: 74%; }\r\n:root:not(#pd-embed) .case--naya .case__media img { object-position: 25% 100%; }\r\n:root:not(#pd-embed) .case--nico .case__media img { object-position: 55% 100%; }\r\n\/* tablet 720\u20131099: the box is almost square, full height already shows ~78% of the art *\/\r\n@media (min-width: 720px) {\r\n  :root:not(#pd-embed) .case--naya .case__media img,\r\n  :root:not(#pd-embed) .case--nico .case__media img { height: 100%; }\r\n  :root:not(#pd-embed) .case--naya .case__media img { object-position: 36% 100%; }\r\n  :root:not(#pd-embed) .case--nico .case__media img { object-position: 64% 100%; }\r\n}\r\n\/* desktop \u2265 1100: box \u22480.72:1. Naya at 86% height keeps ~10\u201375% (spiral to notebook, book spines);\r\n   Nico stays full height, window shifted left so his spiral clears the card edge. *\/\r\n@media (min-width: 1100px) {\r\n  :root:not(#pd-embed) .case--naya .case__media img { height: 86%; object-position: 29% 100%; }\r\n  :root:not(#pd-embed) .case--nico .case__media img { height: 100%; object-position: 58% 100%; }\r\n}\r\n\r\n\/* longer v8 headline: keep it on two lines at desktop widths *\/\r\n@media (min-width: 1100px) { :root:not(#pd-embed) .final-consequences__title { max-width: calc(1260 * var(--k)); } }\r\n\r\n\/* Nico desk alignment (section 03): his art keeps ~11% of its height below the desk edge\r\n   (desk legs), Naya only ~4%. Shift his image down by the difference so both desk edges\r\n   meet the card floor at the same line; the legs are clipped by the media box. *\/\r\n:root:not(#pd-embed) .case--nico .case__media img { transform: translateY(6.9%); }\r\n@media (min-width: 1100px) { :root:not(#pd-embed) .case--nico .case__media img { transform: translateY(7.5%); } }\r\n\r\n\/* =========================================================\r\n   6. v9 \u00b7 Future-self scene (section 03, \"Pesan dari dirimu lima tahun lagi\")\r\n   Naya (left) and Nico (right) stand beside the message card as their future selves.\r\n   Asset facts (v3, 1:1): artwork spans x 12-88% \/ y 3-97% of the square; hands sit at\r\n   y 45-70%; halo + sparkles reach x 84-88% on the outer ring. The card may only slip into\r\n   the transparent inner margin of each image (plus a sliver of sleeve), so hands, faces,\r\n   halos and sparkles always stay visible.\r\n   Layers: section atmosphere < characters (z1) < card (z2) < card text.\r\n   ========================================================= *\/\r\n:root:not(#pd-embed) .future-message {\r\n  position: relative; isolation: isolate;\r\n  display: grid; margin: 18px auto 0;\r\n}\r\n:root:not(#pd-embed) .future-self {\r\n  position: relative; z-index: 1; display: block;\r\n  pointer-events: none; user-select: none; -webkit-user-select: none;\r\n}\r\n:root:not(#pd-embed) .future-self img { display: block; width: 100%; height: auto; aspect-ratio: 1 \/ 1; object-fit: contain; }\r\n:root:not(#pd-embed) .future-message .letter { position: relative; z-index: 2; width: 100%; max-width: none; margin: 0; }\r\n\r\n\/* ---------- mobile < 720: both characters in one row, card right below ---------- *\/\r\n@media (max-width: 719px) {\r\n  :root:not(#pd-embed) .future-message {\r\n    grid-template-columns: 1fr 1fr;\r\n    grid-template-areas: \"naya nico\" \"card card\";\r\n    max-width: 560px;\r\n    margin-top: 10px;\r\n  }\r\n  \/* the squares carry ~12% transparent air on each side: let the row use it so the\r\n     figures read large, while the drawn figures stay inside the section gutter *\/\r\n  :root:not(#pd-embed) .future-self--naya { grid-area: naya; margin: 0 -6% 0 -9%; }\r\n  :root:not(#pd-embed) .future-self--nico { grid-area: nico; margin: 0 -9% 0 -6%; }\r\n  \/* card tucks behind only the jacket hem: last ~4% of the figures (content ends at 97%) *\/\r\n  :root:not(#pd-embed) .future-message .letter { grid-area: card; margin-top: calc(-0.07 * (50vw - var(--gutter))); }\r\n}\r\n\r\n\/* ---------- tablet 720-1099 and desktop: Naya | card | Nico ---------- *\/\r\n@media (min-width: 720px) {\r\n  :root:not(#pd-embed) .future-message {\r\n    --fs: clamp(160px, 22vw, 240px);                 \/* character square size *\/\r\n    --tuck: calc(-0.13 * var(--fs));                 \/* inner transparent margin only *\/\r\n    grid-template-columns: var(--fs) minmax(0, 1fr) var(--fs);\r\n    grid-template-areas: \"naya card nico\";\r\n    align-items: end;\r\n    max-width: 960px; margin-top: 22px;\r\n  }\r\n  :root:not(#pd-embed) .future-self--naya { grid-area: naya; margin-right: var(--tuck); }\r\n  :root:not(#pd-embed) .future-self--nico { grid-area: nico; margin-left: var(--tuck); }\r\n  :root:not(#pd-embed) .future-message .letter { grid-area: card; align-self: end; margin-bottom: calc(0.05 * var(--fs)); }\r\n}\r\n\/* tablet: the card column is narrow, so the card grows taller than the figures; centre them on it\r\n   and give the message more room by using a smaller envelope *\/\r\n@media (min-width: 720px) and (max-width: 1099px) {\r\n  :root:not(#pd-embed) .future-message { --fs: clamp(160px, 21vw, 220px); max-width: 100%; align-items: center; }\r\n  :root:not(#pd-embed) .future-message .letter { align-self: center; margin-bottom: 0; grid-template-columns: 72px 1fr; column-gap: 16px; padding: 16px 20px; }\r\n  :root:not(#pd-embed) .future-message .letter__art { width: 72px; }\r\n}\r\n@media (min-width: 1100px) {\r\n  :root:not(#pd-embed) .future-message { --fs: calc(330 * var(--k)); max-width: calc(1370 * var(--k)); margin-top: calc(26 * var(--k)); }\r\n}\r\n\r\n\/* ---------- entrance: one reveal for the whole scene, figures drift in from their side ---------- *\/\r\n@media (prefers-reduced-motion: no-preference) {\r\n  .js.reveal-ready:root:not(#pd-embed) .future-message .future-self,\r\n  .js.reveal-ready:root:not(#pd-embed) .future-message .letter {\r\n    transition: opacity .6s var(--ease-out), translate .7s var(--ease-out);\r\n  }\r\n  .js.reveal-ready:root:not(#pd-embed) .future-message .future-self--naya { transition-delay: 120ms; }\r\n  .js.reveal-ready:root:not(#pd-embed) .future-message .future-self--nico { transition-delay: 200ms; }\r\n  .js.reveal-ready:root:not(#pd-embed) .future-message:not(.is-in) .future-self--naya { opacity: 0; translate: -16px 0; }\r\n  .js.reveal-ready:root:not(#pd-embed) .future-message:not(.is-in) .future-self--nico { opacity: 0; translate: 16px 0; }\r\n  .js.reveal-ready:root:not(#pd-embed) .future-message:not(.is-in) .letter { translate: 0 8px; }\r\n  \/* the wrapper itself only fades, the children carry the movement *\/\r\n  .js.reveal-ready:root:not(#pd-embed) .future-message[data-reveal]:not(.is-in) { translate: none; }\r\n}\r\n\r\n\/* balanced label break inside the scene (\"Pesan dari dirimu \/ lima tahun lagi:\") *\/\r\n:root:not(#pd-embed) .future-message .letter__from { text-wrap: balance; }\r\n\r\n\/* =========================================================\r\n   7. v9 \u00b7 Source disclosure: tighter hand-off to section 03 + smooth open\/close\r\n   ========================================================= *\/\r\n\/* The small \"Lihat sumber & metode\" line reads as the end of section 02, so the section\r\n   padding below it was doubling up with section 03's top padding. *\/\r\n:root:not(#pd-embed) .s02 { padding-bottom: 40px; }\r\n@media (min-width: 720px) { :root:not(#pd-embed) .s02 { padding-bottom: 44px; } }\r\n@media (min-width: 1100px) { :root:not(#pd-embed) .s02 { padding-bottom: calc(34 * var(--k)); } }\r\n\r\n\/* site.js animates the body height; this only styles the moving part *\/\r\n:root:not(#pd-embed) .sources__body { overflow: hidden; transform-origin: top center; }\r\n:root:not(#pd-embed) .sources.is-animating .sources__body { will-change: height, opacity; }\r\n\r\n\/* =========================================================\r\n   8. v9 \u00b7 Section 03 question + future-self card spacing\r\n   ========================================================= *\/\r\n\/* Desktop (where the bursts show): two fixed lines, so the question box is exactly as wide\r\n   as its text and the bursts sit right beside the words instead of at the 900-unit max width. *\/\r\n@media (min-width: 1100px) {\r\n  :root:not(#pd-embed) .s03-bridge__ask { width: fit-content; max-width: none; }\r\n  :root:not(#pd-embed) .s03-bridge__ask .ask-line { display: block; white-space: nowrap; }\r\n  :root:not(#pd-embed) .s03-bridge .bridge-ray--l { margin-right: calc(10 * var(--k)); }\r\n  :root:not(#pd-embed) .s03-bridge .bridge-ray--r { margin-left: calc(10 * var(--k)); }\r\n  \/* card centred on the two figures, so it sits right under the question *\/\r\n  :root:not(#pd-embed) .future-message { --fs: calc(310 * var(--k)); align-items: center; margin-top: calc(6 * var(--k)); }\r\n  :root:not(#pd-embed) .future-message .letter { align-self: center; margin-bottom: 0; }\r\n}\r\n\r\n\/* ===== v10 fix: long section CTA labels were clipped between 520 and 767px =====\r\n   There the pill is capped at 360px, kept on one line and clips its overflow (shimmer),\r\n   so the longer labels were cut off. Let it grow with its text up to the column width,\r\n   and wrap onto a balanced second line only if it still does not fit. *\/\r\n@media (max-width: 767.98px) {\r\n  :root:not(#pd-embed) .cta.cta--section {\r\n    width: auto; min-width: min(100%, 360px); max-width: 100%;\r\n    white-space: normal; text-wrap: balance; line-height: 1.25; padding-block: 10px;\r\n  }\r\n  :root:not(#pd-embed) .cta.cta--section span { text-align: center; }\r\n}\r\n\r\n\/* ===== embed-fullwidth: Elementor boxed container -> full width ===== *\/\r\n\/* Only matches the Elementor wrappers that contain this page (#quiz lives inside the HTML widget). *\/\r\n:is(.e-con, .e-con-inner, .elementor-section, .elementor-container, .elementor-column, .elementor-widget-wrap,\r\n    .elementor-widget, .elementor-widget-container):has(#quiz) {\r\n  width: 100% !important; max-width: none !important; min-width: 0 !important;\r\n  margin: 0 !important; padding: 0 !important; gap: 0 !important;\r\n  --container-max-width: none; --content-width: 100%; --width: 100%; --container-widget-width: 100%;\r\n  --padding-top: 0px; --padding-right: 0px; --padding-bottom: 0px; --padding-left: 0px;\r\n  --margin-top: 0px; --margin-right: 0px; --margin-bottom: 0px; --margin-left: 0px;\r\n  --gap: 0px; --row-gap: 0px; --column-gap: 0px; --widgets-spacing: 0px; --kit-widget-spacing: 0px;\r\n}\r\n<\/style>\r\n<script>document.documentElement.classList.add('js');\r\n\/* WordPress: keep native emoji inside this page (no twemoji image swap), same as the standalone file *\/\r\n(function () { function keep() { var s = window._wpemojiSettings; if (s && s.supports) s.supports.everything = true; }\r\n  keep(); document.addEventListener('DOMContentLoaded', keep); window.addEventListener('load', keep); document.addEventListener('click', keep, true); })();<\/script>\r\n<\/head>\r\n<body>\r\n<!-- Shared SVG symbols -->\r\n<svg width=\"0\" height=\"0\" style=\"position:absolute\" aria-hidden=\"true\" focusable=\"false\">\r\n  <defs>\r\n    <symbol id=\"i-rays\" viewBox=\"0 0 64 64\">\r\n      <g fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-width=\"6.5\">\r\n        <path d=\"M13 38 17 9\"\/>\r\n        <path d=\"M26 46 47 26\"\/>\r\n        <path d=\"M33 58 58 55\"\/>\r\n      <\/g>\r\n    <\/symbol>\r\n    <symbol id=\"i-rays2\" viewBox=\"0 0 64 64\">\r\n      <g fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-width=\"7\">\r\n        <path d=\"M34 40 26 12\"\/>\r\n        <path d=\"M26 54 6 42\"\/>\r\n      <\/g>\r\n    <\/symbol>\r\n    <symbol id=\"i-glass\" viewBox=\"0 0 32 32\">\r\n      <path d=\"M19.6 20.2 27 27.6\" stroke=\"#2b2f55\" stroke-width=\"4.6\" stroke-linecap=\"round\"\/>\r\n      <circle cx=\"13\" cy=\"13\" r=\"9.2\" fill=\"#dff1ff\" stroke=\"#3a3f66\" stroke-width=\"3\"\/>\r\n      <path d=\"M8.4 11.2a5.2 5.2 0 0 1 4.4-3.6\" fill=\"none\" stroke=\"#fff\" stroke-width=\"2.2\" stroke-linecap=\"round\"\/>\r\n    <\/symbol>\r\n    <!-- Yellow emphasis burst. Drawn pointing RIGHT from its left-centre origin; see .ray--* -->\r\n    <symbol id=\"i-burst\" viewBox=\"0 0 40 40\">\r\n      <g fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-width=\"4.6\">\r\n        <path d=\"M9 11 17 3\"\/><path d=\"M12 20h13\"\/><path d=\"M9 29 17 37\"\/>\r\n      <\/g>\r\n    <\/symbol>\r\n  <\/defs>\r\n<\/svg>\r\n\r\n<a class=\"skip-link wp-exclude-emoji\" href=\"#konten\">Lewati ke konten<\/a>\r\n\r\n<header class=\"site-header wp-exclude-emoji\">\r\n  <div class=\"nav-shell\">\r\n    <a class=\"brand\" href=\"https:\/\/grownoola.com\/id\/\" aria-label=\"Grownoola, ke beranda\">\r\n      <span class=\"crop crop--logo\">\r\n        <picture>\r\n          <source type=\"image\/webp\" srcset=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/004_grownoola-logo.webp\">\r\n          <img fetchpriority=\"high\" decoding=\"async\" srcset=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/005_grownoola-logo-mobile-640.webp 640w, https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/004_grownoola-logo.webp 2135w\" sizes=\"(max-width: 719px) 320px, 400px\" src=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/004_grownoola-logo.webp\" width=\"2135\" height=\"736\" alt=\"Grownoola\">\r\n        <\/picture>\r\n      <\/span>\r\n    <\/a>\r\n\r\n    <button class=\"menu-toggle\" type=\"button\" aria-expanded=\"false\" aria-controls=\"site-nav\">\r\n      <span class=\"visually-hidden\">Buka menu<\/span>\r\n      <span class=\"menu-toggle__bars\" aria-hidden=\"true\"><span><\/span><span><\/span><span><\/span><\/span>\r\n    <\/button>\r\n\r\n    <nav class=\"site-nav\" id=\"site-nav\" aria-label=\"Navigasi utama\">\r\n      <ul class=\"nav-links\">\r\n        <li><a href=\"#waktu-jalan\" data-nav=\"waktu-jalan\">Resolusimu<\/a><\/li>\r\n        <li><a href=\"#data-penundaan\" data-nav=\"data-penundaan\">Data<\/a><\/li>\r\n        <li><a href=\"#kenali-polamu\" data-nav=\"kenali-polamu\">Kenali polamu<\/a><\/li>\r\n      <\/ul>\r\n      <button class=\"nav-cta\" type=\"button\" data-open-quiz aria-haspopup=\"dialog\" aria-controls=\"quiz\">\r\n        <svg class=\"nav-cta__icon\" viewBox=\"0 0 32 32\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#i-glass\"\/><\/svg>\r\n        <span>Mulai tes<\/span>\r\n      <\/button>\r\n    <\/nav>\r\n  <\/div>\r\n<\/header>\r\n\r\n<main id=\"konten\" class=\"wp-exclude-emoji\">\r\n<div class=\"stage\" id=\"beranda\">\r\n  <div class=\"ambient\" data-art=\"(max-width: 1179.98px)\"><template><img srcset=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/006_dekorasi-ambient-mobile-640.webp 640w, https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/007_dekorasi-ambient.webp 941w\" sizes=\"(max-width: 719px) 50vw, (max-width: 1099px) 40vw, 34vw\" src=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/007_dekorasi-ambient.webp\" width=\"941\" height=\"1672\" alt=\"\" decoding=\"async\"><\/template><\/div>\r\n\r\n  <!-- Soft glows + desktop composition (decorative) -->\r\n  <div class=\"d-glow\" aria-hidden=\"true\"><span class=\"g1\"><\/span><span class=\"g2\"><\/span><span class=\"g3\"><\/span><\/div>\r\n\r\n  <div class=\"d-art\" data-art=\"(min-width: 1180px)\"><template>\r\n    <img class=\"d-niat float\" srcset=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/008_catatan-niat-scroll-mobile-640.webp 640w, https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/009_catatan-niat-scroll.webp 1313w\" sizes=\"(max-width: 719px) 50vw, (max-width: 1099px) 40vw, 34vw\" src=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/009_catatan-niat-scroll.webp\" width=\"1313\" height=\"1198\" alt=\"\" decoding=\"async\">\r\n    <img loading=\"lazy\" class=\"d-mood float float--b\" srcset=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/010_catatan-nunggu-mood-mobile-640.webp 640w, https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/011_catatan-nunggu-mood.webp 1312w\" sizes=\"(max-width: 719px) 50vw, (max-width: 1099px) 40vw, 34vw\" src=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/011_catatan-nunggu-mood.webp\" width=\"1312\" height=\"1199\" alt=\"\" decoding=\"async\">\r\n    <img loading=\"lazy\" class=\"d-masih float float--c\" srcset=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/012_kartu-masih-menunda-mobile-640.webp 640w, https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/013_kartu-masih-menunda.webp 1536w\" sizes=\"(max-width: 719px) 50vw, (max-width: 1099px) 40vw, 34vw\" src=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/013_kartu-masih-menunda.webp\" width=\"1536\" height=\"1024\" alt=\"\" decoding=\"async\">\r\n    <img loading=\"lazy\" class=\"d-mikir float float--b\" srcset=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/014_kartu-terlalu-banyak-mikir-mobile-640.webp 640w, https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/015_kartu-terlalu-banyak-mikir.webp 1536w\" sizes=\"(max-width: 719px) 50vw, (max-width: 1099px) 40vw, 34vw\" src=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/015_kartu-terlalu-banyak-mikir.webp\" width=\"1536\" height=\"1024\" alt=\"\" decoding=\"async\">\r\n\r\n    <svg class=\"d-doodle--clock\" viewBox=\"0 0 54 54\" aria-hidden=\"true\" focusable=\"false\">\r\n      <g fill=\"none\" stroke=\"currentColor\" stroke-width=\"4\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\r\n        <circle cx=\"27\" cy=\"28\" r=\"21\"\/><path d=\"M27 16v13l8 6\"\/><path d=\"M9 11l6-5M45 11l-6-5\" stroke-width=\"3.5\"\/>\r\n      <\/g>\r\n    <\/svg>\r\n    <svg class=\"d-doodle--cloud\" viewBox=\"0 0 62 44\" aria-hidden=\"true\" focusable=\"false\">\r\n      <path d=\"M16 38h32a10 10 0 0 0 1-20A15 15 0 0 0 21 14a11 11 0 0 0-5 24z\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"4\" stroke-linejoin=\"round\"\/>\r\n    <\/svg>\r\n    <svg class=\"d-doodle--swirl\" viewBox=\"0 0 52 52\" aria-hidden=\"true\" focusable=\"false\">\r\n      <path d=\"M22 44C10 40 6 26 13 17s22-9 27 1-2 20-11 19-11-11-5-15 11 1 9 6\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"4\" stroke-linecap=\"round\"\/>\r\n    <\/svg>\r\n\r\n    <svg class=\"d-ray d-ray--naya\" viewBox=\"0 0 64 64\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#i-rays\"\/><\/svg>\r\n    <svg class=\"d-ray d-ray--nico\" viewBox=\"0 0 64 64\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#i-rays\"\/><\/svg>\r\n\r\n      <img loading=\"lazy\" class=\"d-naya\" srcset=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/016_naya-hero-memikirkan-pola-menunda-mobile-640.webp 640w, https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/017_naya-hero-memikirkan-pola-menunda.webp 1024w\" sizes=\"(max-width: 719px) 50vw, (max-width: 1099px) 40vw, 34vw\" src=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/017_naya-hero-memikirkan-pola-menunda.webp\" width=\"1024\" height=\"1536\" alt=\"Naya, maskot Grownoola, tersenyum sambil berpikir dengan label nama kecil di bajunya\" decoding=\"async\">\r\n    <img loading=\"lazy\" class=\"d-nico\" srcset=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/018_nico-hero-menunjuk-mobile-640.webp 640w, https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/019_nico-hero-menunjuk.webp 1024w\" sizes=\"(max-width: 719px) 50vw, (max-width: 1099px) 40vw, 34vw\" src=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/019_nico-hero-menunjuk.webp\" width=\"1024\" height=\"1536\" alt=\"Nico, maskot Grownoola, menunjuk ke arah pesan utama\" decoding=\"async\">\r\n  <\/template><\/div>\r\n\r\n    <section class=\"hero\" aria-labelledby=\"hero-title\">\r\n      <div class=\"hero-copy\">\r\n        <p class=\"lockup reveal\">\r\n          <svg class=\"lockup-ray lockup-ray--left\" viewBox=\"0 0 64 64\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#i-rays2\"\/><\/svg>\r\n          <span class=\"crop crop--lockup\">\r\n            <picture>\r\n              <source type=\"image\/webp\" srcset=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/020_procrastination-decoded-logo.webp\">\r\n              <img loading=\"lazy\" decoding=\"async\" srcset=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/021_procrastination-decoded-logo-mobile-640.webp 640w, https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/020_procrastination-decoded-logo.webp 2149w\" sizes=\"(max-width: 719px) 320px, 400px\" src=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/020_procrastination-decoded-logo.webp\" width=\"2149\" height=\"732\" alt=\"#ProcrastinationDecoded\">\r\n            <\/picture>\r\n          <\/span>\r\n          <svg class=\"lockup-ray lockup-ray--right\" viewBox=\"0 0 32 64\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M12 44 22 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"7\" stroke-linecap=\"round\"\/><\/svg>\r\n        <\/p>\r\n\r\n        <h1 class=\"hero-title reveal reveal--2\" id=\"hero-title\">\r\n          <span class=\"line\">Kamu bukan <span class=\"accent-violet\">malas<span class=\"stop\">.<\/span><\/span><span class=\"emoji\" aria-hidden=\"true\">\ud83d\ude2e\u200d\ud83d\udca8<\/span><\/span>\r\n          <span class=\"line\">Kamu cuma belum tahu<\/span>\r\n          <span class=\"line\"><span class=\"accent-amber\">apa yang bikin kamu<\/span><\/span>\r\n          <span class=\"line\"><span class=\"accent-amber\">terus menunda<span class=\"stop\">.<\/span><\/span><span class=\"emoji\" aria-hidden=\"true\">\u23f3<\/span><\/span>\r\n        <\/h1>\r\n\r\n        <p class=\"hero-lead reveal reveal--3\">Rencana ada. Deadline juga ada. Tapi mulainya selalu nanti. Sebelum waktu dan kesempatan ikut lewat, cari tahu dulu <strong>apa yang sebenarnya bikin kamu menunda.<\/strong><\/p>\r\n\r\n        <div class=\"cta-row cta-row--hero reveal reveal--4\">\r\n          <svg class=\"ray ray--left cta-ray\" viewBox=\"0 0 40 40\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#i-burst\"\/><\/svg>\r\n        <button class=\"cta\" type=\"button\" data-open-quiz aria-haspopup=\"dialog\" aria-controls=\"quiz\">\r\n          <svg class=\"cta__icon\" viewBox=\"0 0 32 32\" aria-hidden=\"true\" focusable=\"false\">\r\n            <path d=\"M19.6 20.2 27 27.6\" stroke=\"#2b2f55\" stroke-width=\"4.6\" stroke-linecap=\"round\"\/>\r\n            <circle cx=\"13\" cy=\"13\" r=\"9.2\" fill=\"#dff1ff\" stroke=\"#3a3f66\" stroke-width=\"3\"\/>\r\n            <path d=\"M8.4 11.2a5.2 5.2 0 0 1 4.4-3.6\" fill=\"none\" stroke=\"#fff\" stroke-width=\"2.2\" stroke-linecap=\"round\"\/>\r\n          <\/svg>\r\n          <span>Cari tahu pola menundamu<\/span>\r\n        <\/button>\r\n          <svg class=\"ray ray--right cta-ray cta-ray--ghost\" viewBox=\"0 0 40 40\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#i-burst\"\/><\/svg>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <!-- Mobile \/ tablet illustration -->\r\n      <div class=\"m-art\" data-art=\"(max-width: 1179.98px)\"><template>\r\n        <svg class=\"m-art__bubble\" viewBox=\"0 0 100 86\" aria-hidden=\"true\" focusable=\"false\">\r\n          <defs><linearGradient id=\"bubble\" x1=\"0\" y1=\"0\" x2=\"1\" y2=\"1\"><stop offset=\"0\" stop-color=\"#9d7bff\"\/><stop offset=\"1\" stop-color=\"#6a45f0\"\/><\/linearGradient><\/defs>\r\n          <path d=\"M20 6h60a16 16 0 0 1 16 16v26a16 16 0 0 1-16 16H40L24 80l2-16h-6A16 16 0 0 1 4 48V22A16 16 0 0 1 20 6z\" fill=\"url(#bubble)\"\/>\r\n          <circle cx=\"30\" cy=\"35\" r=\"7\" fill=\"#fff\"\/><circle cx=\"50\" cy=\"35\" r=\"7\" fill=\"#fff\"\/><circle cx=\"70\" cy=\"35\" r=\"7\" fill=\"#fff\"\/>\r\n        <\/svg>\r\n        <svg class=\"m-art__paper m-art__paper--a\" viewBox=\"0 0 80 96\" aria-hidden=\"true\" focusable=\"false\">\r\n          <rect x=\"4\" y=\"4\" width=\"72\" height=\"88\" rx=\"8\" fill=\"#fff\" stroke=\"#e6e4ef\" stroke-width=\"2\"\/>\r\n          <g fill=\"none\" stroke=\"#b9b8cc\" stroke-width=\"3.5\" stroke-linecap=\"round\"><rect x=\"15\" y=\"20\" width=\"10\" height=\"10\" rx=\"2\"\/><rect x=\"15\" y=\"43\" width=\"10\" height=\"10\" rx=\"2\"\/><rect x=\"15\" y=\"66\" width=\"10\" height=\"10\" rx=\"2\"\/><path d=\"M34 25h30M34 48h30M34 71h24\"\/><\/g>\r\n        <\/svg>\r\n        <svg class=\"m-art__paper m-art__paper--b\" viewBox=\"0 0 80 96\" aria-hidden=\"true\" focusable=\"false\">\r\n          <rect x=\"4\" y=\"4\" width=\"72\" height=\"88\" rx=\"8\" fill=\"#fff\" stroke=\"#e6e4ef\" stroke-width=\"2\"\/>\r\n          <g fill=\"none\" stroke=\"#b9b8cc\" stroke-width=\"3.5\" stroke-linecap=\"round\"><rect x=\"15\" y=\"20\" width=\"10\" height=\"10\" rx=\"2\"\/><rect x=\"15\" y=\"43\" width=\"10\" height=\"10\" rx=\"2\"\/><rect x=\"15\" y=\"66\" width=\"10\" height=\"10\" rx=\"2\"\/><path d=\"M34 25h30M34 48h30M34 71h24\"\/><\/g>\r\n        <\/svg>\r\n\r\n          <img loading=\"lazy\" class=\"m-art__hero\" srcset=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/022_naya-nico-siklus-menunda-mobile-640.webp 640w, https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/023_naya-nico-siklus-menunda.webp 1229w\" sizes=\"(max-width: 719px) 100vw, 800px\" src=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/023_naya-nico-siklus-menunda.webp\" width=\"1229\" height=\"1280\" alt=\"Naya dan Nico memakai label nama kecil di bajunya, berada di atas lingkaran panah saat Nico meraih bintang terang\" decoding=\"async\">\r\n\r\n        <img loading=\"lazy\" class=\"m-art__niat float\" srcset=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/024_catatan-niat-scroll-mobile-640.webp 640w, https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/025_catatan-niat-scroll.webp 1374w\" sizes=\"(max-width: 719px) 50vw, 360px\" src=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/025_catatan-niat-scroll.webp\" width=\"1374\" height=\"1145\" alt=\"\" decoding=\"async\">\r\n        <img loading=\"lazy\" class=\"m-art__mood float float--b\" srcset=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/026_catatan-nunggu-mood-mobile-640.webp 640w, https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/027_catatan-nunggu-mood.webp 1312w\" sizes=\"(max-width: 719px) 50vw, 360px\" src=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/027_catatan-nunggu-mood.webp\" width=\"1312\" height=\"1199\" alt=\"\" decoding=\"async\">\r\n        <img loading=\"lazy\" class=\"m-art__besok float float--c\" srcset=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/028_catatan-mulai-besok-mobile-640.webp 640w, https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/029_catatan-mulai-besok.webp 1254w\" sizes=\"(max-width: 719px) 50vw, 360px\" src=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/029_catatan-mulai-besok.webp\" width=\"1254\" height=\"1254\" alt=\"\" decoding=\"async\">\r\n\r\n        <img loading=\"lazy\" class=\"m-art__leaf\" srcset=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/030_tanaman-blur-kanan-mobile-640.webp 640w, https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/031_tanaman-blur-kanan.webp 1312w\" sizes=\"(max-width: 719px) 50vw, (max-width: 1099px) 40vw, 34vw\" src=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/031_tanaman-blur-kanan.webp\" width=\"1312\" height=\"1199\" alt=\"\" decoding=\"async\">\r\n\r\n        <p class=\"m-art__note\" aria-hidden=\"true\">\r\n          <span>Mulai<\/span><span>hari yang<\/span><span>lebih baik<\/span>\r\n          <svg viewBox=\"0 0 60 12\"><path d=\"M3 9c14-6 34-8 54-5\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3.5\" stroke-linecap=\"round\"\/><\/svg>\r\n        <\/p>\r\n      <\/template>\r\n        <noscript><img loading=\"lazy\" decoding=\"async\" class=\"m-art__hero\" srcset=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/022_naya-nico-siklus-menunda-mobile-640.webp 640w, https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/023_naya-nico-siklus-menunda.webp 1229w\" sizes=\"(max-width: 719px) 100vw, 800px\" src=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/023_naya-nico-siklus-menunda.webp\" width=\"1229\" height=\"1280\" alt=\"Naya dan Nico, maskot Grownoola, di atas lingkaran panah\"><\/noscript>\r\n      <\/div>\r\n    <\/section>\r\n\r\n  <!-- Foreground depth -->\r\n  <div class=\"plants\" aria-hidden=\"true\">\r\n    <picture>\r\n      <source type=\"image\/webp\" srcset=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/032_tanaman-blur-kiri.webp\">\r\n      <img loading=\"lazy\" class=\"plant plant--left\" srcset=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/033_tanaman-blur-kiri-mobile-640.webp 640w, https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/034_tanaman-blur-kiri.webp 1371w\" sizes=\"(max-width: 719px) 50vw, (max-width: 1099px) 40vw, 34vw\" src=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/034_tanaman-blur-kiri.webp\" width=\"1371\" height=\"1147\" alt=\"\" decoding=\"async\">\r\n    <\/picture>\r\n    <picture>\r\n      <source type=\"image\/webp\" srcset=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/031_tanaman-blur-kanan.webp\">\r\n      <img loading=\"lazy\" class=\"plant plant--right\" srcset=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/035_tanaman-buku-blur-kanan-mobile-640.webp 640w, https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/036_tanaman-buku-blur-kanan.webp 1312w\" sizes=\"(max-width: 719px) 50vw, (max-width: 1099px) 40vw, 34vw\" src=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/036_tanaman-buku-blur-kanan.webp\" width=\"1312\" height=\"1199\" alt=\"\" decoding=\"async\">\r\n    <\/picture>\r\n  <\/div>\r\n<\/div>\r\n\r\n<!-- =========================================================\r\n     01 \u00b7 Waktu jalan\r\n     ========================================================= -->\r\n<section class=\"pd-sec s01\" id=\"waktu-jalan\" aria-labelledby=\"s01-title\">\r\n  <div class=\"bridge bridge--01\" aria-hidden=\"true\">\r\n    <img loading=\"lazy\" class=\"leaf\" src=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/037_tanaman-blur-kiri-760.webp\" width=\"760\" height=\"636\" alt=\"\" loading=\"lazy\" decoding=\"async\">\r\n    <i class=\"bit bit--amber\"><\/i>\r\n  <\/div>\r\n  <div class=\"s01__notes\" aria-hidden=\"true\">\r\n    <span class=\"pd-wall-note s01__note s01__note--a\">Cara kerja<br>dan<br>cara hidup<br>versi aku \u2661<\/span>\r\n    <span class=\"pd-wall-note pd-wall-note--cream pd-wall-note--small s01__note s01__note--b\">Satu<br>Langkah<br>Dulu \ud83d\ude42<\/span>\r\n    <span class=\"pd-wall-note s01__note s01__note--c\">Masa<br>Depan<br>Masih<br>Panjang \ud83d\ude42<\/span>\r\n  <\/div>\r\n\r\n  <div class=\"sec-inner\">\r\n    <h2 class=\"sec-title\" id=\"s01-title\" data-reveal>\r\n      <span class=\"line\"><span class=\"nowrap\"><svg class=\"ray ray--upleft ray--lead\" viewBox=\"0 0 40 40\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#i-burst\"\/><\/svg>Tiap<\/span> tahun resolusinya baru.<\/span>\r\n      <span class=\"line\">Yang tertunda masih <span class=\"nowrap\"><span class=\"accent-violet\">itu-itu lagi<span class=\"stop\">.<\/span><\/span><svg class=\"ray ray--right ray--tail\" viewBox=\"0 0 40 40\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#i-burst\"\/><\/svg><\/span><\/span>\r\n    <\/h2>\r\n\r\n    <ol class=\"s01-flow\" aria-label=\"Rencana awal tahun sampai deadline lewat\">\r\n      <li class=\"s01-card\" data-reveal>\r\n        <h3 class=\"s01-card__label\">Januari<\/h3>\r\n        <span class=\"crop crop--cal-plan s01-card__art\"><img loading=\"lazy\" srcset=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/038_kalender-rencana-awal-tahun-mobile-640.webp 640w, https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/039_kalender-rencana-awal-tahun.webp 1374w\" sizes=\"auto, (max-width: 719px) 38vw, 220px\" src=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/038_kalender-rencana-awal-tahun-mobile-640.webp\" width=\"1374\" height=\"1145\" alt=\"\" loading=\"lazy\" decoding=\"async\"><\/span>\r\n        <p class=\"s01-card__text\">Mau cari kerja yang lebih cocok.<\/p>\r\n      <\/li>\r\n      <li class=\"s01-card\" data-reveal style=\"--d:120ms\">\r\n        <h3 class=\"s01-card__label\">Deadline lewat<\/h3>\r\n        <span class=\"crop crop--cal-miss s01-card__art\"><img loading=\"lazy\" srcset=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/040_kalender-deadline-terlewat-mobile-640.webp 640w, https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/041_kalender-deadline-terlewat.webp 1388w\" sizes=\"auto, (max-width: 719px) 38vw, 220px\" src=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/040_kalender-deadline-terlewat-mobile-640.webp\" width=\"1388\" height=\"1133\" alt=\"\" loading=\"lazy\" decoding=\"async\"><\/span>\r\n        <p class=\"s01-card__text\">Beberapa bulan lewat. <span class=\"s01-card__line\">CV-nya masih setengah jadi.<\/span><\/p>\r\n      <\/li>\r\n    <\/ol>\r\n\r\n    <div class=\"s01-thoughts\" data-reveal style=\"--d:180ms\">\r\n      <p class=\"bubble bubble--lav\"><span class=\"visually-hidden\">Naya bertanya dalam hati: <\/span>\u201cQuarter-life crisis, kali ya?\u201d<\/p>\r\n      <p class=\"bubble bubble--cream\"><span class=\"visually-hidden\">Nico berkata dalam hati: <\/span>\u201cBesok mulai serius, deh.\u201d<\/p>\r\n    <\/div>\r\n\r\n    <div class=\"s01-duo\">\r\n      <span class=\"crop crop--s01-naya s01-duo__naya\" data-reveal><img loading=\"lazy\" srcset=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/042_naya-cemas-rencana-karier-mobile-640.webp 640w, https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/043_naya-cemas-rencana-karier.webp 1319w\" sizes=\"auto, (max-width: 719px) 50vw, (max-width: 1099px) 42vw, 32vw\" src=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/043_naya-cemas-rencana-karier.webp\" width=\"1319\" height=\"1193\" alt=\"Naya cemas melihat draft CV untuk rencana kariernya yang belum dijalankan\" loading=\"lazy\" decoding=\"async\"><\/span>\r\n      <span class=\"crop crop--s01-nico s01-duo__nico\" data-reveal style=\"--d:120ms\"><img loading=\"lazy\" srcset=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/044_nico-memikirkan-deadline-mobile-640.webp 640w, https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/045_nico-memikirkan-deadline.webp 1536w\" sizes=\"auto, (max-width: 719px) 58vw, (max-width: 1099px) 50vw, 40vw\" src=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/045_nico-memikirkan-deadline.webp\" width=\"1536\" height=\"1024\" alt=\"Nico termenung di samping kalender dengan tanggal deadline yang sudah dicoret\" loading=\"lazy\" decoding=\"async\"><\/span>\r\n    <\/div>\r\n\r\n    <p class=\"s01-note\" data-reveal>Project baru, skill baru, rencana baru. Kita sering semangat di awal. Tapi begitu masuk bagian yang ribet, bikin takut, atau hasilnya enggak langsung kelihatan, rencananya pelan-pelan ditinggalin.<\/p>\r\n    <p class=\"s01-urgency\" data-reveal style=\"--d:80ms\">Sementara kita masih menunggu siap, waktu tetap jalan. Biaya hidup naik. Umur bertambah. Kesempatan datang, lalu pindah ke orang lain.<\/p>\r\n    <p class=\"s01-lead\" data-reveal style=\"--d:140ms\">Jadi mungkin masalahnya bukan kurang niat. <span>Kita cuma belum tahu apa yang selalu bikin langkah itu tertahan.<\/span><\/p>\r\n\r\n    <div class=\"cta-row\" data-reveal>\r\n      <svg class=\"ray ray--left cta-ray\" viewBox=\"0 0 40 40\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#i-burst\"\/><\/svg>\r\n      <button class=\"cta cta--section\" type=\"button\" data-open-quiz aria-haspopup=\"dialog\" aria-controls=\"quiz\">\r\n        <svg class=\"cta__icon\" viewBox=\"0 0 32 32\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#i-glass\"\/><\/svg>\r\n        <span>Cari tahu pola menundamu<\/span>\r\n      <\/button>\r\n      <svg class=\"ray ray--right cta-ray\" viewBox=\"0 0 40 40\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#i-burst\"\/><\/svg>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <div class=\"fg\" aria-hidden=\"true\">\r\n    <img loading=\"lazy\" class=\"fg__l\" srcset=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/046_foreground-tanaman-buku-blur-kiri-mobile-640.webp 640w, https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/047_foreground-tanaman-buku-blur-kiri.webp 1672w\" sizes=\"auto, (max-width: 1099px) 100vw, 54vw\" src=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/047_foreground-tanaman-buku-blur-kiri.webp\" width=\"1672\" height=\"941\" alt=\"\" loading=\"lazy\" decoding=\"async\">\r\n    <img loading=\"lazy\" class=\"fg__r\" srcset=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/048_foreground-lampu-buku-blur-kanan-mobile-640.webp 640w, https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/049_foreground-lampu-buku-blur-kanan.webp 1672w\" sizes=\"auto, (max-width: 1099px) 100vw, 50vw\" src=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/049_foreground-lampu-buku-blur-kanan.webp\" width=\"1672\" height=\"941\" alt=\"\" loading=\"lazy\" decoding=\"async\">\r\n  <\/div>\r\n<\/section>\r\n\r\n<!-- =========================================================\r\n     02 \u00b7 Data penundaan (two separate studies)\r\n     ========================================================= -->\r\n<section class=\"pd-sec s02\" id=\"data-penundaan\" aria-labelledby=\"s02-title\">\r\n  <div class=\"bridge bridge--02\" aria-hidden=\"true\">\r\n    <img loading=\"lazy\" class=\"leaf\" src=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/050_tanaman-blur-kanan-760.webp\" width=\"760\" height=\"695\" alt=\"\" loading=\"lazy\" decoding=\"async\">\r\n    <i class=\"bit\"><\/i>\r\n  <\/div>\r\n  <div class=\"sec-inner\">\r\n    <h2 class=\"sec-title\" id=\"s02-title\" data-reveal>\r\n      <span class=\"line\"><span class=\"nowrap\"><svg class=\"ray ray--upleft ray--lead\" viewBox=\"0 0 40 40\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#i-burst\"\/><\/svg>Kalau<\/span> kamu sering menunda,<\/span>\r\n      <span class=\"line\">kamu <span class=\"nowrap\"><span class=\"accent-violet\">enggak sendirian<span class=\"stop\">.<\/span><\/span><svg class=\"ray ray--right ray--tail\" viewBox=\"0 0 40 40\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#i-burst\"\/><\/svg><\/span><\/span>\r\n    <\/h2>\r\n\r\n    <div class=\"s02-duo\">\r\n      <img loading=\"lazy\" class=\"s02-duo__naya\" data-reveal srcset=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/051_naya-terkejut-data-penundaan-mobile-640.webp 640w, https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/052_naya-terkejut-data-penundaan.webp 1024w\" sizes=\"auto, (max-width: 719px) 60vw, (max-width: 1099px) 44vw, 34vw\" src=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/052_naya-terkejut-data-penundaan.webp\" width=\"1024\" height=\"1536\" alt=\"Naya duduk dan menutup mulut karena terkejut melihat data tentang kebiasaan menunda\" loading=\"lazy\" decoding=\"async\">\r\n      <img loading=\"lazy\" class=\"s02-duo__nico\" data-reveal style=\"--d:120ms\" srcset=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/053_nico-terkejut-data-penundaan-mobile-640.webp 640w, https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/054_nico-terkejut-data-penundaan.webp 1024w\" sizes=\"auto, (max-width: 719px) 60vw, (max-width: 1099px) 44vw, 34vw\" src=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/054_nico-terkejut-data-penundaan.webp\" width=\"1024\" height=\"1536\" alt=\"Nico duduk sambil memegang dagu karena terkejut melihat data tentang kebiasaan menunda\" loading=\"lazy\" decoding=\"async\">\r\n    <\/div>\r\n\r\n    <div class=\"s02-stats\">\r\n      <article class=\"stat\" aria-labelledby=\"stat-pelajar\" data-reveal>\r\n        <h3 class=\"stat__label\" id=\"stat-pelajar\">Pelajar<\/h3>\r\n        <p class=\"stat__value\" aria-hidden=\"true\">\r\n          <span class=\"stat__numwrap\"><svg class=\"ray ray--upleft stat__ray\" viewBox=\"0 0 40 40\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#i-burst\"\/><\/svg><span class=\"stat__num\">95,8%<\/span><\/span>\r\n        <\/p>\r\n        <p class=\"stat__desc\">Dalam satu studi di Indonesia, <strong>95,8%<\/strong> pelajar yang diteliti mengalami penundaan akademik tingkat sedang hingga tinggi.<\/p>\r\n        <p class=\"stat__meaning\">Artinya, dari setiap 10 orang yang diteliti, lebih dari 9 orang juga bergelut dengan kebiasaan menunda.<\/p>\r\n      <\/article>\r\n      <article class=\"stat\" aria-labelledby=\"stat-staf\" data-reveal style=\"--d:120ms\">\r\n        <h3 class=\"stat__label\" id=\"stat-staf\">Staf kantor<\/h3>\r\n        <p class=\"stat__value\" aria-hidden=\"true\">\r\n          <span class=\"stat__approx\">sekitar<\/span>\r\n          <span class=\"stat__numwrap\"><svg class=\"ray ray--upleft stat__ray\" viewBox=\"0 0 40 40\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#i-burst\"\/><\/svg><span class=\"stat__num\">65%<\/span><\/span>\r\n        <\/p>\r\n        <p class=\"stat__desc\">Di studi lain, <strong>sekitar 65%<\/strong> staf kantor yang diteliti mengaku sering atau sangat sering menunda memulai pekerjaan.<\/p>\r\n        <p class=\"stat__meaning\">Jadi masalah ini enggak otomatis hilang setelah kita lulus dan mulai bekerja.<\/p>\r\n      <\/article>\r\n    <\/div>\r\n\r\n    <div class=\"s02-bridge\" data-reveal>\r\n      <p>Menunda ternyata bukan cuma urusan tugas sekolah atau skripsi. Kebiasaan yang sama bisa ikut sampai ke meja kerja.<\/p>\r\n      <p class=\"s02-bridge__ask\">Tapi ada satu hal yang enggak bisa dijawab angka ini: <em>kenapa kamu menunda?<\/em><\/p>\r\n    <\/div>\r\n\r\n    <div class=\"cta-row\" data-reveal>\r\n      <svg class=\"ray ray--left cta-ray\" viewBox=\"0 0 40 40\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#i-burst\"\/><\/svg>\r\n      <button class=\"cta cta--section\" type=\"button\" data-open-quiz aria-haspopup=\"dialog\" aria-controls=\"quiz\">\r\n        <svg class=\"cta__icon\" viewBox=\"0 0 32 32\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#i-glass\"\/><\/svg>\r\n        <span>Cari tahu penyebabnya di dirimu<\/span>\r\n      <\/button>\r\n      <svg class=\"ray ray--right cta-ray\" viewBox=\"0 0 40 40\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#i-burst\"\/><\/svg>\r\n    <\/div>\r\n\r\n    <details class=\"sources\">\r\n      <summary><span>Dua studi terpisah di Indonesia: Abdullah dkk. (2026) dan Sunarta (2023).<\/span> <span class=\"sources__more\">Lihat sumber &amp; metode<\/span><\/summary>\r\n      <div class=\"sources__body\">\r\n        <p><strong>Pelajar, 95,8%.<\/strong> Gabungan 75,6% kategori sedang dan 20,2% kategori tinggi pada studi prokrastinasi akademik terhadap 262 siswa SMA. <a href=\"https:\/\/doi.org\/10.17977\/2797-9954.1169\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Abdullah dkk., <i>Buletin Konseling Inovatif<\/i>, 2026<span class=\"visually-hidden\"> (membuka tab baru)<\/span><\/a>.<\/p>\r\n        <p><strong>Staf kantor, sekitar 65%.<\/strong> Pada butir menunda memulai tugas, 54,9% menjawab sering dan 10,3% sangat sering. Survei terhadap 195 tenaga kependidikan di tiga perguruan tinggi negeri di Yogyakarta. <a href=\"https:\/\/dspace.uii.ac.id\/bitstream\/handle\/123456789\/53479\/16931004.pdf?isAllowed=y&amp;sequence=1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Sunarta, disertasi Universitas Islam Indonesia, 2023, tabel 5.3<span class=\"visually-hidden\"> (PDF, membuka tab baru)<\/span><\/a>.<\/p>\r\n        <p>Dua angka ini berasal dari dua studi dengan kelompok dan cara pengukuran yang berbeda. Jadi angkanya tidak mewakili seluruh pelajar dan pekerja Indonesia. Tapi keduanya menunjukkan satu hal yang sama: kebiasaan menunda bisa muncul di berbagai tahap kehidupan.<\/p>\r\n      <\/div>\r\n    <\/details>\r\n  <\/div>\r\n\r\n  <div class=\"fg\" aria-hidden=\"true\">\r\n    <img loading=\"lazy\" class=\"fg__l\" srcset=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/055_foreground-meja-buku-blur-kiri-mobile-640.webp 640w, https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/056_foreground-meja-buku-blur-kiri.webp 1536w\" sizes=\"auto, (max-width: 1099px) 80vw, 46vw\" src=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/056_foreground-meja-buku-blur-kiri.webp\" width=\"1536\" height=\"1024\" alt=\"\" loading=\"lazy\" decoding=\"async\">\r\n    <img loading=\"lazy\" class=\"fg__r\" srcset=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/057_foreground-meja-tanaman-blur-kanan-mobile-640.webp 640w, https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/058_foreground-meja-tanaman-blur-kanan.webp 1536w\" sizes=\"auto, (max-width: 1099px) 80vw, 46vw\" src=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/058_foreground-meja-tanaman-blur-kanan.webp\" width=\"1536\" height=\"1024\" alt=\"\" loading=\"lazy\" decoding=\"async\">\r\n  <\/div>\r\n<\/section>\r\n\r\n<!-- =========================================================\r\n     03 \u00b7 Dua contoh penundaan + pesan dari diri lima tahun lagi\r\n     ========================================================= -->\r\n<section class=\"pd-sec s03\" id=\"kenali-polamu\" aria-labelledby=\"s03-title\">\r\n  <div class=\"bridge bridge--03\" aria-hidden=\"true\">\r\n    <img loading=\"lazy\" class=\"leaf\" src=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/037_tanaman-blur-kiri-760.webp\" width=\"760\" height=\"636\" alt=\"\" loading=\"lazy\" decoding=\"async\">\r\n    <i class=\"bit bit--amber\"><\/i>\r\n  <\/div>\r\n  <div class=\"sec-inner\">\r\n    <h2 class=\"sec-title\" id=\"s03-title\" data-reveal>\r\n      <span class=\"line\"><span class=\"nowrap\"><svg class=\"ray ray--upleft ray--lead\" viewBox=\"0 0 40 40\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#i-burst\"\/><\/svg>Dua<\/span> orang <span class=\"nowrap\">sama-sama<\/span> belum mulai.<\/span>\r\n      <span class=\"line\">Tapi penyebabnya bisa <span class=\"nowrap\"><span class=\"accent-violet\">beda jauh<span class=\"stop\">.<\/span><\/span><svg class=\"ray ray--right ray--tail\" viewBox=\"0 0 40 40\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#i-burst\"\/><\/svg><\/span><\/span>\r\n    <\/h2>\r\n\r\n    <div class=\"s03-cases\">\r\n      <article class=\"case case--naya\" aria-labelledby=\"case-naya\" data-reveal>\r\n        <div class=\"case__media\">\r\n          <img loading=\"lazy\" srcset=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/059_naya-tugas-akhir-belum-dimulai-tight-mobile-640.webp 640w, https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/060_naya-tugas-akhir-belum-dimulai-tight.webp 1358w\" sizes=\"auto, (max-width: 719px) 45vw, (max-width: 1099px) 330px, 24vw\" src=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/060_naya-tugas-akhir-belum-dimulai-tight.webp\" width=\"1358\" height=\"1069\" alt=\"Naya menopang dagu di depan laptop tertutup, buku catatan kosong, dan tumpukan buku\" loading=\"lazy\" decoding=\"async\">\r\n        <\/div>\r\n        <div class=\"case__body\">\r\n          <span class=\"crop crop--icon-thesis case__icon\"><img loading=\"lazy\" srcset=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/061_ikon-buku-naskah-skripsi-mobile-640.webp 640w, https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/062_ikon-buku-naskah-skripsi.webp 1536w\" sizes=\"auto, (max-width: 719px) 38vw, 22vw\" src=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/061_ikon-buku-naskah-skripsi-mobile-640.webp\" width=\"1536\" height=\"1024\" alt=\"\" loading=\"lazy\" decoding=\"async\"><\/span>\r\n          <p class=\"case__tag\">Mahasiswa<\/p>\r\n          <h3 class=\"case__title\" id=\"case-naya\">Skripsi belum mulai<\/h3>\r\n          <p class=\"case__quote\">\u201cTakut salah, jadi riset terus.\u201d<\/p>\r\n          <p class=\"case__aside\">Tab-nya makin banyak. Halaman pertama masih kosong.<\/p>\r\n        <\/div>\r\n      <\/article>\r\n      <article class=\"case case--nico\" aria-labelledby=\"case-nico\" data-reveal style=\"--d:120ms\">\r\n        <div class=\"case__media\">\r\n          <img loading=\"lazy\" srcset=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/063_nico-laporan-kerja-menumpuk-tight-mobile-640.webp 640w, https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/064_nico-laporan-kerja-menumpuk-tight.webp 1475w\" sizes=\"auto, (max-width: 719px) 45vw, (max-width: 1099px) 330px, 24vw\" src=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/064_nico-laporan-kerja-menumpuk-tight.webp\" width=\"1475\" height=\"959\" alt=\"Nico memegang kepala di meja kerja dengan laptop dan tumpukan kertas laporan\" loading=\"lazy\" decoding=\"async\">\r\n        <\/div>\r\n        <div class=\"case__body\">\r\n          <span class=\"crop crop--icon-report case__icon\"><img loading=\"lazy\" srcset=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/065_ikon-laporan-laptop-mobile-640.webp 640w, https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/066_ikon-laporan-laptop.webp 1584w\" sizes=\"auto, (max-width: 719px) 38vw, 22vw\" src=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/065_ikon-laporan-laptop-mobile-640.webp\" width=\"1584\" height=\"993\" alt=\"\" loading=\"lazy\" decoding=\"async\"><\/span>\r\n          <p class=\"case__tag\">Pekerja kantor<\/p>\r\n          <h3 class=\"case__title\" id=\"case-nico\">Laporan belum disentuh<\/h3>\r\n          <p class=\"case__quote\">\u201cKerjaannya udah numpuk. Mau mulai dari mana?\u201d<\/p>\r\n          <p class=\"case__aside\">Laporan belum jalan. Ide side income juga terus menunggu sampai kerjaan terasa beres.<\/p>\r\n        <\/div>\r\n      <\/article>\r\n    <\/div>\r\n\r\n    <div class=\"s03-bridge\" data-reveal>\r\n      <p class=\"s03-bridge__story\">Naya tertahan karena takut salah. Nico karena udah overwhelm duluan. Dari luar memang kelihatan sama-sama menunda. Tapi cara mengatasinya belum tentu sama.<\/p>\r\n      <p class=\"s03-bridge__ask\">\r\n        <svg class=\"ray ray--left bridge-ray bridge-ray--l\" viewBox=\"0 0 40 40\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#i-burst\"\/><\/svg>\r\n        <span class=\"ask-line\">Nah, kalau kamu, apa yang paling sering<\/span> <span class=\"ask-line\">bikin berhenti sebelum benar-benar mulai?<\/span>\r\n        <svg class=\"ray ray--right bridge-ray bridge-ray--r\" viewBox=\"0 0 40 40\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#i-burst\"\/><\/svg>\r\n      <\/p>\r\n    <\/div>\r\n\r\n    <!-- Future-self scene: Naya (left) and Nico (right) ask their present selves not to wait five more years -->\r\n    <div class=\"future-message\" data-reveal>\r\n      <picture class=\"future-self future-self--naya\" aria-hidden=\"true\">\r\n        <source media=\"(max-width: 719px)\" srcset=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/067_naya-future-self-pleading-mobile-v3.webp\" width=\"640\" height=\"640\">\r\n        <img loading=\"lazy\" src=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/068_naya-future-self-pleading-desktop-v3.webp\" width=\"1024\" height=\"1024\" alt=\"\" loading=\"lazy\" decoding=\"async\" draggable=\"false\">\r\n      <\/picture>\r\n      <figure class=\"letter\">\r\n        <span class=\"crop crop--envelope letter__art\"><img loading=\"lazy\" srcset=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/069_amplop-pesan-diri-masa-depan-mobile-640.webp 640w, https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/070_amplop-pesan-diri-masa-depan.webp 1536w\" sizes=\"auto, (max-width: 1099px) 150px, 12vw\" src=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/069_amplop-pesan-diri-masa-depan-mobile-640.webp\" width=\"1536\" height=\"1024\" alt=\"\" loading=\"lazy\" decoding=\"async\"><\/span>\r\n        <figcaption class=\"letter__from\">Pesan dari dirimu lima tahun lagi:<\/figcaption>\r\n        <blockquote class=\"letter__msg\"><p>\u201cTolong jangan tunggu lima tahun lagi buat mencari tahu kenapa kita selalu berhenti di tempat yang sama.\u201d<\/p><\/blockquote>\r\n      <\/figure>\r\n      <picture class=\"future-self future-self--nico\" aria-hidden=\"true\">\r\n        <source media=\"(max-width: 719px)\" srcset=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/071_nico-future-self-pleading-mobile-v3.webp\" width=\"640\" height=\"640\">\r\n        <img loading=\"lazy\" src=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/072_nico-future-self-pleading-desktop-v3.webp\" width=\"1024\" height=\"1024\" alt=\"\" loading=\"lazy\" decoding=\"async\" draggable=\"false\">\r\n      <\/picture>\r\n    <\/div>\r\n\r\n    <p class=\"s03-benefit\" data-reveal>Tes ini bukan buat ngecap kamu malas. Tes ini membantu melihat pola yang paling sering muncul, supaya kamu enggak terus mencoba solusi yang salah. <strong>Karena kalau kamu salah mengenali masalahnya, kamu juga akan salah mencari solusinya.<\/strong><\/p>\r\n\r\n    <div class=\"cta-row\" data-reveal>\r\n      <svg class=\"ray ray--left cta-ray\" viewBox=\"0 0 40 40\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#i-burst\"\/><\/svg>\r\n      <button class=\"cta cta--section\" type=\"button\" data-open-quiz aria-haspopup=\"dialog\" aria-controls=\"quiz\">\r\n        <svg class=\"cta__icon\" viewBox=\"0 0 32 32\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#i-glass\"\/><\/svg>\r\n        <span>Cari tahu pola menundamu yang paling kuat<\/span>\r\n      <\/button>\r\n      <svg class=\"ray ray--right cta-ray\" viewBox=\"0 0 40 40\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#i-burst\"\/><\/svg>\r\n    <\/div>\r\n    <p class=\"cta-note\">15 pertanyaan singkat. Hasilnya membantu refleksi diri, bukan diagnosis psikologis.<\/p>\r\n  <\/div>\r\n\r\n  <div class=\"fg\" aria-hidden=\"true\">\r\n    <img loading=\"lazy\" class=\"fg__l\" srcset=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/073_foreground-daun-blur-kiri-mobile-640.webp 640w, https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/074_foreground-daun-blur-kiri.webp 1584w\" sizes=\"auto, (max-width: 1099px) 90vw, 44vw\" src=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/074_foreground-daun-blur-kiri.webp\" width=\"1584\" height=\"993\" alt=\"\" loading=\"lazy\" decoding=\"async\">\r\n    <img loading=\"lazy\" class=\"fg__r\" srcset=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/075_foreground-buku-daun-blur-kanan-mobile-640.webp 640w, https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/076_foreground-buku-daun-blur-kanan.webp 1584w\" sizes=\"auto, (max-width: 1099px) 90vw, 44vw\" src=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/076_foreground-buku-daun-blur-kanan.webp\" width=\"1584\" height=\"993\" alt=\"\" loading=\"lazy\" decoding=\"async\">\r\n  <\/div>\r\n<\/section>\r\n\r\n<!-- =========================================================\r\n     05 \u00b7 Konsekuensi menunda (carousel, section pamungkas)\r\n     ========================================================= -->\r\n<section class=\"pd-sec final-consequences\" id=\"konsekuensi-menunda\" aria-labelledby=\"consequences-title\">\r\n  <div class=\"bridge bridge--05\" aria-hidden=\"true\">\r\n    <img loading=\"lazy\" class=\"leaf\" src=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/037_tanaman-blur-kiri-760.webp\" width=\"760\" height=\"636\" alt=\"\" loading=\"lazy\" decoding=\"async\">\r\n    <i class=\"bit bit--amber\"><\/i>\r\n  <\/div>\r\n\r\n  <div class=\"sec-inner final-consequences__intro\">\r\n    <p class=\"final-consequences__eyebrow\" data-reveal>Masalahnya, waktu tetap jalan.<\/p>\r\n    <h2 class=\"sec-title final-consequences__title\" id=\"consequences-title\" data-reveal style=\"--d:80ms\">\r\n      <span class=\"line\"><span class=\"nowrap\"><svg class=\"ray ray--upleft ray--lead\" viewBox=\"0 0 40 40\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#i-burst\"\/><\/svg>Menunda<\/span> sehari memang terasa sepele.<\/span>\r\n      <span class=\"line\">Yang mahal, kalau <span class=\"accent-violet\">kebiasaannya ikut <span class=\"nowrap\">bertahun-tahun<span class=\"stop\">.<\/span><\/span><\/span><svg class=\"ray ray--right ray--tail\" viewBox=\"0 0 40 40\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#i-burst\"\/><\/svg><\/span>\r\n    <\/h2>\r\n    <div class=\"final-consequences__lead\" data-reveal style=\"--d:160ms\">\r\n      <p>Awalnya mungkin tugas. Lalu skripsi. Begitu kerja, bentuknya berubah jadi laporan, skill baru, kesempatan pindah kerja, proyek pribadi, sampai side income.<\/p>\r\n      <p class=\"final-consequences__lead-strong\">Yang ditunda berubah seiring usia. Polanya bisa tetap sama.<\/p>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <div class=\"carousel\" data-carousel aria-roledescription=\"carousel\" aria-label=\"Hal yang sering tertunda seiring bertambahnya usia\" role=\"region\" data-reveal style=\"--d:240ms\">\r\n    <div class=\"carousel__viewport\" tabindex=\"0\" aria-label=\"Geser kartu dengan tombol panah kiri dan kanan\">\r\n      <div class=\"carousel__track\">\r\n        <article class=\"consequence-card\" role=\"group\" aria-roledescription=\"kartu\" aria-label=\"1 dari 8: Tugas selalu mepet\" data-slide=\"0\">\r\n          <picture class=\"consequence-card__media\">\r\n            <source media=\"(max-width: 719px)\" srcset=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/077_naya-tugas-mepet-mobile-v2.webp\" width=\"1122\" height=\"1122\">\r\n            <img loading=\"lazy\" src=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/078_naya-tugas-mepet-desktop-v2.webp\" width=\"1536\" height=\"1024\" alt=\"Naya bergegas membawa tugas di koridor kampus animasi menjelang tenggat waktu.\" loading=\"lazy\" decoding=\"async\" draggable=\"false\">\r\n          <\/picture>\r\n          <div class=\"consequence-card__copy\">\r\n            <h3 class=\"consequence-card__title\">Tugas selalu mepet<\/h3>\r\n            <p class=\"consequence-card__body\">Deadline dulu, baru bergerak.<\/p>\r\n          <\/div>\r\n        <\/article>\r\n        <article class=\"consequence-card\" role=\"group\" aria-roledescription=\"kartu\" aria-label=\"2 dari 8: Skill cuma masuk watchlist\" data-slide=\"1\">\r\n          <picture class=\"consequence-card__media\">\r\n            <source media=\"(max-width: 719px)\" srcset=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/079_nico-skill-watchlist-mobile-v2.webp\" width=\"1122\" height=\"1122\">\r\n            <img loading=\"lazy\" src=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/080_nico-skill-watchlist-desktop-v2.webp\" width=\"1536\" height=\"1024\" alt=\"Nico menunda belajar skill saat perjalanan pulang di kereta kota animasi.\" loading=\"lazy\" decoding=\"async\" draggable=\"false\">\r\n          <\/picture>\r\n          <div class=\"consequence-card__copy\">\r\n            <h3 class=\"consequence-card__title\">Skill cuma masuk watchlist<\/h3>\r\n            <p class=\"consequence-card__body\">Videonya disimpan di watchlist. Praktiknya belum dimulai.<\/p>\r\n          <\/div>\r\n        <\/article>\r\n        <article class=\"consequence-card\" role=\"group\" aria-roledescription=\"kartu\" aria-label=\"3 dari 8: Skripsi terus tertahan\" data-slide=\"2\">\r\n          <picture class=\"consequence-card__media\">\r\n            <source media=\"(max-width: 719px)\" srcset=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/081_naya-skripsi-tertahan-mobile-v2.webp\" width=\"1122\" height=\"1122\">\r\n            <img loading=\"lazy\" src=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/082_naya-skripsi-tertahan-desktop-v2.webp\" width=\"1536\" height=\"1024\" alt=\"Naya ragu memilih arah riset di persimpangan perpustakaan animasi.\" loading=\"lazy\" decoding=\"async\" draggable=\"false\">\r\n          <\/picture>\r\n          <div class=\"consequence-card__copy\">\r\n            <h3 class=\"consequence-card__title\">Skripsi terus tertahan<\/h3>\r\n            <p class=\"consequence-card__body\">Serba takut salah arah. Akhirnya riset terus tanpa mulai menulis.<\/p>\r\n          <\/div>\r\n        <\/article>\r\n        <article class=\"consequence-card\" role=\"group\" aria-roledescription=\"kartu\" aria-label=\"4 dari 8: Lamaran belum dikirim\" data-slide=\"3\">\r\n          <picture class=\"consequence-card__media\">\r\n            <source media=\"(max-width: 719px)\" srcset=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/083_nico-lamaran-belum-dikirim-mobile-v2.webp\" width=\"1122\" height=\"1122\">\r\n            <img loading=\"lazy\" src=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/084_nico-lamaran-belum-dikirim-desktop-v2.webp\" width=\"1536\" height=\"1024\" alt=\"Nico ragu masuk ke gedung kantor animasi sambil membawa berkas lamaran.\" loading=\"lazy\" decoding=\"async\" draggable=\"false\">\r\n          <\/picture>\r\n          <div class=\"consequence-card__copy\">\r\n            <h3 class=\"consequence-card__title\">Lamaran belum dikirim<\/h3>\r\n            <p class=\"consequence-card__body\">Lowongannya disimpan. Takut ditolak duluan.<\/p>\r\n          <\/div>\r\n        <\/article>\r\n        <article class=\"consequence-card\" role=\"group\" aria-roledescription=\"kartu\" aria-label=\"5 dari 8: Laporan belum dimulai\" data-slide=\"4\">\r\n          <picture class=\"consequence-card__media\">\r\n            <source media=\"(max-width: 719px)\" srcset=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/085_naya-laporan-overwhelm-mobile-v2.webp\" width=\"1122\" height=\"1122\">\r\n            <img loading=\"lazy\" src=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/086_naya-laporan-overwhelm-desktop-v2.webp\" width=\"1536\" height=\"1024\" alt=\"Naya merasa overwhelm di tengah arus pekerjaan dalam atrium kantor animasi.\" loading=\"lazy\" decoding=\"async\" draggable=\"false\">\r\n          <\/picture>\r\n          <div class=\"consequence-card__copy\">\r\n            <h3 class=\"consequence-card__title\">Laporan belum dimulai<\/h3>\r\n            <p class=\"consequence-card__body\">Belum mulai, tapi udah overwhelm duluan.<\/p>\r\n          <\/div>\r\n        <\/article>\r\n        <article class=\"consequence-card\" role=\"group\" aria-roledescription=\"kartu\" aria-label=\"6 dari 8: Pengen tempat kerja lebih baik\" data-slide=\"5\">\r\n          <picture class=\"consequence-card__media\">\r\n            <source media=\"(max-width: 719px)\" srcset=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/087_nico-rencana-karier-mobile-v2.webp\" width=\"1122\" height=\"1122\">\r\n            <img loading=\"lazy\" src=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/088_nico-rencana-karier-desktop-v2.webp\" width=\"1536\" height=\"1024\" alt=\"Nico memandang tempat kerja baru dari jembatan pejalan kaki dalam kota animasi.\" loading=\"lazy\" decoding=\"async\" draggable=\"false\">\r\n          <\/picture>\r\n          <div class=\"consequence-card__copy\">\r\n            <h3 class=\"consequence-card__title\">Pengen tempat kerja lebih baik<\/h3>\r\n            <p class=\"consequence-card__body\">Pengen pindah kerja. Persiapannya selalu nanti.<\/p>\r\n          <\/div>\r\n        <\/article>\r\n        <article class=\"consequence-card\" role=\"group\" aria-roledescription=\"kartu\" aria-label=\"7 dari 8: Side income masih jadi ide\" data-slide=\"6\">\r\n          <picture class=\"consequence-card__media\">\r\n            <source media=\"(max-width: 719px)\" srcset=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/089_naya-side-income-mobile-v2.webp\" width=\"1122\" height=\"1122\">\r\n            <img loading=\"lazy\" src=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/090_naya-side-income-desktop-v2.webp\" width=\"1536\" height=\"1024\" alt=\"Naya ragu membuka lapak pertamanya di pasar kreatif akhir pekan animasi.\" loading=\"lazy\" decoding=\"async\" draggable=\"false\">\r\n          <\/picture>\r\n          <div class=\"consequence-card__copy\">\r\n            <h3 class=\"consequence-card__title\">Side income masih jadi ide<\/h3>\r\n            <p class=\"consequence-card__body\">Idenya terus dipikirin. Belum pernah benar-benar dicoba.<\/p>\r\n          <\/div>\r\n        <\/article>\r\n        <article class=\"consequence-card\" role=\"group\" aria-roledescription=\"kartu\" aria-label=\"8 dari 8: Sering mulai, jarang selesai\" data-slide=\"7\">\r\n          <picture class=\"consequence-card__media\">\r\n            <source media=\"(max-width: 719px)\" srcset=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/091_nico-sering-mulai-mobile-v2.webp\" width=\"1122\" height=\"1122\">\r\n            <img loading=\"lazy\" src=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/092_nico-sering-mulai-desktop-v2.webp\" width=\"1536\" height=\"1024\" alt=\"Nico membawa proyek baru melewati berbagai proyek yang belum selesai di studio animasi.\" loading=\"lazy\" decoding=\"async\" draggable=\"false\">\r\n          <\/picture>\r\n          <div class=\"consequence-card__copy\">\r\n            <h3 class=\"consequence-card__title\">Sering mulai, jarang selesai<\/h3>\r\n            <p class=\"consequence-card__body\">Semangat di awal. Begitu susah, pindah ke rencana baru.<\/p>\r\n          <\/div>\r\n        <\/article>\r\n      <\/div>\r\n    <\/div>\r\n    <div class=\"carousel__controls\">\r\n      <button class=\"carousel__arrow carousel__arrow--prev\" type=\"button\" data-prev aria-label=\"Kartu sebelumnya\">\r\n        <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.6\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M15 5l-7 7 7 7\"\/><\/svg>\r\n      <\/button>\r\n      <div class=\"carousel__dots\" role=\"group\" aria-label=\"Pilih kartu\">\r\n        <button class=\"carousel__dot\" type=\"button\" data-dot=\"0\" aria-label=\"Tampilkan kartu 1 dari 8: Tugas selalu mepet\" aria-current=\"true\"><\/button>\r\n        <button class=\"carousel__dot\" type=\"button\" data-dot=\"1\" aria-label=\"Tampilkan kartu 2 dari 8: Skill cuma masuk watchlist\"><\/button>\r\n        <button class=\"carousel__dot\" type=\"button\" data-dot=\"2\" aria-label=\"Tampilkan kartu 3 dari 8: Skripsi terus tertahan\"><\/button>\r\n        <button class=\"carousel__dot\" type=\"button\" data-dot=\"3\" aria-label=\"Tampilkan kartu 4 dari 8: Lamaran belum dikirim\"><\/button>\r\n        <button class=\"carousel__dot\" type=\"button\" data-dot=\"4\" aria-label=\"Tampilkan kartu 5 dari 8: Laporan belum dimulai\"><\/button>\r\n        <button class=\"carousel__dot\" type=\"button\" data-dot=\"5\" aria-label=\"Tampilkan kartu 6 dari 8: Pengen tempat kerja lebih baik\"><\/button>\r\n        <button class=\"carousel__dot\" type=\"button\" data-dot=\"6\" aria-label=\"Tampilkan kartu 7 dari 8: Side income masih jadi ide\"><\/button>\r\n        <button class=\"carousel__dot\" type=\"button\" data-dot=\"7\" aria-label=\"Tampilkan kartu 8 dari 8: Sering mulai, jarang selesai\"><\/button>\r\n      <\/div>\r\n      <button class=\"carousel__arrow carousel__arrow--next\" type=\"button\" data-next aria-label=\"Kartu berikutnya\">\r\n        <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.6\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M9 5l7 7-7 7\"\/><\/svg>\r\n      <\/button>\r\n    <\/div>\r\n    <p class=\"visually-hidden\" aria-live=\"polite\" data-carousel-status><\/p>\r\n  <\/div>\r\n\r\n  <div class=\"sec-inner final-consequences__outro\">\r\n    <p class=\"final-consequences__closing\" data-reveal><span class=\"final-consequences__closing-lead\">Kalau penyebabnya enggak pernah dicari tahu,<\/span> <span class=\"accent-violet\">resolusi baru cuma ganti nama jadi rencana lama<span class=\"stop\">.<\/span><\/span><\/p>\r\n    <p class=\"final-consequences__sub\" data-reveal style=\"--d:80ms\">Kenali dulu apa yang paling sering menahanmu. Baru cari langkah yang benar-benar cocok.<\/p>\r\n    <div class=\"cta-row\" data-reveal style=\"--d:160ms\">\r\n      <svg class=\"ray ray--left cta-ray\" viewBox=\"0 0 40 40\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#i-burst\"\/><\/svg>\r\n      <button class=\"cta cta--section\" type=\"button\" data-open-quiz aria-haspopup=\"dialog\" aria-controls=\"quiz\">\r\n        <svg class=\"cta__icon\" viewBox=\"0 0 32 32\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#i-glass\"\/><\/svg>\r\n        <span>Cari tahu kenapa aku menunda<\/span>\r\n      <\/button>\r\n      <svg class=\"ray ray--right cta-ray\" viewBox=\"0 0 40 40\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#i-burst\"\/><\/svg>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <div class=\"fg\" aria-hidden=\"true\">\r\n    <img loading=\"lazy\" class=\"fg__l\" src=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/037_tanaman-blur-kiri-760.webp\" width=\"760\" height=\"636\" alt=\"\" loading=\"lazy\" decoding=\"async\">\r\n    <img loading=\"lazy\" class=\"fg__r\" srcset=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/075_foreground-buku-daun-blur-kanan-mobile-640.webp 640w, https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/076_foreground-buku-daun-blur-kanan.webp 1584w\" sizes=\"auto, (max-width: 1099px) 70vw, 36vw\" src=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/076_foreground-buku-daun-blur-kanan.webp\" width=\"1584\" height=\"993\" alt=\"\" loading=\"lazy\" decoding=\"async\">\r\n  <\/div>\r\n<\/section>\n<style id=\"reuni-section\">\n\/* ===== Section pamungkas: reuni 10 tahun (reuses tokens: --ink --body --violet --font-hand --ease-out) ===== *\/\n:root:not(#pd-embed) .reuni {\n  --glow: radial-gradient(ellipse 36% 26% at 0% 38%, #cbb9ff55, transparent 98%), radial-gradient(ellipse 34% 28% at 100% 66%, #ffe3a655, transparent 98%);\n}\n:root:not(#pd-embed) .reuni__eyebrow { margin: 0 0 10px; font-family: var(--font-hand); font-weight: 700; font-size: 19px; line-height: 1.2; color: var(--violet); }\n:root:not(#pd-embed) .reuni__title { max-width: 980px; font-size: clamp(25px, 6.6vw, 32px); line-height: 1.14; }\n:root:not(#pd-embed) .reuni__lead { max-width: 34em; margin: 16px auto 0; font-size: 17.825px; line-height: 1.65; color: var(--body); text-wrap: pretty; }\n:root:not(#pd-embed) .reuni__figure { width: min(100%, 520px); margin: 32px auto 0; }\n:root:not(#pd-embed) .reuni__frame { display: block; overflow: hidden; border-radius: 26px; border: 1px solid rgba(214, 205, 250, .95); background: #fff; box-shadow: 0 30px 60px -36px rgba(84, 62, 180, .5), 0 2px 8px -2px rgba(84, 62, 180, .1); }\n:root:not(#pd-embed) .reuni__frame img { display: block; width: 100%; height: auto; }\n:root:not(#pd-embed) .reuni__caption { max-width: 30em; margin: 14px auto 0; font-size: 14.5px; line-height: 1.5; color: var(--body); }\n:root:not(#pd-embed) .reuni__punch { margin: 30px auto 0; max-width: 26em; font-size: 21px; font-weight: 800; line-height: 1.28; letter-spacing: -.03em; color: var(--ink); text-wrap: balance; }\n:root:not(#pd-embed) .reuni .cta-row { margin-top: 18px; }\n:root:not(#pd-embed) .reuni .cta-note { margin: 14px auto 0; max-width: 30em; font-size: 14.5px; line-height: 1.5; color: var(--body); }\n@media (min-width: 720px) {\n  :root:not(#pd-embed) .reuni__title { font-size: clamp(34px, 4.4vw, 48px); line-height: 1.1; }\n  :root:not(#pd-embed) .reuni__lead { font-size: 19px; }\n  :root:not(#pd-embed) .reuni__figure { width: min(100%, 940px); margin-top: 40px; }\n  :root:not(#pd-embed) .reuni__punch { font-size: 25px; margin-top: 38px; }\n}\n@media (prefers-reduced-motion: no-preference) {\n  .js.reveal-ready:root:not(#pd-embed) .reuni__frame img { filter: saturate(.45); transition: filter 1.2s var(--ease-out) .25s; }\n  .js.reveal-ready:root:not(#pd-embed) .reuni__figure.is-in .reuni__frame img { filter: none; }\n}\n<\/style>\n<style id=\"pdv-style\">\n:root:not(#pd-embed) .footer__logolink { display: inline-block; line-height: 0; }\n\n:root:not(#pd-embed) .reuni__stage { position: relative; }\n:root:not(#pd-embed) .reuni__play { position: absolute; left: 50%; top: 50%; z-index: 3; transform: translate(-50%, -50%); width: 60px; height: 60px; padding: 0; border: 2px solid rgba(255,255,255,.95); border-radius: 50%; background: #0f0b2b; color: #fff; display: flex; align-items: center; justify-content: center; opacity: .6; cursor: pointer; box-shadow: 0 10px 28px rgba(15,11,43,.35); -webkit-tap-highlight-color: transparent; touch-action: manipulation; transition: opacity .2s ease-out, transform .2s ease-out; }\n:root:not(#pd-embed) .reuni__play svg { width: 26px; height: 26px; margin-left: 3px; display: block; }\n:root:not(#pd-embed) .reuni__play:hover, :root:not(#pd-embed) .reuni__play:focus-visible { opacity: .95; transform: translate(-50%, -50%) scale(1.06); }\n:root:not(#pd-embed) .reuni__play:active { transform: translate(-50%, -50%) scale(.96); }\n:root:not(#pd-embed) .reuni__play:focus-visible { outline: 3px solid #fff; outline-offset: 3px; box-shadow: 0 0 0 6px #0f0b2b; }\n@media (min-width: 720px) {\n  :root:not(#pd-embed) .reuni__play { top: 54%; width: 76px; height: 76px; }\n  :root:not(#pd-embed) .reuni__play svg { width: 32px; height: 32px; margin-left: 4px; }\n}\nhtml.pdv-open { overflow: hidden; }\n#pdv { width: 100vw; max-width: none; height: 100vh; height: 100dvh; max-height: none; margin: 0; padding: 0; border: 0; background: transparent; color: #fff; overflow: hidden; }\n#pdv[open] { display: grid; place-items: center; }\n#pdv::backdrop { background: rgba(10, 8, 30, .82); }\n#pdv .pdv__wrap { position: relative; padding-top: 56px; }\n#pdv .pdv__frame { position: relative; width: min(92vw, calc((100vh - 130px) * 9 \/ 16), 460px); width: min(92vw, calc((100dvh - 130px) * 9 \/ 16), 460px); aspect-ratio: 9 \/ 16; border-radius: 20px; overflow: hidden; background: #000; box-shadow: 0 30px 80px rgba(0,0,0,.5); }\n#pdv .pdv__frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }\n#pdv .pdv__close { position: absolute; top: 0; right: 0; z-index: 2; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 50%; background: #fff; color: #0f0b2b; display: flex; align-items: center; justify-content: center; cursor: pointer; box-shadow: 0 6px 18px rgba(0,0,0,.4); -webkit-tap-highlight-color: transparent; touch-action: manipulation; transition: transform .15s ease-out, background-color .15s ease-out; }\n#pdv .pdv__close:hover { background: #ece9ff; transform: scale(1.06); }\n#pdv .pdv__close:active { transform: scale(.95); }\n#pdv .pdv__close:focus-visible { outline: 3px solid #fff; outline-offset: 3px; }\n@media (min-width: 640px) and (min-height: 560px) {\n  #pdv .pdv__wrap { padding-top: 0; }\n  #pdv .pdv__close { top: 12px; right: -60px; }\n}\n#pdv .pdv__close svg { width: 22px; height: 22px; display: block; }\n@media (prefers-reduced-motion: no-preference) {\n  #pdv[open] .pdv__wrap { animation: pdv-in .2s ease-out; }\n  @keyframes pdv-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }\n}\n@media (prefers-reduced-motion: reduce) { :root:not(#pd-embed) .reuni__play { transition: none; } }\n<\/style>\n<section class=\"pd-sec reuni\" id=\"reuni-10-tahun\" aria-labelledby=\"reuni-title\">\n  <div class=\"sec-inner reuni__intro\">\n    <p class=\"reuni__eyebrow\" data-reveal>10 tahun kemudian<\/p>\n    <h2 class=\"sec-title reuni__title\" id=\"reuni-title\" data-reveal style=\"--d:80ms\">\n      <span class=\"line\"><span class=\"nowrap\"><svg class=\"ray ray--upleft ray--lead\" viewBox=\"0 0 40 40\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#i-burst\"\/><\/svg>Nggak<\/span> ada yang kerasa,<\/span>\n      <span class=\"line\">sampai kamu <span class=\"accent-violet\">ketemu mereka lagi<span class=\"stop\">.<\/span><\/span><\/span>\n    <\/h2>\n    <p class=\"reuni__lead\" data-reveal style=\"--d:160ms\">Menunda sehari memang nggak ada harganya. Tapi 3.650 hari yang diisi \u201cnanti aja\u201d baru kelihatan pas ketemu teman lama, dan itu bukan karena mereka lebih pintar. Mereka cuma lebih dulu berhenti bilang nanti. Jangan sedih, pola yang terbentuk pelan-pelan juga bisa diubah pelan-pelan.<\/p>\n    <figure class=\"reuni__figure\" data-reveal style=\"--d:240ms\">\n      <div class=\"reuni__stage\">\n      <picture class=\"reuni__frame\">\n        <source media=\"(max-width: 719px)\" srcset=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/10\/095_nico-merasa-tertinggal-mobile-v1.webp\" width=\"1122\" height=\"1122\">\n        <img loading=\"lazy\" src=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/10\/096_nico-merasa-tertinggal-desktop-v1.webp\" width=\"1536\" height=\"1024\" alt=\"Nico bersama teman-teman di foto kelas SMA 2016, lalu di foto reuni 2026 saat teman-temannya sudah sukses sementara Nico masih biasa-biasa saja.\" loading=\"lazy\" decoding=\"async\" draggable=\"false\">\n      <\/picture>\n      <button class=\"reuni__play\" type=\"button\" data-pdv-open aria-haspopup=\"dialog\" aria-controls=\"pdv\" aria-label=\"Putar video\"><svg viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M7 4.5v15a1 1 0 0 0 1.53.85l12-7.5a1 1 0 0 0 0-1.7l-12-7.5A1 1 0 0 0 7 4.5z\"\/><\/svg><\/button>\n      <\/div>\n      <figcaption class=\"reuni__caption\">Foto kelas 2016 dan reuni 2026. Orang yang sama, kebiasaan kecil yang berbeda.<\/figcaption>\n    <\/figure>\n    <p class=\"reuni__punch\" data-reveal>asal kamu tahu <span class=\"accent-violet\">caranya<span class=\"stop\">.<\/span><\/span><\/p>\n    <div class=\"cta-row\" data-reveal style=\"--d:80ms\">\n      <svg class=\"ray ray--left cta-ray\" viewBox=\"0 0 40 40\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#i-burst\"\/><\/svg>\n      <button class=\"cta cta--section\" type=\"button\" data-open-quiz aria-haspopup=\"dialog\" aria-controls=\"quiz\">\n        <svg class=\"cta__icon\" viewBox=\"0 0 32 32\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#i-glass\"\/><\/svg>\n        <span>Cari tahu pola menundamu<\/span>\n      <\/button>\n      <svg class=\"ray ray--right cta-ray\" viewBox=\"0 0 40 40\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#i-burst\"\/><\/svg>\n    <\/div>\n    <p class=\"cta-note\" data-reveal style=\"--d:140ms\">15 pertanyaan singkat. Hasilnya membantu refleksi diri, bukan diagnosis psikologis.<\/p>\n  <\/div>\n<\/section>\n\r\n<\/main>\r\n\r\n<!-- =========================================================\r\n     Footer\r\n     ========================================================= -->\r\n<footer class=\"site-footer wp-exclude-emoji\">\r\n  <div class=\"bridge bridge--04\" aria-hidden=\"true\">\r\n    <img loading=\"lazy\" class=\"leaf\" src=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/050_tanaman-blur-kanan-760.webp\" width=\"760\" height=\"695\" alt=\"\" loading=\"lazy\" decoding=\"async\">\r\n    <i class=\"bit\"><\/i>\r\n    <svg class=\"heart\" viewBox=\"0 0 32 30\" focusable=\"false\"><path d=\"M16 28S3 19.6 3 10.4A6.9 6.9 0 0 1 16 7a6.9 6.9 0 0 1 13 3.4C29 19.6 16 28 16 28z\" fill=\"currentColor\"\/><\/svg>\r\n  <\/div>\r\n  <div class=\"footer__inner\">\r\n    <div class=\"footer__top\">\r\n      <div class=\"footer__brand\" data-reveal>\r\n        <a class=\"footer__logolink\" href=\"https:\/\/grownoola.com\/id\/\" aria-label=\"Grownoola, ke beranda\"><span class=\"crop crop--logo footer__logo\"><img loading=\"lazy\" src=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/093_grownoola-logo-840.webp\" width=\"840\" height=\"290\" alt=\"Grownoola\" loading=\"lazy\" decoding=\"async\"><\/span><\/a>\r\n        <p class=\"footer__desc\">Buat kamu yang pengin ngerti kenapa sering menunda, tanpa buru-buru menyebut dirimu malas.<\/p>\r\n        <span class=\"crop crop--lockup footer__lockup\"><img loading=\"lazy\" src=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/094_procrastination-decoded-logo-1000.webp\" width=\"1000\" height=\"341\" alt=\"#ProcrastinationDecoded\" loading=\"lazy\" decoding=\"async\"><\/span>\r\n      <\/div>\r\n\r\n      <nav class=\"footer__nav\" aria-label=\"Tautan footer\">\r\n        <div class=\"footer__group\">\r\n          <h2 class=\"footer__heading\">Kenali Grownoola<\/h2>\r\n          <ul>\r\n            <li><span class=\"footer__link is-pending\">Tentang Grownoola<\/span><\/li>\r\n            <li><a class=\"footer__link\" href=\"#kenali-polamu\">Cara kerja tes<\/a><\/li>\r\n          <\/ul>\r\n        <\/div>\r\n        <div class=\"footer__group\">\r\n          <h2 class=\"footer__heading\">Informasi<\/h2>\r\n          <ul>\r\n            <li><span class=\"footer__link is-pending\">Kontak<\/span><\/li>\r\n            <li><span class=\"footer__link is-pending\">Kebijakan Privasi<\/span><\/li>\r\n            <li><span class=\"footer__link is-pending\">Syarat Penggunaan<\/span><\/li>\r\n          <\/ul>\r\n        <\/div>\r\n      <\/nav>\r\n\r\n      <div class=\"footer__duo\" data-reveal style=\"--d:120ms\">\r\n        <svg class=\"footer__ray footer__ray--l\" viewBox=\"0 0 64 64\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#i-rays\"\/><\/svg>\r\n        <img loading=\"lazy\" srcset=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/095_naya-nico-bantal-logo-grownoola-mobile-640.webp 640w, https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/096_naya-nico-bantal-logo-grownoola.webp 1373w\" sizes=\"auto, (max-width: 719px) 92vw, (max-width: 1099px) 520px, 33vw\" src=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/096_naya-nico-bantal-logo-grownoola.webp\" width=\"1373\" height=\"1146\" alt=\"Naya dan Nico melambaikan tangan sambil memeluk bantal kotak berlogo Grownoola dan bantal bulat berikon jam pasir #ProcrastinationDecoded\" loading=\"lazy\" decoding=\"async\">\r\n        <svg class=\"footer__ray footer__ray--r\" viewBox=\"0 0 64 64\" aria-hidden=\"true\" focusable=\"false\"><use href=\"#i-rays\"\/><\/svg>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"footer__legal\">\r\n      <p class=\"footer__copy\">\u00a9 <span data-year>2026<\/span> Grownoola<\/p>\r\n      <p class=\"footer__disclaimer\">Konten dan tes ini hanya untuk edukasi dan refleksi diri. Bukan diagnosis atau pengganti saran tenaga profesional.<\/p>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <div class=\"fg\" aria-hidden=\"true\">\r\n    <img loading=\"lazy\" class=\"fg__l\" srcset=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/097_foreground-pot-blur-kiri-mobile-640.webp 640w, https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/098_foreground-pot-blur-kiri.webp 1418w\" sizes=\"auto, (max-width: 1099px) 50vw, 20vw\" src=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/098_foreground-pot-blur-kiri.webp\" width=\"1418\" height=\"1109\" alt=\"\" loading=\"lazy\" decoding=\"async\">\r\n    <img loading=\"lazy\" class=\"fg__r\" srcset=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/099_foreground-pot-blur-kanan-mobile-640.webp 640w, https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/100_foreground-pot-blur-kanan.webp 1536w\" sizes=\"auto, (max-width: 1099px) 54vw, 24vw\" src=\"https:\/\/grownoola.com\/id\/wp-content\/uploads\/2026\/09\/100_foreground-pot-blur-kanan.webp\" width=\"1536\" height=\"1024\" alt=\"\" loading=\"lazy\" decoding=\"async\">\r\n  <\/div>\r\n<\/footer>\r\n\r\n<!-- Pattern quiz -->\r\n<dialog class=\"quiz wp-exclude-emoji\" id=\"quiz\" aria-labelledby=\"quizTitle\">\r\n  <div class=\"quiz__scroll\" id=\"quizScroll\">\r\n    <h2 class=\"visually-hidden\" id=\"quizTitle\">Cari tahu pola menundamu<\/h2>\r\n    <div class=\"quiz__bar\">\r\n      <button class=\"quiz__icon-btn\" type=\"button\" id=\"quizBack\" aria-label=\"Pertanyaan sebelumnya\" hidden>\r\n        <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M15 5l-7 7 7 7\"\/><\/svg>\r\n      <\/button>\r\n      <div class=\"quiz__progress\" id=\"quizProgress\">\r\n        <div class=\"quiz__meta\"><span id=\"quizLayer\">\ud83e\udde9 Behavior \u00b7 1\/3<\/span><span id=\"quizCount\">1 \/ 15<\/span><\/div>\r\n        <div class=\"quiz__track\" role=\"progressbar\" aria-label=\"Progres kuis\" aria-valuemin=\"0\" aria-valuemax=\"15\" aria-valuenow=\"1\" id=\"quizTrack\"><div class=\"quiz__fill\" id=\"quizFill\"><\/div><\/div>\r\n      <\/div>\r\n      <button class=\"quiz__icon-btn\" type=\"button\" id=\"quizClose\" aria-label=\"Tutup kuis\">\r\n        <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.4\" stroke-linecap=\"round\" aria-hidden=\"true\"><path d=\"M6 6l12 12M18 6L6 18\"\/><\/svg>\r\n      <\/button>\r\n    <\/div>\r\n    <div id=\"quizBody\"><\/div>\r\n  <\/div>\r\n<\/dialog>\r\n\r\n<script>\r\n\/* ===== quiz.js ===== *\/\r\n\/* Footer copyright year follows the visitor's current year (HTML keeps 2026 as a no-JS fallback). *\/\r\ndocument.querySelectorAll('[data-year]').forEach((el) => { el.textContent = String(new Date().getFullYear()); });\r\n\r\n\/* Mount breakpoint-specific artwork only where it is shown, so phones never\r\n   download the desktop PNGs (and vice versa). *\/\r\ndocument.querySelectorAll('[data-art]').forEach((host) => {\r\n  const mq = window.matchMedia(host.dataset.art);\r\n  const mount = () => {\r\n    if (!mq.matches || host.dataset.mounted) return;\r\n    host.append(host.querySelector('template').content.cloneNode(true));\r\n    host.dataset.mounted = 'true';\r\n  };\r\n  mount();\r\n  mq.addEventListener('change', mount);\r\n});\r\n\r\n(() => {\r\n  const toggle = document.querySelector('.menu-toggle');\r\n  const nav = document.getElementById('site-nav');\r\n  const label = toggle.querySelector('.visually-hidden');\r\n  const desktop = window.matchMedia('(min-width: 1024px)');\r\n\r\n  const setOpen = (open, { focusToggle = false } = {}) => {\r\n    toggle.setAttribute('aria-expanded', String(open));\r\n    label.textContent = open ? 'Tutup menu' : 'Buka menu';\r\n    nav.classList.toggle('is-open', open);\r\n    if (open) nav.querySelector('a')?.focus({ preventScroll: true });\r\n    if (!open && focusToggle) toggle.focus();\r\n  };\r\n\r\n  toggle.addEventListener('click', () => setOpen(toggle.getAttribute('aria-expanded') !== 'true'));\r\n\r\n  document.addEventListener('keydown', (e) => {\r\n    if (e.key === 'Escape' && nav.classList.contains('is-open')) setOpen(false, { focusToggle: true });\r\n  });\r\n  document.addEventListener('click', (e) => {\r\n    if (nav.classList.contains('is-open') && !nav.contains(e.target) && !toggle.contains(e.target)) setOpen(false);\r\n  });\r\n  nav.addEventListener('click', (e) => { if (e.target.closest('a') && !desktop.matches) setOpen(false); });\r\n  desktop.addEventListener('change', () => setOpen(false));\r\n})();\r\n\r\n\/* Pattern quiz \u2014 15 questions across five layers, scored into 12 archetypes\r\n   (primary, secondary, hidden driver) plus an independent severity score. *\/\r\n(() => {\r\n  const QUESTIONS = [\r\n    {\r\n      layer: \"Behavior\",\r\n      emoji: \"\ud83c\udfaf\",\r\n      text: \"Kamu punya tugas penting dengan deadline seminggu lagi. Hari pertama, apa yang paling sering terjadi?\",\r\n      options: [\r\n        { emoji: \"\ud83d\udcf1\", text: \"Buka dulu yang lain, niatnya cuma sebentar, eh udah malam\", scores: { DISTRACTED: 3, COMFORT: 1 }, severity: 3 },\r\n        { emoji: \"\ud83d\ude29\", text: \"Bayangin betapa ribetnya, langsung males duluan\", scores: { OVERWHELMED: 3, FEARFUL: 1 }, severity: 3 },\r\n        { emoji: \"\ud83d\udccb\", text: \"Mulai bikin outline dan rencana yang sangat detail\", scores: { PRODUCTIVE: 3, OVERTHINKER: 1 }, severity: 2 },\r\n        { emoji: \"\ud83d\ude0c\", text: \"Santai dulu, masih seminggu lagi, teman-teman juga belum mulai\", scores: { DEADLINE: 2, CONFORMIST: 2 }, severity: 2 }\r\n      ]\r\n    },\r\n    {\r\n      layer: \"Behavior\",\r\n      emoji: \"\ud83d\udd0d\",\r\n      text: \"Kalau lagi nunda, kamu paling sering ngapain?\",\r\n      options: [\r\n        { emoji: \"\ud83d\udcf2\", text: \"Scroll TikTok, Instagram, YouTube, X, atau apa pun\", scores: { DISTRACTED: 3, COMFORT: 2 }, severity: 4 },\r\n        { emoji: \"\u2705\", text: \"Ngerjain hal lain yang lebih kecil dan jelas\", scores: { PRODUCTIVE: 3, UNCLEAR: 1 }, severity: 2 },\r\n        { emoji: \"\ud83d\udecf\ufe0f\", text: \"Rebahan atau tidur, ngerasa capek duluan\", scores: { COMFORT: 2, OVERWHELMED: 2 }, severity: 3 },\r\n        { emoji: \"\ud83c\udf00\", text: \"Mikirin tugasnya terus tapi enggak dikerjain\", scores: { OVERTHINKER: 3, FEARFUL: 1 }, severity: 3 }\r\n      ]\r\n    },\r\n    {\r\n      layer: \"Behavior\",\r\n      emoji: \"\u26a1\",\r\n      text: \"Sebelum mulai ngerjain sesuatu yang penting, kamu biasanya...\",\r\n      options: [\r\n        { emoji: \"\ud83e\uddf9\", text: \"Beresin dulu lingkungan sekitar, meja, folder, playlist\", scores: { PRODUCTIVE: 3, PERFECTIONIST: 1 }, severity: 2 },\r\n        { emoji: \"\ud83d\udd0e\", text: \"Riset dulu sampai ngerasa cukup siap\", scores: { OVERTHINKER: 2, PERFECTIONIST: 2 }, severity: 3 },\r\n        { emoji: \"\ud83d\udcbb\", text: \"Langsung buka tapi malah buka tab lain\", scores: { DISTRACTED: 3, COMFORT: 1 }, severity: 3 },\r\n        { emoji: \"\u23f3\", text: \"Tunda sampai enggak ada pilihan lain selain mulai\", scores: { DEADLINE: 3, FEARFUL: 1 }, severity: 4 }\r\n      ]\r\n    },\r\n    {\r\n      layer: \"Emotion\",\r\n      emoji: \"\ud83d\udcad\",\r\n      text: \"Perasaan apa yang paling sering muncul tepat sebelum kamu menghindar dari task?\",\r\n      options: [\r\n        { emoji: \"\ud83d\ude30\", text: \"Cemas atau takut, nggak jelas takut apa, tapi ada\", scores: { FEARFUL: 3, OVERTHINKER: 1 }, severity: 3 },\r\n        { emoji: \"\ud83d\ude11\", text: \"Bosan atau malas, tasknya nggak menarik sama sekali\", scores: { DISCONNECTED: 3, COMFORT: 1 }, severity: 3 },\r\n        { emoji: \"\ud83e\udd2f\", text: \"Overwhelmed, semuanya terasa banyak dan berat\", scores: { OVERWHELMED: 3, UNCLEAR: 1 }, severity: 4 },\r\n        { emoji: \"\ud83e\udeab\", text: \"Lelah duluan, bahkan sebelum mulai\", scores: { DOUBTFUL: 2, COMFORT: 2 }, severity: 4 }\r\n      ]\r\n    },\r\n    {\r\n      layer: \"Emotion\",\r\n      emoji: \"\ud83e\ude9e\",\r\n      text: \"Waktu memikirkan task yang sudah lama ditunda, apa yang kamu rasakan?\",\r\n      options: [\r\n        { emoji: \"\ud83d\ude14\", text: \"Guilty (rasa bersalah) tapi tetap nggak dikerjain, terus aja begitu\", scores: { FEARFUL: 2, PERFECTIONIST: 2 }, severity: 4 },\r\n        { emoji: \"\ud83e\udd37\", text: \"Nggak terlalu terganggu, toh teman-teman juga pada belum ngerjain\", scores: { CONFORMIST: 3, DEADLINE: 1 }, severity: 2 },\r\n        { emoji: \"\ud83d\ude2e\u200d\ud83d\udca8\", text: \"Overwhelmed karena sekarang udah numpuk\", scores: { OVERWHELMED: 3, UNCLEAR: 1 }, severity: 4 },\r\n        { emoji: \"\ud83d\ude36\", text: \"Hampa, nggak tahu kenapa harus dikerjain\", scores: { DISCONNECTED: 3, COMFORT: 1 }, severity: 4 }\r\n      ]\r\n    },\r\n    {\r\n      layer: \"Emotion\",\r\n      emoji: \"\ud83d\udc40\",\r\n      text: \"Kalau seseorang tahu kamu belum mengerjakan sesuatu yang harusnya sudah selesai, kamu ngerasa...\",\r\n      options: [\r\n        { emoji: \"\ud83d\ude24\", text: \"Malu atau defensif, langsung cari alasan\", scores: { FEARFUL: 3, PERFECTIONIST: 1 }, severity: 3 },\r\n        { emoji: \"\ud83d\ude0e\", text: \"Biasa aja, semua orang juga pada nunda kok\", scores: { CONFORMIST: 3, DEADLINE: 1 }, severity: 2 },\r\n        { emoji: \"\ud83d\ude1f\", text: \"Anxious, takut dianggap tidak mampu\", scores: { DOUBTFUL: 2, FEARFUL: 2 }, severity: 3 },\r\n        { emoji: \"\ud83e\udee0\", text: \"Nggak nyaman tapi susah menjelaskan kenapa\", scores: { DISCONNECTED: 2, OVERTHINKER: 2 }, severity: 3 }\r\n      ]\r\n    },\r\n    {\r\n      layer: \"Automatic Thought\",\r\n      emoji: \"\ud83e\udde0\",\r\n      text: \"Kalimat mana yang paling sering muncul di kepala kamu saat berhadapan dengan task berat?\",\r\n      options: [\r\n        { emoji: \"\u23f0\", text: \"\\\"Masih ada waktu, nanti aja.\\\"\", scores: { DEADLINE: 3, COMFORT: 1 }, severity: 2 },\r\n        { emoji: \"\u2753\", text: \"\\\"Nggak tahu harus mulai dari mana.\\\"\", scores: { UNCLEAR: 3, OVERWHELMED: 1 }, severity: 3 },\r\n        { emoji: \"\ud83d\ude34\", text: \"\\\"Nanti kalau udah mood.\\\"\", scores: { DISTRACTED: 2, COMFORT: 2 }, severity: 3 },\r\n        { emoji: \"\ud83d\ude28\", text: \"\\\"Kalau hasilnya jelek gimana?\\\"\", scores: { FEARFUL: 2, PERFECTIONIST: 2 }, severity: 3 }\r\n      ]\r\n    },\r\n    {\r\n      layer: \"Automatic Thought\",\r\n      emoji: \"\ud83d\udcac\",\r\n      text: \"Saat kamu akhirnya mulai mengerjakan sesuatu, pikiran apa yang sering mengganggu?\",\r\n      options: [\r\n        { emoji: \"\ud83d\udd04\", text: \"\\\"Ini belum bagus, perlu diperbaiki lagi.\\\"\", scores: { PERFECTIONIST: 3, FEARFUL: 1 }, severity: 3 },\r\n        { emoji: \"\ud83d\udccc\", text: \"\\\"Kayaknya ada yang lebih penting yang harus dikerjain.\\\"\", scores: { PRODUCTIVE: 3, UNCLEAR: 1 }, severity: 3 },\r\n        { emoji: \"\ud83d\udcf5\", text: \"\\\"Sebentar scroll dulu biar fresh.\\\"\", scores: { DISTRACTED: 3, COMFORT: 1 }, severity: 4 },\r\n        { emoji: \"\ud83c\udfd4\ufe0f\", text: \"\\\"Ini terlalu banyak, aku nggak sanggup.\\\"\", scores: { OVERWHELMED: 2, DOUBTFUL: 2 }, severity: 4 }\r\n      ]\r\n    },\r\n    {\r\n      layer: \"Automatic Thought\",\r\n      emoji: \"\ud83c\udfad\",\r\n      text: \"Pembenaran mana yang paling sering kamu pakai pada diri sendiri?\",\r\n      options: [\r\n        { emoji: \"\ud83d\udd25\", text: \"\\\"Aku lebih kreatif dan produktif di bawah tekanan.\\\"\", scores: { DEADLINE: 3, COMFORT: 1 }, severity: 3 },\r\n        { emoji: \"\ud83d\udcda\", text: \"\\\"Aku perlu persiapan lebih matang dulu.\\\"\", scores: { PERFECTIONIST: 2, OVERTHINKER: 2 }, severity: 3 },\r\n        { emoji: \"\ud83d\udecb\ufe0f\", text: \"\\\"Aku sudah capek, wajar istirahat dulu.\\\"\", scores: { COMFORT: 3, DISCONNECTED: 1 }, severity: 3 },\r\n        { emoji: \"\ud83e\udded\", text: \"\\\"Mungkin ini memang bukan yang harus aku kerjain sekarang.\\\"\", scores: { DISCONNECTED: 3, UNCLEAR: 1 }, severity: 4 }\r\n      ]\r\n    },\r\n    {\r\n      layer: \"Repeating Pattern\",\r\n      emoji: \"\ud83d\udd01\",\r\n      text: \"Pola mana yang paling sering kamu lihat pada dirimu sendiri?\",\r\n      options: [\r\n        { emoji: \"\ud83c\udfa2\", text: \"Semangat di awal, hilang di tengah jalan\", scores: { DISCONNECTED: 2, COMFORT: 2 }, severity: 3 },\r\n        { emoji: \"\ud83d\uddc2\ufe0f\", text: \"Banyak project setengah jadi, nggak ada yang tuntas\", scores: { UNCLEAR: 2, OVERTHINKER: 2 }, severity: 4 },\r\n        { emoji: \"\ud83d\udea8\", text: \"Produktif hanya saat panik atau deadline mepet\", scores: { DEADLINE: 3, FEARFUL: 1 }, severity: 4 },\r\n        { emoji: \"\ud83d\udc39\", text: \"Sibuk terus tapi hasil nyatanya sedikit\", scores: { PRODUCTIVE: 3, DISTRACTED: 1 }, severity: 4 }\r\n      ]\r\n    },\r\n    {\r\n      layer: \"Repeating Pattern\",\r\n      emoji: \"\ud83d\udca1\",\r\n      text: \"Apa yang paling sering terjadi dengan ide atau rencana besar yang kamu punya?\",\r\n      options: [\r\n        { emoji: \"\ud83e\udd14\", text: \"Dipikirkan matang-matang, jarang dieksekusi\", scores: { OVERTHINKER: 3, FEARFUL: 1 }, severity: 4 },\r\n        { emoji: \"\ud83c\udfc3\", text: \"Dimulai dengan antusias, berhenti saat mulai sulit\", scores: { COMFORT: 2, DOUBTFUL: 2 }, severity: 3 },\r\n        { emoji: \"\ud83d\udca8\", text: \"Ditunda sampai momentumnya hilang\", scores: { DEADLINE: 2, DISCONNECTED: 2 }, severity: 4 },\r\n        { emoji: \"\ud83d\ude1e\", text: \"Dieksekusi, tapi nggak pernah ngerasa cukup bagus\", scores: { PERFECTIONIST: 3, FEARFUL: 1 }, severity: 3 }\r\n      ]\r\n    },\r\n    {\r\n      layer: \"Repeating Pattern\",\r\n      emoji: \"\ud83d\udcc5\",\r\n      text: \"Dalam setahun terakhir, seberapa sering kamu memulai sesuatu dari awal lagi setelah berhenti?\",\r\n      options: [\r\n        { emoji: \"\ud83d\udd03\", text: \"Sering, aku restart banyak hal berkali-kali karena nggak yakin arahnya benar\", scores: { OVERTHINKER: 2, DOUBTFUL: 2 }, severity: 4 },\r\n        { emoji: \"\ud83c\udfc1\", text: \"Jarang, aku biasanya selesaikan walau mepet\", scores: { DEADLINE: 3 }, severity: 2 },\r\n        { emoji: \"\ud83d\ude34\", text: \"Lumayan, lebih karena bosan, bukan karena gagal\", scores: { DISTRACTED: 2, DISCONNECTED: 2 }, severity: 3 },\r\n        { emoji: \"\ud83d\udeab\", text: \"Nggak pernah restart karena kebanyakan nggak dimulai sama sekali\", scores: { FEARFUL: 2, DOUBTFUL: 2 }, severity: 4 }\r\n      ]\r\n    },\r\n    {\r\n      layer: \"Life Impact\",\r\n      emoji: \"\ud83c\udf0d\",\r\n      text: \"Area hidup mana yang paling kamu rasakan dampak dari kebiasaan menundamu?\",\r\n      options: [\r\n        { emoji: \"\ud83d\udcbc\", text: \"Karier \/ kerjaan, banyak peluang yang terlewat\", scores: { FEARFUL: 2, DEADLINE: 2 }, severity: 4 },\r\n        { emoji: \"\ud83c\udf1f\", text: \"Personal project \/ mimpi, hal yang sebenarnya penting buat aku\", scores: { DISCONNECTED: 3, COMFORT: 1 }, severity: 4 },\r\n        { emoji: \"\ud83d\udcb0\", text: \"Keuangan, hal-hal finansial selalu ditunda\", scores: { COMFORT: 2, UNCLEAR: 2 }, severity: 4 },\r\n        { emoji: \"\ud83c\udfc3\", text: \"Kesehatan, olahraga, tidur, makan, selalu nanti\", scores: { COMFORT: 3, DEADLINE: 1 }, severity: 4 }\r\n      ]\r\n    },\r\n    {\r\n      layer: \"Life Impact\",\r\n      emoji: \"\u23f1\ufe0f\",\r\n      text: \"Apa yang paling sering kamu rasakan setelah deadline lewat atau momen terlewat?\",\r\n      options: [\r\n        { emoji: \"\ud83d\ude24\", text: \"Lega sesaat, lalu menyesal, dan berjanji ini terakhir kalinya\", scores: { DEADLINE: 2, FEARFUL: 2 }, severity: 3 },\r\n        { emoji: \"\ud83d\ude23\", text: \"Frustrasi pada diri sendiri, kenapa aku kayak gini terus\", scores: { PERFECTIONIST: 2, DOUBTFUL: 2 }, severity: 4 },\r\n        { emoji: \"\ud83d\ude36\", text: \"Nggak terlalu terganggu, teman-teman juga pada gitu kok\", scores: { CONFORMIST: 3, DISTRACTED: 1 }, severity: 2 },\r\n        { emoji: \"\ud83d\udd73\ufe0f\", text: \"Kosong, ngerasa stuck tapi nggak tahu harus mulai dari mana\", scores: { DISCONNECTED: 3, UNCLEAR: 1 }, severity: 4 }\r\n      ]\r\n    },\r\n    {\r\n      layer: \"Life Impact\",\r\n      emoji: \"\ud83d\udd2d\",\r\n      text: \"Kalau kamu bisa mengubah satu hal dari cara kamu bekerja, apa yang paling ingin berubah?\",\r\n      options: [\r\n        { emoji: \"\ud83c\udfaf\", text: \"Bisa fokus tanpa terganggu hal-hal kecil\", scores: { DISTRACTED: 3, PRODUCTIVE: 1 }, severity: 3 },\r\n        { emoji: \"\ud83d\ude80\", text: \"Bisa mulai tanpa nunggu mood atau kondisi sempurna\", scores: { COMFORT: 2, PERFECTIONIST: 2 }, severity: 3 },\r\n        { emoji: \"\ud83d\udcaa\", text: \"Percaya bahwa aku benar-benar mampu menyelesaikan ini\", scores: { DOUBTFUL: 3, FEARFUL: 1 }, severity: 4 },\r\n        { emoji: \"\ud83e\udded\", text: \"Ngerasa hidupku punya arah yang jelas dan bermakna\", scores: { DISCONNECTED: 3, FEARFUL: 1 }, severity: 4 }\r\n      ]\r\n    }\r\n  ];\r\n\r\n  const ARCHETYPES = {\r\n    DISTRACTED: {\r\n      label: \"Fokusmu Gampang Dibajak Distraksi\",\r\n      icon: \"\ud83d\udcf1\",\r\n      desc: \"Ini bukan soal malas. Otak kita cenderung memilih hal yang cepat, mudah, dan menyenangkan. Tiap notifikasi dan tiap scroll bisa melatih otak untuk mengira ada yang lebih menarik daripada tugas di depanmu.\",\r\n      insight: \"Kamu bisa fokus, buktinya kamu bisa scroll berjam-jam tanpa berhenti. Masalahnya bukan kapasitas fokus, tapi ke mana fokus itu diarahkan.\",\r\n      relate: [\r\n        \"Buka WhatsApp buat balas satu chat, 40 menit kemudian masih di FYP TikTok\",\r\n        \"Notifikasi masuk pas lagi fokus, langsung refleks cek meski tau nggak penting\",\r\n        \"Niatnya nonton satu video 'buat riset', eh keasyikan sampai udah di video rekomendasi ke-15\"\r\n      ],\r\n      costs: [\r\n        \"Waktu bertahun-tahun bisa habis ke scroll, sementara project yang sebetulnya penting enggak pernah kelar\",\r\n        \"Kesempatan karier bisa keburu lewat saat kamu masih di FYP\",\r\n        \"Orang terdekat bisa ngerasa kamu ada, tapi perhatianmu di tempat lain\"\r\n      ],\r\n      potential: [\r\n        \"Fokus pelan-pelan balik ke tanganmu, dan project yang selama ini cuma wacana bisa mulai jalan\",\r\n        \"Kesempatan karier yang biasanya lewat, kali ini punya peluang kamu ambil\",\r\n        \"Orang terdekat bisa dapat kehadiranmu yang lebih utuh\"\r\n      ],\r\n      loop: [\"Task muncul\", \"Terasa kurang menarik\", \"Buka HP \/ tab lain\", \"Dopamine naik sebentar\", \"Waktu habis tanpa sadar\", \"Guilt (rasa bersalah) datang\", \"Janji besok lebih fokus\", \"Ulang dari awal\"]\r\n    },\r\n    OVERTHINKER: {\r\n      label: \"Kebanyakan Mikir, Lupa Mulai\",\r\n      icon: \"\ud83c\udf00\",\r\n      desc: \"Otakmu bekerja keras, hanya bukan untuk mengerjakan task, tapi untuk menganalisisnya dari semua sudut. Semakin banyak kamu berpikir, semakin besar tasknya terasa, semakin sulit untuk mulai.\",\r\n      insight: \"Overthinking seringkali adalah cara otak menghindari ketidakpastian. Kamu bukan kurang cerdas, kamu terlalu banyak menggunakan kecerdasanmu untuk menunda.\",\r\n      relate: [\r\n        \"Bikin lima draft rencana sebelum berani ngetik kalimat pertama\",\r\n        \"Overthink satu chat yang mau dikirim sampai akhirnya nggak jadi dikirim\",\r\n        \"Mikirin worst-case scenario yang belum tentu bakal kejadian\"\r\n      ],\r\n      costs: [\r\n        \"Ide bagus bisa mati di kepala sebelum sempat dicoba\",\r\n        \"Orang yang bergerak lebih cepat bisa mengambil kesempatan yang sebetulnya terbuka buatmu\",\r\n        \"Orang terdekat bisa capek menunggu keputusan yang enggak kunjung diambil\"\r\n      ],\r\n      potential: [\r\n        \"Keputusan penting bisa diambil lebih cepat, tanpa muter-muter berbulan-bulan\",\r\n        \"Ide yang selama ini cuma draft punya peluang jadi karya solid\",\r\n        \"Orang di sekitarmu bisa makin percaya arahmu karena kamu mulai bergerak\"\r\n      ],\r\n      loop: [\"Task muncul\", \"Mulai analisis semua kemungkinan\", \"Makin banyak variabel\", \"Makin overwhelmed\", \"Tunda untuk 'mikir lebih matang'\", \"Deadline makin dekat\", \"Panik\", \"Kerjakan terburu-buru\"]\r\n    },\r\n    PERFECTIONIST: {\r\n      label: \"Standarmu Terlalu Tinggi untuk Dimulai\",\r\n      icon: \"\u2728\",\r\n      desc: \"Ini bukan cuma soal pengin hasil terbaik. Perfeksionisme sering jadi cara melindungi harga diri: kalau belum mulai, belum bisa gagal. Begitu mulai tapi hasilnya belum sempurna, rasanya seperti ancaman.\",\r\n      insight: \"Karya yang selesai selalu lebih baik dari karya sempurna yang tidak pernah ada. Standarmu bukan masalah, tapi timing standar itu yang perlu digeser.\",\r\n      relate: [\r\n        \"Nggak jadi post karena foto atau tulisannya 'belum pas', padahal orang lain nggak akan notice\",\r\n        \"Revisi ulang draft yang sebenarnya udah cukup bagus, berkali-kali\",\r\n        \"Nunda submit karena nunggu 'versi terbaik', padahal deadline udah dekat\"\r\n      ],\r\n      costs: [\r\n        \"Karya terbaikmu bisa enggak pernah dilihat orang karena selalu terasa belum sempurna\",\r\n        \"Kamu bisa dikenal sebagai \u201cbanyak ide, jarang kelar\u201d, padahal kualitasmu bagus\",\r\n        \"Energi bisa habis buat merevisi hal yang sebetulnya udah cukup baik\"\r\n      ],\r\n      potential: [\r\n        \"Karyamu bisa mulai sampai ke orang lain, bukan cuma tersimpan di folder sebagai draft\",\r\n        \"Reputasimu bisa terbangun dari hal-hal yang berhasil kamu selesaikan\",\r\n        \"Orang di sekitarmu bisa lihat progres solid, bukan cuma janji \u201champir selesai\u201d\"\r\n      ],\r\n      loop: [\"Task muncul\", \"Bayangin standar ideal\", \"Kondisi terasa belum memenuhi standar\", \"Tunda sampai siap\", \"Siap tidak pernah datang\", \"Deadline mepet\", \"Kerjakan cepat-cepat\", \"Hasilnya jauh dari standar\", \"Frustrasi, ulangi pola\"]\r\n    },\r\n    FEARFUL: {\r\n      label: \"Kamu Menghindari Karena Takut\",\r\n      icon: \"\ud83d\ude30\",\r\n      desc: \"Menunda bisa jadi cara melindungi diri dari risiko: gagal, dikritik, dinilai, atau ternyata ketakutanmu benar. Selama belum mulai, masih ada harapan kamu bisa berhasil.\",\r\n      insight: \"Takut gagal dan takut mencoba adalah dua hal berbeda. Yang kamu hindari bukan task-nya, tapi konsekuensi emosional jika hasilnya tidak sesuai harapan.\",\r\n      relate: [\r\n        \"Nunda kirim CV atau lamaran karena takut ditolak, padahal belum coba\",\r\n        \"Nggak jadi ngomong ide di meeting karena takut dianggap aneh\",\r\n        \"Milih nggak tau hasilnya daripada tau tapi ternyata gagal\"\r\n      ],\r\n      costs: [\r\n        \"Peluang kerja atau kesempatan besar bisa lewat karena belum pernah benar-benar dicoba\",\r\n        \"Hidup bisa terasa lebih banyak menghindar daripada memilih\",\r\n        \"Orang terdekat mungkin melihat potensimu, tapi kamu belum memberi dirimu kesempatan membuktikannya\"\r\n      ],\r\n      potential: [\r\n        \"Kamu bisa mulai berani ambil risiko kecil dan melihat hasilnya satu per satu\",\r\n        \"Kegagalan kecil enggak lagi harus jadi alasan berhenti\",\r\n        \"Orang di sekitarmu bisa ikut terdorong karena melihat kamu mulai berubah\"\r\n      ],\r\n      loop: [\"Task penting muncul\", \"Otak deteksi risiko\", \"Anxiety naik\", \"Hindari task\", \"Distraksi sementara\", \"Deadline mendekat\", \"Takut makin besar\", \"Kerjakan dalam keadaan panik\", \"Hasilnya oke atau tidak, sama-sama trauma\"]\r\n    },\r\n    OVERWHELMED: {\r\n      label: \"Semuanya Terasa Terlalu Besar\",\r\n      icon: \"\ud83e\udd2f\",\r\n      desc: \"Ini bukan tanda otakmu lemah. Kamu sedang menghadapi sesuatu yang belum punya struktur jelas. Kalau langkah pertamanya enggak kelihatan, otak cenderung memilih jalan paling aman: diam di tempat.\",\r\n      insight: \"Overwhelm bukan soal volume pekerjaan. Bisa jadi satu task pun sudah cukup untuk membekukanmu kalau task itu ambigu dan tidak punya titik mulai yang jelas.\",\r\n      relate: [\r\n        \"Liat to-do list panjang, malah rebahan mikirin harus mulai dari mana\",\r\n        \"Satu tugas kelihatan simpel, begitu ditulis breakdown-nya jadi 20 sub-task\",\r\n        \"Freeze pas semuanya kelihatan penting dan urgent secara bersamaan\"\r\n      ],\r\n      costs: [\r\n        \"Tugas yang numpuk bisa bikin stres berkepanjangan dan lama-lama kelelahan\",\r\n        \"Kesehatan fisik dan mentalmu bisa ikut kena kalau beban enggak pernah dipecah\",\r\n        \"Keluarga atau tim bisa ikut kena imbas saat kamu kewalahan di momen penting\"\r\n      ],\r\n      potential: [\r\n        \"Tugas besar bisa terasa lebih ringan setelah dipecah jadi langkah kecil\",\r\n        \"Energimu bisa lebih terarah ke hal yang penting, bukan habis buat panik\",\r\n        \"Orang di sekitarmu bisa lebih lega karena kamu enggak kewalahan tiap ada beban baru\"\r\n      ],\r\n      loop: [\"Task kompleks muncul\", \"Otak coba proses semua sekaligus\", \"Cognitive overload\", \"Freeze \/ tidak tahu mulai dari mana\", \"Distraksi sebagai pelarian\", \"Task tidak berkurang\", \"Stress menumpuk\", \"Akhirnya kerjakan dalam tekanan\"]\r\n    },\r\n    UNCLEAR: {\r\n      label: \"Kamu Nggak Tahu Harus Mulai dari Mana\",\r\n      icon: \"\u2753\",\r\n      desc: \"Bukan malas, bukan takut. Kamu memang belum punya gambaran langkah pertama yang konkret. Tanpa langkah pertama yang jelas, susah buat mulai bergerak.\",\r\n      insight: \"Ambigu adalah musuh aksi. Semakin jelas langkah pertama, semakin kecil resistensi untuk memulai. Masalahmu bukan motivasi, tapi kejelasan.\",\r\n      relate: [\r\n        \"Tau harus 'belajar skill baru' tapi bingung mulai dari sumber yang mana\",\r\n        \"Punya ide project tapi nggak tau langkah pertama harus ngapain\",\r\n        \"Nunda karena nunggu instruksi yang lebih jelas, yang nggak pernah datang\"\r\n      ],\r\n      costs: [\r\n        \"Potensimu bisa lama tertahan di tahap \u201cnanti, kalau caranya udah jelas\u201d\",\r\n        \"Skill atau tujuan penting bisa enggak pernah benar-benar dikejar\",\r\n        \"Orang di sekitar bisa melihat kamu punya potensi, tapi jalan di tempat\"\r\n      ],\r\n      potential: [\r\n        \"Kamu bisa punya urutan langkah yang jelas, dan tiap langkah kecil terasa membawa maju\",\r\n        \"Skill dan tujuan yang selama ini cuma wacana bisa mulai punya progres\",\r\n        \"Orang terdekat bisa makin percaya kemampuanmu karena lihat progresnya sendiri\"\r\n      ],\r\n      loop: [\"Task muncul tanpa instruksi jelas\", \"Coba cari tahu harus mulai dari mana\", \"Tidak ketemu jawaban yang pasti\", \"Cemas dan menghindari\", \"Cari aktivitas yang lebih jelas hasilnya\", \"Task makin terasa asing\", \"Tunda terus sampai kepepet\"]\r\n    },\r\n    DEADLINE: {\r\n      label: \"Kamu Cuma Bisa Gerak Kalau Kepepet\",\r\n      icon: \"\u23f0\",\r\n      desc: \"Otakmu sudah terbiasa menganggap tekanan sebagai tanda untuk bergerak. Selama deadline masih jauh, hasilnya terasa terlalu jauh dan kurang nyata buat dipedulikan sekarang.\",\r\n      insight: \"Kamu bukan pemalas, kamu adalah orang yang sistemnya hanya merespons satu jenis bahan bakar: urgensi. Masalahnya, bahan bakar itu makin mahal harganya seiring waktu.\",\r\n      relate: [\r\n        \"Baru buka laptop pas H-1 padahal dikasih waktu dua minggu\",\r\n        \"Justru paling fokus dan produktif jam 11 malam sebelum deadline\",\r\n        \"Selalu bilang 'nanti kalau udah mepet' dan selalu benar\"\r\n      ],\r\n      costs: [\r\n        \"Kualitas kerja bisa jadi korban karena semuanya dikerjain mepet\",\r\n        \"Stres bisa terasa normal, padahal enggak sehat dalam jangka panjang\",\r\n        \"Orang yang bergantung pada hasil kerjamu bisa ikut kena kalau sekali saja meleset\"\r\n      ],\r\n      potential: [\r\n        \"Kamu bisa kerja lebih tenang tanpa panik di menit terakhir\",\r\n        \"Hasil kerja bisa lebih maksimal karena ada waktu buat mikir\",\r\n        \"Orang yang bergantung padamu bisa lebih tenang menjelang tenggat\"\r\n      ],\r\n      loop: [\"Task muncul\", \"Deadline masih jauh\", \"Terasa tidak urgent\", \"Dikerjain hal lain\", \"Deadline mendekat\", \"Adrenalin naik\", \"Sprint mepet deadline\", \"Selesai (biasanya)\", \"Otak belajar: sistem ini works\", \"Ulangi terus\"]\r\n    },\r\n    COMFORT: {\r\n      label: \"Kenyamanan Sekarang Selalu Menang\",\r\n      icon: \"\ud83d\udecb\ufe0f\",\r\n      desc: \"Otakmu jago memilih kenyamanan jangka pendek. Bukan karena kamu lemah. Hadiah yang baru terasa di masa depan memang sering kalah bersaing dengan kenyamanan yang ada sekarang.\",\r\n      insight: \"Ini bukan soal disiplin. Ini soal bagaimana otakmu menilai waktu. Reward 3 bulan lagi terasa jauh lebih kecil dari istirahat 5 menit sekarang, bahkan kalau secara logika kamu tahu itu salah.\",\r\n      relate: [\r\n        \"Milih rebahan 10 menit yang jadi 2 jam, daripada ngerjain tugas 15 menit yang penting\",\r\n        \"Tau harusnya olahraga atau nabung, tapi kasur dan jajan selalu menang\",\r\n        \"Reward instan seperti nonton, scroll, atau ngemil selalu menang dari manfaat jangka panjang\"\r\n      ],\r\n      costs: [\r\n        \"Hal penting seperti kesehatan, keuangan, dan mimpi bisa terus tertunda demi nyaman sesaat\",\r\n        \"Lima atau sepuluh tahun lagi, kamu bisa menyesal karena banyak hal yang harusnya dimulai lebih awal\",\r\n        \"Orang terdekat bisa ikut merasakan dampaknya\"\r\n      ],\r\n      potential: [\r\n        \"Kamu bisa lebih konsisten pada hal penting, bukan cuma yang nyaman\",\r\n        \"Kesehatan, keuangan, dan mimpi bisa mulai bergerak sedikit demi sedikit\",\r\n        \"Keluarga bisa ikut merasakan hasil dari komitmen yang kamu bangun sekarang\"\r\n      ],\r\n      loop: [\"Task muncul\", \"Terasa tidak menyenangkan\", \"Otak cari alternatif yang lebih nyaman\", \"Istirahat \/ hiburan sebentar\", \"Temporary relief\", \"Guilt (rasa bersalah) datang\", \"Comfort lagi untuk redakan guilt (rasa bersalah)\", \"Waktu habis\", \"Ulangi\"]\r\n    },\r\n    PRODUCTIVE: {\r\n      label: \"Sibuk, Tapi Bukan di Hal yang Penting\",\r\n      icon: \"\ud83d\udc39\",\r\n      desc: \"Kamu bukan pemalas, justru sebaliknya. Kamu sangat aktif, hanya tidak di task yang paling penting. Otak kamu menemukan cara yang sangat cerdas untuk merasa produktif sambil menghindari hal yang sebenarnya perlu dikerjakan.\",\r\n      insight: \"Productive procrastination adalah salah satu yang paling sulit dideteksi karena terasa seperti progress. Kamu merasa sibuk, tapi tugas utamanya enggak bergerak.\",\r\n      relate: [\r\n        \"Beresin inbox, rapihin folder, bikin to-do list, tapi tugas utama nggak disentuh\",\r\n        \"Ngerasa produktif seharian, tapi pas dicek, task penting nol progress\",\r\n        \"Ambil kerjaan kecil orang lain biar bisa menghindari kerjaan besar sendiri\"\r\n      ],\r\n      costs: [\r\n        \"Bertahun-tahun bisa terasa sibuk terus, tapi pencapaian yang penting enggak kunjung sampai\",\r\n        \"Karier atau tujuan utama bisa jalan di tempat walau kamu kerja terus\",\r\n        \"Orang di sekitar bisa bingung melihat kamu capek terus, tapi hasil besarnya belum kelihatan\"\r\n      ],\r\n      potential: [\r\n        \"Energi dan waktumu bisa lebih terarah ke hal yang paling penting, bukan yang paling gampang\",\r\n        \"Progres besar bisa mulai kelihatan, bukan cuma daftar centang kecil\",\r\n        \"Orang di sekitarmu bisa melihat hasil nyata dari usahamu\"\r\n      ],\r\n      loop: [\"Task besar dan penting muncul\", \"Terasa berat \/ tidak nyaman\", \"Cari task lain yang lebih jelas dan lebih kecil\", \"Kerjakan side task dengan efisien\", \"Merasa produktif\", \"Task utama tetap tidak bergerak\", \"Deadline mepet\", \"Panik\"]\r\n    },\r\n    DISCONNECTED: {\r\n      label: \"Kamu Kehilangan Koneksi ke Tujuanmu\",\r\n      icon: \"\ud83e\udded\",\r\n      desc: \"Ini bukan soal kemampuan atau malas. Kamu menunda karena belum merasakan hubungan antara apa yang harus dikerjakan dan kenapa itu penting buatmu. Tanpa \u201ckenapa\u201d, susah muncul energi buat cari tahu \u201cgimana caranya\u201d.\",\r\n      insight: \"Motivasi intrinsik, motivasi yang lahir dari dalam, cenderung lebih tahan lama daripada disiplin atau tekanan dari luar. Jadi yang kamu butuhkan bisa jadi bukan tambahan tekad, tapi menemukan lagi alasanmu.\",\r\n      relate: [\r\n        \"Ngerjain sesuatu karena 'harus', bukan karena ngerti kenapa ini penting buat masa depanmu\",\r\n        \"Ngejar goals yang sebenarnya milik orang lain, jadi susah dikejar konsisten\",\r\n        \"Ngerasa hampa walau tau tugas itu sebenarnya penting\"\r\n      ],\r\n      costs: [\r\n        \"Hidup bisa terasa hampa walau kelihatan produktif\",\r\n        \"Kamu bisa kehilangan arah cukup lama tanpa benar-benar sadar\",\r\n        \"Orang terdekat bisa ngerasa kamu ada, tapi seperti belum benar-benar hadir\"\r\n      ],\r\n      potential: [\r\n        \"Hidupmu bisa terasa lebih punya arah, bukan sekadar rutinitas\",\r\n        \"Usahamu bisa terasa lebih berarti karena kamu tahu perjuanganmu buat apa\",\r\n        \"Orang terdekat bisa ikut merasakan energimu yang lebih hidup\"\r\n      ],\r\n      loop: [\"Task muncul\", \"Tidak terasa bermakna atau relevan\", \"Energi tidak muncul\", \"Tunda tanpa rasa bersalah yang besar\", \"Kerjakan hal yang terasa lebih bermakna \/ menyenangkan\", \"Task utama terus tertunda\", \"Lama-lama numpuk\", \"Krisis karena merasa hidup tidak maju\"]\r\n    },\r\n    DOUBTFUL: {\r\n      label: \"Kamu Nggak Yakin Kamu Bisa\",\r\n      icon: \"\ud83e\udeab\",\r\n      desc: \"Bukan takut dinilai orang. Bukan juga standar yang terlalu tinggi. Kamu memang ragu dirimu mampu menyelesaikan ini dengan baik. Kalau ragu bisa, otak cenderung memilih enggak mencoba daripada membuktikan ketakutan itu benar.\",\r\n      insight: \"Rasa enggak yakin pada kemampuan sendiri bukan kelemahan karakter. Ini pola yang terbentuk dari pengalaman, dan pola bisa diubah. Langkah pertamanya bukan motivasi, tapi satu bukti kecil yang membuktikan kamu bisa.\",\r\n      relate: [\r\n        \"Ragu daftar sesuatu karena merasa 'orang lain pasti lebih pantas'\",\r\n        \"Udah nyerah duluan sebelum benar-benar mencoba maksimal\",\r\n        \"Butuh validasi orang lain dulu baru berani percaya kemampuan sendiri\"\r\n      ],\r\n      costs: [\r\n        \"Potensimu bisa enggak pernah dicoba karena keburu menyerah di kepala\",\r\n        \"Kesempatan bisa diambil orang lain yang kemampuannya sebetulnya enggak jauh beda\",\r\n        \"Orang terdekat mungkin percaya kamu bisa, sementara kamu sendiri masih ragu\"\r\n      ],\r\n      potential: [\r\n        \"Bukti kecil kemampuanmu bisa mulai terkumpul jadi rasa percaya diri yang solid\",\r\n        \"Kesempatan yang dulu kamu hindari bisa mulai berani kamu ambil\",\r\n        \"Orang terdekat bisa ikut senang melihat kamu mulai percaya pada dirimu sendiri\"\r\n      ],\r\n      loop: [\"Task muncul\", \"Otak evaluasi kemampuan diri\", \"Kesimpulan: 'aku mungkin nggak bisa'\", \"Resistensi untuk mulai\", \"Hindari task untuk hindari pembuktian\", \"Tidak ada bukti kemampuan terkumpul\", \"Self-efficacy makin rendah\", \"Task berikutnya makin terasa impossible\"]\r\n    },\r\n    CONFORMIST: {\r\n      label: \"Lingkunganmu Menormalisasi Menunda\",\r\n      icon: \"\ud83d\udc65\",\r\n      desc: \"Kamu menunda bukan cuma karena dirimu sendiri, tapi juga karena orang di sekitarmu melakukan hal yang sama. Kalau menunda terasa normal di lingkunganmu, otak jadi enggak menangkap bahwa ini masalah.\",\r\n      insight: \"Prokrastinasi bisa menular secara sosial. Bukan berarti kamu lemah, tapi lingkungan membentuk standar perilaku kita lebih kuat dari yang kita sadari. Yang perlu berubah bukan hanya kebiasaanmu, tapi juga standar yang kamu terima sebagai normal.\",\r\n      relate: [\r\n        \"Grup tugas kompak semua nunda, jadi ngerasa 'ya wajar aja santai dulu'\",\r\n        \"Circle pertemanan sama-sama suka begadang kerjain semuanya mepet deadline\",\r\n        \"Nggak ada yang protes soal telat, jadi telat terasa nggak masalah\"\r\n      ],\r\n      costs: [\r\n        \"Standar \u201cbiasa aja\u201d di sekitarmu bisa diam-diam menahan potensi terbaikmu\",\r\n        \"Kamu bisa ikut pola yang sama bertahun-tahun tanpa sadar\",\r\n        \"Orang dengan standar berbeda bisa bergerak lebih dulu\"\r\n      ],\r\n      potential: [\r\n        \"Kamu bisa jadi orang pertama di lingkunganmu yang keluar dari pola ini\",\r\n        \"Standar baru yang kamu bangun bisa menular ke orang sekitarmu\",\r\n        \"Teman dan keluarga bisa ikut terdorong berubah karena kamu mulai duluan\"\r\n      ],\r\n      loop: [\"Task muncul\", \"Lihat orang sekitar juga santai \/ menunda\", \"Sinyal: ini normal, belum urgent\", \"Ikut santai \/ tunda\", \"Tidak ada tekanan sosial untuk mulai\", \"Deadline mendekat bareng-bareng\", \"Panik bareng-bareng\", \"Selesai bareng-bareng\", \"Otak belajar: sistem ini works di sini\"]\r\n    }\r\n  };\r\n\r\n  const LAYER_EMOJI = { 'Behavior': '\ud83e\udde9', 'Emotion': '\ud83d\udcad', 'Automatic Thought': '\ud83e\udde0', 'Repeating Pattern': '\ud83d\udd01', 'Life Impact': '\ud83c\udf0d' };\r\n  const SHORT_LABELS = {\r\n    DISTRACTED: 'Distracted', OVERTHINKER: 'Overthinker', PERFECTIONIST: 'Perfectionist', FEARFUL: 'Fearful',\r\n    OVERWHELMED: 'Overwhelmed', UNCLEAR: 'Unclear', DEADLINE: 'Deadline', COMFORT: 'Comfort',\r\n    PRODUCTIVE: 'Productive', DISCONNECTED: 'Disconnected', DOUBTFUL: 'Doubtful', CONFORMIST: 'Conformist'\r\n  };\r\n  const OBVIOUS_PAIRS = {\r\n    DISTRACTED: ['COMFORT', 'DEADLINE'], COMFORT: ['DISTRACTED', 'DEADLINE'], FEARFUL: ['PERFECTIONIST', 'DOUBTFUL'],\r\n    PERFECTIONIST: ['FEARFUL'], OVERWHELMED: ['UNCLEAR'], UNCLEAR: ['OVERWHELMED'], DEADLINE: ['COMFORT', 'DISTRACTED'],\r\n    PRODUCTIVE: ['OVERTHINKER'], OVERTHINKER: ['PRODUCTIVE', 'FEARFUL'], DISCONNECTED: ['COMFORT'],\r\n    DOUBTFUL: ['FEARFUL'], CONFORMIST: ['DEADLINE', 'COMFORT']\r\n  };\r\n  const LOADING_MESSAGES = ['Menganalisis jawabanmu... \ud83d\udd0d', 'Memetakan pola menundamu... \ud83e\udded', 'Menyusun Procrastination Code-mu... \ud83e\uddec'];\r\n\r\n  const dlg = document.getElementById('quiz');\r\n  const body = document.getElementById('quizBody');\r\n  const scroller = document.getElementById('quizScroll');\r\n  const backBtn = document.getElementById('quizBack');\r\n  const closeBtn = document.getElementById('quizClose');\r\n  const progress = document.getElementById('quizProgress');\r\n  const track = document.getElementById('quizTrack');\r\n  const fill = document.getElementById('quizFill');\r\n  const layerEl = document.getElementById('quizLayer');\r\n  const countEl = document.getElementById('quizCount');\r\n  const reduceMotion = window.matchMedia('(prefers-reduced-motion: reduce)');\r\n  const RESULT_STORAGE_KEY = 'grownoola_procrastination_latest_result';\r\n\r\n  \/\/ Keep only the circular close control visible while the quiz content scrolls.\r\n  \/\/ As a direct child of the scroll container, position: sticky has no header panel to carry with it.\r\n  if (closeBtn && scroller) scroller.prepend(closeBtn);\r\n\r\n  const esc = (s) => String(s).replace(\/[&<>\"]\/g, (c) => ({ '&': '&amp;', '<': '&lt;', '>': '&gt;', '\"': '&quot;' }[c]));\r\n  const TOTAL = QUESTIONS.length;\r\n  let current = 0;\r\n  let answers = [];\r\n  let stage = 'question';\r\n  let timers = [];\r\n  const later = (fn, ms) => timers.push(setTimeout(fn, ms));\r\n  const clearTimers = () => { timers.forEach(clearTimeout); timers = []; };\r\n\r\n  \/* ---------- scoring ---------- *\/\r\n  function calculateResult(list) {\r\n    const keys = Object.keys(SHORT_LABELS);\r\n    const raw = Object.fromEntries(keys.map((k) => [k, 0]));\r\n    list.forEach((a) => Object.entries(a.scores).forEach(([k, v]) => { if (k in raw) raw[k] += v; }));\r\n    const totalRaw = Object.values(raw).reduce((a, b) => a + b, 0);\r\n    const normalized = Object.fromEntries(keys.map((k) => [k, totalRaw ? Math.round(raw[k] \/ totalRaw * 100) : 0]));\r\n    const sorted = Object.entries(normalized).sort(([, a], [, b]) => b - a);\r\n    const [primary, primaryScore] = sorted[0];\r\n    const secondary = sorted[1][1] >= primaryScore * 0.6 ? sorted[1][0] : null;\r\n    const obvious = OBVIOUS_PAIRS[primary] || [];\r\n    const hidden = sorted.slice(2, 7).find(([k, v]) => !obvious.includes(k) && v > 0);\r\n    return { primary, secondary, hiddenDriver: hidden ? hidden[0] : sorted[2][0], normalized };\r\n  }\r\n\r\n  function saveLatestResult(result, severity) {\r\n    try {\r\n      window.localStorage.setItem(RESULT_STORAGE_KEY, JSON.stringify({\r\n        primary: result.primary,\r\n        secondary: result.secondary ?? null,\r\n        hiddenDriver: result.hiddenDriver,\r\n        takenAt: new Date().toISOString(),\r\n        severity,\r\n        scores: result.normalized\r\n      }));\r\n    } catch (_) {\r\n      \/\/ Storage can be blocked (for example in private browsing); the quiz must still finish normally.\r\n    }\r\n  }\r\n\r\n  \/* Severity maps the chosen answers onto 50\u2013100%, between the mildest and the\r\n     most acute path that is actually possible through the questions. *\/\r\n  const SEVERITY = QUESTIONS.reduce((acc, q) => {\r\n    const s = q.options.map((o) => o.severity);\r\n    return { min: acc.min + Math.min(...s), max: acc.max + Math.max(...s) };\r\n  }, { min: 0, max: 0 });\r\n  const computeSeverity = (list) => {\r\n    const total = list.reduce((acc, a) => acc + a.severity, 0);\r\n    const pct = 50 + (total - SEVERITY.min) \/ (SEVERITY.max - SEVERITY.min) * 50;\r\n    return Math.round(Math.min(100, Math.max(50, pct)));\r\n  };\r\n\r\n  \/* ---------- rendering ---------- *\/\r\n  function setBar(i) {\r\n    const q = QUESTIONS[i];\r\n    const inLayer = QUESTIONS.filter((x) => x.layer === q.layer).length;\r\n    const pos = QUESTIONS.slice(0, i + 1).filter((x) => x.layer === q.layer).length;\r\n    layerEl.textContent = `${LAYER_EMOJI[q.layer] || '\u2022'} ${q.layer} \u00b7 ${pos}\/${inLayer}`;\r\n    countEl.textContent = `${i + 1} \/ ${TOTAL}`;\r\n    fill.style.width = `${(i + 1) \/ TOTAL * 100}%`;\r\n    track.setAttribute('aria-valuenow', String(i + 1));\r\n    backBtn.hidden = i === 0;\r\n    progress.hidden = false;\r\n  }\r\n\r\n  function renderQuestion(i, { focus = true } = {}) {\r\n    stage = 'question';\r\n    current = i;\r\n    setBar(i);\r\n    const q = QUESTIONS[i];\r\n    const chosen = answers[i] ? answers[i].optionIndex : -1;\r\n    body.innerHTML = `\r\n      <div class=\"quiz__step\">\r\n        <div class=\"quiz__q-emoji\" aria-hidden=\"true\">${q.emoji}<\/div>\r\n        <h3 class=\"quiz__q\" id=\"quizQ\" tabindex=\"-1\">${esc(q.text)}<\/h3>\r\n        <ul class=\"quiz__options\" role=\"list\" aria-labelledby=\"quizQ\">\r\n          ${q.options.map((o, idx) => `\r\n            <li><button class=\"quiz__opt\" type=\"button\" data-opt=\"${idx}\" aria-pressed=\"${idx === chosen}\">\r\n              <span class=\"quiz__opt-emoji\" aria-hidden=\"true\">${o.emoji}<\/span>\r\n              <span class=\"quiz__opt-text\">${esc(o.text)}<\/span>\r\n              <span class=\"quiz__opt-key\" aria-hidden=\"true\">${idx + 1}<\/span>\r\n            <\/button><\/li>`).join('')}\r\n        <\/ul>\r\n        <p class=\"quiz__hint\">Tip: tekan angka 1 sampai 4 buat pilih lebih cepat \u2328\ufe0f<\/p>\r\n      <\/div>`;\r\n    scroller.scrollTop = 0;\r\n    if (focus) document.getElementById('quizQ').focus({ preventScroll: true });\r\n  }\r\n\r\n  function select(idx) {\r\n    if (stage !== 'question') return;\r\n    const q = QUESTIONS[current];\r\n    const opt = q.options[idx];\r\n    if (!opt) return;\r\n    answers[current] = { optionIndex: idx, scores: opt.scores, severity: opt.severity };\r\n    body.querySelectorAll('.quiz__opt').forEach((b) => b.setAttribute('aria-pressed', String(Number(b.dataset.opt) === idx)));\r\n    const from = current;\r\n    stage = 'advancing';\r\n    later(() => {\r\n      if (current !== from) return;\r\n      if (current < TOTAL - 1) renderQuestion(current + 1);\r\n      else showLoading();\r\n    }, reduceMotion.matches ? 120 : 380);\r\n  }\r\n\r\n  function showLoading() {\r\n    stage = 'loading';\r\n    backBtn.hidden = true;\r\n    fill.style.width = '100%';\r\n    body.innerHTML = `\r\n      <div class=\"quiz__loading\">\r\n        <div class=\"quiz__glass\" aria-hidden=\"true\"><span>\u23f3<\/span><\/div>\r\n        <div class=\"quiz__load-track\" aria-hidden=\"true\"><div class=\"quiz__load-fill\" id=\"loadFill\"><\/div><\/div>\r\n        <div class=\"quiz__load-pct grad-text\" id=\"loadPct\" aria-hidden=\"true\">0%<\/div>\r\n        <p class=\"quiz__load-label\" id=\"loadLabel\" role=\"status\">${LOADING_MESSAGES[0]}<\/p>\r\n      <\/div>`;\r\n    const duration = reduceMotion.matches ? 700 : 2200;\r\n    const pctEl = document.getElementById('loadPct');\r\n    const barEl = document.getElementById('loadFill');\r\n    const labelEl = document.getElementById('loadLabel');\r\n    const start = performance.now();\r\n    const tick = (now) => {\r\n      if (stage !== 'loading') return;\r\n      const t = Math.min(1, (now - start) \/ duration);\r\n      const eased = 1 - Math.pow(1 - t, 3);\r\n      pctEl.textContent = `${Math.round(eased * 100)}%`;\r\n      barEl.style.width = `${eased * 100}%`;\r\n      labelEl.textContent = LOADING_MESSAGES[Math.min(LOADING_MESSAGES.length - 1, Math.floor(t * LOADING_MESSAGES.length))];\r\n      if (t < 1) requestAnimationFrame(tick);\r\n    };\r\n    requestAnimationFrame(tick);\r\n    later(showResult, duration + 150);\r\n  }\r\n\r\n  const LYNK_URLS = {\n    DISTRACTED: 'https:\/\/lynk.id\/grownoola\/8411dnlx0684\/',\n    OVERTHINKER: 'https:\/\/lynk.id\/grownoola\/n900y3djvwv6\/',\n    PERFECTIONIST: 'https:\/\/lynk.id\/grownoola\/88qq4y715oky',\n    FEARFUL: 'https:\/\/lynk.id\/grownoola\/6vkk0nm949lz',\n    OVERWHELMED: 'https:\/\/lynk.id\/grownoola\/wnrrk5dmepwp',\n    UNCLEAR: 'https:\/\/lynk.id\/grownoola\/2e5568deyk4z',\n    DEADLINE: 'https:\/\/lynk.id\/grownoola\/de779gw693wg',\n    COMFORT: 'https:\/\/lynk.id\/grownoola\/z466l1w1vkkj',\n    PRODUCTIVE: 'https:\/\/lynk.id\/grownoola\/p5kkn1d5yo6j',\n    DISCONNECTED: 'https:\/\/lynk.id\/grownoola\/qyxxerwpmqz8',\n    DOUBTFUL: 'https:\/\/lynk.id\/grownoola\/k7nnxqxo1yj6',\n    CONFORMIST: 'https:\/\/lynk.id\/grownoola\/d0eeqrl996en'\n  };\n  \/* Result CTAs -> product page per pattern (new tab). Patterns without a confirmed link keep the old in-page behaviour. *\/\n  const ctaAttrs = (key) => LYNK_URLS[key] ? `href=\"${LYNK_URLS[key]}\" target=\"_blank\" rel=\"noopener noreferrer\"` : 'href=\"#solusi\" data-quiz-exit';\n  function showResult() {\r\n    stage = 'result';\r\n    const r = calculateResult(answers);\r\n    const severity = computeSeverity(answers);\r\n    const p = ARCHETYPES[r.primary];\r\n    const s = r.secondary ? ARCHETYPES[r.secondary] : null;\r\n    const h = ARCHETYPES[r.hiddenDriver];\r\n    saveLatestResult(r, severity);\r\n    const list = (items) => `<ul>${items.map((x) => `<li>${esc(x)}<\/li>`).join('')}<\/ul>`;\r\n\r\n    progress.hidden = true;\r\n    backBtn.hidden = true;\r\n    body.innerHTML = `\r\n      <div class=\"quiz__result r-reveal\">\r\n        <span class=\"r-badge\">\ud83e\uddec Your Procrastination Code<\/span>\r\n        <span class=\"r-tag\">${SHORT_LABELS[r.primary]}<\/span>\r\n        <div class=\"r-icon\" aria-hidden=\"true\">${p.icon}<\/div>\r\n        <h3 class=\"r-title\" id=\"quizResultTitle\" tabindex=\"-1\">${esc(p.label)}<\/h3>\r\n        <p class=\"r-pct grad-text\"><span id=\"sevPct\">${severity}<\/span>%<\/p>\r\n        <p class=\"r-pct-caption\">Seberapa sering pola menunda muncul di 15 jawabanmu. Makin tinggi, makin sering pola ini muncul. Ini gambaran untuk refleksi, bukan ukuran klinis.<\/p>\r\n        <p class=\"r-desc\">${esc(p.desc)}<\/p>\r\n\r\n        <section class=\"r-box r-box--relate\"><h3>\ud83d\ude05 Kedengeran familiar?<\/h3>${list(p.relate)}<\/section>\r\n        <p class=\"r-box r-box--insight\"><strong>\ud83d\udca1 Insight:<\/strong> ${esc(p.insight)}<\/p>\r\n\r\n        <div class=\"r-duo r-tendencies\">\r\n          <div class=\"r-mini\">\r\n            <small class=\"r-step\"><b>01<\/b><span>Pola utama<\/span><\/small>\r\n            <span class=\"r-code-pill\">${r.primary}<\/span>\r\n            <strong>${p.icon} ${esc(p.label)}<\/strong>\r\n            <span>porsi <b>${r.normalized[r.primary]}%<\/b> dari skor polamu<\/span>\r\n          <\/div>\r\n          <div class=\"r-mini\">\r\n            <small class=\"r-step\"><b>02<\/b><span>Pola sekunder<\/span><\/small>\r\n            ${s ? `<span class=\"r-code-pill\">${r.secondary}<\/span><strong>${s.icon} ${esc(s.label)}<\/strong><span>porsi <b>${r.normalized[r.secondary]}%<\/b> dari skor polamu<\/span>`\r\n                : `<span class=\"r-code-pill\">Belum ada pola sekunder<\/span><strong>\ud83c\udfaf Satu pola utama paling dominan<\/strong><span>Jawabanmu paling kuat mengarah ke satu pola utama. Belum ada pola sekunder yang cukup kuat.<\/span>`}\r\n          <\/div>\r\n          <div class=\"r-mini\">\r\n            <small class=\"r-step\"><b>03<\/b><span>Pola yang mungkin belum kamu sadari<\/span><\/small>\r\n            <span class=\"r-code-pill\">${r.hiddenDriver}<\/span>\r\n            <strong>${h.icon} ${esc(h.label)}<\/strong>\r\n            <span>${esc(h.desc.split('.')[0].trim())}.<\/span>\r\n          <\/div>\r\n        <\/div>\r\n\r\n        <section class=\"r-loop\">\r\n          <h3>\ud83d\udd01 Procrastination Loop-mu<\/h3>\r\n          <ol>${p.loop.map((step) => `<li><span>${esc(step)}<\/span><\/li>`).join('')}<\/ol>\r\n        <\/section>\r\n\r\n        <p class=\"r-disclaimer\">Hasil ini bukan diagnosis psikologis. Ini gambaran pola dari jawabanmu sendiri.<\/p>\r\n        <a class=\"r-cta-ink\" ${ctaAttrs(r.primary)}>Lihat cara memutus polamu <span class=\"r-cta-arrow\" aria-hidden=\"true\">\u2192<\/span><\/a>\r\n\r\n        <section class=\"r-box r-box--cost\"><h3>\ud83d\ude28 Risiko kalau ini dibiarkan<\/h3>${list(p.costs)}<\/section>\r\n        <section class=\"r-box r-box--grow\"><h3>\ud83c\udf31 Versi barumu saat terlepas dari pola ini<\/h3>${list(p.potential)}<\/section>\r\n\r\n        <a class=\"r-cta-final\" ${ctaAttrs(r.primary)}>\r\n          <span class=\"r-cta-final__glass\" aria-hidden=\"true\">\u23f3<\/span>\r\n          <span class=\"r-cta-final__copy\"><strong>Setiap Hari yang Disia-siakan<\/strong><span>Menunda Potensi Pencapaian Hidupmu<\/span><\/span>\r\n          <span class=\"r-cta-arrow\" aria-hidden=\"true\">\u2192<\/span>\r\n        <\/a>\r\n        <button class=\"r-restart\" type=\"button\" data-quiz-restart>\u21ba Ulangi tes<\/button>\r\n      <\/div>`;\r\n    scroller.scrollTop = 0;\r\n    document.getElementById('quizResultTitle').focus({ preventScroll: true });\r\n\r\n    if (!reduceMotion.matches) {\r\n      const el = document.getElementById('sevPct');\r\n      const start = performance.now();\r\n      const run = (now) => {\r\n        const t = Math.min(1, (now - start) \/ 900);\r\n        el.textContent = String(Math.round(severity * (1 - Math.pow(1 - t, 3))));\r\n        if (t < 1 && stage === 'result') requestAnimationFrame(run);\r\n      };\r\n      requestAnimationFrame(run);\r\n    }\r\n  }\r\n\r\n  \/* ---------- open \/ close ---------- *\/\r\n  function start() {\r\n    clearTimers();\r\n    answers = [];\r\n    renderQuestion(0, { focus: false });\r\n  }\r\n  function open() {\r\n    start();\r\n    document.documentElement.classList.add('quiz-lock');\r\n    if (typeof dlg.showModal === 'function') dlg.showModal(); else dlg.setAttribute('open', '');\r\n    document.getElementById('quizQ').focus({ preventScroll: true });\r\n  }\r\n  function close() {\r\n    if (dlg.open) dlg.close();\r\n  }\r\n\r\n  document.querySelectorAll('[data-open-quiz]').forEach((btn) => btn.addEventListener('click', open));\r\n  closeBtn.addEventListener('click', close);\r\n  backBtn.addEventListener('click', () => { if (stage === 'question' || stage === 'advancing') { clearTimers(); if (current > 0) renderQuestion(current - 1); } });\r\n  dlg.addEventListener('close', () => { clearTimers(); stage = 'closed'; document.documentElement.classList.remove('quiz-lock'); });\r\n  dlg.addEventListener('click', (e) => {\r\n    if (e.target === dlg) { close(); return; }\r\n    const opt = e.target.closest('[data-opt]');\r\n    if (opt) { select(Number(opt.dataset.opt)); return; }\r\n    if (e.target.closest('[data-quiz-restart]')) { start(); document.getElementById('quizQ').focus({ preventScroll: true }); return; }\r\n    if (e.target.closest('[data-quiz-exit]')) close();\r\n  });\r\n  dlg.addEventListener('keydown', (e) => {\r\n    if (stage !== 'question' || e.altKey || e.ctrlKey || e.metaKey) return;\r\n    const n = Number(e.key);\r\n    if (n >= 1 && n <= 4) { e.preventDefault(); select(n - 1); }\r\n  });\r\n})();\r\n<\/script>\r\n<script>\r\n\/* ===== site.js ===== *\/\r\n\/* #ProcrastinationDecoded homepage v8 (from v7): sticky header state, active jump link, scroll reveal, and the section-5 carousel.\r\n   The quiz and the mobile menu toggle stay in quiz.js (unchanged from v5). *\/\r\n(() => {\r\n  const root = document.documentElement;\r\n  const header = document.querySelector('.site-header');\r\n  const links = [...document.querySelectorAll('.nav-links a[data-nav]')];\r\n  const sections = links.map((a) => document.getElementById(a.dataset.nav)).filter(Boolean);\r\n\r\n  \/\/ One decorative pill follows the existing scroll-based active link.\r\n  const navList = links[0]?.closest('.nav-links');\r\n  const pillDesktop = window.matchMedia('(min-width: 1024px)');\r\n  let pillWasVisible = false;\r\n  let pillFrame;\r\n  const syncPill = () => {\r\n    if (!navList) return;\r\n    const active = links.find((a) => a.hasAttribute('aria-current'));\r\n    if (!pillDesktop.matches || !active) {\r\n      navList.style.setProperty('--pill-visible', '0');\r\n      pillWasVisible = false;\r\n      return;\r\n    }\r\n    const box = navList.getBoundingClientRect();\r\n    const target = active.getBoundingClientRect();\r\n    \/\/ Initial appearance and re-entry should not fly in from the hero or mobile layout.\r\n    if (!pillWasVisible) navList.classList.add('pill-snap');\r\n    navList.classList.add('has-fluid-pill');\r\n    for (const [key, value] of Object.entries({\r\n      x: target.left - box.left, y: target.top - box.top,\r\n      w: target.width, h: target.height\r\n    })) navList.style.setProperty('--pill-' + key, value + 'px');\r\n    navList.style.setProperty('--pill-visible', '1');\r\n    pillWasVisible = true;\r\n    cancelAnimationFrame(pillFrame);\r\n    pillFrame = requestAnimationFrame(() => navList.classList.remove('pill-snap'));\r\n  };\r\n  if (navList && 'ResizeObserver' in window) {\r\n    const pillResize = new ResizeObserver(syncPill);\r\n    pillResize.observe(navList);\r\n    links.forEach((a) => pillResize.observe(a));\r\n  }\r\n  document.fonts?.ready.then(syncPill);\r\n  pillDesktop.addEventListener('change', syncPill);\r\n\r\n  \/* Compact header + current section, computed once per frame *\/\r\n  let ticking = false;\r\n  const update = () => {\r\n    ticking = false;\r\n    header.classList.toggle('is-scrolled', window.scrollY > 24);\r\n    const line = window.innerHeight * 0.4;\r\n    \/\/ No link is current while the hero is on screen (the Beranda link was removed in v8).\r\n    let current = null;\r\n    for (const s of sections) if (s.getBoundingClientRect().top <= line) current = s;\r\n    for (const a of links) {\r\n      if (current && a.dataset.nav === current.id) a.setAttribute('aria-current', 'location');\r\n      else a.removeAttribute('aria-current');\r\n    }\r\n    syncPill();\r\n  };\r\n  const onScroll = () => { if (!ticking) { ticking = true; requestAnimationFrame(update); } };\r\n  update();\r\n  window.addEventListener('scroll', onScroll, { passive: true });\r\n  window.addEventListener('resize', onScroll);\r\n\r\n  \/* Mobile menu + header quiz CTA: Escape closes both the quiz and the menu, which hides the\r\n     trigger, so the browser's own focus return lands on <body>. Hand focus to the visible\r\n     menu toggle instead. When the menu is still open, the native return to the CTA is kept. *\/\r\n  const toggle = document.querySelector('.menu-toggle');\r\n  const navPanel = document.getElementById('site-nav');\r\n  const navCta = document.querySelector('.nav-cta');\r\n  const quiz = document.getElementById('quiz');\r\n  if (toggle && navPanel && navCta && quiz) {\r\n    navCta.addEventListener('click', () => {\r\n      if (toggle.getAttribute('aria-expanded') !== 'true') return;\r\n      quiz.addEventListener('close', () => {\r\n        requestAnimationFrame(() => { if (!navPanel.classList.contains('is-open')) toggle.focus(); });\r\n      }, { once: true });\r\n    });\r\n  }\r\n\r\n  \/* Gentle reveal: once per element, never for reduced motion or without IntersectionObserver *\/\r\n  const reduce = window.matchMedia('(prefers-reduced-motion: reduce)').matches;\r\n  const items = document.querySelectorAll('[data-reveal]');\r\n  if (reduce || !('IntersectionObserver' in window) || !items.length) return;\r\n  const io = new IntersectionObserver((entries) => {\r\n    for (const e of entries) {\r\n      if (e.isIntersecting) { e.target.classList.add('is-in'); io.unobserve(e.target); }\r\n    }\r\n  }, { rootMargin: '0px 0px 4% 0px', threshold: 0.01 });\r\n  items.forEach((el) => io.observe(el));\r\n  root.classList.add('reveal-ready');\r\n})();\r\n\r\n\/* Section 05 carousel: slow leftward drift, seamless loop, drag \/ swipe \/ trackpad,\r\n   prev-next, dots and arrow keys. Autoplay pauses on hover, focus, interaction and\r\n   off-screen, and never runs for prefers-reduced-motion. The quiz is untouched. *\/\r\n(() => {\r\n  const root = document.querySelector('[data-carousel]');\r\n  if (!root) return;\r\n  const viewport = root.querySelector('.carousel__viewport');\r\n  const track = root.querySelector('.carousel__track');\r\n  const slides = [...track.querySelectorAll('.consequence-card')];\r\n  const dots = [...root.querySelectorAll('[data-dot]')];\r\n  const status = root.querySelector('[data-carousel-status]');\r\n  const N = slides.length;\r\n  const motionQuery = window.matchMedia('(prefers-reduced-motion: reduce)');\r\n\r\n  \/* One visual copy for the seamless loop: hidden from assistive tech and from keyboard. *\/\r\n  for (const s of slides) {\r\n    const c = s.cloneNode(true);\r\n    c.classList.add('is-clone');\r\n    c.setAttribute('aria-hidden', 'true');\r\n    c.inert = true;\r\n    c.removeAttribute('role'); c.removeAttribute('aria-roledescription'); c.removeAttribute('aria-label');\r\n    c.querySelectorAll('img').forEach((img) => { img.alt = ''; });\r\n    c.querySelectorAll('h3').forEach((el) => { const p = document.createElement('p'); p.className = el.className; p.textContent = el.textContent; el.replaceWith(p); });\r\n    track.append(c);\r\n  }\r\n\r\n  let x = 0;              \/\/ how far the track has moved left, kept in [0, setW)\r\n  let setW = 1, step = 1, firstCenter = 0, vpW = 1;\r\n  const mod = (v) => ((v % setW) + setW) % setW;\r\n  const measure = () => {\r\n    vpW = viewport.clientWidth;\r\n    const clone0 = track.children[N];\r\n    setW = clone0.offsetLeft - slides[0].offsetLeft;\r\n    step = N > 1 ? slides[1].offsetLeft - slides[0].offsetLeft : setW;\r\n    firstCenter = slides[0].offsetLeft + slides[0].offsetWidth \/ 2;\r\n  };\r\n  const xFor = (i) => firstCenter + i * step - vpW \/ 2;      \/\/ x that centres slide i\r\n  const indexAt = (px) => ((Math.round((px + vpW \/ 2 - firstCenter) \/ step) % N) + N) % N;\r\n\r\n  let current = -1;\r\n  const render = () => {\r\n    x = mod(x);\r\n    track.style.transform = `translate3d(${-x}px, 0, 0)`;\r\n    const i = indexAt(x);\r\n    if (i !== current) {\r\n      current = i;\r\n      dots.forEach((d, k) => d.setAttribute('aria-current', String(k === i)));\r\n    }\r\n  };\r\n  const announce = () => { if (status) status.textContent = `Kartu ${current + 1} dari ${N}: ${slides[current].querySelector('h3').textContent}`; };\r\n\r\n  \/* ---------- tweened moves for buttons \/ dots \/ keys \/ snapping ---------- *\/\r\n  let tween = null;\r\n  const cancelTween = () => { if (tween) { cancelAnimationFrame(tween.raf); tween = null; } };\r\n  const goTo = (targetX, { instant = motionQuery.matches, done } = {}) => {\r\n    cancelTween();\r\n    let delta = mod(targetX) - x;                         \/\/ shortest way round the loop\r\n    if (delta > setW \/ 2) delta -= setW;\r\n    if (delta < -setW \/ 2) delta += setW;\r\n    if (instant || Math.abs(delta) < 1) { x += delta; render(); done && done(); return; }\r\n    const from = x, t0 = performance.now(), dur = 560;\r\n    const ease = (t) => 1 - Math.pow(1 - t, 3);\r\n    const tick = (now) => {\r\n      const t = Math.min(1, (now - t0) \/ dur);\r\n      x = from + delta * ease(t); render();\r\n      if (t < 1) tween.raf = requestAnimationFrame(tick); else { tween = null; done && done(); }\r\n    };\r\n    tween = { raf: requestAnimationFrame(tick) };\r\n  };\r\n  const goToIndex = (i, opts) => goTo(xFor(((i % N) + N) % N), opts);\r\n  const nearestX = () => xFor(indexAt(x));\r\n\r\n  \/* ---------- autoplay ---------- *\/\r\n  const reasons = new Set();\r\n  let last = 0, raf = 0, resumeTimer = 0;\r\n  const speed = () => (vpW < 720 ? 16 : 24);             \/\/ px per second: a slow drift\r\n  const loop = (now) => {\r\n    const dt = Math.min(64, now - last); last = now;\r\n    if (!reasons.size && !tween) { x += speed() * dt \/ 1000; render(); }\r\n    raf = requestAnimationFrame(loop);\r\n  };\r\n  const setPaused = (why, on) => { on ? reasons.add(why) : reasons.delete(why); };\r\n  const holdAfterInteraction = (ms = 3200) => {\r\n    setPaused('interaction', true);\r\n    clearTimeout(resumeTimer);\r\n    resumeTimer = setTimeout(() => setPaused('interaction', false), ms);\r\n  };\r\n  const applyMotionPref = () => setPaused('reduced-motion', motionQuery.matches);\r\n  applyMotionPref();\r\n  motionQuery.addEventListener('change', applyMotionPref);\r\n\r\n  root.addEventListener('pointerenter', (e) => { if (e.pointerType === 'mouse') setPaused('hover', true); });\r\n  root.addEventListener('pointerleave', (e) => { if (e.pointerType === 'mouse') setPaused('hover', false); });\r\n  \/\/ pause for keyboard focus only; a mouse click or drag must not freeze the strip\r\n  root.addEventListener('focusin', (e) => { if (e.target.matches(':focus-visible')) setPaused('focus', true); });\r\n  root.addEventListener('focusout', (e) => { if (!root.contains(e.relatedTarget)) setPaused('focus', false); });\r\n  document.addEventListener('visibilitychange', () => setPaused('hidden', document.hidden));\r\n  if ('IntersectionObserver' in window) {\r\n    setPaused('offscreen', true);\r\n    new IntersectionObserver(([e]) => setPaused('offscreen', !e.isIntersecting)).observe(root);\r\n  }\r\n\r\n  \/* ---------- buttons, dots, keys ---------- *\/\r\n  const nav = (i) => { holdAfterInteraction(); goToIndex(i, { done: announce }); };\r\n  root.querySelector('[data-prev]').addEventListener('click', () => nav(indexAt(nearestX()) - 1));\r\n  root.querySelector('[data-next]').addEventListener('click', () => nav(indexAt(nearestX()) + 1));\r\n  dots.forEach((d) => d.addEventListener('click', () => nav(Number(d.dataset.dot))));\r\n  viewport.addEventListener('keydown', (e) => {\r\n    const map = { ArrowLeft: -1, ArrowRight: 1 };\r\n    if (e.key in map) { e.preventDefault(); nav(indexAt(nearestX()) + map[e.key]); }\r\n    else if (e.key === 'Home') { e.preventDefault(); nav(0); }\r\n    else if (e.key === 'End') { e.preventDefault(); nav(N - 1); }\r\n  });\r\n\r\n  \/* ---------- drag \/ swipe (vertical page scroll stays native via touch-action: pan-y) ---------- *\/\r\n  let drag = null;\r\n  viewport.addEventListener('pointerdown', (e) => {\r\n    if (e.button !== 0) return;\r\n    cancelTween();\r\n    drag = { id: e.pointerId, startX: e.clientX, startY: e.clientY, fromX: x, moved: false, t0: performance.now() };\r\n    setPaused('drag', true);\r\n  });\r\n  viewport.addEventListener('pointermove', (e) => {\r\n    if (!drag || e.pointerId !== drag.id) return;\r\n    const dx = e.clientX - drag.startX;\r\n    if (!drag.moved && Math.abs(dx) > 6 && Math.abs(dx) > Math.abs(e.clientY - drag.startY)) {\r\n      drag.moved = true; viewport.classList.add('is-dragging');\r\n      try { viewport.setPointerCapture(e.pointerId); } catch {}\r\n    }\r\n    if (drag.moved) { x = drag.fromX - dx; render(); }\r\n  });\r\n  const endDrag = (e) => {\r\n    if (!drag || (e && e.pointerId !== drag.id)) return;\r\n    const d = drag; drag = null;\r\n    viewport.classList.remove('is-dragging');\r\n    setPaused('drag', false);\r\n    if (!d.moved) return;\r\n    const dx = (e ? e.clientX : d.startX) - d.startX;\r\n    const fast = Math.abs(dx) \/ Math.max(1, performance.now() - d.t0) > 0.45;\r\n    let i = indexAt(x);\r\n    if (fast || Math.abs(dx) > step * 0.18) i = indexAt(d.fromX + (dx < 0 ? step * .65 : -step * .65));\r\n    holdAfterInteraction();\r\n    goToIndex(i, { done: announce });\r\n  };\r\n  viewport.addEventListener('pointerup', endDrag);\r\n  viewport.addEventListener('pointercancel', endDrag);\r\n\r\n  \/* ---------- trackpad \/ shift-wheel horizontal scrolling ---------- *\/\r\n  let wheelTimer = 0;\r\n  viewport.addEventListener('wheel', (e) => {\r\n    const dx = Math.abs(e.deltaX) > Math.abs(e.deltaY) ? e.deltaX : (e.shiftKey ? e.deltaY : 0);\r\n    if (!dx) return;\r\n    e.preventDefault();\r\n    cancelTween();\r\n    x += dx; render();\r\n    holdAfterInteraction();\r\n    clearTimeout(wheelTimer);\r\n    wheelTimer = setTimeout(() => goTo(nearestX(), { done: announce }), 160);\r\n  }, { passive: false });\r\n\r\n  \/* ---------- images: load the whole strip shortly before it scrolls into view ---------- *\/\r\n  if ('IntersectionObserver' in window) {\r\n    const eager = new IntersectionObserver(([e]) => {\r\n      if (!e.isIntersecting) return;\r\n      track.querySelectorAll('img[loading=\"lazy\"]').forEach((img) => { img.loading = 'eager'; });\r\n      eager.disconnect();\r\n    }, { rootMargin: '800px 0px' });\r\n    eager.observe(root);\r\n  }\r\n\r\n  \/* ---------- sizing ---------- *\/\r\n  const relayout = () => { const i = current < 0 ? 0 : current; measure(); x = xFor(i); render(); };\r\n  relayout();\r\n  \/\/ Only a width change needs a new layout. Phones fire height-only resizes while the\r\n  \/\/ address bar collapses; re-centring then would make the strip jump mid-scroll.\r\n  let lastW = viewport.clientWidth;\r\n  window.addEventListener('resize', () => {\r\n    const w = viewport.clientWidth;\r\n    if (w === lastW) return;\r\n    lastW = w; cancelTween(); relayout();\r\n  });\r\n  if (document.fonts && document.fonts.ready) document.fonts.ready.then(relayout);\r\n  window.addEventListener('load', relayout);\r\n  root.classList.add('is-ready');\r\n  last = performance.now();\r\n  raf = requestAnimationFrame(loop);\r\n})();\r\n\r\n\/* Source & method disclosure: smooth open\/close for <details class=\"sources\">.\r\n   Native <details> snaps open, so the body height is animated with the Web Animations API.\r\n   Without JS, or with reduced motion, the native toggle is left untouched. *\/\r\n(() => {\r\n  const reduce = window.matchMedia('(prefers-reduced-motion: reduce)');\r\n  document.querySelectorAll('details.sources').forEach((d) => {\r\n    const summary = d.querySelector('summary');\r\n    const body = d.querySelector('.sources__body');\r\n    if (!summary || !body || !body.animate) return;\r\n    let anim = null, guard = 0;\r\n    const finish = (open) => {\r\n      clearTimeout(guard);\r\n      d.open = open; anim = null;\r\n      d.classList.remove('is-animating');\r\n      body.style.height = ''; body.style.opacity = '';\r\n    };\r\n    summary.addEventListener('click', (e) => {\r\n      if (reduce.matches) return;                    \/\/ native instant toggle\r\n      e.preventDefault();\r\n      const opening = anim ? !anim.opening : !d.open;\r\n      const from = body.getBoundingClientRect().height;\r\n      const fromOpacity = anim ? getComputedStyle(body).opacity : (opening ? '0' : '1');\r\n      if (anim) anim.cancel();\r\n      d.classList.add('is-animating');\r\n      if (opening) d.open = true;                    \/\/ render content so it can be measured\r\n      body.style.height = 'auto';\r\n      const to = opening ? body.getBoundingClientRect().height : 0;\r\n      const duration = opening ? 360 : 260;\r\n      \/\/ animate padding with the height so the panel grows from nothing instead of popping in as an empty 30px box\r\n      const cs = getComputedStyle(body);\r\n      const pad = { paddingTop: cs.paddingTop, paddingBottom: cs.paddingBottom };\r\n      body.style.paddingTop = ''; body.style.paddingBottom = '';\r\n      const full = { paddingTop: getComputedStyle(body).paddingTop, paddingBottom: getComputedStyle(body).paddingBottom };\r\n      const none = { paddingTop: '0px', paddingBottom: '0px' };\r\n      const start = opening && !anim ? { height: '0px', opacity: 0, ...none } : { height: `${from}px`, opacity: fromOpacity, ...pad };\r\n      const a = body.animate(\r\n        [start, { height: `${to}px`, opacity: opening ? 1 : 0, ...(opening ? full : none) }],\r\n        { duration, easing: 'cubic-bezier(.22, 1, .36, 1)' });\r\n      anim = a; a.opening = opening;\r\n      a.onfinish = () => { if (anim === a) finish(opening); };\r\n      a.oncancel = () => {};\r\n      \/\/ safety net: never leave the panel half-open if a frame or the finish event is dropped\r\n      clearTimeout(guard);\r\n      guard = setTimeout(() => { if (anim === a) { a.cancel(); finish(opening); } }, duration + 250);\r\n    });\r\n  });\r\n})();\r\n<\/script>\r\n<dialog id=\"pdv\" aria-label=\"Video\">\n  <div class=\"pdv__wrap\">\n    <button class=\"pdv__close\" type=\"button\" aria-label=\"Tutup video\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.4\" stroke-linecap=\"round\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M5 5l14 14M19 5L5 19\"\/><\/svg><\/button>\n    <div class=\"pdv__frame\"><\/div>\n  <\/div>\n<\/dialog>\n<script>\n(function () {\n  var d = document.getElementById('pdv');\n  if (!d) { return; }\n  var holder = d.querySelector('.pdv__frame'), VID = '5lwS4bnpttI';\n  var src = 'https:\/\/www.youtube-nocookie.com\/embed\/' + VID + '?autoplay=1&rel=0&playsinline=1&modestbranding=1';\n  function openVideo() {\n    if (typeof d.showModal !== 'function') { window.open('https:\/\/www.youtube.com\/shorts\/' + VID, '_blank', 'noopener'); return; }\n    holder.innerHTML = '';\n    var f = document.createElement('iframe');\n    f.src = src; f.title = 'Video'; f.allow = 'autoplay; encrypted-media; picture-in-picture; fullscreen';\n    f.setAttribute('allowfullscreen', ''); f.referrerPolicy = 'strict-origin-when-cross-origin';\n    holder.appendChild(f);\n    document.documentElement.classList.add('pdv-open');\n    d.showModal();\n  }\n  function cleanup() { holder.innerHTML = ''; document.documentElement.classList.remove('pdv-open'); }\n  function closeVideo() { if (d.open) { d.close(); } cleanup(); }\n  d.addEventListener('close', cleanup);\n  d.addEventListener('cancel', function (e) { e.preventDefault(); closeVideo(); });\n  d.addEventListener('click', function (e) { if (e.target === d) { closeVideo(); } });\n  d.querySelector('.pdv__close').addEventListener('click', closeVideo);\n  document.querySelectorAll('[data-pdv-open]').forEach(function (b) { b.addEventListener('click', openVideo); });\n})();\n<\/script>\n<\/body>\r\n<\/html>\r\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Tes Prokrastinasi: Kenapa Kamu Sering Menunda? | Grownoola Lewati ke konten Buka menu Resolusimu Data Kenali polamu Mulai tes Kamu bukan malas.\ud83d\ude2e\u200d\ud83d\udca8 Kamu cuma belum tahu apa yang bikin kamu terus menunda.\u23f3 Rencana ada. Deadline juga ada. Tapi mulainya selalu nanti. Sebelum waktu dan kesempatan ikut lewat, cari tahu dulu apa yang sebenarnya bikin kamu [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_canvas","meta":{"_careerdecoded_premium":"","footnotes":""},"class_list":["post-1218","page","type-page","status-publish","hentry"],"_hostinger_reach_plugin_has_subscription_block":false,"_hostinger_reach_plugin_is_elementor":false,"_links":{"self":[{"href":"https:\/\/grownoola.com\/id\/wp-json\/wp\/v2\/pages\/1218","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/grownoola.com\/id\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/grownoola.com\/id\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/grownoola.com\/id\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/grownoola.com\/id\/wp-json\/wp\/v2\/comments?post=1218"}],"version-history":[{"count":39,"href":"https:\/\/grownoola.com\/id\/wp-json\/wp\/v2\/pages\/1218\/revisions"}],"predecessor-version":[{"id":3391,"href":"https:\/\/grownoola.com\/id\/wp-json\/wp\/v2\/pages\/1218\/revisions\/3391"}],"wp:attachment":[{"href":"https:\/\/grownoola.com\/id\/wp-json\/wp\/v2\/media?parent=1218"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}